<?xml version="1.0" encoding="utf-8" ?>
<otrs_package version="1.1">
    <Name>Webservice-CustomerOperations</Name>
    <Version>11.1.2</Version>
    <Vendor>Rother OSS GmbH</Vendor>
    <URL>https://otobo.io/</URL>
    <License>GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007</License>
    <ChangeLog Date="2026-11-03 15:17:13" Version="11.1.2">Catch duplicated CustomerIDs/UserLogins, improve error handling, add documentation and unit tests.</ChangeLog>
    <ChangeLog Date="2026-10-09 14:41:41" Version="11.1.1">Initial Release.</ChangeLog>
    <Description Lang="de">Verbesserungen am GenericInterface</Description>
    <Description Lang="en">Enhancements for the GenericInterface</Description>
    <Framework>11.1.x</Framework>
    <BuildCommitID>a73e768b98ae299c291ec1c5b0649cf9e649737c</BuildCommitID>
    <BuildDate>2026-11-03 15:17:17</BuildDate>
    <BuildHost>opms.rother-oss.com</BuildHost>
    <Filelist>
        <File Location="Kernel/GenericInterface/Operation/Customer/Common.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAxOCBQZXJsLVNlcnZpY2VzLmRlLCBodHRwOi8vcGVybC1zZXJ2aWNlcy5kZQojIENvcHlyaWdodCAoQykgMjAxOS0yMDI2IFJvdGhlciBPU1MgR21iSCwgaHR0cHM6Ly9vdG9iby5pby8KIyAtLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAojIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCiMgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OkdlbmVyaWNJbnRlcmZhY2U6Ok9wZXJhdGlvbjo6Q3VzdG9tZXI6OkNvbW1vbjsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCiMgY29yZSBtb2R1bGVzCnVzZSBNSU1FOjpCYXNlNjQoKTsKdXNlIE1haWw6OkFkZHJlc3M7CgojIENQQU4gbW9kdWxlcwoKIyBPVE9CTyBtb2R1bGVzCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKCm91ciAkT2JqZWN0TWFuYWdlckRpc2FibGVkID0gMTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OkdlbmVyaWNJbnRlcmZhY2U6Ok9wZXJhdGlvbjo6Q3VzdG9tZXI6OkNvbW1vbiAtIEJhc2UgY2xhc3MgZm9yIGFsbCBDdXN0b21lciBPcGVyYXRpb25zCgo9aGVhZDEgUFVCTElDIElOVEVSRkFDRQoKPWhlYWQyIEluaXQoKQoKaW5pdGlhbGl6ZSB0aGUgb3BlcmF0aW9uIGJ5IGNoZWNraW5nIHRoZSB3ZWIgc2VydmljZSBjb25maWd1cmF0aW9uIGFuZCBnYXRoZXIgb2YgdGhlIGR5bmFtaWMgZmllbGRzCgogICAgbXkgJFJldHVybiA9ICRDb21tb25PYmplY3QtPkluaXQoCiAgICAgICAgV2Vic2VydmljZUlEID0+IDEsCiAgICApOwoKcmV0dXJuczoKCiAgICAkUmV0dXJuID0gewogICAgICAgIFN1Y2Nlc3MgPT4gMSwgICAgICAgICAgICAgICAgICAgICAgICMgb3IgMCBpbiBjYXNlIG9mIGZhaWx1cmUsCiAgICAgICAgRXJyb3JNZXNzYWdlID0+ICdFcnJvciBNZXNzYWdlJywKICAgIH0KCj1jdXQKCnN1YiBJbml0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQKICAgIGlmICggISRQYXJhbXtXZWJzZXJ2aWNlSUR9ICkgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gIkdvdCBubyBXZWJzZXJ2aWNlSUQhIiwKICAgICAgICB9OwogICAgfQoKICAgICMgZ2V0IHdlYiBzZXJ2aWNlIGNvbmZpZ3VyYXRpb24KICAgIG15ICRXZWJzZXJ2aWNlID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVyaWNJbnRlcmZhY2U6OldlYnNlcnZpY2UnKS0+V2Vic2VydmljZUdldCgKICAgICAgICBJRCA9PiAkUGFyYW17V2Vic2VydmljZUlEfSwKICAgICk7CgogICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoJFdlYnNlcnZpY2UpICkgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4KICAgICAgICAgICAgICAgICdDb3VsZCBub3QgZGV0ZXJtaW5lIFdlYiBzZXJ2aWNlIGNvbmZpZ3VyYXRpb24nCiAgICAgICAgICAgICAgICAuICcgaW4gS2VybmVsOjpHZW5lcmljSW50ZXJmYWNlOjpPcGVyYXRpb246OkN1c3RvbWVyOjpDb21tb246Om5ldygpJywKICAgICAgICB9OwogICAgfQoKICAgICMgZ2V0IHRoZSBkeW5hbWljIGZpZWxkcwogICAgbXkgJER5bmFtaWNGaWVsZExpc3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkJyktPkR5bmFtaWNGaWVsZExpc3RHZXQoCiAgICAgICAgVmFsaWQgICAgICA9PiAxLAogICAgICAgIE9iamVjdFR5cGUgPT4gWyAnQ3VzdG9tZXJVc2VyJywgJ0N1c3RvbWVyQ29tcGFueScsIF0sCiAgICApOwoKICAgICMgY3JlYXRlIGEgRHluYW1pYyBGaWVsZHMgbG9va3VwIHRhYmxlIChieSBuYW1lKQogICAgRFlOQU1JQ0ZJRUxEOgogICAgZm9yIG15ICREeW5hbWljRmllbGQgKCAkRHluYW1pY0ZpZWxkTGlzdC0+QCogKSB7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgdW5sZXNzICREeW5hbWljRmllbGQ7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgdW5sZXNzIElzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGQpOwogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIHVubGVzcyAkRHluYW1pY0ZpZWxkLT57TmFtZX07CgogICAgICAgICRTZWxmLT57RHluYW1pY0ZpZWxkTG9va3VwfS0+eyAkRHluYW1pY0ZpZWxkLT57TmFtZX0gfSA9ICREeW5hbWljRmllbGQ7CiAgICB9CgogICAgcmV0dXJuIHsKICAgICAgICBTdWNjZXNzID0+IDEsCiAgICB9Owp9CgoxOwoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dD4uCgo9Y3V0Cg==</File>
        <File Location="Kernel/GenericInterface/Operation/Customer/CustomerUpsert.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAxOCBQZXJsLVNlcnZpY2VzLmRlLCBodHRwOi8vcGVybC1zZXJ2aWNlcy5kZQojIENvcHlyaWdodCAoQykgMjAxOS0yMDI2IFJvdGhlciBPU1MgR21iSCwgaHR0cHM6Ly9vdG9iby5pby8KIyAtLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAojIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCiMgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OkdlbmVyaWNJbnRlcmZhY2U6Ok9wZXJhdGlvbjo6Q3VzdG9tZXI6OkN1c3RvbWVyVXBzZXJ0OwoKdXNlIHY1LjI0Owp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgcGFyZW50IHF3KAogICAgS2VybmVsOjpHZW5lcmljSW50ZXJmYWNlOjpPcGVyYXRpb246OkNvbW1vbgogICAgS2VybmVsOjpHZW5lcmljSW50ZXJmYWNlOjpPcGVyYXRpb246OkN1c3RvbWVyOjpDb21tb24KKTsKCiMgY29yZSBtb2R1bGVzCgojIENQQU4gbW9kdWxlcwoKIyBPVE9CTyBtb2R1bGVzCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyhJc0FycmF5UmVmV2l0aERhdGEgSXNIYXNoUmVmV2l0aERhdGEgSXNTdHJpbmcgSXNTdHJpbmdXaXRoRGF0YSk7CgpvdXIgJE9iamVjdE1hbmFnZXJEaXNhYmxlZCA9IDE7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpHZW5lcmljSW50ZXJmYWNlOjpPcGVyYXRpb246OkN1c3RvbWVyOjpDdXN0b21lclVwc2VydCAtIEdlbmVyaWNJbnRlcmZhY2UgQ3VzdG9tZXIgQ3VzdG9tZXJVcHNlcnQgT3BlcmF0aW9uIGJhY2tlbmQKCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgo9aGVhZDIgbmV3KCkKCnVzdWFsbHksIHlvdSB3YW50IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiB0aGlzCmJ5IHVzaW5nIEtlcm5lbDo6R2VuZXJpY0ludGVyZmFjZTo6T3BlcmF0aW9uLT5uZXcoKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgY2hlY2sgbmVlZGVkIG9iamVjdHMKICAgIGZvciBteSAkTmVlZGVkIChxdyggRGVidWdnZXJPYmplY3QgV2Vic2VydmljZUlEICkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBTdWNjZXNzICAgICAgPT4gMCwKICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiR290IG5vICROZWVkZWQhIgogICAgICAgICAgICB9OwogICAgICAgIH0KCiAgICAgICAgJFNlbGYtPnskTmVlZGVkfSA9ICRQYXJhbXskTmVlZGVkfTsKICAgIH0KCiAgICAkU2VsZi0+e0NvbmZpZ30gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ0dlbmVyaWNJbnRlcmZhY2U6Ok9wZXJhdGlvbjo6Q3VzdG9tZXJVcHNlcnQnKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1oZWFkMiBSdW4oKQoKcGVyZm9ybSBDdXN0b21lclVwc2VydCBPcGVyYXRpb24uIFRoaXMgZnVuY3Rpb24gaXMgYWJsZSB0byBhY2NlcHQKb25lIG9yIG1vcmUgY3VzdG9tZXIgZW50cmllcyBpbiBvbmUgY2FsbCBhbmQgcmV0dXJucyBzdWNjZXNzZnVsbHkKaW5zZXJ0ZWQgb3IgdXBkYXRlZCBjdXN0b21lciBJRHMuCgogICAgbXkgJFJlc3VsdCA9ICRPcGVyYXRpb25PYmplY3QtPlJ1bigKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgVXNlckxvZ2luID0+ICdzb21lIGFnZW50IGxvZ2luJywgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBVc2VyTG9naW4gb3IgU2Vzc2lvbklEIGlzIHJlcXVpcmVkCiAgICAgICAgICAgIFNlc3Npb25JRCA9PiAxMjMsCiAgICAgICAgICAgIFBhc3N3b3JkICA9PiAnc29tZSBwYXNzd29yZCcsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgaWYgVXNlckxvZ2luIGlzIHNlbnQgdGhlbiBQYXNzd29yZCBpcyByZXF1aXJlZAoKICAgICAgICAgICAgQ3VzdG9tZXIgPT4geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBTaW5nbGUgY3VzdG9tZXIgb3IgY3VzdG9tZXIgbGlzdCBpcyByZXF1aXJlZAogICAgICAgICAgICAgICAgQ3VzdG9tZXJJRCAgICAgICAgICAgICAgPT4gJ3Rlc3QuY29tJywKICAgICAgICAgICAgICAgIEN1c3RvbWVyQ29tcGFueUlEICAgICAgID0+ICdvbGR0ZXN0LmNvbScsICAgICAgICAgICAgICAgIyByZXF1aXJlZCBmb3IgQ3VzdG9tZXJJRC11cGRhdGUgKGlmIG5vIHN1Y2ggY3VzdG9tZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBleGlzdHMsIHRoaXMgd2lsbCBiZSBpZ25vcmVkIGJ5IHRoZSBkZWZhdWx0IG1hcHBpbmcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBhbmQgaW5zdGVhZCBhIG5ldyBjdXN0b21lciB2aWEgQ3VzdG9tZXJJRCBpcyBpbnNlcnRlZCkKICAgICAgICAgICAgICAgIEN1c3RvbWVyQ29tcGFueU5hbWUgICAgID0+ICdUZXN0IEluYy4nLAogICAgICAgICAgICAgICAgQ3VzdG9tZXJDb21wYW55U3RyZWV0ICAgPT4gJzUyMDEgQmx1ZSBMYWdvb24gRHJpdmUnLAogICAgICAgICAgICAgICAgQ3VzdG9tZXJDb21wYW55WklQICAgICAgPT4gJzMzMTI2JywKICAgICAgICAgICAgICAgIEN1c3RvbWVyQ29tcGFueUNpdHkgICAgID0+ICdNaWFtaScsCiAgICAgICAgICAgICAgICBDdXN0b21lckNvbXBhbnlDb3VudHJ5ICA9PiAnVVNBJywKICAgICAgICAgICAgICAgIEN1c3RvbWVyQ29tcGFueVVSTCAgICAgID0+ICdodHRwOi8vZXhhbXBsZS5jb20nLAogICAgICAgICAgICAgICAgQ3VzdG9tZXJDb21wYW55Q29tbWVudCAgPT4gJ3NvbWUgY29tbWVudCcsCiAgICAgICAgICAgICAgICBWYWxpZElEICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICBDdXN0b21lciA9PiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQ3VzdG9tZXJJRCAgICAgICAgICA9PiAndGVzdC5jb20nLAogICAgICAgICAgICAgICAgICAgIEN1c3RvbWVyQ29tcGFueUlEICAgPT4gJ29sZHRlc3QuY29tJywKICAgICAgICAgICAgICAgICAgICBDdXN0b21lckNvbXBhbnlOYW1lID0+ICdUZXN0IEluYy4nLAogICAgICAgICAgICAgICAgICAgIEN1c3RvbWVyQ29tcGFueVN0cmVldCAgID0+ICc1MjAxIEJsdWUgTGFnb29uIERyaXZlJywKICAgICAgICAgICAgICAgICAgICBDdXN0b21lckNvbXBhbnlaSVAgICAgICA9PiAnMzMxMjYnLAogICAgICAgICAgICAgICAgICAgIEN1c3RvbWVyQ29tcGFueUNpdHkgICAgID0+ICdNaWFtaScsCiAgICAgICAgICAgICAgICAgICAgQ3VzdG9tZXJDb21wYW55Q291bnRyeSAgPT4gJ1VTQScsCiAgICAgICAgICAgICAgICAgICAgQ3VzdG9tZXJDb21wYW55VVJMICAgICAgPT4gJ2h0dHA6Ly9leGFtcGxlLmNvbScsCiAgICAgICAgICAgICAgICAgICAgQ3VzdG9tZXJDb21wYW55Q29tbWVudCAgPT4gJ3NvbWUgY29tbWVudCcsCiAgICAgICAgICAgICAgICAgICAgVmFsaWRJRCAgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIyAuIC4gLgogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICB9LAogICAgKTsKCiAgICAkUmVzdWx0ID0gewogICAgICAgIFN1Y2Nlc3MgICAgICAgICA9PiAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIDAgb3IgMQogICAgICAgIEVycm9yTWVzc2FnZSAgICA9PiAnJywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGluIGNhc2Ugb2YgZXJyb3IKICAgICAgICBEYXRhICAgICAgICAgICAgPT4geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyByZXN1bHQgZGF0YSBwYXlsb2FkIGFmdGVyIE9wZXJhdGlvbgogICAgICAgICAgICBDdXN0b21lcklEID0+ICcxMjMnLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHJldHVybnMgc2luZ2xlIGN1c3RvbWVyIG9yIGxpc3Qgb2YgYWxsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgc3VjY2Vzc2Z1bGx5IGluc2VydGVkL3VwZGF0ZWQgY3VzdG9tZXIKICAgICAgICAgICAgQ3VzdG9tZXJJRCA9PiBbJzEyMycsICc0NTYnXSwKICAgICAgICAgICAgRXJyb3IgICAgICA9PiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBzaG91bGQgbm90IHJldHVybiBlcnJvcnMKICAgICAgICAgICAgICAgIEVycm9yQ29kZSAgICA9PiAnQ3VzdG9tZXIuVXBzZXJ0LkVycm9yQ29kZScKICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAnRXJyb3IgRGVzY3JpcHRpb24nCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgIH07Cgo9Y3V0CgpzdWIgUnVuIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJEluaXRSZXN1bHQgPSAkU2VsZi0+SW5pdCgKICAgICAgICBXZWJzZXJ2aWNlSUQgPT4gJFNlbGYtPntXZWJzZXJ2aWNlSUR9LAogICAgKTsKCiAgICBpZiAoICEkSW5pdFJlc3VsdC0+e1N1Y2Nlc3N9ICkgewogICAgICAgIHJldHVybiAkU2VsZi0+UmV0dXJuRXJyb3IoCiAgICAgICAgICAgIEVycm9yQ29kZSAgICA9PiAnV2Vic2VydmljZS5JbnZhbGlkQ29uZmlndXJhdGlvbicsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAkSW5pdFJlc3VsdC0+e0Vycm9yTWVzc2FnZX0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKAogICAgICAgICEkUGFyYW17RGF0YX0tPntVc2VyTG9naW59CiAgICAgICAgJiYgISRQYXJhbXtEYXRhfS0+e1Nlc3Npb25JRH0KICAgICAgICApCiAgICB7CiAgICAgICAgcmV0dXJuICRTZWxmLT5SZXR1cm5FcnJvcigKICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdDdXN0b21lclVwc2VydC5NaXNzaW5nUGFyYW1ldGVyJywKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJDdXN0b21lclVwc2VydDogVXNlckxvZ2luIG9yIFNlc3Npb25JRCBpcyByZXF1aXJlZCEiLAogICAgICAgICk7CiAgICB9CgogICAgaWYgKCAkUGFyYW17RGF0YX0tPntVc2VyTG9naW59ICkgewoKICAgICAgICBpZiAoICEkUGFyYW17RGF0YX0tPntQYXNzd29yZH0gKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuICRTZWxmLT5SZXR1cm5FcnJvcigKICAgICAgICAgICAgICAgIEVycm9yQ29kZSAgICA9PiAnQ3VzdG9tZXJVcHNlcnQuTWlzc2luZ1BhcmFtZXRlcicsCiAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gIkN1c3RvbWVyVXBzZXJ0OiBQYXNzd29yZCBvciBTZXNzaW9uSUQgaXMgcmVxdWlyZWQhIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBhdXRoZW50aWNhdGUgdXNlcgogICAgbXkgKCAkVXNlcklELCAkVXNlclR5cGUgKSA9ICRTZWxmLT5BdXRoKAogICAgICAgICVQYXJhbSwKICAgICk7CgogICAgaWYgKCAhJFVzZXJJRCApIHsKICAgICAgICByZXR1cm4gJFNlbGYtPlJldHVybkVycm9yKAogICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ0N1c3RvbWVyVXBzZXJ0LkF1dGhGYWlsJywKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJDdXN0b21lclVwc2VydDogVXNlciBjb3VsZCBub3QgYmUgYXV0aGVudGljYXRlZCEiLAogICAgICAgICk7CiAgICB9CgogICAgbXkgJFBlcm1pc3Npb25Vc2VySUQgPSAkVXNlcklEOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJE5lZWRlZCAocXcoQ3VzdG9tZXIpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFte0RhdGF9LT57JE5lZWRlZH0gKSB7CiAgICAgICAgICAgIHJldHVybiAkU2VsZi0+UmV0dXJuRXJyb3IoCiAgICAgICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ0N1c3RvbWVyVXBzZXJ0Lk1pc3NpbmdQYXJhbWV0ZXInLAogICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJDdXN0b21lclVwc2VydDogJE5lZWRlZCBwYXJhbWV0ZXIgaXMgbWlzc2luZyBvciBub3QgdmFsaWQhIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgbXkgJFNpbmdsZUN1c3RvbWVyOwogICAgbXkgJFJlc3VsdCA9IHsKICAgICAgICBTdWNjZXNzID0+IDEsCiAgICAgICAgRGF0YSAgICA9PiB7fSwKICAgIH07CgogICAgIyB0cmFuc2Zvcm0gc2luZ2xlIGN1c3RvbWVycyB0byBhbiBhcnJheSByZWZlcmVuY2UKICAgIGlmICggIUlzQXJyYXlSZWZXaXRoRGF0YSggJFBhcmFte0RhdGF9e0N1c3RvbWVyfSApICkgewogICAgICAgICRQYXJhbXtEYXRhfXtDdXN0b21lcn0gPSBbICRQYXJhbXtEYXRhfXtDdXN0b21lcn0gXTsKICAgICAgICAkU2luZ2xlQ3VzdG9tZXIgPSAxOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJFJlc3VsdC0+e0RhdGF9LT57Q3VzdG9tZXJJRH0gPSBbXTsKICAgIH0KCiAgICAjIHVwc2VydCBlYWNoIGN1c3RvbWVyCiAgICBmb3IgbXkgJEN1c3RvbWVyICggQHsgJFBhcmFte0RhdGF9e0N1c3RvbWVyfSB9ICkgewoKICAgICAgICAjIHJlbW92ZSBsZWFkaW5nIGFuZCB0cmFpbGluZyBzcGFjZXMKICAgICAgICBBVFRSSUJVVEU6CiAgICAgICAgZm9yIG15ICRBdHRyaWJ1dGUgKCBzb3J0IGtleXMgJXskQ3VzdG9tZXJ9ICkgewogICAgICAgICAgICBuZXh0IEFUVFJJQlVURSBpZiAhJEN1c3RvbWVyLT57JEF0dHJpYnV0ZX07CiAgICAgICAgICAgIG5leHQgQVRUUklCVVRFIGlmIHJlZiAkQ3VzdG9tZXItPnskQXR0cmlidXRlfSBlcSAnSEFTSCc7CiAgICAgICAgICAgIG5leHQgQVRUUklCVVRFIGlmIHJlZiAkQ3VzdG9tZXItPnskQXR0cmlidXRlfSBlcSAnQVJSQVknOwoKICAgICAgICAgICAgJEN1c3RvbWVyLT57JEF0dHJpYnV0ZX0gPX4gc3tcQVxzK317fTsKICAgICAgICAgICAgJEN1c3RvbWVyLT57JEF0dHJpYnV0ZX0gPX4gc3tccytcen17fTsKICAgICAgICB9CgogICAgICAgIG15ICRDdXN0b21lckNoZWNrID0gJFNlbGYtPl9DaGVja0N1c3RvbWVyKCBDdXN0b21lciA9PiAkQ3VzdG9tZXIgKTsKCiAgICAgICAgIyBpZiBhbiBlcnJvciBvY2N1cnMsIHJldHVybiwgYnV0IHN0aWxsIGluY2x1ZGUgYWxsIGN1c3RvbWVycyBhbHJlYWR5IHVwc2VydGVkCiAgICAgICAgaWYgKCAhJEN1c3RvbWVyQ2hlY2stPntTdWNjZXNzfSApIHsKICAgICAgICAgICAgJFJlc3VsdC0+e1N1Y2Nlc3N9ICAgICAgID0gMDsKICAgICAgICAgICAgJFJlc3VsdC0+e0Vycm9yTWVzc2FnZX0gID0gIiRDdXN0b21lckNoZWNrLT57RXJyb3JDb2RlfTogJEN1c3RvbWVyQ2hlY2stPntFcnJvck1lc3NhZ2V9IjsKICAgICAgICAgICAgJFJlc3VsdC0+e0RhdGF9LT57RXJyb3J9ID0gewogICAgICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICRDdXN0b21lckNoZWNrLT57RXJyb3JDb2RlfSwKICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAkQ3VzdG9tZXJDaGVjay0+e0Vycm9yTWVzc2FnZX0sCiAgICAgICAgICAgIH07CgogICAgICAgICAgICByZXR1cm4gJFJlc3VsdDsKICAgICAgICB9CgogICAgICAgIG15ICRVcHNlcnRSZXN1bHQgPSAkU2VsZi0+X0N1c3RvbWVyVXBzZXJ0KAogICAgICAgICAgICBDdXN0b21lciA9PiAkQ3VzdG9tZXIsCiAgICAgICAgICAgIFVzZXJJRCAgID0+ICRVc2VySUQsCiAgICAgICAgKTsKCiAgICAgICAgIyBpZiBhbiBlcnJvciBvY2N1cnMsIHJldHVybiwgYnV0IHN0aWxsIGluY2x1ZGUgYWxsIGN1c3RvbWVycyBhbHJlYWR5IHVwc2VydGVkCiAgICAgICAgaWYgKCAhJFVwc2VydFJlc3VsdC0+e1N1Y2Nlc3N9ICkgewogICAgICAgICAgICAkUmVzdWx0LT57U3VjY2Vzc30gICAgICA9IDA7CiAgICAgICAgICAgICRSZXN1bHQtPntFcnJvck1lc3NhZ2V9ID0gJFVwc2VydFJlc3VsdC0+e0Vycm9yTWVzc2FnZX07CgogICAgICAgICAgICBpZiAoICRVcHNlcnRSZXN1bHQtPntFcnJvckNvZGV9ICkgewogICAgICAgICAgICAgICAgJFJlc3VsdC0+e0Vycm9yTWVzc2FnZX0gPSAiJFVwc2VydFJlc3VsdC0+e0Vycm9yQ29kZX06ICRVcHNlcnRSZXN1bHQtPntFcnJvck1lc3NhZ2V9IjsKICAgICAgICAgICAgICAgICRSZXN1bHQtPntEYXRhfS0+e0Vycm9yfSA9IHsKICAgICAgICAgICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJFVwc2VydFJlc3VsdC0+e0Vycm9yQ29kZX0sCiAgICAgICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICRVcHNlcnRSZXN1bHQtPntFcnJvck1lc3NhZ2V9LAogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuICRSZXN1bHQ7CiAgICAgICAgfQoKICAgICAgICBpZiAoJFNpbmdsZUN1c3RvbWVyKSB7CiAgICAgICAgICAgICRSZXN1bHQtPntEYXRhfS0+e0N1c3RvbWVySUR9ID0gJFVwc2VydFJlc3VsdC0+e0N1c3RvbWVySUR9OwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgcHVzaCBAeyAkUmVzdWx0LT57RGF0YX0tPntDdXN0b21lcklEfSB9LCAkVXBzZXJ0UmVzdWx0LT57Q3VzdG9tZXJJRH07CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiAkUmVzdWx0Owp9Cgo9YmVnaW4gSW50ZXJuYWw6Cgo9aGVhZDIgX0NoZWNrQ3VzdG9tZXIoKQoKY2hlY2tzIGlmIHRoZSBnaXZlbiBjdXN0b21lciBwYXJhbWV0ZXJzIGFyZSB2YWxpZC4KCiAgICBteSAkQ3VzdG9tZXJDaGVjayA9ICRPcGVyYXRpb25PYmplY3QtPl9DaGVja0N1c3RvbWVyKAogICAgICAgIEN1c3RvbWVyID0+ICRDdXN0b21lciwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBhbGwgY3VzdG9tZXIgcGFyYW1ldGVycwogICAgKTsKCiAgICByZXR1cm5zOgoKICAgICRDdXN0b21lckNoZWNrID0gewogICAgICAgIFN1Y2Nlc3MgPT4gMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBpZiBldmVyeXRoaW5nIGlzIE9LCiAgICB9CgogICAgJEN1c3RvbWVyQ2hlY2sgPSB7CiAgICAgICAgRXJyb3JDb2RlICAgID0+ICdGdW5jdGlvbi5FcnJvcicsICAgICAgICAgICAgICAgICAgICAjIGlmIGVycm9yCiAgICAgICAgRXJyb3JNZXNzYWdlID0+ICdFcnJvciBkZXNjcmlwdGlvbicsCiAgICB9Cgo9Y3V0CgpzdWIgX0NoZWNrQ3VzdG9tZXIgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkQ3VzdG9tZXIgPSAkUGFyYW17Q3VzdG9tZXJ9OwoKICAgICMgY2hlY2sgY3VzdG9tZXIgaW50ZXJuYWxseQogICAgZm9yIG15ICROZWVkZWQgKHF3KEN1c3RvbWVySUQgQ3VzdG9tZXJDb21wYW55TmFtZSkpIHsKICAgICAgICBpZiAoICEkQ3VzdG9tZXItPnskTmVlZGVkfSApIHsKICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIEVycm9yQ29kZSAgICA9PiAnQ3VzdG9tZXJVcHNlcnQuTWlzc2luZ1BhcmFtZXRlcicsCiAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gIkN1c3RvbWVyVXBzZXJ0OiBDdXN0b21lci0+JE5lZWRlZCBwYXJhbWV0ZXIgaXMgbWlzc2luZyEiLAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICAjIGlmIGV2ZXJ5dGhpbmcgaXMgT0sgdGhlbiByZXR1cm4gU3VjY2VzcwogICAgcmV0dXJuIHsKICAgICAgICBTdWNjZXNzID0+IDEsCiAgICB9Owp9Cgo9aGVhZDIgX0N1c3RvbWVyVXBzZXJ0KCkKCnVwZGF0ZXMgb3IgaW5zZXJ0cyBhIGN1c3RvbWVyLgoKICAgIG15ICRSZXNwb25zZSA9ICRPcGVyYXRpb25PYmplY3QtPl9DdXN0b21lclVwc2VydCgKICAgICAgICBDdXN0b21lciA9PiAkQ3VzdG9tZXIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgYWxsIGN1c3RvbWVyIHBhcmFtZXRlcnMKICAgICAgICBVc2VySUQgICA9PiAxMjMsCiAgICApOwoKICAgIHJldHVybnM6CgogICAgJFJlc3BvbnNlID0gewogICAgICAgIFN1Y2Nlc3MgICAgPT4gMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBpZiBldmVyeXRoaW5nIGlzIE9LCiAgICAgICAgQ3VzdG9tZXJJRCA9PiAndGVzdC5jb20nLAogICAgfQoKICAgICRSZXNwb25zZSA9IHsKICAgICAgICBTdWNjZXNzICAgICAgPT4gMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgaWYgYW4gZXJyb3Igb2NjdXJyZWQKICAgICAgICBFcnJvckNvZGUgICAgPT4gJ0Z1bmN0aW9uLkVycm9yJywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwKICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJ0Vycm9yIGRlc2NyaXB0aW9uJywKICAgIH0KCj1jdXQKCnN1YiBfQ3VzdG9tZXJVcHNlcnQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkQ3VzdG9tZXIgICA9ICRQYXJhbXtDdXN0b21lcn07CiAgICBteSAkQ3VzdG9tZXJJRCA9ICRDdXN0b21lci0+e0N1c3RvbWVySUR9OwoKICAgICMgY3VzdG9tZXJzIGFyZSBieSBkZWZhdWx0IHZhbGlkCiAgICAkQ3VzdG9tZXItPntWYWxpZElEfSAvLz0gMTsKCiAgICAjIGdldCBjdXN0b21lciBvYmplY3QKICAgIG15ICRDdXN0b21lck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDdXN0b21lckNvbXBhbnknKTsKCiAgICAjIGNoZWNrIHdoZXRoZXIgdGhpcyBjdXN0b21lciBleGlzdHMgKHVwZGF0ZSkgb3IgaXMgbmV3IChpbnNlcnQpCiAgICAkQ3VzdG9tZXItPntDdXN0b21lckNvbXBhbnlJRH0gfHw9ICRDdXN0b21lci0+e0N1c3RvbWVySUR9OwoKICAgIG15ICVDb21wYW55ID0gJEN1c3RvbWVyT2JqZWN0LT5DdXN0b21lckNvbXBhbnlHZXQoIEN1c3RvbWVySUQgPT4gJEN1c3RvbWVyLT57Q3VzdG9tZXJDb21wYW55SUR9ICk7CiAgICBpZiAoJUNvbXBhbnkpIHsKCiAgICAgICAgIyBjaGVjayBpZiBuZXcgQ3VzdG9tZXJJRCBhbHJlYWR5IGV4aXN0cwogICAgICAgIGlmICggJEN1c3RvbWVyLT57Q3VzdG9tZXJJRH0gbmUgJEN1c3RvbWVyLT57Q3VzdG9tZXJDb21wYW55SUR9ICkgewogICAgICAgICAgICBteSAlUmVzdWx0ID0gJEN1c3RvbWVyT2JqZWN0LT5DdXN0b21lckNvbXBhbnlHZXQoIEN1c3RvbWVySUQgPT4gJEN1c3RvbWVyLT57Q3VzdG9tZXJJRH0gKTsKICAgICAgICAgICAgaWYgKCVSZXN1bHQpIHsKICAgICAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICAgICAgU3VjY2VzcyAgICAgID0+IDAsCiAgICAgICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJDdXN0b21lciBcIiRDdXN0b21lci0+e0N1c3RvbWVySUR9XCIgYWxyZWFkeSBleGlzdHMuIiwKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIG15ICRTdWNjZXNzID0gJEN1c3RvbWVyT2JqZWN0LT5DdXN0b21lckNvbXBhbnlVcGRhdGUoCiAgICAgICAgICAgICV7JEN1c3RvbWVyfSwKICAgICAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CgogICAgICAgIGlmICggISRTdWNjZXNzICkgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgU3VjY2VzcyAgICAgID0+IDAsCiAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJ0N1c3RvbWVyIGNvdWxkIG5vdCBiZSB1cGRhdGVkLCBwbGVhc2UgY29udGFjdCB0aGUgc3lzdGVtIGFkbWluaXN0cmF0b3InLAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KICAgIGVsc2UgewogICAgICAgICRDdXN0b21lcklEID0gJEN1c3RvbWVyT2JqZWN0LT5DdXN0b21lckNvbXBhbnlBZGQoCiAgICAgICAgICAgICV7JEN1c3RvbWVyfSwKICAgICAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CgogICAgICAgIGlmICggISRDdXN0b21lcklEICkgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgU3VjY2VzcyAgICAgID0+IDAsCiAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJ0N1c3RvbWVyIGNvdWxkIG5vdCBiZSBpbnNlcnRlZCwgcGxlYXNlIGNvbnRhY3QgdGhlIHN5c3RlbSBhZG1pbmlzdHJhdG9yJywKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgbXkgJUN1c3RvbWVyRGF0YSA9ICRDdXN0b21lck9iamVjdC0+Q3VzdG9tZXJDb21wYW55R2V0KAogICAgICAgIEN1c3RvbWVySUQgPT4gJEN1c3RvbWVySUQsCiAgICAgICAgVXNlcklEICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoIFwlQ3VzdG9tZXJEYXRhICkgKSB7CiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgU3VjY2VzcyAgICAgID0+IDAsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAnQ291bGQgbm90IGdldCBuZXcgY3VzdG9tZXIgaW5mb3JtYXRpb24sIHBsZWFzZSBjb250YWN0IHRoZSBzeXN0ZW0nCiAgICAgICAgICAgICAgICAuICcgYWRtaW5pc3RyYXRvcicsCiAgICAgICAgfTsKICAgIH0KCiAgICByZXR1cm4gewogICAgICAgIFN1Y2Nlc3MgICAgPT4gMSwKICAgICAgICBDdXN0b21lcklEID0+ICRDdXN0b21lcklELAogICAgfTsKfQoKMTsKCj1lbmQgSW50ZXJuYWw6Cgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK</File>
        <File Location="Kernel/GenericInterface/Operation/Customer/CustomerUserUpsert.pm" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAxOCBQZXJsLVNlcnZpY2VzLmRlLCBodHRwOi8vcGVybC1zZXJ2aWNlcy5kZQojIENvcHlyaWdodCAoQykgMjAxOS0yMDI2IFJvdGhlciBPU1MgR21iSCwgaHR0cHM6Ly9vdG9iby5pby8KIyAtLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAojIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCiMgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OkdlbmVyaWNJbnRlcmZhY2U6Ok9wZXJhdGlvbjo6Q3VzdG9tZXI6OkN1c3RvbWVyVXNlclVwc2VydDsKCnVzZSB2NS4yNDsKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIHBhcmVudCBxdygKICAgIEtlcm5lbDo6R2VuZXJpY0ludGVyZmFjZTo6T3BlcmF0aW9uOjpDb21tb24KICAgIEtlcm5lbDo6R2VuZXJpY0ludGVyZmFjZTo6T3BlcmF0aW9uOjpDdXN0b21lcjo6Q29tbW9uCik7CgojIGNvcmUgbW9kdWxlcwoKIyBDUEFOIG1vZHVsZXMKCiMgT1RPQk8gbW9kdWxlcwp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoSXNBcnJheVJlZldpdGhEYXRhIElzSGFzaFJlZldpdGhEYXRhIElzU3RyaW5nIElzU3RyaW5nV2l0aERhdGEpOwoKb3VyICRPYmplY3RNYW5hZ2VyRGlzYWJsZWQgPSAxOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6R2VuZXJpY0ludGVyZmFjZTo6T3BlcmF0aW9uOjpDdXN0b21lcjo6Q3VzdG9tZXJVc2VyVXBzZXJ0IC0gR2VuZXJpY0ludGVyZmFjZSBDdXN0b21lciBDdXN0b21lclVzZXJVcHNlcnQgT3BlcmF0aW9uIGJhY2tlbmQKCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgo9aGVhZDIgbmV3KCkKCnVzdWFsbHksIHlvdSB3YW50IHRvIGNyZWF0ZSBhbiBpbnN0YW5jZSBvZiB0aGlzCmJ5IHVzaW5nIEtlcm5lbDo6R2VuZXJpY0ludGVyZmFjZTo6T3BlcmF0aW9uLT5uZXcoKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgY2hlY2sgbmVlZGVkIG9iamVjdHMKICAgIGZvciBteSAkTmVlZGVkIChxdyggRGVidWdnZXJPYmplY3QgV2Vic2VydmljZUlEICkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBTdWNjZXNzICAgICAgPT4gMCwKICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiR290IG5vICROZWVkZWQhIgogICAgICAgICAgICB9OwogICAgICAgIH0KCiAgICAgICAgJFNlbGYtPnskTmVlZGVkfSA9ICRQYXJhbXskTmVlZGVkfTsKICAgIH0KCiAgICAkU2VsZi0+e0NvbmZpZ30gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ0dlbmVyaWNJbnRlcmZhY2U6Ok9wZXJhdGlvbjo6Q3VzdG9tZXJVc2VyVXBzZXJ0Jyk7CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aGVhZDIgUnVuKCkKCnBlcmZvcm0gQ3VzdG9tZXJVc2VyVXBzZXJ0IE9wZXJhdGlvbi4gVGhpcyBmdW5jdGlvbiBpcyBhYmxlIHRvIGFjY2VwdApvbmUgb3IgbW9yZSBjdXN0b21lciB1c2VyIGVudHJpZXMgaW4gb25lIGNhbGwgYW5kIHJldHVybnMgc3VjY2Vzc2Z1bGx5Cmluc2VydGVkIG9yIHVwZGF0ZWQgY3VzdG9tZXIgdXNlciBsb2dpbnMuCgogICAgbXkgJFJlc3VsdCA9ICRPcGVyYXRpb25PYmplY3QtPlJ1bigKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgVXNlckxvZ2luID0+ICdzb21lIGFnZW50IGxvZ2luJywgICAgICAgICAgICAgICAgICAgICAgICAgICMgVXNlckxvZ2luIG9yIFNlc3Npb25JRCBpcyByZXF1aXJlZAogICAgICAgICAgICBTZXNzaW9uSUQgPT4gMTIzLAogICAgICAgICAgICBQYXNzd29yZCAgPT4gJ3NvbWUgcGFzc3dvcmQnLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBpZiBVc2VyTG9naW4gaXMgc2VudCB0aGVuIFBhc3N3b3JkIGlzIHJlcXVpcmVkCgogICAgICAgICAgICBDdXN0b21lclVzZXIgPT4geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBTaW5nbGUgY3VzdG9tZXIgdXNlciBvciBjdXN0b21lciB1c2VyIGxpc3QgaXMgcmVxdWlyZWQKICAgICAgICAgICAgICAgIFVzZXJMb2dpbiAgICAgID0+ICd0YycsCiAgICAgICAgICAgICAgICBJRCAgICAgICAgICAgICA9PiAnb2xkdGMnLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHJlcXVpcmVkIGZvciBVc2VyTG9naW4tdXBkYXRlIChpZiBubyBzdWNoIGN1c3RvbWVyIHVzZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgZXhpc3RzLCB0aGlzIHdpbGwgYmUgaWdub3JlZCBieSB0aGUgZGVmYXVsdCBtYXBwaW5nIGFuZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBpbnN0ZWFkIGEgbmV3IGN1c3RvbWVyIHVzZXIgdmlhIFVzZXJMb2dpbiBpcyBpbnNlcnRlZCkKICAgICAgICAgICAgICAgIFVzZXJGaXJzdG5hbWUgID0+ICdUZXN0JywKICAgICAgICAgICAgICAgIFVzZXJMYXN0bmFtZSAgID0+ICdDdXN0b21lcicsCiAgICAgICAgICAgICAgICBVc2VyUGFzc3dvcmQgICA9PiAnc29tZS1wYXNzJywgICAgICAgICAgICAgICAgICAgICAgICAjIG5vdCByZXF1aXJlZAogICAgICAgICAgICAgICAgVXNlckVtYWlsICAgICAgPT4gJ3Rlc3QuY3VzdG9tZXJAZXhhbXBsZS5jb20nLAogICAgICAgICAgICAgICAgVXNlckN1c3RvbWVySUQgPT4gJzEyMzQ1JywgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyByZXF1aXJlZCB3aGVuIGluc2VydGluZwogICAgICAgICAgICAgICAgVmFsaWRJRCAgICAgICAgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgQ3VzdG9tZXJVc2VyID0+IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBVc2VyTG9naW4gICAgICA9PiAndGMnLAogICAgICAgICAgICAgICAgICAgIFVzZXJQYXNzd29yZCAgID0+ICdzb21lLXBhc3MnLAogICAgICAgICAgICAgICAgICAgIFVzZXJGaXJzdG5hbWUgID0+ICdUZXN0JywKICAgICAgICAgICAgICAgICAgICBVc2VyTGFzdG5hbWUgICA9PiAnQ3VzdG9tZXInLAogICAgICAgICAgICAgICAgICAgIFVzZXJFbWFpbCAgICAgID0+ICd0ZXN0LmN1c3RvbWVyQGV4YW1wbGUuY29tJywKICAgICAgICAgICAgICAgICAgICBVc2VyQ3VzdG9tZXJJRCA9PiAnMTIzNDUnLAogICAgICAgICAgICAgICAgICAgIFZhbGlkSUQgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICMgLiAuIC4KICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIF0sCiAgICAgICAgfSwKICAgICk7CgogICAgJFJlc3VsdCA9IHsKICAgICAgICBTdWNjZXNzICAgICAgICAgPT4gMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgMCBvciAxCiAgICAgICAgRXJyb3JNZXNzYWdlICAgID0+ICcnLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGluIGNhc2Ugb2YgZXJyb3IKICAgICAgICBEYXRhICAgICAgICAgICAgPT4geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgcmVzdWx0IGRhdGEgcGF5bG9hZCBhZnRlciBPcGVyYXRpb24KICAgICAgICAgICAgVXNlckxvZ2luID0+ICd0YycsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgcmV0dXJucyBzaW5nbGUgY3VzdG9tZXIgdXNlciBvciBsaXN0IG9mIGFsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBzdWNjZXNzZnVsbHkgaW5zZXJ0ZWQvdXBkYXRlZCBjdXN0b21lciB1c2VycwogICAgICAgICAgICBVc2VyTG9naW4gPT4gWyd0YycsICd0YzInXSwKICAgICAgICAgICAgRXJyb3IgICAgID0+IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgc2hvdWxkIG5vdCByZXR1cm4gZXJyb3JzCiAgICAgICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ0N1c3RvbWVyVXNlci5VcHNlcnQuRXJyb3JDb2RlJwogICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICdFcnJvciBEZXNjcmlwdGlvbicKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfTsKCj1jdXQKCnN1YiBSdW4gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkSW5pdFJlc3VsdCA9ICRTZWxmLT5Jbml0KAogICAgICAgIFdlYnNlcnZpY2VJRCA9PiAkU2VsZi0+e1dlYnNlcnZpY2VJRH0sCiAgICApOwoKICAgIGlmICggISRJbml0UmVzdWx0LT57U3VjY2Vzc30gKSB7CiAgICAgICAgcmV0dXJuICRTZWxmLT5SZXR1cm5FcnJvcigKICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICdXZWJzZXJ2aWNlLkludmFsaWRDb25maWd1cmF0aW9uJywKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICRJbml0UmVzdWx0LT57RXJyb3JNZXNzYWdlfSwKICAgICAgICApOwogICAgfQoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoCiAgICAgICAgISRQYXJhbXtEYXRhfS0+e1VzZXJMb2dpbn0KICAgICAgICAmJiAhJFBhcmFte0RhdGF9LT57U2Vzc2lvbklEfQogICAgICAgICkKICAgIHsKICAgICAgICByZXR1cm4gJFNlbGYtPlJldHVybkVycm9yKAogICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ0N1c3RvbWVyVXNlclVwc2VydC5NaXNzaW5nUGFyYW1ldGVyJywKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJDdXN0b21lclVzZXJVcHNlcnQ6IFVzZXJMb2dpbiBvciBTZXNzaW9uSUQgaXMgcmVxdWlyZWQhIiwKICAgICAgICApOwogICAgfQoKICAgIGlmICggJFBhcmFte0RhdGF9LT57VXNlckxvZ2lufSApIHsKCiAgICAgICAgaWYgKCAhJFBhcmFte0RhdGF9LT57UGFzc3dvcmR9ICkKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiAkU2VsZi0+UmV0dXJuRXJyb3IoCiAgICAgICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ0N1c3RvbWVyVXNlclVwc2VydC5NaXNzaW5nUGFyYW1ldGVyJywKICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiQ3VzdG9tZXJVc2VyVXBzZXJ0OiBQYXNzd29yZCBvciBTZXNzaW9uSUQgaXMgcmVxdWlyZWQhIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBhdXRoZW50aWNhdGUgdXNlcgogICAgbXkgKCAkVXNlcklELCAkVXNlclR5cGUgKSA9ICRTZWxmLT5BdXRoKAogICAgICAgICVQYXJhbSwKICAgICk7CgogICAgaWYgKCAhJFVzZXJJRCApIHsKICAgICAgICByZXR1cm4gJFNlbGYtPlJldHVybkVycm9yKAogICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ0N1c3RvbWVyVXNlclVwc2VydC5BdXRoRmFpbCcsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiQ3VzdG9tZXJVc2VyVXBzZXJ0OiBVc2VyIGNvdWxkIG5vdCBiZSBhdXRoZW50aWNhdGVkISIsCiAgICAgICAgKTsKICAgIH0KCiAgICBteSAkUGVybWlzc2lvblVzZXJJRCA9ICRVc2VySUQ7CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkTmVlZGVkIChxdyhDdXN0b21lclVzZXIpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFte0RhdGF9LT57JE5lZWRlZH0gKSB7CiAgICAgICAgICAgIHJldHVybiAkU2VsZi0+UmV0dXJuRXJyb3IoCiAgICAgICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ0N1c3RvbWVyVXNlclVwc2VydC5NaXNzaW5nUGFyYW1ldGVyJywKICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiQ3VzdG9tZXJVc2VyVXBzZXJ0OiAkTmVlZGVkIHBhcmFtZXRlciBpcyBtaXNzaW5nIG9yIG5vdCB2YWxpZCEiLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICBteSAkU2luZ2xlQ3VzdG9tZXJVc2VyOwogICAgbXkgJFJlc3VsdCA9IHsKICAgICAgICBTdWNjZXNzID0+IDEsCiAgICAgICAgRGF0YSAgICA9PiB7fSwKICAgIH07CgogICAgIyB0cmFuc2Zvcm0gc2luZ2xlIGN1c3RvbWVyIHVzZXJzIHRvIGFuIGFycmF5IHJlZmVyZW5jZQogICAgaWYgKCAhSXNBcnJheVJlZldpdGhEYXRhKCAkUGFyYW17RGF0YX17Q3VzdG9tZXJVc2VyfSApICkgewogICAgICAgICRQYXJhbXtEYXRhfXtDdXN0b21lclVzZXJ9ID0gWyAkUGFyYW17RGF0YX17Q3VzdG9tZXJVc2VyfSBdOwogICAgICAgICRTaW5nbGVDdXN0b21lclVzZXIgPSAxOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJFJlc3VsdC0+e0RhdGF9LT57VXNlckxvZ2lufSA9IFtdOwogICAgfQoKICAgICMgdXBzZXJ0IGVhY2ggY3VzdG9tZXIgdXNlcgogICAgZm9yIG15ICRDdXN0b21lclVzZXIgKCBAeyAkUGFyYW17RGF0YX17Q3VzdG9tZXJVc2VyfSB9ICkgewoKICAgICAgICAjIHJlbW92ZSBsZWFkaW5nIGFuZCB0cmFpbGluZyBzcGFjZXMKICAgICAgICBBVFRSSUJVVEU6CiAgICAgICAgZm9yIG15ICRBdHRyaWJ1dGUgKCBzb3J0IGtleXMgJXskQ3VzdG9tZXJVc2VyfSApIHsKICAgICAgICAgICAgbmV4dCBBVFRSSUJVVEUgaWYgISRDdXN0b21lclVzZXItPnskQXR0cmlidXRlfTsKICAgICAgICAgICAgbmV4dCBBVFRSSUJVVEUgaWYgcmVmICRDdXN0b21lclVzZXItPnskQXR0cmlidXRlfSBlcSAnSEFTSCc7CiAgICAgICAgICAgIG5leHQgQVRUUklCVVRFIGlmIHJlZiAkQ3VzdG9tZXJVc2VyLT57JEF0dHJpYnV0ZX0gZXEgJ0FSUkFZJzsKCiAgICAgICAgICAgICRDdXN0b21lclVzZXItPnskQXR0cmlidXRlfSA9fiBze1xBXHMrfXt9OwogICAgICAgICAgICAkQ3VzdG9tZXJVc2VyLT57JEF0dHJpYnV0ZX0gPX4gc3tccytcen17fTsKICAgICAgICB9CgogICAgICAgIG15ICRDdXN0b21lclVzZXJDaGVjayA9ICRTZWxmLT5fQ2hlY2tDdXN0b21lclVzZXIoIEN1c3RvbWVyVXNlciA9PiAkQ3VzdG9tZXJVc2VyICk7CgogICAgICAgICMgaWYgYW4gZXJyb3Igb2NjdXJzLCByZXR1cm4sIGJ1dCBzdGlsbCBpbmNsdWRlIGFsbCBjdXN0b21lciB1c2VycyBhbHJlYWR5IHVwc2VydGVkCiAgICAgICAgaWYgKCAhJEN1c3RvbWVyVXNlckNoZWNrLT57U3VjY2Vzc30gKSB7CiAgICAgICAgICAgICRSZXN1bHQtPntTdWNjZXNzfSAgICAgICA9IDA7CiAgICAgICAgICAgICRSZXN1bHQtPntFcnJvck1lc3NhZ2V9ICA9ICIkQ3VzdG9tZXJVc2VyQ2hlY2stPntFcnJvckNvZGV9OiAkQ3VzdG9tZXJVc2VyQ2hlY2stPntFcnJvck1lc3NhZ2V9IjsKICAgICAgICAgICAgJFJlc3VsdC0+e0RhdGF9LT57RXJyb3J9ID0gewogICAgICAgICAgICAgICAgRXJyb3JDb2RlICAgID0+ICRDdXN0b21lclVzZXJDaGVjay0+e0Vycm9yQ29kZX0sCiAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJEN1c3RvbWVyVXNlckNoZWNrLT57RXJyb3JNZXNzYWdlfSwKICAgICAgICAgICAgfTsKCiAgICAgICAgICAgIHJldHVybiAkUmVzdWx0OwogICAgICAgIH0KCiAgICAgICAgbXkgJFVwc2VydFJlc3VsdCA9ICRTZWxmLT5fQ3VzdG9tZXJVc2VyVXBzZXJ0KAogICAgICAgICAgICBDdXN0b21lclVzZXIgPT4gJEN1c3RvbWVyVXNlciwKICAgICAgICAgICAgVXNlcklEICAgICAgID0+ICRVc2VySUQsCiAgICAgICAgKTsKCiAgICAgICAgIyBpZiBhbiBlcnJvciBvY2N1cnMsIHJldHVybiwgYnV0IHN0aWxsIGluY2x1ZGUgYWxsIGN1c3RvbWVyIHVzZXJzIGFscmVhZHkgdXBzZXJ0ZWQKICAgICAgICBpZiAoICEkVXBzZXJ0UmVzdWx0LT57U3VjY2Vzc30gKSB7CiAgICAgICAgICAgICRSZXN1bHQtPntTdWNjZXNzfSAgICAgID0gMDsKICAgICAgICAgICAgJFJlc3VsdC0+e0Vycm9yTWVzc2FnZX0gPSAkVXBzZXJ0UmVzdWx0LT57RXJyb3JNZXNzYWdlfTsKCiAgICAgICAgICAgIGlmICggJFVwc2VydFJlc3VsdC0+e0Vycm9yQ29kZX0gKSB7CiAgICAgICAgICAgICAgICAkUmVzdWx0LT57RXJyb3JNZXNzYWdlfSA9ICIkVXBzZXJ0UmVzdWx0LT57RXJyb3JDb2RlfTogJFVwc2VydFJlc3VsdC0+e0Vycm9yTWVzc2FnZX0iOwogICAgICAgICAgICAgICAgJFJlc3VsdC0+e0RhdGF9LT57RXJyb3J9ID0gewogICAgICAgICAgICAgICAgICAgIEVycm9yQ29kZSAgICA9PiAkVXBzZXJ0UmVzdWx0LT57RXJyb3JDb2RlfSwKICAgICAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJFVwc2VydFJlc3VsdC0+e0Vycm9yTWVzc2FnZX0sCiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICB9CgogICAgICAgICAgICByZXR1cm4gJFJlc3VsdDsKICAgICAgICB9CgogICAgICAgIGlmICgkU2luZ2xlQ3VzdG9tZXJVc2VyKSB7CiAgICAgICAgICAgICRSZXN1bHQtPntEYXRhfS0+e1VzZXJMb2dpbn0gPSAkVXBzZXJ0UmVzdWx0LT57VXNlckxvZ2lufTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIHB1c2ggQHsgJFJlc3VsdC0+e0RhdGF9LT57VXNlckxvZ2lufSB9LCAkVXBzZXJ0UmVzdWx0LT57VXNlckxvZ2lufTsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuICRSZXN1bHQ7Cn0KCj1iZWdpbiBJbnRlcm5hbDoKCj1oZWFkMiBfQ2hlY2tDdXN0b21lclVzZXIoKQoKY2hlY2tzIGlmIHRoZSBnaXZlbiBjdXN0b21lciB1c2VyIHBhcmFtZXRlcnMgYXJlIHZhbGlkLgoKICAgIG15ICRDdXN0b21lclVzZXJDaGVjayA9ICRPcGVyYXRpb25PYmplY3QtPl9DaGVja0N1c3RvbWVyVXNlcigKICAgICAgICBDdXN0b21lclVzZXIgPT4gJEN1c3RvbWVyVXNlciwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBhbGwgY3VzdG9tZXIgdXNlciBwYXJhbWV0ZXJzCiAgICApOwoKICAgIHJldHVybnM6CgogICAgJEN1c3RvbWVyVXNlckNoZWNrID0gewogICAgICAgIFN1Y2Nlc3MgPT4gMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGlmIGV2ZXJ5dGhpbmcgaXMgT0sKICAgIH0KCiAgICAkQ3VzdG9tZXJVc2VyQ2hlY2sgPSB7CiAgICAgICAgRXJyb3JDb2RlICAgID0+ICdGdW5jdGlvbi5FcnJvcicsICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgaWYgZXJyb3IKICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJ0Vycm9yIGRlc2NyaXB0aW9uJywKICAgIH0KCj1jdXQKCnN1YiBfQ2hlY2tDdXN0b21lclVzZXIgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkQ3VzdG9tZXJVc2VyID0gJFBhcmFte0N1c3RvbWVyVXNlcn07CgogICAgIyBjaGVjayBjdXN0b21lciB1c2VyIGludGVybmFsbHkKICAgIGZvciBteSAkTmVlZGVkIChxdyhVc2VyRmlyc3RuYW1lIFVzZXJMYXN0bmFtZSBVc2VyTG9naW4gVXNlckVtYWlsKSkgewogICAgICAgIGlmICggISRDdXN0b21lclVzZXItPnskTmVlZGVkfSApIHsKICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIEVycm9yQ29kZSAgICA9PiAnQ3VzdG9tZXJVc2VyVXBzZXJ0Lk1pc3NpbmdQYXJhbWV0ZXInLAogICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICJDdXN0b21lclVzZXJVcHNlcnQ6IEN1c3RvbWVyVXNlci0+JE5lZWRlZCBwYXJhbWV0ZXIgaXMgbWlzc2luZyEiLAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICAjIGlmIGV2ZXJ5dGhpbmcgaXMgT0sgdGhlbiByZXR1cm4gU3VjY2VzcwogICAgcmV0dXJuIHsKICAgICAgICBTdWNjZXNzID0+IDEsCiAgICB9Owp9Cgo9aGVhZDIgX0N1c3RvbWVyVXNlclVwc2VydCgpCgp1cGRhdGVzIG9yIGluc2VydHMgYSBjdXN0b21lciB1c2VyLgoKICAgIG15ICRSZXNwb25zZSA9ICRPcGVyYXRpb25PYmplY3QtPl9DdXN0b21lclVzZXJVcHNlcnQoCiAgICAgICAgQ3VzdG9tZXJVc2VyID0+ICRDdXN0b21lclVzZXIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGFsbCBjdXN0b21lciB1c2VyIHBhcmFtZXRlcnMKICAgICAgICBVc2VySUQgICAgICAgPT4gMTIzLAogICAgKTsKCiAgICByZXR1cm5zOgoKICAgICRSZXNwb25zZSA9IHsKICAgICAgICBTdWNjZXNzICAgID0+IDEsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgaWYgZXZlcnl0aGluZyBpcyBPSwogICAgICAgIFVzZXJMb2dpbiAgPT4gJ3RjJywKICAgIH0KCiAgICAkUmVzcG9uc2UgPSB7CiAgICAgICAgU3VjY2VzcyAgICAgID0+IDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGlmIGFuIGVycm9yIG9jY3VycmVkCiAgICAgICAgRXJyb3JDb2RlICAgID0+ICdGdW5jdGlvbi5FcnJvcicsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIG9wdGlvbmFsCiAgICAgICAgRXJyb3JNZXNzYWdlID0+ICdFcnJvciBkZXNjcmlwdGlvbicsCiAgICB9Cgo9Y3V0CgpzdWIgX0N1c3RvbWVyVXNlclVwc2VydCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRDdXN0b21lclVzZXIgPSAkUGFyYW17Q3VzdG9tZXJVc2VyfTsKICAgIG15ICRVc2VyTG9naW4gICAgPSAkQ3VzdG9tZXJVc2VyLT57VXNlckxvZ2lufTsKCiAgICAjIGN1c3RvbWVyIHVzZXJzIGFyZSBieSBkZWZhdWx0IHZhbGlkCiAgICAkQ3VzdG9tZXJVc2VyLT57VmFsaWRJRH0gLy89IDE7CgogICAgIyBnZXQgY3VzdG9tZXIgdXNlciBvYmplY3QKICAgIG15ICRDdXN0b21lclVzZXJPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q3VzdG9tZXJVc2VyJyk7CgogICAgIyBjaGVjayB3aGV0aGVyIHRoaXMgY3VzdG9tZXIgdXNlciBleGlzdHMgKHVwZGF0ZSkgb3IgaXMgbmV3IChpbnNlcnQpCiAgICAkQ3VzdG9tZXJVc2VyLT57SUR9IHx8PSAkQ3VzdG9tZXJVc2VyLT57VXNlckxvZ2lufTsKCiAgICBteSAlVXNlciA9ICRDdXN0b21lclVzZXJPYmplY3QtPkN1c3RvbWVyVXNlckRhdGFHZXQoCiAgICAgICAgVXNlciAgID0+ICRDdXN0b21lclVzZXItPntJRH0sCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKICAgIGlmICglVXNlcikgewoKICAgICAgICAjIGNoZWNrIGlmIG5ldyBVc2VyTG9naW4gYWxyZWFkeSBleGlzdHMKICAgICAgICBpZiAoICRDdXN0b21lclVzZXItPntVc2VyTG9naW59IG5lICRDdXN0b21lclVzZXItPntJRH0gKSB7CiAgICAgICAgICAgIG15ICVSZXN1bHQgPSAkQ3VzdG9tZXJVc2VyT2JqZWN0LT5DdXN0b21lclVzZXJEYXRhR2V0KCBVc2VyID0+ICRDdXN0b21lclVzZXItPntVc2VyTG9naW59ICk7CiAgICAgICAgICAgIGlmICglUmVzdWx0KSB7CiAgICAgICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLAogICAgICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiQ3VzdG9tZXIgdXNlciBcIiRDdXN0b21lclVzZXItPntVc2VyTG9naW59XCIgYWxyZWFkeSBleGlzdHMuIiwKICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgVXNlckN1c3RvbWVySUQgaXMgb3B0aW9uYWwgb24gdXBkYXRlLCBrZWVwIHRoZSBjdXJyZW50IG9uZSBpZiBub25lIGlzIGdpdmVuCiAgICAgICAgJEN1c3RvbWVyVXNlci0+e1VzZXJDdXN0b21lcklEfSB8fD0gJFVzZXJ7VXNlckN1c3RvbWVySUR9OwoKICAgICAgICBteSAkU3VjY2VzcyA9ICRDdXN0b21lclVzZXJPYmplY3QtPkN1c3RvbWVyVXNlclVwZGF0ZSgKICAgICAgICAgICAgJXskQ3VzdG9tZXJVc2VyfSwKICAgICAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CgogICAgICAgIGlmICggISRTdWNjZXNzICkgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgU3VjY2VzcyAgICAgID0+IDAsCiAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJ0N1c3RvbWVyIGNvdWxkIG5vdCBiZSB1cGRhdGVkLCBwbGVhc2UgY29udGFjdCB0aGUgc3lzdGVtIGFkbWluaXN0cmF0b3InLAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KICAgIGVsc2UgewoKICAgICAgICAjIHdoZW4gYWRkaW5nIGEgbmV3IGN1c3RvbWVyIHVzZXIsIHRoZSBjdXN0b21lciAoY29tcGFueSkgaXMgcmVxdWlyZWQKICAgICAgICBpZiAoICEkQ3VzdG9tZXJVc2VyLT57VXNlckN1c3RvbWVySUR9ICkgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgU3VjY2VzcyAgICAgID0+IDAsCiAgICAgICAgICAgICAgICBFcnJvckNvZGUgICAgPT4gJ0N1c3RvbWVyVXNlclVwc2VydC5NaXNzaW5nUGFyYW1ldGVyJywKICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiQ3VzdG9tZXJVc2VyVXBzZXJ0OiBDdXN0b21lclVzZXItPlVzZXJDdXN0b21lcklEIHBhcmFtZXRlciBpcyBtaXNzaW5nISIsCiAgICAgICAgICAgIH07CiAgICAgICAgfQoKICAgICAgICAkVXNlckxvZ2luID0gJEN1c3RvbWVyVXNlck9iamVjdC0+Q3VzdG9tZXJVc2VyQWRkKAogICAgICAgICAgICAleyRDdXN0b21lclVzZXJ9LAogICAgICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCAhJFVzZXJMb2dpbiApIHsKICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLAogICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICdDdXN0b21lciBjb3VsZCBub3QgYmUgaW5zZXJ0ZWQsIHBsZWFzZSBjb250YWN0IHRoZSBzeXN0ZW0gYWRtaW5pc3RyYXRvcicsCiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgfQoKICAgIG15ICVDdXN0b21lclVzZXJEYXRhID0gJEN1c3RvbWVyVXNlck9iamVjdC0+Q3VzdG9tZXJVc2VyRGF0YUdldCgKICAgICAgICBVc2VyICAgPT4gJFVzZXJMb2dpbiwKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCBcJUN1c3RvbWVyVXNlckRhdGEgKSApIHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBTdWNjZXNzICAgICAgPT4gMCwKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICdDb3VsZCBub3QgZ2V0IG5ldyBjdXN0b21lciB1c2VyIGluZm9ybWF0aW9uLCBwbGVhc2UgY29udGFjdCB0aGUgc3lzdGVtJwogICAgICAgICAgICAgICAgLiAnIGFkbWluaXN0cmF0b3InLAogICAgICAgIH07CiAgICB9CgogICAgcmV0dXJuIHsKICAgICAgICBTdWNjZXNzICAgPT4gMSwKICAgICAgICBVc2VyTG9naW4gPT4gJFVzZXJMb2dpbiwKICAgIH07Cn0KCjE7Cgo9ZW5kIEludGVybmFsOgoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dD4uCgo9Y3V0Cg==</File>
        <File Location="Kernel/Config/Files/XML/WebserviceCustomerOperations.xml" Permission="660" Encode="Base64">PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPG90b2JvX2NvbmZpZyB2ZXJzaW9uPSIyLjAiIGluaXQ9IkNvbmZpZyI+CiAgICA8U2V0dGluZyBOYW1lPSJHZW5lcmljSW50ZXJmYWNlOjpPcGVyYXRpb246Ok1vZHVsZSMjI0N1c3RvbWVyOjpDdXN0b21lclVwc2VydCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5HZW5lcmljSW50ZXJmYWNlIG1vZHVsZSByZWdpc3RyYXRpb24gZm9yIHRoZSBvcGVyYXRpb24gbGF5ZXIuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8TmF2aWdhdGlvbj5HZW5lcmljSW50ZXJmYWNlOjpPcGVyYXRpb246Ok1vZHVsZVJlZ2lzdHJhdGlvbjwvTmF2aWdhdGlvbj4KICAgICAgICA8VmFsdWU+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJOYW1lIj5DdXN0b21lclVwc2VydDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ29udHJvbGxlciI+Q3VzdG9tZXI8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkNvbmZpZ0RpYWxvZyI+QWRtaW5HZW5lcmljSW50ZXJmYWNlT3BlcmF0aW9uRGVmYXVsdDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvVmFsdWU+CiAgICA8L1NldHRpbmc+CiAgICA8U2V0dGluZyBOYW1lPSJHZW5lcmljSW50ZXJmYWNlOjpPcGVyYXRpb246Ok1vZHVsZSMjI0N1c3RvbWVyOjpDdXN0b21lclVzZXJVcHNlcnQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+R2VuZXJpY0ludGVyZmFjZSBtb2R1bGUgcmVnaXN0cmF0aW9uIGZvciB0aGUgb3BlcmF0aW9uIGxheWVyLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPE5hdmlnYXRpb24+R2VuZXJpY0ludGVyZmFjZTo6T3BlcmF0aW9uOjpNb2R1bGVSZWdpc3RyYXRpb248L05hdmlnYXRpb24+CiAgICAgICAgPFZhbHVlPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTmFtZSI+Q3VzdG9tZXJVc2VyVXBzZXJ0PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJDb250cm9sbGVyIj5DdXN0b21lcjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQ29uZmlnRGlhbG9nIj5BZG1pbkdlbmVyaWNJbnRlcmZhY2VPcGVyYXRpb25EZWZhdWx0PC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9WYWx1ZT4KICAgIDwvU2V0dGluZz4KPC9vdG9ib19jb25maWc+Cg==</File>
        <File Location="scripts/test/GenericInterface/Operation/Customer/CustomerUpsert.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAxOS0yMDI2IFJvdGhlciBPU1MgR21iSCwgaHR0cHM6Ly9vdG9iby5pby8KIyAtLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAojIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCiMgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCiMgY29yZSBtb2R1bGVzCgojIENQQU4gbW9kdWxlcwp1c2UgVGVzdDI6OlYwOwoKIyBPVE9CTyBtb2R1bGVzCnVzZSBLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OlJlZ2lzdGVyRHJpdmVyOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFNldCB1cCAkS2VybmVsOjpPTSBhbmQgdGhlIHRlc3QgZHJpdmVyICRTZWxmCnVzZSBLZXJuZWw6OkdlbmVyaWNJbnRlcmZhY2U6OkRlYnVnZ2VyICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpOwp1c2UgS2VybmVsOjpHZW5lcmljSW50ZXJmYWNlOjpPcGVyYXRpb246OkN1c3RvbWVyOjpDdXN0b21lclVwc2VydCAoKTsKdXNlIEtlcm5lbDo6R2VuZXJpY0ludGVyZmFjZTo6T3BlcmF0aW9uOjpTZXNzaW9uOjpTZXNzaW9uQ3JlYXRlICAgKCk7ICAgICMjIG5vIHBlcmxpbXBvcnRzLCBDcmVhdGVTZXNzaW9uSUQoKQoKb3VyICRTZWxmOwoKIyBkaXNhYmxlIFNlc3Npb25DaGVja1JlbW90ZUlQIHNldHRpbmcKJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+U2V0KAogICAgS2V5ICAgPT4gJ1Nlc3Npb25DaGVja1JlbW90ZUlQJywKICAgIFZhbHVlID0+IDAsCik7CgokS2VybmVsOjpPTS0+T2JqZWN0UGFyYW1BZGQoCiAgICAnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInID0+IHsKICAgICAgICBSZXN0b3JlRGF0YWJhc2UgPT4gMSwKICAgIH0sCik7Cm15ICRIZWxwZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcicpOwoKbXkgJFJhbmRvbUlEID0gJEhlbHBlci0+R2V0UmFuZG9tSUQoKTsKCm15ICRVc2VyTG9naW4gPSAkSGVscGVyLT5UZXN0VXNlckNyZWF0ZSgKICAgIEdyb3VwcyA9PiBbJ3VzZXJzJ10sCik7Cm15ICRQYXNzd29yZCA9ICRVc2VyTG9naW47CgpteSAkQ3VzdG9tZXJDb21wYW55T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkN1c3RvbWVyQ29tcGFueScpOwoKIyBjcmVhdGUgYSB3ZWIgc2VydmljZQpteSAkV2Vic2VydmljZUlEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkdlbmVyaWNJbnRlcmZhY2U6OldlYnNlcnZpY2UnKS0+V2Vic2VydmljZUFkZCgKICAgIE5hbWUgICA9PiAnQ3VzdG9tZXJVcHNlcnQtVGVzdC0nIC4gJFJhbmRvbUlELAogICAgQ29uZmlnID0+IHsKICAgICAgICBEZWJ1Z2dlciA9PiB7CiAgICAgICAgICAgIERlYnVnVGhyZXNob2xkID0+ICdkZWJ1ZycsCiAgICAgICAgfSwKICAgICAgICBQcm92aWRlciA9PiB7CiAgICAgICAgICAgIFRyYW5zcG9ydCA9PiB7CiAgICAgICAgICAgICAgICBUeXBlID0+ICcnLAogICAgICAgICAgICB9LAogICAgICAgICAgICBPcGVyYXRpb24gPT4gewogICAgICAgICAgICAgICAgQ3VzdG9tZXJVcHNlcnQgPT4gewogICAgICAgICAgICAgICAgICAgIFR5cGUgPT4gJ0N1c3RvbWVyOjpDdXN0b21lclVwc2VydCcsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICB9LAogICAgVmFsaWRJRCA9PiAxLAogICAgVXNlcklEICA9PiAxLAopOwpvayggJFdlYnNlcnZpY2VJRCwgJ3dlYiBzZXJ2aWNlIGFkZGVkJyApOwoKbXkgJERlYnVnZ2VyT2JqZWN0ID0gS2VybmVsOjpHZW5lcmljSW50ZXJmYWNlOjpEZWJ1Z2dlci0+bmV3KAogICAgRGVidWdnZXJDb25maWcgPT4gewogICAgICAgIERlYnVnVGhyZXNob2xkID0+ICdkZWJ1ZycsCiAgICAgICAgVGVzdE1vZGUgICAgICAgPT4gMSwKICAgIH0sCiAgICBXZWJzZXJ2aWNlSUQgICAgICA9PiAkV2Vic2VydmljZUlELAogICAgQ29tbXVuaWNhdGlvblR5cGUgPT4gJ1Byb3ZpZGVyJywKKTsKaXNhX29rKCAkRGVidWdnZXJPYmplY3QsICdLZXJuZWw6OkdlbmVyaWNJbnRlcmZhY2U6OkRlYnVnZ2VyJyApOwoKIyBoZWxwZXIgZm9yIGNyZWF0aW5nIGEgZnJlc2ggb3BlcmF0aW9uIG9iamVjdApteSAkTmV3T3BlcmF0aW9uID0gc3ViIHsKICAgIG15ICVQYXJhbSA9IEBfOwoKICAgIHJldHVybiBLZXJuZWw6OkdlbmVyaWNJbnRlcmZhY2U6Ok9wZXJhdGlvbjo6Q3VzdG9tZXI6OkN1c3RvbWVyVXBzZXJ0LT5uZXcoCiAgICAgICAgRGVidWdnZXJPYmplY3QgPT4gJERlYnVnZ2VyT2JqZWN0LAogICAgICAgIFdlYnNlcnZpY2VJRCAgID0+ICRXZWJzZXJ2aWNlSUQsCiAgICAgICAgJVBhcmFtLAogICAgKTsKfTsKCm15ICVBdXRoID0gKAogICAgVXNlckxvZ2luID0+ICRVc2VyTG9naW4sCiAgICBQYXNzd29yZCAgPT4gJFBhc3N3b3JkLAopOwoKc3VidGVzdCAnbmV3KCknID0+IHN1YiB7CiAgICBteSAkTWlzc2luZyA9IEtlcm5lbDo6R2VuZXJpY0ludGVyZmFjZTo6T3BlcmF0aW9uOjpDdXN0b21lcjo6Q3VzdG9tZXJVcHNlcnQtPm5ldygKICAgICAgICBXZWJzZXJ2aWNlSUQgPT4gJFdlYnNlcnZpY2VJRCwKICAgICk7CiAgICBpcygKICAgICAgICAkTWlzc2luZywKICAgICAgICB7CiAgICAgICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJ0dvdCBubyBEZWJ1Z2dlck9iamVjdCEnLAogICAgICAgIH0sCiAgICAgICAgJ21pc3NpbmcgRGVidWdnZXJPYmplY3QnLAogICAgKTsKCiAgICAkTWlzc2luZyA9IEtlcm5lbDo6R2VuZXJpY0ludGVyZmFjZTo6T3BlcmF0aW9uOjpDdXN0b21lcjo6Q3VzdG9tZXJVcHNlcnQtPm5ldygKICAgICAgICBEZWJ1Z2dlck9iamVjdCA9PiAkRGVidWdnZXJPYmplY3QsCiAgICApOwogICAgaXMoCiAgICAgICAgJE1pc3NpbmcsCiAgICAgICAgewogICAgICAgICAgICBTdWNjZXNzICAgICAgPT4gMCwKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICdHb3Qgbm8gV2Vic2VydmljZUlEIScsCiAgICAgICAgfSwKICAgICAgICAnbWlzc2luZyBXZWJzZXJ2aWNlSUQnLAogICAgKTsKCiAgICBpc2Ffb2soICROZXdPcGVyYXRpb24tPigpLCAnS2VybmVsOjpHZW5lcmljSW50ZXJmYWNlOjpPcGVyYXRpb246OkN1c3RvbWVyOjpDdXN0b21lclVwc2VydCcgKTsKfTsKCiMgcmVxdWVzdHMgdGhhdCBhcmUgcmVqZWN0ZWQgYmVmb3JlIGFueSBjdXN0b21lciBpcyB0b3VjaGVkCm15IEBFcnJvclRlc3RzID0gKAogICAgewogICAgICAgIE5hbWUgICAgICA9PiAnaW52YWxpZCB3ZWIgc2VydmljZScsCiAgICAgICAgT3BlcmF0aW9uID0+IHN1YiB7CiAgICAgICAgICAgIEtlcm5lbDo6R2VuZXJpY0ludGVyZmFjZTo6T3BlcmF0aW9uOjpDdXN0b21lcjo6Q3VzdG9tZXJVcHNlcnQtPm5ldygKICAgICAgICAgICAgICAgIERlYnVnZ2VyT2JqZWN0ID0+ICREZWJ1Z2dlck9iamVjdCwKICAgICAgICAgICAgICAgIFdlYnNlcnZpY2VJRCAgID0+IC0xLAogICAgICAgICAgICApOwogICAgICAgIH0sCiAgICAgICAgRGF0YSAgICAgID0+IHslQXV0aH0sCiAgICAgICAgRXJyb3JDb2RlID0+ICdXZWJzZXJ2aWNlLkludmFsaWRDb25maWd1cmF0aW9uJywKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgICAgID0+ICdubyBhdXRoZW50aWNhdGlvbiBkYXRhJywKICAgICAgICBEYXRhICAgICAgPT4ge30sCiAgICAgICAgRXJyb3JDb2RlID0+ICdDdXN0b21lclVwc2VydC5NaXNzaW5nUGFyYW1ldGVyJywKICAgICAgICBFcnJvckxpa2UgPT4gcXJ7VXNlckxvZ2luIG9yIFNlc3Npb25JRCBpcyByZXF1aXJlZH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgPT4gJ1VzZXJMb2dpbiB3aXRob3V0IFBhc3N3b3JkJywKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgVXNlckxvZ2luID0+ICRVc2VyTG9naW4sCiAgICAgICAgfSwKICAgICAgICBFcnJvckNvZGUgPT4gJ0N1c3RvbWVyVXBzZXJ0Lk1pc3NpbmdQYXJhbWV0ZXInLAogICAgICAgIEVycm9yTGlrZSA9PiBxcntQYXNzd29yZCBvciBTZXNzaW9uSUQgaXMgcmVxdWlyZWR9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lID0+ICd3cm9uZyBwYXNzd29yZCcsCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgIFVzZXJMb2dpbiA9PiAkVXNlckxvZ2luLAogICAgICAgICAgICBQYXNzd29yZCAgPT4gJ3dyb25nLScgLiAkUmFuZG9tSUQsCiAgICAgICAgICAgIEN1c3RvbWVyICA9PiB7CiAgICAgICAgICAgICAgICBDdXN0b21lcklEICAgICAgICAgID0+ICdhdXRoLWZhaWwtJyAuICRSYW5kb21JRCwKICAgICAgICAgICAgICAgIEN1c3RvbWVyQ29tcGFueU5hbWUgPT4gJ0F1dGggRmFpbCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBFcnJvckNvZGUgPT4gJ0N1c3RvbWVyVXBzZXJ0LkF1dGhGYWlsJywKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSA9PiAnaW52YWxpZCBTZXNzaW9uSUQnLAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICBTZXNzaW9uSUQgPT4gJ2ludmFsaWQtJyAuICRSYW5kb21JRCwKICAgICAgICAgICAgQ3VzdG9tZXIgID0+IHsKICAgICAgICAgICAgICAgIEN1c3RvbWVySUQgICAgICAgICAgPT4gJ2F1dGgtZmFpbC0nIC4gJFJhbmRvbUlELAogICAgICAgICAgICAgICAgQ3VzdG9tZXJDb21wYW55TmFtZSA9PiAnQXV0aCBGYWlsJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIEVycm9yQ29kZSA9PiAnQ3VzdG9tZXJVcHNlcnQuQXV0aEZhaWwnLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgICAgPT4gJ21pc3NpbmcgQ3VzdG9tZXInLAogICAgICAgIERhdGEgICAgICA9PiB7JUF1dGh9LAogICAgICAgIEVycm9yQ29kZSA9PiAnQ3VzdG9tZXJVcHNlcnQuTWlzc2luZ1BhcmFtZXRlcicsCiAgICAgICAgRXJyb3JMaWtlID0+IHFye0N1c3RvbWVyIHBhcmFtZXRlciBpcyBtaXNzaW5nfSwKICAgIH0sCik7Cgpmb3IgbXkgJFRlc3QgKEBFcnJvclRlc3RzKSB7CiAgICBzdWJ0ZXN0ICRUZXN0LT57TmFtZX0gPT4gc3ViIHsKICAgICAgICBteSAkT3BlcmF0aW9uID0gJFRlc3QtPntPcGVyYXRpb259ID8gJFRlc3QtPntPcGVyYXRpb259LT4oKSA6ICROZXdPcGVyYXRpb24tPigpOwogICAgICAgIG15ICRSZXN1bHQgICAgPSAkT3BlcmF0aW9uLT5SdW4oIERhdGEgPT4gJFRlc3QtPntEYXRhfSApOwoKICAgICAgICBpcyggJFJlc3VsdC0+e1N1Y2Nlc3N9LCAgICAgICAgICAgICAgICAgICAgMSwgICAgICAgICAgICAgICAgICAnUmV0dXJuRXJyb3IoKSBjb252ZW50aW9uOiBTdWNjZXNzID0+IDEnICk7CiAgICAgICAgaXMoICRSZXN1bHQtPntEYXRhfS0+e0Vycm9yfS0+e0Vycm9yQ29kZX0sICRUZXN0LT57RXJyb3JDb2RlfSwgJ0Vycm9yQ29kZScgKTsKICAgICAgICBpZiAoICRUZXN0LT57RXJyb3JMaWtlfSApIHsKICAgICAgICAgICAgbGlrZSggJFJlc3VsdC0+e0RhdGF9LT57RXJyb3J9LT57RXJyb3JNZXNzYWdlfSwgJFRlc3QtPntFcnJvckxpa2V9LCAnRXJyb3JNZXNzYWdlJyApOwogICAgICAgIH0KICAgIH07Cn0KCiMgdmFsaWRhdGlvbiBvZiBzaW5nbGUgY3VzdG9tZXIgZW50cmllcwpmb3IgbXkgJE5lZWRlZCAocXcoQ3VzdG9tZXJJRCBDdXN0b21lckNvbXBhbnlOYW1lKSkgewogICAgc3VidGVzdCAiQ3VzdG9tZXIgd2l0aG91dCAkTmVlZGVkIiA9PiBzdWIgewogICAgICAgIG15ICVDdXN0b21lciA9ICgKICAgICAgICAgICAgQ3VzdG9tZXJJRCAgICAgICAgICA9PiAnbWlzc2luZy0nIC4gJFJhbmRvbUlELAogICAgICAgICAgICBDdXN0b21lckNvbXBhbnlOYW1lID0+ICdNaXNzaW5nIEluYy4nLAogICAgICAgICk7CiAgICAgICAgZGVsZXRlICRDdXN0b21lcnskTmVlZGVkfTsKCiAgICAgICAgbXkgJFJlc3VsdCA9ICROZXdPcGVyYXRpb24tPigpLT5SdW4oCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgJUF1dGgsCiAgICAgICAgICAgICAgICBDdXN0b21lciA9PiBcJUN1c3RvbWVyLAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgIGlzKCAkUmVzdWx0LT57U3VjY2Vzc30sICAgICAgICAgICAgICAgICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdTdWNjZXNzJyApOwogICAgICAgIGlzKCAkUmVzdWx0LT57RGF0YX0tPntFcnJvcn0tPntFcnJvckNvZGV9LCAnQ3VzdG9tZXJVcHNlcnQuTWlzc2luZ1BhcmFtZXRlcicsICdFcnJvckNvZGUnICk7CiAgICAgICAgbGlrZSggJFJlc3VsdC0+e0RhdGF9LT57RXJyb3J9LT57RXJyb3JNZXNzYWdlfSwgcXJ7Q3VzdG9tZXItPiROZWVkZWQgcGFyYW1ldGVyIGlzIG1pc3Npbmd9LCAnRXJyb3JNZXNzYWdlJyApOwoKICAgICAgICBteSAlQ29tcGFueSA9ICRDdXN0b21lckNvbXBhbnlPYmplY3QtPkN1c3RvbWVyQ29tcGFueUdldCggQ3VzdG9tZXJJRCA9PiAnbWlzc2luZy0nIC4gJFJhbmRvbUlEICk7CiAgICAgICAgb2soICElQ29tcGFueSwgJ25vIGN1c3RvbWVyIHdhcyBjcmVhdGVkJyApOwogICAgfTsKfQoKbXkgJEN1c3RvbWVySUQgPSAnc2luZ2xlLScgLiAkUmFuZG9tSUQ7CgpzdWJ0ZXN0ICdpbnNlcnQgc2luZ2xlIGN1c3RvbWVyJyA9PiBzdWIgewogICAgbXkgJFJlc3VsdCA9ICROZXdPcGVyYXRpb24tPigpLT5SdW4oCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICVBdXRoLAogICAgICAgICAgICBDdXN0b21lciA9PiB7CiAgICAgICAgICAgICAgICBDdXN0b21lcklEICAgICAgICAgICAgID0+ICIgICRDdXN0b21lcklEICAiLAogICAgICAgICAgICAgICAgQ3VzdG9tZXJDb21wYW55TmFtZSAgICA9PiAnIFRlc3QgSW5jLiAnLAogICAgICAgICAgICAgICAgQ3VzdG9tZXJDb21wYW55U3RyZWV0ICA9PiAnNTIwMSBCbHVlIExhZ29vbiBEcml2ZScsCiAgICAgICAgICAgICAgICBDdXN0b21lckNvbXBhbnlaSVAgICAgID0+ICczMzEyNicsCiAgICAgICAgICAgICAgICBDdXN0b21lckNvbXBhbnlDaXR5ICAgID0+ICdNaWFtaScsCiAgICAgICAgICAgICAgICBDdXN0b21lckNvbXBhbnlDb3VudHJ5ID0+ICdVU0EnLAogICAgICAgICAgICAgICAgQ3VzdG9tZXJDb21wYW55VVJMICAgICA9PiAnaHR0cDovL2V4YW1wbGUuY29tJywKICAgICAgICAgICAgICAgIEN1c3RvbWVyQ29tcGFueUNvbW1lbnQgPT4gJ3NvbWUgY29tbWVudCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICk7CgogICAgaXMoCiAgICAgICAgJFJlc3VsdCwKICAgICAgICB7CiAgICAgICAgICAgIFN1Y2Nlc3MgPT4gMSwKICAgICAgICAgICAgRGF0YSAgICA9PiB7CiAgICAgICAgICAgICAgICBDdXN0b21lcklEID0+ICRDdXN0b21lcklELAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgJ3NpbmdsZSBpbnB1dCByZXR1cm5zIHNjYWxhciBDdXN0b21lcklEJywKICAgICk7CgogICAgbXkgJUNvbXBhbnkgPSAkQ3VzdG9tZXJDb21wYW55T2JqZWN0LT5DdXN0b21lckNvbXBhbnlHZXQoIEN1c3RvbWVySUQgPT4gJEN1c3RvbWVySUQgKTsKICAgIGlzKCAkQ29tcGFueXtDdXN0b21lcklEfSwgICAgICAgICAgJEN1c3RvbWVySUQsICdsZWFkaW5nIGFuZCB0cmFpbGluZyBzcGFjZXMgcmVtb3ZlZCBmcm9tIEN1c3RvbWVySUQnICk7CiAgICBpcyggJENvbXBhbnl7Q3VzdG9tZXJDb21wYW55TmFtZX0sICdUZXN0IEluYy4nLCAnbGVhZGluZyBhbmQgdHJhaWxpbmcgc3BhY2VzIHJlbW92ZWQgZnJvbSBuYW1lJyApOwogICAgaXMoICRDb21wYW55e0N1c3RvbWVyQ29tcGFueUNpdHl9LCAnTWlhbWknLCAgICAgJ2NpdHkgc3RvcmVkJyApOwogICAgaXMoICRDb21wYW55e0N1c3RvbWVyQ29tcGFueVpJUH0sICAnMzMxMjYnLCAgICAgJ1pJUCBzdG9yZWQnICk7CiAgICBpcyggJENvbXBhbnl7VmFsaWRJRH0sICAgICAgICAgICAgIDEsICAgICAgICAgICAnVmFsaWRJRCBkZWZhdWx0cyB0byAxJyApOwp9OwoKc3VidGVzdCAndXBkYXRlIGV4aXN0aW5nIGN1c3RvbWVyJyA9PiBzdWIgewogICAgbXkgJFJlc3VsdCA9ICROZXdPcGVyYXRpb24tPigpLT5SdW4oCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICVBdXRoLAogICAgICAgICAgICBDdXN0b21lciA9PiB7CiAgICAgICAgICAgICAgICBDdXN0b21lcklEICAgICAgICAgID0+ICRDdXN0b21lcklELAogICAgICAgICAgICAgICAgQ3VzdG9tZXJDb21wYW55TmFtZSA9PiAnVGVzdCBJbmMuIHVwZGF0ZWQnLAogICAgICAgICAgICAgICAgQ3VzdG9tZXJDb21wYW55WklQICA9PiAnMTIzNDUnLAogICAgICAgICAgICAgICAgVmFsaWRJRCAgICAgICAgICAgICA9PiAyLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICApOwoKICAgIGlzKAogICAgICAgICRSZXN1bHQsCiAgICAgICAgewogICAgICAgICAgICBTdWNjZXNzID0+IDEsCiAgICAgICAgICAgIERhdGEgICAgPT4gewogICAgICAgICAgICAgICAgQ3VzdG9tZXJJRCA9PiAkQ3VzdG9tZXJJRCwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgICd1cGRhdGUgcmV0dXJucyBDdXN0b21lcklEJywKICAgICk7CgogICAgbXkgJUNvbXBhbnkgPSAkQ3VzdG9tZXJDb21wYW55T2JqZWN0LT5DdXN0b21lckNvbXBhbnlHZXQoIEN1c3RvbWVySUQgPT4gJEN1c3RvbWVySUQgKTsKICAgIGlzKCAkQ29tcGFueXtDdXN0b21lckNvbXBhbnlOYW1lfSwgJ1Rlc3QgSW5jLiB1cGRhdGVkJywgJ25hbWUgdXBkYXRlZCcgKTsKICAgIGlzKCAkQ29tcGFueXtDdXN0b21lckNvbXBhbnlaSVB9LCAgJzEyMzQ1JywgICAgICAgICAgICAgJ1pJUCB1cGRhdGVkJyApOwogICAgaXMoICRDb21wYW55e1ZhbGlkSUR9LCAgICAgICAgICAgICAyLCAgICAgICAgICAgICAgICAgICAnVmFsaWRJRCB1cGRhdGVkJyApOwp9OwoKbXkgJFJlbmFtZWRDdXN0b21lcklEID0gJ3JlbmFtZWQtJyAuICRSYW5kb21JRDsKCnN1YnRlc3QgJ3JlbmFtZSBjdXN0b21lciB2aWEgQ3VzdG9tZXJDb21wYW55SUQnID0+IHN1YiB7CiAgICBteSAkUmVzdWx0ID0gJE5ld09wZXJhdGlvbi0+KCktPlJ1bigKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgJUF1dGgsCiAgICAgICAgICAgIEN1c3RvbWVyID0+IHsKICAgICAgICAgICAgICAgIEN1c3RvbWVySUQgICAgICAgICAgPT4gJFJlbmFtZWRDdXN0b21lcklELAogICAgICAgICAgICAgICAgQ3VzdG9tZXJDb21wYW55SUQgICA9PiAkQ3VzdG9tZXJJRCwKICAgICAgICAgICAgICAgIEN1c3RvbWVyQ29tcGFueU5hbWUgPT4gJ1JlbmFtZWQgSW5jLicsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICk7CgogICAgaXMoCiAgICAgICAgJFJlc3VsdCwKICAgICAgICB7CiAgICAgICAgICAgIFN1Y2Nlc3MgPT4gMSwKICAgICAgICAgICAgRGF0YSAgICA9PiB7CiAgICAgICAgICAgICAgICBDdXN0b21lcklEID0+ICRSZW5hbWVkQ3VzdG9tZXJJRCwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgICdyZW5hbWUgcmV0dXJucyB0aGUgbmV3IEN1c3RvbWVySUQnLAogICAgKTsKCiAgICBteSAlT2xkID0gJEN1c3RvbWVyQ29tcGFueU9iamVjdC0+Q3VzdG9tZXJDb21wYW55R2V0KCBDdXN0b21lcklEID0+ICRDdXN0b21lcklEICk7CiAgICBvayggISVPbGQsICdvbGQgQ3VzdG9tZXJJRCBpcyBnb25lJyApOwoKICAgIG15ICVOZXcgPSAkQ3VzdG9tZXJDb21wYW55T2JqZWN0LT5DdXN0b21lckNvbXBhbnlHZXQoIEN1c3RvbWVySUQgPT4gJFJlbmFtZWRDdXN0b21lcklEICk7CiAgICBpcyggJE5ld3tDdXN0b21lckNvbXBhbnlOYW1lfSwgJ1JlbmFtZWQgSW5jLicsICdjdXN0b21lciBhdmFpbGFibGUgdW5kZXIgbmV3IEN1c3RvbWVySUQnICk7Cn07CgpzdWJ0ZXN0ICd1bmtub3duIEN1c3RvbWVyQ29tcGFueUlEIGZhbGxzIGJhY2sgdG8gaW5zZXJ0JyA9PiBzdWIgewogICAgbXkgJE5ld0lEICA9ICdmYWxsYmFjay0nIC4gJFJhbmRvbUlEOwogICAgbXkgJFJlc3VsdCA9ICROZXdPcGVyYXRpb24tPigpLT5SdW4oCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICVBdXRoLAogICAgICAgICAgICBDdXN0b21lciA9PiB7CiAgICAgICAgICAgICAgICBDdXN0b21lcklEICAgICAgICAgID0+ICROZXdJRCwKICAgICAgICAgICAgICAgIEN1c3RvbWVyQ29tcGFueUlEICAgPT4gJ2RvZXMtbm90LWV4aXN0LScgLiAkUmFuZG9tSUQsCiAgICAgICAgICAgICAgICBDdXN0b21lckNvbXBhbnlOYW1lID0+ICdGYWxsYmFjayBJbmMuJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgKTsKCiAgICBpcyggJFJlc3VsdC0+e1N1Y2Nlc3N9LCAgICAgICAgICAgIDEsICAgICAgJ1N1Y2Nlc3MnICk7CiAgICBpcyggJFJlc3VsdC0+e0RhdGF9LT57Q3VzdG9tZXJJRH0sICROZXdJRCwgJ25ldyBDdXN0b21lcklEIHJldHVybmVkJyApOwoKICAgIG15ICVDb21wYW55ID0gJEN1c3RvbWVyQ29tcGFueU9iamVjdC0+Q3VzdG9tZXJDb21wYW55R2V0KCBDdXN0b21lcklEID0+ICROZXdJRCApOwogICAgaXMoICRDb21wYW55e0N1c3RvbWVyQ29tcGFueU5hbWV9LCAnRmFsbGJhY2sgSW5jLicsICdjdXN0b21lciBpbnNlcnRlZCcgKTsKfTsKCnN1YnRlc3QgJ3JlbmFtZSBvbnRvIGFuIGFscmVhZHkgZXhpc3RpbmcgQ3VzdG9tZXJJRCcgPT4gc3ViIHsKICAgIG15ICRFeGlzdGluZ0lEID0gJ2V4aXN0aW5nLScgLiAkUmFuZG9tSUQ7CiAgICBteSAkU291cmNlSUQgICA9ICdzb3VyY2UtJyAuICRSYW5kb21JRDsKCiAgICBmb3IgbXkgJElEICggJEV4aXN0aW5nSUQsICRTb3VyY2VJRCApIHsKICAgICAgICBvaygKICAgICAgICAgICAgJEN1c3RvbWVyQ29tcGFueU9iamVjdC0+Q3VzdG9tZXJDb21wYW55QWRkKAogICAgICAgICAgICAgICAgQ3VzdG9tZXJJRCAgICAgICAgICA9PiAkSUQsCiAgICAgICAgICAgICAgICBDdXN0b21lckNvbXBhbnlOYW1lID0+ICJDb21wYW55ICRJRCIsCiAgICAgICAgICAgICAgICBWYWxpZElEICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICksCiAgICAgICAgICAgICJjcmVhdGVkIGN1c3RvbWVyICRJRCIsCiAgICAgICAgKTsKICAgIH0KCiAgICBteSAkUmVzdWx0ID0gJE5ld09wZXJhdGlvbi0+KCktPlJ1bigKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgJUF1dGgsCiAgICAgICAgICAgIEN1c3RvbWVyID0+IHsKICAgICAgICAgICAgICAgIEN1c3RvbWVySUQgICAgICAgICAgPT4gJEV4aXN0aW5nSUQsCiAgICAgICAgICAgICAgICBDdXN0b21lckNvbXBhbnlJRCAgID0+ICRTb3VyY2VJRCwKICAgICAgICAgICAgICAgIEN1c3RvbWVyQ29tcGFueU5hbWUgPT4gJ0NsYXNoIEluYy4nLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICApOwoKICAgIGlzKCAkUmVzdWx0LT57U3VjY2Vzc30sIDAsICdyZW5hbWUgaXMgcmVqZWN0ZWQnICk7CgogICAgbXkgJUV4aXN0aW5nID0gJEN1c3RvbWVyQ29tcGFueU9iamVjdC0+Q3VzdG9tZXJDb21wYW55R2V0KCBDdXN0b21lcklEID0+ICRFeGlzdGluZ0lEICk7CiAgICBpcyggJEV4aXN0aW5ne0N1c3RvbWVyQ29tcGFueU5hbWV9LCAiQ29tcGFueSAkRXhpc3RpbmdJRCIsICdleGlzdGluZyBjdXN0b21lciBpcyB1bnRvdWNoZWQnICk7CgogICAgbXkgJVNvdXJjZSA9ICRDdXN0b21lckNvbXBhbnlPYmplY3QtPkN1c3RvbWVyQ29tcGFueUdldCggQ3VzdG9tZXJJRCA9PiAkU291cmNlSUQgKTsKICAgIGlzKCAkU291cmNle0N1c3RvbWVyQ29tcGFueU5hbWV9LCAiQ29tcGFueSAkU291cmNlSUQiLCAnc291cmNlIGN1c3RvbWVyIGlzIHVudG91Y2hlZCcgKTsKCiAgICBpcyggJFJlc3VsdC0+e0Vycm9yTWVzc2FnZX0sIHFxe0N1c3RvbWVyICIkRXhpc3RpbmdJRCIgYWxyZWFkeSBleGlzdHMufSwgJ0Vycm9yTWVzc2FnZScgKTsKfTsKCnN1YnRlc3QgJ2xpc3Qgb2YgY3VzdG9tZXJzJyA9PiBzdWIgewogICAgbXkgQElEcyA9IG1hcCB7ICJsaXN0LSRfLSIgLiAkUmFuZG9tSUQgfSAxIC4uIDM7CgogICAgbXkgJFJlc3VsdCA9ICROZXdPcGVyYXRpb24tPigpLT5SdW4oCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICVBdXRoLAogICAgICAgICAgICBDdXN0b21lciA9PiBbCiAgICAgICAgICAgICAgICBtYXAgewogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQ3VzdG9tZXJJRCAgICAgICAgICA9PiAkXywKICAgICAgICAgICAgICAgICAgICAgICAgQ3VzdG9tZXJDb21wYW55TmFtZSA9PiAiQ29tcGFueSAkXyIsCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSBASURzCiAgICAgICAgICAgIF0sCiAgICAgICAgfSwKICAgICk7CgogICAgaXMoCiAgICAgICAgJFJlc3VsdCwKICAgICAgICB7CiAgICAgICAgICAgIFN1Y2Nlc3MgPT4gMSwKICAgICAgICAgICAgRGF0YSAgICA9PiB7CiAgICAgICAgICAgICAgICBDdXN0b21lcklEID0+IFxASURzLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgJ2xpc3QgaW5wdXQgcmV0dXJucyBhcnJheSBvZiBDdXN0b21lcklEcyBpbiBpbnB1dCBvcmRlcicsCiAgICApOwoKICAgIGZvciBteSAkSUQgKEBJRHMpIHsKICAgICAgICBteSAlQ29tcGFueSA9ICRDdXN0b21lckNvbXBhbnlPYmplY3QtPkN1c3RvbWVyQ29tcGFueUdldCggQ3VzdG9tZXJJRCA9PiAkSUQgKTsKICAgICAgICBpcyggJENvbXBhbnl7Q3VzdG9tZXJDb21wYW55TmFtZX0sICJDb21wYW55ICRJRCIsICJjdXN0b21lciAkSUQgc3RvcmVkIiApOwogICAgfQp9OwoKc3VidGVzdCAnbGlzdCB3aXRoIG9uZSBlbnRyeSBzdGF5cyBhIGxpc3QnID0+IHN1YiB7CiAgICBteSAkSUQgICAgID0gJ29uZWxpc3QtJyAuICRSYW5kb21JRDsKICAgIG15ICRSZXN1bHQgPSAkTmV3T3BlcmF0aW9uLT4oKS0+UnVuKAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAlQXV0aCwKICAgICAgICAgICAgQ3VzdG9tZXIgPT4gWwogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEN1c3RvbWVySUQgICAgICAgICAgPT4gJElELAogICAgICAgICAgICAgICAgICAgIEN1c3RvbWVyQ29tcGFueU5hbWUgPT4gJ09uZSBMaXN0IEluYy4nLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICB9LAogICAgKTsKCiAgICBpcyggJFJlc3VsdC0+e0RhdGF9LT57Q3VzdG9tZXJJRH0sIFskSURdLCAnYXJyYXkgaW5wdXQgd2l0aCBvbmUgZWxlbWVudCByZXR1cm5zIGFuIGFycmF5JyApOwp9OwoKc3VidGVzdCAnbGlzdCB3aXRoIGFuIGludmFsaWQgZW50cnkgc3RvcHMgcHJvY2Vzc2luZycgPT4gc3ViIHsKICAgIG15ICRGaXJzdElEID0gJ3BhcnRpYWwtMS0nIC4gJFJhbmRvbUlEOwogICAgbXkgJFRoaXJkSUQgPSAncGFydGlhbC0zLScgLiAkUmFuZG9tSUQ7CgogICAgbXkgJFJlc3VsdCA9ICROZXdPcGVyYXRpb24tPigpLT5SdW4oCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICVBdXRoLAogICAgICAgICAgICBDdXN0b21lciA9PiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgQ3VzdG9tZXJJRCAgICAgICAgICA9PiAkRmlyc3RJRCwKICAgICAgICAgICAgICAgICAgICBDdXN0b21lckNvbXBhbnlOYW1lID0+ICdQYXJ0aWFsIE9uZScsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIEN1c3RvbWVySUQgPT4gJ3BhcnRpYWwtMi0nIC4gJFJhbmRvbUlELAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBDdXN0b21lcklEICAgICAgICAgID0+ICRUaGlyZElELAogICAgICAgICAgICAgICAgICAgIEN1c3RvbWVyQ29tcGFueU5hbWUgPT4gJ1BhcnRpYWwgVGhyZWUnLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICB9LAogICAgKTsKCiAgICBpcyggJFJlc3VsdC0+e1N1Y2Nlc3N9LCAgICAgICAgICAgICAgICAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnU3VjY2VzcycgKTsKICAgIGlzKCAkUmVzdWx0LT57RGF0YX0tPntDdXN0b21lcklEfSwgICAgICAgICBbJEZpcnN0SURdLCAgICAgICAgICAgICAgICAgICAgICAgICdhbHJlYWR5IHVwc2VydGVkIGN1c3RvbWVycyBhcmUgcmV0dXJuZWQnICk7CiAgICBpcyggJFJlc3VsdC0+e0RhdGF9LT57RXJyb3J9LT57RXJyb3JDb2RlfSwgJ0N1c3RvbWVyVXBzZXJ0Lk1pc3NpbmdQYXJhbWV0ZXInLCAnRXJyb3JDb2RlJyApOwoKICAgIG15ICVUaGlyZCA9ICRDdXN0b21lckNvbXBhbnlPYmplY3QtPkN1c3RvbWVyQ29tcGFueUdldCggQ3VzdG9tZXJJRCA9PiAkVGhpcmRJRCApOwogICAgb2soICElVGhpcmQsICdlbnRyaWVzIGFmdGVyIHRoZSBpbnZhbGlkIG9uZSBhcmUgbm90IHByb2Nlc3NlZCcgKTsKfTsKCnN1YnRlc3QgJ2F1dGhlbnRpY2F0aW9uIHZpYSBTZXNzaW9uSUQnID0+IHN1YiB7CiAgICBteSAkU2Vzc2lvbklEID0gS2VybmVsOjpHZW5lcmljSW50ZXJmYWNlOjpPcGVyYXRpb246OlNlc3Npb246OlNlc3Npb25DcmVhdGUtPm5ldygKICAgICAgICBEZWJ1Z2dlck9iamVjdCA9PiAkRGVidWdnZXJPYmplY3QsCiAgICAgICAgV2Vic2VydmljZUlEICAgPT4gJFdlYnNlcnZpY2VJRCwKICAgICktPkNyZWF0ZVNlc3Npb25JRCgKICAgICAgICBEYXRhID0+IHslQXV0aH0sCiAgICApOwogICAgb2soICRTZXNzaW9uSUQsICdhZ2VudCBzZXNzaW9uIGNyZWF0ZWQnICk7CgogICAgbXkgJElEICAgICA9ICdzZXNzaW9uLScgLiAkUmFuZG9tSUQ7CiAgICBteSAkUmVzdWx0ID0gJE5ld09wZXJhdGlvbi0+KCktPlJ1bigKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgU2Vzc2lvbklEID0+ICRTZXNzaW9uSUQsCiAgICAgICAgICAgIEN1c3RvbWVyICA9PiB7CiAgICAgICAgICAgICAgICBDdXN0b21lcklEICAgICAgICAgID0+ICRJRCwKICAgICAgICAgICAgICAgIEN1c3RvbWVyQ29tcGFueU5hbWUgPT4gJ1Nlc3Npb24gSW5jLicsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICk7CgogICAgaXMoICRSZXN1bHQtPntTdWNjZXNzfSwgICAgICAgICAgICAxLCAgICdTdWNjZXNzJyApOwogICAgaXMoICRSZXN1bHQtPntEYXRhfS0+e0N1c3RvbWVySUR9LCAkSUQsICdDdXN0b21lcklEIHJldHVybmVkJyApOwp9OwoKZG9uZV90ZXN0aW5nKCk7Cg==</File>
        <File Location="scripts/test/GenericInterface/Operation/Customer/CustomerUserUpsert.t" Permission="660" Encode="Base64">IyAtLQojIE9UT0JPIGlzIGEgd2ViLWJhc2VkIHRpY2tldGluZyBzeXN0ZW0gZm9yIHNlcnZpY2Ugb3JnYW5pc2F0aW9ucy4KIyAtLQojIENvcHlyaWdodCAoQykgMjAxOS0yMDI2IFJvdGhlciBPU1MgR21iSCwgaHR0cHM6Ly9vdG9iby5pby8KIyAtLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0IHVuZGVyCiMgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAojIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTCiMgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKCiMgY29yZSBtb2R1bGVzCgojIENQQU4gbW9kdWxlcwp1c2UgVGVzdDI6OlYwOwoKIyBPVE9CTyBtb2R1bGVzCnVzZSBLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OlJlZ2lzdGVyRHJpdmVyOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBTZXQgdXAgJEtlcm5lbDo6T00gYW5kIHRoZSB0ZXN0IGRyaXZlciAkU2VsZgp1c2UgS2VybmVsOjpHZW5lcmljSW50ZXJmYWNlOjpEZWJ1Z2dlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCk7CnVzZSBLZXJuZWw6OkdlbmVyaWNJbnRlcmZhY2U6Ok9wZXJhdGlvbjo6Q3VzdG9tZXI6OkN1c3RvbWVyVXNlclVwc2VydCAoKTsKdXNlIEtlcm5lbDo6R2VuZXJpY0ludGVyZmFjZTo6T3BlcmF0aW9uOjpTZXNzaW9uOjpTZXNzaW9uQ3JlYXRlICAgICAgICgpOyAgICAjIyBubyBwZXJsaW1wb3J0cywgQ3JlYXRlU2Vzc2lvbklEKCkKCm91ciAkU2VsZjsKCm15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKIyBkaXNhYmxlIFNlc3Npb25DaGVja1JlbW90ZUlQIHNldHRpbmcKJENvbmZpZ09iamVjdC0+U2V0KAogICAgS2V5ICAgPT4gJ1Nlc3Npb25DaGVja1JlbW90ZUlQJywKICAgIFZhbHVlID0+IDAsCik7CgojIHRlc3QgZW1haWwgYWRkcmVzc2VzIHVzZSBleGFtcGxlLmNvbSwgd2hpY2ggaGFzIG5vIE1YIHJlY29yZAokQ29uZmlnT2JqZWN0LT5TZXQoCiAgICBLZXkgICA9PiAnQ2hlY2tFbWFpbEFkZHJlc3NlcycsCiAgICBWYWx1ZSA9PiAwLAopOwoKJEtlcm5lbDo6T00tPk9iamVjdFBhcmFtQWRkKAogICAgJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyA9PiB7CiAgICAgICAgUmVzdG9yZURhdGFiYXNlID0+IDEsCiAgICB9LAopOwpteSAkSGVscGVyID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXInKTsKCm15ICRSYW5kb21JRCA9ICRIZWxwZXItPkdldFJhbmRvbUlEKCk7CgpteSAkVXNlckxvZ2luID0gJEhlbHBlci0+VGVzdFVzZXJDcmVhdGUoCiAgICBHcm91cHMgPT4gWyd1c2VycyddLAopOwpteSAkUGFzc3dvcmQgPSAkVXNlckxvZ2luOwoKbXkgJEN1c3RvbWVyVXNlck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDdXN0b21lclVzZXInKTsKCiMgY3VzdG9tZXIgY29tcGFueSB0aGUgY3VzdG9tZXIgdXNlcnMgYmVsb25nIHRvCm15ICRDdXN0b21lcklEID0gJ2NvbXBhbnktJyAuICRSYW5kb21JRDsKb2soCiAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q3VzdG9tZXJDb21wYW55JyktPkN1c3RvbWVyQ29tcGFueUFkZCgKICAgICAgICBDdXN0b21lcklEICAgICAgICAgID0+ICRDdXN0b21lcklELAogICAgICAgIEN1c3RvbWVyQ29tcGFueU5hbWUgPT4gIkNvbXBhbnkgJFJhbmRvbUlEIiwKICAgICAgICBWYWxpZElEICAgICAgICAgICAgID0+IDEsCiAgICAgICAgVXNlcklEICAgICAgICAgICAgICA9PiAxLAogICAgKSwKICAgICdjdXN0b21lciBjb21wYW55IGFkZGVkJywKKTsKCiMgY3JlYXRlIGEgd2ViIHNlcnZpY2UKbXkgJFdlYnNlcnZpY2VJRCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHZW5lcmljSW50ZXJmYWNlOjpXZWJzZXJ2aWNlJyktPldlYnNlcnZpY2VBZGQoCiAgICBOYW1lICAgPT4gJ0N1c3RvbWVyVXNlclVwc2VydC1UZXN0LScgLiAkUmFuZG9tSUQsCiAgICBDb25maWcgPT4gewogICAgICAgIERlYnVnZ2VyID0+IHsKICAgICAgICAgICAgRGVidWdUaHJlc2hvbGQgPT4gJ2RlYnVnJywKICAgICAgICB9LAogICAgICAgIFByb3ZpZGVyID0+IHsKICAgICAgICAgICAgVHJhbnNwb3J0ID0+IHsKICAgICAgICAgICAgICAgIFR5cGUgPT4gJycsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIE9wZXJhdGlvbiA9PiB7CiAgICAgICAgICAgICAgICBDdXN0b21lclVzZXJVcHNlcnQgPT4gewogICAgICAgICAgICAgICAgICAgIFR5cGUgPT4gJ0N1c3RvbWVyOjpDdXN0b21lclVzZXJVcHNlcnQnLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgfSwKICAgIFZhbGlkSUQgPT4gMSwKICAgIFVzZXJJRCAgPT4gMSwKKTsKb2soICRXZWJzZXJ2aWNlSUQsICd3ZWIgc2VydmljZSBhZGRlZCcgKTsKCm15ICREZWJ1Z2dlck9iamVjdCA9IEtlcm5lbDo6R2VuZXJpY0ludGVyZmFjZTo6RGVidWdnZXItPm5ldygKICAgIERlYnVnZ2VyQ29uZmlnID0+IHsKICAgICAgICBEZWJ1Z1RocmVzaG9sZCA9PiAnZGVidWcnLAogICAgICAgIFRlc3RNb2RlICAgICAgID0+IDEsCiAgICB9LAogICAgV2Vic2VydmljZUlEICAgICAgPT4gJFdlYnNlcnZpY2VJRCwKICAgIENvbW11bmljYXRpb25UeXBlID0+ICdQcm92aWRlcicsCik7CmlzYV9vayggJERlYnVnZ2VyT2JqZWN0LCAnS2VybmVsOjpHZW5lcmljSW50ZXJmYWNlOjpEZWJ1Z2dlcicgKTsKCiMgaGVscGVyIGZvciBjcmVhdGluZyBhIGZyZXNoIG9wZXJhdGlvbiBvYmplY3QKbXkgJE5ld09wZXJhdGlvbiA9IHN1YiB7CiAgICByZXR1cm4gS2VybmVsOjpHZW5lcmljSW50ZXJmYWNlOjpPcGVyYXRpb246OkN1c3RvbWVyOjpDdXN0b21lclVzZXJVcHNlcnQtPm5ldygKICAgICAgICBEZWJ1Z2dlck9iamVjdCA9PiAkRGVidWdnZXJPYmplY3QsCiAgICAgICAgV2Vic2VydmljZUlEICAgPT4gJFdlYnNlcnZpY2VJRCwKICAgICk7Cn07CgojIGhlbHBlciBmb3IgYnVpbGRpbmcgYSB2YWxpZCBjdXN0b21lciB1c2VyCm15ICRDdXN0b21lclVzZXJEYXRhID0gc3ViIHsKICAgIG15ICggJExvZ2luLCAlUGFyYW0gKSA9IEBfOwoKICAgIHJldHVybiB7CiAgICAgICAgVXNlckxvZ2luICAgICAgPT4gJExvZ2luLAogICAgICAgIFVzZXJGaXJzdG5hbWUgID0+ICdUZXN0JywKICAgICAgICBVc2VyTGFzdG5hbWUgICA9PiAnQ3VzdG9tZXInLAogICAgICAgIFVzZXJFbWFpbCAgICAgID0+ICIkTG9naW5cQGV4YW1wbGUuY29tIiwKICAgICAgICBVc2VyQ3VzdG9tZXJJRCA9PiAkQ3VzdG9tZXJJRCwKICAgICAgICAlUGFyYW0sCiAgICB9Owp9OwoKbXkgJUF1dGggPSAoCiAgICBVc2VyTG9naW4gPT4gJFVzZXJMb2dpbiwKICAgIFBhc3N3b3JkICA9PiAkUGFzc3dvcmQsCik7CgpzdWJ0ZXN0ICduZXcoKScgPT4gc3ViIHsKICAgIG15ICRNaXNzaW5nID0gS2VybmVsOjpHZW5lcmljSW50ZXJmYWNlOjpPcGVyYXRpb246OkN1c3RvbWVyOjpDdXN0b21lclVzZXJVcHNlcnQtPm5ldygKICAgICAgICBXZWJzZXJ2aWNlSUQgPT4gJFdlYnNlcnZpY2VJRCwKICAgICk7CiAgICBpcygKICAgICAgICAkTWlzc2luZywKICAgICAgICB7CiAgICAgICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJ0dvdCBubyBEZWJ1Z2dlck9iamVjdCEnLAogICAgICAgIH0sCiAgICAgICAgJ21pc3NpbmcgRGVidWdnZXJPYmplY3QnLAogICAgKTsKCiAgICAkTWlzc2luZyA9IEtlcm5lbDo6R2VuZXJpY0ludGVyZmFjZTo6T3BlcmF0aW9uOjpDdXN0b21lcjo6Q3VzdG9tZXJVc2VyVXBzZXJ0LT5uZXcoCiAgICAgICAgRGVidWdnZXJPYmplY3QgPT4gJERlYnVnZ2VyT2JqZWN0LAogICAgKTsKICAgIGlzKAogICAgICAgICRNaXNzaW5nLAogICAgICAgIHsKICAgICAgICAgICAgU3VjY2VzcyAgICAgID0+IDAsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAnR290IG5vIFdlYnNlcnZpY2VJRCEnLAogICAgICAgIH0sCiAgICAgICAgJ21pc3NpbmcgV2Vic2VydmljZUlEJywKICAgICk7CgogICAgaXNhX29rKCAkTmV3T3BlcmF0aW9uLT4oKSwgJ0tlcm5lbDo6R2VuZXJpY0ludGVyZmFjZTo6T3BlcmF0aW9uOjpDdXN0b21lcjo6Q3VzdG9tZXJVc2VyVXBzZXJ0JyApOwp9OwoKIyByZXF1ZXN0cyB0aGF0IGFyZSByZWplY3RlZCBiZWZvcmUgYW55IGN1c3RvbWVyIHVzZXIgaXMgdG91Y2hlZApteSBARXJyb3JUZXN0cyA9ICgKICAgIHsKICAgICAgICBOYW1lICAgICAgPT4gJ2ludmFsaWQgd2ViIHNlcnZpY2UnLAogICAgICAgIE9wZXJhdGlvbiA9PiBzdWIgewogICAgICAgICAgICBLZXJuZWw6OkdlbmVyaWNJbnRlcmZhY2U6Ok9wZXJhdGlvbjo6Q3VzdG9tZXI6OkN1c3RvbWVyVXNlclVwc2VydC0+bmV3KAogICAgICAgICAgICAgICAgRGVidWdnZXJPYmplY3QgPT4gJERlYnVnZ2VyT2JqZWN0LAogICAgICAgICAgICAgICAgV2Vic2VydmljZUlEICAgPT4gLTEsCiAgICAgICAgICAgICk7CiAgICAgICAgfSwKICAgICAgICBEYXRhICAgICAgPT4geyVBdXRofSwKICAgICAgICBFcnJvckNvZGUgPT4gJ1dlYnNlcnZpY2UuSW52YWxpZENvbmZpZ3VyYXRpb24nLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgICAgPT4gJ25vIGF1dGhlbnRpY2F0aW9uIGRhdGEnLAogICAgICAgIERhdGEgICAgICA9PiB7fSwKICAgICAgICBFcnJvckNvZGUgPT4gJ0N1c3RvbWVyVXNlclVwc2VydC5NaXNzaW5nUGFyYW1ldGVyJywKICAgICAgICBFcnJvckxpa2UgPT4gcXJ7VXNlckxvZ2luIG9yIFNlc3Npb25JRCBpcyByZXF1aXJlZH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgPT4gJ1VzZXJMb2dpbiB3aXRob3V0IFBhc3N3b3JkJywKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgVXNlckxvZ2luID0+ICRVc2VyTG9naW4sCiAgICAgICAgfSwKICAgICAgICBFcnJvckNvZGUgPT4gJ0N1c3RvbWVyVXNlclVwc2VydC5NaXNzaW5nUGFyYW1ldGVyJywKICAgICAgICBFcnJvckxpa2UgPT4gcXJ7UGFzc3dvcmQgb3IgU2Vzc2lvbklEIGlzIHJlcXVpcmVkfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSA9PiAnd3JvbmcgcGFzc3dvcmQnLAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICBVc2VyTG9naW4gICAgPT4gJFVzZXJMb2dpbiwKICAgICAgICAgICAgUGFzc3dvcmQgICAgID0+ICd3cm9uZy0nIC4gJFJhbmRvbUlELAogICAgICAgICAgICBDdXN0b21lclVzZXIgPT4gJEN1c3RvbWVyVXNlckRhdGEtPiggJ2F1dGgtZmFpbC0nIC4gJFJhbmRvbUlEICksCiAgICAgICAgfSwKICAgICAgICBFcnJvckNvZGUgPT4gJ0N1c3RvbWVyVXNlclVwc2VydC5BdXRoRmFpbCcsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgPT4gJ2ludmFsaWQgU2Vzc2lvbklEJywKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgU2Vzc2lvbklEICAgID0+ICdpbnZhbGlkLScgLiAkUmFuZG9tSUQsCiAgICAgICAgICAgIEN1c3RvbWVyVXNlciA9PiAkQ3VzdG9tZXJVc2VyRGF0YS0+KCAnYXV0aC1mYWlsLScgLiAkUmFuZG9tSUQgKSwKICAgICAgICB9LAogICAgICAgIEVycm9yQ29kZSA9PiAnQ3VzdG9tZXJVc2VyVXBzZXJ0LkF1dGhGYWlsJywKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgICAgID0+ICdtaXNzaW5nIEN1c3RvbWVyVXNlcicsCiAgICAgICAgRGF0YSAgICAgID0+IHslQXV0aH0sCiAgICAgICAgRXJyb3JDb2RlID0+ICdDdXN0b21lclVzZXJVcHNlcnQuTWlzc2luZ1BhcmFtZXRlcicsCiAgICAgICAgRXJyb3JMaWtlID0+IHFye0N1c3RvbWVyVXNlciBwYXJhbWV0ZXIgaXMgbWlzc2luZ30sCiAgICB9LAopOwoKZm9yIG15ICRUZXN0IChARXJyb3JUZXN0cykgewogICAgc3VidGVzdCAkVGVzdC0+e05hbWV9ID0+IHN1YiB7CiAgICAgICAgbXkgJE9wZXJhdGlvbiA9ICRUZXN0LT57T3BlcmF0aW9ufSA/ICRUZXN0LT57T3BlcmF0aW9ufS0+KCkgOiAkTmV3T3BlcmF0aW9uLT4oKTsKICAgICAgICBteSAkUmVzdWx0ICAgID0gJE9wZXJhdGlvbi0+UnVuKCBEYXRhID0+ICRUZXN0LT57RGF0YX0gKTsKCiAgICAgICAgaXMoICRSZXN1bHQtPntTdWNjZXNzfSwgICAgICAgICAgICAgICAgICAgIDEsICAgICAgICAgICAgICAgICAgJ1JldHVybkVycm9yKCkgY29udmVudGlvbjogU3VjY2VzcyA9PiAxJyApOwogICAgICAgIGlzKCAkUmVzdWx0LT57RGF0YX0tPntFcnJvcn0tPntFcnJvckNvZGV9LCAkVGVzdC0+e0Vycm9yQ29kZX0sICdFcnJvckNvZGUnICk7CiAgICAgICAgaWYgKCAkVGVzdC0+e0Vycm9yTGlrZX0gKSB7CiAgICAgICAgICAgIGxpa2UoICRSZXN1bHQtPntEYXRhfS0+e0Vycm9yfS0+e0Vycm9yTWVzc2FnZX0sICRUZXN0LT57RXJyb3JMaWtlfSwgJ0Vycm9yTWVzc2FnZScgKTsKICAgICAgICB9CgogICAgICAgIG15ICVVc2VyID0gJEN1c3RvbWVyVXNlck9iamVjdC0+Q3VzdG9tZXJVc2VyRGF0YUdldCggVXNlciA9PiAnYXV0aC1mYWlsLScgLiAkUmFuZG9tSUQgKTsKICAgICAgICBvayggISVVc2VyLCAnbm8gY3VzdG9tZXIgdXNlciB3YXMgY3JlYXRlZCcgKTsKICAgIH07Cn0KCiMgdmFsaWRhdGlvbiBvZiBzaW5nbGUgY3VzdG9tZXIgdXNlciBlbnRyaWVzCmZvciBteSAkTmVlZGVkIChxdyhVc2VyRmlyc3RuYW1lIFVzZXJMYXN0bmFtZSBVc2VyTG9naW4gVXNlckVtYWlsKSkgewogICAgc3VidGVzdCAiQ3VzdG9tZXJVc2VyIHdpdGhvdXQgJE5lZWRlZCIgPT4gc3ViIHsKICAgICAgICBteSAkTG9naW4gICAgICAgID0gJ21pc3NpbmctJyAuIGxjKCROZWVkZWQpIC4gJy0nIC4gJFJhbmRvbUlEOwogICAgICAgIG15ICRDdXN0b21lclVzZXIgPSAkQ3VzdG9tZXJVc2VyRGF0YS0+KCRMb2dpbik7CiAgICAgICAgZGVsZXRlICRDdXN0b21lclVzZXItPnskTmVlZGVkfTsKCiAgICAgICAgbXkgJFJlc3VsdCA9ICROZXdPcGVyYXRpb24tPigpLT5SdW4oCiAgICAgICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAgICAgJUF1dGgsCiAgICAgICAgICAgICAgICBDdXN0b21lclVzZXIgPT4gJEN1c3RvbWVyVXNlciwKICAgICAgICAgICAgfSwKICAgICAgICApOwoKICAgICAgICBpcyggJFJlc3VsdC0+e1N1Y2Nlc3N9LCAgICAgICAgICAgICAgICAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1N1Y2Nlc3MnICk7CiAgICAgICAgaXMoICRSZXN1bHQtPntEYXRhfS0+e0Vycm9yfS0+e0Vycm9yQ29kZX0sICdDdXN0b21lclVzZXJVcHNlcnQuTWlzc2luZ1BhcmFtZXRlcicsICdFcnJvckNvZGUnICk7CiAgICAgICAgbGlrZSggJFJlc3VsdC0+e0RhdGF9LT57RXJyb3J9LT57RXJyb3JNZXNzYWdlfSwgcXJ7Q3VzdG9tZXJVc2VyLT4kTmVlZGVkIHBhcmFtZXRlciBpcyBtaXNzaW5nfSwgJ0Vycm9yTWVzc2FnZScgKTsKCiAgICAgICAgbXkgJVVzZXIgPSAkQ3VzdG9tZXJVc2VyT2JqZWN0LT5DdXN0b21lclVzZXJEYXRhR2V0KCBVc2VyID0+ICRMb2dpbiApOwogICAgICAgIG9rKCAhJVVzZXIsICdubyBjdXN0b21lciB1c2VyIHdhcyBjcmVhdGVkJyApOwogICAgfTsKfQoKc3VidGVzdCAnaW5zZXJ0IHdpdGhvdXQgVXNlckN1c3RvbWVySUQnID0+IHN1YiB7CiAgICBteSAkTG9naW4gICAgICAgID0gJ25vLWN1c3RvbWVyaWQtJyAuICRSYW5kb21JRDsKICAgIG15ICRDdXN0b21lclVzZXIgPSAkQ3VzdG9tZXJVc2VyRGF0YS0+KCRMb2dpbik7CiAgICBkZWxldGUgJEN1c3RvbWVyVXNlci0+e1VzZXJDdXN0b21lcklEfTsKCiAgICBteSAkUmVzdWx0ID0gJE5ld09wZXJhdGlvbi0+KCktPlJ1bigKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgJUF1dGgsCiAgICAgICAgICAgIEN1c3RvbWVyVXNlciA9PiAkQ3VzdG9tZXJVc2VyLAogICAgICAgIH0sCiAgICApOwoKICAgIGlzKCAkUmVzdWx0LT57U3VjY2Vzc30sICAgICAgICAgICAgICAgICAgICAwLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnU3VjY2VzcycgKTsKICAgIGlzKCAkUmVzdWx0LT57RGF0YX0tPntFcnJvcn0tPntFcnJvckNvZGV9LCAnQ3VzdG9tZXJVc2VyVXBzZXJ0Lk1pc3NpbmdQYXJhbWV0ZXInLCAnRXJyb3JDb2RlJyApOwogICAgbGlrZSggJFJlc3VsdC0+e0RhdGF9LT57RXJyb3J9LT57RXJyb3JNZXNzYWdlfSwgcXJ7VXNlckN1c3RvbWVySUQgcGFyYW1ldGVyIGlzIG1pc3Npbmd9LCAnRXJyb3JNZXNzYWdlJyApOwoKICAgIG15ICVVc2VyID0gJEN1c3RvbWVyVXNlck9iamVjdC0+Q3VzdG9tZXJVc2VyRGF0YUdldCggVXNlciA9PiAkTG9naW4gKTsKICAgIG9rKCAhJVVzZXIsICdubyBjdXN0b21lciB1c2VyIHdhcyBjcmVhdGVkJyApOwp9OwoKbXkgJExvZ2luID0gJ3NpbmdsZS0nIC4gJFJhbmRvbUlEOwoKc3VidGVzdCAnaW5zZXJ0IHNpbmdsZSBjdXN0b21lciB1c2VyJyA9PiBzdWIgewogICAgbXkgJFJlc3VsdCA9ICROZXdPcGVyYXRpb24tPigpLT5SdW4oCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICVBdXRoLAogICAgICAgICAgICBDdXN0b21lclVzZXIgPT4gewogICAgICAgICAgICAgICAgVXNlckxvZ2luICAgICAgPT4gIiAgJExvZ2luICIsCiAgICAgICAgICAgICAgICBVc2VyRmlyc3RuYW1lICA9PiAnIFRlc3QgJywKICAgICAgICAgICAgICAgIFVzZXJMYXN0bmFtZSAgID0+ICdDdXN0b21lcicsCiAgICAgICAgICAgICAgICBVc2VyRW1haWwgICAgICA9PiAiJExvZ2luXEBleGFtcGxlLmNvbSIsCiAgICAgICAgICAgICAgICBVc2VyQ3VzdG9tZXJJRCA9PiAkQ3VzdG9tZXJJRCwKICAgICAgICAgICAgICAgIFVzZXJQYXNzd29yZCAgID0+ICdzb21lLXBhc3MnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICApOwoKICAgIGlzKAogICAgICAgICRSZXN1bHQsCiAgICAgICAgewogICAgICAgICAgICBTdWNjZXNzID0+IDEsCiAgICAgICAgICAgIERhdGEgICAgPT4gewogICAgICAgICAgICAgICAgVXNlckxvZ2luID0+ICRMb2dpbiwKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgICdzaW5nbGUgaW5wdXQgcmV0dXJucyBzY2FsYXIgVXNlckxvZ2luJywKICAgICk7CgogICAgbXkgJVVzZXIgPSAkQ3VzdG9tZXJVc2VyT2JqZWN0LT5DdXN0b21lclVzZXJEYXRhR2V0KCBVc2VyID0+ICRMb2dpbiApOwogICAgaXMoICRVc2Vye1VzZXJMb2dpbn0sICAgICAgJExvZ2luLCAgICAgICAgICAgICAgICAnbGVhZGluZyBhbmQgdHJhaWxpbmcgc3BhY2VzIHJlbW92ZWQgZnJvbSBVc2VyTG9naW4nICk7CiAgICBpcyggJFVzZXJ7VXNlckZpcnN0bmFtZX0sICAnVGVzdCcsICAgICAgICAgICAgICAgICdsZWFkaW5nIGFuZCB0cmFpbGluZyBzcGFjZXMgcmVtb3ZlZCBmcm9tIGZpcnN0IG5hbWUnICk7CiAgICBpcyggJFVzZXJ7VXNlckVtYWlsfSwgICAgICAiJExvZ2luXEBleGFtcGxlLmNvbSIsICdlbWFpbCBzdG9yZWQnICk7CiAgICBpcyggJFVzZXJ7VXNlckN1c3RvbWVySUR9LCAkQ3VzdG9tZXJJRCwgICAgICAgICAgICdVc2VyQ3VzdG9tZXJJRCBzdG9yZWQnICk7CiAgICBpcyggJFVzZXJ7VmFsaWRJRH0sICAgICAgICAxLCAgICAgICAgICAgICAgICAgICAgICdWYWxpZElEIGRlZmF1bHRzIHRvIDEnICk7Cn07CgpzdWJ0ZXN0ICd1cGRhdGUgZXhpc3RpbmcgY3VzdG9tZXIgdXNlcicgPT4gc3ViIHsKICAgIG15ICRSZXN1bHQgPSAkTmV3T3BlcmF0aW9uLT4oKS0+UnVuKAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAlQXV0aCwKICAgICAgICAgICAgQ3VzdG9tZXJVc2VyID0+ICRDdXN0b21lclVzZXJEYXRhLT4oCiAgICAgICAgICAgICAgICAkTG9naW4sCiAgICAgICAgICAgICAgICBVc2VyRmlyc3RuYW1lID0+ICdVcGRhdGVkJywKICAgICAgICAgICAgICAgIFZhbGlkSUQgICAgICAgPT4gMiwKICAgICAgICAgICAgKSwKICAgICAgICB9LAogICAgKTsKCiAgICBpcygKICAgICAgICAkUmVzdWx0LAogICAgICAgIHsKICAgICAgICAgICAgU3VjY2VzcyA9PiAxLAogICAgICAgICAgICBEYXRhICAgID0+IHsKICAgICAgICAgICAgICAgIFVzZXJMb2dpbiA9PiAkTG9naW4sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICAndXBkYXRlIHJldHVybnMgVXNlckxvZ2luJywKICAgICk7CgogICAgbXkgJVVzZXIgPSAkQ3VzdG9tZXJVc2VyT2JqZWN0LT5DdXN0b21lclVzZXJEYXRhR2V0KCBVc2VyID0+ICRMb2dpbiApOwogICAgaXMoICRVc2Vye1VzZXJGaXJzdG5hbWV9LCAnVXBkYXRlZCcsICdmaXJzdCBuYW1lIHVwZGF0ZWQnICk7CiAgICBpcyggJFVzZXJ7VmFsaWRJRH0sICAgICAgIDIsICAgICAgICAgJ1ZhbGlkSUQgdXBkYXRlZCcgKTsKfTsKCnN1YnRlc3QgJ3VwZGF0ZSBleGlzdGluZyBjdXN0b21lciB1c2VyIHdpdGhvdXQgVXNlckN1c3RvbWVySUQnID0+IHN1YiB7CiAgICBteSAkQ3VzdG9tZXJVc2VyID0gJEN1c3RvbWVyVXNlckRhdGEtPigKICAgICAgICAkTG9naW4sCiAgICAgICAgVXNlckZpcnN0bmFtZSA9PiAnVXBkYXRlZCBBZ2FpbicsCiAgICApOwogICAgZGVsZXRlICRDdXN0b21lclVzZXItPntVc2VyQ3VzdG9tZXJJRH07CgogICAgbXkgJFJlc3VsdCA9ICROZXdPcGVyYXRpb24tPigpLT5SdW4oCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgICVBdXRoLAogICAgICAgICAgICBDdXN0b21lclVzZXIgPT4gJEN1c3RvbWVyVXNlciwKICAgICAgICB9LAogICAgKTsKCiAgICBteSAlVXNlciA9ICRDdXN0b21lclVzZXJPYmplY3QtPkN1c3RvbWVyVXNlckRhdGFHZXQoIFVzZXIgPT4gJExvZ2luICk7CgogICAgaXMoICRSZXN1bHQtPntTdWNjZXNzfSwgICAgMSwgICAgICAgICAgICAgICAnVXNlckN1c3RvbWVySUQgaXMgb25seSByZXF1aXJlZCBvbiBpbnNlcnQnICk7CiAgICBpcyggJFVzZXJ7VXNlckZpcnN0bmFtZX0sICAnVXBkYXRlZCBBZ2FpbicsICdmaXJzdCBuYW1lIHVwZGF0ZWQnICk7CiAgICBpcyggJFVzZXJ7VXNlckN1c3RvbWVySUR9LCAkQ3VzdG9tZXJJRCwgICAgICdVc2VyQ3VzdG9tZXJJRCBpcyB1bmNoYW5nZWQnICk7Cn07CgpteSAkUmVuYW1lZExvZ2luID0gJ3JlbmFtZWQtJyAuICRSYW5kb21JRDsKCnN1YnRlc3QgJ3JlbmFtZSBjdXN0b21lciB1c2VyIHZpYSBJRCcgPT4gc3ViIHsKICAgIG15ICRSZXN1bHQgPSAkTmV3T3BlcmF0aW9uLT4oKS0+UnVuKAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAlQXV0aCwKICAgICAgICAgICAgQ3VzdG9tZXJVc2VyID0+ICRDdXN0b21lclVzZXJEYXRhLT4oCiAgICAgICAgICAgICAgICAkUmVuYW1lZExvZ2luLAogICAgICAgICAgICAgICAgSUQgPT4gJExvZ2luLAogICAgICAgICAgICApLAogICAgICAgIH0sCiAgICApOwoKICAgIGlzKAogICAgICAgICRSZXN1bHQsCiAgICAgICAgewogICAgICAgICAgICBTdWNjZXNzID0+IDEsCiAgICAgICAgICAgIERhdGEgICAgPT4gewogICAgICAgICAgICAgICAgVXNlckxvZ2luID0+ICRSZW5hbWVkTG9naW4sCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICAncmVuYW1lIHJldHVybnMgdGhlIG5ldyBVc2VyTG9naW4nLAogICAgKTsKCiAgICBteSAlT2xkID0gJEN1c3RvbWVyVXNlck9iamVjdC0+Q3VzdG9tZXJVc2VyRGF0YUdldCggVXNlciA9PiAkTG9naW4gKTsKICAgIG9rKCAhJU9sZCwgJ29sZCBVc2VyTG9naW4gaXMgZ29uZScgKTsKCiAgICBteSAlTmV3ID0gJEN1c3RvbWVyVXNlck9iamVjdC0+Q3VzdG9tZXJVc2VyRGF0YUdldCggVXNlciA9PiAkUmVuYW1lZExvZ2luICk7CiAgICBpcyggJE5ld3tVc2VyRW1haWx9LCAiJFJlbmFtZWRMb2dpblxAZXhhbXBsZS5jb20iLCAnY3VzdG9tZXIgdXNlciBhdmFpbGFibGUgdW5kZXIgbmV3IFVzZXJMb2dpbicgKTsKfTsKCnN1YnRlc3QgJ3JlbmFtZSBvbnRvIGFuIGFscmVhZHkgZXhpc3RpbmcgVXNlckxvZ2luJyA9PiBzdWIgewogICAgbXkgJEV4aXN0aW5nTG9naW4gPSAnZXhpc3RpbmctJyAuICRSYW5kb21JRDsKICAgIG15ICRTb3VyY2VMb2dpbiAgID0gJ3NvdXJjZS0nIC4gJFJhbmRvbUlEOwoKICAgIGZvciBteSAkTmV3TG9naW4gKCAkRXhpc3RpbmdMb2dpbiwgJFNvdXJjZUxvZ2luICkgewogICAgICAgIG9rKAogICAgICAgICAgICAkQ3VzdG9tZXJVc2VyT2JqZWN0LT5DdXN0b21lclVzZXJBZGQoCiAgICAgICAgICAgICAgICAkQ3VzdG9tZXJVc2VyRGF0YS0+KCAkTmV3TG9naW4sIFVzZXJGaXJzdG5hbWUgPT4gIkZpcnN0ICROZXdMb2dpbiIgKS0+JSosCiAgICAgICAgICAgICAgICBTb3VyY2UgID0+ICdDdXN0b21lclVzZXInLAogICAgICAgICAgICAgICAgVmFsaWRJRCA9PiAxLAogICAgICAgICAgICAgICAgVXNlcklEICA9PiAxLAogICAgICAgICAgICApLAogICAgICAgICAgICAiY3JlYXRlZCBjdXN0b21lciB1c2VyICROZXdMb2dpbiIsCiAgICAgICAgKTsKICAgIH0KCiAgICBteSAkUmVzdWx0ID0gJE5ld09wZXJhdGlvbi0+KCktPlJ1bigKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgJUF1dGgsCiAgICAgICAgICAgIEN1c3RvbWVyVXNlciA9PiAkQ3VzdG9tZXJVc2VyRGF0YS0+KAogICAgICAgICAgICAgICAgJEV4aXN0aW5nTG9naW4sCiAgICAgICAgICAgICAgICBJRCAgICAgICAgICAgID0+ICRTb3VyY2VMb2dpbiwKICAgICAgICAgICAgICAgIFVzZXJGaXJzdG5hbWUgPT4gJ0NsYXNoJywKICAgICAgICAgICAgKSwKICAgICAgICB9LAogICAgKTsKCiAgICBpcyggJFJlc3VsdC0+e1N1Y2Nlc3N9LCAgICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVuYW1lIGlzIHJlamVjdGVkJyApOwogICAgaXMoICRSZXN1bHQtPntFcnJvck1lc3NhZ2V9LCBxcXtDdXN0b21lciB1c2VyICIkRXhpc3RpbmdMb2dpbiIgYWxyZWFkeSBleGlzdHMufSwgJ0Vycm9yTWVzc2FnZScgKTsKCiAgICBteSAlRXhpc3RpbmcgPSAkQ3VzdG9tZXJVc2VyT2JqZWN0LT5DdXN0b21lclVzZXJEYXRhR2V0KCBVc2VyID0+ICRFeGlzdGluZ0xvZ2luICk7CiAgICBpcyggJEV4aXN0aW5ne1VzZXJGaXJzdG5hbWV9LCAiRmlyc3QgJEV4aXN0aW5nTG9naW4iLCAnZXhpc3RpbmcgY3VzdG9tZXIgdXNlciBpcyB1bnRvdWNoZWQnICk7CgogICAgbXkgJVNvdXJjZSA9ICRDdXN0b21lclVzZXJPYmplY3QtPkN1c3RvbWVyVXNlckRhdGFHZXQoIFVzZXIgPT4gJFNvdXJjZUxvZ2luICk7CiAgICBpcyggJFNvdXJjZXtVc2VyRmlyc3RuYW1lfSwgIkZpcnN0ICRTb3VyY2VMb2dpbiIsICdzb3VyY2UgY3VzdG9tZXIgdXNlciBpcyB1bnRvdWNoZWQnICk7Cn07CgpzdWJ0ZXN0ICd1bmtub3duIElEIGZhbGxzIGJhY2sgdG8gaW5zZXJ0JyA9PiBzdWIgewogICAgbXkgJE5ld0xvZ2luID0gJ2ZhbGxiYWNrLScgLiAkUmFuZG9tSUQ7CiAgICBteSAkUmVzdWx0ICAgPSAkTmV3T3BlcmF0aW9uLT4oKS0+UnVuKAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAlQXV0aCwKICAgICAgICAgICAgQ3VzdG9tZXJVc2VyID0+ICRDdXN0b21lclVzZXJEYXRhLT4oCiAgICAgICAgICAgICAgICAkTmV3TG9naW4sCiAgICAgICAgICAgICAgICBJRCA9PiAnZG9lcy1ub3QtZXhpc3QtJyAuICRSYW5kb21JRCwKICAgICAgICAgICAgKSwKICAgICAgICB9LAogICAgKTsKCiAgICBpcyggJFJlc3VsdC0+e1N1Y2Nlc3N9LCAgICAgICAgICAgMSwgICAgICAgICAnU3VjY2VzcycgKTsKICAgIGlzKCAkUmVzdWx0LT57RGF0YX0tPntVc2VyTG9naW59LCAkTmV3TG9naW4sICduZXcgVXNlckxvZ2luIHJldHVybmVkJyApOwoKICAgIG15ICVVc2VyID0gJEN1c3RvbWVyVXNlck9iamVjdC0+Q3VzdG9tZXJVc2VyRGF0YUdldCggVXNlciA9PiAkTmV3TG9naW4gKTsKICAgIGlzKCAkVXNlcntVc2VyTG9naW59LCAkTmV3TG9naW4sICdjdXN0b21lciB1c2VyIGluc2VydGVkJyApOwp9OwoKc3VidGVzdCAnbGlzdCBvZiBjdXN0b21lciB1c2VycycgPT4gc3ViIHsKICAgIG15IEBMb2dpbnMgPSBtYXAgeyAibGlzdC0kXy0iIC4gJFJhbmRvbUlEIH0gMSAuLiAzOwoKICAgIG15ICRSZXN1bHQgPSAkTmV3T3BlcmF0aW9uLT4oKS0+UnVuKAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAlQXV0aCwKICAgICAgICAgICAgQ3VzdG9tZXJVc2VyID0+IFsgbWFwIHsgJEN1c3RvbWVyVXNlckRhdGEtPigkXykgfSBATG9naW5zIF0sCiAgICAgICAgfSwKICAgICk7CgogICAgaXMoCiAgICAgICAgJFJlc3VsdCwKICAgICAgICB7CiAgICAgICAgICAgIFN1Y2Nlc3MgPT4gMSwKICAgICAgICAgICAgRGF0YSAgICA9PiB7CiAgICAgICAgICAgICAgICBVc2VyTG9naW4gPT4gXEBMb2dpbnMsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICAnbGlzdCBpbnB1dCByZXR1cm5zIGFycmF5IG9mIFVzZXJMb2dpbnMgaW4gaW5wdXQgb3JkZXInLAogICAgKTsKCiAgICBmb3IgbXkgJExpc3RMb2dpbiAoQExvZ2lucykgewogICAgICAgIG15ICVVc2VyID0gJEN1c3RvbWVyVXNlck9iamVjdC0+Q3VzdG9tZXJVc2VyRGF0YUdldCggVXNlciA9PiAkTGlzdExvZ2luICk7CiAgICAgICAgaXMoICRVc2Vye1VzZXJMb2dpbn0sICRMaXN0TG9naW4sICJjdXN0b21lciB1c2VyICRMaXN0TG9naW4gc3RvcmVkIiApOwogICAgfQp9OwoKc3VidGVzdCAnbGlzdCB3aXRoIG9uZSBlbnRyeSBzdGF5cyBhIGxpc3QnID0+IHN1YiB7CiAgICBteSAkTGlzdExvZ2luID0gJ29uZWxpc3QtJyAuICRSYW5kb21JRDsKICAgIG15ICRSZXN1bHQgICAgPSAkTmV3T3BlcmF0aW9uLT4oKS0+UnVuKAogICAgICAgIERhdGEgPT4gewogICAgICAgICAgICAlQXV0aCwKICAgICAgICAgICAgQ3VzdG9tZXJVc2VyID0+IFsgJEN1c3RvbWVyVXNlckRhdGEtPigkTGlzdExvZ2luKSBdLAogICAgICAgIH0sCiAgICApOwoKICAgIGlzKCAkUmVzdWx0LT57RGF0YX0tPntVc2VyTG9naW59LCBbJExpc3RMb2dpbl0sICdhcnJheSBpbnB1dCB3aXRoIG9uZSBlbGVtZW50IHJldHVybnMgYW4gYXJyYXknICk7Cn07CgpzdWJ0ZXN0ICdsaXN0IHdpdGggYW4gaW52YWxpZCBlbnRyeSBzdG9wcyBwcm9jZXNzaW5nJyA9PiBzdWIgewogICAgbXkgJEZpcnN0TG9naW4gPSAncGFydGlhbC0xLScgLiAkUmFuZG9tSUQ7CiAgICBteSAkVGhpcmRMb2dpbiA9ICdwYXJ0aWFsLTMtJyAuICRSYW5kb21JRDsKCiAgICBteSAkSW52YWxpZCA9ICRDdXN0b21lclVzZXJEYXRhLT4oICdwYXJ0aWFsLTItJyAuICRSYW5kb21JRCApOwogICAgZGVsZXRlICRJbnZhbGlkLT57VXNlckVtYWlsfTsKCiAgICBteSAkUmVzdWx0ID0gJE5ld09wZXJhdGlvbi0+KCktPlJ1bigKICAgICAgICBEYXRhID0+IHsKICAgICAgICAgICAgJUF1dGgsCiAgICAgICAgICAgIEN1c3RvbWVyVXNlciA9PiBbCiAgICAgICAgICAgICAgICAkQ3VzdG9tZXJVc2VyRGF0YS0+KCRGaXJzdExvZ2luKSwKICAgICAgICAgICAgICAgICRJbnZhbGlkLAogICAgICAgICAgICAgICAgJEN1c3RvbWVyVXNlckRhdGEtPigkVGhpcmRMb2dpbiksCiAgICAgICAgICAgIF0sCiAgICAgICAgfSwKICAgICk7CgogICAgaXMoICRSZXN1bHQtPntTdWNjZXNzfSwgICAgICAgICAgICAgICAgICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdTdWNjZXNzJyApOwogICAgaXMoICRSZXN1bHQtPntEYXRhfS0+e1VzZXJMb2dpbn0sICAgICAgICAgIFskRmlyc3RMb2dpbl0sICAgICAgICAgICAgICAgICAgICAgICAgICdhbHJlYWR5IHVwc2VydGVkIGN1c3RvbWVyIHVzZXJzIGFyZSByZXR1cm5lZCcgKTsKICAgIGlzKCAkUmVzdWx0LT57RGF0YX0tPntFcnJvcn0tPntFcnJvckNvZGV9LCAnQ3VzdG9tZXJVc2VyVXBzZXJ0Lk1pc3NpbmdQYXJhbWV0ZXInLCAnRXJyb3JDb2RlJyApOwoKICAgIG15ICVUaGlyZCA9ICRDdXN0b21lclVzZXJPYmplY3QtPkN1c3RvbWVyVXNlckRhdGFHZXQoIFVzZXIgPT4gJFRoaXJkTG9naW4gKTsKICAgIG9rKCAhJVRoaXJkLCAnZW50cmllcyBhZnRlciB0aGUgaW52YWxpZCBvbmUgYXJlIG5vdCBwcm9jZXNzZWQnICk7Cn07CgpzdWJ0ZXN0ICdhdXRoZW50aWNhdGlvbiB2aWEgU2Vzc2lvbklEJyA9PiBzdWIgewogICAgbXkgJFNlc3Npb25JRCA9IEtlcm5lbDo6R2VuZXJpY0ludGVyZmFjZTo6T3BlcmF0aW9uOjpTZXNzaW9uOjpTZXNzaW9uQ3JlYXRlLT5uZXcoCiAgICAgICAgRGVidWdnZXJPYmplY3QgPT4gJERlYnVnZ2VyT2JqZWN0LAogICAgICAgIFdlYnNlcnZpY2VJRCAgID0+ICRXZWJzZXJ2aWNlSUQsCiAgICApLT5DcmVhdGVTZXNzaW9uSUQoCiAgICAgICAgRGF0YSA9PiB7JUF1dGh9LAogICAgKTsKICAgIG9rKCAkU2Vzc2lvbklELCAnYWdlbnQgc2Vzc2lvbiBjcmVhdGVkJyApOwoKICAgIG15ICRTZXNzaW9uTG9naW4gPSAnc2Vzc2lvbi0nIC4gJFJhbmRvbUlEOwogICAgbXkgJFJlc3VsdCAgICAgICA9ICROZXdPcGVyYXRpb24tPigpLT5SdW4oCiAgICAgICAgRGF0YSA9PiB7CiAgICAgICAgICAgIFNlc3Npb25JRCAgICA9PiAkU2Vzc2lvbklELAogICAgICAgICAgICBDdXN0b21lclVzZXIgPT4gJEN1c3RvbWVyVXNlckRhdGEtPigkU2Vzc2lvbkxvZ2luKSwKICAgICAgICB9LAogICAgKTsKCiAgICBpcyggJFJlc3VsdC0+e1N1Y2Nlc3N9LCAgICAgICAgICAgMSwgICAgICAgICAgICAgJ1N1Y2Nlc3MnICk7CiAgICBpcyggJFJlc3VsdC0+e0RhdGF9LT57VXNlckxvZ2lufSwgJFNlc3Npb25Mb2dpbiwgJ1VzZXJMb2dpbiByZXR1cm5lZCcgKTsKfTsKCmRvbmVfdGVzdGluZygpOwo=</File>
        <File Location="doc/en/Webservice-CustomerOperations.pdf" Permission="644" Encode="Base64">JVBERi0xLjUKJeTw7fgKNCAwIG9iago8PC9UeXBlL1hPYmplY3QvU3VidHlwZS9JbWFnZS9XaWR0aCA4MjgvSGVpZ2h0IDI1My9Db2xvclNwYWNlL0RldmljZUdyYXkvQml0c1BlckNvbXBvbmVudAo4L0RlY29kZVBhcm1zPDwvQml0c1BlckNvbXBvbmVudCA4L0NvbG9ycyAxL0NvbHVtbnMgODI4L1ByZWRpY3RvciAyPj4vRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aAoyNDQzPj4Kc3RyZWFtCnja7d2LddpYAgZgUkGYCqKtIGwFZisIqWCYCsJUsGwFw1QwuIJlKli5gpUrGKhgTQVZJ465AoORhB7X6PvOmXMSGzsaSf/VfWswAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgF5LktEwSR7/kC3WNf3K8TSp/LOr5cN1nufZ5PxnsodsnTV5EE9XJh2s19mDW/+yUzke34S/bcf1XLflz5f89P34Gq/qMP1Y8JPb1WrV1FHkr8wmS9NMBKpdzcnk0+FlS+q4bef/vOzn70dXeLbTmxIf3i4WjZQfk38ffGGTLlNJKP/wPvZw+HVRw69+eH/hL/jH9V3P0X/LfX47XzRwFNmRZ99muVyLQwnT+YejX//XvIb201+X/oY6jiK2ouo/ZX/iblL/o+fr8S/fzqXn0uTEkp1fF7JTX+vzfHakp/BlnJ+uev+yrOEfWH+48Bf8PZOdRsKz+nTyW7/P9bud7SGYfzn9zc2ojhP4okVatrYyHshOI+F57Si205V0vH72lq88FDaTeq7V7LeLojN5kJ06y7J8bf2PV77559Sj5xWnuo/vBoOHbL2q69wlk+GJ7+z+/bv0VL3iKsccQnZuT7csRsPkoGS7ndZ8HMl08PhUTz40WnZeZX1t+bK+u02ztMUh5q919kq8yey83gGfjKd7rdGmuutHyXj8saH27lVG58XQdpND2LJTJTvfPrr42E7b78jg+OD3mZwcK2rSgzHLu2X7pYzsFHiS5GfONDtOnEynTdcSrzE6d/O0g6OQnSJhyIWn8Xv5cLBPeM5FZzNNOzkM2Sn0IMnNfnvXeFV+NnsvPMXbOp3dubJTKDtJtrudPzffIk2WN8Jz2t4swPtpZ32RslOsARNqba2cqNk8/+jR23aq9Tm4nXU3BiY7xbIT5l23M8titMq3eq5wInv19uAfMdTXZKfEfbmbFLhJ2q/U17OO6yrkas9dP5Blp2B2Qm/Bu3aOcLjKNXqucUphNfk1ix3XZWWnYHbC7Kl3bR1jfpb1FS4DqdYQ/C2eZmBfsxOuQbzZyVfbtqO14DyeknWosXU+5aKv2QlRiDc7e+H5cyI5e31s3VdjZSfi7OwNoOtr21sCHUH3iewUvCcXXzrITr5DVnfB3mMngqJEdsr2s22HbR5nrr/Agyf32IlhroXslB3fabf8zzWOPXjCYyeKAS/ZKZadUOS13L2Tq7X1/cGTK0eiuFtlp9gdGW7hzy2vTgwzH/s+JzRcg00ykJ03k50wnP1Ty7WF3K4kP/V7Zk4oReIYKZadQtkJN3D7rY5wy/R7PnWoNkcyvU92Sq59a//+DVWVfo+PhqkgkWziIDtFshM+3UWRF/bi73WlLXTXR7JP7dee1gfCXqkFLkSur6uLIiYMy/a60vY1rp6C3LDF39b9rDyfH+ocLsJodic17bDurs89baHJGcu+W8/lb+/2AXuuAZztstnb9bibDp5dAXeVbxEr3dyJZpzrqULQv62PfywtO1NmJJNpfmOJjob2w3h6jxs84SS8i+aYksd6QJr28GJMHgvxg1esTcf7VenR/hZ6tW/lXlBob/V4asGuq9PcpHgfRSc18PKqko2zPi8f/Rpbc4cX1df4ouO+2TsHlp/HfHWOR6fDVc/qK+U3mKCTq3PcZr7s6tB2w4KyIztvMTuPd+60o0fPbl5Duwvv4rw679yq8Xl4f+4TXb0DtJPNEuIS+hpl5+31FXzXzayYMC7Y2xtH8RG3vV3CYwqPCkuk2RmPs2zdw6sxHI8O3+w6PXin8bF36HbRVJWdKOtsT9O1ejhu8L0g287OPEaGo/F4f8S0i+mg6mwxFh/Pc3R7F57nOkCB7QeG01n++dPBCjSV/Vx2Ilm9kxt169kahOH/fvxhkxQq+PPvkmq/1qaPOsbxnb6ufQuXolihMVqG+dTtD1AaG41xTo411wWLsfy+6q2XfObkxDinT3aKBiG3r3rryzfNBY2x/JCdwg+R0NnVdqsjLLru8Rzi+Na+yU7xCthu6XPbe4Na+7ZXdH1eyc5by064ei2fLGuu9x6+sVRcZad4dsLyzZar3LtJqn3e6yOchU0iO28tO62/J/6HsJdcr5cbx7u3oeyUuXqtNldDlS2Wmn4nQqsvkh4T2SmRnY6mxoTNsHs9/X43FSSWcXzZqZSdVmcw7bLT83dd7x77kcwfk51K2Wm1r3j3z/b7HSK7eVSxFCHtZOfbuph0cVH/6nQ6yi78FW81O8/vCux1L9v3e2Dx7UREs4dtK9l5auxetL/Z0wucNuO6ntaVpuV2tRRgtPrWwXc/fuh5dgbD6fAhjWUJQivZee4gueDiP28lUNvASqXshA0NWm60D0fjQbYaEJU2srN76V/lOZShe7KuZmKl7OjwouXshP02KzZ2c1OY62poVMrO7n/EduK0nZ1q4UmysGizy+yE8f2+v62dtrIThuMrhSe/6qy2jTaqZCeM7/e8s5jWsrO3WW3p2y6/2rm+o6yQnTAVtG+bO9BZdnJ9u+XDk2vr1NnOqJCd0FPQ+4EWWsvOXq2tXGPhaTis7hpblezkNg31Bhhay06+yfJYbE+KVnnyr5iu9+VRpbOz7Phl1/Q0O3tdZY8337xYwb33iul6W+gls9NMowvZKdtseXz0zM7fscl8f2v1Wju3SmVn/0g8dmg1O4fhGdzNX79nh7PZ++aiUyI7yWRy0+CBIDulwzO4W5yeoTWaHb7Oo+Y7NmTn9rXGV5KMDl9o1fNFNHSQnf02w1PtZ7lKj5b00xefnNUbnQIvSDzBbGbaz85guLp58bVtmmb5l+CMRqPJy5fe1P969qrZER26yM7BIGkuGtngIRsMR0ffFfWtdjep/YatmB3RoaPsHPY6F9PEoVXLTjRLFokpOy2NlQ/nX0r+xP20iYWCVbJTdFiKfthtttjafnHjxccI7tewQ2thtzMPHY60QNqc3jidF624bReLpu7X7GOpj29X87W7hb061NNMs82k1R0UiqWnweQcGW56xSZd2SyAl2aTWjdvKlpzm/58rp2zWDV6UMP56OZceB8LlPU6yzxxiOuJN5l8Oh2c5coNC6fjMx4fKfvvszQVHDjf8BiOH/97+nM6yB5SpwQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIDL/B9n0iy4KZW5kc3RyZWFtCmVuZG9iago1IDAgb2JqCjw8L0NvbG9yU3BhY2UvRGV2aWNlUkdCL1NNYXNrIDQgMCBSL1R5cGUvWE9iamVjdC9TdWJ0eXBlL0ltYWdlL1dpZHRoIDgyOC9IZWlnaHQgMjUzL0JpdHNQZXJDb21wb25lbnQKOC9EZWNvZGVQYXJtczw8L0JpdHNQZXJDb21wb25lbnQgOC9Db2xvcnMgMy9Db2x1bW5zIDgyOC9QcmVkaWN0b3IgMTU+Pi9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoCjE4NDg+PgpzdHJlYW0KeNrt3Gtu2zoQgNG48JK6/xVkT6qBAEZao7FEkeLM8Bz0133gOpRIfqJyfdu27QMAgNh+GQIAANEGAIBoAwAQbQAAiDYAAEQbAIBoAwBAtAEAINoAAEQbAACiDQBAtAEAINoAABBtAACiDQAA0QYAgGgDABBtAACINgAARBsAgGgDAEC0AQCINgAARBsAAKINAEC0AQAg2gAAEG0AAKINAADRBgAg2gAAEG0AAIg2AADRBgCAaAMAQLQBAIg2AABEGwAAog0AQLQBACDaAABEGwAAog0AANEGACDaAAAQbQAAiDYAANEGAIBoAwAQbQAAiDYAAEQbAIBoAwBAtAEAINoAAEQbAACiDQAA0QYAINoAABBtAACiDQAA0QYAgGgDABBtAACINgAARBsAgGgDAEC0AQCINgAARBsAAKINAEC0AQAg2gAAEG0AAKINAADRBgCAaAMAEG0AAIg2AADRBgCAaAMAQLQBABRzNwSF3W6/f/4Htu1zzR88rKpXBNPHzW8Zp8P9sG2bUVh5wa034fMWmyUYc8cUsJ7zAydtqy+1j3+30jzPXmzAcxYvniANq5mhK8/vtKWf1TLFSg0lbzxz4eTWYADrcdJmhTUmQOhJ7dzIAPLFSVvWRyjjAHgew64h2jDxUvI0CboNO4how2RDeoJuM4yINubNsWKJoHjAYmg1cwog2lBsum34JxedwDWrmW5LmQS+XHeFXJMC4y6EsWWRBWfQrd6w0Jl0HTcIg5mLr/yoOSHNQyCF52Ll4Kd5kff96qKNlMVm7gGpK2TP6qcz+oav8UzE77QVKTa/DgVU6g+aN4KGMXTMKdq4qNjkGqDbODmGuk20MXbOyDXAakmvDcKoijY8jAJY33Kkm24TbfSfKlY0AEZsGbpNtNFtknglCugMdJtoI0GxGS4AdLBow3wDoPI+snMrcdgm2mifGIoNgIDbE6LNlFBsAAxhTxFtmF0AlNpZHLaJNkwGAJwIINpMKgDotMU4XxBt7JoGig0AEG0A5H6y5TyHbaKNDhPAMRsAQboN0YYpBEACDttEGwC0JIIn276Mp2jD8woAINo88QB4suWqrcd1EW0AcKwMPNmyrLshyPWsA1ByaXKQA285aQv3EImdDFa7mfevjSadBU20ARYyuHoKPFrt64/JmIJzh+m8HhUH7Lo0/6xWLhZVl6DmW92ODqINJDWEvtWvyTVzELweBcBTE8ZZtAGAkgDRlotf+ACsbBZPEG0AVE5D6QaiLQrn/4C16226GXBEGwAkoNsQbQDQ6OIXBbqNZfmeNmjZKrzOZoX7fP+t/voF1KM/pDmIaAN2PdnbM3Crv3Zbl/+iboP/8XoUGjcV72hwq5/3CK/nH5cARFvu5RJXDRa5mY/WmwmIaAOAmXnk1A1E2/yHSIMA0HHBdNiGaAMAD7og2gBAt8Xj5FK0AcCobtMZiDY84gAAog0ASMXbatHmjgfAyjmftz2iDXMGABBtAMB4zjtFGwCc5R0Fog0PKwBAFHdDIOmgr9djj6Q3dpkfBOxNNThpc/fD2ND5yPn2qswPYlHFMIo2Os+Nx18xYShZbBlzR5xhb7I3BeT1qGca4ECxPf6uyYu9iSmctAEhYsiHBBBtgCRSbG4bEG0AJTZgZQCINoDoebT/I/mNH3cLiDYgvf1BE2onVmyL3HUg2gASd5uDnMhcHfjOV34Ak7fkWSclR4PAiY5ig7mctAGdHY2bKXuzYgueazsvkOvCUpy0AUO67VAVXXnk1tCIyiBsTINoA7i62y5It7YgUGxhW82lQbQBTOu2QenWfH4jC86P4bi7y0VBtAFM7rbviXBmbz7ZGbIAEG2AbmsMr7ch1etASLEFv6kMAqINYNQW2yWnrnlJpwkUGwTkKz8Ae+1fH1ITuItAtAF23E8fDz0NbbweBSaEkf8VERcIjnLSBjaSOUMXZ/Rcx8iD4IANnpy0AZNDYeKpmxoQkZDIbds2owDvp8pLWNhURo+wJih/FVwXEG2AaNAEQDVejwKBPKOqb71pNUC0AYytt7aGU2mAaAOY33AAC/KVHwAAog0AANEGACDaAAAQbQAAiDYAANEGAIBoAwBAtAEAiDYAAEQbAIBoAwBAtAEAINoAAEQbAACiDQAA0QYAINoAABBtAACINgAA0QYAgGgDABBtAACINgAARBsAgGgDAEC0AQAg2gAARBsAAKINAEC0AQAg2gAAEG0AAKINAADRBgCAaAMAEG0AAIg2AABEGwCAaAMAQLQBAIg2AABEGwAAog0AQLQBACDaAAAQbQAAog0AANEGACDaAAAQbQAAiDYAANEGAIBoAwBAtAEAiDYAAEQbAACiDQBAtAEAINoAAEQbAACiDQAA0QYAINoAABBtAACINgAA0QYAgGgDABBtAACINgAARBsAgGgDAEC0AQAg2gAARBsAAKINAADRBgAg2gAAEG0AAKINAIBI/gCkqoRBCmVuZHN0cmVhbQplbmRvYmoKOCAwIG9iago8PC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDM0MD4+CnN0cmVhbQp42nVSy07EMAy88xX+gWZt52lp1QPiIbit6A1x6JMLK7Qnfh873bIgQK3luHZmJpPCCQhQH4LM+iKMR63uNV7/zSdwIsnDh1aNuJAiHCGkshVv8ASHP3aRFKcUXipjQiuIgZM41s05uxSTCdg9HBFu3hXkuoPdHQEHl0sm6BbV6LwINETeRWbopuc94jS3FPdINCPhgtTTuhZpmyDaGCek4PUj1gaHgMg6NMR1uJ/aoGOmKIVtL2LRWtIXFrFyLd7GV7g6nwyifekeq1bKjikG08qlOKEMDWdXJJ619tJuUuPQEtZ12/gNmtaaC2lnHmswL9/yVMmaEFzwXq0I7DCWn/CmzFT6+eIEZ7XCzoQDWRiJ0mMQO3XbGKG6hxEvpyEnMXJ1viiLOs8RndfrX+lyMq5q3jgZRTHVg8ZcAZn7M43qPnc0L6tht92v/+Rw9Qlm6pMLCmVuZHN0cmVhbQplbmRvYmoKMTIgMCBvYmoKPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAzND4+CnN0cmVhbQp42lMoVDBUMABCQwVzIyAyUEjOBfLcgTidIB3IBQCH6gxHCmVuZHN0cmVhbQplbmRvYmoKMjggMCBvYmoKPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCA3NzA+PgpzdHJlYW0KeNrtmTtv2zAQx/d+Cn4BsXc8vg4wNBRoA3RL663o4FhWlmZIl379Hqk3bcNBoi6NkMSkmOAe0v34PyrqWaEC+UIVjHyDOj7J1Z38PJ6Nn/bq4xdUaDVZb9S+VcRGG3aqCkEHYLVvfuwADAJEAxA8wMMJgHCaP2D9c/9Vfd4r0AaifFKw8mmjV9/uLiz+Hv2yZm98cguqwsCaTOw84ulYV4jkk/NYV1GW8AR4QBkBkBnQkoxe1ppuLrmi92MwyxQnV5KojmfuTuskISFoY91gtakr9naXbhJgY2vedSkcmtr1GXlbVyakXzDXBvtVjoAPrs9R1s341/2Y85Zb1Fl8UdKGTBlgC69Mm2a2pXrYWjGNpM2YORjT9o/RpSjBxjp2WaJkAy1N2RxP3dNLT9XFi8nMHXLQNtDCoTirK8vczxzANntfs1tFkwhwhMsyndX/sDOuwIFxGp0vSUi0mijYw8HXticg7WVS8cMlhdrAuNXdBgG0j7HwePVWbXhsUFyFYlGz/wYLChoRSyxOggVRUgRpJpBOk+ZlLQxgrM06nwFJCpH0vsmqaXo5TdpBvq5o16miTQwdxfLA1SStN28JWonXl/FuAL0HCBYV+mYIytbQsQbDU8NZcZCGCI4u7/WpxR00IHd1V2q17OooR76w3Zo1u7oAmqMdw573dd73rW3Wq6ZrWdnfvONiksgVtjfEttl6QEfisnZnWKyoatFoJi7xaEZVMzicTGXZZ7zDridldhQqDrGduMGBU2uY8SLfnwznp0HfdZAvkTUXZZOjIuCNuf+n4ilgWY4trSthBFZHF4ZilwgDpzIF6dCg7Yo3Fbb0YLelC3Sw4czmMWvLevJF6HXE8bVEO5cvgoJPgXA8lV3JYe4jkmYofWxIbbPXAIyavDur1yUO68kWmaiDDyUW+R0Fp66uaSaZyYcuvPmS9SIacz8bGtvsLWgsa/YyGv34rDRxdOpPki3vnQ5k1ZPYitPlL/Vd3V9SJqe9le7Rh6BjHP5DYM+09P7DX6kxnTgKZW5kc3RyZWFtCmVuZG9iagozMSAwIG9iago8PC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDExMD4+CnN0cmVhbQp42lMoVDBUMABCQwVzIyAyUEjOBfLcgTgdJ12ooGdsaWGqUA7k6ZqZmeqZG5so5CqYmFkguDkKwQqBCk4hCvpuhgqWepZmRmYKIWlgDebmehYWFgohKdE2BoYmxiBsFxvipeAaArchkAsAV8Qf1QplbmRzdHJlYW0KZW5kb2JqCjM0IDAgb2JqCjw8L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggMjk0Pj4Kc3RyZWFtCnjaZVG7bsMwDNz7FfwBKyRFSyIQaCj6QLsF9VZ0sGM7S4MiU3+/lBy7QQtLIE/k8eQTXIAA7SOIbAvheDb0bPu0xfsOdk8E6jRwgG4GFnKRFTg5UQ/d+L5HHKdM7R6JJiSckXpactXciFrhOCKJt0OsBRZBZGsa2qW5H7NYm12CgqxcxGRYwzaL2LRmX9qXcbU/1BHMfW44mhj2WocVUjtkwprnxq9kWjCnUpmOdTPPN3HMH90rPHZwAec1tfBtZrC4iBHOICGt4BPe4LCZZYZqMnfQazU2YAHEQF5cEGjqQbF593JGePi64f6Nt8pNCK2LXq7aG1zU/z1RIcToUkrX5zGni5UYA+IwIXr6zQeq/ypBnI9i3EoxK1YL1gsd7n4A5fd8EwplbmRzdHJlYW0KZW5kb2JqCjM3IDAgb2JqCjw8L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggMjU1Pj4Kc3RyZWFtCnjabVDLTsQwDLzzFf6BhrHj5iGtckACJG4rekMc2m3LhT3sid/HbciyEiiJ7LE9tjN0ISbYYYpiF3Q6G3q293G1DwPdPzFll4MEGlYLSnKaPQ3z2wGYl8J6APMCxgoeufo5l06zJU4zWL0FsSdEFRArmvpaPM5l49t4Dtq4QDKcw7UXi81a/VZe2+31YW8hMpZOog3DmEtbpp8KY/dL5xuZK5a0ZZbT/kTWGzuX9+GFHge6kPM59fS1/VhdRKQzaUgNfNIrHf/IdcvqQuhd9PrDu8LK/EfYLsToUkpV2raLcu9UouWr4ibepg5iAKYF8PzrT9zWbwsd774BLvxs4gplbmRzdHJlYW0KZW5kb2JqCjQyIDAgb2JqCjw8L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggODI3Pj4Kc3RyZWFtCnjapVY9j9swDN37K/QHrJL6tADDQ4G2QLdDsxUdnLPTpTfc1L9fUqJkObngUvRyRmKJfHwinyipV4UK6IMqGvoH9fxCb1/p+XXz/ap0SsGqP/Q2JO2CVy/KhbG+/Fbf1ZP6dFIfv6BKOgUT1OminLHa2agGE/WYvDqtPyYAgwAe6M8BLAHgvAFYGlvS/PP0LUOg09YFwxj0MxlHEFYnRIEYDUAM7JZdPp+ODIPRJsRKUd4OHLsANnqNIagBIehQOY6F0xkL3yURZ7/z5d+FhHC23bKHBumjjqMTTPLFlGaDE2A0s6ev5xXQWUCM9GyAC86DMYFmlnUeHLDJlq1peCSMSzWOxXERAKofBSzz/lytXSqwNJO/U5JwkFeQxymQm/ZpKyBkQmMMFKcCnxrIjChUrsIf+bupMmcIBqyrZ2DbICT+IVaSJeDZS+R4x5xx2WjBLiixcfuaGquMkJMRK/677jVONepAufKkNkSdvIi7VpQikWO0UkB2gksd2WHmwUMvg5x0MOYiqvKdqjhS1MmaKtEzQCApBooWFiooydE9k2z5nWW7yvOOXViLnHm+jS1vyBqd137kplGW6mwtepcVkq2BSXKOZpJMoH0w1+ySkW2obkXndY6Vz15tu2Qb5sGjxc4WhXDZVisAWCdZgKtrom/IR3FkjLvi69Z3Ra+QIPrbdY23ncjdGps0ag+ppvhQO1cENzjnNJkU2dV+9b8COBT/YUF4o0dnmyCuS2MdTn02eMSINmozK8WvMzbs+794P6CZYni7P3OOqQUDJxL60rAP/GNby1H21gjiVTpooZ+lLovGfX/YmHtyKqLMNayZO/aO2qo5PC+BVEqbyfU9kd/KjgI+P/z5St3NOm+fbHONmhtNVXC271IgPnujpt9jSW7xyTjGLKz3KAvNTT77Sa3rZhH8R/Z9MWz7rC7SiSj2c5P99kTw0pp33fF0cqbp5mQ7HI/ZgflQjtPUqLV85RDSs7owPA8XOX46DGkcUJR+IBtKxtdtRhB0ajBvHR2uhsmHRHXOoWJPhYtOT+0gdPnprmk2jV4uQcHraF27Bcnrvasa3ZLYKtJNbRyF0bZdR3j68BflD0SBCmVuZHN0cmVhbQplbmRvYmoKNDUgMCBvYmoKPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAyNzg+PgpzdHJlYW0KeNptkL9OxDAMxneewi+QYDv/pSoDEiCxneiGGHrX9hZuuInXx0maUgnURskX+7PjH9yBAOUjCCw/wuUm6lXWdd+fRnh8IUg6efYwrnLJUdtkYJw/BsR5yWQHJFqQcEWaqJ1TysomCVxmJGvkEmuArUVkSTq7ljzNufilPXnbvYhRdPJ7LWLptZqS3srVfF9LME9ZcZBmOKXcH+POmbCeszLdTE1zLJHlUhfzetjn/Dm+wfMId9AmRQffZWKrAwa4gfWxiy94h9MfXEeX8t7pYOzm22Vz/gNW+RB0jLGhpWWtbzEuaS+8cSNe4JmlDVQICUA3/EKvILZ5svLOFkvMKm45lQFWyBVkK3GE2gn0mU4PP8yMe98KZW5kc3RyZWFtCmVuZG9iago0OCAwIG9iago8PC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDQ4Mz4+CnN0cmVhbQp42rWUPW/bMBCG9/4K/gGxd7zjFxBwKNAG6JZWW9HBkeQszZAu+ft5SVFJLCdABsc2TR9F38fDl2ceDBvCm010+JCZ7mFdY9ydzQ/G5hzEPMIastXgzb3RkDbjn/ltbsy30Xz9wSbbHFww49GoE6sSzeCiTdmbcf5zReSYyBNeSnQIRLcLkWDtkMvf8WdzwWpFg6s+mC1lgQuxmbm7uF3KwIQf81IUU3Ltr9/H00yDsy7ELdVuneT6KpAQ2ZTYwHGwYQvEhWuARYvzzX7JN2pBYfmqZt4rSEQTSvP+ZS1qn3ul8NhTfYZsGbgIyQm+JbD5df3G4v+7N5JGkRzX5y1hXmZy7oh5OgtzgXA4hODjLiZpKqDAORd2MI9CHJSYF+IJA9rCM2Kf9im1APJKMCjH4Rg2xzhWzutxO2o21ENtHeRdLXdqo5e8zrNcmLCTbCOdEZ4/hXDAPt3FxDVpMq9kIaVKcjMlNjQN9oE/BDhEm7VfRqd6YVhC0XqNe1jLp8DyNldYJzHrLWPBUGmadFUnECxKhR1WbFWPhxla2e4w4K1KlVAGqfZcBq1kJ/SajXZ1x432R0iLeBszv0savUpy8r1XBWwWfW5W3Xyvs9ZmJg77IlprSh33kfYxbr48ATE5SNUKZW5kc3RyZWFtCmVuZG9iago1MSAwIG9iago8PC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDI5Nj4+CnN0cmVhbQp42m2RvU7EMAzHd57CL5BgO99SlQEJkNhOdEMM7bW9hRtu4vVxkqacBGojx7H/dvwL3IAA5SMILD/C+Sreq6zLYZ9GeHwhSDp59jBucshR22RgXD4GxGXNZAckWpFwQ5qo7VPKyiYJnBcka+QQa4CtRWRJml1LnpZc9NKevO1axCh+8kctYum1mZLeytV8X0swT1lxkGY4pdwv4+ZMWPdZmS6m5nMskfVcF/N2Z5f8Ob7B8wg30CZFB99lYqsDBriC9bE7X/AOpz+47lXKe6eDsbvucJvyH7DKh6BjjA0tbVTvYjDpaCTcgBd2Zm3zFEDCzw2/zCsHGaOMk5V3ggNnkSw2l8BOvCu87QrRMvU6sT1P4VzO+cjebWurqFXsxDqD08MPMqeHNwplbmRzdHJlYW0KZW5kb2JqCjU2IDAgb2JqCjw8L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggMjczOD4+CnN0cmVhbQp42uUbu5IbuTH3V8wPEEaj8azaYuAq+6qcyVbmcrDLJZVIgZT4992NN2ZAciixVsHpjssFBkC/n5hdvi+wSPoPFqfof7mcvtHoD/p82Xx/X0QIFpf/0egQhLZm+bZo68vg6/Lv5dPyt8/LX/8BSxDBKrt8vixaodDoloNywgezfH7/z4uUCqQ0kv5pKV+tlG9nKZHmXsPxv5//GY8ALVBbxWccgLajCAB5Oy/n7a8hbUOI2/7+ecTSKqGsK2jm0YBnB0QrJcDROpBW2AzoZI6B4QGjejT0qw49uMokAUSuJABIP9HC8q8/JpM/vkwAE6Lg0vMIFM5nqdSFvk8bME8Ax/IwdgWTKQQ4S3h9l/BmJAS7hh1Pwk6yhLeSdEYI+QwSJqA9HvCFzznql3RkCEeSHjoaapRgLT2FCEleaGze4if+ztB5Dakir1PqlbZ6o1/SIzzzifE0/5JWBVuBALxMTyFoWalMh71CK+hooiJrJKFgSa0s0ueV1Ito0yeSNY9J/Oo9f+6ss7TGmPS8zr1mBHr2EWrCGVcRuGTegJtgq0FI7afI6kTdQWstZCC5ggim2NmvUjJQsZsyY4TWaqCM5KPUSxIfCTbORonB6f2o8iKNTRXkhX8/gqyboCoQj3ClE/HQqA4MCqJ6sMHS+Wkb6XtVx7SY8K86cqYPuiMraVR/Uic1VaeCCY+wYJKFF1X+XZclp3OCKC8VYWg4GNkjJ+MDMvskzMLCUZrke5iqA8a92cTqRLQ/ptLqxig0hInSWipn8ki+n49QjJNxS7vf7uDGyEeDRCc7UkhGIZ/FCwmpjF60zpBhxmdFMCwurMzNfqKgQWqRD+jZlw65w75CX2dJ3UyUv6tHdaqTMXSVzHhmwzbv02G3z6kkpNlMFHQyylYuVxL2+1wa68lBG7ztdCPCJyJQd0ZYSK3SlLyKVCat4JM2tpVmdpMejavXzmwi5aBmoMnYaKkpOsB7VYKbgiBpW7GKlQO3lHeE5mWse6Jz9kFYq8vZCi8F92pXV5j0kz4l8Sz7lOgB0AQBMU53+jFGQccArS2Bm+RczCbZHhmnL8t4Yy+0EoVZoGU1rSmsjjmJCIiZuZTxRJdxKqJKO9jXoellGp/4RHCxpuQTeDuhnsgHnjFrJ8a/sd9PRmmS0oSXoiWF9Ix9s/3iSUxvrvW0hKRpXrobkXiguK98aPZxxZA0jqCTSzOZ0e3pTEODFYZTsqKhq4CqfdJQJA1lL6HPE000TiDqfVmCAqFCXWrIpiGD5I/DBI5Bo5yBAoEtIekcuN5S2+STkg9FpEq30lbSlqJvnOWlKDzDm7JT3xC3KvMof3RGXJP2aPqu7mBAHoULNUOKDlI5lWqFlcmwjRZNtHZUAtbMtG9wmOc8W/RZN/7ktCZpXVpUnEQzvY3NJuC6ny0ZxbhLY0EKb+ns5dcrkii5UpEgKEE5y6YieX5l0sCSDnlnVrC5VEz2P3I+8S66IaXSZ73UbJdSQZd8Xksl4tIdtQ5VMELZDqlBOXKAgzEKRz8Hqjem6EbfMhYUiMcsqN/Canqb8LwYS8i8tyEvbkFKRzSqIUQDzZkeXnKW4e3KiNoZ+4BVGnMOEDlQ1DqtKUjEw6Bz4nVtdNuwibnxedk9xDddw2ILWBPXUxIwu6sMnPgd7YRXsAhiR3E9r8UPXIsfzZZ7y66WD61QpuynZdjlWOZzLI/MmHc3N3IfSPHHJT7PXNBVODn/n3idjeEAxQXwZD3WCaAKNrPITzeuYkLggDJsvJvgXQ0PVlGyaHaGUSm0w/2dgbc2x8klx1wOVY4UX7/ncVw/q5WJQSroTa08Rp1ZdqVxHX4eE4g3Qnq4LRCcCaTfyAQnjeEyIulXLCh2uAcl/SSvSNuHmBl7AGwJvO7UXKW1E+GBMsKZ/dK7rjEgfM3dGBHO499xNJsYiEsppVQJ/slKQufn0uiG34/ii4eU0mjtNWpRXBCA88D3yKZSDpzOD0tiRPVuwf6wxmmJgqA8rnHDRgpFVEbJXDMoHW4mdLzCj/q0VRlLeYcyT9AYJZQJQ/4cTUOHrvbIGM/UqXf7BfH7SUDSGrMNowXWYEtRicqhnEL0riVlkxl09GXK9/jPG6mUrWF4jre8xtkDaiCfrFfdkr7RozZtnTQzGIQptpVmeUbdoi2AMPgEX0K1vHNmLE5iO2goTiJ2V11EWVDNNI568a3idF8NJ7nz1qiRRt3j1cSxGk0icM8xk1qojeTUUnHmebhrxbV8Y0O0p8q1nDg+5JJQkYtRP+GS+o2xB5euMdhLs2GjbRa29eO84mzH/qlLbDDSdq4jLe0FlWZ2+PR0EKVviXcyNoMGS2e9iKt29tvQU/1jnmLoXOHzntiKKB2R6VUCRXPTehrs67aYOWGs/ym8yt0JOqCydN1uX2PtfNJqo2d1AKULGm8jakQI7ikM5Gc673NumleiME7fxscOraVfxSf2ls5prgh3jhtCbBZ9EG6x7cZG6me4SNKeYO/L7c7lGwQBHvfcvu3gYlTNvCdxc4eE8XK7c1Xa96urhOJy50bPxZdppBOOCeGQ1A/lDT+vNdkltgw636+gTXd/MrttcoD57qJk060FVnvDiYTzKT+KHmvaXayNi+LJBXBq1/3M/ahx8seX+ibEAQV6cvHGKyo8Fb8S8X2hZYHpIgcbl62GtIYJ/bZQ3SgMx2EafaWREQqA+aedzQ/I01D06CZwOfWPgRuZ9C/ub7OGb+1daGdy5ZgWNqBt7kTHttHXArVNye5M2UE90Qhpg6xb0peMFJ7+NHRelk9VJZJGdApB4jecIvBXpzmUE/jAmgPCaf2o5iiqW41UmaOUbBH1KrLU5CeVpWUisbQ+BszCKGMtLIfGdhrxpYPEo8zAgXWRUXlv5NlD3Epc6Jiw3wavvXuUu0OefIvVuW3HSuPRFafsmsVz76b+iKCGmR6OYH4LpphUJK0dZkqf2nWwFUUvIDFr70iXSuPQnPdc8PC6K62vBsBLYYNbA1DvP0dh5C8Jgg7Na4eZHxMEqOzRxs0oZOePQ2TaRREoCo/E0zVJ548XWvCs/B1Jt6/JdpFHFoexnBgO/0CBeSsogZhRV9RRnVq2/bDQRrI+XmhGUv1cG0BM1r188AGhjYf/nNCuCmR1+Mc5KY1CIrNOkdI49QDrUj63T0Ny8ryC8oGKT0FNoLEzOpkeZ1r7nZPt+PIm23dIFlET8R20eh8b9Wtazx8vUiqfLMIDIt1/Q7GPFYa0G8wak48UO7876cyMF6iuif14MIE7mTq/ShAVIOyiWGklZFAbin+D8AkTE54k+7GL8KDse0R+i+jXnNCZmiJ5vU+blaTkGHFN0W8QraHyRj9TtvOOzD45U5EARq+x+khBU7kVQM/4EvNsog2mrvuXAndNOawWRtZr59Q6OpSnwJVfGB9uX46nCqqeML6F5Fed+/5NPGu72z3nV+8Ulrfm25v0vCrcu+ICRTWsg6c0743R2zsu5zdvOoXVC//d6zZ6eGXKD28t3L0n7dlyuwkO0uTbFvSyv6x29dI0gtu+DLF+c7ZjM2zfFlRe7jivf7sTvBGBTGDbcKazuhbY8PbXqDLv7Yah3NvML2S/LwKDN/lPYqwhE9D1b2Ly8Nof75C4kcLdwTonvM/KDBe1hvHpL/8HXfhw7AplbmRzdHJlYW0KZW5kb2JqCjU5IDAgb2JqCjw8L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggMjQ4Mz4+CnN0cmVhbQp42uVaO3MjOQ7O71f0HxCXBMFXlUvBVd1u1WVz5+zqAltqbTITzCT79xfgq8l+SC1bqwl2PLLMbpIggA8gSGD4PqhB0o8aHNB/OZy+Ues3+vxev//5OvzyqxqCCBbs8Hqhh+AFBj28nv/3IuV5PCp8kUqNUsmLVG8q/R3C8YCBXpzOUqGmhzK+AEQpgTq9m9T57Xzk8UReWSxjpfTUDrbOpYBoXTR3T9PF/jZOAfB2PIAjYvItHMtizPtRyfj38aDLYJXa4PnNeIofgEvzfT7+//Xfw79eh++D0MGb4Q/mGIWTbvg2oPWl8XX47/BlIS4pFIlJCrCafmurhv/8tvLwRxWsUiIYA0myBxZzlqwax62lPZIoKTNo6CjP1WOW6gFInx1d5cm0qEjtYLtnPHTGW1yp7nB30CgsNGskXIDKKk74OB64nSHFk78peiXLshiUIO1LWnOElyuwWhnCkL0K09Lx3czYYVBeCHfIy3qnp3rMy4zUPzhxHV4XnXhOT1GXtXOLmKuQLzMox29d7mtt6cs21S+wjGbLU9l4yuqymvOSWG2//GoaRemAQmuCXtHUu5R2pI+mz5uUBqTEk5Sa2yQJe07vUjtP2GreKeG0KvOxtXOfA1orpHXDIaE5Ww0vC3XLU5acm5zA1Mp/RQklmdAoF51HKMBykNXD7s2YLEoZBZGHV2xdJWLei5LmY7VtW6t05EuF1S1LUVYY5YeDRWGkL1Lzq+NaxZFjC+TYunEz7ZDmfNKgJg0SMxLHFY0ZLVzwc4311MiWyQPJDTKkhDh9BEgGDhKI1LmAZw0ojjxzuE1Wb5Jl7tT5HpIo0NTpLhlCZGhLyiAFOtzmOJtFJMeCDWuCTapt6bEThA6rk1ukv31yItj1jC7kHih5EIjqOpT0CpTacZIxnZBuql3s9YYO17xhHH7qLD5P3/u02I/tmvudJldPLnCpJ2VAKBeuYuS2BZDgsCqbV+Hp66x7D6DCS3IV6qVEMdWTnwsn1a+7GxtX1OlbGcYinDtBI1t5qUY6WR080Oao6zR+VkHRTYP0woGeuemJKcgE2s28etEZc7ylWh2jzokxW53n9jStd1865l38wXKfX/cwZHPCh21Dv7UfIrWzafaY8lagrPvqTIT7jD737reoiIgUMsfPPY5BKRAawv2eoRtIIRJF+DLKnRZli1JIxdWnkuJU3ZMt9Ca+1IJ1AhA/bcRYt6hpo7a6uvq62PHoFvY9A52FnVCzG1CjN8vIrqyg83e2RTUHpC064qnpXOjkSCcy55rA0DYwWdnLkM6AfvKRm5hVFEs4t7ZBbq678T/RgWjCvZv7j3L8q7ve9lq1pnDUfBIJs4DmDgNBEKDc/VFYN3CxaoNNoEIfpxMXMZKQa4EKcWBhXRGyADo5AH7CwNR2AtAinI49RlvP2iGdS/IJpAtsY9f+jIF7D0F69RDEfSlKjmvmaYzv4Z24giZCqsfEurR4BO0vE4oMoEK5U4z35LEmLNMGnIK1kIBD/7ftALXwTk/xgEuL1ZFoFB5zSXJMNjGFBumoIw3PNLOBet4ue8B4yh4dWNIU56hGr/EOhjZRfenwKxSY7ne+Ougf/vi9XhUdyJw84VOzA6cw6fRt+D5Qt8Csku5it1mT+jDv3wYkGBqOA6n1lVqGIB7jWXQ2v1BCo4bmgR5O7WskbxDoXxw/PSV/ZCwtp86pMOSOE9Hp2YmmnVpfC9XpkWzmlA3VE7U0DZB1SPqSkcPT34bPy/ClQiIhogEEqd+wf+OvBjkgAu0ZhBxCsb8XOCAc8QZZoHTsIuYhStTkN1Wi5UGSaH2NNuuitB2dBa1vZiOxNJS4leXXSS7KKY+NIrtLWEkIkwz2W+Di2q/fQjy5CIv5qkwRTyqU3QPcZO/sheqvSKp70tIRLG6h+BYR87K6J+VC0TW0QdG+R0pW3ghlbDn6jXs2Xu63sT9OBLwUNrg5ATh/jMMoX44Thc19uyc/VhYQFPHu1jjk3UDnSJ65idH9bY4UBKFIpnOWxucrLVhaiWlYuh5n7GKPDE7HSKib/IkKo/hROrfGXYEjnDJH+gNK69l6vtJAOuJPN2zdd+O6i11i0ms3J/YxJS5lSZOaYBezh4fMTqGX1Cwn5ekPeL5L5PtUQwYAnGsJ6vEuUQEF99rOKTzRxJSmLTTYNR7RZE8Bic89/FiKQhwu+BmfrzIdOIbZ1tjte+p9HCNFcxTY9wSfqUBDTlKZFY45XxsdiNyPRzopQcA5Nz9BfYbiSRluWNz2hf8+bolJ78yc2lOVx6/MGr9wuc/yHHlijQtefoLqrBLe+mumt0iY3OksOwo/xVkueGRn2Rlb6J0n5G9nJpjSWSXyHlUcUjBTdvwd8gADwhtYyOMnqJxOXh7cFZXvuzrfB4NqMx3VZ8KA5K2DWeP7cyp+TLTkyUx8PYv4h4RiNWQNKBzWjSEn9OsphO8NQk95UQsCKKx0NX3QXC4anKVD+O6Qb/uakqGmJ98f1jfndF9W7u3jZaYxt3INCoAvED6dbNDaLbMNZnF7asxLu8SuigbbVI/BtjbBmFvpQ+60Nx9mVvJ9ii9mU5bOuDbha2rCNy5iUQgRJ+N8I7a5qSR41WYtch7E+GvzRTAp5wlifiVtkFLQOffhF7mPNqmGXZqsw9R5uhsvCYt5Tp1/2D7iD5nF94HcvlexoowkFEOjVFJWWn1N2Urp3UGTr1AGyxW0LXneokWAtbIBDSK0KZC3jTQ0oFm7M0dMaaf6lGnmer5lgVHsXfNIuEjGxyfryfg8OEM2LcA18DIVXrqFV131RLGBTNTRGStlO9k4A6cWEMbk+C0uu4xeXOzMSEIBEOI8zbKxzDY/V40VdQu/2PcO+B2ywhP4ixPXqpdJzAiMHcL36jhaB9cp5SRGr7JaidIXYegV6S/S8rPM3tzuyAc1HrrSmengSqHLdaMMtAVpqFaZm48q9USh0ZZST9RGWGvnxZ4PLPKcyIERAXBGM5ZQFmmPSQe+bBGbFbcrlbZ6KtOtYo8alHW/fHDRKovPeiHL2bIRX6mZ/StrZTvaHJhNLI+NacnkonK+vTX3YgWlJrpU0+4seq79HWY7JetRZkoipjqJqKRE9tj63FKdcEXJi4jyTqF1exaGiMT7xIXPFxfA9PkLaqA/VvNMEbEgoT1KeMVj2lYUdi6KZVHRvQDKEzRbQ6m0XWwJbqZFdXVG2jQ48uNevKk3lcg1PJhJtS3kP1hr6JCCxcOXZvLwa+C1zgnv86lYXVINqPbAc04lzmqqVQpzc88eM/uo48FytJur4o8Hn7ltyptm6//yjz8BtzLH3AplbmRzdHJlYW0KZW5kb2JqCjYyIDAgb2JqCjw8L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggNDU2Pj4Kc3RyZWFtCnjarZO9jtswDID3PgVfwCpJSZQFGBoKtAd0u9Zb0SGJ7Vt6w3Xp65eSLMdxg7RDkcg2f0SKHyl4AwLUH0Fg/SNcXlV60vWyvT+M8P4TQTRRWGBcgB2ZwBG4Ny5aGKdvA+I0J/IDEs1IuCCdqH7HmDoX1XCZkJxVJRYDO4fI6nT21fk0JadueggS1/Yi9ipH2WIRa67FZvcarvhLCcF8Sh0HTYanWILlTf6cCMt36mzbTFXmPlvmS1nMy+49pe/jZ/g4whsYG3sPvxQGOxMwwCs46ZvwA77C8xWaIYWEhsXq0wrBl6c7yp93sCJ0WWhAXaznl634jR96vxY9bWVms5VaXkPMsax/Zbj5B1d1FFJXmpp7pBzjsMa9rmML/Z8t3ML+3RUvfj85VY5yo8tb19bcTKi9RWmdEf5fKPNYKbRy1A2MHME0L0XMVDW5Rhtqtlr2ow60AJq8aPLd4aBDW/zs3JLYldy+p/Qwoj9na/GiySU/XDeiCjryR6b7se9EvAnWrYO/iXX07w2yhGD6vq/8aZ7bpSqZOvH5IuZxaLd3lswphRXpY0SHC26vFJiHXadr63JdTth4pwer51ncsdrnd78BcLseSgplbmRzdHJlYW0KZW5kb2JqCjY1IDAgb2JqCjw8L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggMjc4Pj4Kc3RyZWFtCnjabZC9TsQwDMd3nsIvkGA731KVAQmQ2E50Qwy9Nr2FG27i9XGStpwESqLEsf/++MENCFAWQWDZCPNVrFc5l+N+GuHxhSDp5NnDuMonR22TgXH5GBCXkskOSFSQcEWaqL9TysomccwLkjXyic3B1iKyBJ1dD56WXPVSnrzdtYhR7OSPXMRSazU1vKdr8b6lYJ6y4iDFcEp5b8adM2F7Z2V2MXWbY/WUuR3m9e5e8uf4Bs8j3ECbFB1814mtDhjgCtbH3fiCdzj9wXWvUt47HYzddIfZlf+AVT4EHWPsaHt/59aPiVzzSkynXgGa0oeqlASiG37BNxhUSp0pK++ECc6Nd1ZxY2FCptT5bBPvM5wefgBTAHkoCmVuZHN0cmVhbQplbmRvYmoKNzAgMCBvYmoKPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCA1ODE+PgpzdHJlYW0KeNq1Vctu2zAQvPcr+ANmd7l8AoYOBdoAvaX1rejBtqRcmkNy6e93lqIUR5aBPlLba5qkPLOzD9I8GTaEN5vk8CFzfsTsDvZwNT4ZW0oU8xOzXbE+BvNofMzz5If5au7Nh4N5/4lNsSW6aA6j8U6sl2R2Ltlcgjn03/ZEjokC4eWJjpHoNBAJ1o6l+374XCHYW/HRKUawKTEQxBbmhuBzVzBkR3QOyx8/Hl77GZ11Mc2OttkrTy9oPENJcGbHFG1sPOohOBai0zATLQGyDKkEaMG3RDZf7jYWnx82KOEip2m/0vEwknMjxvMVzRvQuYjn/IpTk8FIPsdIfOyJRiFGLvD7pg9trAxykW3oQZyslNKwkZewn+ABzTIAGlZKh4KQlsATq80rvsAVT0yj1sgtFzapIZV9atSoJ8WpcjwsnBDapUwQK9aIeSkasZynMK4XnzeYhGwMYUW3SAMNTItTVbt8nNUvgYCwuqV5VseS+6s4v2qofujY7ycPaHwjoSiXQLyiqkI1l2pFS4aVjpyEakuu/1Dqv3WRi8Umyesu6v9LF2UbiltxUt93TvZzedewNMnaWWs/tjIq2jnRLwdPraFTeOkchQK0JncnUab28jfby/1Oe02rSNy8rzrcTR0X5DijqrXzaon4FaLLUxOiBaYSbc5VSIntMXXa8X5uoo6pPasQ9e9c95oDijRA8nCaxhFV6P2LU/W37l2d17ggpOTQLoiIy0X8ckO06a3LLJJN6PhdTOiIvJTbeevAvn/3C+OcnWYKZW5kc3RyZWFtCmVuZG9iagoxMzQgMCBvYmoKPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCA0OTY+PgpzdHJlYW0KeNpdlFtvozAQhd/5FX7salWBDbYTKULiKuWhe2nafSfgpKiNQYY85N8vzHGqqkhB+phh5pyJh7DYl3vbzyz844b2YGZ26m3nzDRcXWvY0Zx7G3DBur6dPdG9vTRjEBZPzfiruRgWVsW/4vnp599r375Pje0e8+Gje3x9qblinTkh9eU2GiY878vDbZrNZW9PA9vtAsbC56XyNLsbe8i64Wh+rM9+u8643p7Zw2txoCeH6zh+mIuxM4uCNKVyHNraoTPT2LTGNfZsgl20XCnb1cuVBsZ23+KJxGvHU/vWOEpPlvTlztOVRAQSIA6KQRtQQhT7mCRKfEyBtiBNJH3NDUiCtkTady9BClQRbQSoJsoQW4oRoZ+E6gz9JFTnUCahOq9AUF2gu4TqsgRBdekzobqCMgmddUykqB+PahD14xz+VAzSoASEmor68RgelAL5TA3ymTQlnvh+1J1LuFU5KAcVRAo6VQnyHWiCXGOCiibIt4jpCISaGo62mKCGowwT1HCUYUoajnJMUMNR4WNwVMCDhqMSyjQ8VHfvcLUcTX8G+f1E3k8wr8ggr/F+HPlsxL8fYCEgPc5SooxIFCAIEjEIf5ug4YgE5UX5Vcy6Meuef655e3Vu2Tv6GNBGr8vXW/P5vRiHcX2Lfv8BmMYPwQplbmRzdHJlYW0KZW5kb2JqCjEzNSAwIG9iago8PC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDUyMT4+CnN0cmVhbQp42l2UbYujMBDH3/sp8nKPY6mJmlgogg8VyrH31C372mrak9tGifqi3/7i/NPlWKGWnzOZzH8ymU15qA6mn9nmpx3ao57ZpTed1dOw2Fazs772JuCCdX07e6J3e2vGYFO+NOP35qbZ5tvbS/12+vpr6du/U2O659/6urw39vn0WnPJOn2B9+t91Ex4PlTH+zTr28FcBrbbBYxt3LJ+mu2dPeXdcNZf1m8/bKdtb67s6VQe6ctxGcd3fdNmZmGQZRSOI7126PQ0Nq22jbnqYBe6J2O72j1ZoE33yR7HWHa+tH8aS+6xc3dvnq0kQpAAcVAESkExUeRtCVHsbRK0BSmixMdMQQloSyRzUEmUClBNlEsit5wIMRNkVmD3BJkVexAyqyoQcqm8DbnUEZEktTysQRSTc+QpI5ACxSBEkaSWR8hMSpD3VCDvSWp57Pcjtdxrd6KJUDNZgAoQVYJLnIqsQH6/PZFClSRViW9hUyEIMRX0bVEzBX05aqagL0eVFPQVyExBX+lt0FdCkYK+CooU9FXIU0Gfr7WCvv2jStDvmtF3HX/04KNn+Z7Ec386Uei9Yefhp54V1InC/WdEUBnlIHSUKEE4YUGVExFUihqEbEUK8p6kRMTQJaj+QmFdhCip79nwf03rVVtnxMeIaBdr3YWlQUKjYL21vdEfs2YcxnUV/f4B5b4cggplbmRzdHJlYW0KZW5kb2JqCjEzNiAwIG9iago8PC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDQ0OT4+CnN0cmVhbQp42l2TW2vjQAyF3/0r5rGlFF8ylxaCIXGa3UB3u92kbF8dW0kNzdiM7Yf8+9o6og9rSOCzLB3pzCgudpudbwYV/wlttadBnRpfB+rbMVSkjnRufJRmqm6qQYj/q0vZRXHxq+x+lxdS8fr15/O/17sDvf+4BirG0Lfh/i+dx88y3L8dtqlVNZ2Qcbh2pDLh3WZ/7Qe67PypVctlpFQ8pTX9EK7qZlW3R7qd372EmkLjz+rmrdjzm/3YdZ90IT+oJMpzLpeixaqtqe/KikLpzxQtk+nJ1XI7PXlEvv4vrh3Sjqfqowzz52kxfZ4kOs2ZNkwWlGWIJSDH5NagB9AG9MhkJLYCSWyNKgsQ9KwQ9BYr0BPT9AnTFnmaaZEgT0g6M6AFYkLoU1uQ6DkmLVUeQCn00KeWmo8gqSmkEUOfkyzHhOCERtcaTlghmV0UpBchzK6fQJjdggx6sVsQ1A3OwUDdCUEvkzxxMGOymNYIYVonBAWDc7CY1gnBwQzqFqfp4LxF1wZeW+g5kBM9OO+kJpx30jWcd3KX4K6Dg2bFV1bu5nx55837XrxqDGFaAV5PXq55DxpP3xvctd2cxb8vTmjzFwplbmRzdHJlYW0KZW5kb2JqCjEzNyAwIG9iago8PC9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDM1OD4+CnN0cmVhbQp42l2S22qDQBCG732KvUwpwUM8NCBCorFI6YGaQG/N7pgKcZVVL3z76v5LLrqg8O0/MzsnOy2yQjYjs79Ux0saWd1IoWjoJsWJXenWSMv1mGj4aEj/eVv1lp2+V/1H1RKz346HIv98PtPP66wondTQqe2xu4vt5Zy7IRNUw/w898Q8w0VWzsNIbSHrjsWxxZj9vUQfRjWzzUF0V3pa7z6VINXIG9tc0lLflFPf36klOTLHShIdzkV+vBM09BUnVckbWbGznITF+XISi6T4p3sh3K41/63Uau5mi7njhG6yknfU5O9AOcjXtHNgaciDFoB20AxF0EJQCi3S5Bu/Pcj4GXqBloL20AyZKBkIWfsn0AkaKMALYQ7yNQUOKNAUGYKf52laWqA1Q8gsQifCAwi1h3g9QLUhokSgyPih2gidiPZ6GKbr61jWhXrsE5+UWoart06vzTrhRtJjMfuuX7309wdPFLgvCmVuZHN0cmVhbQplbmRvYmoKMTQwIDAgb2JqCjw8L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggMTM+PgpzdHJlYW0KeNqr/08d8AMAXstIMQplbmRzdHJlYW0KZW5kb2JqCjE0MSAwIG9iago8PC9MZW5ndGgxIDE5MTQzL0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggOTE5OT4+CnN0cmVhbQp42s18CXRc1ZXge+/XppJUpdr3ql/1a5FUpbWkkmxJVkmlzZJs5F1lsCVZsgV4jY2NccAmkARwSDI5obMMSehOoJvO6SZfBgIBAyELh0zmNJM56UyW09MzDKeH9ElPn3T3kM4El+be9/8vlWTZLJ0wo2fVv/+9+9+727vL+yUTSgipJncTgbTesKOlvTj+J53Qcxl+Z+fP3Cb29gizhNAg3H/h0InFo2cWLpyD+6cIqXUvHrnj0L393acIsfxHQtLemw/OLdDjc48TsuENwM/dDB3GPsMgIRvx+fjNR287+4nvV0/CfZ4Q06+OHJ+fq77F8yYhhQwhugePzp09IXzOso2Q0WcBXzw2d/TgGd3kHNz/lBA2fuLkwRMbcluPEzIeh/GvER3rYpeJHsYusmnomVCudD9pp8gFMRHlRyTECheq3pKpQ8ML5I8J+R0T3lw2wNqP0BaR0M/iGBPYZf6IQN7p5yy0Y+QY4rM3WC0hy926R0o/Yq8svwX30eW3lHsNj/zZ8oZV/S+tudfm+zH51qr5lPsynkwyokx2TQ8XRXHiWWLZNiEbduydljsCcn1x9pB4cde0zBJz3zIB//Pz0oFANCqTokwK0tAlkEFhdrBJphlZnD3UJLOMuCDK356Sdcm9l+qpuTA8PywbhqejspAobr9xOipFAxenRXlqCrryxYAodyPUXSyKSwr23IJcD13qnSi34ngrYn57aloEai7OibJ5anoWekQcMyOUQyg3G5gtFosBmaaLRUkmU9MHi8UmWciIMI8uMQeU6QtT07JeGpQN0iDwUZTpbJOsy0hAl7iwpD8wKOIIUhxQKMBPWZgdnpeFxigMFsSL4kVYYKlVnwAmt03PTgXmthenpWK0KMr5HdMwFkDW1PWbZH1GNhbSlwhTJGWAW2lQAolLg3MyO3BIpvNAhaxvbJKNGRFJrS7MP6sjB0ScQc7PFhFldoiTaspcMlaTwvBgY7Qs+6rMal2YlVloGkgoAN+z4vBFaQ71wuVFAihTWQwAkRqVoB1pbkhZovoaj8txeIoEVlirfKgmwxm6VG0WQNkBKVpsjDbJtZklxoblhbmhJtmSAURRlGsK4/g4ANJgUa7Fu+1wVwt3TbIVpqnjIhFBAvOwrmwpzIoXZ0XZAkJrkusyEzunl3QLQ8W4XHtQOtsk2zIT26YndiidgSj0O3i/PbNErIVd00tWa0Gmc4OyNY02C5Y8uFSDH7XwIVM3aEJITE0vofCA28GLoF9ctjEqwWMaHFDG8RHYCthTBE5Ggf5R6F2tqmsocIkQhwTSKshk0yVKKdeVI0OWCBveOS1bpUFxWK4G4zNLYHCD4iws/7TNRomFDA5enF2yG9LyA+lADMTkBN4c6SbZlVmieHWDnPHqySwJePVmlnR49WWW9Hj1Z5YMeA1klox4DWaWTHgNZZaq8NqQkTS5y4ZZkLAkNst0H26QJrmxYtBdHvyQMpiuGEyWB08qg+EMkWvT74O/CPAXBrpE4A+vUeAPrzHgD68S8IfXOPCH1wTwh9ck8IfXFPCH13rgD6+ZjNjLzbQpA8vaZsUC6Ha2wFUJWy+DttqckZvSchPswhbYAKPiNbQozXVL6BGvixFA7lvLqqVuuaVxSU9dw9PgyJDBtkrJXD3cnhE7Ob1ZwKPDVy8Cu3PdxbGfuJ/i0WRok9S91E5dyFwHCAAoXp9g2BVz3U1yZ6bZ09sk594JFSx4HtC7QCfEnRCbxVHc+SDLzRcvjkqj4CqmIUSAZwV3kKPU5QSRdoOLcst1gKYDr5ngaHJVIX3wYrMkir0XYb4Nq1HEZmUuWQc9gCnKs+g08tumn2SiIAaeZEnBXxxER2oCnyxxbGkEtnBh7X6cRWemxA1WmF0A6yvMLcAwK8wFAJ5FR7b2mTkgC9y7NALKlGCFEeAPLnwVmG+dRSTFZerAS4AS9GBZ+qtmhRmRowQnAj6nFFe5shbofqMmBxF69UlVDlIviKinPCSb+PiINIqLovZ6y+JDZlQJk53TzWIvhFykXu0UkS5NBYYE3G2ujO6K8tYza1VTEtp2XwUlBU1Vs5gCrGVZU+8mcBTNKMURua4wPRWAkCn2FpuXmqkTNmj/qtHtgalVo/l1n73eEwMZuTt9vQUHM/KG9EWgDe0LmLomKii0WW6GJwqcZbRNTSdolhJslmbYZ8qsQ+B3IIRoiO/BiEd/X3aLXKCL6pXAC1VYSLSo0jgMvrU7rclhBO42pKOSKgmVkzLTo8C0S9ngkF7AXnY0yx2wn8eu0b8ZpqNOh9wJ8HhG7oLLBMptGAQsjkAs1SQ1mUETlicA3JK5BM4KgK0AUARuyFyivGcKAN6zDXGGAdiOOAjsQBwEdiIOArsyT4LXGwBoN0CUQ3syT1Klbxogpa+IeBShvYjHoRsRj0M3IR6H9uGaBQD245oIzOCaCMzimgjMIc4IAAcQB4F5xEFgAXEQOMjpGgToEKcLoUVOF0I3c7oQuoXThdCtnC6EDnO6EDrC6ULoKMh4Y1mBx/idvAnA4wrYD+AJFDq/y8PdhyCMqjgnFRBxTnEcquLcBg/3lGc9ze/4E2cUEJ+4XQER/SzMoyLcoYCIcE4BEeHDgNtbnu9OfsfR71JARD+vgIh+AZ5UEe5WQET4iAIiwj2A21ee715+x9E/qoCI/jEFRPSPw5Mqwn0KiAj3KyAiPJB5skrHtGR1MC2bDspCfOqsFoebQGcCqYdKTIR6rJq4SZSYnwl76moMRGhN27PRdpfNKUVjnbacwUPduU5bhxRl0J1L0aTBZauX6CVJKm2VOhijf8x0+tIBn55+WWCsNMd07LJ05aIksTN6Hbvy5wLVsd36K3frGNsD8JWvY225ESi4xDykltRPyMmp6Xw1GIVnAnpdZDLA78iMcld8KhFlRnc6Z5BiSSAkl213u2yXYn5/DH8lSfLTL/vhszSPmQFdnmLTy3/FXoO5k0uGhaF8gOBse3BshgFEbwCwltQkBKMrvWQgQyzZ2alM63IapIeC4agUDEls2h10BN3wEXJhqUvMy79jp9l3iJ+ESCIfC1GdQMeJDrjR0UNEEJwTjHKKnV7JIemNvnQc54slU6mo0cCp7+hy5HKedrfHkcim2OmY2x4ydZR+0mEM2fwB4bcm0WmPGN8q3fLqwYFqf9TtuOOcwxX0VpnZbqebuRxXvvmdvydcdyAptgi6c5AgSZDOfLtDoUYgOr2gO0hALfuAa+eEger1ZJ8iyVAolAjFU1GgwwjUETeSpwk12w53xmRSklzZ9lwny3V2cJjFC/fv/y3K9+0X0/UtDYnHHg831XVuavrLp+jx3UO375f8bNAvXWoadn6x4Uv1sdKF9tae+MsglXqo7Hexl0mKtObB4qhAiXCeCIwK7E6gTT9D9HrnBJCqmyE6XUg3mUzFErG4wehPE5fTCAJLJaWYweByurPtXaAfDxKM/UngIIcdbKe1zmeztW0Yubn7wmJfk93it1vrrFunDzx6YN+ji8VJdlFyOV1Vnp7Dw2fOeUxuh7vOb0zt+OqpQ1+9MQU6RTl+DeRYR3wkk2/gctNRFJyeCoImOJuNEJvP5vW4ANGSM4DdEDcSUyE+uyIwW5b+9X2jo/ft/0cU2T9O7b2x+Nhj7PK+Rw4ceGSfIqorz3zs0KGPlRpxH+D6TlhfJC35zPW1x89ZIvFoXNFenGsvqi4fbVduXVkFkFxR+mvcE0tIBr3BL8UCpV+/jpfXqfWU5PGJCjFRvy/ydfz4FtHoMQM9AdKQT2IPI/Sgnup0wj5u4UCaiyEpAeLvlOJRg9Gbdqws6izvUZWgV3+K6/804QsiGcN4wzbLUb879kukRaHAHeNro718gr1CWsimfE+S6vRgz0wwCMxw3kgNRK8z6A8CEXQGRBOcAJPhHiLEJdNCmqQk2EXShNaDG3mVnXBlVdgTGFSuq5PvSFAduyUWOXB6/vEDBx6fn99stUa9VntuY/5If/+RfDDv3Y9UP0rPSf4fS46+uccOHHhsrt7kt/oSJs/AsQH4Zzbdg65Ild9HQX4RksrHVd9w0KBnFd4BqI2QsCMhORLqLrQpYuuMVsgPnVEUqWMHYvGgL156OekLSAjR/qSPXY4FrryIdP3yl1ymg/j5d3/nlxQayKtAQy1x5Ou4GSkGtJ4bfVWbVSrPcuVFlY832QvgW5J5KWq3mHWE0XEdOHjmnKBlRhIknmhO6I2eCjZs4OtShmRKsFVy43GA58uy7yZiwaD0mNlvqfWbHxP9PjHht4ZNP/9vpoCFvQCLv4BmQT/7do2VUmsN1ZcWAjGgrOCLW2tKS/SGGmvZTh8CHkMkno/6zGxd6kIkmEiupi5FV1NF8crOhCW/JWAofSbi8wJoDRnpkYiXXRa9V77ll6pM9D+XdnlF0ctG/VKNudRKn/CK/PiT2+xrYLNW0GkkH8Sdq5oneA/VPMEqYzrYJ3FDhUmCRTazCmsEj/va9MNzcw/v2YOf0/fkZnv7Zjo7Z/p6Z3O/e2x29rH5ef5ZOJrvP1YoHOvPHy0oNKAssiALJ9AAntZAdSAhHcG9wvbpKcoE01g66YI45oq4wqEA4NqlpBHMoezHKmwPfBk6M+7+6SM3dXfflH0CVSX533AkPJ6E44kn2OW+xb7em/te4NoBuynJYjYYzEb+RpNLt1ADcsmRETKeH23wMr2Bjpuo3gC7WHce1IWu5TwxwMVAF4nRKMwAvSvb2ocaLAz0bIApOpsy8XiiCjaLTiEW9JjErVyOql3NrCxWQADG3B5lk29iWaIKuCOpbH/2Zrwwl8xPJH2iu6auttZt80rS/Nazg4rkC3ds7fOkfJHmkC9uM3id5iv/RdGCopFg3B3qFH1uay2uk/CkahO2gw/tVpSz+6GDNo9QZ7HVWS16h5l2cTUpKlN0tbzMHgRd1ZMsyeWzUQiDCRTFOHh6MGs9PUjKvlb1Fw0NDdmG9raWTikBDsPLHb8SHJUIvcrn8ggJvLtAAGxFi+wua4014nWOtWSeD3lDafDFYsdNXbl0v0HQmSzPx9zumP0Xv9jrt9it9uqG8/HG72iK7T7Q1z4TzIzXWSMBI9XFNkSDLcH/ofnrJtAx54QIOqITQKNoevRO4ILNwG4ITvBIj3EspMc9mSXtUrIRbc+XdidT3AG3K7oCYlPa7vBoDhtVBlvEE2Zc82+caAvEvA5r/WRH97apPb8YPDnSfzwRinmsNf59if7h0cndix2jZ4bM8bQ35JFqouH2RFO2VvyL/n1tyYgn7JGqXFJLMp2xWFu2FfpnssBHGBSzE3QCWXA+jEIXIAXgwY7vGiDaTZySFFcdCQY6zYmoESTK2mOxwJeTwWD8yyg3ehl8h98fufIv3DnX4OYhit+CHPIM+NUIrgUOi3tnxrRcV4kN4DBWnJbiMzR/rTkL7rZ2iyPnt227MBIPeuONow3piaawn70Agf5zO+4eG7t7B72Vp8Wfa52or59opbcGlDiL/N7PXoItBjS4wProOHjOlTjBd583ldJx9wDGJgARSXDoirI0Vz6fMPymSrTbQqbf6OtdtrDpB8+awjb2Ysxba7nyosNJHXY2ZLYGok5HKUV/Znfi2nUg3Udg7Qay5ZlEqEYgkLROyCEoABxQLHBXJQgRzYcH8m7IFyEJIOfVUXWgmK8FKhtIPVhMCnMQjU4juAZhPXo9OZVu4UyD8H1D2G4Xqz71aaDfHjZ8X2jwOUXDH91jCjscIdOHHzJEneylRLCq+splmxNKfloovQAMOW1sqLoqmHDZS7202+4C87CXfkhftru4XCFJZMNcrqG832EGqkGyjK4INl4PJQfo1Shom1Yl0ePp4uplw9U/inl90n+yN3iCLvkxV8gbZ0dtpb/mdkQZdXo9fin4z78Ox/2Kn5VgDzazKKRjKfKJvNkDtVYVuBEGQvWAUH18HxowMEYmjJhMzmiiVcquUCUCUsmxeAwLUZB/GDJSptvDERQjXYVQLOadwSAhwVQwGRMxKUzGE6ZVAXdV0PPwjIZnynxbZ1kNFnFR6tvVMnxiIH+80LozFPM/sH37QH77tgEWBWMuQkbgDzWMnp+aujAqBSjEmsLM2Njs7NjYDJfBAMhgkr0BlVA9OZQ3+6ASMqsyUFhkzI1xRQA3hMa1IocQmlgAennevcgRV40Ce6EQQPWhlBSFBQKJRFJhrxyI1uRswKa9gj/6sMLVrqBWr3p3t7QBawPAIosqTKWCBp4M34Za/lG4qVRA3pBHblegY/oPoOMUWVA4SqxXTKGLjVRWU4G8tAZPizGLFVjFvAUWSZFkAkJsfKUsBJ2VnS9UXxBG2zWWFWXSCzf7XXVOR5U5VTOxa3ehzWtw2Wt9oe6bOraczhfOTrJoZ8YdrbLq9aZ9E2MzNYLVJPq8jb6xC1u3nR8t2+4b3HYfutp2Q6gtrjgeSda33+hapHVsOAJroRUvqrgftBG/Abn651Yb8fegCrx7xYgVWURBxyLIYlFhLQndFBKl8/ylvZ4chCLIwNUWwcjE86WQAPzFy4g6QIEyaVF7ogKtmLdGo1Go/V3JZDwW5WUS1ItKOFG8j9O4JkGNG6OdYANMjHtL36zZnWtoDujtda5wMLi/deddQ2NnCoOnR0qfdlGDbrwF4kpPwWoTqsLOgNsjjnx4y+57hsfOjT581NjYq8UdKoO+G8knJ+QAcBg2GZnBwM8B3BMCxSMfHWjXo1aZAc3aDUZiNJDzJmo0XhsZrF3Fg24YB5ksVjyhYIGqIQIBBQ1OCUqeuFRlDIAcXOUKdk1gz6rnQooVJCUqBm/EQuBG3Mk5hHKLc4muoFNfbfDWsXMpT0vE642UvsL99QGEmyf2hyNeyCsMip67WTfoOU26yMfzlhSIzkcFYzXoT1D9VSNsWiZQBskxqNsEhgsKr6Jqhhwqpws+dF71GjLigQBA+eujFvPuTIaQTFcm194KyzcmE1J9wlxZgGLy1ZVbScc638Hq3bHP3xa+xd0mGEI2c5XuxsT4ZncxO3JqcOBDw9npQMz/4K5dhcLOnQXuxgvnTjvNroSxyu0RqNSTa420K7uhMVy9xqXj+TYIqwpsJUa2Ph2hVEdV4XgI38LQM4OnEhEtSQ7kXXqqlNuLHIVVJgoxEk3Aj5oolCtAzontKv9NX5hE9aZz3f2a0w7syLLoHYeXCdcr6eovZBWY8RTrb+LZ5WXQKCFPs9dIjH93RgBt/89yrWoDXqJkIF8lekxGnZL1ID82JTgJgmcl5yn3lZ1d8ZsQdyReQyppccq4OuzYtB1s9DBbyu23P9Wmkf4Th88teT//jV0+X8z5YtMtK1SXPvWaI+Hwuj7xItHoJN8FOrVzA/d1zg2+K/l9Mf5bnu7K5xS9CUWw705yZ766CeISHW+HvbpZcelu3Lf6GZPRIOj1nglI6Sp9uZ9gJ6IYZrhniKxg5L3YA2MEq0WMA9qQuqU7SUdC+eFb+ppavobO2z2YGtauUvwaAzgvefb1rG8Fq2B+Fl0Xzx5rHFqxZQfIJEZuRVvmukdpOLh7hsQWtc9WhTUPt4h3NHMyo5n5+7Lz729F1pq7Nw6W2dzTcQ0OOVe2eIcaq2BP8zOPXoVel3bwEak8+AggiwTd02JFb/Gb7/ZApDB218TknWNjd05O3DV2tmG4sXG4Qfl8/sLIyAV0HqMXptq2NDZuaWubbGycbFPzwW7IB6M8H4S8wgt5hbkyr1hJeT1qToGEobR9tJxXEBy9KmmsRMxHyolj5aAqCJ+SV3wg2eP3ePZ4EDWkW5U9KvFGqw/+TOFfFQgFgQT4jaDcFK8ST6QiTZpQI05F2uVZk5utRlxJuyrG8LFyRLo67UqsTrvWRqDcemlXrJx1te0MClFvOe3yQNr1MMrklaCad8UDnnBpS0Wg4XuTfoXnXX86Idunpp8OYfIwHoArbtQi78w70A+Xt2o5O1EqLDACQk+gx59di6CUHyoCHyFEN6vsaC1tCajjuK8JxHDcKlyoPF1R9rVIIuD/41qhWz4YMbiuth96ukF0Wx2Cq8bfGtHMxrO7DYKwJxKBBFEcaPqHlS1d25BGOfigxngJ5JAj+xSy49c40IlMaK9uQnqgPrYWDXQugM4rkIr5qoyUSkv8xU4OUwwlw+DnPeVzO0/5VAsYQxegnfjAJvH5LVaXIzzQvLWze+Pmzq5ie/ZQqNZhsbst9g3xyWA6lRtr33hj6+DJ+Izdb69yRMJCdyhsrRMHulpHU8lEndNjrba4/V3ugLXaKg7m2jYnM23ItxU+jrCLpKGck0KtJNyrhyDEIL9EJ8BDkXZAU85JEQvSS2qgRsP5SnRSgQw56So8wABUIwPnvYKlBrAGUu/gKWkcA1jc7Vo/E63IVJW3YnSbpyexaVczJqPNGJFHERp1O0yWmuoPBdyBROdu6hS9nkge9Z1HqPRrl0On5/YPvtzMPLD7Nimc2fmhlKecOnI3zjsZvbeis5ivUd4CQbxRD6tUisuvUpUkEu7om7Hbjx07w3NmqDVifuaB7OPIuXNHSjwP6evp6QOI1wjLy8wJ9PhJ39NuLGrUPMmiU/x1OUniHYTdWz4QQnL8xJeyebRzOn4exA+EVh0E0X8RTc8bA7YqW8j0nDHmc4imiw+Ygjbmjnhq7KUFmxPPdeiX6uqcUae99D3a43BSjbbXgbZ6suOZOJ5d6TXqvEQPu0BPzhsNkK1DDsNwTyvxGrv0unuhJNPfW+6HagzIrSepRMrmtHnUl1bKSVsqCendWsJ5fufx8IO3l6O6LxoidlPMtmubLWayRwxf1EUDzpDhyA11KZfHtOWwIewGEQeqLKUFu4uy+FtvxRnnqbrGl3A4Sr/4ScLu+BEVHQ7FBrq5DbSTD+XNfirosRrRTk/iWoGhsgZ7er06JK6xqdUu66EpXLeTtkQyHq9PqFyvLT7CTCk+1px7YqdNMaYHT8dGtbLDKKVco4WOYx1TGbSvrs6ODap97bnn9uoqteAQLFV94+aBtj3dNI4mt0z6u/o2UEhtIG/H89DdWGvQHJAngev6EyV/Z/eX3/Fs4u94Auo7Ys5QkL8ipjP4ujhEJ+tgE9cF6vxuJyBakviO2F2R26Ary1UEr7+9Y9OmO3bu5J/5zZvz+Gve+7XDh7+2V/k8e+7MmXP4y+MUbtYoP6OuzycgXsPGwBcokP6dF5Q3PNrRrZu4Egn16HbljZziRbrAjMhyDM+pN1ltPslm+bzNzy7jOz8eEX6erEp66oKmvVW4Zgt8/B/gu4E059OwFHgv3XntSAG51+kq3k2D/0pJjR0G9Q2F8mq6A1ZUmS7TUBaI0ZilPwdfVfoLf9j+80Q63xjq8dqD7oTTmVxoHlzIDXRd+Ktj6K9En8/xy/ptsabBlOiNuawRZ7K5+8Cmvo/03Mf35Vv0dZBNBzk/IVvAZpvA4eoFvVEAhytQvQBhCR0vuxOs0rAPXK9ztXvLlvEhmkE+B8GO6nXXf0px2h2kA5hLgKUqVcfK6yn1vYb64qmS/y7tpYFSsNGZXc2DZ6fiY4FEzOv0pDsi3dJAszMs+G1uv7nm4VfQndP2sOj9OH2ud65r89GNdqsz5q23RiM9yVyviZoiHou79s9RUNGA1/sQ2uxe+LgNZBKEHB20F+HfDtHDHsUXb0qSsfJ+IxzC5DQJwcdYzjC090qdihqpsg2z0Wwn2wkENWKkKb3tTlppryPiizWWLn+VZpCEj6AlfUTyuu30Xi9sw798lX/fB3R0BejJkZF8IUsFI35zRqCCjoJFoce4E3QA0jcKGBr1+7SvhlS84s+RznhXPAEZwlpZryds7cVgrvxVBMmI2dGuw32T5zendvhr6iI+e6BRbBhLj2c9cZ/dVZ2K0ogu6qFRFPm/Ohwb/fQnfbcOFE4WvC5zvM4ecviT+URuqKamytQYMuv+1RVAjj9TbdH8BH2bvcTrjlw+C54UdikYELDFhEX1+xwr31pYXRrUr3obqya9alWP7BjXVAZ7Dub7b80PH9mYve+2mmp/LOTtP+xrz0cGB1taBwZa6Sv9hzfBvy13jW7+xpeiQiDkjhrtN+XTpa+MdHSM4C/3K73Lv2M27lfw7TX4lX1XuRNnYuVNEC1/jSmqGjH9+5Sh9Ftj2O5LGH5Zeosb603sctRfa7nyvB3s1FJLSygl5XtLvSCoOljPT5IQCPryG/01aJPjlUe0vFZwrlRcQEgqFQik2lNtTelAMpBIp7U6oSyrrlWu1pg0qOkHCGyV2H7R2X84nz/cPyc1bZzv7Z3f0CLJXV2NDV1dDa2Dg634S7ftaNow2909u2G21znU3HVTLndTV/uA47931jd05urrO0tiT2O6pyfd2KO+6wZBvs1+oOndzo+rDBVlOpvBt/DBCe1bWJV6b6iv0HuFj+xaqXxWMbB7rcY7uCGgzltA9+wHV2lcMYRVemcEP3/I6ngNP6meOeio+qU7nv1BuQO6cOEBswuqFuVAtbK/mLfzmBepC3ldMFFtJ8Y8u5IAal+mk9ia+4ORSKg2tPqD3hcJ2RCCj9IdKzAIMLh8O/kZOQmRN5j32fi7SqAe/s0rzivVGMNXam7VLnHLcGEZy/bg+lksF3L76xy6oMtmq66pDWdcmXbrSIfDVVdrYFZftc2oh1xPcnVlFX3G4eMzYKMT5AbyYN48QE1VAQi4WkbUYLMaIPfDjBgkUk2rqpwTlrpawWg0zdSYmckUmcBKgBd3Kezgg8RkvHmdB1XMYj42Cbtt8obJG7ZugYXHR4b6+zZu6GiPR+MJySXFo3ZjKE2NWvK/4t8qQbVSWAFy2qlgJahMYYQnWTLcAjWhZ8ApBJzeEK171CkEnR4A4tidU0bz6qj1a+qoVcLuF8KPhukzT0Q87uAZhzfsrdLtP+P0RLwm3X7s4wMnlYG9J5WBvXzgiSf49z8peYlcBLPx5d3aNzPVt+1oSvjVzNwa0ymuGMwqG2knv6F76TFSS8Lqdz134Yz7+Hc9t/DvelZ3qBOq8+F0uyBOPYHB6onfxJTDzChR/+5R/WvGGWvv/4bt+ybC/+H5z/47vP549IHvlWKlH+lbdY8ArhGtkajPKX8fqd9Rii0/o29d+QtK5Ye1sTHwEL/C774uT/GeC8RMPsAf9mkywU6hv7rG+A/5GfD15+h9Z5z3TV870Pfsdeh77eq1qeMPR887/QhZZW32t++NBvaba/P4/+KH3ajy8c+knn3j+rywXe+ddnYSa6xrjL38h9Uf+1MSFr6B3ztZZ2wnfmfjfc57HCrFD1JHx8kAE6695vXoYUN/WFqhXg6zO66z/jies675+RV/X/b7ldGGFVuilne2K+HfK3SBHQy8p3UOfbC6fze2odkAvXR9XujrxPeedPtF/r8BXHvtifcmu/cRE8IQjsN/yLXZJ6+eH3RcT48QPfOSFmYG+/4e2csKZCOLg4/cQHrZJPzG///y47+XvWwjIxT/qqRSFk9DTvxbspE++K6naYffTeQI+QK0//r+Gm2l96xq31nbmPk9tTH29VXtV1oTLP+mth/aV6/R3vj9NF0ztOf04pr20Wu251a1t99bM2w0PF7RXr9eMy68z/ZjU35Ve6WyVXW/x/aceeuq9ni5PfVuW7WJt8ar2lPVT9UEr9GO/J7aP9X8U+09FsOads/6zcrWtPH32L5Qp6toH30X7aFy+4mtzrZg+1/2nP1xB3NsdDzqKH1Qzbnd+aDSXJtcC++6PYiVGBsmN0O19kfEABVbI+khnwAPdX+tG/8Cgf/nN4eg6qM6PPi28woQYUrscKfAjJhoXIUF0k4zKqwjQbpfhfXET8+psAH6H1JhC+mgMimQ4+QEuYOcJLeQRaDmNiKCn2wlbdBEshN6DsJ1GzkN4/PkMDlF5sgxsgB9U/DMcXIrjM/zpwYA5zbAPw79p+C+ns92G8x+CqrLFmiLMAdinCYHSDM8dZwchV5lvpMwz+2kCbDnAO8IYB4D6HY+2rLO+iNwPQp9R4D2BpKB9W5XZxfJdpjrFPyeJGfgE2kdgbWOcSq38ueAJzF49axiCOi6eq1BePoIXLMw2spbD3B/iAxDX886+E3lJ9aTmza2m1N4CsaRNrFi9uvNqMlUkegpwELNnYC+U/D8KS6RZq6DRRi/ATjH04uJZ8mr26eXKP1UUabKfzxwYokYB58azUYE0ojgMxtNSZPdJJiUuyFDqyFo4HfmwcuWb1d9W/dtMJwquK8dvEzyvPF7gQwtxen926bl/P3TS8LC0FIS754z3Q1mlr9/fuc0ohTh55leU73JaRJqGp+lyx+TdZ9cYmToSf2CgQwN/V/nWLmPCmVuZHN0cmVhbQplbmRvYmoKMTQ0IDAgb2JqCjw8L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggMTM+PgpzdHJlYW0KeNqr/09l8AAAFatREAplbmRzdHJlYW0KZW5kb2JqCjE0NSAwIG9iago8PC9MZW5ndGgxIDE5MTE1L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggOTI4OT4+CnN0cmVhbQp42t18CXQbx5VgVXWjG2g07oMHSBFgE+ABgBcIgJcoEOAhERRJiToIShQJiZRoW1dk+ZIT2bGc2GISb5LZzSQTx6dmcs3RlOOxJ9Ykfp7Em9n1xkk2pzO53mQcv0y8a+9MMs5BcH9VAyBIHT7GybxdlIn+Vf276t//VzVkhBFCRnQn4lDr+GRL+1T5A1EYuQR/c4duPu3t/iwREcJV0P/o4ZNHjt08f8cZ6H8OIZP7yNHbDjvT/70RIfNzCDUmFhey8/gr2f+BUKcM+LFFGBD/WHgY+gPQr1s8dvrWe/7GdAL6iwhJ/NETh7L7nznyXYSSRxHSlR/L3nqSe9E8gdDw3YDvPZ49tnDrPeP3Qv8CQuTgyVMLJ7tiY/D8iB7uP4p44sUfRDq4t0SmYCStXfEB1I5boE9vsY8XIQtccL6LJg4PzqOnEfot4V5aFRDiH8QtXoT/iN7DvyGX2CMcer1PL7RO1EnxyT8SmGe1k38w93Xy7OqvoG9c/ZXWL+Ch46ud5Kcw/uv8+F2rbev6hfleRf973XxavzifikJeFe2eGsx4veknkXlHWhUmp6fUDo/akJk77F3aPaUSf/Zv9EiPDh1SDnp8PhVlVJRSBi6CDFJzybCKQ6p37nBYJSHvvFd9ekLlA9MXG7CUGjw0qAqDUz6V82d27pvyKT7P0pRXnZiAoUTG41U7KdSZyXiXNezsvNoAQ/meV22l91sp5tMTU16gZinrVaWJqTkY8dJ7EoViFIrNeeYymYxHxcFMRlHRxNRCJhNWuZAX5uH9WaBMl5qYUnVKUhWUJPCRUfFcWOVDCtDlnV/WHUx66R1KsUejgH6r3NzgIZVr8sHNlHfJuwQLLLfq/MDkjqm5CU92Z2ZKyfgyXjUxOQX3PJS1/PphVRdSxVTwIiKapAToKkkFJK4ksyo5eFjFh4AKVdcUVsWQl5JqTB16kkcHvXQGNTGXoShzA4xUfeiiaESpwWSTryh7Q2i9LiRtFhwEElLA95x3cEnJUr0weSEPlanq9QCRBSpBO0p2QFvCeJXH1Tp4CnnWWCt9SA4xhi4aJQ6U7VF8mSZfWDWFlgkZVOezA2HVHAJEr1eVUyP0cQCUZEY10d5O6JmgF1YtMI2VicQLEjgE66rm1Jx3ac6rmkFoYdUaSu+aWubnBzJ1qmlBuTWs2kLpHVPpSW3Q44NxBxu3h5aRJbV7atliSak4m1QtQWqzYMnJZZl+meBLxW7QBOefmFqmwgNuk0ugX7psk0+BxwqwR7tPHwFXoCMZ4GQY6B+G0fWquooClxFyKCCtlIr6LmKMma4cIbSMyOCuKdWiJL2DqhGMT1LA4JLeOVj+cZsNIzNKJpfmlu1CUD0f9NSCmJzAmyMYVl2hZUyvbpAzvZaFljl6LQ8t8/RaEVrW0WtlaFmgV09oWaTXqtCynl6rQ8sGem0MKQW5q8IcSFjxNqt4hjpIWG0queku3nyHdjNYcjNQvHlKu7kphFRT8C3wVwP8bQK6vMAfvfqAP3qtBf7oVQH+6LUO+KNXP/BHrwHgj17rgT96bQD+6DUU8vYyMw2HYFnbnDcFup1LMVWC64WorTaH1HBQDYMXtoADDHuvokUl26nQiHhNDA/lvrWoWuxWW5qWddg1OAWBjDLYViqZy2+3h7xRRm8E8PDg5YuAd15xcTqO3J9j2WSgT+lcbscuylwHCAAovjLB4BXZzrAaDTWX9YbV2OuhggUfAvQ46AS5/d5m7zD1fJDltqWlYWUYQsUUpAiIrBAOYhi7nCDSTghRbtUKaDxETT9DUw2p4MJSs+L19i7BfF3rUbzN2lwqDyOA6VXnaNBI7Jh6jHg5r+cxEuAqM0kaSPUQkxWGrQyBC6c2+uMcDWZa3iCpuXmwvlR2Hm6TVNYD8BwNZBufyQJZEN6VIVCmAisMAX9wYavAfFdYRNFCJg9RApSgA8vSXTYrzEg58jMi4HtCC5Vra4Huuwty8MKoLpCXg9ILIuop3lL17P6QMkwXpdrrLYqPMpOXMNo11ezthZRLqc8PeildBRUIfuhtK83umvKuZNZ5TSnUtjeXUJIqqGqOlgAbWS6otw8CRTOV4pBqTU1NeCBlenszzcvN2AkOumXd3Z2eiXV3E1d89lpP9IfUzuC1FkyG1K7gEtBG7QuYuioqKLRZbYYnUoxlapsFnVCzVMBZmsHPtFkHIO5ACikgvgkjHn677JZyQUNUrwJRqMRCfJk8jYMQWzuDBTkMQa8r6FPykshzUmR6GJh2aQ4O5QX4sqNZ7QB/3nqV8W0wHXY61CjAIyE1Dpc0ldsgCNg7BLm0IKnREDVhNQ3g9tBFCFYAjAGAKTAeuojZyAQAbGQHxRkEYCfFocAkxaHALopDgd2hxyDq9QO0ByDMoL2hx7A2NgWQNpaheJhC0xSPQfsoHoP2UzwGzdA1UwAcoGtSYJauSYE5uiYFshRnCICDFIcChygOBeYpDgUWGF1JgA4zuih0hNFFoUVGF4WuY3RR6HpGF4VuYHRR6Ciji0LHQMbdRQUeZz21D8ATGrgFwJNU6KyXgN47II3mcU5pIMW5keHgPM5peLinOOtNrMeeuFkD6RO3aCBFvxXmySPcpoEU4YwGUoTbAbe3ON87WY+hv0sDKfpZDaTod8CTeYQ7NZAivFsDKcJdgLu5ON851mPod2sgRX+PBlL098KTeYR7NJAi3KuBFOF86DEDTwrFajKo6hdUrm7i1kIeDoPOONQAOzEv7MeMyI18SHpiU5lVFhDXGrRHfO0um1Px1UZtMaEMu2NRW4fiIzAcq8cBwWVrUPBFRcmNKR2E4IcIr8sdrNDhT3CE5LKEJ5eUlSVFITfreLLyaQ7zZI9u5U6ekL0Ar3yG7i23AwXniR6ZkCNhBXsoS8OAC436fUR0B2OCUhuANWORdrfLdt5mMtnYH3zj5yic60B49XYyuvpV8hCSUWBZmB9IeGBijPbSbeksAQiPAygjo58TXcFlAQ2QQDRK53S5nIJywl3mbHA5yajDLtkdfviD51Z/sdqNPopXgJSKhBseL0vDTLgCjzLynCE6lcCmicdiRQqdgqDwVrPsb6NkBlO1z1pl3mghYiRIeErvyr80D/pB3Kh6dZVcT76IKlAVakwEqjDPWYBSMoJ4kAqPDyOOc8KaTBjO+lqHohMrgnWU4NpAfb1PZNdoRxzTlcuw38eR6+2yZOHTuadG9A6zGcjV690wgMXcGHa/38ubrEbDE084zTIncOS9TqNh5V0/wHsQs4EDQNR+sAEnqkYBFE20O4EiPAJ3eB3HLyBQ7wxI1ZkWsE6HZjQlbdq0KbDJX+8DOkSgDrkpeb68xnzttCvGAoriioCMSCzaAbAtQqyjt03n/oWKAxt2zXa01vV3/+hHscGWyd2pF1/CC9NbD2ZtJnKnybZ/IrrL8dUtv8EDW3KtAwNDydwr1GZaV39FjpIvo0bUmgALxhxG3FnEEcyRdwKNulmk01WlgWR+FvF8NT8aqK8NKEBLZRC5nFRy9QGlVhBcTrc70h4HAZa56TgVaQA0yiRKjooGs14/MbvjXHr03MTsuN5gNojm+lOx2YdnDzyU7bwhSO6wGoxGXXT0/N7M+XSHTtYbrfpKZd+F6xb+dMZbjaieqVwfBLlaUSUKJRqZHHlMBanDHFcQpM2GkK3SVlHuBkRzTADjQm4qvhJx2qn8mADx98/195+bW8VUhGj1+M3tN+z45jfJpdkH5w49MKOJbuWOh+/acW585fMgL0qDAWjwopZE6NoaZWc4NXW+Ok2jdVfQqOJzFQCbD79GnfBDTJcnmENexD52/REe67HLJqtGDriD9bf0i2oQ5WkSgCYPtX7oEw6TBbjDz+gwzzvTYP4ujpLjQRUK0COI5QX7WlveWQwPPvxLuuhj2MsW/7HNZKYkHSWXbCbZ9lsrXfkb9BYlpmBDt5NnUSvqS/TUY14Htk6oXwhnRSwgHS/oFoAGPAsiAlvieTQLxFQzCbWiZiUAplKvpxbldl1mO4y8dUYWi0cpqUBphFxvs4SPdx2+cODAhcPRQ/Vmm1HSp3ftvmd09J7dwb21D5jsdtMXMbjAqzapphaQALWy3GA12XWNY+d37z4/Vu56lsaXghxPgRxrUHMiKHMEyC2EkAVBR0qCCBBegzY5/IrDn3dWm6DJz1cA8lHMRwGStWG7yWTPXQ8Xs81uNtnxRxwmEKh55S7om3BT7tsmu81MztJe7kVcabIXdYs+ATSZaOw0YUYSNbSrR/b7C0vYixOu3FWYC6/CXHZUk6his4ChkBJztSObv4OHGdfbKuMD/y9qDB83adQP9FhNBROASPwJ5p/UDr4KdmAB4dAVwCvyKgfvzKs8EAjU8mB/deu07HY1kxIFQ4D76p6PZrMf3aN9JwZvHx+/fVD7/rcLMzMXjixe2L//wuLe86MQMLRvVIwRjfnYCxFNwDwwzSNqfwTcgRAQHZSfeNTlAq6rXVWeCsC1KwER2C7ECaXEGyL2QqzFD021tU3Fn9cy58vdW7d2P/88uRTZ19V1IJb7VUEcuT/btaVvLPeTNXrAc6AuaEexRKQWQipmuQkiBahEhxfAH7iZ0gzV2NjY3tje1hJVAmBd5TRRMZ+op+IKrCPO184oFt3gJ+4yro9oCOQoz5v1klhVOxb7odVkdoL7mrumI6lYqBNji+1rSm/d9r6XQhadXtTz1q3jQ11aDqH0t+2JJbJ2247uvnYJh7iGgVBXmnKDUR3ol4B+o5QTxPGI59BZJl78TuCCzILGq9Isa9A4WK2jNhVFHUogXBugfuIO1DO/hRwBWqYhuL6ZbHR06ulgB2WbCNPF/zzRITtkWRq7aetsy2hPYm+s60hq8w1ei1OWRM9027b9UzuHp7t6rktJrRHJLDulPQPxYFedw9G8vSe6s6UxYJONDtHb0N/Z3VfpCu1IRiZbNd+qBd10g26gUktsosLnIJ1QRWgWAjhu5FSUOp1Ylo+XRdnnA5CPNILUnqce9zyL2/9ALoFjWFY+zqS5YDXJVm0tBda6hfwtKke1iRonYbEFKrs1V4bvclRWX88zOwSVY+YhUBpqEnM4QExkwc7lfslbDQYLn/sVZze6DK++rLPoyd/ajKJ+5S6DUTKQdwmSyepeeZokDUa29ibg7FPkC6gOtSdaaGb3VUoc5HioSAgEanQWSkrqGLgY3OqQ4qqvC+QThcgx8+M4RhCnEeSmFJXF2CXCfcROfsBZDGXiX/yFwWWwQMclS1buS58yOKBq+uQzejf5gtVsWrnTIDnwZ3O7HUDnnYJgtkmGlS/hR50YGw25GdLroD4TBjuTiRGquRBa/Otyieh4PJJWyyemEtUCKKgsXbC2mrRIE+5snnJPwrfxPhUuQ2KhqBqPZhLOaignqkPVQb8CS3gCfr9eU3BeudH1CYhyS2JawVAIUfi3rHaumO9J3bC574b+3vkKm+n+yZaWyY6OyZbmyShehTDeR40gFe4bOjM6ettAd0sfZICWeLa3ey4em+3tzcaB13HgNUz+Mc9rRYHXWsorMOCmrHCzlKtSXqsZrxvvU7PNI2nB9jJe/f6AxqsW50CbLue65AEs2zfyevfRzZtvSHZlNxW2DJ6D3S2M1+iu5pbJKDEO3Daavn2oqyVJ0y35NCsbvtfWm1M6sz29s7HoHGOW2SLoFv8QdBtmMeQK9SaNHDWlBSc8FkYhPySOfK515wv3QH1gXVVAdw+R9gJnmv7wvh1tFqNk0ptkS1tVfF9He6arLugSbXpZlM2tuyLbTm1JnE4To6vOZbTr9SZBNHTOdffOxWUjbxZFi2yrrxo8M7rttq1aPNds86dXtU3369im+221Tds1bPNQb/KGPrDNnvnKEtuEb/JTyNhTVElDzQngLX1msKcF+6HOHYlle3vm4vG5HhBAkV+oGYxQyTaizkQURqC+xGfZO08dWqBRiimKWR83C3msmhv1+XyNvgY3rbB9rK6DWqKgJKah9TWeuwxKUl8USgBwGzn33rZ9fa2jZUZJskrebGz7zcn+o5t7r0vi3A8PmfFuXXu6AdtsvbPxhhqDVTJK9e3JW8Z23t7feXTkcxNpfTilAI0gRryL/BioPpxWN4F2/EgQkSigs3osimxb44byB5QDMZ9uSUEjLgJaUgp4MAz3gd+Fkic0rEyCRvVG1FCn1EF+UAyiJ2gXXC7N+i7LEhEtYBYK2Z8oJ402m/Ek1dI22WqVt23bXNVqlQwmt4l8tsl/xCrL1lyW5ZMHbUaT5ciWQZtDtuoEpo9OUg36CKFetC0x1FBJBJ0NyCQjItT6wIZOx7RQk9aDapihVVPVsJBQgUbDsMkL94Z7ohGYIhjwhwMGLcjb8m5DMzTbxmk5+g0EQyLb+t+xTdke50UDLwg2V18ss1BxtGfwRCJxYmDLdRAaH9nb1rY3HqPfMbxqM+fGx05026ssokESONFQvrCnL7ZZM8UtoQQNk9Hs5s1z0YIlYjQOXz8Hv1NQONHk1epg5k0Y87M6xvpaba6gWj+4jlDkTAtxGsm2yyIe/vAU1UVfsindXIxxc+2Ee0cm909MDZ7+HQ2peq1DPsXi2/eDcbS6ivphuf9MHoRaAlbHImjoWRg1LGP85OqqGgkCDjv/eJQ8BDgcOx8g6FssFu6Gr5eBJx+qS/i8ZXqRR/SYgEV1msXykQOCtsJrdSA1oHpxQ8z2531KLMMvuwwmww/SBSawzyAb7cavfi8IHePPE39cQn/nryWHUTb+1UuoQAv6ENBSODtyX2OH8aHSsyNtupUpTUdcEuqJTnTbX0dbWImjZTI3dTTdrF4UOJ2uLA3VhhYS02ob3K1EdJCiCIBCBKEEI1G5bhzRgFq4mdHcsBPFQUJU39QNr6HvK6nfpZk1La1e3k1Z2lIwgt5E47Zw0Rr2R7p32V0nuwh3Yl/eJsqTkw2DDbmXLjMQ/DT97m6MdcZCyYLt/iv4rIImHtdMV2O8jGm5aME1BQv2wJ21QbZ5yt/JJExvzrwpf/gTe+2yydY/ENzeWmRoAdL2sencC4xgRaP+B2vUQwW9lu/qgfYNe7qat7Knq0+eHh4+ndS+e9szsdhUJDIVi2XaHz8zOHgmnT4zNHQm3UsTEE1DsblejYZxiHlhsCuac3sSnfkiieVRAWpoUlZS9FBxVuDR1yt7LpfSVcqe7mx1QWaVB3uKZU/zrijhUreMpG8ZiDfnXmN+9X5a/Qy0xHLN0QM93TPRjpmengPRfMy+Wj27xkVNSSmQ1oL1FerZy3Bev2awvfF69uo1A7abVk4z+zCvFQ39EKnDG2sGzd5PAb+b0NnHPTSD5pktK0a1om1rSVdzB9imYLBzcnajWxRS8xrCOu9gkqFZWfOOTajaH6h1rh1y1Wp8ujaqPI53eq1GXbXJv62loOOymS3EaLXCvqRruvnf1vxhqiuNGW9NUA99GniLsPPSK++Ba9KFk1PYAgeV+mBtHT0vjeUTa37vW7/ujEtc2/u683tfGGgyCZIs9RxsHU72TB5oHm8P7q0xSKJR0pcnAy0pMpjqGAgubj+z9YDBJArSWDjY1GRxpfob++t8daJJNgh6T1Uo1NBkM3m7W/u372M80MOuCFmCAiabVsNM8jpedw5iLMfxMwJLplRLBcF6oHiiCFCtQ4KCCqoUEa3hFcsiqInq6modNB47bE7Kb6H8CVxeFRWqpseqygS7zmDyuj1N9dtkm03eRjUyb7RZZfzl3HLAo7NIZofUDnqjFRI7Ij1hN8oWZnOrv8b/jH+HPKhPsyY7D5sKzOq6QpzyaIMEnysZzCRkdjJa6ff7dev9pvAigimM9vALtuPZuWOUrNHBoe1gHL+DTPriweuuO4grWVZ9cWs6vZXC2nnJKuR3CVXS8wU3Lm75a9a2/JWosmFty0/32QLssDtKttixMvx9O/8l3qKXrPyXOasFtv6f+SxvkYjBbDTocx16I5Yk/BzR87INNtE34P9iMGq2CuuT52D9QGHfr1TLl+/7a0r2/QHk99cHygu+Qwmqp1v+AmEldGlHEhHylI37E53VYDDz526iRNq4Bzi7yWDh3nMLFCr6d50T3ESymrGc6wC6JAPuyD0HJBsN+DlBNFGK34GDDkfuO/gDTnoms/o7/AzhIcd5E9W1FVaoiQiIDdMon6ezrqlufT3EtNURjxcOl8riaxXRM3bZbPzYxwwWo1288EnBIVsM939Espgs4iMX/JLsMD/7X2WLbNR/4zt6Sbab/v7vTRajUf+tb2k21Qk1px61o0RicwXW8TLYDkgPJAkEnRUFUlpxVxdNrYLJsh21gUnVNgTyJ9v5Alurr4txICpcbmt5Y/uere/4YNO2chfhzHpBSHRPZisOxPdOszIl1ZiG6oToweaGx0922y0mK9FLEqcsTitNkcUMjjB7/PbWkcZUADeBQcLeG5i6SAQwdn8C6lVMZhAVK1/y8kRzhQ5/B3WFtVPgjjgunHgxwWIfvt9qNeWeMlkNuOG31FlxRLbqQYvmTuqcDskk4T+hkF02GnOHEa2V6Z7sl7Anq8UxVsVgnNVqZlLPamZSqJkhZ8ah7qhiZ8me/LseJtoq9qoHz9LXPrBhtkLAsXqslW4nIJoD9F2Pu6QAoRJnmU47Uoy8cDQeOzY+fiwePza+Z2Zmz+6Zmd3SgUePLD5yYObRxSOPHuh7+PzSww8vnX+Y+Q/98e4r5AvIjcoTLqtE8FYYhOCRr8ppYWxfixZ5M4zF47Gyn1gcZpP9XaJogiD4ackMXiKvsKNysm2Ed8qimT8sELrGGDArAZ8NqCPRVgn2RTcAmMeEP1vYUFOeeb5EQw2ovl5p6qBeWqqieIHVIiWF8xBR9OFfg45y5812/c86Yzu3tW13GC1Gp16oXOxbONU7+CSOdNtkE2Q+o7TaO9s8MNbSardKglUf6z2eid84+nz+7OYb5BLkvlNaXV9fcAXYIYMVYZE7At4gzCBBcK4PvGHIk5jjMTBFH3gnPADJ82r4WiKJoPYOv4++HNIK+2LxVnKGXChj8hHAV2qkYgTHsj39JweCE1VmuyybmkZad7a2jYfkgE62SF/M/ZzZ7YTVIj0h4Kc65gcGru+pqpLMsssYDk20x0cUEXxN+iY9xaVH0M+BXdIzYwIyqNLeEtWwN7s6iARQmEARcASVnh9vqmYFGaRDsViNKPk6JJr3K83vI76IDb8K5KTs9PXaC7JdxElwblsq95/+D7ZSR/o8NZ/PAx16/KcyuPYpnACdxFdz+EdATwyNJIYjmBPrgCL65vsq4hYE3QzIfE3cmknFULQurviV+stkXRB2Qdpr9hWnJ9KF94ci3WhsPtLTf3qkabJGEG3g9pWba7oybQd31kR95aLFgYMExB2mQs+9VFs57Mdf7zqSGDrRV1XJW0TJYXC6oawenbFbZIdJx2GrZKEvHJ832bV4gF8jXwd5BtH+xyuY2LXipVIHJSbHE2COvmuiVcma3VXSivFcEaP0ZibhYIVzsLqprpbqqWHdO6B8xbx2YCWyTcL6snl+Nto135dejGxdmtXrTPbyiQ9Ubtrd1jntH2rtGGtqGI3gpxLX9/Qc6Rs6ldz9d4/WEavFpfd98oDSmLtpZlt4rLVlvDU0Etbq5t7VFfwiex/RmAhAJCBG7VcMNFJz2qurgr7cyOnf+KqAWlPBAfB3LFzuZd5qkB1gCLkvMks/SS5ZZZ1h5Q6D0SpDEbePvZ7g0MDqa/hV7f0xiqPNiW6PidozBCLE6wh/RMD5l7fOdafLTU1VVU3xplhbS1VjVUMoVNh2rEkvvi4Wwxa+uBcEO1onywi+uKXrUE/Pwa6+1oZYdF8stq8j3vDoaGBLXd0W/2jvwJ6m4cbGoabdA3g00xmd7uiYjnbvKXdNRqJ729v3Rjsm3LhmpKd+c23t5vqekZW/2t5bn/D7E/W92zXZBtGPcQj/GNLEpiv/poXmD/pDlNiG/HG+R1F6ahX6rfy4lnW0b21vSrc8d0MtRffHkKdoXmLyYYUnN0uzlYvT8lSNtbrcBYimKM1Tdu13M6wCpmGBbOhvs9ttom39F37YaXfZXfCf3Zmbddrddif7YrXeeXQ/6oeCsudxe/6MQQLvsDFeTxT27RCWPDS4YnR3yVDmcX+wlgPtufOGFIsVkomYL/lc91eHXEaL5NKZLbJkNcp1rkpfRZffCHsRgRM9VqPZIJntHl+1Ju8O+H43Ogjsar/5YZLOv1WjIqCibt/A8lCRUcYh45XOpV89i3/D1cC+pTpRyRQ2QofP0RlPw3w2ZK3nWOpnATXvsdQpyq08fky0GKF0zm0XzdJdNrB7bsZktMgGw+8ekSVGa3Q1gfeRZ6Buc7DEU5U/RNjUQFM8r8XAtUBAX06yoIe79WfOvec2UYTpFm8+fb1slp/m+169b+mft/I2yWzofeG22/+hS7Aa8+8AK1f7cT/5O1hHk0lVye+gKlD5piIPMW1/WIi81HcEpdFiWrz5puugnNWLZ+5+762i/ovrF+G3vHLf0i+GebZWN/oZ3o5rkalo7/SED88w8VGfMCFjh2bvBR1QFYxAVfddmmi++zP6CxN78f1lP3y9in+Kyijt5sLvEAoZpCpAJYUoobpC8eH300tZe5kOvyrJuY+bjUagF4/mVIhFAMxiwSVbxS8b7EbJJH7uksEh27DhWfCphtUD3CegJhqH6f9FO723erFE/B4Tx0tJLIjciIcNcaVDGQ21FYlIQKJw1ghlFEawgViEvl7QH4K8Z5iVscEACpYkMst2FRI9fvDCcx1v6Dl2NEEfRtqziThspiTCSWff8LLak5kMtYH907sngc+x+rpAoKEOdG4Sq0tSEK1p1p/eUDNkGzOXs7T+KUbWK/0Cyx7tKMZZikL+8oEdfcf6g1HM1S7EmlKB/uPJ9iGzxHs8uAV77M07WkfumT7/wzsGP3Q8sj0aEgRZIPYth0fu/NTYff/6kWAiEptsjjc27+/D5Nld903tfHC+OWDQVfQkQunmxL3TsXDCUyHyuW/qDBUVe84Pj92WOv78+3Z9eNridnNmgTMbanyLn8x+9J9uz91t7tiSPhGJ9SUWOvL/Pi7/r95mLb2/BGmz4+n/9tQffZBevzl8/ku5e1YbdH7+GHTpabv2oe/u2b+j003C/a/p/Gv/0k77kFvIVqibv01/I7l6O3p19RfkHlSN/oAf8j50gHwAtV71/vPstz7XnqPz9XHeMn0xoO+Ja9D3tSus/Zu3nx7i/P3xyObPXZ3H/4gP2bXGL3ng2ryTdlT3puffj2r/w3j7GFK4Z+nvT97meadR+A/KxzQah+1S+K3QQ0K/X1pxFlWTo9dYv5Oex2/4fJu9t/z3fyCOFtcpYxWG9nmxBL7Kh/ugRhdJXoG+a+li8g+r+zdiGwUbwO++Ni/4W6jpTel2kp7VX2PtrjcnuzfNmw3VkVcujzlQB9Ze0a6uxMOPrq0vEr88D4OO41Ck6uDeGNGjMPhQLfGjOKmAPwH1kigaQP+fffAe2KM+BfvJZ64Q4x9n+6nLZSch/evOezOKwl/lZePvhT3C/+MfYkf93HNvGL0B/vrQHFpCn6cH+W+pTeG/XNde2dhI95tqZ8gPSxvXUGxjb7idfZPt6ben8XrWjm9o375a08n/rjaie+SNNqH8LbYPCq+UNnFxXfvSm2v6Vv2fr2uvFZpBegPNzdp+1s5ubBL9LF6lfebtaUYJ2l3GV9Y3eedV2qX1zSS8yTZkeqjYXjSPXaHdt6FdKLYXLeWW45ZXrJ3WP7dtsk3bnvuDtdfsvfa7i+0zJe2Fjc1hdgwU29Hfe3vkjTbnQ3S3DPvT62FH/WFEf2XYhHrQ+yBaftjkhj7dS+vRYdiZY94AmcPOdukUxsgOPQ0myIzr8jCHOnF7HuZRLb4+D+tQJX5/HhZg/M/ysBl14K+gFDqBTqLb0Cl0HTqCFtFp5EXtsFtrg+ZFu2BkAa470E1w/xC6Ad2Isug4moexCXjmBNC/AOP0qX7AOQ34J2D8Rug3sNlOw+w3QtZrgXYE5qAYN6GDqBmeOoGOwag23ymY5xaoWk5C/wg6CpjHAbqF3W25wvpDcD0GY0eB9kYUgvVuyc/uRTthrhvh7xS6Gb4prUOw1nFG5Rh7DnjyVl0+q7ca6Lp8LTrfERg9Cv1TKAI4raz1gAwOo0HA6LnCU+ENz11Jhusx9jCabwQsSq23ZKXXn70ga03SNwIu1ehJGLsRZrmRSaqZ6eYI3B8HidAT0PST6Cs7p5Yxvi+jYu1/LnByGYnJzw1HajjURMEnuvUBvV3P6bXegNAqVAmsJyUvmZ82PM0/DQZlgL4peQklWGN9Dg0s1+F7d0ypiXunlrn5geUA7X1efyeYX+LeQ7umKEoGPk/06hv0Tj0nNz2JV9+j8h9YJmjgMd28gAYG/i9Gcq6ZCmVuZHN0cmVhbQplbmRvYmoKMTQ3IDAgb2JqCjw8L1N1YnR5cGUvQ0lERm9udFR5cGUwQy9GaWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoIDM3MjU+PgpzdHJlYW0KeNqNWAlUU1e3vgFyL0LEIQRtovcGJwQ1ImC16t+KIggqooJ1ZMkQBkVCCWGQMgdFRdQEBBSCCk4goPVWpU519q/DsyIOdfor1drWZ9Xa7ktPut47NwkkvtWu9bJYwLlnn72/PX1n3wgIBwdCIBC4hSsXBWWlKqdrUtWq1DHzlfGapKhUfieAG8QN3iiiOZrgGAEnt+Pc7bkhDqUiwVSRvXEXKvvzuz9nCQcThKClD/5tJ+kHvUVD8H+uH4iG8Q96i4YTjnaEgOhDuBKDCHeBk4ARjBb4vG/KP1YVrQyOVSanJaZl+Si8vf2mq1KyUhPjE9LkPt7eH47mf38kj1OlyjFUOY9VrsxMUyarE1XJanl0lnyaQh4SFbNKlaFelSiPSo6VhyjmKOShqgz8MFE+UpUsj1YmRCXFyVVxJhUatTJVLY9PVWlS1J4KeXhColqeoUpdJcd/U5VJyii1MlauSY5VpsrTEpTyoIgF4fJAVXKafHZiDDarlI8ZI5erlUp5QlpayqSxY9M08QpVavzYOCyjHptkFlKP5c+NCZwbGj5mdvD0GaELZijSMtNMfsQq06ISk9SKvw39ew9DVamro5II/BlEDCaGEB7ESMKT8CJGEaOJMYSCGEt4Ez6ELzGBmEJMJfyJacR0IoCYQcwkgolZxGxiDhFKzCfCiQhiMRFJrCCiiGgihognVhKriWQihVATGiKDyLTHScIfb8KbT5cDkUkYBSWCN3ZL7NbbHbX3tN9q32H/ziHE4UvhaGGh8C2pJn+iRFQ41exo57jEcbfj416Le/3qtMDp386Uc4LzI5GdyFd0pPcHvb90meVS4PKkz7Q+u/pwfZf0fdUvst9O8HfZyIIHC22sgOvcKakq1GXRcSRazBmEaAWZVajNzSnX1jIgIlGQUSNMsnk0iqwt11XzJ5gp5FnwEIKBPI88hJ/YyHibZBgUCLESlEcCAW3C7aRLNpvKQgALA9n+7SxcYsWfc4ctxiOgjrwVdEYRF5KbGU7nryvWFkjzywsr6I1bSzeX0vX3921tld0+tXIJE0DtCEvaslyG+o0P82PE2k+++fTFt5f3XLhCiwNm/kyZDbs8l4gPzp4ZoQ6QBUY2n/mm/ejvx04UF7YyLnNYmMJC2BGYzAresb+wIGPtuVSYJNmm1eVtouEA9WPQTW8k/AjZo9E0mkChQbdRX+jdcbepsaKwPF+7YUNBPp2VHp23QoaIRWAPBAN+FAy8+uL5f51cPINeRg33D/sw4GLE/YqK0k11zNqDZkxz90hK8nI25MvmxbScunzh6H3GZVh6V1KGAJoxAo+hkmrtlsxN9KqytL3NUvCn2PydK+vpg/XbdrL8snn33qYy2rBJt6VaWlmo/zx8xfIwGvlTcerU+BI6e0ORNleaoy/esYFuLan/LF6Kt8KOLj+3vVxfSXcbauQNgVZSXbQ1u5SOL1PvaeVVX1rRFv55YVFejm6tYT3dVLI7JZE/Hr0t/aCaXqnOT4/ml4lpKatK6Mz12rU50rzyou3njrZdovHpQ/UNrWX0jlK9rkrqgvqyXVJWAAexpXnDzKn16pK+tNYMov9KAtpcHz3iTaw94ChLupIQTeEyysnly+jlX1IvsmeFq4fTsYJvWM4JK2/8XbKtSJ+nXbe+SEvPilj0WaAMOXm8BRFziwLnZy/B/ocHC0M309mluqJKWbWuHFelA1WrLc/N0RZm0cnU8WVz64NlSCZHzmggM5FCMuiD+sCgq1ca2k7Se+orayqkvEkBK3jCwn9jk02dElwABdqS9UVF9NJP56inyZDg4zvvwO7uHbB7citq4WZmzaat2ipZFW/uOWUwW8ukc6nW6AhDqAxJR41GA5HrT2NhwPXrdS2nmX2G7bWVUpfPYQD8CwYKIB1G2nNO8Jvk0Or9sXQBGbs6OS7uQPIXTAX5xYH9hxj0tcOh1fvMOyrrzr7DOJaSdGjFSW6BDyQfkbPQNmHWugoMply/tXwzg/ud07CC31h4il2pAZ3kPAXuI8ABSWiUYm3dZqMm0aaRU0iQvAYHGMJEF0rcfT1H0ciL08BQEnp1uHsy5o5+Y+rob1jo4jv6QXdHc5dHWzWdRfnkrSXzDk6VIWcvD9QHNy7q83IEON+53PLtV7h1fXpaF+bg3vWYPMnTY8rDN6+/e/jq9f3JQ2mesLJZULL9oS8Lw9k/2AxW/CdX44abryetOJc3IBuGR1JZusJqPg00DLBuR6LhoKTEmPY8SSxQVW0SYIz+lBWnURNhRS0uxB7CNBa8ME/WwFJJW4kh5yD9OH7y6VEy5OqhQL2R2x/DQPYcRF+1bMPVsXbd+rVaZlXMNM0cTA+Tb77LYXC9SoxO5I+17Rdfyl52hHnvYHqcEZidAVc+KdwUCQaz8J/AQA5ZW2HqokzcRSY3bbwwuZmT2+Mm3PCkenZdUCgLbiy8ZVNMifqBFQ/jLnHu5kyNnkiKH96IXHgAF7RQIUeOyPGFHITtZxuvH2eGUkER4UE0crQBQpKnDtUcamEONFU1slJxEjfybHfy0AKJYqqfQjH16c+02PWnjs6ffr7t52XKnqlMTA43YG9PmMokk46EMvJh8CVFaFRa6CIaKkbbum9YbrZaoa1hYKDV/UjQk9uqhFfP7qs5L7t2MT6YQRsjrQdhAGkw8Qtsw3lrgCazn8YRVh+4ERYKMvcFz0BctgUSYnCJMyYV5mC32/jOGDWIsVm3m1CZMtrJvvi1P5T9GsCKr3BbupX5cSLka3PACXUiP5v1X2YFYm/kw7VI9ml2q1LwTJOyO23v3t2799A8BxWbOOgrDPEBd8TsCzppo8IXdZH/CpkzafGyXW04hm42DeFJhbSfSb0qe/ufR68Y6PqFshBvKMvVmuA+/zWdhxupknDzUItNDIuNI8mgJUuCaeRqY0pCPr967QVGm8E9+RuwlmjiatuD0R52g+U2WPzQHk5jRmC+CnKsin8xakZZV7wegyUrNoG8jHxsoPQyGv4ukBYM7Szngk8/s7BRIqdpsF5CHiRSoNdoHLwWjrRqaHif+zyt9ebPafQkDvPvwjYSxsHvQr1R4/++aHlPEeAWaz8CH/M/roPEJ60QoIW8tOzkvOiV6Ytj6ROaVbtXyKKSs5YmMuKHZ2woqBl19sDAZS8gayossBPxkCQ+eeFwU0OLrLkxIZZBNzus4eR3Lx4+UN8qa2lcqcRV20HZlvhbFm7igFzqqSBPMtNsxMB0GGNIdJErFbqTtuRjGw0vK4ypXAwJF42lwjOcofn/eA79+fYWH+8Z7BJBR94LuuQzJz5z1jxafPPm1Pc8jbSCwF3b40skbCXF+y8f3996X/bvi8pZuL8TbWpTYLFqvp/bzSNBA0RJQOzxCrki8Qh8xaB+r0eCGPq/eQUudLTbyAmThg2diG+Uxw9/e/do8hATJ81noczMSW1YwzpuiOTFxHZ3GmnJ/x8Jz8eggfyh4wUT7RY4fb4fjaRQhsvhu2sLgpj3WBeHn2PFA7nDoJSA85i3qO8ni1MCF9Lil4/eo7xaW2MR1oh4QjoZ3HZ+9T08p/z8DpyZ6PUSxWRfz5FTOk1M+93TV6/vjcdMi2eJ7jnitOSfhgV4mg4tGQLOh/tREkpWIL0wR5dbVaWrqi6lcVvoux/qc6sq9VXVpljFsbDGHKvjOFbfW/KbRE4Cd9Wh2UcdXzS1nbgmfTKx3YtGpf8Yv4+tLk2FOEzqdxOORXSiDx0vWN4ZBnIDJLMmf+pJIxLWwBiy/UbEXHN9nRZADM8qnEBSXqxfU03v+kxTnixbtEQ1QcG8QY7UmoKivNyKohrmDuocRfas4CauXX1lVYF+DYOC4DPyNdi17D4u21WXn1bPaHWbNuhkleXllZYRs/+PbNYx+ILVHBMv4rbAKMnptKOx9fRqg0r/cZUjcjIkNl6RXr9y8tH9K5FzzROmZeR7ayW7TIqNiqwNkw2ZMtN30leR4K5mbuXVFTdkO4ob9mXVJCVI/WdEKLz9T18voXdsKNbnyvhjDHKwXtr7qWXspdSbMhB9/+1LS63jMso4Dq3Hxfe4YnCU3Ar9Ajkb6PHVc9Zdlh4939Rx90xy5BY6e5NOW2mGdNM0heYW5a+h11GNCZHb58s8py0NCWuOhyHZDBB5x1Ytly4MjvWlxfIPAw+1MTpK3LeqqDwPr02IJuI1P0zR4v0mhduouC9PrbkmA+Hj83cZl7npXQW4jrK7BksqCsoL8PyTo6XRg79mC9dpN6xdJy2oKKyo2LK5WkfDg67Zws360s2b+bka8CQ6Ak+rw/m2O40H64qCtSUb1hbRabEBaxbIAlccPM1AHaTY3BYp4EwaivU5lknPn7LSF9pFTr2y9Kf/AHl4f/eN+drMdxcw3+H3nUwT3xUV55iqsAM9I8fNmOHrE/jtMxqe2ZAolsoqtEg1YylEfu8HQnB4+hRILNlMdRNPKk94pll0LytOsNIdvu0pG2JF1aT4+Nzw0NUzZYtijpxi4Jxtt+PdKV9/+uD6lX1nz9HimcF3LOp3pvPXH9fJYy/cir31wtgth+6TKAK/kpeQKJTTCO+ZuoYXYtAoK/RGEpYZDcILJCjxK30j2aNWhNXe6B78kL21MU+Rgei2D+iFi8jxSD8dbgu/tnlpsxE0kE+MIuFp8geofI4qhafIx5xIaLC9BgRcmyUahSSaDYEwAcYJdTba7KzaTpBoMHLDrOmGr1arKzb2dCRMQOPQbBQoLLThkQ+s+oL4O9kTxiJPYYiNxEDSdtbBoHrctrF/lkTj0RM0EZ4Iz9ggpKwSO0gIM4oC0HAhEr9/D3RLh5BQztUKq9+fKHubJ7ZiNwgxjeY5xXzZuqMbFDzkYoUX0RvkS2WaX1MMNDjBLgo9NMYIwygX/qu/vpxMNGIwQRCT+K/zxvTPqOPG10H/uro6knZymPg/ol4bRc6sE+u8R1+KP5tKy3QnG0WiPfpN/IL/nBP15l66/iH5X2XPfEUKZW5kc3RyZWFtCmVuZG9iagoxNDkgMCBvYmoKPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAyND4+CnN0cmVhbQp42mtgYOBR/L+R4889HaePalMbADKDBtoKZW5kc3RyZWFtCmVuZG9iagoxNTEgMCBvYmoKPDwvU3VidHlwZS9DSURGb250VHlwZTBDL0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggMjU3NT4+CnN0cmVhbQp42mVWC1gU5RqeAXYGbcNiHE6yNjOUgZRcwks3M68kJqiwgMrJE7Cre8G9zrJyv4SVJ8QLJHe5LwgLpeRJSUBJSR4tfLzk8Zw6eTQtO8ao1fmn8/M85/wzi2GnnX1md/6Z///e9/2+9/sHx3x8MBzHKbV2/atZNu0yh81utoUtNWdopOEV4kzx8XeVjMhgIouLnJcY5C1O9ylV4ouV3uPtsHOmD/+fTxSPYxi+f5p0/vujQKl8Av1TkspZ0sAF5VMY6YXhmBJ7FJuBMTiJz8CDHwizRGNO08ZotCZez2dFhUdGzltmtmTZ9Ft0PBcVGblgjnR+gdtstnEIIyeB5LTbeK3Jrjeb7FxaFrc0nFuVmm40O+1GPZdq0nCrwmPDuTizEw3qudlmE5em1aVmbObMm+UlHHatzc5tsZkdFntoOKfW6e2c02wzcujXps3Qptq1Gs5h0mhtHK/Tcq8mJqi5aLOJ51br01FYLRcWxnF2rZbT8bzlxYgI3rEl3GzbErEZPWOPyPA8ZI+Q5oVFr4lTh62OWbYiLmFFOL+Nl3lotHyqPsMe/nvNfzOCoc/j2DNYBBaJRWFzseewhdhSbBm2EovBVmOxWBwWj6mxRGwTloqlYwZsK2bC7JjTG4mNPipMJcnug72D/YivxD/0CvJyen3tvda7wlvwWeBjVXgptIrLxAwih7hFBpF5vtN8M3w/nxI2ZceUe2CJX47wnPCvb0cE/8M/g5I7VK442k+7CpoTmRywifhuyRCctmFJfnYK4ywpyssMNDU62iuqd+6qYyqPfrDbrTrTkatneXJvWkaZUQVnQHx5KEuVLPkybmx4uLr1Y4ZazoMp5GB1UzsLV12lqQ69OiE7UfWGoa7p4EjPaPcHb5f0sn55ghgh4G7BWzwNcNrFN1vyC94qLGQ2pJhLlqmgctFZgT1D/nTpr3dHzxr+VM5sKq95s03V1lJ1nP2aHMysNmUXbM/KZ4p2KdrUuvJkFQyHU6EfnMfGkHAOeAR6g0WAAl5nhhm/dwWREvBLAuhA0frAPrqPBM9CH/AwDGagjkjMd5iNTVmH2HGK1PJZRmuNfZAFbxDg+bsAB6FsSBk9OyEW4gz0FtGKxI8jL86R8M8XwC7h0pi/WwADAhLxl/siio3Ql0jK562WKv44WwsfIbrf+GPtGhV8OnQWpJFWMOCHWSB0+FDV+8eRWjrge18t8BJNuVesi4uMiD994cKpT2/c+DR+0QQB/1vC1bF+4WWB+knsCwBzyON8tcVmK0xgkmEFePIqmdyU2d7SWnmCAQryUG67zmZ3JjILQBBBfQfyNxBJzXmutpbKIQY8PZ5IJiHS1gr7cXb/OLWNSC7iLZYafgBhQ8Vx/foNARf7PqfbM5ssxQU73ilg7BG2t19XzU1q/5RnxTmHCMBArzswFAZDn6fgY3AmwJ8BEUABuPYhJBNIpGEfcaJm+P2LqoundOpaFlEAT46BIAGXWFyQ8iAup8Ez48bfIUFX1VICjMRATVO7pCgbgugR6xv4A60yfgU5kFljttqdSRI9ULGeSPZwO8H4gRvC/H/OlwoLHBCmXxW/Ef/gyQr03UK4NSl1iSoY+FQIKtvH7oaAwMG/1HQfZdVk8mZDPANxQgIjCwF8CIB/9befWfBL7f3swEX0stVrX3kldvjSxZHhy1dOr118v7hAGaJU3U+3FraqmWCRukNIc6QrFg7Jq1qrEMU741Sw56rGjmIMER811bllcYqEfwClPygBSuglUKfFnn66Lb8liYGIEYyWaxThGmSvwCLo9wDM20ilZhdLRcJosY3utrr0BovFYHBZ3G6Xq+tXeJECMCKEowFALdeN1Y7qJgIaReqkzE6KxULDJNKT41T8ZBhpmYUTLCeRoTqPJpLyMk1oxgn2yvjCCWSe/E0g85CbJ/h/KABv6Tt9JnXsF+9+ustRr2WAmfwi4ZPFacZcfQbj3mqo1ai2OovNOpb6siWcTLPm6DOasg7+mYVFpNYxYc3rcmGg6RoWpJLUse4D+/e5VK3vFZpZeOYWKd3sdOzXSjff766tQE2josgk37qvtiTJRQHsQ2y+EQ9M0AmYJN8DjxBwnzhTAUniwfIkNAiDnAZAy+zaClvUrA70EaBynFGMiU6it7G+a5Lz95Ls1BGpv0p4GbCK/HnRSLBan/t6CkOd+zhMpmhsyj4kUdxOJuc5zOZaR79UfhIPOS3bwSqC6hjo66o7qhpp5zeyMJqUgBiaso+w36DnGjtY5FqwX8APC+AcIjUEttKAhsSPMAjOhopg5NAAQMwC0kHcAwFMSMDi6HVRUdGnvrh87uTNa+fWLpEqRTqQP5Fr2kSGBt7PXoEUA/M8EpSjFP+fQw2TGGcLPxDf9dcd+4jt6qnvOxoY9A6dkKqLZuBU8BqYSpw7rItnJW/OuzZP7sT9UpRRwCOYT96GXGxqTupG5gj0lRXwtM3xuBxCujLVZiI9liJDNbvkbrAOhBDpgx/lDKsAew+QYBobsp1eERs7f27cyPmzw5/duHZ61UrUCe5mgl4nLupFSEMl8R60Kgw76wydqs56t7uUhRpg/XW8tF4ar3O7d07kbq7gD6IFKlIcFTH66MuHUjZqs9e8hFJ2FqrIjdkTtuiBRese8GI/cVyyUgGqCcgikBR35fuDLV0tHVtaVa7m5vb7WfoWeAEj8PIWW8Cj9Fcb+uALTcxrFdtL83b75uwpqqgIrP+4buCwu9jZzuwuVjgqq4sbVVJ3Yz8gj+Y2GHOLS7a9ydRr0so3on1yfvxLC4fTAZfLAqygPsceyCc5X0tMrWozMQeKc6qtKos9P5E1kInNBe1V5WUV+5htvQNFJ1WAvjX8lYxojwDCnTggUOG0XUE9v9lSWLKjOJvhN6UUJqnWWMuPsWA9iJGN5cpvRn0i5jox6Kg2mx2565m5OvJXBXqgkVhwPgkQ18ETvagZoz0edfzzHqddQ07zdOIJp1WiiuqBvUTcuo3Ll687dpoBvT1yM/IECZCzb2zM7kXe6CThw3dD0YZOC2NAyYBO0mO0fOQylK4Jo+kmjXYD5UmaL1dqD0QOOqJOtuVvUK0xNyM+nROltrU180Ap64IxBPdF7L2hruq+foZamfK9TJb1a8wEN8dw8TbaRFBaE5lwYkOO3Wqt5E+we4l0GBYHohRziTUwSgPCFANVTS4ZegShseTqTA1Z3TvYq/Cm4hYxCmLOwxjFt8TX4KbCvXN/fUegH0wVxDi0z15Gi8vbRgQhN4PmrA9ZqIR2SAC74mBpY31noLQq8yyRjm6b67M632bBYnhNDTFFiKyRp/qMHodIAN4iQLYYp3CXyYGkd/1HRJUyGL2yYy9Kr+8qf2eDGNMA/BsaGghmqs/z/1VOeVf5kDBVeOizsrLS0j2lFTv3ljYolacqS3fu3bWnorR0d7XyYfH29H/T/wN8Uq59CmVuZHN0cmVhbQplbmRvYmoKMTUzIDAgb2JqCjw8L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggMjM+PgpzdHJlYW0KeNprYGBgYRDcyGFwTocpQE0QABc3AwIKZW5kc3RyZWFtCmVuZG9iagoxMCAwIG9iago8PC9UeXBlL09ialN0bS9OIDEyMy9GaXJzdCAxMDIwL0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggMzU4OT4+CnN0cmVhbQp42uVbaXMbxxH9nl8x30LYRWDuw6VChYdpsSxZsg7LCbwfQGJJIQYBFgA60r/P65ld7C6wC4Exy3EqLsKDOXr69eueE6PAOBOKecME/hQylkmtmQhMGc8kZ9ohEcwEJJI5VEi0VxrNWDCGSchxh9QyIQJn0qEfIZgMTGglGf6E4QbdIbWeKQ8dRjGtmHDQpiHnQmAa7b2VzKB9QGODfgKUWnTJg2BWAYbXzAKgRCW6kgr4LABp9Oeg0njO8Cepf49yDzCEO7hAIJkShr4AhAqWBYDTyjKnkVrNYITSEHMWYAXyEDAKeeIC9V4ghZCDnIXmoJCCKxCkLGB4Kg8O5DDlQAvAKmciucpB2KNfz9EO/XqFdkSGNQykKY/OAtoHUB3QPoAOQFQBIGC85pxolviiwBsHfdyipUOKbok+AcQCrbTQYJCDWGFBIdf4EqgErpRALTi6k9ozh04kbBWApBVKBbymiVKBiNCaHIY+taFwQHRoC+8IAQyeYkV4ZrggqcCMoAASjhkYzATixBgoFogU4ymoYJUV4E2Qw7QlKQtPUocgynpOX1ASYJlAYDlO4oLDqwqsI3EkA+rJfISWg08Z+UiRBRLWaMQiVDkDFWjkDNEP51qYSk50QE4B7hwkotdAsXbwLqw1KCeqyVtcC4pguBtsYgx4AQcDspcglsJAgVyhaBA4WEP+9lQg4XBL1qPEIMqRtyAAgoHGAjAEDkwYFPC0gQ4AC56cRSHPyankL4nAFjRIuAY95B5HnqUCTy4hAbTF/x15A3FFeIUmUDSWhAEaTU70MN+QXwJxZKIbYKAhx2iMhmfPBj+/uvpnfr3Gt8s7zgwmgzfD4eBiMaeiCzitKHm9XFy/zdejwevzi8G7/NMa7ce3+VlKTlNymQ2Hf4Hcoxq/+3yfD07m88V68Pbhak25F9P5r4PTxXKSL0ccAHg2eD64HJyNRMqcQOzt4LvFu8Xg/Oj64/h+nS/7ogeYb2DLCGEG+vsCw1Fo0U/B2LfKPLFG2dAobF9a8lPoY2gb6fuI2SfSuIKS6WLelzUrve0HRDGGWV9hAGNK7asEw1n55Hrltl4dZF9RJBnXVyrC8Pzp7VU7ej3vK5rSue8rGsDA4Y18Ytequmu18X1MeTRlAQKGm+P9oPQT26p2fau17RtaVlXoc0whBAQr2ZMr3nWu0n2ssFLCqZgUtXbQr5+YY93gWMg+LdqYvfoGqrU0faxhT2yqbuGYY2qISwm4pbVNwBFGPLniHY6VxwxBcznIpR2J5qIvQmnx1gw8uKDN0n8yF//OqXxXvH3F+C9iqrgZXBha+P5EiP58zAwuHG0A/mc6/4MZfMyAx36KiXLAv39zSZ+ju/F0tl588zGfzRZ/W6wXV4v+dLEZ+9jdYZrDrpKrvqLNLy0lcf9s+l7YpwLxcb2+X30zGOzoD75vaPuPTYqlTSXUexxcDGBx657aFy+md9P1anR0vrg+frseL9e9o3tUY7rrZYMfxnd5ow6rAHSUy8NXmKpxQKmVUIFuFMieM40C1XO2UaB7LiIv9Pawka9yvIeDHbJbaFOlKLD6CmpZ4UXViex5WeVUz6sqp3teVznT86bK2Z63Vc71fA2m73nfhSv0GhuGJrbQC7zqZtoLNaBTZBPSQv4rYA+qXhK3l0FvFaGV2SpSvWAbRQQluBbM9T3G0erhiv5K9bpCX28WQqNrWrLp6Noskz06xcayTY+EIjaWbRUkoXYrZJTQm4oaPtWj819Lhe7R6boy9vvpZDXyESJdOlASogPjlUPRbqTSDPnz3/9BNxUO22ZEwPxhNstQF6o6ul7gZYV2HRVGdVTYLgmru/XXhXawdfSnDqnY6cweRsJ2nd4DXu8Bb/aQbvbgNH4PWeIwLDiMYXrFYb69DgcmIdrrtLJYHco6oQ+zQcZNM9hvsWFP7Bin+lq0CykcsqRur5OVUJ2RpqamhPV9q9sDtYmiWacdRqlvo6OuDAPxPF+tV/F6Ly5WcSmdrmf5s5v85oZzjb2+NZw7hRQfyHIbkHJ8dPpu0c7mwz1XDK/Hy3y+jndThOMHrIHxUqxdpS3UYAqzk0K9S2pi+dVw70l/o0zWlel2Zeg7KSL7rorvrrR5uPdov6Xo9TL/Ld4C1rSaDq3EnC+YJJOQl5PEKiGgMmLXoV7ygn1i2RblrmpnzXDvRUA7yi46VFJKCl3hevJBBCELWkixqYE3lZ9sXgBUwz33PxfT5Wq9oerFeLWhanC2eADYY7UdMgVsUSfXdsSPSvg2NtzU4gh41Th9vtTOmCLMVVXm9DbZ20tpnXFXRxv+ALTq96GXLegL4n13vMTedYGOD/fe1JSe93XPh7rnZQXA1uiTvIM+VwVeaWackwBMhyogN3W2Nt5Njd6bYvSZavJpzm+1tpOirDDaXic5qarPHx6EjU1YzY2yPmSk+j9mUf0+VnULq2lwSPnnZ9WUE7UrJu6Cqfb+9k0TsjGSk+3FSE7htTuSOwevqgyIxocE0O0xlFaijTG2RkpJtNqzJKrG+lM4scAu6tjF9ixUTIOuYxos42uzexjuuSMvJ0FXV887JsHG8lff0Uj9ZVIjeUVE7cZ384J34yxdV9Kxxpoa89HwztBpXuZuKSnGT8cuSRNyWWz8TIsFjVvx0qmmzqo9hNWajaVrGpGha53o1O5Nvlo8LK/zFUuLV7x9ej2+zSsLfSE1XyOPs27t8FtJF1ugL4sn18dDcdopsQSbpdWTpfhhKYpZGpUsjUeWDGCJGZY4oRcH1GETjjzUmpTP0oXbKv64XLmwlF4VnFWbuaQ0Hf4TtsQ0S/vRHXqU7MCjeBOPEu3y5lD5Dv3+UHnXKq/VgfJa1uR3CNTtBCaXp6sDlm4JmArtQGwXELEFxLTLh0Pl2+PcyAPlTbsjjTtU3j6eyHRRwtJ9AkvXHywd+HeAWN4FRG4BaXeEVQfKW9kubw+V3zhyZNPFmg0tI96JA/tzvDnildoz4tt5NgWONOTT3Rqzbp/DhEmixQRUDpzS7yXMbPAyn0zHp4tP8aLfYrZ0ofx9+2yZj9eL5dGL8bv8Z/av6foj+wg9y2V+02suauV+TW7tDG21b4s71MmXd5yH7NniIflh/XGxLAGUi115PVAI055HF6ct+sS8KxSSMh9/ZJg8XOfLo0+T36b3k5u7T+yXI8mlpPP6L71eogFL8fl4nR+df4MqS09ihBFOuK+5+Cvnf+0lxl7d5/OTuG4XN5kX03UW/fJyMckH71f5q4f1bDqHm6jwxfgqn60g98PD3WrE4wp9PhzK+GU5HOqyBA5Jt9fx+RR1XPZTLcnk/E3YxHg4G6/Hs8UtRbIeWRUyJUf0e5CVLtN85ITJdBgZJzMnMf4lAt1mnipC5s1IOpNhjR95ZHHwHDmFvEK1Qd7akeUKKcqpS+8y4RwGL9LAMQgtUofgN5mUYmSdZ0ErfPdoYzNJGqFfeovo5pkSfKSxr7NK4TvaeAu0aiQVUq2BDui1Aya0NXYUpESa+lIO+oSGSWGkFVLhMJvKTEvkeci0Ai7g01ZEK531+O5TGfRbo8CDoD7ohR0mMItpF+24x/QZmMHUbOh3K+/pe2YMcDnFiB8DDDbguw4Z7Bgp4Mki3dolugWL/SdWiW5oj3TT+zMT6ZY80m14JjjoUDLRbG2kmUwUNoBCnii2MlHMdaKW3vTZklKdKDU2UqowGSPOE6VQHClFG6XFSGqRqIVbI7WqoFYU1DofqTVASdQqbxK1cAVRq1RBLeWJWnonZ0C7JfpBI9Hs/Ei7EGk21kWaDT04pEc8lh4ucQasoDXQYz562YdyolViZyGZ8PQsUyMfRsKLDHXQIzPjNHYO9OBRF7TzzAITxniGsT8KiGm4AcGGGQhLDyzTo5iEsuRLn8zwjbAxUdjylOiuPsixm69mu1XmY23mN/KZj3CykMAFuyOCeWaUUlukGwMwJlN/QpgidUVatSESkg6dOtJu9GUD7ajNoAa6FmNKKxKKEPYAN3WgWbZZwejH4M2v0GeX55SnCjk4Ha/yWPvt2U9nb15+/ePD9PrX1Xg+OT5dzCZR8DxfXS+n91ix4ovGuAhfnr/9vFrnd5fzm0Vcvm+nq/Xy89HJZHGV9wav6Cfu6fz26HKCRXe6/tyD9vv7WX5HazDHrHv+AQNIDT7EF5VFl+8W312evxzfD0qp2hrcBDI4WV3H1RzrDv1gEDPHGOmDtwD1E72jwyx9/zyf3n4sWp38dvthOsFSi/ERezulxfmY3kUfK3qvqrCi02vLbHCJ6X16fTK/neWMDy5m41scRKwUsfvPWJ2fYVWYL1b5M17+53njv2Hx/JLWlg5micIc2Mo3F2h9MZ3l8bXj1kam4T0q4V9y27fz68UE/G+YPH5e0DQZQ88i7p/SPuXd4v18itY5GND7FLeHzfcfXl58eF/Tj1B4mI2XO5Gj5RNGDpcUOcVh5kkjx7vuwNG6FjjKOcgJetcXn/CqjsCxnTFj9sRMJ62bsNE7YWMeETad/R8SOcLvho45MHRqGE5/fP7iw49fYw/83edlfvawXC2WDTt/X5zsBGA6qCB8pOcxfHwL5t1I8UJXgSK8LQJFi1qgUJsqTlyoxYmRJsYX7TDpn1qI9jBxe8IkdIbJXgrL2FD0OnEz+GLwhEeEyj4dx7UoOSRy0tTWjBz7+Mj5/vTk8uLVFqTNrPq0YVM8PqjCxsiDwsYFU5tfuClXJswoVdxQo664wYHyWDof/1FA/OcDexYmsWdh6o6ebhproWNEI3SMesws06XgsXFjzG7clDff/wYrKhF0CmVuZHN0cmVhbQplbmRvYmoKMTU0IDAgb2JqCjw8L1R5cGUvWFJlZi9JRFs8MzQzMjQ5YTMxZDBiYzkzZDdhZjM2NmRmMjE0OTBiMjk+PDM0MzI0OWEzMWQwYmM5M2Q3YWYzNjZkZjIxNDkwYjI5Pl0vUm9vdAoxIDAgUi9JbmZvIDIgMCBSL1NpemUgMTU1L1dbMSAyIDJdL0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggMzUxPj4Kc3RyZWFtCnjaJdJFTgRhEEDhv3AGHwZ3d/fB3d3ddXCHcAjWhARZzo4VkHABlhDuwDGgX2rzpV5VpxedNsb8/XkYm9mBbRgVE2KM2G6MIY/gQOzPmkbc2zqNicOpk8AEeIAnnMIxeIE3+IAv+IE/2CAAAsXxqO8LgimJ+tUMhmmJvtMMgRmJ9dYMhVm4gDOJ69ZDGMxL4qemHRYkOV0zHBYltU/TAUtwDZeS9q6HCFiRwhfNSFiVardmFKyJ81UzGjYgBmKlzq6HOMiGJkiFNEiHDMiFTIiHLMiDfCiAQiiCYiiBBCiFSkiBHCiDcqiAGkgEJzRAI1RBNdRDLdRBEiRDM4xAC3RAK7RBOwxAN3RCF/RDH/RALwzDIAzBFkzCOMzBMmzCujTcWz9c07dFa4pFe7Z+zkNwScePtevM1N0J7Iprx9q5PnR3LrczOu3JQ5tOV/LwpNO+uIOsh9++jPkHJdo7xAplbmRzdHJlYW0KZW5kb2JqCnN0YXJ0eHJlZgo0NzMxMwolJUVPRgo=</File>
    </Filelist>
</otrs_package>