From 404b7fbdc190913df1971628bb42a2fa1a72c221 Mon Sep 17 00:00:00 2001 From: AlessiaYChen Date: Thu, 18 Dec 2025 17:08:32 -0800 Subject: [PATCH] Add Auto Clipper Service Add DevOps configs Publish tno-core:1.0.30 --- .gitignore | 3 + .vscode/launch.json | 19 +- .vscode/settings.json | 1 + .vscode/tasks.json | 68 +- TNO.sln | 14 +- .../Editor/Controllers/WorkOrderController.cs | 23 + api/net/Areas/Helpers/IWorkOrderHelper.cs | 25 + api/net/Areas/Helpers/WorkOrderHelper.cs | 63 ++ api/net/Config/KafkaOptions.cs | 5 + api/net/TNO.API.csproj | 7 +- api/net/appsettings.json | 1 + ...core-npm-1.0.30-168708be52-33f6b3545a.zip} | Bin 2126444 -> 2126745 bytes app/editor/package.json | 2 +- .../src/features/content/form/ContentForm.tsx | 45 +- .../features/content/form/WorkOrderStatus.tsx | 2 +- .../content/form/hooks/useContentForm.ts | 25 +- .../features/content/utils/findWorkOrder.ts | 5 +- .../content/utils/isWorkOrderStatus.ts | 4 +- .../src/store/hooks/editor/useWorkOrders.ts | 4 + app/editor/tno-core-1.0.28.tgz | Bin 620851 -> 0 bytes app/editor/yarn.lock | 10 +- ...core-npm-1.0.30-168708be52-33f6b3545a.zip} | Bin 2126444 -> 2126745 bytes app/subscriber/package.json | 2 +- app/subscriber/yarn.lock | 10 +- db/kafka/migrations/U1.0.0.sh | 1 + db/kafka/migrations/V1.0.0.sh | 30 +- libs/net/entities/WorkOrderType.cs | 5 + libs/net/kafka/Interfaces/IKafkaMessenger.cs | 8 + libs/net/kafka/KafkaMessenger.cs | 13 + libs/net/kafka/Models/ClipRequestModel.cs | 77 ++ ...uestModel.cs => TranscriptRequestModel.cs} | 0 .../Models/Content/ContentTagModel.cs | 14 + libs/net/services/Helpers/ApiService.cs | 9 +- libs/net/services/Helpers/IApiService.cs | 4 + libs/npm/core/package.json | 2 +- .../src/hooks/api/constants/WorkOrderType.ts | 5 + .../hooks/api/constants/WorkOrderTypeName.ts | 5 + .../api/editor/useApiEditorWorkOrders.ts | 5 + .../auto-clipper/base/config-map.yaml | 25 + .../services/auto-clipper/base/deploy.yaml | 272 +++++++ .../auto-clipper/base/kustomization.yaml | 11 + .../services/auto-clipper/base/secret.yaml | 36 + .../services/auto-clipper/base/service.yaml | 27 + .../overlays/dev/kustomization.yaml | 42 ++ .../overlays/prod/kustomization.yaml | 42 ++ .../overlays/test/kustomization.yaml | 42 ++ .../services/build/base/auto-clipper.yaml | 59 ++ .../tekton/base/tasks/build-all.yaml | 7 + .../base/tasks/deploy-all-deployment.yaml | 16 +- .../tekton/base/tasks/git-conditions.yaml | 1 + services/docker-compose.yml | 101 ++- services/net/TNO.Services.sln | 8 + services/net/auto-clipper/.dockerignore | 18 + .../net/auto-clipper/Audio/AudioNormalizer.cs | 69 ++ .../auto-clipper/Audio/IAudioNormalizer.cs | 6 + .../net/auto-clipper/AutoClipperManager.cs | 683 ++++++++++++++++++ .../net/auto-clipper/AutoClipperService.cs | 68 ++ .../Azure/AzureSpeechTranscriptionService.cs | 408 +++++++++++ .../Azure/IAzureSpeechTranscriptionService.cs | 6 + .../Azure/IAzureVideoIndexerClient.cs | 11 + .../Azure/SpeechTranscriptionRequest.cs | 9 + .../Azure/TimestampedTranscript.cs | 5 + .../auto-clipper/Config/AutoClipperOptions.cs | 131 ++++ .../Config/StationConfigurationService.cs | 76 ++ .../net/auto-clipper/Config/StationProfile.cs | 53 ++ .../net/auto-clipper/Config/Stations/CKNW.yml | 87 +++ services/net/auto-clipper/Dockerfile | 43 ++ services/net/auto-clipper/Exceptions.cs | 42 ++ .../net/auto-clipper/LLM/ClipDefinition.cs | 11 + .../LLM/ClipSegmentationService.cs | 471 ++++++++++++ .../LLM/ClipSegmentationSettings.cs | 24 + .../LLM/IClipSegmentationService.cs | 8 + .../net/auto-clipper/LLM/Models/LLMChoice.cs | 15 + .../net/auto-clipper/LLM/Models/LLMMessage.cs | 12 + .../auto-clipper/LLM/Models/LLMResponse.cs | 27 + .../net/auto-clipper/LLM/Models/LLMUsage.cs | 15 + .../LLM/Models/TranscriptBoundaries.cs | 9 + .../LLM/Models/TranscriptBoundary.cs | 21 + .../Pipeline/ClipProcessingContext.cs | 6 + .../Pipeline/ClipProcessingPipeline.cs | 90 +++ .../Pipeline/ClipProcessingResult.cs | 11 + services/net/auto-clipper/Program.cs | 19 + services/net/auto-clipper/README.md | 27 + .../TNO.Services.AutoClipper.csproj | 43 ++ .../auto-clipper/appsettings.Development.json | 41 ++ .../net/auto-clipper/appsettings.Staging.json | 41 ++ services/net/auto-clipper/appsettings.json | 110 +++ .../TNO.Services.Notification.csproj | 7 + .../reporting/TNO.Services.Reporting.csproj | 7 + tools/auto-clipper-harness/.env.sample | 16 + tools/auto-clipper-harness/.gitignore | 2 + .../AutoClipperHarness.csproj | 12 + tools/auto-clipper-harness/Program.cs | 375 ++++++++++ tools/auto-clipper-harness/README.md | 23 + .../ResponseCaptureHandler.cs | 31 + .../auto-clipper-harness.sln | 24 + tools/scripts/gen-env-files.sh | 40 + tools/scripts/variables.sh | 1 + 98 files changed, 4360 insertions(+), 99 deletions(-) rename app/editor/.yarn/cache/{tno-core-npm-1.0.29-b0ccc3fe82-277dacbb50.zip => tno-core-npm-1.0.30-168708be52-33f6b3545a.zip} (92%) delete mode 100644 app/editor/tno-core-1.0.28.tgz rename app/subscriber/.yarn/cache/{tno-core-npm-1.0.29-b0ccc3fe82-277dacbb50.zip => tno-core-npm-1.0.30-168708be52-33f6b3545a.zip} (92%) create mode 100644 libs/net/kafka/Models/ClipRequestModel.cs rename libs/net/kafka/Models/{TrascriptRequestModel.cs => TranscriptRequestModel.cs} (100%) create mode 100644 openshift/kustomize/services/auto-clipper/base/config-map.yaml create mode 100644 openshift/kustomize/services/auto-clipper/base/deploy.yaml create mode 100644 openshift/kustomize/services/auto-clipper/base/kustomization.yaml create mode 100644 openshift/kustomize/services/auto-clipper/base/secret.yaml create mode 100644 openshift/kustomize/services/auto-clipper/base/service.yaml create mode 100644 openshift/kustomize/services/auto-clipper/overlays/dev/kustomization.yaml create mode 100644 openshift/kustomize/services/auto-clipper/overlays/prod/kustomization.yaml create mode 100644 openshift/kustomize/services/auto-clipper/overlays/test/kustomization.yaml create mode 100644 openshift/kustomize/services/build/base/auto-clipper.yaml create mode 100644 services/net/auto-clipper/.dockerignore create mode 100644 services/net/auto-clipper/Audio/AudioNormalizer.cs create mode 100644 services/net/auto-clipper/Audio/IAudioNormalizer.cs create mode 100644 services/net/auto-clipper/AutoClipperManager.cs create mode 100644 services/net/auto-clipper/AutoClipperService.cs create mode 100644 services/net/auto-clipper/Azure/AzureSpeechTranscriptionService.cs create mode 100644 services/net/auto-clipper/Azure/IAzureSpeechTranscriptionService.cs create mode 100644 services/net/auto-clipper/Azure/IAzureVideoIndexerClient.cs create mode 100644 services/net/auto-clipper/Azure/SpeechTranscriptionRequest.cs create mode 100644 services/net/auto-clipper/Azure/TimestampedTranscript.cs create mode 100644 services/net/auto-clipper/Config/AutoClipperOptions.cs create mode 100644 services/net/auto-clipper/Config/StationConfigurationService.cs create mode 100644 services/net/auto-clipper/Config/StationProfile.cs create mode 100644 services/net/auto-clipper/Config/Stations/CKNW.yml create mode 100644 services/net/auto-clipper/Dockerfile create mode 100644 services/net/auto-clipper/Exceptions.cs create mode 100644 services/net/auto-clipper/LLM/ClipDefinition.cs create mode 100644 services/net/auto-clipper/LLM/ClipSegmentationService.cs create mode 100644 services/net/auto-clipper/LLM/ClipSegmentationSettings.cs create mode 100644 services/net/auto-clipper/LLM/IClipSegmentationService.cs create mode 100644 services/net/auto-clipper/LLM/Models/LLMChoice.cs create mode 100644 services/net/auto-clipper/LLM/Models/LLMMessage.cs create mode 100644 services/net/auto-clipper/LLM/Models/LLMResponse.cs create mode 100644 services/net/auto-clipper/LLM/Models/LLMUsage.cs create mode 100644 services/net/auto-clipper/LLM/Models/TranscriptBoundaries.cs create mode 100644 services/net/auto-clipper/LLM/Models/TranscriptBoundary.cs create mode 100644 services/net/auto-clipper/Pipeline/ClipProcessingContext.cs create mode 100644 services/net/auto-clipper/Pipeline/ClipProcessingPipeline.cs create mode 100644 services/net/auto-clipper/Pipeline/ClipProcessingResult.cs create mode 100644 services/net/auto-clipper/Program.cs create mode 100644 services/net/auto-clipper/README.md create mode 100644 services/net/auto-clipper/TNO.Services.AutoClipper.csproj create mode 100644 services/net/auto-clipper/appsettings.Development.json create mode 100644 services/net/auto-clipper/appsettings.Staging.json create mode 100644 services/net/auto-clipper/appsettings.json create mode 100644 tools/auto-clipper-harness/.env.sample create mode 100644 tools/auto-clipper-harness/.gitignore create mode 100644 tools/auto-clipper-harness/AutoClipperHarness.csproj create mode 100644 tools/auto-clipper-harness/Program.cs create mode 100644 tools/auto-clipper-harness/README.md create mode 100644 tools/auto-clipper-harness/ResponseCaptureHandler.cs create mode 100644 tools/auto-clipper-harness/auto-clipper-harness.sln diff --git a/.gitignore b/.gitignore index 6f50c5abf8..106e6dddb1 100644 --- a/.gitignore +++ b/.gitignore @@ -19,6 +19,9 @@ auth/keycloak/config/*.log /services/net/image/keys /services/net/image/data +**/[Bb]in/ +**/[Oo]bj/ + # TLS certificates - managed separately, not in git openshift/kustomize/.tls-certs/*.crt openshift/kustomize/.tls-certs/*.key diff --git a/.vscode/launch.json b/.vscode/launch.json index 55e1c5dcdb..a92157fa1f 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -1,8 +1,6 @@ { "version": "0.2.0", "configurations": [ - - { // Use IntelliSense to find out which attributes exist for C# debugging // Use hover for the description of the existing attributes @@ -105,6 +103,23 @@ "stopAtEntry": false, "envFile": "${workspaceFolder}/services/net/transcription/.env" }, + { + // Use IntelliSense to find out which attributes exist for C# debugging + // Use hover for the description of the existing attributes + // For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md + "name": "Run Auto Clipper Service", + "type": "coreclr", + "request": "launch", + "preLaunchTask": "build-auto-clipper", + // If you have changed target frameworks, make sure to update the program path. + "program": "${workspaceFolder}/services/net/auto-clipper/bin/Debug/net9.0/TNO.Services.AutoClipper.dll", + "args": [], + "cwd": "${workspaceFolder}/services/net/auto-clipper", + // For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console + "console": "internalConsole", + "stopAtEntry": false, + "envFile": "${workspaceFolder}/services/net/auto-clipper/.env" + }, { // Use IntelliSense to find out which attributes exist for C# debugging // Use hover for the description of the existing attributes diff --git a/.vscode/settings.json b/.vscode/settings.json index d04a5fd689..2300553d3d 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -12,6 +12,7 @@ "CHES", "datalabels", "formik", + "healthcheck", "Idir", "insertable", "Keycloak", diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 96f51d018c..42ec776286 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -29,12 +29,7 @@ "label": "watch", "command": "dotnet", "type": "process", - "args": [ - "watch", - "run", - "--project", - "${workspaceFolder}/api/net/TNO.API.csproj" - ], + "args": ["watch", "run", "--project", "${workspaceFolder}/api/net/TNO.API.csproj"], "problemMatcher": "$msCompile" }, { @@ -213,7 +208,43 @@ "watch", "run", "--project", - "${workspaceFolder}/services/net/transcription/TNO.Services.Transcription.csproj" + "${workspaceFolder}/services/net/atranscription/TNO.Services.Transcription.csproj" + ], + "problemMatcher": "$msCompile" + }, + { + "label": "build-auto-clipper", + "command": "dotnet", + "type": "process", + "args": [ + "build", + "${workspaceFolder}/services/net/auto-clipper/TNO.Services.AutoClipper.csproj", + "/property:GenerateFullPaths=true", + "/consoleloggerparameters:NoSummary" + ], + "problemMatcher": "$msCompile" + }, + { + "label": "publish-auto-clipper", + "command": "dotnet", + "type": "process", + "args": [ + "publish", + "${workspaceFolder}/services/net/auto-clipper/TNO.Services.AutoClipper.csproj", + "/property:GenerateFullPaths=true", + "/consoleloggerparameters:NoSummary" + ], + "problemMatcher": "$msCompile" + }, + { + "label": "watch-auto-clipper", + "command": "dotnet", + "type": "process", + "args": [ + "watch", + "run", + "--project", + "${workspaceFolder}/services/net/auto-clipper/TNO.Services.TranAutoClipperscription.csproj" ], "problemMatcher": "$msCompile" }, @@ -357,7 +388,7 @@ "watch", "run", "--project", - "${workspaceFolder}/tools/elastic/migration/TNO.Elastic.Migration.csproj", + "${workspaceFolder}/tools/elastic/migration/TNO.Elastic.Migration.csproj" ], "problemMatcher": "$msCompile" }, @@ -393,7 +424,7 @@ "watch", "run", "--project", - "${workspaceFolder}/services/net/notification/TNO.Services.Notification.csproj", + "${workspaceFolder}/services/net/notification/TNO.Services.Notification.csproj" ], "problemMatcher": "$msCompile" }, @@ -429,7 +460,7 @@ "watch", "run", "--project", - "${workspaceFolder}/services/net/reporting/TNO.Services.Reporting.csproj", + "${workspaceFolder}/services/net/reporting/TNO.Services.Reporting.csproj" ], "problemMatcher": "$msCompile" }, @@ -465,7 +496,7 @@ "watch", "run", "--project", - "${workspaceFolder}/services/net/scheduler/TNO.Services.Scheduler.csproj", + "${workspaceFolder}/services/net/scheduler/TNO.Services.Scheduler.csproj" ], "problemMatcher": "$msCompile" }, @@ -501,7 +532,7 @@ "watch", "run", "--project", - "${workspaceFolder}/services/net/folder-collection/TNO.Services.FolderCollection.csproj", + "${workspaceFolder}/services/net/folder-collection/TNO.Services.FolderCollection.csproj" ], "problemMatcher": "$msCompile" }, @@ -537,7 +568,7 @@ "watch", "run", "--project", - "${workspaceFolder}/services/net/ffmpeg/TNO.Services.FFmpeg.csproj", + "${workspaceFolder}/services/net/ffmpeg/TNO.Services.FFmpeg.csproj" ], "problemMatcher": "$msCompile" }, @@ -573,7 +604,7 @@ "watch", "run", "--project", - "${workspaceFolder}/services/net/extract-quotes/TNO.Services.ExtractQuotes.csproj", + "${workspaceFolder}/services/net/extract-quotes/TNO.Services.ExtractQuotes.csproj" ], "problemMatcher": "$msCompile" }, @@ -609,7 +640,7 @@ "watch", "run", "--project", - "${workspaceFolder}/services/net/event-handler/TNO.Services.EventHandler.csproj", + "${workspaceFolder}/services/net/event-handler/TNO.Services.EventHandler.csproj" ], "problemMatcher": "$msCompile" }, @@ -645,11 +676,10 @@ "watch", "run", "--project", - "${workspaceFolder}/services/net/ches-retry/TNO.Services.ChesRetry.csproj", + "${workspaceFolder}/services/net/ches-retry/TNO.Services.ChesRetry.csproj" ], "problemMatcher": "$msCompile" - } - , + }, { "label": "build-elastic-indexer", "command": "dotnet", @@ -682,7 +712,7 @@ "watch", "run", "--project", - "${workspaceFolder}/tools/indexer/TNO.Tools.ElasticIndexer.csproj", + "${workspaceFolder}/tools/indexer/TNO.Tools.ElasticIndexer.csproj" ], "problemMatcher": "$msCompile" } diff --git a/TNO.sln b/TNO.sln index 0a696cf823..7fee31e681 100644 --- a/TNO.sln +++ b/TNO.sln @@ -71,8 +71,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TNO.TemplateEngine", "libs\ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TNO.Services.Scheduler", "services\net\scheduler\TNO.Services.Scheduler.csproj", "{A2DD9547-A4AA-4E07-9239-77D689F49C47}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TNO.Services.ContentMigration", "services\net\contentmigration\TNO.Services.ContentMigration.csproj", "{7D0917C1-DFE3-420E-9980-D81947AC405F}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TNO.Services.FolderCollection", "services\net\folder-collection\TNO.Services.FolderCollection.csproj", "{B559B641-F1F0-41D6-9938-A23EC06542A2}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TNO.Services.ExtractQuotes", "services\net\extract-quotes\TNO.Services.ExtractQuotes.csproj", "{9BC92B16-7AF9-4B45-BA18-C6A98E2AD87E}" @@ -85,6 +83,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TNO.Services.EventHandler", EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TNO.Services.ChesRetry", "services\net\ches-retry\TNO.Services.ChesRetry.csproj", "{067EA7C3-A816-406B-B36A-09FC05A427A1}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TNO.Services.AutoClipper", "services\net\auto-clipper\TNO.Services.AutoClipper.csproj", "{7B8BF924-36BA-422E-85FD-1C590B092F7B}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -198,10 +198,6 @@ Global {A2DD9547-A4AA-4E07-9239-77D689F49C47}.Debug|Any CPU.Build.0 = Debug|Any CPU {A2DD9547-A4AA-4E07-9239-77D689F49C47}.Release|Any CPU.ActiveCfg = Release|Any CPU {A2DD9547-A4AA-4E07-9239-77D689F49C47}.Release|Any CPU.Build.0 = Release|Any CPU - {7D0917C1-DFE3-420E-9980-D81947AC405F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7D0917C1-DFE3-420E-9980-D81947AC405F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7D0917C1-DFE3-420E-9980-D81947AC405F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7D0917C1-DFE3-420E-9980-D81947AC405F}.Release|Any CPU.Build.0 = Release|Any CPU {B559B641-F1F0-41D6-9938-A23EC06542A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {B559B641-F1F0-41D6-9938-A23EC06542A2}.Debug|Any CPU.Build.0 = Debug|Any CPU {B559B641-F1F0-41D6-9938-A23EC06542A2}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -226,6 +222,10 @@ Global {067EA7C3-A816-406B-B36A-09FC05A427A1}.Debug|Any CPU.Build.0 = Debug|Any CPU {067EA7C3-A816-406B-B36A-09FC05A427A1}.Release|Any CPU.ActiveCfg = Release|Any CPU {067EA7C3-A816-406B-B36A-09FC05A427A1}.Release|Any CPU.Build.0 = Release|Any CPU + {7B8BF924-36BA-422E-85FD-1C590B092F7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7B8BF924-36BA-422E-85FD-1C590B092F7B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7B8BF924-36BA-422E-85FD-1C590B092F7B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7B8BF924-36BA-422E-85FD-1C590B092F7B}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(NestedProjects) = preSolution {16EA028B-B4C8-416D-BE54-D73D75483668} = {F627B24A-217D-4BF1-BC77-E1A92DBCD07F} @@ -258,12 +258,12 @@ Global {65185F9A-73C0-4C59-8DC4-892616963E43} = {448D6DE6-6887-48EC-A202-18C7EB428ACD} {CE993EF7-A38F-4563-837B-1194375D459B} = {890D13F9-A1ED-4B00-8E69-A1AB620F31A9} {A2DD9547-A4AA-4E07-9239-77D689F49C47} = {448D6DE6-6887-48EC-A202-18C7EB428ACD} - {7D0917C1-DFE3-420E-9980-D81947AC405F} = {448D6DE6-6887-48EC-A202-18C7EB428ACD} {B559B641-F1F0-41D6-9938-A23EC06542A2} = {448D6DE6-6887-48EC-A202-18C7EB428ACD} {9BC92B16-7AF9-4B45-BA18-C6A98E2AD87E} = {448D6DE6-6887-48EC-A202-18C7EB428ACD} {E7444ADF-0137-439B-8E20-917CF2FAFA45} = {448D6DE6-6887-48EC-A202-18C7EB428ACD} {2D455400-0E86-476E-8C42-532D32C10107} = {448D6DE6-6887-48EC-A202-18C7EB428ACD} {6F1F9B85-B155-4A5A-BB36-10F734F96A12} = {448D6DE6-6887-48EC-A202-18C7EB428ACD} {067EA7C3-A816-406B-B36A-09FC05A427A1} = {448D6DE6-6887-48EC-A202-18C7EB428ACD} + {7B8BF924-36BA-422E-85FD-1C590B092F7B} = {448D6DE6-6887-48EC-A202-18C7EB428ACD} EndGlobalSection EndGlobal diff --git a/api/net/Areas/Editor/Controllers/WorkOrderController.cs b/api/net/Areas/Editor/Controllers/WorkOrderController.cs index 4cb1705989..d54f954c21 100644 --- a/api/net/Areas/Editor/Controllers/WorkOrderController.cs +++ b/api/net/Areas/Editor/Controllers/WorkOrderController.cs @@ -147,6 +147,29 @@ public async Task RequestTranscriptionAsync(long contentId) return new JsonResult(new WorkOrderMessageModel(workOrder, _serializerOptions)); } + /// + /// Request an auto clip for the content for the specified 'contentId'. + /// Publish message to kafka to request an auto clip. + /// + /// + /// + [HttpPost("auto-clip/{contentId}")] + [Produces(MediaTypeNames.Application.Json)] + [ProducesResponseType(typeof(WorkOrderMessageModel), (int)HttpStatusCode.OK)] + [ProducesResponseType(typeof(ErrorResponseModel), (int)HttpStatusCode.BadRequest)] + [SwaggerOperation(Tags = new[] { "WorkOrder" })] + public async Task RequestAutoClipAsync(long contentId) + { + var workOrder = await _workOrderHelper.RequestAutoClipAsync(contentId, true); + if (workOrder.Status != WorkOrderStatus.Submitted) + return new JsonResult(new WorkOrderMessageModel(workOrder, _serializerOptions)) + { + StatusCode = (int)HttpStatusCode.AlreadyReported + }; + + return new JsonResult(new WorkOrderMessageModel(workOrder, _serializerOptions)); + } + /// /// Request a Natural Language Processing for the content for the specified 'contentId'. /// Publish message to kafka to request a NLP. diff --git a/api/net/Areas/Helpers/IWorkOrderHelper.cs b/api/net/Areas/Helpers/IWorkOrderHelper.cs index 62251de1d3..f03ee532fa 100644 --- a/api/net/Areas/Helpers/IWorkOrderHelper.cs +++ b/api/net/Areas/Helpers/IWorkOrderHelper.cs @@ -34,6 +34,18 @@ public interface IWorkOrderHelper /// Task RequestTranscriptionAsync(long contentId, bool force = false); + /// + /// Request a auto clip for the specified 'contentId'. + /// Only allow one active auto clip request. + /// + /// + /// Whether to force a request regardless of the prior requests state + /// + /// + /// + /// + Task RequestAutoClipAsync(long contentId, bool force = false); + /// /// Request a transcript for the specified 'contentId'. /// Only allow one active transcript request. @@ -47,6 +59,19 @@ public interface IWorkOrderHelper /// Task RequestTranscriptionAsync(long contentId, Entities.User requestor, bool force = false); + /// + /// Request a auto clip for the specified 'contentId'. + /// Only allow one active auto clip request. + /// + /// + /// + /// Whether to force a request regardless of the prior requests state + /// + /// + /// + /// + Task RequestAutoClipAsync(long contentId, Entities.User requestor, bool force = false); + /// /// Request a natural language processing for the specified 'contentId'. /// Only allow one active nlp request. diff --git a/api/net/Areas/Helpers/WorkOrderHelper.cs b/api/net/Areas/Helpers/WorkOrderHelper.cs index 5b721663da..92a56a54d4 100644 --- a/api/net/Areas/Helpers/WorkOrderHelper.cs +++ b/api/net/Areas/Helpers/WorkOrderHelper.cs @@ -136,6 +136,24 @@ public bool ShouldAutoTranscribe(long contentId) return await RequestTranscriptionAsync(contentId, user, force); } + /// + /// Request a auto clip for the specified 'contentId'. + /// Only allow one active auto clip request. + /// + /// + /// Whether to force a request regardless of the prior requests state + /// + /// + /// + /// + public async Task RequestAutoClipAsync(long contentId, bool force = false) + { + string username = _principal.GetUsername() ?? throw new NotAuthorizedException("Username is missing"); + var user = _userService.FindByUsername(username) ?? throw new NotAuthorizedException("User is missing"); + + return await RequestAutoClipAsync(contentId, user, force); + } + /// /// Determine if the content has an existing transcript. /// @@ -195,6 +213,51 @@ public bool HasExistingTranscript(long contentId) return workOrders.OrderByDescending(w => w.CreatedOn).First(); } + /// + /// Request a auto clip for the specified 'contentId'. + /// Only allow one active auto clip request. + /// + /// + /// + /// Whether to force a request regardless of the prior requests state + /// + /// + /// + /// + /// + public async Task RequestAutoClipAsync(long contentId, Entities.User requestor, bool force = false) + { + if (this.Content == null || this.Content.Id != contentId) + this.Content = _contentService.FindById(contentId) ?? throw new NoContentException("Content does not exist"); + if (String.IsNullOrWhiteSpace(_kafkaOptions.AutoClipTopic)) throw new ConfigurationException("Kafka auto clip topic not configured."); + + if (this.Content.IsApproved && force == false) throw new InvalidOperationException("Content is already approved"); + // Only allow one work order auto clip request at a time. + // TODO: Handle blocked work orders stuck in progress. + var workOrders = _workOrderService.FindByContentId(contentId); + + // Add the user to the content notification. + _notificationService.SubscriberUserToContent(requestor.Id, contentId); + + if (force || !workOrders.Any(o => o.WorkType == Entities.WorkOrderType.AutoClip || !WorkLimiterStatus.Contains(o.Status))) + { + var headlineString = $"{{ \"headline\": \"{this.Content.Headline.Replace("\n", "")}\" }}"; + var configuration = JsonDocument.Parse(headlineString); + var workOrder = _workOrderService.AddAndSave( + new Entities.WorkOrder( + Entities.WorkOrderType.AutoClip, + requestor, + "", + this.Content, + configuration + )); + + await _kafkaMessenger.SendMessageAsync(_kafkaOptions.AutoClipTopic, new TNO.Kafka.Models.ClipRequestModel(workOrder)); + return workOrder; + } + return workOrders.OrderByDescending(w => w.CreatedOn).First(); + } + /// /// Request a natural language processing for the specified 'contentId'. /// Only allow one active nlp request. diff --git a/api/net/Config/KafkaOptions.cs b/api/net/Config/KafkaOptions.cs index 877dde1320..fb7e014a79 100644 --- a/api/net/Config/KafkaOptions.cs +++ b/api/net/Config/KafkaOptions.cs @@ -16,6 +16,11 @@ public class KafkaOptions /// public string TranscriptionTopic { get; set; } = ""; + /// + /// get/set - The Kafka topic name to request auto clips. + /// + public string AutoClipTopic { get; set; } = ""; + /// /// get/set - The Kafka topic name to request NLP. /// diff --git a/api/net/TNO.API.csproj b/api/net/TNO.API.csproj index 541e065147..e3c4205761 100644 --- a/api/net/TNO.API.csproj +++ b/api/net/TNO.API.csproj @@ -16,12 +16,17 @@ - + + + + + + diff --git a/api/net/appsettings.json b/api/net/appsettings.json index fa2350c1b7..0078bd7fb5 100644 --- a/api/net/appsettings.json +++ b/api/net/appsettings.json @@ -62,6 +62,7 @@ "Kafka": { "IndexingTopic": "index", "TranscriptionTopic": "transcribe", + "AutoClipTopic": "request-clips", "NLPTopic": "nlp", "FileRequestTopic": "file-request", "NotificationTopic": "notify", diff --git a/app/editor/.yarn/cache/tno-core-npm-1.0.29-b0ccc3fe82-277dacbb50.zip b/app/editor/.yarn/cache/tno-core-npm-1.0.30-168708be52-33f6b3545a.zip similarity index 92% rename from app/editor/.yarn/cache/tno-core-npm-1.0.29-b0ccc3fe82-277dacbb50.zip rename to app/editor/.yarn/cache/tno-core-npm-1.0.30-168708be52-33f6b3545a.zip index 3204dd13bbe54f2e24a786dc9b258b846c6b3db2..e44eb0e7768b5d2b225eb3b53b12e09932dcfea1 100644 GIT binary patch delta 53222 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 UecNlRZ>x9LYb!MB=Yi1w0VxS+p#T5? diff --git a/app/editor/package.json b/app/editor/package.json index c656da9b28..0b66224c91 100644 --- a/app/editor/package.json +++ b/app/editor/package.json @@ -60,7 +60,7 @@ "redux-logger": "3.0.6", "styled-components": "6.1.11", "stylis": "4.3.2", - "tno-core": "1.0.29" + "tno-core": "1.0.30" }, "devDependencies": { "@simbathesailor/use-what-changed": "2.0.0", diff --git a/app/editor/src/features/content/form/ContentForm.tsx b/app/editor/src/features/content/form/ContentForm.tsx index af23e685fc..d44f3bf448 100644 --- a/app/editor/src/features/content/form/ContentForm.tsx +++ b/app/editor/src/features/content/form/ContentForm.tsx @@ -86,6 +86,7 @@ const ContentForm: React.FC = ({ handlePublish, handleUnpublish, handleTranscribe, + handleAutoClip, handleNLP, goToNext, file, @@ -105,6 +106,7 @@ const ContentForm: React.FC = ({ const { id } = useParams(); const { isShowing: showDeleteModal, toggle: toggleDelete } = useModal(); const { isShowing: showTranscribeModal, toggle: toggleTranscribe } = useModal(); + const { isShowing: showAutoClipModal, toggle: toggleAutoClip } = useModal(); const { isShowing: showNLPModal, toggle: toggleNLP } = useModal(); const refForm = React.useRef(null); @@ -842,7 +844,10 @@ const ContentForm: React.FC = ({ Transcript @@ -1073,7 +1078,7 @@ const ContentForm: React.FC = ({ onClick={() => isWorkOrderStatus( form.workOrders, - WorkOrderTypeName.Transcription, + [WorkOrderTypeName.Transcription, WorkOrderTypeName.AutoClip], [WorkOrderStatusName.Completed], ) ? toggleTranscribe() @@ -1090,6 +1095,27 @@ const ContentForm: React.FC = ({ > Transcribe + = ({ } }} /> + { + try { + await handleAutoClip(props.values, props); + } finally { + toggleAutoClip(); + } + }} + /> ) => { + try { + // TODO: Only save when required. + // Save before submitting request. + const content = await handleSubmit(values, formikHelpers); + const response = await autoClip(toModel(values)); + setForm({ ...content, workOrders: [response.data, ...form.workOrders] }); + + if (response.status === 200) toast.success('An auto clip has been requested'); + else if (response.status === 208) { + if (response.data.status === WorkOrderStatusName.Completed) + toast.warn('Content has already been auto clipped'); + else toast.warn(`An active request for auto clipping already exists`); + } + } catch { + // Ignore this failure it is handled by our global ajax requests. + } + }, + [form.workOrders, handleSubmit, autoClip], + ); + const handleNLP = React.useCallback( async (values: IContentForm, formikHelpers: FormikHelpers) => { try { @@ -434,6 +456,7 @@ export const useContentForm = ({ handlePublish, handleUnpublish, handleTranscribe, + handleAutoClip, handleNLP, handleFFmpeg, goToNext, diff --git a/app/editor/src/features/content/utils/findWorkOrder.ts b/app/editor/src/features/content/utils/findWorkOrder.ts index d12e5cbccb..26fa5bfab1 100644 --- a/app/editor/src/features/content/utils/findWorkOrder.ts +++ b/app/editor/src/features/content/utils/findWorkOrder.ts @@ -8,7 +8,10 @@ import { IWorkOrderModel, WorkOrderTypeName } from 'tno-core'; */ export const findWorkOrder = ( workOrders: IWorkOrderModel[] | undefined, - type: WorkOrderTypeName, + type: WorkOrderTypeName | WorkOrderTypeName[], ) => { + if (Array.isArray(type)) { + return workOrders?.find((i) => type.includes(i.workType)); + } return workOrders?.find((i) => i.workType === type); }; diff --git a/app/editor/src/features/content/utils/isWorkOrderStatus.ts b/app/editor/src/features/content/utils/isWorkOrderStatus.ts index 0b568cda2a..68b25afd8f 100644 --- a/app/editor/src/features/content/utils/isWorkOrderStatus.ts +++ b/app/editor/src/features/content/utils/isWorkOrderStatus.ts @@ -9,8 +9,10 @@ import { IWorkOrderModel, WorkOrderStatusName, WorkOrderTypeName } from 'tno-cor */ export const isWorkOrderStatus = ( workOrders: IWorkOrderModel[] | undefined, - type: WorkOrderTypeName, + type: WorkOrderTypeName | WorkOrderTypeName[], status: WorkOrderStatusName[], ) => { + if (Array.isArray(type)) + return workOrders?.some((i) => type.includes(i.workType) && status.includes(i.status)) ?? false; return workOrders?.some((i) => i.workType === type && status.includes(i.status)) ?? false; }; diff --git a/app/editor/src/store/hooks/editor/useWorkOrders.ts b/app/editor/src/store/hooks/editor/useWorkOrders.ts index 63e5f8777a..f15dc4bb72 100644 --- a/app/editor/src/store/hooks/editor/useWorkOrders.ts +++ b/app/editor/src/store/hooks/editor/useWorkOrders.ts @@ -17,6 +17,7 @@ interface IWorkOrderController { findWorkOrders: (filter: IWorkOrderFilter) => Promise>>; updateWorkOrder: (workOrder: IWorkOrderModel) => Promise>; transcribe: (content: IContentModel) => Promise>; + autoClip: (content: IContentModel) => Promise>; nlp: (content: IContentModel) => Promise>; requestFile: (locationId: number, path: string) => Promise>; ffmpeg: (content: IContentModel) => Promise>; @@ -44,6 +45,9 @@ export const useWorkOrders = (): [IWorkOrderState, IWorkOrderController] => { transcribe: async (content: IContentModel) => { return await dispatch('transcribe-content', () => api.transcribe(content)); }, + autoClip: async (content: IContentModel) => { + return await dispatch('auto-clip-content', () => api.autoClip(content)); + }, nlp: async (content: IContentModel) => { return await dispatch('nlp-content', () => api.nlp(content)); }, diff --git a/app/editor/tno-core-1.0.28.tgz b/app/editor/tno-core-1.0.28.tgz deleted file mode 100644 index 21c9866e5b91e6dd6913ae20de1f5479aee19e03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 620851 zcma%iQ*a<}^kr<@<|Gp*6WewswlfpkwrwX9dtyy&+qTW#{Qg^8`>-$jJ#<%f-@esV zU0>gG&pDSk5(ead7Tme6yXzXqUtiy&EFb77GreC;7z5b}Hq@~NghPo%6SJnP6x79( zqh`YKcnP;?OIsh=@O~66l0_8Sa>@l|Vn(gYuL`xB~!j10J{`c=1Vu?kG~QOvIS)VIqe*) zFEPlBlP=Q};6ZJ=`?BUfDES(H*(0Vw;m(1{?4HdH*dF83P6?wG4bH{kCtD6>oMElX5bn$as>M)Qz3g7z60x({D?P}&7~^4noIm9_Nm&$EPYY zvILKN2(};&T{Z7x^}{wHv4lVB1LLr$MJUnxXY)Z#5AubIgO+V#b%A+@RFqNC;e;^= z(=ez{FOCk5UrQ5l1)G#=;}FS3hVA|y$yg~6$+MFWpbw^zAOE-=c{}{+3bRAZMoK^F zt2A7Wy$S*=8dYS-YFkYMQj5m-PxQO~>Uv_-RVBNnEYQM^AE0<1t;4Fx82385OD3#&$f5s7u@vnu!62#-QfR2G1dqv)5y>M?q66{=NoojG5k14daEF? zTzE`cg7bzcApI7K%tcVV53eLpc^()S8J`}!Qu~j76e<<*O($wSZX(1iWbAWC#7Si{ z#_bvt4}~xdKaH_%@+!6@XWk*GW{vcG$3W+_rQtn zIt)XZ@d|}j?a@!RXe@Es%5xbr=yNda`PeFLpQ)ChT{^&FK*6;mmiAZmZO=cVFs$Rp zUT`fE1L=`<##!l1i~k##S(q2Yc0u9pa-BwV&kwe--H#=_I?sE!Q;6m1#0tP=|EsgrfUK3X z<#B(V3H`P+u=0Z`vZkaOn3bX#7p&);3~T=+uu1s#27y zD67bWi5j7?C-}l|g)=oi*UUb_g#X-(vR=QEEqJ7PT*XSnei&GZA!pNiVgHM4xT-0+ z^!af!)&FtgVaCeFyzsRzrUK)2xhVz<%fN~6FVBYUH_(U4tF@%(!*$+BO{8)XxSgaZ zcfYx$b6>jdsgu;0%f7WNHW5zq3)8^SGiE*a-sc4q>(bS`@)S(c1<>D{Ru?`#=Tsjj z%**5P)k>hs5s5EVdrxO@R`Wa`L9}-=!M(>mZs(d@&MhHbuKM@LWE4D_Xj(Cgfd%j> zMRp$3kQh@vMh(Fc3D;3aRX@MH<}J*)D=A`1X`ILWp*qOcoN=#f+ZlGa*eDW|ZdX&M zRu1R1@S66BF+qHY52uL7#(;fL67Wu9zen()fK0!pdwT9#jqEd33&Od+LnzA#$dxTR zrNHVa^JbO`&ZUIheY6)w7f>{^FXu0rmza`lvG)*@FLpGCz(4*j!3L?%Qz6PNT(Z@@Cj{}jC$W^q5xliCX zmas9=7vqx}dy2gh%a-B&236X{v)M;fyFhU4t*7j)w&*!}9`USDS+=K#?BWAg8Gd(D zcpzV?!c$LvPj>D4$Q|>S`8w5Eq%oXXsY^$cHJ7d#}#=s?OND7edKggVK?WsPV%`AsHfnD!hXvOj-dgamN}m zX2HHnWsT2*HXzLlEL~GD1Ctj+S6M5Z@z;v8HaTU`Q8?9Y#-9=CTop{cvlA_S35B@w zyEgh0mRCqAmYTD+qJZXtyNLNzRUB@-8oGKCnXK~L1TxwW{x(5w#_$9(>tg~bv>MB{ z602jd-X*CsS~zYAKD`u*G(7A-eQsl3HPqH*veC4slHV9%9cpSE!O$ozB%~HwVwR6Q z3&@^So&0By6i$ZR4DT$T=Dbvj;5+E83P>CxCM(JdBKX*Z!KhC=XdcpY6snN*-~#`D-2_l@jv@DSo22#!Q}NFpPLFGRl$LWwYfXP5c=eJWeV( zn;xf-mo)mr$1qZ&Eyd3smy$HHh(VNXoxbcBq$zn8o8 zu6$mD?fZk&9=uM181+bCnWIz!(ggTv3Kr=|k&1dHx5yt?eGy3vHN6wq^5GHg8rn8` zOUVNJuw}AaOqgSPQX!?#_58-Y9t5t+Man(J+cdc%lv`tML~p$h+m!OgRwK zAs_q6LBGvc>*o|a@{8Luqw?QShshXMQ$bJbDyF;Af+wHc5rq8qb``a>clKErSWQ_u zMTCw-5@grbS-3;y#;Qt4LlA!CkIw=sb4_~xvwJro4Gb}~iM+%b4^=HT>ypRn-XDde}sGy`NJZ>|kSdGO>+0M}m9zf*hoMlvBw2QdDV&a z1UJ{-8HO5%(HS#$Rd=q~)wux?Z*_Mee z29T#Gcx6ZwtMH#}1t%R;C*JWYszm%OweVP!dh>=91&&2Ge4WUFFJL8cMP(UbITU5n zjFMM(_0@+C(`;RgPYXm|X(sVkwDlyXL4;}$Ldk-Q1-C}}%CFy4ZnrAjf^w?EU#dEb zt^m21rsF2*+6s>Oi~%MB}%z6LwAsQpoDaYAGIMdx>VApiO3@ z%cx>{3u{wQ7fH&{N4PT4%+@E#fzcDW;yu9_Xa1vj-5S~&V3Z#nhEFtV-Cl^)8C>G+o} z63ZwFG{}D*^(7WMtJXNC zzj8;>cWnhG6ty~k6*6RfZoFhw-2l`Qc(OqK|iJ)F@tL_c&_eBb{;~_iCx7A6s zYwQ*0tg9qWkvTCC;#-o#b>w|3$g$K=LoOEKKTcjZ_do0 zT&)fIR*}8yUZBZ;Gcm$tjvz%4SNTvUWmyMnHj8 zu<#g5jS$59-^Tf*yvegnEN#8Td6s>!;4+Jg7PAG&QVMoGZ>pVJ>GF2<)@0KI^{bXv z+Fl-u-_9#ECn5~?WhrdU1=pP!dqHvMHy?8F)oL+`Jl{Df-Jv0u=(;Jt?qldw@hA>2 ziEa8oRqM3B%bB@!)T{X6KNj` z+(VR$iF=*r>$ko(>RU3R#ZLb2Lld39vvDu-5sgJmUp zk?=kUed;$O#cxHGI;qCp0I&SfoV_PeS%%LSaeWu=_-H z+Jqmk472Xj?Pu2vvckqRSrcS(KincCI+R9W<&;+Z^y4a;DKq>$;A(hPAb!p?>WkK4 zr@rF;uGwVV2BHSFwM-C^Pl^Y;#rNoGFX}@=5@7MRJVRvuhFRCN>kjl82I}VObfTZc zn^m#q<<7Loj3MZf!JI>7J}P&5hv^s-llA{vZ;uoo+`lYHPQ4Jun1yi0OBdDEG6^Fa z!S_1fKmCxX@d@`_puF5r3QzsT&o*3`3vl##VL8*hjuLZ9($aOj$||`L_AWV8u`q79 zOFm?#59;!#74ujf7q=r7Hx~cUlEGMAq)WyphOA@+bV-1%@{imSj0b^%!B1Pd>KVZ1 z9OyDTm>T@7sROLfflv8IU+LfveT6t>xr+8CK!s9oL6GaaF;IFhs9VQ)#sx0eIyBZ+ z`G?6)jBr;*IvF(YbqOEjG03w%H!I+S!U74l(-{HeO$=O+mK{XZ^XuHCVF~gl85hKC z&KbwLPhKmn0Mr0LLI8O{1MivtRG?c1EGyOkOUg%IGGmZGsW>2~6}bN;Y#_xv;ID~P zt{IZ;b*!|9VFf#c{b>^hmP4I4Kow|)cZ@C#R`b9nwQCZu!KU`Fq1*&6WkRsY3(V|@ znDyhE`PL!={MfUA8p_`hz_N`2^F^R)2l%^#_gS+8{NFVv1?veFwRf{U*lRQndmxlKTA;py%N^D*Qv2%Q>5$g!nJX*j%Z(R;3lXYyhTdA@ehlS* z-`8L6?SEiI*20!Q&T4akp8(@&41{0vvsJu@>k=f3bybEZ#aN7Hgm|m!ktJDn)d$Ei*}0o2_2mmT zL#wLd&P&+IKd(Te9t8|V@u z;Nf`{!xoPBMA;U6254@(_2jQ*5<{w10tMBF2f(v*i`mCkz?*g@P(K^0hK)ttks~RI zbv?SJVki^`@mxW-O>W&`HEMNUNUAw)z<2uOjw%H*BAg=!TLbj#&x_{8?nTx^*)tI; z&Grz_VPkfYBigjy?$};Q^0ydSMW_=k3!Mu`J16%;d*0TuqtDnX zJyNcbUL`S zcBc={)=3W_PuESnZv~vWwC8QI)q$_!uRK=|pg5^iDv8EK!!--%Abij{G&p#H?$d=$ z2)vxUu#!iB9XS!L?C^IGabrt}LSB=$kq(7zTy=?b=d8`N66PJRi>n)G55vZvXQ8R9{{xh95$GxiX@=)r`| zYJjg2#ZG(_l@VQf-{q}+P?JU2PgSjq-%R@WJe-r{7`@MDd{BPqn}6DBwUocq{Bi$O znAn)JJYLdnNOavkYr!bwKVrs=Ti z+|$ZoAGq1FucF0$Hng5zWsNcp^!$x8)vAxUr*YY2_>SPK=b(VNM{AB3G7^nooaDL6 z!#utn_GW=MDDl3V5qHWS?qY%?u^t<8LmqC8XU4S78dccW`L&Gq_T8qK#;LOqne7&b zLhNOgi(7X!-bG=7)AZ*~=Qj=4MZT|B2MqTXx*a~p3KF^jwFQd&bYRU6TitK7yZPTV z*WEV9!SOomO!F4m^TD1U$LpN}Te>ItG^TL-g&VUu+Gm(;=-~+uy7v$1g22pY(A8jB z5hSi-kZ^*4eRVsIp%SnTYftl;7b1sg{@cg6yN{>z`=9yYa@T|I&8dj;^=YI-B8K=} z=#4UCKj7boL*V zg06qh;XtAIPE2E)<=SYuUB;=CmJjBAAbZ1b3*`+{6Ng#wMEs8qN$=nDchP1Gv}YAj zmxB%D9X0AS&v@1*ZFKxuXZ*I>gZ2G#UYkI_5__WdZe>Qe}_WineJ<* zL0R9ow9|WYui=kDI-8&OlSRmv;QELw%jAR;G?1bv30(=6i4gN_2?`wJ#@jZYutGN* z(E`3BHKE}>2bWlPTAP=CFkE)(&Q`upckd=J_Fl?qRf1Y&ziNE<+4m%;Ta}A^gK1Kn zX^)1oFfWb%Eycy1xZA`mUB!$1Z{&(hA`-c45 zIiXK!pc|?6-A;|M4W7oB+7-ZY)%)#3LG1gm@3u+)3h=A<`#!+GPWPm7iO|Oc1Ee@O zJj1eDe@-*KlNw$i^v%nmfja)?1pB;WWlCV1jLk_uc(+3sU(2RA->NgzK_bO9`=HqV z7OlV;AjBz%pJT`DP{Zi2OE|Ms8n+9fCy=gV0Y*7|!pu~56l+{P?*(Pblpe6n@)Nc_ z99A18qrT}RSD!SJbDM@3&#_vf$fbq%uc3J3_VWhY_*Ux+$|(Mkgd;ybo*7%vp)CGm z+SjJTjyr~QHA#aiyH)86@*20F#RlYM;$zU}p2*fB4QeYJrQFXJmWw(bHa%RaGQ7?f zP-TTHS?cz+udt-&J}%pvH^nolvN{G!!u#odXY_PuvW+?TQ(WWx_+yiqRDDCR>rP}F z@_X&r@2^TntG{{B(l=SbF=Sy0e;57g@`ape&#t5 z)g#oH!BN1-{;v*K_cf0+abXJq`3=*Kr*`8bGI!f8s`LTpV*a;{Mqy45{5IFCswIyn zc4^;~8X!%nEf78L+e=Lz_M&fbD`3tO<3ryi!(S@`SeehH@Drj;{Qab}e>eopHgws6 z;((7-hEv4PBXymVPl1c)2X_!*ayV>OP`Bn-1(yW!%$nPyweB$@fx6j z;m4PD_&fTc8}-y%ta|dj+x7!lYAP47@+bsa37btmwnV{NHc$1bxW55{-kk_9DI4`K z3ZkT$75?g{zL?j<&LC4ZhX9t2?#C1wy98PB#;tW2j^(3KK1V=M}K3BKWcFHE@#1-)o-7SS!CR0{^1L3_4AM2uWex0)#xb8%@12)if4q&hFOXf)vb6%vo!x|k~|Yi^wY)<;&pd5k;eON zzV{q|I-lQ|I;(Z@0YpycE#g(P+VRjiYd9waoUMKbB`3ryEi|6B^)dmTOxpUUiAC(}$N;q_ZH!L5?6 zSDZC6M*z}(mVQ*Mh_mGUbNT&jIR|7^y(SqjY=iJ=ftAmr8}w-b(V^|Y-UZ-S_*Yc} z#b@=aUO@8>-bYP$v$o}D&B|Hwt-j{yn6FxX9k3kHj{i|p?AarZe$MLBbOb=5Z7)1@ zI~9L*jC=q45yQ`|wU-)tiv$eS0}l z!7qLP;otib{(J5P=Qq#+tO6$^!|&e?DUzCMTx74XR*&7ChqgSlK}=rIWr{9lrV#Qm~PFzz$58B)!AR^ENQu%wKcJ zUwI1r#GXvYTmf$!L+d-N!tP>~XM#$fzndm19F`!GgSY#Gx)>A*wguVC44UBrhVbS& zK{|%$&6XQoHH?%migN%F{1-E7GThV_24W>eQkhWf~EnEpZ&*y$sPr!!a?yv-7X;J2C9A%uU67a{(QRAEs8qcbZh%cqf&J02G&q+p;*8${AI zHwnB1A${OOTYHDzy0OD=9HZ7kvS+lsB#2o0mV^{A*cEI4CcbIzBIuW>@*#h3adshi0xBKwSSmJ z$yNG%+#dN}rpXY#>yK3sqVcN53zkjB#L871MMHc|1T%3PFy53b*J@9`XR7T+K&h3H z4-l#bmie)TrGp7H|3$q%UDwBgoi>RFVLsOxb)>XGQ$oV1hzIe7qUcE?9y>wXO&bci z;R^)kT=%rZ$qflQu7N!yKD_sl*Rz+Vi2)rq$_?2Q;3O3V6J{e((<92A&y zQdhp%dep-!v0_PjA!~P}`_Gx?B zEpjb6Lp)bd3KpVs;qW~XH0+%nIftvj2!lMAj0ja?dJeXz$fLi4fGCZy_RSO%e?zoWPnN zHz74i4z*Of$QdtUh=~aSZcSHcK*u@N-gv)08LMQxly!k&%J4e+@fe;g!5^e0u+d7= z!B|ix6;l4^ebHz8q9%yvpF$a!TSN0!Fju5jh%??1eeR_?bmD83BTXq}c8h4M=)CeF zrV~u%2%ly-Jf`W&1#&(^vb037E~=rFkn;E2hW`T5bZuwh=)v1$lBYXg?lIh`hiT`s zRT258La?|L&}tZ#TCobl*=H@s7<%~Sw3t9~HgcJl3xB}sx5nlYp~bF!Ft~Th6<$&| z_+noL{&dA@-8b7U=TiMwTG05SK7&^F!5>nuB@p_Ac-mTpikC9r>8 zeZ8vDd5?c6y>7ai6|485(A(SYZm9dWU(c^2{U4ks7sSmr1SS8@95Qe{;PC?vSkf_Y zhc%Uzv3_y?*|mnO}qf=I!a|!C(nZj+qT>48NgF9 zz<2`r;akQ9Y(=yazc0OSmz92|uHP=v0JakgIl$8&fDsPz-CWJ$I`{AHqCU`_K_1uL zr2SPxazDF&)&hxmAGsGTZ#}*nP7gJu?^9l-c=&!zy3sGhBJP#HpcI1vGAph(0jY$3 zD8QNSx7@picuD7XoMi+o`j=}EGuSwv1O0@+C|e~WxW{BZ%@Bw+xN|9ZJAGRtv4W98 z(A5p+4yO8!c)nr7fdYXW$mWrJ5&RF$6v`P6dL1@#v_gTIb@DXV<;^@8fygeg;^F4l zkL_8w!J6}tnPg(F!XoCY7F{9-lE4S*U{%YI6j#Kh0Egk*YT{}$hv}B7;i``h{d~rX z8{pvmNq-6daMhQ70~QNf36thJJf1akdF?J2e>RR_`v*%wyS?=UfN3hU@C0Dp z1NVcU);!g{z{DOvg~wU*F7ue9)mAeq0@0uj8?<>z2h@90EA}qpFtAV_yWtQZdv%L7 z^!CI4`xEG#ZEPA|hMC2sM@_=%F9nBC8p;fnD00mSIdB}vbAICfX+adU&3;D+wPiFm7J_7-+N73U@QC!;G3_A#lvxIC6ZCdgu5)>yUjMdqjVRItTVY&8M7YzqI;{cDD*US} z0ow3{*=s=CKKk=$YpseE(71RweFNZ*x`qEk=dQNTQ}BZdg|M>!hUAw^bh9nXh!g z^me!H5c_McuWj?|d$;Gi#22;#MAdBfeYNeMf&edx3g1FlkFDQ3@3|83SI(i&=IDD< zc(1uuM1bbJY3mHI9${QZvt60(#CZ%}a_X-M6ETj<6&)j%O5puA07ozushoZTMsG=w zeoVcp5q}ZgH@jZvK=!4)(WHvzMibd46I@ofp`(5?4J5R6$<^$@;qoH+j1p0 zhf;*yY4r{FLeB1E_jWI5(}SIL7QS3^JMX>j}P?l|ULWBiPeh25IL6mmtv zbrhb+DK(aO6YwdU8Rhre*iRBI*#9~W@-vwAuZW4zOaT+zmwA+Es8jCDDzUED7!L@w z=Z4V=MNuhYj!Q=Pj+ahA7#f`QQv7qB(*bIhoNzi4(`fGM8>+Rz^XhA(%e?38Ynjt|h zG0XN&w^08Q$c)&Xp@Nxl6w`}^?Ue*bG!H02C510l1%%+Q778;co%g=_G)qhcggISS zGmnC74*ADF_==-b#z_u613a|bNqYkD_M;~!uj}t797b)7s|#vhPI=LQUJ2wzJQI<3wDbUI}J5`ZaBrVd9!5jPoaA(fyp)rh5Fa z@gasokBOoC{~^Np@HKo$@iI)Fhm9ORJlxN_iXbQ~{{PY~tc6@zK@yu@R?vAiN&gSq z;*k0WD8}Zb?Ds7gx51K0sIS%x+06AM|1wYUIr7E|=SN;9DQ<@fE>Azzic1qEi)2ZXo@qfgiKrRqt}3 zSM4yh)l(Aj-ww0J3IfP@y4o9t+SzQyOYEUQhYu`NShkJtZLY=ugY&*9g`su>ia za!UL(C%Wd2TNRv|BV&F|A%U3A2|G@`T&;^w;`sWLi6hJl<@^e~h5!>+w+JPyQN-ciMvz=Jli&tYhF=JNH2@ zMCz0egh>jiX;9r{AU8XP^*1G#QxEwFlXLr93Wj-4m@K;w~ zjyLrjcVNCSsZmwiih*N5I{NuhVq?&E=aXz!FJUdtZveJrRprZo^;et51X%A2XxoqN z3s`@NkEx&M$?Z{!$8Uy8pT=hU0w?G(7Wg6A$DjIj;$WN<(PAa#?@{o$itAmU>Nsz7a82yz4&qYuX@Eo znrx8LqJ$^Uf1{<0A(p5=euFpSHJDq!B{^A#!&k9AYanIui@2O`0bNh0yTK^6+IjO$12VKd+i z8?46m+!+lU90&T{n&1A$9aPx2OyVVMP~!%J@aZWIg@+QC3Xa*H1)IYkocQfi;L5r@ zI73I^La^0r*k$wzrEld2J)q*@?;pj;*BAckk4SFHA9kMl51 zDz&CR-mttcNF40R_LI8HsK*Ox!2KT|yKEZLVdw+M>lsl53luBny82*C30C*OV2$gx z)}58#>=-BqS8DO|-Ewu&y=+R5f#QqUQJokb{FD){Rj}hSeLDN30q*X=-BR29*pwdb z?11AE{mH9&HNs59-Qs--gjZ{CNXL&7rPL>?cTOWLw9B-S!!*(m zq){%57+lV0F4M#t?QuFL5fB{3ZJ#>gsk5+aZS9Pj`_LKRRWMy2obQ3^jiq=76;+*SX?u^K-V)GBu{Jq3t5MMY^vw zf9I%F=kf3Bxa`&5c5c96TFdk(O4Y-tQSMpsf?A^Ss;kBV6c%Hfnn36tfCsS8_5zOA zuR_nYLA92t(2xoBP4}Z0xdcn6axI~b-6fLzv!*m9vXgRGPPG+ltRyY}-knD9V`8KH z4j{S&Fic2e0cvUGLZBV9S@d)0{*`bTl(tD49z=2I6_F0dP-%*3VTEi}Wh6MO`_iza zONnoFxQYc>S^z8m3(!^q34i{h0jupsR?S7wlyzGip*5#OKpD?H3+(kQF<)iZ%J_FoI{8V4O8xp_Zceb?+4&VcMJ zutnXEy@o{M;e&tOxI@4SYZP^8?Y6lKWDKsg6~2?co!MY&06xi{Yv|3%M52Cp*B5vD zoXy+G7Q+}a76mV}OcKXTAv=xq(vM1NJPvjt8GdwuO&1`Hut`NcT*|>o0_d&ED|aW6)+Gj`r3MZ#Q{IJi>HwA z***&)PIWOq$!i}im`QjHhnc(Hp}IrF4j?rA7vAA>WGa6p8?b}{qPpVy)vPcIp=P{v zV`^*zDizNGAbwB>6d?0Ya`oTchAvSbr3*{igIrhS`T~xf_O4?##F8WiGQ(X*{ub~m zcQk#4u#OhaP7Lyx?I{tVUI}bc^2FatI`Q1btYjof1brWEcdJn*g0$7#q|C%tk3zHE zQ05wC3?~z9BB9K_&>y2JwTIt`*aDiwMHim*6X2d}3Kp-wfFt{(uPYfydFR`hlpp<` zMjXgTsI*_2ZociH!8O#zvTjBQvx2wu-hGHF&niiKr%_Za9y+QE5gh`n@<9$vTJLb50&0#}HN!txE_t7MQ8J!@BD$8>EF=2m`ee=f@| z&$Wz~GKW_vKN=7OyG5$dpIX2D-!(KSuTWl8{eM1J5RYjcDuQn;TBAH*3s-2i+fMCKKMwa#+4Q}COUhafD(EuueIUObOZTCI_B>KF3Gc4j+L zkIyga-T-Me_nR%^_quFhxqS0yqX2GIyK#vzi|_O(i`%9aa#UxSWs;?Big{B+`iFjH z*9d~?Jk4VuEu;5i*(lN3D3!BAw86`zNidVRPP(Y{-IfKSKodkC!pCV;;oZ-fb=()d zj7zkD(OKRRi&ArR%8Zj>RjAG+GIjM5tqWQxEz`NKYZ2%g9yaqVG6|BHI}1M-9Z$52 zJb@Xct`{%?u}=gb=T&K6!PTKElr{(k;vgQq)g_JG2kjGL^PmcuwBH7_7n8(tHmroU z5k?(F0-d^6gyq~~X>Uwn`FH8+WNgIgfhs7sZ!cqFI2SUxuk>#QsZfZHIx(Z`6+Naw z&?4TiF{^wSUp!$aD~Z&<7x~At5~Rlgp~HX0k6^Ch;?R3rqQ~@&8g1)2VEnqbG0q<* zw61N=Q?2}5Y*CiQ=VGCtS(9Z-=p?9!Qpbq~Au`Ab$4sG-CGcqK@(+z;*+g9+( z;jOAC$;R+#5F)>kcxioFX_k{1Bq@m>_Mcz3JBhHs7|>IOFTJ$cMG}*1?nJj{j$KplP^Zb1wYF2 z=cvB4H!97_S}*$WNh?lTN7Ib#E}cGfpPz0>N^k88#zK_gqfuKWKH~$`jLtA1X zhdF-4WYBWPKtYmeZY!I_uQP4xPRbJ;EgpthAlhAR!d!7;tj?VEi$qZ?CEQ!E)Je?z z9tjB2fKEtDi0K|C@Cf8fK&vCMVh+LM8E28S5|eC1O2?+`v4~ZyfMBd5G|n5C;5O(- zOb;PQ8pVUE8wOo662z;-c&88a9-Jrb^)v>#htrq*3kra`H$Fw6CV*m#^nARS4>IDm z-jn*Ltu@{4|ISCk_2bZ~lVD1O7L^q_REnBSiQ?x#4F^;FbyEa9YR?MGBo4&e|9h7C z5<`!P*%Jn5V8wOX(bB&+$A8+e(W$QiTah23C1nF|Tm6Hdj&#*ppA9=VzTPJag!C7l|jat8JKo9w37T{#tnKG**M+krpkfWTa2{lD|@^#c=AsfUHl_^e+C}Qp+Lt* zgAbXO9pXXntzt+w8U8E>_SBmCZ7_tqn55r+@Q7Q!Z4f(rqW39>!b-1^mTjuglhA-m zkA;zt!DT(NSfXXk$aviFVi^%UOeix?$_UbCW+K<=Dt^0=2Hx?`ZqX#`bSxqYT};wm4G|*5#lb=(95u59U;7IZC~?dWucC+{ zb6NHK2_5g@DCDRjjh`Kr_Zmo}A{!5s-?>@Q%@gil;cp=xeBvp1C!6OcH1gC0@?j#siV=_*$U(;A?R)$jfIbYiAc?R(D$r5m^ye{~`Ts5gFQ zmKVTc=QvP@Yw+%wX_wyz@sR59ZpqK4Wc@a_YdT+XA?O?&;lN$5$gv*6-Is5Iwa`42 zmDoEJNW615H!T}8YIj$NT5AF zaBP<}Hf7MCFYt4`Wley|cuKfuMx4JTJU1avc8+M>L{BA(+hQ*e|J@Nj&WCY(50W)I z$_z*N`g@GB-Gs?fHrRge&x3iPz^^O{LCe~w|4bb>b_Ogl!~ z_uf5lC6QIzVh1P=nw;nN>ItYK5+{0TJ$a)z(6LC(SMT@xIJfmn*AY7WCQ%0z>H?vI zkyvLpZQC@oyh)7G&{bRhwS>Whu@*CpvU1*!Pk=PM&)pp#IeLoU6iwB$7R zg`|E<6V3m$EOpQz)NSD7RzETM;poh23P5ZtKm(+(ZtwI{@jkAqS}32oZ7ZLfMzgOf z8<8+#YL8Z!LY#Uxbx$WYXJMC^(}I`vJ2W2`b*f&vR~};77lHTpC8xUdFW{Sd^$Oq; zCU_70C*J;{`*x#0|L>zFV)GdIHSk>%_`&=92Co57J~j>@>ylY%-{))NkiJYO_YeCV z^XvC5M!YCcpl?hd2v&Se#bVrSWqbfGI?ZchZ~lD$V{`gx&B{xX5%PWBdzgmCi~&lz zhSn(Mr4mxz#uF2tKR$ona1e*ck#k5rQ@}mC51s3I8t&p_vDh2#2lXQPjfW4OxIA0z z`A1ZfTE+iStS8~^5aF1u^z8fdS-Qug*^pk)VTVS)aQXEX+nX|mrYXS|7VE-kl@kIb&!5B4$-n;{7IMPi3 zp1r>4rb6Gg1%|(*_-0IrO8JsSi8pFbZpW%&suUDT4w?Z;uE?bLD_;ob!=5%-j7Z#u z#5z8EUY@_}7KQk#cyV!-kc*V+?Zw}w{GG%9w|s5)@r+1@>V7TYH{F>P4GBAir)4tl z3HKJBP;v3~12lOONUzvENheB|XjdxP*o?%Z{T*Yj+y}tOFr#^$bMlMhrmcdE0 zy4N?O0+ge3=Mr2YV6X<%5jx3#RPcH13OH7sfjaPh8P_Ju&SLp@Wj;qHTn8nY zp_@PLn#~*mHU@8wWdXK>!)nbt$d2NssR8a80YLlBl505tX=!8r)!aRpXw9 zkch{ax>lm-)ZbT1gkdUs_%evq3%2!0A8IiwWIHF+C)-4P@cYEQT;DmI9SS zd{LriG2~1`10>MLr>t=9pW9Ua-c8fU~f8zY{Gms0K zuTe!YGRv3a3Bvt^NC^vxeN4}YF)FCXMuwH=S7TYh00j^#(&-~H)niPsRCzY;DR#p_ zC&bIzi6-*^Z_Z(@tQm)kcl3RvjK2-dNpSb0WMBowS|8uQAOO2U7L-2&VibekE9$B# z{mVH&9e-#g8L*`H*V+CruKqeK%J&QVMrlR5q)SplN{1Iwg|C61 z7pwEpO}@uJz5eyp%9tYTpXDpp{++85i!rG>V9S`EMf6m(BkYw|57R85ILk*f%CU~y-0$Z)9>8*o%EdgWk>Xd zuc*R7aNq_cj6I(00ZIA0yjv{O$rgrZx`-74Y_V;8u)QsfNgzXg22)g;&` zCp=Jn|m;OmqPXAzu7$r$gt_WT$~MV#rJh!DHhbAE%s|sg5-ZQEc)H%O6e|_Uv%zbo@&bD877Y@Y5ukG}`y3EJv^XA07Rj z*n6J_MxEpHnu;pGv;KYj9-^=qRP2 zi}bcV#`k0g^l&PE!7%Gi{R=~HsI{FToe*Z(CPiT{Rmi?v$Nr=wG2)+Ap~57IP^j0C ze%CEiK6hiNm4n^V_WNd=B3XVrU&EROZe>s%f$jme8l-9lruO@?L}<5xhK_rDFpkg^{8$o^C%-6!@Pl6&L7iwt zhFA4!_Q$gryHZ#1Jw*}7ZeF9#Omfx%E3=hdtXEQMlf0}$d;F1s_0w1Z%yONp#^VL` zgb&qbEvk`Nzgqu9BxahT^B5Ex_2uL98uI*mUSTTqRIxJbqvc;GnWA{OO4;{rsJl%l zih~-{V)u}twU4Y9H_VAyb607xRvSKKY*=$IVbC>-Di>N@R)+kmm@FN-{+y80AdA7^ zBEdtUQ+m#U?GL0}n-H3%yp~o5rKIHvSEln(oPKBhLZtpL-=xQkl!B4BmWHtjPuSq} zXUo=B)D0K?pGOV7!6%6tdbXy)YSZ^IUTV`OdZ4+e>!BdE_hS5fYSfJ1`P5>QMl@0e z2DiBhjt_MWq*RY4LPm#e6YDZgkUnC&9}7>NnbvwsHyh}xt~udaojkOJQHj#A@hW<1 zmWxT|QiiSdUPe;W?}>h}8CJ}5YdjWfO{CE!@M&7^XBu+r(510O|8usg1OJ)lU21uI zS6zK?viA3*c-t;b^!MB^-|5PX?R2E`j3flQ;Ri{RNYa=bYXNuvl>k1(a%!3?vQFZp*x09#LZ8>tNt^F%gnUh9nH)amUd8S>+R1=%rae zyZbnGgweDM2bJl3y9MI%vVoLxClq2G)iwhIRb0y&HRG{{V|$XXTW5x$+v$dU3G0RL zq&xB@x`>(c(~5=IyC*(C1)s_OML<$aCIP*j0hHgOx(=9F2KYLClk*x9bK~1;_xSR} zYfEB7mVyP*ho!x>S0q{UkJCI#_5_+=ZP4c~>u1;Aazi}$*%KY-@CkpV6jk0^^~N4M z59PS_y} z8t96=h>(3O8t(jyzusVjQ>pwlFG_ogtu4i7(7i5|jas*t)w^s{L7p<#ZOR{|Uhs}$ z9Jb8qy;qZBV);$AwG>OZ@IP8sy=#BgUK*7}V6{ZDfK>7u^exj#X*{nqF2n~_oKSGu zRhh9~ei~UMwB#3!X+x6^paygssj zB1?^F5nD_h><=B0pj2+5b@OE0VfRG3A-h${ctdj=L+{jy8}U(SuDJ^Uwed4N1`KtF zw!mujlN*40|LP_J;x~ktug8AV!hhvUe;}Oaj23LDMW8_YVVx+kh+78$mlL!ckYS!< zBqcBcW1qoxlAkeV^GLP2Jm;BD8Hl9CM_(P{7KZ2H_&_`5mA zrc!J8xr8IlM0eW$K`LM8-NyI=@NW$k5qL&(v;zKV@0@B0&qA8IW26f0dzn^bt*5x= zQPPsQY~``eUPRWT+AVlD5aM1+adM!~T&{7u{KEy826R{C)RH%bQjT!lrst}_>(Zzl zl3=((gU1`T-_LY29fS2DN$pk=5be$k#9iRd;~x3?k`^-7Go>( zr3wyi)G68woZf1&5!+W8iU&O>EU@o&iY#cv0DUqi&P*%QH0D=mx>4kz9>MpEVPLcK zzgY^W=16gHR*W2{h=@$;uNC>r%jcmMVPJrz#=dj#G@KGDH+M! zQdPj%*Kx{!|B2Nf-=oCpxI5@UK*N8YfPO@h`8$MY$MS_nONN(*`xKmUv3gn9ZC-fd zWNJ_!{P`3bg>3psaSHZ01+RW7iYBV*S_mB{alH@mkjE%k@1t4VkD$lhwhQBeCv?p) zV4g;wEq#B|DvVbtV?u+O!U8O;@J$D2xJ$dcQ=SMtvu#-PtlUBkpn5Rjz^Ri58?1_2vvC3MG(GYu~l;6faBb`iD*+F0tt3E*Q3Kyw8$ygGuGzdk}SGlfCt%Aeif5n;D zlmA~R`!OOWiC0p@67X}!7KvssuQ?XFO!>)cg+c#h4mj-_F*U9&!lUOm`*~KS2%-8n z#fxL2ZzB15@efVFBvq2zf99>Ep2~2-E`H*11n0vy+9$B-DMR5g6`vFHx zgz<>nubZPT1i)?rT@Dp8=dj9t$AtaQicFRIf3%gUY8|O2{$e!yRbn0L@Yb^Q-hVtR zwuYz4X46plq@GfZ7^f&?>RV)yzjUOF1atc4P})+ZUgw18T~GvxrlP>zS5B)b(l6S?fjc zcST`-neP&?y3gThna{i65=f37C#Uz=Gozva#5pP&Xx$ zb0wM-*7s-jw&=HS#A8^lwC>|~#J5&O0@Cik7M`Xs5=WiXQsU`F5#SAFROY--a@-g|rC2TVmS7~Qte;15 zAgsG$&@MY;fs71q@?In_o_Uy(@=a6d=$d+TO~swNy=9bqKEM(h)Ozy2CRhl0-Y04}0}h!+R&U<`9e=h>%$c&N>j?hTtyG~Td^Mm( z3=pn+11!dwHv<#buqX>zc^4K0l*|b55RZ8GCeWUpqNrXwkbUKs3zf>@)L~r61n@jA zEsYp;q%RI)y9oc(Hg!wP<1t4cCk)a2zrdN^Dn^dB29YHdj2ZrZ9P~@( zN0m77XV?FK*bI+|N5AmBe=KHhMpX)z%Y5uMjVJIUT)|keKzmc!`0{81KE4LXAdaTTKxqW1=4z zVkVL}i9v401d;lvs_wJwZd`sScx2G9S94}$3Y=*G#w3?_GPw0i|IufEVL;*p+TjWE zZsc76(c2O74VlV<^VlY0-0!*=NWP&?0wTO^f)B3zg({fZu{=Q$;o#m<^b%`H9MhI8 zs^^&#F}ogFWF^*YR9{ujBmR8sNyb_wp}Xkg7og_TwG;t5LI*rw_<(+srm3!rl5C}M z05Z-aRyQ=Lt|hV7Gn=kT@}M| za7RAC$BjzYQKkcUQ+?Gs*H1pv>{qf9gKMA2C<8|b$XBGAX|BLRJL_ggU`u4huuTyF zrMR1~0upm}y*+>J0#Wpa{>X}*JD`>GzfimKZUc%itN`A5y@Lv9NbYB$}2q(>hKc0fZp_r zOOl*o>`r_n)gSvzI<8NjJl~99-dBfjKD#~l_Mlh5VA`C}LwS3zJvQk3SVIVc09N^j5Ba}j=@k?C#Z2CSE z1$F@d~q}_Got9I25ZdmI>S@$-Dor z_V|SWcYfrVU(NIm;wx`hmp10Q{}pX+~`966(d4R^*Y zY=t_>jVRDEPvYz9f4#LBm?oh3m5U645JWBsYnDib#m)-nTF|h2{~2H=g$j&?yBC0> z-2dT>?!dGb=(Pi=S#xMJO|T z7u0W)`v5JYQQbkvJX|rV5!1lWPMX8|8m89n&0GHN0*D1bO$iRJssmQPwAH|XxUJGP zQ=Jd{GeZHt|DlpFST8_%je$&>+kmHqcL(z$#iPWhkz);1(C-g-6noch8)t<9bv=i6tJd&=QKJ+_&KG#l?ZMf?B#j3c7(RC&ICFc3D%F4>?gg3!0`Mb?8YqfVB zx~$$91%}<2#t~w5UFJCF5VV1@O<+>ZhPyy3X-M1yUwmsC2w; zgc3>A`H?wcy(eqlt26HngKN;1`9CW)cFRqzcMJIwA5;?M5>oVdCTLiAihpjc0sV8;bLtDU^}tHMnN)8aerZRV?b9 zin4EDJHAI%*mFG?ldt+>-tw^Jq!9{yDCP=t?BK@yK5A}3o?npLt1$R_wAfh9YVC{)L@Fm& zls8Uzra=P~VFs8Cz-#)qWbC^Mo_U2S2xER(smnC|B926Y6w~VDBRSznYj|~#^tLck^m1W&& zoiE07Od|{q=*fgxQ>p5?^_2+MS#w+=LmfRn6IguYaYt3gv4`JI_w`I_vSm`{9_9(! zE*>xi&YHj*yb~yp-+mIbNUwdIIEh?n8Dff=8uTj`gunn~4aF)CQ}C{Beeocd1qe}98yNJ+m}1Zeb~|5h+B$s#aEpFA zdf|?C z`Md#kYkr&$zfqUbhj7>;BAX8%wEun*)xoTq14hmOrFYJAD8}IC97?shxlWAc${m+! z{=sD&_{Q~a7;t&Gl2QBiABf}U_XznTf)OduNQzG-oirWHFHIPZ^W^x;Dk?PC>&pIp z_|Hi2{I4?L{U1$l76$ac&t2t3TNovxcWRXTu&=>nmGfV>(LyFTU$D%7y(Bp=x;QGY zS5k7So~M$Nh8kz(exyM)#;tdj-JZZv&F8C@ik)uKrXTG@r#}?(?a6d`M>N^@tL7(U zN8HhJ5T)#h$+FODZ8#4_`%}G1JsOYk^lF*Zce%dcIp1S=4Ly2-NuHBy)`k(iFJq~< z>}4TCwJgU`J1{Ouw~^nK_pi(RIaZbPtc2_A-_Q*jY$)Gk)h}etLYv_|B;|V(kj9ES z)RyAfxDil^6+{glCZ)?6h1CXpJv8Sk{=#d2jgrvf!Dutd!L)V8{vfaW92r%8dk4l8 zuKjicWz{98MI==+imY={6qzj z<)Hw}Pk%T_(_}9YPt0{Ys*7K-8s^&CMIron7nkZ@(W$81=4t5L$KRAW7KU~ie z{setu5L+8;KP#gUw@#r$#QIkHZ=X$0){!mTlRr+Oog@VLN#FP~5&9ovseI_kNPcP zUEfnfJn-GieC)f3Y+X*p-*3DKm*rg9sS6(SrjJ`aynRRQjn%r_sbpk!{!fYPbG}C2 zs5#7K5^NYg7styHu#(rTicu*!E1b+6UvVKfZ#93K(B^j85nFXo5ON`aa}*t)9K@F_ z)2&_;6ZBGWQVCat7!6J5kQvoccYhjpqF`lj4*S)=Uou3T*x%90=0=|>yv}?=rO_3H z$f{d-LWA{=NmHHs7oFj(X65bwkF`ay+gAo*0@m2-tmlY_PHR}Ht|~9U{E(rQqc5uD2QN&!oWlEFSDUoUoOV;x(FZHOt40 z7Bbc_h-)Qe8RzmIcB>4`z1pxO_w{ol*S5-tP%My5TIHp&XmU^_ zSm!VQ*;Y%u?ArVH{uB^7td2uK3Mp>Etvn*P5OXiQ9U0mj30D~{;&sSI0wa^4(aX_p{NiM){z1E(GIfSeSKQe=Vyyz|8fef?-f3Md1F;; z^5%;`idti-08it^@OE`{Mzb?jQrT0^{>b30{>Xvi(M|bMZL!y%)i?80q8>Jr(>D6} z(FvC5DCM%o2EX0%v$YZM>n@@}{Hwz4_%VkWSi-e$iK&AwRfaa2_R*+&4jCA2+j5tp z2Z`G}eG>3S8E|Z4wpZ!|1`NmPX~IFbLm4Kc@XQ=Kj6u!Ch}ltpoeO3KNXtY5L@Okaa~|)N@v{qVat%4hmS{J7`nosXcRo zL^nFhovfzKb!%RJ!ownT#|YGmG6i9!Ovnzmy?!C^wS8wT;G}KFr*Z}GAOtKG0MM&r z02RahxT_U&=iGPzq_lhF1JoB{yaWs@!RK)RH;L2EW8lM9Y2GflXG>J2dHI9z9-z$8 z^*@o7QrGqRzi?~<&~74(w^48iYz74;7cc?;BRrNp?@+bI<{@b2bi$1XDdPL>N(TMR zY#qP$8KC+6>b@rIhcFx^Rk9%i3-eR*7JsCF6f_EBd(L%-O8{Z}{}LE(CCw^4k8aj$ zO&EdG7(=jZ6B#VlmA1Aol*->l>z}l+?rT?WMn)Fof1g$c7X~p~E|L{$8H#nW#7;q+ zPDv&~3FEM2it+l1kNNksTR#$4%GZI9G_5qif3~p66`+pZPvurd<9Em?T6yRrWbHh+ zTvSr~n%V}Dbjn|fgf{JE4-8t{qScn0qcl!#tnz6ImMT9zdlrF7v6ahOI6E#$uq zkA?x7n~yRzdcT(Ggwo`wnO(Q)DD&^;ET{d%LO9IcnL~{xg!e!v;#|`>Zg>{MDY50VlVn`>$t-l}@7RLX0wXPI$JYzrdRj3P9kph_Es&QGYvjI%3rGtOD`4E6*pnL5=@2oZ?Oy9O$f-0xIox=^J_C^Sj~;H7jlB7QVFo7Zvx(0 z%4qdi%KRWzku}GFG}{b9UYW`gm2 zv3qZvS<;VavnA3WWtr`FB!cjrKL}oTgnPC=9URzuBMsWT5|*APltcd!XyRX(sM5$+ z>w=76ocg3hr0iP)Ct(*&gFu*TMxzX}$_Sy-Pk+KOWF}?m@5yxAu|nS^)!auAyZAiE zB1MeOT1wIpQPMnnmxs@=iQNUJLIVVnqZFXh5lP1UulZw!C+nur_l;)_l$l7LtSg<< zV*vsLlG4~+ZJ4#4B&xjy^CSTT1rpAaMXfl;LG3X|S-A4xq{+7Emy;@mNo?0Re>0!4 z{@YkDuuQ>DrJH1?mdtvN8}bCZ;x63k1z~6GOiAd>fCgq#fVDGbe5}}~C*5G#^K`)T zq{x#?%p-_XSZ@D}B)~6Ijp*nW;^mFx%Moo7^Vt0(OEkCoq$6?C{3$}5pw$3Koz#Se zzU*vaI)7&|-l_8IOGLx$A-B87{@))+7ZGco8U-~ym z5B-;d>uVPZ;vw;+;i}J``ol9)#ZF1Gh!nX@x7?B|FHYVuO(2lVFskOM>-eT;h%kll zCM;R6h`1(cdF&_3>ttR1I;?Bu&(Sxj*KVytGf z&Amyd5iA`qQCQRASe`;rY$~w;X&TW0_7k0EzdurT9Y9SX&hJ{JanalX`K^pMZX|Mk zp8okD&>twKp=|~P&{+`{1Rx1AQnvAM>0O1 zE{I~k+xUY=eF09r1-T>|O#-$}i?5EMyQFj8K++N{ed)aWRhcNK6Ix3o{ynttE{O*Q zo8nNoKJHVI46)2ko{;*YUA)%YAGGqi+iq2?Le~jd4 zV+dmJ&lW`6CQh;mU|O{%RIk@T;YD*1558#EP}Ti_86}K`kf!<;+jaTj&LEB zKeK;RnMt*tt#3qnocD-+%JMk3JyF}F37SfF2G(nVGcyiFfbSaceijLw^#FdGK-)Qh zuwQSp=8}WU>^9MsCAoZDLePy??d&#Y=V3fUo>Ec@=Alv~ply}l0&MoH2T*y%{2kd) zewXxi7DDg{1WzEqe_S>{oI*V?PNCTsr%+xW05QIY%+5Z>Z3b?C!p>+9kjoEoD`381 z6~(*d;8!-U7`j>fqa*pwdni9`;=%Q4AU%}#0o4uyon4#nOCB$@TC*NGS{1J+Sbuo4Nywl@B( zbq93doTSxA@U$ZLwt==aPSg{|b(sd##4xzXoO+SaQq+eddtcl`Ujpm70iue48#x?e zA-@SobOWM0>fl%;R5wojq8{P=hzX><&zzEJKE$GX59!Af`z9WL5p6EU#7CD5=o1b> zgVI+(1@SjM=nouwA#ldoYSUvllp0vC%14|jSIzLAqPE4aeQ@R0E${|4JI_SaIvJgM z87F0$Ed6CBuWzk#$Gf(2f(PH=f+nf&A3VN}cY(inN}Svs^3n%1J&BaL=z)AfBKu@K zl2#y1qSrl;d&f;}$rM}KOAZFj9dR8W-g+1rrN0e4Rwzy@0%DaQm$a!$*uuAx1SU8g zlu@}`1x5V1?m>Lo42A=|p1{N+;MY_OeAE6vdt3~;w*|D#aGlE})uPs9!Ak?Du+Mtd z0`Q3mz^@H8Z}J7e&Bth^3mHCOee53`qOnj3oPF~H|8`~x3oBs;L@=^J@{pCFeiTgAFpL2pA_5%gFMY$GS2by7(eF} zq2;UNmrIb=*Ha4=!VeP7Y_?Y`%~>Iu-Ba7oLNqHE11XtY>CH}^Y)tfL%926!M@v+z zMlrjsB}ZnCbA6ZY+=@+mO-{vC@(GI>UH>pnfU(s}TE?h#ni{d15@s{nTG`QQdvBxy z86F_>7`il=^n*^&?D~sj;>+e1cqoqqk`JUzgKRQ8*?54?aUDaqNnhN7?Pt?{&=0ev zxFyi!Um+nIq#Sd1M6FM3EahI;-ihZB*mi_%BwaVNbbM9)-CQj-3rs_UNEJokpfPmS za-{YUpwfi;Etx&iX8>a)kkkVVmhJ#W7<{k5-rUfr_A!ABvloL^-1%H9i;o)N`W@8+tt0G|J#Dr<>I=J z?=JT~NA7$}NI~(UYypHX-vz9#oSdAlq14lI%G-}Ot_JkfZIrh+uTtIpT@zue9Yr0x zwMO8DDp9kme$)m5=QIK!4`1@@ZYIW#1#>Eae6cRiApf2ly6|+yds@|Lw#dFt7to z*JTqRED>Uzr}E}tqlTP_eBafct`&*8jp?KJxg?KGR}6rb|Zah?VzQhhH{cgYv8z!nnTc(_%ZA)pfxU@o4> z{n)mA0a+Hf80iaysKkA=KqH=1=0lUdBX_1mgC@mIVl$0sDhW<8oSu}cJlhPG56C-* z<%*r>Ub4_>tk{b!XmF4}u{|=oP?H-9E$AeXu=n0oB4;{YX?Ma|~r)08`L`eC-QV>!{-^^<94VR@(YV5bZH$ zMjuYW@UDZ~gz7nd&#(aHf3wE4q5~rbwD+jaXI7|^suq=!8uu7?0Gcp`kl#Wgx%3lx zcdE9?ug$l8G^ya+r16AD1`W(So6PK4PvJ~W!uP#};~$>-jZJTdUPt|@FZ+)DQ^Mkq z;F~=Er`S%MS(i%e8=52HymrxsjuVFa-PP_t4w-w71bs07q*;41b4Ry^-e_t1IfF0>_{1rgZ&#>H*W8k3%U4AvGVS2MGl)Su5&7*K&3HpEjMy*( z{jP^U*CD_xw~R-*4mv>F+{ttJx`q7X1DMxh<83MMmYpfunk=~oPciu@K!6&peY_v7 znpk}2U|@~K=ye-KH|MiFI-3L=3T}jP^EA|uL(?jE;wx!hJ+h`77Wfi45jP7!tn?#q;bjt6F!meKyJTFzSReRP z3p_!{__d<4vs4WecL4OAR3}24*RBuv7A27j(AEP}?+-siy8L<9Tct>^Pn*h%;HJ^+kf<81 zs|>gEN498^KRa9J$MOQx2Bgp!B==Cj{`Wr?2uB~J# zrfT}jcTXLrIUdzq&aQ%|;g&P~7xT71SrXPb0!zYHc|Y^qq08Hu9dA*KSe1Fo92z*s9*#LQF>l zr++f6yu9+qr|Z9*tfe(TMSKYFIB@d&sQ(e7@$|yT>XC991kyCY0@CTPQ1j<71n3u? z1K+hxvVo=rmW>xdR&t|=`j|?H=TIC_K^!u32Ruc3G<5-zJ%TWRQvKNjmx3>RJqJj4 z;QaxBTtx8Tr~-T#SkCeT-s)NT6hG3uI-tcrxSxRERWadw=K@ID0nzs-J%G8i^&1!{ zjr`8k6wu?$pGC_!Q-~m_op@KzZEivbh;9HKWR0i_=Q#{4ZT;>Nq~?hB5r@|fz+2?X z1vM^hTxz6sJd*d=+(Su#GtVWWQ(#QF0LVn0D`2(-z{Z9F!#W^k)i!ajLUfo(DejtL+897L32pT^eep+@TSWi5t?ye!C#!! z&_?7hBMnf2P|vc>^2l$u4qm4wAZVx^S;K@X7~#f6mM-LvsD&+$JUSxO*Z_JIAnJe{ z_JPceZ&N;is@~XvZ<|j|RKq?8Sj)jdacJ$eaLRKqYBJc!FF_zb6DlB`>hZq~3Y>)j z+2$sx@c98>K%UgKftdtQN#ET^WFowb9f@dL08yH;$p@$rA1W+k{oN8fH`8{w;-27> z?jIxZG~SMz!jR^(Gy!K)T->&8nhcDRJ(PD!%Akjy8!!J#cIKHre(~n-xsWx5y)mlU z-Fe)lHOWWiuYB-V_U*ruliJyMzUtEA5;G*Hr?VHNX-w<}4-Y5qynFW7U@*_X|MJ~q z2sOi9#t_wm`QIP*{iiCF{Xa+N8;im`7xxA`tda&~x17{1j`)P0y8gibia}y&+vWdT z>Z0<^bwr@^I&q-#WVal#pazFH6UK`7OB1Km-cp$-a$>s=TMPmYO(g!&Uu-4p-nYKG z|3YNSPN4hPTU_gF_@KVj=|gETR*X~_*^{gg91Gc!ZvD2^4+jlzs<~{%TEdXh z4JWbAqeJT-zK>RyIF=|N*}pg^oGfmCSLzTaFzMPlFJ8J?sjI1~J0QhG3#{Iwx@vi| zdo>(}%Xictv?hed;N2@wf(3RV712<@4;7aSXDl#dH5=XS_vg_9p%>IG?HMr_5lN1t zvQLzOGH38KhtD}{1HVG>EYG0gn2l3b0c)QzVOtgVZ(J3$3+#pqFL~3kXW-Tk0+WsL zp*C_lMpue6M=CIw_ODF=Nr1Rfn6rYDrS_%dorSSCUYEMQ(i=?SVzfdZBJD*6)-LiD zpP0{k8ZTQ@O46hP3lE^B!YLe*#$<8Q#>x>KE3^jEbnlm<6&w=S(8w!zAAnGfM$Fin zo*yhG5$)33&zbL%ex)X>skVm>WJTC1b4v79BQwd$C@la{S)gj(Y%CcGYSUiZkQw?wr>$=f9Pn>TTHH$&MC&-{f7 z(Z1sAT4NoMm{87*W}tOl#pT;fDNm)VhZX1= zb=u|`bAF8N+_H^KV2?UNz8KJLH;R!`5M)7&Tkg-h*!DPveo7Q^exIm85hnWLKECJ` z!~J>B6FTKjA)5t^wS1epCtPpkv)>kF^czf;2~2DfiQsL0(%6VJgvi(=7H1l+HYOsVYMv{BHviz&X-6z~paAu1z2#p+*2xX`r*v{@;5nrgFa&UPY z@WY_|%kkpS`R|vc-+a~Wk=QV$D)tvqRFt)N+yRD55p3yeJ|D0;&HOb_5x3Sa^YpfA z=`LIBwFaO%2H^sgzO2eu1XBM%*7Sikx2%WK?B)Y~K9V`rLV*tM zu@u#%uD%ZYP89f_vo_Q$<7(YqdhU3vU+@gB_~@D3yYYdsaz`=Bl5`9j7Xs7r>I2=P zQfM!RlYi5)xw$h13p##BmTuL6m)QX9em~Hj(X{$bz$FUlh!-_bV|6yE`-=SavU?l2r;s2RdLgc!ELLvAvS0@RQ9GAZ7yi7}ql+TOJS z%3s&!^aHpu345^*B6eG8jocb zjnUs-`Z|hzQ2tXPAP+SiiVGCY*L_VPl2#fZ z8lv^9_Smn|)=99tjI={ZXrCf5-&tfgLuih2jG5YGBEy(}RKSrK{}x#>kq1Ru)Pm1% zqOI1MKtpyleBt>)bx==CAU!+avqxIf9+6uu@r@JY_$m4gKl3d&1U%f4ns&lqR>;S7PUsSWvIa;5xG+BW{TAKpGtx4s5H%wkEWOwnwT^C zKir7YVoxAWu-woRFx|#Jq6>XLdgS_AG@gJQ1u(`bymMV%BX#T5`|+tyh?$qEe`WXHG>6l{cevi zW4Nfrj*gn?UD{dk#?HpWMomkp1QrDHEkD%96VLRuopZ$Bdp5^}?AK!OS-Ohh_wxx> zqN$Nm5{Ac8P#7^q^+h18 zfzxvmZ>DvjXqHmn;nu0^qke`I%}&|NcTcJ4MdkKPww}S|Xqu>^)twYoS?SAOv{GgW zj8kBDe@ag=Hr1^Szuuzy`fcOdIOUNlfx_O%*Z^ckA>znw!!_;H%@ZLy{$hI~jW@=@ z;HQ51yik82#mR(mPSlQVS?)mHzuPj?=UMZE_JQz>cEl~AI4pQ?S>m__)&vu*OY-oQ zH5M9RJ6ab|y-V7kL3F=De*Uoy;`U4U{bGoI`Fk$eFqy)Z;4_s3`As^3tP`fLsLg@* zeX2KSYwGR`O@3Uo$Gp00XX`I8kC7)*Pe?YxZ$PjGs~U~32UJ3p;6dr9PSSK%EL|Ye zLKVrA?uFLpd=V>NHdXM(;PLcl=Ht164{sJ`hR*f8O>N)Q&7KL-Vds<`I_6L#B;HH} z)qU|_gL;p8ud8H4AtdezWaW>~*6W^tezf9WpUsMb{crn@*V*_dg373O@6JL(S@vr8 zaU*R@1pDA+oa_BSqAe(S0wcO;1KmL;LpXMa;w^3O#wEwquLtQ_%;vS?8}uD>rTSu# zRr+|LyfCKejJHXQux9biV`~Rp_3yAz7A8r?k)))ciyp?pu--OZ)%Huh1}qLv`<6Eg zhUs0H0qT8(X{rI*zNT?H4d;Om6&G;TUK=>XcCa&xuM#V#{J-k>FDD$jO>Q&;NcoFD zA(y%sbL_?K?xe50q*`wN)7Ja`r39)kwktjF76%AFhHotF4NCd@{{?l5C!*b^-LMPPjAc?{ z^}b-d8xk3~(qKVIMriBWMr7C0a?(wZGbxZ%sl}(hPsJE$3>noM2z|8EtL&GQN=cw# zmOQr|krRs+8RxX0+a{9Ys9+I5TH<`&kdK^CMDgG+4ih4#gD*P3t_M2!o3Ww8@ExE z+ZEh_s9`YmN*SV?7~b|@>vg=&_lq08P~)$^UM-4Di!Rry%F+Ov27esM){#?-|G>1~@>v-3ybx#!m{|wII&rZ% zZYRmM`@LO6jC?=`j_0I9Eg|0BjD?BMlPmQ4LVh!>U_BahFJi8LRym?Et1|gham9W2 zA)7sR?fC27Q(3aj5Dj^pi01-OPdr7CK|)7C+ITygxBA6k0;gkwwcn33b{ts`GN)=QjTYYI zX4hx>Zn|B+a8)DrmaNu7mo$BAmdMuU8FosocYauhxk%ox-=r`vzx4K?fcr+3WPkTh z?9o;&)`z~Ap63KSu$T<#t*ZD&F?)yezv9tlU-`KWikOZysjniVVbcGYc!X6Njx0X> zlb2hX5a3Y(OkHF2u4RsLjgpZwPQTl*5gbX$p-8AN+a&%hK&3fpZzxZV9sD%nL{Y0t zhblOSu%|L)$%@bPGg;Z6!MD_xu-*}!Kym6*h!Zr(?vx|-uQ29gyxLNtjF({=s6>SV zrW3d%8K3HIG6&nR9eF<93q4;3dZAUdHrPR!|U#}uT z0VKRNXhH`{&|u|UXS$sst$;8n$c${Q((dnyFULQ^1RLhbHR2*ZX$e^pygo5TzZaFJ z^hx@4;JBfX^Z&5*R$*;)57aO2?k>fpP^`GSQ{16Iai>r`E$&jB7I)VcC%6@9ad(Ql zOEM>Y|KE3>b8&9C2+2IjWU^=PwSH@Dsk1Uz8$G7w_odIvUA2{2jG&0@d89e58hCKN z-Y^G>!`={@Rbd_U{jl&-H zS{M%Mu^7kooS(0#4S5x$O5g*GvZB?52qhi-Ug@-Bd zZj;=SVO3W|fAME>R#0Cr(B8cd3)X*QXq66^5VUoWmQd?JU7A^m>RkX*5b*fpjbqZi zrwu=7hGXxSxm&h*bkk({#_HwFGJ5^~wk>0Rzmo%?eDQhJY?=5Y4{7FZe?xZd6TLTn zMf+Y)+1ha0&h38E^};FPLwr*W0LZK7BKY zhV~M-1Q=Wqy0y&8jHxqWgfluyopqIZ7(?P8^hhh+rAANjAxyIoIz8B=%|^cx*&4n% zvDe$rejIdEOl~)N1y_LODXjEdtCer6$e4aN@hhRwf2Q^MO@U|wXTZ?9ijm38T)O&M|j|U4(1$eJ!b!D>S-M*}k-@Mw0xSyyD1=riQn}UTw*pQnUVkp<&u=Oz zPhhXuP$*6Ov#|pokWQ=;Aj(cWbEjHCk;erQ_3n*QqbPt5^q&=Nwj^1ZC=~kOP0AFX z92ns-zVDZ7&F;!u5_~8p!+98_`Q~xm7dPwIp{ZMVty5jmhU_sP#cEyAmf^QtBeAm` zYnAd^qSrBHxGcpW-R-M(@YL;eD~SnByZzDuxbH3^f2%+tP(i+47dW5D2g+>A%nm?% z1PJZSe@`5bn*4i&jr-dD^HLwYD*C)rs8V%Uw-A9Njd*nC;Yb3#5#?KJH4K#J(*!Vip#IgHk|DGT>f0R-KW3rZ z9K5@t>1pe}3NaqJ(!${g9lsDb@~@3`TuP*uL2&54sc)4f9f(4h0XOfLso8LchYg2_ zJK&$ds;RUAkm3W2vu9JnmG)8O3Gghy(n2#WuC!0zC-#SYub-7elgJymWP&C|sEB)J zvO~<)v(N|B56%+sD+>=dYNBm4a*gAQh2$PaGBItP>@Ju4uN7R&NK0M^=5IU*IAGFl zt_0=I+ocbJT*bIC(dmK!H>6AO68jy@^PYy}dD$#QOi};5Rfg@1Sk*1uXlG5rVlHNse0)d%Lc{! zFA2+M?@f>~cj-1r^Z;lvgNdGxVFM5g>Rojj1YcqD3OLKW&!ce#vp5@o9U?m;%FxXg zM1+d_b$)0=m{xQBwUl@+$EdeDEht(pOz%<>_HMC(j@wNLSg)=H115#btpX)_^=Jfe zu~_fm7w-+W?cFPL3Gb{4el_(~00(&AzEIO?%+1J|T8Zg@k3m#0wbhjY#b6j(YA%D zJp;DNa9N)KIO3k!TzKM5;UWaqG6aKtg*5)34GSODJHA@f7EOQFB$5pjidA}lY&v3M zjf%vSh%$?;pymrj6)3zx8aTW>%(|=2&B>&5HJ74Ky03kGH^PcKR^z1FSufn(he?qj0D!HWTG z%J`SC@IW#cSL`HTal$*ag6s*03+{I?VG!~#e9*L|+pLY?VT!GoII~y^hNBwvz4wd7 z)TWsW;5b&rvs`R`?K)VogMB52Yb=|+y47=8ZK2^;=A*)P+ zy5(S$?t6ikDQ38@5x}WN60mYIdyEX-$0vG9+}O)XeAuRM9ZPancg) z?}N6@fSihGryI+Qtt9d#1&m3MF!FwxWLV-n-_wm+z!gtU2w|%z{Dj>4_f7THZ=2y8 z*_%e|Sy#nXoH2mCn71^p6pX#{*Mb)PsU&^|aebLsL+uNyWuGc;JwRu%7{)+EqV!A@V;;z}2RzWI_Ts0Q$PHUB}EB3pm{XdQO5N z_kco+(FxEN76$wH_s~EeAk4{sRh#96i;2@4-vL2&ZJ!x885_uGyZx2a4n*EaI!$P7 z0c;s~qWgsR!TgWJSu%9~9>)M@U*Q9IJhNmSIF^Q5bgi==fMAf$8bH_r$iEGm?b;0p z@WNYO*}7(0xx!`+GBUl-z>eJn3WI6=U_+k2U^$>y)e-}d%(&1z1qN$?8MN3fz|%Ut z5?I2X2AtOX>49&mhBFX=b{#_6e#T;cyEI0UEMv4J(V`kGGZF#J()~Or7PtmP3!Xtm zMkBx;q0gsJqhG9Zza@=#$v2`Z{M|9m|Cnc~aFN54cZx)mmo zM4wc@h-)0x*J)KO+;7bH{~-1Y;Hn7zHLCbZJP=#Ox6stdF(tMsY;Qd_Cp*Je9W9LV ztz*{I?~Q!e1R#5CY@CA|ba6jgq_`{UN+T%mcb!rIf_-~VyFg3G4PaYiasgAvqo4Ae zNZ`>X3vF;Mv)|6XoCPY}uB)?&+i zl3Kd67V^9^f(Bo@OD4#4p)^31CNhLAq(FjljIM4NejXIHhU*(zb{R~1KK=t!yd!Lq zK!W=u_?@}m`sIw!D=hmY364^cpS3OG78zX?MI_P(){>q?KP}Rv_#Z^CqT*_f*W315 z*Kw9(_wSyD(?#>hTEsmicqDnhU0<~F{iO1eTZ{SJ;&~($*?PQ+>7mO~-mkkc-IlV=P#o)fhWrJvMhuZYo64wT*Fn%aoG@@qXw^A>)MO z_8DKBU8X0(>FG}$Oo6^9Ak@0_V~TIYbB;e5og+d{CZPLl6YNRO3ftC|{M-J}+(0bb zY=fI`^gZw_c~5zmZW%v&wLj$RJi+C|{F_U=>h1F1kDvyLD1`mr4pi{mZKBgpAuPpR zn`YTMO(LFa>;jSn{iZ7{n0q$!yuSKcGa(;DTJK8N=eli-ZyWc)0%M>bj`YvC*l*BH zzXP6VqxWF%n9r|$p06K$hXSaf5AxuII`6%Rs9j4x*#S(3dz7`g(AwxG~@2U$X@#_8MHwNj;^^7a7BoQ>DXyN7xv_ zA~dUL{rKluZe}X*HrQ&YLmJ1|G<_1(`-;)uXXuLJ4Tt3_DQehid_n0Ce7vWH2<4Q& z-vmylx37n@rONcQKeVl~o*6)p%r=ns>7e2h_|}9F4wf+q2icx4$&Xk z<1W|7c7ZKJf8cO!l%T3MH+Hbt|Cz}{AT~*W(;F(;I6f*QN+^^Dtk|PGO2*4TMe~wS z0n)NxcKt|`2N3b?ndw!_Xw5c43jG1##{=Nt^Xebk3Wh;^_aNa(N(RK=uShnLO#BHr ze1$04t1Uale+JLdKpzZxF%ob%HbJ(`?!3^2Z>RbrP}!RQhUgH0@)vB6Sy>MHnbqWd z+BD2KrB`fBzQ?Ahd=KN$)*WMzQBy1pxGr}oHHo*~)3g;b;o|f+3n%y+#bmg^aq`m( zgTuJw6_{*4i?%DLLAa5cp=XLnj>73}gYDnRr2(3*VX}?AcD*WPsiA@P%v&@ql#87o zhraV8nHNzN0yLWCUQZkgAAL-{tP(nDY}dbxgi}1WXRGe53;qgk;IyTi zR(!_UD)cVvsf=WjYsoU)Ft`U!(=7~TqU9xH-?4s0f^_*#ricZW>yrn zZPpV$CmeM$lW{P92qx0Sf7+f7J48?ZY{|(T-w;HYFnH862Mx5^xEX;lJa*O3^&JhR z^=gRm*0yIlo^WpLl*-K)uJK)}8>EsuBms=SUwvSgYs}|!54Fx(2yyptO{_J|UF*KG ztoAQv_Pp-CgjcuOCvAPVsqlr;2#NQBX0*J2Vf9uGOuKqmd2qeOv(%m)ua0`uAn$L3 z`Q%+i)t{XB)rpL4#lf(;cORE%&3Y&bf41rkt*jMR_sf9_9~X%3Q{!)$qPIY69Nw_O z+~VQ)Pg%Fvy^q;(xj1wz%!4$U&9Sx)_EJxMxi0=fKhs;^Lh8f4woa;Lb zg_qdF_kVpctehPiB%%90G~lgkH|z3gxFTr6bbLVCL4fv5U_zI5Gldyvz}!xkPqc!r zk8m7yFVM}V*`z}2>;8ssox{)Ns&UB=`;!UZ0Y?evb8-H+F?rF1T!x`m`ov8~O~$vq zQ!jqk*XFk^(78n?0g*$mx5VfxHFrj34eSJODRVTe1sG4_;?I1Wc?o=`CMhO}lP|`d zKT;g(8Hp0)=H&sQ$Nuq~U`NEWxXHn#yM7#apz78q^5m<}>Be4~ok@9=f0M$|L}c;0 zqa7E62XlnVqEm{0hx*--(H6`2pQs~2rLHDLiXRI47o*pLx-v!UOt-EXA8Bo0(|I^X zZV6`p77SRc-XvrWLi6pAr8(Pri1@-%gs{#o7>%(ch{hUhlAuq3q6OD_Y!b5Se`!j5oo7gBH%vFGNR_;Mo~3 zA|U?+H5AP%8u;X5*hcO^8oGo(5)MW(De1SncrX=%-ccb9N9rVz=Hl3fjzxYc{r2E# z{urE34JZ(rvE?~ME)yc=O~EDLxaW$YZe7uGXf{73-qC5F2+?_P4z@HPzF2LJ;bOc+ z?H*0X6>uR9PXS9-V>##q@owzokGC9rN*bx<%W`}FM}8zwRN3?Ra#Vhh?y-cuoXa}* zvw?YD&;3Ofc-qcFu4K>@wSJOLXkIfbk&^QVWz1g;Bv6A&w(s_A+K{$Qkf+pQki+1$t$&KZ7MK*37bovdU9!yP~(x@Po0B^ID>w0nc+Xh z>~N%Vl|M!Eb`$(2RL^_fuXcSxb?-icE1hj8%ST2%cxb6}dB;||%kqXP<*tn-0`!@= z3MZ+?DZ7Tdz8dsf;52l+o^lM2^L?e$vaam`Y&U@b+bsg^6+EiS@G7FQB#+h`;zXuP zKA~3QL-+N$g$j}k)(PU&H5~hi!SY^tWnX#6eiv=d!Lq}qSAsxylG`J}u1Vo6JmDZ= z*jJ-C_mJ6cObq6M{bDP0eBq$SzNetz_eiCSk$s%^!C5)nooVl40+VY}i>F2$Q4Xh~ zqsg#^O*MN#s^bX*b5Y}_>#u%D68O2k>mo{@FgA(wC{=c3VqoGXkXH3kmb3FX^W{Yv z!ipZ5dfbkFOkToI&hi={%~rwhykN2;-w)yD`xRK-@^PH-`}tta5Ql z)k>iRGDB!>F+^nWVR1>7hQ1Q=Bf8aZmRjWo8&h5rh^I`*XgS0jRQw3@^>%IIjwKsX zA>>QJ8^TC=8;Um6I3t__H-w=h9{VtOWtb%WU}f|&Lg$~1?Nq)gzZ%jRohI~*LfE&} zr$4&fCv!!s+WtlD79g4iYCd5+pFf7}y-3pUHC(^2g8%-*(%a^KwvDIVvu@LbBDeC9i#A$` z^d2Dm+xG}y?F~?8!VQb)BsBuuGKhvNXH$Aw!Czcx6W}$0raA{OO-Os=xvsmYB|k#^ z*-bqB^<&AOnr;EhN)`%nvf`3+Ehe{@{DQXxI)RV3xRq5`ax>=BWp>Lmk95&U_?^mM z4iGvNU4Bd)k~pGYn9P!JCfua7%DT+S^ZJJ_J4VU9K%3`C@^()hFiC_SeDl8KC*uPd zyDu|IDnK3bA?Sxj*T0pA3_lOg2h2O@0v_xnF%5~O0UKCX!107@@4pC9JdoG<%q{ak zS~+0xI471-j|b)UxCcPw7vTAStG5Z)2G}vu*8xeO$_*cunkxBs1kx+OtWFRU`Y#3b z0;r!rvmTzuJZ}XW&kb;*A0*$3dAY`~f15nR!0LEY4UF69`{D5bFvN(;7|DXBWI;zI~kPGtA@xTbYC3r_tG1Xehtcp-M5R5@HKN z->b%I+tc19{nI$s#=|=rJuX$%FGSISOY`PiJ?_Xa)fB&lJ7-tS@KwWgrb{mMBeC`| z!t-fVHE1hKSCB%l&Aek~ur40b^GhqKs}7df)K8XNfk@-_j63WGJEXb9&?KYw;v?!Xavw)f*KPySgWjtv1J62)T;~zddYe9Y^ zjz47HihDNhLbR++kx_Hs@7q+d4sfS#sjMXghXYk|&HQr38JN9oOyq?CK|v~Om5Y{A znGY3F^qo76Sh_(|@zwCmOYt6roP0O-m{p2T()9*3gKG*1lsX=4Mx2~&K%EXyw(c0d z3zA|iUj)3+lJ|ig%Q_$Is9d?|w|OO9`{}g~uXAGIarYx*l$C4 zp*k+USW}X$cUO!=NN{Q@0tNQp>+Exz#g&wf5uaS^ag`H|v>j@MzRyzXI<}Y2U6jq|Hf!0BJzvG4-~j(@?#6{ z`g?D6QH7axMN7dKLs8*U1>_RVgAM*u!E7e2Hxg#%L&l6 zenN5&HbuAvoLg(Xd15af)ff=xw9Myy6-@{_BGzf2T}WcIa;Avtw<#H#cq8Ax5xX$Hx9W-phDLh2!{s zipj}#jI&ghaCs@iR;Fv}xyu6;8FGtEu@a34n{7vOjW|WRWP?TDQg{yi>Sn%3Y%t?;-r2 zZ{WMr3PlRV;#D{gJYTolBzxS)@T`jlnf17XV}TZL&T&NRR17wL_EjrlI9ffV3G}Uo z3=DEJdnr^F9 z=1}nB!--pFs>H6Rr}&kvDgB)q7^z>K2n`g9vB|4Ox_&B%B1G0Qv}s5_1P8U+??XIR z_q7p6NbDrN$P%P7pN;4fb)yoq{5l&4Pq5TF!-9h2?+NWlh z6$IfzO2+zU9%uF&@-J?BBPD`4RMLahJPEHQHR=s`V&*e%lt!NqPE#ux0^ag=y7Y{D z);l)a-ha3VN$^ft$*%L~t0p(It>Gc!HemZuIYL}i#<^)72O}{)qqZ+bBax3i|3QC0 zeJ%4UflTazvAd5!YTY2v%RvmpEuvOCm8cvYCYj-(Hb$&XL7Cgouix^2P{w*&(Xo(y zRo-nXlUHw}8}|C}G4}J1^&XvOcf&+>zGNhli<+)JGQV!)&fD&3OwpzAZpAZ<#!y`Y z7AgUwx|Snps9VuG`@j4Y|I>M;44tYL=)S1mQEsbD>Y?eDU*=5_hRW047~}i3nb5hE zk4ou(w=7Ga57XemVVMtxGu?I?(-F%fqN|dBCf}GB$x9Y#KH=*U2ckLJ>AI1aGV#7T zAx!@pr@xPT_e6-NRHlTM({MDchB0c?jNo-)gAxFwX~!s@+zOwHr*w4}ccDTO&H?OF zoY|q@%_b+m!DM<_^9m2KmkWD!Uuah~o0k|)PYTT2guZlF9xT%z;NapqM2i1uPFJb7 zwQ(ggP^Qk1MAH<}ic@*ji3y*HE~F;*lvRasiQgAE)%@N7?=n(Rg(;9LW9Z{-E_8ihSJS>5b(@@OO?3A+ z+xDgB?on@UE7Wh3(kCF|Np23_#09%~>rAQ@J{&z?QW3eOY^-nZJg}q+VdKr^Z^_~Z zYx`yVAd2WR>lo8z9iHomgUTEKk*cClS#1at|1Dnk=%rsp^LOz>Fvng4Erhfrz{u^{@V3SyCn>v<@3RNu7SJZCl%1?*2`5yk(QJQYljqO?fh zoyw0n!Q2@ zQd*C- zS=w#(1-$zGaj!lkiOA%~Ax7h~1c<8=G4HhTMSYc?{!B++d8aVZq$fX$$4TA!BWVtQ z@|BHuHhpq6jBF{7x9}#Sw_=*pZaEE5Y zFT7p>gvFR{RcG+_@%n|RI#T2gy@iK~#Fe$%Rdm_ktNgE(8F!~iykxj0eDDf)ucim6 z4#2i@s|!pt!_0<&E4}fV_|)XSCXgT*&5E=D?w8zV(5Qw|LzAUWqAT?2l=eTM(_Y?u z`Z~!$ElBk{v9adU<;_}v#>VM}k@eLBj~^z{s@pjn;rYh8q<>9oXnyz_2lDAQX>vK| zHV$LyuU)=sOqq1r8lKeZz)jgTFkyf7fM?k827T6#NS(BocwGktuRYAk*p;kL4*v7@ zXco9}OD^G?I}BGXeIGCVCebF8OdqjHW7*EDMgw)X$hPa$Ky}U11 zg`FGVlF%FdQR@7cJBw#Du%`&BHZOuZkPxIr&pXCFP8g0?U96P361Ljltr@sXOt}5| zthD=)yAan$*8VA~&g$Nx?(FyWjm6dla}$MDB?O!V$+PV;TLea#`1G>?)xHMWrji6yt$7cROF~psct-4VKwIaNy zUy^4;^mwr9)h3OM=3DSO`WV1(vZmhvTRZ=24tRx<`glY72F(e(nbZ>hj;RUlSd?V_ zpd5ZIzI_sfmFpuD*i^B^ua2*Yk3#$`T&Gne1MBx9I!`9*4YQ=ual=BN|H&`OR?}WW z^#H+5?x|+d(~pFW_!%B_CZkmkBmt{daVUQH8wA{(8m9fQY!_sbYs=&!BRJXM;`N;p zI2QAPB*@B?&>z+_1Ln->40OBPuO@MbO|lzlht^ra3C%&>M9TrAV-hI%3Y|XG*t0A8 z29C@)0fVnM&l?ulBBh;x1xa&~V1!`H1(2q?SPt3v{W5Bc;66}&RYYZ+;Rk(wvsqTf zy~Ze83yZN^Ov1Uh0~>VE1>>A;Xol+I4b%cJP2v<*Zo$o$UGW0;9|7!&^k9qH#Cqvx zFs$E#ZwXmHqXBISjQ?wKK{*>1NE`oht!?{x=7RP+1ZfY1@eF~%h_OS<^%bo=H4AI2jQ!ZauxI|3i8>!D$u;eDa7c8}V^Pfxi3FgujYy5NR zkbYVecn-pXVZ%S5jkcuu0S9sFcKhSdsCF7JYq6iUq@oGl9*4I|HOp^dRJFi&OsAh- zwgI`~;ZZ1w?|pK6EOBQ(5X{f{54G8e#H^=BF26R}?VXnZ-ohV?a`H)w#`C%D4;Aly zauRq6$`Zsm9^1b4&}l|Awm z__!dusj{3n_qjpKezptaY?a2Wja}$@EcEg)IUASayi`k?hbc;u)ev3*BbKSikT>Sv zA6_nUODj#9&7Qvvn5cX{pZh*J8hg_c70qb-XZ)Q-(xKI3rzw>sw(@+^aOCg!-FB|% zuvV11WZj6|-i&h-HmeiCV6J_t!eGt2OoD=wW~-+ZeUju)OqxjDPLr;>Hz3j>NJ5sh zcBi*&ckf}-YTNnt6Sn~UX;CWF(j`TtoFEkE)wQ2aS@l-BGi1E`5d7R3Z>naxd6 z{Oh*J&vg7>zPZ_-YfW68cQcp(yvG49tR4(zzijA=I5Z2`j1PO4VphhyNF=3@1}iWL zPb_jMUVi;vlUep;_(A5qvgVO)tTj5>`ri3J>jKMNii{s;A+3EEIj(Og zPn!qQJ{()bcj*_UAQNlrN7jITn4C6gSbJl+y%otBsw7({r(C?{n_J3saEWEJ*s#re2C0-R1M{bf4H$=|zf9NwQSdCMF&_N){VaANdK_ zg{C#K?d#^Kbtxj3N2v-r{P+IK1sF$?LJDx$L;Djg?~MXLhL6G3@xRe-+@?4-aGU9G zl^>;1BcuDlaEp<>!Vl77(0FD?EdI4>tRIJ)o!XR+nplAni2bA@WWGUHRBHXXpG!_g zN8M&$Ubh@RA!XOGkvO$QF91Eqv}yGE!m=bwKCWOAUMKaFBNTr4Yz{bOSxR-q?5u0FS@H=3 zNm+*0f+N+~tErxEc0%y;&zcUI18yFouMj_?**tKFAj)Bf@@Vo0N#vt!XF0N|RhM^1 zH?qHWk@s2|^sZLLe!^rfsZ0DDS|Wmev_`|4Lf41pYcq)8g^R_vfkkkdd5+VsCl&e{ zxUI0Tw9x8-m35b4zTdF+|y=tJ}M z4X&IFcE7CKr8r)A&zbDT1_zYk$YfGK-F4%IT24F=4AKSi$s`L#6>X0aRmja@DU*BX zs+0FRj=`ZhMDkb)HJQZ!9hl7I{J!?OD7^RZ`B|<4-vTsr-Ft4$r26&^-S=U7e7yKV}RM=}Saqk*hF zo*yyU(rk;POM4EB1n_OX0zpDG_>Nllh6onYy``ioAz zo=ibID}>Wz)b>7UP;hE7EtK_Y&P_6?hye2n$lyiHas(>n6@D0j9bR$)lIBZ-L0G?`I$bMVCz5*v z=^H@PFA&Mr47TbvAoK6l737V;v@7uyxGhXz3AB1~1`Zn?)_hrqRD{XBDAw+A`Ole6 z-y%lvzqoxufYD9SO&&O%Xl_ezw-xl<|* z+lRuHJ5~D`_-3d&2AW2*Mv-;KdHm{C`K%&_#T~ftSDPe!FTj8-O%mz+M+tb@ug)3> zcyu~NFX22{tDe3CnUAVNC;wLhRtOVTwsHLOJNi)HK}6-R*9U@^Zc6Jv1e8-j!L)~{ zDsEyiqTI?zPd6HBm|MWtIn5uyD%K;&!TZ1d3RtZ}!h<78{@i0q?|6}WFZ)aVJZjou zL8&_KAM}NSS0!w70a{nu3pc7som4a-lfN5$Jk)fVYSgQ z)bngH7d!I%QOTA>SC&Un%3Lx}mU9O&FLwsyH=S?Y-_5AGAOVA4?HP%2dIuh-yFq#0 z4D0H8))INER-^_th-1NsX`gm;o|DPA{18D|oPy#>r`=wXXF>*iQ`y-}c_m}2&kFd@ zLwgU?-O>n?EI!#G9=*unH)-UzLwKQB=xXVk@zTgFkhL~!@g{7S+Nj#K?w!Uu@v8|z zen5N?hx&g)r2k^xN{QcS#%Ke*;%H`Of&s=~OUtnj4^xqBTVeOY+5;qpK!&U7(G$$G z0l}){JfOdr7{3Ghw?H!FrVOd#EIyJ?*C5SKyh5(bL6fB&s3!e=JY>DjQ`rI?!U^EM z%X3(+1!hdf`bMZJXmPA+&gYTzT^U`MlYCyrd$EZaY<<^84df4pR3y z%1zeSvmN)`Ho~gbB(m)lw6r%3&AklIzGcEUIY3~I(L94@?GF)ZhgbT6 zC8_16D!Ko$SD}QhAz90X!Lag@p`IqC!avRYNoY)=K6SHU&C0 z?ggfpoM(Y55l~~pOBmPfg6x-PJ6YS84Jt^T{_)$;XHbX!189ti^9KM*2upY+7lC{M z(z(eq=Gz4t=Ix39b*i91z_pFfb_5UaRp;zJu0U^OUO`P50(^Y-{O+9ZZEU7c9$JN% z=;i>np(}PxXFs zvu%dOs~*(hkLvsc8iUC~qbbA*H!~F;u_V!0PADHWI63s~mF~W%RAAkxRX=FK-OdNx z7!v>s?7)hHfb11GUIyUKz-t3gQ38HgOWiQ45Ta_gO3i=13Sy*G^2P_Pis>Rna+T-& zB({mfNSvb0wp4|zL(%^?sVVybNN&VxmE%V8_bL^{HPLRZ{je&lV2+1=nM#rmaB=y8erg>+*h} zxoKvu_V3u0!z^)+KO^s>Tgr74GMV1UI}-C|@Np7M|1>G(v*p^?92oeb!d~P5A;+pe zzrCRL{ma1$;U}Sv>};IO`mfYTMnx=R9LK5N*ka*jvAlZQ#og@xTnND;JTkMKeg!EA z>c{jKc&U3Mni^hgYG(eQ16ia)s;-2}S7yG>WmjeohWIRAPsw0CG+ERbxD_`ncaIpO zo*H^heUaCSN>Obqz7p!*mpzxzRWyoKLa5KNzD*2 z@fGmL{v+lSOl>)R0kh+~XU)KPJf(<&!!vrCblFb`U4G@6HW|UP7Y7s5otcMFLjO3E zr1O#oL(E#_P5v!8-%dC-USrx$lDI{V>!vq-vvf@JGAn-+-D?)9*%9m{y_^=CZ8&FV zZ-D6+7CL?sEmJa?>duUMmU?NL1Ioji9t!(@RcgoUFmr?1@5@?`cfoKOtZ{z5T!M7V zrJ`!L+tH<=FVvZX=7#ALEg$t8lTyOgj*HjWjS09Y=akcue@S_T?83*SU`Uq;_TD2` zsB4dNJ+D*ZMf_5*E41?XvQ{et6AI6MUVil~fTaE!S!?L*V3nk#(D$tLjQFRgyU^y;E@ahABM#ApxovEDz}`%Uo^SihhBj=&Y@XhaC5gu zvEZ6INt=Hij4o_EJ-Uy1t|P#wBAo-!J^@J*fH|#8Tv!AAPGUz?eD9hevyOAfKcJF2 zHkU$5#!d7YHNuG|)pfi{n~5We)WELR&d(s%ugB{`024ziTL)d>;t#_Wb0fi z*Mu)c)irIDIyw%|QYFD7benHsXm{)c-q6!xo#lSudn@zE%Kz0rq=sUKo{?*&J6}g4 zRU&jcxK~nfU&_I|&fH)9+&``n^ggJ)7!KZra|W~16Z-l029fa$kBx8fqDgsx2TOF4 zVvXti+DzXK#rx^D??8rf(zSVByBo(Od~Ufbc&^B|s>eSjQDv9Wc%KF%KzvJKI|*Gp zZTxFlC7fpien4mPG*48=Jk(LM-x9x4>UWycCS^|2tQ=XmWYix!HjGZv#7z`9h2&pB zq$vGa;olmYbok5lQF*z5)ZFL;S4`?{7U$4D$($n@&Vc1VOqzbg9Hty*Ov5wJ^7!4jzZBm(O`wcw%;laH{bz=%~{>Q8Yo}VWpWTcQV1%)pJ_Rez7Q=i#ToZfF#7@&2!KXhN}B4HCsQ5baeUu*5^GwI^tyPfY&sTQ~gigQb`>o&CEj-r9i zxCp4ox_h)panXIliOOtQ*OE^Sxv6G*%!eTCd2PRUPm(e_BcA~dLue^IHLPJ20$$?U z1$m+mLIH;p03Z@zg7w@Q{@{O1)JKDbdK9E#_j_2;tp$uyT7>ZZ5jvn?wBaq(-!E5c z6Hy$ftn!j;9<8Znsh!0CW96L?Wes}(%OZ!N@ZgAw5PyYl?1&1VLw~<6)he|W+JtYK zhSMAd$$SMqeLHo{RncI553z+Vlv$X;k*yMv(R6G@FmO64jyrI z_0*B^ZcCp3T}vr@I33_C%R)zRc%c0WtUE7YLK017Dj^y5E-u1|IOZ7r%i|hj8!&HP zoR9iSur2#t*BK9c%;1p3cJ{XQFKXfW*=+LM)0+_z4m&3ckK6f_r1BuA7itZ)i{i#9 zYBjam@nP|+uK~;+xUWe&Kg9*?j{jsS<+09Pdqtd%c>Sy@xlI-LyR^9cJz6rO)hes<>_;?+b;5k`fko2^EmKAFX@I``44*8F_RwC0Ir_ zl57J#ZBa?PA}A}NR74|%g`p>Gz%b?WbEd!mX)^}lx&dxX+^{`&%ZP#3Q>~wG zr{nC8NX!Xx`&Yf*CQYGkH^q`@hMd3;sVUqH)vZuFid~p(u!Ob*)R5kT1OJ7gP_L$B zW@#PPuq!0tzhVg@eyS*{QkNY&tW|r3V37f$hOc0e^R+6@*|G?|)lTXgD9T74D2n~^ zHZZpYZqAz(HC}V|j#@_GUbDGu@?9}`=b|~%RKEXDk%JVi=ZMXKs7{?%6zx>%-@C;5aa2yUbkbsYSWJi6L@Na@h`bU83RezSG zS-zh(3jF%`GfU7&%)PQqJvn+MB>i3S#(B#BfC(CXhLJWN5B2wxdGcYHsXRvJlwCR2^b3rh^wRfBwGa*2$fj^*75e#R1KC?Orx54@R%_ zr`1({e++WDoXbkXgb;lmwPLhyWp*wa_Sdk~wr{qINY>;(?c%~| zo*Ll!$@8yDegc++_); zYAKVpCE~>&pCJv!^cW!@DNFzq* z{s;c)-ymLHP47zZ)HxjL(X{*;^u4^^$*oIx{*y1ZlIuJF-S@2r_bH{-)X2X8k#s)i znze>P`sN5;HRIR+i7b;Yk-izs(nzmn6$(Fxpb+bk(P_mB_)Br9BGG(pv$im?o?$}4 z%M)MlihEq8x*jSrlhuz=ey)mfhq}264W(|n#Y=xckD?d(R#LKSE@&t;bQZDK@duZ+ z^puDFDLFVF>%6GdtH4w#CS|LPfW#Pp8B8TBu&>2|_>T4pR+cU)yj^AV`Q5%|VUZo% z9>?SCL%*1~>Y+9pT$MxrQo$<<&Tuo?!rtNYk6@I?yq=ig(x>EFQ!M^dnX6VwocsGc z$A0UvU6K-Z`ODOW(6CgQC=#m;Z1$G+(lzbF&7`4LwJN8lJ-Dp>P55UR`WAtBf$L6V z>spT(2l>1#oD%Piy5LWd!^sD&+eD^QhnCG@JOZ#TY)=e2;PG$#R{K2i#gBKzIIC_9 zI~j_pqZ=Sa^j$XcyxcB6Mf0>Sj?otJJS_U}aX$;RT4XqoVZN~_M`NM8WV$R_|Hr;b1E+8s68qQNeK)Bg=BpZ0C(*ImbxiAp+QL@pJwz3HBc_w} zN=hrPS(BM<-zD)0QQ0e+kJ7wjutSd`+HEIQgghdfswxgYr$(I6jZlccGdC)$cG_eU zGfS=TtTQixA#c)gJJ>HD1lcMh+MXvNtvjX@JqdnnD|@j_esFM0>e878!v>6N!A}M_ znehDK?8R3@7wXS~cEy_OWO`&jFf>GcC3WN~N39#>u_yl@0PjE$zmpz$b5v2=?R zV~4eH#~PP200g7?CryU7Y4c@AP-Na(l#R{81gYm^0mfnUeaAC*nqR ztZB6YWP{t(vo>7Re#LkViXTDoV=AExSI1*fD9B^$W4NC^#LFs|Xr`&eblm2^HTwMRJG63vJzZ}q-;l~kt#8*SpUec$Lcsdq^pd9yy0ZPat2d6fGCNk-A zknCpd8M1CT(R7dlhtl{c|Cmksdl6bTh{vWLs6>*a1C=6Lz80c4$l>ljc!09LkpyoV zvrEOnBZ=K%5V3@A1z3p4&A?eIh_3#Yno@8k*X@nf>Jb^lhR4V={auYCu# z*QLmG?6}syV;=;xJJw|O;gR^x`-?>!?5YjNWaUCaec_Px{CDiwSMw#Az-i~dMmyyH zsnagxKXM7H@qZ)Ltg5TAh;gRjYJ2cBNheD!`)>kOrXR!>%CkP5THZmXUAIEEP}gOP z{7ts(nSN=^F3hc14m7M`jy)l8stvM=XLutHvWZ3ZKQ2x0(sW=Wwq~Qr)z~EN9Qpus z$&`(?O33amdHMA4X^%MOd;&>0Ws2Nb-X$^S@a|Zkg$^qs^b!-h3DyZq_zeocj(!}p zXccT9Rohakhy{AG<-r0lLj-qxBYb;#lo?y@d}7>Y=hh1#+Kd>EW84z^Jg(E&=f}|h z#@L=sZpqV^uTEncH@b2hIDp_Z3b&0K1AO{2BKOh6{7B9x_6-?Zj)|nMV15ztxJR}e z`v#}!$evtHXZ&#oK1VmyRF7{#&>@+GAb_U~8;E&r&b(kBvB<|gvW@Zl^h7@o;Zqd0 zVTZWTA*vQ7o^*gR6d@Xci^FD!l@xR~ie;c0>5>wdp+}New9p#nU*!&xG*2IG-{G25 zAxy(CM3AiTsVuY)6&hqz>$NdX`t&1K3Li83P}Rhbb*Iz+Mb7G*Z>4`x2$7%d}MkVkJHQF#+-+aN~r zL?N_=?MD3N6G@TuJD-fnnVLq(PX~?1oq(A&HD#uNj=^gSvAZpCo$S2Oq347 zX)}GUUH#w&-?Zpu%+77yaz+zV5ZeCl+;%+U#&qqexqI%I=8kJmtnrR}eX(P~{nSURJF;h{&Dvti{f`J>y>#5P0j4r4~{KlB5&Di4pc0Um|Pfdd6&IK0Rkw-$cUVs&Y@C1wBEC zLD6IhvQRT2U!>3i=m$SpAfwO{qZrW7e)0jApz>1^Lc&b}!UBztrZ)IQptw|*LVysD zQSx1!3`PaKIIV(JTu?5e1gmCDQVKgLL9B{3pUPlOuFR0ARiIT;`U*sqc-;{atB(}R z!nGfS(kR*N$~9kjhG%Y5+m;pLniF&6p)ssCqgS<4_~O0reXJ`aNnAf~F3lMdYw2*! zOmpl4we-v+bHn}r?0su@+Q!!K`}tYx`43Z08$*gQ7XvXi_9JAH`nYYHTYGvEuS5o6 zE5Q<#gdNxAzrSnmxoUI+jA`03SuxUF_T2WK8SUAZz#fvJcjLkpu;V(RV~xq!vxb7F zCtA`UjqE{~WC#}bV%d(Ou*8YWU75Vah)5?dEq6G!#pFn!b_6P9x;a_Tzg!PHIAnRHUVOw8C=zP|-k*Ouz${T(rw122?pK+T*~EooJN?Nj~_B8#04SKE$DeCr}X7W9Y|5=2BxTQ zOPg32I@bj)h3{l5kY(XeYeV8OpGVO*)zIARLJ`>dKnTw?yfbluqw?r3qiDsd;f)EP>4R zkcf$|CYBqSMs3gSkgvYdPaOKt;~2+fo}D2TVBQwkNin;yT`2Jw=tG6?$twEmLegkK zQs#yO7H&OiBvNcq?(7OtM`J|EAY6y%sT^|nK zMnPIU<0|NCA?&Ds$=DHHg6GGTdKRwKW4Ka};L5tOqn?5tbsanE_rZ=?${`+t)S#i& zVbA(>(C;+LVJDPaEgOEfu({=5e^~VXXPG(5zW=G$Yc*Z}r&eok?EkGLG8m$+0h?xjB~GoNF*wgD=2bhwzRO_RCJ+Fq}ThFsRr15oaPp<(6M& z;bH@RFHue)?pg4^bP5sCo*BlsCRI%1wS4SH71y3AAT)(9UZmZlMWo}yq#}|8UKoAX zq+=|EGWLHp%=2i?FR1T6%P>Z?@U&+bLJ7@y6LpD#Rs90~3r+W!COwbZHGzrP2ahj( zJw^5giho|TxHcjH<97x_2 z^egHPBDz|J@sd8ln7Z5X4u=e4C4m?^u1Dz6qVuCTrW_KR{9l+7@=%T z1goDa%85Tj5f2wD3swG-v=gOVkcVzQqZJDAniG-G*Hfh?V&5=p#|lJzI+0b|;9L__ z6rV+;Z_JnFmT8!u;yR3dq%H|iqP&z0l7BQ0rLu8O&**c@K+lDSDaQ4O^{^EI@GZkhWxJ;VG_sYgm%$rXT; z6Ee7F`dninOLQsf^_0drJ;Q99wBKBB_1}ts)Ibc)0RAL74(dzKPIIWb$~X;HAIC&) z+gdXA>V;w4pexwVy(CKcB=;NKx<0f0M$RBOViIjNUs5IC+a6RZYo4Re7rg{GN+(oY z@#ph+kzdgLlR2XE*6JDNcl(YhCN^Pll_=nwKo3TX&Uc#~I;8yK4~F5H5+Qtc_K`ab zRCn21q&{B5si@&XLAjmYI#KSqifFYwM0=jBQ+*ogsM+Z0xOoEDa6+fse3^hYVQ(&E zd9IWQyH(l~Xkxb@Kt`2eTruD!oWl zFkhW&WZcL=L@iP=ED%wNj22suI;7H;bXCZBfAZBJ6~LMbu-(84C#gFs zrPEX$6Q($#<{0UNP;rcwN>XoB%FV6X80%0}tx*9PvqGU3jH)xLWAH$#j7df?Rv>(s zW(gxz_%Oj7hAw=VY7>KtAKq{Mq4qOeZtH?dLS!1p;DUz&!4gbn=puztGa9PsAV;gR zI^CMFjSR)cJKmmiU7}9OpNa!iWG-jP>wo#ytlj_0MVuOin6VVGJ5D9QjyS8 z{DnrYuM)8TJ52TyY}Ry9j8E1}!KKLYsaZ0m_-NDOGJL{R34%b0DWZYRkPX z9Z}gl7Tv)(rI{pOBrjD6Ef<2ghffu-i-O1yw2@vpRpGhWhs5UOHF#DMk5W=DNidG* z5({HR5pbi4Gj^BEv!+P1B}0m3K>IE;HtiX(r7Z0kOPcXW9B!claM>roK9>kawOFv1rMW8 zXjf+BPLWtU(2w$P*zew{-v~3Za~J`8u!DdU=p`kcVRxXGh)S>t!L=w2OKi@PR@3u~ zHAt0D(;VvV#|uRfGa3#QX$O5{>fXg99A@N`ecQd05>vCoB&dWOL~K0i!5LCpP1|2n zI@tbN1^Ho?RxW{b^pI#fN)K31q#J2D*~+fw)r8@q!(Tee0mxUB?wz`KrDoSCR}VXB z!%r!hiELyK_TilrikrppT>-kIAWK4yQVjQIb4tX;VJ##9mqsVL%p1(r)cxeb*~AJ| zx7t5?Lpz;vY{i}V{N0mcZE5Y}#|_y!T4pUYyjt>I0p&8HoRc0UDRN4@-;$6+XbTeV zl5{Cal0H2MH7wH0cc9o~<#9Kb?*coqOA73frwm~o1{L7~ed6(B z$NdDc@GJ5<0ch(FF*kcIP+M}TGRP`^|C8j9m!bbf$0wKm8T0*+~uR7x^ zlL6*HbN&BtQX?{R0PsP%O)FN8NiX{uvUd%C@mYqwzSzv7` z>}5Dm`-_J~>36CFmwbq`_T9QCLk88ii`)TX85jQ%?x{Njc>a z;VgP$NY2d;4QJ{JA~7ePBhJK$A~6p?RGg_NjKrMmlyRnh2GHEQKNlMO z5%y&`2E6*uzG1vRroLO1QvvG!pbVSAHukA$7*iQ@os_4A^5Z<>JRyf;a?xjl9T4;~ zznNUv*#POeYoXQg`WGq~cxo8`rB5%6SJ%BnnL4)mCVX`PUqya%ZLvoxw4i=*ZHX6_ zCcd|}*dvW+Ut3%7OJn4>))srD@#0Hsi$2j<_MNo_zbv2p%G%=3kTTmag8o8bj`bhy zqmgCOkk`fc_uK|8sS>wX5&{_4>yD z^IAg2{=XW=&%^Kj8H|}>^c-{Q zz$Qeg-k}f4Bk4gg{l?}?;(shd|Ere&Xf$H<->%g+^uLafe*d%J_kZRgAc8{K7T}}< zIBA7Tv5={v2)(?Sbc8R9PB;VhR{y*}k!z zi_5S>cB@sH-5NU=ZikHR5mo29WSQz!2K2@mhL_6wwe5$_z#8+CSI%%arn+L&!1lMP z9!CeE@6*me2WX4Yt_%r%%MB)$&sE4K)^Lb@tyUWCrf*-7Y6X8~+XLr!yF+R`ZtS@B zHg9UJ(o!nghJ|k$0I<4%fi*gGP;kIWwNh&a#I^!^+i|zOX;_X;N^>bIyhj=L1^`3wVdPo=X!r22DJ)D&%n*-RaWc>1Fb z;-FOVS2O4xQxayp_{bYf176&lhA<5sQWd3nwtI)I$3$BFjFUL*`9S~>tFR+y;}yD|uZ3KQ=#Ve+{DwEz8|6^|0DB&`dLC(XSlR`w7G zVY4(KtwFol9_9d{a%pKGb{kLj8g@1akYYfFBSdS;S2gCaL z*L_9K1X zfG?OUVXC@+E#2+dx;G&Gf=F|SbE;Y{SABWh)=|Od_Skra_PhjE0}SEWa`O zVA1^gyJ?TQUEqeg(cy!kSoPLimI(JC(4G(nBY=iN3sV6}7}AxH@LZ($0*H9f_(hM4 zIDcq@y8vSsdlI}31Z>Lkkyf&$4CD#9EcC^RbC(%M(X1-PC=@aUt|7w`O&zF5c=s6>H zPw4lYK8tDGVfJfv`Xr!J$R3@bH~%!0G&d;u=cA-_8g&Z#qLB$YwW1R=zV8HirgW_G z!Z7#DyeUF$RasysRzR;ob*lG*JLSk4nT2b}?Snp53pXiNV9x0>U)*m6NylJ)wKCx_ zkmqqD@5(yj-$D^bOLIk0iMW|ir1i90>;qM_?Zc8cZC~H<&%^Fv%1y&;<)<((xQ)bg=23bM#sHGG7-KB)^s>ktNhrzhoOlvv;KZ_Kvccae zM%QOqSDULDD$d_b=nucXNG~kemkGuB)l)`s#+*zj%rBkN3nTL}p(MX z9Dc>LFychG-nq!5&r1|jk}tWFP$eH(<{P^?hA4x&<`|{~)}u^}57Q!4CakkE0-J}# zmK(P?nI&97WdTScwS)_(Ob{`0OSpc@0-%vx!sXLqsFQH@v@Blni>IaVDv&pB?Ymcrb*?x~i=>UnOdmPGhD?x>a`g*k4h<|7b# zKb5x3u6%u+f6s`~>W42%iEzRDAJmgvR0%Lo|EE>c^?&NM=H~uqEn!jpKj{%|ZY4l0 z@|V#BOi%(mcCMo;fRTupr#Q>KJ)Bn+P}0+%bUD2={V&koT>Zb8{pWhSzM=oMg!KDg zIn@tv4NQSAqzTAW{!?yxLsb>O!nm>rg){{@u*bLhX`sH2@VZXfr0%dSR-&h;wP`YTHpJ2! zl5L-|^{W-ZzGwUa;qo zN#~$aegtKp&ZUi{xOwh&rPFZqatgm4qUB3dMVcROty=wtdQJscOG&2kJ@rrd0$6hY zU#P8l`~U84LqGrTwm0@a*Anv1{|_PrI?w5UE=kan>zIHip8YiePkeoHj)vi@r^YXP zD99L?Wv6ePw(*<7>z6Iwdz+8g^nYYB;Ldzk8#FzjJ{&1HlO#MDsUKPXl8=uZ{!dSh)5{GT|AE4S^uLrBfIRM{{HU ze?4Kt|Igt61Io)U$Y5f*>tX#%OJefd$@SRRlaTn|KKH`VyAs(K;chQm!#oUJ0Qu6p zq52)(O`atwS}2%U1N#lAU{F;QC|s+4v$X_Ml`T}8)8ss1;q`xsVa;3r>kZxiL#qrR-q7T7-$ zz@;tt0QR52c>6-a{OkYnZa{PWf3;%v|Le8Q`oEU2I{#m=;B5SU{?)=V^uKcdA2t2^ zzt(PT`2TAOEA#(3&k^upe1V~Hh7Eggxv(hxuipO$?Ekv_Pqp3L(EnP(TKE4AQ|5~c zi_`zA?LQ{@|Ex6|8~R^MSdstFFJbq8SU;e2dHdV(B{J!sS|i$dg+I&5{`|ju`rmCe z_3wYU0o>64Is#)az69-8hU=&a8}WpNQ~`25WfGOX#H`F{l~MwsQLIVGNO6ry9HGIk z0N0LJI+Q!|)Un6ISI+OYBJK%G4IpPElKLX=$-q^O>1h|MT-Y9uCP_XojJvYx#n=CeQk}MA>u9>SvoMB2=rV}#p?I2iRH{MKE+WNIm!<)&yCSfKPNRaqs z3kF>lyYZFs5#hhjubl9J)|FsWftHh26tOi^D*8`%jMujl`;ge5L)#q&k-pvWMQ3!xhwP<2I#9MY1w@&zNM*TKsx=%Q(t)Jt z@R(Jk%=EisT&Sxc}OgwB? zP$r&>uDa<1uGsKMk*X|LsB&zvDs#FiYXk)Ez46p9lS-xH+d)WXom8ws8j4sK+4&fJ z-u9<%=v>)_Qsv*T{!?KDkSfX|Pu>s2Ia%=hzf>#o^#7Xi^MAY9+MNH_5t8LUlE{QUfz7FR3@u%dWPYMfixvF16QL12U2U#jFV^7 zth=p=uKi+o-;KXu?S%#Q|D|OA|KA+`pIW=x{$Fdin;ZF`wFD~vZv}yK;U>uZ(*#Y< zUkLXr1(_&6dsng-qrTrpo==KUX;3B(>5^KRKyk~zn8HCgsElp*BD~xu4mlw1K5@SN zHc}o!pcZ)Rob5-GMHLg`xFjg4ItUZr3qAObtz25c^Bb2d9aIL^cw7w1WKt?cp&>u( z?c@w(Dc?@ix@Pi`iL!^>N!@-#4}lL;#hOgUw>ZRQ*?|&MP@pq`Uls9rfM{(Nf-5@BM^*sjxsqXMUxTbt#ihP2A<;RqM*u5`2g%kUELH^FUB_=r>i zjI0xP1>F*HKu$5g3Nr${22<8rj731{K=s4epx1Do=-m@6S4ZgJDrFcS&N5vCTSyoyGosp#^$GKXOM2*wM z(|;a+q(A;0MqOei57C0g;G4AXdO5n|*lXGfqL!S%znvSa`r` z!kp1LiA2E*8+&}D1I{0DjOhy2Of;DvRSp@lGOUhZIKs)wbgnK-un25LSo0r9}Sd z5r-xwM}boqTA{VgCT80i7CNMGWjXG)GFOo-11@5raBXE<1o?t>81_s}vy{nYcr|{C z=IsJ|yj`daJa=G)MZla=a@)(K01AkF1$p!cx5c8iSwTtI(K^~jSUMxK5~wX=p~BF) zj&@y4ekY41+(~B=chb1U9i7g!-qGoJ>D|QJ15o8+Z^sTYYQXj1+E33wPdx)~Xj7v( z$M)C`?X66p5Q^_DILL6kuCNQq5<HBmYg)xagL%T zZI3|A7|P%@M<@n&gUA^B_NXH}RwmA{1H0x|U3q+EucBYhkR+mPnO*VI4OOK_kx%X( zY6a0)QICx7kS!o-CR|bC(7yVL?qWw|i&$gZ51GxQ*k0C&ZElIxD{1jYu*448@`J51 zxw75qPjD0*zqb4fJM565H^8r$%DFeZEz{Fc&>?q9Ruz-at-w~zD~dUhlQRQXVgU^7 z9r^tPj_MthOyrrbEsSHBMjxZo-+qLqdNlck+&U ze?<2SwF9nw^D_luVayM9Xyp>pTvV!3E3ZXRTEeGBQjq5eg+e2daXRJ6McC67l8y9m zj&_4i{u)}DI017sk1l3%?^UXfM8>P;$&0UlfgPIDAoQ+&h9ig*-WI`1Xm(p?fOk*9 zkq%?k4V;VEZ;RaI4#~Yei)4)jEG7?7f3AHxlMvbA#bH5 zKSuDt0RPM6DseI7QU-(-J|yKQu1);k7+O_9{2aSWt|7!cpBPC zpk`uSExtb|UHKdj zkp^9C6{*?aq)mr?d(4O73()IB(&$Y2G+lkeN2Dk|2Y`B(>B%+g07aG`oFH)Ai&Eyw zkv0VM@T6j!j1kq-sE+dSlD3c}oLy&h>A+Qjv9s{W!}9DNyJqzISu>0x zp}s-mCw=3l*X-@@pBUG@-+Pe9pw+*iPv%o`A&;+20_6>R{WopQFYNVu{na*%Z_&=m z4)?&`187nXfp-Y=^Gp_d|B1?w4A|>S{navzTZH~Q^SDl-%gg!*be<{FI=lQ^kG+p* zL7Tn4*4v`JYMHgBX{k(#A>egg#(Ihp5gtz;3OrFqePCSoo|xq)KN&Z@5G=$Tzt}%9 z`ajXBl`<1jzJbraB9kOUNNNlvu;nS`u6pr;{qUF*hxt9^RITselO=42_u&aEaC(Nh z*NaG-m@mQhj`@k{ZB=^^!$<+Nxg^m@Q6l*#Ne}}w_YKomNopVr^`LBs(=+-$Yshox zb;OX5G|XcvvQ|j1&uA9Yhmkj5Lp{gkY0ofK@@7xwq!)2dC7uNls{$r~4mbq7y#pxF z-|NxQeMU*fe5#auBPL}3rU$KwPLpC;2*(b}?CcNd!PS8Vh8>ly#Di%8<_x|6>`(Q_<_EVtGB$C#{bymlMLC z%%7E^eo%^N=1J0=vxP1oHj?YaP;snu*&*u=fX? zTG75H!)MDd*j@}x`(7YOmiZs)6IAk}SOlJFq=SHm9NEoh0^?uO zYS?_E7@_%;Zq1T1?`X5^y*D?y$IC>h-37*GQBEkoBtI@NmF38ivG9? zey_|Bb_^na)&!0*@?04^k@K~NTl=sl`aL=b5g^zGuLmPM=_Sph!w)>B7y>xqm`V); zMcx#;BAXuc*!k9=bw&09o8hf&kIBx2coG>OC$AGpJCnyZrc~6e_GHe+eNgv8N8QM_ zptR>di?k=Q8lB`dPp;_vcu$YgxIs77jYjQ=26P~vp0RVbx&*=gyGMKb9T#9V@i_9G zz#=KpYw9aCKf%0)5+8;AMDyRWiY$wR%S#j~ep{B6C=wtNB#IR9hPVSL&#R;yg}khi za>O}Jnp~5TWiGiU)!$8uLbH-3RrE>Z$r621>_ukjJ%cgFoyU*SFG{M;GfmxrpNPJ5 zwD5eo&I&9|&p8fF({Wac=IS@cfu-s;D_~=K%~3G(=rk+P67-p)@S?iRO34g8<|u@P zbeNS2H2vlHXf3R}tN>5cTaH$-9-U>SO{>sXj(6c3N1IMjnw%tBr)ENsGIxrwBoZa|m(!#uNr#)>_EI`Mh)9FUA?&_mGL!EL zhujg|os^d3QG^^|q-3O3N z`}z(rc=kcba;WB}otu$6MU?VDKcT}JzI&%0{byw7Pyugu^2t`n+ePFW)e?|LJ{vGqcRW&FTEReSOjpm@#e@XL%R56G#`n}6&yuH zAfx#s6FHk@qgPbwQAM!G3?IY=AETA}_NaR&+BwsDI_%y#LvnOP($I-8lSW;d6iraj z_ruqBQjqcJC?d%?`}!_LhA~!^wgPtVbiqUb?FU<0F1-8=k=fgVq706d=R1FuLkMibcn z(7j_1S~%oj8!I@^u~MJNtm8A10AXn)ITm>8O$|W~hThM?Xs8Wa+K zB%|;QGbqH$-Q_ zwMc?0W7mBLGIr7Z8R@@!cc+t%5VK1lQ6XLzO_O4E(fCAhy7c9rk$RDSWLp7|$Eng0 zm4U*QFS_n2)J(BqrX_Q1rmI?Pvx15Mla9EMn>O&7OBXwRrtP8GM4}$#G(4S~LiEnE z1Mun_q{*|f1}00WC9IE`VrfT55s|Yw&kH+AM={FzL9pFB{F#Z22Ro5t0>(mZv%jBt z(@n?;^UMG758lPiz~=gYXvh3NH0vAtPiqO9-8b8vUTHjYCS=RidAp>*9t%t&Jg^6z zJ7j6%MWjv#17Lwd8hzv`jyv)o8h&})jpe(*MDCITd*mt9zda<-Cmug`+)oe-zXfV! zFI}Ei#o>)9`v12y{Vz6lx%S^1y8Lgw-rn8N|2jg3{I5FUD-;CgU~>(@gLvexC_D=C zi`Pu*0B+lRYM`OTX6Y2rYac24W zASae(=zqoj-)hwu{nx9FjsJ(WggN&Am8t>Fz58?V(jQ@8hGW2s|Lhya%VXHFBc}q- zcXRrf;QpNxU5+;B6@)xS%a%vdo^y!81 z;&U&{A5GF{7I0zYN7fd5q-0-9%u>~tJ$24@t z!Nv*jUnnd_|I5u=F8{aM*6F|1Xm99$9bskue=|;gi#YyM)tfzW?9Y`G0rg|8qTI zMgD*P)ZKqB$G=i@FK=B-$iddNzaa-?9{Okgo0oP2oJar7YV7`Jx4p6dw3e{5vqKJi zdu02zJFroKD(F&A0|l~knBy3bySJklvaR3`;uAtElqx5$Fx}+IsAp8TvCj+TbP$D7 z<*5~fsGb#ZqgN)o+CktOVJ-IlURgnU)%oSA$cU7w*E;j`PLei zqyN>)f52t0F8|ToeE+W{tj_;m_9-BWL)o_A&=sKONUQau;q<;_M_PZ;usHp%T>hh8 zZ|d@2wfgSn{J)k!y-r4Vj@0cvK6zBQ#?L;=7Q#ulZP_=}|{Z5px)^Gl#;| zh&bM1^72FHx)?@A;C&6HI%1LC#6c~-Ma>i8(57RJLfhwB0!%lwL$=7{t$iLhMqe3a zQoxuQRdB8N!Ta~9M78a>LuX)xo&+=X11K}`P=P$JSO=|K$TlR__lO)aWeJv#X~9${ zpUGErWI<+#?Cg-2TsZ=aLxkQ0?LpA8IOtQ*j3A&r!xW({cSr^njlT4J=XbCJGbYfg z(b&5oP7q9~HaNj6XmC2S8O8gKBA6(alnc(z0>v={zE{Fa`^v5if}ld>0!-)@n!aAP zWQqB?)9K~Uwu1c64a@BRtCs(2)%E+odUeD9Ur$(-{pZ!4{v&3e6;HZ7E}(^Gl&{Tn zTgNg1Uw=cpx;MwhGZ(E;24?xmGvh^QvX`5G8$XP}nA-4HYCeuzRAZJmr6spiPr^~d zn*e$RfJ|&wo|(411C3%(MzfJ34>cc_+fTo~5tw7!x?h|8u+6+SS+p-R4IBXDuO@|I3z{R6~gocdV)rporbVOg=KA)Wb59qaa>Q z&x6njr=fj->}CA(lQZ}fWh2jH3bIhDPzJQHn;}eUCBZ6`D$>#xH>Gh{CIzrkfC~Br z@`vi$65gC4{=ogzHmY(ngMKpBVO}mp1oiP4eI47w^IME#wgA{O`m&^t%t0o7;T|&K z4VO@Sf`tJeT;4qD;}f2Q3r}pdv`Qix^1X9y|3DkBb(FdFgt(zScCMVz_Cen`o!dV7gG^n@8yPa4 zlPx-%&b7UD#Qa6!&<26+gZVvtn|Na<#7DjOWNZ!WOK&{1!MLM-Wr7B_e)NVmcj+B` z?^#2~y^sbf6JRpaGCDko?`(RW`-u1oq0CPo3DurkgHOT48rU!GEAQG4xIM}AhMte7 zK2GFwHs_hSnFT~SW!bqo8fT1yDe{<}J8~}WwPGZ;!3(gx^Yu^39q(VUh?XBa1g$UP zQHmv&l3>6)n|*k*^0Lj*Hs*| z@0p?9V(|iAQ!zL`z*tx6I+BDd7q+^Vr&G(bNIp?v7DPTTc@QyQ7DQ>XD07zi4x(h1 zGcB+-V8SIhL)lAYbXYS8&Ix{)jzcG>buYv0Mav0Z*_J=JgvMuP9Mf%pZQQh*=N}^; z3gc+V%FY%?kt+vx%J0yaQr2#GWqqDAqwP*l0@$xJ`-!_hY>^-mkd8<{sM*rMFpEz) zP*|=MAasf9jlIFAIrbn~f@VH(L+@wDzR4`)dJOm0HM!ozriUkb1kE{G@Vw^O8GOpj zJFzZou%()X2Eo9$ZTF>Z4Q>BbXoXmPyt@N$3R@oq6X_{mU=u*25yAA?#&4Df+W153 zoNk(P>`YUaej24_n!$l|R@OcSuA?VvdBB#GwfIpP&c6J#u=)7fe0*&_zBV6Un~$%} z$JgfLYxD87`S{v=d~H6yHXmRA#E&mHmM*YYO#>Uo)BeG7Eig|7{gtoAaEMrLjU!)5 zu{scSMvBJ7G9P2iA?wm)wO zlMf!Va@0u+I9yQ_UdSWr3W;VZlTY@oH;VO6oDHFP8CeAgCtHF~3Jq)o`M#`h5BZO| zr!rUnZ&%muRZQTdmN0X~cPSLZ%`9cJ5AI1~nf z!H>s^N)cLpebCT)YB(p?U%tN5lJvij5>Sr(SH0Pe+kdWY^#9fp{%QI@^T@H~>j>pJ z;jJVp5+Ugb!CPhuwzLY3qASb4aNKR5xu2;t?JE>-1wX{w7ruAXAvNY3?@2j&V}0{V|&D1!CV8oe_)My(v>qDj%}7W z4Q!ubR0jdDcs8P}?%L#YG#*i+L(rAB+Ni+!-R_W@&*l@Ya@yP6&rq$>ih}X2p)(Bt z1L{p#CiE?rJ0QX-CDlr;84%kF>}|*0_NHMOdHNUVpmjSfPZD+{g7Q9Z2bb2+yNRc= zCUNQK4!L#$=UfaQ4mq|LHlPl1J=acD;$q#_8m%WMp)pN*6crwi>ud>>gS_YwN#^yY zAqPPo;B2CCVrj~|c?ispdQU`8B_Zzz3(EUG$?jK5PlSWj8kK?ZH zn!W*^%TWc4yW8KNjM8`qN zqnr`9{#CEloAte|{Y((h|1Lms~)fC1&WGP7`BzBeQO$1I22YuSt04 z&=WMKHZ29but}aaNUcG;*&gPMGP7Tv24lDJWUpc8zyNdSX#n-xK2(iaN0OG)@}W(@ua!;#M=5(QA}}borrT>xvqx`IN}|w zGyiH;;a?v1WaHpHTd=|3zdQbZ342Mk)u@dcf91Vot4i=+rS98T&_gil@)=QxINq{sMIH>q)F|Syr98TpA)}Y17G3*;g8*QAlj>~-< ztU3D7H;n(lE3_PjR1~4Eyj~c_3%#K*<@+xT)9>kR#$-f+7lzr0B|}s9f0gbwpS(|T+^xE$?r1yk=&-oQ8ko{VnUkT{cFekm}4BF8NoUCpF5spS~+0%Q| zGmM*_UM4aQJN>*VUwZ>KNc8N@KW*VVwW2*9-(8q1z8o+U-Ckw<^XMG|UZc?m(GMQp0hw1tlMbOh97TwHG!e!1dTzbn0F= zUbFmL=7bT%l-cI$`7d|%9GOc&F=?z*1#8opd6}6QOHSrV;4o(bK(1&ugn-=S#Nzz^ zXF(K8xcylg|M=a{a`+dy`I!p`<-Jb^!lmzB4~%U0z0X`88&`9ixxwTw3zO5Nlag_I z9;}{wVCNgX%$;by5lp!4RFjiNaIqap3@jU3avzzl6_0$&W&0+|ciTYmL@M|7$H_asSWAr^@m1ywUXjtAwTKf5EBE z_5aw`{Xf@hyBq!QwS)}+&kvyaeQ#gTwqe-iFI}hluM`%h|Ha)u&awaN{y%E9Mr}j? z>j)3C|9?ROj+>AfmZ1NIr#6rNcWX7B{@c~YhW^(PGWP$KOMb3!_fNXlPhHByb$iNE z_D^OZ%tQav&>08IeE74F=l`)9^Z!+?)i(Yg*Ak@k3bjRf653aq9h05MkN@|7$YXMB zhqiy^xHcGd0k3z##2z>!#~u=o+Kh1me4TYrTkX59ahKxm#a&vgXmKd+?oM%+AjQ2! zi+gb?TC_L?in|1Ncg;HazTe(w_Ut)x{>)4!S($k!>s{}4U-x6)_9g3(ZawN_HFfZU zsS45+2F%o;vWp$|$Rj(6|2iX=IR90^7h#XkkaI&p4uQuaX~5b1ah{+yGV=$j2u~|i z8`UNJGk~#S#kl9Jbl`h2FG5w{Ou#&ewOG&UnNq_E#0aJlTijO$;bJ}>SPa^Wbobh6`a$g!m21Q6oGODS*(oeZZTX8Ps%P4 zMd7&-0#o;zXaDeld0^LC?EYn8egZV7-QJ}KjWXa)fZTfb#bB+;0jAay_dGkMh?iDv zg~GIi=)2oolCp^(jm%MrCO3bSu`vPpS6sG4^+NS9WE$@H6i6}lMFMjp9@3{}6iXPV zFA3CL@8Z9WZg&$s+XX$DgkJVZLcM~n%15B4$)Fk&@Mf3D1~xWa?7@Wu4s+hDbk6-D z-7j`r_xQSB-VpI5{BpqcR3SQd+{X-C(5kc1a2hfI4bEJAu7uwtaO zd9CHwe|iOZdVBW)28zQ10DCXczJEBOssj3+aEB-YuD=HVq-VbrKpc6 zXJ%2m_#yk&a~7k|@%vU(IR)yw5*KasTog6E!+5hr)wzW7@@shpYbh&Kk9jcH?tWK| zX}qf;cZCWt+*@AGqntqLRqITg=OTwO+cbE>{@@UyA`J%E$udj0-<{J)%tb3~vV^=@ z{JTALzUrU*_Dzo)BP!eXz_0mwi%1xp!l9`FVnMj6{#iiW<=>ogy7vI{$5YEc%yiQu z{Tecj`^+7TT*Nv30qXwW1BdeqgME5o5UZcF*`o+Z&Tx-#Lbeu9sK!rJP%@vze#o45 zG>b*vn?fe)0UhtGr+e_{rluw60$5at|6J5FFC=95a(0UiR@4zU-;|+Wih6YK5Qm>o zIWi7L|59S0fXo+T*T-Uxlt8u&875uaL1-xKVyzd8Y!=4&s_zL?OAMwe;;s7#k^a~{ zK>dM1MFfb6Q~gQ!m$Kh2@`Pa33kmkMu)jlij5*!2#D7@nalqJz;}SR@OfqsU zR%?BDA!q~htlAJ8qWZt7uAVdkLqGn0cU1eN11`O;s)*a)ZR}?2PPbPFkMAoRc{uXL zE7E0QFNzXExj>dZTmB9Q+$zznf!h_e@TG?|Pnzt;m7k|)g|WcR5xK%$R`Sjhv;Nov z?Tf2cg(k0DD$_WOay2HxABCw2eVoz4CR-Tr{D;e414tus6&+)mab#d1)#^TMIl6GW z?;^w-=f|>WhnEYajD77X<luonPcK7l6pqQQXq zpYtJ@q=RpE`=5d!4kpcGU$ZO`<-Wa(a6O`A{QwWCUQyw~xo^)5YI<801>>+eow8oA zf&NMa^DOy}iO5VQn|RL?1OnQoKu8ndsTF$EEE^%6YdLs^%Q(7sMF*ABpL4lStajpp zUlt82+}P<7KF?xNUTM?zAo7R*q=(`#)YKyOyt*%5I+3nr5r>qV+6XHMhVk2DiXwv2 z`b1hm<1Is7kN3ZJ6|voGfKe03ZY^+H(FIvpZkiv2Ko4kc0jq!WHxDm`sNeHAUA>F( zEo(X!+rM@azhlJgXrat5};sb@hs~)MXiy#bTusW~Jl*7rzl5X6PdF+dS>B z`A_~vn4%J+>avwMWu#a$MzXKAtmPYT-Pny+;rzRAiE-Tn-P6|3$?fk%l?WVoNWfcf z(yfpmD2Q`V!B}4dY9$)qqf2Bin%hp|a{rI~4HI-O+5gVp%wDqby?B}X(>M{e_K!>*#L1LZFXlS7MXwLn?Dil+1=jW`|f= zZE%>?TUsA6S#{XNnPN1V5mO5!f6McU(Vf@eG*ibS9-Q~%T=MK?WAHj<$kbsC8+22@ z4iz&oIC3s0TZ~A@!GA2dnnO2ar-&}~O9N<0V-u~eay_X8#jXCJgl3pE+QDV9)JlSp zW=JWnf`&679bv<_pb2Bd{W7*p@g#Fu*iql#S1~tmU17o_Sia8b(fhRg$#6EDe0R&F z*YfzaR=wKxzupsp4K}`wlZ19NWEeaQFoz>&$UIo_hN*ePZ6+tOie49dAtIOX>5(Xc z8Prh16^S64*M&r#vSz0iW~t&Ve5EZ(Kr@xpb5t4-7A&DqC;q3)z~H}9FoG+x#o}92 z^jyr1T5t|e-f&hzJM7YDvWY%(<{wh*(Lb^_HZPev3inAy;@7YZt!WQ3ezodxrjPDd zU-HO6n`4?L1j%d%8d$lJ7{}-JS|#(oHSyg2JYbACFYs}iCj7#^mHp}1TnA5BFTyoh z>gE84V^!Ky8cFA{gqMdk1f5felCv{wShsaO-uaWz+nX}4DoTVON|e)zjRFZUMmpIv zH%T>A6p{puVXFPHCZ&nvUPliUyk5qs~k4j z{zNi7gX$b>VBm|HRl+!tQexL8(O>9}LDyZfCk=VIBu_R^nG6YbO{!g5obKF0W<(*s zr}dUX*hq;kJgDX%;*qH$=Bp@T6ZGwqYOoPt^hII{&O@YcQ`?67xR7q1ch>FQXq7GZ zNSi|MGt~9KpACS-GqM18Y{%hCK;7Zs4rG6NCj-rK)8qgklgn@<;}q z64Bon-`MxWP?;fx&A*0ks#Uo71M z5sV^|oKC!8JC;@ifft3t?3Ziwojue*kyI0%n}Y5=E0Y_Hx`hDLn$R&7C9|&OFye@O zE|CVm!%D^xi%5nx7S=N|>rc|Y9PUpkqL}?Nyh5sj?rM1NTPH+5eTdBT<(O6prw26T z1m2B_IVMaM<;O#v=fRb^Z~tt373iS-OE*Fs|aP1MB8A>~+T`^_{n?X`THIp{rR; zu5GHB*N_x81rbAg-%E%#Ed|?!m)24Yx*(aohUV{Ms0DFvAkx$Rnw7gn-1|ZMf(v@P zo3t(hW0ow*Ytk-vwMebh6UHM5P!5tWMUC5lc`>iA1WNW-;|K5mNnYgETRp_Dy9j+y znVS;i9NhDup_M;4Bi>P7+=NgBsy_7TxkYBDLNf|K#H zoYho%vfykZ%$X-uAq&#ZYNQkaLgRDN+qGa1yN|6)QnW4yT+}V%v6^1x2Tc*zYGn`wvTb1^K3 z@!rc3jxCqqx)D@eY-=c4YsXFjAh$Vxd;sy3`z2&cn+ee|thVqy;Ss0wyDV%j9&@aFJR9r5{*R`8mg zEF8WR^kyl@3oEq&SvbQam?^pueldh;)Tn$z+@`+LvwiWSV;<=#Mgej%llayd#Y?;t zuhQ9iePoJ60P^ZXT-$Iaztq_oMN=DvtJFsP>6sDfPh*EeAA9d}kFLPC*nO{OMpN_E z+j#MMwO3n3ZA`TSq_T@bh1U^gdGq{pft|L5Eh69fr!)1c9OVA^<`gO2NKrn1ymxoy zXvLyU+z#}>-?Tm+uyM!Ur!c@s9i|9BID7cc9__wg;!Wp9J~;#XK4$Y=2}WR1P43R6 zXurucBN1SIA!jQ=N^=0ppxLj_{O|9?=5hHvaWq-9#4;A=NYV)pp>UTi#V*E04DKHU ztUg4OAw%Vh*7_1`3$@k9RFI{9%H~Q^IEw${sUMWoDx&@CsY55M{p+a*<}|Kw5Of22 z3&v2lVr%=GBJc}h(>Y(|bOxHoRX+#KGMh|Ezd_D)K!^K~0K}wYmmPQsC4ts4!- zAkMS0nDx)lQNEG2`Hyzo^E^6y*b;dJ95=^F6EMIf%bsuhr(^G!GO z@+Gv(ovIcC)N#MC#pB*p`LV<*b#;=hIX(+siRF@^pok8 zQ^PD5VpC0d4X8SQzJdN4w|gKpI%KT#`Fhl_<9oP8Pvt)-`1oHG9IC>gGsd?#Nck@c zUXb_o@*flZCgJ_;gVpNeVL3MBLo&e^2iC=cKQ`0Jss$A^;FN95QRW#F*Y+Bxbv`{X z5^-_wATL01@R-Z3`+sn7{eN)q?0;}@<9~3l-oH3Fv5Nh{>T!p0o)8p~vJ`QAMTGu% z44qv9NI_2$idKNirmWNW*Y2h-88#TY(YT!elcJ{iuf{j+m*@`*sIij({1Q<0ehUnW zUmJgPW``nSKz$-8*5?(6N9RP7;PweV*`G~a?#pX+8!tB1UJ39_96SsLyl-E-rxqUo zJw@GfNVgix({%64P4~;#?mEEd33SgbL%q0vh%f+Ygc4!dV2@9VF7U*9Gq}^?635-_ zI&^uE%dz5EJo=2PzKPq^oN7mGZiKZn$4C4V$nQSwX#H(@8F474i9R|fOh8FGk-IZZ0o0gM8#DW3211B>#)p<>| z)=ViQcQTG3>Rj@u%i1EbR2K78`sT&F3@g08Aj8W7Ztq_*`~-AG^pgGKoF@^22^ZH6 zEgjdqP?$axs)~GY#HIibx}GG3@aG!0W$@KUK)KuE-M{X5MQUkaxI*+7rS(ElWQ}cs z?X6e33CtD=GAuW-f~E3`-^5it!O4tqnQBZwV3RNoSFa(3lHlj~Rv^Dtw^1+*$17B6o49x=CjJj6tmR_d>%O5f+4TR->x>(BdZc(+na zv@Eqwtf zDj%Od{#02d`ofo7{9qD{-S5CV&h~XHH(2llGW*dp6mR=cwhn}1Nc z)~TU|Uj~FRDAK!Ld-y(#kCknD8igM++fzDUfcC?dKDaKKH5jV+T*n3P5-ibF`+*1M6e|pvm@?sy=B}pU08-Nc*)aJ zlQXZ8w|RIOz&P2ySuFxDiMRX%n;r>YCkeBy zFF&2NS`0O{Obo4W;FWT9Q_?a98G{#Z+yh$lQ-iDP-8a347b(>$H5Zzxgy0><@M^L* zT^uc@`RZOzdni}J>cYbHMhluK)UyH@LXf*WCBbfC(Yx*+b^f#j#@`dI_>YikRyN|R zu5`WgD22t)G>XIS^*|{4ef>Y{3`AVci$GlrJJBErBV6cGYh%Rvrw;^K@JQUU7U!iO zYjS!7ZQ#Ga$FPSZ5{dpX`krrs)8GBmN`1N$BM9)G#3;L?s5M;0C=JS&E-}1vNszSJ z!7PQ1Joxl6BNeMWW;y`B@YZq-$vcSSR4lbQv^vlhP8a=9e2GgQ97!gHCWfR0x^ zH61_>ADjE9kfC$Uk2TBGt>xF==j#rwZtOY!qiXFy-wJ2U>N^(~&I;$eyalrR{3rMJ z^$HvQO~vA;DchU<6L$lxP=LkrVG#;oZ!PZ+XZ#Dy5b{B;##QesisyYK?b|;!ge~me zi%${XbTX8`%d)I}k9~r%^U2mLXI9_8*tmKEUWlyTV)D4@eR*!v z&q>ohY>osbch5MXZ$qRz337J)#zW?vDvBr&1h2(OS25!I3VOoaW%yvJdjy3I*~4vs zU6Z%xE8y3;yuJ!l(e11PqQP$tKD2bZD~4W?ZH1iqYjo4hOUYb**To|#F@F6#b$2tM zv90$_A^L8VzjUfwswG0AcJ*nlPEyYIx&aEU##ntI)%$moH2LwIMOQ5%+e>8MQ9Jkw zYui-BC4KfRCbR6Y`@ycCGw>f8bAuwyY%soCwr?Y*ikoQ+8E1YI7^Kc|` zWqDLAtd%%xstpM(@U*44@xrp35hZTpJ8bRCh@y=lajGsjkUmG$Kc8J@Tg8*SIt;Ld=KJ~LFhtP0}Mql<# zA>L=%egB4EkIGlSzsF-jtJ+!*53Oh^Ru1>ghL_3eezzgIo-Jj8RvVsJY|iDEFN@)I zVtt#s22UOR;*4_=b(C5K`x^D4&Q!ky~E22vB%z&d{QZxDa+$)7ms{S-rx;r?rk=-!}j8pqg#^OJyZ z7OSeWLXsb68QK^6qmT5c;pH`|VpZCA^o30B*!7`H0dRb%euA^$9hr)~*yM`nF`RE! z@)qyVj2ieTo$ZkZ%XSY@7p%*rlcO_LlhA!G-u|_Tw;JzYDQcT4*>OyxHER4yvz3n7 zHm-<&BZtV!Nr4*?1@+U4r#>jl=rJOw7{0M?J87qwYvn6SZrS zd$Tqi`ljd!;dgx873nTxloQ*RNK{EOMOtQ}C0!(WyoHcQ?a;U;YP^}uIvE~iP8z;W zLi|r@SGuGo`(H10antvcE_9Jb_rIR&eudjhKGRJQ*h@Oqjd0vcI>|^R{9!12^whN_ z?E~p#kx6yW?9F(F0FhewC7o6kjEAbVi=?P9vLG(Bp23q2qH9j?J|9)Q0-;5cU2mtsVm zj&6xqb9ji-xs$mqge-BAZr+lotNM+blA!ZqLOp-oAO@0^KVrXW_(y-a2<>5gU54Dm zPtY7*uWL28!|cD}u!t13Fmovjy}h?w^3wOh_v9l~|DDo$XnuFIddaTn=Pv`HrWS`U zt&Ffj+KEb+>H>#~PbX-R9#-FZG`)STorPFHkE8o&xd~t3CWktBL9$jz)*Y_P}7tB4CgJ(QyRo z^(*JL_kq2C8kjQjk5iGGVAsBTvEf=43{DD zbr;rmI|#(KuMBT!VgFoaF;&BPq<*dB?vy-r70tOi);02v1`_v`tf^{a{EurN>^ zgW9-p$XWAT-SFjUJl9KLcDDWUOB7=_|Bs*U_QbIEq2WVGbL&tgh|cKKch>A2CQ|DM zWt0Sx5Yes7$e3!nV`KimxE|e=(ip$Hfq!|(F+51TDedjyV zQ2i@7e{*jdAlqP=X8vi52Clfzi&89TpCc%)hv#t!<=sld5DMCM?hp!0Ls2=LG#0LO z(wN@Yz6&fZ16rksD`A~KMC>jo1)-AV$Zx)9yF6@sm8lf<;_{_G9fqbI7zlNfAhMHelkhd1$_+ellrVYkkpanp%b?yhHgs@V!B-apVQD zh6DWTiasjx?Q~2AkAEK5lz(O*R3dJq(^{Xk7MvzR+YK-|U~ANL`tJ58y&@&luP22$ zC&oK3uUNJH+%Y$~eUBb>EWg}knC{Y~30u}`zgd*ncqGX6juaJdPVm^tf_?K^c|5>< z#RLy?QI<)(vP5I%@i zWju_jfx>#}Bhe@rd_3FU|I}^&+6}FZiai9J9>k!V>AUU$j|mWpk}#}{8q>^Gi`fT_ zHBsI$@N`uRpN&1SwMG*nsp8p!AKWx63v84N-^a~q{BpBwz686sdnCc_hdM6zm5UUK zi_~J=W1SEP#Jvc>$n7p#=)iqH;Zd`fd|&r3!RjDMJKZDcGnV;_GMv~M_Xlq*|6`Yo zcIFMzsN!e#B2*I0B2X2IYmA~NMOR18`*?J&wJtMwQBz%)R}jkUgtmo_2~ar>J!!UJ z4|xKbLwnj>@B)Hn5XL83k}NdQcy!iJj7E&({2EAnMWfW7-ZJ4uddNd%*4AAUrOg*g z&B11WSW!g^H}TcLt$=5z;t$`|)X+OT|K1gi6vm(qry$VJAwTxtOJZBnv7~EXybSIt z53#~KeBeN`;+e8yyWDv3aziRL{4Z4;mE!{b$x)0}awM`m^osF6qBvenG4JMz#Mg7r zsCjD|COiWSOuu^?Be$W-u6=6pIWI)t_Y<-M^3mi;6+B#*u&@`fj}?lmhdxy(`E@Lu zC#vNKbEk7{{8*|SB|ZL{O!TIx`EpH447h!`Gz4L|0~yi%c?kU>GAx~b$Ju5>`EB(D znRTSfpw)VA{bcAyzP zPkM^edjb>l`=jMX+lXo%!HTI>`hb);#;LpW5tb$T;QAyQ2c7Rlp9|$)Fw-TPs6&zO zhN9}oHE{&1`BGaiz6t>cyeU5T53SqUc{K{XplR!4r)F8e!gyah>(>#DN#a7|Lb$G!V$mcY{f%tAaPM- zo9V+ob8b)SFk?38>_r-uXtmWg{Heh8Bz({~tT;VxXo2VTVNlM81+Q6VN~`=~9Zu!! z@0%CnzBj))6EHs16$H!9GyCjN{I*&5^7+ls2j7fOseAoE*NkGEPan?9(SY^M%dV}j ze%ycXvW|&yDPaUG%=Xg=l^y8C(pvIQ5yv>0%tk8k4yScd_Ayvp#x=jPny%9Rrr#rb zx$Z=qOp8&^SNU{+zCiBM6 zAt4GQy_0CwP7x6+f9ob`!dXXMTL{MDEJ-eek!exYn}vmVW&a5L&UZ@vS1U&w+{iYw ztXirhwzZKHDt;5x+>D+YvX50&hvK0bgNb6`{Gfh$faBHtqk35tCG9SunJ(q;aFu2# zV5P5|MYVG%jWk9gxiT6@rjRZsGf6?KE$qqCH$jM#lN6h>{A^oAj6i}JrZZhe>)M>b z?$=!LNNI{VuuRur74IaL5^;LSGEd`yXi=#US*%tXWN(Uy+Z;ftn_w;#CX0C|P&X6H zTB*YmmDwQ4IscjM>y(>J6YX(edlIZA(i%)}w0ZO5-dnc@-d>6vRnc0EXhppzxj!vO z;8?9^YO~FAAaw;)K3C!T*gg2!{rVMJ&NvPjNgsT z>uW8WLc&>p8fQRR-&d_GI*TJ2Mhj^t*;diU27wXlZC&QV`fxguA#R4|Syvlh@|k$S zy8b&6-Z;W*iA8>-?d?~*ZSon+DMlZjylKJ?vs!=<%j@FSpSYCJZE0n7Mg`la_d8L& zMp`$!k;vw=N+UP?-P2dMRHwTq{aPjeIdMBHx>M28TKMe_`!wgSFv|2#+YgAg?ypjj zh*@zMPKT3c@fAsPXH#*DXopF0#|l~{ct0X4cy@0v`VJ2b?OjpxOQk|2SB$4wrh?S8 zSG)-AvP!iXDDvqaZ}8rRDcB4#Q}pRV_F8^ z;w&4~vXDR=WJ(P&b9bf9nNKC+pRBM0%9Q>7EvwEb|6z}Pk(3%Nn7$ykoMd<8Hl@rW zaty^;PVkU=jBVyX(x@^UeChc8!ctL>AK-(_)G#`cJoaxK8jOYQZmIqgyd)C^pBnJjx={`tyLafBlX;P^TyiacQt38FYB!d!sUeAbvvT)9LANnDa(1 zgfq#!oDZmMl+^f`GOGA>ixx3s4N+dwScQ$`fE@FK<{e&$g_m4pDWmV;07kHG0kzY$ zE=i$n2~dz)_)VZheY1?Mey=mP(Kb!s58K}euuLVk4Hp{Zk`)`@;8+=M zQkLQIebg1KQG}(bigyiDWgUGaG4SIPCIbqGN?j5`}QM&ON&lMIU%F4 zfoH2YtG|$gbvtSz6epfD^pWkCAz@#nO7_559u5x zq(`;*&!Z~Md>(3KwlUif2Y#D6Z#9a{%Xj6@-)t4lPu8BBtz6%8F7*GkzM!O#&S*Ku zH&ISLb8TiHcgep*+(qyPa~q$w_tH53hOP06V_xaBP+H2AW88tU&?F)xwW)pP=w0;J zksBW+Zul?%(|Uck&YEt3IKA0_AH%Fi6o%^VSeQC_37LMoKz}d6iwC#F#R~g|0{gBX z+MS&Gcld9CI>Z#2=8xK1h*@f_e3ic5GKu6dfeS|h+?|9B5AOMTJuiqFNq-Pf?5rQ2+mCnPdPFrT<_GVgba19r`dftLgOB`7_12->)P-c zyNUR<#hd>Q3_ZHH1U6y4fVP~M$vOMJN?n#QSzs)D=BqWe+bPgu4n4?>UxSt$)1CZx z-!0~SW&RVcM|r7y$O-vg#qxOs^AaC4|clp0E{YDIQOug5pW`>GyMrq#v$a5teS z$?~gNwBCIkWuIV>k8=G<+~A!}@Mk{@Ki(%f@ggH8E#qanQ?HxFwmqVvd^yuZw8$MC zqQcwLDYZ!a*aWgKX~K2FZ}kx{?-GWFF_1QQaUbc*6)KdAb%xL!ltI>3TmRq*lyOt* z5UOOkNWq=5T#&_MU;5n-Up3SaI8 zKgwt=aIIq11?(F+y*kg@lRaZQph7`Mk~h|DJ=3uiig`TLbC)w$y^=AKF8v_3Rs2|Nw7FiCU&Z-y~o>Gk7`4o?=PhO^kRH+9!U z;OuUZ(kxks{o|JdY^a)j{a-&gqGJ88A+ zuj#;CzuRV4@a5V};Kc&|WgR&%(c$>PqJX|D065zVX4&L`tuqJgaPgAEL_x+ zXbXbl3m?IzmO#!%$@c$cR$SwRC_ieyA*@VgEa`8?%7M9gjF!eswJtO~>JgHHQ6x67zv#p@Ue@ul zdV`Q!uxq^7h01j=vHW@IE4?+blnK9f=}YSgqOm)pmCW+M%s@uidG+ z5ITL3I;--#E^Fdf2Q4~e&&1-d6i2fcao;pw1?K|OXN`Y#9!Q+(0PllP)v6h|M*nJT zdqj4Bc%1UN6+TeI1eN@vHiX~C*SBQS=eUv&-H!>wJW-$shC3jD;i=d2wWsin%#Y%b z8suiuA{6n%f4Uer4Tho&&sHePfSb_n_{3p&4tC{yt!t}%bn8`r7KV9Tt`<= zUQ04PQJ|y4FjD^=lG?E_BHXOltG^&UB60|-vEKUw;#(no?d$tD!8`%D1JKISC<_))r>gRQeuL zU6D(M30KTCSU;tgERo;tSCLy$nY(4vwwnvaq{Dua!Vyp_ZC4f8pWUj0DIi#+#64dp+Z57;XWDMbTX!WU5n^^9>=ZRBp8eXq9bgkyZKTvEjO9g}~_ zjaOFVG^r}C#iTeIHQX-r%x~959mIYYUtXN6fB*D*1EXqFf|o0lM=tiEL{dj?7)-)_ z2)&~q$=}a1MIliw-k++DKL92yiD(O5!Y|hOBodg)IOF4k{C76Q!_n!Uls(y=ZGAzH$9U`D} zYRwRQ67K}|nLT}S&6YNEx}DnA0`)t*?mdQn|pkg z0UD_{p&Np%u}TM8G`T_x?~RxVfwh2+`BmbH^tRF8Ps>kJGS?ho4oz+KQ`tc-PB$In z#`nr$4%Y`i+WaDad+zY_f8UPfy8i7M5b$zeg&6A@3e0_X33&2$-=11tU(fN8qa)5C z*CMU-oYoDLB6T>nM05@~?=fLMN?ee)2+aBL8NWaz;+k#X^Vh*ai|H!<*d)q{ROX}c zK?Xa=&tJ!7rK1w97Wq#1SQ>}6$7zd)>fB;3o{)TRh@W{r`Fsf57ToC~?s#a#(o?C# z9SWZ>LH$a4_7>n=OcA^S;-4yfftFuWY_FgRdi++PU6#Iwwgsf|1CF%kr9x-%wUH&i z--^F(WVBDm-{7=cwe^LmB5-__J0wuy$A&x{;+bXFYnDU%PxgpC4Yg zC<+m%2?D#_fhXnYc0D^!KU`ltqHvG>e(m|GGsmxt4D%F;Twp{usfv{H7yfNRQ@=nu z$dPHGp)3Dmlwa7mS5p`PTYlW4Yc|lUV(Vawl#CF#KK-5#Er$4plY-wq(<&|JX4+M( zO!T7~Y=@{l$>Q>xz@!)~c9<#TyMv4JB0i(i&=QZii!oQuH$ny*Yag8*w7Tp+so5|o zOtYw`)$Ixt+`wKez8j%|Je=z$&^lS}1+_4A(%lN*)rzY}9uV0B3X&5&pMvMZYHGbV zT)Zf3-8s0r{9y$k4OXR7%Vs6t7Ixh^#Yd!`ox7T%o%i|}%9M9Itj**Pjb2HFe078m zGRwSGff@?@7MJ!ubhq#AHvw)G``@;f7*c!2ByP8Ea4B+k8prwtztn7h;gRrr zm^i#2yX|h%K7)Rd^$u`&uKUX9^(K`+ComQ_@p4;C;Qq4Ee%I4QIj2Nr8$pN&aAw~H zJe`_Wq0`sp2q+GWD6W+c4ypNa8)#6FqNynSjq=D*2J^p*K(w~7{kU(9Eoq{;{2q)8 zciG)QcdX(`EM_?#Z2)zB70V zy*NB_kn}~)f~s-D%uCeEA(!ZQEDAA|CU8guX?G|+1~$%|0YT=y>EFIajvOpoqpkv> zi3RqdHfyvR95L|l2=|2 zlzhoxthtWQyL9b3pIS4onj=0AXO-_^M!q^YZdFwE;KDN%i{L!gWBTJ5lXbq)iRS!{ zgjqPk(YC1vuE(Kv=#Cg_A{t8F#9gBCEHRtLgxj&WGEEn1{Ss<|4edm`9*E9kBB3zO zgVstB6I2lS#1p2m8N#ut*M2S7;bJXO=#Ub$W_ldz6;PEc(RL2I*X3sVTwxc%78%yc zOPuqJL%lhQ6k6;h<4e|I^9f$X&Pz>qS6e#kh1dj#lYvTfP)F+l=i0=aOc|#_2l{Gs z$`;1`I`r+uYV5=drSjBKX&^~z)xNu;nybCLCXl-q*9umToB|bj=v-0G2 z{i={!>Tdu_3^S{5lgq_@XnqO`cif!WzGpqhWZC}>Ghq|=S7>r1O5ygaTM&ddQfYVMCyW9@`RQH`VG$ihhES5n&ZDJbt#iT@#sqfP$ zVnDF?64SK^{TM}59eR1iuC9PA%V_I>{tw)Twh}iA2jXOh$g4}t-Bb3#tro@e0?Po3 z5kU>o=@sTX5MG{~`yJ@`_T4q4rM}Jh4`>h9?JwxtaIlTr(@Hb)kn2*x8x=nvKXuFB zE`RKQpu8c^3(gth)4LLnk768%iwYz#lAu-DC{G@EblNzI6oxl|Q}KCDxQ>!Q^w`K~ z3)~POVvpKD(GZno<_8|*(rRMsC;Cx6vH#}8V~vYbnzf-8MD8WAKam`6+GMrWesDmm z9M%+CgHe-r%t##_zDg9RFj#*VE@-!JpJ*ME=a_lqG3hp+!zXW(e^<)&z;~J(k1d1A zpbTr|IW+}3zZ5uANmBk4cd`|mdq0(bN78bM;9%O6AcGAPFh9(gElrVVp_?p!pob!Xu(Zh) zRzf6u$T`Zd3TkFoM+`+9lox+OwU3NIb2k!KtUYp{8POF{a~~;=ABu zYzMR)T&It5>>zrE%0EMuE~dJEz(JG$-GJO@~MzifjlL?>>66{RJBPkUkX zQY?{+?iF~}eT_Z5A3dx{(Nw}gO8_OTh^CT=*Fc=t$bs?kIT=C7K2GU0Ffr>{Hp_y} zJgfT0Bwv?+lWh(Q>#{v*qordJtk-&zNLV2)Po9vl^;S+My1P%ql$j{a-bw5-ve zCm%+PpwF#o3X5ZBK;}rg06m#eW!QVVYU5nzloS7q2NIhm=KX5IzYD57j`#cL3#}`F zymlP9`l&HC*t-QIjruOgv>lwj8?yp2UMU6eEeg(U5LmYF3kB5vxx4?E_g%j1kVY1v z7@3qihmHdTSAHFC$3Lo%S@xX}!$J~WSVaN`=CMP^BzKHBf}82ur4l<7-O#&|qQQxQ zs#E<@?|iz^O)+z4XC^Yw@4AYkDUTtc22=@~O5{_ZB{io!) zbQ740y*iu!CjFd&{2|e#?d-5Fe;0i53F*yW+8Fdx_HzNX-=8kInxqLw`lKnml`ow| z((3%)jgKV2!nTCO^ST(_t)a2zMjm}`eiPV2Uvr7bWgG$TqDCd@aU+ioDNYd2M2h?% zI`3k|Y~+~N;`2Ij_5voWwz9j=&l6Y7ky`g$y?qKQQL6>caRnujNFH1bmvjLzJ??W~ zPbJ^xrN<7Ztl1WQkd<%e`n5`$+zEXVim{`(xiR9w<8bUZh0Z%$J7KL!<2PaPAJ02s z!~99_S#Md&0cV0_EZ_9fi|$mP#05advhIR%_Czt4(-&f}<*T}+;y*m=npV%+5PXz0TIh0D|vC|FpIdO;uU>8wx-%92U#x~o@5<8?dKUJ@VZqpI@wTp zF8wZ>yX|t1;`orWSRM2R7aRo{L~ex4BT&u8Ssy%LQ@I4d)}5GcDj6ZI?MMBp#tQAgsW>za*lh@>%`aDsby zF-HhK-#7-#uKCZu+Kk;%{H*OVtzHMLrFbfxY6Ree1aH6tXg5)W%$GdgQMF3XAKfvY zML?N!v#TH8&A!v6$n9e3=rZ|QkXidh^fOSoQUN*^xc_zvlxo1|83OG~wkdbr?x-b@ z`xc6S7O_WQ4dmWW0k9~V1#(qdy$$VA z5b)v{y6{K07y@=Z$qkM3s#=Q#P$x_x&4A%p z>ocIbeqAXZ@GBw*+)sBYX;2gKf1DvXvZVBNj3u3j26->RdMN z!p@dh&%cJ%e885i2e(}yk6^FoFWl4NSGUN><6^Zs1{$cGcE z(^$Dr7l7~EN78}=lAR)Y=VG}IYiUi^KcvQaR%|yHuN= z(Zwcxxk4%Ik|bCPM|?cJ?+XJ5ff;}2uTX^y=lRG=h{@FyEOEdAxCFOLNU1(yl!ub9 z#0V;Is64Pw@6I&qLDP;|sIz&wgn+NX7V|!!_XIdpmA-)9E%5)j1{;QY0_kVx?Rs#_ zk3aIyx}{7sZ(sBH^<(T{Li^VbDy#TIwS!c8Hql{)DDMPUBbw zKD{$o_hMXTz2jcD8l$eFP55ylsBV#-8!czZv{U&;fwQjJvJ?-OtwlXAB&P#-eERs$ zZoR#MpJ$w&zKoDMp~*yze369lQ4%P{!sEE7*mtA)b#8A`e_XdqZy;?OF?-LsT(VlH znqdyfs|SW;el96Jg7l#qeyTlO1pwP528h)2g(C)~tX!|w?dy!>E<|@MCSIVn+$xKO zP<8wKrnZwVdeGD<*T*v5?r=NF+zI`$au4{QN!uj7q=K$~f=IAC3#hE#EKV}DnsqA} zmryGwK0~zBoDtl`6ky!#+_wZK5Uv^(b8v>iS}SJSiNygwO0lZ-H7}bh$dT+Y9@{JO zcKG0KwB~|p2)JkRDz-di=`KxT=nyCSNuEUXe#Gea8}0G!)OJT*l46Y)E9YKCveQel zU-=i+m?WQ`dA4hL)yVK5>94_*y|fD_pgA@A zeeCs!phnNXp}JAq-D82Sr$>_`@ge4A(XoP>VLkX^zi;RJmsu`O0qrd2s1aLn%mcrM z-(uv+MqZ^90}vW}6AJ&=MUx6#;&#S>!1zDwCttf=pKPZum z-_dBL&#dwqqnrPVjS4q*DR_2_5;yO8l=sf*L3#>3tlDHRBEasHD20y-S9!G(YOoLv z`6C&ZDtrBrZnOOS_Qke9;VU()4K}*tYF8KK6Z%ftv%Ri>q(oGFuiD}{^Pz!Rw`{&= zObHflEtN;=4f2CI99j<-wdxfCt@A@W>H*CB?@WcAHzse()C7bC3BIf=c9YyMa~q2Z zkT8|FZt%0!+dDP<9{|=sDZi7Wo}iK(`4wJ{qS@CXyHWc=48>zo#06B>^i_8Gd31gR zugFgjvrtDFG>=C8zMrTZh%fve=@%vm7dZo!=yF3L_+pgwjE0|p)b}c>g8`>>Pd%Ve zfQ=!x5BtPc#x0_**@D?&L(&aXnfLkG`lHyTjx&mqY170%vR@u8` zm5^@%@3oA|#>AL0!EpODIqzo`Pi{r0DWYW*49*nB`U!p(W6*Q&#Mf9d_TjDrU+au{ z2fm!Xh561+&B(`h%OVXg`!C@z93{l>1xc7*Jvm><13_-P&#vy{d_B!#!$?n-OSZh@ z3LZmj8;R7WM6Ht7<4sJ2rDb}5_1$-5@igf9%ST}X%|~_cVZ$VPQafDpeUWWDR!O3f zk01!vX-z+X;Vu)*Jr|1g5L73jtF}&@v;0qZ3l);XB#f>Juz<$=**%zU6l*VxZ*6v% zTR!&(qpXeJE29L3_l%VV?uJVYIBbe48TP%de;W4DR%PMP_oD9Uf;=awo#*SlCpW$o zzm|B>iJ#P{_c-i8-fYGp`equopu2lCzSXCJz+5|X8aeJpVLv@3Gx^Dxe;rr!Gs+U& z1u4g{u9x^HVRWsOxH4{xRThpG^w*pMwve9LTmJ2RT1rzi)aWrqDY7^;@&dDS9a>)1 zsLa5REAn^)4Q-JV6)u6^Vl=lZ3Ct!dI38&Fg}mv+dU_Y9)%1*_HUf4l{E5j}y?>|C@Jr-lF#@Jwl8ITEFhKYR*WjvKkimCu!LI0oQb zqlHy^seI#OS?WNzVjMtr?y#LoBcEg%q{GvkrqfK551%O1G;EadRE=Uev3_HYJKcmi zUYw+%xQa(+r9Y;NVoM_{{mgM6yOS5h*7~-0zT^0^bvuRVaL&r4Gf301wKt!HQ)T3I zR*UtUjSiNPH(*qtC+nDzBqb|pQ+P6Z7o31L+SDl~PEH4U+sW=caNJeUDRN&I$}y$& z)KOG!AlKCn&GjXtm6_}21i7YEraFpB5#*Y%T(JSi<@(X3xfWq7Y`A^e#BRUXIAMz( zYGa83dui+D6Vc6XCtZE_D7^`Bla@jR8NB1TpIau^pR}A#)KdJjj%$!pU|09Y{DKzn zKRd}X?;zceF7m{~_^jiy?jV|wM%%07PE?q@oj*w;PvTdQG#8MaPj^i}& zWgTaz&S#g_3%l(Z6yk-$&~2WZJ>7I2XQPGviW&c$-6RTUK5nsv&{!Z~l&`jw+IxB@ ziIp*-bW|SU?sEUD%s!lNhAm~GeWUJG7#NSRr!oESruPz?*i;*^0LH#S(~j*M2rS~2Iw+76g?t4-Ig>$saK)`LCpftaYD zvE8twD|SZP*KO<IWm)OKcZ!^uOBcFpsRJnB$rA<160I&-NhqU#cDF6>40*9EfiJ5Y6c*q* zYr3kMbP7IJSB*y*qo>BB2nW!)I%+(kqM^p%#Nh4_6i;u++cW=~yD)#Rb1_KzXRE^| zTk~z|&d{!)_C8D1ZCjxwuWk&DG)rpgfc;(C`*<(70F|`e8_oo`n#XQ7WZo@EuiJ3l zs>P9a;7T-zNH0Z=s8rSL-2%P6-+ia5n!Q_4+*wX3ZQDHq!+4Y#ZpsMGbO#E zYF3PbP&HGC=&EML=ulNNg-BY}Oe3_j0!=@&jzHBiC3m4(W|rQb997Gd8>pfngZAi@ax?IUrKgwVFyZVt26z>JhnOhP-xsdVLurNy|?*Sm!$ zRxK~1$$3BYf(!GV-o~jGxJ{Q2c2pWCC>mbINM|YFv^;*(rA0@bF54F|LTJ_PQ54ND zn7&c-D=RKPGVI=f78vceZ2hlPpF>!&*Flps6k-m#|GhPaabPZ@B8Qb%;ic`p**#P@ zETgS&@>IkW&9L1kd{dpu(+&IN%)j2f;jz{uf=g{oZf%_oN6= zdH5fV&9wg4`f92FHIGmX{|N;nD1fVy1I7hZTr6eH>@_Bo5@yOeS`z;%@dv%wAjE7j zea32-J_-VR{%*&kQ>pVb)Cl%0Yn{m;M1Lt+d}A_g!OQhURp??o|~!5@RcMBI&he^7&@ zS-40BMO7M`?#d?;`0FN9!PhoN*el%3oT#C{%R8SQFCaE7F8|MHu7-W-ZwfWpqbeiu{7Z()l5U^=`d*A7xn(_|{ zTocn&%7befwLX_{O@C9EYW|-P0V>b`Uwv&Y?f<2m|K}1){HHG)|7kDsP9Pe-;Xm#J z7V5u+(3<6{)GrpE+fS{#)J)SsGmpsm3b77VWk?5lEI#BVUtbpFev z@?dwDWD&Ws(J)WW6=7B??MrW~whWiRFcc_nW#kA}p7xQkvO>Z^|C(HS(ETBaMgyE% zh>tBu8(uaz(kES%G{zbgKkf&EWSO~vTORmV$ucStP z3$UfPYNg&UDOg6Qs3z693KEUIv?er~kE@qh$2v20R)(t0NdLbkumaj?D+atuv4oj8 z8wRR5Fz+rP$8_5=`Gs5Kjx)whFZAU}{p$`>?*C?q|Gc)gk@Ejn`v00!D0Kdxl?Cub zr~m0~fDPMQ-C$R>zI~Lk99Croznyl}W36F)%gxNr6er5ey7CNO@8ges<>ZTJer_h( zqe}4dKrQ1*I}NmPkcJLMJb5CQ(9gdkLUkrBrpKQ_0qo`4Ktgrg%;X*;G>kC_Khq7E zGYKCETi8R#?e9@L+qJgitbw_*yWXyj+Kw}7Gl7O7Cy-=yYg=J_I%v@@LBS4mKHA~7 zY)!AcQ=}mpwLQg>^-+sjDsXEN!=8#uUQ(8M`>Z)PnUxWK_C@0#sOD^)oUT7Wb267( zLCnw|V$7CbH7v-y{HcyR4xpjKH1|Mo9XjR~2tLo^4oIUj=?#!9qrCrtcbT_8EVnz} z{YW+acY~?VS&-D!z@O~a2jm3OZ8Ub+{U5*}7xVa4QI+T6(8X`rr$2mg3R4`rXi`N} zKjYYSLu$2}g?=^fh^2b^zT3%4P?+Xa1&J+ZDylM1`AIufX}y$jmO`3#t$V3D0W+3G zrAa8N$Xst#6<V5E#v;S{yr0)OfoAq-4 zKbOFkdA0-iGz$9t<$-@m`2l~{;z4*>>&Ee7F<~NpdkHB)D$zL)lEjY=sXds!-w?Uk z9f--Lj|*ey{75a4nAio>H<)(6+BqXsBrTTAPpHQT=BxEZ$@s2<*-$n{!X4ASS zzha6=3=3f7&*EF>Srb%dJ3Ghm!wx>L;gQV<0v$K}^`X)RXFL@FYe*lF;V+FK@6lnwh@|AaK z&8h7ld!v3rPW|BIG$G-!Yyw$r`q7rVSP(^A@y3iE4xahf?eKE&bcY}4)p5;FNTm+9DpUA>iZ-O_RIUC9zEy^ie-VVEn5v8-AILeP_6kT>nJ98g zpD%b0T7ox&VH8{hegDMob?~#AwW1v5h+!ie6hHjm(2Kltx)mX=;5WJ(pfTtkBqolL zHcM^FvT-&QrK|$izg;P6;`M)uQs%Ay&CONQ{||@+%k_T_!7Bfoz247+`aYjr0g|@u zIQyG!A>p3{MKTclEMmaR)_PkJ`N1FN2F(EElMrsU53b|(sK+u%i>ni@Qz)l;ixJjP z)eP!?RGV$bX`%#dwXNgU7*TuGpzSz8n`tZ=nl)O~<8e;lwqNQ}D4Fu5lY-$>J{S^H zK=j#uCK{b*z0zi#2tT3}xSXb`G-y@VTmZSlR?Ce`C6Y|VX?*nq1XtNUkg$9iWc#h^ zx$8LRG!Fw8#UOiX6hR6X({Tr>&r%9$ll`SV`F(6#f%yz()N@wE;Aw)VZ8IWbt+3%C zWteI~MU!Z#R8dQLDbt*_9On$-lKQG>+I8Ij!f0)SK!4vkNNI~n#l0@(fU8J=RX>9@PF&;8>aqOeQmw;|2>yb>VJJB`d<@Dc&NV5ha=w`CBgBvklcKX zm-)MicrR1cx);^evyG65Ew{)9*u0;8jdmyek^Zg-7BCmS}Vi$4aL~o>GA6g;t``1+x#PP_F z$q0$~Qqv|(f`P2G2LyJ@45Jh`ay;Ow0HS{+9e(cX6FUmDzbVP4u z(_&NkvKc{An&CS&Lpu|vYuZph0EJ!71eySvb3x?+`>NJk^iD+~WEK{?F^Pg9%SAAZ z>-GCbUiU0Z8<Iva8dsRB%bKMP1U| ze?c^>+piCvRuQOZl`QTIpDZrvA6D3xmGmd52Yfn;o-9&dt&58~Pfa@vt!|6yIH0gY;8rI6KA1Y%?qj3SyQ#PxGx?%Vz%`c3H2YVZA(*}zjW6Q zqH~vJZlo+ZwnN4+quL>AIn~L9sxMH=sbwO6M!5q&T2%P?5`NM$a(aaBv))j3N)BX)#Wd zWEgL)&@{=Ba_N&(@4_eNpg8tx5Rbh67QrphmKHZ) zH@$EJN7cf7zJZB+*rat~K>9sGVf+xYk1z-;U26;)!0XpE>aS1z$fq}~N23!+z-mI8 zwK{kOr|L*?kc>PAd&A1prMY{!u;E1G9Vb2%>NxV_)2fyYYyx@0U@(M(rqBQ*k>B?c zx|ye2vM!s1SgNi!ihWRlI}Qdx;*)+D4)Jo_EI~~lU9{K8uE}%>2dOpQLjZUkFBpKA zK;`IC)g#^-zq|clh*z&xlIac}L+(~#VJ3N?)sRld-zo(&=Vq(Zcgf!rw<_gVoeB`T zqbP!9MK2sJgi@*`x;ASGnKPE$B^t5XiJ#E>-HJLm8CQVjM&g|iFCi>G{2PZ68HRCy zMGhnQiabB)!I2Ce)7vB5*YT@qvdc;Xxr+2<}73>U>Z{KqX@3XjrNA?>ag$E@M~pp z&kOo=_|VMh`nOmmH1+sNku6w=@0_`o1DDX#U0RNp){GPfPH`Fqy~o09g0Th`rl;15 zihh{4dRZx4wa0E!gasHZhY($Ek>3rz$GtJ%OFrPM)OX*(;`l&ar9OCMOYSsz$qHH? z$_gZY?^m1=clB*6^aouu(<7Qt>8YMtwuhF^-YEuksGs^1>z!w04d5XK(U})ZZ(z98^;`M13gF zV`}O6W}-2NUGN~SMLe5krwwek=PYJ&t2VY#@!7X}x}b*05IItG$OO|`>cBH*WnuCI zF5VOSlftJG5E4CyEpKJw6G>jK;|?YLF!pUZ%9a%^r`sFT+l!jTM40OyZgH`g<{+95 z5~)LIdd8;TsbVUuRp^u$e`dNRrb&d(dpg!_RdMBE zT#kUa{=ozF8s)q13K^*DD%_f#I_^{#s@&S#T+CIs=&C%U3Y%~0UwjZ=E>!t}dW%0) z`IQ@AOyVjW2e;^%pvu%qx5RlLenAYc_hQh$=I^<7a8>HM$|UTCG^j`HUoY}K^gkZ- zc+{X*MP+SaisPO8RiSyD&P#2e$h%w?ja0xz{Iu(^jwg(Z0q}yQTbL}1d4OjZEocR0 z;|y>)4)d2jyrFG45I9N#7Fh4d8x&(yBQ4_wHVe5xvzk+Wm{(d`#_y`I!K43H4M+u= z`9f8-^AnF%)5y@U#Y)>4rmnb{kMjaf&c9qdg$eb4rYin;{h!sf)w*f_(`c^NOZ}gD zgt7X+v$FfYgT2453EbIK^-m22Utv5AiiPWiRfacOR=?is?d+TkM1fN^s>Hm*r~>4U zQXRIpaeYAq)sN(p2jgv_RqM74?gK0Im{kPcj}?YW}bC4jg+@g=1R^`3^FN zr(et`7viy^hVGuO%xPdG@EWYObc}?@uJAy8l5&#B6}VRzjDYkzjbMZ?g^Nk%cltm8 z6G(+u4K2VkAQYekn{M^f503Nc2h>&GA5$FHak_vfaH=95F#T!wmHF-&xR_;{t3N!; zsKEZIEQriH%*=W?P1f8=x1%}Ied+8EZJEb*N8p+wZi6+cB#Nrdx^wY$*|nDiX!2ny zX>woV3e6$wWa*JP-N|7q-OHV;c1o>YrSgVBRfOpIJz~nrIBI?u-9>>fupDbshJ!i6pY^3IE8hqj+3bRK_97W3{>#{dkDO zR{*J8p3N8n0cr1rcB5ieSgm?ey7F!{#>} z510dEG%N*ov+SAWF{X@{xG-cl5>{Jli_h+uwn#5K8G{JDZObX?0M=++b8>skm^z?$ zRO}cmmSAq+&qixZfpxFm0M?VVwmsMr{0?Y1g==~U?7MwH{rIMgO?F>|^C*V&gi zWn2mCpqIG3oVftH#AcRo&v8No6dLYTH})K71AlDpRqOkXQ^&cnu}`xV&ZeO@ikJ0m z@Gbp|G6&&U_JD^VW?O#2n6DLBW!%tsVCDmL-s2VE7(%Amkiq6zEX`P#`DvDX@eFpI zP@~5x=jv@pS1x>diMZ7`ZT?PuEvt=SYkOlJhGd`J>i2EO`5tkhR#Ho-oNthawWL?B zxi^#Ri~N%X&7?2yYSH8r!*c2j)QK;1QZ?SmNmG6`NFO?GqpeuIiNsL7p3-iT0_9ti zE~j?d&K?zF=|V(-XXMv#TYxDaPFPxFyDj zqj0lqQ`@2jHhSu+MmL;Bwqp?2oC8|leQma5vy7ZEbxwhHI#$vd3})e7*2piZOY<~U z+dKS|0%W7P588R_fZPZf?=?6?>@s1JaV6O-RuV1OMqA0%)^1|kZOL#ocL^+9 zb?gpi5&9B0cg6M~mU)Ry)0eK}Tp|}PW5PT)M@y1LbnHOv4D z6vqdeiy992Uv0?BLmxo3!|D0$+<~m_21|nE_9?-r@o*wFzMER^4HUXV{U+eE{1g!KPPkLBkg8 zy=2cCJ4e`H^~D0`wv___n}A`U;1}6O{D=aCV4J0&Hey8%VACd18yQK+M>10y3iG0+ zWX@^@4aw7p70Uf1%`Z?4>r1)v@Ppp3)}08aJyc7PIu}7>Wb)-cLmhDUpc7qn^)?Kw zu?{vIPu>=%g-hY8O(oO35uJ4asb9eG&YA9Pn?TO^*o0Te1D9>&u}*eh?z7XN%TP2s z0C4(TUy;&$)S&1MQXVO#4JtSS)*HAsVNjnayYQh~Sz)yU10NGtstXqO1j8zQ(C;Zt z%ZKGq?R7pVhsrP$Ci?5vk$S*P^IhmiEU627KtA#&fEX=iRf<@k6WEoC*y9jPr@|T2 zN>b3+R7o*`v8jrn`iAQmChaVmfl3e!~lK@C&!k(#CABQ;9J zM{bgeKNN#hnuM97(nN|eD!!nmsFVsbL}l+mF_pfjMyUAAOi=Ne8KAx!yvK@+M|*=5 z8rB=U(2(935^5gS8$y$2BE7*^73Yn|o)YB^0bn)QElzMEgf~cJ;JfK`W`XVo6m@Jj z1JX@Hax($k5W0;QDi^p7B3fYEc>1ECZ4??b1=+^QsDN$o&VXw(OKSyd!*nUAHl8#G zs12FcfNA4NRggABNlinv!Rv_u+GwK5;Mr&z4$j6=S@R*kq}!m5^N`vs;KnqeYCB=tp})5nuxo(0Hmmd<*-lTG#W90Yp1*y% zQq3_6IO%F?0M!+S@hc3;=})19k08Iak}R(rott~gPszyAaS9?aOC=O1r5SONbXnHr zJ3qXB{!<%2cKSZ(;K}Z13^1+1xy)QOI9F}S#k6KZXKS|TDLaZD{;u;=whLyOit7avxp-r>>lGQq#&1W{taQ4Y=6|NSIwe?u5aIHX@X5VUgiy3`$ zd~354r0a3b@Y`bfosMa-`nHlgih$lb)8?DURZPFxJKm;t>u;XU_EqNpG}ELzqawO- zcUC0L%$r$x3*IO)3Noy@w^hJ%u}Ie{c6;m@BC=;$Vyi4`vBkCwoPs9T1zSs>AyVxk zY28||iYL`NSSGhv z1)E7ZmzkEpe5TOtfQ^~KY6)Cns^wCcVeTLdTVQVf%Qj_T`YWo1ITbMb8GoD}p>$)If8GkG zNjHY!=MH^JCCxVTynUk5xZPR7f1lj)9Cox@7P+~Rhxy$b`FyKINN-RuZu+&7OiH_X z+2xztboPn~=*B^~K_3x7#rrTUua4!LlP^KLsnjyRNm z&W!A{DTDqyrX%?xXLh5QSTLiGjf}QF@~qg;blE$4Z1c^Sex!|^>dl=MeOdd;z4Fa3 z6te%tgX*;2|8o8R)a#om|9`8i&C>pN9)aDBK1@6C%`jz`yzr%&vX^0sFyZ*W2mAke zy}4@o|7bMorT?$F1grhO?C;sw|5JKNoa6cn^&o}vX6fK(9$|vj)E#|0(-CZ~U(|QvSba{ClWxDtzPPf6V$nEA*e~R)3q(LH1-- z3IV1J1;;b6hB5wE*Xrf?pG!zvP)K7H21=Rs>2CMuZu*43&DcR0 zEL3hJ{?2g6@n5L(^2YyKYW%M?HcI*5T!MA|H#)iaHXwH=VB@3Qoq=?%4F-@5N5|%$ z`arkEHQ`rmzOG%zJ^q#@4R;v-h2;Uc=l_kSx&AlSOZ?Bd1h)R)WJ1?!9bT^0Ut74- z_%Fx~x$A$!l>e=6HaE)gKaY^N{!bzVnEC2IP6%K>vAi4T=N0&Eo>txs%(Ds_p?;eJ zgh|K$G^zl3Bj$LssQ=xf8AXFo2C4JK4JRxzmx`i4Pn~xKS|%`-v6(f z=l|yBX1V{LOPJC9|9!9ig|q?Gsq0%k&rcc(jelx;A>24kY6y@w{x|BT{!g=6UoXf1 zJi^M#3fYPLV?Xi-U7sY^LqFbKKqJ}(vhw7A{v}Z?HE2ZvWT|NkvLV^?yL~_wGZ5D( zsmcOnr)7oPkoz$2g{9iTA$}JyZ!ItOcNQ-FqlIcw5{ILsI0=$b;_vVjv`S00wx1wE z0)TK~RZ=nFi^H)JV}{ms!J)dUB=tfEkb6SDlR6M%y#am+5|nAj|4i5awUqpCbECZf zn@bq$|8J%e0E3Cf`vP>Fj+5vxC^N)i8LU;O6at&^ftsev#uscW3%nW%7&>wHX%`pScAT(kv zLioDKyWHmP(go%fd}n@n**-=C*G}yslsybI49C#eWyxy2;G&XfP4J-sZIFJsYi-ra zTeQ5c`By>0u^o>4A-EZj06CaJI()ZvirAkL;|Y%q z<4AR)>@4?Xh6<-3TJ(Z=*!QlrJOnlj`=`cG!bGxkmMrF{{&H4arNm0BeCjWE5rc#$ zVD)RR`{%qipZd!~0Jw{m>5cJ`e;h^}ZcX_bB>p-3s3CJDh~W&#+m)V|c$A8zhgj6* zbAK=rJs>I3&R9MQlO#OfB8}k{iNihvb0!E07o7wH5usj_b>IydccZZ1mo(44t7YCm z&ANzA5O(&sA6_nBZxL^lgpy8H7mvvu@JIl^0V5gA z+ZOST;;=tTILolylW@32nj&Ms!CwXhd??Q&Ss=hlte#^- zDDry2C}#b~|B`yTdzHe7dFr_D^G2i14#Pe++8v9FSf>i|o1GVR-qrFn*eKmNS)GvT zt-Kz|XzHy&m{ct7y;QWpXVI3nPWuX)nKjLFM8{{nwjQxu`4?p>rJsb-lGrvtWiQzX z2lpP^YCm!;t}P0UDp7sug0x5;a=b!T*o7)t*tSsKWb-d4Ojpe1pettxUfs2|H7%;X z8jFq>Iq`U@g^XqvqP!?KAefiQqIt!BJqworfg=xh?&l4}7ho8sC0P^Xb z+1Mn!9ofEX+<0aw!chX~dfHYkvq$5L6Mb}W4q07${HS-tqb|I!l5#&>?uX0$aJe5Y z_rv9W*yPYMeo2)%^?*BKN z8>an#bA7G6|DQ`3d;dQ}4Zw+R|F^fdQ3>#cxYx%&%oRDi_&>N%JwqRe+kXTGkRR~p z_w_w+%X~fTIF~;R(Cc;VRxkIR!y*1SbF1}z=jD2f{Rn?^g4Pv&+Hk9%+RpP;aPWTR z{!Tqvb3fF~leOWQUFIv@N_QM*6^q`4JRsZggs>{;i<-NHzQE)oNDc*+$$uBgpN}m} z-BqCv9H0q*u%foY7&Nd%hIe|~JK6Ld$LZtCGx!TlnCDJ9?{-#m-<+?Irnm^!RME5x zUBmz9pYKY66hFL{0;y6UW%l{IQXob0$95@@Dg{!dKOVJ%Tk< ztt`b!$ro$rT+I^Lh1kI+YZx>|C!2v>&>;4{CBNU%75n)=7s;Fu~6v==8FlFkN?Ttz)bG{ zrLk5o$NyYH>Hp>14%3YPNxMGR{=1o4{~PP8<@ldRm=FHTomT(S6U;q^apONYTj`$q z-Ls?cYGn_9w}Rv{h<%s6Ehr1f8UKy-b#wh+tC#q%^9d8+zfcz7eQ(^lE0)s=GP9Ly zh<}y%gI;W>$n3^f9zLXY-!VBK#R)m`$zXKuM?se)A-N2rGjbUur{svzCjIav=+?-? z6`GuxjC+G?@)smL@}q4@__tF(IrSrOCr@LN_%s~#dyq?hN=2V>$8JC})u#rP{3;6&E6TjUiC zfZCqBV`t$fS-a!xY4Qu*FW-Is&#zc6{?~?y|GBo&DChsV1nd4UyR+})5ip;hCIAIG zYgNORD~NeFR< zt!mtMoEQ@%ZAJeLQ;DD8R%p3 zf7ejb`;mm*ZTuIL1?7zYjkQJ!|9hiep8w_&DE^NZ$HB?Kg84%~7&t!y+(${spnTYG zC3+}x;$PO87li>UBwe%2THNo59 z{kHyDWHBVcfW%8G2GKAIlMpt!wNo#CaXH|iLp9h8RpKfcE-mTQAS7>x??Gqu?NH6@ zRz5N-hJ<~+-PUl3cr(?!;jn*=O?^%x8MatHb)jVdUGk& z#C@`hq*ydyP}-#ZbXx*_F9PZhDgp2pBwVsK_X96lB3?vx36@`J;J6=jS&Pyt)T<;| zGRCqOy$#;8lIbIzHK)<4At*_9y@VAnC(orN9USb2e2lN);PV0gWoKJ@7+(1pUoA(Y zK@yz%3u=lJKRFmw$td>OX%>W3SBW?o(}i?VO`;!r^)qyNmi#B3C1L#7Q|v0E^n<6( z)3Cb*d^oQLPgT~&_yQlRtbOneK32KpfxcrusswjuK1<7fR7p5+PeC7$zUIHGge@&} zF{ym;0DS{W0OpFAF+5;?@W3*GM@AVQIkkoNe5B$8c0_hlBcQTWp zJ;?1>Udf}H_DZ3PrTUpR7j2~nyK;q*Z-m_;eYJ&6tk4Og;3OD$eJx)cxD{S1krl6( zY;pc1<`ed!k|w)k7Ct94*|AT_+xKLP)Kv;W?1~QNUH#Wzatf@-#4@v59G?3X$$S@z zmE{Gs(!^FKw@YM;RFqPFN53q|NNQnDy+N<<3(k@m_^G9V6)UwKAoKf|qT|(tt@8GL zRjEalz%Vvf1G;`EUUcFooZl_0Fwdhl9L1*-anMivD6>f)s7-2Q zqcL_x>2{vel6^l(0WJ&DGFwDr2l5x2O}5mR%Ouq*w|XD)fo?P}e_au2jlFIKmd=X4 z!d1l%xN?I-lMYbU-&^W%U~*eF>#+)L$&nyuw=JC`Z|VHDB$o6E#B<;BW%gaq|3z9Z z&;GZO^8c~6TKfNu zaV}eFdE(*cv?$LoKW6g0eaHF4ENVN>%ZtwTf%6N-aHv7=8)|p!{zwb?8~gc_`4h|K zv7f(~Kd}~F5g93WonO9hSJ&E*Yt?nyFSiezPMc=^%yHIQT4Qt^XWbQm>W+f6eom#O zOzPQ*+O&R$j&n%c1WW2U4l8q4Jncg7Rqd8a%n7#86$CFMU2AMwqnpN z?V)WJ$&9#`{DPGle8%Tws|#43R zPwubEG|KAfp0<>i?8*H@nM8TSev1|iUm}AY;7d;Y6%^tJKE1j>%5siF2q-Ra(Xax{ z4QZY-gMu7zM|B1;T$);$0TSC(8933&6&WC9T8#l6V80uzJbd_WFq!ZPh9^N0$XJ1l-Wm_ox)zqcF#BF6aLG-07g395v#yC)G^q+2 zy0Y%#G8LL;M_*rfVPR10-oRf0+<@8d-iU&W4_K7l8~jJSWOdoS5v(ab@q+E%s5~P+ z->{+2UaUNUf1wJur5f%(Bupm%nNabUg*^S=Mm^>Kb-iB7f94XTdT+*F7{xij4dXO? z^|WF`oT=H13wsihpyv;g;P{&0Zj0T1d4nGD`f(_BY(pec2$y zUDZX<^LtWRmkOGNCq|z29^4)wHOL1@BU#8Fr^Ol}Z(=_tix6iKa=H#jq!$hr6Id7U zPM+`K6xCoX%~K`6+p!9#a-+8M`U#VYS9t?4>9@SO3kR+KD5{cf--~0q67_-@G!lA3 zNM7apFmk(P?G{`oHD8z7o%T}g$HV{Dm{ZH~^7DU!UTYbOg*(jug?m0v|95@ewEtRd zZfutG|2)DN`TuInJj&c#if=wOkq11xXkx_$ms$SisSq^X5t@C$G6qvz2_gzDTDW{}UO3 z=Zycg%~ccsrPi?Gdzki?p?|d~+(>kZNqfd{r@~dk@Nq|760y}@iz-aKdzW^)=G;K4!I~nD)!;Ip6eb#Zg2kB-ac?%N39}i zeI5|+IL;sR11Q(+3sp9Us?TWJe6KX6Jojg+Qsc9qug%DsV&IQl6YzDtRSox?H|T-G z)C7#x*23odyk}|x8b8%soDNk}0ve8@;B#jAU6*=<{e7V%IFSlr(lWKwY?^#2?KZc; zx=&`x)R59zga!qSBAEh|5j#b+2`w6SuBmW^z2|{$;CO{A>C7dwm9Q}9t{~GvbxTI(ik$z9*i)bXitBPM*|l&A=-;SnHc(w9r>9TJ;$m9$Cg%iaQOJSwlGM&h z9p6$qMe=l%I+*d#w@Nn9=h>OynM^r?Su-#{O7en{cW?NS>(Bq($m0`jB-(F(s)r{* zfiwT^P1YGoL`5nrqf&Fp43nMz4sp%{f#@WfKzaH<8*3^2r}bv3|1*~`19-nQQ()qq z*YN7e+|m9pTmJ9c_loLI+wTYG!N3FOEpWqdKI$jIGM%OU!RS1e6nir2Q;QPOFLd`2 z6AzT!p^WFF#7lfd5uf>*>xSoil?)QT`v}fNM&Y1^5$SCFbcf~6djfbgZ0gLV}5Cg-8i;A{|H4ze_+ zlwPay-Q=&DDY2ndr8K=we`-8u&rYE#V_KbuYSm2U|D1y6&Hwe3{^xpgvr*3f^9W<) ze;J)UV_Bdjm*P4>lYsy}YB|oMmTqO(F);x@?&V_w8d5A_{Rc@lTh(i@pTr-ZU5R6D zQ8tQN)k`op1`}cTirF6$v^4fF0a-4pNwdmn}4Ju0MBz_R#%e z)so6Er*P-_zknuKuK)M7hPnSQ=l?l{Qva*e|0?yrO8mzX|MAPhfBeUu?4|OcCDDvg z5mCnqwE6UNzm)RqViZ+JXR!(%Xg?h3@&Qi9A~7fkuE^CIO`(GR+oI^Gz{*k8F9|Kj zK;@Vkt)rkmPEmMWeF;1NjSEB9z3|Pv`fK`WYwFvA7!&}3UlZ~p4G=N7-(&s)v0oM z;j_bEf9Wr!+Aw|C`Z_Qs-QQ^8cA@ z0#7Ra|GQB@fBS4m)(uTzCSK>d!k3Wan=80jc%4jx0Sd~(0T%mXi(VyA^LfE>k? z5_hy9+GwYLPiUjqu^uRo|ISR{{}6i62Sy60!Ai%5MXJDS&JBxH5|!%177bizypW6)aW6DZL6+$z!x z8n2_y^S;px#X3wf@%RplToXcgW*v5s*I~9Y{+2OVpeLga1$Slk0nRJ>G-`=Qy}9Ic zS31wEXD#l&8v^TCad$Qd zt5x8gslk>DzN!nd7psfxtsxLC?*LYv%E zYr#wb=geAfoHSEIx8>8&(^`pW`-O+1@;_9Xm<;w+ggpGeX3GCheY3Gq%KzpO*f!=N z-xu3m^C;#YX3PRn())?Utjhq&W~J)f7#hH z6Zcb+Njy%m-*Kp@;<^QbKOr`_ViF8R>is1s9b>Yl#mHyv$F%+_g4t)yUnKL~ z{r{#Z|65yKE%*O(3A4ukzMs`!)9l9$0R91`@pB;)=v=tjz}@l#{`}Mt>gNYs=X0D+ zV&1fo4*@Hujz9nWf}{fzj{m9D0P@Cvqi*{DYc?C@{(ml^fK44{y*x? zb#wi1Zf=(A|6Ib%?*9uf{FB@TC_?}8h<`6(s_{Re8bJQ~zh>V5ZI1Z6(_H`8%lrTNgc;rc-}~x6!QK8p?-KrR3_0V!=Oz9y=$`ozYuvV% z_`l$b;!=RT@xQiij{nuwW~u)-mymn^FC9e4uFrBArLapH%aB|~-f-ym2t*<@mH{_t zL_GBSem8+^C-Ng8%gL?X_S_w_^iRf%*9|uRY<*=|RDaYhjUb^kN+TsG-5`Q=mmu9B z-5mqcAxIAO|-JL^sHv=>0j{o=G=lycO&Y3xL9{A0UwbowS%bnky3Em-0VmBv6o#$T}-(V0^ zi>fcWFJK_9Z>IecST%YkPD0v&m)Z3{>j1DSj5kYpt0Vd0oDTK`4h240>^N3siC}$t z(g0P;iZ|a@yr1asQrWRAqy>;G+s5;uvZD$9V#)u_11xy; z#P#}INX_ zV#WKuQZ$l@dVCPJ;e9S{M`W8<%A?x)wfC%m2;lh9xAj~k6tGcnolH@p<8fvEj*(zfu~n+u|}s^8$P#1t|)&SH zqLyc*G*5pfm?kPR_8s$|2xXQgS3DPE+l8mE7|3UJaOYDz&nMuv?%CeNwhivFNJ}6H zfY%5dATt0I5h^VCoC?8HP{I^9EAeYhm@yvxoWzAT_;5E9U>lFcAUzQr=f~tmE5qb^&D<1JxP#(RCtqi1 zL!Slp$@uYx$JqOO+md7Y1eQdcIcv3B{isOe&5eko`ld*?o9hiSS2XHZJ`I)N>KF~R z;_g;OYdrOoyeHWdt+$eu(IUgGd=xJ%B2%J`^aRl9KUIk$X1y~Y=gSZs5Z@PHzsfe_ zZ}{`D4NDJPv_#%FRr24m^ksT2xP(vTHk@M^a1cyWLvcg4&+U5@!4NL~tn(&M!!X#- zZYJc{w;b{TTT_AojV~*Lw3h+fcQE>kscLj)x?E3Om9`ZX=ASv1!ZwF&$r3m^ON_~V z6`G$z0*bv5B??VLS-gt7d0hl$saYR~n6C4KE+6g^a`kI`nP9KdBp(V+378JZR%p6$ z{r<{im`@|5;=SSg>1j#v+U9$5SlRc_`b2!3B(X)poZk@dO_5*LiTV%4KX?$G2%i-H zg9N(PdSHkjE~+6X>#MyZz~mZ1G3pt9fwIHrT``*aI$0|gI7DSHNs-6r?Ej>y1$$Ul|B z3;*~PfcxmS9-hf)SK&(qhkG}{x+y--U}V_2)iBJ$H}9X9=PEM{jHLl!+`#7ek6(Ur z1Zh!QJj1crdVBQDqSpvJTR>SVqyvt}H^V0Aig-I27=#r0MM_?w6+6WaAy zRXNz)m7~r}c7rrYdIf=6PruwU0=K~3X?9%{cT3a_n80}n6$?9xhK-XsZ(gbv+BN7z zkNqIa!e^OM`w3t)BES~}Fg?deh65s5Y;By-j8{B_J(Ows<{fE?j(afeW``KlGh@dI$_>c}$*ImIi zqujG1(=U%BBgU%HKSIC#9pc<|isy?J+`&`X!oNDNv&Qky)wzW0$+eLb?jy>C9;fSz zVa+*{5D@WxW$+nD4F*QQtASf|z2Z1i71$Ee_~Yk0XViTu@)flI1d?9^<~8LWCv>}o zk3l8RYA06-vLEI)f8?ruVsnJ^hee{5`?%i(0e=ztWaOPA5SRROX#c+h%)s`W zB?5EP>B121p!0V|ojR@Wc*F6%eu5~Lr%fuAmr>vS>gk_cXdgmtF+V3i8nfQ}zqe?@ zcQcVDBGF%Ze|0xStS498aZ9d5ByoRu_x0#ko_zsUDCkV`J6u1c_I%F;lXG^h{bwd- zat0)vwI54%_DhUzB%=IpF zX=pUy%kcGpiFU0_-gJ8v6Bic$kYRb5_CBS_UdU3ypyA^p!8XX4AFjeRC@*>z;nCog zeVS+v!UO7iK_4y+I-H&t5(D)b%zc`H3 zruypA75%d2JDi}Vo8>5?4lk0=g8T9et_0UsI$k@WD0UBVRh za#I`PFawytFCOF|R&q?q5lT$ny-Jsr+FcQhO~Y&H(ZRfr48ohI;(RH_=ob^h7YU*- z)lLC(YhY$|Q91*7^DkJ5!5+`gj5orSK%9NgKG)T@?>(Fl20y>|$n4UZ z9R!Z_l{(SP2=B->sXkB;1|-9C2?J!7Q0b}6cRl|z88}Sr8K(~AuHX{AJ(I&$Te=nd z=S(crToQEHbo^mG@C-&KN>TLcSM>AXj0s%6VnnoZ7 z5s1K}QO%`@9%%mZjetUk}ASF%XSN zdF+bxnSinL-K#i!hkALEqbDyg7^F$(Up#btDR&wGmjCj@c>k-ojd=D!Pgf#Ce=GUH zI<`~E51}2armS=g;oD7`Cv@u)m&sWS(T4$P!Z4?dHg(q5YmxIQPTKK#I7h^+eT-bN zqK4;uY7mrn0O;>GXM#&P7#D!w6#&2&E8TSoD$?HF1o14W9Ru3o07n*EU;Aw)hcHZ zY73YYj}b?M=0z)IaNcGRQjYHPKD(5_ZzVEkEuYDqYW+9qf2Mskk z*BDlrQx&D(%EXhbL?~d5{eRf>^S~stK-HQx>DimYEFiLWc;^mWx(fx;yGfv+ypD4( z(v&V)e)A3TuiFL?@UOo&)*t$)(pCbbyd%gxR-MvGDhSrXmcDOK`R8$+Gb@ojdKw5^ zJ1nfs2I)5cPDol`sn|ZDh18Xjgw_`48Kf)e+Ct?Bkrd%(i})}0;LXBMI3`~Lw{C=h z;MR>$cS}HT83fwB1Ji`3cbDEgYO-RsigLhw7*6}mAdU^&l+gso$JtWYy^mAhTUDC* zSf?73w(+6AKFR+!Ke+kc2c9;W5B;e0AzEkab-PO}ZE((=G4DytIC`XMq|d=J_DUed zx7wo76^Z6ebkMBC>5u0Yaqay3 zbc!_NJ4)aEKcJqSxZ{ugpLcK;c#h`yOJ!jjhaQn|Q3X!WY0@5A=N4F6?q!9`8K55O$QJTn7Dm>^El;S9M!SrQMZ41juQ};YxWu<4T!EvV8ngh45o+&ShCH zR=ahLh7eW3pHQeR^$%221+5Sbzp7VimWWczOSG4{faJk0viO+}4eeg!Hi3m@_CJef zLjH%Z%Mcw={q{nI`p+02{hcvJ>Z<7&es#cT1k?;BWt79O)YHiOY`!$y-1ji@-RD}H z5iP0GC&>5{*0tRV1+&eZ0Srtg<1mmf_b!mr437z!N{nu>j+XZqTt&d|ZiHf3PVpM> zw(m&4P-XYUL^GMF7Bc7!sb&|x#D7a5onnY~!n+=q*+_P8qT^4X4ARDn$)Rcrc;ep` ze92@eE+bkKmhZ1r6N#9Y!-?#V>QWv|Aau}+RE$YJ0R7^5pWY?D)Ab>}<%i3FqY_<0 z&&17;GuaT=iDgzdoO496_=So{6{2~Csl)Ww1}(a?YDv|QR6ucGsvzKE$T>ahP)$?F zQu+09l)?wnFub!F#?0;3LM6S+I#$g4G*rePDsCc;ghH4;ac%34tL?+2Je?TfTI?|9 zysb>P1li4*0F=g*my*F-+O{X$`mQy|8+>FhuT?QWW1cyUY5MXGwj7Qil~3XnG;8{J zF8m}!ae3kO6(=nK_r@clion<&qobFfz%Q(a0U98v|3)U0{qZ-RNL5R_d*JiPC+36@ z$MMp*vb=OphZedP0=;h2ii`y%8`x?;<@WSAxKN;fjqv6R&l*V>?pUqvr!(|tZQZ(T zkhBf1$re4lK`IXCgT=MCZdLGWhjy=Jsu)UXJ!N6f6F-Gm zrXZ8%4{E~iF)-5$-0f==;S&7Kot)nEla2hHA;}lNjAKCfRKvVPm>Iy?3Sa=Y&&gY2 zyanyyahx#i>O$&Cg%U+y!T}cVE8w3dK=Z#Wb{_@gUMaDEz4$fE)oz**UdaS6=gy}9 zu;ehz*#uq~UB7VG0{}-fC9}zH@oixJ8TkERe|vkY3OIk<)W0-1Yk(*r0J(~q1@eY* zzc^tf>?GE^U!K{W0nkr)9JWA)`@vs|gc`Q+Rq3LY1wC-j*A3w?elgX0QE=L**7yQ5 zfIJmAKF+DsMKP7AdU)xA)*DH4o*Fa|v?u>9M?oau)#0l+w(l^91Wxf=t1x%(#d=Kim`=*zQkl2COT}lds{;0|}I} zpymAU>$+-{=*@}twF`7t%mh7})nevUVbzR%?4N)5{7~q!Ckg`xYm=0PJ{$VuaNor? zKI5@(bUIR6x6_yvs-}ev$ZK24i;AmcY*x_4C(SkP>^kq08NNKzdd1WCkW~*1)Yp%} zWqP)7&Es!5##4~&Q`R(WU#A+#;q=I6%9Fh=7!rk$1VyXjVN*7Mj#oHyztd+RwkHyPaOq$5&*{IeutPy6-aZ zX5ZyH%K5KBf+J4jUG7gB^nNu*MYyH3aGz;#yFLxC&*UUAx8(Qac(0fI9bo##;jq=X zbVE)^j!=f>Mc&`*GFi_6L(Sh4!x+FPAJuXRDmzTaDAo0!cBi<9o&lY|uyNLs(d;@e)kVRy zgqEkvAhgc-4-~M0f-3Ci)$RcJECuKjHSi3&x6Te%0yw#!`IUQ-89vOIiYDWFWO4ci z=Qb-Lpg#~Fm!BfPSHowjfB$-{zBv)bgkc!a!-~!gkaTexe~lvtR2B?oUy~L?OyA$M*p;%lx4A0H+Z{+&^~ zs#@PS6PzWq*iSDNGIx7-@-qRyR<*V+G1iTUh#`|@JJ&JU^O}S0jX?ry7erd5XxfUz zLfw&T%{T5-0*4OWuRV{zV>&MZvpu1s>RGE^@s)z?7-P#f;x8M$dnkHC52K5SEC!xm zFu-k6M{JpDr*WQOy<9%IKhp$i#5iTplv%QCa4VIpnVd_o&`0h9EtdB=c*|?vs9(Nr z@K!r{^*(M`wADM_mx$ax)eYRQ)He=tz6V-0AfPm*LFHmWf~}3|yZus}c(~vEBWV5G zeH3$fH)%|W8lnKjPkOg9#G2FF)jwHcf_WbfZuzk4BQtJpbMz>lDogmi) zFtGe_g4t@gV80m&$N~APx0U(3?#)gCtCt<-TOt*_^RiFiW)$kXg>sJ@X4JX8(BY$< z;7&|$waHPb7afPJg|pN5(a*4%4`>VZwkd~IWRsHnJSI|cT}iuWbPS_b&oR~qKEOmF z>>jdbWeEr-8|nd^kfsMWDv%Ugbe5AlCJ*^596=^sNjI8>CN@nPOn4L*@wQ)|YpCzT z?f`-7&)k(g&t^WClB~#=2kgWKQ77b+N-r16XwcXo%0}%jas(;2KegO_n)xIpb>;8K zd2pj|EMq}&ztm&@rB~mOBsl$X6cYuJ<6ecPJZShmevY4m%?GJP_nT+d-#^(SZ$%S}Fs!9@(y*!NtG#;qPdM!FS^b0}MuJ ztLujbWeQ(if~zehmOiqZSaJSdAo(@?Hkm|$Rz}ZAS@U4TNL9WarX@$Of<`g~7#MIu zMKns`c+N*^!G*`=Y+mPWobG2=&15)Iw zvH;U4`~Agz)Tq|OQg42%R@$l`o`=K>7Y&c1{O*MAmr4dVde7h&YLx&+0-_{*zW~Pr zt2G^L#HahoKA$mvoqU} z@uAK?pAj(3%JUI5iO|&T1%i>rW?RU~LwgjD@@06Pyky`p|B{u4*`dU=6xWobkzw4f z!?z>nfrX}4L@Dov>xfpG;P^EI1t0Wao9#?0-@P~O345PWMnGkdTAFn6P^q(5C}zd5 zW^eEV0$a*>deh3=Eu~@_tY{>*$Dv11TNPy{|3l*u3I|=NVuYEH`8JQT$_4c51(y0J z2W$(uM`yWLg)&BITTS@iX5<^q^w}Fbd9u|^Ameyj33jOlM5MlXP!P{^mNxeYuvVN5 zGuXq!yc9Y32G%9!vZw!vfaEKGE3Dl0#nB_I;h=DzJYCggBBp)c_uU2Vpb+M&EBJaI zu@iaq_nQkefgb5Xf%`QBpNS__HRw^yBx>`G@Ht+d-(5L3v5IxO_iK-J)K5N`j0E9y z+t^@os#z3!^at2aXOl{jYQifqBLBJp1ZhMgvxyZjGD09a%1^GV)7e6KH9;l#hviHAX-N6^#w=YI%KO}k zAb8FlS%`Ha) z?wY#$c5AL@^SUV|+zTZw;}OSYf5+co0m)7Sg&yrc=r|DbD-pJKiS7C$hq}+#V}FA; z5nA0^!K1<%zKy!z*A~1_;dZ?nl)zTRSo{u-ts-nRJ>=P*!#g+68Urtmd7mGPqFKA&|i zd;=WcZ=tI{cjkB-`|16P{^b(Rg8_j_*p?KOQspjFVmcAmsk~?C0e9&IXcE@MoFskE zgKcgZnk;YIAJz|?S${$-9C??|8@4r4j5$A0&3e_pFu&3+l>KproPQYnaAMl!T9IBA zFUw^%_oagKpz#gF($m%wIjER3Y_z+S^F3MgvdnOsV5tW4`@E`$+#0mDs+Mdc&qjew z!%nyC;5@}eXca>I#;|2Ze}yHOBMRnvUj3*+hHp zAUyA3?nnpllFZLuFIou44;^R4bHEDB4YRO}ND3x{lVPn`i z-Mg2^Laa~E*@nX(A{t726q(#g)Q{DDbg6xiiTDC0QmHy~J-HIlhzSbRpDDwM9wCWF zC)jDFU-j+Cd&GH>S&L=s_rgUUL?j`6obp!DL`v1R0SjHdXumeeNh-%!q&wk5@mx`7SrQAE9#eBKyIo4&$gGuMw#O=D<3jF07 zzTwx72dEurrY?Pxr+D^nV{UfCpEMaQNX$oshqt1GSFCnW_Z1qCUXr{j-lz8ZaiQh6 z81+I|{Q?aYHw=vBda+Cvg;G3jWcsCT>d!EbN^;(jx2T#%qfCEK!*Q{2_oDmehUzEb zok6acS*ta9BtDv}2JYw8O9{EajR`~1K@^B#W_;oxq ze8+2c79><}{ySG1?*(*FUA-s)jVSP?>1JT_gQzvi;42^-}8LrburIZ!lTF_0Ky0S~8M$Q5X(Nt=Doz)KqP6csE>zV6<$@cwYVm)qVAzZ0UoKEJuC(WJb=KGVD9!R}it&HN zh{>ISC#{UXusF=&q}ZWXC{eP1>!GPb1O}|DPu1RB2ex+bmC)YH#Y=61OLSq{^I9dF z$EY_*`SxZD_u_Po4)=fEg8^N8_&ns}t(FrtCE5N_wDW$dka=J5Z2eqr#37%K=rrP$ zn9K34Fl5fL;wm^~!E5vb{q>B2Kt6GWWCU*ISTB`AP=FCXYf6@7+nBxXMU!v+_rGO$ z)Xe&I{nWX=C+-8Q(z-firM;J!IE346*0RLS4pT`?gKs}j)|5B#K=v|8yViqsM#@&| z4|GOEr>X6eW?2@s3*(($mUxXl&H366eY`H#8M)i#v`+p8{z{?)b4MmNgjY(YP@pW~ zpB~8R@}`eF#|80DA(Uwz=-n2c1{VH=17BB)6R&{gAf0=lU?S@>-T#%`;Pm2!TTjq2 z=so-n6QCJb%ingDEzmgK>culF;dA>H+a)B+xK(NkRBk#B%+<%ivgDe~00UlOD1#Fs zePdZ1Hk%uXHw)E|vJJ(re_qy|((jv8o8^Kcq|7hL|R z^@;I<)yT{ie_j*gj|x41_c>{ipheD{dR(?_rd!nvc-0}dR7{DJTOJ&F@V$$iH?n7Q zit6W#(Hq+_PSoS^f?-8Cg2rGa;sHCL#+Oco52+^?LLa`TNCtlJSPh@xAD$In7;5$K zAu76Nw8)_(XI*vnBOv039z6Ki?m}qQixr~mU zja_*f?^BKuTtPC^Xy>t8lJ6r##K!1|Rx~l^T$zoCo`7PzH$Q>YOW+&prNKVF9U@?j z<-}&eLAdh6BYUZ6Hlo=!Xqt3KAievQvDpAZ_3|niS6h4rUSC8=S_R-pB1St8SP2IL zb=sB5H(*_)FXRF*MZ_oaYV{f9Y2DuGu!YscVu|N!#Q7ln{O#vK{lOjM+I9je!a@JtE?3GJT zI{6uxAv^JB2}XR58@x-?#YFsT^VfOQpypK~@(*^&L~7;7;Q8$HTGqz$yygc?ZkpxG z>;(+gx8sfskf3SMgJUE4eIC&au@zm$rdBd@r9TDsLI~f_t@xR`&Dqj6I9aekV^>tP zoK}UO<u(BP7DEohkj42nL!pqw~lJZ#K^t@$lR zhX#hI={$8n(5-W8t3Y_}Zx!cCG>)vH2lCz^UIj1gB5i8Q=r|>J^dcj{=I?xS>kLKn zPdl^TS?RDLm8NeJsQM2E1s}QS##3ZDdD3<$-Oq<%DwWP&J&t}h>Gb<52281SAy7oF zqU7Fp%iQOJ>Q&;wc^GJ4^0y6yzYNkwCk5&E&ROTn}ft%hQApnM>uS*Em=32ffPGS zx43U&cLE8edAj7gM^)v~1$4<|m)X^yvR}|Vh*8*Q7w$jzs^28>_2X?ZlMbkdQ(hJX zrOg0&Qr}Ua9ja?=P?0h_8=Hh1_^`$3C8gc*U1irN#uH>3mgSpPsIyho_iv@8xWfW! ziznqzqsq01o~*oCUh9;jA(gwH>wBLm--&>L2q@6nu;MS}De@u1(5ZGw>R%ECuW)`S<0JK@5 zBI9(U(g1L$1We;?Xmp3&;u^}eYGz4g(O*HzyQP6j=0cc7x%M(J#_%e;^*}8t-k@Yd zp7H9bd>Z2gN8DWEo`p6Y)rF;Sa7jNs`4!8P3_1#4m}}Ug)#%t9tlIfE7WoG8J)-}G z-t?_t4@{8Zu;+Y(>m*bBoNZiU^^kAv1&2(!J_kv!REFF>Jgx}7{?ctyAR4F$p{7Aq z*mbh5W3~Ry-c*g&F~=U7u!Zok;zygKCo+*w?FdH(*sVF>N4sx|_!YoPC+J)0 zocz)-5RJBoBNYS6mf zi1-x!yv2PY`&XZ(bRor3W}BbxY`?MF|2Qe%H6GNXwx|eSZK-jzB(PsXo!-0Ulho|* zzGv4!_8W|wnqp_g&Y-!*TeKfsxbR$kb9miE=S#s1?kkV*x2D&R))^jQf2%*0uOT5E zY5(VKujUlt<%WZY3sDi1f6cZ##2jy;N$qdX*mc0mB{H?F2`z^+y2!VxYcH8}CTFGI z^&3@&TaP!b`42txG%RO7=G{D#G-ia<{_>MO|ER7l(@0o&@XC2;&PPJcAPz6k?R8sV zErvp*vV8(b1_!Z1yFH)I(>s3vD+VV~0WM^D&ByJGHY z(No*1V0y^i--VcoZdk$1SX(c2EBfMQ=p2Qv@t_nN9}Jks0QC(ushjZ8961=ANMM9b zjEQ#AZ^1@qH!ZH)oEn$n>?%{E^z!*N6Icoi&FUh@pmv6A30U#?Q7q|wq7t~k`s(U^ zX4`%{bK0sDfq=m(x1N^q5J(pM^B|mgD`p~53sdM5CuNEC&_;lR%A?IjOJJdU7*2&e zabjTMVeZv+#bNHW2bYk#v9nSFvfRl8Zj!}TcTFwtZ)UMg?+a(P^7F2!TKJwhu2AbT z0j>$;EuFK^_pu?K^^@1&02c0`YGs^@pz{{JyHYyPY4zq6#faDx?ozYT-baA&*~p95 z`bRwbSY)cjUnc7z18<+#CMgJ`1|( zQdPIByM9f^d%UuL(~XJ!9tsA%?SA#!-Ca;sUY{Vcl2@LtH@K)&&5a~E_PAxV%GEiV zQA|MRNs{*$X881LJazDvqFRMw+`5pVg=Ddv@gDx{EA0_0)Q9$yk)Z-$H0 zw!8M~-L3%@vu*Kn0bgO{ZLV=by*qH;vc=Epw68q0H)DrFR*&HF@T0-niZ*?ZIbU$B zfh>q^JJ|6I#Onb4VN?fe32Ly2J-Pl6Br^}x z{kuo0`4;G_rW_D+jnQ}n?4lI`D0})gmG3JdYQc{49U%)m!K91Dw;dX#<`)Kk3jUpO zX@He>EY)ttdjwwg@sj0VJ2_4N9M6L-wu`l6n3TZN1J6qk5eh-P$hP{ zUl~#+e9vrAuJfRKoays^f&IH47q}GWfwf-S9J*j_y$gY>N1&jn8=$M;5i{G3sDkg^ zO(D)=$%a5i*4Y7Lezr4fwpilKkF-5Ctn+bYv6-0zmOpi9fwFJ&C!h!%sc+WWW=Uaj z-E~j!2LM^kanHbN+f`WqEft6BxdnBO>{&YR&517bN}S*LpMO#JY+Jm%8&_F!MTiI) z!=b7^Z?8kDW?mD&l`|T6$!)x+T!90kZq)i*zJHuhqIR(6veJQutXI`x5XqSvvE2JJn7n3;dycBsJj$1|+*z^=!X09E`0o*t58krOHEL&HkS z;CM$w$s?dF4FbBYPmF`p1=%{UdKMKU5zD8o?mCa^QHGAN@}96OjJKb+T|zCSRKSk| zhf+p@hi)Gqi!}W+-Go(Z&9pX`y5EnOU7M*W@O}eKcujX82JE{c%(r-e z?%D8K?mJ*@T}!CEdb)W{;!Wgt_4=hz#Ke9LML>^ z!U3HvAnBn4j1OZy0rLhx>yHME3a=&mGSDHXnxP&~AE=hQZH7hb&9Vx=G+@h_uCU@Q zxxJayQVjOfN$c+Obzvl#69VX zE85oV@#hld@_$fBx$X`Ycg5q)xn>quJn2trGL|ZY*FZcg7)w<@Z4en0nIlyRXcyCL ziVqN!w4Uh`e^0sgUfmfi!2gkWB$kwhnB@2Ls$fz_K%S{}DBwM|T=BH-r1Equ(T4Kl ztsoLEc`~d61MT2Dv;zw^(QoyikZLkNU{`q=!Drj(>Q>~@BW51p-Gz?;X#cyIf(&E$ zEwX(G>ngwM(WI9Gw0lgCK>}ElQ~SUlPgvzwIViX}C@lk^Lxx%7##aEA{oa`HAyTh@ z9FxQGLl&<9lwlTXAvo{uXrJ|!#2soeDM-(TOi}{qz|GUF>f!Dl&KSIXfa&r*m>cbY z_|KAve$yj_a_wm90SrH-8q2^0!>B$0;^H>Ul9QMXz(9=%>V}-_*J{*Y*b&(^zy`L_ zqu~BB)`c)&Sir9Xx(B*H?&t-`UIOtWeHM|3UauQxWj#CHI(}K5 z^TJ~gS*pb>#9-n9_@<}D{LiVab{=R+oB?SwN*Baih>4zwxrN7sD@&absl4U%9%wnC z0Tw_8-~>HV|5M;rfSyXW$73Zlf0-;`#lR!N{8j z`4IK3t+NsOzRi+&x)8#^HOvPpqn<$p8qAk)4Mv!48p*N{!e?$$%p8PUn}nrQSY{+T z2|{2(odIw!G9m)K0Rwy@{E~Lj>1i8vJ3@9+$P6xvEE4Vv(0pVpf#STt#4~*vjWt(%{r)P6X+5b-oYnQi^UlhxTo$51rLUei1fa)gg}-nRzCA-JZZpj^>Dg;4$ah1H2T?-n-ImVklS zZSoe8;cD%be;p^gpy_XQ@>1k#)Fz7rq5)lM!EtXO z99+;!FZ8zw1RthVzB*M^WX0~U5znooQHdB@Q7+xf0^RUachL@rM!(y!9x8tT>?DDS zVW7v#SJ)Xa(EIS%0oMVq0TzZB0&AzhJQdXhID<%#U7KfNaE{7Pj z_H7S`7*}xH>Sd;ztwT&;A;$fKr@N#>4C+NpMw>kbES8oKZK7Q`T{4egF7iqLqO`XF zD^t{7DCKQKE`6TEKzk{H7-KY36yB>)Rf0YhykrpM(AAy3k!o}=$zJqZKS?7MQ4ILU zhS5?*i{hE+HiFo2+GxJVFRjhlF$C(Lay^Y`xJ*xS{%^HA$;&6BO^^i@5svwYit|!P zS2R7 zp%crJZL>hST$AmylnE@V=s^ZcutR?cvhbQ7{u@I49R2AZNjfn%4TCFxLiRyJlE83J z?=dLilHwqWVEx3&7EltjxbD zh8KW}7L!j0!Y_kn)Lxc(pjaaYe*Kbi{%8&lu>815bOQ`fp*zv5Re$skKn%xwxCL+8 z4>6_)thzvBdR~!)1K&8I9cA-8vhXj>=>?Jf1f+L1YLWd-9b$M9+|z%)-yT~4#xAoK zc;p|!NBv%&@NtMyUEsVy5wK*ZO3cj+KzyubN?fudM4bNX-TJhEK>3sH5RxT{ZRqp} z@^yvlaVF>zu7Gnv`3~3s<=xan3_WZ`woU)vKG9J`VCqw_tb#u)jeH}FK@B-Y7iLho z@ZYl}{BLL54;tO*u(L^cpoAA=@bSaanT}bMrbISlsDUodR^&*$nX%A}0$|EIu!j`Y z4Jxa!xB&CYJ_0^S7Itf*j*n|GJxw#sD?dLj`g9HqXQ%0^YX=5|ysMem@BYUl>skPw z9zR5|P1^o1ot)I8Ushzn8KFdn?Bt~N^eu>|WJ20(BYDhMuJlrvI!n4Iz6%=i2Powg zz$zG6@)*xz#k~i7nv3KCm&w;Q{&uz&oj>_9V;e}2RPD8Tv|79WE>Du*7T11puVcB7 zTYl>AR)90355O|pJsdy0`Zsh&1yo1fDG-XiESh;iCQbeHNaC?R@LAS}hmqs+i@{$H zBcI)+eJ14cQy3qgdp(wsX=+RazO~*!-Dx9_0HW52&xv-s%`$S ztZXkmZh#PbUa;!Q*5`JOgYqfO9cx3oEM2b&-{m1=`|~;x4QU(G$Ct{%eryzz^BxTT zI5phZ3(@(!cjMtH9ujl*9`962hUAv*T89{KFtjw`)U2{^K+)| z+4s#Nvl9XLjn7T+a&J|X*V9nTJf=cArL3Y5Suj zp*7{8l9WIebK=bo(p@gm&A{68u1-x~9zQ=F`F@`^h&}ClA z4K*4pQTuogmlA_gqkdL?yOs5$a&W#!VPOj;UUyw^7qa(7r{F1D&wm#PH2vy`k)Z4F zJcjLq)H+=M+=}P`;L>_5n0H%)b_E>xjspy?0C<0$+y}U4toeB$#Uq2m(22LO#PhpO zr7;Q}-p`r(S#iXno_>5_#USkeMW2F`wzC`2R<~N;?>L!nXLKUmmbkP-*lion@^L^f z{+Ok>3~OIOiZ+9nTxMS(ka4ZxVB0?C{W9~>`r+W-`k{1_I}LZ|Z{sf<|Cs9^hb$k% z-;|E4%b5yPeu=dDo`bZs{iDHpsyI3_Q9t*1cCX&DN;+vXaYo>$;HlrNEnlT_p=m7r z>lj6CN3u}_*@D{qoVAtO=#;@$8@`tV(ApM9_nc|jzvXOt>S}lGwHu}etT~_}y509f zX1Q$bPL)9eC6s=heF!bQZ&x%gp8K087?43hqv^*5yyLfgH8u91rSGsqnGWHliW318 z*D$6KDg_VezvW1_VItODU|Z>D7w%3bGO-fzY9)R16wDY+H_X0Zk8qHpujs<>UhwfG&R;ivIgCii5Q6onHdS6Io$LFBlsF7z|87&2qCCjw7@QPVT1xWT zHh4|$OjA}ML6x|IMnpA8d)$%PEZ#*6Dywxad{n`i`BZ#a@u^N?oX6QwT$iPqIP&=o z?UCRed5A>2xd>K~%DuRvPOCvLrz@qzRjUTLd4-WNu=Oi)m2ZJx{0l7x)tx-DozqhH z6OQW+X0J%k{a^dX?jE~Meo`E4&*B(LDvM&eL*1wvuncpRmf0ZW==ZjCes+PFULR=O0CL(hFM)=? zs{bnGhq9H03AbgYg;K_<4e+kj&|yfGM~bGWHl4*T1~ zxi8~^=dP6PVg)#Qr0PK9aP0 zE#7qGK~x{-=N-w;rf12POFDwmsc5#WnEN-b$EzbJT`&AWe*xnOdNC~%ok66CfKKk( z%V$cMh~f8^>w#s-%kO+HE!_q(6g-17qf8f46mqRAcS-dRV3xFV-I_;d5I`ULAs_FO zMMsS2(+qYXdK!{Irq4IL3=DZSbiz+5vd=}v_rdf_qoqa^C-(Jgj=+>Bhi}~JXBQ`o zM=dENg@3&8uPxUnEqvhyvTWJGg#LXfg#IZov!2WBk%mFM75EdZ=Szr$b-T@Kc9U{^ zFM2ri3;ggLk#OFLxq_5~HMBP|!zla{qL|8uT)hz;|L!N`y~smVxA>^@+LJnvufY1?`y!W&?m(V4Iy*mBXo^PRRU3a-rM+^r?ioH$4LG#d|tHCI} z+{Y7SgO7nWXl$g{)8~|e=cDiKi=aj~IFjX&%f0fM$mNoUMyY(KjQ`X-$)|3cS{x^Z zt=oA4_?e-O=rMr&SER7tn#AAK#;IUfdg(V&3V}Q!lt_l1*6A-p1aAF5gr3+?b0*Zc zJ7b7cA+h|lRmXKK-;F-_bmC$pwX<;(nlbpj>+_DGUWMdo%(mj2TXg)n%z~j3pkh?n zzLQ(aqb1`4g(JGhm*e9<5bDHXnxe8u!` zE{ef(k2wdgA%qyFxwv>n-z43WMx%HI2s=ykI47S#W}u=egZ%dO$vAH5V>_Q-Iw;*J zx%rRPwp|)O`_N}eJ)5(os`&nKsw029=IxUzS(9_J&NxVs*!92sPNff{IQV+uvE#fkTU6rmn;*1|8eBS z?rQj4n)sggpNg=F5?gVzlbKO}hpWbAk=&&Ey=BP`nX2bWBf3XBwb{GWUvHjK^# zxXVv3)amc5g7t3J*a#wDWJtDF)o zPN69t=msTE3fbWPg0+g;Sh;6R2E651nR6LIeb5;xx=37(DnJTG+u~?9CmTOQFnp`X zLiq6U#Mo6&jJ@T}(6QA`(MU-*8UvXg+-5cXn^T|T!Jpc$Id^BxbeD?7S=}d`ZEekV z>#|L>kB?tYGpzL}?c6N?I)U9!XU4fLA|o5F_I_H^yIl!T?!Gh%QyK++w>`UaM*`}l z<%!Q(%_#o|(?Bf0EB{v?@iDo;1`F6afyOlWM%7eQFIC3Zo)^@lW_IvUXc-5;lV7Na z+yt#`H2FpaTyE0+qD{=M1x!?*s(LFe=?kBje~Y*)I|v2!67_gNWw<9$S>d7YGbLEi z&4uTq!f)}8=f!A3{(gtCx1m~KGrlH3VfVZyRWQf)M8elG`-6JGs-j9AS1Dj?w(Fmp zoQsYH`$WN5H(*CQci$ZZo;SdUG%z*da}%GTa581+}5 zsYvUw#F#QY;yttE0|}ueYaZyuOXYo%rvVO3HL-KvDNXaDvOn*RE?ecUH0E)1vntlX zbhYU2x|hD^U1BXh`((t7VpVo}*CJY3;C=`^?}KeyIidf=yeD~v?=Y8CRhyLEEeCxjF)qP$ewTS7igRu{=NupPGi4MN#$7gOe@VqK! zTno(krM3Osch`N-TgP%Y3T8p>pb2~5Y!0e8;61cwvp7#qr{2F8%hre(&ePXPNwA$APTuAl$*emU&lR3UC6 z`u|q+zgB9i8U4>HK*E&t{~SVz|MI2azu1vLCWrhe7Ud5IQS(zT?6#veGmsO!8u;Cb zK0ORClVOUFd!6J+NEz6RelqO&m-t)Bm++DBPlkhtNmlSDZXE7NjR46?LfO4Cw$ma3 z%c{>55B8ZnBkAj^13cUm8Q-K*fHw08tj+ zNbLhE%&==8(8LghB}QF@{KVtvBG8O=y#!W-)J%Z+x3oxQssGR(KvW?FdiaVsr!crG zRss4;KH7_rWU=>@p~_yFtW|;kqFAj6$U=}}be1d1N4GH&1vb&PS?AhmIB$R zit%gd6MS!t%&O%ItpLpKlrwtYw%Idf_^RLVt!-ot(ksZYEjYt01A|M%SdW?xI$9-M7)6rXL=4*NPXryZxfXo)E~6O@B%(3dfGZBPF&}0PbEf$ z3@tUjfe1Z4`P~{M@42QHhF%d}4+H!EBT$KAx#0*bRWyABS65Gf3_s>{+(()*Y%^lp z5F?AJ`xUCM;cD6&@O_YzJ50WmWia4LdB>=Ly+NlNB);5zDURGplq%V$vn`iEMf>2&cz)8p%#ABQ3h6RdT8m2G zv;ByE?IF?B>qnrD^9&Vx)i?RpLEl zwN*Q(R%r?5)+5`n7K88BCrO%^g@|{q)3sEgtIE%5OiydcAWF$eA|sL480UdOZPADi zbiz!m+ucr>a(afu*1x&V+oARyb^=$eLfD6g^yKW3Q*THP#ev+mhkQq;=f^qfL4!6c zEC(oK@ro{WO92g4)b)}p^fv`ze*UWZ2Kyy2-`C!dg4vC1o9=AJRBD(nTrH}YO%3{B z?7F}$AsRvX;6pRyTc51A!JS!Ag8PokLp{1~#xTr5z7iNw*ud(nSi{ zX~uK5oo;mD?1Kr#Ai~-{=21xXqi))dqk$bIn048YFh!-w8j~Hi6q_Q(WCavr8vhy576N9944qV2r6AuQ%h^y-|scl}!7Mi$2FL$4O;!4SxKQ*)K661w2XuVvBys?kN_UYmp|fk9M{vO+JO9 zj-b+S$SDBY(!)X2cb0_;Z#y0UNe(<(c3qul1WY1uQM@p?tdh&i&SNVSg_nC?MKFl zi&IH6b7}5}=yI^QXeYf*wvj!C#yQGHX`twfz#?wyl^U4De5PWvXJ###Bp>M+NUzt4 z!cSVL8|$UScEd5&foBw4ni7$8on!G6CXIt|h*b7*V;YZywr;=DAyo zhX6US4w3w|sGUpZLoldj8>#8&gui1F|HfK04JNGfo32x%3RBUNKbWi^%hqC(SZOqK zP6Qj-oQ=AeWj^H{D{3fJY_S_dfmQ4Hnj@u50t+r_+5rvgW{{jADKtpB&K+Aj?tmE| zn#+L-OD{aDR4QtKvyHUN`$ms0td>)>wbDb?OJ3A4pfD?8MLp)gFq0>$J zXJLmK@0;Yd5Xpj$!4FZTmG(Oa(Isq$Kj6ZX*9ub)XOc^ZEX~N$9MI)u=TZ0}lE$O5 zEugl*Zd%5!H2%^av82hIh(KP2H{TgtVaXO|Yc5iUg31JAZ)NBhA3HD_zz^#6qro6* zn>#XkPa-3hw|ee5wcM>a<{V!$Epl4eH_-rmy6=FXvTE53?L(272YKU>sX(le>6US_ z4Vjw4w%%s70WoioyY+TKRNR*;!ekTKOCg?QL5Z%l4Wc7EILchN%3%L z9&5^H`k9nPbz-!wU3+cY&_#qr=|@L7)VXGR5xA>SOS)lh8;+unC_@;tein7xQ9mFW zKl$VYrwJCMGaaLt`_3KFX?K`+9T9QHs~Ae+A9+D`B}49}h^e_%r0$dEl8CwxLj9{r zJqTsAHX0cthhU3Of)@AOo`EjE`;z9 zwFIQJ_JgIjH!dSL&deX=is-%92X-j#-?=oo!-QE}T%1Q>ivU|YmP6=4b{_rg)Fg*+ zTjvn!N|uE+G1slND`5RIeG1YMNf$TB1|`zyv@w_CeS^G{Bwd4`S!}|{lj&jGEf?A5 z+mDVLR6=A-8K`qB>U1*mI~t=$#_k!&4Z0?XIvwjI!3bj7LaaM{29B=4^~jjl`JdpF z{q{!vdmH3yxx<~p#zKyQ^LP*=0E5zGHTnkANio_LE9ec|^@v98k3Z@yr&&;q6{CmA zr!fvLbwuK!MG`~5?y5&?_tNN-99sDmfdRvssI!Vy!altE;lpCyS;{+7Y&)`$*VDH@n4&s_hbjUBp;{(%+aw$ zo&~AG{HQ@yT!MYC&%SzSRnF~KpZv+{cHnt`uwPHT$9*tj9hz3GhQCDYc46m#2Jjn0 z{~T=AQ@`t*-Vuc(LhAldxl+`xf1HiPpp<;Q3(R ziG0==WJeuiuK2>f+7k0G(b`1xb4QwESH-KIFO0v3;?;ZKbZyCNQx`Efh{OQvkaC;^ zqXyu4^3)fuEg$ca)yB=ce{Vw%%S`YS%R~WKXbnnzfjHjuyidNsW3Y_iC)TQ;F=o$* zsm+jO_VE`HlQcyezF%36CujlQx8Y4|~GxYye3=HM0f2R0ZN|m;~@rK)a|Kzr&19-IOE;)B@q*u3EmaAW^3vEtwRdn^s#6!yFm z|CoLJ;CrY3W4=LPmU~|Ghwub@++;^HcQV`BWgiZ__U~lJ-}6H5C-zV8h;RKotCupX zzj;>J>(o~to9g4P z_;>*83Ew{QcG%&tp`Ww@BcqjZ2#g+FS8$(rBDaZ?fS}13;3}BypL(`0Qmq5* zcCk$MWxuWZX1_JLv*0cV#8Lf$Re6eOBaSH6O;+xNng$R9gye5nPckkiNT2pa_}fLBzm%{5&{G-64Pau z4Km+at%H2dyL1mx!pKk}ae|3L&wIdr0U7u}-iMmE z4T`~LfSkQV`k9|eq36BVs8;n9Kr$okAVc(NEE6LQ#~Ysub@}jWSrP^ zG{=_CA(e?3)2@lJM@Tm{x9CKt$(t)de#NRy&#NNdSB<(r=O>Nw8;%(mw6^-Ab`7QXZ=L}SZ9TV;AITlV|FJ=yWR6KvM$ zPJY?R4jfl}FIIb|ih3Xyy786Me%^tq4@{A@CRyTY^{G13ZHq1YwG80d7-Wi=U!U#s zOI;{zbx<3sUK`ne%LQGw4+NV5$%c{D#DI6uvNSN4h067X4uvMB+W~B?9;uRo2eiSX zsVK%eQL8^UnOK9TSo(?Ftb)(GPZ3d#|wHHPS_6 zTtUm>c1Snn5O3G~p+z6|=w%#9IJxwVBmXJfldxc%q4t7BBgVN~8s(CmsJ1H^XfIeN zs70Y_C6`%1J+o<~rC3%Qft&1lUV?+!qdT{%w?>??BN>UGPZ=sxRYs+LK_?%dxN5o@ z(1K0R!^JDISwH~H+nIespRp6$i(3fK=`O9Bz!Vwq&DPT-k0=TQ2Uc?C-(b$3VEnb zw}4Z+Yd-YQF4TUdp&0k$({q5~x|^Sy7|O0M5OH53eC$}$_+{}dKEz2JQc;FC7V-Vaz7APM z10hU!iNXY<7ggV7CX=3_xLWDV06S?yI@Z`C^v)jR4;K6DPEP+CV+V0JXb02US&D`Q zPz%@s(7HV{yF_pHeRr_yc>~;R)7^2#5@J5&yEyV1{qY)e2%KuRE^+3CQpf{yfc#Ya zfu?cyHYe}C6m~H#fwoTheUh(jwNS9 z;+0*qsr*1>fcBJd1a8tp4~KNtgcFAJWyP48I(1N*cm$?BjfKK=axUcT(mPbh5!;oPBE<$RcRD0ZXI z6rM3`2b&i@9yMw~8QTneKc$QSgBCEh-&}@)l$>m?`pD2w3*-_9Oy!|2RZMiP#PRB? zV_a}7lmQucHH0<*X=9lK+Zs2n0doCQdhw$i7P@W7^SLRv$P*u!^tN-!7!Tz1C4mz9 ziarrHWsIsWJS}5*vorB$_zZB`ICt2&6@XYJAl)aX7Jh~ic(92h6MRDh17pw)zLr6N zE6DF!zXZE%3&C%7b~IiS=MX?@hIVtD``G zpcic5o#{7lvosaS*wp1v*akq`kN2@cd@ubCx7mH$Hv0^>*{5Qg-6Nj@Zv-RsK=w=| zH^wI4j)3d@RK`nhMxc<0{>E1&hV`Hki$0= zR*pXlXgcwzkmdLr4X;kTzu*?-{E6ALyzW}@q+fScqYDtFNhH(Z zs5=s4S|%>Sn1+gQAmWVoYG{ZROBx4)d9G%zY+VsGgB%SXxYugt>^3iIF-|nj2Ge7; za+(X>3@usy>8ID-Jg3$0Wm&d%Moz0mYc!YD@Y3S2TErdgt{OA2Ijgp1L0whDcjc&B zc6F|sYKSq0lWLJso{MUh%`G{oriI(wQ`5p{=$u-1p3OBid>rkVT4Yh|mKtJNol=YB z7MIlUNjap3rvhix?DNEqs8z0`oKUlv1rDh73g$SUW|1t8r}flXr_(B-?r>VAyLD&N zstSgqX;p_DC)0Z63mi;C#B2OZoJ*_h$8#)AM=Ik~n)FwmLunRegfnSXQ{qT^teR?0 zq-kBV4y08fH*y{g8Q5G$%e6O+<7nI+3fxA^tz{NYqam}~a~W;f!X|JS&3e~#7j5P_ zduP#5!YEhKmX^)JQ8Z*b!c8Y)6bZ+js&Y@WWvv&<` z8Me7PhGye3ky~i9%DGOVA!5Eu=v*52#;#2;zcE~!uy{qTO>`RDa0cycTfISR)Ur!R zUsq7Gu1==9CbFR;C*pAeXQw+1y98i$#Y;GV}TlfIz>&tP-8gnM~`ydjH;q^g}YW4Y`N6GQ{ zAR-m{dk}H7dF^C9Jc!q0d3U&f-&wr623|`3F}&oeEQ@?M=&|g68%X7>J{#2cLVpb+ z+BN?r{x$ewc0O2!6J|2Hvivq1x6H}5Y^_I>1*%I+fg))ag@+f`eP z!o9ah`{q>+%wZnVrDX(c*q5w^x#0Y&{2XxpEgKTOsQI*j{i@Uvfc>oR5$(O5%oPctA;{Oa|!JOq}s zPGW8mMxgHN$Hvsq`*Md@vtb+rem*4#TROw4&}IePUjd5@@MYx+z0WWP>2YtO<*RSm zYjH)7a&7cTA<(_nY!jh$k=8#S<9ekv)5}^-1WiBAOrIEz zUd`zlLea}}XaW#=ktQF0K1-pI`F{h9`7yUOS;27;=0yS>Tb@J817GciVDd|>084-8 zAjunDHYtYu82uz}?>X4vj9k^G<60deK8Um z3Xc*P0+8Tr>31vFQJ?N1{GuiSQb*)OaOz}uCxB9)fY!}JPA8keNX&E*cbpYfu$rzF z&bD^x&@s+Q#U?{Hr}KFNTyt|rnikPq=8!I_?&L%EupHS`jNA zdGU18`iVE0XkS$pubfJy!XSbRal@td1L5b`VZ$@}T)YV!2J_wju12ASU;pnaZ%StX zzpvkEH4|8ytjH}B@LTq~sPFdGI}}L%?}~zazjMg*^*dgWJi82`)b^F}LPor*R4NAE zH~)4|Mp200Tl^=a5?j)>vwTlxx7Ci%5iWH5wSxA3y>L&hf~yR!w+`pMeNR!wGDp=J zuNV5KuNSZaBSE~c@6n9(qBTfViG*qvE-GNYWBoP_koR>qD>~ArcmH=K0lmq1ig3?T zlN^+9AVRrLCZk8;w8Ou@C+)~mk1btkmSwxmvxia6^vrTQJ~!SPEi|K$&-y1EW;z)O zfH)n;D+wR2p@!?EW)>=(ewz(AxZZ4iQIq!PPM!=-v}Hs%Z1naOphd&noC+tpc*^CX zMq85gqvP!>#jPG|cIsf$9AnxXu2J2nI+HEDEVQ(_)=3R)IMb7^4JT*1v!Kr}7Ot}$ zXk9N_Qg)(#e^aZRI4VprakL~`$Rg%Q=i66OGNCtgOW>c=ZGCGQ(yBd~7b^(?0|1>Q zH0yVj0YTTX&$9=uK{@aW1htl^nBv8*g9o0 z{aTd9@!@AC-C6i!z)beXM$n=zT7#&G}rPuA{B%@(Gz7))aM zC1O54i_Uusa}EymL=@89}oxCNfQqrNI{a25-5^2c+FpDTLKXL~TY?q7gPD z|NYPPfB&=m(@+2Xj{}9P1{0m(RzCv1w-a*ng^M^nr3OAi)e)Fx!jc5@qYA@SC!k8m zLSdN26AHr~DK$L}QxKK*I^pF&h>}IWK(b{yV(qBa0e%kSbEq~noQXz^i^JTEYLC?J zMdk}g0InOh$-($1Y!)sqpvZOk{ovEx{;-?IXVJn^<+sDXDx9U7=bgjYp}r{x9k(1N z-~T7?-4XkLbz`k=?Ekfu+G@G~&m&m(}ciX#%&`%4s-we9?Wv$g0ZVc;4;8pL9-Qz81AEkEJ ztfHGLVDWZ|UF@m`2)|=&B#>0fjsv_lMq%JOk?a~s4C$^!(KqY_C^}*S%g4uyy(MSM zsgjP#b_gm3I6rWIx10%{9E*8z5~ZY|!^^Xyq%%Mc!h&eg!jff{#At!!^wbQq=Cn9i zVl$?v=8t9KFiEd$)vNdoHVmqp=^9ROU+xc@-Qii($Nf)s5G1uvlvnW^-Zk(mJ6*_B zfw7YJulIvbz}f*fO;A%|583*-yQjrjj1*aX_u?Q6fm!1N$Br_P+;hT6h-dqg}z z_n2wp+puE2xTsII+YI|EuQq(KvgNt>Hgug=3y^fdbry^);1y4|Af1e3OB8x>L-w9vEq+`JI<7OsTi#C6er}7-H=ogXGPP%te=OXN;U($!2 z$^WUYZIt)Fd4y5?pBXrS9hdvFX%C~E!8U8YiFeubyjAM{DZ?mw(c3NbN~*j*yzsnV zfCF>zerI!Y-}|l4-A@|6M}=cX;UZM?!}%MF-SU3>8J)-+oCE7;=P4jS6DM97cVK}I zC$BM&x;xSr3UylY6p-L0ONqD$`^Dy@?S-D_igZ_~a#bF~J}B7g?kEpN#H9guH=rQz zU&urX&{Lte+MHczm1IsgRt?`1=}r-pK0`2980g8K=Oudxn7?OrQ;|)d`XhZeXm9BOL=4gO*Q~=Z2mMS_v&eHwVv3^^GY@TMG2h7R5|HYdY|=%n#7CKSSo{&FoHm%&=%0$Bzy zlqZoT5JRu{wM|@8Em#b}^H*=~Y1dbh+;(ZTUezrb3$r(+w}^GL16_gP5U>dNF$mXKMs5s8GtUn(*O9Ql9zxrt0`0tAgd^T%-i??L0 z-{7+;ulRx&b{SjCrTSeNco_5k-=9+T55tK2|4QAI|JF9vtEK+mTtbmF$x5D45sX1+ zQZWkA&$9t_BQ^AK7y9@wL&*fo!7887Ml?^JTbNc=SH2R&RVVY_hpO7u|4l4Xx$1e!G&Pf7Q5Fltq z7Z@09#d!e0Og6oMe6ppbehEHD{p2nKSYV?GBYy%2n60GWj|RP@i)I;s;484yc^AfA zg{Q4|pA>7b{(JSNNLO|;Raub@!#GA_7wKH6qXAXVA`6_FhO;>AwZjx(W%&&H$63re zKtR%+|5WI})`CwG-ZPdV=*s?I95MOvU>^4GoP3WX^DG&pv#QrOZ1VS zD6nD!R7m0WOedz7QATPK_XRe>Zm>nRqkBanq<*Qn`>%wF=)Wn4X9WFMudQY5KUUUC z{olEST=`FbcB;SqQCh#n0-l#OUwAF`kb!He_@cji-#y#$yfbtf+@;=Sb-iBrd@Q`s z@1qxbrSqGO+VS1$j^|Y|Zfz&4Q>?{a@!eknkhN?wpKgZBP^BactYp;R&1)F^!6JRP z?t5O{=h-Vpx~6g5@!g+&@LEQ zzU2bX8{)&c>7$(p8x8NoN*t!X9_aq)4y4OES+%D7G4Q;PtWAMAbXwfL?_LI;cPX^Y z4fpn1+|SZ4^gjBXRNbRQfJQY{dT>x*tYEG*@@+cp+@;^ggY%$J`@9VQb{PBopHB53 zL-F}vTZ4}V|7T^r)c>DLDE0rp6#ajjCb$a^1MxJNfnvBH@5cQB#~k(Jhavmz=ngew zxXdjd#ahzgAOcnw1MdY1T@?0Pr%&JlIWW@qlVKY5@3xaOy>R5cxcuKg!hQ_WFy)(b znK5UyG|x2eoy*6a=#%#SIo#!GgrtAAoJODYW*bgGm(fL^icsXtlUZgwef|=hV~Sfi zRiK~$m0PI3_lvaNd&G$gS7|pcwT*}ML`}=*Im#2)f>pU z?K*Fx9FqWx;XtJ4adi!OM6Tp%v78hVb62afbhx0gka+1@hY`*Y?>Y5?*aHl3fijmh zV&yI_RoH71@8dA)UsBooqv$NrHT=a^2B`fno;{>Xf05+}3i*h<2@kr3!!fIZmI%v4 zh-|WnY&&m{g+;<)=7VnQaAG%`K)`2LG4HpXwq zgsw2mr>^t%y(JSad2odY0-tWI>D7M!}Xin-qf9 z9Rt-JF3*6XHyh;5wf?BEJ!PYy%A!p<)i)N{qO=TACL-7R;#_j!gh3NS*LfSh`Vd_L zO@u{|+QPS`qB@hG%gaua3*2;J+lyxpQ5%a10Cd@#3wkj^PL~zU(R5r2$UFlB)#CuE zB%GF3lv#~^f#IqZWAgA&42|9`nZ4@GgcF*(0)ToF7tAhg1C^6lC;rVQx!g9b(?mLZ z;29MdQrXtTh^pyRl~?TH;e_>ic$ibIyp(d{tK|2#2_=2EI4c@aQPf*_3Rk&~T;{t`{D|z? z@4HTYQ}2wk@RNu}()>)Sao4Fi_p~b1ocqReqad+SVAO4Ao4uu#exE)xWEG8!_{@3r z#xjC}x{(fS^xi@8p_3%Nw>9nV6kAV8^hwYg4o;aRrMSKlGs<&zhi&Lr+DhC#PF#VJ z*|4!rY(aT(G0#sCu3g~?r`@0zJiaUN#=nZ+xC%$JI3l1;Q?O|$;>u~A#+`OQ>Nd>S zfN*=gA~#@uwKcA^@_Hu* zL)){cQx|?8DB8b1rkA6MS3LXp$!Gel$sV1V^EKO9`LrbxZ3UzyB`I!~W*kW|8YleH zrrQ5^q_=52#^Zt03elZ==(Lj|=)15Zu9BG>_@g+ARX*dh)3|r9F@&aR#-Q^C#qW*%pVqfL$Rb7_BvEctLxK5fR zfbHLK7LY6G@Yhr9YNF|K534eUfZDEpFquKu*-ly1*puK1=Xz<$H^yG@}$iWYS_wgJ{mU>nHKtHHTn2#J7M?|EL;XBPZTueAmy|3_TqDdJ!U z&zWjbi$6Xyzk-=}3)<0UU(S5lQwKa!I|HY{ZTp*^*Z0{Nuw+;%k*v>E#bS}}FO0>E z*-!aLOL3<@T8k$bug8_cEb)52*)-!3)v-Q^(*Gv40qg$<42wbNj2-BDZ5^C?XFgY> z!@(9^zDIPdl(J%ruMUnApj6t_zyYQM=3DoPa+dn8;g5Ek5-j2aMLN~=yUur5D-}Ql zMtq9%Lf{;nE7*yu4b+1EYI@%L9f@7xkwyAcqC9NwdwVL+eO~5)_Zw=kb$wPPHe#aV za0os_>3gz{4<4|2hka;?-gXbXW>caO?Bc@v zJb({4gx*150kJ|2AX;n){!&_nhJK+Kt_@>d+Otv9#hy*`bjJ$iL9jd?OB50U4FRYL z%f1!z!iM0XJ_z`VN3tWC8sX-Nk2@$W$P#xm@nM4GHc(ekH8nS}X`vT<+TDa@`N&#- z^~^L~DS>z`^a<1Y%z zVLM}#Hl{kNlyazA%i7Qvp}71Uc;3(WdpRJ}Kn(p~Hy?RK2RZTOa<^O#BH%o zz!m!hEFM6$v*uSL3;*(|$p)$3^t^f#*I&~dBsDN}xYW?w6qIw2V$x>*&|m{FSJi-* zdi~Y*Dw4h5aZh$U?_>uaPIuhlj^_!bbXxEK~j~c*5Y3Fiq$+ACk4D3=9M^&k7-@H!plhZJENXz{D3I zJ`4s(txoKZ14)+|iJM-KQr-UI*m)hNWyto4X1Zg|LJi@8_pF^$%HiM8S%1iRdGwp1 z$WQ2ewZ7E`qJ!8&-+3Lm(pt~S;iQNFz8$Du6j>OZWBgK^U(WWjvBM@5-#hI)3|OPQ z;O+VoiIhLgOeg|)lk)5C=C{lx@@F(Ss1u9^XuR84hU^1Mfp2`Xb7nE(h` zbZ@uq0Uvfe?*q~j{iX&}7Vyn|6#bwIR#by=Q|6@w=eu&qc1<`l!_K7zgu)|P>Ch8U zWlh>xHFG4KTI_ql`Hr>+1P|o}SlY6{E+bkajbY%LHtudg?oc^v^e^~@Wz~Fh$gx{s z3Db#LK9Hn#;!K!qTHm{MWt~cd%^E*My0W9q0+~)&IR*>Z+HTSQJXW}8%__~K@1mT zys8d;ep1+~kGnnZ$`>4b5vR%%#u+(~^$2xxQWYfj52&V!jw@a*BGJ-5T^$mrFsS+D zy1?rh9FyJ??~V$4w8=JN+zVEHsK0F^KHw0Kk2g;O!_v;ihadxDqm1Ej|13|eV22RW zdS#x?prFnUDM*c{UeF)8mlyM0UNNccu3(2D4j#a8?s>suzV?C{Kn_lA|3Q*YY5$?& z9gb}QLef|*K*;w33lI{^ZUG`A6j^{k3mCdV#tMYP4_Z+&^57UXm>dCvI3Y+5V*2S2 zIhLHp0?2`MS$Ld@a?60@h&*$kaYW|h1LHsn4Hid1KU#rt^7>u?<7nuUSy&taqo{-8 zh(raDI23;|lP(tyN2JohaI(eaL*a-V3?LklMIj81m`gSg9Fai*1P&rS<^kYj(`(o( zJZ%>IMq-KH4)l%at}O6PE-dLJsH9^<-aypZ0Nz*%wZq*&L@U@$Q4ZEY&jq@%+ZD)5ql+U&8|&rGn@>aD9tf4W3#5f zs*IYHiL71~8(`#Gn{ixI4oj;vZHQV&7J`=O($nM|g%gIRVVZ~$98P8QWxO=3x73h2 z+$QVk^OyL1oi*LkDl(>FmX=^l!>lpEc8jgA1PbX?c2^4ObZmR8$xN#xTIyJKR0Oxx z(1pDMRAqfyqPA-zV;}`?i)5(;nD<{dhZ5+(Gd6}AV-ihh0+pG0)6O!bXl=7|(y*L! zOq=Y*j%Czjvtcr)!>nwV=+NHGa%s#h!EUdVW1=LRJCS*kOf`*ZlIRd(m_+x~T+^h? zw4K->i6w*P zD=Q;?XfhT?5}`ZkJBu)~V;Q-qvqV`LsdtXE#aJZt6_N(qSGw)ZwH|{jS8rcsm8*@I zT+@2{N}JRwP-`Up+qIFC(7a|<%d<2x5=kZL;#8)6l9tOoJxil!z*tF(zO~FcQENC|&{k$o#8!D!oifE*)iBL8#JXR;7fO6=c*_ip5 z1IS1Bb}W5dftdd~>mh*}{K%=f1?)@Rv}gM@H|=@7K$gMljA_s71v0@c`$3l_lLkGn z7wA`RZLs~C*!Ji##@#E7or0M7XwlR*V4B2`Xxft9BHU^o6-@q~K=6ve`n`FSlaazS6CjuJv3&kdk*uzgCt^ z=FCw2W|}o+=TK)DZC?qx-k1+y@C36E&pR_|S5@NBk~24j+P(rS9vd}dH+!1csHm6_ zVrEVGm6&yDEVumf#<5o_Dnp-JFq71=w){*!Z7pX`zS5`6R}#js{{q)V``vcj3e#jN zKQJTkziZWv4b%VY%F0@4|22;w<>L>cupRXo(Vz?SaTWmJVOFH7O%3Ki&h%S%k9Z;B zwvj*a!kkvp8J=}{L}9Kkonqj}2CdlE^Lx6t1Fd}Ge6Od(Ll@yCNU&lSi!qk?ZYw>l zwc~!oj6k^%nw4!sZOp5Ao)^GG_yEiltV%6(sGv2m;bi-F@k-PN{Q22Ngn9I1BfV(B z4qdAJcKBDN*@*y;G|wP4y9<=g8oq%r)&4)>$dB0nt7{qm-}PE`z1;uj5v=yV*%807 zC9t052!9ZPXSLYns-9eNZ`1SkYXPyt+9BMV}Cxn~%Nb9@CFjii3Ij`+$M} z$uGpfXNIVI-qX*l)UOfce&Y2%1rGcu|1b6Gno0jvH%j~exr7q`{Y%Dw9}DpP%GnK> z4_MdP4PmwJBo|%r`-Mr)Gu__fa4dZEZ<^4CIifeL08X7(gn^6WZ+(z?OX30K7`2`I z9MfrG&lbaoT4M~;xPygSZxw2emiLK?!bI!;cKknA zSF0KP&(#wDb3VaJ|Em$dG3C#)N(Up{KO-y%W$g!RK6|MFVr~?@)DSU0@t1(}7AqV2 z)4+)PHS+9d8OC1!x90y9&i@tj{9mn=`X6%%-_-eEauX*G6RiJR!vC&TH(<>h_}?3~ za{bRE6rBGv;QM{?r@xKORJ0{ZzJz^Cw0x#pV$SEj^^373T4L}m@kUy;v2lcMA-DioHbiqzH2V&$mB3ce;zqca^YN2S&P zb5!D7$Q+eY2hCAQJ%Jm;icPvksrb6#JeO|dY~``Ephke(gi4)4#QUV!>m15NEtxNp zHko$)PturC>wmpkGxh&g>m~g^mtZ~r)i94q0gNC5jQKN?9#A@c1`;<&*nIbA-}8P( zPYKIDftZ!zDfrUyT|gW>!H3hploN_*?|paO_q=t?ZKEi+UwqH|1*82+0Tgu*T=@K# zI|L+1{C#e?PoUW%xZl6dewb$cPs$1ywf?JX8U4T2dMW>(OW^1KRj$5{81gUj^eV$m z!*uI^vdJ*={=bsZ|F2i;<@%pTC^-MezW>ke^e?)P+pZ|DvoN0K1?BaaP@dV#$?IFd z^31=KKn!vv$t%ZlA%UpIbp$m-#^MT0w*IHO{*S)@udbNq|JrIv|IZ~z9jAQ_2D(Cc z@X{U;v`!qc_TsZ1GZ-9XSO$6AfSh}N-X%VBLB~l>z)^?Yc61zfqxPn-80`+y{;-uM z{VZ&%naj7AjTX5f1WZ2yIo}TV9E{gJbma%c%`}FVgAj#`i8Vn+ z-v8D!{GXNDM!EmbBS`wM6?R%r5GT?lI?F0*t4Naj(`7G;Zs`Wox z{D*pNH6#D2u9x~Ba|!wM-^|%R#$^=D8;hH2Ld&{vPqN7qY;8Y_RR!qeS>v=T$B zEpQk3Ym?B6Ht(KK4Y#t&VJ3Bd2_DJ{^D%AJ6v@S$u^N7Bb#I5%GpZ3sxoqD@PhR|I zbH}avKca}^90n1l#oEZ_!qs;g`?lDG^=|>p(U^%`J?U?mN4&y_# zh@4XZSRnZ#Jcn^vkY)H6!(`|Gbf#dV=>J;Xl>gK=HcI~QTtY^v5La=o_I7E2^^JvT z*Z(Z_zv>zMhx%G+|2dy98~d+uuK<(igIg84B@tdSEoT#^S^u-v|EkqjGxFb+lK(fC zFx&ILR1^E!!gT9@w)$VIS^e)+y=71wT^B8k1PdCR;2H?-E`i|glAu9?yUXAZ+&#hF z-6c2#cXxO9nf~T^zq+^T{^^;TQ>UuCx@PaS*VqyGW zi9ag&QX5CzPi6_yGq$8}0=x^HFNVa0kRhKy@qRDJQSSdg836l$CD4RYqeQJci8Fv- zoj^vx3**~W3r@DPj_3Fv1-@j=zuh1C*xh2NEU;Yjv_3W_M{CZ7h(j$b!k(Z!j`TPq zK=nho|30oz%h!LJur%uZFBk?X(K@5DRahdcLeN3jBDY_g_e0 zdwZN?X$I5)0U7%%N}Bnbhu8yk2!BukPV;Z5Pkjhbcm0+2HeW5a zr-??|U&wR`f4OVr%SZI2wnnvv%uv0_RSj`YaEF=nG(SBbBGw)){qk()|E}q;ctN%~)tQ zV$EounuoWjn8~HsCM-*r3(cTRiJxVc9l=N4-Oe@e?+BQ+>ajQ-zcL{SIyfwt%Fwy5 zw_gW(2_h%D>cN7In5$DOrjUis9#h|~vYnc$-F5a@JUjIl^0V|&EVtah{bdVq{}(#E~-I*`Fz?*S2U}0-~i}lp4$HPZY|#LqW;fUU8!#8~x77?q}Qw z9rzeUytFL1+o^iS96d;iIWhod$$=>qjwdCfP`#I-<8pWYUmE;&m`G=c|9?u6CPuPfkU* z>lYE7ppa7Tbz;^h+Kz##lcVx{YFq^=YL9_#*Xu*YqeoSoHO1Bv@YT8J!lkH>GY2AX z?paWABrb$(B8vk?=BvaHy&Rkdw*X$ht%2(oyIatybxHI>Aluc#iE|K1SQ>fIm-|k6 zcMdtW27&pRnbHpfYXOhRM}w(^2l)VtCgcaGx%3~%*49@0Z8JF-4l?OvDrUY5!J0H2 z!-6^J+7e9wZNjhmx$Pbqv;~u;$n<1uPcvv?y;{%JcAtOM5oU6$uqSD6k6soHQa^p) zq5Hd6dbYM#{nZA?V%5=M6kUGV%O-ml_wZ!SN~CF0I&SBwcwvjcduq9V>w@HTRsB`y zFS&P&>uT+9{Lrg$1|4Px9+Vb!>r3s|wtDn3tIAn>!Jg5)6@$a8L!zs{!5dvqv?L(* z%i&cIqoy3Qsp4hW0QQh>hg9l{(gy-AGAUCxm9+YW#&gBBB6}G6sDm^AlIMde+wLLT z8^=t$l({13LPd}Xd%nfoo9Rf3zF?VI$XEs`%rY&=Xk_dgt7c$Uxj~131v&qqFBl_s zt=VHQ!4pQ`)#mm6B=2FB%um;h z9V6B4Vf!uCjqw4pvztQO7DTfT&F{TSzv-|Yx~ix#A#s?a?yI=FMC|f#BAu%cSbA!I zpl5{JPe4fm+AJhdT)5oeGf9Y@H{(`G7nl`m=; zt;8yCh}#KJQo^^or3zjn%3%5+X%216C1cUa`8;CrnfzOQLcIJub%}&J=ZJ0q2j;Jz zpMTFp8R=t}#LIBa$KFKD2=f-ct`}E}tNeik3D1x1BR1(kcng8evbXL^IvYE?yuRV~ zJ1W*APh|N9a@Awk2G1-?v)IMnKDnjEljtG4ETQ&?L~QYUubA|ZGx*EFNR8}|8~&=+0;O6>f4MNKunNGgAx>NKuA+X9$x%2Lan58 zu=c(=ny{j;l$Oo2dim!y();MJPnl?8qGnt@1z$WHf*uq3u30Y~GKJY{KB-E5=$)HE zw?bByWsoQ?Kp~)Rb}z)fS7V3}v*wP8jQ-InQr>{v4kv;+*Zkgj9jI6KiwD9gZG(X3 zQOKm6I0mF!V>y;%Ni^lP26a!Q&9W8Km`pqIHSG;$OFXXj31fA(5mmR|jIZi_7-uwf zM>$KeBx~`cf6dFU;G09hr^yf~j{-NJCxKHJE|gp$)l_@@?UOaI1e#JtqSXn!Ev zf>a+#WUHk40<6Cwvulf982_Yy z$%$-B+&lOtmJ->T=5sGa(5ILBomifXJ2T~@VuzLAJs#}c{o3xYzuVyV zii6{=+WjR_bn;X-gSb}>1(e~E#R!O868W#Ehb_NQPpOK%lGi{xz3QOn%jm_wQM`lJ z2QnW44t>n(AWJX~4Sli*a7X~q9{^nHH{|2yg+Oyc996X3YGcCf(_0_OE9iiqwFoHM z0JVGL0T#5z2shAks0>3eJ9ob$d~TeC=?Z2T5L6dg_)~jWpZ0H3KfDMu%DWLcBcMJrY;jA*|2_-nIIs^@H!AJ;+ zr>LxX4!=-p#~z-pQLPBr=BY&eNFL~FQ#ceoRp|yJ4V(^#JL8Fml+mdrEDKo;J99r| z;d;$z5l1^i&LkbkPAt>xJe5M6=hUw2d*Is@e9`7G5lclR4W=HcII=(4HYi0+T1o^# z64}pPH*P!#Hy~#ib>$9e`%U-AXYHL0an&wd%_cvRjj!f9uaWF_rd4&xf5g+Gkg;)i zUL4}^%DnAO5VgUM00hw^Eb!i6_ddxN|7It|KdE1z)8b9VSd0ast#^rN%>vJti( z$mXUntAS?%+W5=?Fnc*Dj z+6+muls9SBZBg6T$%;Lic~)A_HRA~c4uP(0bOUlZp%+thA}{t6eDoTf;$Dmp9-5Up zoT3YkRf%;G!j)ScCwJDezo=^P69fzfvoS%pkZRe8le=B{2}fRuL;O6&C?y4_s45#!qE6C=Slv>9hXxc zy^N*=jwH0XE{dq*123i8h$MNC)8L0+D+RJ?zwRA{Qj8UQj~Hg=?e)95t_?c)u*emP zUMg2}CXbtiZy1EjpOs~fW!09C-f^oEcb@AW*%}7+W^dgP6g6Z7ZP%PK0HZJA5ZvkG_;G=t*fa}?W@VAfgHYScOPy~ZGiXXh*DPuW;Z zbXy!OxCOJwYU+KLLB=#(acPwo3RkI_J;Wvlw_fMwX&MSQBcfwe`4#7!)T8hO<4?7Z zRE{|I>uWS4zGY4e+??Yr>fQ z%BnXbLpG$i`E;zHDCKU=RR7E$M?>QHNTB6Fr~F&EcexR@2tr@;61DUmg6&-dSI)wt zy;Ue~O57}6Z%p~IKj)#V6KRe4wr^Tn$bDRf_tmIso(#;~D$)C=+I+1%8x)4mokT}7 z>eY~Y?lCu=a)P-^mJn=srBEL3ooWxHrxW`v{2oWdAmd*wy>w=;Ax@%ud^zPkymqr~ zEw;Jhzj_r?1rserQi}0@*X(Jloe_JA_KrwSlr*{6-y@8)85tjavEi{CFeaY79;+$% zMTylA5=G4bZ_Ki#h9J^v8XMDay-OXiQbcX>AW$qR@3;+jqDf<$ts(A(Gorh&S(hlz z6h@T65wiP)p0O~WNQc?qpcHd8(>~<`_4C4+k}bT8CVwTMu4dlG)%)^2hMF++h5ki% zml`RK*PtT;Bs?rd z#!54EXz|xw?;B#dgxQtLYC6eAQ}4Ovrt-PCmhEa!hhp>WlA8eH{r5tBx&60c!g|K{ zW=GwTF$%C?cYEbWU~Xk~wfYH~hL_(qXLho09YL4{HC#$;CEXEGfv-suPhTd&b-k#l z4@=wKQ4_vZ(5PFVG)vpDRFn6GpeSEwaKUo$#3JtmlC(i zINkQrwPp0d-9;5yEQ5y+Lam0bbd+n>&ft3G-0m&aK_*mtz8cf7TXciw<7hp8IeoBV zGI?bt+>35e;Wp%kZL}s*wC=6MeSQ4L%g!CRxEd5PPv#fxy|VTrnaJgkUTF{>W@_o% znY@fkr**m4;L+FjP2D#1Lt2IV>1IN3>csp?sFRxEDT-p!4kDI8A#!qi(O576- zf94et(Q6Xb!^5{(m!c^+PnRYzU&z9SFP$gY!^l;4PAmlxSx^Tw{Bq;rz+W z=rvm(^UiMugVKo{{9e?N+WTrmOIJJ4t!x+hBiD{LlEkhzNov%b^DxxLa{H@ehwYy$ zB4}|a7H#Bd`{(1At-y4O{sBaaCgsB89(Cl}ZlVdFnO~_h$4K&hi7{z}pn8Ujoqb** z+I!Jj<;f)%cTma#SZv+XVbCBj7q?oTXAEaGAacP|fsMthA^!FvkjZvM{*a)Qxo#}O zO*~vO)v*ffJ9?eO@`~V*BxVMkT==`syX0SWG|QkY{peg_zL=jNbr`q2-40RLfv%x( zD}O3UX|fdEq+Qe(7Fe5sF{*TmeU>Lnn`82=)hpdMD@+YF(}PVB88L$US0E|D!$gKh zxtwQ{Ht0qAJBy-?Nmi@=2qm7+SWMR-B=KEXi)XZIxAQ)NY7KAO3+#2abeWgrVk{Hq z4IOQ!Q%S{^wtdW^?7W<|gXj#}t^k>i7UK_rxSOzqcM&?U(vO!$xxlFbKCfq3!R4{w z*il+nW}TyOTd`=-&^s>iFkc`P6sKGovxqHt@2WT&Hq|L2VJVWA#*UB1i6k09r_5M& z1)E!Q{4gzFNF$@fAt^pgQ{X9P#Y9@cco~Dvc=5m`>|XDVSvapA+q|By}Lo*IqN}o14u3uUyA*)O`ivY}t2V z$>?={amhU6N@^_gp{j4a-(9Roo)slhPfN4HGEYY0?7$i<1s1HJI1-b&jQ7SQ>$l&m zGpr6MC7>yXApzW0^l*;#k=}lasz?y zyu=q=DGdp=H`cjaQ#rQ-KEbJ}3IVz9(k!F6)ZtTddj zXlaYwPEKcoT>`Nf^T%pY9H30%&T9IuXc*#dZ6Un~Y;2T4J$12NKBJB`nNUb#V~jR% z)+umOV_KK*{%Fby80v~%xco;n&UQS3`>k_})kS0))A(4N-!JTJa3ww1!#J5&^%7ty8V6O_jg3j1XUl|c`ZXYU5?8;oe=F`62 z!&AQ9Iz@hM6*lYgjNkr&p~$eamJKhiR7F&q>RTNZzvnOE_TU{hx=|Rid^!=Q{+!=A z*=wdtN1l+M`Vku%qX9QA@=YmN-(Lchz0h5KXywRC65pc_f0Ag_Ou%KH94hekJibqG z?TZgbwhu%P5wJV+sF`BqhbXR>*cylrAb+%+Vw=#yuil2O{!sn_zby9(yK632@QZcq zg37nwTzT?I@SdbFBdDEH=H&)Bl8UsB9ezyf`TfdbAL`wXr5)Ak_qq}pgapKye_CzE z1|&}z_R;86R0!R8YulPOpyb#SNIp-`6*B4s^wXgSHoZGpmc?t`kTv3 zJwg|?15-CrQyA{=ypGi(^AC|+gwp4?A_tLi#&meWxeVpuJKd3im0Y<+?M@$^dUBKJ zsd-9crJEbV)^v+>fiCj>)*>F&cJi$;dfx-sJmhKE)_;UNs`bd;UE|lNsIYYy#Hfp! z^;4Cb%AvLzuT8ua>CEaLA>Qw_19@d|y$`?CU2uCP(%%H`6%wO&6a;YYF=IYQOpXhM z@VH4OmfX>Wt`AR_|CnP^@mKocJ~~H?t(aJCzI%W8aPrID{o@AWei)h80k>D0J37-6 z%M}?L{6qdFtM2^1%P*pVy+jJ%)FOasDiaR8d467*q693jmL7>Rq9ELDh9vvTtAH$~ z-?`x`8s#qfCmWgShd2DGQP%j*kaO{{Yx7(GSC+TYYWJt-j23a@U2So|_u=1P=hx#J zl~PUZKg`w4nZ=Oz87bY4jgv)R&Sw`Co}`LtB|Oz)0}s2Ik~jTA4FU>kBsBX2sSPjM>d;%(|dX)~?VlWD)bR%|ySR6EH(=kd&w)yNE}Hyvd|QbwdM&G0qm7QEYl+hcvfbp>Y6{k*IKXo-k{<(zhqG+ za;H9n+L{y_^4x2@b{`nt@IFRX{PUojG)9VG;XE%jwm9}3v`P{^ed#K~^Z4f)IY~R9 zhmlr-?;atgG;bl)a@zAEge>TggfgydW?G+rF0sW>%3j%UAJAXQBS{}Z{jLNXXrUowj| zd()*+Ke4OhsL+ec2zhfv;6zVg%%k7_{h`JY{%)RfVe}*tnpT?1l8dePFgL%kQh%yt zVMsr2K#2+yVdEy~h>pJB%S2#B-hK)FF|7w5z?mw+(`!L3%MhVJRha%UZWfr1OH3Ot zC@IXOZsExPITEuJ{OEYH%O1MfCNRN(CzSZ09}uX|@7s#DEhzitBALQRmZqp7Fnv%v zfqRZDW}fb3_($Wf@3*xpGKMZ%t8Eo>@#98)AH6LfGE`G1N>T#(trGMiig3e_uE{tQ z16kk0WD~r;kRi$9_zc}0 zl;fFBX3Kx2I(ICT0o6 zeR|k;NbD4Lc^5D9%SB3lKmG(J@Fkc5U?Y{HO z$YrA~8~UhDl7xlQQ>LWHm|A&SU>m0#xLY2o`v7#TGp+$`KzHTAgBFzW$Bue4wA~;u zf|ZYZ&*eXH=0x|Wy*(^jBW&4ak+66oc)pDi%S84!FR5p zBpEH@+c{aeT$%*6FwcYn zMDv%5u^w>wI*P2TQM?h?onj-QEGEl30}WoOOELKT_^uwLdLw`j8ugJxmaNimt*W|(Gh@Vf2CucFM#j;@mz?>SW-ruxXZWjzkTiS*ftsmZ`dmpi-9O3o;dz8%zL;R=o5T~*X z*G0=B9b_rb2SSBZe04Rmzj#*i$;Kc_p7_{Byu?DYuOe!f#B^tr-FCRLv3ZN=X4JLI z=0bFXf+4&yMlWXdHId|eRIJ$pQjT_mu+(eSGs^fIjBQ!>cGqG5;CvIwacKoCM*m#= zUT|7U_F5gVHVqg|Y!?4zUQX1A2qI$|`u>)kZJ2q|GB%9Hln2<`9zOvK3kK!AP&te1 zAcH`ms_`^R>ul7U(^g+d?hhJoT^M0K4emxZG<;1K|{zKip z5(kYrUiXnu(arw!MbsOrRzdp;<5raD_CLnIUx@si*JFVzcL9XZH9Ud4Q)hs_=hT(i zsH>1mV7~)UgmxpPb}i*6CG`G!NbW-BPNHuK z_KowzsjRf&&$?B&M=(SDZJ6lNWvmS`OyvFaO)qD7*($~; z?4`2nu7OVDR;IWz!5=gxmw^&ptlow1u$#)NXVJRu zS|bh^ZRb<#6-__dFW?jc_TO~iDe*i_NoMY~bfwqjOGmY1SCtjk^|J`aLPIM=UC%FfckBy8uO5RmUaVs?l%f{#s(RS_@MsUya@{{9^;fC$q z@M=}GkszHA(POowm$b>C9eIE8Y6-)OVkQ>i$Y3Rs`Nitds(B(NviJ~v7twIW_Toht z`iX2)BR9k$rwEM!i@B5_rZ-$UARK5DMzilIAq^h!3er_t9P2GND}0j0mFVTWOLmO6 z=~I@}Z=fT(3t4Ud_;s7+$a>21xwMUGSR5Os-+`yei0l5#Z{Ma_b@T7q%)a_&)!1t| zE3u(hGx00JYB=@8Y5Iy*44+HAn(qSgr-^2B(f`1e5q`LP?W(KC|P1bO%(fq zkF_-$lrWaxqt-Z{(0cJ~!dkyj42-4xm6&gds^WbU3uQe}UVfYI!Ia4gzYn^mQC%&{ z5@$9WDj8?1-c&s@A;o%+Lq57?*y}Ehi^23kIEGZ-iAjsJR>ieZLtFm;UjC_7r+BR= z7IdNA z-@F0Kr`|?pQXvoCzHZj-zoZHKBjd0td1avOt zj!_XekB@Zf6glrF841E9HXD}KLwRB@yF+!9|O(Dkyc5gaP$zVp{Eiv^81;SRmx0z^YWO(mw5c2}p z?Pj`pzvN$2`RcxK0$;thq57JCC@So2u%NmO`q1Z z`~^H;d*01ff*kaMD)zT5ofNlTzB6|5jSMCPk5`bws%~*(z~2o9t74%L=Ec?1nRnBl zSnAlPiigO2f>N+yxX9rH=9gOZ?^-s!dqm&U5dUb}^qN9=2gdo5g3&gZl|)|_g(cEs zV$fOPZz%W#Lc6kzvdDgCVHN22E)~lch!K5Eimp(;wS14-^SV>2*ScFoeKqTOY$#cu zI5=O7+5tu#HfxPmHPFrbkPV|*+4AiUkC(YNMO1TTbu8$LU*!mYx$n85qu2M}=ApW) zvL9S=|DiIakG8BPXeJj8Y@y11MfE&+;I{(ILN#z>C_Quqsq3?O1$F7N&H)=r%b=C= zyKZe9vN=d*o!{tjpr+hrIr{!1@CLUv@CX_OZa3Tp0A1M_py_(HT(ufSWOoG6R^1yy=EN@@Jv6-VeH)?&WwGnVl;n#IvE zxrS4Lp{x#=hPx+lJDw5d^DuXx+LvR#l9TjOMC%&yx{mYp4K3=Q59_hF`r>ZW z8M}T-+>dF3p{|p+bDxF1aHm%gJB|Yal^Fg5IE2JR1it=-z3G0I zVu4IHp?tf~XD?Iu|khg@C4GiG`UklytS9WmzS!Cv*rH?bfZP-))nT)a?` z4Cw6V4|-{o6KkO`#TSJPnuHKhRt~w=nGBkM3Gp$w)K2CZ0rU$(E?#b~A9{VBYv^=~ z2Jbi!O#E|7Jaap4Hm7m}43GDznDIuK{tA1MgT(BjHo9U(b*?_tv$8PC)ZC0eUWY~h z#HN8XYU99=eQ}dytNlX0m6rC1nK#K6&Gj$7!Dq8=bO&J%=8Ucd{mCqMV~YHqnw7%w z?4P&`D2}uivVbtJO%Gf4ok{y#QGeb4)PrQPbdTCHYM^=l1)S7_@C^q|inudS{IszP zq^^!5)A22lGRJsNze&}$9#Meicnxw7BjG45OFS=tA%JQ>MNbmUjXI!O9lgM_&iCN& zg1ynvdDI!wAmziUBQYzGv9O&T(tsbm#^)E2E!UW-syJFJv+DP9oW-qB)k7M~8+G2< z^$5DgAr-CKTQoDV(5-f@og6QL{>&LUomvp4n)8oJt2Xj2d! zdj4P)kC%AG8k_o9Q$4*JbM8{x`#1egYoH7{DCYbPabAdWQ(t%J@3y1#$3afo8z>rcdgQ&Kbz-D zGo<_(09z2^f4~;jP+@XWMpcMSS2;1>?B>VsEem6jQi{3QwC&0y`^Qlg27TRZ z3Hgg0O?PdGOGDGXbWL26nH*1w+H)NY+UVz49{tm&E8|D5ik~y**-CZMRK4`oVc5Si z%xmD}(eP?pR`4izS+mC!a4p6C%9Ey0*O}z_b|A{lFgv_h!#P zmJ_iLQhOl(LetURhQMOoVk~RQT1^3*y%LO+%h<))5(3EgR0m)7pP*=JM z6Fn2rmRgnmD0dDZ2#bwZ0JBi3z3QyHnr6%$02zOsndD1a129hjM?q#ldjzPW7xD*+ zL+k)Gr|z?;GI|`;ut2b~SqlLUJWCQVdk<>L5cICJ0;;KSM}dR)e?!%+a9?hB__jH1W7K?N-f#2u!>k5zKg*n3BJp$n^#^uzTG}Z+nE?Fi zUALo8WSpc3!1H1d;%-{~Xj);ZzPUo&0XQRV*2?fjHOs~*rK#4peT@vC-38w}U!G%% z*kI~#u+cwpa@>l2HuSZ<165sOo?5%w6PD4{5!+MN-oxmq7ylB@TBrWGyBCqp9Ecp; zeL+<9Se0U)Z=u#%w#iR18I7USZ(D>MDcuId)g_00DaWU?l&D>1b598Ng8QbcmceEz zV}{+(G}JeYS+%!Nj%uxK^+qyJo#a8DfG+ez#Dg4y`P<4uOR#<=oqTp;%;AfP3sau1 zO9i8W6h+wd$ndvj$7%0v#A}ibViCvMYocqQRY2Dtus<(?(g5ZIz&BZ)h_^>I1E8=& z%w^Vq0vbZoSwegt^^vyF2T29pUMOsQ_I0+M+f%djl+XO=GZz+xKAY;r*bCI9u)F8O zP^21jZ&2ixcZ+Oj%E*Nj_z20!{Sn^B@hVqhWID*_PW*lWF;qbFFn>0z0W_xpE$q+F zo2-IkZNOpry~%5Ly8vW!rSb_{m1CL#iw%CCWw&Bk$LfGXJorC-5KuXEcD!QA9tesx zRv{q5S75br4zg*l2@%!8CL4rYa@YZK*dBP4)&Q&Ib!uoJw8meah8A%b8%nhQwUMr< z5^N*MzL$!K6>8p$q+297*pp2N4qz`mjFuXFmouJ@)5}K57f#90Hlc7;9VH8YGSibL zw)XpDVi*aY9Bn``pEI0emAOLuL*Ord%Cq(Z%J*xTsEcdw98`FnE~6~jb4e`WMV@Ve%mM=|WN}-hqwKQ!MLG6emY;essl$jDCZLc>W{a zF86Qotr3&J08-A;+ooO7ov8cgH+ybllsj_t$4rFPUAv3F4eB$L@x4>^wt}yu=&ZrR z-GUkI$l)C$kxYgiJ`)J5&+WEQUz~5A{IwxW_|KHpRMZMTXn5EMsoX7TmiSRaDl2c-njwIaJCw_*I|CaTx@Zht z_(cu8r(pwxR8Q;aeqLPx!t%bM>}3Rel6b>%4R z=2W4s4ny9Oax(sipahnd^8HT<6>OfCf5S9MBvMdWXe5VM3ZYLD_M_v>f*@UTc0bvT zw{g#C&t)Rd%k}^{`bw|DWl{}Dg~J7B&Nc8 zgwfQjF`XigmCh&nZHcOZEFHPtyJ3mQPBfIT&ZnOwXfOrHu@Z5}?VQ8jAC^~ndstQd z`$t}T)xm~4d3eKj`rMBhGYJ9Tm4-PT0w%LMM}Rx48PI+MwC5T50N0+`lQ20tf|3t@ zX>H_gpLdp{g$W|GbVeVnm zEfODVZ6=>~IrX0+wOJjlm+-)B-yKa!(|)-?40rEdq4*fVHN4}$>0p}uNR20R_GhZX z*v?g@1|P$Mfme_tnOHnfyk4ml0jbv?0jg;VvEPjGpw9i3}CbID@rQ4!4w#T0M|& z4=-V_Pf8o*{qYR6JzL@FccVxd^i1($owDxv58BmwCWxF{Bt)hWKrbz@SWa@nrRb#(reVp#< zhqAt<;3CO^o=7n06j!TyzoeIsgnwSMA-qm%TnJ(BCS87$;A<{qW*1% z1h}RlqwU|HCv&5T7iRYc=i^u@Tf%{1RBWV=f5niCW9HMU?Z!CQ?x%%ITam3=I{Uk? zk&&?mze|oRorZkbjK1)5rrtCoOO=m=?_d_ZOQ$nLaxz(D>gN}4EsOs#-aOH+m_)KL0gLpQV7G{(QlW<1OCv& z$%|uY7s|H{?87d=y@3L_d7+`~d znwpyL!QIX6>gRxFaM%ryY9N|Svo%CGdI>xe!PNf)&b1*RE!@w~-B3&eMJ>PYO#qN3 z6u1133K;}8cbY-8C@mRrt-!C5&2jP(0F?n2{~Q3X;{qUeDDu_Dravb*W&3w>Mx^z9 z#EN3&IKg&-0J2H;p7jHF@>q1mAY^mn*Izb9-rtGAQDdm)WeK@qN4*kr*jz{h5m{^@ z)^CrNOON#5t4f))>4_`~ZIR>{=f7Zj(CV12?T;&q?;-hiOS>F8*7uxoMD$s+62W1K znxku;<824<-`mGYe?^V|SBS-3E?L3fiFPWP(L*~@NuMe29B&)0xzaUw>YV}xR2~6? z7szHA^v{Je_9kjMb2tY(m7>f7ufhfdlM*cR_9tpd*MU(WFeS{BEk9P-d6v^%Tz07< zTqnEsvsaox@4Gj%PX;C55h!}F@eN@h2Y2G47g^2Tj)^Fz-{FR;DbNX*ss~xD{%bzs z|MoxW7LI8TxGcN_H9vd?1IfWqb!o^1P;YuSg7!tvIX%SZ%QT^RcF8n78=Nffb7T_p zuriuOFGnVqa?JElGeJK-wNWwtpz8K3TqboV3RuJ{52v9C$8!;SgmlBeG}CL010&tq zGM=Ajnpt{ak{d-FZ5yov zo^3VO4J{PmycT|9_T zuz3Dv?Qi66-k<1)Ye!TQ{d=^vw*3Wt(bVGkS@8}-S~CK90p>Kz!d&^3t>z!NxoG+X z^27s8LXl_R(aWfgC^KCu^nY6ZnjLUguymVPt~N#{g8Q*BjdM&QUn4)%l56zmT8;l+ zup$Y^*)Jn`xbiqv>Jb~`P)YFxvgMDIzZlKp;xYk2Q+W(MR~JlB@lSOfq_GAhna{7- zif}0%fT0S}W@`(Ke>{BA?O z{t{Rg)EoxvtsX#4dVFX;~NF_3%ac=CK_Z^l$%6hzr|;^7|_#vRq5O z?601uk5GF~2X24>WY|v5^L1^UIflebVOD;WR&oQ)@eC>|zzxm9-hH&rl?+04C&e9R zp0lwzU$D^V^cMYv1KiloMJ112lhh8Uzu`1vQNRLPTUB}XU zV&);Y{G%Y6kjVxxI7ccykVJa)dN7zomqLXU`&;K7| zZxIzoA9elW65QQ2K!6~@-QC?G!95Tx&`5v)L4sRwLU4k6;}+cA-QBzE>*u}icL#TL zCpGBRgRZKz`hU*Z`?n8h!{Pk+5zyZQKJ(`zLBWiil5bBz<~ndc5^{NvYaZ~s)Pibq zC5o2;Xa?jXn(j4C7L`&5RHMoq(5Z?GoXH=LuZeuC`q=aiHEi^2E{ERHdT>(v3v2b9 zDCC~t2xg19TzgTcmW43CTBCK41sKqF<>J_Y?hxLk;(a^R;?gNr0j9dF!;pXIb;Aj>nun-X(x8-`{~ShbCSeLv zzC&BkRX3oh9nr4)dK!l;b1ts45^>QoM{Bru4_LdrO$Jn7K=x;P7eETq4rJmWP#j6J z;#c@w=lk3}14(Ri+)u~@G2Mo+>3=fk2MrwToTWA1M@UCi=euB$MgrJ=AdE`%q~{Nx zfNVLS{`tNqA4XW7LL2M>Hvu1QsD()iq-pM(GVo$E1u*mC`TbS8$1Z3v`u=YBt>c*H zd5&JkCavV0IU;y7$E+&;SfkiSt!Imq;XBq3Qc#^0rRqOm1 z14}$w^$dhZMNJn&LO~faNYMS)nm(1DyrW!Mf@;Z$+;inxoP~{6+L0lt&_~*T#sNAK zxL8rcc{EdlU5xjK*%c}`I&KNh#~D&FLEc`BY8Ez!4=?7y>X$rLD9E&Cjm+FkXL@7s zmpN)DmfUb(9CF4bI-c0+FAk_jHbF5}q4ZC{nHU7p)C4vg230VA1Oxj_K|1qAh&-3?*9viz>3akKkq1iuaG-2ZSMCq5vMA}6W zVdYCyVqQ5AS>_*{#8gVX<9~C72i@_bW;x!Q?4@3v{Et($6hpyY#;9HAS0@}#{P1zq zO6c4k$@-ENGyCU8oAf$XVB3hM{k9T?y}iQVBf29T3RZ6_o=vP2g)Tfs#N%?a4Ac ziGja?{NShb-Sz7Q@l4+(+)>KkRZFpw+?DH%$RIZ~6uZ|GQuq_jYiQ=9R)(@-e$oe{ zr9+9KIQoZkTo9F=K2bP>+kB=w8MiP}K;#@E&7cD(>kqPnq%s`SxhW%kINGyqa~;$N*Ldf13C(TARh|W8|{&m6a~k9QxxgsBhYJYX5*2! zP2YopXkRuee~GO@6+Q=4Ps7G!Ltg=vn@(D)U}?5ZWRcn}Fg!@jXND2(z)fK!I=7g< z5H=}oJ3EYM4rdb8L@kQwFBNh{fVSzBs$!evw<$f%AZoMhYtE$plkY^g^IuF6nkjf& z_RCWU=b~;3X~^blDbInEjj@Bf7@-eW&rd(h;q~?i>>f&_mu>*~Gw{Xf@x6ud z%Sv0yD-81Q2dWr3{0xlo(rDB?+HAq13fmft=hU24Q61-es0YLEb$Z+Mq(>`d9T9|^AI z2)<_ax;!@Prv3?)Mx={UPVWChJ!%sIqB2Pq4Jo|Ts2f5&=lCu%N!_C{&Gi~{j~MiF z3*scP%Fmp}%>K?EY0<2%_hmb}O2zA=VeyHly6_jxVlUFtoy)t0Lv|D`s(Aln!jf7% z%t-@_DfpLXr}`XtBz4=Ld|o!HSjH^KCwKVX3Fzs?Z)lM!cdU_#hRj*#!7S7Cwf5h? zyCoFos>dxj1p>c+KUVy?TkBg>>~T+i+`$4{I2A58oS=%bA&Ag%wdxGnzYblX`)0kwMn`TE1M0it z*)%Nx>gy9P{5=cgYxG-e>iXTp1heTx#&M>n*OVY=9$Km(IKf<6=ru5ZA&>9iJ;C+k znaNxUWj5H zcsKZ^N?3pK?^%rvzsTmbJIYcni$7(~2It|7B1MtH+rN#;TJ;vYC(B<#n`~C${hfVI z-M8{Tdy|N~E|ASO!ukl|hO1v)TjMH0_2bT{&R`)ft0D98x_$4`YKcGp zBkE>}vT%h3&^v_cFdLO7lg^r&dg)=arG;@0OO>vECXz=vFlBSu%`Blv9DJYlsdjqx zT6K$)w`7%evv|no2x~@YSKIHGNX}HEkl>CslaZ-MN9{GG2fDAgz^bm?TlHpL8EleO zT9t>qqR1!Y3+>#&v}I1{W#o$2v(hL+LyIcrlYG;mIug`vFeyV(+#-w5dH;Qc%ghF2^K!1dx-Amh!WP zc%wM8|H&Y+tuSyvIaF{X@d@xKZ)wx}1yc$#ZY})QNf_aIH8G6Bw1@ycGeEf$kQb74{jYRw9Co}ix(#4i4kLC!{oLe#m5ZPE@$1FE>*;cJR&mMmf_pCS^|XQ|%}h!W-F&MQ9Yhm%Gp zx0@{xQZSaytL#ghVp3ZPeic%Q)5=PH(?m-p`D)ui z;~HVBp;Vg259hBaVO~#dspuhIvACdv+^{%jgZ)&nB@qM9E>Y%tTRVS-RI4w{Bqls7 zNg46;?-m(OdvqxKD>te%Q5if|kq@$1=)vdNqs58qxGE;Z@H_S#2y9Rh&vb&6hKk-UXX*3bvzBrGWrPp1tM-F1; z8~{TIo^2Xfb1QxYHL?M@<>;`2!Db6ExCgPlNXWlP5c^ZMAR4j@MuS9?jq<+wC3>=z zW)~DD-|gIN3T(9X=Q@@uZO1F)2io2l-;Ar_!Xm?&)#|H$)P|t0xd%FOa$R_GqMcj$(2BZ@^LPxu)A83S#{ARd1dG zDSEqk-f5h4(*(@Pfn-X^KH65O{9=dwE0Os{|nt-|Gjg6}R_{2AdU773=d4S1aK-&J7mpm@?14 zb9l@h@p-GYFz+MGt$X+Jyfu=H58K$zFC~MhyQ_iH6J~q$YXnsiSyYC^G{R*f8q4H@ zz0PbLzx+tkzqDFbADQUy>hqx7axURPB$5I>pzntBxmJ+Ol|ueLoo$Y(+VQPSvcGd> zCgNh&Nv&xT$aR}Gl3Pr5i?8M>HprL`AZ>kmoxkyF^-KK`_!Bp?+iQK$m2*NhXr78t z$FrXCVdBVwt)Jl?MB~qF3(B*X<526NI`yz0JR5KDyu)b9->&4plD~X8C@@F48Ph*7 z3C6$g-peEq)t5>Wz!i*)lANQojF6IafJ6WF{+cuX{HWm98=jjfF^fE%xq+=`v3#ne zUm#Z2)ax9<)->?+8{X!=E50?uL|SKZ+X}=aGa2L^cl$tIdP=spZ9mG$y7@*OZB+{O zY`&N0>y=dVBw?pFr@Pba#VC>a9h-@T$-gtBZbAKhdmF$dGIsQQ_IH>zF3wGIY4%^>J+S_q5gX z`vS#{Lu@=IeKV_wWdR{+{_Aqv6cn}hSb}Z6mR^JAtnUYGZMe_R%uQw2W8-7`{m1Gb z@ydQ$81dH~!;Lk|tVjN((6lYZ#A2W`>~i5N!_&*<;LNEX)~~qd`3LLffQd1eHGt(2 zRCOz1fY0*;nr`PBLMTc|6x?_$bS^_=Z3cOY#O%~}!vE3hI(Vs7%6>s8LxgbYuSyV& zoCB!0z{=`|$`Y`${y$~~-VHz%F7kv`rRP0;XQ%8}Ny)%|?oa{zFA4cm?O#tNT~YgS z))kwjbKdyURnhhiJoZq;2?Zl*nvoml(GBO)-o}S_Mb}^yVru-46A>^rF$r)0KrjDc z46LmH2{Bye&b^(f>nJ7)Ul(MjtC356%WHYdos3~EOanNi0p;LgA`AIT@x~BLeYvwzmY4wc12??YlB`8!fp7c-M zaJj)(+}C03kJiLzli?I(x6Q2f?PepS3Up821ND3fgMNou^@wR2l$oCZ2||dSj~%-l zuvB&kh8=N_xqKHG*1?3+((4jAO~Q%27`TrVUT}dcqje1V>2uAae~svPgh@q;zA%lS z)+HOE)2+DhuuGBK3f-sPKyQ<{Ikdh260{IIyS9vJ*qHNGqJmlXo<^Mb1qWvvfRB;E zca|fz@!nZf*&gfaXmKyZ3MH{pT7`M`(q+~x-bx3qMLWN32y!*@br6OEq_u-X`FsZG zJ~*T=4QTkzlYJH|OH?4k!q!K_^4H20+Mz1BpXL?st5TNN3yS?eJG6k${)L8&szve{ zL>GP!VsN=kldaQ0_u3A7AJ)LX|Kn<2!(XPJy4=eeO-$h4>uptIE5+NI+}AEJ%Fb9q zfZ7T`^7Fu)>SGww?i=3C3kdY9B>J2j!tw*>+A!;TgBxqobz=QOa?D{|R?+-7`-y0z zM$ysN@6DZEWYegPOh&w4g z5^&H@GiLo%MjMl_N>utO3H)_LH|VX=Z%e7xGVMo6k&cQ^i?Y0b&jx&TO&5xTgL06&*e?dUb1310Zhb#QMDY2%z#A><@DY5Ox40 z`#`cEWMU734DR!|wuo~9`Wqf8``zu7drh=fg1GF68b9dm=?yirw`F(peV10dFe}lV zS?P~n4;{@r^4qDfYlOs3inb5DDZThh&))cBndLGHzv&b^!ce0)dfimZd?d`foF;9m zi~5b+v58T)(VwU{TpVUA*y=>#?!PaNmhMv~%~r)yy#9nYvZ{2_s%`5?*E3^{l%j&H zB`Odw8%`ZW5)yIC@RFhZMJgD61D+06Rd*Wa8~k;A3kU5-lJ~B7*({AW_+F7m1vB-D zI>PJYK2!ydY^lgq8^|V=i9|@x|DKvULxE$-Lc(He;py5NdgDNnRyty#`WL%Ee3V}m zMrb0j=nmp3Cl(q|MeKHfM1kPQ_5Sx`2B55@V))JiHj3^@sY04H?7Ke zh@T{9ir(d6ChM2K>u#MUWW#c1k5a4rTQOTJ|0QKKYr#+tg(`IyPo` zsG^0)h(|C2m+vN(IJ6ETSB!E`KoQdOLa9SX(G}s4-;SpoctX3h#LM_h z$q#|HJROO=Gk-ljZOhyhT~(O}M~sP$G%Mz!nFVEF;28<|%>M`~8~5gWF#CMBB0zA{ z33n9__crl`xyth!135(!oqN&g$kI~D&(L-o8wB(?U3>pFzka{nLC&0!4;WgmfABN?ZP+UJ-CN#o-fYSv~S*c$> z4VWt}uCB^P{`5JLqi(G97P#MLpm#Nv$r|jZ2BFK?cF50Ftw3&#h$VtjN)!>>#9>*CVtNEvNNQaC)Pi)$ z_Xp}EQ#mk(8IPg~%m=Qx4@(>MDkB9JV3yMRd$w1Y@V5bk@oh1AgkXBn+A!^@ATNDc zm=|k37i$22I`tm9Oy5MxF16@5vBS7I1&q)UVD5Q}?-1A{In%q()hGB4#W6exIx>q_ zaNWjJBMaly6i)h0GKf6dKBnueA=LR zj0)$~w&}Jgv_Ue}A9f0o||&4)r?$~ zS`UQv4{If17QU&i@W= zs{z13fdug(AEpuzrtYTE#&mJ}<=F1M}vNz=htmMLD|A zJt%GBIV18UOph1lhc>y?H1+UJrLtWGJ`aZyuYeSnK&vaIyI=!+HmC+XpwJ$I=<~LM z#?d-U6zM7p5sdcIQ)tcwV>1zd^1(GoKa2mQi4mlSJjbGtoJazVnsrxaoHNyGV%gL2 z+FXYO3Ag=9nD<5Bj}w?W$@pq`&7VVI-SC-PgI&3)X<)-u+-|2A!|QCn1{g-)kqpr3 zAMfLAR^J)0g(vRgrw=ICN9~cd4Qo!ZsTEv~%)qJ5aA}nN88c75WFBBx9k|6b_S_vD zMln~X2&Q7caP8#el(&jMLOYQq`c}1OzlrL?_y^;Nbca{yVl0GRyquUfiPWlYf+ASj|DFrIFc>~XtvEkM@f=4w4Qij< zQegPcjv?ji8cObR-lkb=7e_r&H)Ta!_3>lbf0yUJxN793K`{Vf0>FLp zRUi5|*i8=5_l#ZuLcfcKpfBTb=RjS<%rXoIE=Pk|7?^6IG|4AiKhPabVF96C4QUPD zwh~Y9g2x+z^LI8c&KvnO1`^9)`4U|u%jt%RrVP<8%f-LoBj+!FD!Q6V?u~kQKIATj zsUy@PNIkex8^JrKR6DKMaIoV_S5B5Og@lT~lR6FlF{llhK&~!6!gc#Fh#YucI%j%o=HYtZk;s?{qrX{^b&G%*$Kw}Jxe<&fVAj2sK)#k( z{k!2w)HS!@`;0z9lSdyd-oVsJaZ{R7{)Sz`?RWNM!IWWhBi6EH<=IuF|Ne~F9JieC zChv(p$^xz%`9pAJ-CYx>a6z@XsRvb{x7WAOVSA*NgUT3*mg<2fPRBxiO&sHY)|Gp@ zk|=hmhdfo)h-AXH%g8jBk=OeZS7@wXGQ9&|;;9Ut_fv&{t=eo~PjOIKaM z7L_(sTXZ3K^&oULU`Cr}AV5PEV7fW0r3IH!8VwFD@mR__SV&zE_o86le%$ss-2Gp{sOiwbyacf9ivP!Uz4r(VDZJSJMXsXv86O&cf1rk(%cgyfkpBwJ z-M~`3f^1Bm!O(8qSC~aR9u}Ids0di5e*z{%)WYw9thQ$exXx?}Hv3K80(Nr25S6wY zP4!0A1B#a6KjHplNK+Q$m2T&*&Lj>;KHgMjc4F$uFYk&rp)!4cH)XyoR6?rEK zDIw55*)LQG4dIXK5LcGoZ=)1pj>Jb}GNS92L3>TR{p6tLTu8A(8JS!T3c@#}pud@Vcc0HM9DLE@jXai-O z$eS?u*1IG+^^+E<35xe@w)h3>tUvZ#|2irTq^+Y455Hi}ed{i!F{|^>EAzr))X*pT zijs(HCfTbX3D-&G@2gHfiNvpA;>D zfoe@)CVvjMdmxw>Qv-_ZQIT1o+xym1JP68-2-HA0p$~E$L&+fdhb-}BhxCrw1Hbkv z8gFWebZx6YCnAQI09DIF{B$TrOu8nrEuqOM9Mv-xmbyIuAaA~1nGbYns7elimAst@ zPbXu+gI*W2i3e44@WfSCh?HT~V@+4>T^+%4w#MDZ%#1?)Blwk>&W0d=<<&j_^keL>mw)`6TM7Af_Mg*@`v&w>KXC-FX)M~pVcxyoPpLHu-=9mk z1e!li7}{`o@p(PiT>WB9b@DvhSgo`zUh~Lcsv+ zBPTzhK|KV{y^iDMd!liX<3xSi-B{sy3$qm{#zCyMi=x2uZ=3%@Cf!6XugpsR&~25v zMEc4Ol;Yu?+M2UhT6sFI5SSkC>$+*nm#)R}3pSj=bMlK4os)c4!J=aCYb|XKk6V{M zMZmu~41aRnBF4`=ARNm~{gEPObiF~P`P@)VvqN-a=vD`}CuzRfluJ!XnZ06naJl^| zmB>D@HX|G@amCdN$6O*X&LW-4`5DS}4A;8(y0Nyb)B${HWdCoLB@11MwE^Lhehg9y zWj^>99#9;ro17M;va~>uLsgCufoB}4Y=iN1h}OV?)W2rWO~*Pvgn=@A3HNk}i;Ox1 z>{Aqr&Pyg^z(_~RKf~?O@2?RF7e0~gdJrmS-#%fE@@ml1r=&gqqSpS3;sO>z%4&7P@)*0>-@UK0&jT0 z-pX{6YRh6_=O;jFKLk{|mvTJD%zip$8bU}SDOL>B(w)uxrr+*DaATBYrk z#Em;XEm^~DG4<)k5+<>FrNqZZ?oZ(Z&w&&4IF_$iV2+~(Ri~od)MxkNQqSb@+yX}U zAfxRDCH9ZGslG1Sf~PamZd{7V*PQjUcJ#Z=k_xq&pYhd1XXV|vX2<$bjZX&%I#J0x zhCUO-bHsWt%ADxhV@;IwH|;-n94ea}&k^3@_{)H1@rUd>UHdSLJKe8E``)$67*coLofTaJc^GQtDzLc-YQvo?o;#VtpfZR6GB$rX|ST z$T05qJzdgh)--l6iJ?Hq#fmbHWrx3G+rT1_sd5b_`hV09LU+SJ`IbCFI%!q@TVBOm z^~By7RSKF&)Xl7<7xsXwxU6#H6aVbWeF-b?@EZw z30XyIIB)E+3ypvMNmC2Mq;_T*P>8XF=go}yRQALGr&R6ms| zgI?hD5wq@DM5fyJMu&<4lHwme;m{$oU8VV4C?9kF-S-d++7sv}v+!zQQEDe__W6b@ zirjwBK1~{HZv9eu4@7(%DfVM;vs|I4V!7Fg@Mbvwhh8l_4&_J(K%DjM^}(XN0o+zO z14uId@dqktcP9bm8{nWAN~PG{NTrP4_mM{G*5(cF1(gyWCCiRQdLqO2F8%nSE?cOQ zGJPSf`ciu9Z#=qiY@xBb1$4@A#-gL_%>ui|wIX90v$m!aO3@}R*0qsBV>&MMS*ge% zKtA)d?m{BE)~08v`t}ADqQm|};UJT!lXa*v5Xy8q;*C_qi?AEzvVwZ>#YZ&~dxToF z>6bVe!D}SJCF%QdbYV?R{l)H`eNRui9NJfyejwYcgvwLH7ir%ux$HWa-MF`S?-Dut z4()TOdZfw5-WZ~0mf49uyj<4i@&~G9YQP(%|H?9W8<*+kr-bisRc{0>Abfk#DY<{S!R_(8%@ToD*v8cuF~tC zRGq!DdLu4$?+b!GKWH9&OcQD=Y2PH^X?GSJNRP`!#FD>p^Yd<=WOE@tvW*mviLIPt z6{e3CJkI1Tp57N+F+=Aw`M&l*RjUU3D-C-+zOu0M(&%38MHmcFI2k;xB$_=P?L4gP z&&zKBn8!R^UIebo2SHl{(-|HS-0QyQ!=80_t>dM}#^de%RGHh-$P@6EaB3dZHxj-M zrpk~{F$FlN0}tB8wL&-tI6o6gPHhuRx0YR&in!&FtN7llve__3T-}OVrx&55(itI= z+k76Hll)t+i-p*TltB*nDe;e$9*0y83PnDj;!JWCy+LY3dNZHmbdmg5b0KoLWIDN| zV`=3G6pcKoP-eZ_qGXKs(+`Y-eGSZ;!G;Ym4s68KET!F&QuW|T&(!v5&r+vwT#A};x z3S*pJ6~ierlE=@ue(Nv?$fk~2MWYI3(phgVTwr^8@>Uzp&iI9&WwDTu$IlSeH>&hc z;en#^E%Q5?j^9Olx>Tjc=g1zUx_>_%U-Ib@=f4n!3;sgQmuU{35u;4AJr2t52CdXWsrH|yp0TOciyP0C_4hqabvEb2Q!Ui`TpLVbQdqvo6QDaf|h z(Wo%1)x%*9jS`s=@AHqz4%M89j-I0#vIJ}aC58ivelnEe?-gdEtnP#p;?$v?v5{f8 z%?D&Zj6U3UggEAazfW~&TSoKTV=Xl=XJkju*kB9nnQSfMzkTEPYj9y0N7)8MrTV#E z_xcDNV;n@AuLzX4{AWLa$&xVjWtvT$`zobBf{Q5`w(x}&z}oNhhEBMC0zUCu3Ek8D zpv*HOln`pU*-1->v`c5eLXED$WBZ-sz}kw7{(sAyTFwDwww*e3n59={1jLuMGL{To zm{%_b8WL+TUvN~~A^*rcX%%KmT>ZBS(Vkv%mt4$7F=c=L*CZ`NZD6?<{8q$(M5x?5 zk4~Y^gc1Ts{3F!w%NfgR2aZr_uo}*tAl=!}g5m>k6XTO{04*W*OXI)1{5(;Q%Na7( zc8=3Ke%6TxGe8C^QucgDsx6*<`luRP)d@-BjC8tG64E;pWQ1_`|ion03s_OYo zTL2;p`eIfH^F#QqE1H;mzMJh6P3wB>5mv5=9mGVS2DLrVU{&~qytU?hlUY-V=?&j6 z5iB)3^3{*05~k&k)sdc60LGmH8?X?)337339JvFd8OK5ZQD$zwplMSvs^O{}=x$~- zo}TF?l=8#S`jW$I!N#3LvSD7!+rd{0L(F6zpy`7N9t60Cme8_6Bub&Vg1t`7HW^bX zsyQ~Np-TFCy;KYOThwLL(>qpiXv|e^1P@@l`%31X>8^8sH! zz#6>}dyBxVhrM$V(p4AQ&ARL#n@-(Mwgmr~=$-$7=-t{C5lHH}u$O`u-H@x z!%=?1<D5oYEo|OPgtv`)jN{;|Gk(^^#~8jF@NeVW#Eh}xqf_a98(&aUPMaV5zQn>=|>lptbiEn&s&@J6I zLE_SZ!dK~S3jr#`l_mlIXW~1QBO3dxYOgjD%E^)#8;Ay~C5?!f&h@G9sF(=bP}*WT z(dmerdytFs$T9-ESN0LU5NR_#`yGOi#yp-UVTKn#az{u;^y6Da$9meT?{I9|>LdQE zMfTtf$LSP@=&>>}ROP%UVEbhwZP~yA<c#o$gA6jOeSamotGOFRJc=8j}#D`Yy;g$gKEq|%aP6LMxHE?QtmA*1okq42L`~c zKCANkD_Cb7kUq?L1vtSkX{naslkHCz=?f*lo36_J)_BEE`JbStVDewK4!~U$Yc62n zAeazCd-96dWIlODzp8hzDwix9!1G(cq;U>+N3kK{w~7>WqKMa}sn zgmg9|%kV;3o9Ah@6-Hbz`1}G1pbA^W6V;#``!aqax~1@XkKV;>mSb$bC~*|?vp)|@ zi<<`#X?i^>z8qQ5_&f#2yJ-S_mHsPYsx_i5J5+bO_z+8vi*kB=nHudC-yK9Q|Kkq}UjsBWN7glSZq|FS*~rTFGI zF(nJxt2ReCeTf^Q*3U&WH1N((@rf>(+}1IliQiaQhI#(u8t-OF^4&`Z9+&_J7w<-f zdyA}Mhyk7MGw_uaDxsv|n@VFBfZDCh^+;YTP0dQTmQ2*~kwJ1wpNe-L{7a98zdnXs zyH}P1srF%tVXGGN+Gk?1S+EJAG%u;`pN`L|&Ct@DmjdN?w#i+%4)*r+@`ldpdSH3^ zQQ054=^=qg?70XiUGyHY0TR$QATyPlj^J9B$CKJd-sp~`g#$$H?$9$~5z0H%3z zE1!!V0tv@zLv_%KuYs6?;JrPl&$iOS%TF08B)n~;7uzI5ce$smCkJ7H^v@q4_`ZP< z#JD_y4OztPC)JDIYJlPq~H-N1_H11)a#y^irC4BAhIM+Hw%_x_a(BCxuNh7O? z92A|EviG2#tv270B&)tGvVn^uL&yJ8Q6PS5iX7#VZ&%{9K9WKP=IPNhE8U&4unI42UfULJZyp*b9XO zeo^>EFHwvwN{g!Mu?BWo zi0kQ9`nw_G*3Z?Nn`}#UOKsyPDu$;BdTrtwu} z6D?~u{l|y2GltJ_=Do>o^dTMs4i8iMj`P03!4qN=&j%y-95fm55}oHV^pdDL+%>rOd#un09o!l-#zD?zCN@z*HtlHVJC2BF`6@Fg)t=*eY7p#f{T6w(Uns4-rxv~A z1UWd4d{~uQ@zPE&9x~7gy!{%*1K#;JTCf^_ z+F8OiW8c16*|dB~9n3|r9P zHPpOU+P7R~Y(jhwF0JcMP(-Dm;>S}sl+``|WD?CCNljucxNw_wXtP?&=0kq=l8oUn z9+CVo#a{UJb;BAf_cu^C7dHj4LnH{L(XVONPuOwcw%VuRBwu*oScxBk_ry9vkm+J3 z_Gkxbo~Mb}U*U&U>PlS5TRWpJJVa_kz@FX#6%-{RBH$wk!{bw-zgYR=RvlxLm=G3; zWdABgz^=Jr8GW;(1Vhu@>OXH&p>2IZPa!PV`f8lV!3c55mLhC3d(e>nna$;N&OECs z+P&_oje-gD(-*V2w^b*FDN3Wfv&)5wP8)Y#9aB146r%IF4~z@v6@RYsO_NtQPphcy z=z|?{wTB`$e5o=~7LXQ&rgP&24TOd?`pDHh??H2_Q0Df5tVY$hu4oR0ROpFkt$M*c#dd58UNciG;#sg*>B{m zK8MO`*=n)w58cADE#eh*fEO+eb33>4#}sXZkFGd>t6hGZ_U1g5$Vigtl}=-w`MDpe z7Kv_7W*~i;TFxw3=qkTwRPTo$FjedgX#^QKy0X{G&fLoc6to%M0T2Pg0f`XkVQtgg z+pl^g#*)-6W`2Ydjw8!BDq_hmkADf@X^Rlw{M4gCT7N9{CaF7QP|`I@;aQ22M;5() z#B_DGJ6xY#i`vuOTWY*N_i`2{adLE>&f&3{Dg8$>$wtxOZJ4u3$<&1TtKgWUPu}4S z#{}p%-Jn}v4en@-bPQ|wt}Z$eRM9E)02cbleuaU^pfc^BTSN9qhBOKvS^7|0gZw0C zD2cg2b1~EJLtfBOu2=?z5o7`6_iWbe2C&3>-_ocL7(&#LJ z7{Ms73wR_1J$R-N< z_`3ZdL|U+U>nM>;$-?8kGr#DE^7;F)G7ckETXR0`?|S-d8{uHYQYpjVE<)H)@Aa7% z&|fV(IFxr^+ppJNF)RZg*|V@Wqz|6C%h-j6_QW^sbO}e@yELYm867cHb-2o<(fV*o z!zM9nB8=ME(EP%6#&r{I<861^R(W$$a?u7glo!m4Apmm^Xig zMKe_6C%_T)s=|r|#0Tu60Y|x7@vcTuMS%4!#KLiK>+Ca?Qo0B8`at2rI1`dwu zZ$H6Gs)Iet;F&8L2B^dbm6r=^);5R_A)>4)y>hlR0{*+d z&W`hp&IXf~zv}G9^Bn3`>X0t%Dg>vrV%l8YavH-Bhxp3;W(yq~#;^=~R(xE!l|_a4 z@W8XMh($AJ=s~&5F|>LFFs{^(0*o{YExrCsd)r@P5Z%_hP-SuX-3}|yT zdr~JcD1)K2-DRM+`$&3Lm>;<2y_&ZyRwpK5IJgh@nwZ);+CTm?(8n1^>$7JJv~F$* zx`i5J+f#=p&^9{5dF4ithO5L`$nFLoQ0I)jPT7#jtj2mwk-ox%htu6X)LMUxxKXVk z`Z9fc9u%>P^>|6eeX6LUF?mNV@jD)=^PR;A|GsvBOXT9F<*U`FSCF*sOk(XcY@^LO zr^*UI;W7tBq=ZX(0pZmPzb?#q0CW_%R@w0KXlV%WyUXdQH~x$rUGW>>zPEtTZ2X`h zI*1@ligX=bp0qoUA|i65IpTipZ_xFYWI!2krx9;I&zlrl()TQ7e;;EZtz=56FK$WY zMsX4wfNE4L{Cl2|@5fPf)0IJ!zaRs{XL;312!ndu71L(#^zHbJVNpV~U#+gh`T`Vi z*Bo5~^1H8Kvtxizx@8YQXy&VX%(edk+M0&lZALhNgD~!%|CC$Tb94=w17ymzU|*DB z?*smQfg6fPV(o2|D+WUH3o0NtZRhu)+ON4$p0M04FZh|OjoBMe-CrYEB)H~VKqCdv znXR0Q1_)&5w}YF+8^=SvCn%QSvM4cY zn<;4S7I5#nfP?c(LMV8~zCjNbjbgM65KFW7f=rfYj9!iw$ru_;^pgY#78(aa|vcz?- zN(X=lCnwY)lomB2R`93oks%wgFZ|A1tSdwu{!cWRCL2Tj!^66k5+151@wKpI_M(OK zi=<7^v$EGTn+MKbyvGv>PX1TYvL_KbpRk=S717&95;Fh)!`NF!Mfpd4zjT*~pma#L zl;lVwDBU4QNOyxUfOI#~-6bI)2m{g}-QC?iz%bVt|M&f@bJlv^oEH~wShEJMx%O}N z{_f9r?_rYp_v}uC^?h&83+C(bew!}$Gy1`1MzTa7!lxO6uB9FJHMkZUvMs+v?5#S5 z-mB0jEO+-eq{-KL(y#5|kZn-Da6C}+j9V(0|e@n?n7=U7|9zb!d@Tyt>-*9JZ>wA3+5^)y;=oE#JON@Xn_h&P zS4R5QRKb_%BKB~hCd7$NQH@wQ6->GU3{O3!N&eaef{b!(fQ9HRKy(T5 z2M3?tz#xB5a}SERNh@ogC?PBsnLuMY83}UHC6Jl$1a8w?1d~eD{lKq+w3XpFOnhg5 z9|LXuN}uyWC6!LzTAhEv*meMQON>;S+L1BWIX4*$-#d$&euA`9^@6$Y04WxKAnnmt z_5;%Jn-oGKD*|212ehnt4JXVkW_Xkc4)fZY8qU`ij5e7|NV zf1XR8$p}~CeVtF`#C_^pFJAsCdcT8a5C6s43EdCO!!A!pLZh}@B7siQ6z?1Kx!;sU z$n<7p{X}VRC;VZ$qnRyjMwJQs#5Jg+a-6(oi%t>hTyf`_U_ch}(@OC;QCBgbaOU$h z8a&s7r=rHbYUWZ?T3Kl**+qx1JV@FEiX3a2pK+Yt_{QgtzuU$~aVM~cBgYtzU!{I! zv0%R8Vxfi7H$ks!g`qdUICn^q&(=3?zZYMI7r(Z7HPi-Q`v$kHoQhlq8Wo@7Oj*(a zgLEtwzPr+wH>RXS1{WREF?pDQwVmW=jy&}gowanZhp=~Bw@4`Sy%1(`g zBjfIVpQb(%qz-9UAf|^q?lo$G!oSw?^lEmbSy5i>y?$n{tBhiz*Mp@@ocb<+o;#5C zZ#7~swngN5rtSjv@AzKkMG8zM)gKmyUr5;+Pa2Znf1RTAh+x!8FFx-WHQm{WSAWTn zTAV?gA!h;F?9j4sDmW-GjCxRu*CB4W>`V9aH{JJs1T}Wf|6YQ|z}i|abxIy{J$eAo zHZkCZ)U+H-IB#vz79ni1ANZSfFY~#YX$&C{03Xq7pfdz-`y33@7A) zynce(#s(`fbM^iO4^Du_Miyovm3g7j_A%{a+nLls;8)=;+s6}Sr~tQVkR9f|z^iXw zo4*2a{ZS4Xrht>a&v}T?S(sYK5C5b2XV${?n{7^$jo&!~79$1fS`Qwir1te+Dl(G> zp#(y8OcHsd7%VvjgmBI`e%A!>;&h9x|KZpkgi`4pj}1D=z8nK`uG6x;x4HH@NeLdiQ{CL zF~q90;6PA zCI?Cu*gW;!Tq3CjwzIu}<&hp*H|NO*e1rDR@C?O*>Xq}>xDtdi)}M89<`BGg0?whY zO?<6rfKaTTdXgQ0I;su8pcojFVkuDnxaVOFzjs%?y$3tOj0<1<0v!1j0dViQ%`s^2 z9PG^j`eAowo6sswIV1?ACBQ8f08zw8Ht&#pg=o1r0o)-X##k2Fz_6R=;S<=5&j&Dm z09b;xKLfueS3pTC%*I8E8{LV?f&gpqoVv}sayVq>e$58uwYe~Wn@0(UNTVojNJ{O# zOuX^!&?Q`_o3LqpJPRvoY3zg<{{*||FV2&iB&N(n*I|f zbW6mcl@ZeizPJka@!mxK%bBzlG*wdPYliP>em0YPMmBBZ-M->K5&7ZQ9Du$^s|A$4 z=mqB4?jcfE0uLbeO*pCh)6g`SzQ*{(5{Vi9H1;rzPpM^GXWTo@a3R)9+1p^ck8}@r z{bZs<OLKMYtPdYba=vm!X z=`@;;Q?f0by9^`Q04SZYN_znJ{?98$@4?(~I#@g1Kz`xppHL9L#)7sQmn9cGPK;m4!CZ2P55VmKtkdp5 zy{gCXf2V**=ixc)1(=!z@$uhT=E z?~NvYNso{Ju?H(^r2KGhAUr+%;yIra&tWyRV(!)e_E~jBVd{ewcEA7HuhvGfD>u6c zjG&?m)SaJCse<^hNCGnJGLml(GCJo(hf|__{4N*_zGBxL;a8(o4b1oxT?(PbH`&;W z#>e(M_V$)sRwSGn$T2~N?{ecTCSIVACDs-7aB04Is4PBy1fDiPy-=`iDq^jCz6>0! zhTCbl3@D3Lv$Y%FadHzlw*kgbQT3+W9DvbOQBcO_acfcQnE*e=ZMz2SG^bqnc zVG%0BqOPQ1RluTdo%qT`v&W?--={scIeNiRleOv9N9*YYcrqeA@M0w|4^CqXn4CpC z2!Q4y_=R)=?hBE7#i!cZZ}nq<=|!%{&XWqA8#h#Cqf5iaPuv6%tWo`7whM4nKKdP? zPIMKbI(u)-57(&tjR?e3WWf3tB06Wu5Yc(i`7b)lG1k;=OsuaEsjTcZNa+#r)%yZq z)w4K~pvz|a`H+8r2{Brfe8!?2>u&G;YCN-p<7WfuDCB=a zGyo_nv$cP!K+KaAS$V#b1>6Mz)2A{gkl}k{ycDPkHdIB*{mW0N3R-Ys)Ytzl=Ge$9 zdbV5}MM!eZO#h|)vAm*If)K(=Jw#1`HMSElZvMOGeZjdQXsQZ&X3z4{OaRxypxu zXJg+Yabn0!;}y8kg*u){+h6Kg+2!b)k+fJ@JwAWeE2Oewi;K>Hn@~UAOz|2$_P&T+ z(^XgS$#xifJpDvZqV<&?!7mP(ZwUuk2L9QW>mnEghbT2j9m;MsTq>M|PfFn5{!wsQ z9fDs`l%{HjKWzy;{|HbUdQ+2xUzI%ws38$}6DL(Cc8`nj)%NjYs#`o%H^pI?4PRH~ z52W^|@v2M>z*BCFBjjlfkX$QR6Te%e)|Ytm%(y@| zv}*t_e&?MJ&He1lCX7AG^nq_VwOiMK5U=1+&%`KM2SgRjZGm6 zSFKH{Epa@ z_{+zill*-!p?0PU;U>U!Sqy}ixA7zD>HT`XSsAS{%!BAtu60NLkp!ITWlyN_yTFZP z`h*t4p3l$=nK>2c$p-J(-4=2+M~yUh6M>=!hjl|~HqHLSJ+fFdK`^BIx`+mE1T^kW z!;DX$u(SL1*VI%Eo)P2^;asT6ulI(??HGDDrWveUHTe`t)P`f!odTx`{&?%QeQ}9z za?v}yc1>#&l&A69Cv0hwHz5U98#kaZ4jzjqMkUvl-j1WgE*LwV{tm ztLiVB;Vshr*8*&E{inpv>4AJwhVqSEa`D3rBA5m))zJX1u*_De)@7`?^=6e^!s2{k z=xTN%?Ez)UVAvZk-$>-UbhLBUOIDA&jm*P+!1&h+ckLUCk2 z7AY@-q&%+3vt2G?qrc=3b`f+5xl_g4r?6dPRlhmjzT5Qzick4^%@O%MHqbN3#yhq5 zm(tTEY&vANpT=w)4}dA8M@@(P-`qa&jc7pHFL@0pM42xLm|NvILmbH;_JCf_t~8OS zuyLdh=WDUQ&MqxbP^(0z{BZq2l`9g>&o(^ok)xpzeaB;;AUHbwN$KiyI? zd?nI$OTDm$D$E&u+aQskxbe(6fM_gq=c470L-qW6qynR;{ota(mR4fSnBXXhj?UI8 zGN^Q)_#{7(i;N7Zigly2%67eL)m?6bYx@PCron7;-;Ce}8CST_Y{YA4A}~ByeLkw= zLHqX)-&S6U{mx4URH>K_v;nWbnas=9eF87q#J*t_EXhvztw4?ZCgx&{ ziO>yo|HSR(-9Of3i^PDLO-N?#m4in?Pb4y4H}GK zj)<4vv9pXQKIh%4DSnqOK2}U}3!&^tG}S9IR*?J~Qd_v4(Pt#r^?0wN=5km?rWVh1 zLmr7xZ;5f*5@SC}*5UCPzLT7W9+hr?*dAtvB}`P73K3w)u0U^>ghpM$)UzbI^OJj` zM3es@V3Y)f4kc#1`60~OKFp{Rk9sCTbtUYIyT(FgaopJE+14 z?tEqkb7`Mr$))p!cw&y_+0M7k<0rdZ^Vsp^+-IH_wSL4rODnW-e5B5vR>oJFSSN`# z;Yc#0A-)>!A2SA>oz6mu7e-gz+WBxT-P(lkF%c|WX5!%8_WQC6>1TS(#~&AJ$8Bdf zeKl^CeA?;!)-;7BPyZBrh>P`|Vmsy3{*&Yb-4>FjP;avj4^5)=mClYZo>PRahN+~F zfxkYEIN~Ok0CRQ~P#Sw4Y|b$-x~fdRveAj6bRKs`Y6gJVaADOb!UlKrZPVHWlStiJ z0!eTD>#b4S#Em?aj&mOiL-v5fQ-ES5lnt=A7gBs$ld@WPg8ZJp|7{&{52<*}mGk8* z0Dk?_T10fA?ks?YOGK(6pz3zP)=M~uNb7YdgtbWG1%c)a#JgBF^Z+cOruMIDU2$>1nnJf}gyWSV=bPYut9 z947w>GHi^z&t<|NDlQ?)u9egOG@n}#zCP7h^_BEkyEFggBbluXINNa1%rY&N1-{TMe<^no4~ODkDd-cKay8BR|RaZ)5=p&^o43xiZ>Coa*z@WHe(J) zh1d=Sc6j^e=Cee zm$Uwgsn~5#sdT0a7%Y5^II061$Sj`L9Ma&qIQe$4wWsi)OJ{H*0grZK&tg;kq6N!` zO`>0+XDzjC8`41LD%7?Oj7{ALTG<|E4x72$*|m?YtG>kZ(0jf2<>@X@t@!d zwi;5`w>g#ibC~La9Ow6ue@N{(QJb|h*ba$*%c1EA$F3pSGybtZjtqK@7!YHs;io~D zdALf^_vJTo7Dr zrjz02#l(U^Df(=le(+>(z!(Kt2QlVqL;|1`w z7j0X$lZ0RM-?iV#RDK7njk8Yyx&mN<4Y9{!yy61P_XE{cPMxd&{AK8uBORnDPFeKf z@%k%J)H~V}IE1PTShYj&T)nCXfcON^7Wwc?A9POgxh!h5ZacBB{bgqRFBG%~hMSb1ik8vX>%KvJ?YEs~;qXi&BDMMOL4i0g8*CMzZXh;2?`+UpuC6DV>%If~gW{Xb+ zu|D}8(FDKJCiQCC(unke!zy@&cI1%w_B zQo47P)O-n_L#YW+`uO9qw09RQA@BqCU|hZH5dr97r92?uI8G7Z%FR~b+h+Bg zrGtfv1NSHQh-=jJa)XsjuGZYpcC^GSgMu99b+OYPd)~i$vPGu_2yFuS3x{?oN8o44 zUx8*E3dD4q;&Q0?3?rGplc&6-a0h7o=B&>0k%mBX?}BdZ)^gt2urN&Rt&N3Q+EH!CRt0db>=_ z;wRRfl;F!C#ycwnOYluvDtw&ljtbM1PcrP4r|M3UCLrhn@%=K%J^Gr>y_piu?7oTO zx4jxnY`oOrC$g(N(k1%#PO|(9oe9>0>TrPcykjT8b}ij@?Q1FE#G)+LRH}WbR;IqZ z^1x;DxAwEc{y>WM4>tV@ z7BTyV=KMswamC+oX(yy_M6sn>|jW{L%w28M2ghPo-8Xo~=`ChPU0T}`16v}yi2*;NY9nZ%v@w|cCn*M3W?%%7E!!! zs8BfH5;@@!tbVQQ4@SLw0eB+BeJ>}UEV88YAMxh;rt>U^rK6p8BbR~wr5^RBE7F35 zu3ma6&qr?`(#!u-x_zM54UfeQ{UCOf%f6Jv_n9u?gXs%ejxks9pF>qQIc^6JL&O_Y z=ZinXK7S1VubeZjk^H)meq=FidrmLZ>@C)`b;WY?;Q`y6 z(tY9-S0dDqqkOGa+1b*zsGlDL#YEKO9CP7PPsge#gnyNZ+|lG?)e?Ed+)>UBrqyh= zXuR{5h391|$Irys;V|}geY>ZzJ8|nHu&XE{gVB2cbB8AGfYj4!KM=@VeYm*pd;Ly| zS~}!46z!pYA&DOyesF*o3FXWbGG!A$*gR$$cdpy6dCzG6{zKY&7^;0`>5+kMx=CB9 zVjM}OY3gBXsoxsvDxYzG53B6Qf#exGA$e4LbOl?Y3b*@e@tB~9t7T)GMU19@F>fQ zuC;1UnxWl!tqCRh%vo(_khtDFr)eU5wD((>L$;5c_T+Bug>3DqaJv9;2W&TbYZ+(V<9WTW?WPIP!iT3{ke?-K3rshG3xoH3wq>vXzQp?)M~cPW)GFRrfHZXaT#Ur`#cvm=D-O)5$rhOx+Jnm;%2 zmCWlgwM*8A|K)`KZ8L19a`P4-IKFWmYtPU;M4fx}T~h1s1anzXL6^X^tgWp8?_is0 z>)3#d_Vu$tpKB!xjuR()Wm;$GO>Xg#g1**U0wK@6kFuGMUQq>&Fe)sDl`z2Hn8%;G3l11AfzFe}y{=W`3N37tSoR-2gcGA1>Ek z*dTvNfS>kgWT>{R6^VQ;sma{F3CTYq!EMB#xJ%G&h4k4Xe^6(-9Rk2) zLI=mmUuA@2)g8Zyy9Z+nH`gq+pL~n1Q5W+b zKGVAikN^>u>yd*h9aH49(qw7Cj5n|Lxli#%#HWq@k!q(g$2?+h;K=3Y8b)^(gRSvN zuCnT70HG%M>ebwBPi=13N0g-cJJf|}wf%evgc~+3!F0QJ9ATM=wKbabBYvTFh_#a_>3AP&QFN`5w>hSC6L?Yd#=ZOK z{cU;X_AUDt+D^^4yWG=ye=(nZ&E`#YuPFai$@|*g>fmXuSd@mR&aZDqM&(?SUqQg?Y1RBFnon%0^ zvC7Q_ndp+Q_!~%ePGN}_dIqBJ>nUgZNE3HtQf#>lVl{?LsVXm&rF`qhb+_;tk8B3p z3obmSws$ADL;DG(E^$>feUD<2N;*O+6(kM>5}FlU7MkB*8blih`NqmpN$nehCp8-Iv~~hnZ~b~8b5D>`oVT<89`yxh3!?%Pb8A~>0Q-hDSx;$ z|8UQ;2wdHS9F5%tTfIualME-Hoa}R%5=wdMA1wzhEUW}zJ)*c#2NxB^sdJzY5SjHx z5SN@4qD(rL)SF-bCzjMrJKp*;*(hT?t|mWi)|R+6P9fDuOYE3V8o_LH(f)b}4KR$E z-2Ey-i5qvruO2DtFN;o&lDoUrQyS00^Te|iI%3t6q}~%SRu{qTUuFy%buuZF)vzex z6W|S3&98kw`r_uNq2mpeLELT0vCeCp7agY`rIi9cs6DggCs-pobY&PxF1VY)x}d3R zlavr6@$>9<>Q`6zc-?&(D#qc#iz%JD+0ME!D0SszR#S(P{ycZUJiq9LdMnKHSsdYK z#a{5L=6P=BQt^|#BtMO;Ry|ULw~}_iq-f8cviB}fV3d9eNcMsq?V1!}bBN|3oMw0R zaU1#TZje+wySq;@VK_a@5zLt6@eHt71eOlrgj~porU}x@5gb6@m;ZW@><8ywO|iZL z^O*t@Rt_n*G$G?`Fc3+@dOr4DP8LM~9zJqs%c(1e}!rB(nlR)|&=PJR{Q z-5$tHW-p(`wU{ex;IaRFxWM)wtIhK%LF}$}sG5ot1Vt%U`&&IAcNF94?daItptAFv z)CmMfDY^iNiC1kC(P(dHf9{-|751apY((9~|5%5O-At740o4PrGrP2h+>r6Zb0Fzu z;J{18E41-BEe?3K@y*(Ab)p|O`X=x_QuLw?a3ejOCNo?4AEw-M2%Y@>ll;7 z5i)baC!RQt$FC%AY7MK0CS!L*UWoELf!M>^XRoQ@AF9S>GrbV?iqf|8ZTDv!#U+MT3r^o=vbH8FgM4QFFL}}p-<}SRj?}%2+xWfXkJjg04?Pa zBfM}ZR`2f#yB&Y4u&Ta|N~+WV{rFbdxybpZS3EL1lGss8?5GN5vYK@(aqOLZyN#&7 zi3n60`-|C4yEn(xnX`OZ|&zHwj!UNp3WNm0lBI4v?$+U8Dg-Gx+E zsTz2d$vp%3ni&`Y2qNnqLZmMMx1^TfN#bmw$L;wf$=g0Tro=y3Y`t-xD~!IgbGG}c z1ihECE$wxSs7o!U%J=8^HDWXpmYa*}jj!xQ?O@?C3odRLO7ff)yF$K&b@n;#R$Tn& zU(7K{@fYW@1d_Hyw9D9~Bwh9CYZk1~BgB{Z7froP{!CJie;74n)`jG!I|`8Vx7g;O z=Qq8s&*IWY)rI_|dKQZqre)INZT5O+=a|J(URV@*63b+NVPbGP4E25+;OJ;l8_~ho zl<~6Gej+NL8`I<@aEchQE3f7~g5g+th9G@P)m9PsW@Rtf;2uF8w$UPkN|w<>3Pk%7a?*MO6NTbiLOY^-+!30C5 z36jeaLI55?=u8M&;1)nAJv@NxomDFwF;sJI*&*!?9D+bl0KW4lM&izIMOjy1x|adV zw?K8D2cofxsC6EJ{~D|4KKwIq$g2%Ns96b)cy2?U5cdEaf%ZcrLllrd9qAh!XxGEJ zk5kQndzw||uLE}Wh=Ug*#WLt;j#mU7XzyAa_%Ov7U2gAesl4Au9XC-PQe(e{F_u1` zL^m5lhm2TJJTPcdPDQr<12rw;tE|fgXJjY;76j5Njr$Z;A@gB2@NJJ|xk#)WfgnxN2 zk*za|+Uve0oaE&y!}Z5OMX{7e7`(;yNGd`p+^UrFY!#0TM8Szn!u%ex8Yg4z$rhFG z2LJkbC)+<6*X&I}A=R@bk-)4?D&p`}g*|Z}-Jv7rLFeE9ULM&TL(BnUR$XVn{k`+` z*gDgxKf-9w4KG2;1+!3j2sxXZB(m>)fqa*o4bm7hz0n7)-!aO(J&Zg|L>DP|QU%oJOFprOkMn_x)2#dcOU zND-0tNX2Q2JWWsDTcy@Fd!di(YwY)@P^+}c!HA?>M`v45BWo$_Q=q3YaIiehSP zqQ%$sWQ!-`rsq@FfPVJCJ-AH+(M^}Sx`%{pfEt{^qOJY~?376bJz)zah4C4yAo1}j z*Wf}OBbRaco7?Eoz@8W6%Xb9@Z!P!x!l=De_+tkiEtjk5b_I+-gM&FFxHd1}?eMGo z5%3zM;kCum8*m_V&SF@B;^F}BtBK}Lzx6?FSs^|ViJ3yrjI9P;D8gw{7JnELTL=)md95OXz6RJ(v%i;=*HeJJAUlu#&`@w5cVi_BVLD~%Y(Iz* z0ma<3rJDnpaIK|`PsolBkS#(ke*h3E$^+yd75io%2)XG`zM$<%y7CHbLDsw^Bn%ilenPr^61idQmv0j{?FZb z4gFJ0|FW=lAF9^Y)o3D`zNqH=RVDe20nK@X$whxisP2tvm+JpN_-2{e(*(g3gakAvvPs3JxH)nX%4}C>HROc+CBqa7%4px36xh8k- zUPVz$>zvdbJxDH!yT5I&%fjGg;7Vwa2Ru`|F*&5VIAYX!m`7wEk8Kp^LMr2@a#9^X z)it)Ril%P>%Q;FerrV9=L!go>0dNpdd_v*5Sglh(;a{exCaa16=Dyr8{gaA%TRgHG2<p7q{OVGNLm~eIeJVStife{Q`Qa~E5ef*P z4Sqa>;T$c_^{2X0M|;G_cqBA@J3i~cEylduK|^R!q8oF+!?9VO9t9RKM|xaQ$-ZYj z3|xcToWD<{KXg*YRd$3j3G`m#vv`Sn>SC?)pqZ9bhC`s!} zBfiM+3CP>*sShCac0gB`WcExeJ)Q5L#dvWmo1*`hC6I1%d|W2_$9z_We@yiEh?gK< zR7^HjzZry32InbrD6(dG^zb~s%dS)!=IbI46(V{aL&Jjjry8x-b=+DMq-9-{_(vS9 zhBbJwZNguSy^i(M{mOmKw_tIZIsGX!$KJHIjYyH2AFUsq7!AVD|1z@!sPul1dS4j2 z@5b=F>R}Ykn1|o>JYLc@I5++|Z1}m(>g=B>LxJVuP2x*ya%1!g4YgdZigBizY0Mfv zo^OYR@&!#Qs^}MFVl8q`xf9WvAP&raMkQjG2XrG6n=CHt0zG{5b-lmd!er;@k)05m zp;3Ty^~(Adl0CwC1Dmr;`^UDr!433}a}Tb`RPy=qSCV4G5~TAd1l1jJl@T0+wnhzs zZVBgS8<=<&>J7oo%i4Jg_BiM`Yc!ZwDq5B%H?bKtOJ_JBI)7an?~AK~ONLqQSB%`( z#)j+0OqlsyAq(QS+0N(u+he(^sJ8{R9Tv<}9p)b5<1rI-tkgQE-vQz^ZV4lpND!#M zHBh`EDDVa+I;*r|pC|Nc&=*3?T^U>%?d8n)3sq0%%PUKV?ALW!mJU>J0zM_X8vOmb zpwOtUoQjy|IYcKYv-y`_vv!VGh*aQnEICh@E_=e@>b3aOsbk4!i9_*+FGIPOXS|pK zz94B0{lgE-zI9!)wyi?Npf4>$z8X+bX^O+@m*vBjmhD-s0C)b~FaoY?C|m`)i&YW+ zbIFA>@cujKx11Jrt^lbtS-bbe?3PZ#%AdrGqo{rS;iRlni5wRL*`1%C;`^Hf zE2y+8R(lrQcf8cw=Go5KC{8E%s!649xjXZ{6{Vt_@m(Ub(KcqzNmiI+lI}<59AA4> zrqGBF{T=+MwgYLFzUv~+{rjko8IszxNzHLC@n6u*(O{bHm>$yEd^EQW({pefmbnMW zI*&p-5VZ~w5;53$FvjZL0#z%YiB|UM>|+qEP4?2<#!}v6j0cA^Q#NDgGI9B|`cG)o zJg)!vxw5u!|M85b>x^b*sa^GNoVajFi<;&s-bQe$7e1m-c1j+Mh&AOHh%f)?pRdgfq;lKl zuTeDhO>IFnR5$#120c$v%_z%|p`ZJD)ib>TtB))z&g$N@-nr!AgOIrzybW8!T_cmb zZ`XC(BI)Aq5Khj(J{kFZ#DCjs6<2TnR>sNtT!#B$_3gx??2dK<=^rk%oh8}D%U6zM zdISlXGPhE#s@vgzkEIgP!fgk67@D|sYsc|l|5oQ>N*cMYKLx4=$$nvc=mo40j)A77 ze|>%RnrM!_Lv^Fi2iVcs`RnhL&pJ6eKQe#*Na`W*QddI3N}u1{N@NdeI9Gx!RI=Ae z+z=*c9e$Ga%Zku_e`{WXrps<^Q`n2liqJmEpeZ;hL`-3rL5@k^9KL72s0oYvm;yKo zAX?0EQY;Y&)67=^OypEEHm8rv8-iAK&8Eu(yV&jmsRbDG8E#IDR_1m%XJ`YK9*eKc-J`(aJdwU@GWO|08K58@cHUO7Z0P8gG z$IG|4h1!ZiAc234o;zJOxV-#N0MWohlu9A0q;N+q)Ahg0G)d&9&h$S5nZYOf4^gN@ z`k^g<+E6QcrS;mXQQ5|ezUDu`4+C~T2ut5Q?I6$GDNq>$mKODA1A8hF0YeC}9}y^-rC-39p!?gX9NsF?YXk&`0z z9p;yg0xzHe2(3$J3_Nl&k_fPe((fPQw5AoUaBdPAgw5-`AN34EAtO(_;|A$rd=js+G?Wegt*SQ*aQMn^gOopqGd@h2|xM{p_RX zopchRNB&1dKR)i)@tnegp7c5SfChj2!+XfHbRb(9VRFdVdIT$)VD3g2;dRiG7^@gS z4$06=%ES)1m7+!gF_b_}gk8a23#go8eFD8e=wa9YUp?$iABMm`J&da5G(=!J-g4Cm z|JmTNn^pEgY%hn9tyQF{@wpvaj<*Kg%hWCQO5BA4J$uZNc!68aA2Qv~j)*!i9X&}X zlrAOgtX|dQg#REf@2DtKz8UYR!N@Q1n(G-NNjwO!`xq zuB${Qiek=nD7kYbLioqGHiQtCDayff{-Gb_+CI#6k6qjtHWL~;E5zJPZZmDAS)oqd zLf?IF4SAHvAfHVO?cW z83suP8TSK0OGB#v@!ra00{d6x!Yyy_mf0=mWr6#SC%=CF1&TQe{nb`Wf)jQ~ln8>3 zA?qpX^2l~5a;CW9q&Zcz?_xBcNLX{~JIZL0SPh((-?AGPc z-x_UA{qW0(`DFrLMK$^Gw>fJ+s|_Z*X#=>j>86MJ=Et0tOHvM%VM#55iWCAi(}}1F z^yHM2%G->)o$*bW@vXzhDPYB+;tq1+QTfkcRe1w6A5Iw$;OV}+4GrmiI{KA^6jwwB zoyfkX1^F&daYq~2EMlH_P~jeA)!;DqsBiOQS8sWd+R*zn9cWc_rd-x z+!kZHOdEc`Jd4kaim~peG-hwW&z3Re5R>Z+)Bu`lmnZIE^&QCanfkmuv1glR+UN&Y z%CWW5__tZTgEQqc^IcjdFY@1zd+3lPQe0tl5oG9U6bZ}0&`@?{cY%r>$O$LHls3b1 z4>7gUg0D>pcT##0{#nX;-@b2j-J%g^Hi{{NSy2Q*)uC;6tSVj9DSGb# z;saoz<|SS@NbwOORhA4?T&^LwB6nHEug3dChQ9qCeNAT7xv?u~=m=Yy zes@xT-*T^-o02_>@oDI-nuS_d5l9Yr_TQ@d)SV{$-Ja`Fa5DAL-j^Zc?MV7?wvSS; zY-(C5Ow;8VpyO#1D1UPL+E#(_g+KsmNQv%}>=^#v&I-Z&wk;0Q1MIA(sCc%tk8PJF z)ieCotlyE8@HDcNWns}&HD>`07mW1kLf?cucwSDZ?h@rd(8<4d6hGkZz)4!^a~eNs z{wScn%U8Z6kee;mqJefOJi%a^-87#v$pn5ld|L}2;gYH3$vtyrmopUQ(B@3^xJf~= zB*vY=BChEWnI7wv5-70NF=pKiGs_oAD5|U__IRpOjd2=!v|>0j?IOM8(l(|#G?A@% z=34k$fy&w;O2-w$|7YTB3~z_q%R<-fJwV4FF@?xZ_7vQt2tayOH}AnAcOdq@M-yU{ z%mR?vXUVEy+U}3f>Rvz*{tcbb)w|B(B)E!7gPYl8A>?VV^;PG$CDggwzWiHF&*(HH zReLA00u?&nY_UkuvW^-6Igb0M#3+v?F-s~lvXEx!BA*eMiE(2yG260r<7R+jnFA^S zRb25dMm1%MwGPpUGH#(duhm(%91bEIyx<|e<34^C2{@IJ5?V-I&@_<6sX@rt{0nPI z2~V(lF&CmNFD}W}B1nJ;2sMT<2{^Oe>sa42e-j)|5*K#NzS1)KNsM|4_XXsM=<(C< zQ^}7Hcj7oXhkg4*P8Zn?O}K!ncPQVLyTemoL>ALcj(yQ1Hhz;Kd5T&<}`%f=}&Ip`eiQ?j=B}vXP$k3}#&9IQayTI|UXI-k@59#0|`0wmp(G%-eczw1VJmgiG%4`Z@SDk*CbE< z(x~wfMem=oModF<(DmFzc!pWZ{__m?sQ7G=^JK4P$5Rp8mb40| zN1r)8x7|dwnSK{>jkfDq@Pza~69v7dOc*~mhLu$9Gg2T&HXTCeZ~rd=NqTg~E1KP3 zsBW20kZZL19ozo)>E$%lqm`p0;s0+ED}9_e_Nl|w-P+p=d;9-Fv7WV`s)!9!9_CoC z_PTXkYrjGbto*EPB>f{cEc%odiN2B#SIDQ5)OwS5v0HD#is#+?q}W1x?E6gWZFreY zH#8{t=lrg}xsQN(kPlf6WV#bRPd!e`m^(fmZ=|tXf6(5vHklD(`4C+>He7x9=EhgO zJ^798&mYd~B!1_P2?vFqG%y2v>aVvwgtEN-_z7LEUh;%0Z$Ay>Auq>3gZA`Rr?d;xl!Fhw765;-K9uzcPL(5i&I>JI~4cg1zOyS zI}~><7TjHnB=hBd-tT9UxlWQjbIxAd)~XwZ$}z=SU@&`N%(w(pbn{Bb5r|WSLP`wY zQQ|A=A1x?^rrpw_rX{9cswpM~RN?n*Z!o`qS*{V2!MsC6+DwmVKiaT=y-v*__2>Fg z$!CyR38PtL9V~!nplZ6f!aKnLZXEi~I1S}BGCY(Z0&5ZB_+ z+oUjy*t}6?Xb1c%?Su?utVOM^U0@UWNPda$`M3@h^RwV)zlSRg5{U~L{L+(?`H4vPis+WcjrL~w2=!N?@TEgV+|rVR+Y7b*;86|JwAAX1+dP+ZkDm7bDd*a~k-kM;s@nc+urd1D@{fbbE6Q#Uaw!9mD2$guu zmYt-77Rl;zx<;h?OX{(K=54CBTz^PRgc)O6L?nZyhgrfp_h%)Ruci5$Md+s&f9``_ zikT?C625u!vAl{n@zY*3j(h-vPPLzz-{B{XVc$wyn2wTa#Po4#wfh0LbR+50yDMx3 z=d`vIFVN37azbW7lrxVGlu0lf3gjIwSE;oZu}C+^|L_%a9rj!U1|H7mxwkk5^BjFY zWggJweT%#bF&wK=`r~l3MUx&`y!^z+K(gJ<=xCZ>GmQQn^)NV1Jk;{%9Iv?m$M!9W zfkTeN>PW@Tt>QgJo{iLx<^BLC_NJ;|wuIdk-5=fK8clng&UO7>sw)hu)#&B5GARfq`8k-F zp>m42bGyNa@?~O0NBV|v|M=c$X*CZgc8cAHeiGTIYEAle@)eO&ojl8xR6Jpc?@q+1 zD}*PAhSq;2fzxz6`gAD8B$8|D^1{sZ@aGogx#t(__CsoGA^&S|=v+U{LUK)j8ir-CmB;~Sr zP8-fE$hz4<`rB#IEtdk8EOV2rkZaRi9@cXwzJNOk6)v^=ygLNBMt=T-7nA&A{IOmx z%au?&Wl$_AUP0s;<7c!&XqiD0yh8EBgd}ctsGCCZtBNcxJrB8xR0~|ocAFscge>ml z6|&NhD5h#gPkLaWM4&2}Pe{$@&dfz5bcWYn(r=6RX#Iom7T3sct4$Trh47iCL<|HA z(kVYR%qjh8P&SZY#8mhr3B)+y19eEOfa==i&xUB%`7+x}%M&>mMHLxH4TS z*L!a|pkZqpyk|T0AO30OUSlYmTDagu+XQ1TX9%w?&yE#pPx<#9i5Y( z_7vdMMzz|Vq1V@vNu(C5JpcP(AC`G{&6o%mOKG~by3#5@=~p^uR_rgMCH7-h{En}s z{M1?f%bg5%BF_xy5%c^*1@4ySd(k!FrI(&mzg@p=zqt1)A06Szi1O_d)Q@PZuQ_4M zp~62Bbn5yEA`YJ1mwv{prH&8X?=zxHOBI$LS^9Cmyis$&(g%5Uhz-hpkgwKyTbb88OsF77eoK8-9 z#lt5n@37K6@pB+9_7(a~`u3d_i!XSaawT_*K7pi>=6?iBXDdG@51f9?r`&;!yAxw% zpA!lpJYhoC4kp18RvjJJyn9rSg$U~6y(G|nw`5f)N%5ES_cc1LEN7MGeA2rT`#+C} zMJ~79eCOZn9h8&jLx{K1Np{WZB%Ska2!_m<2m?DuwzYfY`cKdvC;j5A(@e zzyE5vo+@Q}!-0<{3(s%~qv;gQ*?U73N9kw2;wWta#m@?yTND)Q0%szRNQmi=>hqfy zlh9^U;8BE=ogp0t&`gH59D7*bL__jgp7=k5zTPmR?WqfBoZnD&qD8yQ=u3!bdYiQd ziEhQqn>x!ZQ4Pgp*QfpSe6eJQcVC{V1Ze3o0N+2E6xO;nmIn`THhHs|EWHPR z6n5IZjYY9!8GKIGkSC~cm~7&CGL9UrH#iA}xrJm5trxDk5L$jst}e|a6!tXQf82Qa zYH-1L7-|Vh%Y=`QdshTfK72QJA7|{d>XeOx)|2@laxEWF{;x#Hd!)|E{4RhgXd%<< zU@wIipCG8i1J>Zt+H>0lKmN{iE{K79%HIzNX6tmkBgQofZ4@bHZCIxLvc&1vNJNqr zxp@NVTWX^8;~0c=3m(^V@>4ZjqhR#B5#`PQ^=6(SE}e($uj_kyN2=6+^cn_@S4qL@ zwo_=XtgpBi{E zIB~9IWoT8bw_L=~H{1Ha9HdxX88Bpu6oAB$7a*&$A?RoEOHLrCRg;cTRCKQhjnbc` zwjARL-jrE(xbf#>5fMqKu)x=r0&#rj=a__}2VOp!_cx_DvTr6R@DBqwj)>g{V!wR@ ztY1|>wOB%GvFgHE7_~S$=B-^+AwNz#UXYHvZqJ9hbk~Q1i z!>hJ`6M_^=M}Sez6U0^fR#B~yQ_IRYU^6Z)**savhMziakxlDQ|NmYZ_UX~FY02Ht zLZf#3NK1*bE_U2{SK@LH*E{zfg}iBy9D3H0O%>%G3RVfv;~wf$QK;QDXDEG(I}skaj9iq~j zkTy5tZrJ9$T0tE_chB?9LKjs-ZbBjyB(V)?pDhC11CTO=C=5b|R0edC-1EZ9sD`5l zG?T!?v`nrA7N{$z?i{z8czaV>QJKBFbX4@wA!+f+*cZql2~^9pSOg(G1#wYSm{1wI za92zr1Svb6sXlS+5}sH;s#x{m4{!A(`-RQ22WiQ}HyO;xM*dDmgM=Hdx@>-LtV_K( zp-qIO2{A^(%Q5-P$#Pzuyg+lAgKD(NL;t=|9Gqa?90(zPy(SRRxpedF&X(&%*`(!n zeR%%`I<*;<=}O=coY+a%3EzHXJ51WkuG$lQOrN6SWm$(j)AYG^_v)|s>AZ;<=|5&QwODaTq*pw+k z+DS1pf_5>JST`Q|Ba7DwA~~sSL%CFLLy&hY%B9g|v?pmi*EEdWrJa=cO9kTYw#a2d zH8>EBs1~y6nC7zQg}4x!H&wJVsotHPM{%P#Bp(&}lSvV+ti97q`s86}I?VqN;R*X` zUX|QpY?C)I;ax@P$6RK`8*u>~-DTDHLRQA-HQNo?5VGg(cW5I=B@nIO%AzbV}x0 z2)_1k_)mF=un;`{dovda3gW^tdV*vPqcppVf)q7@OZCJY$EgCXiH3uhzYV7A#uChc zLH}CIZJFEane?p<)eOf6cWoO4PW#4@_q`?Z4+wJ2St+}g%l(?(f+G#$wh}RCk7g+~ zj@a`RZJ;!gx7JcsPqZ&8LaY{wWAU%Mwk}yjTH+Fp^h#bB&iewn%Y*fv5fK`6-@%x- zbG5^KMn@e4{vZq7%uWmXzz*ZwJzqMPlzji&Nxnrx=LglXe*BcG(!aCxw*0oKgyA3f zr=Dr(P5wB2o>3AEkUUwMmJw7x(X|;$nUi9s96Q^2C`(viD5A+mS!QbbtbVdcpKE#X zO3Q~yRv(4g-_RtV!K}#S<>tq!KcAK}_xxw2-BvNv+621^n~Xxf?J%#YgYUfI4{Go03 z_HOaM>{!eJWg>Ti{z=3@Qgz>Lkvznn)I28g(C%F&~71YKw<;)Mw>8EcGdni8eZCK6BH&K|O1wm$x{1j_0GTQc_S8CWXNh1(N_dYblz%k&3-H*GWf(bpa zLo$@)WbgIH+w|-Wv=@L*|7ih3FM&drdRV&~Zxf2mmS6NcL%!?vFaCBG&9as7dW5=R^ zDl!Sz$`{Kj433FNJNQ^F0S-8P9ye|jIAJ%KEJ%pO!MBuJ%_`JqNDgG6Iqy}OLlm6zozf36y4cC zZCH=6H=?M9{B)mA0Lv`wnx}OPx$+w^lAE}7oh2palRi*A=cwY$$|sTX{2g)ggK{Kg zYDPth_N03DGC)r%2;+fp;x{~bhH+BYzzSF}0VDDUJ%I~#ga@spri0=yA>VI>TXKa- z?gu7vLKB7@y%7a6x{);GM8aBqk%Y8*>9kbvlEpU%DIC2n{I;_^;!k!RLv*|!9MH^< z-)HVb>x{05>)@4t$|WuyM`9}53jFKHZmi1X8-L&v?WWfIcI+R2Ey;X;p47++bM6XS z3L8}`f}(?r=x*xF{1HECc;sZ9ZBg+c7@yoVAT@*+FtgNIHz)7> zX_jbniFsh>y2+-VF#x@g6MuRQ)V_goa?oY8!NYj490h3)d#XQ`ufv37gwgGDCQLEn z$!u`e2+UUUzl z{ntYUY%J{ekim3lJJQU$fG_jn@7_@nq|?3$V&R2HFq%t)`(}k&H;ATh)yqhc0|!vk zy4t5$$|4xM*eV5ICqQ4i%x>MD@8g2ImH~3yt+RX6S{Fx>O90lRrPW(QTd{`b+Mbk; zQMQ76YQ<$@jl;TS-nV0-JN7S>i|EdU*_U2--GH1PPp7ZDr_wIiOQS26%AZeIJPgmJ zT_j$9_;^%+v@pu9DFGP_a%mmN8Y9_!CvKOB??Yh8M_hD_wv<$SPNts12amq9m}>XD zV{w|c4vN+`8J#9`WWk4aj z_F>-CKr_#QeSfE0(!u`1sP%-Dkhwp?&tKDYTO4T+{(Hao^=2&!p1)E2!$$ccFk50* z!wP7xU+&BM{s})+s|EGs4IYN=IXa}LkYg=aaIZ+ELm!vzc%tRd5GSY;HEvckEu42Z z$eHxC^2U9P%zIf;aJZ+|2{l)C;|XGd`z)$-gw2rg-Trkyz`r5s)Dd5jP>68v#kd%j z3;4_5-K1eMt}Mxuwtlu&LP1BwKx9d`6dNdT^caPRj(A>ZtLfJuqBtc7QIf6Mg8x-p z$lugWvmaT)V@)EGCR z7MvZ;yBfd8=39yB#wqHMevq&500{%uLffM*r3Y#{&=NCP@f7hpx(Am)MefW zoo7S!#irTkS2s#n!i6rqgI|!BAF(>i))gvZ-Q%xNs>&nr_GuIL(F#%5aB!t7iY6Vr zz@e4xnHV43N?yAE`gUqQVA^CHQg6ww8@iQ@2BGRyJH$jX!FX`1s%w-P3sA#K%kb;2 z!jh9$B>17oqk^(a*dF!mx4&+r*_>b|)4IIFr%b!H_p=ooo}sLxUxjQQ!)o$63r0@` zJmv7mzqM zIo{DgT`{ez)iDapAxhI(;qfv>`0xDlqQ|%Q48Egi_<{Fs^0pI2b_b6Yi5s1oThVM% zuJS_z_GkPfTVJO&hwfj;k!#u#>ECGHau8|#iC2y=?jvfJ>_w9BmQTCRw|&28Uj2Y zv>yZYn{4|%%Ba4V61VojPu;UT zp6{#yJrZ#`)9Pm4^m$i2-TfxYI(NfH_B?_9Q(fM@?kNY~?y12RXY4%fCa>*N4DUT% z>;T;Esilfq-u1iTUu)E4p@CjiKB{ZO`9Tj)SN5{IE#Y-fkUv`#6kQ~J9%UGm-yRQKRg-4;jdacvuddfQb# zyZhF7OZzGkX-Hg9q@r!3WHP#ySFe63_Q0#2S9m)(7>f3d4ii=?urf7?9rzp%;q1V| zYmS^yUe&lkmxQR88wMzOC0!Biz4h8B;o%Wn-OaB9DD&M;yGW#Y_n%4$DfWimjVuDVnY~T))G7i586|!XK3wri&=5Y zv>kh^LVA=%WF{^TlN}mA9%C2+l^6Sl>(D_73oiCe;oPEo2HHO7N#?R&8aBBov#jNqtx^5vZ`K9`GZO zLa(o6IoRhj4hGW6dt#iI@ zMzCN^t~BbMN%GQ6fUy12ql$I4!;cQV^+c7iZTO11SzA++v-*ZIdK1nKTzHDfG_v=! zicmFa;DQm&xROFUOyAFY!#aB}r2O!TVK?B&e*%VFcWwX!V#1oG}O<-dJ>5(hQU2x^Ky zXb#T<{BxDE@8Cbonv|INzZRHdmlA=%ZWk1vc>L!k?*Gx_2q=9l>Q8s1VDdpKRO8;`EM~XIoeWQ-0n(1nozd z%2c*S$LTY>zMC?o->VLaB#@$fimSpJX-HE=&<~|qD=miO8qlB71A*(!$dxbjk1lfL zb{r$5P0ovho-G35_)+yRVf=M&)mYpQOM_@jQB?EVcx`D<%qSJYs@8C8Mm=A2aQu(F z`5pf-1_nCWcKLo;DKk)wSoT99+5apOm`kkCiBq;Bf71*!k_#(+aL64BLW6VCq;KwY5U$?1!g)V z7A|xYWj0oAbwCeE7T52478lMXa_?asUiA9+puwi;l2>UZ#c~5Vu;j=0Y`PKTKEp!= zZRr95>&2A93%CJ}_-dmCZ+dJR&m)iu?j?x+l`lW_6cqquFbdiit^N%W;4=2p#Z4&q zxxhuoH$`Yp`R1Z+E0i3fvhYY7@_K>+or5s+(SwEFC_ zkkbsa60QC;$g)O^6XBvG_~47=`9(5FjwWc|J4f}!sn zJ_Ivlb#5$I8~x=;d&rqIpd}yt=$jo4sv;r~0;ZiCKH%L_IDZuSh$^HvFi4_oB z1_gF?0-W?hOZfSRQ7-tzk1ZvArncNihM^fk4@U7j72XI~c#-||NS}NT6fO&PSmjpN ziYv^*X)xTB=1cDAlxEFERpf>>gd)X;_@h&(Owhaf-unLy=%AXr`JF;!^BF*j6wrg} zxsVkbU5ZVxJOQv7vjuyM?LiqlCH6;fINi_)pV0q&uU!1O_vsK%v!mK%hqILsK}#Dr;T zJpYmNg>usGu(UAogSXKESG3GvTxm*Ve7l0X%CNEGAcK_9w1?@= zznyfoOM_(qVIR1^R}BMPmd0*D|C#ade`e$m%6ze1agpG?@8$5?E_=QHNr70fif`dG zgB1!7-7U#b8N^s4jB*Fk=`cwj3U*X$-YadX?--cA(Z=UeB6ZA+h0x8Aoa4p>e*A`O zrW#rBfwv7KXt=%Vhpi&WQQ6G!p_pDWF8JFmli#F9$_NK&Tw}B_)j^pOdAqJ@P2VcZ z8sKzzm%<6mfa z=_W|A@~BRtiL)JA<@rm_N;kTvM=iB~Z zQ=<|BH6(Qp!RlJGmPoyvxH{#dSctkMTOs2My&eq>D&9)#;K4Zmytx>zzQi{Z~qH)IdaB zd3zBaT6{iime-_Y$J&&tw-gsOutE5%7vvdil0||no%=UOQuIt(+w4+4m^V*FgN}6c zBnOv%EWVGoB3QSUS*Vy(r5-m>(zYZhfRA`6kX($s#s`(R2kA{U8P@GN5LA-y4=i7s zF2U&hhf}1cAONycZ|P2BYlxEpG5OaRSUr_7%{nEg4Il67^Vs`53^%&W>rdQ;uV0en zcsv@Lj3Cq)p_I`Jd<(MaIoSHu25w1(3ZW4n)5!uof7zO2=iz+dHJEa|t&w(|b=aV) z@T@m$|B@~e_v@TyvHaHn<&W2KwR;+jP;^Hs$4@qIph=#`D3a}RGpiojKIfuTuwVH;cpSAwAcH$*zmx3n_MaoDnE z+jsGyZ-3IaS-fQ^*mS~~IO23%Un#JP+Au*y2p5tNWSG%gBq zXM2uMSd-{uKN`&!-%1)x zkw|AXr1yPl@`}(SALIG+jf%ZB`)Q&W_}Mi2wf1-0k2Mg#0IcEuPz!bs)pJgBTjA$+ z0zD;F=##ET}AH!C%jXAZ$`$tf7y{ZJoO^9)U>e{$V~_Ml%A%wq~M?46+CJ|J-quxPeGbD z1%?Acur2ii3f2k*KY@5}D8J2v<)PX${%!)x{W3VdqUdkZd4ve5$FFwvTqQ|cXtE0l zw{+_+zz9O=9~gI;!ahvY0lf5TE~qmYHw6hWN#LF|4ISW}diS2z`$6eMNNY4gp$3K* zYD%5B+lzzVVh%ER*lU~P-f*qheS?Mjprt$z=(FICXAQuW4=f%u?gO>#nfutWj{k7T z|Ov;A;{n;vLxrQ2DF%@@59b{ecbA0!TYGoEMqwzpAXn~W<@45JZW zqJ}ORRUYpR+yxRku4I?SY4(%lZfRl~DvJik3JGKJ$=^j4>$liA60jGOsqa>*xx)v^ zvnb`4UoV>Dsy+*?4KTXoL)J<1yrZt|MU^PChdLACnfWhLy-S0VB^eB4#9m6S4NiX9 z=P>MMrdp9x$aC#}0#elLI2!pKI29eAL&J_68_h+y8fQL35U$9yKbH0Ku}h1~b$xYx zzl-SJnF*)2N!&w-Wj_T0SLO=803t&E3wu4yHvjFiBo83-@R@-a?o$xXacxr87-6sC zhqt&AU$(>)&%P)~6VzW0C)SWK#Ro!UJEe+a(dV0Mmg{~hS$+*V$UYU3Hi;SO%SJy&S-r(7(n$HF?a?;z$hD7a(( zJ-Z}=ha!2VMP1!;%ctT|%>P!6-fv}TQDyNF-YJ~#=s<-6(RMYx()HG)(kqda3;a_)*{Xc?aO2_t^woMNv!q(7t9NpC+N)xHNSEk!Whh0Z)nql^oN4{qsTJZq0}xrg+#bNE zo&$hwNgBY$Ec9OSulN&>NMhHI2Mn2&VZywR*d=}Vs?&cg&z#6~pRYB)3aEI`jT&^) zhyp21Fjn9B7SgC5c%RtDQA9`jKQmUZb+La&zXqGr`iwRcv@Q5hrkppR=*x$IzRQ+; zO|p09v!qGo_Wjo7%BQ|YyRU?pQF>^b$PtAKiLOh`u~Q{|*nZXc zBn-AC3#&(T36WaVP4#9U+)00!#Y)BN_Z~%NW=WL=D%i88s4nZeM{*z!P>VD-=c+MK zhL_k0B@78AiH3{h&6nR%D3wrRP0#U>%sR`YW=VbH?9 zll|}gruew~a4erW-_L1k+=QE2XTjRzr9;!x&sXG(#Fl&e>B z_RrW~NMkOsS-_3~K?yvywpi(mZM@wC^8SAL=1y{_3J=k?74uMz>~1)2R}Guo`^ao< z0)G%aEo(t4ns{c}ng1A3GW3*WZCDm=(!Da$1!8ac00C^SC16MN@_(ndM8V_DFYo`I z-je?)Pfv3rp&-l30Kn+~{N+FJ?t>m8FhJiphI7*Ka4V8y3T2 zj_L*ifv~FB^ctmK`r8rvI#oidN<(BuDso7F9dTI#9c-X;iBo>E zwPusI;rr{k{_c!ciS7J3!I^B~Nt7qV$rMi^`h^EZ}YRpGi36MgotpwkP0s zUXn*fzp+1TgpVj$wlDZ+kD}}fG)IWEF?O~7JGtX9F+F+j((vv!!7EotaH`_7#ayPb zu2f&cACUMAp^ioDWf3{54QqC(9A;cUQik4oXm+hItf+Sfd@)kp0N%VZEdx9-KVX`F znrjBH|0Ku?Kc#yE;3M}j(!}xy1TfD{Bu64uDLO>V%oh1MCQm5{7gcI`)k@vN*wmG8f4jfv%8<=-Ajhf9Rg zV#Vl6Nim#kvCusDpChc1`LP<|3h7CI7gOCja^>5YD3q$Y_7}1#Pt61PV#*nNwh}{U zr@ji}g(xF)#>{`zLGm?K86?|qW%@wSlwOgU$uK-T@UNK*I?_PXpUunor!KjT8>aLZ zs7Q%@+=%m}DB_|B$uV(1vJQtXInzOTwDxsavgc{c^I;;4&ydB z&vKj%;In;vH;4C3|C&u*96pV-j?UE94rKifGm8ZjnzMRVC9jB}mc>J^cUe~@8S!X& z1Armo6p+3*nIoE^oC}}0C;$4$%2_@L`Ie!S&$1$KE*?(v$5Xl@t1L#qPgp$VzwVCCUeqhvMjxW= zhQ{eMD-~)Vr#qOH)T{p9J$JYQek=>_vTN>!Mz~2=f2xtjL82ke< zieV@K8_E)%br?nh9{s_{@zQU5NtW7oZHA9&bd>Oj4qv{O5=U*mdEWyE6f_^e)a%+b zT{2z)tah0_hf1<8m@FGfMqmV=i?@`PQ+og*?YQC*?UQ96aRh?P}>< zSa<*~1csmGegd#9s{xfi>=G5bRLXLJa3TVgzYTadftIE5N8kq{_!c;@3T`V0;b30* zYUUsA8&}MX_O+NvMh!NvBV6}Zol<)L)kaAA0@&{WFr^2Haa5!`P+M1cU~*pyGXq88 z_@B11&v{sLQGU((de_iG(0?f=No4sTjZ^g3VY6q_utp}(*B$#y@l1B6M7_3EJI;JH zyt+`w!D635!N~)EV3HdJRv@ zpr9e&2UD0ozm>@0a37d;%y$l;x%BWpC)XS<$O0jj0JwMP3LNfj_E&M&=U`!oA7zkc1U(pP$&O<#X$#%Ck8w=&A!B+7j=&=7?PmJPY3FJIq5%o(@u0iiLRj9g7*@F zN-(Z`B;W;%sT6$U0utw;0xd1b!|j==Sr7dr+g7jFV~Y4dzbeUlRW{g{)|YMJ^y}}x zIU}k%mI0}O_!kMyJENr6+P0$I9{%4s^gvIV*aq(M z05UiMI2nD`fzr0_pJY_k#lcufY*4)Dq_QiQ9rjmC(vP2FDF4K)r(!b_aIfnBme&pU zlh@jHH8*U}Hr|MDZ+9#H^vhn?=e>xG$89x`n+l{sO*8P&#z6l%!6(wy7@Pk+vTq^a z>N0A;01TTY&cuD4{_i@UJZSe#LBQsa^aC&1V?QL|OD8%vg_aPJ#TB0*I21|xvvHh} zGw0X(2~O6*s1SG<2`6R}WSAR7kV8Q`$4d1%B?4gnYYsg$2)J zK%+0`^hO8HfeCa+eZj{^lJ|tkzvvMeq?z1ed^N2-b2a( z#$aF4_(Y?MP{482B*2b$%Y)?f3fIX@n`DRp+m{L5IV7`IwhHJx*gF9&-QR<&oc?d4 zKh;j$t8T#i(91do53&j!JPgHo!y+|nKHI+^7346sueLrh_q(d6&=9Yz3T(hvPGSi3 z{hjX%87k@NrSlqyZ9RAH{aIS2Le;`sA}U*^NqP~`Xub&n%Oj+50^FORFS-9^66Bbe zfaHU&G`NijF5tNU4DI-B-U&Dgz=ZC8gws6sLUB^F~f!wM7lw11;<`s$0G0q@|c5#;62gMZ*kt&Nvo}G znHcO;soqbqdkh}cAa(pLJ9$<)iSAj;E3z} zZ}Ks5wN6vG0C(MtbFu`+z4t42qeti>WcRxzeM}eHoUT;~7`jR>NCRo^fhbkX!Zp#Q z)?!6*~0*EMJCLNNX@>0Rh8jg$kE$dIqMuHBN(apQgzvgH~&)q82K2) zfQz;x0zt1#fGGa50bpwT2|=>|$x)Nk^Q%9$R-x%xH=N`VAlm(!6kisEX7=Ce zsuX~4$>(Q~ky_nZ?pJ4YR1f?2oKAZAgmKOgt8YAA>6ueVFkA_&KaDH`t6XQG-(!!k zr{vp9f#|ZJ=aZ!;{tVnW;oXl0p5{j2%iT!bqAZZy;J_q#{?rR7gSwC@~$I$+pIqPPuVEEDD%FvOGS?`u~ z_uU2#-O=RnOrsW|BW~14$F6R9lI41RmqMIIcQ4APf3C4IEV0c;*ab2ct|9%64N-05MP1KdLh%QjJGpb5{93?Uvsw+(lSBd%%lgB#j{uWpI^*+}m*Foa#{O`mr8+I-4 zl(K!zVlpRtugN11TEm|Lljku9G^#QAdvd$Xgi1cEu9YIbN&CYZ!~S?WRHTL@*JNhX z-b5U+c`iVY@XK`d&3}0<4e0P8B)643@Xh})&CB$&&BhF1{9pKp_j(BuWQ5+fLY|a> zgA5a&5j5M>&%sKm%3hMY>nZ3NX5ble-crJ|5|+l`T7eiOWv6t#kEJGteGSJAXl1+B z$_3Qrg|h<8NOGKwV@wM1(o&K%>^G>m=E-VF(KHRHJ3}tcqk|HavjV$NK-qnp`St!9 z_{((xI^BPnb`Kqh{0!zE@UaVGO~i^6bXqIp?>-p z(;tM%$Sq3Ur=2W>71kcVHl5kyTz|sIN|y<3z(DfpO=$ zxR;KEJp${x%qcm2VtAU>*D?w*U{30gaem*A{@ITIfqqf1ExZpleZ%_mL2;aG( z6u1Om75PT}4(1|(MOXsXVN@`x(tvHH<`~T2qEjH>8kZA<-jggGK+!JG z$^e3C&0Z+XRrGP39zD-kKMHmCL)34TlJAy`HshkH=PO{ZwR%|4p0F*ks0;-$7f}J6 z2ar?Yov|dGgU=tnuXY*ZKvsSSLj@bkbe+5BsT`%TO7 zpZr4pj8HZf90q1!O9p05Y3B8^0iP1eF@aLz44ewCX3o}7XbMiO0)cxrDVMf@{8UU+ zXUSfq!7?bhXwn4u^Fk>Kmj)};{{M2EB_&bb_%Zq?3Sx5yeO}BkGbL&+ef)cFkz=NFFO<9GDu{Xkv6CDq+eo<*3kf zGD>Q#q&$Zm`w*L4YyGVJ2qS$uED5?>O+7ag)>5#B~cbHA}pC0BJ)zx^-D$L|&){j}qd`=sgHKDS@71 z{RK#?9zJuQfGuJ!s)ubBYPgsxI*-8sN23K9C~HhU-zhnn{~g|ns)=~|3R%*h-M zz!W934%QnhHPQua1jBJXK4ktpeM2KCtzQ&WdV_XPOJq<{ki8%UQ9>d*k!R?@HbuHM zg;?&D>+WHjf6UI-!cZ{#Jwr%4%6rE|y)a{GH5y6I7$<1O{nMyb6Mvt zh_)U3`!$a&(JTSmgrvm#A7Le|`0`zNRS2U$62gMwoKf4`iQ!K}6J!I&3Bx>E${rm#E@(F`QTgd@)+ktBb@MB7oYlR~$whY0JkJvS7Axe0UGVK2 za!KpA5|~#=d0A7;%O9+B!YV8E3}g29BmG=7K&+JTXLpxfqCq-4vjwbrtNddI1pbfs^JkH{kz~b&kQ6yivE0ZQJ(5&Lk7t zwryJz+qP}nnAo;$=iL0?_kOrlx2miAeC#@>`#JmBd#&HHt4aO&-i1c~>jV^F18Ltz zrTCV#vBR^e2x2z4=_G2vXmN}9-1aW@4iLRYy8AXx$UtMc)58U7io>Relp2U3*M~4_ z6b_y!F4z+?cY(n4)5=o&?m6`L+TYwVD)6ZVZdT^F2JWIs>4;^+Sq#5P?6q~-zEs{Xr?z|zmup9kQg)5@UbsaO6dX1&7#ps?S|Kz+Ccz+n8I z>i$9({9Han!**0lEeec8WjR7q=cXz`ix@CZi5iGOx@OGPUoPmRCrSDm2u8bL}@Ut!C3oJvc))&9--yPS3;5X(QBX)G|TZi~HKlWyIlil4JMv(M<36b@46`T`gLz4VZ-bc}rbtFntlxhB4#7VStmVp_Pex z|56-kc6Mwd1U|8YZ_cB^px1Ag>Bw*k#_89uwG~=nTHbS}SXJs&HwWc~Se3O_PaS0> zUY(m_fn|~zm9;IhfZI`WT%p@NKm81XCq@Ak*zY?}|FeBc28=!EN(NlZ{_iCC`Xko> zFt9_^@-Y_t%iGcZxJJhdtBS+Ig^^N8)f*_nrLifQVwkD&H`l4B$Qecy6zB5IsC=I2_ii@nS@juCc6xUxFPR>K)3qW%IK5Be zul?O?Pz9Kpy8kkx7S!dNh*%Tcnsi2anhzB|s8TAHI*q?5$x{^f(0Qd9h`R8Le?@E- z{qq9o=&4uusU^TJ-fE|x_8EW+v;`jBK4VA5jE-|I#Ko(6Lu^zWUv&*ap7hkg;_LuM zuYPOlj9&uus^8_iR{}YCxbf)8JdLF73}BZSW6EKb{1rcR>L5s~ag*(ea(X z-|NdNPeP;!i0i`7XYdx#)1$I4z(845U7a7A_)3*CRHz%Jw(5McO%~&M#@Fl0KrYGOfi74!w26v3w!ko1hh2*;FI%sfZh&{ z$M*GK2hN8hgW!rUqsRR>$%2Fl`*s{GH`KoD|1TqBMFnKR#mLQnu%2C8>vt!1Pc-P zeQ!{1ELq1MD&u8JHXF<)2s}U~j`s%U*qvbDY{IkJgD+}U^RVNT<~R)yooWJDro7fp zLjQQ|ZE7$_Ay13V96&cRB#}a|5j#NM1u#h})~dgk5CY3^ekPgz50oRCy=#JJ^+)O} z#}bNShKjVQ!YMdKJ#qRC_i`P!Rn)l5y{b)Hv_K5V08;KMw#=o32^cjP@x`*Kb7)Zf z^@wL)?+3&H?RJOi&0p+sv{?QvDj881BY(qF>giDb07ZKhne_J-(HZh*iT)kE+I3j( z!4ABD*wYj%ZMH=s=opWpNDuwjA?Ut+^sv6=J6t|$`u+;@;o7ECW?2i?&y~Szc_Lyo z?)CZSH| zgj0L-@U5kv1%x>tws0!!e-})^9O%AL(zBTLQB%rrnoob%P;K5ISIpj+o0&moQwH%@ zROkKJPLmU@1`?eeG1NpZpV&K6R!7YP5ejIyIjahSbkXr2$xV^-LRB?*<`7bG&m`<2 zXA#cA2%xuwc-q`N(d@|91(SoIu87)G`DZ77>l^%vzCi`evV2B;ZtTc7I9?H{*wnxZ(DjSSjS@;%+x+GfyD*W ztQ?uBY8YdoK3-W`-|q(l}vP|pY@CWp&)R0Kk6qMN*L!;%7lb?N{lOdU{Hxz4GoNOyta`YfbD41 zwt(bFE5iQAs+p^pT4Zr!8Tr-%T~}MUZ!TT2K@7XzABZ`od|~Yi0&T$wH^N&M4xf zdGmj}3`bW)!!F@+O>y#303#mhU$}jE-*#4&CB1+j4_5LsKnnWtK2(m`GkS2sFHf74 zA!M~mb@QQ&tu_M!70Q*Ah7wJWzT8A2GDSp~>mFIHWZ9c+B0iRjyZP8SKBj9CzmknM z+UbyNTeBKlB8imn>Bw?Q{D6*YjhU^XJ}ini=1snk<^F~|+(vitH0o1szbrRCSJ>>( zZ7LokS0QjKjBflz2vi+0cIS|z=N zcYli3;yuqyn5=wB!y#HmaOIPq&7oA3_Tl_wVwOJl94hj;$Lle&j7xC2f}DuCa?w7A z2Q7KHGqNl4C+wqF>u?>^KXtFkGxDtR!;!(Z)Da);Rb`qeHzw@v5{rREb7wfbtW3&OGV)}{JI6R%#$J_BtGl84f5i^TaB%nRq-xUnNyS*`m5;tTyj%qU}bGLL5t@w8y zyzPek@>oFM$lLxr?#nbvS*cso4rlYyBVvi}o*>TKfh!`-mN*}qll{VwbH>+qKC%G89B3xFWHy1n??}6TXQgb%%wa9YbVCpl6R%q21!tF5|lX7 zW8@U?Fht*Q6`{WRrH!(#)_HEhBYvQ?@?FE3UV#F%_m5AJuiD|SJ@-DkTEAbz-y1hj|>g3MY9!I7|Um948E0Btmt2^m5cMqn(ukZ!ri)F3usaDBRYegWjP!ZrM z{e~o^r(3Fk6M1uJ;S~YGi)M`^{&L%Qi@+SpWs!v7=?pfNsXzRXqPApb7qLjNOxoL| z@&ubS#9*+FzYwi^5^hh1&%u?#%+L8A_LExpF&J-+<#y!$vvWbS{=M}Qp5p7~Yn(sV zx`3q@dAduWkiZwckXRIJMjrG2E*(WF5n+cM5y!KlEE3=UuiAwv^wUh?2B4*WT-XDs zO?_pYguZ_9Gx>p%ea}oj{|Q3Z+z|TUg36)EaSe{({vO7Ev4&h-YZVXc1`QA1Bm+ZX zKMHQBhL)viKMxqPFk2pKID(OdlWS3mZ)2cjm)7b_I%14}bv!mjqiM$kpNo?kNuo;FcQ{1Fe<%0W zL@Wna0s|OpG2KN~)cKU`-E=czeJ1RwUr{4JMZd$V45QV+;j}Yv5WfgFj4$_zR{ID}=a~wTGR1f>_)4xKf^G{UqnDnUqmG(_ zlxc)7jU@@lNA@IZ*GwDnA6F&54Po7^*k$?7K*v0eUl{$}<(ai$)` z6v{H{cp2^go+%=B?$Y}d`Yyr@#}v>24ES3&f;MGT)?#F#I0!<_aqpte&uk zH@q8<+`BU|$NwFxX^Oo#sUeLRi9#xgf?`d#M%?z-_)w&@ZL#yqKbly!Lu`I#?hQqEgIk|hD~rRo>JaRo{3WK}jYk5}BPn|TGoNma zeLs3~{XgSD=G^2HKjwo@P+XQOzfls^zV``3Fd7r@fZ@@~|1|_#^X~z-gCxuTzkcAs zbI8g;cjv4e>q219FwqV3+pibe4&+ni>094E0{AGJk=x&VI{mICO+G|UGC+scPh=TA zZCC-6W9|vM)z1Zcb4Iw4sjItdlUMoRO0B~#k?6Qgw=w)H)h*i+{>szQHhoD8h1 zG^X5|o>>x#yY0?W*_nC#JsQ>IgSpk&x-KQ!O;x?iNLv}CVCTLZTk5?nbD+A^d(Egi~=rT6}&AJQ52Gb3wtB&P~nhhQz zFwYeI>z!u|I^#7@BTW%>&`*UkU!$3d$-iO&>;6_jliAY-StqYzNR$!OHGsZ3Ea-=; z!?TQ9pItZFZjrkTJ#+kiCI}Ju+(dKi-K(e4T0w&{IPh*U+x;yVhqOt38UTB9t)$AW z<}}whaG6N<$e^DMVPT|(Vx^Vg6q>{=h-z^iVeY0vuSSXfsgbcPIU@T>-D4S#qbe}0 zwiM+9MGKse)CPZDL@6CBVoAPa<8auayXJancwFkv8SNC3Mv(siSLf;Ls5s=wmoA1Y z$UnY%apV-6m-rjLGAeF|_UmmIn8y*|D{6CZaKy{sgZ7OlWn>Sdz+obijp5QBNYALfs+ z7O_abMlEjn(DayPs;;kmG^dg8?`?v4+-AB&zG{RPAVH~9ZNoj)?mK=0-(ih`DCB48 zDEP-khupDQO-UtP=NUmWXMATxudUz-PhHi`7bZN8FmLuK`2JuHsVBb~DQh*_)AoDz zIO5JdHu96GnW$EsYeioY1Gy@%O3G$#7|zFq0X#7<%SuwupQk~`ztHwe+OaAx>irff z+rk!N{8IU1Zcef>Dr%nGYtQc{49AAJT8q!?HN- zs?luJ*Y6d3vT4K{W+%$ zrHEVK)+khkjHAj8F695cum4ExTpj)nqq0??|3Pq|E8I9KT#~oc;5K3mxHEe;l z1?17dofOD_unQzR-tEL(>87DX7}966;!tW_zjak=klXi!qIiWD+S$3z)w^@XG3>wd zj$d|L4xP>%9H=?az)`~AV>2?WdIJPwGvrN$;;|*8z}FRi?5P@DcGHcUHA$;cHWCYv zABoPC$T#LbpZ+xP$N+r=6yfev0x13}^%{Dxs6OGwV+!XR0cDnvM2bcPDnX{ScJq0b z58*Z1q`da2zx$@^baH~v`!4FB2Qbtt9W5cc6U!;guqO1nze+gTPyUHiG{P=(ju2qQ zPw*5`d+vkFd%0^N5B#KI_%p?{9;MC%bs6|nr&Ve)jb1)Ub=JGsz9D3(39Qv#(j#fr zH^W;)vb|ur;Qq53Fj|6ATiZHy@{jCAK8@q=B;{j~Dm=ku@l;L5Jo{~_NbJ6OG}AHb zWZU|WE~)(&GYby}#>haz>f(dKCX(`;ptcC4n2NLg&&58+_h+jwr{c`?b6KF_7Oyzf zr&EB}#?;_jcj|qG>#X;FE0{OmB%@D!t-65x?F4Obm3Ff~v4Mtd;+k;)z^T6!789bf z$=Web_3cRyTJt44Se{FiTi_*j*pD)*@IwDScxbjaRRE8UOg!9&2FFdv#*xRPeZuxP zry|lJ50w_pA_W5*57S3?v02k zAMJmFhO<+b>W3-`{j^e3rXXi0QPwR-qQ*fjTYOWS%KrWf)if`8Pi|H9w#9y75qeG8 zz{EvmvE?AGQMp|Xsa&x$8!Ci+s}S{kJ)Ny}ZG*VN5cPJRg*j}~z_YDmxScdQB2vwm zS@kMDRj0*ScAnCt>t0?9vBXqCh*|6id(@;maHdbezNNJ4FDpyMBb^I zLdRU2=&xUA$0=sJQMcOuWtm^no;aSWzoMQM_AcyM-GTaZNU}_qt1zr22gNGl^NLm; z6snGjT^w4zIBJ&NyR5vknZ>8Ox$_5Zdd*PMa2WhCxf_0vxEP{*fs$AOO!Uh$Xofi? zHH2!e{rR%q`$+i5Ri~Id)A>BZW%R?*dZls@Ep)VpSrPdxMJseUR=)UG?v;lXtH>o@ z6j;tHLCrb`BjX%R%Pz!i^=D$S=Z3rIBr4%A`arW|HHR;%Np2K`rFCLPj?a#ZcWP#- zRj9)e<5LP`Y69wb0uVdNI6*<67Wvkzj3iq}9PNn0`9jjVr$o(pm5R+waS4r>LiMl(%bdyQaa?CEp(&GKTkwyzF)De>Vjso zj8zy0wFe%@sU~DLlD!?nwLU%fAKD)`%T;6B!Wuof1~yt=7**aIZmul*_`GBJrGw)@^0_F#|GYwDz2v`Q)k83b0;Ww)z=( zGY3L`uMBkidF1;^yn^gPNHjE7&d3W)jIp3FiP-7Zyr6e?M?@QR*u$?>>_>{oJSpqWm#0`a<<*FYffZV%1F3 zMpdGMqCk$Qx=RIMdv4qWFEDCz)W8J&fM@!UaZ*58p*Iskt%xB_61!t8$`I`|hFs?{ z%AiPMfp(DEcbL(_u3!_)a=my4Z4T_oH*jsDemBl!ex(I*LZLx#qT|8plWmL=hghJL zL1{`h|Kfa87ga>MQfAJPw6O0SG4#$k{|#qnQtP18?TCqxba(-~xf{*n?#->q=AIYZ zROLS6yDT6o_=-CFdz342F+Y3k9%eSqpWBa=<&go(Pi-XES=x2R^dfxi*C2MzD~0xL zH|&6fnq6s%=0kpoLCLBnwP=n@`G*zJSVfU`CmcJ*Q4*_QS%QT0;QW2ZR3Da z+CXfyaSX=vg!3t>&Co{cHV073l7kaqCcU+;OkeWoz+mh|%VJ)id`oPk)lfmbj5!d) zAaT&PxXDHxfUpm{&2PW4LqXtEnO7@)_27f;wB8Zg_{i+JQ1*4bo)2&Y*3n)S?`!%i zMcC~V1=Ryq4e93!v17B%(ellg$WdCBdL{$0r z`K(`Gi1el1Pon*E8ELWW1h*i~-vk5g9&Vmp4LQrlx^Dz|(UjSTc#h;QP$Yz~X@+U`T# zT;8|f&-|9EfR}YEqgpuUiwEb5_1ZcWO&CySDjaBc@3iFm8b^*$5n~1&id)dGSXc8W z5CDX76p|`v6*YR5&sz-16jD>r9TGq==(8_WQF!ltnXOi|BMPm#?_J?kAx|?@|KKE!HpvH?xGQ z0~hR%w<9z5Nad~rj$ygzkVbWnZrIdGQ)ImZpwTXO$I!+9(;%#NGxvElv=lYbX@GT#CBydSu7wr2rut5!EL6`4 zJ)c#lCwEIGaPg%=`Fh56U2l*82VBxy5hGmv|++R^2&w`e8V zyS=c$TO+ju!te^2a)q$Hj@&yzk9L1SWH@-jq&*G+s`ZdTG1JfH=qS#&vGzNhYmm6F zq0`1?{OuD$z#adAQxz?A&#E|Hh2u(T*MZmsCofz3$;z%Fh@;+mtzUuLO;&azK6Mpv zqWs&(Uys0pQqV%@T%9$D=Wm2axTfl9kBA1ksg~(r!}OD;L0C6uMz)U8lwAukWaH1L zqV2hxPH7O-yZzM*up0u_>uC19tW145q+oU%HzB74MbczGmDUQ&+%oEC|s?P1WrhXghdA=9t^N^tn)^H5JBi%(SSmCdJ4(tEDf*0@CNMCoqvH_yA^ZuoRM3&z-2%z2E z_Ct%O1AT7tiI;EjkIV--!gQ zw{pdRD5$PXOcZ-5($vF`dr7-dxk0!A>lXMKbVK_!bA8VKE!0e19MqxFJiIc@Uynxn z;)DWVocQyC84B_p5S$7JfA9ZsSH1eSRiGM+XR5y-;|DEnb@KeJ=Nz;P@^GKpQA^G# z6Z=@QZ}Y;6_F}a`)%~|69O|k3qWoLRoG#3-2~%NG?|gG$B_5Z_t*XY6nt|%CH{7Sq671R2a=%(o}jqsQgvJ=U5gPtM+{MW za<$27JwihYu2|gW1e(r7qa_!R3!#%WXyW9^T2rz9RzF>Xs(0WxtZY^=hC^rlRs`%N0=MNfoMoBflB;3l|Mn~HM9&=Y0v<`$cvw4n_ zs&&Junw(3CR=%sY9|B>^4RN#4b!8moBk+fswd$LAC*{kM2nxveugI|o zz9=v)q!oy_sJCyQ=~SDI3FTb0R?iw9rPJX>jaD`pNNd=r`QA!;S8|7HU@isrpC%)m z_$N^Z4%3{X&RBQmUvLM{XgsH%Yutgd%p72J6FzEm%#lLI8y)?X8{o>Wf3Rww? z^SWibCqGfdx|2E*)BA2dHvFQ#vC!=&NXehwCP+>09ezIT-1N5Nj3&V1-3!VDEnU^$ z59{hVKohfPjf=mB|xNMWz; zMCBmzYt9=+TJq6*E6-2wN=_zsw$ak7NqE#W>5~>6n-008BpmMHqUn{~l?jMIyEZ&S z!OM;gV)1Y+P#o-Kik&_Xk_!L+2@ID^!prA4g{{!HPu;@sYz%ZIAl?@=GQpiEm>p_C z;{T_$LZJV|e}nkbD!tDI$%_QI$nTFBA571TWwzv|(&`8d^|^hUA3J z^GcBicwM%f9@`GBZAA7UF(HaqfV7K)@5$~RpUUIYD+k=T3tyruOL%(|#Li=IQL9ND zGkANx9!@ppzK9((Hc6Rg8}~JWVI(%~3&l*`?oMp~qgpkLRDeMHPH(DgBVikDO#&eD}I9`5fdwvhB@q)-?as>RF~x&@z}KC$l#C!*9sFb;ww z_`vym(kpO~yW-d36Fm;DJ?TdkmPfMh`4`adH}CyUx3_8~sZwE97r~2YY>vI%3q2r~ z6<`tPw^PpK*F?@-miODIl^bZGZie2bxThVBL$@Xy%E&oAyWlhm3|R5?CgJubOb&m+ zDpk6qh;G~<6}%`ufwS#w-GhwO1?Rh+jD~bqdEYLZszKYXxZ#98pi)BxBWLRdqc{WI zWB$^%MY(POom;?}mP=vNs-9h{Gb(G~v7Ef4df@99qg7mP-TRWA!MpZG@_nLC+P%>DtnLv0N9G&W}RNP14 zt7{N~2$M)+{?bF;?G$3w77pzB)OY^`4*03F#6w-89(4|6k2t3;L5s+~ zb1+F=!~(BI&VU3*OxMq%7P(iS2|A^hCo*_)>V6$oS~X&iN#Me_#Q5>xz8#CqvNI{s z7?sQhT1Cm=W)g+AJvq@DJ$mchn-@nN*H8vg>h$X*vJ4JrU3ql}HHj)#o<*h~ix4eY zahEngYi9$GYM*0Dle5fNbnY0*l zV({VC%CS`0zH!oFHTz0woJV`I4)mRcl2f@ED5PSr!0vSV_$&>R$N$2LaO$a!ar~jVj_mCJ2!qYSFP0?F|+6+ zKn_zWuT#~5Ej@w&YRRV!C4T37a#frjRIoH=_>r2>D)f&>Q*9;2$NL|Uq#I@MWigzH zNW$C3qFNsO-GH`d5yXQruS6t6FQ~)7PEH|9t3;V4%RXFVE=qtTqFXDCPc|f+%SY3V ztQsdcAAI#!?68+AV#=F_p2Vgd{)*d6`a?i}?JORZv2QdsfH-+Ihcnhessrp|CnT$h zwk_TTHP9Ja0r$K5uZwy*%g(f~-4)%-n-eXMcRP&;jBCHirkST-=X{^b%{Ed>e9noazC57RHkkHoP~{06@P(>fC|aE=#YsXv-%oyjI6GT!F2VNv`Z=6(OeaG{!^pr4|Ol2jOG0lRi{AjD#b1pW(RkjmD&dkJTSy%h^%_=VWNyj2n=sa6UYQp~=K1!Ag z*+auKl!VEfZ~ogACLyeMXRfz7l2XEd9Tw6}?AAxWov7t0Yee!DasY^Tq7*g~p}I z;j2`!BB3>wGg|1iZ^*->CU})6T#sj!Uh1|N zQ#9ayj$WrCuacsR#}Ov8Pv(*94EVSX&0sYUqo0o9pWcr(KIBu% z+znXZN(rt&3CFziv3)jw69+DI`9rCpd>{;%Q}3G%YLD;Is7+*(Ai0A_vNNM=#+Y~J zQH~rkYLDRo+@(V}W@S~h^icat+Ozoaeb^EAI^9E$XY@u2uSayft*&t8qM~^U_hi&z zQoHA*2e=4C-Lp={t6R8%gBos6)47OJ9a$f2##D?a`bPOlbgq{QT8rNDVvVgc%k-)Q zrs3$CXPvg$WRj|Dr{<`J3vCZ!>DG3~s&i&FY?>p2G{07!dXKT>1Ld2x^Qy5Iwp`rR z@Ga~bA?N|*8pTxC`ujGjvj`d9RD0*j(j@Vl_t?27!a^^?8i0ivrU}!4^|#)DJE!(l zZHZDXcf(ij;`!A3kB!sB=RX{mhN!xh)*nR5I|bfw!9&>6d*>5^7XQxBWrD9SOC!#MIF}hy+FnomyTgw#)-ZDprfJr&ZQ#3QBfjlQQ`{joO^dcP5b5c1 zsK}W9F~m2XQPq|Q?tngIyUT=&2f3<{u|X6cy{EBqe(iLDsvWCZ8M&vb^)WStCNR?r zR)yxUce!Uh$6WQ$veJ>GQb?1r{d<1}pmP^TX*j;**ZTJw@u2XL|2^>f#n2q=n+qE+ zx2S<|$SFr#GMU2Yb7zoDCQ*rt>lofu%do2~2l1&NoS~)0N894Ay3YSkl@{9ZCZL-; zyA@!!biV%GtFS@!qvj6w2IzU$*p0zrF$gT6s`u>)*U@vjydF7UsHAq=Dd-c%V|mAZ zl6&kVpq{)wowM_BdKnLZ8=$&b-XX}g>KgSWwVV^cj2bYt?HJdZBn*G~&ho`8AY9f7 z|GVzqP9cI9{^!8s{%K`PtOF7IrF?FOX%EUOXATl3n3tnI3rx;IHV~mlbj}Kl>+`ADW9jv&7IAE-;Zm+EpQ3dn2V(?3jn*RVTbLA@u+O!N@C>DM|Qi0)$ z{3;23WJpVqV9JHKm?k~Q?=$LuTdr8VA7|TLyi0f=0I}W;zw7Vbp895!SHI2G9|^k& z*rnU6|CX0q7zsYsC{jLtB=81~vVym8VkF8TrG>7M14$Bb!c*m`yhB7KrB49kc4ZzB zpTs=aYAmMM=_KY-wB->CHzyFav7slG+lbQ#AQxHPy+*5=? zTRLo1BJFJbFLesS8h!9T>+`>?j?X1neH?yya!HKbk#&PuT-G_NiyS1QFZu~Uu*D3% z93WOGS<+;whz2NIy?kZ-N=OKwByQ2_7)99$s^>&w*Rph5NR)6C9C}wfXyZvIOPuIN zauSb%347b(d*t(sW*ki(M1SP#fXsj>Bom4MSDj}ZXw^>1)9mshhkY9adTEt4p(YZ~ zQ`Q?@BNEbs<$|SRiyG{T{e@&gW^M+nf`G92xL-?i&7n*i`|+P+Fv@O{}tByiK%^s!q*Y_T^_J*II zq7UXHROr35p`-Fm^_lT?m;qGf*PToNkvsN*g6f395(C>lY!iH=8PTt zSL8ziQsa>By+O(3pMqMK^J>ter{#9^o=4Je2dW88n~u*>Pib zhnDFr7n6l304(vD^N%2AlwQ5*u};d9{d4*D>H#{*21IMhoB-G@$$v!beHu;O63%d+ zD67(Vbpk(S>m!O^06;M$+CJ2Zurw9%2M*+HkF%5L(QWjZ5=kgxq6TpYSj`Xk>W*Ui zi_K{InLlv{RD$&rur&B2THIaas1=!wAN3v(&>CkPkk4Nr`H9K?8?}CAVv^ifHnIqo zALEW`m;Y0bPZ5akf&Wy(KK4h|n@+GsdJ}U?*gVylVn=`W7u!(nF@|KkAdHv2Q8Yab z7@a5~LYOC4;l`NhQf^-%(rj=^d^Ko=_Hc@wv{G2!()QP6Tb51p*~&R9_|AB9)f=&oYurd}hqR+;4R<#Pfdm*)=X12L3q1|V_@V7GD!`VoHqhfWRT0QfmE z_W5r17Jz)>dIXqkf^k*|9AAEZW7LJ&buLY@yRd2R+PsL|g1n}r;?t25Aq2MWfX^6H z>i1O#@Kh(VzhYglcMsD}gW_MeqRUD+5ML|BoL69Onm@6np!D#i_H-X1@48J75J{sBf8fYHvi?#g22>ubQURi$x+Kj5d*gNtL557bV2F3BD$hy}E;EH@2U- zcIGO3*RfyLR6C4NLFp#w<;mYBq*6?}=>Cdbilh~i_LBX{bZ#U(I{D6c+av_}tNS(e$=~&%&?YBx!kg8(T$rXQ3Xk&W+-mhGnB=1uiZKmJ;}>&JDzFLfW-dX z`)2?9!``VU_-w$&x;EomuSu}RlOOYD8utSyuWASCR48#=Eg#v6%Het0@kc3Jc-F*k zr6|H2ExQ&T)GO|Qo;u004T*NnWo^{1tmY)3^7bCkzIB@gb4TD{M#QN8EWJQLt5vl{ z{)5Jm5_L^O1q^y-N0)n=rW#Hq&hkpWxd~pdUZ%9C;EA7UtJ9BjpgR8mz?%63-0Mt= zV+61rzlR+5N%D!@5_t;FCIK)_Q4!kdUNA;l~ii_{VR;B|tE*p{C{V@`FMe`F}^ z?Bo;6IE5;innqTw+E)LnPedxAL5p4Xq?S8wxvX?vMJ;s*n89r$O32BK3$%CXUG&bD z?d5RTi^m6DMgMgYxtoPc*fnzFmU!Dd{@4LLHk7wnQO@^)F%@rYkz6;)oDYH*;0I#8 z<{N{|%L;T}j5cWDOA4!42j#K(3o2eFZRUqbcS*Vx(Qj~}VA}vkmcYm7fEAao-e^+` zKzEk@=^nLE##-|on!9_1?oC4+8r5!EExL56KB0;zGiaxws|nA0V_d_QGN;4XJUeQy z$rJMv?Mf3$?$v}T$^g@x;Q`^{KyqxC^>=fzN5QSUH|gtuDC2n5uIzlSC1G)_BIemj zmZCvTal&10%e+Uh0%(lGqN3#$SM&4XQf6sqsiaFc>ub}&fmLGqW^rBIgMb;x!y|xQ z`c1B|MdiO`9{fmvqXhhv{tG(rOW#WXtEn?@LFDm+VLk9_YVOHPW(oot^4-0Ta9R^}vF^rP|W|^+#QAH&#mkcv_YJi;G?1E)G!IWMg@u8<1ewYs@LUrIcTUC39#qxVAqQ{sy*kqyOK9{?m-0<>dU0G8bxRX z?>MJtWQam=6VrJgYmhb&rfOg^>!mFTW6%7HXgRJas_~GLFZz6n#O7Bz zx7$!_+c&=RW+_5q*b8A>Al{S1DO33#^upn*J60sSGE++%XTAgBZ%MA$kxYc?YYcOe(Pwm7@F* zGs{8Est)=UVyAsX6nW zRaB=Z#<4U03=zIn!TkB*xn$%Z^(;R~bzZiMYENcQTd_j2x^59^6Ox4hFck3&udna? zp2UyObJl1!Ha7}&-ZesYL2AJ5N6REfy1jNW$}x-4_gQu4pLYqRRS?5GV<*4s8f*&m zO*+>NP`J3egbBm|Oo_+{3GjLLQnjG55`~Jy+)|n$=*3QuH8uFcD2`ZU@vz6gxQEhJ zF|%Q;R6(VqdwMUKXqxh?CFc4NCCGN9q=nhITUUWod#Y$4hh`KRv1{f=6eI! z_@@~-==7YFKOjh#$tHI_o9WtMzSH-BCWYG!!{X*dkU#`qs-*Bc zN5d92jkG`X>G-078q4xS8OU?Gdw|v@su)?~f>7g`1Xat_JFujNvVwJ6OPLfiy>Oj+ zC4sbioqpl$%t*b_!Yi8c4rj^kTGQJbbNhmi>F+Y>>O+1i+Kw}pjHo6VYL zve9txZtRM%HbBJlcF@k6()A|5n**NYTlB+8XS)!_ zWV_ztUcWtp#Zr#1agu&ZBzRARPgjGYT)~Ir`KMRAiA!ujZuE*>$N8Z2mfcP8?#)9|fw!dD({U=1CUtpfkA!TXz}x;pHLoNM*>O zGZr3HnLrX1Y3KyQG!!gURx#@yNUbfrPT*WLGCWXk#Mb$obzt?cQmoJb&__43F+T2p z9GQCV`uC519Pj|dr>Xy8qN^YE8rEP^K9idqTY4H$$Hl=xs0RlNRLBziE{F7s2_nMK z)O;je=?;k1dMqr01I<~LONS z%~g8$Xv7E0+;>_a%k&fPuh{**seSy3D)^Qg^{cU|NqwD>f+h#3-TVFD6Xk=SoA#L) z%-9fGoi0Xg5x43=)z2aHv;kV>AY|r-!MtE&lx$FH3wIw<*QJO6Nc2OUu;su$_Uda$_01+D;GOhOWE$o8vd=vn^hZ zpWoxc&1oihJ9{FR_scdXGtLsvV`s`K@mLAGJ+rfLyn7v6?)v!J{LI!?f^2JwzMlVr zIk({pY9qBK5;@Aou^0L>c>}582B4Jp?|XflsfSmZ;ZAre4r>* zd!pZeTH9mAFEX?Ej5{LI(bTvavS7s;`T7sy8}(sO0?a5Cj>z5qf`AARA2B-?J@WRnozfTSoSmeqX+mwh5i=(%)#M6}YApz8UK6aY4@1&BHo zmTUl)Rx*!1b`(L_qXd9});R8d7!k#Hu+}EPmXoVV-vWSq%dHe)TK#JJOdiVIK9y0j zj$MfUAW~)GaJ6tx7N-(;*Xv~{-G4vZMTgo5epI#-3^dr1@l%|iIHM?j(gb_-o}1s7 zEv8t~`~7(8K%>YJB^;Os7{ofp`ufHlkU-K|-pvA>wM7%0c#8%^|6+NT^Q*ghA!#Igz-S3{Tf@+uVLLC-w5PyWr%33;hvinMwUG<)6+RX5- zjnHMG=flvy13`FL=zAC!%72iUJr>L35BZ(i-=`J&w?VcfK2<@^~Wx`khr5fb7Ov%oU$Du zz{}~WxG-5NVo6Z%-Qxqh&b=hkyWIa_>>Q)}h}wP~+eu?KMq}G-oW{1DFqKsU~qXi+pK6P?#M4J#gb$a8$j_v zSy3)S{Jncwjf6lDwFqa{i9JEi;57z)FA)A1{+#>8eq0;Ozv%rehRthAF2pZ^Kj;QE zlrRrlDqEg8;D#H|v1PlyEWY&nloB-BSYSDJ#KcUHd7FmBV-X(YnB4{n!8VWdq`bHK zO(OLh_<05Ec~HGOr&^-9u087*KqKHW#fOLVnq0JLKo+=+PiYmLaau7%Zd1l}(F>Rt z#>~^QX%1JIID2a@uT>Oy?hevvS6AZXNhlzVJki*Zu8%p0xYR}XKA~%0_pTueTV{QS zH8siZ>xI)c%$HEmoXV)FZ>?2)uB=+jAJ&Pc(>8DzI&UOIWEg3m9@5!_^y^G{sr>Sl zvJY`Rd8Y9u=5OB%m7C)u&(4N#s9~$6z}Ud_HPU$h_@78l2{4{_!?=MG)qUMj!TT&& z{tKvjTi)HAB)#(QIiVI-2opv21;mR@(sJOu@Pk>kVY8n)Wqx&yXjH=CoGd@x5ba8_ z;vl~(4%U-2_v}=mjG1uEfIP4+${K$iXC>> zSoTw5D|})rPW~Boff-xRqU9Uu+d!!d5}$!7n>;=8XrTEqKSGuUUfdBX0#Q`-N%8*4+sH};be zQCideS~UZ{8cZn|E5);j$qlhc;P}G9xt&X*Q9-ZG^fSap3Hd|g2w&Wybtn)0=gI%A zwBBfZ8e;xqy}H8@9mN1CgFjHXdj}=(RR)>+OdldnMKr2mLPL02d zH5u-NUxc`BwTF9bXY4;gcN_Uj%s(?|VVCi@UFyqZm1k?}%lV%MM#po-7ZI7hM}h~^ z*hNGD263NQK*}A_oq-lr(NaAhs7;Y>&}S+Bz$K0`mA{SMAu(`nFoY2Vc;j`(X@ zz_+})q~!hY3kzNp-6MdzZh&q%ayw<-UNoM-=|KBABGqfn9DFMtmz2q*wA)ZwS);M4 zD;n34&HUUix6)Qz->fxbE|d8$iSwWA3WL>c%FF>OrCmzBhn&^z;Qwo)#Y7S!yVKUt zr`3U!+~-l)*DSiObQ+SXUy4Z5i5E3k!5sPSHtjUp2y9r|;(xNd8}2J-KD_YAJ`rg4 zxI;TfsH>~1xF|Q!Qm$Py^vZLy0w)`(wq+aSY# z_lrRcLdyqAoD@I$=gbS>$N0`qpJRm^b=TgA#5St0y&n@VmdWdHdL^UmKL}aFs$F$j^z;b?=eBl_G#DUPatReJUeP zf-`??Tc`4g^fT(x`fuZovs4aMpa|@}N*8p;9#77@LOh1O&qk=DkD%m>q7T`B%4_VwIFI#rW*5TYSX_%#-%#k2Tdj!C7JK&p>gspWY{&htD$N#Ro^S@ z&K1qt`tW74oxIEiw?D1Ox<`vhEdQ>p26|Lq+2LOO_MU_GS5f6K7-arZbSFUlZ;h*z zc+!v`78Fl4|Np2f#&|=x%ai=k$sB5Sez3?Vk6!;IEXj?#z(TNLA$ISBtw$yu35dW5zjEKu`dccrA4A8cBkGZ<YQUf;KcXtgJHLwh7YBk$ zsm~pEeW(P5mZtYgQeo`7!=3}&yH(t9rx2nIL49j^+N`bvpf!JE)5uQo*gPbEZZekD zJir1{@%$>WBUJSdpirm6lhBek{-9WmQp2*>eeWm~?;qG#?2yr#ai+(yJ@{(;B(S~0 z?f#QnLx{I5_2SHS|(DOf|Uz-*(hCwL8@15C(SqL`{gZQROMhAvVM~#Q2QE5|N7cp22X{SMAwwH^@kWVAVA=|S-9pWCL?D)QCfkKWgKhoR8^q41n9mve8wQyb+~~sFB>?arw@lB zAjyhJ8Va9Q7{#)n9khC(q66qL_xj0?x!E1MiDLXZr>0I=h7HvOE82uYXi;IvYeP1cP>GV`YRodN!MNZB?@XdnT9U&;{}H%kCS z5(en}6KjpJhW@6HW%Z9P*!o9Ob2w{gnFRsPO8nJBVL3NbuQ<<&2+4YgY;GcVF&jn1 zPq~5x8TQK((q$Ql(|_U(i9u=cR{=k%;i>WQ6pfd0B+B>A_L_Q4u{>y^-c(6K_GXBp z+Hfh!PQ1c#^q%}--7l$W1QDeI1@Vzzne~`UaKBJc+i#U273!H_c{v!W+Z0f{a{5dq z?G_%uBKGIZjqVmMzz#nXJfNC`Ny1i4)If|p;5OknXCYKOgbaqLJ_!9DbdfT37A07Z zIVJp(KOkt+Pr##K7i?h8K7mx!Zm$8%`H{{B>96KX)87+SVDrwlbq@zZJ*c*96C4bs$yl zimgYD{!DCh(4`_^63}V^uV7(?5>pMZqJW0FL_;L`Q*33bAY)r5O&_-FJi@b0BYhV@ z;Ve2#@qMkEEG;!IQnm(jr01omBw0;8B3p?QNniB#ihrbd-yJg~e&>cPBibOUUrN}* z2#2rg0<%5I#Wj@33Is&ox%>W}CPC1_K>hYc)gfZ?jgw=o?hi*)0*;}SSb2)XrbfFF zSSK#s(2sIjD~fzHbK!AQavX~M6I|!g~x?hSVH!Lwqm6^N7&bP&3eYL zn;eIBs=V=oTNzge*#SAtqa}u_qplF_;%GzeZi@anj%Y=GiI#Z0F*R}A;48&3k?T=w z6$rG}y44Qbv^eg<$42n&$h%qDQBqWF$#-LE4BC{%r-@dw)7EpL%8D}ci9L2s${ED% z$1y?InM5e(>De$NcxsWzV7uX6cP8ak=dErI_)?tMA|X(pat;Kr_iAmU!f?`T1n|C` zxA|Kv-pk{^rYg0#^jf~0)|I)^HiSLtfnGSoV~A^mu6U%;EkXuu&nb{kO)&`1bvNd1 zaympHH|rEpQPL9EIj- zHdKiXX58wXVi-dj`;E5kex-MY}N$uqot zEmq}`o~%J!80(CM`Z{{JiT-DZJrdbXjWIf4QbYCe^4PWwr*&fRl&oYo#d;G>ZQqHd zeBP9P9l*T%Q|BIBVN`SkMFfPFh~Rqc7{#zk&wbbDzX~)BUtu*s=;}EK%h|b-yTITd z85rHTPe)u?NZnA`Bp3)N&)bc}rDgFLp}_L_vyFx1RT8o=ZE-j}14@n1=he( zo%cYTI+^219~$KeK&D(81E8S^y@xUb()nsAfW`nfq>C?rxsfS+R6TFx959)qU1it0 z;D3IHC=I(qIHrvD1-%b?WBEa1@MOh7olmFwY|%&MmShTzAu6og<@iu;$NY%s-CNWf zt7Z-$PlyD~O#Z`Eg(aE^%duP43H|lhaIdl02%H1}<@*AqgCW2Bh=#c^82vy-N@L_R zwY~eqc01Ci$lR8mW~)MOL5knNZ%2?+pL9-E9t>mebi4X~bkv^bLX8=*q*d7gp>HSG z2C&RAYsWZmEfW>jOxq+iKWt5PS3k1 z$PGmsOu)Roj-VkNzj%QmKC|N(KE^#QHTaA1v9hXNQJ^#&WsAT1%)XDhtkvOJZ}ox2 z*yrLC44G}_JN2@VfBy4R>%}C54e`+m4fdmzGuw)F$3R;$EHG-+S(4$t+$@ND2=`oG zl_Ll18+o6Rg{jwUJ-Y7SXCeXm=<}6{6Jo5I;^03mY>?FE2E5GFYcj;W-?Nkr{ZGJ= z&3`tin#)Qc_R+x2nHFAoD2{}6TjG(Su=>Vxkwn@5_adni>}dT-5mC0X8YLrPJ`YxS zPP#b1lg2PexXK7Ki{)+^l*wEhMQ7{oicPZJ>|O~cXGk4V2sL|F?0HVEa#0M{Ce@-$ z3fG+x{N2R_9*0Sn_$zQAyS+(ANSEAE#xxDKzzhr9y#bqmC;0mNM2MGXJ_nxc1q-^3 zt8v^GkMkpU)vYC?_q8nIa&`!+{lgipOX2r4=h}Q76oJDWF!_K?hM2|ha@EI<(&Q8%o@7OrP?Y(9fDM{iXPV|u;h6Pi>{#NI30q*c64IulG@Dv-$IEk)xq(%0zrNlh3f z1Yf?`%^4g^La!S~&m1k6uSrrKNN&HDTh6f+^m#7&_b3eur(@IG%;LCYLWMH)=Ydre zd^3Dw>^^BZS<;i@b^b!UaEVmL$ct7tQ-k^v)#CCYCRsD6vQazQFsoRslrhYMEotaC zJR@*=Wpdjvry<+R2W+=*P|NQX2J7{>)!Siy1vU6O+rCo2c`bJnZ)*5m!y>}KxCOa2 zFnJXvk&ekT5Qmh{wjqi|Iw7C(oX4?Y@8+>Uxtl^15TRvqxQ%D5ol>#(w#2)Z+qjo>!r z7m37iG+f0SQn*gd-fb>>zBlF-R1Xr;M0oTtPHl95s6aCGu!GC0%fKX-_+KkYaQ_?x zFyF;zY;a4-1^K?$?evNV_kSy+$u-JfT$jSc>UMV0}2JzwkIL2fa*1;cN+UuI=Z>5_{@J5MX2^HICH z`dXD!%#mX5sWNGqcVk5t#T;X`e5o_oT(kEs7AW7s}cmg-|j1}d&3tW9 zx9337Yk2la6{69;JI$7oE!V-H{d3KkO)RoCt$59p3-9Ub=5thz zjBU%4!K;H9RR;D1QF6TZbCk;<>hc+6GN=Kk3+Aw+Eu4;h&#dX~9SfzRSOSn&t1dmA~^-@MZ^44rIM0+p|q|KnN&G(7yY6uF9J=4Rt1&CwKA-@+Fz3oRqAt} z_cdNmwgMNd!F;DOdLgVsN(pos`Turaq0_ZIDHpXp|0b6y zu||v@5N$X5N;iMgeYAtyWN^fd1e-&!MWaL{QJ8m`{RDobE=QuJ?Q-mTb5B1h|L5{I7QX};@!kRAvFB3RD(w@B%`8Kbvz5c#wPfD^)n>GyY?oC+rSUK&|8xpj z_0b5UILrP!MYXrXl+<7U5{n-hcK|OQ+ zLnv0s@1wPjWawtjKqJLlFsYPR#scVSoUBp*RnK%hA*FVsEGZFq|rH-+s(Z~N3xkcS&voZ5kM_dEOVo?~bpNo+f$(6F6F<I^at zzv{DDuuani>+-&s>T6RYG#mnTwsAraTgL-ruVTCtM*`OD=2QC5<8>=kFtwZ;QbLXF zldg)nij?FcZkjZ&0xr#JL}db53+Q6ys(;X>NC@Rf(PTBrUl0m+7*kOsCID3?Bj1E8 ze8y3TiCv(AeeqK@+pMky7^k%K*7jYWJ@kI949>ao$#m8wS?t-Jw7Xjf2;=lraVY#J zr6_2s{4B};NBSMa{=NM}ZcJz6#X#;Fq@HFI}pSyxZ) zhi_7{?xBOZu@mhC+-HLlldlmqkMqH_i=Z-(v1DLrY7$6}PCj|dm81FfF&PG}`Edst zkPn7~FbwhlO+Mv+MBQw%hoqSc^$u`yvEdneyc(vzqHbp&z3#mlzJ0l&LZ||5Z4y0{ z#J#_0pg+g{?)bqVfo3R~k4VKj#s>*Ss|j#Y zVsD1KYfTsWgx3lhinL$TqD+Jg-`G8krd$&7%S4L)DWC7M9N8IB3$YIEboeA(A^)bd zzHixiz2B`lxxL?Iu_nl5lQEUi$J%7ZQ~C9-I6JTVJgI*2W?-d$v*`lQa|oO5X=#*H^v{D6)(*E3d&&*fE-Mf)qKc7v;5(Ob>AEh>TU)Y`wPqN@EeC z>j(uelQH{-J3+;!wtIH3F&a$i4)LAonBehxcksU^K%2&nyNVQzl~`-ZjmCfD3sOq^ zI6u0TECJZ@*@^L_wcNLNkjsxvAk(JuKW?|Fhg`_Clkfx(H|$^k6cT}#OF%RhjdllS zDEjLo3=w8s*7elsGj+$JRAlcEd4X*tvaa9CJjJq|IwOC+j(Wx3PH_CUcLh;s1Hq4$2!gt4Ewi{Bxxjm*#wriI8?W`KTtHh?;W%hk0tJu6Vl4kQVg1Dgc`Ax? zR{4673xCr$i^!>vMVY;g=MTf<1qHr#V-pd@)IwJjMYoXV>;D2eVP86%Yg)=?fy(h@ zYv9u}JqyePO@@4wfXQ8b1X0>~lar>j@LXPcD!N=zbNl1=O~$PINOhD&JHNeF$DB7j za3}d(>>s9^;^=*O9NZJ?FymfW$+4?8Lfk&}O7M3u`n3jrdO-MsZMR#eMo^RPV!12Q z5?vVc9@FTAk~PYD3gW#mxOg$pv*C1osczW#vjFfz9PBGUj&<3~b%~DmhQfW={SD%E zT!E5{V}mFTV7kg*%iC0W&@QlK48Q^*(?x%}L5b#S(XiYKXVEn;A_yRvxaB7r<6;|? z{|3M1`pSBs$L>Q&eZY=?VXrn0djsott+)|h<%;T|fcjeQbTGhF1@SPT_@1w0saah< z^>;kCkSuK~CN{)bZ#PMhYEk&dbAfFd{)HoVQ@5CHILh3mY=F;v5QaHJ;=7m;y$LCX zSrKz;b6FvgiWd3JOJR;iV#K2-_Ox|=5Ef+~mM*xG@UM$7YwO>vGg%OSw!TL2PHlq7 zvBNq1)sV=3F!<^wZMg?7vF&R=4QY*$s!}KWF&c@Wm&$veBo}g1fNgRElIHeYpvlnYs7qUPBV@e&w}a&RMBJ|bXi_p(e6LLTh3^g+snwqRqt@- zGOw9u@K!mXU!Kmt8@HGhZqP+k6KkUsqDVluK+NvrQya~>dRbsFZnc%ULfuCFf+Mwk z|K3Z=oI_)TwtCYSyIKP+e1hFljH3jBcwnb%(bV(kI0GB?_;a;L8CQ1f=442LP2Rg{ zdv1*D&6cfBDdr>7zR&rn^S&V(3vh6${7;wvy$u*Yxi9HDSGm!>dSnXKujZt~5B`T(i;UQYb%h<+w2x+D+i`fL5Lw|kvR~U_yxx})j%E%XS)Eq;c(t5;BeUafn z8@w?2_NbdloU+ySkiuFV?kj0-aH(a-7+z5U_!%amVe0HIhRVc8`0JL{8azu zc!8BIrcbmQ!z(-HUrls=oJ@B#F5Z(XRI`8MRC5@*B=IB6Hl?Q)-9vA50#7$33kjU4 z2tuwyRih(Q)wP&4wsfja9O^M6b3Soj@>u0#hWhT2o))fr>94D{U92A(?gc-q385Y{ zI@#ss2^hUFFWh@XZ@c6o^sYBtgh-wj`Hm%}BD(EjBz<3=E>~SHVLG){Tc2k7kvA8T zMl*~hz!|OQt}f1TzZ0$%kRN|LfFu@TUtl;iH`p3#m#-ah=%}3L#I?6>V!7w_@jrBD zx&DH%YSYw9fR&`7pQpL6T3zGSOzulx&gClCmMf9v8#I%`Vi(Foy(SK?aJVVH46VlC zY)!T94oQil*alUa?mOzNRxDc z#~#3{%D!k1kokB$`b+G4b?>kTgu&;+1EGGSKCgpZ2Y*dg$v}s05GPMrofBevo}uE# z=-}AP1@W~JXjgQO6u-Fjk0J0xukVGPOb&I_s!-Yhr73GVh3}qkqW>n zlwae+;aerJ_-7AvfI*c7uz9{eXD9&hDMD1|ep&m*YvA%_wy^9)w0wDFdY@qZEel3e}%;@R7u40rV?mg+=PBy_O={6_{jWchYI`a zDnc$1w#e6IPbqwQ$+MQe!H?DfWLYO8JQ8w0!?XN&;Vv_~&Ea3<=({ZsgLsqYd}N&g zPf2Cme4-EnmG-lU+(_ z7XWr$KmKQ6JbCVUQ@8RAG)al}47lTZ*l!L<8EL}{%g(cdCrtGefw}viXS?JpyPJo? z4OPfJ>{>h|x5UlBe)Ibs3`4qwAB@9Jz%PkG=_jHM54P2cE(}t-6&WHySWxwZh&%Tu zn2$#kJa>Afg!XgadgTB5sMs=9A7`-m6MpSz2oTo!ZH*uGB~|V_IH~E(dXWc@>q5Fa zdr6Pr;36r`75Yc9+5*JGPU{;_hkk^l$c}+KqBH#A*l9LN=wdB}Tw#qjh9pj;v!Jh0 zeqYx2<9FdZ!U67@Tw0a+rsf1D(+xQ28j0DUZ9Fuel%4J7Od}YzB}7=I#M%UF;fL!# z3DVLJCa6U2dueVSLcW~%6dgrwU}yw|q=L7K3HZ_|mM+@66otXqINz3YVoP|G6Q};c zxNDf;LMN;^ivF7xjmq{%yyY(PAgQ^vM5^gFr8#j$ya)4JbRf^d2-ZLrGQa5ih6U5N z|4YX@Db*Ss@h9m|w>=J+715jy^RlnvxQ71@`u|+xJ7J(~uUzIB1FIb5Y7DZZ=iutH z9LEf80cHyWY}Quc+#;#ziWwXC%5o;%|_ctxx3<*!JyYz5UWP)%CG5)DUB|`EU5)9`H6Tpi{(iUiUB&FvuJz*=I z(^_uT@_2DLcp%}@E`NEiZkYbF@%bw`UxL_nA#mE>hdsd}M4SFL1u;2il|{a1JK-50 z(#FSLtSD|^*kAdt3!Gv#Q&>Z+J^dbnYU(ruw`a&Z*EI%z%Duic;8j{jfTLV3NBN~@ zD@M*DL?Gp+VJ33c$*XJs9L%u4b|Rf~#9m|n6kMs{N^xzOarUOLL$gT`lxOvr{qH;e z<}!89dT5>qDgsm`3eyLcbrI`RXydI4#x+d#ottE3IMT9@?&5E)44rtkLFcPeA}h(w z>l!$|DQac<`6#aNN<t|@(OR)ZcvV8l=h%b83i#vnFlH}MwQUEA6>^SJ&rjb z4;EUJbe-_Wp4-O?D_!$l9=2DWRx$3ns|%>lK1Bg!#?zeVLb*c*J&UH0{q`!k`Vjo< zCO^>fpEsrF6N7;-*{MuKGJN8*9@F*aSpL9dEmcTqtPvS;k%*KAH5y(zz6?(6a$aGk zp$RW6FZRw^rt_~hIm_k#3GiidDH3e(321TB#B0&U%Md;fV1{mlI~%k+*f_fQ9e?Kl{>-4sBB&X|{xY=)Om;K8O5>3@;Us_W8 zvSvy>Z`#s%0Iu)L02+NBobjejwp!GogqP~gR?l7gd@LvX&xx{gPK}DxNdi6f@2V!} z0?%%a`=qjA%Ua;Ar+m%Dbv+0kM=wFXb#JD%lK<;KWToX%A7Uks&VhuwDVM&X7OND_ z{*3I`!3=XuUG?UZzQ+>E>-Uhak07de)=C8Fs<**E7eIS+jrK5ToYIsV0`{xYS58)a zIDN_O;?2jd!29ILAE(TE$;<)KN49#;!+0%VBgWiUD*WD(1jg$E-|=6-=SLt5zVY1J zqrn+E$|`$McYPTOB2q_cU6l(+7(PXe(^4U`^}&@84O=Nb79Wd$jWZRvbJnU5Hp|D} zolVvURN?#&PC-W>x!N}45dc@J;T}MXDTw(%5~|q)L1FgJ%sIjr{#?R*6VPt!gzBBz z$@5prt5l8H_dR`(YxupvG%JTT)_u=6d> zu)z)(taxMs?IZ5{7}>0I%_EaZQIc2emm{sC-S9iprnabu_qh$I3fG)@A^<*BsL65Xxt5m+&x4k?N5}Eh;F6N zSuslr#7o|NbIEB)V3^5?j%9YcRb_k$sE$ zHm9e4d!H&bDPCbA$zLTg4dXySjA4bW%t|DSrfuXer|iU?Ob-vn@tZ4MMM@D+a?)q| z(g|Gz8UcE>C4foF?;XIT^i#>!d2Yu081^uFEO7ZZY=EqhT_#9oW9dPW2(4G^!qS+V zyQTHJ8D5T4Vu&WjHZpeJlqpsa8U#zrGs2#PJ>hCcJd(#qo^vsg;3(~%QgCUqB|W{a zEk#>)%)_}p%%ChZ^N1})OxtUz#42X9?H=r2H96hYV=3m=(op~A*mA@67Px7q^ks64lUtFaEXH8si*CE4IL_U;)*eA~Gn=2ZooU*gZR zQ40rlToNCY438^3q@JVt%#1_4l)RSic}$y<#9k#glNz=*+pXv&)q?q6aEAB_g}r46 z|7suCIAM4L5-mrtfULM2oJNSVxS4W#&zgd|@ZD(NIXm1gu18i2VN`|(43d1{Rwjc> zVAywscxz}A=@6L^BM3-LHPp%W%qyt&_rJ-EJpQp|$w{NXm(#VfRkh;rvN_GRVRYi- zHE1I>ofOOtn9ZGO*+NzJH@nZ+P(2<jfu+cti^~XK?gzL*4Ou~37DSp#>>_*9ADnBu+k)TO;q!n+ zZQolxK_kB#Fo)EXkAAgZlnF3-K$C+IYF1*wY=rw?^e3_{pIvF|~b6-8!{^C7s9WgK#y%DZ8U z5Qxiove}bz{318i<+2ME>_7O%DLo?Qm#JAs^T2Q02u0TuJ@Xn|chN}83&?+r6N%!M zuyIM+I|jDVAQWnbdL0btWidOAagU(|f9B%dzq@n$@%{GtzE!|1T$3rvqSV&4WdP-% z8)Y*?fbG6(=+_Ik3A#e-v)Hzr8cZbaqO6$gCVRW%!u9af!E18+$wGmi<`j|X2^hf_hRF@ zU!h{CtEk;}`K3q=B(3PUS;7KSvm(9)l~8TveZG75!vRi#g2ODvYBY|Bp1A5!tJ4G$ z?r_5|tah@#UmwVMPcsH(mt2T`73?}N$-X6}&FMViUI&5-vTk)A)6RdtPH=86kyr@$ zvfgZ;dOuh6bVkg8+_Jg|KfO*J@dW_qBHgQj3;e*N0p}$&322t76Ux=O;*G_~VGMTw zl;h;!o;2_EcP$>OCq2XK`~21}%7^?dvG0W})yGCxc^8540_nM)^bp+3?ZIV7atB&B5UC z%%eP6P^!D@^wG**v;%DGxD5#QdFlMiZ9Qvm9D|LESFK$wXGcnY-6szvuZ=z}v5{wq z(=*Nj+rJ3%s(i|uEmp?`Z1qhPC9#K{gVfVsR66#T6#l}}!FXi|spK0PvIdfN%{t+o zL*F&*l$*%yT>!JKK3im)K=r2pjm8J)5G(9mYNv43@FkwYQk|q3EL$y(m$vBB-IhTo zG%+qXfZh1ERIB7CAoNH5YxwaXsoe|u?2|M2JYAtmKN`(_Q_OO8y-yF;ZaP6{6GB?P zn{gsb;zONPADM@7({8NkTU_XX+HhI-$k(v z_oIw2t)#06u)X;$aFT0uO=%IN!g0Rc_ae66VUAoslLyc%Cyjnd$i$}Ra{RJ?aB*Go zsoS@jHBKgssl}@GUf)tt%&tYMr*8awbTbb*oJI+gLbDF@VI}j1i}9`FTMr%C^b@t_ zuRGZHAw)}x_a2_zr)ID1>$N@1Idy5Qrw1%>rNL@IWR)+L@=rVzZ zr)gN4$a@oMt+CEpnpPWFDT4Ce6ZRrFi*3z-Oh{UNN#%-Qv51FvTo+A-K3|bH8Od%; z`|O0I-z3;C?y_Imf5jHxf=Cz35Z*ZZm%Hb+@YZm6oRI8z8(7_`>m>&2zxiu>zn=~9 zA#fFj*Ti1%P#~`QCo$O0l4{l4Ne+7)450K+!a^yB6By{`b*tEL%P z=t8PH`8jFmBjUzx5n}Dqk`>vvIKzz?{(PJ)HyiSEfPZ#g5#ir;yeh5R?81!tMackt z4Dl_IeZBNs?F>E~fd!V=dLm{uwM`!F;5Uc9-q54&KqM&tk!V_u<%;tqQ7I%{>?)r) zyRBNDijs+CSnv3AjLZh7XhQPne~h*ycWssH=6L@5sJXUy7qwY&YX@uwm^4bE&ql3E z1Oo1)=UJ@~#(!dA2adz?v7)pz!FId#X6~R+rCQ44xggn$5s;&ht2~G-S^Zo5dDL7D^(O-z4 z)1WUvZWq5|J_bitA}#<2llBJvb>IM<^%)fWL+JO;hn-#eS)0NZ6fXj`k|U^(NjC^? zvrcr~)d=hkSq?M($Hyl$!5l(h7lF7(nEG0pO51W| zISP8=`HJr$KDV9)(MZZmAWaRoq70@&nF=CXEL}p)n^UZB2i5u2(V@-`M5WE@obrf7 zDBE4m6u%E)xKG8B1rciz1%Zj}wyg!x!Owm{DlnwKF_d*gW4M)MtA{aHrx30?jJP-1 z(^_uFk8(D1HK>O5zU$;|;<{ls=+IoT;a`E=AX4s&@N+04l$<)~MMFmsd79%Rh*Jo# zT?R(QWGP9Z6nd7(K}60Xv~M__>|W)ezucOr_XWX_(7$fuLyc!d&?U7~v*gRuDTl_r zLPxEeK2Z^SEH-u;GIRY2a^pIoi~fg7L0t12h1C5|?X<~id`9KINpi&{!ScPP=6mvs ztRJ9M-&MnUs5u_eeB z0uR4$8+v?gABwI^rbhTEf>zvA$JVA!--4ret(sCuqy8ZL)!JW9CG4YkC{~*^eV}AN z_6^z-#!V^xYYIOUUu5<~Eyt|@t)kAX@Q0KVt3)(Mo0Rc~geOOsRiv5)sHO7yA%O67=JGK9GRtWkm@;knNahjdy*9Gqi{{}7#WV4U~F>T zoYpIg6mubV+qGorDtXALGFDEFkKLLJX0Hev(vF`4HhDb9231>pX^Z^{LAXrsH@P@u zVqu5p3(GROg&oB3H{)0m_6$MyFdz60Bj!ZC)jw%4ggXwHUo+p%NR5lBq0xsokdP2z z&;JG&wn5=e{h&Y-TQdI%Ir`Dkp-T0m&qY^l=UOghp-W|_H`~hs zUscBQAS#$p!G$I$dq_~Nd z3YWT=_4=S}{jR8DsCpWzTkG+L}XNGRvFXlTMhLs zrIhEL()*M>fdXo_GMz#cX!DPh1Wa|3i-_w-@mTxb{Pr4~V`KV1K3Kb|n2e4Bi~V(9~JN8T4N4pqmep!QmTGdE5Gxc2BIxDM@J z3qO6N$UH64f}tI~CwObp6+%a-1o&3`K9$ugkKa0@@5fI*xKfp_few$4&2OGW`opYa z)R31gf9Hc8f`$s;M3!O>2JwSdSepZ2%ruteGw?^}?<9T_eCy%3?m?8aA||tkd(epM z=3(gJFY08!6yxd8_9?LbA`HRKjztt94yLA_Mh&caHW(&cdsn;!o3$9D94*K>1 zaEF1}y1f7h2wvVnCa#5_uPBu{9I#MRjr<|d@HKMKv@`of6N0D=&aTrnHkG8Vo!m^D zz;W7g(C2MDu9}wEtb#VLulaY;W0s4h7N>^RFmvm1hJUx2EyO~Mlp#G!`eZ5a2qt$&T6jshd^uz-Fs($hB&JA=b=G~r$r;;(uUm<$ov=w-sJ%;SR9Tgk;U2(#dJ0U+> zWxkCy3lQOq@tX_0K@zOH+(o$;ePLv496Ds+Q#lQGZKO^D_hGg9aAE9MNy8D~%SpDL zH2>NuTWgfqUCyd$_KeNFkEcsFh9pHtNja+^p}Aed$V`x$l4vGA%4y=en|96V<>|@K zY5s+^o>fs#1`S#@DPDwzD<_%xLI{m22Ur5XTqgm$c>>YXS0=qpO1c8Ma(VP0=$qd+ zKZ$~u2H}UNWfqL!vXQ5Q)?YB-$$SV@wcX@uATkOGfA}yUP z9?0dLF{`DP$A7Nxxosctk%6t?xs5Sv_nkQlfQ|aYXB;3UHFf&eUbcHY&K*CL;_fwy zhk?HEXl${DnNgv>G=f~Hk8Dq6wDj}}gh(MJd@FO~b_@1NbT1cow$87Mrka24j{8JR zni3*yctnHYxltGnnaQMjrCbkfefO~X2Ab20F5k_ebZEYiAxR2JqNWo)!sqmMm@i1C z--8q%3^K|qUDrQGM?CL8dyTkbpuF!~C=e>{uf>gA-oqO;@kr1Sk?M)&#Zkv1$k(Wo z_Y*-s8&YrzFn;&r{|sd`{CIyeD0>3k!i#^P>gKiGGloENU56EAiC{Bl%OoP61#j~- z3CFC_GkQ}FZ``+I3SFi35xE<2P&qOq#(M>~d#W(O#Ct&#J5S?!Y)L(1$44QDZTioB zqe_q>A(CmK(=XvCDk((>&q3d)KNd6C?5v=aeH3cU1CED?cEc88u(#5$md>+#6K%lm zQF=$k68GZ^mp1R6qXrFlpD$)@d5Xxl#EYz!i5~6

^qgD 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%0Aw~#qK_AMl{ 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

D#i}K(4{lAiAJ(tQ}OUQ;s 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 diff --git a/app/editor/yarn.lock b/app/editor/yarn.lock index 401b8c6091..0e57b65dab 100644 --- a/app/editor/yarn.lock +++ b/app/editor/yarn.lock @@ -12209,7 +12209,7 @@ __metadata: sass-extract-loader: 1.1.0 styled-components: 6.1.11 stylis: 4.3.2 - tno-core: 1.0.29 + tno-core: 1.0.30 typescript: 4.9.5 vitest: 3.0.7 languageName: unknown @@ -16674,9 +16674,9 @@ __metadata: languageName: node linkType: hard -"tno-core@npm:1.0.29": - version: 1.0.29 - resolution: "tno-core@npm:1.0.29" +"tno-core@npm:1.0.30": + version: 1.0.30 + resolution: "tno-core@npm:1.0.30" dependencies: "@elastic/elasticsearch": ^8.13.1 "@fortawesome/free-solid-svg-icons": ^6.4.2 @@ -16709,7 +16709,7 @@ __metadata: styled-components: ^6.1.11 stylis: ^4.3.2 yup: ^1.1.1 - checksum: 277dacbb5080703241317cb524e6faa7f7dd6e9af7b8bfb7e247d72f185c344cf2a486d6349960a2cf239c06f41c1124242d3e1c962ca37cee9e57de70e2ec62 + checksum: 33f6b3545abd77bf5f34848cf0a25d240e1d8ddfd4e542fa18be357977e5d584f60668eb01c2d5e3f10052eaec83366ee9f07b2c245a9176bf7b47a1bc9952f3 languageName: node linkType: hard diff --git a/app/subscriber/.yarn/cache/tno-core-npm-1.0.29-b0ccc3fe82-277dacbb50.zip b/app/subscriber/.yarn/cache/tno-core-npm-1.0.30-168708be52-33f6b3545a.zip similarity index 92% rename from app/subscriber/.yarn/cache/tno-core-npm-1.0.29-b0ccc3fe82-277dacbb50.zip rename to app/subscriber/.yarn/cache/tno-core-npm-1.0.30-168708be52-33f6b3545a.zip index 3204dd13bbe54f2e24a786dc9b258b846c6b3db2..e44eb0e7768b5d2b225eb3b53b12e09932dcfea1 100644 GIT binary patch delta 53222 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 UecNlRZ>x9LYb!MB=Yi1w0VxS+p#T5? diff --git a/app/subscriber/package.json b/app/subscriber/package.json index 52ba193330..12d77683d4 100644 --- a/app/subscriber/package.json +++ b/app/subscriber/package.json @@ -48,7 +48,7 @@ "sheetjs": "file:packages/xlsx-0.20.1.tgz", "styled-components": "6.1.11", "stylis": "4.3.2", - "tno-core": "1.0.29" + "tno-core": "1.0.30" }, "devDependencies": { "@testing-library/jest-dom": "6.6.3", diff --git a/app/subscriber/yarn.lock b/app/subscriber/yarn.lock index 52bec149b0..3837d403dc 100644 --- a/app/subscriber/yarn.lock +++ b/app/subscriber/yarn.lock @@ -12042,7 +12042,7 @@ __metadata: sheetjs: "file:packages/xlsx-0.20.1.tgz" styled-components: 6.1.11 stylis: 4.3.2 - tno-core: 1.0.29 + tno-core: 1.0.30 typescript: 4.9.5 vitest: 3.0.7 languageName: unknown @@ -16397,9 +16397,9 @@ __metadata: languageName: node linkType: hard -"tno-core@npm:1.0.29": - version: 1.0.29 - resolution: "tno-core@npm:1.0.29" +"tno-core@npm:1.0.30": + version: 1.0.30 + resolution: "tno-core@npm:1.0.30" dependencies: "@elastic/elasticsearch": ^8.13.1 "@fortawesome/free-solid-svg-icons": ^6.4.2 @@ -16432,7 +16432,7 @@ __metadata: styled-components: ^6.1.11 stylis: ^4.3.2 yup: ^1.1.1 - checksum: 277dacbb5080703241317cb524e6faa7f7dd6e9af7b8bfb7e247d72f185c344cf2a486d6349960a2cf239c06f41c1124242d3e1c962ca37cee9e57de70e2ec62 + checksum: 33f6b3545abd77bf5f34848cf0a25d240e1d8ddfd4e542fa18be357977e5d584f60668eb01c2d5e3f10052eaec83366ee9f07b2c245a9176bf7b47a1bc9952f3 languageName: node linkType: hard diff --git a/db/kafka/migrations/U1.0.0.sh b/db/kafka/migrations/U1.0.0.sh index cf5bef2831..93b429b661 100755 --- a/db/kafka/migrations/U1.0.0.sh +++ b/db/kafka/migrations/U1.0.0.sh @@ -5,5 +5,6 @@ docker exec -i tno-broker bash -c "/bin/kafka-topics --delete --topic notify --b docker exec -i tno-broker bash -c "/bin/kafka-topics --delete --topic index --bootstrap-server $bootstrap" docker exec -i tno-broker bash -c "/bin/kafka-topics --delete --topic reporting --bootstrap-server $bootstrap" docker exec -i tno-broker bash -c "/bin/kafka-topics --delete --topic transcribe --bootstrap-server $bootstrap" +docker exec -i tno-broker bash -c "/bin/kafka-topics --delete --topic request-clips --bootstrap-server $bootstrap" docker exec -i tno-broker bash -c "/bin/kafka-topics --delete --topic ffmpeg --bootstrap-server $bootstrap" docker exec -i tno-broker bash -c "/bin/kafka-topics --delete --topic event-schedule --bootstrap-server $bootstrap" diff --git a/db/kafka/migrations/V1.0.0.sh b/db/kafka/migrations/V1.0.0.sh index 83ac9d4384..77ac9851b5 100755 --- a/db/kafka/migrations/V1.0.0.sh +++ b/db/kafka/migrations/V1.0.0.sh @@ -1,19 +1,21 @@ #!/bin/bash # Topics for media capture -docker exec -i tno-broker bash -c "/bin/kafka-topics --create --topic hub --bootstrap-server $bootstrap --partitions $partitions --replication-factor $replication" -docker exec -i tno-broker bash -c "/bin/kafka-topics --create --topic notify --bootstrap-server $bootstrap --partitions $partitions --replication-factor $replication" -docker exec -i tno-broker bash -c "/bin/kafka-topics --create --topic index --bootstrap-server $bootstrap --partitions $partitions --replication-factor $replication" -docker exec -i tno-broker bash -c "/bin/kafka-topics --create --topic reporting --bootstrap-server $bootstrap --partitions $partitions --replication-factor $replication" -docker exec -i tno-broker bash -c "/bin/kafka-topics --create --topic transcribe --bootstrap-server $bootstrap --partitions $partitions --replication-factor $replication" -docker exec -i tno-broker bash -c "/bin/kafka-topics --create --topic ffmpeg --bootstrap-server $bootstrap --partitions $partitions --replication-factor $replication" -docker exec -i tno-broker bash -c "/bin/kafka-topics --create --topic event-schedule --bootstrap-server $bootstrap --partitions $partitions --replication-factor $replication" +docker exec -i tno-broker bash -c "/bin/kafka-topics --create --if-not-exists --topic hub --bootstrap-server $bootstrap --partitions $partitions --replication-factor $replication" +docker exec -i tno-broker bash -c "/bin/kafka-topics --create --if-not-exists --topic notify --bootstrap-server $bootstrap --partitions $partitions --replication-factor $replication" +docker exec -i tno-broker bash -c "/bin/kafka-topics --create --if-not-exists --topic index --bootstrap-server $bootstrap --partitions $partitions --replication-factor $replication" +docker exec -i tno-broker bash -c "/bin/kafka-topics --create --if-not-exists --topic reporting --bootstrap-server $bootstrap --partitions $partitions --replication-factor $replication" +docker exec -i tno-broker bash -c "/bin/kafka-topics --create --if-not-exists --topic transcribe --bootstrap-server $bootstrap --partitions $partitions --replication-factor $replication" +docker exec -i tno-broker bash -c "/bin/kafka-topics --create --if-not-exists --topic request-clips --bootstrap-server $bootstrap --partitions $partitions --replication-factor $replication" +docker exec -i tno-broker bash -c "/bin/kafka-topics --create --if-not-exists --topic ffmpeg --bootstrap-server $bootstrap --partitions $partitions --replication-factor $replication" +docker exec -i tno-broker bash -c "/bin/kafka-topics --create --if-not-exists --topic event-schedule --bootstrap-server $bootstrap --partitions $partitions --replication-factor $replication" ## Manually add topics -# /bin/kafka-topics --create --topic hub --bootstrap-server kafka-headless:29092 --partitions 6 --replication-factor 3 -# /bin/kafka-topics --create --topic notify --bootstrap-server kafka-headless:29092 --partitions 6 --replication-factor 3 -# /bin/kafka-topics --create --topic index --bootstrap-server kafka-headless:29092 --partitions 6 --replication-factor 3 -# /bin/kafka-topics --create --topic reporting --bootstrap-server kafka-headless:29092 --partitions 6 --replication-factor 3 -# /bin/kafka-topics --create --topic transcribe --bootstrap-server kafka-headless:29092 --partitions 6 --replication-factor 3 -# /bin/kafka-topics --create --topic ffmpeg --bootstrap-server kafka-headless:29092 --partitions 6 --replication-factor 3 -# /bin/kafka-topics --create --topic event-schedule --bootstrap-server kafka-headless:29092 --partitions 6 --replication-factor 3 +# /bin/kafka-topics --create --if-not-exists --topic hub --bootstrap-server kafka-headless:29092 --partitions 6 --replication-factor 3 +# /bin/kafka-topics --create --if-not-exists --topic notify --bootstrap-server kafka-headless:29092 --partitions 6 --replication-factor 3 +# /bin/kafka-topics --create --if-not-exists --topic index --bootstrap-server kafka-headless:29092 --partitions 6 --replication-factor 3 +# /bin/kafka-topics --create --if-not-exists --topic reporting --bootstrap-server kafka-headless:29092 --partitions 6 --replication-factor 3 +# /bin/kafka-topics --create --if-not-exists --topic transcribe --bootstrap-server kafka-headless:29092 --partitions 6 --replication-factor 3 +# /bin/kafka-topics --create --if-not-exists --topic request-clips --bootstrap-server kafka-headless:29092 --partitions 6 --replication-factor 3 +# /bin/kafka-topics --create --if-not-exists --topic ffmpeg --bootstrap-server kafka-headless:29092 --partitions 6 --replication-factor 3 +# /bin/kafka-topics --create --if-not-exists --topic event-schedule --bootstrap-server kafka-headless:29092 --partitions 6 --replication-factor 3 diff --git a/libs/net/entities/WorkOrderType.cs b/libs/net/entities/WorkOrderType.cs index fa16cd685b..89d292005d 100644 --- a/libs/net/entities/WorkOrderType.cs +++ b/libs/net/entities/WorkOrderType.cs @@ -24,4 +24,9 @@ public enum WorkOrderType /// A request to process file with FFmpeg. ///

FFmpeg = 3, + + /// + /// A request to generate clips and transcripts via the auto clipper pipeline. + /// + AutoClip = 4, } diff --git a/libs/net/kafka/Interfaces/IKafkaMessenger.cs b/libs/net/kafka/Interfaces/IKafkaMessenger.cs index 07f18a0219..58769e22de 100644 --- a/libs/net/kafka/Interfaces/IKafkaMessenger.cs +++ b/libs/net/kafka/Interfaces/IKafkaMessenger.cs @@ -36,6 +36,14 @@ public interface IKafkaMessenger /// public Task?> SendMessageAsync(string topic, TranscriptRequestModel request); + /// + /// Send a message to Kafka. + /// + /// + /// + /// + public Task?> SendMessageAsync(string topic, ClipRequestModel request); + /// /// Send a message to Kafka. /// diff --git a/libs/net/kafka/KafkaMessenger.cs b/libs/net/kafka/KafkaMessenger.cs index 5482a39ba9..65f711929c 100644 --- a/libs/net/kafka/KafkaMessenger.cs +++ b/libs/net/kafka/KafkaMessenger.cs @@ -92,6 +92,19 @@ public KafkaMessenger(IOptions serializerOptions, IOption return await SendMessageAsync(topic, $"{request.ContentId}", request); } + /// + /// Send a message to to Kafka. + /// + /// + /// + /// + public async Task?> SendMessageAsync(string topic, ClipRequestModel request) + { + if (request == null) throw new ArgumentNullException(nameof(request)); + + return await SendMessageAsync(topic, $"{request.ContentId}", request); + } + /// /// Send a message to to Kafka. /// diff --git a/libs/net/kafka/Models/ClipRequestModel.cs b/libs/net/kafka/Models/ClipRequestModel.cs new file mode 100644 index 0000000000..1e7da45cad --- /dev/null +++ b/libs/net/kafka/Models/ClipRequestModel.cs @@ -0,0 +1,77 @@ +using System.Text.Json; +using TNO.API.Areas.Services.Models.Content; +using TNO.Entities; + +namespace TNO.Kafka.Models; + +/// +/// ClipRequestModel class, provides a model for requesting automatic clip generation via Azure Video Analyzer. +/// +public class ClipRequestModel : WorkOrderModel +{ + #region Properties + /// + /// get/set - The content Id to process. + /// + public long ContentId { get; set; } + + /// + /// get/set - Preferred language for the transcript generation. + /// + public string Language { get; set; } = "en-US"; + #endregion + + #region Constructors + /// + /// Creates a new instance of a ClipRequestModel object. + /// + public ClipRequestModel() : base(WorkOrderType.AutoClip) { } + + /// + /// Creates a new instance of a ClipRequestModel object, initializes with specified parameters. + /// + /// + /// + /// + /// + /// + public ClipRequestModel(long workOrderId, long contentId, int? requestorId, string requestor, string language = "en-US") + : base(workOrderId, WorkOrderType.AutoClip, requestorId, requestor, DateTime.UtcNow) + { + this.ContentId = contentId; + if (!string.IsNullOrWhiteSpace(language)) this.Language = language; + } + + /// + /// Creates a new instance of a ClipRequestModel object for the specified content model. + /// + /// + /// + /// + /// + public ClipRequestModel(ContentModel content, int? requestorId, string requestor, string language = "en-US") + : this(0, content.Id, requestorId, requestor, language) + { + } + + /// + /// Creates a new instance of a ClipRequestModel object, initializes with specified parameters. + /// + /// + public ClipRequestModel(WorkOrder workOrder) : base(workOrder) + { + if (workOrder.ContentId.HasValue) + this.ContentId = workOrder.ContentId.Value; + else if (workOrder.Configuration.RootElement.TryGetProperty("contentId", out JsonElement element) && element.TryGetInt64(out long contentId)) + this.ContentId = contentId; + else throw new ArgumentException("Work order must be for an auto clipper request and contain 'contentId' property."); + + if (workOrder.Configuration.RootElement.TryGetProperty("language", out JsonElement languageElement) && languageElement.ValueKind == JsonValueKind.String) + { + var language = languageElement.GetString(); + if (!string.IsNullOrWhiteSpace(language)) this.Language = language!; + } + } + #endregion +} + diff --git a/libs/net/kafka/Models/TrascriptRequestModel.cs b/libs/net/kafka/Models/TranscriptRequestModel.cs similarity index 100% rename from libs/net/kafka/Models/TrascriptRequestModel.cs rename to libs/net/kafka/Models/TranscriptRequestModel.cs diff --git a/libs/net/models/Areas/Services/Models/Content/ContentTagModel.cs b/libs/net/models/Areas/Services/Models/Content/ContentTagModel.cs index da99b3e419..099e057459 100644 --- a/libs/net/models/Areas/Services/Models/Content/ContentTagModel.cs +++ b/libs/net/models/Areas/Services/Models/Content/ContentTagModel.cs @@ -47,6 +47,20 @@ public ContentTagModel(string code) this.Code = code; } + /// + /// Creates a new instance of an ContentTagModel, initializes with specified parameter. + /// + /// + /// + /// + /// + public ContentTagModel(int tagId, string code, string name) + { + this.Id = tagId; + this.Code = code; + this.Name = name; + } + /// /// Creates a new instance of an ContentTagModel, initializes with specified parameter. /// diff --git a/libs/net/services/Helpers/ApiService.cs b/libs/net/services/Helpers/ApiService.cs index ca94b9ce2a..061c0154c9 100644 --- a/libs/net/services/Helpers/ApiService.cs +++ b/libs/net/services/Helpers/ApiService.cs @@ -1,7 +1,6 @@ using System.Net; using System.Net.Http.Headers; using System.Net.Http.Json; -using System.Text; using System.Text.Json; using FTTLib; using Microsoft.AspNetCore.WebUtilities; @@ -250,6 +249,14 @@ public async Task GetLookupsResponseWithEtagAsync(string et } #endregion + #region Tags + public async Task GetTagsResponseWithEtagAsync(string etag) + { + var url = this.Options.ApiUrl.Append($"editor/tags"); + return await RetryRequestAsync(async () => await this.OpenClient.GetAsync(url, etag)); + } + #endregion + #region Data Location Methods /// /// Make an HTTP request to the api to get the data location for the specified 'id'. diff --git a/libs/net/services/Helpers/IApiService.cs b/libs/net/services/Helpers/IApiService.cs index 96240deb1f..4be65e8c72 100644 --- a/libs/net/services/Helpers/IApiService.cs +++ b/libs/net/services/Helpers/IApiService.cs @@ -75,6 +75,10 @@ public interface IApiService public Task GetLookupsResponseWithEtagAsync(string etag); #endregion + #region Tags + Task GetTagsResponseWithEtagAsync(string etag); + #endregion + #region Sources /// /// Make a request to the API to fetch all sources. diff --git a/libs/npm/core/package.json b/libs/npm/core/package.json index 9d299b795c..48bb46a0bf 100644 --- a/libs/npm/core/package.json +++ b/libs/npm/core/package.json @@ -1,7 +1,7 @@ { "name": "tno-core", "description": "TNO shared library", - "version": "1.0.29", + "version": "1.0.30", "homepage": "https://github.com/bcgov/tno", "license": "Apache-2.0", "files": [ diff --git a/libs/npm/core/src/hooks/api/constants/WorkOrderType.ts b/libs/npm/core/src/hooks/api/constants/WorkOrderType.ts index 22be3dae18..fb1bec46e1 100644 --- a/libs/npm/core/src/hooks/api/constants/WorkOrderType.ts +++ b/libs/npm/core/src/hooks/api/constants/WorkOrderType.ts @@ -18,4 +18,9 @@ export enum WorkOrderType { /// A request for content to be sent for FFmpeg actions. /// FFmpeg = 3, + + /// + /// A request for content to be sent for auto clipping and transcription. + /// + AutoClip = 4, } diff --git a/libs/npm/core/src/hooks/api/constants/WorkOrderTypeName.ts b/libs/npm/core/src/hooks/api/constants/WorkOrderTypeName.ts index b063e8f9f8..410dd4fe85 100644 --- a/libs/npm/core/src/hooks/api/constants/WorkOrderTypeName.ts +++ b/libs/npm/core/src/hooks/api/constants/WorkOrderTypeName.ts @@ -18,4 +18,9 @@ export enum WorkOrderTypeName { /// A request for content to be sent for FFmpeg actions. /// FFmpeg = 'FFmpeg', + + /// + /// A request for content to be sent for auto clipping and transcription. + /// + AutoClip = 'AutoClip', } diff --git a/libs/npm/core/src/hooks/api/editor/useApiEditorWorkOrders.ts b/libs/npm/core/src/hooks/api/editor/useApiEditorWorkOrders.ts index 919ab5ced6..285d1fed8b 100644 --- a/libs/npm/core/src/hooks/api/editor/useApiEditorWorkOrders.ts +++ b/libs/npm/core/src/hooks/api/editor/useApiEditorWorkOrders.ts @@ -36,6 +36,11 @@ export const useApiEditorWorkOrders = ( `/editor/work/orders/transcribe/${content.id}`, ); }, + autoClip: (content: IContentModel) => { + return api.post, any>( + `/editor/work/orders/auto-clip/${content.id}`, + ); + }, nlp: (content: IContentModel) => { return api.post, any>( `/editor/work/orders/nlp/${content.id}`, diff --git a/openshift/kustomize/services/auto-clipper/base/config-map.yaml b/openshift/kustomize/services/auto-clipper/base/config-map.yaml new file mode 100644 index 0000000000..da3bad36d1 --- /dev/null +++ b/openshift/kustomize/services/auto-clipper/base/config-map.yaml @@ -0,0 +1,25 @@ +--- +# Configuration settings +kind: ConfigMap +apiVersion: v1 +metadata: + name: auto-clipper-service + namespace: default + annotations: + description: Transcription service configuration settings + created-by: jeremy.foster + labels: + name: auto-clipper-service + part-of: tno + version: 1.0.0 + component: auto-clipper-service + managed-by: kustomize +data: + KAFKA_CLIENT_ID: AutoClipper + MAX_FAIL_LIMIT: "5" + TOPICS: request-clips + VOLUME_PATH: /data + CHES_EMAIL_ENABLED: "true" + CHES_EMAIL_AUTHORIZED: "true" + LLM_API_URL: "https://mmi-ai-foundry-east-us-2.openai.azure.com/openai/v1/chat/completions" + LLM_MODEL_NAME: "gpt-5.1-chat" diff --git a/openshift/kustomize/services/auto-clipper/base/deploy.yaml b/openshift/kustomize/services/auto-clipper/base/deploy.yaml new file mode 100644 index 0000000000..10f68f2c73 --- /dev/null +++ b/openshift/kustomize/services/auto-clipper/base/deploy.yaml @@ -0,0 +1,272 @@ +--- +# How the app will be deployed to the pod. +kind: Deployment +apiVersion: apps/v1 +metadata: + name: auto-clipper-service + namespace: default + annotations: + description: Defines how to deploy auto-clipper-service + created-by: jeremy.foster + image.openshift.io/triggers: '[{"from": {"kind": "ImageStreamTag", "name": "auto-clipper-service:dev", "namespace": "9b301c-tools"}, "fieldPath": "spec.template.spec.containers[?(@.name==\"auto-clipper-service\")].image"}]' + labels: + name: auto-clipper-service + part-of: tno + version: 1.0.0 + component: auto-clipper-service + managed-by: kustomize +spec: + replicas: 1 + selector: + matchLabels: + name: auto-clipper-service + part-of: tno + component: auto-clipper-service + strategy: + type: RollingUpdate + rollingUpdate: + maxSurge: 25% + maxUnavailable: 25% + template: + metadata: + name: auto-clipper-service + labels: + name: auto-clipper-service + part-of: tno + component: auto-clipper-service + spec: + volumes: + - name: api-storage + persistentVolumeClaim: + claimName: api-storage + containers: + - name: auto-clipper-service + image: image-registry.openshift-image-registry.svc:5000/9b301c-tools/auto-clipper-service:prod + imagePullPolicy: Always + ports: + - containerPort: 8080 + protocol: TCP + volumeMounts: + - name: api-storage + mountPath: /data + resources: + requests: + cpu: 20m + memory: 100Mi + limits: + cpu: 50m + memory: 2Gi + env: + # .NET Configuration + - name: ASPNETCORE_ENVIRONMENT + value: Production + - name: ASPNETCORE_URLS + value: http://+:8080 + + - name: Serilog__MinimumLevel__Override__TNO + value: Information + + # Common Service Configuration + - name: Service__ApiUrl + valueFrom: + configMapKeyRef: + name: services + key: API_HOST_URL + - name: Service__EmailTo + valueFrom: + configMapKeyRef: + name: services + key: EMAIL_FAILURE_TO + - name: Service__NoticeEmailTo + valueFrom: + configMapKeyRef: + name: services + key: EMAIL_NOTICE_TO + + # Authentication Configuration + - name: Auth__Keycloak__Authority + valueFrom: + configMapKeyRef: + name: services + key: KEYCLOAK_AUTHORITY + - name: Auth__Keycloak__Audience + valueFrom: + configMapKeyRef: + name: services + key: KEYCLOAK_AUDIENCE + - name: Auth__Keycloak__Secret + valueFrom: + secretKeyRef: + name: keycloak + key: KEYCLOAK_CLIENT_SECRET + + - name: Kafka__Admin__ClientId + valueFrom: + configMapKeyRef: + name: auto-clipper-service + key: KAFKA_CLIENT_ID + - name: Kafka__Admin__BootstrapServers + valueFrom: + configMapKeyRef: + name: services + key: KAFKA_BOOTSTRAP_SERVERS + + - name: Kafka__Consumer__GroupId + valueFrom: + configMapKeyRef: + name: auto-clipper-service + key: KAFKA_CLIENT_ID + - name: Kafka__Consumer__BootstrapServers + valueFrom: + configMapKeyRef: + name: services + key: KAFKA_BOOTSTRAP_SERVERS + + - name: Kafka__Producer__ClientId + valueFrom: + configMapKeyRef: + name: auto-clipper-service + key: KAFKA_CLIENT_ID + - name: Kafka__Producer__BootstrapServers + valueFrom: + configMapKeyRef: + name: services + key: KAFKA_BOOTSTRAP_SERVERS + + # Azure Speech Services Configuration + - name: Service__AzureSpeechRegion + valueFrom: + secretKeyRef: + name: azure-speech-services + key: AZURE_REGION + - name: Service__AzureSpeechKey + valueFrom: + secretKeyRef: + name: azure-speech-services + key: AZURE_SPEECH_SERVICES_KEY + - name: Service__AzureSpeechStorageConnectionString + valueFrom: + secretKeyRef: + name: azure-speech-services + key: STORAGE_CONNECTIONSTRING + - name: Service__AzureSpeechStorageContainer + valueFrom: + secretKeyRef: + name: azure-speech-services + key: STORAGE_CONTAINER + - name: Service__LlmApiKey + valueFrom: + secretKeyRef: + name: azure-openai + key: AZURE_OPENAI_KEY + + # Service Configuration + - name: Service__MaxFailLimit + valueFrom: + configMapKeyRef: + name: auto-clipper-service + key: MAX_FAIL_LIMIT + - name: Service__Topics + valueFrom: + configMapKeyRef: + name: auto-clipper-service + key: TOPICS + - name: Service__VolumePath + valueFrom: + configMapKeyRef: + name: auto-clipper-service + key: VOLUME_PATH + - name: Service__LlmApiUrl + valueFrom: + configMapKeyRef: + name: auto-clipper-service + key: LLM_API_URL + - name: Service__LlmDefaultModel + valueFrom: + configMapKeyRef: + name: auto-clipper-service + key: LLM_MODEL_NAME + + # S3 Configuration + - name: S3__AccessKey + valueFrom: + secretKeyRef: + name: s3-backup-credentials + key: S3_ACCESS_KEY + - name: S3__SecretKey + valueFrom: + secretKeyRef: + name: s3-backup-credentials + key: S3_SECRET_KEY + - name: S3__BucketName + valueFrom: + secretKeyRef: + name: s3-backup-credentials + key: S3_BUCKET_NAME + - name: S3__ServiceUrl + valueFrom: + secretKeyRef: + name: s3-backup-credentials + key: S3_SERVICE_URL + + # CHES Configuration + - name: CHES__From + valueFrom: + configMapKeyRef: + name: ches + key: CHES_FROM + - name: CHES__EmailEnabled + valueFrom: + configMapKeyRef: + name: auto-clipper-service + key: CHES_EMAIL_ENABLED + - name: CHES__EmailAuthorized + valueFrom: + configMapKeyRef: + name: auto-clipper-service + key: CHES_EMAIL_AUTHORIZED + + - name: CHES__AuthUrl + valueFrom: + configMapKeyRef: + name: ches + key: CHES_AUTH_URL + - name: CHES__HostUri + valueFrom: + configMapKeyRef: + name: ches + key: CHES_HOST_URI + - name: CHES__Username + valueFrom: + secretKeyRef: + name: ches + key: USERNAME + - name: CHES__Password + valueFrom: + secretKeyRef: + name: ches + key: PASSWORD + livenessProbe: + httpGet: + path: "/health" + port: 8080 + scheme: HTTP + initialDelaySeconds: 30 + timeoutSeconds: 30 + periodSeconds: 20 + successThreshold: 1 + failureThreshold: 3 + readinessProbe: + httpGet: + path: "/health" + port: 8080 + scheme: HTTP + initialDelaySeconds: 30 + timeoutSeconds: 30 + periodSeconds: 20 + successThreshold: 1 + failureThreshold: 3 + dnsPolicy: ClusterFirst + restartPolicy: Always + securityContext: {} + terminationGracePeriodSeconds: 30 diff --git a/openshift/kustomize/services/auto-clipper/base/kustomization.yaml b/openshift/kustomize/services/auto-clipper/base/kustomization.yaml new file mode 100644 index 0000000000..8075511b29 --- /dev/null +++ b/openshift/kustomize/services/auto-clipper/base/kustomization.yaml @@ -0,0 +1,11 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +resources: + - config-map.yaml + - deploy.yaml + - service.yaml + +generatorOptions: + disableNameSuffixHash: true diff --git a/openshift/kustomize/services/auto-clipper/base/secret.yaml b/openshift/kustomize/services/auto-clipper/base/secret.yaml new file mode 100644 index 0000000000..87256f77b2 --- /dev/null +++ b/openshift/kustomize/services/auto-clipper/base/secret.yaml @@ -0,0 +1,36 @@ +kind: Secret +apiVersion: v1 +metadata: + name: azure-speech-services + namespace: default + annotations: + description: Azure Speech Services secrets + created-by: jeremy.foster + labels: + name: azure-speech-services + part-of: tno + version: 1.0.0 + component: transcription + managed-by: kustomize +type: Opaque +stringData: + AZURE_REGION: ${AZURE_REGION} + AZURE_SPEECH_SERVICES_KEY: ${AZURE_SPEECH_SERVICES_KEY} +--- +kind: Secret +apiVersion: v1 +metadata: + name: azure-openai + namespace: default + annotations: + description: Azure Cognitive Services secrets + created-by: jeremy.foster + labels: + name: azure-openai + part-of: tno + version: 1.0.0 + component: ai + managed-by: kustomize +type: Opaque +stringData: + AZURE_OPENAI_KEY: ${AZURE_OPENAI_KEY} diff --git a/openshift/kustomize/services/auto-clipper/base/service.yaml b/openshift/kustomize/services/auto-clipper/base/service.yaml new file mode 100644 index 0000000000..229626c630 --- /dev/null +++ b/openshift/kustomize/services/auto-clipper/base/service.yaml @@ -0,0 +1,27 @@ +--- +# Open up ports to communicate with the app. +kind: Service +apiVersion: v1 +metadata: + name: auto-clipper-service + namespace: default + annotations: + description: Exposes and load balances the application pods. + created-by: jeremy.foster + labels: + name: auto-clipper-service + part-of: tno + version: 1.0.0 + component: auto-clipper-service + managed-by: kustomize +spec: + ports: + - name: 8080-tcp + port: 8080 + protocol: TCP + targetPort: 8080 + selector: + part-of: tno + component: auto-clipper-service + sessionAffinity: None + type: ClusterIP diff --git a/openshift/kustomize/services/auto-clipper/overlays/dev/kustomization.yaml b/openshift/kustomize/services/auto-clipper/overlays/dev/kustomization.yaml new file mode 100644 index 0000000000..4ca71785f5 --- /dev/null +++ b/openshift/kustomize/services/auto-clipper/overlays/dev/kustomization.yaml @@ -0,0 +1,42 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namespace: 9b301c-dev + +resources: + - ../../base + +generatorOptions: + disableNameSuffixHash: true + +secretGenerator: + - name: azure-speech-services + type: stringData + env: azure.env + - name: azure-openai + type: stringData + env: openai.env + +patches: + - target: + kind: Deployment + name: auto-clipper-service + patch: |- + - op: replace + path: /spec/replicas + value: 2 + - op: replace + path: /spec/template/spec/containers/0/resources/requests/cpu + value: 20m + - op: replace + path: /spec/template/spec/containers/0/resources/requests/memory + value: 100Mi + - op: replace + path: /spec/template/spec/containers/0/resources/limits/cpu + value: 50m + - op: replace + path: /spec/template/spec/containers/0/resources/limits/memory + value: 300Mi + - op: replace + path: /spec/template/spec/containers/0/image + value: image-registry.openshift-image-registry.svc:5000/9b301c-tools/auto-clipper-service:dev diff --git a/openshift/kustomize/services/auto-clipper/overlays/prod/kustomization.yaml b/openshift/kustomize/services/auto-clipper/overlays/prod/kustomization.yaml new file mode 100644 index 0000000000..d783baf42f --- /dev/null +++ b/openshift/kustomize/services/auto-clipper/overlays/prod/kustomization.yaml @@ -0,0 +1,42 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namespace: 9b301c-prod + +resources: + - ../../base + +generatorOptions: + disableNameSuffixHash: true + +secretGenerator: + - name: azure-speech-services + type: stringData + env: azure.env + - name: azure-openai + type: stringData + env: openai.env + +patches: + - target: + kind: Deployment + name: auto-clipper-service + patch: |- + - op: replace + path: /spec/replicas + value: 6 + - op: replace + path: /metadata/annotations/image.openshift.io~1triggers + value: '[{"from": {"kind": "ImageStreamTag", "name": "auto-clipper-service:prod", "namespace": "9b301c-tools"}, "fieldPath": "spec.template.spec.containers[?(@.name==\"transcription-service\")].image"}]' + - op: replace + path: /spec/template/spec/containers/0/resources/requests/cpu + value: 20m + - op: replace + path: /spec/template/spec/containers/0/resources/requests/memory + value: 80Mi + - op: replace + path: /spec/template/spec/containers/0/resources/limits/cpu + value: 50m + - op: replace + path: /spec/template/spec/containers/0/resources/limits/memory + value: 2Gi diff --git a/openshift/kustomize/services/auto-clipper/overlays/test/kustomization.yaml b/openshift/kustomize/services/auto-clipper/overlays/test/kustomization.yaml new file mode 100644 index 0000000000..036910c0cb --- /dev/null +++ b/openshift/kustomize/services/auto-clipper/overlays/test/kustomization.yaml @@ -0,0 +1,42 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namespace: 9b301c-test + +resources: + - ../../base + +generatorOptions: + disableNameSuffixHash: true + +secretGenerator: + - name: azure-speech-services + type: stringData + env: azure.env + - name: azure-openai + type: stringData + env: openai.env + +patches: + - target: + kind: Deployment + name: auto-clipper-service + patch: |- + - op: replace + path: /spec/replicas + value: 1 + - op: replace + path: /spec/template/spec/containers/0/image + value: image-registry.openshift-image-registry.svc:5000/9b301c-tools/auto-clipper-service:test + - op: replace + path: /spec/template/spec/containers/0/resources/requests/cpu + value: 20m + - op: replace + path: /spec/template/spec/containers/0/resources/requests/memory + value: 80Mi + - op: replace + path: /spec/template/spec/containers/0/resources/limits/cpu + value: 75m + - op: replace + path: /spec/template/spec/containers/0/resources/limits/memory + value: 300Mi diff --git a/openshift/kustomize/services/build/base/auto-clipper.yaml b/openshift/kustomize/services/build/base/auto-clipper.yaml new file mode 100644 index 0000000000..6f0756dd2c --- /dev/null +++ b/openshift/kustomize/services/build/base/auto-clipper.yaml @@ -0,0 +1,59 @@ +--- +# The final build image. +kind: ImageStream +apiVersion: image.openshift.io/v1 +metadata: + name: auto-clipper-service + annotations: + description: Destination for built images. + created-by: jeremy.foster + labels: + name: auto-clipper-service + part-of: tno + version: 1.0.0 + component: auto-clipper + managed-by: kustomize + +--- +# The build config that will be created will be named for the branch you created it for. +kind: BuildConfig +apiVersion: build.openshift.io/v1 +metadata: + name: auto-clipper-service.dev + annotations: + description: Build image from Dockerfile in git repo. + created-by: jeremy.foster + labels: + name: auto-clipper-service + part-of: tno + version: 1.0.0 + component: auto-clipper + managed-by: kustomize + branch: dev +spec: + completionDeadlineSeconds: 1800 + triggers: + - type: ImageChange + - type: ConfigChange + runPolicy: Serial + source: + git: + uri: https://github.com/bcgov/tno.git + ref: dev + contextDir: ./ + strategy: + type: Docker + dockerStrategy: + imageOptimizationPolicy: SkipLayers + dockerfilePath: services/net/auto-clipper/Dockerfile + output: + to: + kind: ImageStreamTag + name: auto-clipper-service:latest + resources: + requests: + cpu: 20m + memory: 250Mi + limits: + cpu: 500m + memory: 2Gi diff --git a/openshift/kustomize/tekton/base/tasks/build-all.yaml b/openshift/kustomize/tekton/base/tasks/build-all.yaml index b4dda092e1..22332314f9 100644 --- a/openshift/kustomize/tekton/base/tasks/build-all.yaml +++ b/openshift/kustomize/tekton/base/tasks/build-all.yaml @@ -242,6 +242,13 @@ spec: [dockerfile]="/tools/elastic/migration/Dockerfile" ) + declare -A COMPONENT21=( + [id]="auto-clipper" + [image]="auto-clipper-service" + [context]="" + [dockerfile]="/services/net/auto-clipper/Dockerfile" + ) + declare -n component; # Loop through each component and build if required. diff --git a/openshift/kustomize/tekton/base/tasks/deploy-all-deployment.yaml b/openshift/kustomize/tekton/base/tasks/deploy-all-deployment.yaml index e846c4ff9e..4eb4c9018c 100644 --- a/openshift/kustomize/tekton/base/tasks/deploy-all-deployment.yaml +++ b/openshift/kustomize/tekton/base/tasks/deploy-all-deployment.yaml @@ -32,15 +32,15 @@ spec: - name: TIMEOUT description: The timeout before it will stop waiting for the pod to become available. type: string - default: '600s' + default: "600s" - name: DEPLOY description: Whether to deploy a component, or all [*|all|[name]]. - default: '*' + default: "*" - name: WAIT description: Whether to wait for each service pod to scale back up [yes|no]. - default: 'no' + default: "no" workspaces: - name: conditions mountPath: /data @@ -270,6 +270,16 @@ spec: [env]="dev test prod" ) + declare -A COMPONENT20=( + [id]="auto-clipper" + [name]="auto-clipper-service" + [type]="deployment" + [replicas]="1" + [action]="stop" + [build]="yes" + [env]="dev test prod" + ) + declare -n component; # *************************************************** diff --git a/openshift/kustomize/tekton/base/tasks/git-conditions.yaml b/openshift/kustomize/tekton/base/tasks/git-conditions.yaml index 9bca920515..a367cb053a 100644 --- a/openshift/kustomize/tekton/base/tasks/git-conditions.yaml +++ b/openshift/kustomize/tekton/base/tasks/git-conditions.yaml @@ -177,6 +177,7 @@ spec: build_service 'scheduler' build_service 'syndication' build_service 'transcription' + build_service 'auto-clipper' echo "Build the following component." cat build.env | xargs echo diff --git a/services/docker-compose.yml b/services/docker-compose.yml index 0f33315f63..74f1cf3146 100644 --- a/services/docker-compose.yml +++ b/services/docker-compose.yml @@ -13,10 +13,10 @@ services: deploy: resources: limits: - cpus: '0.25' + cpus: "0.25" memory: 250M reservations: - cpus: '0.05' + cpus: "0.05" memory: 50M env_file: - services/net/syndication/.env @@ -47,10 +47,10 @@ services: deploy: resources: limits: - cpus: '0.25' + cpus: "0.25" memory: 250M reservations: - cpus: '0.05' + cpus: "0.05" memory: 50M env_file: - services/net/fileupload/.env @@ -81,10 +81,10 @@ services: deploy: resources: limits: - cpus: '0.25' + cpus: "0.25" memory: 250M reservations: - cpus: '0.05' + cpus: "0.05" memory: 50M env_file: - services/net/image/.env @@ -117,10 +117,10 @@ services: deploy: resources: limits: - cpus: '0.25' + cpus: "0.25" memory: 500M reservations: - cpus: '0.05' + cpus: "0.05" memory: 50M env_file: - services/net/filemonitor/.env @@ -153,10 +153,10 @@ services: deploy: resources: limits: - cpus: '0.25' + cpus: "0.25" memory: 250M reservations: - cpus: '0.05' + cpus: "0.05" memory: 50M env_file: - services/net/content/.env @@ -189,10 +189,10 @@ services: deploy: resources: limits: - cpus: '0.25' + cpus: "0.25" memory: 250M reservations: - cpus: '0.05' + cpus: "0.05" memory: 50M env_file: - services/net/contentmigration/.env @@ -226,10 +226,10 @@ services: deploy: resources: limits: - cpus: '0.25' + cpus: "0.25" memory: 250M reservations: - cpus: '0.05' + cpus: "0.05" memory: 50M env_file: - services/net/indexing/.env @@ -261,10 +261,10 @@ services: deploy: resources: limits: - cpus: '0.25' + cpus: "0.25" memory: 250M reservations: - cpus: '0.05' + cpus: "0.05" memory: 50M env_file: - services/net/transcription/.env @@ -284,6 +284,42 @@ services: retries: 3 start_period: 30s + auto-clipper: + image: tno:auto-clipper + profiles: + - all + - service + restart: "no" + container_name: tno-auto-clipper + build: + context: ./ + dockerfile: services/net/auto-clipper/Dockerfile + deploy: + resources: + limits: + cpus: "0.25" + memory: 250M + reservations: + cpus: "0.05" + memory: 50M + env_file: + - services/net/auto-clipper/.env + ports: + - ${AUTO_CLIPPER_PORT:-40029}:8081 + depends_on: + - api + - broker + networks: + - tno + volumes: + - tno-api-data:/data + healthcheck: + test: curl -s -f http://localhost:8081/health || exit 1 + interval: 1m + timeout: 10s + retries: 3 + start_period: 30s + nlp: image: tno:nlp profiles: @@ -297,10 +333,10 @@ services: deploy: resources: limits: - cpus: '0.25' + cpus: "0.25" memory: 250M reservations: - cpus: '0.05' + cpus: "0.05" memory: 50M env_file: - services/net/nlp/.env @@ -331,10 +367,10 @@ services: deploy: resources: limits: - cpus: '0.25' + cpus: "0.25" memory: 250M reservations: - cpus: '0.05' + cpus: "0.05" memory: 50M env_file: - services/net/notification/.env @@ -367,10 +403,10 @@ services: deploy: resources: limits: - cpus: '0.25' + cpus: "0.25" memory: 250M reservations: - cpus: '0.05' + cpus: "0.05" memory: 50M env_file: - services/net/reporting/.env @@ -403,10 +439,10 @@ services: deploy: resources: limits: - cpus: '0.25' + cpus: "0.25" memory: 250M reservations: - cpus: '0.05' + cpus: "0.05" memory: 50M env_file: - services/net/folder-collection/.env @@ -424,7 +460,6 @@ services: retries: 3 start_period: 30s - extract-quotes: image: tno:extract-quotes profiles: @@ -438,10 +473,10 @@ services: deploy: resources: limits: - cpus: '0.25' + cpus: "0.25" memory: 250M reservations: - cpus: '0.05' + cpus: "0.05" memory: 50M env_file: - services/net/extract-quotes/.env @@ -466,10 +501,10 @@ services: deploy: resources: limits: - cpus: '1' + cpus: "1" memory: 2G reservations: - cpus: '0.05' + cpus: "0.05" memory: 100M env_file: - services/net/ffmpeg/.env @@ -502,10 +537,10 @@ services: deploy: resources: limits: - cpus: '0.25' + cpus: "0.25" memory: 250M reservations: - cpus: '0.05' + cpus: "0.05" memory: 50M env_file: - services/net/scheduler/.env @@ -536,10 +571,10 @@ services: deploy: resources: limits: - cpus: '0.25' + cpus: "0.25" memory: 250M reservations: - cpus: '0.05' + cpus: "0.05" memory: 50M env_file: - services/net/event-handler/.env diff --git a/services/net/TNO.Services.sln b/services/net/TNO.Services.sln index 58989e2899..1598af4791 100644 --- a/services/net/TNO.Services.sln +++ b/services/net/TNO.Services.sln @@ -87,8 +87,16 @@ Global {E99C7AE8-6388-412C-9C35-F7148E2B5DFE}.Debug|Any CPU.Build.0 = Debug|Any CPU {E99C7AE8-6388-412C-9C35-F7148E2B5DFE}.Release|Any CPU.ActiveCfg = Release|Any CPU {E99C7AE8-6388-412C-9C35-F7148E2B5DFE}.Release|Any CPU.Build.0 = Release|Any CPU + {60B05E2B-CD93-4D44-9FF0-F84135B40E03}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {60B05E2B-CD93-4D44-9FF0-F84135B40E03}.Debug|Any CPU.Build.0 = Debug|Any CPU + {60B05E2B-CD93-4D44-9FF0-F84135B40E03}.Release|Any CPU.ActiveCfg = Release|Any CPU + {60B05E2B-CD93-4D44-9FF0-F84135B40E03}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE + {60B05E2B-CD93-4D44-9FF0-F84135B40E03}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {60B05E2B-CD93-4D44-9FF0-F84135B40E03}.Debug|Any CPU.Build.0 = Debug|Any CPU + {60B05E2B-CD93-4D44-9FF0-F84135B40E03}.Release|Any CPU.ActiveCfg = Release|Any CPU + {60B05E2B-CD93-4D44-9FF0-F84135B40E03}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection EndGlobal diff --git a/services/net/auto-clipper/.dockerignore b/services/net/auto-clipper/.dockerignore new file mode 100644 index 0000000000..7ed9d732a6 --- /dev/null +++ b/services/net/auto-clipper/.dockerignore @@ -0,0 +1,18 @@ +.vs/ +.env + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +build/ +bld/ +**/[Bb]in/ +**/[Oo]bj/ +**/[Oo]ut/ +msbuild.log +msbuild.err +msbuild.wrn diff --git a/services/net/auto-clipper/Audio/AudioNormalizer.cs b/services/net/auto-clipper/Audio/AudioNormalizer.cs new file mode 100644 index 0000000000..62c5b0470e --- /dev/null +++ b/services/net/auto-clipper/Audio/AudioNormalizer.cs @@ -0,0 +1,69 @@ +using System.Diagnostics; +using Microsoft.Extensions.Logging; + +namespace TNO.Services.AutoClipper.Audio; + +/// +/// AudioNormalizer class, provides a way to normalize files to ensure we only send wav files for transcription. +/// +public class AudioNormalizer : IAudioNormalizer +{ + private readonly ILogger _logger; + + public AudioNormalizer(ILogger logger) + { + _logger = logger; + } + + /// + /// Create a new wav file if required. + /// + /// + /// + /// + /// + /// + public async Task NormalizeAsync(string sourceFile, int targetSampleRate, CancellationToken? cancellationToken = default) + { + var directory = Path.GetDirectoryName(sourceFile) ?? "."; + var normalizedFile = Path.Combine(directory, $"{Path.GetFileNameWithoutExtension(sourceFile)}.{targetSampleRate}hz.normalized.wav"); + + if (File.Exists(normalizedFile)) + { + var sourceInfo = new FileInfo(sourceFile); + var normalizedInfo = new FileInfo(normalizedFile); + if (normalizedInfo.LastWriteTimeUtc >= sourceInfo.LastWriteTimeUtc) + { + _logger.LogDebug("Using existing normalized file {File}", normalizedFile); + return normalizedFile; + } + } + + _logger.LogInformation("Normalizing audio {Source} -> {Dest}", sourceFile, normalizedFile); + Directory.CreateDirectory(directory); + + var process = new Process(); + if (OperatingSystem.IsWindows()) + { + process.StartInfo.FileName = "cmd"; + process.StartInfo.Arguments = $"/c ffmpeg -y -i \"{sourceFile}\" -ar {targetSampleRate} -ac 1 -c:a pcm_s16le \"{normalizedFile}\""; + } + else + { + process.StartInfo.FileName = "/bin/sh"; + process.StartInfo.Arguments = $"-c \"ffmpeg -y -i '{sourceFile}' -ar {targetSampleRate} -ac 1 -c:a pcm_s16le '{normalizedFile}' 2>&1\""; + } + process.StartInfo.UseShellExecute = false; + process.StartInfo.RedirectStandardOutput = true; + process.StartInfo.CreateNoWindow = true; + process.Start(); + var output = await process.StandardOutput.ReadToEndAsync(); + await process.WaitForExitAsync(cancellationToken ?? default); + if (process.ExitCode != 0) + { + _logger.LogError("ffmpeg normalization failed: {Output}", output); + throw new InvalidOperationException($"Failed to normalize audio: {sourceFile}"); + } + return normalizedFile; + } +} diff --git a/services/net/auto-clipper/Audio/IAudioNormalizer.cs b/services/net/auto-clipper/Audio/IAudioNormalizer.cs new file mode 100644 index 0000000000..845131fea9 --- /dev/null +++ b/services/net/auto-clipper/Audio/IAudioNormalizer.cs @@ -0,0 +1,6 @@ +namespace TNO.Services.AutoClipper.Audio; + +public interface IAudioNormalizer +{ + Task NormalizeAsync(string sourceFile, int targetSampleRate, CancellationToken? cancellationToken = default); +} diff --git a/services/net/auto-clipper/AutoClipperManager.cs b/services/net/auto-clipper/AutoClipperManager.cs new file mode 100644 index 0000000000..2f4ca65615 --- /dev/null +++ b/services/net/auto-clipper/AutoClipperManager.cs @@ -0,0 +1,683 @@ +using System.Globalization; +using System.Text; +using Confluent.Kafka; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; +using TNO.API.Areas.Services.Models.Content; +using TNO.Ches; +using TNO.Ches.Configuration; +using TNO.Core.Exceptions; +using TNO.Core.Extensions; +using TNO.Core.Storage; +using TNO.Entities; +using TNO.Kafka; +using TNO.Kafka.Models; +using TNO.Services.AutoClipper.Azure; +using TNO.Services.AutoClipper.Config; +using TNO.Services.AutoClipper.Exceptions; +using TNO.Services.AutoClipper.LLM; +using TNO.Services.AutoClipper.Pipeline; +using TNO.Services.Managers; +using TNO.Services.Runners; + +namespace TNO.Services.AutoClipper; + +/// +/// AutoClipperManager class, provides a Kafka Consumer service which imports audio from all active topics. +/// +public class AutoClipperManager : ServiceManager +{ + #region Variables + private readonly IS3StorageService _s3StorageService; + private readonly ClipProcessingPipeline _processingPipeline; + private readonly IStationConfigurationService _stationConfiguration; + private CancellationTokenSource? _cancelToken; + private Task? _consumer; + private readonly TaskStatus[] _notRunning = new TaskStatus[] { TaskStatus.Canceled, TaskStatus.Faulted, TaskStatus.RanToCompletion }; + private readonly WorkOrderStatus[] _ignoreWorkOrders = new WorkOrderStatus[] { WorkOrderStatus.Completed, WorkOrderStatus.Cancelled }; + private int _retries = 0; + private string? _etag = null; + private API.Areas.Editor.Models.Tag.TagModel[]? _tags = []; + #endregion + + #region Properties + /// + /// get - Kafka Consumer object. + /// + protected IKafkaListener Listener { get; private set; } + #endregion + + #region Constructors + /// + /// Creates a new instance of a AutoClipperManager object, initializes with specified parameters. + /// + /// + /// + /// + /// + /// + /// + /// + public AutoClipperManager( + IKafkaListener listener, + ClipProcessingPipeline processingPipeline, + IStationConfigurationService stationConfigurationService, + IApiService api, + IChesService chesService, + IOptions chesOptions, + IOptions options, + ILogger logger, + IS3StorageService s3StorageService) + : base(api, chesService, chesOptions, options, logger) + { + this.Listener = listener; + this.Listener.IsLongRunningJob = true; + this.Listener.OnError += ListenerErrorHandler; + this.Listener.OnStop += ListenerStopHandler; + _s3StorageService = s3StorageService; + _processingPipeline = processingPipeline; + _stationConfiguration = stationConfigurationService; + } + #endregion + + #region Methods + /// + /// Listen to active topics and import content. + /// + /// + public override async Task RunAsync() + { + var delay = this.Options.DefaultDelayMS; + + // Always keep looping until an unexpected failure occurs. + while (true) + { + if (this.State.Status == ServiceStatus.RequestSleep || this.State.Status == ServiceStatus.RequestPause || this.State.Status == ServiceStatus.RequestFailed) + { + // An API request or failures have requested the service to stop. + this.Logger.LogInformation("The service is stopping: '{Status}'", this.State.Status); + this.State.Stop(); + + // The service is stopping or has stopped, consume should stop too. + this.Listener.Stop(); + } + else if (this.State.Status != ServiceStatus.Running) + { + this.Logger.LogDebug("The service is not running: '{Status}'", this.State.Status); + } + else + { + try + { + var topics = this.Options.Topics.Split(',', StringSplitOptions.RemoveEmptyEntries); + + if (topics.Length != 0) + { + await GetTagsAsync(); + this.Listener.Subscribe(topics); + ConsumeMessages(); + } + else if (topics.Length == 0) + { + this.Listener.Stop(); + } + } + catch (Exception ex) + { + this.Logger.LogError(ex, "Service had an unexpected failure."); + this.State.RecordFailure(); + await this.SendErrorEmailAsync("Service had an Unexpected Failure", ex); + } + } + + // The delay ensures we don't have a run away thread. + this.Logger.LogDebug("Service sleeping for {delay} ms", delay); + await Task.Delay(delay); + } + } + + /// + /// Get an array of tags from the API. + /// + /// + private async Task GetTagsAsync() + { + // Fetch tags once for all clips from the API. + var tagsResponse = await this.Api.GetTagsResponseWithEtagAsync(_etag ?? ""); + if (tagsResponse != null && tagsResponse.StatusCode == System.Net.HttpStatusCode.OK) + { + _tags = await this.Api.GetResponseDataAsync(tagsResponse); + _etag = this.Api.GetResponseEtag(tagsResponse); + } + } + + /// + /// Creates a new cancellation token. + /// Create a new Task if the prior one isn't running anymore. + /// + private void ConsumeMessages() + { + if (_consumer == null || _notRunning.Contains(_consumer.Status)) + { + // Make sure the prior task is cancelled before creating a new one. + if (_cancelToken?.IsCancellationRequested == false) + _cancelToken?.Cancel(); + _cancelToken = new CancellationTokenSource(); + _consumer = Task.Run(ListenerHandlerAsync, _cancelToken.Token); + } + } + + /// + /// Keep consuming messages from Kafka until the service stops running. + /// + /// + private async Task ListenerHandlerAsync() + { + while (this.State.Status == ServiceStatus.Running && + _cancelToken?.IsCancellationRequested == false) + { + await this.Listener.ConsumeAsync(HandleMessageAsync, _cancelToken.Token); + } + + // The service is stopping or has stopped, consume should stop too. + this.Listener.Stop(); + } + + /// + /// The Kafka consumer has failed for some reason, need to record the failure. + /// Fatal or unexpected errors will result in a request to stop consuming. + /// + /// + /// + /// True if the consumer should retry the message. + private void ListenerErrorHandler(object sender, ErrorEventArgs e) + { + // Only the first retry will count as a failure. + if (_retries == 0) + this.State.RecordFailure(); + + if (e.GetException() is ConsumeException consume) + { + if (consume.Error.IsFatal) + this.Listener.Stop(); + } + } + + /// + /// The Kafka consumer has stopped which means we need to also cancel the background task associated with it. + /// + /// + /// + private void ListenerStopHandler(object sender, EventArgs e) + { + if (_consumer != null && + !_notRunning.Contains(_consumer.Status) && + _cancelToken != null && !_cancelToken.IsCancellationRequested) + { + _cancelToken.Cancel(); + } + } + + /// + /// Retrieve a file from storage and send to Microsoft Cognitive Services. Obtain + /// the transcription and update the content record accordingly. + /// + /// + /// + private async Task HandleMessageAsync(ConsumeResult result) + { + try + { + var request = result.Message.Value; + // The service has stopped, so to should consuming messages. + if (this.State.Status != ServiceStatus.Running) + { + this.Listener.Stop(); + this.State.Stop(); + } + else + { + var content = await this.Api.FindContentByIdAsync(request.ContentId); + if (content != null) + { + // TODO: Handle multi-threading so that more than one transcription can be performed at a time. + await ProcessClipRequestAsync(request, content); + } + else + { + // Identify requests for transcription for content that does not exist. + this.Logger.LogWarning("Content does not exist for this message. Key: {Key}, Content ID: {ContentId}", result.Message.Key, request.ContentId); + } + + // Inform Kafka this message is completed. + this.Listener.Commit(result); + this.Listener.Resume(); + + // Successful run clears any errors. + this.State.ResetFailures(); + _retries = 0; + } + } + catch (Exception ex) + { + if (ex is HttpClientRequestException httpEx) + { + this.Logger.LogError(ex, "HTTP exception while consuming. {response}", httpEx.Data["body"] ?? ""); + await this.SendErrorEmailAsync("HTTP exception while consuming. {response}", ex); + } + else + { + this.Logger.LogError(ex, "Failed to handle message"); + await this.SendErrorEmailAsync("Failed to handle message", ex); + } + ListenerErrorHandler(this, new ErrorEventArgs(ex)); + } + } + + /// + /// Get local temp directory + /// + /// + private string GetTempDirectory() + { + var tempPath = Path.Join(this.Options.VolumePath, "temp".MakeRelativePath()); + if (!Directory.Exists(tempPath)) + { + Directory.CreateDirectory(tempPath); + } + return tempPath; + } + + /// + /// Clean up temp files that are downloaded from s3 or generated from downloaded s3 file + /// + /// + private static void CleanupS3Files(params string[] files) + { + foreach (var file in files) + { + if (File.Exists(file)) + { + File.Delete(file); + } + } + } + + /// + /// Download S3 files + /// + /// + /// + private async Task DownloadS3File(string? s3Path) + { + if (!string.IsNullOrEmpty(s3Path)) + { + var tempDir = GetTempDirectory(); + var s3FileStream = await _s3StorageService.DownloadFromS3Async(s3Path); + if (s3FileStream != null) + { + var fileName = Path.GetFileName(s3Path); + var tmpFilePath = Path.Combine(tempDir, fileName); + if (File.Exists(tmpFilePath)) + { + File.Delete(tmpFilePath); + } + + using (var fileStream = new FileStream(tmpFilePath, FileMode.Create, FileAccess.Write)) + { + s3FileStream.CopyTo(fileStream); + this.Logger.LogDebug("S3 file {path} is downloaded to: {file}", s3Path, tmpFilePath); + return tmpFilePath; + } + } + else + { + this.Logger.LogError("Cannot download file {file} from S3", s3Path); + } + } + else + { + this.Logger.LogError("S3 file path is empty."); + } + return string.Empty; + } + + /// + /// Delete any files that were copied or generated. + /// + /// + /// + /// + /// + private static async Task CleanUpFilesAsync(IEnumerable generatedClipFiles, bool isSyncedToS3, string downloadedFile) + { + CleanupLocalFiles(generatedClipFiles); + CleanupTemporaryFiles(isSyncedToS3, downloadedFile); + } + + /// + /// Make a request to generate a transcription for the specified 'content'. + /// + /// + /// + /// + /// + private async Task ProcessClipRequestAsync(ClipRequestModel request, ContentModel content) + { + var requestContentId = request.ContentId; + this.Logger.LogInformation("Auto clipper request received. Content ID: {Id}", requestContentId); + + var contentFile = content.FileReferences.FirstOrDefault(); + var relativePath = contentFile?.Path; + var clipSourcePath = !string.IsNullOrWhiteSpace(relativePath) ? Path.Join(this.Options.VolumePath, relativePath.MakeRelativePath()) : string.Empty; + var isSyncedToS3 = contentFile?.IsSyncedToS3 == true; + var downloadedFile = string.Empty; + var generatedClipFiles = new List(); + + if (isSyncedToS3) + { + clipSourcePath = contentFile?.S3Path ?? string.Empty; + if (!string.IsNullOrWhiteSpace(contentFile?.S3Path)) + { + downloadedFile = await DownloadS3File(contentFile.S3Path); + if (!string.IsNullOrWhiteSpace(downloadedFile)) + { + clipSourcePath = downloadedFile; + } + } + } + + // If the file doesn't exist don't continue. + if (!File.Exists(clipSourcePath)) + { + this.Logger.LogError("File does not exist for content. Content ID: {Id}, Path: {Path}", requestContentId, clipSourcePath); + var workOrderFailedException = new FileMissingException(requestContentId, clipSourcePath ?? string.Empty); + await this.SendNoticeEmailAsync($"File missing for Content ID: {requestContentId}", workOrderFailedException); + await UpdateWorkOrderAsync(request, WorkOrderStatus.Failed, workOrderFailedException); + return; + } + + // When a work order has been cancelled don't continue. + var workOrder = await UpdateWorkOrderAsync(request, content.IsApproved ? WorkOrderStatus.Cancelled : WorkOrderStatus.InProgress); + var originalBody = content.Body; + if (workOrder?.Status != WorkOrderStatus.InProgress) + { + if (workOrder?.Status == WorkOrderStatus.Cancelled) + this.Logger.LogWarning("Work order has been cancelled. Content ID: {id}", requestContentId); + else + this.Logger.LogWarning("Request ignored because it does not have a work order. Content ID: {id}", requestContentId); + await CleanUpFilesAsync(generatedClipFiles, isSyncedToS3, downloadedFile); + return; + } + + // Send file to Azure Speech Services for transcription. + // Then send transcription to Azure Open AI to extract separate stories from the transcription. + var stationCode = content.Source?.Code ?? content.Source?.Name ?? "default"; + var stationProfile = _stationConfiguration.GetProfile(stationCode); + var targetSampleRate = stationProfile.Transcription.SampleRate > 0 ? stationProfile.Transcription.SampleRate : stationProfile.SampleRate; + var processingContext = new ClipProcessingContext( + clipSourcePath, + stationProfile, + request, + targetSampleRate); + var pipelineResult = await _processingPipeline.ExecuteAsync(processingContext, _cancelToken?.Token ?? CancellationToken.None); + var segments = pipelineResult.Segments; + var clipDefinitions = pipelineResult.ClipDefinitions?.OrderBy(c => c.Start).ToArray() ?? []; + + // If there were no segments in the transcript don't continue. + if (segments.Count == 0) + { + var exception = new EmptyTranscriptException(requestContentId); + await UpdateWorkOrderAsync(request, WorkOrderStatus.Failed, exception); + await CleanUpFilesAsync(generatedClipFiles, isSyncedToS3, downloadedFile); + return; + } + + // If the work order has been cancelled, don't continue. + workOrder = await this.Api.FindWorkOrderAsync(workOrder.Id); + if (workOrder?.Status == WorkOrderStatus.Cancelled) + { + this.Logger.LogWarning("Work order has been cancelled during processing. Content ID: {id}", requestContentId); + await CleanUpFilesAsync(generatedClipFiles, isSyncedToS3, downloadedFile); + return; + } + + // If content doesn't exist, don't continue. + content = (await this.Api.FindContentByIdAsync(requestContentId))!; + if (content == null) + { + var exception = new ContentNotFoundException(requestContentId); + await UpdateWorkOrderAsync(request, WorkOrderStatus.Failed, exception); + await CleanUpFilesAsync(generatedClipFiles, isSyncedToS3, downloadedFile); + return; + } + + // Generate the full transcript. + var transcriptBody = BuildTranscriptDocument(segments); + if (!string.Equals(originalBody, content.Body, StringComparison.Ordinal)) + this.Logger.LogWarning("Transcript will be overwritten. Content ID: {Id}", requestContentId); + + // If content transcript has been approved do not update the transcript on the original story. + if (!content.IsApproved) + { + content.Body = transcriptBody; + await this.Api.UpdateContentAsync(content); + this.Logger.LogInformation("Primary transcript updated. Content ID: {Id}", requestContentId); + } + + // For each separate story identified, create a new story and send it to the API. + for (var clipIndex = 0; clipIndex < clipDefinitions.Length; clipIndex++) + { + try + { + var definition = clipDefinitions[clipIndex]; + var normalized = NormalizeClipDefinition(definition, segments); + if (normalized == null) + { + this.Logger.LogWarning("Skipped invalid clip definition for content {Id}", requestContentId); + continue; + } + + var clipTranscriptSegments = ExtractTranscriptRange(segments, normalized.Start, normalized.End); + if (clipTranscriptSegments.Length == 0) + { + this.Logger.LogWarning("No transcript rows found for clip {clip}", definition.Title); + continue; + } + + var clipTranscript = BuildTranscriptDocument(clipTranscriptSegments); + if (string.IsNullOrWhiteSpace(clipTranscript)) + { + this.Logger.LogWarning("Empty transcript for clip definition {clip}", definition.Title); + continue; + } + + var clipPath = await CreateClipFileAsync(clipSourcePath, $"autoclip_{requestContentId}", normalized.Start, normalized.End); + generatedClipFiles.Add(clipPath); + + await CreateClipContentAsync(content, normalized, clipTranscript, clipPath, clipIndex); + } + catch (Exception ex) + { + this.Logger.LogError(ex, "Failed to generate clip media for content {Id}", requestContentId); + continue; + } + } + + await UpdateWorkOrderAsync(request, WorkOrderStatus.Completed); + await CleanUpFilesAsync(generatedClipFiles, isSyncedToS3, downloadedFile); + } + + private static ClipDefinition? NormalizeClipDefinition(ClipDefinition definition, IReadOnlyList segments) + { + if (segments.Count == 0) return null; + var maxEnd = segments[^1].End; + var start = definition.Start < TimeSpan.Zero ? TimeSpan.Zero : definition.Start; + var end = definition.End > maxEnd ? maxEnd : definition.End; + if (end <= start) return null; + + var first = segments.FirstOrDefault(s => s.End > start); + var last = segments.LastOrDefault(s => s.Start < end); + if (first == null || last == null) return null; + start = first.Start; + end = last.End; + if (end <= start) return null; + + return definition with { Start = start, End = end }; + } + + private static TimestampedTranscript[] ExtractTranscriptRange(IReadOnlyList segments, TimeSpan start, TimeSpan end) + { + return [.. segments.Where(s => s.End > start && s.Start < end)]; + } + + private static async Task CreateClipFileAsync(string srcFile, string outputPrefix, TimeSpan start, TimeSpan end) + { + var directory = Path.GetDirectoryName(srcFile) ?? Path.GetTempPath(); + var ext = Path.GetExtension(srcFile); + var clipName = $"{outputPrefix}_{Guid.NewGuid():N}{ext}"; + var clipPath = Path.Combine(directory, clipName); + var duration = Math.Max(1, (end - start).TotalSeconds); + var process = new System.Diagnostics.Process(); + process.StartInfo.Verb = "clip"; + if (OperatingSystem.IsWindows()) + { + process.StartInfo.FileName = "cmd"; + process.StartInfo.Arguments = $"/c ffmpeg -y -ss {start.TotalSeconds.ToString("0.###", CultureInfo.InvariantCulture)} -i \"{srcFile}\" -t {duration.ToString("0.###", CultureInfo.InvariantCulture)} -c copy \"{clipPath}\""; + } + else + { + process.StartInfo.FileName = "/bin/sh"; + process.StartInfo.Arguments = $"-c \"ffmpeg -y -ss {start.TotalSeconds.ToString("0.###", CultureInfo.InvariantCulture)} -i '{srcFile}' -t {duration.ToString("0.###", CultureInfo.InvariantCulture)} -c copy '{clipPath}' 2>&1\""; + } + process.StartInfo.UseShellExecute = false; + process.StartInfo.RedirectStandardOutput = true; + process.StartInfo.CreateNoWindow = true; + process.Start(); + var output = await process.StandardOutput.ReadToEndAsync(); + await process.WaitForExitAsync(); + if (process.ExitCode != 0) + throw new InvalidOperationException($"ffmpeg failed to create clip: {output}"); + return clipPath; + } + + private async Task CreateClipContentAsync(ContentModel parentContent, ClipDefinition definition, string transcriptBody, string clipPath, int clipIndex) + { + var clipContent = BuildClipContentModel(parentContent, definition, transcriptBody, clipIndex); + var created = await this.Api.AddContentAsync(clipContent); + if (created == null) return; + + await using var clipStream = File.OpenRead(clipPath); + created = await this.Api.UploadFileAsync(created.Id, created.Version ?? 0, clipStream, Path.GetFileName(clipPath)); + this.Logger.LogInformation("Clip content created. Parent Content: {ParentId}, Clip Content: {ClipId}", parentContent.Id, created?.Id); + } + + private ContentModel BuildClipContentModel(ContentModel sourceContent, ClipDefinition definition, string transcriptBody, int clipIndex) + { + var clipSummary = string.IsNullOrWhiteSpace(definition.Summary) + ? $"Clip covering {FormatTimestamp(definition.Start)} to {FormatTimestamp(definition.End)}" + : definition.Summary; + + var autoTags = _tags?.Where(t => this.Options.ApplyTags.Contains(t.Code)); + var tags = autoTags != null ? sourceContent.Tags.AppendRange(autoTags.Select(at => new ContentTagModel(at.Id, at.Code, at.Name))) : sourceContent.Tags; + + return new ContentModel + { + ContentType = sourceContent.ContentType, + SourceId = sourceContent.SourceId, + Source = sourceContent.Source, + OtherSource = sourceContent.OtherSource, + SeriesId = sourceContent.SeriesId, + Series = sourceContent.Series, + MediaTypeId = sourceContent.MediaTypeId, + LicenseId = sourceContent.LicenseId, + OwnerId = sourceContent.OwnerId, + ContributorId = sourceContent.ContributorId, + Contributor = sourceContent.Contributor, + Byline = sourceContent.Byline, + Status = ContentStatus.Draft, + Uid = BaseService.GetContentHash(sourceContent.Source?.Code ?? "AutoClipper", $"{sourceContent.Uid}-clip-{clipIndex}", sourceContent.PublishedOn), + Headline = $"{definition.Title}", + Summary = $"[AutoClipper:{definition.Category}]\n{clipSummary}", + Body = transcriptBody, + SourceUrl = sourceContent.SourceUrl, + PublishedOn = sourceContent.PublishedOn, + PostedOn = DateTime.UtcNow, + Tags = tags, + Topics = sourceContent.Topics, + Actions = sourceContent.Actions, + Labels = sourceContent.Labels, + IsHidden = false + }; + } + + private static void CleanupLocalFiles(IEnumerable files) + { + CleanupS3Files(files.Where(f => !string.IsNullOrWhiteSpace(f)).ToArray()); + } + + private static void CleanupTemporaryFiles(bool isSyncedToS3, params string[] files) + { + if (!isSyncedToS3) return; + CleanupS3Files(files); + } + + /// + /// Format the transcript to include newlines. + /// + /// + /// + private static string BuildTranscriptDocument(IReadOnlyList segments) + { + if (segments == null || segments.Count == 0) return string.Empty; + + var sb = new StringBuilder(); + var index = 1; + foreach (var segment in segments) + { + if (string.IsNullOrWhiteSpace(segment.Text)) continue; + // sb.AppendLine(index.ToString(CultureInfo.InvariantCulture)); + // sb.AppendLine($"{FormatTimestamp(segment.Start)} --> {FormatTimestamp(segment.End)}"); + sb.AppendLine(segment.Text.Trim()); + sb.AppendLine(); + index++; + } + + return sb.ToString().Trim(); + } + + private static string FormatTimestamp(TimeSpan value) + { + var hours = (int)Math.Floor(value.TotalHours); + return string.Format(CultureInfo.InvariantCulture, "{0:00}:{1:00}:{2:00}.{3:000}", hours, value.Minutes, value.Seconds, value.Milliseconds); + } + + /// + /// Update the work order (if it exists) with the specified 'status'. + /// + /// + /// + /// Whether a work order exists or is not required. + private async Task UpdateWorkOrderAsync(ClipRequestModel request, WorkOrderStatus status, Exception? reason = null) + { + if (request.WorkOrderId > 0) + { + var workOrder = await this.Api.FindWorkOrderAsync(request.WorkOrderId); + if (workOrder != null && !_ignoreWorkOrders.Contains(workOrder.Status)) + { + workOrder.Status = status; + workOrder = await this.Api.UpdateWorkOrderAsync(workOrder); + + if (status == WorkOrderStatus.Failed && reason != null) + { + await this.SendErrorEmailAsync($"Work order failed for Content ID: {request.ContentId}", reason); + this.Logger.LogError(reason, "Work order failed for Content ID: {ContentId}", request.ContentId); + } + } + return workOrder; + } + return null; + } + #endregion +} + diff --git a/services/net/auto-clipper/AutoClipperService.cs b/services/net/auto-clipper/AutoClipperService.cs new file mode 100644 index 0000000000..843a408539 --- /dev/null +++ b/services/net/auto-clipper/AutoClipperService.cs @@ -0,0 +1,68 @@ +using Microsoft.Extensions.DependencyInjection; +using TNO.Core.Storage; +using TNO.Core.Storage.Configuration; +using TNO.Kafka; +using TNO.Kafka.Models; +using TNO.Services.AutoClipper.Audio; +using TNO.Services.AutoClipper.Azure; +using TNO.Services.AutoClipper.Config; +using TNO.Services.AutoClipper.LLM; +using TNO.Services.AutoClipper.Pipeline; +using TNO.Services.Runners; + + +namespace TNO.Services.AutoClipper; + +/// +/// AutoClipperService abstract class, provides a console application that runs service, and an api. +/// The AutoClipperService is a Kafka consumer which pulls content. +/// +public class AutoClipperService : KafkaConsumerService +{ + #region Variables + #endregion + + #region Properties + #endregion + + #region Constructors + /// + /// Creates a new instance of a AutoClipperService object, initializes with arguments. + /// + /// + public AutoClipperService(string[] args) : base(args) + { + } + #endregion + + #region Methods + /// + /// Configure dependency injection. + /// + /// + /// + protected override IServiceCollection ConfigureServices(IServiceCollection services) + { + base.ConfigureServices(services); + services + .Configure(this.Configuration.GetSection("Service")) + .AddTransient, KafkaListener>() + .AddSingleton() + .Configure(this.Configuration.GetSection("S3")) + .AddSingleton() + .AddSingleton() + .AddSingleton() + .AddSingleton(); + + services.AddSingleton(); + services.AddHttpClient(); + + // TODO: Figure out how to validate without resulting in aggregating the config values. + // services.AddOptions() + // .Bind(this.Configuration.GetSection("Service")) + // .ValidateDataAnnotations(); + + return services; + } + #endregion +} diff --git a/services/net/auto-clipper/Azure/AzureSpeechTranscriptionService.cs b/services/net/auto-clipper/Azure/AzureSpeechTranscriptionService.cs new file mode 100644 index 0000000000..9e618adb29 --- /dev/null +++ b/services/net/auto-clipper/Azure/AzureSpeechTranscriptionService.cs @@ -0,0 +1,408 @@ +using System.Globalization; +using System.Text; +using System.Text.Json; +using System.Text.Json.Serialization; +using System.Xml; +using Azure.Storage.Blobs; +using Azure.Storage.Sas; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; +using TNO.Services.AutoClipper.Config; + +namespace TNO.Services.AutoClipper.Azure; + +/// +/// AzureSpeechTranscriptionService class, provides a way to send a file to Azure Speech service and get a transcription. +/// +public class AzureSpeechTranscriptionService : IAzureSpeechTranscriptionService +{ + private const string DefaultApiVersion = "v3.2"; + private static readonly JsonSerializerOptions SerializerOptions = new(JsonSerializerDefaults.Web) + { + PropertyNameCaseInsensitive = true + }; + + private readonly AutoClipperOptions _options; + private readonly ILogger _logger; + private readonly HttpClient _httpClient; + private readonly BlobContainerClient? _containerClient; + + public AzureSpeechTranscriptionService(HttpClient httpClient, IOptions options, ILogger logger) + { + _httpClient = httpClient ?? throw new ArgumentNullException(nameof(httpClient)); + _options = options.Value; + _logger = logger; + + if (!string.IsNullOrWhiteSpace(_options.AzureSpeechStorageConnectionString) && !string.IsNullOrWhiteSpace(_options.AzureSpeechStorageContainer)) + { + _containerClient = new BlobContainerClient(_options.AzureSpeechStorageConnectionString, _options.AzureSpeechStorageContainer); + Console.WriteLine($"Storage: {_containerClient?.AccountName}/{_containerClient?.Name}"); + } + } + + public async Task> TranscribeAsync(string filePath, SpeechTranscriptionRequest request, CancellationToken cancellationToken) + { + if (request == null) throw new ArgumentNullException(nameof(request)); + if (string.IsNullOrWhiteSpace(request.Language)) throw new ArgumentException("Speech recognition language must be provided.", nameof(request)); + if (string.IsNullOrWhiteSpace(filePath) || !File.Exists(filePath)) throw new FileNotFoundException("Audio file does not exist", filePath); + if (string.IsNullOrWhiteSpace(_options.AzureSpeechKey)) throw new InvalidOperationException("Azure Speech key is required for batch transcription."); + if (_containerClient == null) throw new InvalidOperationException("Azure Speech storage connection information must be configured for batch transcription."); + + await _containerClient.CreateIfNotExistsAsync(cancellationToken: cancellationToken).ConfigureAwait(false); + + var blobClient = await UploadAudioAsync(filePath, cancellationToken).ConfigureAwait(false); + try + { + var audioUrl = GenerateReadSasUri(blobClient); + var transcriptionUri = await CreateTranscriptionAsync(audioUrl, Path.GetFileName(filePath), request, cancellationToken).ConfigureAwait(false); + var finalState = await WaitForCompletionAsync(transcriptionUri, cancellationToken).ConfigureAwait(false); + var transcriptUrl = await ResolveTranscriptFileAsync(finalState, cancellationToken).ConfigureAwait(false); + var transcriptJson = await DownloadTranscriptAsync(transcriptUrl, cancellationToken).ConfigureAwait(false); + var segments = ParseTranscript(transcriptJson); + + if (segments.Length == 0) + _logger.LogWarning("Azure batch transcription produced no transcript entries for {File}", filePath); + + return segments; + } + finally + { + try + { + await blobClient.DeleteIfExistsAsync(cancellationToken: CancellationToken.None).ConfigureAwait(false); + } + catch (Exception ex) + { + _logger.LogDebug(ex, "Failed to clean up temporary blob {Blob}", blobClient.Name); + } + } + } + + private async Task UploadAudioAsync(string filePath, CancellationToken cancellationToken) + { + var blobName = $"{Guid.NewGuid():N}-{Path.GetFileName(filePath)}"; + var blobClient = _containerClient!.GetBlobClient(blobName); + await using var stream = File.OpenRead(filePath); + await blobClient.UploadAsync(stream, overwrite: true, cancellationToken).ConfigureAwait(false); + _logger.LogDebug("Uploaded {File} to Azure blob {Blob}", filePath, blobName); + return blobClient; + } + + private Uri GenerateReadSasUri(BlobClient blobClient) + { + if (!blobClient.CanGenerateSasUri) + throw new InvalidOperationException("Unable to generate SAS URI for Azure Speech batch transcription. Ensure the connection string includes an account key."); + + var minutes = _options.AzureSpeechStorageSasExpiryMinutes <= 0 ? 120 : _options.AzureSpeechStorageSasExpiryMinutes; + var builder = new BlobSasBuilder + { + BlobContainerName = blobClient.BlobContainerName, + BlobName = blobClient.Name, + Resource = "b", + ExpiresOn = DateTimeOffset.UtcNow.AddMinutes(Math.Max(5, minutes)) + }; + builder.SetPermissions(BlobSasPermissions.Read); + return blobClient.GenerateSasUri(builder); + } + + private async Task CreateTranscriptionAsync(Uri contentUri, string fileName, SpeechTranscriptionRequest request, CancellationToken cancellationToken) + { + var payload = BuildTranscriptionPayload(contentUri, fileName, request); + var version = GetApiVersion(); + var uri = version.StartsWith("v", StringComparison.OrdinalIgnoreCase) + ? $"{GetSpeechEndpoint()}/speechtotext/{version}/transcriptions" + : $"{GetSpeechEndpoint()}/speechtotext/transcriptions?api-version={version}"; + Console.WriteLine($"POST {uri}"); + Console.WriteLine(JsonSerializer.Serialize(payload, new JsonSerializerOptions { WriteIndented = true })); + using var httpRequest = new HttpRequestMessage(HttpMethod.Post, uri); + ApplyHeaders(httpRequest); + httpRequest.Content = new StringContent(JsonSerializer.Serialize(payload, SerializerOptions), Encoding.UTF8, "application/json"); + + using var response = await _httpClient.SendAsync(httpRequest, cancellationToken).ConfigureAwait(false); + var body = await response.Content.ReadAsStringAsync(cancellationToken).ConfigureAwait(false); + if (!response.IsSuccessStatusCode) + throw new InvalidOperationException($"Azure Speech batch transcription request failed: {(int)response.StatusCode} {response.ReasonPhrase}. {body}"); + + Uri? location = response.Headers.Location; + if (location == null) + { + using var doc = JsonDocument.Parse(body); + if (doc.RootElement.TryGetProperty("self", out var node)) + Uri.TryCreate(node.GetString(), UriKind.Absolute, out location); + } + + if (location == null) + throw new InvalidOperationException("Azure Speech batch transcription response did not include an operation location."); + + _logger.LogInformation("Azure batch transcription created for {File}. Operation: {Operation}", fileName, location); + return EnsureApiVersion(location); + } + + private static object BuildTranscriptionPayload(Uri contentUri, string fileName, SpeechTranscriptionRequest request) + { + var properties = new Dictionary + { + ["wordLevelTimestampsEnabled"] = true, + ["punctuationMode"] = "DictatedAndAutomatic", + ["profanityFilterMode"] = "Masked" + }; + + if (request.EnableSpeakerDiarization) + { + properties["diarizationEnabled"] = true; + if (request.SpeakerCount.HasValue && request.SpeakerCount > 0) + { + properties["diarization"] = new + { + maxSpeakers = request.SpeakerCount.Value + }; + } + } + + return new + { + displayName = $"AutoClipper-{fileName}", + description = "AutoClipper batch transcription", + locale = request.Language, + contentUrls = new[] { contentUri.ToString() }, + properties + }; + } + + private async Task WaitForCompletionAsync(Uri transcriptionUri, CancellationToken cancellationToken) + { + var pollInterval = TimeSpan.FromSeconds(Math.Max(5, _options.AzureSpeechBatchPollingIntervalSeconds <= 0 ? 10 : _options.AzureSpeechBatchPollingIntervalSeconds)); + var timeout = TimeSpan.FromMinutes(Math.Max(5, _options.AzureSpeechBatchTimeoutMinutes <= 0 ? 45 : _options.AzureSpeechBatchTimeoutMinutes)); + var expiry = DateTime.UtcNow + timeout; + + while (true) + { + cancellationToken.ThrowIfCancellationRequested(); + var transcription = await GetTranscriptionAsync(transcriptionUri, cancellationToken).ConfigureAwait(false); + if (transcription == null) + throw new InvalidOperationException("Azure Speech returned an empty transcription status response."); + + var status = transcription.Status ?? string.Empty; + if (status.Equals("succeeded", StringComparison.OrdinalIgnoreCase)) + return transcription; + + if (status.Equals("failed", StringComparison.OrdinalIgnoreCase)) + throw new InvalidOperationException($"Azure batch transcription failed: {BuildErrorMessage(transcription.Error)}"); + + if (DateTime.UtcNow >= expiry) + throw new TimeoutException("Azure batch transcription did not complete before the configured timeout."); + + _logger.LogDebug("Azure batch transcription status for {Id}: {Status}", transcription.Uri ?? transcriptionUri, status); + await Task.Delay(pollInterval, cancellationToken).ConfigureAwait(false); + } + } + + private async Task GetTranscriptionAsync(Uri uri, CancellationToken cancellationToken) + { + using var request = new HttpRequestMessage(HttpMethod.Get, EnsureApiVersion(uri)); + ApplyHeaders(request); + using var response = await _httpClient.SendAsync(request, cancellationToken).ConfigureAwait(false); + var body = await response.Content.ReadAsStringAsync(cancellationToken).ConfigureAwait(false); + if (!response.IsSuccessStatusCode) + throw new InvalidOperationException($"Azure Speech status request failed: {(int)response.StatusCode} {response.ReasonPhrase}. {body}"); + + var transcription = JsonSerializer.Deserialize(body, SerializerOptions); + return transcription; + } + + private async Task ResolveTranscriptFileAsync(BatchTranscription transcription, CancellationToken cancellationToken) + { + var filesLink = transcription.Links?.Files; + if (filesLink == null) + throw new InvalidOperationException("Azure Speech response did not include a files link."); + + using var request = new HttpRequestMessage(HttpMethod.Get, EnsureApiVersion(filesLink)); + ApplyHeaders(request); + using var response = await _httpClient.SendAsync(request, cancellationToken).ConfigureAwait(false); + var body = await response.Content.ReadAsStringAsync(cancellationToken).ConfigureAwait(false); + if (!response.IsSuccessStatusCode) + throw new InvalidOperationException($"Azure Speech file listing failed: {(int)response.StatusCode} {response.ReasonPhrase}. {body}"); + + var files = JsonSerializer.Deserialize(body, SerializerOptions); + var transcriptFile = files?.Values?.FirstOrDefault(f => string.Equals(f.Kind, "Transcription", StringComparison.OrdinalIgnoreCase) && f.Links?.ContentUrl != null); + if (transcriptFile?.Links?.ContentUrl == null) + throw new InvalidOperationException("Azure Speech file listing did not contain a transcription content URL."); + + return transcriptFile.Links.ContentUrl; + } + + private async Task DownloadTranscriptAsync(Uri transcriptUri, CancellationToken cancellationToken) + { + using var request = new HttpRequestMessage(HttpMethod.Get, transcriptUri); + using var response = await _httpClient.SendAsync(request, cancellationToken).ConfigureAwait(false); + response.EnsureSuccessStatusCode(); + return await response.Content.ReadAsStringAsync(cancellationToken).ConfigureAwait(false); + } + + private static TimestampedTranscript[] ParseTranscript(string? json) + { + if (string.IsNullOrWhiteSpace(json)) return Array.Empty(); + + using var document = JsonDocument.Parse(json); + if (!document.RootElement.TryGetProperty("recognizedPhrases", out var phrases) || phrases.ValueKind != JsonValueKind.Array) + return Array.Empty(); + + var results = new List(); + foreach (var phrase in phrases.EnumerateArray()) + { + var start = ReadTimeSpan(phrase, "offset"); + var duration = ReadTimeSpan(phrase, "duration"); + var end = duration > TimeSpan.Zero ? start + duration : start; + var text = ReadPhraseText(phrase); + if (string.IsNullOrWhiteSpace(text)) continue; + if (end <= start) end = start + TimeSpan.FromMilliseconds(100); + results.Add(new TimestampedTranscript(start, end, text.Trim())); + } + + return results + .OrderBy(r => r.Start) + .ToArray(); + } + + private static string? ReadPhraseText(JsonElement phrase) + { + if (phrase.TryGetProperty("nBest", out var nBest) && nBest.ValueKind == JsonValueKind.Array) + { + foreach (var alt in nBest.EnumerateArray()) + { + if (alt.ValueKind != JsonValueKind.Object) continue; + if (alt.TryGetProperty("display", out var display) && display.ValueKind == JsonValueKind.String) + return display.GetString(); + if (alt.TryGetProperty("lexical", out var lexical) && lexical.ValueKind == JsonValueKind.String) + return lexical.GetString(); + } + } + + if (phrase.TryGetProperty("displayText", out var displayText) && displayText.ValueKind == JsonValueKind.String) + return displayText.GetString(); + if (phrase.TryGetProperty("text", out var text) && text.ValueKind == JsonValueKind.String) + return text.GetString(); + + return null; + } + + private static TimeSpan ReadTimeSpan(JsonElement element, string property) + { + if (!element.TryGetProperty(property, out var node)) return TimeSpan.Zero; + if (node.ValueKind == JsonValueKind.Number) + { + if (node.TryGetInt64(out var ticks)) return TimeSpan.FromTicks(ticks); + if (node.TryGetDouble(out var seconds)) return TimeSpan.FromSeconds(seconds); + } + else if (node.ValueKind == JsonValueKind.String) + { + var value = node.GetString(); + if (string.IsNullOrWhiteSpace(value)) return TimeSpan.Zero; + if (long.TryParse(value, NumberStyles.Integer, CultureInfo.InvariantCulture, out var ticks)) return TimeSpan.FromTicks(ticks); + if (double.TryParse(value, NumberStyles.Float, CultureInfo.InvariantCulture, out var seconds)) return TimeSpan.FromSeconds(seconds); + if (TimeSpan.TryParse(value, CultureInfo.InvariantCulture, out var ts)) return ts; + if (TryParseIsoDuration(value, out var isoTs)) return isoTs; + } + + return TimeSpan.Zero; + } + + private static bool TryParseIsoDuration(string value, out TimeSpan result) + { + try + { + result = XmlConvert.ToTimeSpan(value); + return true; + } + catch (Exception) + { + result = TimeSpan.Zero; + return false; + } + } + + private string BuildErrorMessage(BatchTranscriptionError? error) + { + if (error == null) return "Unknown error"; + var builder = new StringBuilder(); + AppendError(builder, error); + return builder.ToString(); + } + + private void AppendError(StringBuilder builder, BatchTranscriptionError? error) + { + if (error == null) return; + if (builder.Length > 0) builder.Append(" -> "); + builder.Append(error.Code); + if (!string.IsNullOrWhiteSpace(error.Message)) + { + builder.Append(':').Append(' ').Append(error.Message); + } + if (error.InnerError != null) AppendError(builder, error.InnerError); + } + + private void ApplyHeaders(HttpRequestMessage request) + { + request.Headers.Remove("Ocp-Apim-Subscription-Key"); + request.Headers.Add("Ocp-Apim-Subscription-Key", _options.AzureSpeechKey); + } + + private Uri EnsureApiVersion(Uri uri) + { + if (uri == null) throw new ArgumentNullException(nameof(uri)); + if (!string.IsNullOrWhiteSpace(uri.Query) && uri.Query.Contains("api-version", StringComparison.OrdinalIgnoreCase)) + return uri; + + var builder = new UriBuilder(uri); + var query = builder.Query.TrimStart('?'); + var version = $"api-version={GetApiVersion()}"; + builder.Query = string.IsNullOrWhiteSpace(query) ? version : $"{query}&{version}"; + return builder.Uri; + } + + private string GetApiVersion() => string.IsNullOrWhiteSpace(_options.AzureSpeechBatchApiVersion) ? DefaultApiVersion : _options.AzureSpeechBatchApiVersion; + + private string GetSpeechEndpoint() + { + if (!string.IsNullOrWhiteSpace(_options.AzureSpeechBatchEndpoint)) + return _options.AzureSpeechBatchEndpoint.TrimEnd('/'); + if (!string.IsNullOrWhiteSpace(_options.AzureSpeechRegion)) + return $"https://{_options.AzureSpeechRegion}.api.cognitive.microsoft.com"; + throw new InvalidOperationException("Azure Speech region or endpoint must be configured."); + } + + private sealed record BatchTranscription( + [property: JsonPropertyName("self")] Uri? Uri, + [property: JsonPropertyName("status")] string? Status, + [property: JsonPropertyName("links")] BatchTranscriptionLinks? Links, + [property: JsonPropertyName("error")] BatchTranscriptionError? Error); + + private sealed record BatchTranscriptionLinks( + [property: JsonPropertyName("files")] Uri? Files, + [property: JsonPropertyName("content")] Uri? Content); + + private sealed record BatchTranscriptionError( + [property: JsonPropertyName("code")] string? Code, + [property: JsonPropertyName("message")] string? Message, + [property: JsonPropertyName("innerError")] BatchTranscriptionError? InnerError); + + private sealed record BatchTranscriptionFilesResponse( + [property: JsonPropertyName("values")] IReadOnlyList? Values); + + private sealed record BatchTranscriptionFile( + [property: JsonPropertyName("name")] string? Name, + [property: JsonPropertyName("kind")] string? Kind, + [property: JsonPropertyName("links")] BatchTranscriptionFileLinks? Links); + + private sealed record BatchTranscriptionFileLinks( + [property: JsonPropertyName("contentUrl")] Uri? ContentUrl); +} + + + + + + + + + diff --git a/services/net/auto-clipper/Azure/IAzureSpeechTranscriptionService.cs b/services/net/auto-clipper/Azure/IAzureSpeechTranscriptionService.cs new file mode 100644 index 0000000000..7894bf240f --- /dev/null +++ b/services/net/auto-clipper/Azure/IAzureSpeechTranscriptionService.cs @@ -0,0 +1,6 @@ +namespace TNO.Services.AutoClipper.Azure; + +public interface IAzureSpeechTranscriptionService +{ + Task> TranscribeAsync(string filePath, SpeechTranscriptionRequest request, CancellationToken cancellationToken); +} diff --git a/services/net/auto-clipper/Azure/IAzureVideoIndexerClient.cs b/services/net/auto-clipper/Azure/IAzureVideoIndexerClient.cs new file mode 100644 index 0000000000..b8742b3d2f --- /dev/null +++ b/services/net/auto-clipper/Azure/IAzureVideoIndexerClient.cs @@ -0,0 +1,11 @@ +using System.Collections.Generic; +using System.IO; +using System.Threading; +using System.Threading.Tasks; + +namespace TNO.Services.AutoClipper.Azure; + +public interface IAzureVideoIndexerClient +{ + Task> GenerateTranscriptAsync(Stream stream, string fileName, string language, CancellationToken cancellationToken = default); +} diff --git a/services/net/auto-clipper/Azure/SpeechTranscriptionRequest.cs b/services/net/auto-clipper/Azure/SpeechTranscriptionRequest.cs new file mode 100644 index 0000000000..f0e7b7f556 --- /dev/null +++ b/services/net/auto-clipper/Azure/SpeechTranscriptionRequest.cs @@ -0,0 +1,9 @@ +namespace TNO.Services.AutoClipper.Azure; + +public class SpeechTranscriptionRequest +{ + public string Language { get; init; } = "en-US"; + public bool EnableSpeakerDiarization { get; init; } + public int? SpeakerCount { get; init; } + public string? DiarizationMode { get; init; } +} diff --git a/services/net/auto-clipper/Azure/TimestampedTranscript.cs b/services/net/auto-clipper/Azure/TimestampedTranscript.cs new file mode 100644 index 0000000000..02795aef9e --- /dev/null +++ b/services/net/auto-clipper/Azure/TimestampedTranscript.cs @@ -0,0 +1,5 @@ +using System; + +namespace TNO.Services.AutoClipper.Azure; + +public record TimestampedTranscript(TimeSpan Start, TimeSpan End, string Text); diff --git a/services/net/auto-clipper/Config/AutoClipperOptions.cs b/services/net/auto-clipper/Config/AutoClipperOptions.cs new file mode 100644 index 0000000000..cee1d3a4e2 --- /dev/null +++ b/services/net/auto-clipper/Config/AutoClipperOptions.cs @@ -0,0 +1,131 @@ +using System.ComponentModel.DataAnnotations; +using TNO.Services.Config; + +namespace TNO.Services.AutoClipper.Config; + +public class AutoClipperOptions : ServiceOptions +{ + /// + /// get/set - The topic name in Kafka to subscriber for work orders. + /// + public string Topics { get; set; } = "request-clips"; + + /// + /// get/set - The path to the mapped volume containing the files. + /// + public string VolumePath { get; set; } = ""; + + /// + /// get/set - An array of tag codes to add to content when it is created. + /// + public string[] ApplyTags { get; set; } = []; + + /// + /// get/set - Path to the location station configuration files are stored. + /// + public string StationConfigPath { get; set; } = Path.Combine("Config", "Stations"); + + /// + /// get/set - The maximum number of stories to generate from a clip. + /// + public int MaxStoriesFromClip { get; set; } = 5; + + #region Azure Speech Service configuration + /// + /// get/set - The API key to use Azure Speech services. + /// + public string AzureSpeechKey { get; set; } = ""; + + /// + /// get/set - The region the Azure speech services is deployed. + /// + public string AzureSpeechRegion { get; set; } = ""; + + /// + /// get/set - The URL endpoint to the batch service. + /// + public string AzureSpeechBatchEndpoint { get; set; } = string.Empty; + + /// + /// get/set - The API version. + /// + public string AzureSpeechBatchApiVersion { get; set; } = "v3.2"; + + /// + /// get/set - Configure Azure speech services. + /// + public int AzureSpeechBatchPollingIntervalSeconds { get; set; } = 10; + + /// + /// get/set - Configure Azure speech services. + /// + public int AzureSpeechBatchTimeoutMinutes { get; set; } = 45; + + /// + /// get/set - Configure Azure speech services. + /// + public string DefaultTranscriptLanguage { get; set; } = "en-US"; + + /// + /// get/set - Configure Azure speech services. + /// + public int AzureSpeechMaxRetries { get; set; } = 3; + + /// + /// get/set - Configure Azure speech services. + /// + public int AzureSpeechRetryDelaySeconds { get; set; } = 5; + #endregion + + #region Azure Storage configuration + /// + /// get/set - Configure Azure storage connection string. + /// + public string AzureSpeechStorageConnectionString { get; set; } = string.Empty; + + /// + /// get/set - Configure Azure speech services. + /// + public string AzureSpeechStorageContainer { get; set; } = string.Empty; + + /// + /// get/set - Configure Azure storage services. + /// + public int AzureSpeechStorageSasExpiryMinutes { get; set; } = 180; + #endregion + + #region Azure AI configuration + /// + /// get/set - The URL to the LLM + /// + [Required] + public Uri LlmApiUrl { get; set; } = default!; + + /// + /// get/set - The API key + /// + [Required] + public string LlmApiKey { get; set; } = ""; + + /// + /// get/set - The LLM model to use. + /// + public string LlmDefaultModel { get; set; } = ""; + + /// + /// get/set - The Default LLM prompt. + /// + public string LlmPrompt { get; set; } = string.Empty; + + /// + /// get/set - The maximum prompt character limit. + /// + public int LlmPromptCharacterLimit { get; set; } = 0; + + /// + /// get/set - The LLM boundary score threshold. + /// + public double LlmBoundaryScoreThreshold { get; set; } = 0.55; + #endregion + +} diff --git a/services/net/auto-clipper/Config/StationConfigurationService.cs b/services/net/auto-clipper/Config/StationConfigurationService.cs new file mode 100644 index 0000000000..bc8725b006 --- /dev/null +++ b/services/net/auto-clipper/Config/StationConfigurationService.cs @@ -0,0 +1,76 @@ +using System.Collections.Concurrent; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; +using YamlDotNet.Serialization; +using YamlDotNet.Serialization.NamingConventions; + +namespace TNO.Services.AutoClipper.Config; + +public interface IStationConfigurationService +{ + StationProfile GetProfile(string? stationCode); +} + +public class StationConfigurationService : IStationConfigurationService +{ + private readonly ILogger _logger; + private readonly ConcurrentDictionary _profiles = new(StringComparer.OrdinalIgnoreCase); + private readonly StationProfile _defaultProfile = new(); + + public StationConfigurationService(IOptions options, ILogger logger) + { + _logger = logger; + LoadProfiles(options.Value.StationConfigPath); + } + + public StationProfile GetProfile(string? stationCode) + { + if (!string.IsNullOrWhiteSpace(stationCode) && _profiles.TryGetValue(stationCode, out var profile)) + return profile; + if (_profiles.TryGetValue("default", out var defaultProfile)) + return defaultProfile; + return _defaultProfile; + } + + private void LoadProfiles(string? path) + { + if (string.IsNullOrWhiteSpace(path)) { _logger.LogWarning("StationConfigPath not set; using defaults"); return; } + var basePath = Path.IsPathRooted(path) ? path : Path.Combine(AppContext.BaseDirectory, path); + if (Directory.Exists(basePath)) + { + foreach (var file in Directory.EnumerateFiles(basePath, "*.yml", SearchOption.TopDirectoryOnly) + .Concat(Directory.EnumerateFiles(basePath, "*.yaml", SearchOption.TopDirectoryOnly))) + { + TryLoadProfile(file); + } + } + else if (File.Exists(basePath)) + { + TryLoadProfile(basePath); + } + else + { + _logger.LogWarning("Station configuration path '{path}' not found.", basePath); + } + } + + private void TryLoadProfile(string file) + { + try + { + var deserializer = new DeserializerBuilder() + .WithNamingConvention(UnderscoredNamingConvention.Instance) + .IgnoreUnmatchedProperties() + .Build(); + using var reader = File.OpenText(file); + var profile = deserializer.Deserialize(reader); + if (string.IsNullOrWhiteSpace(profile.Name)) profile.Name = Path.GetFileNameWithoutExtension(file); + _profiles[profile.Name] = profile; + _logger.LogInformation("Loaded station profile '{Name}' from {File}", profile.Name, file); + } + catch (Exception ex) + { + _logger.LogError(ex, "Failed to load station profile from {File}", file); + } + } +} diff --git a/services/net/auto-clipper/Config/StationProfile.cs b/services/net/auto-clipper/Config/StationProfile.cs new file mode 100644 index 0000000000..408475cba5 --- /dev/null +++ b/services/net/auto-clipper/Config/StationProfile.cs @@ -0,0 +1,53 @@ +namespace TNO.Services.AutoClipper.Config; + +public class StationProfile +{ + public string Name { get; set; } = "default"; + public int SampleRate { get; set; } = 16000; + public StationTranscriptionProfile Transcription { get; set; } = new(); + public StationTextProfile Text { get; set; } = new(); + public StationHeuristicProfile Heuristics { get; set; } = new StationHeuristicProfile(); +} + +public class StationTranscriptionProfile +{ + public string Provider { get; set; } = "azure_speech"; + public bool Diarization { get; set; } + public int? MaxSpeakers { get; set; } + public string? DiarizationMode { get; set; } = "online"; + public string Language { get; set; } = "en-US"; + public int SampleRate { get; set; } = 16000; +} + +public class StationTextProfile +{ + public double ChunkSizeSeconds { get; set; } = 3.0; + public double ChunkOverlapRatio { get; set; } = 0.5; + public double HeuristicBoundaryWeight { get; set; } = 0.15; + public Dictionary KeywordCategories { get; set; } = new(); + public bool LlmSegmentation { get; set; } = true; + public string LlmModel { get; set; } = string.Empty; + public float? LlmTemperature { get; set; } + public string LlmPrompt { get; set; } = string.Empty; + public string? SystemPrompt { get; set; } + public bool? LlmDiarization { get; set; } = null; + public int? PromptCharacterLimit { get; set; } + public int? MaxStories { get; set; } +} + +public class StationHeuristicProfile +{ + public Dictionary BoundaryWeights { get; set; } = new(); + public List KeywordPatterns { get; set; } = new(); + public List PatternEntries { get; set; } = new(); +} + +public class StationHeuristicPattern +{ + public string Pattern { get; set; } = string.Empty; + public double? Weight { get; set; } + public string? Category { get; set; } + public string? Note { get; set; } +} + + diff --git a/services/net/auto-clipper/Config/Stations/CKNW.yml b/services/net/auto-clipper/Config/Stations/CKNW.yml new file mode 100644 index 0000000000..105b3bef7e --- /dev/null +++ b/services/net/auto-clipper/Config/Stations/CKNW.yml @@ -0,0 +1,87 @@ +# Station specific configuration for CKNW. Adjust as needed. +name: CKNW +sample_rate: 16000 +transcription: + provider: azure_speech + diarization: false + max_speakers: 10 + language: en-CA +text: + chunk_size_s: 3.0 + chunk_overlap_ratio: 0.5 + heuristic_boundary_weight: 0.35 + keyword_categories: + "(?i)traffic": Traffic + "(?i)weather": Weather + "(?i)sponsor": Ad + "(?i)commercial": Ad + "(?i)up next": Promo + "(?i)coming up": Promo + llm_segmentation: true + llm_model: gpt-5.1-chat + llm_temperature: 1 + system_prompt: | + You are a Broadcast Structure Parser. Your ONLY job is to detect segment transitions. + Output MUST be a single, raw JSON object. + CRITICAL: Start your response with '{' and end with '}'. + DO NOT use markdown, backticks, or "```json" blocks. No introductory or closing text. + max_stories: 15 + llm_prompt: | + Identify every point in the transcript where the topic or segment type changes. + + # STRUCTURAL RULES (To Prevent Bundling) + 1. **The Sign-off Rule**: Phrases like "Global News," "CBC News," or "Reporting live" followed by a name mark the END of a segment. The very next sentence MUST be a new boundary. + 2. **The Handoff Rule**: When an anchor introduces a reporter (e.g., "As Joshua reports..."), the boundary starts at the ANCHOR'S introduction line. + 3. **Mandatory Category Split**: News, Traffic, Weather, and Ads MUST be isolated. Never bundle a Traffic report with a News story. + 4. **Zero Bloating**: Treat every unique headline as a separate clip. If the topic shifts from a shooting to a stabbing, create two distinct boundaries. + + # OUTPUT FORMAT (Raw JSON ONLY) + { + "boundaries": [ + { + "index": [Sentence Number], + "category": "News | Traffic | Weather | Ad | Promo", + "title": "[Short Slug]", + "summary": "[One Sentence Recap]", + "score": 0.95 + } + ] + } + + Transcript: + {{transcript}} +heuristics: + pattern_entries: + # --- Existing Patterns --- + - pattern: "(?i)coming up" + weight: 0.65 + category: Promo + note: Host tease for the next story + - pattern: "(?i)after the break" + weight: 0.65 + category: Promo + note: Signals a hard break/transition + + # --- New Anchor-Specific Patterns --- + - pattern: "(?i)Ian Wilson" + weight: 0.85 + category: Traffic + note: Mandatory Traffic anchor introduction + - pattern: "(?i)Mark Madryga" + weight: 0.85 + category: Weather + note: Mandatory Weather anchor introduction + - pattern: "(?i)John Straight" + weight: 0.60 + category: News + note: Primary News anchor reset + + # --- Service Cues --- + - pattern: "(?i)traffic update" + weight: 0.6 + category: Traffic + note: Recurring traffic block + - pattern: "(?i)weather update" + weight: 0.55 + category: Weather + note: Weather hits are their own segments diff --git a/services/net/auto-clipper/Dockerfile b/services/net/auto-clipper/Dockerfile new file mode 100644 index 0000000000..801705c462 --- /dev/null +++ b/services/net/auto-clipper/Dockerfile @@ -0,0 +1,43 @@ + +FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build + +ENV DOTNET_CLI_HOME=/tmp +ENV PATH="$PATH:/tmp/.dotnet/tools" +ENV ASPNETCORE_ENVIRONMENT=Production + +# Switch to root for package installs +USER 0 + +WORKDIR /src +COPY services/net/auto-clipper services/net/auto-clipper +COPY libs/net libs/net + +RUN fix_permissions() { while [ $# -gt 0 ] ; do chgrp -R 0 "$1" && chmod -R g=u "$1"; shift; done } && \ + fix_permissions "/tmp" + +WORKDIR /src/services/net/auto-clipper +RUN dotnet build -c $ASPNETCORE_ENVIRONMENT -o /build + +FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS deploy + +WORKDIR /app +COPY --from=build /build . + +# This volume is the local storage for uploaded files. +RUN mkdir /data +VOLUME /data + +# [Optional] Uncomment this section to install additional OS packages. +RUN apt-get update --fix-missing && apt-get -y upgrade \ + && export DEBIAN_FRONTEND=noninteractive \ + && apt-get -y install --no-install-recommends procps curl ffmpeg +RUN apt-get -y install \ + libc6-dev libgdiplus libgdiplus libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev \ + gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly \ + gstreamer1.0-libav gstreamer1.0-tools gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 gstreamer1.0-pulseaudio \ + gstreamer1.0-x + +# Run container by default as user with id 1001 (default) +USER 1001 + +ENTRYPOINT ["dotnet", "TNO.Services.AutoClipper.dll"] diff --git a/services/net/auto-clipper/Exceptions.cs b/services/net/auto-clipper/Exceptions.cs new file mode 100644 index 0000000000..7dc30e6076 --- /dev/null +++ b/services/net/auto-clipper/Exceptions.cs @@ -0,0 +1,42 @@ +using System; + +namespace TNO.Services.AutoClipper.Exceptions +{ + public class FileMissingException : Exception + { + public long ContentId { get; } + public string Path { get; } + + public FileMissingException(long contentId, string path) + : base($"File missing for Content ID: {contentId}. Path: {path}") + { + ContentId = contentId; + Path = path; + } + } + + public class EmptyTranscriptException : Exception + { + public long ContentId { get; } + + public EmptyTranscriptException(long contentId) + : base($"Content did not generate a transcript. Content ID: {contentId}") + { + ContentId = contentId; + } + } + + public class ContentNotFoundException : Exception + { + public long ContentId { get; } + + public ContentNotFoundException(long contentId) + : base($"Content no longer exists. Content ID: {contentId}") + { + ContentId = contentId; + } + } + + + +} \ No newline at end of file diff --git a/services/net/auto-clipper/LLM/ClipDefinition.cs b/services/net/auto-clipper/LLM/ClipDefinition.cs new file mode 100644 index 0000000000..ff997e17f5 --- /dev/null +++ b/services/net/auto-clipper/LLM/ClipDefinition.cs @@ -0,0 +1,11 @@ +using System; + +namespace TNO.Services.AutoClipper.LLM; + +/// +/// Represents a suggested clip from the LLM response. +/// +public record ClipDefinition(string Title, string Summary, TimeSpan Start, TimeSpan End, string Category = "News") +{ + public bool IsValid => End > Start; +} diff --git a/services/net/auto-clipper/LLM/ClipSegmentationService.cs b/services/net/auto-clipper/LLM/ClipSegmentationService.cs new file mode 100644 index 0000000000..87f2ac2dff --- /dev/null +++ b/services/net/auto-clipper/LLM/ClipSegmentationService.cs @@ -0,0 +1,471 @@ +using System.Globalization; +using System.Net.Http.Json; +using System.Text; +using System.Text.Json; +using System.Text.RegularExpressions; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; +using TNO.Core.Exceptions; +using TNO.Core.Extensions; +using TNO.Services.AutoClipper.Azure; +using TNO.Services.AutoClipper.Config; +using TNO.Services.AutoClipper.LLM.Models; + +namespace TNO.Services.AutoClipper.LLM; + +/// +/// ClipSegmentationService class, provides a way to send a transcript to Azure Open AI to identify separate stories within the transcript. +/// +public class ClipSegmentationService : IClipSegmentationService +{ + private const string DefaultSystemPrompt = "You are a news segment tool. Analyze timestamped transcripts, choose where new stories begin, and output JSON suitable for ffmpeg clip creation."; + + private const int ParagraphSentenceCount = 4; + + private const string DefaultPrompt = """ +You will receive a transcript formatted as numbered sentences (index. timestamp range :: sentence). +Identify up to {{max_clips}} places where a new story starts and return ONLY JSON: +{ + \"boundaries\": [ + {\"index\": 12, \"title\": \"slug\", \"summary\": \"recap\", \"score\": 0.82} + ] +} + +Rules: +- `index` is the numbered sentence (1-based) where the new story begins. +- `score` ranges from 0-1; higher means stronger confidence. +- Consider the optional heuristic cues before discarding a boundary. +- Keep boundaries chronological and avoid duplicates. +- Do not invent timestamps; rely only on the provided lines. + +Heuristic cues (if provided): +{{heuristic_notes}} + +Transcript: +{{transcript}} +"""; + + private readonly HttpClient _httpClient; + private readonly AutoClipperOptions _options; + private readonly ILogger _logger; + + public ClipSegmentationService(HttpClient httpClient, IOptions options, ILogger logger) + { + _httpClient = httpClient; + _options = options.Value; + _logger = logger; + } + + public async Task> GenerateClipsAsync(IReadOnlyList transcript, ClipSegmentationSettings? settings, CancellationToken cancellationToken) + { + if (transcript == null || transcript.Count == 0) + return []; + + if (_options.LlmApiUrl == null || string.IsNullOrWhiteSpace(_options.LlmApiKey)) + throw new InvalidOperationException("LLM configuration is missing the Azure OpenAI endpoint, or API key."); + + try + { + var heuristicHits = BuildHeuristicHits(transcript, settings); + var prompt = BuildPrompt(transcript, settings, heuristicHits); + var systemPrompt = string.IsNullOrWhiteSpace(settings?.SystemPrompt) ? DefaultSystemPrompt : settings!.SystemPrompt!; + var payload = new + { + model = string.IsNullOrWhiteSpace(settings?.ModelOverride) ? _options.LlmDefaultModel : settings!.ModelOverride!, + temperature = settings!.TemperatureOverride, + messages = new object[] + { + new { role = "system", content = systemPrompt }, + new { role = "user", content = prompt } + } + }; + + var requestUri = _options.LlmApiUrl; + _logger.LogDebug("Sending LLM segmentation request to {RequestUri} with payload: {Payload}", requestUri, JsonSerializer.Serialize(payload)); + using var request = new HttpRequestMessage(HttpMethod.Post, requestUri); + request.Headers.Add("api-key", _options.LlmApiKey); + request.Content = JsonContent.Create(payload); + + using var response = await _httpClient.SendAsync(request, cancellationToken); + var body = await response.Content.ReadAsStringAsync(cancellationToken); + + if (response.IsSuccessStatusCode) + { + + var clipDefinitions = ParseResponse(body, transcript, settings, heuristicHits); + if (clipDefinitions.Count == 0) + { + _logger.LogWarning("LLM segmentation did not return any clips."); + return []; + } + + return clipDefinitions; + } + else + { + var responseException = new HttpClientRequestException(response); + _logger.LogError(responseException, "Failed to segment transcript with LLM. Error: {Details}", body); + return []; + } + } + catch (Exception ex) + { + _logger.LogError(ex, "Failed to segment transcript with LLM. Error: {Details}", ex.GetAllMessages()); + return []; + } + } + + private string BuildPrompt(IReadOnlyList transcript, ClipSegmentationSettings? overrides, IReadOnlyList heuristicHits) + { + var template = !string.IsNullOrWhiteSpace(overrides?.PromptOverride) + ? overrides!.PromptOverride! + : string.IsNullOrWhiteSpace(_options.LlmPrompt) ? DefaultPrompt : _options.LlmPrompt; + var includesHeuristicPlaceholder = template.Contains("{{heuristic_notes}}"); + var limit = ResolvePromptLimit(overrides?.PromptCharacterLimit); + var transcriptBody = BuildPromptTranscript(transcript, limit); + var heuristicNotes = BuildHeuristicNotes(heuristicHits, transcript); + + var maxClips = overrides?.MaxStories ?? _options.MaxStoriesFromClip; + if (maxClips <= 0) maxClips = _options.MaxStoriesFromClip; + + var prompt = template + .Replace("{{max_clips}}", maxClips.ToString(CultureInfo.InvariantCulture)) + .Replace("{{transcript}}", transcriptBody) + .Replace("{{heuristic_notes}}", heuristicNotes); + + if (!includesHeuristicPlaceholder && !string.IsNullOrWhiteSpace(heuristicNotes)) + { + prompt += "\n\nHeuristic cues (for reference):\n" + heuristicNotes; + } + + return prompt; + } + + private int? ResolvePromptLimit(int? overrideLimit) + { + if (overrideLimit.HasValue) + return overrideLimit.Value > 0 ? overrideLimit.Value : null; + + return _options.LlmPromptCharacterLimit > 0 ? _options.LlmPromptCharacterLimit : null; + } + + private static string BuildPromptTranscript(IReadOnlyList transcript, int? limit) + { + var builder = new StringBuilder(); + builder.AppendLine("Sentences:"); + for (var i = 0; i < transcript.Count; i++) + { + var sentence = transcript[i]; + if (string.IsNullOrWhiteSpace(sentence.Text)) continue; + var line = $"{i + 1}. {FormatTimestamp(sentence.Start)} --> {FormatTimestamp(sentence.End)} :: {sentence.Text.Trim()}"; + if (limit.HasValue && builder.Length + line.Length > limit.Value) + break; + builder.AppendLine(line); + } + + builder.AppendLine(); + builder.AppendLine("Paragraphs:"); + var paragraphNumber = 1; + var index = 0; + while (index < transcript.Count && (!limit.HasValue || builder.Length < limit.Value)) + { + var start = index; + var end = Math.Min(index + ParagraphSentenceCount, transcript.Count); + var sentences = new List(); + for (var j = start; j < end; j++) + { + var sentence = transcript[j]; + if (string.IsNullOrWhiteSpace(sentence.Text)) continue; + sentences.Add(sentence.Text.Trim()); + } + + if (sentences.Count > 0) + { + var line = $"Paragraph {paragraphNumber} (sentences {start + 1}-{end}): {string.Join(" / ", sentences)}"; + if (limit.HasValue && builder.Length + line.Length > limit.Value) break; + builder.AppendLine(line); + paragraphNumber++; + } + + index += ParagraphSentenceCount; + } + + return builder.ToString(); + } + + private static string BuildHeuristicNotes(IReadOnlyList? hits, IReadOnlyList transcript) + { + if (hits == null || hits.Count == 0) return ""; + var sb = new StringBuilder(); + foreach (var hit in hits.OrderBy(h => h.Index)) + { + var sentence = transcript[hit.Index]; + var snippet = string.IsNullOrWhiteSpace(sentence.Text) ? string.Empty : sentence.Text.Trim(); + var meta = BuildHeuristicMeta(hit); + sb.AppendLine($"Sentence {hit.Index + 1} ({FormatTimestamp(sentence.Start)}): '{hit.Pattern}'{meta} -> {snippet}"); + } + return sb.ToString().Trim(); + } + + private static string BuildHeuristicMeta(HeuristicHit hit) + { + var parts = new List { $"w={hit.Weight:0.00}" }; + if (!string.IsNullOrWhiteSpace(hit.Category)) parts.Add($"cat={hit.Category}"); + if (!string.IsNullOrWhiteSpace(hit.Note)) parts.Add(hit.Note!); + return parts.Count == 0 ? string.Empty : $" [{string.Join(", ", parts)}]"; + } + private IReadOnlyList BuildHeuristicHits(IReadOnlyList transcript, ClipSegmentationSettings? settings) + { + if (transcript == null || transcript.Count == 0) return Array.Empty(); + var patternEntries = settings?.HeuristicPatternEntries; + var legacyPatterns = settings?.KeywordPatterns; + var baseWeight = settings?.HeuristicBoundaryWeight ?? 0; + var hasEntryOverrides = patternEntries != null && patternEntries.Count > 0; + if (!hasEntryOverrides && (legacyPatterns == null || legacyPatterns.Count == 0)) return Array.Empty(); + if (!hasEntryOverrides && baseWeight <= 0) return Array.Empty(); + + var hits = new List(); + var categoryLookup = settings?.KeywordCategories ?? new Dictionary(); + + void AddMatches(string pattern, double weight, string? category, string? note) + { + if (string.IsNullOrWhiteSpace(pattern) || weight <= 0) return; + Regex regex; + try + { + regex = new Regex(pattern, RegexOptions.IgnoreCase | RegexOptions.Compiled); + } + catch (Exception ex) + { + _logger.LogWarning(ex, "Invalid heuristic pattern: {Pattern}", pattern); + return; + } + + for (var i = 0; i < transcript.Count; i++) + { + var textValue = transcript[i].Text; + if (string.IsNullOrWhiteSpace(textValue)) continue; + if (regex.IsMatch(textValue)) + hits.Add(new HeuristicHit(i, pattern, weight, category, note)); + } + } + + if (hasEntryOverrides) + { + foreach (var entry in patternEntries!) + { + if (entry == null || string.IsNullOrWhiteSpace(entry.Pattern)) continue; + var weight = entry.Weight ?? baseWeight; + if (weight <= 0) continue; + var category = !string.IsNullOrWhiteSpace(entry.Category) + ? entry.Category + : (categoryLookup.TryGetValue(entry.Pattern, out var mapped) ? mapped : null); + AddMatches(entry.Pattern, weight, category, entry.Note); + } + } + else if (legacyPatterns != null) + { + foreach (var pattern in legacyPatterns) + { + if (string.IsNullOrWhiteSpace(pattern)) continue; + var category = categoryLookup.TryGetValue(pattern, out var mappedCategory) ? mappedCategory : null; + AddMatches(pattern, baseWeight, category, null); + } + } + + return hits; + } + + private IReadOnlyList ParseResponse(string? body, IReadOnlyList transcript, ClipSegmentationSettings? settings, IReadOnlyList heuristicHits) + { + if (string.IsNullOrWhiteSpace(body)) return []; + + try + { + body = StripCodeFence(body); + var doc = JsonSerializer.Deserialize(body); + if (doc == null || doc.Choices == null || doc.Choices.Count == 0) + { + _logger.LogWarning("LLM response deserialization resulted in null or empty choices."); + return []; + } + + var candidates = new List(); + foreach (var content in doc.Choices?.Select(c => c.Message?.Content).Where(c => c != null) ?? []) + { + if (content == null) continue; + + var boundaries = JsonSerializer.Deserialize(content!); + if (boundaries == null || boundaries.Boundaries == null) continue; + foreach (var boundary in boundaries.Boundaries) + { + var rawIndex = boundary.Index; + if (rawIndex <= 0) + continue; + var zeroIndex = Math.Clamp(rawIndex - 1, 0, transcript.Count - 1); + var title = string.IsNullOrWhiteSpace(boundary.Title) ? "Clip" : boundary.Title; + var summary = string.IsNullOrWhiteSpace(boundary.Summary) ? string.Empty : boundary.Summary; + var category = string.IsNullOrWhiteSpace(boundary.Category) ? null : boundary.Category; + var score = Math.Clamp(boundary.Score, 0, 1); + candidates.Add(new BoundaryCandidate(zeroIndex, title, summary, score, false, category)); + } + } + + var threshold = Math.Clamp(_options.LlmBoundaryScoreThreshold, 0, 1); + return CreateClipDefinitions(transcript, candidates, threshold, heuristicHits); + } + catch (Exception ex) + { + _logger.LogError(ex, "Unable to parse LLM segmentation response. Raw body: {body}", body); + return []; + } + } + + private IReadOnlyList CreateClipDefinitions(IReadOnlyList transcript, List candidates, double threshold, IReadOnlyList heuristicHits) + { + if (transcript == null || transcript.Count == 0) + return []; + + var map = new Dictionary(); + foreach (var candidate in candidates) + { + var index = Math.Clamp(candidate.Index, 0, transcript.Count - 1); + if (!map.TryGetValue(index, out var existing) || candidate.Score > existing.Score) + map[index] = candidate with { Index = index }; + } + + if (heuristicHits != null && heuristicHits.Count > 0) + { + foreach (var hit in heuristicHits) + { + var index = Math.Clamp(hit.Index, 0, transcript.Count - 1); + var heuristicCandidate = new BoundaryCandidate(index, $"Heuristic boundary ({hit.Pattern})", string.Empty, hit.Weight, true, hit.Category); + if (!map.TryGetValue(index, out var existing) || heuristicCandidate.Score > existing.Score) + map[index] = heuristicCandidate; + } + } + + var ordered = map.Values.OrderBy(c => c.Index).ToList(); + if (ordered.Count == 0) + ordered.Add(new BoundaryCandidate(0, "Full Program", "AutoClipper fallback clip", 1)); + + if (ordered[0].Index != 0) + ordered.Insert(0, ordered[0] with { Index = 0, Score = 1, IsHeuristic = false }); + + var filtered = new List(); + foreach (var candidate in ordered) + { + if (candidate.Index == 0 || candidate.Score >= threshold) + filtered.Add(candidate); + } + if (filtered.Count == 0) + filtered.Add(new BoundaryCandidate(0, "Full Program", "AutoClipper fallback clip", 1)); + + var list = new List(); + for (var i = 0; i < filtered.Count; i++) + { + var boundary = filtered[i]; + var start = transcript[boundary.Index].Start; + var endIndex = i + 1 < filtered.Count ? filtered[i + 1].Index : transcript.Count - 1; + var end = i + 1 < filtered.Count ? transcript[filtered[i + 1].Index].Start : transcript[^1].End; + if (end <= start) continue; + var title = string.IsNullOrWhiteSpace(boundary.Title) ? $"Clip {i + 1}" : boundary.Title; + var summary = string.IsNullOrWhiteSpace(boundary.Summary) ? string.Empty : boundary.Summary; + var category = DetermineCategory(boundary, heuristicHits, boundary.Index, endIndex) ?? "News"; + list.Add(new ClipDefinition(title, summary, start, end, category)); + _logger.LogInformation("Boundary {BoundaryIndex}: {Title} ({Start}-{End}) Score={Score:0.00} Heuristic={IsHeuristic} Category={Category}", boundary.Index + 1, title, start, end, boundary.Score, boundary.IsHeuristic, category); + } + + return FilterOverlaps(list); + } + + private static string? DetermineCategory(BoundaryCandidate boundary, IReadOnlyList? hits, int startIndex, int endIndex) + { + if (!string.IsNullOrWhiteSpace(boundary.Category)) return boundary.Category; + if (hits == null || hits.Count == 0) return null; + var best = hits + .Where(h => h.Index >= startIndex && h.Index <= endIndex) + .OrderByDescending(h => h.Weight) + .ThenBy(h => h.Index) + .FirstOrDefault(h => !string.IsNullOrWhiteSpace(h.Category)); + return best?.Category; + } + + private sealed record BoundaryCandidate(int Index, string Title, string Summary, double Score, bool IsHeuristic = false, string? Category = null); + + private sealed record HeuristicHit(int Index, string Pattern, double Weight, string? Category, string? Note); + + private static string StripCodeFence(string body) + { + if (string.IsNullOrWhiteSpace(body)) return body ?? string.Empty; + var trimmed = body.Trim(); + if (trimmed.StartsWith("```", StringComparison.Ordinal)) + { + var newline = trimmed.IndexOf('\n'); + var closingFence = trimmed.LastIndexOf("```", StringComparison.Ordinal); + if (newline >= 0 && closingFence > newline) + { + trimmed = trimmed[(newline + 1)..closingFence].Trim(); + } + } + return trimmed; + } + + private static TimeSpan ReadTime(JsonElement element, string property) + { + if (!element.TryGetProperty(property, out var node)) return TimeSpan.Zero; + if (node.ValueKind == JsonValueKind.Number && node.TryGetDouble(out var seconds)) return TimeSpan.FromSeconds(Math.Max(0, seconds)); + if (node.ValueKind == JsonValueKind.String) + { + var value = node.GetString(); + if (double.TryParse(value, NumberStyles.Float, CultureInfo.InvariantCulture, out var fromString)) + return TimeSpan.FromSeconds(Math.Max(0, fromString)); + if (TimeSpan.TryParse(value, CultureInfo.InvariantCulture, out var ts)) return ts; + } + return TimeSpan.Zero; + } + + private static string FormatTimestamp(TimeSpan value) + { + return string.Format(CultureInfo.InvariantCulture, "{0:00}:{1:00}:{2:00}.{3:000}", (int)value.TotalHours, value.Minutes, value.Seconds, value.Milliseconds); + } + + private static (TimeSpan Start, TimeSpan End)? SnapToTranscriptBounds(IReadOnlyList transcript, TimeSpan start, TimeSpan end) + { + if (transcript == null || transcript.Count == 0) return null; + var first = transcript.FirstOrDefault(s => s.End > start); + var last = transcript.LastOrDefault(s => s.Start < end); + if (first == null || last == null) return null; + if (last.End > transcript[^1].End) last = transcript[^1]; + if (last.End <= first.Start) return null; + return (first.Start, last.End); + } + + private static IReadOnlyList FilterOverlaps(IReadOnlyList clips) + { + if (clips == null || clips.Count == 0) return Array.Empty(); + var ordered = clips.OrderBy(c => c.Start).ToArray(); + var result = new List(ordered.Length); + var lastEnd = TimeSpan.Zero; + foreach (var clip in ordered) + { + if (clip.Start < lastEnd) + continue; + result.Add(clip); + lastEnd = clip.End; + } + return result; + } +} + + + + + + + + + + + + diff --git a/services/net/auto-clipper/LLM/ClipSegmentationSettings.cs b/services/net/auto-clipper/LLM/ClipSegmentationSettings.cs new file mode 100644 index 0000000000..828e8a0d01 --- /dev/null +++ b/services/net/auto-clipper/LLM/ClipSegmentationSettings.cs @@ -0,0 +1,24 @@ +namespace TNO.Services.AutoClipper.LLM; + +public class ClipSegmentationSettings +{ + public string? PromptOverride { get; set; } + public string? ModelOverride { get; set; } + public float? TemperatureOverride { get; set; } + public string? SystemPrompt { get; set; } + public int? PromptCharacterLimit { get; set; } + public int? MaxStories { get; set; } + public IReadOnlyList? KeywordPatterns { get; set; } + public double? HeuristicBoundaryWeight { get; set; } + public IReadOnlyDictionary? KeywordCategories { get; set; } + public IReadOnlyList? HeuristicPatternEntries { get; set; } +} + +public class HeuristicPatternSetting +{ + public string Pattern { get; set; } = string.Empty; + public double? Weight { get; set; } + public string? Category { get; set; } + public string? Note { get; set; } +} + diff --git a/services/net/auto-clipper/LLM/IClipSegmentationService.cs b/services/net/auto-clipper/LLM/IClipSegmentationService.cs new file mode 100644 index 0000000000..52743ee6a0 --- /dev/null +++ b/services/net/auto-clipper/LLM/IClipSegmentationService.cs @@ -0,0 +1,8 @@ +using TNO.Services.AutoClipper.Azure; + +namespace TNO.Services.AutoClipper.LLM; + +public interface IClipSegmentationService +{ + Task> GenerateClipsAsync(IReadOnlyList transcript, ClipSegmentationSettings? settings, CancellationToken cancellationToken); +} diff --git a/services/net/auto-clipper/LLM/Models/LLMChoice.cs b/services/net/auto-clipper/LLM/Models/LLMChoice.cs new file mode 100644 index 0000000000..d0752d8c10 --- /dev/null +++ b/services/net/auto-clipper/LLM/Models/LLMChoice.cs @@ -0,0 +1,15 @@ +using System.Text.Json.Serialization; + +namespace TNO.Services.AutoClipper.LLM.Models; + +public class LLMChoice +{ + [JsonPropertyName("index")] + public int Index { get; set; } + + [JsonPropertyName("message")] + public LLMMessage? Message { get; set; } + + [JsonPropertyName("finish_reason")] + public string? FinishReason { get; set; } +} diff --git a/services/net/auto-clipper/LLM/Models/LLMMessage.cs b/services/net/auto-clipper/LLM/Models/LLMMessage.cs new file mode 100644 index 0000000000..62d476f9bf --- /dev/null +++ b/services/net/auto-clipper/LLM/Models/LLMMessage.cs @@ -0,0 +1,12 @@ +using System.Text.Json.Serialization; + +namespace TNO.Services.AutoClipper.LLM.Models; + +public class LLMMessage +{ + [JsonPropertyName("role")] + public string? Role { get; set; } + + [JsonPropertyName("content")] + public string? Content { get; set; } +} diff --git a/services/net/auto-clipper/LLM/Models/LLMResponse.cs b/services/net/auto-clipper/LLM/Models/LLMResponse.cs new file mode 100644 index 0000000000..c5ad47aa78 --- /dev/null +++ b/services/net/auto-clipper/LLM/Models/LLMResponse.cs @@ -0,0 +1,27 @@ +using System.Text.Json.Serialization; + +namespace TNO.Services.AutoClipper.LLM.Models; + +public class LLMResponse +{ + [JsonPropertyName("id")] + public string? Id { get; set; } + + [JsonPropertyName("object")] + public string? Object { get; set; } + + [JsonPropertyName("created")] + public long Created { get; set; } + + [JsonPropertyName("model")] + public string? Model { get; set; } + + [JsonPropertyName("choices")] + public List? Choices { get; set; } + + [JsonPropertyName("usage")] + public LLMUsage? Usage { get; set; } + + [JsonPropertyName("status")] + public string? Status { get; set; } +} diff --git a/services/net/auto-clipper/LLM/Models/LLMUsage.cs b/services/net/auto-clipper/LLM/Models/LLMUsage.cs new file mode 100644 index 0000000000..a0e090c040 --- /dev/null +++ b/services/net/auto-clipper/LLM/Models/LLMUsage.cs @@ -0,0 +1,15 @@ +using System.Text.Json.Serialization; + +namespace TNO.Services.AutoClipper.LLM.Models; + +public class LLMUsage +{ + [JsonPropertyName("prompt_tokens")] + public int PromptTokens { get; set; } + + [JsonPropertyName("completion_tokens")] + public int CompletionTokens { get; set; } + + [JsonPropertyName("total_tokens")] + public int TotalTokens { get; set; } +} diff --git a/services/net/auto-clipper/LLM/Models/TranscriptBoundaries.cs b/services/net/auto-clipper/LLM/Models/TranscriptBoundaries.cs new file mode 100644 index 0000000000..ad0f606163 --- /dev/null +++ b/services/net/auto-clipper/LLM/Models/TranscriptBoundaries.cs @@ -0,0 +1,9 @@ +using System.Text.Json.Serialization; + +namespace TNO.Services.AutoClipper.LLM.Models; + +public class TranscriptBoundaries +{ + [JsonPropertyName("boundaries")] + public TranscriptBoundary[] Boundaries { get; set; } = []; +} diff --git a/services/net/auto-clipper/LLM/Models/TranscriptBoundary.cs b/services/net/auto-clipper/LLM/Models/TranscriptBoundary.cs new file mode 100644 index 0000000000..015c2923fc --- /dev/null +++ b/services/net/auto-clipper/LLM/Models/TranscriptBoundary.cs @@ -0,0 +1,21 @@ +using System.Text.Json.Serialization; + +namespace TNO.Services.AutoClipper.LLM.Models; + +public class TranscriptBoundary +{ + [JsonPropertyName("index")] + public int Index { get; set; } + + [JsonPropertyName("title")] + public string Title { get; set; } = ""; + + [JsonPropertyName("summary")] + public string Summary { get; set; } = ""; + + [JsonPropertyName("category")] + public string? Category { get; set; } = ""; + + [JsonPropertyName("score")] + public float Score { get; set; } +} diff --git a/services/net/auto-clipper/Pipeline/ClipProcessingContext.cs b/services/net/auto-clipper/Pipeline/ClipProcessingContext.cs new file mode 100644 index 0000000000..563c99b81c --- /dev/null +++ b/services/net/auto-clipper/Pipeline/ClipProcessingContext.cs @@ -0,0 +1,6 @@ +using TNO.Kafka.Models; +using TNO.Services.AutoClipper.Config; + +namespace TNO.Services.AutoClipper.Pipeline; + +public record ClipProcessingContext(string SourcePath, StationProfile StationProfile, ClipRequestModel Request, int TargetSampleRate); diff --git a/services/net/auto-clipper/Pipeline/ClipProcessingPipeline.cs b/services/net/auto-clipper/Pipeline/ClipProcessingPipeline.cs new file mode 100644 index 0000000000..0d098b51cb --- /dev/null +++ b/services/net/auto-clipper/Pipeline/ClipProcessingPipeline.cs @@ -0,0 +1,90 @@ +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; +using TNO.Services.AutoClipper.Audio; +using TNO.Services.AutoClipper.Azure; +using TNO.Services.AutoClipper.Config; +using TNO.Services.AutoClipper.LLM; + +namespace TNO.Services.AutoClipper.Pipeline; + +public class ClipProcessingPipeline +{ + private readonly IAudioNormalizer _audioNormalizer; + private readonly IAzureSpeechTranscriptionService _speechTranscriber; + private readonly IClipSegmentationService _clipSegmentation; + private readonly AutoClipperOptions _options; + private readonly ILogger _logger; + + public ClipProcessingPipeline( + IAudioNormalizer audioNormalizer, + IAzureSpeechTranscriptionService speechTranscriber, + IClipSegmentationService clipSegmentation, + IOptions options, + ILogger logger) + { + _audioNormalizer = audioNormalizer; + _speechTranscriber = speechTranscriber; + _clipSegmentation = clipSegmentation; + _options = options.Value; + _logger = logger; + } + + public async Task ExecuteAsync(ClipProcessingContext context, CancellationToken cancellationToken) + { + var normalizedPath = await _audioNormalizer.NormalizeAsync(context.SourcePath, context.TargetSampleRate, cancellationToken); + var language = !string.IsNullOrWhiteSpace(context.Request.Language) + ? context.Request.Language! + : !string.IsNullOrWhiteSpace(context.StationProfile.Transcription.Language) + ? context.StationProfile.Transcription.Language + : _options.DefaultTranscriptLanguage; + var transcriptionRequest = new SpeechTranscriptionRequest + { + Language = language, + EnableSpeakerDiarization = context.StationProfile.Transcription.Diarization, + SpeakerCount = context.StationProfile.Transcription.MaxSpeakers, + DiarizationMode = context.StationProfile.Transcription.DiarizationMode + }; + + var segments = await _speechTranscriber.TranscribeAsync(normalizedPath, transcriptionRequest, cancellationToken); + var segmentationSettings = BuildSegmentationSettings(context.StationProfile); + var clipDefinitions = await _clipSegmentation.GenerateClipsAsync(segments, segmentationSettings, cancellationToken); + + return new ClipProcessingResult(normalizedPath, language, segments, clipDefinitions, segmentationSettings); + } + + private static ClipSegmentationSettings BuildSegmentationSettings(StationProfile profile) + { + return new ClipSegmentationSettings + { + PromptOverride = string.IsNullOrWhiteSpace(profile.Text.LlmPrompt) ? null : profile.Text.LlmPrompt, + ModelOverride = string.IsNullOrWhiteSpace(profile.Text.LlmModel) ? null : profile.Text.LlmModel, + TemperatureOverride = profile.Text.LlmTemperature, + SystemPrompt = string.IsNullOrWhiteSpace(profile.Text.SystemPrompt) ? null : profile.Text.SystemPrompt, + PromptCharacterLimit = profile.Text.PromptCharacterLimit, + MaxStories = profile.Text.MaxStories, + KeywordPatterns = profile.Heuristics.KeywordPatterns?.ToArray(), + + HeuristicPatternEntries = profile.Heuristics.PatternEntries? + .Where(p => p != null && !string.IsNullOrWhiteSpace(p.Pattern)) + .Select(p => new HeuristicPatternSetting + { + Pattern = p.Pattern!, + Weight = p.Weight, + Category = string.IsNullOrWhiteSpace(p.Category) ? null : p.Category, + Note = p.Note + }) + .ToArray(), + HeuristicBoundaryWeight = profile.Text.HeuristicBoundaryWeight, + KeywordCategories = profile.Text.KeywordCategories?.ToDictionary(kvp => kvp.Key, kvp => kvp.Value) + }; + } +} + + + + + + + + + diff --git a/services/net/auto-clipper/Pipeline/ClipProcessingResult.cs b/services/net/auto-clipper/Pipeline/ClipProcessingResult.cs new file mode 100644 index 0000000000..dd2362f2c5 --- /dev/null +++ b/services/net/auto-clipper/Pipeline/ClipProcessingResult.cs @@ -0,0 +1,11 @@ +using TNO.Services.AutoClipper.Azure; +using TNO.Services.AutoClipper.LLM; + +namespace TNO.Services.AutoClipper.Pipeline; + +public record ClipProcessingResult( + string NormalizedAudioPath, + string Language, + IReadOnlyList Segments, + IReadOnlyList ClipDefinitions, + ClipSegmentationSettings SegmentationSettings); diff --git a/services/net/auto-clipper/Program.cs b/services/net/auto-clipper/Program.cs new file mode 100644 index 0000000000..6179264ca1 --- /dev/null +++ b/services/net/auto-clipper/Program.cs @@ -0,0 +1,19 @@ +namespace TNO.Services.AutoClipper; + +/// +/// Program static class, runs program. +/// +public static class Program +{ + /// + /// Create an instance of the AutoClipperService and run it. + /// + /// + /// + public static Task Main(string[] args) + { + // Run the Transcription service console program. + var program = new AutoClipperService(args); + return program.RunAsync(); + } +} diff --git a/services/net/auto-clipper/README.md b/services/net/auto-clipper/README.md new file mode 100644 index 0000000000..171d2ad5fb --- /dev/null +++ b/services/net/auto-clipper/README.md @@ -0,0 +1,27 @@ +# AutoClipper Service + +The AutoClipper service consumes clip requests from Kafka, normalizes audio, transcribes it with Azure Speech, and +segments the transcript into clips using a boundary-aware LLM workflow boosted by station heuristics. Key concepts: + +- **Station profiles** (Config/Stations/\*.yml) define language, sample rate, heuristic keywords, custom prompts, and + category mappings for weather/traffic/ads. +- **Pipeline** (ClipProcessingPipeline) normalizes audio, transcribes via AzureSpeechTranscriptionService, and feeds + transcripts plus station config into ClipSegmentationService. +- **Segmentation** uses Azure OpenAI to score story boundaries, merges in regex-based heuristics, snaps clips to transcript + sentences, and tags each clip with a category before AutoClipperManager creates content and uploads the media. + +## Development + +1. Update station YAMLs under Config/Stations (copy CKNW.yml as a starting point). +2. Run dotnet build services/net/auto-clipper/TNO.Services.AutoClipper.csproj to verify changes. +3. Use the harness (see tools/auto-clipper-harness/README.md) to manually validate segmentation on sample audio. + +## Configuration + +Important Service\_\_ env vars: + +- Service**AzureSpeechKey / Service**AzureSpeechRegion +- Service**AzureSpeechStorageConnectionString / Service**AzureSpeechStorageContainer (batch upload destination for Azure Speech). +- Service**AzureSpeechBatchEndpoint, Service**AzureSpeechBatchApiVersion, Service**AzureSpeechBatchPollingIntervalSeconds, Service**AzureSpeechBatchTimeoutMinutes, Service\_\_AzureSpeechStorageSasExpiryMinutes (optional batch tuning). +- Service**LlmApiUrl, Service**LlmApiKey, Service**LlmDeployment, Service**LlmApiVersion +- Service\_\_StationConfigPath (optional override for station YAML directory) diff --git a/services/net/auto-clipper/TNO.Services.AutoClipper.csproj b/services/net/auto-clipper/TNO.Services.AutoClipper.csproj new file mode 100644 index 0000000000..16a150c259 --- /dev/null +++ b/services/net/auto-clipper/TNO.Services.AutoClipper.csproj @@ -0,0 +1,43 @@ + + + + Exe + net9.0 + enable + enable + TNO.Services.AutoClipper + 1.0.0.0 + 1.0.0.0 + + + + + + + + + + + + + + + + + + + + + + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + + + + diff --git a/services/net/auto-clipper/appsettings.Development.json b/services/net/auto-clipper/appsettings.Development.json new file mode 100644 index 0000000000..7ea658fedf --- /dev/null +++ b/services/net/auto-clipper/appsettings.Development.json @@ -0,0 +1,41 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Warning", + "Microsoft": "Warning", + "TNO": "Debug" + } + }, + "Service": { + "MaxFailLimit": 5, + "ApiUrl": "http://host.docker.internal:40010/api" + }, + "CHES": { + "AuthUrl": "https://dev.loginproxy.gov.bc.ca/auth/realms/comsvcauth/protocol/openid-connect/token", + "HostUri": "https://ches-dev.api.gov.bc.ca/api/v1", + "From": "Media Monitoring Insights ", + "EmailEnabled": true, + "EmailAuthorized": false + }, + "Kafka": { + "Consumer": { + "BootstrapServers": "host.docker.internal:40102", + "GroupId": "AutoClipper", + "MaxThreads": 2 + }, + "Producer": { + "BootstrapServers": "host.docker.internal:40102", + "ClientId": "AutoClipper" + } + }, + "Auth": { + "Keycloak": { + "Authority": "https://dev.loginproxy.gov.bc.ca/auth", + "Audience": "mmi-service-account", + "Secret": "{DO NOT STORE SECRET HERE}" + }, + "OIDC": { + "Token": "/realms/mmi/protocol/openid-connect/token" + } + } +} diff --git a/services/net/auto-clipper/appsettings.Staging.json b/services/net/auto-clipper/appsettings.Staging.json new file mode 100644 index 0000000000..a9f74118fc --- /dev/null +++ b/services/net/auto-clipper/appsettings.Staging.json @@ -0,0 +1,41 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Warning", + "Microsoft": "Error", + "TNO": "Information" + } + }, + "Service": { + "MaxFailLimit": 5, + "ApiUrl": "http://api:8080" + }, + "CHES": { + "AuthUrl": "https://test.loginproxy.gov.bc.ca/auth/realms/comsvcauth/protocol/openid-connect/token", + "HostUri": "https://ches-test.api.gov.bc.ca/api/v1", + "From": "Media Monitoring Insights ", + "EmailEnabled": true, + "EmailAuthorized": false + }, + "Kafka": { + "Consumer": { + "BootstrapServers": "kafka-broker-0.kafka-headless:9092,kafka-broker-1.kafka-headless:9092,kafka-broker-2.kafka-headless:9092", + "GroupId": "AutoClipper", + "MaxThreads": 2 + }, + "Producer": { + "BootstrapServers": "kafka-broker-0.kafka-headless:9092,kafka-broker-1.kafka-headless:9092,kafka-broker-2.kafka-headless:9092", + "ClientId": "AutoClipper" + } + }, + "Auth": { + "Keycloak": { + "Authority": "https://test.loginproxy.gov.bc.ca/auth", + "Audience": "mmi-service-account", + "Secret": "{DO NOT STORE SECRET HERE}" + }, + "OIDC": { + "Token": "/realms/mmi/protocol/openid-connect/token" + } + } +} diff --git a/services/net/auto-clipper/appsettings.json b/services/net/auto-clipper/appsettings.json new file mode 100644 index 0000000000..4bf3fbc1ed --- /dev/null +++ b/services/net/auto-clipper/appsettings.json @@ -0,0 +1,110 @@ +{ + "BaseUrl": "/", + "Logging": { + "Console": { + "DisableColors": true + }, + "LogLevel": { + "Default": "Warning", + "Microsoft": "Error", + "TNO": "Information" + } + }, + "Serilog": { + "Using": ["Serilog.Sinks.Console"], + "MinimumLevel": { + "Default": "Information", + "Override": { + "Microsoft": "Error", + "System.Net.Http": "Warning", + "TNO": "Debug" + } + }, + "WriteTo": [ + { + "Name": "Console", + "Args": { + "outputTemplate": "[{Timestamp:HH:mm:ss} level={CustomLevel}] {Message:lj}{NewLine}{Exception}" + } + } + ], + "Enrich": ["FromLogContext"] + }, + "AllowedHosts": "*", + "Service": { + "MaxFailLimit": 5, + "ApiUrl": "http://api:8080", + "TimeZone": "Pacific Standard Time", + "Topics": "request-clips", + "VolumePath": "/data", + "MaxStoriesFromClip": 5, + + "ApplyTags": ["AUTOCLIP"], + "SendEmailOnFailure": true, + "NoticeEmailTo": "", + "AzureSpeechKey": "", + "AzureSpeechRegion": "westus", + "AzureSpeechBatchEndpoint": "", + "AzureSpeechBatchApiVersion": "v3.2", + "AzureSpeechBatchPollingIntervalSeconds": 10, + "AzureSpeechBatchTimeoutMinutes": 45, + "AzureSpeechStorageConnectionString": "", + "AzureSpeechStorageContainer": "", + "AzureSpeechStorageSasExpiryMinutes": 180, + "DefaultTranscriptLanguage": "en-US", + + "LlmApiUrl": "https://mmiopenai.cognitiveservices.azure.com/", + "LlmApiKey": "", + "LlmDefaultModel": "", + "LlmDeployment": "", + "LlmApiVersion": "", + "LlmPrompt": "", + "LlmPromptCharacterLimit": 0, + "StationConfigPath": "Config/Stations" + }, + "CHES": { + "AuthUrl": "https://loginproxy.gov.bc.ca/auth/realms/comsvcauth/protocol/openid-connect/token", + "HostUri": "https://ches.api.gov.bc.ca/api/v1", + "From": "Media Monitoring Insights ", + "EmailEnabled": true, + "EmailAuthorized": false + }, + "Auth": { + "Keycloak": { + "Authority": "https://loginproxy.gov.bc.ca/auth", + "Audience": "mmi-service-account", + "Secret": "{DO NOT STORE SECRET HERE}" + }, + "OIDC": { + "Token": "/realms/mmi/protocol/openid-connect/token" + } + }, + "Serialization": { + "Json": { + "PropertyNamingPolicy": "CamelCase", + "PropertyNameCaseInsensitive": true, + "DefaultIgnoreCondition": "WhenWritingNull", + "WriteIndented": true + } + }, + "Kafka": { + "Consumer": { + "GroupId": "AutoClipper", + "BootstrapServers": "kafka-broker-0.kafka-headless:9092,kafka-broker-1.kafka-headless:9092,kafka-broker-2.kafka-headless:9092", + "AutoOffsetReset": "Earliest", + "EnableAutoCommit": false, + "MaxThreads": 2, + "MaxPollIntervalMs": 600000 + }, + "Producer": { + "ClientId": "AutoClipper", + "BootstrapServers": "kafka-broker-0.kafka-headless:9092,kafka-broker-1.kafka-headless:9092,kafka-broker-2.kafka-headless:9092", + "Acks": "All", + "EnableIdempotence": true, + "MaxInFlight": 5, + "MessageSendMaxRetries": 10000000, + "BatchSize": 16384, + "LingerMs": 1 + } + } +} diff --git a/services/net/notification/TNO.Services.Notification.csproj b/services/net/notification/TNO.Services.Notification.csproj index 6eadc5845c..696936b742 100644 --- a/services/net/notification/TNO.Services.Notification.csproj +++ b/services/net/notification/TNO.Services.Notification.csproj @@ -20,6 +20,13 @@ + + + + + + + diff --git a/services/net/reporting/TNO.Services.Reporting.csproj b/services/net/reporting/TNO.Services.Reporting.csproj index cce08bea98..2cea01cec9 100644 --- a/services/net/reporting/TNO.Services.Reporting.csproj +++ b/services/net/reporting/TNO.Services.Reporting.csproj @@ -20,6 +20,13 @@ + + + + + + + diff --git a/tools/auto-clipper-harness/.env.sample b/tools/auto-clipper-harness/.env.sample new file mode 100644 index 0000000000..bcc345cbb7 --- /dev/null +++ b/tools/auto-clipper-harness/.env.sample @@ -0,0 +1,16 @@ +# TEMP HARNESS env file. Delete along with this harness when done. +AUTOCLIP_HARNESS_SPEECH_KEY= +AUTOCLIP_HARNESS_SPEECH_REGION=canadacentral +AUTOCLIP_HARNESS_STORAGE_CONNECTION_STRING= +AUTOCLIP_HARNESS_STORAGE_CONTAINER=autoclipper-batch +AUTOCLIP_HARNESS_STORAGE_SAS_MINUTES=180 +AUTOCLIP_HARNESS_BATCH_ENDPOINT= +AUTOCLIP_HARNESS_BATCH_VERSION=v3.2 +AUTOCLIP_HARNESS_BATCH_POLL_SECONDS=10 +AUTOCLIP_HARNESS_BATCH_TIMEOUT_MINUTES=45 +AUTOCLIP_HARNESS_LLM_URL=https://your-resource.openai.azure.com +AUTOCLIP_HARNESS_LLM_KEY= +AUTOCLIP_HARNESS_LLM_DEPLOYMENT= +AUTOCLIP_HARNESS_LLM_VERSION=2024-02-15-preview +AUTOCLIP_HARNESS_LANGUAGE=en-US +AUTOCLIP_HARNESS_MAX_STORIES=5 diff --git a/tools/auto-clipper-harness/.gitignore b/tools/auto-clipper-harness/.gitignore new file mode 100644 index 0000000000..91b68b99a7 --- /dev/null +++ b/tools/auto-clipper-harness/.gitignore @@ -0,0 +1,2 @@ +**/output/ +**/input/ \ No newline at end of file diff --git a/tools/auto-clipper-harness/AutoClipperHarness.csproj b/tools/auto-clipper-harness/AutoClipperHarness.csproj new file mode 100644 index 0000000000..e9f8fc814f --- /dev/null +++ b/tools/auto-clipper-harness/AutoClipperHarness.csproj @@ -0,0 +1,12 @@ + + + + Exe + net9.0 + enable + enable + + + + + diff --git a/tools/auto-clipper-harness/Program.cs b/tools/auto-clipper-harness/Program.cs new file mode 100644 index 0000000000..58aa264191 --- /dev/null +++ b/tools/auto-clipper-harness/Program.cs @@ -0,0 +1,375 @@ +using System.Text; +using System.Text.RegularExpressions; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; +using TNO.Services.AutoClipper.Audio; +using TNO.Services.AutoClipper.Azure; +using TNO.Services.AutoClipper.Config; +using TNO.Services.AutoClipper.LLM; + +// TEMP HARNESS: delete this file/project once manual AutoClipper validation is complete. + +var input = args.FirstOrDefault(); +if (string.IsNullOrWhiteSpace(input) || !File.Exists(input)) +{ + Console.WriteLine("Usage: dotnet run --project tools/auto-clipper-harness -- [language] [outputDir]"); + return; +} + +// TEMP HARNESS helper: try to load a .env file automatically so this console app can run standalone. +// When removing this harness, remove the helper as well. +var envFile = Environment.GetEnvironmentVariable("AUTOCLIP_HARNESS_ENV_FILE") + ?? Path.Combine(AppContext.BaseDirectory, ".env"); +LoadEnvFile(envFile); +if (!File.Exists(envFile)) +{ + // dotnet run from repo root -> fall back to the project-relative .env + var fallback = Path.Combine(Directory.GetCurrentDirectory(), "tools", "auto-clipper-harness", ".env"); + LoadEnvFile(fallback); +} + +var outputDir = args.Length > 2 ? args[2] : Path.Combine(Path.GetDirectoryName(Path.GetFullPath(input)) ?? ".", "auto-clipper-harness-output"); +Directory.CreateDirectory(outputDir); + +using var loggerFactory = LoggerFactory.Create(builder => builder.AddSimpleConsole(o => o.TimestampFormat = "HH:mm:ss ")); +var stationCode = Environment.GetEnvironmentVariable("AUTOCLIP_HARNESS_STATION") ?? "CKNW"; +var stationConfigPath = Environment.GetEnvironmentVariable("AUTOCLIP_HARNESS_STATION_PATH") + ?? Path.Combine(Directory.GetCurrentDirectory(), "services", "net", "auto-clipper", "Config", "Stations"); +var stationOptions = Options.Create(new AutoClipperOptions { StationConfigPath = stationConfigPath }); +var stationConfiguration = new StationConfigurationService(stationOptions, loggerFactory.CreateLogger()); +var stationProfile = stationConfiguration.GetProfile(stationCode); + +var language = args.Length > 1 + ? args[1] + : Environment.GetEnvironmentVariable("AUTOCLIP_HARNESS_LANGUAGE") + ?? (!string.IsNullOrWhiteSpace(stationProfile.Transcription.Language) ? stationProfile.Transcription.Language : "en-US"); +var sampleRate = int.TryParse(Environment.GetEnvironmentVariable("AUTOCLIP_HARNESS_SAMPLE_RATE"), out var sr) + ? sr + : (stationProfile.Transcription.SampleRate > 0 ? stationProfile.Transcription.SampleRate : 16000); + +var audioNormalizer = new AudioNormalizer(loggerFactory.CreateLogger()); +var workingFile = await audioNormalizer.NormalizeAsync(input, sampleRate); + +var options = Options.Create(new AutoClipperOptions +{ + AzureSpeechKey = RequireEnv("AUTOCLIP_HARNESS_SPEECH_KEY"), + AzureSpeechRegion = RequireEnv("AUTOCLIP_HARNESS_SPEECH_REGION"), + AzureSpeechBatchEndpoint = Environment.GetEnvironmentVariable("AUTOCLIP_HARNESS_BATCH_ENDPOINT") ?? string.Empty, + AzureSpeechBatchApiVersion = Environment.GetEnvironmentVariable("AUTOCLIP_HARNESS_BATCH_VERSION") ?? "v3.2", + AzureSpeechBatchPollingIntervalSeconds = int.TryParse(Environment.GetEnvironmentVariable("AUTOCLIP_HARNESS_BATCH_POLL_SECONDS"), out var batchPollSeconds) ? batchPollSeconds : 10, + AzureSpeechBatchTimeoutMinutes = int.TryParse(Environment.GetEnvironmentVariable("AUTOCLIP_HARNESS_BATCH_TIMEOUT_MINUTES"), out var batchTimeoutMinutes) ? batchTimeoutMinutes : 45, + AzureSpeechStorageConnectionString = RequireEnv("AUTOCLIP_HARNESS_STORAGE_CONNECTION_STRING"), + AzureSpeechStorageContainer = RequireEnv("AUTOCLIP_HARNESS_STORAGE_CONTAINER"), + AzureSpeechStorageSasExpiryMinutes = int.TryParse(Environment.GetEnvironmentVariable("AUTOCLIP_HARNESS_STORAGE_SAS_MINUTES"), out var sasMinutes) ? sasMinutes : 180, + LlmApiUrl = new Uri(RequireEnv("AUTOCLIP_HARNESS_LLM_URL")), + LlmApiKey = RequireEnv("AUTOCLIP_HARNESS_LLM_KEY"), + LlmPrompt = Environment.GetEnvironmentVariable("AUTOCLIP_HARNESS_PROMPT") + ?? (string.IsNullOrWhiteSpace(stationProfile.Text.LlmPrompt) ? string.Empty : stationProfile.Text.LlmPrompt), + MaxStoriesFromClip = int.TryParse(Environment.GetEnvironmentVariable("AUTOCLIP_HARNESS_MAX_STORIES"), out var maxStories) ? maxStories : 5, + VolumePath = Path.GetDirectoryName(Path.GetFullPath(input)) ?? ".", + DefaultTranscriptLanguage = stationProfile.Transcription.Language ?? "en-US" +}); + +var speechLogger = loggerFactory.CreateLogger(); +var llmLogger = loggerFactory.CreateLogger(); +var speechService = new AzureSpeechTranscriptionService(new HttpClient(), options, speechLogger); +var llmService = new ClipSegmentationService(new HttpClient(), options, llmLogger); + +var transcriptionRequest = new SpeechTranscriptionRequest +{ + Language = language, + EnableSpeakerDiarization = stationProfile.Transcription.Diarization, + SpeakerCount = stationProfile.Transcription.MaxSpeakers, + DiarizationMode = stationProfile.Transcription.DiarizationMode +}; + +Console.WriteLine($"[HARNESS] Transcribing {workingFile} ..."); +var segments = await speechService.TranscribeAsync(workingFile, transcriptionRequest, CancellationToken.None); +Console.WriteLine($"[HARNESS] Received {segments.Count} transcript segments"); + +var fullTranscriptBody = BuildTranscriptDocument(segments); +var fullTranscriptPath = Path.Combine(outputDir, "transcript_full.txt"); +await File.WriteAllTextAsync(fullTranscriptPath, fullTranscriptBody ?? string.Empty); +Console.WriteLine($"[HARNESS] Full transcript -> {fullTranscriptPath}"); + +var segmentationSettings = BuildSegmentationSettings(stationProfile); +Console.WriteLine("[HARNESS] Asking LLM for clip definitions ..."); +var promptDebugPath = Path.Combine(outputDir, "llm_prompt_debug.txt"); +await File.WriteAllTextAsync(promptDebugPath, BuildPromptDebug(segmentationSettings, segments)); +Console.WriteLine($"[HARNESS] Saved LLM prompt -> {promptDebugPath}"); +var clipDefinitions = (await llmService.GenerateClipsAsync(segments, segmentationSettings, CancellationToken.None)) + .OrderBy(c => c.Start) + .ToArray(); +Console.WriteLine($"[HARNESS] LLM returned {clipDefinitions.Length} clip candidates"); + +var index = 1; +foreach (var definition in clipDefinitions) +{ + var normalized = NormalizeClipDefinition(definition, segments); + if (normalized == null) + { + Console.WriteLine($"[HARNESS] Skip invalid clip {definition.Title}"); + continue; + } + + var transcriptSlice = ExtractTranscriptRange(segments, normalized.Start, normalized.End); + var transcriptBody = BuildTranscriptDocument(transcriptSlice); + if (string.IsNullOrWhiteSpace(transcriptBody)) + { + Console.WriteLine($"[HARNESS] Empty transcript for clip {definition.Title}"); + continue; + } + + var clipPath = await CreateClipFileAsync(input, outputDir, normalized.Start, normalized.End, index); + var transcriptPath = Path.Combine(outputDir, $"clip_{index:00}.txt"); + await File.WriteAllTextAsync(transcriptPath, transcriptBody); + Console.WriteLine($"[HARNESS] Saved clip #{index} ({normalized.Category}) -> {clipPath}\n[HARNESS] Transcript -> {transcriptPath}"); + index++; +} + +Console.WriteLine("[HARNESS] Complete."); + +static string BuildPromptDebug(ClipSegmentationSettings settings, IReadOnlyList segments) +{ + var builder = new StringBuilder(); + builder.AppendLine("Prompt Override:"); + builder.AppendLine(settings?.PromptOverride ?? ""); + builder.AppendLine(); + builder.AppendLine("Heuristic Patterns:"); + if (settings?.HeuristicPatternEntries != null && settings.HeuristicPatternEntries.Count > 0) + { + foreach (var entry in settings.HeuristicPatternEntries) + { + if (entry == null || string.IsNullOrWhiteSpace(entry.Pattern)) continue; + var weight = entry.Weight ?? settings.HeuristicBoundaryWeight ?? 0; + var meta = new List(); + if (weight > 0) meta.Add($"w={weight:0.00}"); + if (!string.IsNullOrWhiteSpace(entry.Category)) meta.Add($"cat={entry.Category}"); + if (!string.IsNullOrWhiteSpace(entry.Note)) meta.Add(entry.Note!); + var suffix = meta.Count > 0 ? $" ({string.Join(", ", meta)})" : string.Empty; + builder.AppendLine($"- {entry.Pattern}{suffix}"); + } + } + else if (settings?.KeywordPatterns != null && settings.KeywordPatterns.Count > 0) + { + builder.AppendLine(string.Join(", ", settings.KeywordPatterns)); + } + else + { + builder.AppendLine(""); + } + builder.AppendLine(); + + builder.AppendLine("Heuristic Hits:"); + builder.AppendLine(BuildHeuristicHitReport(settings, segments)); + builder.AppendLine(); + builder.AppendLine("Transcript Preview:"); + builder.AppendLine(BuildNumberedTranscript(segments)); + return builder.ToString(); +} + +static string BuildNumberedTranscript(IReadOnlyList segments) +{ + if (segments == null || segments.Count == 0) return string.Empty; + var sb = new StringBuilder(); + for (var i = 0; i < segments.Count; i++) + { + var segment = segments[i]; + if (string.IsNullOrWhiteSpace(segment.Text)) continue; + sb.AppendLine($"{i + 1}. {FormatTimestamp(segment.Start)} --> {FormatTimestamp(segment.End)} :: {segment.Text.Trim()}"); + } + return sb.ToString(); +} + +static string BuildHeuristicHitReport(ClipSegmentationSettings? settings, IReadOnlyList segments) +{ + if (segments == null || segments.Count == 0) return ""; + var patterns = ResolveHeuristicPatternDescriptions(settings); + if (patterns.Count == 0) return ""; + + var hits = new List(); + foreach (var pattern in patterns) + { + try + { + var regex = new Regex(pattern.Pattern, RegexOptions.IgnoreCase | RegexOptions.Compiled); + for (var i = 0; i < segments.Count; i++) + { + var sentence = segments[i]; + if (string.IsNullOrWhiteSpace(sentence.Text)) continue; + if (regex.IsMatch(sentence.Text)) + hits.Add($"Sentence {i + 1} matches {pattern.Description}"); + } + } + catch + { + continue; + } + } + + return hits.Count == 0 ? "" : string.Join(Environment.NewLine, hits); +} +static List<(string Pattern, string Description)> ResolveHeuristicPatternDescriptions(ClipSegmentationSettings? settings) +{ + var descriptions = new List<(string Pattern, string Description)>(); + var entries = settings?.HeuristicPatternEntries; + if (entries != null && entries.Count > 0) + { + var baseWeight = settings?.HeuristicBoundaryWeight ?? 0; + foreach (var entry in entries) + { + if (entry == null || string.IsNullOrWhiteSpace(entry.Pattern)) continue; + var weight = entry.Weight ?? baseWeight; + var meta = new List(); + if (weight > 0) meta.Add($"w={weight:0.00}"); + if (!string.IsNullOrWhiteSpace(entry.Category)) meta.Add($"cat={entry.Category}"); + if (!string.IsNullOrWhiteSpace(entry.Note)) meta.Add(entry.Note!); + var description = $"pattern '{entry.Pattern}'"; + if (meta.Count > 0) description += $" ({string.Join(", ", meta)})"; + descriptions.Add((entry.Pattern, description)); + } + return descriptions; + } + + if (settings?.KeywordPatterns == null || settings.KeywordPatterns.Count == 0) return descriptions; + foreach (var pattern in settings.KeywordPatterns) + { + if (string.IsNullOrWhiteSpace(pattern)) continue; + descriptions.Add((pattern, $"pattern '{pattern}'")); + } + return descriptions; +} +static string BuildTranscriptDocument(IReadOnlyList segments) +{ + if (segments == null || segments.Count == 0) return string.Empty; + var sb = new StringBuilder(); + var idx = 1; + foreach (var segment in segments) + { + if (string.IsNullOrWhiteSpace(segment.Text)) continue; + sb.AppendLine(idx.ToString()); + sb.AppendLine($"{FormatTimestamp(segment.Start)} --> {FormatTimestamp(segment.End)}"); + sb.AppendLine(segment.Text.Trim()); + sb.AppendLine(); + idx++; + } + return sb.ToString().Trim(); +} + +static string FormatTimestamp(TimeSpan value) => string.Format("{0:00}:{1:00}:{2:00}.{3:000}", (int)value.TotalHours, value.Minutes, value.Seconds, value.Milliseconds); + +static async Task CreateClipFileAsync(string srcFile, string outputDir, TimeSpan start, TimeSpan end, int index) +{ + Directory.CreateDirectory(outputDir); + var dest = Path.Combine(outputDir, $"clip_{index:00}{Path.GetExtension(srcFile)}"); + var durationSeconds = Math.Max(1, (end - start).TotalSeconds); + var process = new System.Diagnostics.Process(); + if (IsWindows()) + { + process.StartInfo.FileName = "cmd"; + process.StartInfo.Arguments = $"/c ffmpeg -y -ss {start.TotalSeconds:0.###} -i \"{srcFile}\" -t {durationSeconds:0.###} -c copy \"{dest}\""; + } + else + { + process.StartInfo.FileName = "/bin/sh"; + process.StartInfo.Arguments = $"-c \"ffmpeg -y -ss {start.TotalSeconds:0.###} -i '{srcFile}' -t {durationSeconds:0.###} -c copy '{dest}' 2>&1\""; + } + process.StartInfo.UseShellExecute = false; + process.StartInfo.RedirectStandardOutput = true; + process.StartInfo.CreateNoWindow = true; + process.Start(); + var output = await process.StandardOutput.ReadToEndAsync(); + await process.WaitForExitAsync(); + if (process.ExitCode != 0) throw new InvalidOperationException($"ffmpeg failed: {output}"); + return dest; +} + +static bool IsWindows() => OperatingSystem.IsWindows(); + + + + + + + +static ClipSegmentationSettings BuildSegmentationSettings(StationProfile profile) +{ + return new ClipSegmentationSettings + { + PromptOverride = string.IsNullOrWhiteSpace(profile.Text.LlmPrompt) ? null : profile.Text.LlmPrompt, + ModelOverride = string.IsNullOrWhiteSpace(profile.Text.LlmModel) ? null : profile.Text.LlmModel, + TemperatureOverride = profile.Text.LlmTemperature, + SystemPrompt = string.IsNullOrWhiteSpace(profile.Text.SystemPrompt) ? null : profile.Text.SystemPrompt, + PromptCharacterLimit = profile.Text.PromptCharacterLimit, + MaxStories = profile.Text.MaxStories, + KeywordPatterns = profile.Heuristics.KeywordPatterns?.ToArray(), + HeuristicPatternEntries = profile.Heuristics.PatternEntries? + .Where(p => p != null && !string.IsNullOrWhiteSpace(p.Pattern)) + .Select(p => new HeuristicPatternSetting + { + Pattern = p.Pattern!, + Weight = p.Weight, + Category = string.IsNullOrWhiteSpace(p.Category) ? null : p.Category, + Note = p.Note + }) + .ToArray(), + HeuristicBoundaryWeight = profile.Text.HeuristicBoundaryWeight, + KeywordCategories = profile.Text.KeywordCategories?.ToDictionary(kvp => kvp.Key, kvp => kvp.Value) + }; +} +static string RequireEnv(string key) +{ + var value = Environment.GetEnvironmentVariable(key); + if (string.IsNullOrWhiteSpace(value)) throw new InvalidOperationException($"Environment variable '{key}' must be set for the AutoClipper harness."); + return value; +} + +static void LoadEnvFile(string path) +{ + if (!File.Exists(path)) return; + foreach (var rawLine in File.ReadAllLines(path)) + { + var line = rawLine.Trim(); + if (string.IsNullOrWhiteSpace(line) || line.StartsWith("#")) continue; + var separator = line.IndexOf('='); + if (separator <= 0) continue; + var key = line[..separator].Trim(); + var value = line[(separator + 1)..].Trim(); + Environment.SetEnvironmentVariable(key, value); + } +} + + +static ClipDefinition? NormalizeClipDefinition(ClipDefinition definition, IReadOnlyList segments) +{ + if (segments.Count == 0) return null; + var maxEnd = segments[^1].End; + var start = definition.Start < TimeSpan.Zero ? TimeSpan.Zero : definition.Start; + var end = definition.End > maxEnd ? maxEnd : definition.End; + if (end <= start) return null; + + var first = segments.FirstOrDefault(s => s.End > start); + var last = segments.LastOrDefault(s => s.Start < end); + if (first == null || last == null) return null; + start = first.Start; + end = last.End; + return end <= start ? null : definition with { Start = start, End = end }; +} + +static IReadOnlyList ExtractTranscriptRange(IReadOnlyList segments, TimeSpan start, TimeSpan end) + => segments.Where(s => s.End > start && s.Start < end).ToArray(); + + + + + + + + + + + + + + + diff --git a/tools/auto-clipper-harness/README.md b/tools/auto-clipper-harness/README.md new file mode 100644 index 0000000000..9332233014 --- /dev/null +++ b/tools/auto-clipper-harness/README.md @@ -0,0 +1,23 @@ +# AutoClipper Harness + +The harness is a standalone console app that mirrors the AutoClipper pipeline for manual validation. It +normalizes a local media file, runs Azure Speech transcription, feeds the transcript and station heuristics to the +segmenter, and writes clips/transcripts/prompt debug files for inspection. + +## Usage + +`dotnet run --project tools/auto-clipper-harness -- [language] [outputDir]` + +- Configure Azure keys and LLM settings via .env (see .env.sample). +- Provide AUTOCLIP_HARNESS_STORAGE_CONNECTION_STRING / AUTOCLIP_HARNESS_STORAGE_CONTAINER so the harness can upload audio for Azure batch transcription. +- Optional overrides: AUTOCLIP_HARNESS_BATCH_ENDPOINT, \_BATCH_VERSION, \_BATCH_POLL_SECONDS, \_BATCH_TIMEOUT_MINUTES, and \_STORAGE_SAS_MINUTES. +- Station profiles are loaded from services/net/auto-clipper/Config/Stations by default; override with + AUTOCLIP_HARNESS_STATION_PATH / AUTOCLIP_HARNESS_STATION. +- Outputs: clip_XX.\* media slices, clip_XX.txt transcripts, ranscript_full.txt, and + llm_prompt_debug.txt (shows numbered transcript, heuristics, and the final prompt). + +## Notes + +- The harness shares the segmentation logic with the service, so any changes in ClipSegmentationService + should be validated here first. +- Ensure ffmpeg is available on PATH; the harness shells out to ffmpeg to produce media clips. diff --git a/tools/auto-clipper-harness/ResponseCaptureHandler.cs b/tools/auto-clipper-harness/ResponseCaptureHandler.cs new file mode 100644 index 0000000000..ccf5e7bf7c --- /dev/null +++ b/tools/auto-clipper-harness/ResponseCaptureHandler.cs @@ -0,0 +1,31 @@ +using System.IO; +using System.Net.Http; +using System.Text; +using System.Threading; +using System.Threading.Tasks; + +internal sealed class ResponseCaptureHandler : DelegatingHandler +{ + private readonly string _path; + + public ResponseCaptureHandler(string path) : base(new HttpClientHandler()) + { + _path = path; + } + + protected override async Task SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) + { + var response = await base.SendAsync(request, cancellationToken).ConfigureAwait(false); + try + { + var body = await response.Content.ReadAsStringAsync(cancellationToken).ConfigureAwait(false); + await File.WriteAllTextAsync(_path, body, cancellationToken).ConfigureAwait(false); + response.Content = new StringContent(body, Encoding.UTF8, response.Content.Headers?.ContentType?.MediaType ?? "application/json"); + } + catch + { + } + + return response; + } +} diff --git a/tools/auto-clipper-harness/auto-clipper-harness.sln b/tools/auto-clipper-harness/auto-clipper-harness.sln new file mode 100644 index 0000000000..1e503c9fc0 --- /dev/null +++ b/tools/auto-clipper-harness/auto-clipper-harness.sln @@ -0,0 +1,24 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.5.2.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AutoClipperHarness", "AutoClipperHarness.csproj", "{F4352B88-F210-DEBA-5586-EB19180A94EB}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {F4352B88-F210-DEBA-5586-EB19180A94EB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F4352B88-F210-DEBA-5586-EB19180A94EB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F4352B88-F210-DEBA-5586-EB19180A94EB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F4352B88-F210-DEBA-5586-EB19180A94EB}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {D27B7147-0BAE-4EEB-87B3-E2C580C9B07C} + EndGlobalSection +EndGlobal diff --git a/tools/scripts/gen-env-files.sh b/tools/scripts/gen-env-files.sh index eb3161683d..4bce5f65ae 100755 --- a/tools/scripts/gen-env-files.sh +++ b/tools/scripts/gen-env-files.sh @@ -69,6 +69,7 @@ CONTENTMIGRATION_PORT=$portContentMigration INDEXING_PORT=$portIndexing IMAGE_PORT=$portImage TRANSCRIPTION_PORT=$portTranscription +AUTO_CLIPPER_PORT=$portAutoClipper NLP_PORT=$portNlp CORENLP_PORT=$portCoreNlp NOTIFICATION_PORT=$portNotification @@ -540,6 +541,45 @@ Kafka__BootstrapServers=host.docker.internal:$portKafkaBrokerAdvertisedExternal" echo "./services/net/transcription/.env created" fi +## Auto Clipper Service +if test -f "./services/net/auto-clipper/.env"; then + echo "./services/net/auto-clipper/.env exists" +else +echo \ +"ASPNETCORE_ENVIRONMENT=Development +ASPNETCORE_URLS=http://+:8081 + +Auth__Keycloak__Authority=http://host.docker.internal:$portKeycloak +Auth__Keycloak__Audience=mmi-service-account +Auth__Keycloak__Secret={YOU WILL NEED TO GET THIS FROM KEYCLOAK} +Auth__OIDC__Token=/realms/mmi/protocol/openid-connect/token + +Service__ApiUrl=http://host.docker.internal:$portApi/api + +CHES__AuthUrl=https://dev.loginproxy.gov.bc.ca/auth/realms/comsvcauth/protocol/openid-connect/token +CHES__HostUri=https://ches-dev.api.gov.bc.ca/api/v1 +CHES__Username={YOU WILL NEED TO GET THIS FROM CHES} +CHES__Password={YOU WILL NEED TO GET THIS FROM CHES} +CHES__EmailAuthorized=true +# CHES__OverrideTo= + +Kafka__BootstrapServers=host.docker.internal:$portKafkaBrokerAdvertisedExternal + +# Configure Azure Speech Service +Service__AzureSpeechKey={ENTER A VALID AZURE KEY} +Service__AzureSpeechRegion=westus + +Service__AzureSpeechStorageConnectionString={Connection String} +Service__AzureSpeechStorageContainer=batch-transcripts + +# Configure Azure OpenAI/Foundary LLM Service +Service__LlmApiUrl=https://mmiopenai.cognitiveservices.azure.com +Service__LlmApiKey={ENTER A VALID AZURE KEY} +Service__LlmDefaultModel=gpt-5.1-chat +Service__LlmPrompt=" >> ./services/net/auto-clipper/.env + echo "./services/net/auto-clipper/.env created" +fi + ## Indexing Service if test -f "./services/net/indexing/.env"; then echo "./services/net/indexing/.env exists" diff --git a/tools/scripts/variables.sh b/tools/scripts/variables.sh index 2c3e4fdc46..e9c7fa765d 100755 --- a/tools/scripts/variables.sh +++ b/tools/scripts/variables.sh @@ -173,6 +173,7 @@ export portContent=40025 export portIndexing=40026 export portTranscription=40027 export portNlp=40028 +export portAutoClipper=40029 export portCoreNlp=40038 export portNotification=40030 export portReporting=40031