gASV+sAAAAAAAACMDmRvY3V0aWxzLm5vZGVzlIwIZG9jdW1lbnSUk5QpgZR9lCiMCXJhd3NvdXJjZZSMAJSMCGNoaWxkcmVulF2UaACMB3NlY3Rpb26Uk5QpgZR9lChoBWgGaAddlChoAIwFdGl0bGWUk5QpgZR9lChoBYwoYXBhY2hlXF9iZWFtLnR5cGVoaW50cy5kZWNvcmF0b3JzIG1vZHVsZZRoB12UaACMBFRleHSUk5SMJ2FwYWNoZV9iZWFtLnR5cGVoaW50cy5kZWNvcmF0b3JzIG1vZHVsZZSFlIGUfZQoaAWMKGFwYWNoZVxfYmVhbS50eXBlaGludHMuZGVjb3JhdG9ycyBtb2R1bGWUjAZwYXJlbnSUaBBoAWgDjAZzb3VyY2WUTowEbGluZZROdWJhjAphdHRyaWJ1dGVzlH2UKIwDaWRzlF2UjAdjbGFzc2VzlF2UjAVuYW1lc5RdlIwIZHVwbmFtZXOUXZSMCGJhY2tyZWZzlF2UdYwHdGFnbmFtZZRoDmgbaAtoAWgDaByMfy91c3IvbG9jYWwvZ29vZ2xlL2hvbWUvcnV3YW5nL3JlbGVhc2UvYmVhbV9yZWxlYXNlL2RvYy9iZWFtL3Nka3MvcHl0aG9uL3RhcmdldC9kb2NzL3NvdXJjZS9hcGFjaGVfYmVhbS50eXBlaGludHMuZGVjb3JhdG9ycy5yc3SUaB1LAnVijA9zcGhpbnguYWRkbm9kZXOUjAVpbmRleJSTlCmBlH2UKGgFaAZoB12UaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlIwHZW50cmllc5RdlCiMBnNpbmdsZZSMKWFwYWNoZV9iZWFtLnR5cGVoaW50cy5kZWNvcmF0b3JzIChtb2R1bGUplIwnbW9kdWxlLWFwYWNoZV9iZWFtLnR5cGVoaW50cy5kZWNvcmF0b3JzlGgGTnSUYXVoKmgtaBtoC2gBaANoHIyZL3Vzci9sb2NhbC9nb29nbGUvaG9tZS9ydXdhbmcvcmVsZWFzZS9iZWFtX3JlbGVhc2UvZG9jL2JlYW0vc2Rrcy9weXRob24vYXBhY2hlX2JlYW0vdHlwZWhpbnRzL2RlY29yYXRvcnMucHk6ZG9jc3RyaW5nIG9mIGFwYWNoZV9iZWFtLnR5cGVoaW50cy5kZWNvcmF0b3JzlGgdSwF1YmgAjAlwYXJhZ3JhcGiUk5QpgZR9lChoBYxNVHlwZSBoaW50aW5nIGRlY29yYXRvcnMgYWxsb3dpbmcgc3RhdGljIG9yIHJ1bnRpbWUgdHlwZS1jaGVja2luZyBmb3IgdGhlIFNESy6UaAddlGgVjE1UeXBlIGhpbnRpbmcgZGVjb3JhdG9ycyBhbGxvd2luZyBzdGF0aWMgb3IgcnVudGltZSB0eXBlLWNoZWNraW5nIGZvciB0aGUgU0RLLpSFlIGUfZQoaAVoQ2gbaEFoAWgDaBxOaB1OdWJhaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlHVoKmg/aByMmS91c3IvbG9jYWwvZ29vZ2xlL2hvbWUvcnV3YW5nL3JlbGVhc2UvYmVhbV9yZWxlYXNlL2RvYy9iZWFtL3Nka3MvcHl0aG9uL2FwYWNoZV9iZWFtL3R5cGVoaW50cy9kZWNvcmF0b3JzLnB5OmRvY3N0cmluZyBvZiBhcGFjaGVfYmVhbS50eXBlaGludHMuZGVjb3JhdG9yc5RoHUsBaBtoC2gBaAN1YmhAKYGUfZQoaAWMoFRoaXMgbW9kdWxlIGRlZmluZXMgZGVjb3JhdG9ycyB3aGljaCB1dGlsaXplIHRoZSB0eXBlLWhpbnRzIGRlZmluZWQgaW4KJ3R5cGVfaGludHMucHknIHRvIGFsbG93IGFubm90YXRpb24gb2YgdGhlIHR5cGVzIG9mIGZ1bmN0aW9uIGFyZ3VtZW50cyBhbmQKcmV0dXJuIHZhbHVlcy6UaAddlGgVjKRUaGlzIG1vZHVsZSBkZWZpbmVzIGRlY29yYXRvcnMgd2hpY2ggdXRpbGl6ZSB0aGUgdHlwZS1oaW50cyBkZWZpbmVkIGluCuKAmHR5cGVfaGludHMucHnigJkgdG8gYWxsb3cgYW5ub3RhdGlvbiBvZiB0aGUgdHlwZXMgb2YgZnVuY3Rpb24gYXJndW1lbnRzIGFuZApyZXR1cm4gdmFsdWVzLpSFlIGUfZQoaAVoUmgbaFBoAWgDaBxOaB1OdWJhaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlHVoKmg/aBxoT2gdSwNoG2gLaAFoA3ViaEApgZR9lChoBYz9VHlwZS1oaW50cyBmb3IgZnVuY3Rpb25zIGFyZSBhbm5vdGF0ZWQgdXNpbmcgdHdvIHNlcGFyYXRlIGRlY29yYXRvcnMuIE9uZSBpcyBmb3IKdHlwZS1oaW50aW5nIHRoZSB0eXBlcyBvZiBmdW5jdGlvbiBhcmd1bWVudHMsIHRoZSBvdGhlciBmb3IgdHlwZS1oaW50aW5nIHRoZQpmdW5jdGlvbiByZXR1cm4gdmFsdWUuIFR5cGUtaGludHMgY2FuIGVpdGhlciBiZSBzcGVjaWZpZWQgaW4gdGhlIGZvcm0gb2YKcG9zaXRpb25hbCBhcmd1bWVudHM6OpRoB12UaBWM/FR5cGUtaGludHMgZm9yIGZ1bmN0aW9ucyBhcmUgYW5ub3RhdGVkIHVzaW5nIHR3byBzZXBhcmF0ZSBkZWNvcmF0b3JzLiBPbmUgaXMgZm9yCnR5cGUtaGludGluZyB0aGUgdHlwZXMgb2YgZnVuY3Rpb24gYXJndW1lbnRzLCB0aGUgb3RoZXIgZm9yIHR5cGUtaGludGluZyB0aGUKZnVuY3Rpb24gcmV0dXJuIHZhbHVlLiBUeXBlLWhpbnRzIGNhbiBlaXRoZXIgYmUgc3BlY2lmaWVkIGluIHRoZSBmb3JtIG9mCnBvc2l0aW9uYWwgYXJndW1lbnRzOpSFlIGUfZQoaAWM/FR5cGUtaGludHMgZm9yIGZ1bmN0aW9ucyBhcmUgYW5ub3RhdGVkIHVzaW5nIHR3byBzZXBhcmF0ZSBkZWNvcmF0b3JzLiBPbmUgaXMgZm9yCnR5cGUtaGludGluZyB0aGUgdHlwZXMgb2YgZnVuY3Rpb24gYXJndW1lbnRzLCB0aGUgb3RoZXIgZm9yIHR5cGUtaGludGluZyB0aGUKZnVuY3Rpb24gcmV0dXJuIHZhbHVlLiBUeXBlLWhpbnRzIGNhbiBlaXRoZXIgYmUgc3BlY2lmaWVkIGluIHRoZSBmb3JtIG9mCnBvc2l0aW9uYWwgYXJndW1lbnRzOpRoG2heaAFoA2gcTmgdTnViYWgefZQoaCBdlGgiXZRoJF2UaCZdlGgoXZR1aCpoP2gcaE9oHUsHaBtoC2gBaAN1YmgAjA1saXRlcmFsX2Jsb2NrlJOUKYGUfZQoaAWMOUB3aXRoX2lucHV0X3R5cGVzKGludCwgaW50KQpkZWYgYWRkKGEsIGIpOgogIHJldHVybiBhICsgYpRoB12UaBWMOUB3aXRoX2lucHV0X3R5cGVzKGludCwgaW50KQpkZWYgYWRkKGEsIGIpOgogIHJldHVybiBhICsgYpSFlIGUfZQoaAVoBmgbaG91YmFoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UjAl4bWw6c3BhY2WUjAhwcmVzZXJ2ZZR1aCpobWgcaE9oHUsMaBtoC2gBaAN1YmhAKYGUfZQoaAWME0tleXdvcmQgYXJndW1lbnRzOjqUaAddlGgVjBJLZXl3b3JkIGFyZ3VtZW50czqUhZSBlH2UKGgFjBJLZXl3b3JkIGFyZ3VtZW50czqUaBtof2gBaANoHE5oHU51YmFoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UdWgqaD9oHGhPaB1LEGgbaAtoAWgDdWJobimBlH2UKGgFjD1Ad2l0aF9pbnB1dF90eXBlcyhhPWludCwgYj1pbnQpCmRlZiBhZGQoYSwgYik6CiAgcmV0dXJuIGEgKyBilGgHXZRoFYw9QHdpdGhfaW5wdXRfdHlwZXMoYT1pbnQsIGI9aW50KQpkZWYgYWRkKGEsIGIpOgogIHJldHVybiBhICsgYpSFlIGUfZQoaAVoBmgbaI51YmFoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UaH1ofnVoKmhtaBxoT2gdSxJoG2gLaAFoA3ViaEApgZR9lChoBYwXT3IgZXZlbiBhIG1peCBvZiBib3RoOjqUaAddlGgVjBZPciBldmVuIGEgbWl4IG9mIGJvdGg6lIWUgZR9lChoBYwWT3IgZXZlbiBhIG1peCBvZiBib3RoOpRoG2icaAFoA2gcTmgdTnViYWgefZQoaCBdlGgiXZRoJF2UaCZdlGgoXZR1aCpoP2gcaE9oHUsWaBtoC2gBaAN1YmhuKYGUfZQoaAWMO0B3aXRoX2lucHV0X3R5cGVzKGludCwgYj1pbnQpCmRlZiBhZGQoYSwgYik6CiAgcmV0dXJuIGEgKyBilGgHXZRoFYw7QHdpdGhfaW5wdXRfdHlwZXMoaW50LCBiPWludCkKZGVmIGFkZChhLCBiKToKICByZXR1cm4gYSArIGKUhZSBlH2UKGgFaAZoG2irdWJhaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlGh9aH51aCpobWgcaE9oHUsYaBtoC2gBaAN1YmhAKYGUfZQoaAWML0V4YW1wbGUgdXNhZ2UgZm9yIHR5cGUtaGludGluZyBhcmd1bWVudHMgb25seTo6lGgHXZRoFYwuRXhhbXBsZSB1c2FnZSBmb3IgdHlwZS1oaW50aW5nIGFyZ3VtZW50cyBvbmx5OpSFlIGUfZQoaAWMLkV4YW1wbGUgdXNhZ2UgZm9yIHR5cGUtaGludGluZyBhcmd1bWVudHMgb25seTqUaBtouWgBaANoHE5oHU51YmFoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UdWgqaD9oHGhPaB1LHGgbaAtoAWgDdWJobimBlH2UKGgFjDxAd2l0aF9pbnB1dF90eXBlcyhzPXN0cikKZGVmIHRvX2xvd2VyKGEpOgogIHJldHVybiBhLmxvd2VyKCmUaAddlGgVjDxAd2l0aF9pbnB1dF90eXBlcyhzPXN0cikKZGVmIHRvX2xvd2VyKGEpOgogIHJldHVybiBhLmxvd2VyKCmUhZSBlH2UKGgFaAZoG2jIdWJhaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlGh9aH51aCpobWgcaE9oHUseaBtoC2gBaAN1YmhAKYGUfZQoaAWMM0V4YW1wbGUgdXNhZ2UgZm9yIHR5cGUtaGludGluZyByZXR1cm4gdmFsdWVzIG9ubHk6OpRoB12UaBWMMkV4YW1wbGUgdXNhZ2UgZm9yIHR5cGUtaGludGluZyByZXR1cm4gdmFsdWVzIG9ubHk6lIWUgZR9lChoBYwyRXhhbXBsZSB1c2FnZSBmb3IgdHlwZS1oaW50aW5nIHJldHVybiB2YWx1ZXMgb25seTqUaBto1mgBaANoHE5oHU51YmFoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UdWgqaD9oHGhPaB1LImgbaAtoAWgDdWJobimBlH2UKGgFjGZAd2l0aF9vdXRwdXRfdHlwZXMoVHVwbGVbaW50LCBib29sXSkKZGVmIGNvbXByZXNzX3BvaW50KGVjX3BvaW50KToKICByZXR1cm4gZWNfcG9pbnQueCwgZWNfcG9pbnQueSA8IDCUaAddlGgVjGZAd2l0aF9vdXRwdXRfdHlwZXMoVHVwbGVbaW50LCBib29sXSkKZGVmIGNvbXByZXNzX3BvaW50KGVjX3BvaW50KToKICByZXR1cm4gZWNfcG9pbnQueCwgZWNf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aH51aCpobWgcaE9oHUs3aBtoC2gBaAN1YmhAKYGUfZQoaAWMjU5vdGljZSB0aGF0IHdlIGhpbnQgdGhlIHR5cGUgb2YgZWFjaCB1bnBhY2tlZCBhcmd1bWVudCBpbmRlcGVuZGVudGx5LCByYXRoZXIKdGhhbiBoaW50aW5nIHRoZSB0eXBlIG9mIHRoZSB0dXBsZSBhcyBhIHdob2xlIChUdXBsZVtpbnQsIGludF0pLpRoB12UaBWMjU5vdGljZSB0aGF0IHdlIGhpbnQgdGhlIHR5cGUgb2YgZWFjaCB1bnBhY2tlZCBhcmd1bWVudCBpbmRlcGVuZGVudGx5LCByYXRoZXIKdGhhbiBoaW50aW5nIHRoZSB0eXBlIG9mIHRoZSB0dXBsZSBhcyBhIHdob2xlIChUdXBsZVtpbnQsIGludF0pLpSFlIGUfZQoaAVqTAEAAGgbakoBAABoAWgDaBxOaB1OdWJhaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlHVoKmg/aBxoT2gdSztoG2gLaAFoA3ViaEApgZR9lChoBVhvAQAAT3B0aW9uYWxseSwgdHlwZS1oaW50cyBjYW4gYmUgdHlwZS1jaGVja2VkIGF0IHJ1bnRpbWUuIFRvIHRvZ2dsZSB0aGlzIGJlaGF2aW9yCnRoaXMgbW9kdWxlIGRlZmluZXMgdHdvIGZ1bmN0aW9uczogJ2VuYWJsZV9ydW5fdGltZV90eXBlX2NoZWNraW5nJyBhbmQKJ2Rpc2FibGVfcnVuX3RpbWVfdHlwZV9jaGVja2luZycuIE5PVEU6IGZvciB0aGlzIHRvZ2dsZSBiZWhhdmlvciB0byB3b3JrCnByb3Blcmx5IGl0IG11c3QgYXBwZWFyIGF0IHRoZSB0b3Agb2YgdGhlIG1vZHVsZSB3aGVyZSBhbGwgZnVuY3Rpb25zIGFyZQpkZWZpbmVkLCBvciBiZWZvcmUgaW1wb3J0aW5nIGEgbW9kdWxlIGNvbnRhaW5pbmcgdHlwZS1oaW50ZWQgZnVuY3Rpb25zLpRoB12UaBVYdwEAAE9wdGlvbmFsbHksIHR5cGUtaGludHMgY2FuIGJlIHR5cGUtY2hlY2tlZCBhdCBydW50aW1lLiBUbyB0b2dnbGUgdGhpcyBiZWhhdmlvcgp0aGlzIG1vZHVsZSBkZWZpbmVzIHR3byBmdW5jdGlvbnM6IOKAmGVuYWJsZV9ydW5fdGltZV90eXBlX2NoZWNraW5n4oCZIGFuZArigJhkaXNhYmxlX3J1bl90aW1lX3R5cGVfY2hlY2tpbmfigJkuIE5PVEU6IGZvciB0aGlzIHRvZ2dsZSBiZWhhdmlvciB0byB3b3JrCnByb3Blcmx5IGl0IG11c3QgYXBwZWFyIGF0IHRoZSB0b3Agb2YgdGhlIG1vZHVsZSB3aGVyZSBhbGwgZnVuY3Rpb25zIGFyZQpkZWZpbmVkLCBvciBiZWZvcmUgaW1wb3J0aW5nIGEgbW9kdWxlIGNvbnRhaW5pbmcgdHlwZS1oaW50ZWQgZnVuY3Rpb25zLpSFlIGUfZQoaAVqWgEAAGgbalgBAABoAWgDaBxOaB1OdWJhaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlHVoKmg/aBxoT2gdSz5oG2gLaAFoA3ViaC4pgZR9lChoBWgGaAddlGgefZQoaCBdlGgiXZRoJF2UaCZdlGgoXZSMB2VudHJpZXOUXZQoaDqMPW5vX2Fubm90YXRpb25zKCkgKGluIG1vZHVsZSBhcGFjaGVfYmVhbS50eXBlaGludHMuZGVjb3JhdG9ycymUjC9hcGFjaGVfYmVhbS50eXBlaGludHMuZGVjb3JhdG9ycy5ub19hbm5vdGF0aW9uc5RoBk50lGF1aCpoLWgbaAtoAWgDaByMqC91c3IvbG9jYWwvZ29vZ2xlL2hvbWUvcnV3YW5nL3JlbGVhc2UvYmVhbV9yZWxlYXNlL2RvYy9iZWFtL3Nka3MvcHl0aG9uL2FwYWNoZV9iZWFtL3R5cGVoaW50cy9kZWNvcmF0b3JzLnB5OmRvY3N0cmluZyBvZiBhcGFjaGVfYmVhbS50eXBlaGludHMuZGVjb3JhdG9ycy5ub19hbm5vdGF0aW9uc5RoHU51YmgsjARkZXNjlJOUKYGUfZQoaAVoBmgHXZQoaCyMDmRlc2Nfc2lnbmF0dXJllJOUKYGUfZQoaAWMEm5vX2Fubm90YXRpb25zKGZuKZRoB12UKGgsjAxkZXNjX2FkZG5hbWWUk5QpgZR9lChoBYwhYXBhY2hlX2JlYW0udHlwZWhpbnRzLmRlY29yYXRvcnMulGgHXZRoFYwhYXBhY2hlX2JlYW0udHlwZWhp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aGVfYmVhbS50eXBlaGludHMuZGVjb3JhdG9ycymUjC5hcGFjaGVfYmVhbS50eXBlaGludHMuZGVjb3JhdG9ycy5XaXRoVHlwZUhpbnRzlGgGTnSUYXVoKmgtaBtoC2gBaANoHE5oHU51Ymp2AQAAKYGUfZQoaAVoBmgHXZQoansBAAApgZR9lChoBYwsV2l0aFR5cGVIaW50cygqdW51c2VkX2FyZ3MsICoqdW51c2VkX2t3YXJncymUaAddlChoLIwPZGVzY19hbm5vdGF0aW9ulJOUKYGUfZQoaAWMBmNsYXNzIJRoB12UaBWMBmNsYXNzIJSFlIGUfZQoaAVoBmgbajYCAABoAWgDaBxOaB1OdWJhaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlGh9aH51aCpqNAIAAGgbajACAABoAWgDaByMpy91c3IvbG9jYWwvZ29vZ2xlL2hvbWUvcnV3YW5nL3JlbGVhc2UvYmVhbV9yZWxlYXNlL2RvYy9iZWFtL3Nka3MvcHl0aG9uL2FwYWNoZV9iZWFtL3R5cGVoaW50cy9kZWNvcmF0b3JzLnB5OmRvY3N0cmluZyBvZiBhcGFjaGVfYmVhbS50eXBlaGludHMuZGVjb3JhdG9ycy5XaXRoVHlwZUhpbnRzlGgdTnViaoEBAAApgZR9lChoBYwhYXBhY2hlX2JlYW0udHlwZWhpbnRzLmRlY29yYXRvcnMulGgHXZRoFYwhYXBhY2hlX2JlYW0udHlwZWhpbnRzLmRlY29yYXRvcnMulIWUgZR9lChoBWgGaBtqRQIAAGgBaANoHE5oHU51YmFoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UaH1ofnVoKmqAAQAAaBtqMAIAAGgBaANoHGpEAgAAaB1OdWJqkgEAACmBlH2UKGgFjA1XaXRoVHlwZUhpbnRzlGgHXZRoFYwNV2l0aFR5cGVIaW50c5SFlIGUfZQoaAVoBmgbalMCAABoAWgDaBxOaB1OdWJhaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlGh9aH51aCpqkQEAAGgbajACAABoAWgDaBxqRAIAAGgdTnViaqIBAAApgZR9lChoBYwdKnVudXNlZF9hcmdzLCAqKnVudXNlZF9rd2FyZ3OUaAddlChqqAEAACmBlH2UKGgFjAwqdW51c2VkX2FyZ3OUaAddlGgVjAwqdW51c2VkX2FyZ3OUhZSBlH2UKGgFaAZoG2plAgAAdWJhaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlGh9aH51aCpqpwEAAGgbamECAAB1YmqoAQAAKYGUfZQoaAWMDyoqdW51c2VkX2t3YXJnc5RoB12UaBWMDyoqdW51c2VkX2t3YXJnc5SFlIGUfZQoaAVoBmgbanMCAAB1YmFoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UaH1ofnVoKmqnAQAAaBtqYQIAAHViZWgefZQoaCBdlGgiXZRoJF2UaCZdlGgoXZRofWh+dWgqaqEBAABoG2owAgAAaAFoA2gcakQCAABoHU51Ymq+AQAAKYGUfZQoaAVoBmgHXZRqwwEAACmBlH2UKGgFaAZoB12UasgBAAApgZR9lChoBWgGaAddlGgVjAhbc291cmNlXZSFlIGUfZQoaAVoBmgbao0CAAB1YmFoHn2UKGggXZRoIl2UatMBAABhaCRdlGgmXZRoKF2UdWgqascBAABoG2qKAgAAdWJhaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlIwHcmVmdHlwZZRq3gEAAIwJcmVmZG9tYWlulGrgAQAAjAtyZWZleHBsaWNpdJSJjAlyZWZ0YXJnZXSUjClfbW9kdWxlcy9hcGFjaGVfYmVhbS90eXBlaGludHMvZGVjb3JhdG9yc5SMBXJlZmlklGpVAgAAjAZyZWZkb2OUauYBAAB1aCpqwgEAAGgbaocCAAB1YmFoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UjARleHBylGruAQAAdWgqar0BAABoG2owAgAAaAFoA2gcTmgdTnViZWgefZQoaCBdlGorAgAAYWgiXZRoJF2UaisCAABhaCZdlGgoXZRq9QEAAIlq9gEAAIwgYXBhY2hlX2JlYW0udHlwZWhpbnRzLmRlY29yYXRvcnOUavgBAABoBmr5AQAAalUCAAB1aCpqegEAAGgbai0CAABoAWgDaBxqRAIAAGgdTnViavsBAAApgZR9lChoBWgGaAddlChoQCmBlH2UKGgFjBZCYXNlczogOmNsYXNzOmBvYmplY3RglGgHXZQoaBWMB0Jhc2VzOiCUhZSBlH2UKGgFjAdCYXNlczoglGgbargCAABoAWgDaBxOaB1OdWJqwwEAACmBlH2UKGgFjA86Y2xhc3M6YG9iamVjdGCUaAddlGgAjAdsaXRlcmFslJOUKYGUfZQoaAVqwwIAAGgHXZRoFYwGb2JqZWN0lIWUgZR9lChoBWgGaBtqxwIAAHViYWgefZQoaCBdlGgiXZQojAR4cmVmlIwCcHmUjAhweS1jbGFzc5RlaCRdlGgmXZRoKF2UdWgqasUCAABoG2rBAgAAdWJhaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlIwHcmVmdHlwZZSMBWNsYXNzlIwJcmVmZG9tYWlulGrSAgAAjAtyZWZleHBsaWNpdJSJjAlweTptb2R1bGWUarQCAACMCHB5OmNsYXNzlGpVAgAAjAlyZWZ0YXJnZXSUjAZvYmplY3SUjAZyZWZkb2OUauYBAACMB3JlZndhcm6UiXVoKmrCAQAAaByMpy91c3IvbG9jYWwvZ29vZ2xlL2hvbWUvcnV3YW5nL3JlbGVhc2UvYmVhbV9yZWxlYXNlL2RvYy9iZWFtL3Nka3MvcHl0aG9uL2FwYWNoZV9iZWFtL3R5cGVoaW50cy9kZWNvcmF0b3JzLnB5OmRvY3N0cmluZyBvZiBhcGFjaGVfYmVhbS50eXBlaGludHMuZGVjb3JhdG9ycy5XaXRoVHlwZUhpbnRzlGgdSwFoG2q4AgAAdWJlaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlHVoKmg/aBxq5wIAAGgdSwFoG2q1AgAAaAFoA3ViaEApgZR9lChoBYxHQSBtaXhpbiBjbGFzcyB0aGF0IHByb3ZpZGVzIHRoZSBhYmlsaXR5IHRvIHNldCBhbmQgcmV0cmlldmUgdHlwZSBoaW50cy6UaAddlGgVjEdBIG1peGluIGNsYXNzIHRoYXQgcHJvdmlkZXMgdGhlIGFiaWxpdHkgdG8gc2V0IGFuZCByZXRyaWV2ZSB0eXBlIGhpbnRzLpSFlIGUfZQoaAVq8AIAAGgbau4CAABoAWgDaBxOaB1OdWJhaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlHVoKmg/aByMpy91c3IvbG9jYWwvZ29vZ2xlL2hvbWUvcnV3YW5nL3JlbGVhc2UvYmVhbV9yZWxlYXNlL2RvYy9iZWFtL3Nka3MvcHl0aG9uL2FwYWNoZV9iZWFtL3R5cGVoaW50cy9kZWNvcmF0b3JzLnB5OmRvY3N0cmluZyBvZiBhcGFjaGVfYmVhbS50eXBlaGludHMuZGVjb3JhdG9ycy5XaXRoVHlwZUhpbnRzlGgdSwFoG2q1AgAAaAFoA3ViaC4pgZR9lChoBWgGaAddlGgefZQoaCBdlGgiXZRoJF2UaCZdlGgoXZSMB2VudHJpZXOUXZQoaDqMSGdldF90eXBlX2hpbnRzKCkgKGFwYWNoZV9iZWFtLnR5cGVoaW50cy5kZWNvcmF0b3JzLldpdGhUeXBlSGludHMgbWV0aG9kKZSMPWFwYWNoZV9iZWFtLnR5cGVoaW50cy5kZWNvcmF0b3JzLldpdGhUeXBlSGludHMuZ2V0X3R5cGVfaGludHOUaAZOdJRhdWgqaC1oG2q1AgAAaAFoA2gcjLYvdXNyL2xvY2FsL2dvb2dsZS9ob21lL3J1d2FuZy9yZWxlYXNlL2JlYW1fcmVsZWFzZS9kb2MvYmVhbS9zZGtzL3B5dGhvbi9hcGFjaGVfYmVhbS90eXBlaGludHMvZGVjb3JhdG9ycy5weTpkb2NzdHJpbmcgb2YgYXBhY2hlX2JlYW0udHlwZWhpbnRzLmRlY29yYXRvcnMuV2l0aFR5cGVIaW50cy5nZXRfdHlwZV9oaW50c5RoHU51Ymp2AQAAKYGUfZQoaAVoBmgHXZQoansBAAApgZR9lChoBYweV2l0aFR5cGVIaW50cy5nZXRfdHlwZV9oaW50cygplGgHXZQoapIBAAApgZR9lChoBYwOZ2V0X3R5cGVfaGludHOUaAddlGgVjA5nZXRfdHlwZV9oaW50c5SFlIGUfZQoaAVoBmgbahMDAABoAWgDaBxOaB1OdWJhaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlGh9aH51aCpqkQEAAGgbag8DAABoAWgDaByMti91c3IvbG9jYWwvZ29vZ2xlL2hvbWUvcnV3YW5nL3JlbGVhc2UvYmVhbV9yZWxlYXNlL2RvYy9iZWFtL3Nka3MvcHl0aG9uL2FwYWNoZV9iZWFtL3R5cGVoaW50cy9kZWNvcmF0b3JzLnB5OmRvY3N0cmluZyBvZiBhcGFjaGVfYmVhbS50eXBlaGludHMuZGVjb3JhdG9ycy5XaXRoVHlwZUhpbnRzLmdldF90eXBlX2hpbnRzlGgdTnViaqIBAAApgZR9lChoBWgGaAdd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XZRoKF2UdWgqavoBAABoG2qVAwAAaAFoA2gcaqoDAABoHU51YmVoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UahkCAACMAnB5lGobAgAAjAZtZXRob2SUah0CAABq8wMAAGoeAgAAiXVoKmp1AQAAaAFoA2gbarUCAABoHE5oHU51YmguKYGUfZQoaAVoBmgHXZRoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UjAdlbnRyaWVzlF2UKGg6jEp3aXRoX2lucHV0X3R5cGVzKCkgKGFwYWNoZV9iZWFtLnR5cGVoaW50cy5kZWNvcmF0b3JzLldpdGhUeXBlSGludHMgbWV0aG9kKZSMP2FwYWNoZV9iZWFtLnR5cGVoaW50cy5kZWNvcmF0b3JzLldpdGhUeXBlSGludHMud2l0aF9pbnB1dF90eXBlc5RoBk50lGF1aCpoLWgbarUCAABoAWgDaBxOaB1OdWJqdgEAACmBlH2UKGgFaAZoB12UKGp7AQAAKYGUfZQoaAWMOVdpdGhUeXBlSGludHMud2l0aF9pbnB1dF90eXBlcygqYXJnX2hpbnRzLCAqKmt3YXJnX2hpbnRzKZRoB12UKGqSAQAAKYGUfZQoaAWMEHdpdGhfaW5wdXRfdHlwZXOUaAddlGgVjBB3aXRoX2lucHV0X3R5cGVzlIWUgZR9lChoBWgGaBtqCQQAAGgBaANoHE5oHU51YmFoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UaH1ofnVoKmqRAQAAaBtqBQQAAGgBaANoHIy4L3Vzci9sb2NhbC9nb29nbGUvaG9tZS9ydXdhbmcvcmVsZWFzZS9iZWFtX3JlbGVhc2UvZG9jL2JlYW0vc2Rrcy9weXRob24vYXBhY2hlX2JlYW0vdHlwZWhpbnRzL2RlY29yYXRvcnMucHk6ZG9jc3RyaW5nIG9mIGFwYWNoZV9iZWFtLnR5cGVoaW50cy5kZWNvcmF0b3JzLldpdGhUeXBlSGludHMud2l0aF9pbnB1dF90eXBlc5RoHU51YmqiAQAAKYGUfZQoaAWMGSphcmdfaGludHMsICoqa3dhcmdfaGludHOUaAddlChqqAEAACmBlH2UKGgFjAoqYXJnX2hpbnRzlGgHXZRoFYwKKmFyZ19oaW50c5SFlIGUfZQoaAVoBmgbahwEAAB1YmFoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UaH1ofnVoKmqnAQAAaBtqGAQAAHViaqgBAAApgZR9lChoBYwNKiprd2FyZ19oaW50c5RoB12UaBWMDSoqa3dhcmdfaGludHOUhZSBlH2UKGgFaAZoG2oqBAAAdWJhaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlGh9aH51aCpqpwEAAGgbahgEAAB1YmVoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UaH1ofnVoKmqhAQAAaBtqBQQAAGgBaANoHGoXBAAAaB1OdWJqvgEAACmBlH2UKGgFaAZoB12UasMBAAApgZR9lChoBWgGaAddlGrIAQAAKYGUfZQoaAVoBmgHXZRoFYwIW3NvdXJjZV2UhZSBlH2UKGgFaAZoG2pEBAAAdWJhaB59lChoIF2UaCJdlGrTAQAAYWgkXZRoJl2UaChdlHVoKmrHAQAAaBtqQQQAAHViYWgefZQoaCBdlGgiXZRoJF2UaCZdlGgoXZSMB3JlZnR5cGWUat4BAACMCXJlZmRvbWFpbpRq4AEAAIwLcmVmZXhwbGljaXSUiYwJcmVmdGFyZ2V0lIwpX21vZHVsZXMvYXBhY2hlX2JlYW0vdHlwZWhpbnRzL2RlY29yYXRvcnOUjAVyZWZpZJSMHldpdGhUeXBlSGludHMud2l0aF9pbnB1dF90eXBlc5SMBnJlZmRvY5Rq5gEAAHVoKmrCAQAAaBtqPgQAAHViYWgefZQoaCBdlGgiXZRoJF2UaCZdlGgoXZSMBGV4cHKUau4BAAB1aCpqvQEAAGgbagUEAABoAWgDaBxOaB1OdWJlaB59lChoIF2UagAEAABhaCJdlGgkXZRqAAQAAGFoJl2UaChdlGr1AQAAiWr2AQAAjCBhcGFjaGVfYmVhbS50eXBlaGludHMuZGVjb3JhdG9yc5Rq+AEAAGpVAgAAavkBAABqXQQAAHVoKmp6AQAAaBtqAgQAAGgBaANoHGoXBAAAaB1OdWJq+wEAACmBlH2UKGgFaAZoB12UaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlHVoKmr6AQAAaBtqAgQAAGgBaANoHGoXBAAAaB1OdWJlaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlGoZAgAAjAJweZRqGwIAAIwGbWV0aG9klGodAgAAan0EAABqHgIAAIl1aCpqdQEAAGgBaANoG2q1AgAAaBxOaB1OdWJoLimBlH2UKGgFaAZoB12UaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlIwHZW50cmllc5RdlChoOoxLd2l0aF9vdXRwdXRfdHlwZXMoKSAoYXBhY2hlX2JlYW0udHlwZWhpbnRzLmRlY29yYXRvcnMuV2l0aFR5cGVIaW50cyBtZXRob2QplIxAYXBhY2hlX2JlYW0udHlwZWhpbnRzLmRlY29yYXRvcnMuV2l0aFR5cGVIaW50cy53aXRoX291dHB1dF90eXBlc5RoBk50lGF1aCpoLWgbarUCAABoAWgDaBxOaB1OdWJqdgEAACmBlH2UKGgFaAZoB12UKGp7AQAAKYGUfZQoaAWMOldpdGhUeXBlSGludHMud2l0aF9vdXRwdXRfdHlwZXMoKmFyZ19oaW50cywgKiprd2FyZ19oaW50cymUaAddlChqkgEAACmBlH2UKGgFjBF3aXRoX291dHB1dF90eXBlc5RoB12UaBWMEXdpdGhfb3V0cHV0X3R5cGVzlIWUgZR9lChoBWgGaBtqkwQAAGgBaANoHE5oHU51YmFoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UaH1ofnVoKmqRAQAAaBtqjwQAAGgBaANoHIy5L3Vzci9sb2NhbC9nb29nbGUvaG9tZS9ydXdhbmcvcmVsZWFzZS9iZWFtX3JlbGVhc2UvZG9jL2JlYW0vc2Rrcy9weXRob24vYXBhY2hlX2JlYW0vdHlwZWhpbnRzL2RlY29yYXRvcnMucHk6ZG9jc3RyaW5nIG9mIGFwYWNoZV9iZWFtLnR5cGVoaW50cy5kZWNvcmF0b3JzLldpdGhUeXBlSGludHMud2l0aF9vdXRwdXRfdHlwZXOUaB1OdWJqogEAACmBlH2UKGgFjBkqYXJnX2hpbnRzLCAqKmt3YXJnX2hpbnRzlGgHXZQoaqgBAAApgZR9lChoBYwKKmFyZ19oaW50c5RoB12UaBWMCiphcmdfaGludHOUhZSBlH2UKGgFaAZoG2qmBAAAdWJhaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlGh9aH51aCpqpwEAAGgbaqIEAAB1YmqoAQAAKYGUfZQoaAWMDSoqa3dhcmdfaGludHOUaAddlGgVjA0qKmt3YXJnX2hpbnRzlIWUgZR9lChoBWgGaBtqtAQAAHViYWgefZQoaCBdlGgiXZRoJF2UaCZdlGgoXZRofWh+dWgqaqcBAABoG2qiBAAAdWJlaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlGh9aH51aCpqoQEAAGgbao8EAABoAWgDaBxqoQQAAGgdTnViar4BAAApgZR9lChoBWgGaAddlGrDAQAAKYGUfZQoaAVoBmgHXZRqyAEAACmBlH2UKGgFaAZoB12UaBWMCFtzb3VyY2VdlIWUgZR9lChoBWgGaBtqzgQAAHViYWgefZQoaCBdlGgiXZRq0wEAAGFoJF2UaCZdlGgoXZR1aCpqxwEAAGgbassEAAB1YmFoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UjAdyZWZ0eXBllGreAQAAjAlyZWZkb21haW6UauABAACMC3JlZmV4cGxpY2l0lImMCXJlZnRhcmdldJSMKV9tb2R1bGVzL2FwYWNoZV9iZWFtL3R5cGVoaW50cy9kZWNvcmF0b3JzlIwFcmVmaWSUjB9XaXRoVHlwZUhpbnRzLndpdGhfb3V0cHV0X3R5cGVzlIwGcmVmZG9jlGrmAQAAdWgqasIBAABoG2rIBAAAdWJhaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlIwEZXhwcpRq7gEAAHVoKmq9AQAAaBtqjwQAAGgBaANoHE5oHU51YmVoHn2UKGggXZRqigQAAGFoIl2UaCRdlGqKBAAAYWgmXZRoKF2UavUBAACJavYBAACMIGFwYWNoZV9iZWFtLnR5cGVoaW50cy5kZWNvcmF0b3JzlGr4AQAAalUCAABq+QEAAGrnBAAAdWgqanoBAABoG2qMBAAAaAFoA2gcaqEEAABoHU51Ymr7AQAAKYGUfZQoaAVoBmgHXZRoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UdWgqavoBAABoG2qMBAAAaAFoA2gcaqEEAABoHU51YmVoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UahkCAACMAnB5lGobAgAAjAZtZXRob2SUah0CAABqBwUAAGoeAgAAiXVoKmp1AQAAaAFoA2gbarUCAABoHE5oHU51YmVoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UdWgqavoBAABoG2otAgAAaAFoA2gcakQCAABoHU51YmVoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UahkCAACMAnB5lGobAgAAjAVjbGFzc5RqHQIAAGoVBQAAah4CAACJdWgqanUBAABoAWgDaBtoC2gcTmgdTnViaC4pgZR9lChoBWgGaAddlGgefZQoaCBdlGgiXZRoJF2UaCZdlGgoXZSMB2VudHJpZXOUXZQoaDqMDlR5cGVDaGVja0Vycm9ylIwvYXBhY2hlX2JlYW0udHlwZWhpbnRzLmRlY29yYXRvcnMuVHlwZUNoZWNrRXJyb3KUaAZOdJRhdWgqaC1oG2gLaAFoA2gcjKgvdXNyL2xvY2FsL2dvb2dsZS9ob21lL3J1d2FuZy9yZWxlYXNlL2JlYW1fcmVsZWFzZS9kb2MvYmVhbS9zZGtzL3B5dGhvbi9hcGFjaGVfYmVhbS90eXBlaGludHMvZGVjb3JhdG9ycy5weTpkb2NzdHJpbmcgb2YgYXBhY2hlX2JlYW0udHlwZWhpbnRzLmRlY29yYXRvcnMuVHlwZUNoZWNrRXJyb3KUaB1OdWJqdgEAACmBlH2UKGgFaAZoB12UKGp7AQAAKYGUfZQoaAVqIQUAAGgHXZQoajUCAAApgZR9lChoBYwKZXhjZXB0aW9uIJRoB12UaBWMCmV4Y2VwdGlvbiCUhZSBlH2UKGgFaAZoG2orBQAAaAFoA2gcTmgdTnViYWgefZQoaCBdlGgiXZRoJF2UaCZdlGgoXZRofWh+dWgqajQCAABoG2ooBQAAaAFoA2gcjKgvdXNyL2xvY2FsL2dvb2dsZS9ob21lL3J1d2FuZy9yZWxlYXNlL2JlYW1fcmVsZWFzZS9kb2MvYmVhbS9zZGtzL3B5dGhvbi9hcGFjaGVfYmVhbS90eXBlaGludHMvZGVjb3JhdG9ycy5weTpkb2NzdHJpbmcgb2YgYXBhY2hlX2JlYW0udHlwZWhpbnRzLmRlY29yYXRvcnMuVHlwZUNoZWNrRXJyb3KUaB1OdWJqgQEAACmBlH2UKGgFjCFhcGFjaGVfYmVhbS50eXBlaGludHMuZGVjb3JhdG9ycy6UaAddlGgVjCFhcGFjaGVfYmVhbS50eXBlaGludHMuZGVjb3JhdG9ycy6UhZSBlH2UKGgFaAZoG2o6BQAAaAFoA2gcTmgdTnViYWgefZQoaCBdlGgiXZRoJF2UaCZdlGgoXZRo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bGVzL2FwYWNoZV9iZWFtL3R5cGVoaW50cy9kZWNvcmF0b3JzlIwFcmVmaWSUaucFAACMBnJlZmRvY5Rq5gEAAHVoKmrCAQAAaBtqGQYAAHViYWgefZQoaCBdlGgiXZRoJF2UaCZdlGgoXZSMBGV4cHKUau4BAAB1aCpqvQEAAGgbatIFAABoAWgDaBxOaB1OdWJlaB59lChoIF2Uas0FAABhaCJdlGgkXZRqzQUAAGFoJl2UaChdlGr1AQAAiWr2AQAAjCBhcGFjaGVfYmVhbS50eXBlaGludHMuZGVjb3JhdG9yc5Rq+AEAAGgGavkBAABq5wUAAHVoKmp6AQAAaBtqzwUAAGgBaANoHGrkBQAAaB1OdWJq+wEAACmBlH2UKGgFaAZoB12UKGhAKYGUfZQoaAWMS0EgZGVjb3JhdG9yIHRoYXQgdHlwZS1jaGVja3MgZGVmaW5lZCB0eXBlLWhpbnRzIHdpdGggcGFzc2VkIGZ1bmMgYXJndW1lbnRzLpRoB12UaBWMS0EgZGVjb3JhdG9yIHRoYXQgdHlwZS1jaGVja3MgZGVmaW5lZCB0eXBlLWhpbnRzIHdpdGggcGFzc2VkIGZ1bmMgYXJndW1lbnRzLpSFlIGUfZQoaAVqTAYAAGgbakoGAABoAWgDaBxOaB1OdWJhaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlHVoKmg/aByMqi91c3IvbG9jYWwvZ29vZ2xlL2hvbWUvcnV3YW5nL3JlbGVhc2UvYmVhbV9yZWxlYXNlL2RvYy9iZWFtL3Nka3MvcHl0aG9uL2FwYWNoZV9iZWFtL3R5cGVoaW50cy9kZWNvcmF0b3JzLnB5OmRvY3N0cmluZyBvZiBhcGFjaGVfYmVhbS50eXBlaGludHMuZGVjb3JhdG9ycy53aXRoX2lucHV0X3R5cGVzlGgdSwFoG2pHBgAAaAFoA3ViaEApgZR9lChoBYzVQWxsIHR5cGUtaGludGVkIGFyZ3VtZW50cyBjYW4gYmUgc3BlY2lmaWVkIHVzaW5nIHBvc2l0aW9uYWwgYXJndW1lbnRzLAprZXl3b3JkIGFyZ3VtZW50cywgb3IgYSBtaXggb2YgYm90aC4gQWRkaXRpb25hbHksIGFsbCBmdW5jdGlvbiBhcmd1bWVudHMgbXVzdApiZSB0eXBlLWhpbnRlZCBpbiB0b3RhbGl0eSBpZiBldmVuIG9uZSBwYXJhbWV0ZXIgaXMgdHlwZS1oaW50ZWQulGgHXZRoFYzVQWxsIHR5cGUtaGludGVkIGFyZ3VtZW50cyBjYW4gYmUgc3BlY2lmaWVkIHVzaW5nIHBvc2l0aW9uYWwgYXJndW1lbnRzLAprZXl3b3JkIGFyZ3VtZW50cywgb3IgYSBtaXggb2YgYm90aC4gQWRkaXRpb25hbHksIGFsbCBmdW5jdGlvbiBhcmd1bWVudHMgbXVzdApiZSB0eXBlLWhpbnRlZCBpbiB0b3RhbGl0eSBpZiBldmVuIG9uZSBwYXJhbWV0ZXIgaXMgdHlwZS1oaW50ZWQulIWUgZR9lChoBWpbBgAAaBtqWQYAAGgBaANoHE5oHU51YmFoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UdWgqaD9oHGpYBgAAaB1LA2gbakcGAABoAWgDdWJoQCmBlH2UKGgFjLBPbmNlIGZ1bGx5IGRlY29yYXRlZCwgaWYgdGhlIGFyZ3VtZW50cyBwYXNzZWQgdG8gdGhlIHJlc3VsdGluZyBmdW5jdGlvbgp2aW9sYXRlIHRoZSB0eXBlLWhpbnQgY29uc3RyYWludHMgZGVmaW5lZCwgYSA6Y2xhc3M6YFR5cGVDaGVja0Vycm9yYApkZXRhaWxpbmcgdGhlIGVycm9yIHdpbGwgYmUgcmFpc2VkLpRoB12UKGgVjHVPbmNlIGZ1bGx5IGRlY29yYXRlZCwgaWYgdGhlIGFyZ3VtZW50cyBwYXNzZWQgdG8gdGhlIHJlc3VsdGluZyBmdW5jdGlvbgp2aW9sYXRlIHRoZSB0eXBlLWhpbnQgY29uc3RyYWludHMgZGVmaW5lZCwgYSCUhZSBlH2UKGgFjHVPbmNlIGZ1bGx5IGRlY29yYXRlZCwgaWYgdGhlIGFyZ3VtZW50cyBwYXNzZWQgdG8gdGhlIHJlc3VsdGluZyBmdW5jdGlvbgp2aW9sYXRlIHRoZSB0eXBlLWhpbnQgY29uc3RyYWludHMgZGVmaW5lZCwgYSCUaBtqZwYAAGgBaANoHE5oHU51YmrDAQAAKYGUfZQoaAWMFzpjbGFzczpgVHlwZUNoZWNrRXJyb3JglGgHXZRqxgIAACmBlH2UKGgFanIGAABoB12UaBWMDlR5cGVD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lIGUfZQoaAVoBmgbausGAAB1YmFoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UdWgqaukGAABoG2rmBgAAaBxq5AUAAGgdSwB1YmgAjApmaWVsZF9ib2R5lJOUKYGUfZQoaAVoBmgHXZRoAIwLYnVsbGV0X2xpc3SUk5QpgZR9lChoBWgGaAddlChoAIwJbGlzdF9pdGVtlJOUKYGUfZQoaAVoBmgHXZRoQCmBlH2UKGgFWBEBAAAqcG9zaXRpb25hbF9oaW50cyAtLSBQb3NpdGlvbmFsIHR5cGUtaGludHMgaGF2aW5nIGlkZW50aWNhbCBvcmRlciBhcyB0aGUKZnVuY3Rpb24ncyBmb3JtYWwgYXJndW1lbnRzLiBWYWx1ZXMgZm9yIHRoaXMgYXJndW1lbnQgbXVzdCBlaXRoZXIgYmUgYQpidWlsdC1pbiBQeXRob24gdHlwZSBvciBhbiBpbnN0YW5jZSBvZiBhClR5cGVDb25zdHJhaW50IGNyZWF0ZWQgYnkKJ2luZGV4aW5nJyBhCkNvbXBvc2l0ZVR5cGVIaW50IGluc3RhbmNlCndpdGggYSB0eXBlIHBhcmFtZXRlci6UaAddlChoLIwObGl0ZXJhbF9zdHJvbmeUk5QpgZR9lChoBYwRKnBvc2l0aW9uYWxfaGludHOUaAddlGgVjBEqcG9zaXRpb25hbF9oaW50c5SFlIGUfZQoaAVoBmgbag4HAAB1YmFoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UjAtyZWZzcGVjaWZpY5SIdWgqagwHAABoG2oIBwAAdWJoFYwFIOKAkyCUhZSBlH2UKGgFaAZoG2oIBwAAdWJoFYymUG9zaXRpb25hbCB0eXBlLWhpbnRzIGhhdmluZyBpZGVudGljYWwgb3JkZXIgYXMgdGhlCmZ1bmN0aW9u4oCZcyBmb3JtYWwgYXJndW1lbnRzLiBWYWx1ZXMgZm9yIHRoaXMgYXJndW1lbnQgbXVzdCBlaXRoZXIgYmUgYQpidWlsdC1pbiBQeXRob24gdHlwZSBvciBhbiBpbnN0YW5jZSBvZiBhCpSFlIGUfZQoaAWMpFBvc2l0aW9uYWwgdHlwZS1oaW50cyBoYXZpbmcgaWRlbnRpY2FsIG9yZGVyIGFzIHRoZQpmdW5jdGlvbidzIGZvcm1hbCBhcmd1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c3BlY2lmaWVkLiBPciBpZiB0aGUgaW5uZXIgd3JhcHBlciBmdW5jdGlvbiBpc24ndAogIHBhc3NlZCBhIGZ1bmN0aW9uIG9iamVjdC4KKiA6Y2xhc3M6YFR5cGVDaGVja0Vycm9yYCAtLSBJZiB0aGUgYW55IG9mIHRoZSBwYXNzZWQgdHlwZS1oaW50CiAgY29uc3RyYWludHMgYXJlIG5vdCBhIHR5cGUgb3IKICA6Y2xhc3M6YH5hcGFjaGVfYmVhbS50eXBlaGludHMudHlwZWhpbnRzLlR5cGVDb25zdHJhaW50YCBpbnN0YW5jZS4KlGgHXZRq/wYAACmBlH2UKGgFaAZoB12UKGoEBwAAKYGUfZQoaAWMnjpjbGFzczpgVmFsdWVFcnJvcmAgLS0gSWYgbm90IGFsbCBmdW5jdGlvbiBhcmd1bWVudHMgaGF2ZQpjb3JyZXNwb25kaW5nIHR5cGUtaGludHMgc3BlY2lmaWVkLiBPciBpZiB0aGUgaW5uZXIgd3JhcHBlciBmdW5jdGlvbiBpc24ndApwYXNzZWQgYSBmdW5jdGlvbiBvYmplY3QulGgHXZRoQCmBlH2UKGgFjJ46Y2xhc3M6YFZhbHVlRXJyb3JgIC0tIElmIG5vdCBhbGwgZnVuY3Rpb24gYXJndW1lbnRzIGhhdmUKY29ycmVzcG9uZGluZyB0eXBlLWhpbnRzIHNwZWNpZmllZC4gT3IgaWYgdGhlIGlubmVyIHdyYXBwZXIgZnVuY3Rpb24gaXNuJ3QKcGFzc2VkIGEgZnVuY3Rpb24gb2JqZWN0LpRoB12UKGrDAQAAKYGUfZQoaAWMEzpjbGFzczpgVmFsdWVFcnJvcmCUaAddlGrGAgAAKYGUfZQoaAVqHAgAAGgHXZRoFYwKVmFsdWVFcnJvcpSFlIGUfZQoaAVoBmgbah4IAAB1YmFoHn2UKGggXZRoIl2UKGrRAgAAjAJweZSMCHB5LWNsYXNzlGVoJF2UaCZdlGgoXZR1aCpqxQIAAGgbahoIAAB1YmFoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UjAdyZWZ0eXBllIwFY2xhc3OUjAlyZWZkb21haW6UaigIAACMC3JlZmV4cGxpY2l0lIlq4QIAAGpGBgAAauICAABOauMCAACMClZhbHVlRXJyb3KUauUCAABq5gEAAGrmAgAAiXVoKmrCAQAAaBxqWAYAAGgdSzBoG2oWCAAAdWJoFYyOIOKAkyBJZiBub3QgYWxsIGZ1bmN0aW9uIGFyZ3VtZW50cyBoYXZlCmNvcnJlc3BvbmRpbmcgdHlwZS1oaW50cyBzcGVjaWZpZWQuIE9yIGlmIHRoZSBpbm5lciB3cmFwcGVyIGZ1bmN0aW9uIGlzbuKAmXQKcGFzc2VkIGEgZnVuY3Rpb24gb2JqZWN0LpSFlIGUfZQoaAWMiyAtLSBJZiBub3QgYWxsIGZ1bmN0aW9uIGFyZ3VtZW50cyBoYXZlCmNvcnJlc3BvbmRpbmcgdHlwZS1oaW50cyBzcGVjaWZpZWQuIE9yIGlmIHRoZSBpbm5lciB3cmFwcGVyIGZ1bmN0aW9uIGlzbid0CnBhc3NlZCBhIGZ1bmN0aW9uIG9iamVjdC6UaBtqFggAAHViZWgefZQoaCBdlGgiXZRoJF2UaCZdlGgoXZR1aCpoP2gcalgGAABoHUswaBtqEggAAHViYWgefZQoaCBdlGgiXZRoJF2UaCZdlGgoXZR1aCpqAwcAAGgbag8IAAB1YmoEBwAAKYGUfZQoaAWMnzpjbGFzczpgVHlwZUNoZWNrRXJyb3JgIC0tIElmIHRoZSBhbnkgb2YgdGhlIHBhc3NlZCB0eXBlLWhpbnQKY29uc3RyYWludHMgYXJlIG5vdCBhIHR5cGUgb3IKOmNsYXNzOmB+YXBhY2hlX2JlYW0udHlwZWhpbnRzLnR5cGVoaW50cy5UeXBlQ29uc3RyYWludGAgaW5zdGFuY2UuCpRoB12UaEApgZR9lChoBYyeOmNsYXNzOmBUeXBlQ2hlY2tFcnJvcmAgLS0gSWYgdGhlIGFueSBvZiB0aGUgcGFzc2VkIHR5cGUtaGludApjb25zdHJhaW50cyBhcmUgbm90IGEgdHlwZSBvcgo6Y2xhc3M6YH5hcGFjaGVfYmVhbS50eXBlaGludHMudHlwZWhpbnRzLlR5cGVDb25zdHJhaW50YCBpbnN0YW5jZS6UaAddlChqwwEAACmBlH2UKGgFjBc6Y2xhc3M6YFR5cGVDaGVja0Vycm9yYJRoB12UasYCAAApgZR9lChoBWpTCAAAaAddlGgVjA5UeXBlQ2hlY2tFcnJvcpSFlIGUfZQoaAVoBmgbalUIAAB1YmFo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aBxOaB1OdWJlaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlHVoKmr6AQAAaBtqzwUAAGgBaANoHGrkBQAAaB1OdWJlaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlGoZAgAAjAJweZRqGwIAAIwIZnVuY3Rpb26Uah0CAABq+QgAAGoeAgAAiXVoKmp1AQAAaAFoA2gbaAtoHE5oHU51YmguKYGUfZQoaAVoBmgHXZRoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UjAdlbnRyaWVzlF2UKGg6jEB3aXRoX291dHB1dF90eXBlcygpIChpbiBtb2R1bGUgYXBhY2hlX2JlYW0udHlwZWhpbnRzLmRlY29yYXRvcnMplIwyYXBhY2hlX2JlYW0udHlwZWhpbnRzLmRlY29yYXRvcnMud2l0aF9vdXRwdXRfdHlwZXOUaAZOdJRhdWgqaC1oG2gLaAFoA2gcTmgdTnVianYBAAApgZR9lChoBWgGaAddlChqewEAACmBlH2UKGgFjC53aXRoX291dHB1dF90eXBlcygqcmV0dXJuX3R5cGVfaGludCwgKiprd2FyZ3MplGgHXZQoaoEBAAApgZR9lChoBYwhYXBhY2hlX2JlYW0udHlwZWhpbnRzLmRlY29yYXRvcnMulGgHXZRoFYwhYXBhY2hlX2JlYW0udHlwZWhpbnRzLmRlY29yYXRvcnMulIWUgZR9lChoBWgGaBtqDwkAAGgBaANoHE5oHU51YmFoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UaH1ofnVoKmqAAQAAaBtqCwkAAGgBaANoHIyrL3Vzci9sb2NhbC9nb29nbGUvaG9tZS9ydXdhbmcvcmVsZWFzZS9iZWFtX3JlbGVhc2UvZG9jL2JlYW0vc2Rrcy9weXRob24vYXBhY2hlX2JlYW0vdHlwZWhpbnRzL2RlY29yYXRvcnMucHk6ZG9jc3RyaW5nIG9mIGFwYWNoZV9iZWFtLnR5cGVoaW50cy5kZWNvcmF0b3JzLndpdGhfb3V0cHV0X3R5cGVzlGgdTnViapIBAAApgZR9lChoBYwRd2l0aF9vdXRwdXRfdHlwZXOUaAddlGgVjBF3aXRoX291dHB1dF90eXBlc5SFlIGUfZQoaAVoBmgbah4JAABoAWgDaBxOaB1OdWJhaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlGh9aH51aCpqkQEAAGgbagsJAABoAWgDaBxqHQkAAGgdTnViaqIBAAApgZR9lChoBYwbKnJldHVybl90eXBlX2hpbnQsICoqa3dhcmdzlGgHXZQoaqgBAAApgZR9lChoBYwRKnJldHVybl90eXBlX2hpbnSUaAddlGgVjBEqcmV0dXJuX3R5cGVfaGludJSFlIGUfZQoaAVoBmgbajAJAAB1YmFoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UaH1ofnVoKmqnAQAAaBtqLAkAAHViaqgBAAApgZR9lChoBYwIKiprd2FyZ3OUaAddlGgVjAgqKmt3YXJnc5SFlIGUfZQoaAVoBmgbaj4JAAB1YmFoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UaH1ofnVoKmqnAQAAaBtqLAkAAHViZWgefZQoaCBdlGgiXZRoJF2UaCZdlGgoXZRofWh+dWgqaqEBAABoG2oLCQAAaAFoA2gcah0JAABoHU51Ymq+AQAAKYGUfZQoaAVoBmgHXZRqwwEAACmBlH2UKGgFaAZoB12UasgBAAApgZR9lChoBWgGaAddlGgVjAhbc291cmNlXZSFlIGUfZQoaAVoBmgbalgJAAB1YmFoHn2UKGggXZRoIl2UatMBAABhaCRdlGgmXZRoKF2UdWgqascBAABoG2pVCQAAdWJhaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlIwHcmVmdHlwZZRq3gEAAIwJcmVmZG9tYWlulGrgAQAAjAtyZWZleHBsaWNpdJSJjAlyZWZ0YXJnZXSUjClfbW9kdWxlcy9hcGFjaGVfYmVhbS90eXBlaGludHMvZGVjb3JhdG9yc5SMBXJlZmlklGogCQAAjAZyZWZkb2OUauYBAAB1aCpqwgEAAGgbalIJAAB1YmFoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UjARleHBylGruAQAAdWgqar0BAABoG2oLCQAAaAFoA2gcTmgdTnViZWgefZQoaCBdlGoGCQAAYWgiXZRoJF2UagYJAABhaCZdlGgoXZRq9QEAAIlq9gEAAIwgYXBhY2hlX2JlYW0udHlwZWhpbnRzLmRlY29yYXRvcnOUavgBAABoBmr5AQAAaiAJAAB1aCpqegEAAGgbaggJAABoAWgDaBxqHQkAAGgdTnViavsBAAApgZR9lChoBWgGaAddlChoQCmBlH2UKGgFjEVBIGRlY29yYXRvciB0aGF0IHR5cGUtY2hlY2tzIGRlZmluZWQgdHlwZS1oaW50cyBmb3IgcmV0dXJuIHZhbHVlcyhzKS6UaAddlGgVjEVBIGRlY29yYXRvciB0aGF0IHR5cGUtY2hlY2tzIGRlZmluZWQgdHlwZS1oaW50cyBmb3IgcmV0dXJuIHZhbHVlcyhzKS6UhZSBlH2UKGgFaoUJAABoG2qDCQAAaAFoA2gcTmgdTnViYWgefZQoaCBdlGgiXZRoJF2UaCZdlGgoXZR1aCpoP2gcjKsvdXNyL2xvY2FsL2dvb2dsZS9ob21lL3J1d2FuZy9yZWxlYXNlL2JlYW1fcmVsZWFzZS9kb2MvYmVhbS9zZGtzL3B5dGhvbi9hcGFjaGVfYmVhbS90eXBlaGludHMvZGVjb3JhdG9ycy5weTpkb2NzdHJpbmcgb2YgYXBhY2hlX2JlYW0udHlwZWhpbnRzLmRlY29yYXRvcnMud2l0aF9vdXRwdXRfdHlwZXOUaB1LAWgbaoAJAABoAWgDdWJoQCmBlH2UKGgFjE1UaGlzIGRlY29yYXRvciB3aWxsIHR5cGUtY2hlY2sgdGhlIHJldHVybiB2YWx1ZShzKSBvZiB0aGUgZGVjb3JhdGVkIGZ1bmN0aW9uLpRoB12UaBWMTVRoaXMgZGVjb3JhdG9yIHdpbGwgdHlwZS1jaGVjayB0aGUgcmV0dXJuIHZhbHVlKHMpIG9mIHRoZSBkZWNvcmF0ZWQgZnVuY3Rpb24ulIWUgZR9lChoBWqUCQAAaBtqkgkAAGgBaANoHE5oHU51YmFoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UdWgqaD9oHGqRCQAAaB1LA2gbaoAJAABoAWgDdWJoQCmBlH2UKGgFjOpPbmx5IGEgc2luZ2xlIHR5cGUtaGludCBpcyBhY2NlcHRlZCB0byBzcGVjaWZ5IHRoZSByZXR1cm4gdHlwZSBvZiB0aGUgcmV0dXJuCnZhbHVlLiBJZiB0aGUgZnVuY3Rpb24gdG8gYmUgZGVjb3JhdGVkIGhhcyBtdWx0aXBsZSByZXR1cm4gdmFsdWVzLCB0aGVuIG9uZQpzaG91bGQgdXNlOiBgYFR1cGxlW3R5cGVfMSwgdHlwZV8y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JF2UaCZdlGgoXZR1aCpq+QYAAGgbas8LAAB1YmVoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UdWgqauQGAABoG2o2CgAAdWJlaB59lChoIF2UaCJdlGgkXZRoJl2UaChdlHVoKmrfBgAAaBtqgAkAAGgBaANoHE5oHU51YmVoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UdWgqavoBAABoG2oICQAAaAFoA2gcah0JAABoHU51YmVoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UahkCAACMAnB5lGobAgAAjAhmdW5jdGlvbpRqHQIAAGoRDAAAah4CAACJdWgqanUBAABoAWgDaBtoC2gcTmgdTnViZWgefZQoaCBdlCiMJ21vZHVsZS1hcGFjaGVfYmVhbS50eXBlaGludHMuZGVjb3JhdG9yc5SMJ2FwYWNoZS1iZWFtLXR5cGVoaW50cy1kZWNvcmF0b3JzLW1vZHVsZZRlaCJdlGgkXZSMJ2FwYWNoZV9iZWFtLnR5cGVoaW50cy5kZWNvcmF0b3JzIG1vZHVsZZRhaCZdlGgoXZR1aCpoCWgbaANoAWgDaBxoK2gdSwJ1YmFoHn2UKGggXZRoIl2UaCRdlGgmXZRoKF2UjAZzb3VyY2WUaCt1aCpoAYwOY3VycmVudF9zb3VyY2WUTowMY3VycmVudF9saW5llE6MCHNldHRpbmdzlIwRZG9jdXRpbHMuZnJvbnRlbmSUjAZWYWx1ZXOUk5QpgZR9lChoDk6MCWdlbmVyYXRvcpROjAlkYXRlc3RhbXCUTowLc291cmNlX2xpbmuUTowKc291cmNlX3VybJROjA10b2NfYmFja2xpbmtzlIwFZW50cnmUjBJmb290bm90ZV9iYWNrbGlua3OUSwGMDXNlY3RudW1feGZvcm2USwGMDnN0cmlwX2NvbW1lbnRzlE6MG3N0cmlwX2VsZW1lbnRzX3dpdGhfY2xhc3Nlc5ROjA1zdHJpcF9jbGFzc2VzlE6MDHJlcG9ydF9sZXZlbJRLAowKaGFsdF9sZXZlbJRLBYwRZXhpdF9zdGF0dXNfbGV2ZWyUSwWMBWRlYnVnlE6MDndhcm5pbmdfc3RyZWFtlE6MCXRyYWNlYmFja5SIjA5pbnB1dF9lbmNvZGluZ5SMCXV0Zi04LXNpZ5SMHGlucHV0X2VuY29kaW5nX2Vycm9yX2hhbmRsZXKUjAZzdHJpY3SUjA9vdXRwdXRfZW5jb2RpbmeUjAV1dGYtOJSMHW91dHB1dF9lbmNvZGluZ19lcnJvcl9oYW5kbGVylGo+DAAAjA5lcnJvcl9lbmNvZGluZ5SMBVVURi04lIwcZXJyb3JfZW5jb2RpbmdfZXJyb3JfaGFuZGxlcpSMEGJhY2tzbGFzaHJlcGxhY2WUjA1sYW5ndWFnZV9jb2RllIwCZW6UjBNyZWNvcmRfZGVwZW5kZW5jaWVzlE6MBmNvbmZpZ5ROjAlpZF9wcmVmaXiUaAaMDmF1dG9faWRfcHJlZml4lIwCaWSUjA1kdW1wX3NldHRpbmdzlE6MDmR1bXBfaW50ZXJuYWxzlE6MD2R1bXBfdHJhbnNmb3Jtc5ROjA9kdW1wX3BzZXVkb194bWyUTowQZXhwb3NlX2ludGVybmFsc5ROjA5zdHJpY3RfdmlzaXRvcpROjA9fZGlzYWJsZV9jb25maWeUTowHX3NvdXJjZZRoK4wMX2Rlc3RpbmF0aW9ulE6MDV9jb25maWdfZmlsZXOUXZSMDnBlcF9yZWZlcmVuY2VzlE6MDHBlcF9iYXNlX3VybJSMIGh0dHBzOi8vd3d3LnB5dGhvbi5vcmcvZGV2L3BlcHMvlIwVcGVwX2ZpbGVfdXJsX3RlbXBsYXRllIwIcGVwLSUwNGSUjA5yZmNfcmVmZXJlbmNlc5ROjAxyZmNfYmFzZV91cmyUjBxodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvlIwJdGFiX3dpZHRolEsIjB10cmltX2Zvb3Rub3RlX3JlZmVyZW5jZV9zcGFjZZSJjBZmaWxlX2luc2VydGlvbl9lbmFibGVklIiMC3Jhd19lbmFibGVklEsBjBBzeW50YXhfaGlnaGxpZ2h0lIwEbG9uZ5SMDHNtYXJ0X3F1b3Rlc5SIjBNzbWFydHF1b3Rlc19sb2NhbGVzlF2UjB1jaGFyYWN0ZXJfbGV2ZWxfaW5saW5lX21hcmt1cJSJjA5kb2N0aXRsZV94Zm9ybZSJjA1kb2NpbmZvX3hmb3JtlEsBjBJzZWN0c3VidGl0bGVfeGZvcm2UiYwQZW1iZWRfc3R5bGVzaGVldJSJjBVjbG9ha19lbWFpbF9hZGRyZXNzZXOUiIwDZW52lE51YowIcmVwb3J0ZXKUTowQaW5kaXJlY3RfdGFyZ2V0c5RdlIwRc3Vic3RpdHV0aW9uX2RlZnOUfZSMEnN1YnN0aXR1dGlvbl9uYW1lc5R9lIwIcmVmbmFtZXOUfZSMBnJlZmlkc5R9lIwHbmFtZWlkc5R9lChqGAwAAGoVDAAAanIBAABqcgEAAGorAgAAaisCAABqCQMAAGoJAwAAapMDAABqkwMAAGoABAAAagAEAABqigQAAGqKBAAAaiIFAABqIgUAAGrNBQAAas0FAABqBgkAAGoGCQAAdYwJbmFtZXR5cGVzlH2UKGoYDAAATmpyAQAAiGorAgAAiGoJAwAAiGqTAwAAiGoABAAAiGqKBAAAiGoiBQAAiGrNBQAAiGoGCQAAiHVoIH2UKGoVDAAAaAtqFAwAAGgAjAZ0YXJnZXSUk5QpgZR9lChoBWgGaAddlGgefZQoaCBdlGoUDAAAYWgiXZRoJF2UaCZdlGgoXZSMBWlzbW9klIh1aCpqgAwAAGgbaAtoAWgDaBxoPmgdSwF1YmpyAQAAanwBAABqKwIAAGowAgAAagkDAABqDwMAAGqTAwAAapgDAABqAAQAAGoFBAAAaooEAABqjwQAAGoiBQAAaigFAABqzQUAAGrSBQAAagYJAABqCwkAAHWMDWZvb3Rub3RlX3JlZnOUfZSMDWNpdGF0aW9uX3JlZnOUfZSMDWF1dG9mb290bm90ZXOUXZSMEWF1dG9mb290bm90ZV9yZWZzlF2UjBBzeW1ib2xfZm9vdG5vdGVzlF2UjBRzeW1ib2xfZm9vdG5vdGVfcmVmc5RdlIwJZm9vdG5vdGVzlF2UjAljaXRhdGlvbnOUXZSMEmF1dG9mb290bm90ZV9zdGFydJRLAYwVc3ltYm9sX2Zvb3Rub3RlX3N0YXJ0lEsAjAppZF9jb3VudGVylIwLY29sbGVjdGlvbnOUjAdDb3VudGVylJOUfZSFlFKUjA5wYXJzZV9tZXNzYWdlc5RdlIwSdHJhbnNmb3JtX21lc3NhZ2VzlF2UjAt0cmFuc2Zvcm1lcpROjApkZWNvcmF0aW9ulE5oAWgDdWIu