From a6b1af6eb4d6635b952570db40f84385c1344498 Mon Sep 17 00:00:00 2001 From: sleevezipper Date: Tue, 12 Jan 2021 20:33:42 +0100 Subject: [PATCH 1/6] release settings --- .../PublishProfiles/AzureHosted.pubxml | 2 +- hass-workstation-service/UserInterface.exe | Bin 22940877 -> 22940877 bytes .../hass-workstation-service.csproj | 4 ++-- .../hass-workstation-service.exe | Bin 213504 -> 0 bytes 4 files changed, 3 insertions(+), 3 deletions(-) delete mode 100644 hass-workstation-service/hass-workstation-service.exe diff --git a/hass-workstation-service/Properties/PublishProfiles/AzureHosted.pubxml b/hass-workstation-service/Properties/PublishProfiles/AzureHosted.pubxml index 558f6d5..a48e0a8 100644 --- a/hass-workstation-service/Properties/PublishProfiles/AzureHosted.pubxml +++ b/hass-workstation-service/Properties/PublishProfiles/AzureHosted.pubxml @@ -4,7 +4,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121. --> - 27 + 31 1.0.0.* True Release diff --git a/hass-workstation-service/UserInterface.exe b/hass-workstation-service/UserInterface.exe index be6aeec690297172e1a1e3b1c41c458931ffe058..f91d3e85e201b09a0d7893094ae6829fcc60ff06 100644 GIT binary patch delta 20798 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 delta 20715 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 diff --git a/hass-workstation-service/hass-workstation-service.csproj b/hass-workstation-service/hass-workstation-service.csproj index d75fb12..40d209c 100644 --- a/hass-workstation-service/hass-workstation-service.csproj +++ b/hass-workstation-service/hass-workstation-service.csproj @@ -31,10 +31,10 @@ - PreserveNewest + Always - PreserveNewest + Always diff --git a/hass-workstation-service/hass-workstation-service.exe b/hass-workstation-service/hass-workstation-service.exe deleted file mode 100644 index c309e921fd6513596fc5692ad13f64fb3f8627d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 213504 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 From 6c3973f7817ca6f12d31fb80fb9985820383139e Mon Sep 17 00:00:00 2001 From: sleevezipper Date: Tue, 12 Jan 2021 22:39:49 +0100 Subject: [PATCH 2/6] also check _USER for cam/mic access and support Microsoft apps too #18 --- .../Domain/Sensors/MicrophoneActiveSensor.cs | 78 +++++++++++++++++-- .../Domain/Sensors/WebcamActiveSensor.cs | 78 +++++++++++++++++-- 2 files changed, 144 insertions(+), 12 deletions(-) diff --git a/hass-workstation-service/Domain/Sensors/MicrophoneActiveSensor.cs b/hass-workstation-service/Domain/Sensors/MicrophoneActiveSensor.cs index 0acf53d..e85f854 100644 --- a/hass-workstation-service/Domain/Sensors/MicrophoneActiveSensor.cs +++ b/hass-workstation-service/Domain/Sensors/MicrophoneActiveSensor.cs @@ -36,18 +36,84 @@ namespace hass_workstation_service.Domain.Sensors [SupportedOSPlatform("windows")] private bool IsMicrophoneInUse() { - using (var key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\microphone\NonPackaged")) + using (var key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\microphone")) { foreach (var subKeyName in key.GetSubKeyNames()) { - using (var subKey = key.OpenSubKey(subKeyName)) + // NonPackaged has multiple subkeys + if (subKeyName == "NonPackaged") { - if (subKey.GetValueNames().Contains("LastUsedTimeStop")) + using (var nonpackagedkey = key.OpenSubKey(subKeyName)) { - var endTime = subKey.GetValue("LastUsedTimeStop") is long ? (long)subKey.GetValue("LastUsedTimeStop") : -1; - if (endTime <= 0) + foreach (var nonpackagedSubKeyName in nonpackagedkey.GetSubKeyNames()) { - return true; + using (var subKey = nonpackagedkey.OpenSubKey(nonpackagedSubKeyName)) + { + if (subKey.GetValueNames().Contains("LastUsedTimeStop")) + { + var endTime = subKey.GetValue("LastUsedTimeStop") is long ? (long)subKey.GetValue("LastUsedTimeStop") : -1; + if (endTime <= 0) + { + return true; + } + } + } + } + } + } + else + { + using (var subKey = key.OpenSubKey(subKeyName)) + { + if (subKey.GetValueNames().Contains("LastUsedTimeStop")) + { + var endTime = subKey.GetValue("LastUsedTimeStop") is long ? (long)subKey.GetValue("LastUsedTimeStop") : -1; + if (endTime <= 0) + { + return true; + } + } + } + } + } + } + + using (var key = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\microphone")) + { + foreach (var subKeyName in key.GetSubKeyNames()) + { + // NonPackaged has multiple subkeys + if (subKeyName == "NonPackaged") + { + using (var nonpackagedkey = key.OpenSubKey(subKeyName)) + { + foreach (var nonpackagedSubKeyName in nonpackagedkey.GetSubKeyNames()) + { + using (var subKey = nonpackagedkey.OpenSubKey(nonpackagedSubKeyName)) + { + if (subKey.GetValueNames().Contains("LastUsedTimeStop")) + { + var endTime = subKey.GetValue("LastUsedTimeStop") is long ? (long)subKey.GetValue("LastUsedTimeStop") : -1; + if (endTime <= 0) + { + return true; + } + } + } + } + } + } + else + { + using (var subKey = key.OpenSubKey(subKeyName)) + { + if (subKey.GetValueNames().Contains("LastUsedTimeStop")) + { + var endTime = subKey.GetValue("LastUsedTimeStop") is long ? (long)subKey.GetValue("LastUsedTimeStop") : -1; + if (endTime <= 0) + { + return true; + } } } } diff --git a/hass-workstation-service/Domain/Sensors/WebcamActiveSensor.cs b/hass-workstation-service/Domain/Sensors/WebcamActiveSensor.cs index 6806e78..c690c03 100644 --- a/hass-workstation-service/Domain/Sensors/WebcamActiveSensor.cs +++ b/hass-workstation-service/Domain/Sensors/WebcamActiveSensor.cs @@ -38,18 +38,84 @@ namespace hass_workstation_service.Domain.Sensors [SupportedOSPlatform("windows")] private bool IsWebCamInUseRegistry() { - using (var key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\webcam\NonPackaged")) + using (var key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\webcam")) { foreach (var subKeyName in key.GetSubKeyNames()) { - using (var subKey = key.OpenSubKey(subKeyName)) + // NonPackaged has multiple subkeys + if (subKeyName == "NonPackaged") { - if (subKey.GetValueNames().Contains("LastUsedTimeStop")) + using (var nonpackagedkey = key.OpenSubKey(subKeyName)) { - var endTime = subKey.GetValue("LastUsedTimeStop") is long ? (long)subKey.GetValue("LastUsedTimeStop") : -1; - if (endTime <= 0) + foreach (var nonpackagedSubKeyName in nonpackagedkey.GetSubKeyNames()) { - return true; + using (var subKey = nonpackagedkey.OpenSubKey(nonpackagedSubKeyName)) + { + if (subKey.GetValueNames().Contains("LastUsedTimeStop")) + { + var endTime = subKey.GetValue("LastUsedTimeStop") is long ? (long)subKey.GetValue("LastUsedTimeStop") : -1; + if (endTime <= 0) + { + return true; + } + } + } + } + } + } + else + { + using (var subKey = key.OpenSubKey(subKeyName)) + { + if (subKey.GetValueNames().Contains("LastUsedTimeStop")) + { + var endTime = subKey.GetValue("LastUsedTimeStop") is long ? (long)subKey.GetValue("LastUsedTimeStop") : -1; + if (endTime <= 0) + { + return true; + } + } + } + } + } + } + + using (var key = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\webcam")) + { + foreach (var subKeyName in key.GetSubKeyNames()) + { + // NonPackaged has multiple subkeys + if (subKeyName == "NonPackaged") + { + using (var nonpackagedkey = key.OpenSubKey(subKeyName)) + { + foreach (var nonpackagedSubKeyName in nonpackagedkey.GetSubKeyNames()) + { + using (var subKey = nonpackagedkey.OpenSubKey(nonpackagedSubKeyName)) + { + if (subKey.GetValueNames().Contains("LastUsedTimeStop")) + { + var endTime = subKey.GetValue("LastUsedTimeStop") is long ? (long)subKey.GetValue("LastUsedTimeStop") : -1; + if (endTime <= 0) + { + return true; + } + } + } + } + } + } + else + { + using (var subKey = key.OpenSubKey(subKeyName)) + { + if (subKey.GetValueNames().Contains("LastUsedTimeStop")) + { + var endTime = subKey.GetValue("LastUsedTimeStop") is long ? (long)subKey.GetValue("LastUsedTimeStop") : -1; + if (endTime <= 0) + { + return true; + } } } } From 06b5373d6bbc0e14c4f469f3a178767a8326485a Mon Sep 17 00:00:00 2001 From: sleevezipper Date: Sat, 16 Jan 2021 04:12:12 +0100 Subject: [PATCH 3/6] implement custom command and availability topics wip --- README.md | 12 ++ UserInterface/UserInterface.csproj | 9 ++ .../ViewModels/AddCommandViewModel.cs | 31 ++++++ .../ViewModels/CommandSettingsViewModel.cs | 25 +++++ UserInterface/Views/AddCommandDialog.axaml | 26 +++++ UserInterface/Views/AddCommandDialog.axaml.cs | 97 ++++++++++++++++ UserInterface/Views/AppInfo.axaml | 17 +++ UserInterface/Views/AppInfo.axaml.cs | 91 +++++++++++++++ UserInterface/Views/CommandSettings.axaml | 26 +++++ UserInterface/Views/CommandSettings.axaml.cs | 82 ++++++++++++++ UserInterface/Views/MainWindow.axaml | 4 +- UserInterface/Views/SensorSettings.axaml | 1 + .../InterProcessApi.cs | 52 +++++++++ .../ServiceContractInterfaces.cs | 3 + .../ServiceContractModels.cs | 13 ++- .../Communication/MQTT/MqttPublisher.cs | 85 +++++++++++++- ...Model.cs => SensorDiscoveryConfigModel.cs} | 99 +++++++++++++++-- .../Data/ConfigurationService.cs | 104 +++++++++++++++++- .../Data/ConfiguredCommand.cs | 13 +++ .../Data/IConfigurationService.cs | 8 +- .../Domain/AbstractDiscoverable.cs | 13 +++ .../Domain/Commands/AbstractCommand.cs | 79 +++++++++++++ .../Domain/Commands/CustomCommand.cs | 48 ++++++++ .../Domain/Sensors/AbstractSensor.cs | 13 ++- .../Domain/Sensors/ActiveWindowSensor.cs | 8 +- .../Domain/Sensors/CPULoadSensor.cs | 10 +- .../Domain/Sensors/CurrentClockSpeedSensor.cs | 10 +- .../Domain/Sensors/DummySensor.cs | 8 +- .../Domain/Sensors/LastActiveSensor.cs | 10 +- .../Domain/Sensors/LastBootSensor.cs | 10 +- .../Domain/Sensors/MemoryUsageSensor.cs | 10 +- .../Domain/Sensors/MicrophoneActiveSensor.cs | 8 +- .../Domain/Sensors/NamedWindowSensor.cs | 8 +- .../Domain/Sensors/SessionStateSensor.cs | 8 +- .../Sensors/UserNotificationStateSensor.cs | 8 +- .../Domain/Sensors/WMIQuerySensor.cs | 8 +- .../Domain/Sensors/WebcamActiveSensor.cs | 8 +- hass-workstation-service/Worker.cs | 27 ++++- 38 files changed, 1018 insertions(+), 74 deletions(-) create mode 100644 UserInterface/ViewModels/AddCommandViewModel.cs create mode 100644 UserInterface/ViewModels/CommandSettingsViewModel.cs create mode 100644 UserInterface/Views/AddCommandDialog.axaml create mode 100644 UserInterface/Views/AddCommandDialog.axaml.cs create mode 100644 UserInterface/Views/AppInfo.axaml create mode 100644 UserInterface/Views/AppInfo.axaml.cs create mode 100644 UserInterface/Views/CommandSettings.axaml create mode 100644 UserInterface/Views/CommandSettings.axaml.cs rename hass-workstation-service/Communication/MQTT/{AutoDiscoveryConfigModel.cs => SensorDiscoveryConfigModel.cs} (62%) create mode 100644 hass-workstation-service/Data/ConfiguredCommand.cs create mode 100644 hass-workstation-service/Domain/AbstractDiscoverable.cs create mode 100644 hass-workstation-service/Domain/Commands/AbstractCommand.cs create mode 100644 hass-workstation-service/Domain/Commands/CustomCommand.cs diff --git a/README.md b/README.md index a508f42..cba50fc 100644 --- a/README.md +++ b/README.md @@ -124,3 +124,15 @@ This sensor returns the current session state. It has the following possible sta ### Dummy This sensor spits out a random number every second. Useful for testing, maybe you'll find some other use for it. + +## Commands + +Commands can be used to trigger certain things on the client. + +### CustomCommand + +This command allows you to run any Windows Commands. The command will be run in a hidden Command Prompt. Some examples: + +|Command|Explanation| +|---|---| +|Rundll32.exe user32.dll,LockWorkStation|This locks the current session.| \ No newline at end of file diff --git a/UserInterface/UserInterface.csproj b/UserInterface/UserInterface.csproj index c2877e3..7805ed5 100644 --- a/UserInterface/UserInterface.csproj +++ b/UserInterface/UserInterface.csproj @@ -23,9 +23,18 @@ + + AddCommandDialog.axaml + + + AppInfo.axaml + BackgroundServiceSettings.axaml + + CommandSettings.axaml + SensorSettings.axaml diff --git a/UserInterface/ViewModels/AddCommandViewModel.cs b/UserInterface/ViewModels/AddCommandViewModel.cs new file mode 100644 index 0000000..7fc458a --- /dev/null +++ b/UserInterface/ViewModels/AddCommandViewModel.cs @@ -0,0 +1,31 @@ +using hass_workstation_service.Communication.InterProcesCommunication.Models; +using ReactiveUI; +using System; +using System.Collections.Generic; +using System.Text; + +namespace UserInterface.ViewModels +{ + public class AddCommandViewModel : ViewModelBase + { + private AvailableCommands selectedType; + private string description; + + public string Description { get => description; set => this.RaiseAndSetIfChanged(ref description, value); } + public bool ShowCommandInput { get => showCommandInput; set => this.RaiseAndSetIfChanged(ref showCommandInput, value); } + + private string moreInfoLink; + private bool showCommandInput; + + public string MoreInfoLink + { + get { return moreInfoLink; } + set { this.RaiseAndSetIfChanged(ref moreInfoLink, value); } + } + + public AvailableCommands SelectedType { get => selectedType; set => this.RaiseAndSetIfChanged(ref selectedType, value); } + + public string Name { get; set; } + public string Command { get; set; } + } +} diff --git a/UserInterface/ViewModels/CommandSettingsViewModel.cs b/UserInterface/ViewModels/CommandSettingsViewModel.cs new file mode 100644 index 0000000..4477508 --- /dev/null +++ b/UserInterface/ViewModels/CommandSettingsViewModel.cs @@ -0,0 +1,25 @@ +using ReactiveUI; +using System; +using System.Collections.Generic; +using System.Text; + +namespace UserInterface.ViewModels +{ + public class CommandSettingsViewModel : ViewModelBase + { + private ICollection configuredCommands; + + public ICollection ConfiguredCommands { get => configuredCommands; set => this.RaiseAndSetIfChanged(ref configuredCommands, value); } + public void TriggerUpdate() + { + this.RaisePropertyChanged(); + } + } + + public class CommandViewModel : ViewModelBase + { + public Guid Id { get; set; } + public string Type { get; set; } + public string Name { get; set; } + } +} diff --git a/UserInterface/Views/AddCommandDialog.axaml b/UserInterface/Views/AddCommandDialog.axaml new file mode 100644 index 0000000..f359fc5 --- /dev/null +++ b/UserInterface/Views/AddCommandDialog.axaml @@ -0,0 +1,26 @@ + + + Sensor type + + + + + Name + + + + + + Command + + + + + diff --git a/UserInterface/Views/AddCommandDialog.axaml.cs b/UserInterface/Views/AddCommandDialog.axaml.cs new file mode 100644 index 0000000..9db4d7b --- /dev/null +++ b/UserInterface/Views/AddCommandDialog.axaml.cs @@ -0,0 +1,97 @@ +using Avalonia; +using Avalonia.Controls; +using Avalonia.Interactivity; +using Avalonia.Markup.Xaml; +using hass_workstation_service.Communication.InterProcesCommunication.Models; +using hass_workstation_service.Communication.NamedPipe; +using JKang.IpcServiceFramework.Client; +using Microsoft.Extensions.DependencyInjection; +using System; +using System.Dynamic; +using System.Linq; +using System.Text.Json; +using UserInterface.Util; +using UserInterface.ViewModels; + +namespace UserInterface.Views +{ + public class AddCommandDialog : Window + { + private readonly IIpcClient client; + public ComboBox comboBox { get; set; } + public ComboBox detectionModecomboBox { get; set; } + public AddCommandDialog() + { + this.InitializeComponent(); +#if DEBUG + this.AttachDevTools(); +#endif + DataContext = new AddCommandViewModel(); + this.comboBox = this.FindControl("ComboBox"); + this.comboBox.Items = Enum.GetValues(typeof(AvailableCommands)).Cast().OrderBy(v => v.ToString()); + this.comboBox.SelectedIndex = 0; + + // register IPC clients + ServiceProvider serviceProvider = new ServiceCollection() + .AddNamedPipeIpcClient("addCommand", pipeName: "pipeinternal") + .BuildServiceProvider(); + + // resolve IPC client factory + IIpcClientFactory clientFactory = serviceProvider + .GetRequiredService>(); + + // create client + this.client = clientFactory.CreateClient("addCommand"); + } + + public async void Save(object sender, RoutedEventArgs args) + { + var item = ((AddCommandViewModel)this.DataContext); + dynamic model = new { item.Name, item.Command}; + string json = JsonSerializer.Serialize(model); + await this.client.InvokeAsync(x => x.AddCommand(item.SelectedType, json)); + Close(); + } + + public void ComboBoxClosed(object sender, SelectionChangedEventArgs args) + { + var item = ((AddCommandViewModel)this.DataContext); + switch (item.SelectedType) + { + case AvailableCommands.CustomCommand: + item.Description = "This command lets you execute any command you want. It will run in a Windows Command Prompt silently. "; + item.MoreInfoLink = "https://github.com/sleevezipper/hass-workstation-service#customcommand"; + item.ShowCommandInput = true; + break; + default: + item.Description = null; + item.MoreInfoLink = null; + item.ShowCommandInput = false; + break; + } + } + public void OpenInfo(object sender, RoutedEventArgs args) + { + var item = ((AddSensorViewModel)this.DataContext); + BrowserUtil.OpenBrowser(item.MoreInfoLink); + } + + public void Test(object sender, RoutedEventArgs args) + { + var item = ((AddCommandViewModel)this.DataContext); + + System.Diagnostics.Process process = new System.Diagnostics.Process(); + System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(); + startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal; + startInfo.FileName = "cmd.exe"; + startInfo.Arguments = $"/k {"echo You won't see this window normally. &&" + item.Command}"; + process.StartInfo = startInfo; + process.Start(); + } + + private void InitializeComponent() + { + AvaloniaXamlLoader.Load(this); + } + } +} diff --git a/UserInterface/Views/AppInfo.axaml b/UserInterface/Views/AppInfo.axaml new file mode 100644 index 0000000..5bbdfbc --- /dev/null +++ b/UserInterface/Views/AppInfo.axaml @@ -0,0 +1,17 @@ + + + + Info + + + + + + + + diff --git a/UserInterface/Views/AppInfo.axaml.cs b/UserInterface/Views/AppInfo.axaml.cs new file mode 100644 index 0000000..7a4c576 --- /dev/null +++ b/UserInterface/Views/AppInfo.axaml.cs @@ -0,0 +1,91 @@ +using Avalonia; +using Avalonia.Controls; +using Avalonia.Markup.Xaml; +using Microsoft.Extensions.DependencyInjection; +using hass_workstation_service.Communication.NamedPipe; +using JKang.IpcServiceFramework.Client; +using System.Threading.Tasks; +using Avalonia.Interactivity; +using System.Reactive.Linq; +using UserInterface.ViewModels; +using System.Security; +using hass_workstation_service.Communication.InterProcesCommunication.Models; +using UserInterface.Util; + +namespace UserInterface.Views +{ + public class AppInfo : UserControl + { + private readonly IIpcClient client; + + public AppInfo() + { + this.InitializeComponent(); + // register IPC clients + ServiceProvider serviceProvider = new ServiceCollection() + .AddNamedPipeIpcClient("broker", pipeName: "pipeinternal") + .BuildServiceProvider(); + + // resolve IPC client factory + IIpcClientFactory clientFactory = serviceProvider + .GetRequiredService>(); + + // create client + this.client = clientFactory.CreateClient("broker"); + + + DataContext = new BackgroundServiceSettingsViewModel(); + Ping(); + } + public async void Ping() { + while (true) + { + try + { + var result = await this.client.InvokeAsync(x => x.Ping("ping")); + if (result == "pong") + { + ((BackgroundServiceSettingsViewModel)this.DataContext).UpdateStatus(true, "All good"); + } + else + { + ((BackgroundServiceSettingsViewModel)this.DataContext).UpdateStatus(false, "Not running"); + } + } + catch (System.Exception) + { + ((BackgroundServiceSettingsViewModel)this.DataContext).UpdateStatus(false, "Not running"); + } + + var autostartresult = await this.client.InvokeAsync(x => x.IsAutoStartEnabled()); + ((BackgroundServiceSettingsViewModel)this.DataContext).UpdateAutostartStatus(autostartresult); + + await Task.Delay(1000); + } + } + + public void Github(object sender, RoutedEventArgs args) + { + BrowserUtil.OpenBrowser("https://github.com/sleevezipper/hass-workstation-service"); + } + + public void Discord(object sender, RoutedEventArgs args) + { + BrowserUtil.OpenBrowser("https://discord.gg/VraYT2N3wd"); + } + + public void EnableAutostart(object sender, RoutedEventArgs args) + { + this.client.InvokeAsync(x => x.EnableAutostart(true)); + } + public void DisableAutostart(object sender, RoutedEventArgs args) + { + this.client.InvokeAsync(x => x.EnableAutostart(false)); + } + + private void InitializeComponent() + { + AvaloniaXamlLoader.Load(this); + } + } +} diff --git a/UserInterface/Views/CommandSettings.axaml b/UserInterface/Views/CommandSettings.axaml new file mode 100644 index 0000000..587d109 --- /dev/null +++ b/UserInterface/Views/CommandSettings.axaml @@ -0,0 +1,26 @@ + + + Commands + + + + + + + + Add some commands by clicking the "Add" button. + + + + + diff --git a/UserInterface/Views/CommandSettings.axaml.cs b/UserInterface/Views/CommandSettings.axaml.cs new file mode 100644 index 0000000..fb963f4 --- /dev/null +++ b/UserInterface/Views/CommandSettings.axaml.cs @@ -0,0 +1,82 @@ +using Avalonia; +using Avalonia.Controls; +using Avalonia.Markup.Xaml; +using Microsoft.Extensions.DependencyInjection; +using hass_workstation_service.Communication.NamedPipe; +using JKang.IpcServiceFramework.Client; +using System.Threading.Tasks; +using Avalonia.Interactivity; +using System.Reactive.Linq; +using UserInterface.ViewModels; +using System.Security; +using hass_workstation_service.Communication.InterProcesCommunication.Models; +using System.Collections.Generic; +using System.Linq; +using Avalonia.Controls.ApplicationLifetimes; + +namespace UserInterface.Views +{ + public class CommandSettings : UserControl + { + private readonly IIpcClient client; + private DataGrid _dataGrid { get; set; } + private bool sensorsNeedToRefresh { get; set; } + + public CommandSettings() + { + this.InitializeComponent(); + // register IPC clients + ServiceProvider serviceProvider = new ServiceCollection() + .AddNamedPipeIpcClient("commands", pipeName: "pipeinternal") + .BuildServiceProvider(); + + // resolve IPC client factory + IIpcClientFactory clientFactory = serviceProvider + .GetRequiredService>(); + + // create client + this.client = clientFactory.CreateClient("commands"); + + + DataContext = new CommandSettingsViewModel(); + GetConfiguredCommands(); + + this._dataGrid = this.FindControl("Grid"); + } + + + public async void GetConfiguredCommands() + { + sensorsNeedToRefresh = false; + List status = await this.client.InvokeAsync(x => x.GetConfiguredCommands()); + + ((CommandSettingsViewModel)this.DataContext).ConfiguredCommands = status.Select(s => new CommandViewModel() { Name = s.Name, Type = s.Type, Id = s.Id}).ToList(); + + } + public void Delete(object sender, RoutedEventArgs args) + { + var item = ((CommandViewModel)this._dataGrid.SelectedItem); + this.client.InvokeAsync(x => x.RemoveCommandById(item.Id)); + ((CommandSettingsViewModel)this.DataContext).ConfiguredCommands.Remove(item); + this._dataGrid.SelectedIndex = -1; + ((CommandSettingsViewModel)this.DataContext).TriggerUpdate(); + } + + public async void Add(object sender, RoutedEventArgs args) + { + AddCommandDialog dialog = new AddCommandDialog(); + if (Application.Current.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) + { + await dialog.ShowDialog(desktop.MainWindow); + sensorsNeedToRefresh = true; + GetConfiguredCommands(); + } + } + + private void InitializeComponent() + { + AvaloniaXamlLoader.Load(this); + } + + } +} diff --git a/UserInterface/Views/MainWindow.axaml b/UserInterface/Views/MainWindow.axaml index 50d8e41..c8f2cc3 100644 --- a/UserInterface/Views/MainWindow.axaml +++ b/UserInterface/Views/MainWindow.axaml @@ -14,9 +14,11 @@ - + + + diff --git a/UserInterface/Views/SensorSettings.axaml b/UserInterface/Views/SensorSettings.axaml index 48a2227..4d8d085 100644 --- a/UserInterface/Views/SensorSettings.axaml +++ b/UserInterface/Views/SensorSettings.axaml @@ -6,6 +6,7 @@ MaxWidth="800" x:Class="UserInterface.Views.SensorSettings" > + Sensors diff --git a/hass-workstation-service/Communication/InterProcesCommunication/InterProcessApi.cs b/hass-workstation-service/Communication/InterProcesCommunication/InterProcessApi.cs index 4fe7dc5..da03e81 100644 --- a/hass-workstation-service/Communication/InterProcesCommunication/InterProcessApi.cs +++ b/hass-workstation-service/Communication/InterProcesCommunication/InterProcessApi.cs @@ -2,6 +2,7 @@ using hass_workstation_service.Communication.InterProcesCommunication.Models; using hass_workstation_service.Communication.NamedPipe; using hass_workstation_service.Communication.Util; using hass_workstation_service.Data; +using hass_workstation_service.Domain.Commands; using hass_workstation_service.Domain.Sensors; using Serilog; using System; @@ -49,11 +50,19 @@ namespace hass_workstation_service.Communication.InterProcesCommunication return "what?"; } + /// + /// This writes the provided settings to the config file. + /// + /// public void WriteMqttBrokerSettingsAsync(MqttSettings settings) { this._configurationService.WriteMqttBrokerSettingsAsync(settings); } + /// + /// Enables or disables autostart. + /// + /// public void EnableAutostart(bool enable) { this._configurationService.EnableAutoStart(enable); @@ -69,11 +78,25 @@ namespace hass_workstation_service.Communication.InterProcesCommunication return this._configurationService.ConfiguredSensors.Select(s => new ConfiguredSensorModel() { Name = s.Name, Type = s.GetType().Name, Value = s.PreviousPublishedState, Id = s.Id, UpdateInterval = s.UpdateInterval, UnitOfMeasurement = s.GetAutoDiscoveryConfig().Unit_of_measurement }).ToList(); } + public List GetConfiguredCommands() + { + return this._configurationService.ConfiguredCommands.Select(s => new ConfiguredCommandModel() { Name = s.Name, Type = s.GetType().Name, Id = s.Id }).ToList(); + } + public void RemoveCommandById(Guid id) + { + this._configurationService.DeleteConfiguredCommand(id); + } + public void RemoveSensorById(Guid id) { this._configurationService.DeleteConfiguredSensor(id); } + /// + /// Adds a command to the configured commands. This properly initializes the class and writes it to the config file. + /// + /// + /// public void AddSensor(AvailableSensors sensorType, string json) { var serializerOptions = new JsonSerializerOptions @@ -133,5 +156,34 @@ namespace hass_workstation_service.Communication.InterProcesCommunication this._configurationService.AddConfiguredSensor(sensorToCreate); } } + + /// + /// Adds a command to the configured commands. This properly initializes the class, subscribes to the command topic and writes it to the config file. + /// + /// + /// + public void AddCommand(AvailableCommands commandType, string json) + { + var serializerOptions = new JsonSerializerOptions + { + Converters = { new DynamicJsonConverter() } + }; + dynamic model = JsonSerializer.Deserialize(json, serializerOptions); + + AbstractCommand commandToCreate = null; + switch (commandType) + { + case AvailableCommands.CustomCommand: + commandToCreate = new CustomCommand(this._publisher, model.Command, model.Name); + break; + default: + Log.Logger.Error("Unknown sensortype"); + break; + } + if (commandToCreate != null) + { + this._configurationService.AddConfiguredCommand(commandToCreate); + } + } } } diff --git a/hass-workstation-service/Communication/InterProcesCommunication/ServiceContractInterfaces.cs b/hass-workstation-service/Communication/InterProcesCommunication/ServiceContractInterfaces.cs index a85f5fe..189bd5c 100644 --- a/hass-workstation-service/Communication/InterProcesCommunication/ServiceContractInterfaces.cs +++ b/hass-workstation-service/Communication/InterProcesCommunication/ServiceContractInterfaces.cs @@ -17,5 +17,8 @@ namespace hass_workstation_service.Communication.NamedPipe List GetConfiguredSensors(); void RemoveSensorById(Guid id); void AddSensor(AvailableSensors sensorType, string json); + void RemoveCommandById(Guid id); + List GetConfiguredCommands(); + void AddCommand(AvailableCommands commandType, string json); } } diff --git a/hass-workstation-service/Communication/InterProcesCommunication/ServiceContractModels.cs b/hass-workstation-service/Communication/InterProcesCommunication/ServiceContractModels.cs index aee1b16..175ba8c 100644 --- a/hass-workstation-service/Communication/InterProcesCommunication/ServiceContractModels.cs +++ b/hass-workstation-service/Communication/InterProcesCommunication/ServiceContractModels.cs @@ -29,7 +29,13 @@ namespace hass_workstation_service.Communication.InterProcesCommunication.Models public int UpdateInterval { get; set; } public string UnitOfMeasurement { get; set; } } - + public class ConfiguredCommandModel + { + public Guid Id { get; set; } + public string Type { get; set; } + public string Name { get; set; } + public string Command { get; set; } + } public enum AvailableSensors { UserNotificationStateSensor, @@ -46,4 +52,9 @@ namespace hass_workstation_service.Communication.InterProcesCommunication.Models LastBootSensor, SessionStateSensor } + + public enum AvailableCommands + { + CustomCommand + } } diff --git a/hass-workstation-service/Communication/MQTT/MqttPublisher.cs b/hass-workstation-service/Communication/MQTT/MqttPublisher.cs index 090cb2e..37e32ae 100644 --- a/hass-workstation-service/Communication/MQTT/MqttPublisher.cs +++ b/hass-workstation-service/Communication/MQTT/MqttPublisher.cs @@ -1,10 +1,13 @@ using System; +using System.Collections.Generic; +using System.Text; using System.Text.Json; using System.Threading; using System.Threading.Tasks; using hass_workstation_service.Communication.InterProcesCommunication.Models; using hass_workstation_service.Communication.Util; using hass_workstation_service.Data; +using hass_workstation_service.Domain.Commands; using Microsoft.Extensions.Logging; using MQTTnet; using MQTTnet.Adapter; @@ -24,6 +27,7 @@ namespace hass_workstation_service.Communication private string _mqttClientMessage { get; set; } public DateTime LastConfigAnnounce { get; private set; } public DeviceConfigModel DeviceConfigModel { get; private set; } + public ICollection Subscribers { get; private set; } public bool IsConnected { get @@ -44,7 +48,7 @@ namespace hass_workstation_service.Communication DeviceConfigModel deviceConfigModel, IConfigurationService configurationService) { - + this.Subscribers = new List(); this._logger = logger; this.DeviceConfigModel = deviceConfigModel; this._configurationService = configurationService; @@ -69,6 +73,8 @@ namespace hass_workstation_service.Communication this._mqttClientMessage = "All good"; }); + this._mqttClient.UseApplicationMessageReceivedHandler(e => this.HandleMessageReceived(e.ApplicationMessage)); + // configure what happens on disconnect this._mqttClient.UseDisconnectedHandler(async e => { @@ -103,7 +109,7 @@ namespace hass_workstation_service.Communication } } - public async Task AnnounceAutoDiscoveryConfig(AutoDiscoveryConfigModel config, bool clearConfig = false) + public async Task AnnounceAutoDiscoveryConfig(DiscoveryConfigModel config, string domain, bool clearConfig = false) { if (this._mqttClient.IsConnected) { @@ -111,11 +117,13 @@ namespace hass_workstation_service.Communication { PropertyNamingPolicy = new CamelCaseJsonNamingpolicy(), IgnoreNullValues = true, - PropertyNameCaseInsensitive = true + PropertyNameCaseInsensitive = true, + }; + var message = new MqttApplicationMessageBuilder() - .WithTopic($"homeassistant/sensor/{this.DeviceConfigModel.Name}/{config.Name}/config") - .WithPayload(clearConfig ? "" : JsonSerializer.Serialize(config, options)) + .WithTopic($"homeassistant/{domain}/{this.DeviceConfigModel.Name}/{config.Name}/config") + .WithPayload(clearConfig ? "" : JsonSerializer.Serialize(config, config.GetType(), options)) .WithRetainFlag() .Build(); await this.Publish(message); @@ -147,5 +155,72 @@ namespace hass_workstation_service.Communication { return new MqqtClientStatus() { IsConnected = _mqttClient.IsConnected, Message = _mqttClientMessage }; } + + public async void AnnounceAvailability(string domain, bool offline = false) + { + if (this._mqttClient.IsConnected) + { + await this._mqttClient.PublishAsync( + new MqttApplicationMessageBuilder() + .WithTopic($"homeassistant/{domain}/{DeviceConfigModel.Name}/availability") + .WithPayload(offline ? "offline" : "online") + .Build() + ); + } + else + { + this._logger.LogInformation($"Availability announce dropped because mqtt not connected"); + } + } + + public async Task DisconnectAsync() + { + if (this._mqttClient.IsConnected) + { + await this._mqttClient.DisconnectAsync(); + } + else + { + this._logger.LogInformation($"Disconnected"); + } + } + + public async void Subscribe(AbstractCommand command) + { + if (this.IsConnected) + { + await this._mqttClient.SubscribeAsync(command.GetAutoDiscoveryConfig().Command_topic); + } + else + { + while (this.IsConnected == false) + { + await Task.Delay(5500); + } + + await this._mqttClient.SubscribeAsync(command.GetAutoDiscoveryConfig().Command_topic); + + } + + Subscribers.Add(command); + } + + private void HandleMessageReceived(MqttApplicationMessage applicationMessage) + { + foreach (AbstractCommand command in this.Subscribers) + { + if (command.GetAutoDiscoveryConfig().Command_topic == applicationMessage.Topic) + { + command.Execute(); + } + } + Console.WriteLine("### RECEIVED APPLICATION MESSAGE ###"); + Console.WriteLine($"+ Topic = {applicationMessage.Topic}"); + + Console.WriteLine($"+ Payload = {Encoding.UTF8.GetString(applicationMessage?.Payload)}"); + Console.WriteLine($"+ QoS = {applicationMessage.QualityOfServiceLevel}"); + Console.WriteLine($"+ Retain = {applicationMessage.Retain}"); + Console.WriteLine(); + } } } diff --git a/hass-workstation-service/Communication/MQTT/AutoDiscoveryConfigModel.cs b/hass-workstation-service/Communication/MQTT/SensorDiscoveryConfigModel.cs similarity index 62% rename from hass-workstation-service/Communication/MQTT/AutoDiscoveryConfigModel.cs rename to hass-workstation-service/Communication/MQTT/SensorDiscoveryConfigModel.cs index 4a9ae66..a67f6b6 100644 --- a/hass-workstation-service/Communication/MQTT/AutoDiscoveryConfigModel.cs +++ b/hass-workstation-service/Communication/MQTT/SensorDiscoveryConfigModel.cs @@ -3,18 +3,26 @@ using System.Collections.Generic; namespace hass_workstation_service.Communication { - public class AutoDiscoveryConfigModel + public abstract class DiscoveryConfigModel { /// - /// (Optional) The MQTT topic subscribed to receive availability (online/offline) updates. + /// (Optional) Information about the device this sensor is a part of to tie it into the device registry. Only works through MQTT discovery and when unique_id is set. /// /// - public string Availability_topic { get; set; } + public DeviceConfigModel Device { get; set; } /// - /// (Optional) Information about the device this sensor is a part of to tie it into the device registry. Only works through MQTT discovery and when unique_id is set. + /// (Optional) The name of the MQTT sensor. Defaults to MQTT Sensor in hass. /// /// - public DeviceConfigModel Device { get; set; } + public string Name { get; set; } + } + public class SensorDiscoveryConfigModel : DiscoveryConfigModel + { + /// + /// (Optional) The MQTT topic subscribed to receive availability (online/offline) updates. + /// + /// + public string Availability_topic { get; set; } /// /// (Optional) The type/class of the sensor to set the icon in the frontend. See https://www.home-assistant.io/integrations/sensor/#device-class for options. /// @@ -47,11 +55,6 @@ namespace hass_workstation_service.Communication /// public string Json_attributes_topic { get; set; } /// - /// (Optional) The name of the MQTT sensor. Defaults to MQTT Sensor in hass. - /// - /// - public string Name { get; set; } - /// /// (Optional) The payload that represents the available state. /// /// @@ -89,6 +92,82 @@ namespace hass_workstation_service.Communication public string Value_template { get; set; } } + public class CommandDiscoveryConfigModel : DiscoveryConfigModel + { + /// + /// (Optional) The MQTT topic subscribed to receive availability (online/offline) updates. + /// + /// + public string Availability_topic { get; set; } + /// + /// (Optional) The MQTT topic to set the command + /// + /// + public string Command_topic { get; set; } + /// + /// (Optional) The type/class of the sensor to set the icon in the frontend. See https://www.home-assistant.io/integrations/sensor/#device-class for options. + /// + /// + public string Device_class { get; set; } + /// + /// (Optional) Defines the number of seconds after the sensor’s state expires, if it’s not updated. After expiry, the sensor’s state becomes unavailable. Defaults to 0 in hass. + /// + /// + public int? Expire_after { get; set; } + /// + /// Sends update events even if the value hasn’t changed. Useful if you want to have meaningful value graphs in history. + /// + /// + public bool? Force_update { get; set; } + + /// + /// (Optional) The icon for the sensor. + /// + /// + public string Icon { get; set; } + /// + /// (Optional) Defines a template to extract the JSON dictionary from messages received on the json_attributes_topic. + /// + /// + public string Json_attributes_template { get; set; } + /// + /// (Optional) The MQTT topic subscribed to receive a JSON dictionary payload and then set as sensor attributes. Implies force_update of the current sensor state when a message is received on this topic. + /// + /// + public string Json_attributes_topic { get; set; } + /// + /// (Optional) The payload that represents the available state. + /// + /// + public string Payload_available { get; set; } + /// + /// (Optional) The payload that represents the unavailable state. + /// + /// + public string Payload_not_available { get; set; } + /// + /// (Optional) The maximum QoS level of the state topic. + /// + /// + public int? Qos { get; set; } + /// + /// The MQTT topic subscribed to receive sensor values. + /// + /// + public string State_topic { get; set; } + /// + /// (Optional) An ID that uniquely identifies this sensor. If two sensors have the same unique ID, Home Assistant will raise an exception. + /// + /// + public string Unique_id { get; set; } + /// + /// (Optional) Defines a template to extract the value. + /// + /// + public string Value_template { get; set; } + } + + /// /// This information will be used when announcing this device on the mqtt topic /// diff --git a/hass-workstation-service/Data/ConfigurationService.cs b/hass-workstation-service/Data/ConfigurationService.cs index 4527374..f130014 100644 --- a/hass-workstation-service/Data/ConfigurationService.cs +++ b/hass-workstation-service/Data/ConfigurationService.cs @@ -10,6 +10,7 @@ using System.Threading.Tasks; using hass_workstation_service.Communication; using hass_workstation_service.Communication.InterProcesCommunication.Models; using hass_workstation_service.Communication.NamedPipe; +using hass_workstation_service.Domain.Commands; using hass_workstation_service.Domain.Sensors; using Microsoft.Extensions.Configuration; using Microsoft.Win32; @@ -23,10 +24,12 @@ namespace hass_workstation_service.Data public class ConfigurationService : IConfigurationService { public ICollection ConfiguredSensors { get; private set; } + public ICollection ConfiguredCommands { get; private set; } public Action MqqtConfigChangedHandler { get; set; } private bool BrokerSettingsFileLocked { get; set; } private bool SensorsSettingsFileLocked { get; set; } + private bool CommandSettingsFileLocked { get; set; } private readonly string path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Hass Workstation Service"); @@ -42,7 +45,13 @@ namespace hass_workstation_service.Data File.Create(Path.Combine(path, "configured-sensors.json")).Close(); } + if (!File.Exists(Path.Combine(path, "configured-commands.json"))) + { + File.Create(Path.Combine(path, "configured-commands.json")).Close(); + } + ConfiguredSensors = new List(); + ConfiguredCommands = new List(); } public async void ReadSensorSettings(MqttPublisher publisher) @@ -123,6 +132,44 @@ namespace hass_workstation_service.Data } } + public async void ReadCommandSettings(MqttPublisher publisher) + { + while (this.CommandSettingsFileLocked) + { + await Task.Delay(500); + } + this.CommandSettingsFileLocked = true; + List commands = new List(); + using (var stream = new FileStream(Path.Combine(path, "configured-commands.json"), FileMode.Open)) + { + Log.Logger.Information($"reading configured commands from: {stream.Name}"); + if (stream.Length > 0) + { + commands = await JsonSerializer.DeserializeAsync>(stream); + } + stream.Close(); + this.CommandSettingsFileLocked = false; + } + + foreach (ConfiguredCommand configuredCommand in commands) + { + AbstractCommand command = null; + switch (configuredCommand.Type) + { + case "CustomCommand": + command = new CustomCommand(publisher, configuredCommand.Command, configuredCommand.Name, configuredCommand.Id); + break; + default: + Log.Logger.Error("unsupported command type in config"); + break; + } + if (command != null) + { + this.ConfiguredCommands.Add(command); + } + } + } + public async Task GetMqttClientOptionsAsync() { ConfiguredMqttBroker configuredBroker = await ReadMqttSettingsAsync(); @@ -173,7 +220,7 @@ namespace hass_workstation_service.Data return configuredBroker; } - public async void WriteSettingsAsync() + public async void WriteSensorSettingsAsync() { while (this.SensorsSettingsFileLocked) { @@ -210,11 +257,44 @@ namespace hass_workstation_service.Data this.SensorsSettingsFileLocked = false; } + public async void WriteCommandSettingsAsync() + { + while (this.CommandSettingsFileLocked) + { + await Task.Delay(500); + } + this.CommandSettingsFileLocked = true; + List configuredCommandsToSave = new List(); + using (FileStream stream = new FileStream(Path.Combine(path, "configured-commands.json"), FileMode.Open)) + { + stream.SetLength(0); + Log.Logger.Information($"writing configured commands to: {stream.Name}"); + foreach (AbstractCommand command in this.ConfiguredCommands) + { + if (command is CustomCommand customcommand) + { + configuredCommandsToSave.Add(new ConfiguredCommand() { Id = customcommand.Id, Name = customcommand.Name, Type = customcommand.GetType().Name, Command = customcommand.Command }); + } + } + + await JsonSerializer.SerializeAsync(stream, configuredCommandsToSave); + stream.Close(); + } + this.CommandSettingsFileLocked = false; + } + public void AddConfiguredSensor(AbstractSensor sensor) { this.ConfiguredSensors.Add(sensor); sensor.PublishAutoDiscoveryConfigAsync(); - WriteSettingsAsync(); + WriteSensorSettingsAsync(); + } + + public void AddConfiguredCommand(AbstractCommand command) + { + this.ConfiguredCommands.Add(command); + command.PublishAutoDiscoveryConfigAsync(); + WriteCommandSettingsAsync(); } public async void DeleteConfiguredSensor(Guid id) @@ -224,7 +304,7 @@ namespace hass_workstation_service.Data { await sensorToRemove.UnPublishAutoDiscoveryConfigAsync(); this.ConfiguredSensors.Remove(sensorToRemove); - WriteSettingsAsync(); + WriteSensorSettingsAsync(); } else { @@ -233,10 +313,26 @@ namespace hass_workstation_service.Data } + public async void DeleteConfiguredCommand(Guid id) + { + var sensorToRemove = this.ConfiguredCommands.FirstOrDefault(s => s.Id == id); + if (sensorToRemove != null) + { + await sensorToRemove.UnPublishAutoDiscoveryConfigAsync(); + this.ConfiguredCommands.Remove(sensorToRemove); + WriteSensorSettingsAsync(); + } + else + { + Log.Logger.Warning($"command with id {id} not found"); + } + + } + public void AddConfiguredSensors(List sensors) { sensors.ForEach((sensor) => this.ConfiguredSensors.Add(sensor)); - WriteSettingsAsync(); + WriteSensorSettingsAsync(); } /// diff --git a/hass-workstation-service/Data/ConfiguredCommand.cs b/hass-workstation-service/Data/ConfiguredCommand.cs new file mode 100644 index 0000000..d5d6b48 --- /dev/null +++ b/hass-workstation-service/Data/ConfiguredCommand.cs @@ -0,0 +1,13 @@ +using hass_workstation_service.Domain.Sensors; +using System; + +namespace hass_workstation_service.Data +{ + public class ConfiguredCommand + { + public string Type { get; set; } + public Guid Id { get; set; } + public string Name { get; set; } + public string Command { get; set; } + } +} \ No newline at end of file diff --git a/hass-workstation-service/Data/IConfigurationService.cs b/hass-workstation-service/Data/IConfigurationService.cs index 3c63154..acbea17 100644 --- a/hass-workstation-service/Data/IConfigurationService.cs +++ b/hass-workstation-service/Data/IConfigurationService.cs @@ -1,5 +1,6 @@ using hass_workstation_service.Communication; using hass_workstation_service.Communication.InterProcesCommunication.Models; +using hass_workstation_service.Domain.Commands; using hass_workstation_service.Domain.Sensors; using MQTTnet.Client.Options; using System; @@ -13,16 +14,21 @@ namespace hass_workstation_service.Data { ICollection ConfiguredSensors { get; } Action MqqtConfigChangedHandler { get; set; } + ICollection ConfiguredCommands { get; } + void AddConfiguredCommand(AbstractCommand command); void AddConfiguredSensor(AbstractSensor sensor); void AddConfiguredSensors(List sensors); Task GetMqttClientOptionsAsync(); void ReadSensorSettings(MqttPublisher publisher); void WriteMqttBrokerSettingsAsync(MqttSettings settings); - void WriteSettingsAsync(); + void WriteSensorSettingsAsync(); Task GetMqttBrokerSettings(); void EnableAutoStart(bool enable); bool IsAutoStartEnabled(); void DeleteConfiguredSensor(Guid id); + void DeleteConfiguredCommand(Guid id); + void WriteCommandSettingsAsync(); + void ReadCommandSettings(MqttPublisher publisher); } } \ No newline at end of file diff --git a/hass-workstation-service/Domain/AbstractDiscoverable.cs b/hass-workstation-service/Domain/AbstractDiscoverable.cs new file mode 100644 index 0000000..7c388f7 --- /dev/null +++ b/hass-workstation-service/Domain/AbstractDiscoverable.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace hass_workstation_service.Domain +{ + public abstract class AbstractDiscoverable + { + public abstract string Domain { get; } + } +} diff --git a/hass-workstation-service/Domain/Commands/AbstractCommand.cs b/hass-workstation-service/Domain/Commands/AbstractCommand.cs new file mode 100644 index 0000000..7e29b98 --- /dev/null +++ b/hass-workstation-service/Domain/Commands/AbstractCommand.cs @@ -0,0 +1,79 @@ +using System; +using System.Threading.Tasks; +using hass_workstation_service.Communication; +using MQTTnet; + +namespace hass_workstation_service.Domain.Commands +{ + + public abstract class AbstractCommand : AbstractDiscoverable + { + public Guid Id { get; protected set; } + public string Name { get; protected set; } + /// + /// The update interval in seconds. It checks state only if the interval has passed. + /// + public int UpdateInterval { get; protected set; } + public DateTime? LastUpdated { get; protected set; } + public string PreviousPublishedState { get; protected set; } + public MqttPublisher Publisher { get; protected set; } + public override string Domain { get => "switch"; } + public AbstractCommand(MqttPublisher publisher, string name, Guid id = default(Guid)) + { + if (id == Guid.Empty) + { + this.Id = Guid.NewGuid(); + } + else + { + this.Id = id; + } + this.Name = name; + this.Publisher = publisher; + publisher.Subscribe(this); + + } + protected CommandDiscoveryConfigModel _autoDiscoveryConfigModel; + protected CommandDiscoveryConfigModel SetAutoDiscoveryConfigModel(CommandDiscoveryConfigModel config) + { + this._autoDiscoveryConfigModel = config; + return config; + } + + public abstract CommandDiscoveryConfigModel GetAutoDiscoveryConfig(); + public abstract string GetState(); + + public async Task PublishStateAsync() + { + if (LastUpdated.HasValue && LastUpdated.Value.AddSeconds(this.UpdateInterval) > DateTime.UtcNow) + { + // dont't even check the state if the update interval hasn't passed + return; + } + string state = this.GetState(); + if (this.PreviousPublishedState == state) + { + // don't publish the state if it hasn't changed + return; + } + var message = new MqttApplicationMessageBuilder() + .WithTopic(this.GetAutoDiscoveryConfig().State_topic) + .WithPayload(state) + .WithExactlyOnceQoS() + .WithRetainFlag() + .Build(); + await Publisher.Publish(message); + this.PreviousPublishedState = state; + this.LastUpdated = DateTime.UtcNow; + } + public async void PublishAutoDiscoveryConfigAsync() + { + await this.Publisher.AnnounceAutoDiscoveryConfig(this.GetAutoDiscoveryConfig(), this.Domain); + } + public async Task UnPublishAutoDiscoveryConfigAsync() + { + await this.Publisher.AnnounceAutoDiscoveryConfig(this.GetAutoDiscoveryConfig(), this.Domain, true); + } + public abstract void Execute(); + } +} \ No newline at end of file diff --git a/hass-workstation-service/Domain/Commands/CustomCommand.cs b/hass-workstation-service/Domain/Commands/CustomCommand.cs new file mode 100644 index 0000000..aff15ec --- /dev/null +++ b/hass-workstation-service/Domain/Commands/CustomCommand.cs @@ -0,0 +1,48 @@ +using hass_workstation_service.Communication; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace hass_workstation_service.Domain.Commands +{ + public class CustomCommand : AbstractCommand + { + public string Command { get; protected set; } + public CustomCommand(MqttPublisher publisher, string command, string name = "Custom", Guid id = default(Guid)) : base(publisher, name ?? "Custom", id) + { + this.Command = command; + } + + public override void Execute() + { + System.Diagnostics.Process process = new System.Diagnostics.Process(); + System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(); + startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; + startInfo.CreateNoWindow = true; + startInfo.FileName = "cmd.exe"; + startInfo.Arguments = $"/C {this.Command}"; + process.StartInfo = startInfo; + process.Start(); + } + + public override CommandDiscoveryConfigModel GetAutoDiscoveryConfig() + { + return new CommandDiscoveryConfigModel() + { + Name = this.Name, + Unique_id = this.Id.ToString(), + Availability_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/availability", + Command_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/{this.Name}/set", + Device = this.Publisher.DeviceConfigModel, + Expire_after = 60 + }; + } + + public override string GetState() + { + return "off"; + } + } +} diff --git a/hass-workstation-service/Domain/Sensors/AbstractSensor.cs b/hass-workstation-service/Domain/Sensors/AbstractSensor.cs index 1b095bc..8c5cd50 100644 --- a/hass-workstation-service/Domain/Sensors/AbstractSensor.cs +++ b/hass-workstation-service/Domain/Sensors/AbstractSensor.cs @@ -6,7 +6,7 @@ using MQTTnet; namespace hass_workstation_service.Domain.Sensors { - public abstract class AbstractSensor + public abstract class AbstractSensor : AbstractDiscoverable { public Guid Id { get; protected set; } public string Name { get; protected set; } @@ -17,6 +17,7 @@ namespace hass_workstation_service.Domain.Sensors public DateTime? LastUpdated { get; protected set; } public string PreviousPublishedState { get; protected set; } public MqttPublisher Publisher { get; protected set; } + public override string Domain { get => "sensor"; } public AbstractSensor(MqttPublisher publisher, string name, int updateInterval = 10, Guid id = default(Guid)) { if (id == Guid.Empty) @@ -32,14 +33,14 @@ namespace hass_workstation_service.Domain.Sensors this.UpdateInterval = updateInterval; } - protected AutoDiscoveryConfigModel _autoDiscoveryConfigModel; - protected AutoDiscoveryConfigModel SetAutoDiscoveryConfigModel(AutoDiscoveryConfigModel config) + protected SensorDiscoveryConfigModel _autoDiscoveryConfigModel; + protected SensorDiscoveryConfigModel SetAutoDiscoveryConfigModel(SensorDiscoveryConfigModel config) { this._autoDiscoveryConfigModel = config; return config; } - public abstract AutoDiscoveryConfigModel GetAutoDiscoveryConfig(); + public abstract SensorDiscoveryConfigModel GetAutoDiscoveryConfig(); public abstract string GetState(); public async Task PublishStateAsync() @@ -67,11 +68,11 @@ namespace hass_workstation_service.Domain.Sensors } public async void PublishAutoDiscoveryConfigAsync() { - await this.Publisher.AnnounceAutoDiscoveryConfig(this.GetAutoDiscoveryConfig()); + await this.Publisher.AnnounceAutoDiscoveryConfig(this.GetAutoDiscoveryConfig(), this.Domain); } public async Task UnPublishAutoDiscoveryConfigAsync() { - await this.Publisher.AnnounceAutoDiscoveryConfig(this.GetAutoDiscoveryConfig(), true); + await this.Publisher.AnnounceAutoDiscoveryConfig(this.GetAutoDiscoveryConfig(), this.Domain, true); } } diff --git a/hass-workstation-service/Domain/Sensors/ActiveWindowSensor.cs b/hass-workstation-service/Domain/Sensors/ActiveWindowSensor.cs index d431f14..79cdcb3 100644 --- a/hass-workstation-service/Domain/Sensors/ActiveWindowSensor.cs +++ b/hass-workstation-service/Domain/Sensors/ActiveWindowSensor.cs @@ -9,15 +9,17 @@ namespace hass_workstation_service.Domain.Sensors public class ActiveWindowSensor : AbstractSensor { public ActiveWindowSensor(MqttPublisher publisher, int? updateInterval = null, string name = "ActiveWindow", Guid id = default(Guid)) : base(publisher, name ?? "ActiveWindow", updateInterval ?? 10, id) { } - public override AutoDiscoveryConfigModel GetAutoDiscoveryConfig() + public override SensorDiscoveryConfigModel GetAutoDiscoveryConfig() { - return this._autoDiscoveryConfigModel ?? SetAutoDiscoveryConfigModel(new AutoDiscoveryConfigModel() + return this._autoDiscoveryConfigModel ?? SetAutoDiscoveryConfigModel(new SensorDiscoveryConfigModel() { Name = this.Name, Unique_id = this.Id.ToString(), Device = this.Publisher.DeviceConfigModel, - State_topic = $"homeassistant/sensor/{Publisher.DeviceConfigModel.Name}/{this.Name}/state", + State_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/{this.Name}/state", Icon = "mdi:window-maximize", + Availability_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/availability", + Expire_after = 60 }); } diff --git a/hass-workstation-service/Domain/Sensors/CPULoadSensor.cs b/hass-workstation-service/Domain/Sensors/CPULoadSensor.cs index 7000943..21710fa 100644 --- a/hass-workstation-service/Domain/Sensors/CPULoadSensor.cs +++ b/hass-workstation-service/Domain/Sensors/CPULoadSensor.cs @@ -17,16 +17,18 @@ namespace hass_workstation_service.Domain.Sensors { } - public override AutoDiscoveryConfigModel GetAutoDiscoveryConfig() + public override SensorDiscoveryConfigModel GetAutoDiscoveryConfig() { - return this._autoDiscoveryConfigModel ?? SetAutoDiscoveryConfigModel(new AutoDiscoveryConfigModel() + return this._autoDiscoveryConfigModel ?? SetAutoDiscoveryConfigModel(new SensorDiscoveryConfigModel() { Name = this.Name, Unique_id = this.Id.ToString(), Device = this.Publisher.DeviceConfigModel, - State_topic = $"homeassistant/sensor/{Publisher.DeviceConfigModel.Name}/{this.Name}/state", + State_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/{this.Name}/state", Icon = "mdi:chart-areaspline", - Unit_of_measurement = "%" + Unit_of_measurement = "%", + Availability_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/availability", + Expire_after = 60 }); } diff --git a/hass-workstation-service/Domain/Sensors/CurrentClockSpeedSensor.cs b/hass-workstation-service/Domain/Sensors/CurrentClockSpeedSensor.cs index 921a96d..5512d02 100644 --- a/hass-workstation-service/Domain/Sensors/CurrentClockSpeedSensor.cs +++ b/hass-workstation-service/Domain/Sensors/CurrentClockSpeedSensor.cs @@ -9,16 +9,18 @@ namespace hass_workstation_service.Domain.Sensors { public CurrentClockSpeedSensor(MqttPublisher publisher, int? updateInterval = null, string name = "CurrentClockSpeed", Guid id = default(Guid)) : base(publisher, "SELECT CurrentClockSpeed FROM Win32_Processor", updateInterval ?? 10, name ?? "CurrentClockSpeed", id) { } - public override AutoDiscoveryConfigModel GetAutoDiscoveryConfig() + public override SensorDiscoveryConfigModel GetAutoDiscoveryConfig() { - return this._autoDiscoveryConfigModel ?? SetAutoDiscoveryConfigModel(new AutoDiscoveryConfigModel() + return this._autoDiscoveryConfigModel ?? SetAutoDiscoveryConfigModel(new SensorDiscoveryConfigModel() { Name = this.Name, Unique_id = this.Id.ToString(), Device = this.Publisher.DeviceConfigModel, - State_topic = $"homeassistant/sensor/{Publisher.DeviceConfigModel.Name}/{this.Name}/state", + State_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/{this.Name}/state", Icon = "mdi:speedometer", - Unit_of_measurement = "MHz" + Unit_of_measurement = "MHz", + Availability_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/availability", + Expire_after = 60 }); } } diff --git a/hass-workstation-service/Domain/Sensors/DummySensor.cs b/hass-workstation-service/Domain/Sensors/DummySensor.cs index 5960104..b63cee1 100644 --- a/hass-workstation-service/Domain/Sensors/DummySensor.cs +++ b/hass-workstation-service/Domain/Sensors/DummySensor.cs @@ -13,14 +13,16 @@ namespace hass_workstation_service.Domain.Sensors this._random = new Random(); } - public override AutoDiscoveryConfigModel GetAutoDiscoveryConfig() + public override SensorDiscoveryConfigModel GetAutoDiscoveryConfig() { - return this._autoDiscoveryConfigModel ?? SetAutoDiscoveryConfigModel(new AutoDiscoveryConfigModel() + return this._autoDiscoveryConfigModel ?? SetAutoDiscoveryConfigModel(new SensorDiscoveryConfigModel() { Name = this.Name, Unique_id = this.Id.ToString(), Device = this.Publisher.DeviceConfigModel, - State_topic = $"homeassistant/sensor/{Publisher.DeviceConfigModel.Name}/{this.Name}/state" + State_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/{this.Name}/state", + Availability_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/availability", + Expire_after = 60 }); } diff --git a/hass-workstation-service/Domain/Sensors/LastActiveSensor.cs b/hass-workstation-service/Domain/Sensors/LastActiveSensor.cs index 4a81342..07ef844 100644 --- a/hass-workstation-service/Domain/Sensors/LastActiveSensor.cs +++ b/hass-workstation-service/Domain/Sensors/LastActiveSensor.cs @@ -9,15 +9,17 @@ namespace hass_workstation_service.Domain.Sensors public LastActiveSensor(MqttPublisher publisher, int? updateInterval = 10, string name = "LastActive", Guid id = default) : base(publisher, name ?? "LastActive", updateInterval ?? 10, id){} - public override AutoDiscoveryConfigModel GetAutoDiscoveryConfig() + public override SensorDiscoveryConfigModel GetAutoDiscoveryConfig() { - return this._autoDiscoveryConfigModel ?? SetAutoDiscoveryConfigModel(new AutoDiscoveryConfigModel() + return this._autoDiscoveryConfigModel ?? SetAutoDiscoveryConfigModel(new SensorDiscoveryConfigModel() { Name = this.Name, Unique_id = this.Id.ToString(), Device = this.Publisher.DeviceConfigModel, - State_topic = $"homeassistant/sensor/{Publisher.DeviceConfigModel.Name}/{this.Name}/state", - Icon = "mdi:clock-time-three-outline" + State_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/{this.Name}/state", + Icon = "mdi:clock-time-three-outline", + Availability_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/availability", + Expire_after = 60 }); } diff --git a/hass-workstation-service/Domain/Sensors/LastBootSensor.cs b/hass-workstation-service/Domain/Sensors/LastBootSensor.cs index b9bcbd6..bda0e89 100644 --- a/hass-workstation-service/Domain/Sensors/LastBootSensor.cs +++ b/hass-workstation-service/Domain/Sensors/LastBootSensor.cs @@ -13,15 +13,17 @@ namespace hass_workstation_service.Domain.Sensors } - public override AutoDiscoveryConfigModel GetAutoDiscoveryConfig() + public override SensorDiscoveryConfigModel GetAutoDiscoveryConfig() { - return this._autoDiscoveryConfigModel ?? SetAutoDiscoveryConfigModel(new AutoDiscoveryConfigModel() + return this._autoDiscoveryConfigModel ?? SetAutoDiscoveryConfigModel(new SensorDiscoveryConfigModel() { Name = this.Name, Unique_id = this.Id.ToString(), Device = this.Publisher.DeviceConfigModel, - State_topic = $"homeassistant/sensor/{Publisher.DeviceConfigModel.Name}/{this.Name}/state", - Icon = "mdi:clock-time-three-outline" + State_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/{this.Name}/state", + Icon = "mdi:clock-time-three-outline", + Availability_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/availability", + Expire_after = 60 }); } diff --git a/hass-workstation-service/Domain/Sensors/MemoryUsageSensor.cs b/hass-workstation-service/Domain/Sensors/MemoryUsageSensor.cs index d905475..998369f 100644 --- a/hass-workstation-service/Domain/Sensors/MemoryUsageSensor.cs +++ b/hass-workstation-service/Domain/Sensors/MemoryUsageSensor.cs @@ -34,16 +34,18 @@ namespace hass_workstation_service.Domain.Sensors } return ""; } - public override AutoDiscoveryConfigModel GetAutoDiscoveryConfig() + public override SensorDiscoveryConfigModel GetAutoDiscoveryConfig() { - return this._autoDiscoveryConfigModel ?? SetAutoDiscoveryConfigModel(new AutoDiscoveryConfigModel() + return this._autoDiscoveryConfigModel ?? SetAutoDiscoveryConfigModel(new SensorDiscoveryConfigModel() { Name = this.Name, Unique_id = this.Id.ToString(), Device = this.Publisher.DeviceConfigModel, - State_topic = $"homeassistant/sensor/{Publisher.DeviceConfigModel.Name}/{this.Name}/state", + State_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/{this.Name}/state", Icon = "mdi:memory", - Unit_of_measurement = "%" + Unit_of_measurement = "%", + Availability_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/availability", + Expire_after = 60 }); } } diff --git a/hass-workstation-service/Domain/Sensors/MicrophoneActiveSensor.cs b/hass-workstation-service/Domain/Sensors/MicrophoneActiveSensor.cs index e85f854..7e78826 100644 --- a/hass-workstation-service/Domain/Sensors/MicrophoneActiveSensor.cs +++ b/hass-workstation-service/Domain/Sensors/MicrophoneActiveSensor.cs @@ -21,15 +21,17 @@ namespace hass_workstation_service.Domain.Sensors } else return "unsupported"; } - public override AutoDiscoveryConfigModel GetAutoDiscoveryConfig() + public override SensorDiscoveryConfigModel GetAutoDiscoveryConfig() { - return this._autoDiscoveryConfigModel ?? SetAutoDiscoveryConfigModel(new AutoDiscoveryConfigModel() + return this._autoDiscoveryConfigModel ?? SetAutoDiscoveryConfigModel(new SensorDiscoveryConfigModel() { Name = this.Name, Unique_id = this.Id.ToString(), Device = this.Publisher.DeviceConfigModel, - State_topic = $"homeassistant/sensor/{Publisher.DeviceConfigModel.Name}/{this.Name}/state", + State_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/{this.Name}/state", Icon = "mdi:microphone", + Availability_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/availability", + Expire_after = 60 }); } diff --git a/hass-workstation-service/Domain/Sensors/NamedWindowSensor.cs b/hass-workstation-service/Domain/Sensors/NamedWindowSensor.cs index 7cf7989..a852bf0 100644 --- a/hass-workstation-service/Domain/Sensors/NamedWindowSensor.cs +++ b/hass-workstation-service/Domain/Sensors/NamedWindowSensor.cs @@ -16,15 +16,17 @@ namespace hass_workstation_service.Domain.Sensors this.WindowName = windowName; } - public override AutoDiscoveryConfigModel GetAutoDiscoveryConfig() + public override SensorDiscoveryConfigModel GetAutoDiscoveryConfig() { - return this._autoDiscoveryConfigModel ?? SetAutoDiscoveryConfigModel(new AutoDiscoveryConfigModel() + return this._autoDiscoveryConfigModel ?? SetAutoDiscoveryConfigModel(new SensorDiscoveryConfigModel() { Name = this.Name, Unique_id = this.Id.ToString(), Device = this.Publisher.DeviceConfigModel, - State_topic = $"homeassistant/sensor/{Publisher.DeviceConfigModel.Name}/{this.Name}/state", + State_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/{this.Name}/state", Icon = "mdi:window-maximize", + Availability_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/availability", + Expire_after = 60 }); } diff --git a/hass-workstation-service/Domain/Sensors/SessionStateSensor.cs b/hass-workstation-service/Domain/Sensors/SessionStateSensor.cs index dc20f38..02efbc5 100644 --- a/hass-workstation-service/Domain/Sensors/SessionStateSensor.cs +++ b/hass-workstation-service/Domain/Sensors/SessionStateSensor.cs @@ -35,15 +35,17 @@ namespace hass_workstation_service.Domain.Sensors public class SessionStateSensor : AbstractSensor { public SessionStateSensor(MqttPublisher publisher, int? updateInterval = null, string name = "SessionState", Guid id = default(Guid)) : base(publisher, name ?? "SessionState", updateInterval ?? 10, id) { } - public override AutoDiscoveryConfigModel GetAutoDiscoveryConfig() + public override SensorDiscoveryConfigModel GetAutoDiscoveryConfig() { - return this._autoDiscoveryConfigModel ?? SetAutoDiscoveryConfigModel(new AutoDiscoveryConfigModel() + return this._autoDiscoveryConfigModel ?? SetAutoDiscoveryConfigModel(new SensorDiscoveryConfigModel() { Name = this.Name, Unique_id = this.Id.ToString(), Device = this.Publisher.DeviceConfigModel, - State_topic = $"homeassistant/sensor/{Publisher.DeviceConfigModel.Name}/{this.Name}/state", + State_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/{this.Name}/state", Icon = "mdi:lock", + Availability_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/availability", + Expire_after = 60 }); } diff --git a/hass-workstation-service/Domain/Sensors/UserNotificationStateSensor.cs b/hass-workstation-service/Domain/Sensors/UserNotificationStateSensor.cs index e98e1d9..e566be6 100644 --- a/hass-workstation-service/Domain/Sensors/UserNotificationStateSensor.cs +++ b/hass-workstation-service/Domain/Sensors/UserNotificationStateSensor.cs @@ -9,15 +9,17 @@ namespace hass_workstation_service.Domain.Sensors { public UserNotificationStateSensor(MqttPublisher publisher, int? updateInterval = null, string name = "NotificationState", Guid id = default(Guid)) : base(publisher, name ?? "NotificationState", updateInterval ?? 10, id) { } - public override AutoDiscoveryConfigModel GetAutoDiscoveryConfig() + public override SensorDiscoveryConfigModel GetAutoDiscoveryConfig() { - return this._autoDiscoveryConfigModel ?? SetAutoDiscoveryConfigModel(new AutoDiscoveryConfigModel() + return this._autoDiscoveryConfigModel ?? SetAutoDiscoveryConfigModel(new SensorDiscoveryConfigModel() { Name = this.Name, Unique_id = this.Id.ToString(), Device = this.Publisher.DeviceConfigModel, - State_topic = $"homeassistant/sensor/{Publisher.DeviceConfigModel.Name}/{this.Name}/state", + State_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/{this.Name}/state", Icon = "mdi:laptop", + Availability_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/availability", + Expire_after = 60 }); } diff --git a/hass-workstation-service/Domain/Sensors/WMIQuerySensor.cs b/hass-workstation-service/Domain/Sensors/WMIQuerySensor.cs index ed44784..1c2ff62 100644 --- a/hass-workstation-service/Domain/Sensors/WMIQuerySensor.cs +++ b/hass-workstation-service/Domain/Sensors/WMIQuerySensor.cs @@ -20,14 +20,16 @@ namespace hass_workstation_service.Domain.Sensors _objectQuery = new ObjectQuery(this.Query); _searcher = new ManagementObjectSearcher(query); } - public override AutoDiscoveryConfigModel GetAutoDiscoveryConfig() + public override SensorDiscoveryConfigModel GetAutoDiscoveryConfig() { - return this._autoDiscoveryConfigModel ?? SetAutoDiscoveryConfigModel(new AutoDiscoveryConfigModel() + return this._autoDiscoveryConfigModel ?? SetAutoDiscoveryConfigModel(new SensorDiscoveryConfigModel() { Name = this.Name, Unique_id = this.Id.ToString(), Device = this.Publisher.DeviceConfigModel, - State_topic = $"homeassistant/sensor/{Publisher.DeviceConfigModel.Name}/{this.Name}/state", + State_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/{this.Name}/state", + Availability_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/availability", + Expire_after = 60 }); } diff --git a/hass-workstation-service/Domain/Sensors/WebcamActiveSensor.cs b/hass-workstation-service/Domain/Sensors/WebcamActiveSensor.cs index c690c03..fc08ba3 100644 --- a/hass-workstation-service/Domain/Sensors/WebcamActiveSensor.cs +++ b/hass-workstation-service/Domain/Sensors/WebcamActiveSensor.cs @@ -23,15 +23,17 @@ namespace hass_workstation_service.Domain.Sensors return "unsupported"; } } - public override AutoDiscoveryConfigModel GetAutoDiscoveryConfig() + public override SensorDiscoveryConfigModel GetAutoDiscoveryConfig() { - return this._autoDiscoveryConfigModel ?? SetAutoDiscoveryConfigModel(new AutoDiscoveryConfigModel() + return this._autoDiscoveryConfigModel ?? SetAutoDiscoveryConfigModel(new SensorDiscoveryConfigModel() { Name = this.Name, Unique_id = this.Id.ToString(), Device = this.Publisher.DeviceConfigModel, - State_topic = $"homeassistant/sensor/{Publisher.DeviceConfigModel.Name}/{this.Name}/state", + State_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/{this.Name}/state", Icon = "mdi:webcam", + Availability_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/availability", + Expire_after = 60 }); } diff --git a/hass-workstation-service/Worker.cs b/hass-workstation-service/Worker.cs index 540225b..e91a9ca 100644 --- a/hass-workstation-service/Worker.cs +++ b/hass-workstation-service/Worker.cs @@ -5,6 +5,7 @@ using System.Threading; using System.Threading.Tasks; using hass_workstation_service.Communication; using hass_workstation_service.Data; +using hass_workstation_service.Domain.Commands; using hass_workstation_service.Domain.Sensors; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; @@ -30,6 +31,7 @@ namespace hass_workstation_service protected override async Task ExecuteAsync(CancellationToken stoppingToken) { + _configurationService.ReadCommandSettings(_mqttPublisher); _configurationService.ReadSensorSettings(_mqttPublisher); while (!_mqttPublisher.IsConnected) @@ -40,11 +42,17 @@ namespace hass_workstation_service _logger.LogInformation("Connected. Sending auto discovery messages."); List sensors = _configurationService.ConfiguredSensors.ToList(); - + List commands = _configurationService.ConfiguredCommands.ToList(); + _mqttPublisher.AnnounceAvailability("sensor"); + _mqttPublisher.AnnounceAvailability("switch"); foreach (AbstractSensor sensor in sensors) { sensor.PublishAutoDiscoveryConfigAsync(); } + foreach (AbstractCommand command in commands) + { + command.PublishAutoDiscoveryConfigAsync(); + } while (!stoppingToken.IsCancellationRequested) { sensors = _configurationService.ConfiguredSensors.ToList(); @@ -60,7 +68,7 @@ namespace hass_workstation_service { Log.Logger.Warning("Sensor failed: " + sensor.Name, ex); } - + } // announce autodiscovery every 30 seconds if (_mqttPublisher.LastConfigAnnounce < DateTime.UtcNow.AddSeconds(-30)) @@ -69,9 +77,24 @@ namespace hass_workstation_service { sensor.PublishAutoDiscoveryConfigAsync(); } + foreach (AbstractCommand command in commands) + { + command.PublishAutoDiscoveryConfigAsync(); + } + _mqttPublisher.AnnounceAvailability("sensor"); + _mqttPublisher.AnnounceAvailability("switch"); } await Task.Delay(1000, stoppingToken); } + } + + public override async Task StopAsync(CancellationToken stoppingToken) + { + _mqttPublisher.AnnounceAvailability("sensor", true); + _mqttPublisher.AnnounceAvailability("switch", true); + await _mqttPublisher.DisconnectAsync(); + } + } } From ebae183f3afada176add65b9a026194a2038dffd Mon Sep 17 00:00:00 2001 From: sleevezipper Date: Sat, 16 Jan 2021 23:15:27 +0100 Subject: [PATCH 4/6] implement more commands, use will messages to turn entities unavailable --- README.md | 18 +++++++- UserInterface/Views/AddCommandDialog.axaml | 2 +- UserInterface/Views/AddCommandDialog.axaml.cs | 15 +++++++ UserInterface/Views/CommandSettings.axaml | 2 +- .../InterProcessApi.cs | 9 ++++ .../ServiceContractModels.cs | 5 ++- .../Communication/MQTT/MqttPublisher.cs | 20 ++++----- .../MQTT/SensorDiscoveryConfigModel.cs | 6 +-- .../Data/ConfigurationService.cs | 29 +++++++++--- .../Domain/Commands/AbstractCommand.cs | 5 ++- .../Domain/Commands/CustomCommand.cs | 45 +++++++++++++++---- .../Domain/Commands/LogOffCommand.cs | 17 +++++++ .../Domain/Commands/RestartCommand.cs | 17 +++++++ .../Domain/Commands/ShutdownCommand.cs | 17 +++++++ .../Domain/Sensors/ActiveWindowSensor.cs | 3 +- .../Domain/Sensors/CPULoadSensor.cs | 3 +- .../Domain/Sensors/CurrentClockSpeedSensor.cs | 3 +- .../Domain/Sensors/DummySensor.cs | 3 +- .../Domain/Sensors/LastActiveSensor.cs | 3 +- .../Domain/Sensors/LastBootSensor.cs | 3 +- .../Domain/Sensors/MemoryUsageSensor.cs | 3 +- .../Domain/Sensors/MicrophoneActiveSensor.cs | 3 +- .../Domain/Sensors/NamedWindowSensor.cs | 3 +- .../Domain/Sensors/SessionStateSensor.cs | 3 +- .../Sensors/UserNotificationStateSensor.cs | 3 +- .../Domain/Sensors/WMIQuerySensor.cs | 3 +- .../Domain/Sensors/WebcamActiveSensor.cs | 3 +- hass-workstation-service/Program.cs | 3 +- hass-workstation-service/Worker.cs | 16 +++++-- 29 files changed, 196 insertions(+), 69 deletions(-) create mode 100644 hass-workstation-service/Domain/Commands/LogOffCommand.cs create mode 100644 hass-workstation-service/Domain/Commands/RestartCommand.cs create mode 100644 hass-workstation-service/Domain/Commands/ShutdownCommand.cs diff --git a/README.md b/README.md index cba50fc..bde5317 100644 --- a/README.md +++ b/README.md @@ -127,7 +127,19 @@ This sensor spits out a random number every second. Useful for testing, maybe yo ## Commands -Commands can be used to trigger certain things on the client. +Commands can be used to trigger certain things on the client. For each command, a switch will be available in Home Assistant. Turning on the switch fires the command on the client and it will turn the switch off when it's done. Turning it off will cancel thje running command. + +### ShutdownCommand + +This command shuts down the computer immediately. It runs `shutdown /s`. + +### RestartCommand + +This command restarts the computer immediately. It runs `shutdown /r`. + +### LogOffCommand + +This command logs off the current user. It runs `shutdown /l`. ### CustomCommand @@ -135,4 +147,6 @@ This command allows you to run any Windows Commands. The command will be run in |Command|Explanation| |---|---| -|Rundll32.exe user32.dll,LockWorkStation|This locks the current session.| \ No newline at end of file +|Rundll32.exe user32.dll,LockWorkStation|This locks the current session.| +|shutdown /s /t 300|Shuts the PC down after 5 minutes (300 seconds).| +|C:\path\to\your\batchfile.bat|Run the specified batch file.| diff --git a/UserInterface/Views/AddCommandDialog.axaml b/UserInterface/Views/AddCommandDialog.axaml index f359fc5..0ea8d9f 100644 --- a/UserInterface/Views/AddCommandDialog.axaml +++ b/UserInterface/Views/AddCommandDialog.axaml @@ -20,7 +20,7 @@ Command - + diff --git a/UserInterface/Views/AddCommandDialog.axaml.cs b/UserInterface/Views/AddCommandDialog.axaml.cs index 9db4d7b..f0499b5 100644 --- a/UserInterface/Views/AddCommandDialog.axaml.cs +++ b/UserInterface/Views/AddCommandDialog.axaml.cs @@ -63,6 +63,21 @@ namespace UserInterface.Views item.MoreInfoLink = "https://github.com/sleevezipper/hass-workstation-service#customcommand"; item.ShowCommandInput = true; break; + case AvailableCommands.ShutdownCommand: + item.Description = "This command shuts down the PC immediately. "; + item.MoreInfoLink = "https://github.com/sleevezipper/hass-workstation-service#shutdowncommand"; + item.ShowCommandInput = false; + break; + case AvailableCommands.RestartCommand: + item.Description = "This command restarts the PC immediately. "; + item.MoreInfoLink = "https://github.com/sleevezipper/hass-workstation-service#restartcommand"; + item.ShowCommandInput = false; + break; + case AvailableCommands.LogOffCommand: + item.Description = "This command logs the current user off immediately. "; + item.MoreInfoLink = "https://github.com/sleevezipper/hass-workstation-service#logoffcommand"; + item.ShowCommandInput = false; + break; default: item.Description = null; item.MoreInfoLink = null; diff --git a/UserInterface/Views/CommandSettings.axaml b/UserInterface/Views/CommandSettings.axaml index 587d109..efc93f0 100644 --- a/UserInterface/Views/CommandSettings.axaml +++ b/UserInterface/Views/CommandSettings.axaml @@ -18,7 +18,7 @@ Width="1*" /> - Add some commands by clicking the "Add" button. + Add some commands by clicking the "Add" button. diff --git a/hass-workstation-service/Communication/InterProcesCommunication/InterProcessApi.cs b/hass-workstation-service/Communication/InterProcesCommunication/InterProcessApi.cs index da03e81..95c4a6b 100644 --- a/hass-workstation-service/Communication/InterProcesCommunication/InterProcessApi.cs +++ b/hass-workstation-service/Communication/InterProcesCommunication/InterProcessApi.cs @@ -173,6 +173,15 @@ namespace hass_workstation_service.Communication.InterProcesCommunication AbstractCommand commandToCreate = null; switch (commandType) { + case AvailableCommands.ShutdownCommand: + commandToCreate = new ShutdownCommand(this._publisher, model.Name); + break; + case AvailableCommands.RestartCommand: + commandToCreate = new RestartCommand(this._publisher, model.Name); + break; + case AvailableCommands.LogOffCommand: + commandToCreate = new LogOffCommand(this._publisher, model.Name); + break; case AvailableCommands.CustomCommand: commandToCreate = new CustomCommand(this._publisher, model.Command, model.Name); break; diff --git a/hass-workstation-service/Communication/InterProcesCommunication/ServiceContractModels.cs b/hass-workstation-service/Communication/InterProcesCommunication/ServiceContractModels.cs index 175ba8c..9f7481a 100644 --- a/hass-workstation-service/Communication/InterProcesCommunication/ServiceContractModels.cs +++ b/hass-workstation-service/Communication/InterProcesCommunication/ServiceContractModels.cs @@ -55,6 +55,9 @@ namespace hass_workstation_service.Communication.InterProcesCommunication.Models public enum AvailableCommands { - CustomCommand + CustomCommand, + ShutdownCommand, + LogOffCommand, + RestartCommand, } } diff --git a/hass-workstation-service/Communication/MQTT/MqttPublisher.cs b/hass-workstation-service/Communication/MQTT/MqttPublisher.cs index 37e32ae..ebd7b93 100644 --- a/hass-workstation-service/Communication/MQTT/MqttPublisher.cs +++ b/hass-workstation-service/Communication/MQTT/MqttPublisher.cs @@ -61,6 +61,7 @@ namespace hass_workstation_service.Communication if (options != null) { + options.WillMessage.Topic = $"homeassistant/sensor/{this.DeviceConfigModel.Name}/availability"; this._mqttClient.ConnectAsync(options); this._mqttClientMessage = "Connecting..."; } @@ -72,7 +73,6 @@ namespace hass_workstation_service.Communication this._mqttClient.UseConnectedHandler(e => { this._mqttClientMessage = "All good"; }); - this._mqttClient.UseApplicationMessageReceivedHandler(e => this.HandleMessageReceived(e.ApplicationMessage)); // configure what happens on disconnect @@ -93,7 +93,6 @@ namespace hass_workstation_service.Communication _logger.LogError(ex, "Reconnecting failed"); } } - }); } @@ -211,16 +210,17 @@ namespace hass_workstation_service.Communication { if (command.GetAutoDiscoveryConfig().Command_topic == applicationMessage.Topic) { - command.Execute(); + if (Encoding.UTF8.GetString(applicationMessage?.Payload) == "ON") + { + command.TurnOn(); + } + else if (Encoding.UTF8.GetString(applicationMessage?.Payload) == "OFF") + { + command.TurnOff(); + } + } } - Console.WriteLine("### RECEIVED APPLICATION MESSAGE ###"); - Console.WriteLine($"+ Topic = {applicationMessage.Topic}"); - - Console.WriteLine($"+ Payload = {Encoding.UTF8.GetString(applicationMessage?.Payload)}"); - Console.WriteLine($"+ QoS = {applicationMessage.QualityOfServiceLevel}"); - Console.WriteLine($"+ Retain = {applicationMessage.Retain}"); - Console.WriteLine(); } } } diff --git a/hass-workstation-service/Communication/MQTT/SensorDiscoveryConfigModel.cs b/hass-workstation-service/Communication/MQTT/SensorDiscoveryConfigModel.cs index a67f6b6..1c5218d 100644 --- a/hass-workstation-service/Communication/MQTT/SensorDiscoveryConfigModel.cs +++ b/hass-workstation-service/Communication/MQTT/SensorDiscoveryConfigModel.cs @@ -109,11 +109,7 @@ namespace hass_workstation_service.Communication /// /// public string Device_class { get; set; } - /// - /// (Optional) Defines the number of seconds after the sensor’s state expires, if it’s not updated. After expiry, the sensor’s state becomes unavailable. Defaults to 0 in hass. - /// - /// - public int? Expire_after { get; set; } + /// /// Sends update events even if the value hasn’t changed. Useful if you want to have meaningful value graphs in history. /// diff --git a/hass-workstation-service/Data/ConfigurationService.cs b/hass-workstation-service/Data/ConfigurationService.cs index f130014..aa50dd3 100644 --- a/hass-workstation-service/Data/ConfigurationService.cs +++ b/hass-workstation-service/Data/ConfigurationService.cs @@ -26,6 +26,7 @@ namespace hass_workstation_service.Data public ICollection ConfiguredSensors { get; private set; } public ICollection ConfiguredCommands { get; private set; } public Action MqqtConfigChangedHandler { get; set; } + private readonly DeviceConfigModel _deviceConfigModel; private bool BrokerSettingsFileLocked { get; set; } private bool SensorsSettingsFileLocked { get; set; } @@ -33,8 +34,9 @@ namespace hass_workstation_service.Data private readonly string path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Hass Workstation Service"); - public ConfigurationService() + public ConfigurationService(DeviceConfigModel deviceConfigModel) { + this._deviceConfigModel = deviceConfigModel; if (!File.Exists(Path.Combine(path, "mqttbroker.json"))) { File.Create(Path.Combine(path, "mqttbroker.json")).Close(); @@ -156,6 +158,15 @@ namespace hass_workstation_service.Data AbstractCommand command = null; switch (configuredCommand.Type) { + case "ShutdownCommand": + command = new ShutdownCommand(publisher, configuredCommand.Name, configuredCommand.Id); + break; + case "RestartCommand": + command = new RestartCommand(publisher, configuredCommand.Name, configuredCommand.Id); + break; + case "LogOffCommand": + command = new LogOffCommand(publisher, configuredCommand.Name, configuredCommand.Id); + break; case "CustomCommand": command = new CustomCommand(publisher, configuredCommand.Command, configuredCommand.Name, configuredCommand.Id); break; @@ -184,6 +195,12 @@ namespace hass_workstation_service.Data AllowUntrustedCertificates = true }) .WithCredentials(configuredBroker.Username, configuredBroker.Password.ToString()) + .WithKeepAlivePeriod(TimeSpan.FromSeconds(30)) + .WithWillMessage(new MqttApplicationMessageBuilder() + .WithRetainFlag() + .WithTopic($"homeassistant/sensor/{_deviceConfigModel.Name}/availability") + .WithPayload("offline") + .Build()) .Build(); return mqttClientOptions; } @@ -315,12 +332,12 @@ namespace hass_workstation_service.Data public async void DeleteConfiguredCommand(Guid id) { - var sensorToRemove = this.ConfiguredCommands.FirstOrDefault(s => s.Id == id); - if (sensorToRemove != null) + var commandToRemove = this.ConfiguredCommands.FirstOrDefault(s => s.Id == id); + if (commandToRemove != null) { - await sensorToRemove.UnPublishAutoDiscoveryConfigAsync(); - this.ConfiguredCommands.Remove(sensorToRemove); - WriteSensorSettingsAsync(); + await commandToRemove.UnPublishAutoDiscoveryConfigAsync(); + this.ConfiguredCommands.Remove(commandToRemove); + WriteCommandSettingsAsync(); } else { diff --git a/hass-workstation-service/Domain/Commands/AbstractCommand.cs b/hass-workstation-service/Domain/Commands/AbstractCommand.cs index 7e29b98..b1b30e6 100644 --- a/hass-workstation-service/Domain/Commands/AbstractCommand.cs +++ b/hass-workstation-service/Domain/Commands/AbstractCommand.cs @@ -13,7 +13,7 @@ namespace hass_workstation_service.Domain.Commands /// /// The update interval in seconds. It checks state only if the interval has passed. /// - public int UpdateInterval { get; protected set; } + public int UpdateInterval { get => 1; } public DateTime? LastUpdated { get; protected set; } public string PreviousPublishedState { get; protected set; } public MqttPublisher Publisher { get; protected set; } @@ -74,6 +74,7 @@ namespace hass_workstation_service.Domain.Commands { await this.Publisher.AnnounceAutoDiscoveryConfig(this.GetAutoDiscoveryConfig(), this.Domain, true); } - public abstract void Execute(); + public abstract void TurnOn(); + public abstract void TurnOff(); } } \ No newline at end of file diff --git a/hass-workstation-service/Domain/Commands/CustomCommand.cs b/hass-workstation-service/Domain/Commands/CustomCommand.cs index aff15ec..6a62b53 100644 --- a/hass-workstation-service/Domain/Commands/CustomCommand.cs +++ b/hass-workstation-service/Domain/Commands/CustomCommand.cs @@ -1,6 +1,8 @@ using hass_workstation_service.Communication; +using Serilog; using System; using System.Collections.Generic; +using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -10,39 +12,64 @@ namespace hass_workstation_service.Domain.Commands public class CustomCommand : AbstractCommand { public string Command { get; protected set; } + public string State { get; protected set; } + public Process Process { get; private set; } public CustomCommand(MqttPublisher publisher, string command, string name = "Custom", Guid id = default(Guid)) : base(publisher, name ?? "Custom", id) { this.Command = command; + this.State = "OFF"; } - public override void Execute() + public override async void TurnOn() { - System.Diagnostics.Process process = new System.Diagnostics.Process(); - System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(); - startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; + this.State = "ON"; + this.Process = new Process(); + ProcessStartInfo startInfo = new ProcessStartInfo(); + startInfo.WindowStyle = ProcessWindowStyle.Hidden; startInfo.CreateNoWindow = true; startInfo.FileName = "cmd.exe"; startInfo.Arguments = $"/C {this.Command}"; - process.StartInfo = startInfo; - process.Start(); + this.Process.StartInfo = startInfo; + try + { + this.Process.Start(); + } + catch (Exception e) + { + Log.Logger.Error($"Sensor {this.Name} failed", e); + this.State = "FAILED"; + } + + while (!this.Process.HasExited) + { + await Task.Delay(1000); + } + this.State = "OFF"; } + + public override CommandDiscoveryConfigModel GetAutoDiscoveryConfig() { return new CommandDiscoveryConfigModel() { Name = this.Name, Unique_id = this.Id.ToString(), - Availability_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/availability", + Availability_topic = $"homeassistant/sensor/{Publisher.DeviceConfigModel.Name}/availability", Command_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/{this.Name}/set", + State_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/{this.Name}/state", Device = this.Publisher.DeviceConfigModel, - Expire_after = 60 }; } public override string GetState() { - return "off"; + return this.State; + } + + public override void TurnOff() + { + this.Process.Kill(); } } } diff --git a/hass-workstation-service/Domain/Commands/LogOffCommand.cs b/hass-workstation-service/Domain/Commands/LogOffCommand.cs new file mode 100644 index 0000000..921393e --- /dev/null +++ b/hass-workstation-service/Domain/Commands/LogOffCommand.cs @@ -0,0 +1,17 @@ +using hass_workstation_service.Communication; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace hass_workstation_service.Domain.Commands +{ + public class LogOffCommand : CustomCommand + { + public LogOffCommand(MqttPublisher publisher, string name = "Shutdown", Guid id = default(Guid)) : base(publisher, "shutdown /l", name ?? "LogOff", id) + { + this.State = "OFF"; + } + } +} diff --git a/hass-workstation-service/Domain/Commands/RestartCommand.cs b/hass-workstation-service/Domain/Commands/RestartCommand.cs new file mode 100644 index 0000000..323b806 --- /dev/null +++ b/hass-workstation-service/Domain/Commands/RestartCommand.cs @@ -0,0 +1,17 @@ +using hass_workstation_service.Communication; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace hass_workstation_service.Domain.Commands +{ + public class RestartCommand : CustomCommand + { + public RestartCommand(MqttPublisher publisher, string name = "Shutdown", Guid id = default(Guid)) : base(publisher, "shutdown /r", name ?? "Restart", id) + { + this.State = "OFF"; + } + } +} diff --git a/hass-workstation-service/Domain/Commands/ShutdownCommand.cs b/hass-workstation-service/Domain/Commands/ShutdownCommand.cs new file mode 100644 index 0000000..7ef5211 --- /dev/null +++ b/hass-workstation-service/Domain/Commands/ShutdownCommand.cs @@ -0,0 +1,17 @@ +using hass_workstation_service.Communication; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace hass_workstation_service.Domain.Commands +{ + public class ShutdownCommand : CustomCommand + { + public ShutdownCommand(MqttPublisher publisher, string name = "Shutdown", Guid id = default(Guid)) : base(publisher, "shutdown /s", name ?? "Shutdown", id) + { + this.State = "OFF"; + } + } +} diff --git a/hass-workstation-service/Domain/Sensors/ActiveWindowSensor.cs b/hass-workstation-service/Domain/Sensors/ActiveWindowSensor.cs index 79cdcb3..b9fb58b 100644 --- a/hass-workstation-service/Domain/Sensors/ActiveWindowSensor.cs +++ b/hass-workstation-service/Domain/Sensors/ActiveWindowSensor.cs @@ -18,8 +18,7 @@ namespace hass_workstation_service.Domain.Sensors Device = this.Publisher.DeviceConfigModel, State_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/{this.Name}/state", Icon = "mdi:window-maximize", - Availability_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/availability", - Expire_after = 60 + Availability_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/availability" }); } diff --git a/hass-workstation-service/Domain/Sensors/CPULoadSensor.cs b/hass-workstation-service/Domain/Sensors/CPULoadSensor.cs index 21710fa..d84fe1f 100644 --- a/hass-workstation-service/Domain/Sensors/CPULoadSensor.cs +++ b/hass-workstation-service/Domain/Sensors/CPULoadSensor.cs @@ -27,8 +27,7 @@ namespace hass_workstation_service.Domain.Sensors State_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/{this.Name}/state", Icon = "mdi:chart-areaspline", Unit_of_measurement = "%", - Availability_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/availability", - Expire_after = 60 + Availability_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/availability" }); } diff --git a/hass-workstation-service/Domain/Sensors/CurrentClockSpeedSensor.cs b/hass-workstation-service/Domain/Sensors/CurrentClockSpeedSensor.cs index 5512d02..523fe30 100644 --- a/hass-workstation-service/Domain/Sensors/CurrentClockSpeedSensor.cs +++ b/hass-workstation-service/Domain/Sensors/CurrentClockSpeedSensor.cs @@ -19,8 +19,7 @@ namespace hass_workstation_service.Domain.Sensors State_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/{this.Name}/state", Icon = "mdi:speedometer", Unit_of_measurement = "MHz", - Availability_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/availability", - Expire_after = 60 + Availability_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/availability" }); } } diff --git a/hass-workstation-service/Domain/Sensors/DummySensor.cs b/hass-workstation-service/Domain/Sensors/DummySensor.cs index b63cee1..3431fb5 100644 --- a/hass-workstation-service/Domain/Sensors/DummySensor.cs +++ b/hass-workstation-service/Domain/Sensors/DummySensor.cs @@ -21,8 +21,7 @@ namespace hass_workstation_service.Domain.Sensors Unique_id = this.Id.ToString(), Device = this.Publisher.DeviceConfigModel, State_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/{this.Name}/state", - Availability_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/availability", - Expire_after = 60 + Availability_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/availability" }); } diff --git a/hass-workstation-service/Domain/Sensors/LastActiveSensor.cs b/hass-workstation-service/Domain/Sensors/LastActiveSensor.cs index 07ef844..8bcfdc4 100644 --- a/hass-workstation-service/Domain/Sensors/LastActiveSensor.cs +++ b/hass-workstation-service/Domain/Sensors/LastActiveSensor.cs @@ -18,8 +18,7 @@ namespace hass_workstation_service.Domain.Sensors Device = this.Publisher.DeviceConfigModel, State_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/{this.Name}/state", Icon = "mdi:clock-time-three-outline", - Availability_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/availability", - Expire_after = 60 + Availability_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/availability" }); } diff --git a/hass-workstation-service/Domain/Sensors/LastBootSensor.cs b/hass-workstation-service/Domain/Sensors/LastBootSensor.cs index bda0e89..963e858 100644 --- a/hass-workstation-service/Domain/Sensors/LastBootSensor.cs +++ b/hass-workstation-service/Domain/Sensors/LastBootSensor.cs @@ -22,8 +22,7 @@ namespace hass_workstation_service.Domain.Sensors Device = this.Publisher.DeviceConfigModel, State_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/{this.Name}/state", Icon = "mdi:clock-time-three-outline", - Availability_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/availability", - Expire_after = 60 + Availability_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/availability" }); } diff --git a/hass-workstation-service/Domain/Sensors/MemoryUsageSensor.cs b/hass-workstation-service/Domain/Sensors/MemoryUsageSensor.cs index 998369f..6893d0a 100644 --- a/hass-workstation-service/Domain/Sensors/MemoryUsageSensor.cs +++ b/hass-workstation-service/Domain/Sensors/MemoryUsageSensor.cs @@ -44,8 +44,7 @@ namespace hass_workstation_service.Domain.Sensors State_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/{this.Name}/state", Icon = "mdi:memory", Unit_of_measurement = "%", - Availability_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/availability", - Expire_after = 60 + Availability_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/availability" }); } } diff --git a/hass-workstation-service/Domain/Sensors/MicrophoneActiveSensor.cs b/hass-workstation-service/Domain/Sensors/MicrophoneActiveSensor.cs index 7e78826..8a6a246 100644 --- a/hass-workstation-service/Domain/Sensors/MicrophoneActiveSensor.cs +++ b/hass-workstation-service/Domain/Sensors/MicrophoneActiveSensor.cs @@ -30,8 +30,7 @@ namespace hass_workstation_service.Domain.Sensors Device = this.Publisher.DeviceConfigModel, State_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/{this.Name}/state", Icon = "mdi:microphone", - Availability_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/availability", - Expire_after = 60 + Availability_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/availability" }); } diff --git a/hass-workstation-service/Domain/Sensors/NamedWindowSensor.cs b/hass-workstation-service/Domain/Sensors/NamedWindowSensor.cs index a852bf0..1a5dc64 100644 --- a/hass-workstation-service/Domain/Sensors/NamedWindowSensor.cs +++ b/hass-workstation-service/Domain/Sensors/NamedWindowSensor.cs @@ -25,8 +25,7 @@ namespace hass_workstation_service.Domain.Sensors Device = this.Publisher.DeviceConfigModel, State_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/{this.Name}/state", Icon = "mdi:window-maximize", - Availability_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/availability", - Expire_after = 60 + Availability_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/availability" }); } diff --git a/hass-workstation-service/Domain/Sensors/SessionStateSensor.cs b/hass-workstation-service/Domain/Sensors/SessionStateSensor.cs index 02efbc5..d043a76 100644 --- a/hass-workstation-service/Domain/Sensors/SessionStateSensor.cs +++ b/hass-workstation-service/Domain/Sensors/SessionStateSensor.cs @@ -44,8 +44,7 @@ namespace hass_workstation_service.Domain.Sensors Device = this.Publisher.DeviceConfigModel, State_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/{this.Name}/state", Icon = "mdi:lock", - Availability_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/availability", - Expire_after = 60 + Availability_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/availability" }); } diff --git a/hass-workstation-service/Domain/Sensors/UserNotificationStateSensor.cs b/hass-workstation-service/Domain/Sensors/UserNotificationStateSensor.cs index e566be6..793df7e 100644 --- a/hass-workstation-service/Domain/Sensors/UserNotificationStateSensor.cs +++ b/hass-workstation-service/Domain/Sensors/UserNotificationStateSensor.cs @@ -18,8 +18,7 @@ namespace hass_workstation_service.Domain.Sensors Device = this.Publisher.DeviceConfigModel, State_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/{this.Name}/state", Icon = "mdi:laptop", - Availability_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/availability", - Expire_after = 60 + Availability_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/availability" }); } diff --git a/hass-workstation-service/Domain/Sensors/WMIQuerySensor.cs b/hass-workstation-service/Domain/Sensors/WMIQuerySensor.cs index 1c2ff62..6304389 100644 --- a/hass-workstation-service/Domain/Sensors/WMIQuerySensor.cs +++ b/hass-workstation-service/Domain/Sensors/WMIQuerySensor.cs @@ -28,8 +28,7 @@ namespace hass_workstation_service.Domain.Sensors Unique_id = this.Id.ToString(), Device = this.Publisher.DeviceConfigModel, State_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/{this.Name}/state", - Availability_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/availability", - Expire_after = 60 + Availability_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/availability" }); } diff --git a/hass-workstation-service/Domain/Sensors/WebcamActiveSensor.cs b/hass-workstation-service/Domain/Sensors/WebcamActiveSensor.cs index fc08ba3..205e467 100644 --- a/hass-workstation-service/Domain/Sensors/WebcamActiveSensor.cs +++ b/hass-workstation-service/Domain/Sensors/WebcamActiveSensor.cs @@ -32,8 +32,7 @@ namespace hass_workstation_service.Domain.Sensors Device = this.Publisher.DeviceConfigModel, State_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/{this.Name}/state", Icon = "mdi:webcam", - Availability_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/availability", - Expire_after = 60 + Availability_topic = $"homeassistant/{this.Domain}/{Publisher.DeviceConfigModel.Name}/availability" }); } diff --git a/hass-workstation-service/Program.cs b/hass-workstation-service/Program.cs index 61f597d..d720614 100644 --- a/hass-workstation-service/Program.cs +++ b/hass-workstation-service/Program.cs @@ -67,11 +67,10 @@ namespace hass_workstation_service Log.CloseAndFlush(); } } - - } public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) + .ConfigureLogging((hostContext, loggingBuilder) => loggingBuilder.AddSerilog(dispose: true)) .ConfigureServices((hostContext, services) => diff --git a/hass-workstation-service/Worker.cs b/hass-workstation-service/Worker.cs index e91a9ca..dbbc448 100644 --- a/hass-workstation-service/Worker.cs +++ b/hass-workstation-service/Worker.cs @@ -44,7 +44,6 @@ namespace hass_workstation_service List sensors = _configurationService.ConfiguredSensors.ToList(); List commands = _configurationService.ConfiguredCommands.ToList(); _mqttPublisher.AnnounceAvailability("sensor"); - _mqttPublisher.AnnounceAvailability("switch"); foreach (AbstractSensor sensor in sensors) { sensor.PublishAutoDiscoveryConfigAsync(); @@ -55,7 +54,6 @@ namespace hass_workstation_service } while (!stoppingToken.IsCancellationRequested) { - sensors = _configurationService.ConfiguredSensors.ToList(); _logger.LogDebug("Worker running at: {time}", DateTimeOffset.Now); foreach (AbstractSensor sensor in sensors) @@ -69,6 +67,18 @@ namespace hass_workstation_service Log.Logger.Warning("Sensor failed: " + sensor.Name, ex); } + } + foreach (AbstractCommand command in commands) + { + try + { + await command.PublishStateAsync(); + } + catch (Exception ex) + { + Log.Logger.Warning("Command state failed: " + command.Name, ex); + } + } // announce autodiscovery every 30 seconds if (_mqttPublisher.LastConfigAnnounce < DateTime.UtcNow.AddSeconds(-30)) @@ -82,7 +92,6 @@ namespace hass_workstation_service command.PublishAutoDiscoveryConfigAsync(); } _mqttPublisher.AnnounceAvailability("sensor"); - _mqttPublisher.AnnounceAvailability("switch"); } await Task.Delay(1000, stoppingToken); } @@ -92,7 +101,6 @@ namespace hass_workstation_service public override async Task StopAsync(CancellationToken stoppingToken) { _mqttPublisher.AnnounceAvailability("sensor", true); - _mqttPublisher.AnnounceAvailability("switch", true); await _mqttPublisher.DisconnectAsync(); } From ea821134511c1bf8c9aaada5ef48089cf7a96899 Mon Sep 17 00:00:00 2001 From: sleevezipper Date: Sun, 17 Jan 2021 02:10:15 +0100 Subject: [PATCH 5/6] use managedMqtt client to better handle reconnecting #16 --- .../Communication/MQTT/MqttPublisher.cs | 33 +++++++------------ .../Data/ConfigurationService.cs | 7 ++-- .../Data/IConfigurationService.cs | 5 +-- hass-workstation-service/Worker.cs | 9 +++-- .../hass-workstation-service.csproj | 1 + 5 files changed, 26 insertions(+), 29 deletions(-) diff --git a/hass-workstation-service/Communication/MQTT/MqttPublisher.cs b/hass-workstation-service/Communication/MQTT/MqttPublisher.cs index ebd7b93..b431d90 100644 --- a/hass-workstation-service/Communication/MQTT/MqttPublisher.cs +++ b/hass-workstation-service/Communication/MQTT/MqttPublisher.cs @@ -14,6 +14,7 @@ using MQTTnet.Adapter; using MQTTnet.Client; using MQTTnet.Client.Options; using MQTTnet.Exceptions; +using MQTTnet.Extensions.ManagedClient; using Serilog; namespace hass_workstation_service.Communication @@ -21,11 +22,12 @@ namespace hass_workstation_service.Communication public class MqttPublisher { - private readonly IMqttClient _mqttClient; + private readonly IManagedMqttClient _mqttClient; private readonly ILogger _logger; private readonly IConfigurationService _configurationService; private string _mqttClientMessage { get; set; } public DateTime LastConfigAnnounce { get; private set; } + public DateTime LastAvailabilityAnnounce { get; private set; } public DeviceConfigModel DeviceConfigModel { get; private set; } public ICollection Subscribers { get; private set; } public bool IsConnected @@ -57,12 +59,11 @@ namespace hass_workstation_service.Communication _configurationService.MqqtConfigChangedHandler = this.ReplaceMqttClient; var factory = new MqttFactory(); - this._mqttClient = factory.CreateMqttClient(); + this._mqttClient = factory.CreateManagedMqttClient(); if (options != null) { - options.WillMessage.Topic = $"homeassistant/sensor/{this.DeviceConfigModel.Name}/availability"; - this._mqttClient.ConnectAsync(options); + this._mqttClient.StartAsync(options); this._mqttClientMessage = "Connecting..."; } else @@ -76,23 +77,10 @@ namespace hass_workstation_service.Communication this._mqttClient.UseApplicationMessageReceivedHandler(e => this.HandleMessageReceived(e.ApplicationMessage)); // configure what happens on disconnect - this._mqttClient.UseDisconnectedHandler(async e => + this._mqttClient.UseDisconnectedHandler(e => { this._mqttClientMessage = e.ReasonCode.ToString(); - if (e.ReasonCode != MQTTnet.Client.Disconnecting.MqttClientDisconnectReason.NormalDisconnection) - { - _logger.LogWarning("Disconnected from server"); - await Task.Delay(TimeSpan.FromSeconds(5)); - try - { - await this._mqttClient.ConnectAsync(options, CancellationToken.None); - } - catch (Exception ex) - { - _logger.LogError(ex, "Reconnecting failed"); - } - } }); } @@ -130,13 +118,13 @@ namespace hass_workstation_service.Communication } } - public async void ReplaceMqttClient(IMqttClientOptions options) + public async void ReplaceMqttClient(IManagedMqttClientOptions options) { this._logger.LogInformation($"Replacing Mqtt client with new config"); - await _mqttClient.DisconnectAsync(); + await _mqttClient.StopAsync(); try { - await _mqttClient.ConnectAsync(options); + await _mqttClient.StartAsync(options); } catch (MqttConnectingFailedException ex) { @@ -165,6 +153,7 @@ namespace hass_workstation_service.Communication .WithPayload(offline ? "offline" : "online") .Build() ); + this.LastAvailabilityAnnounce = DateTime.UtcNow; } else { @@ -176,7 +165,7 @@ namespace hass_workstation_service.Communication { if (this._mqttClient.IsConnected) { - await this._mqttClient.DisconnectAsync(); + await this._mqttClient.InternalClient.DisconnectAsync(); } else { diff --git a/hass-workstation-service/Data/ConfigurationService.cs b/hass-workstation-service/Data/ConfigurationService.cs index aa50dd3..7c0f61d 100644 --- a/hass-workstation-service/Data/ConfigurationService.cs +++ b/hass-workstation-service/Data/ConfigurationService.cs @@ -17,6 +17,7 @@ using Microsoft.Win32; using MQTTnet; using MQTTnet.Client; using MQTTnet.Client.Options; +using MQTTnet.Extensions.ManagedClient; using Serilog; namespace hass_workstation_service.Data @@ -25,7 +26,7 @@ namespace hass_workstation_service.Data { public ICollection ConfiguredSensors { get; private set; } public ICollection ConfiguredCommands { get; private set; } - public Action MqqtConfigChangedHandler { get; set; } + public Action MqqtConfigChangedHandler { get; set; } private readonly DeviceConfigModel _deviceConfigModel; private bool BrokerSettingsFileLocked { get; set; } @@ -181,7 +182,7 @@ namespace hass_workstation_service.Data } } - public async Task GetMqttClientOptionsAsync() + public async Task GetMqttClientOptionsAsync() { ConfiguredMqttBroker configuredBroker = await ReadMqttSettingsAsync(); if (configuredBroker != null && configuredBroker.Host != null) @@ -202,7 +203,7 @@ namespace hass_workstation_service.Data .WithPayload("offline") .Build()) .Build(); - return mqttClientOptions; + return new ManagedMqttClientOptionsBuilder().WithClientOptions(mqttClientOptions).Build(); } else { diff --git a/hass-workstation-service/Data/IConfigurationService.cs b/hass-workstation-service/Data/IConfigurationService.cs index acbea17..ba0d4d7 100644 --- a/hass-workstation-service/Data/IConfigurationService.cs +++ b/hass-workstation-service/Data/IConfigurationService.cs @@ -3,6 +3,7 @@ using hass_workstation_service.Communication.InterProcesCommunication.Models; using hass_workstation_service.Domain.Commands; using hass_workstation_service.Domain.Sensors; using MQTTnet.Client.Options; +using MQTTnet.Extensions.ManagedClient; using System; using System.Collections.Generic; using System.Security; @@ -13,13 +14,13 @@ namespace hass_workstation_service.Data public interface IConfigurationService { ICollection ConfiguredSensors { get; } - Action MqqtConfigChangedHandler { get; set; } + Action MqqtConfigChangedHandler { get; set; } ICollection ConfiguredCommands { get; } void AddConfiguredCommand(AbstractCommand command); void AddConfiguredSensor(AbstractSensor sensor); void AddConfiguredSensors(List sensors); - Task GetMqttClientOptionsAsync(); + Task GetMqttClientOptionsAsync(); void ReadSensorSettings(MqttPublisher publisher); void WriteMqttBrokerSettingsAsync(MqttSettings settings); void WriteSensorSettingsAsync(); diff --git a/hass-workstation-service/Worker.cs b/hass-workstation-service/Worker.cs index dbbc448..18ddfa3 100644 --- a/hass-workstation-service/Worker.cs +++ b/hass-workstation-service/Worker.cs @@ -56,6 +56,12 @@ namespace hass_workstation_service { _logger.LogDebug("Worker running at: {time}", DateTimeOffset.Now); + // announce autodiscovery every 30 seconds + if (_mqttPublisher.LastAvailabilityAnnounce < DateTime.UtcNow.AddSeconds(-10)) + { + _mqttPublisher.AnnounceAvailability("sensor"); + } + foreach (AbstractSensor sensor in sensors) { try @@ -91,7 +97,6 @@ namespace hass_workstation_service { command.PublishAutoDiscoveryConfigAsync(); } - _mqttPublisher.AnnounceAvailability("sensor"); } await Task.Delay(1000, stoppingToken); } @@ -100,7 +105,7 @@ namespace hass_workstation_service public override async Task StopAsync(CancellationToken stoppingToken) { - _mqttPublisher.AnnounceAvailability("sensor", true); + _mqttPublisher.AnnounceAvailability("sensor", true); await _mqttPublisher.DisconnectAsync(); } diff --git a/hass-workstation-service/hass-workstation-service.csproj b/hass-workstation-service/hass-workstation-service.csproj index 40d209c..e1ecbdc 100644 --- a/hass-workstation-service/hass-workstation-service.csproj +++ b/hass-workstation-service/hass-workstation-service.csproj @@ -49,6 +49,7 @@ + From 85e53d07ab51112044ede265e2417db254b21827 Mon Sep 17 00:00:00 2001 From: sleevezipper Date: Sun, 17 Jan 2021 13:21:28 +0100 Subject: [PATCH 6/6] new release, update screenshots --- README.md | 8 ++++++-- .../PublishProfiles/AzureHosted.pubxml | 2 +- hass-workstation-service/UserInterface.exe | Bin 22940877 -> 23029235 bytes .../hass-workstation-service.csproj | 4 ++-- 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 4d3eb7b..3e4c6a2 100644 --- a/README.md +++ b/README.md @@ -15,9 +15,9 @@ It will try to futher accomplish this goal in the future by: ## Screenshots -![The settings screen](https://i.imgur.com/WpCZaDR.png) +![The settings screen](https://i.imgur.com/RBQx807.png) -![The resulting sensors in Home Assistant](https://i.imgur.com/Kka8VOi.png) +![The resulting sensors and commands in Home Assistant](https://i.imgur.com/jXRU2cu.png) ## Installation @@ -34,6 +34,10 @@ If you don't want to use the installer, you can find the standalone version rele If you used the installer, the app checks for updates on startup. If an update is available you will be prompted to install. If you use the standalone, just delete all files from the previous install and unpack the zip to the same location as before. +## Need help? + +Find us on us on [Discord](https://discord.gg/VraYT2N3wd). + ## Sensors The application provides several sensors. Sensors can be configured with a name and this name will be used in the MQTT topic like this: `homeassistant/sensor/{DeviceName}/{Name}/state`. Sensors will expose themselves through [MQTT discovery](https://www.home-assistant.io/docs/mqtt/discovery/) and will automatically appear in Home assistant or any other platform that supports this type of configuration. diff --git a/hass-workstation-service/Properties/PublishProfiles/AzureHosted.pubxml b/hass-workstation-service/Properties/PublishProfiles/AzureHosted.pubxml index a48e0a8..73bfde2 100644 --- a/hass-workstation-service/Properties/PublishProfiles/AzureHosted.pubxml +++ b/hass-workstation-service/Properties/PublishProfiles/AzureHosted.pubxml @@ -4,7 +4,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121. --> - 31 + 32 1.0.0.* True Release diff --git a/hass-workstation-service/UserInterface.exe b/hass-workstation-service/UserInterface.exe index f91d3e85e201b09a0d7893094ae6829fcc60ff06..9aaa9fa1c57019abb40d93957c83cded2987738a 100644 GIT binary patch delta 208697 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%0DKkC9nf(~DK+y|W%>Zp_WbY5g=hhgIe4frg8MX_ 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πd-Cljir)jxzT! z@?5Mbj<`a6nB~8LRDr*J#i!Z8@rZM!|7JY?bA1xIL$71}z%r2A1Ao7bfl$`~{up_n zFNhCZi}Z4NJYK%gU3(p%v986~aylr#wh1ZjF}}d{yq}}`z;X^DjQNlDU5t?b>FS5o z@7I+%{<2-Q9_og6LKX0WlX0lZpipm4sFBwFNU6O6mHB%~i9k`i+YUEa? zg^m@}TR11LqGMo%BkL5E)%5Kmy=($@Ziv^F$X@IQY4Wom2VAb#-HN=L-b|}Rn<3QH zj{}0YA!jCowq3c#3p6>(trTzi zHN$kdf}0o%ry$bHn;~BnxzWkkNn$0x8ao+MGX^$pceo);P|9oRjRnC^)>YyagRyT} zaZbH~ZQx9;{B0`C0&j40Q}4_5qC8=5h9Gm)>QU2-D~oeYj0pb~U{1#$FXYBNYJfbo z4+3al4(YWIar9x1>U9#xIMqJF$!j>7>ukm;%Q0*Xj|zTZ3nMX8K@wZl3PA|}lbY}` zFXr!Kb{!4(*oZE|G{Yybc}Td);8u9P2|N!hB4idkj#Me6uq17pU58G&(iDo=fA07R zC@5T*Q}WD1x-p<|Ra#K^%Jd_dk$e-Rv=6J5`&x6R z6z6DU`m5E-s{wiy6a*Y9NS6^=3%uYf@EW*#x{xbmNPqDr^sh*+$yQVd2bvj~+eeG? z$B_g*4|B+cVZa)af4cmQx4^4hn%8^nc-|OE4?UO&p&LmCwUW%=ly)S~QpskBzm4Qb zhv*dai}g{3BVtk3ZWZ(D-zv-Xz*>ugLJTP zu51U+GXb;hihhk$)Vn*-V>NaxXDEVZ#KTz|3&(6l^~bT0TH$mm4>u<5wn0!_oL;EM zw5X1YbXGeWa}XW3o?Bzr!!IWyWA?Y$NKrV+6>azameCPiq^LS=i_$Z$T(rb;%_;IN_xa;>@dzy zvpO!0WVC_fSgz-_Y76|g*K4G))<|I-$INeyLnNn1W@qpn45~wHAdCMPNvtfq+_9R! zJJP&F9n44h=aCyO&&Mc@Sd{U<+IP`f}p{J~N# zN`OTPIo^L_jqC3#PDF*@ehEsq!gbn0R=xt}7s4foa_8tgqY>Xk@-bY4T(hb6m(H!lCIbjJm znSXmpC0i&TsC2XIi7(vD$oA_HCUJ#Q%rjhk=@z%1@DOAE#g$wRg5u)rTe`I^+`{tT zA(P`a7Uv8XU%Is|+|0O*wf_u<85T#nwJqE%`F}uXxcJhoZQ&MA{_oEjF1~bYTe!*k zJHRtscuil~TDoCm+7ND0@*lDYmWjwg%ON+A74HnU59!vHaQi#I+-`)5z1P|8gZ4=` zMsrXZ=7c5Pc>e8MxS8tc92e=Ci1Ha1C%$xRTe$Hj=EGF~?$WJo;U@Dht_(O(>1NCS z_`=O0|Nj8#7Pn(z;Rg91SNT*L>VZf%CI9y&+`{rdu7>KEAAf{`8duX5-nF4v9{ADC zlK+nN+WN>9ULC(dx;f>4Y~f~#q5F@KZXaUmG=3ICxP256Zfq5gYkp(A1CnlS3pdl& z&HfPS*0ylt^S5J$I|N1BXScSc8_WN=GC+izCI90h{n3hPl>Cpo4Jqk zdEE8wASfk}l#FihovHg&4Z7Zgh{1-tN%MQ4&vzvXo zJ&>bYl>GnSncc#QX+-~w)%!nQF?GoQuuaAvYAq&XpWWJ)Zfy%U%s;uVXl-`;l%-p) zCCMBY^mU)LPr5N$dyZ~qEVln{(yeXbW~%d%Iw=0`(yeXbhWXbTNfy2$D6R}>r*yLq zw{h$F*o@rw#zp$=(hZZqakz~o-1d_HzpHdpT-=v%3(NoLYf%T)2O`~^y^k&2TFL+a zmD!Cq1`%$S{EvGEbR0%n3#IUZ9I*|L+k<8{+N{)y+5~i2OSr5=9Bz*D29HNB=>GM28X>`;>@v;@F^m_e0{ojDUZ<3Y-#=e~y{o z`n35+9umuAs=!}^>y7+<1n9=rzpDx#Jo+wusphKg-S3k3?$#fC?{3#gISGda&pU7O z`KLDxdD2x922Ov{b!O9}XSmaw4tvsdNy4z{(?^_tX0Ykync4X^@ZdR5x^B_JCEk6~ zRcr$fu6)Y1SZmrjxV-e>D*Uji>s+Fn5T@WK9$k;08Jc?jS+z{mx&=fddm`BF0}?XGP8ivxm=AKT#H*<36B8T4-79YqG2xkcR#dOC;w z7R0ORE$t_dK~Ls$?k#@yhvj~X+`pyoDDu)3DV+~Wqb0>3?k^zwj?a@ zWzp!YGs+F}b?5XOB=>o86mj@R349Y`A2K7J+ z;+5<_;9`Ge%}*tV(sSvTml|}W5Vx@CQuh(mvGexsN6=Lz+dv z6dg_X6q=m9Op@;D$JyT&>?j&VMP0^rIFSbRXR=-&u(dLa*5oWMKaM)4_s&0&zR4)g zKaT$5Uzzn6>H!{P(Ou<>%coGb{zK3Cl5!l)>y}hy(6p|bO6Jp~0b@JNm$*Tnq5k>e zpGb$77n`W=mh7#SC(>5<$I-jJR%YRwl|8uO^z^NjdGxlQ0M z%3!2q(YZagR+>e$sQV-oE6w2EUsA*V4e2Sp4EkE%QFJJspj}>?MaN5ZM;B4WIh4|+ zx#WCm=+RsfqGZI+A-yO2hxs`r0qK|@{!hDip-(G5!!Hb8!2HOf7b~__meCzui@KN5 zn^o)=W)^kFUwq2x$dsOn2By%pzI)NvAG>hMS)lYX8s{6^A&Zi#w^m+3?^iALTupyZ zPd_M&3Z&Gtm0K(4%S1a4e_!s|9#bgCwbXMRZ9qL!sAtcmp7}B{r%<0hOOcW`aH;1C zx*>la{HyxULyFnGYImNK9)f5Aj6r!tx6l``r6 znZ@aSx_#QcoRUi>_cUlyXP%^UFg@o`=dvID<>V{-wEG-7wBkqq9J;hC`{jtwrCr@# z>rzgCmQqKVIX{728N&QSyZ%&CPW>cf0OI&2G8R=i{aie`XE}W;{t}HFTVL3#vWS*c zO#+|F{97xprgbIEmE&`$;tKjPV;;D8u*`$f`Pk&s{75u()~)hv{35>j&A8@ zGAkApaK2G#)aZVSQ+8=dC6(UhKx%_ZM)+My*c= zgC2!nME@w9R9Q_G`cLT1gQ(~@x&ezSizXIxlU;kUUjx60k~&PP97sp@{Ew?A^~$}m zXHS|4e;|$P!zm*Na7yREjXjT}d;D`c9!JMx=`NIIX&y)3ew@^2z?_crMSxsJua=GN zu#nu{$AXl@Md17>f~9+a*ToIFoc?YOujv*LH=nw|KaP&=x-zSp5?m}FFUjNi@wWKq zLT+B-!jMC%ewsTIl5txe5AFo^P0ACXulQ@lzd!dU7SeQ=i+v6M`8#xPKxliy(5cAt zkP9dETY+;{@h|v|Qv#(UKZEj%8}J3Q1pMxbp&0_D;oI68D(X~GSh|F=@M~U%?(StW z*uesK=P=aOf(oh`Dzl)DsSH&CO42gvMNeVrwb*V{HQS0g?{Ml*jUe>Ng2GY{9SMk= z=wDV?dMh18gHSGm9<1VWM`3ef(rOC}O`smfAW(akb2XFbM9G{|x<2(-s`i!*rTI|exMp2b~<>#l>!aYKr!`!$9aP^ zUb$=18Pc_5BoF3SKyGc6lq>Xexn%8lD2(`*Uar7#f?CvxQIjiktWrI+tpr1-mjtD7e_ zW+OPU@oVwl75~>RobtTHI~H<$O~SX~!n+L3h30G6&&y?hWpDOhE7n{F4fT28Z^>Av z8MNHs_+v~8ogwinI6cD{kdBnyIUvZS6@>^gem;nkTB=bXvqEyBO@K0B#7kybdW}Cs!e5Q}rtN=Oo<$e^3I)?@hc9K94bztxzfGsG?JZlMu^*HqCj->&j{)Z z@L$nigYS3Qq(q91N^M>0_*8CS-=z}M4NB{n3O~}K$vw_W=fb|Ij7a*e$bCh(iO^`3 zHzh-(E0c%e9Kg(HCZCm=N26$3rn73UVG*`~{@N0x|E*|JR*YOzSgk6u8Q!`9gX*e` z9D~yP4A0@lPRilNPC-hfAKcgl_^d@YZ4UhYnhBqY=7x{VjfKfWjQRgd_L;aGUyU)- z=*&X)CmqCV;mBl;ZH4*$EK%nh(1T;$*JqQTDTG~$Urd>;J z+GS-vn7<0pNhO4Ts!}&iv7m=)jz-=&7W7!*Yk)!)v^4WAKyws?26qBlDUfO~k@CB6 zovOVgTEvhEkQ+?m9Q@m!`fW4>h3yfE>%bbjS^^H;<<_A0R2fIb7A6lohN8%bgG3qvTQk^>n&&spmb_h5c>2M zPIc=_xzc&$tKJO>Kz?b0l1mfxEILY{d4RI?T-spe{nB+b{!+>wEAQ?^hKLPMG|!|e z&|N??6-b8))GW}##4ez_fOe?7#NMF0fIhS^hoYK7`o)53`*qg~$<5znz=1R98%-Ul zpFp2!GjbRjF3>!hkuy%~NX-^xKIR#sccNmP&e%MbS^O8hn8pe8SrQLL2~D&h9*Pn= z!-9Ayy3lzR#6!`AW+_PHq3BAFTM!RLSNcGpc~n<+r|ze|-MKxGW`eeEbh>~G!C;1_ z33MGT>{sp*GO3ZSE1p+8!X z7WDFfS+2nXxro~{H)}&IaJzO*dV`D2hWK6tZP%_yzu0wH7+R2ijcWw`M@YLUajmh6 zjwVIHyu?jLseUx22t5}iF3-4AJBD%unwPjSW3%fRf;kxf7ACGMe$+LRU>p%>Q}H$v zV3h@4S^b&oSUTH+?gli9R$9==q*V84+F?Pb0UARY6{?!TgwI@K=_m{82k1Czw4eov ze)sY8kOegX8b{wK2)*CtGEX3PC08?#77Z8;WwW4%g8C&jxK5;z7WAj|qunRb-(a5Q zUhuR$ncfv>o=nS==@Ws}WSd0a3#2CEBr5Ht>g1_6iAD&tohD+Eo?_BC3)GST(qe(s zOgM#>36w#bat`yHLTC5pYBH&7_IN;-3v?Z==sX?J4Hk4l>CK)~qvq48v{CXtOY-KA z(N3jJ3ewD!mw{=f_2EiC)5a8BMw6ooPN4$HTbNi-^D*pVB^Fdx^Ch5i3+ju!(_miX zS{5cAi@eilu!3YdpH90KMCHD1#_1I3E0~m>n3(|crD=h)x^6ShCU-xTd0F)~;~Y9! zpn0^R|7e;TpCi#ams_O4ws7fI2?@sSu=+v>C$Nl{j&_x2N{{AJZ zzki`CC6D|2GccXJxR6##p6c#}gr&gkf2eVPFQgoRAV%n(Mbi~TCT8g@T5CbydbSy} z=za^Do4U=IL)$Fqa12^K4L(6?p%Vbjr3VC3U23Fl0&$n_O>U(03BWX^PY(m^!yu_X zHAd0hNJAx0(cMTikueq7jg%pfB6}W9Q;?87k5*aGAs_}sSP&C>5mlbdwU`Tq(u?VK z0Trc}&<25+(jlpr(4%KEDl`8`K<^8r2)!hV&`W5SX5U|xQt$(CYiLpVl)g(Dd#C@b8m(Y6G#!dm_`c3g#M7Wm@qc@ z$AoI>i>bRniqOSTghn8fx17Z^Ku{Iki)q|!u13)fR14xYvVOdTwGN<>hWOmeMW@ z+GT7ruBNUHoTqxfj4B1<-jB&#M$gUXJnsETfW8(;^?q4Y@0ZaJl6Mh}C({IK=|x;n z_5NC#zCb~|Dz1$xcpWubdCZIJ==6&tnAcHAAT_>Cv``>LXcH|Jhzb2MtBJZ^#^sn$ z-OO&HBLq}TY@$&X#7u0WKUokn@p?MNf|!Zd)7b*42A9+83ZgTsM$>XixtyC&JX}sc zT96jlX52`<7IU5=&Agcg2*|YkEBj{Bui;Fl?N>lf@o_T+B<~_xrw_@A&bx)KwetG9 zj?ale4S-hA-IAwu9E_KoPp@sou(Dy4TYJ3u3z0({c;CA9UYAw_4D4kbMVjwxA&L?xd|2bP4kA zq`z6vQN6}!chS2RbVjdnfOcOm``^Mu?(g07qm{}1y_-^(E6%)=y*c+D%C(@cv!4M} zZb97Nd#R5FaewcnK^F8-%_`bJhgr~*HKqCn8figGQEnrRTdwxM#1$yGkxsTUA1l0; z?xQm-sJZY|<35_HNE1HYPjjri*Am8P_tSiV<|TfaFb+_Yl{X5folUgD%A1%!4$vkm zuY39`dVsb7LjUI__D?U>AD~xNCav%Nb?#>R(1Kp?Jx+Tls`-cME32BVI0rsV|FED} zpq@NT2{$ONaTAYFx&?6yk5H)veO|o^cJ@k!OiaDq)usBQG|bBUD_FCIMp)2JaApfl zvY>^jt6-8p(}J!^E!7{RItx0#Iw5Z>U1UKQR=<hF`3dZX%7@9wANJxRG1bX50xK;;S|R%D)vD)$r}WMTfv zn4S3)9b!R~jQJT)(NPLA6Q9do1&wWtmHBFRss1!guppjZ&(LHG;_3BFR1@3j94qf{ z(4n`t%9~;34Xj$5x1DBN(3q-ifUZyw!@Qlv#0N` zQG&IZAlmV7s8-fDHKCd6E$9}3mRiuUy-)Ww(`pOaS#|-SO%^mJjmtf4L4OO>A@6ky zdfqoiYo;$OXl%l0lbY!l3tZiY3ufTcfZY6D0~sn6=m_okf_bQBfCar#a0#F>7WD7b zNq}aq;Bvehe&=qc-2xf(*ZyntX3Ag5c?P`$O`@453dESV`pjl(6z~XbT;Nkwvr?d; zTK~YefHpZ$n`wuI`AL5!ZI=ZV_2WwER>Hp{#Ml6`E$9mfWRQIu=jG8SMs_}kS*0*H zbsv!5Y*M9wY8P*&oohLBsc16I^u0hwXo5p0KG+;Eo@^ErWR%$)++meyc z#xyqwXrqqb>_nX|kd3-PARDvtQ77hbfo#n20@;|f&54;Wkd0Ys3TUIg{U22Jh-9_K+;I% zI{oPbxNt^p?A)u1IsJ<)_CLo9E*+*_t~0Z!b;>vxA>4F{2_(B2HjwG`7a{2Rd`|z^ z!ztyU)J0rCqkGaK_=+qiK~XhG%@^Z2rY`kp)FYFMb(#v_Mfae4ZqhTc|9R*_^cxSO z2JsVu6$Shrth^t=B>8lI{3w<#K#!AYIT}u(WzvsJQ<$t8V7llIq_}C7q~B6S#TsoB z(isP4?7ob7uCQ8_>L;acl2S{Gu>WZkGXrG(0#rk)(C7mYWb?^69Qzx8PX%dn$n9R$LG^46(cVVk+d+?n& zszsGz?wejG>fV?txBVSRhb2g}h_*_ZGTZmvZ&j=(Oph8VKSo84dYpsORvh#Hw@#~b zFwfQc*66u}{j29mSIQE;Q-#=wn*%cQx1?vNV%jvz(e6eJ;KG?j>-Lv#9t@cs|CF?F!d1Ax!* z99+m;i8%X7ay!zSD*D_(!=zY0sjeUKvxI)~ETNw~OBgIQ43-*(OMJM*2TMJ}#h*%F zXVq#mXlD9F+El9X)oSKEdbI00Z36ux{Z8$4G_YB_O8n*YN&hX{a>~zoLYpQj8);I% zm$iv>P5OIUZz}Bb2~PWS17B%R(1>pTfqy|iUGGha1Jm^+%FgMGGv7p<178JBDN^`K z;zK&ir$f;>3-x?S%W96*zcgti{;b3vdZ+SF`j=E&bhbVL1%i5#=IL{_o~adfzFwaw z&5xxY@-72gf6iN@muSq!8f})Z$kkhWDXFh}9=%jk0v+ZH#D}|Q zia%NFGGL89o9-O&lzTa`y&3u!S9Fxl_jL7W<~#U&Wmqp)hV^oMT8DH-U042-djah- zhP!8@nMBVv`ppOcRG?xI}JY;9Fqv8P^+S<7iyc{k68+AgC9QuroukM?MGjps|P zQ!ZPan5>_)#io9oN7FCNn&epq+n4Dn(RcT~%+p;TQgF4WM*q=unWr~Bn0mkGd9d_h z_&aJI_l(sqOMBKcS!c2)>w69=)u#$6m+F0r{sWwoGm?!0?UC|qV-HQ2ApcViW%4IOCVNc2||^-CZ|z?GBtns>f(!gs+=~ zubYIgn}n~ET_bR2+{D~9LA$4VLBdq6IipmskxGZTe!{7BhHG}tASSzpp`zJ}6B;WTn}pS0Y9Dv2&^CyX{b}j_^SUQtbHZ}e0A)lU zJMhVbO>)(1E_dbmUQXEP>XZ5=nkntK92tB}p6yzLCMWCH<$nf$N&j!)w+#F~VXP4G zq3gdjzoNR)-Q0of2X5Wpew^E^y z_K#A|79xfV5yORu;X=f4;lXg}cW)uOw}++0Wc`rTYBP1Xup(b$8-2cZxcGc|FkEOX z)mDL&8G5mCf9gDU!+=Lp$9mXaGSA&7^-09pJ~GzBmXLYwN77zF3R^zLdf3J>&wYHq zPg17~StEt4kwVr;A#0?NWsVfOMhX#^3Uya`IuCp=?N-n1oNv-5xb~F(Bdtnfv;0Vl zX$vX_r!&t^N*^cum?-?1DEyeAZ|nVh`stEBP12`H`g*B(y@zc?>pg4@+UR+*C^cb* zsXqa;!c48kcXh@_4@;$4LT|m$TQBt13%&J1??$PpUP!4I(l>g(s~o3o^sKL8|MRrM z%#EHi2bN?$ESOJt(*0}nw>`J`dS-qoDIW^+pYU8+&_AFui z_}h%}S{{t=n!%O~&0t%HX0SD6hJH%-Co&gH|CUMrmP!9^0=b*DJ@jQ?f7Tv)rTWOM z*>ux@nORe{jDk5?jnbvn(xuhXrPb1<)!JW8ERO<%XL5nTlVYm&W9OH%G9{(EF+1mV z#5?zTH>)?|A0ghq*OysUsAx208n1QUjg)x<*dNJpVu)YUSSiv(x9`1#^v=A+bV zYY_hiuHOZ&n^$Kn66!V~`#bk0p>C5=NZm0O4Xh#(c z$sK0wHqOl*>tU1OSP$C<$9mWbIM&1VzOf#*?5+2(A#%NkO^zdkb7SEjkvGh^Dq&Gx zZ+blS6ZnOFzRcT&nz3ghca1*PIJD0%dFBKuz`NO3T8ZnC0pm1Y&7FKnTCnD7>}H2l zmmz+R=W6{I;mt1^KO?$IW24IqV>GNnzX-Qx7|%+a-xB?Qti1_fR7LU!+^^@&k-3tY z$w_W5ha3=YP>_T}0YSM1K}moJ;Tj-8z+rfkAT9`~C^~>3K~Pa~MOQ@>T~NGs_3wK9 z6;}{M-E|jT-St>^S^R!g{bn)&bp3zd7pUs4KB}v$tIyZ(%`)4@u5+^*Z7CNl29Dr7 zsL>`mg|i;zvKnpQ;S{LRw!(geIBjTj?P!hdb)5a2W+kt&y^E8d(;8htI<3)drB|_z z+Xz41S$b7`RIoAYP1K{k)Op@Jty$aj%L>B318HcW{XzRi{5ngQWX`&5-wT&}_av>=}DKL^rUg~lCsO(ucEHm*+V7Wead4&+cW;0b?~|EEeu(o+nzBn zezj*w^MJ=Dzm)w;*&k(pl>MvOznc9& zK!|FaX6N-!3Y_0$=Ky03!?+XUu8jLKu3|ilu>o+aJ`Ucf0EIOS4Kvs@fUcvQS@z_~$u3cQ+=-pZ^ua)zz!Z)X24&b*t8 z*~2XM;;knK7E#{=KP65BA7G}3IoB(k>ov~x2hQ~l=gQVzkzU*Z?_qI>q1xRRBSkFN zrs*kob73a%4cc7b)!IVfb=q~nw`yVFjan3VleP+Yt9BD`vvv#cE^Q<5ZZJv_dl>K4 zHY4P5?QYez% zc8muxUdec;rQSfI7nnH7xSdYfDj5%AT+MhT z2N}P>_$1>L+gi8LE_0BL7)@tfhoH%#&UU+dMCM8k*~$0?#wQscw^MrIAY8<_l5sWT zDC1_v2N@q{eA02dw=i3zP%cXf`HRSJh)NEsW*lW)83Q*jH8U386S5)WBDIjwU?SW>ZLTzjEx=a9Atcm@o~mQsn1yQoHc2bG>V&6 zlSL!@52ih18SECagH$FUyiW4BzC@a26zS4!^o1U5tCY*M-2d zQ*az;;DrJr9&rpq0u2Ys791zraekG8vnw~Ud2w##$HS8VUQ^4!*p-C|HV3~IoGbd` zAn8JcTqHW<2m*IeF1P-W1V(Pja zCn;Cp%`;<^z?KuU7_LP7egoXr^HjqBQeX1F(*}32@jM_GIK|Ty_`yuu}|4X>q0z{HXiuhqDjCijW?TeUDJ1%1Fv!S9cI8u5b!^iQiGHE`W#A>?BCRu z*p2K>;gi~s|8Ie9cnI-3ANkvQ2&*)|<1}j-*L6uw|8^q%OMNN*UgX93=R0kVAmR%< zC9P)ZW~5T|TU;mQ|E3p(9OuGfTv)hQ|4bqNs8g4+(_#w{l_il%9ntM%m!e=U81m4o|b>KE$3b{S_Ht>8-({Le$9LYHX z{O6wJf2z~ z5?JD#vk?A)z)}o?jcc&vV)#enQn3b`Z3q7~v6+K@$Tu2b{&-CQ7!Qs_Is8k2CGK)` zf&bUQ68AH@!oL?-;z4_N_+JE;cwCM*H1X`aC;T6Z-tZp4_tSm_++SM*e6h9`c!0JZxDr?7(DpcrmSV7WJMa+g z4sf^xSc)sO81Oh8PD^p6b{Ftf+BV>;HDf!RYHbJbbZsZ_wc5SFb=v*FbF~Lx$0IOx z_;3$tG9CqdBJR@Kp!v3Ig*er}3)rD;*V;l8cLBGBzk}!le+O|P{GG%Y_&cHC?OKVL z0Dp;?2!FY_4*qhnRNHQ7U9g`zc-e|cL6^M|6p;Qyc7=;mdeY3 zua{QF{8?<0jCrROxse-GdRDV{1O{xoqIkC4v}E6k-Z43mjJr`X$85h<7}`8E@g&*3>G z{i#6Zf14Rv6u~$kzQRM*xF}CtrK0fi2mdAK{j4tqwHELNJZw5Utj3_({j7w`IIOiW zt5VKQ=jOZaP7J;+fB$Bpb-_1als~(Swe3~du$HWv`Cd-z%rD^~;@O!Gm#AFHHNHMp zHJ~7%6~z|z%nD=-X7;VCkQ=MHGCN>gn0{{NPtK7V@0%1;y5zbAL_MDTwiYH&96FB% zM{~QkuE@2j#+bene@^ih8v_h5@#hqaU|OvU!JBCpoE!Ghd9*O{Ja&}YTQP5CaA8wH z%9v8YDhqR6HXsMk29SsKT0WovPzWd%MVJALM0?C;9RL^LeV`zq69Avu5M`Ls$^o4L zT>#xMeRT))0Q3a(0`wML4NQ%LFu@GMOg#h>%23S4Lot~Q#W*(<6Uk64^oC+88Hy#} zP)wjhS$G}qFi{88MT`ZvnKUjNv?uN1nZLNAx&iO`J)s?i|6711?M+dT z_Jt?`+?}>Yd(C%3`^dLJv-x+*i~aY?iT(}RO8*xkHSmRK2z)Dhr?1ftrJvB=N#CIT zJAJ2YlW{M?HfZfKHfUF81T4z{(Tsrs%X)Zr10De!0K5h`3it%@0|3waEop%HnHN}Y zh5H!X*Wez7+Z(+nHbv8Oz2=9P>Mx!#b!yj&SXW)oitU}J+hVIUy~vq}own~*P5)N2 zak6f)s70S0o82xgKQ?hsz!N)T(d(UEt9yt`7SEqv-GjKa*>{Jo;|T52x`tVcW5qoR zi({jT2fAa~cK!YolkLD|`<}GxR!gc$UtBkJ>Lqoxb7N0A^*?TZ|6-q(v+s77{(=_! zrYoxp-df{092em8h?6m^!whW>GA?o&HTiO|z#? z9XG0G(LP&y{U&|pOr#kUntyHG%*BgpXPCm)bJp_&Us~I6p3v#%=C8W0rfzP{w7In= z$9*>k_2;#?3~^<|9?eBl*Oln=tU3uB3x8X>XW!Ba{V%#4R~wt!Q{P)|G8i_0!Quv0 zqgkOPtpi&E_G!KJT^4P?_Ss8)T7hSf2;u#pc{pI3FJ{CJ-Pbu?M%SvieJ}Ra*IP0( z@bVP?wMr<&cH^ljS{oz!`Zyeg*5O>PNK8*=1$wTi#V1E7W*K4@!>z>&H?>H&7~!>` zsnBI`&(0Z7zl2jXV5}^{5ZC~`1ZB;|zao6vWU-h(2A(=FAy!4=O7_n{VN1B!)*=^S zq+G-zE?`#m%&Hc-8^CZG7b2qTV_yx|7a1gDJt9ast)&x_e!9l>&;`|v>a4^d(Ham+ zwH*Z=lDMR947BjoAg(s4@C~yN(126r*guEsvvGo>*u`0$CCK=n7Gx3FlK3^Ku@dK( z3vo*;AqKQ&b(RQqKP|#s=x(N{-|lvmEo*{Q>R0T zGtg$rq{P)-uxKU&n+~0Y;F|yQ(GhdDm>G*s&@T*BA?aB?Vc&ftbzR&3)ss`Sg4mxg*Si_TV_AeHXZ4t2V84K^ zL!=HuL5WT$#1&%@PGXQ{cgKn#Uaca8E4`^um7)wwfDkG=2L?|9&%r?tHFX0j6B32< z1%6K#wdo-U6LbX@DdSLg*hH*wwB9~8roW!PFWO&!%dOoK%fCd=j%^>PXLp!knq(Jd zMrNwCMa&b196K>s&nhI<)_@`Pb8;y`4WuF|t`oJfTZZUMGviT75%{KROM#dDe1T_o z=yOY)h8l-ZCi+wC)NuW})Od+z#J;H`^cpSp;N^PpzT7MHziX+UX;4`RN+WX=3#q#= zxL8~iH~M-Uv30>e>Ynx7^%ue48KyiFp%aj&2DUX0jdVGhY6;@Rcs34C6`FSehN<~5 z?@;X9(R#;GDJF&Q6kd+J#?Wj7JA-&tfYjstSmV7L_W+7R72N z=;ZRgZ64^5R8Az=hi_@+LJZ5$okVqc;>r}m?QDL$92TL2u@R!?> zwyWj~LK<+_G%CVho^H3O;AD(bLVr*CXJ)}yR4fG|tpIzX0^x8%5Mq=9Cd#MVHGh9; z%LeOgWEp};D^!&iyR}-sutQL{%RGGG0|9AL$M@6n>_ryM>-8bf>p&IB8~a`(s2MS^hzK^wg&`tD}~qy z;f5;(mq}ZSB`X@WWZ^I?t5Uc5qMNOD>8tSC(lpIcAatkZtH6oBuOb`Cd&H`){~;p< zb(g-fG+#yRf@x4wWo+m)y`)n=olY}sTscXaq&h;Y!$_0a(4?;iT3!Q_yQb+~i-IbF z!mKb#uM|eU*r{oH_C=K>5V|8_DYLVoM&D3k6A(6NC?z}F5)@uQHjKsB12PWP!&E^b zV_!`u>=<)*>ggrg_eY=gM-Ta7)p}9#xv&iW4{Ee$fFn?`N92&-o zp0{Kf=6aMj3o}dmjjg$^R&9y!z!4wVh#vPf4ue6Uu{r;G73go=U?W8}ZYBrRW%g_( z<3#^Nf8#d(zr)|y!Qa>)|55P0{>HBS{{ep^{v+;T`fpGu2t{*T^ii|A6IBsU;0~Fu zalcnl`>ClsRv3Nbi|F6cH#L+3Pvfibtal+Y?suYn8{d@v#@akb5hCA(wo--eZ#?R6 zJmGKr6f))6=5j4QSG>PSWa;XK-W$JFmHU<~rSU(Sj2E*ishCxXJP#`gn=nF1%^!W$ zKatyJqBRIv`@_nn#4etx=NeW>*p#CCn>_y7yu38lycC<3=SPDgP80kyy^pdx35lw|j51)AL{5#XD}4GEo*u{LE` z(IJ}VrGV2UM9=fuDAhbKb=>9DS(f+EL>KBF?P9;HMWsJMY_+`*>Cr#u;@|(lz{#?= z`I{Efe=_-Gb4L_N1U`U{ZW{euHpQmJakFY#<}p-IByLx8*{&vl2y`7jlyM ze1fRCY&3KIOIsNYwCC2nUWaNf)Y(+fax3Z{T}_IKt}ewRi1GEci-yf_s9khz&GcB= z^Oh7tZSYI`jlx*~jSzU2N@D?=V+XraDJL3@>jphvRS#o<*{!MRpulKU)n`2nlKTk) z1llDUCE0Hv6h)8oHEqzmrYj5W1t|`MOBJk2Wk0nqdPD43ot{174w#H-5op=~ra2e| zb+9`$Z%UEi3>cLa6PMHEMis}%?WGAt&D_R`d1fo2V5mYbAnH<4Di5;{d_ zQ;ISOf71hP>~?5+6MSqUaFwoLk4{({nH`1E;01HUm=zBys^AgsY;)yk*sOt(jBM}$ zh^u%w;stn2qeY}Ix+@{dyZJOlkSOn(Dc@D1sNO--Wz)N!7C}I93Gc>BfQPJ{Q^|gD zzc0EwZWOyw_ogGv=!mj{Bh29lx9Q{DjE@h&Ln#_JTfS?*VV<5f&|G7fXRX*(*)9I) zQ%XSMg{2e80c(qXgY^kIE;BvAOb>L&(@tg@U#rB=;7a@9&{7@D3em@oxr>LFJ^tvP zRwmPQ1d{U-r0J-?=|tRw&gxlvSdyks-Eqr6E?yU)Z>lKcTh*#RKusq|;Qx>((G&M5 zbJ;`lebW&#mA%XhEx%ILjMj*>6p4O=5K6Get86L5ztXB9tUVjlo;be2+fqSJYGvj1u=%u5)WUJfZyHjZ_C+6eDKlkZv(qHz;D}a$48Snv#z}_6#zBKY zsQRQ~`OUd0mePic=zpRoA7o=(i4Q(Pff>96gUeKoN#)pSqG>F5B%11= zYN~^5X78|>y)#G?G2<|%{LS<9c17om=>Q5ociobtmy_y%Gudf3u7=9-VyL5tAn&B4a}n} z^U(w=^T8B@`eyt`CBk(N$WDq zt{ALx;^Q4#UH-W?ncrfQ`K@dcRFX|1r<%0l#rdM|#BGwrCCf8Cw5p4~gEi9-4Av|2 z(N3!H_~r~db1dM6vctnzvYB=mH@pvNg+0uJoooRt7c0dAjh2B}dYg`=ojJ)@0P%cE_4M9U+y{Tv)U$ez#QqqQ-pbL8#}kgK(VP-n z@*H%;BmK4D0mI32LwDqhT+(OhC9@V>S$fs1?$Za4=rOG3@)_Ny zEx6>$B}00R88Yh9q4Ta9I(~7iCdZalu&|+lYG2z@d;F9S)qXnHet)Iyf~=p2+;^qEubBsJ)i@iBj5r+5YP!w0w@KP0m=cL0bKwUfUbaUfbM`EfS!O}fZl*UfWCkW z0T%)K0r~?j1`GgH0;&K50fPX80YdCm9B>6-6ks%93}7r^ z9AG?P0^mx(M8G7#Re;HWDS)d1*8rvhssS~CX@Kc~8Gu^AwSbv`S%5mgY``4AT);fQ zd_V}W0I(3S2v84b04xSv2Ur4F3RniX9uNjB2SflX00tlmXaqC?RswDStODE!_!VF^ zU=83Vz*@jMzzzcxGfENKT0bT~Y0(cehJHYP&uK`{M{14y_z#jl_0^S0= z4R{CeF5rIw?*ZNi907a)_#@y$z)`?4z(;`NfD?d^0Ve^U06qnL2KW=;&w$SXe*ydz za0>7R;7h>Y0AB&V2K*iH55PBoZvo!{z6bmh@B`pqfPVu{1O5Xz1Nd>Rx2<*yfRH3) z(SGY~t7}`r`s5AaCu4hF{a2p6`Q_Nt-ki?%5t(!sxO)5cWffXm_se($NfXC$A!cmX zHdbmGPK|Hf1z*C0{?X4=YB{mJ1u{KW_j!KMc|VQlfZbyILn&1l_+S6szs8o&0~7ii z3ZPrX|HO+Vd+X?CS?j;uFA5Qj?I@7#if@xaT-|d@ONVlI$3>XC7SO#h=k*bIb*V?> zo%gp-H%ep>Hcpx*hS^OBhRM%Y zf1fE>*CfHne~w^Ks;wUP|C|vVsV56&kZzJB<7h}mt|f#U;r!EYac!VhzWUu}p*T28 zXoLLc6#4)aitoZWBX|yyTxe36nbaU0jY7$_gzyz1XY4=!scL5omqFa%b4Kiml1e&C zO9XAMOZGY0C!iGEGe&DcMLrAUz*Rf5vFr1|z-h6C^5IHb2%n~LMpU+!WSBfiekmm{ zM9lT|XmeW!8KxpaMlVHBs!$*JOX32t1Z)T;R5-o}ZCatMFQNim$RX>C$&1^iaW5_u z!rPWYz2wcTZ%2N7=Lo^=$qNI3N;|+yHe;Y^?nu-ml17o12wG7mp&v@bNPW?M5TTC5 z0xv=6CEaA0Qiss6PMCEVcCV9#!-^<7#gmAkAjKmP?W~uy1#|Yqa}R||oh4`&;$;b; zs?G%G(pFKp?${Dl-YN>$GM%wU-?R6K4X_sYhC@%(Sa>8&w_SaHAtPuk9lv20frjA* zahuf{f#%`Qh~V)s+~tZ4qT`mDRIqF8Z@s!@jO?G3sh^qYB9%#zL39+#L{t!cBdJ0# zTGP6fK=xSin37+@1z94nAC^2;G^KMJ14c;s zh9n9Uxv-F1P-B>lPXbO_!V!W&Iz5sTq=fLo zk258N`Z+_Wk5h)pj#O|6ns9b>gf2GVmcMc=-BD(9grH~VhxRg?Er@D3Kg0z`WC&GJ z(##+lptJ-ld>T>9M88>h`2v3u*Gz9$Gt4ATnI54yvo{Q*kTCVZ5bP9Q?n9(PQ*W1%*Ag57rv!z?%>iAU4S6(j`o#oG zWDI+hC68i%M&t^1mn$-8Q#L}BGRg!qSOPPf$muPSN$du@+&L8{X;;~ zW}9kei;X}&dRK}}^6GQ*!5%mt)CJiskr`$_R53E0{TY#I>@HVi5JpVAh)NP2TEz}n z@w$%FTOy0u)gwz_65KzCDQ<4SpAo?|54g(}8H9lmQ=*cXqATE)3&pf4iAST!BdT~P zGKjV(9z-SaK=TO$ZOXM=!x=1*o7hziw3_`HkzcX9T#-SvDKR4|i5Urmv6Ok;tayy1 zO073}tW!J`8AMYOkM%Uk18lkGTeF?hSO!U zhhS39$ZZsFk5B@vF9~Q8zt+rX9yyy=JgkKmg|y;jn9Qid6oV=H z9EKCB|a)(S0&PL@+q@^CKKc^yo zHrW)F%s{4VTC(JG5QKi6H zRYK1#r7EGvI)hC7_q5fCv^SrJFP=l6$)wUkFaxJ7xym@F?m?+`|y2K2;M+Vn3OANTY!NbUC$Z9 zl+kK*&oT?X%Pe?nQo&oyf;X#z6&XYqqJoK1V~2s!-6E=>>1^uvZ=zwO& zdZCo(6!Ly@A!Zq{Y`imr@dc^lO+D6my@fXdp;^?z1whyf=&Gqnu(I=HI&Yp96N#NU zozo*$Ff_gUUCqNZd=8WbH)<04lUWfIqRV!QOs@>qq0C5OQrK4mR9F#(75(_*k4B^| zd9xzOWbUgl`!$-XiQ}wpO@hd$Xw=HgvXiY{>J3TJK}c| z9U+7X8X0a>v7r^9TIaGvh?6XNjs}L~iF~Sna+j>14GvCDWKn^kIS5EdoE2(JmN?TS zzcVGwR0W$k=OU+)h%3+HpxCd@ssuJ;^_XvM5z>$})Nbs5WIYCDXQU&AsXf&NN2sf!a8T!3UHs{IFm z2^yZ6Jjxj?k-hAyf$9q+)!M4n*R zSgzBpVkkTljOFSq7`pUADfbP;*%i6S7611mshgVk5-J&YMC> zAGReWB=;~13Y8*fdD@~`Xbcs(1TtN3=Z#H=a=l|_so@ANB{|P%=()S8(O^4BqId>} zfPpMf$T{E^_vhH$s|$2ghQJ_XNH!6hsSRTUJuvpm%%XH@&PilgOhjW z(h<23i6!>u(7#`@#!HXl@K4Av#kl2ia?WJrVBnV-W;QUwJm#d1?F{IpnSMQJkk@MG zQwg6n6a|UUMmXgsj`?kwT|9pMOlBKe)4=qwrB!t)gOp{HXtiuO1K8-1T75RPYNn>K z`)m<(2;BJPs53U0r&>I#0M&kD!IAfYN}=|a#kBG+`VRUGW}ssQG15AZ6$R|F@Ql(x zx@yqn7xto}?ZF!;L7Q`;DK@wYaV4S(g27DiM!dl5oA@-v_6-Yh$JY2C&>sSd5SEJN zRxeU3>@RpDXTwTd$2U<0Uj8Kex(HFQul{gcwz65ufb6_^u=B20=`w_=z^STLHa}}U zMj9;R6n#%{HR5Py;iffif~UM6w=FS8+g?l#ADmFr!YoRUT`9v9igqREOa^9J)vlBU z?Yb6BI@;B)`dF5S^uWxRON!D?pmnIJ7FYo7Jp?{mvgtmNWon=w*d}Sff*(C*tw95@ z1JXbh9B5!(ybBEkjV=U5n&XJQ9-_iFC?W`9Y;;m$qm2g)91{pk5T>@CERan7<`y+j z2{I)zh@9n>zG%q?=>(Pb8Q4KJZv%I%7`ENsd){4pL+p{^5#_AJ{R4&Dzhcq>| z_WcqzEW?zxtX>6yLjCm+su(v)o8J~(kMaUmzf~D!mCS;Lu?~IK$mK|HD$y!~7+*_| zz6-f!m?B_v%gIf$Oje?mEi+ywHG2rn!$o2O51g;e?4K`l+Al2gST+XnfDBXPmARCw zhH_XK1scaPu=XYEI_Ads>a$14;Etg})Fx$Ndk__};pg8RWg(wKg@!Pm{hYpXeqQ$b zxgAV>89$>i875f*cAvd0%V%Fqy%MJ&KKu2-yU{|S?PNw_5EoC7L(>33vorzaIqpPU3F~d{-gtO@JGI3?oQI z<0-zigdyQBzy)0ps8Z zTSp87!%AmkZXE+Ucy*#JXc#5ar4_@?aLwLNT+w~UlcUZ-F{@xoFFm>&f*LYRF_>A% zNitl@21Ycb%H>>AGrVPMjumt~mK(r&#fJnwebG8S-mP~a{+NInStU9O$$Sj``5uH` zh^!DZtMesxKHLrNM4*}ljPpoM{q3iv{sydmfzS}rW(sLr^yjmLGzXFbt1yyQ81^t4 zP!H{baCScV57;y5hY$S@embDS%xE;P9=exmoQ59eLid1~1}hPO(|)RZ!0NNYY^@2i zwI-XbYE#ToMhY1!*OnW{mpogy1jiRKn2hMJ1h4|I8vy&F<0Lk^c=$sI%LSyG;beel z9{d1MYa=~QTb&RBuR!*A2H2yx19UOmC$}#gj8)S1rG`Uu8^jLlqfw|{(&|7LtB?iT z9GLI~M8Sk7!ofGqJHl3n=wJi+@Zl!hvISdOaM^>?*=+BFzIYvQKRjd!s8HN)i4|t8 ztH@b?C9vPXv;`qckK)$@U;-3_S&N)A8ExaU7G(pY2f)bf$f;b3Qse703;8L|+t=E+De4J8J~eXPGqk8VUoWSC-T+$T4w`>+^l+&?-I2_0G8 z>+QiBuJt;U`;&uys}frmXteup0eE-q8MG@6MFBXmG zB$h$_nl;f{E(|)qND;^Sc0ATAU^jcEeNks?eCU9^I?-VrW|ZUHQ6(pkA`SEuRu327 zs;9IBn>|I~ixdzGe*u6K29pm+?kn-|B82B6%^B##w5rP|!-QR;{diXhE8OY55{~?h}8kPuu{TLmNlKwHRp88i}fsVN^uKM`Vf;zdT z)Io5xgnB}ecA;Da`;h2yfd>D9-U zd(jRIakBntloYuZ!7{8c>`#wSv6#VUDrXisnUOj;7#YD-*puL67*-lg6e;GY6lAY3 zZ63G3qx!36QYEM=^+vJ5>)2c#LB(hg-3yl%0gu8p7Xc(S76Eg~QBM@H2q++9iIDJN ziohCxoHH36;$tc00-wjgrz5r;C|^Hk&p{(6?KybCyoE|s3uZ16%T?dzGN9Uz>gU=~c<o==q}dHIug-=nH+^h-9s%_6So%z;4Lpn|PPPuSr#Tn(u!#l94NMli zt}S{((0Br}C-*@aCN2S&&y`hqH%1*9Cgu$^k_Ft-=T2tqUWE6Neu8leUmA#$3n%Le zJ&C{zFUD_=!TkIv;1}5dO&UtC=eGe#;{M-kz-R*_Xk`Nj{{OLoHVIkJZv(8_5b6&j z`2S=B7zwC_utxSspC>}Y0j-fopc(@ zi0=@km|!smykJ|P$TE=UYk6*l{Kh2*+KUQOM|b0LuTl8D#_`02LFdVDgKn; z8^pPak9nzeX(CuouDXenB7+@~`zW0>$S_4>VN!Rmj(s^hVM8p*CFCRvd%96CE9mj<+~?n`8t;u@$&22$<5RJz6x zAHjTnpPG-;{AtPau@WsUf-P=bLuoQdPb*4~9*5>-m|`&QEGIWKPggkz~KllMW9z3Jsk(1hk!fC`i zghAsCKo0yAjxBxzYLm37v54OwwSn${(J6{Jj808(a7@(>y`c(`W*5h$;iMB4tYmLM zGCcWO4c@Bf1<^%I`)*CpD;6O|(x~)&%cw*#JSt((NkjR%BM1>nldYR}M`Yc!?q%av zkI6_zY>rluv%C?QHb-S-KYv5PGE5QJ9FfDOts0GTflu7B`5bE{!eH4{4TDUZJOP^z z2ipxYOp(g8?R5Mzt;Mvd&#xzIqFMT8WleOTz=HW4ksFDvlFT84T1A}HM^ccFg0Xz5=;$R1B;J^+r4Eo@c;hTULy_ztChaj^(I0l+=E2nH8j*%%* z{Wb)KAXj`iXxZtudLBgOpe@&`{s%+i#>B8#dTg`|uLX^kBqvE@l*ioWLR0)Gh}rPX zLOcpWD>{#{rdopIn^9OA^^2_!Cia zZcrQK`@3Aey|G%A6gUmnMQ$M)q$vh z)T9xP1}Hk>OtNfJp(Xe!F^QiY442^zB)Yobc@5YQe`@Xm5gAfy0$c6g!q~62f9E{$x{l`X4%a5NDZ$y^F&_PPfXC;yjHzUev>x+6r z>bpRkrAAB+6x2$M6c)jVLFXrT!|8)@2e~;UOaWUUKk+j7xK~{$%nUt(%A9j1q8_)C z6j0}Oa`@IDJ#Ozt){2&-Q0S7JBwbRLgf1l)n>CTeQ3T0@Rl?1617<+G&>@Kz*CCh3 z1+`LPORzZr!EVz~HyjOp{#9ZK+5$$VHsj{n3wOSn5ght6>X@IB5OWNJ>v@-kvdH+h;sF{u5LiR2^Ha>_5 zjE#HXU~I(0pCF~|j*gWXI)(H+%6&l|8v4J42Wu|64x# zLSdH6$vu!Ca^KS0w0f^?_H&Yz6PQEG`R4oBr|8GIFidl3L@M#A{ji0}mn zI_DIHgoiP(xuUt_M|Z>*)8B8%;mc~Yl){}@Pm z0yjn}LrE3F)PczvT`N8XpZgr-Vt)M1LSXuN9BfP}F#YtT2C0`}3Z=P++%rZ-B`lb) zWv~qDAxM0rAvtKIAvbY6Mg&@iulI0CT+jHm9-gLKf)l+YexnDrjNkvotvzTs8{g+% z@}1jb(7L!1kb?-C39zQcP!R7zYE-AS4u(&(-4lpH+dT!RRnzT5!2heJGt@Ga_@eEe zCP&>AMBDYEwxhMU3{wQ!j+~?;P|B6mbo)V4)6I!D9Z41X4oyeT7&E$Ck3u_TY*Y$GhgnW;(tORr*;*ZW zl7Q5vFQwY>vz5m_A9~Vr4?8iz^<=!@jwFBS|JqMrj{<(Gd=y7(mPT)7j!k^WcuFeyo!(Q~0a2Ypv7-!cWtvS4N`2dJ z6YqHmZ)E%^<4g`OVE^rH`XKgi9%8XEK>opbgv%|2UA{-#*u;3*$L|z%*}L+b;;Zys zc{Y*brjR}Pb@@(V&8kmxidk9fQQ~I*cc~CX8l$XEF^n_Zms^!<6W91D!&QYhXWPU! zIm&7imrG)Oz(L`^cM^@6^ANXNJ;d!v&x61jXd0)uv9K=RW{7p1`FH^paI6ifYiBm8aZjKSTCwCJ zk?00?HZd)Yu-E-^z$W%0gbXapN|-(;qT!ZGpv}_!o(XE8XK8*F3=$s@Lflt56sP0G zNuqK%4p$}clguDrbyHF>=Nkp%Gnc}o?RZGH1I$0qP?VpkERzZ_^;Eu!OJ{0-uA)kr zn&MJaH>PHp`Fe19hY?qW5_;0l6G65Bktz6|Gf{7X=^c3eaDZsUqUkj1RD~`%i{qX~ z5k#$Esw|zT_F_F#A*MQtO-#MT_3b3KF_&!4S0c6x4Lx%pO6aeZKrn*}{G4mw1*8Q9 z_C=kmF#qpLqPmLvlBjODqd_U#amwyE$RUaz)*QiDvWF>rM+MYH`1vb}`v}9s5maa| zQ#BY^j$kBtOjry=e#0dF7CR-Sf#V1s5I)J&US>K4KQ2mfmvezN;%TN{<|3wvXN9FW zP0%Z-Rro^nZ#gc+1=fofnED4(QT#{|aaqje{R)>i@Y9=VVjq+1#H%VP7qLP7o~g;4 z@pkb#QzJR$X7L77FLTOfT%;wYN156o-exKVVpoZs;$5Z+nYs_h43sjTxjcwUf-=N5 zCVwsd$dT_c^#s^aQq>d(@H=3|;!8&xSFyM#r2x1vyDhK^Da{Kib`3%7^{K;wKg%5pe1@?n?;7~ie8#nKzR8~h{O9x#@Ed6j$b7SZ8Sp~J|4dr} z|1IfFh~4a*1OGthjlh3Nxe55Gl$(Jkq}&E;7>gF0#8f-I1yf$M-_NW`;!aye_H$Nc@k0h z4@u$D9cOwHDy3LALe6D<($xmBf0cx9wfOMqsdp?Hzyo!v_Z~eP{?qul622#D0SDte zEJ$ii+$$;DC<|r#slrss(^`i(yPxEyID7};S_^HcAW|18q%#=2XnEFgRV9oR3SD+Jd?L1ELMS?2#xP*(=tthX-+SlVI zFaC^|tW>;5QQ{>lvGFD-N{XEp|GnhdoNrk86a(~2o~e#4m^l)nY0ey;M7c6Yc>;-i z6`A9csf@{<^hDfd~ z*tXPz)g=GDWUa8R^k8{!QY&ohJ#FHYXF+b2B{xBhG4i(XMKub6f(tf!S|a=TlBqtf z%}H^goV%0qeOYjKOPuv{+s-8FP1_@$ym*1uThX9-B8M&EM#oya@th}L6r1F2_QRk` zOv-RI;03&HCUvLl_nrcAk)mMF_`ynXxuV2o`&*tuG0~(Rc75Q%Z|Wqdk73!HP0EY@ z(^mXmQN+c-X6kr?{L<4_ENVx>ewIQ8)m|7TMaI@%++nYqF_=ib7ob?#nbKsT6ZxHM_NKOikrc-hiEpbwV-;6QzoU^Pl;Zl4-Nq-Wfh9(Ep9NWJo|q< zeZ>1F)ysYq3;euJD&>7PoA*L7%P`3kR*&~0vB#t;@X_syL>jjC#I%^HDJJ!)pW=2i zwLx6&&O*L-nYvSaomuGZCr&4*F5ZhpJ3NjNg5vsnE5$`7H9G4O??5rF6bE}0IXY{C zcd%HKh@9cQMC>rBx3lJXhl1e!cf5GN4C6l)zryyM_e#;OT(MbUd(AsZj7m@+dMAsm3F=SYtHr4V^{scR zsO%iir>9O6TN6}f>b2^*F_+LOb&lwPBV1M9z|{F-E+~}$SqhCw_@OP1ywTB=J1KR6 zh%oh8$`}k#3&kokZbse#{GRB|W*iMyi^QE~+}?tzsf)yRGmZwYdU3xQH_~56vac* z649rEYIvjAma{N*iMZ6HdKE57T`DG+)XN1cQkRKZri>fKDA%gg>qUbZxiNQLYFONx zpl(lHE?!Phccn(e_a=2+-upbMsF0m73H9%NR!yh)Scq@ z`3F;*#G47~mDH8ubRu6n&ni*XolD3z{*Ybnxlv4I@-vO5hhK?#W+aXBtHolbR*KuS zAKa_OnxwcjVnZS>&$C9{n-q7GcsLQ)*K?CNloYpCylTeHF|?y%t@x116WS6ylUpl# z;4l@xP9b!NVs#YU4_ zQh@c}En?h&mdIPg43naaw~8qPTjFjNb4`lkHi&lywZv@@A2UTOMoru%PBFDo^wi!? zy-lPKrj#qi5m2{_eoS$74Y5&F3~ynxQC!T_hV1{%K9YKe7|xVpdWRUp)JpsY(ow|K zo77#P?i3rDQaX%@>?>M$#sqyahiXq^ZxVTIa7!yGz){QQS)W^72ufndUL23cO3q7~hibF4168#B-}5_D*Pt+$x@9N-^Cg zUSet`e&PAAsoTUmNpW|J50m2V7T+etZ5RJZirX%VucQ(b&t}nyDaEr{7!#RPlI{>a zCbkH(Lku=4lJp+&&7_vNdxUwsS;$x<$|Md0jLNfe(xr@$? z?+(CkVDC;r3U9+YQANi?lEcqUsnRFoEvdxe=W!vHgBs2T2pbnL@hJ=OI2Ns%c$KkY zn#|}q9D&D$n~C+bCcecfA%1P0{mChRiQg20J|`7dh?0nuqlsj(>e47g#U|tLI3<08 zM4GXzQqkW{>FMJU($wou`!WChw?wO;n|PX^@~Z-r(8@m?$8i>M($^vig~Y{DDY4a{ zA7)o-r+tTH)6j(SCx@%dDqOMNV<&cJhv;UJ=MT4vXIbAWmKxEpn5t_D`fuj*OIlZ@ zQC6Z_dI>j{YFvd)`@gS{>OnYeO6S^n6m6-AWIJ!-HvT2}1-2fARr=(RqW{KX``*b@ zv^?Y7WYGc(K8|A*ML0HZk1ywq28;(x!frMQ7!4Q?n1ri*Wg;63=zN@N761wXMSx;J zTR=NN2fzh@AfOYV1W*Pj2Xqrh4bdH*9)J`<^NSDIiszu@F9vqv8Py-M>A;k572{!y zM>C$pxQ6jUU`?#i{*av^_VbjmpQqZ-5u%A2Nw|*FG{T>TCC4AKF-^MRbOpA%dy91T zr?VeFD~|9y_WQK`j;lm5Gir~J`S5$Ojao_@R7 zFKG8yCW6@6?HAa!8E|O3wqMXLZNH%1*$zRwvK@kUV<)ud-M<5#Q1A!fzoi{T8rljC z7SFpiZLpy5!QyZDd5TWj2|MO)IVroJHbOj~JzN_n>;+S_6Qayo1043%;?1Ql{yADd z(VSYZZI(+4wg}@6n_%X!PR(b|LVyD|Ou&R?NTVHPu(1-3}Y&`&&Wuh%w+i?g59 zc4*^qL8grJ)@a0GG~-Ud2ei2?+*}rJE(=%3I;hiT`n$;n*6RkbJ1{^#V90HGBW0b| z;5(qzF^dPZ)diE~1KMGKjr>|XAD9a~#=k&53RN#?$6}|*p7TDZ{Xr@;AZ_=7=fJbmO9S1j@z{k8LBKBxfQo^ zJ+^W^wsJk*lqa!6Unu`K{RRv9Z?f#-TzeQl&iDwp9kFZ>SD>X2h^O*SSq?*Iy8ar6 zoY49>a^WAJKSkRpo;R|4>+i6V%fxDIUEUGYDktQx3y0~S%Vz`Q^b?v9xCVGC6t0$z zW#VmoA8vzKQCP2k2-d6hPnh*5%ya{a+^7GbU7Y=#u1OMNu%IF}Nlmta8)7i(eT_a? zOwBjuBbwHuIU1SC*YZKfmwJtMo&6vBDVF^kmi;sraGDGFTt4O=riuJ??Vr z5At>_7Ty#$p|H>8w(QB)PTJQvCe$p~+GkpOu(l*394dHY>U4w9jNQWs+fmyv@ z@TB!~c~#nEYnj-S_W^$0eI9;Iz^A>^<|}I+XKT;d$|##C<6J#Zo31d!=>-dIK1=_+ zRkj?B?EC~bUq9_Lw*Ow%G|^AHHT4eL32}#Si|qmJN58NS=DbFZ<+8k7dyZvFL6x2Q z?v?O271r2CXw*mhaZe@IOA-5gwqYNqQKuS*;bn^$p*@f0o5CSeI3&k%tYDK}vsBpb zwa;Lo=d#cZEOY}4JwiKHa1?2ZZ71!^4Ni0eCtAme)^VcIXo3!ojU2m`V|Q`vE{@eK zlkCSFdpP!Sjy=G!bGfAtaGEL^fQWOsrRSohu`T9?J`ACUYp=1;#hOuRtxYM`n(c%i z@y#Wix;W(>X8j?v{)Aa?W!9fC>y6@!>q`4pX1$eJZ)MgSF+$A8y8r&vLC%e$2Y$5C zfro}RmjjOnUBHivG~lO12A=OsM@VPkGS~@-acP}#>~}SAJFy(NRICE-E)D=+Bt8Zn zgbvsl@51~Wcr1rc2CigARg9|{H!?oKSktJOO2+LZ4vJkbFg_tET(eBaV`5h^9G9yd z<0{637}qeK&bX2BO2#`F?__+4@e7PkFh0px(}|~raWUg|jH?(AVq8Pma7|}oCF7lp zUtoNavBgS^iW#?KJc#jh#w!``Wc&i-lZ-7kt`g%xjHfeR$+(&EPR7PTc8)U^cFI=i zARJ}fto$hy(#-fEFH(@G{?FC#5_N|MNcKnj^ga zDDYMO8w?jkG=q55e-PLeI1XGJ5binRP@o97O?oBp^7Lxp57Px5_q&Q1S2C_<9A(_h z_#orsjB#K==^0ltu4Wu%-0U@Qc9hY~#6iZ#y>rA(8OPZ#QaLl@O2*ZUql}vwA55j% zA7?DmSQCsZ8CNroGHzykknwTG!Z)4lzX(5)47D?^W?U4QBaUZO0uRot2Hu=`Fu=tG zNFb3;xH)4b@NvdPndGl#+|2kmXThh&CLQOE}8-Ameu8 zVlhHg;|cr6;vb@o)=|4f+p8VYUe}IjpK4!g|It!phU_FK$fNR%bXsyP#g+>!<(A7W zGcEO&+bj=TX6X0nujxIl^R2H~|6={#y2CcsvEA{MqcCN8%1I+73$MFtxV~Y<5);>b zumbdAQJIFfo&7kc&Y+9y;tkg~*#2z{`~dvA{S5E{#wvVUzQj^^x`V<4jC&Q>5%T+7 z7jRlu8gPA92Jo)THo!eH3xP*vvA2R-r#gh&sHWU^H{E{Oyho1_9_V5!} z&>()85Q|t3a0YG?N|6bDN<7aA0B0jiVr`uTeYXLY7;%jp5SaZz|^qtHq_=f>YF&x9chQWUj{3DQ7 z6C;5o?u}du{}sSej6zzhLxJ(*K1i!!nz#)96-bNo0AMMiNULGte+B$aNUPysXEc5T zQQUyUnpg!aamqO!{$Bx0oDyCM{~BN^Zo-y_j`1eJf47(n=% zFBH}A7m8`{<9QMMMdDici^VMXi^XjC+lsmHw-xi@Z-?)?fM_Qcf#@Kvhra`kn+l=R z8{xk|tcE`*Zh}83*1_LN+zfvwaVz{KIDWySEwK^)GQ2pI54;ura$MWV2X2PHn|KWV zZsKwHyNf5`?=GH#zlV4l{vP6h0U`+Hj>gZ%Uk}Bs!v};0VUe>_dqB&Tz2$D1X6b9W z#4^sZ$+F#YpXDRV_xJ(HDm|*-rvIqht*O=x*3H%(*6y}`wjs7U+gh8;zQDf5eyja) z`?L0!?EkQzwp$(D9DN;?jxQYFIev8X`G44Z6Zj~r>u>x%vph4IEMz7-1dT#-c)&=^C&ATTfqDkhUBxG$)69YyW9w(eWCRjXF5)!IsnZEb6-C|bK&w`#4} zivRET+-GKV_gOM#W!#Z<%$&nZ58@6Ml@FaPZ@Iw#x7;#}D_y zz|6d*DHnd53(MwWSjmM|_0{Ys#5kggj#C$IJf)*G z+P$uD4pWtC;j!a>4}ftU20^r9Nx=%*oBoXGB}pk5%}J@%V96JhEO_ zgen5D&yuMmXrgUvBd4cqGjk%pdOW>t-HJu+Yujw7GupDQV{Loq+%sF-q~VD7f(&ZE z_sZD8iO9?>Barw@H(DT(+vGO#t-ZH4iyg0~x2#{kroFX=ZeTad!qeKI#>t@JDd(<<7RG@tfT=zWtW$%{p{w66H>^1coDy>Iti3VMp{<%ZOFu;Bi+Wh zWId8{nSjpUxaFI~)(c+SDY3Wrah*{W8xbv7@GtZ#2s9jVmu?VYD;Tq4oC+^A?u z>Zo+3k{x>8s(CH#YizCTyoKnir$!^|+RuVpI&0rS+QgH`xsCE+b|Z>HYL9AaB5Qs$ z(u%H_6mQEqMR!cKc%9wkNyNUqSS@T3L#=B?X|~aj<_EmB4o=5VkObo$)^F_6g!^k% zmFit8=`D%grSSEW`#MgaV)v2N$AW#BQf9MB5;tsKZj3th_?C7(OhJ?6h$W5Ov_e`K z5u4YJ=C^EG1E*H&?HCO$#D}$XEZo@I+SazBErrl+EzNa$TQt#dvfCK$UD(;a2Ca(p z;6X=6I&IGY(}K46Gf&JI8~^AxbIf>f)n~Iyn%h^XMR1KXnpQTgJH2HMz@yvFICNus zV%9$=8byg~SGn;Sul2|0W+pD*=*C$6Par~x2QOG|1iS~I+SYnneEahg2giGxJ|7}j zzdz}KiKjcjo5JpJ&vwE+GBQ$*XN$e23wp#q$sQR>%zt;hF*tE^ zyW8+4?mZJ_24-*UjOeC_?|iYefGT>;buDY~-N$&#FSitCrSdTaCQgcBE=e?WvwBw| zJu3dd_dXBBhu=J=IDYh>8_dM%=b(QK)gMnh3ZGS!&qsE`siK&YRC5OsiF?n*nBzt( zCN`W0&+^${noRUu>NX0qRkLHzOuS`f!KjhSIg^IjqqRDurL&F0wmP(}6TJZwG%U6# zUiQIf$0Xjr*liSB2S?jLqxyGq?fcO~+SatKV*b9ndfSTr^t1OinD-+btoEd|+a&Sp zEpB5QP z2=y?4DRD*Hna3pFywYtfP5kZ3<;IXa%#P_%I%3MS{0SGQHZ-gTcb~Rd6De{7@*S?zSiq6n1cAMsh(V z-9j=^E$QFMMvJWLn|E-_y4E($pV+Y0Z4@MOZ*&_I6W>8N*w~N=Uga_J%TopJ=Jk5@27l7Ut&y2~QRK9?b*i~l7HM&7 zU2eg(FXrZXqiwK7V*A#GMr9sH&E$kdZjfGkS4mNP^@7g>@ys{pl*W(#XK_Jd@wc&H zOI(g{aN?%xmt&#x(PLvm@f$lo3%D0-To<4H-p56rrESqjykc=tUVMD@q@upPBav~R z+bB!nzH!HLqj(Th<7Y}ckI@YfAG>aRL7m;H_UMBeAJttEeUflu=7VmdF42Qw}iFg#8gGX<6cd(l+hc zSM7mSq`BIni3c!V6?p}lSn^$rZ{wU4G|QecQe&{KlNRDj4g(@41&w~hZ5)<(=~1_l znYiZ#w~>)}3mAXG1I(d7T=p!r2t#;VJEk?X z+bmF)_@XLGRN|KJyNx{e+-Nj0`zZ{s@e4QOCc&d0C|kG5B@9nwb!Kyyw`qZ6^`+{VbIwh!8s*7I*_ z;XA+}X`6LlBuN84d&_d8P>fZS_%loviI<&Nggx3{kG*sfuB8KUQ26d ze0$l@g2YGHj4`qjtA64(#w2=Pb{iu+)I4!Dk`;&xD-a4;+4H~5*xmJsR^wvL$j;B4-lPxAwF=by2b=eaW+1S|^IWH20 zG(FZO9(WB3x#ynQo;c`tZlg4@Ny0^UF2~?l_ItQgmY&}2E7-BOj~-$rhh;rG?{CoT zlw0& z!qtOL#V*M@JX5j;-{Xtok>^uzD`Y#M6&gNj5gv+bi{El;uq3gr)MMl%K0UqK80N(d zpap9aJO6_2I#gw^!MlK0;h%`8JW52i2)rV3#i!`VST5d@U1p)C;LfimA4+sog(xdRErAtUK)S1Ggx@MQ%t$AbV5i3 zVmq+;)VEgUcAd*nRJ!mzxmr|b;^vnY8UywKGo#_ZleD25V8ZbUEr^u@=fZ zI5GPlTq8&Ct}uq>g9~@2vLaFN(o8BZZd~|TUKn@Jwm=D;wMnUik^=fEmdL5_7-8e6 z`244g;>2xeh!KfrV$1Lyqd^P7-2%a#5W7OD#jT>=8Yq#@nGGXsf+DRRWW!%5|u?O^~M*f(_n-3(r}tcSQBpsJw|3`1R~49+@{Wmj~(*Gki?FB z`pVyr%f>auxm&Z1-09`G#g|6ouNjF6jaeB92r(f z6J0a_A1sYQeW6jD!v;H(%48jOVodw@9jkAGt4k+taT#U3lkx zKYag{CBKQ6KU!C4l^aH=_gPb-H#|Ngw8CEyn(GSrLrvatmr+`btUMzRFX1slr|PWS zP!pjw8d?NG3~Id>d4cP_!dDPFim?|G^OUz-g?cXquJ?K))R=+zCRa|d_ZAbWJB%E& z+yd==Iqq`h!q4vkc?&s1Eljpa5+Q^j?mhGFCm!`mr6@3xb=yDCeaN4CqXvHlXQ7H!HA0z2{L+(Dn9uf$i-r@Oe^tx{%stgf@gW zmGndsDTT`DFcsc<{Acw&ohSM#K0Xe z{COw{YOZs-Ctzhr%0^I2n(*&0b!JU4eE7W^$sP|FSE7*=oZax+U#X(=F$xa8` z{V++W3GGKKZ<0276_5T0HwAlN#ecUM+=R12!ke<7ytvios!&rv0C>sfsx11S&KTv) z80C^?9j4NZ_0Ifyw(sV)9KS@cH=BQhROCUaz=Iz6Wc#3Un)N)kJ=`$ZE(DJV!6QhA zdLOd_QhM(dbXj7al<*k|pO^4buR`^*wPSCd$dWd))&ByI20^g*$5~>!B#KV-W65|~ zN_tt++aC!+lymr{O(CWlGg@V*FC{>0&$ak;1%WVF)=F1H0)o3leRLNl~Yg3CoG_*+^k<3#` z-LA&%1UXhtX$E>vP-X>mjywapqMdI!$yY#KWtvD^8l(kqauf^)#Hg$_*j%Djk{B9o z9%{owS%VqcIzmdH-f6f(GdNChl(Jq8ZW_cPAf-fTLs6~^!^T=;7<>jHM*6uJj)oah zOsS%>eSX7!LM1_K1Ob#GR8$M2)RkhBvr?QU z(5tk}9Ayt+n@d6`4$ZOKU~`Gx20FnSm!#TYb4jrGMs$*)dAuV-H`?Z*;0|p_vJXwN z5A|DO7FaCJKNS4QHo7s(9zi*Zw{uoH&%higMr8D^;nIB;39yBwH&XRf(+t!Up&6M0 z3`{g7=AT>o6n%5D=$i-W0boMXxsw^USNXEo6PK6T4!F5O6bfywKvx=(Bu|^JB6MPC zW3uiQ$+}D8UG)FW6=?-3g1vVp%ek`{HxXdk&=#`$3%d(@D{9z#DP?YBA|-$w;K4r7 zBk*U;EizN}UV++b*j3N2JD>BvjOwA@&3bT`vDi+_K+iNrP%%9Mf~m1Q38a{U=~0_` zn23gQ2ARK?E$7!dfJ$VAj3DMUsf@k! z1m$J}lvqKQvi>Is4SH@e5nN8Szk%x8gDS!6xDMzuHnGH4lR9olQg1FvrG`RB>6a`3 zYu(`TR8|GbT@19Py%%`feZA&TSlNZ|97FmotP2?Jx}C!M@06=!@vp_V>mSSj}*8oTm@B`He{Wah|`f2kcgE1X# zk|@+5k%jd;Gtt}Gct=X(>4p7~bc@3rUcm0`QwG{#^Ay&Wv2I@%h6p@Ol?@44hS-VWF<+~hIlTTO;KWIvRhqxaYyuGKds$M%nc z{Iw;`>ZGW?w+X2u3^ngSB_%drhU3J>4&Jy$MJ8ZRZBxD2n`+MA;N zr8(=ruiIio_Beb740pp)_K0@jj^i$jwL_xA$_7QQa^W zW;_7Cer(oQRHM~UC+(-W6kFO(=84)?{~L*R?fY#{Nqo9V|s5p=cJN91+V*T z@;5&`zAEF^*JJlQ_411wCY)?N_s2``Z9VnV&{b!~*Ua`F-!S{vw_m({ zZ{2w4zh0bn%taZ8U;c-KKRqpR1mkM>9Bv!F&eCGFZT1A%jH>7Be`G!SM{1FgSt1QsW2Z zH!U-Yr!QVsf-H{zL9~)Fv3a+$0erzZkbUT zU`d1VTVljtd@5Atw*^P9+U*)%eiik>-(mRiVV^s1!~OR^=eq;&f^2k63T}w6|LGSY zBbvzj{W4>AJb$HY7#^TiwIS7gW#TO0hPGlz(jTw628rF~IR-wdh1aqLs(P8j55)$0 z;(ck(B@Ld(01b2aQi?#&b$w~hBMshj0GjI(U!bHX7HPYoS%&(INYUDeYlTj%cI0%9wAY*q3k1O`Ac+0R)3UaZ?Clj&46n~{TG=1wK zMy)kCib-{S&2CqC5Nwj;=@|ode$pdQmo49(2!!$43bWSl%JE1F*8w<)!@dK*)N8uD z{G69rQ|)rc@D>J-y9P(*`0gh4@jCRm%hu;^i3?(PO5A-Hre@SR4ArS0sT`H6g%DE< z!E!7RyI+W1u?G^be7ejiXhs3G>FWC&#XW3Oen;Yh*h3O`YjhYgSsI~KXEXdb2t@JF#KMGQ8~p4av`hd$Z>=hgLdg1C`R4gR#LIG`mjDsj#S(_>r-T6ufaSEj z69fFjf@$(&q9#8=F^X{>z5{^-J5sQmU8(~u9tea-A~Vxx3Mw21P&n3SO7&~M;{UW3=+fV!ujjG{dFhA=<6A>U8(A&rqK0B0PU zxZ>?)MxOOPEbsKixBh2+vA-)?X5@go{(sls`#K$atQ*h0VgkuZ9Q6+T3vZca*VUF= zlXwe0S7Omn?6vSB zSxb?Rp*~m`z%)@X1&frB;R|CHtBrk^)0I&e`yOW~ER686XMquAwrBodqj7GVKTxBMNH!X68J-H0pYAYd-&X85 zm;FM_I-=k-cY6Hg=aRmH$U%vccb6G64mk&Tkwp+)Rqv_Jul0s!A$`XMSO9b^Mk+Jt ziOfJ8eP|zaiLDSd#5xXibxZNBDoGp*2RR;?@Dc?0>XQC?tcJ|86&)u49W?P>Ja}Ee zhQnBK1j5V7fDgz-@5i(iK8&an5!6I~108DQOI3V^y?qPkdfmS{FI&#R@H1rmPp^ae z&CAw-u7h5qDR-eE&Hs2}9%x1>Pc4ZC>|-CgWi~EOjf`8ltOV=X&i2?H;8hF}D}8`nBm zM+bXOhSj1cvYZyA0%qhCM45$Ijd*jF^7*%BXGB9@cyBAvQ@#n?nHfTv=dsYENSx;_ z%rk2@1ie9XYo0IY3HmgFAKwRFf&6F<`7yQC)-?wG0!8q`+`vXGqm6n`!Rp$e6MYBK zc^Scs!qpA_qP)Nx22|aV74+BP?v%(OV0;}P5M7dITI_U}wU4`C$2xpP83pUiq<;9Y z`<}&T4qUtgt&7hJW+jWqRVjYScctZ&Mi z{06u-QBGmrpvE#t3g!d{ZOzLK<~po;GpriS4(4jJ1%pA&6DrKhgIPntysdfpz~<}x zf?$EJm*uo;!N3)BpmoIxgN4b8-HT#Tu>w@Az_x21?3x$M3x>q3YlA`L1?{|)f%9 zKN*GrQ_h2cN&jU(`fmWH{1Sdg-6;sY3NHpx>a2eFP#D8|ZQmIH)^jN=O8B|wV8=C>bpmGiNHD}6!#dE! zqmtMId7R1J=C#P}xS|nZA?Iwf+LVv8)l9|b=jH$&5?KRkw8((7(~3mPU;hu@+US7? z?sdjN<IA2 z7K^jRI@ZGOnZC$6L}v6GoK+%7_B@4llW$-@iNtR62DYEI9ywLL%nGAd*M>8>_e z9K98s!#X-ZAYbqEMSlha9#2w%j*SSyQy8FU*TNaDqp&lG$OfY4>ApqX$Xs*zb!N7n|?$}(L0PC?@450)AE)kI@^VKEr0^^m#e722Qr z+qU285exVKTUL(-z9YWZHuzt-dMsi&EpY1pw|e|vuzE~c^Z%_Lor}u<+g6X0Q>#I} z+&s|LW8&(MmKnIEHt{IpQF4NUH6peZOniVF8xCei3_US66w{H*)6v89Fr>LJW~%ow zc4BdqI%IhZ@PD2f7GtEyH8+ehNQiX{}KVD|U zjNc^2|9zQps4GwuAAMMUJ5L_|@Vm}flSL_9e3u3s|fzWP^=2@BJ><&^=N0%?zd_S@IeysU4I-HB;84D*U zg~x~b@uH2~RiVMw*5tPIN3amKq_GrZ{joAKUD4gZh0&s%bEVSMcd$d>ZFadov&(&1 zm#fiXtnfr%ugb-GZwUB0cwWO}KkPclv7g1$JxnqE&;3S#&WxIVwcZt8P1@fvpf^Oh z6b)mR3quXMy8TlzkQmW&c~TNvY_vNvXpr)mfRpp=8tI>EM}2 z)r@n6&te^W=^U5goDUyhUXSH3PE{8n$JmHG zt}ddYe@s$@&p}@O;62di0v$Pze44?`utoM^u%c;ve~w85azxYUG(*SvC@755OjifC zj00f=dIjlH<59Izhcmw-&g+W(g0ZFCv0n0LEkXLg~G~wFSH; zu{#EzMei+${YLZa>~LX}>_eLm^Ag7|jpiwSZOuwo7|mn4BbPy2cVsx5CVUNB1vzLfbI z*0s!%!H4DsdCJ_M+J#{!9fi1K|F8@FL>H>FdB=sLxhfs}|FZeNwE6#S^MAqEQr$YA zcdI~aH#Q<}hAJK3fO3&55ZGEnDNYAeZiGX)fp-maI>42#D2M%j#04>&`y=kw+1v@T zm7_0IY5prAJZ9k-R|Md7n8JvAY{;n5ys?1oNGNbYJf!%*gFu2e#Cx+%l829ItYYe=|D6PQ0v**tv+a>vd4f(99eaF#d<&( z26|!7tj!gwXm1K*MxR957r71$X5@N=HCm?+fF4k%EWfZsw&G5{fM2sn&B{?9Xd2w3 z61oi8ch2AKu9@WYuEenz$qpL^(|T%#W0aBv#PRLJ_WoSgq(tjy%Zw2VCy{8FtE(|d zEQ#Y>T@!$)^Xb?=;Gry{YmhzB&Svb$CK!J+FuO95{W+E+i3<=OV$CBFxh1jG)pZaM z^{&Dior>H*6G1h$B}N;(ae$Y@=wtzV^m>C`!X29hHcZmLC*+OICe+0+f*Ib7+z5IM zu7cieqW_y6HvtuS9&KuNd=tq`moJ<^9Ao)r9mZ%$L~aJI+7-oHaMy=l1#xYrE836* zG!eQ11_QI>7LbN-6?$O?9;1WVaU1bv@XqQKJq8i8;|}1h@VCgIYv@uallQ}<7BShj z$75QDr@Lc=Brb?$N!+co!{yrZ2{{&0$3Pb3rext8hthlUBzDIN7+cB{%NK+j+lNEMRogKzdRa;Mz~70eP@iL@TwrlF8JM~`W+d@W3?2gq)ToA)@4l=uSb{OLql;9~8 zh9tb$n9ln;Yx!+7d!Tj$ZpgS3DeUw`h(-Hiu)hl!IfSZP5WX8}ywg3u)^vyOK{|3T zg6Proz*eN{{JuyhIBUaup_KKiP@2BTMo^lO`@mO!fj-MQP9Heb;KS%R3CL2hi}b<3 zI9GI0(#tV|xFh$2Df}n!>!ulk+BC2>?#Khkk!{TraF`|An&DRyjlpq7I6l9rq&%Me zxo<>H*HP$J($ASltjJw%+~^H|2ziMwk)E5l?qQEHJmD@HX9VMu&Tg2PsD8T87!+ST zckousdk>-vE(;%GEarR|3XFvU?l4k;vW)S*qAgpYK#h$EjQ15f5yQq0b>ndRJ0Py} z`L|maU{01C4Ts?Wk$tu zfr?Kdl^t@2pGKVLaUt~sq{7o!jMv1Oqc`#l5TJY(QT?_ZIlMn`Wn${Tml@Robj)Br z1wWTq4a69W>IG_#z?Iu{NzF#y55X9yom{xZLIpt#S% z`GH!q<42%63ogKmOgCQjjyL+VGA~dbY*c!UfI9C_J$UAgJ07OPWkF}CJ zx-!)*%;~BCzWZ)R^G*tbQh) z!15d>-HSy@*26$sRKW503B+Epe?|Z)1(ste=Unzdw&!jllJP?zTtcQU%seqHodf-lK1$xQR!$4br zDW^%N*a8pONy*T|K+9vwmiK3|=&!S3QH%v*QR~0!_kW>DDN6)){goyqxINI%qL@Mk zw5Y`)$Isbpv#hxkx5;lp4pVO|IvhGLaW~Hm>yx2} zftJUVE$;(qr=4)ioG6W z<&mz3fi|gthmiN{n3N1X473H9a$0nrEiYwJOXmE2%%SAyVW0&vWefaROnOBIOnL;x zCQbUa77>Cv{p12!oc zdKl;?V#=2HPqFC7CM>#;Qu|xf`r1p~&uLQ15`kU2SOJ3DvG(iZq{p(n{aF$OD=B&K90O!r_IUG!$7OSl%vffUrIau z+l_WwPSO2cUp(LXI#+qS**cUZ0=vFq>k!}kum2|~$+V#mHY+4{eTc9#{m3OZTCOw&A2Q=x|v8Z7|VlQQh zz%Ca+No~*RXVQ~c-u_KWvK|K7q5_^s*1cHN8nE+|qlbaE08>trHroORHt7HsB|{Gb zEsrT%p5+#k!i!YT3X1)&P3oaVDN5vZd1+CC+w=Na^b{6n?cb!N>tUcxDqstF_hQlk zElP$S2HFBli3M;AsO&|w+5!*Qq-5w}pan8zo7AL5YX|AmAza$7=Yziie_fW|qw+_v z*=Fw(Wh?7Cj1QCcxlx2|rOf;+_goJ)?IywXG4QJ{wAV9;8)tHOSxMy&a$Nb89Ke;& ztuo?UVL#i85=2Z_2HT6^_R@as)y7g_^8+>!8G0CK6ES6*C_oc6UWv+BJ*QIaf2Mpm zle$xYNa@O=?gY0F>8JZD7BZ0Td!2vD(ZfJ1&y=lvwkZD__L$Wa`yc9_L)}+fEQVsb z22pvYwh!*7d^<}SNcp|Zk7Vd!pmk@;);(8rFQx8lDYeORc+Ea9!;+&)dhwuF3_(_d zvP584h_xWNy`*0)PGfnf#bU>FFQB`|2hAINQ9Q#_6^t+W>lfqW7rit3koZq)KM7*v0VkaNq^nYs6BWN`z@x(X zkZ87)Uu7s`X~0*sB-7`L6aY8w9kXUgLyo!u=5IuocXeHXm4CpT@+g>{H>E_)ESwS* zf+f=zE<%L&Y=(;wS9g>k3=c*S8NvW987PeAf;>Mzb6dZ* zXl#JbNtumzLlB-wJ>GGz{03LoRanw__=W{D}tl{S0W7IMjTMq?ufa%h{ZulH{;y}*mc3XXl*8lsfWDU%;>jKvyN(r zJZnd8o*6WwbKYlNM*_1$;jFB1j5izx@cNFDJfEvS9KgtDBLdVaWwKY*?xUM~dJa!JN|l)mLBHN^I(*giEU{r#^hlx;AzbOSG{+0x$2* zuZ?{ZSY1hZ+eu;M56E(LkvP(bDrDE@;qrP%Gtyn@OUT^f>MJUkN& zTb@Gt*6=|{LS4*Fo(N8M%Xg>UncqTj>nD86~b-_I==BQchW(ZMc(dfd) zZ-dk2>Lx;}8oR~LI>^<0as&`O%uVHmjfQDngHw<_z{}Pru!sufvmcd*=BE zZcx88=#Hwq480`s=HNz1T_UP(O2-IhL?)x5b|_cAs3mGz9v;yKrZ%DZcND^kL9KnC zhLHN~E@0ER9IX<&RVr7Ut~U|VO0nDQEYzFH2zsww??5P^y?C~(xGG@T^$s}w7`IA^ zAO8`($gX!_;Ccs=_0H7wu9A97iLI%6XQu1T99OrfN#~i`WI5_hw9|t$;qC(Zly-o~ zuPL;jr_6ME%9#$o$jgG)W@(q_1E9mf47iWSTUmW9?Qr=VFz0BO$Fq>y<#TM8x4TP@ zQ`_=CyJ@W(QHk&&sGIh(+)!?EE+|PkS#H|cxWyw^TYE>3ZR*^CO`R*Ic6Cbub5X#Q zTmB878JQR4$S&TSuZMh9GUHiFF}lfp0{i9VPWM%@Eqco5Mwtm^;Zm2k$$rq{ol#(rOogI z5F{CZQbib1sn7((PK6fQ`1KAvOTm?`dJni=_>DxG3Qf`$u_rtD6mAl@7v=LoRjgBP zN5f$v`4*x~v+fATh*Km(sqKO9COcAUHkdB60ogGdU;u)H-+?fM*#K*e+8xKZx`@S8 zz{oKbkj1j+f*nQKY$1^%>=}+}JBARcZ+r@VmoHL|+}J%3 ziA5Wdt}dqaO+Vf@wu7dl3G}{588Rat%=O{J0c*0z5lBXkL{Jp5j$#^{sevq?yfw;? z4YTA>#hX(c3n^B_74*jLWi0Q}3VB_8NU(NCx2ucTJg=*pvBSt@f*6@^Z7oYsfKNt| zj$@>LSaq2@%JWRNfE1E1RnuhzP2CcM2h7Df>ar4iA=J7HUwI^_~b=cg^``fI`{J`vcjt#WYm2>LV6VzKH^ox!mAkVPRy#s7yB&Rjf73; zGs4*GwO4;>Y#3Xu0lBS;ZWM{7+=xZE!`N!(XutkY%^caogc9 zdLJ>2{n+h}TD7{ZoBPhfBUUAOHN85w$$TCpiMm9bx9jKY-j;`t>iu4%IEX8hrka*n>AO`LA zETUAmUkOE}+d~+8eG*Rh`ZiGPz1OctZVUrDdi|+Ly1JNl^m;4V?IXzL)m5_Flg`=g zoxOfFX!p_USr7L5A2RNK1|fSrhBoQ-#In~j-d)h1x_%;8y4#DIm~c|v9`z5e0-Wsi zQb@j3O_$N9*YA;=>h)A-k6u4Z?EgHnVE-2o>Hflc>N_d-*XzlO?(!ld{VWl>3woh+ z7h=&}811&w7mVcT+h0VAusa8VGgqmk3m3J>c_}JrGA2lm9l){{BriqM z7d{=d`dYXJSf4y6(QUld*T&nQ$EWK{NM)+F67rg^Xd0Z+ZauAH;i#|#O zHQCWDYs~ZoX&zROeYP4{5pFg7oN@OygxqRC)79=+?dl?yTMdjIMkbTJ)u2_4U>7q` zceOA5I2pDTyqx|-zR1Of2PPKFHh&tgooe<3R1JTp;TOcO8^6)`aj}9(mS@;4QrI(5 zn2nRmGb-$GJg*vNDm6!%XgjjdM87};$D3;wO}i3&iRGos4ZoGTLg(1#xI!nBDb)XN)QOPSaK zz*fEJb{^|lDD~S>j0?~_jjzkJ^AAD(>$qeku|Kko-2TRCCh2f1t7Vq_7)^y~|~Z zh*whRvx&Y+6aOQH#R5S!#x%AlH(A_0#IDlVi7D)p#2%}$%Tm~F#7@)Li&EI%V<=UP zRT}*~pCXld{Ds7WfOU0Y}aYvPX6T}@eXhwK^6w$*Aho#1}WU@3_>!@AirnSjllvFgDZ^Yu6^Tl=@rbt48q7UgODpV zgIorC$qaHi5*_I6=@}&T0Bmvw!9eAlK|XHze$>1WV6H3k?x6rjPgG8qU?GdQH4$uiHXd0k1QqbXmu1Y~C z)ONYLeupC9ws$}fqT6Wkb0{=WyLP}#bRK3}^9Rh`taHbwGQSN(Kk?m~CfOaJj-xxA zPx^p7AB(!4fx1o&aKkgz9gf%CVS+xo$>JJIT1R{>nC0jWX|&xP?Ec{W5{BH8__$~} zPUU#od^3KIK0v2+^Z~De#T8lveP9Q&&>k zu$_$Mfo3i_4yD6z0(W&WBhPEOx|!Hra6-~!$OutglnIZ?&Y1EesGAYF8zoJ_m9gsR zMwW&%`1F`5=X2p0upL-O1gbLlaF-e3O1r8k(u*jv89@f0y22w(4>Pk04i>>oUztDUI@I)Se_o|g}`BKux1Ez zbuok20*oCa7x_}x0vE%!_19wUdkGTx*~xWp>V*L%mR|S%5loJCuQ$X|i^x6Jy@E`S zS_Jb$K6~Bk<337l9?xYiL*4VtkQu%l3Hy9TSILb12~2jCEIf&RIO~MPIqJk5Y~pn@ z-d(UP>4Q=yGyDz8^aj1zwr=OaX_CVg72$9t`Xz@e0$3Qc@)>O947R3dAqEX*gp00# zOx?<9ygz(p;<2jb#*aDK$^p@z2OYJN|V)(+|lo{k+Gh`!5JN z{T#s>e;cA)UChAr!^qKy3`J4s$B3Lpc%kf1V<*@uJye+kV zLB7Zway*kPsJ1C7*y|MRbqe-61&ds7Ke?haPGIkY15SOFuh&e3!yLV7S$}>g!|o3m z-0Q1#9#*FMg7^i_Djkl2vr2IcxV7yVJgXeYGxS-dt4kWv(F=|g47-8kB)b8D`m zUVxoIiWh$j1{_mV8XaDcFh?yn7FW_|9kY)|jfdZ2-oWhhKC;jSKHN_iAQ`&AM~w7) zDbNLuVi$N_yp$Q}0*oA8fLy6A@O4&TAA^xy;9p`!LVdcx<0B_3f$T1b4m4YVS*BHyy1v|rw8V@^j*ac1NOc)RU6^*8Ov z#nn3Arj0kV+Hc%-bx||8kl%J8fB5K>3voX|_D1w^x7ao4OBxnkz!UP>meoE)lj3fY z0Zr@EhmlgAyc;Gtl2QS>keDdxLImJKvOu)QQ7K;96XPf@jAz?BNol;j%$bc&0H0Ct zWVH%EoLumI$?`}1J@}0WZby8>XIXjS&yh5NcTA@rpmf^@4|hwyb#?tcu^#@JZyhGC z_z5WBik~6ELa4LjA#7k|`CVQA03!Bx1bF?zxsdDMZ9a^wjvLVod}V!Y?4Qi+Vpw;U zjw4ut=B-lj4z4cdz>^s{Jeh1MPo@%fG2es^)joL< zOKq7RpI?D<`n#y_mO5;-g%co&+>8Lb+#dE@Q6XO|Eh-!x^yvO8hg*AOCs&%u^Tt=- zQRTz*Nh&LlHY(lO)wRnuYLgiC3sAtQSe|O5K585F-$2B6A%IcYXJFLt(x|xdz+gh7 z?q+5eLmHKFq+>5eWg#%?SB&)gUue_?X`?a+MrGtMD%ny-r4n{Aw`!wa3ry0enRzrS z_1%k6MTLB=w5V`mAEWM(y$_>e&`BCqFBtBDCu4zw(GvTnw5H2Qyjio{7@EFdO`Wvq zo03R}O?D3>{n8q2vM;1Pj)W{%7c;QW&d6a8a@qUrSh}M2a>05D4P$S1rWbv(=Cfj6 zuyCM+BS0*nJ_F^UFq=mA8z?&-fmFO-!wrte5;S}SJvfC}O2k7B#Bw0yomzZTf8;yK z950wpG7?|m(6iLKFNp>6WD0ly2rTocREG1acoFQN=hM{5vK|b@YPh~}m<`uAVm22B z6m2$M5D#QGydb(BW4&El$Al^ha4@7I_B~bkVmNzQi5_qvRE?R)_l2)QGIAR{P?o^A zBY_(Taf^<;g2;v0-Ul+fQ8C*uMrC%K>gw{H0yO7(X74UIIl1hWHuZ<^pg_D1hh<=i z^DThb%q5gu(n{sUSM*S9kHl#-X7jH4<;HZ&0GDGncdHPLbASwadgoa#Fv;sTQhcCO8T)y+2>la0~I%`GUW9m8GONr$+Ofn=0Rd`Y?{VA zObpI&h{@u9yBEd^;;lIu;d_y#*O<6I5{|-JGb4c@-3fE* z3xG7*AHFNGWAt*PL|zHy4&MzLxd71b2*P}Z{+xx%!CpCtV6UTm@=hLk-Avs|4Y+u> zv?qKIxFh!>U`M|XalJlGqX2aDTt@m;JLu@g(?E@HD>RyX6_1*arkf;^CNKcrOG zmixM9VZ4c6Dm_)o;)IdD`_aCaKnju)oX75ItUho<%Oz)t>%L{*PJrzIY^B3vY9UuF z;8m;PF-M67g2;je@(|(B4YM9@)I10Zi4mq0flj|yqN5S!k30Yoxc+}oN0^`kS#n{& z$Ct&raA&edzZ~0=PhI)=Jd4B_6s5y-P|17>}BNsgMK#n5x)Y;Fl# z>_k@=vAiB<>=>BIl)4_D1!24)-Gnd7ah!-0Q8W?LeeSp8^gIt&)sLVy+zZ=Xcq05;_L=zPt*O^rP5Em5UWmd} z&BBNr*in~f`f$Zt1x$ZlGlE5teK07r3N0&xj8s9)ghA$5ijn)b(`dbl;NqBnn5pq0 zRi&^Hl`kLQ`WQyF(iyV>!YkEDlA#Y^F|4Twehxn6QAOv3Tw)^})ZcaxgmHS>LZ$Vq)*x|0+OU?~9%X6Qj5F-I&|!m`EMr zW5XHYMO&ON;ABhfL6K;97$e7+NS@@FsBa1jzlIjBEwH`(Drk`Qa(hgag5*_R&RZ+e zSlv2!?pLlw=~4WzMs z@4L9Du%Rps3U z&inuS4Kq?mhO-QeGExR69G1cH2gA%jg(Pn;U0PmXGPt6h3`S1$;qWK1QF>S1@6 zMek_Ub>mc0i^cRFwbPH3_~bQjwmC1y$dsH>M6wu6-{4`7J886i^%8%5+=OClm~LR& z*B&)Scl-pib#EOon05GCL^de@Iy$+oa_gs^RIU*R7NQkauMzB}R zbUxD?bh?abthUU^#14ctPj|$02DecnXX$iW@|haZ!pzf2A8+`Pd&JBo(5tcsAE!b5 z%rvAIc1GLRt?Hnv=U$DbN6S|(UZ`%zjtx6;<)Mq4u$`eE0eoRqV(X;kMz!@5Ah2*% zsE&FWze)I&0)|`C!4(!QvUkBWsv!FpFCw0RAC{g93p168AIO9cbA&=G;_nlTQv5U3 zr7tFhH@R+(xF zL=00q!sX>Ts-a*``Eb?lZY`@;54gR7Z>w3jrov}bODL^1yScJPJz4nPBvVz25K+iqE^SJ$ZK>N>p2@t{JIK2-f@hzmijIcnw9kE`dY!DvxXx*w{VqrM#ZarGSaqeg}k z5yp*DSZdT}h>r+XCrVB1u>;m5@c*Nted#MdIrHkv)oz_NVe+_?N0sF&m`> zO*2!?AIB!BLKDnX6OcC5L1l0{^#!rn(kRF;87LX?ljKu7T&zQ3u!3 z$lrv~O!XEtJxQH5a>%HYRAdapIirS*ny03YI&1Vv>H=Vvs-vc{;QL4Z!XHwrt7wm& zs_9iBwE*EM>g=(^+*W?c;8RpZ$&S%0)r#7qCWX|owXapLw$#azy}7oze6`wIu?gWB z4W8nVT082J!KR8qp>^uppfS~PP;{`GG4@S7p_7j=s{Syx9Qc!`HdhW;mE&5=hNB@` z(Sbj~NKm7W4Zk;OlDet9XWS%p-{78cQ`LfEHsZ3vU-)a(ZQ;oH8fBe0Au@iZx-qiz3KXb4pKcn2~~RfO`_c4i)l# zjInM8(jH)P)yT@5@x-Sa<0YYCH8&UB1SnH&R=JkCqsSQ1gx1R;s4lL%azZJfTp@h| zP&qzMIzpiD)LuDZIiMPWeriMY0&TM?#|X4Zpd5S>j0IkALz4x{0kj;YO%upE#?G86 z;GH%!M+Wq~F;`B=Fb3f&iekzoFW-j7+t31Kz#K0QA!R;hN>Z+ryiyx_&4!js1sCUE zSYN8jREtnfwg8@t$7fC#a1@{wcmwfff!b{7Y=P$5&^ZDfT#%j71j=&-D#|C+pl%T; zqlVA~b+oLz;4NYpTS|Z?A6Q2hZRjmST9!{uJohs1N6@<=G8x4Re7nB)BkLnTVAN7Q` z0D`9KN;qkgx&n}!OLzEV3n0sISLCWj)V)bvqc%%k0frT;MO}|ap-6fbz!r78x=msVjtXBQQ;X zt`X=n*rQ23q2g&}EUc8TmrTEi`GLAgpdd(Fa9xoQi1+%ns2{6a1ez|zzpQQ(sK&>< z?dlGJdIkE8`nEt7B6EkjOQ1%P`L?=8pcNw1`m?%E!1tww?_<3~TVSgIn*LoqB+x-( znNQSr1Zt4HUFuPRo|C*U)b|8>Qi@l`;{qKn#ruu#3v`cAW*JWj&Hj7;3GVgYY^tgmAfU2!?QHk(8i|?2jkc zJsvg_6-wt?We{;(1GD>Pum)-TB=!Aas9EkeC0tT60$g=dMQyxtVV7q<@O@Pr;#9?Q=%Q6&_CTuaiP!YY_Mq4JW)%FD3~rQWsJA_>p!9f8 zbtqI;fc5Wj4SOR!!$Eo;(xjwvmpky+Iq=S6ZgJ2g719;cs@PV+{?e#{v)i%*M%r|w z(HO17Hcz_A_D%Uc&)zJ@YFqD&x!X2i(nMput6?sW_W?%@9!Gkh+G{TvhDOXU`k~1A zv4bm}TQ>q7QVlQr1#;gR#?jMm;-vp;8&J@{#{b4vsBi6$YhbPx^qmqdVxYoOqV1lQ zmfV@2v;>{>b-3rnhP4yXMe2QonXX+3|K$o47OF2jOh4=$f^^tq`eKv#k0rg@Hy-I- zKH|Il#2bp~kn0Gfzw2gtftUDSdYK+$wjzC-@O~xXnLg$!|1JyJ8LA7wU@87-H#3$B z+wZ+sBRyFdo{-`Xks=@Q-3$C2KSgiA^EZX+2H`F9JdgAx!uyUCf1>d2G+zh)Na1}; z!d1e%3A`5ca(#;I!=%Pn3EO)jqRq@MDpY?F5sO6MKMQljUj_VTsqsBxt@*-xgLek- zNh>Z!I%&lAoxV310ITk$X{Nf{Ub!Mm~Dd^!M%-1RCdw{GI#Jq0^ zbglY#qWvB}TI@ce~{4=0$*m-Tm+wkk zSsxZr%(CiY?gjGi1@9XuFkdwa<@xHcz(PRX zHgpj-qw>`wHgtjHeXb#tP*rAjxAYyxGe z#S<-Cn>w{fAYEXCT7tc+WPuG#3ZrQrTil>7lssL0gZi<9a)SB;Hdm8sPf(wZA*3lM zs2UNZZPBO}HDLZpk~XR(V+n0mj}AWGXjH%A7Oy(r|0oRHs9qQ7T>tZM(nj@Xod+h#WR^9l_;IGUPG3EY|&Y%Ota$5;)7Gr3q`Tw zLsHOCc*0!lkP@+3%`=vI=c>m9(lwl?KC+8vQyi{7m5m!+-@_GOWma1n2(!3VMi@fuLxwF>*uhuO#LpIiD75C zdc%e|&@5N)3UscY1I=>vft|;J=0x?GoyURZMD>-O$ARV~<(os*&h>MkIZ5RTq{o?N zRV2{)7V30&akE;iNionoT6_w*@W+AX>Ec!m*aJKRt?G3f;y{z; zyBzzfY3OA^{zm4 z%ez6EF_#9=&{|dRfYz&H1^Q#g6BFJj?ocNPwAsIX!k+-0V&^?n|M%j~|F5<$fsdlf z)<3tZx1_UlcM_5gSvrsa0Rjn0AYn6M69$mg0mc9cNq`JXfFuZt)7=RwC@LsUK+#G> z98pkFTu_nZi3>BLqN1Ycz~DM=fEz04|GTGdHo*D6_xrtv)>r2{=iL3)ty{NlSLn~m z_HxEquqtIs>*=?9Yv^i4hxPP;tyZp%uxVmBty3&5?8ETobh~21V7rp;Qmh!ZE9pMP zUU5znE9fD`{_XrQd<8wlOco-^yOK7Jl12JNJl{9eA9oeKrRe6qp>bDJ^rfb;n={S3 zil#HWj$F=6ur12=BU*bEy`@+aGv{bC+=*TT;hCn`*{A~VHB_M3kG(#N{R;&Yb4Py` z>-W<>ML)?Ih`WS703 zb}A;j?Dg$tG&Wj8Pbga;{~*|NimlCefxWEQ)cjY(TJoP(bY{N5JXr38lY`Jv$24&R zITZWU@nQH4qTWF9&?|DW%>Gbf;n~ zQWk*SJC^T%<~{CK+M$f{9(QYpd}CiD|9df9UTSSDt*71F#^m+W#^i;!u_c^UcEmO& zJL&DxCewe>D!blaTU}+(uWx0zNaEUNwlUdB?`ZXu*MZ59 z{)<+5A>7$&l$X<%RwggXE%Z3oOwjR3r-O7C?N#htCl}a@s@C?zRD18HSC#Gcn5)3v zQMONEGw7enX6bYl*k_XY(b*2C1icM(QW?KUNdo&x1x(C29fwu@aWX$aM@G(Buux{# zId-8;_fV?IFtl9ny@xF0rRR0@vTw6@8%a3Xm>z)fhQx$zb{ypy# z)LXGHHTpoY@i{Iq|0jw* z-18t_B7Ln`Q%@JzkBU8zau9zS^*6{>L;o77V=5pxi49sBteb;Y-&Pnkf&^=Sl`yWSoO#0#9i&l9f zImWVN>B(nA8CDXgUvsaV_>Wp$ zSHk#7EBj~0;P_8l*{P^Y!5-jJ$m!&S_|K_{*(X9~<_kKgm@LE>^qyj}5MR)DipfHJ zNg7_WA^lH;%=cI10+meW`)f*6Oy>J*nxdG@%-6J5F`3b?sa`Qzrf=we#bl9A(wFnh zIAyj^)A|LHUFVR~vhQeH0oYrL$?4n~I;xnQ&Ye+x%`Yp_hBvk!E2F%r{zP9X){L3`PxOOg z*Wm8|GySUATHO7A?$Bj_A^SqJgmMD+3q>j>Cvd+|oMLk3cb0r6^E>3s?<}P&qr9BX zQI=xzaymx?6-!JyNWaoB#kwcCz{a+O!(;1jG(|DFTJ{?iDK-$)GH>lt&0Z5K#R_xTViDQdpl^z#sz1_jSX0{=2QpRzoy)7EVVi!NN ztqym|S@Cw^sFdOA=vi%ke2BPKu@cL&c&FINOs0VK&oI$c)0RY-cwI4>e7M-Oyv-Ia z?pI9OB1F!LHd}-kp_sHq3dhPeTcn6nOxj%HXq(Ls`fsLYncPAK)A@OK0kyCfMX%VE z@%Whq+g=piV*T-WNuXFl?2Yl>4t0Uo_g6`49ep8I#>aQCC5Y+D_OW(rygxx)%hXIh zv4d-(*r;4Tq|Nb(;$g*BTN>h%#C~RGGbM|Ot7L*^GbM{+#bkMXBK4X!n@{8@CT%Hx zai*OyML4jZQ${0=UBo6Hp3O+Ri2D_jwywf=U0bAGMW$lXmMW&>Nvmz)3w5!s-!o?3kX28C}r?n|TFZM4yi}>2hPx;uze2bUFzl@Y=ZzmnKR1KjUv4MS|Dm(&@$& zm&=0JlQLA7WQo6}yIdOUb&@_U*0-W$!r$b}OWX&<`~Tl_{om5Zr~Ic3`TwWMn6+Y- z{>?a9db5184y>vUe4(fI+v>ygHw$L=l8b8a`x4ay+B;pCz=ayE zi&^?M{H(W>tD_~FiJ6#^D>WzjO1w2zqUkB)#Qv8HqyFF0m{~CsGczIUsY6!$9dc@# z|8w%@wJS@n(+pg}04_Qy6aNX(HYk=`zP+{KrnAS@=$-vS{T9;->Y~P8@ z&b2IFdiLQ<(bN>Q)0o$V*-RIWLH7R(BWfST|4FrT+sl|+`~Q&svV5Dln|y}K(a4XA z!llCU9et#1<=$)h{2o4ucr@C?7oj=!wI2titkVz-$rh5H82{x*sLkQ9WypM%EAwMU zQ~tfg{yX~i1#2&xVg3J|C`=zS@R0tASi|p$eX{+i9Gi^G@#o{q@t48MX#kEq97Azj zf};ROA&y}$7CE+aD>p<41sUZ z%10G1FqG1PF3MueXDnnK!#Ig?24e|h1uzDCMPv+Xft|4zdTd4tmTmlUCUSt}!-Wvi z90a=X)0nXt8H_es$-#c2bMXauPRz_72^^I&g*NNYVxvVgtP7}74%#`UL!axH z^nag@=$UCQ%GWaUkHbl3Ydbl6eI=I>@f(JG&S;6)F(_1&h#Ln*0*k}FVyQS6p9Pdz z>`jxCritDZG2jXzc6sPn@`|J{p z&^#%&L$g=x5{XIAi=Xtv@h>639_MoCx8_g74&Q_LdBO&kbLiK+SA?+Cbb4L5Et}%s z6JE=~?eEvy&t&r7NhyZ3V7x#vVmVC{HSE$GJ z4}H@tYb}et@6!g$`?<3$8!YGIOD&r%FQFl-Ig6_pSEH*oTCiya{a`h^>MqMV)~sU< zUQa=@k(+W0`DKgV%Xz7$8+@_W9qhV;U3ajnth({mL+Fy1TV);m$$Ci4Pnr#s2_F)p zun^Ix$#s+6)EC|DS&nTx*HfeAs{z+p8?}kfTdez8zsoYaXM^<>CEwuh`Ly*dMXGup zu^y$2j8V3a=#9K9M1>fO1=Bs2llJMh3eo7CW!q!ug^AXX~xNw_`T}`*^ni|A`Kmq7O>C*OsD>&wI$0u0P}TKV&~&{&8%c%Bmt(6|ts_H49m@kTun;S;d-FtXU1sS;sootYgha z_SwRkEv&hhH9J_dgEhNZ^DJwg^|NX}t6pK%E3A17nzN3htU1b>kJ#r+)_lpD?^tt| zHD_64(PYVv=sSD4C`^+z6sF12M?-&oXaZ{zSd+?{-kM)J^=4HLs|K^vVAhP_=swq@ za$L^O^;15)FvjIK(UNYJmtVTI-=IFue5-8reCw^gTxX&6#r#3gjP73OoMcUlyUbYu zYlU+vnsvEYY4yZi1M9r>2c3uXqV!$PMm^6T`kZqQea4H9hr(WRHX;C)*Y(*c@4@MH z-*M+p^h&pnffX3}f8ra}cI$HA7tZ7Q>bQ3>Dr{t&l=`c4k2SlyB}`%`#;mYrYjR9h z*a7S3d85J(S$7P&HSCBrBW-iocA7MBYgjd|HUBeVWtzO$$~4)xS3&hm*h1DUWXk@iP9>4A zu+wUirGJH8y*3`pZ0makB2!pSu{CCX7@lJ5()Yt~uWd)>x=62WcjoPp$H{|xrq^af z-v!O>owfmAje00DokOMDwq);y{A$$R$kp7FR--2^7pu7^ts}oo@-5EkQO?9sPJSJ` zu4C7A?7G=<)|cn{2qhS0`;tqrfv$-k@5;By8d|NHgVnsy$*y}@{tk5@@1MQ_4X%w; zpR_jobA43*y)M~fu;9(sEmZG^VK?SBC6N|gR;fjoRr)OceB*MlgX?1lXJrRxWd~;2?jzbb)DYyP55rGcwk6%;Zq%N@eyHPGW~VpYr${d1 zH)_ueIOU#XD{%UMbnmjHhj#KfFkhVs96@t{Bk304XqxB2Z(CVEjut{Q6;=;j&YJ14 zM$inp8~P$xJ=p&xV<@Jjz%p76oKIH+7g7M$rLaa&4Lu2YC1ej?Sk3f9buGOCvX)gF z*y(oq9-7UN9hj-!0-tU8CB6rZqeoe9h$7zt;*3?lIjZbT!tLgfLX4W5P6hg+3B5?no<0)h^T--^+l1f+( zh^y(Tga+Wrgl5*9U@K`dn2)i5v6wNy*udDtc#QFcCgUWXLopUG7BdEc{yCoGOfW;0 zQCqI2w8Rva3m{*WSjciQlhmuw=y;}`k&|1 z2}a!^qw_gruDh~az*xvQoUxd(gt3${$XLhN$heiUnelnX8$OBsWVb&L&+jf`6vn;D;HJkEH6QG{|bjJ{A=q!gCBG8Qrp5A{o@5+(ndV#X52 z0ArA`k+F%fneiCoaYhQ4u?a>WV+vydV&{Gg2gHh0({D!dSpqDADgJW>Uf!WNe7MnwBLuvK(;9 zC>j`>7>_ZMn={H-z*x)}U~FJ)Vm!v^^IT2OCKmuBe8s>LUjX>D&)KY+!6+Y>tno$h7_O4?=&8HPo47W-MSV z?#%r^z@&k(v9k9)H#h3Ia0;~#$v_* zV*_IoBPFpXV*z7v68HZAlLp2n#$$|>%mEk+7>gMLj17!UjK>(s$Nr23jKz!r#s0S^%lER}#PWWYkFop_%hW~2VCf?LeJmF+7BdDI z8yK4yk1!U`YL**VF7DoiLec_^)JsO^V=Q1SW(+VkFg7tBW2D~f z&sfYDU~FJ)>g|_i%3vqP0>)y-0AmAV6XP*P>cjqw1&qav4UA2U#~7(EdomU<7BdDI zDf2ct|2dXutzV(F_1pPmk@rXWYJ3u5o1KLs1&QjXX3OtC$cra_JJ0y z_tg99XR(YIYw2p~YZ+v@)N+;OI?Jt=XDqK--naZ{(XCyqeXPT+<<1$6Y@6X!i~7-R@7^_$D~sA2{&R!Ht#jSWG+P$cc4w%e)E+~ zJ}gM5VA;M4Wl&d4bW^cxpN2`UzZ*@YUNj90!$mO7!pD}%@TMp&^?AI-+3b7?_*0ye zSEU>TZVNjE+}>GgzDs`}XnMZPKHfq9vrr48pZ6n*V;tS`+~bgc&G{7guZ&Z`Q9XYF zria-&6O}Q3?UZsL{`_PR5j^kCmspZ7Gx~)?dPaJsWp>Q=zU?y)S zY-U2l$|&B7@xaH?N#Zvt_=O#1<;X0)z}fmaT58OCIvpbYhvrH=-BZSVGCm1dz%@FP zi`vXS<7CW!TEz)O=1A9iHvA!62Hut@F@pn`k=C?}`aeecyK$Pam1cKCT9a~Q{Qmtt z z@HHMC{ny1G2yz28^j_JkqktM-v4lX50c!Yz(oV>+Kn?vo9I_Xv5pLR$I|DVmhH(Rj zA+$gbkAhr;(1KF%U-@8M;3h$xt5euM(b@pD6uLWw@eJ{UBbUjeR?@ilg zO}tk?eHf_G+gK41^bSy?cWE}{BS4Mb!v|ahy${srD1L7yutZS``9r+y)94E{il8rn z8hwRE5%e`s!*__Vo`eOA1&~kUqe1w%2~fk<(MrhQ$Kj-5Kj>1BAAuU3!NWIxm~MQ& zOt$*3Xf?SjawRN;Cu@Nhepf@*#5It0AU;=x_px}*3)HaJFbLTW)X0G!I0*^?Y7{E2 zh3o`s*dBO2} z0n})vz(#*;iNr~xtHox5~45L3l9!BFJ z52wo@5671SyJGEeGUO3774k^>Bjk}Z9r7sp6Xa1;1o={$1^H4chCGJmLLNi&A&;fS zkjK&z$m3`kc)#boUh?Ti+$kJPv82lYQ& zmRUAgnk}DNzOh7FbNtq7>owMT>n`i-)}gkEw!=0nW-ea)2>Vj|PW!*?Hb*B%Pe-of zkB&tSzvHit`yKlnha8_f!b4I+`iG1UnH{n`WKD<>vMc03$kC8*L#&|*p?yL}h8Bk| z58W90KBCO7)XttV~&hIxEG$vOsp zloM&M>+Tth4M1jC>~Q3NV?AGB^NQTW()O>rrz^G*b&RjOXWAg8zuj}radqI4eo?*U@en`K&=Tq#d=@?;m&lT9(bH47E)C+Zm zT`$zV&GG4IW3!cs@;$L}(yxU}Io~rL9~yM;1J@aG%Y>oihtJpLzHM zU=|I>ttedk2fd{o#&LrFtba^z`L(ZTt9}Z{33^BW9tQk8L(8H>%REZAWKk~8g*XB@ z)>)#&gBGti0QoSE<2cUY2(iwi9@g$+h;@wkyEThW;y4SP!#0niZCT{Qxwq{ErP>WK z)P8~{;5^N~U97hMNdBjsW3@M&C7LU&RP*6T4=dLOh0W6n!z#2%VGFd?_OaUbFhlIZ z@kH45+IL}NHD~x(ZB%%pHXY|;9QQ$f3g@Qq1F$!0{{|lraafxd(Wq_0aT>A~*{F4k z{9dby?5v-NJgj|zGr1ZkYMHKFT{_m{tVIsecOinuU4!%|a6aN{)Py@%{{n$M?g{!J z_gHNejvaV;^>-ZaLjDcsWDmN>;Gs)q&(1PVttb-xjOT#fxa>?CT)22~WzFK!^1|gM z6$?w|R4lBhUTJh*iNCj6f19v)B8OKlT2!*QtZL{SgwC98`R8FRrRw zHl@6}T7Jm6%_obDZ`NBxjByygmumfTjm}pWiI0t4psD@((O?d(@^N8sI83RTQ&qaG zVotf4<~alpq;s)lw)^GIhEEljH5ZfymzuRTwQ_R#qRQn)5T&{@b!yGB#S<3G7_zca ztV(s3#grW9e%Z!OK zZN1%?55*7!S|Wg?C@?Yl}pl;Mni}-_SI~v2WpZxWYwP`>t1CQsRm+9=TqQ zcN13X!Y=02mmFHxss0-eGWHqt(~YKb=#A>Dbm1`y))a}&_1{&vqWu`KRHYD$9lLZH zUA(K8(YVTa6Xwos2|B!{s=9Jf3!5^(rn;>1%Ec|ba86bAvXav37CyNg1IaR`A*f+0 zm917^KJs+3Wl?$ceBm{qN=oVdA&H-HOg3VW06=@pE4>ox4v{#tb1SR zI`m0lt(-e|VTCd1rXsP%&Y50Zw(mKxY+-yHmL^>LzPhxc{$HM4Is|G^6Y9iL!W&54RNwTO?oaBPth_R4k^l%0!?+9X*qh-1zL51Eo>PYjIWWL*Z5mAu7iD!h9YdDbjkr* zC0bw7(~@jl-&iE(8kU!I(PQ6NkUwgzhu62FDI9XN9fb~E|9Wy_Mt!o#iZc@KEfT+3 zPG5+zBrcPa4UfpNpifY{ADk>LO^-(FB_W`cGF^j9qmn|+?s8nOx zZWGj!zjmtO%gQmAQL(hsPcA?29z(Mi?fV|NNY?5{m&ZmK(GM1h_s}iA#(8PX#pYR5 ze{$mK7^7wfx_V@I71ps9WAUjHAG0Q}vF;!`S7%C`55*#wN?@wOl2#RV?Uul?+V~vd zh9-3G3%VRf1r{Dl@RudzxdKiriS~8hStRZfo|tj4$bf}dF{_4kx$(wB2pp|f;jgi@ z7>6OHN~+$M^l*{5S%}AsyPHRdZpNLD6^Rwb*j@OmnOJ_>R|4SN)&FH~Nn{0)FvPs@HcHd*p19a6F2 zm%v%ZgO3-9Oym09MPic3s&5`vP*!OoBzY`Yg1iH+4_K6~KZ$#wq z4i2-P#PmXo&*-2<8O%IYQ@OEV52}AeWGUh-!`qW`ED@KZHu~aW%ZCEUA277^1<8FV zuGzxn@=Z(lD754lJamnu5&QmzsB(lOMKz<5{7jLEcO{wnZR5%+HK7(8 z(B>1s2#b#rQ7Ibo815397UQY48ha3Z-ZT^;iDEoKua-m_^6UwGX$Q4xaSNqcICpq@Q}gDR@PLCuRS$~ZV<$mkA4)g`f&L+zCHs9a?3rW)VCr<0%S{0z6- z8J5qod{)Xq?lV9sTckc{;YQu)4(!6$S0nHbRgH`mqE$30dxAqEP#J-3!sAotVh--$ z;M~N)FqXrl-XC;1V%)(o2$&H<#A1}0tSiJPYdK4R%M3)@O~+LnI+}HHEXT2&z;c32 z^^{5-XEXIwwxzOPZMYmmPfNZn&ojUk8|45V}j#RL!M&P1^SAo*sSsK zs0nD;#+T|$c`;b6xGp7t}<@9lVJH-X3kYq1fMR5eT%I|Gz6DflZqk?=lWPkAcMB$gI(Aw;)&B1iZKN z|F_HF;B4M5$tjT#3LmfL@p%Hf?YP+G+0EAuJY_ZWMS&`SUbz-~0#8X-d1k{?4!iCN zE=rJn10noK(^Fd`+XNk|wkCv|ECL>Ss7Szd?HTW`y(R=rTpM)PUK`;d-BWv$yLN+T zyjicc!A{83F7&eCUR2c{&v;K@jU&M`F^r^c7wQ`UbXydKwFUKzk5qyD!N-xEJqeB| z{Czl%IHE1)7ANJy#W&p(96l{di^5wxSxyy&`+__~_^eS@=>=as%5ssM`jOSl3j$_d z#1oFaFL3OAamOAPIQEED1r9dbTWTo*QTmHKFm%)vxqP-LR9H*4qpTNCW$*>548FKy z>IIIeEsp+AK7et!V=Gopc?*hlX zi#v|Hz;Rql|1XY_E#jA*^aX2clX#Z6&R2x_@aJP&T7v_fA7D};MdJlUc0)NXSxl9LZl z?M_qgsojM;Kf>;@N=2yYjvs!*OS*e%nFJ;>8U*+Qwpg) zi2EQ0y0474k)IUtvT+9I1pim&TwxOrsYh@>#!O@b{^!Y!C$K5Rg?l|~9CDI!uP1Q7 z9F+pAJ=GX-l!?cuH5LqCaiJW;W={a6mBZP+1MMD%C(b=H#vRy>8=%K$3K-wz$kTIBO;lqzJtI^^|#n>1O33ZsD%8VhSrXDZ`*VE&dVq2#2Sd z?^vEd0L{d+q(A_(np|8ha>@jC4QPHVHLExffCXE-Lt1Jp=#V!f4q(m{>q2m!4fVK$ z&cWpzaXju%?wZihmbmtZ)Yr+Ke^M?m%WR z%kr%9tU~xg0UfESL zsl-fPD%?wz0W%(4+rg1c5&uX@>%7VKP?-m00G&f-B3DLjwjs2ta|ff*_x+w#$T>=B zo~5Ii8x9hT?qYYg)~(q+?v8Tv00vBOTYix0{dxfewo1A5{Bj#wBGPv-%>~b_d zdVp+xGk;v&eh;^pn(<-$Y#(JpnBB^i$yX6N7f+$IXrAe)ITI`K#G^WNDz2u8h}M8T zD2X?e;V{R|c z%Jxl}aYxdkTNYGW*U+#=<7!c=wKL-!d@GD9EPT!I zhqYhna-F}Tg17$;-Ij<=y;g^uKR4pOBA;A#k#y7dx{>o)gj98*Dp zDH778dZUyQIUdZDeJqqfDh`oR^AnPE+oahv8^`I80Vc5(2?y3#Y`ArpCN12Y&ZE(; zK{u0@XC*Wt*=vyF2%Kli*j_P~zJ{fzR5Lk@D#bFtd;`>NoCzkyAjQUGa82`nhnqWh za6E&zh=GHM(Nl(_T4rhpZV&ATLFA^5u0W2}Bdbh{2Obvi6uXKAc}dI6?O;#t*DYZJ zJN(k}c&nvC(seS?3<(pRDs#9M?rxEBXL`yd_52K>ruXM79I>q)9iKAJ)B9TPj=o1+YXav@#(yWk;EU@037*u88WKFye@9<%(Uj#Z`F8^3{Ej{kdcUg14wW>n zQ)}5e%yciVUU+f!{EMY3XQpz%#*?!UiB=mKM-JhgncL;l<*iv>adM6qSYvz(eY#(c z4}mp2_ypECeHM9PL|`p!m%Q}^*5iNnSRZMccr=WF8Ea#44$>WnZLb5vi+tji3uaE2 z&&qL_H#&IAbr$*9jpZs#h&+MMcug(Nf-rFwKZdW-n7}$*?x}M23OU5?h`sa)>1{2NEGqI%r(vMdccx^^4xyVtXRatB*{n7z)%YsOT6V=u-e3-Se ziLK_^3kR3tDp|cAAESy&&M|yukR7c-0z2$-;$zpcmyk$La73eo0b{oX{LE9G4kKUV?e1K&LYh+okGEQ zcnkCC336G4Z!>V0izr;d!JP@X@tC!N(qKsg$zUjqXj469s+uBrtx)E6wecBJn&Ow0 zfmIEe@xX2@$I0_ko?^WRR(pG($h#mpLV9p*pybe@K_vzgrPf?VYn6&aS;xaT0%~?M zpo60_18-6~Eke46q9s-N>QnOiWYtfIiSpJjdhOf9eNl&t#8hF)!S-Ea$xZUD-?+Dn zgd@6j-+|oOfL(P{1x+xTV7kP302rZVXBkgJn1i?JiSHDNvS{q@3&U3DD=QY`wKm?S z{1M+wMJLCViNMI1?8dilc$WBa?P-n zmmEm26h53+6S@E8?bq!KJBnh6zDhso8>N>K&UiXw@HcCJ%jf}e>+p;XnFyK)qgX2PP*~PQ!&C3(T}pR zHM}38Ug)#G?z`dpnWDQMvIO7HgJO5ilPOL1Z^VX7yYa}+Gliq;9B9L`ubex7VM*q^ zK37&((yJCuanAj+f{5lUH{OS5vS=`V!8typ)ovvH0=))@OCV%o>$RFfXCb6%^ssRPLT{biQHJO2Owm)LDq|>w9vaOs=0ix;=$vsggf2QIdyU5+rDN;8 z@gan+I`xV-Eazs5UOJ79H~K;9j_=VW8AXt~X!MQ|fY4Q=1I9K8h-;7W4+y<9{Ep&` z)F9FxM)I#S1$H%N^e~1%%FyUHV<7|>qcV)!AR(uB8Bas#0sp?n$B+>F6-LN!NKm8g zMn4F>HL5d;A*5(@y-^1NS&qyx?uV3&*asMYhm<4>_HPL3$nvneI?ck5?&!|D#?BH$ z@#B=cZk#3h>7)<8t7#Tmk*3}C!z^)$jCg>Uh1zL&*(imOrB4jqYScr@)oH{@<25O1 z>z^@f+AJ|#_c>1);~)*z9$8`B0AZMx`G)Z-gt2;4@@XSMpCv|U6YGpQ5C&qR--l`IKQvCm zX^`$)@q^K5orS$rOR&Sj5ni@%;UkGZn&B20@4=GDmgxFpr+%<#1#684=rZ-!`U*ha({2NkNeMwzU!{wZX>tTt=Fa|vQ5^RkWBVv5)w!VgoFeLWFdhBCNP1p2ibzGB4U7`s6fDgG7KYN zs}~gzcYJOjDCkoOd)OnQ1X&D=aAQydDuN30{Z!vOA^6@q=XcKU_uub3oZD4hU0vN> zUA@)q8-6`>+vmuOH+@#+u;$gdeailf_ImKk`442dp1yt$_4o+!zJAktY!z@uk86P2 z-2cq_0PtU-(|T+J{Br)ZtVlp_|8l|S?f+np9f%KkVB$2AwK^^=xwJ@eFglj;JsYy>KF(&u~~i}W|1 zU{VqY4ab?3#`m%e_8z~*+OvEfryIoT_$=L{?DH*+Is@~zIQ+eHnbf$1d%I`*gaNfw z?@4Ox#Rs~Zt6p%|Ny@1-NdnjP94*QFsw5qD{Vdg2lPnICX)_WX{(Xu69hJY0OVp{R z|K$IDli+`Z_#adGySVt@Y2mLzDOv%i)C}z?L$R7+h%3WmEg4$){Y`o>Zu&;l{4p0} zDHu`9Q;0VfYMBs!fa001xM-07WFO>@u22Oe=V?thwi4jZZ64#ozxh&vz!WX^TNWF$e`l%QsaNj*%T-OXGOA|tMS^1z(k%A<+|MV5 z9p@=Nd7)cUBx#k!Hdn^;ip4Sfip5d#v=YY``NaGDxRzRj=wkk!Pgt}Wy|4-_`z_TA zzBgJ7eTMJ1+KWyK4l6(J6T%YtO`qa+yce~>&EgoUH;k+?1nR7|qHX(%b}(>mQzqOJ z4GrK^eX|3u_hiyx#d1NA*6~fgdFHnS>F@J`G&UE>s*hDu-{9}~bznRB3BOe1@%2n9bmW_wk_zm#O7pk8 zjek3KiTChNNnFtYStzD@k9jm{*-|~hNL`R5It0phcsy_Ax%#M_s*9u*>f>8~VBF*n z6@6eoWwGyq-2_5OXtl-WOYOHfEP5zFxpG6)G>4z}4-4gBv4G#kZtP-}KA-8)L&}Bk zxiKI?cla>x7LZ$&{5ACowR%iK7S(C|Zpcn~5jOeVF&eBbr7F|GYOxO}vn)MO>FG4} z>JH)66U&HZ(P$|u%|f&+jTWlXvWS+X(cDy8lGFvnFpc<2Hz6>L81)+Mv`W*1c1UQf zaX3#fbdK*qGmwq#R_6qJvEWa(*qOziZ*-bwXEFZD`EWLZuQc>zo%umSa?V;AS)k1d zCGw8bSv?Ul9UcjTNDeHBw0z}+BpHm7A+V3pV6+$wfdkBxkgq($I~ymm7dSU&dai~R zpu5es5Ps2^$j)%@z=zok{#amd-I3$`i@+rII=>v)Rrm1;5wY{WZHBX@d~KTtSS0rh z>ch71{y_=4%g1>|P#7!ZwxEuzAO9pMmrdZm1tqf&c}#Fd&guT5efB@meU&~IdvTc4 z^mICC(4o_`fG~$g2x-ygmVaYE%@XBe_#ILvaYt}BX5)K;Q={9g6k?Qsqv&OIGO-A@ zW6H&PZZLHoJmpvP^klOn6>Jxy-(mXvSt_PhDFyLU9k`t))`duQ=mV$81Gq;1QBKCo?5Ne>miT}9sN8&n(4|gikF6jPAEW%Rq(#7 z@pcBKV7oWf&tb}QafgG7c))cCtj>)A&|{7<-MPk)-NTE>X#cMs2wDY_+q__X| zj!Y`HA9b2e0pW*+^$hCMndX)kzop?(a+Btc2l%AWJa!*{J+#!baTPQ?jNb}PX0P$K zVTt}HK(II*n@}sIo(~V};O|cbI2@~p@+w~umcbVDny~F&QJqNeY+e=K&phHMrxSBx zNv&cIq9N<>=(rrYY(=$#*p^=oFJ#ksN<>%Iz$ZkcrVOXPcQ~3!=;{b$vDzl*TWkv~ zQwnX9)6o85f}tc$nZrMei1yd`>xjRYUy9hog8B22pQ06mqRbKR|LAlUY$tO-&d(ip zTVUq4sF&Gco)|rxJ;I-e9?TN>k?2`oBa*1@@A0CTp==3%F{UpITxn>}DhJ1hfE({>eXR>8jrC=&7)Y>!u~Gl&$SDfAUns~%q{ z5=u%H8#kN7*&N=}oWch2Ddr^aPmn~`7{Fz7p4W~*|wwf@5B?ud4T`gwolMF5!re`7*uyEXUUf0 zggp0%&7qRi6lz)e(_9~`{YI1Vi+s|6{fJV=Urh?q)t=>_B-z+mo}XM|lFvDvSYFim z`$jgh{~3+9VmrqClSuf?D8wJa zvRu*O6U?UVQ&QNod}s>CWOyZ|J^Pj$Iu2z|@`)XL7j>RTI$)Nirz>+@GkCj}896Qz zsrFhbD$rs#TI@Pel+&a~LQ6Sb{Kt-oESDQQ6|jHvO`XE{^iCn{Ilj14D)v2_I$1+& z7pSE;JoX8!z=&pDoXdk!lVD&usqq~yV7SxpxG|SFJuQw-nco4c&MgF>f!-;B;`ZE5 zd|7H@oE^L7CV$IPXQeM~UUGJjLhET7v42DT`5`}=IyQLo2PD*9&|tM6uuLp)HpCba2_?FW^oHX)z7z$_Bkjwz%6&BtfN6geJi zw%EO_6Z1)DLqv{3y^B=jurwFhtoo}+Ylk%0j}m`ZRD~w$4?Zp_Qp|`0~S+y3ErAa0o~k^`yqI@Ge8S#xV3VYAgDjwyk0pbl76Y`c-Bu zwB?6cY!?0S5wrzPQ_J^ zw%xSaNx#KncTxRXP~@jH`V|>W7!YXI7jN?i zvZi>Rg0(0!_%~UF1MQd$4{vm@#L3b0@=PW*1#i>=-3S!b{FH#9uuk1v^{R6^t@av< zq$zz*JDp&>vW*ytPyk8%mG&`wX^*FLja#^X&uBJ~r}T_qU-P~_ll7aAU@}ws9Ob{v z4B?KR8*sWw&CWE09Fn9G`~G74H^uhDik{EP4vAQO$mwi~w%AW9R}QvLJ#~=3n%&8F z$YGLni9&vDW-$LLdpTRc=jEhieS`VdYTsLIKT(W{U_WBT&>J+_845V0j5r9nktFxM zdl=XA(>WchHltK=QZlQCVz$^DGmcZ^EXt{MV)E!Z_6+H@GNBZcPr+BfmpbR>s!aLH zRxn|eNCtgwsNEwF&{<>i@Fu=BIH(y35xY^{dg_r}XB`Ok61^q+v9LM(soZchV?%E8 zp#5J#x79bDm3_#XOX>8MPxW_ujj~}Tq4OO!a=&;Zzb$&zX;rR8nN2lNPXc9P42&DQ zTbawl@}k+hyj$M=%)(#H8?C#l=Qr}kuxI$tUWeE&9-H3*$^G+VyplX=3HyjYoZpTO z;4kE-uvoq;e>B_8V+u0ZN75q0-hthdef%y|+7bK^?M$W=*>dvGHozHq zI_2$M=&&G*{afYsPQIWp-Dmc0>U#G*PAC7oun&9w*`jt>!P*y@tJc9uVp!T0i=Wle zsT>ij?V(M@_9ITyP$&A%F+k@u-NNx0{V*M=7*F*$CGD7kk#KOTBsu1|FR7`_$9|?B zC)Q?KWPmwL`@rBdZA3<^y_rUQL{Y|pLi;}SxxE$}dP=Z$4Li{XL&vRP8wTRoTI|s3 zrr5@AM;UnhS5O&KQ3eVKK>^!QK%FRHyVJBEm9sb7x_ee=Rj9A}c-!XYU6WnfOz^YB7g z?9rd__Wk0cd?8-l?c2Y0noNj+Z-n5hPT6^Y@hke-NG9P<;( z6r7v;g+;AIHSUUg5iyASjtt*44B}D)-UM#7m2br0cAD1kXiHc45{6oe*b4rlrG3d8 zcc^Z4!kRY%w;ywwR;e_{AidMH0(g_RNWLY=u=+Z7aQ zVTfooI_WgU^8v+?zMp)7jkl=59zLr$Vqh}zI!$dM$71&{6p=5{KJ85OZ_!kA?!Sme zyD6vXZ5QnYLLB~AjzJIbtl_vchMy{q*TsFo4P~J`xPM_v!|yO!Y)5X;cI2qC`gJM> zw&WgTvBg^L`z*G8Mlzp6%D;GZ|CFGo;N)<5#{5U!4`V6kJNtLS{_L0jvAUnPbK`&l zmd%F@xKCI28UJ9wqy2+^qlvh=$v{VJFJ;fGP|`2hORM;9vt~-~9v%D6y`d$qyMh_ej)OZ@Wh)OK zxSgeJIX*C!F+0CLs6f~F3GZ4ul=*R6X&*M9A1TcZS^hhT#GHE@};L91_j;aj&5nm|3%j_6|NaiblR+ z31$e1RtiY1;H!t0u=V`=p^q9bG~LseoKG1Rm-9RJaQ~yr9{&jZw(j|#u%;NS{OW9F zHS__74FCoo-#x5%$jWO};~&U>$AMwcHQC>emz$&GR=M6Wb3gd_O)N|S&IQ*^r z)#0I7AwC`6SNGFM&PKok!+VY>)?NFBFC7sNhuy{z9TKLGfc_qO8sd?qh$3MWaZUQ= z=zlMMV?;_x%1ESn;smq5Fu{zr_d%~6s#V;mg)-) zih&1|O%3qEDIlX}ip@Qv$wRr!tIM8CjDxK;`DN75VDeDDevVcU_qk$-z)`5~stS0{ zsJPhu9|(iD*bf%l>l$%*kq#H{Z1B+Huk!h$qN}c1?SEQRdRXnV^wyO0;+=Oqia&L# zKd+MPYlbDHi()6nSutuCVA**K`MswZD*dUJ_7P}e2x%XQ%7gErj<&qw zotHhVZhu&9kHF*Umu;~PG!|pPV(V~siW$9I`RcXN%vg3wG|M&7d2{2KxS$9BMWTl# z%p2rz??ob%QM_=>r@BamJI5?%+xYUa1KBiwYHWAi)hga*TzbUZKZWCE0L}&EsI8tr zTmNBL#K!QkazDYgahBAZ^Yis`^hd56DIK9zZJzX=14pRAx7(z@J_Y_gh9pI|lpnMA}|`%rh~ zWrIMKD@pv&gihGd- zI>VmeFU%amlD0I?e4qJwzM!3^J(Vl`wTh|OV*1QV!|^A3Rtd}Gwpl&dH+;{mZKlOk zQRNk!Bk^Je3o1EtKjo`te;!=pM_NQ5tw>l!)&@;Gc=?>Z_h%fi*h;PxI*JWeTgflW zN>1AQh9ydA#68Y@-C&$sRj^$$Bf9i-m0v-2O{JIPF;Dx+rcq+B{{_n2frg}ghG8D_ zhcIc1p|i&%z(;yQ=i5Mcn&$GD%DC)0%f#arx38`Cl3&o%S1i@Lx>&NmdNkBxqZcDZ zCyT3Z(Tk6wll$C_5==Pdt0GJ?j*^qgH~g_mbGRPUA&yhm4S|&j=0f{1iyiqeU~~9K zmA#;Y>y=p{uY5)G`0qFbtJdhGR_@~YbIop;arw+Sak}@P;j8DECjNid=(VM4qn7}- zYV`AUJhsyO|Dx5u^9LR=M{ zpBAxx`Ts29`eUQ;R>Assde_Z(_xFzy7S8!+3HK`J8QcGqt9xRU?v?XY^@La5|3mQ1 z+5ZsCKYSt@^VE?ihQ+(#wBKmQykBfD$hX+b^f;}2Xb~O~yuZQD{Q~bZKOyQ1obJhG zfP)hjVw_r8fnx;RBG_HO#;fP2u~~fU{NKVm;y4a(%`v5_f+W)R?GLhaE8n>wDdgf2 zs@mOmU`BKo<~`?v3|-G{Jab{H&Sx8+w6G^;n^zXDWsN+i>I2r3H&snyKk?E!;9MS2M<}2 zi;4|fGT2A%fTLmpmX2rnhf5NZZ-O7M09I~KMXRRRimIKaH+NEI{c^Ufs2b%}V@bxT zhu>Zjj9tTmy_M&{NeV*QGTkv+V-3wXO?&!@g zE{)TfckwS4hxYQKGVNHthJO#Gt8Mueg<=iIhKC4dbRY>#5WYplpu=|v zb9nR?YVcD1k7+bKVGXPK2HVG2)kZAe#rE)U`vSNuWP7Ub4mj6QNsH4ooY&b$usgi{ ziaw@~u)kQP)Qz~iQkaz=dDV)x@NU1pBCFJ!UU_J~n-aoX`)(`)QDl$YuAr0e=FP=8 zA;NdF4p8`Rq9}v#-Mm1Y_FP{FPjNh=uO_dfEjow4#AW17#+$lv+gk4LYXZEO_V=H@2avf%{z z5`SgYgKP-*U46gLACFKT+oN!?{IW8h-_8!;@AmZLTUHM?R$~84C26@5dGNCXun#YP zwh&AFo6mM-T8nueuQgzP&#D;AZyA5{`O$a<%wAZE z)6ml|EYd}9=H7CoPTI`d$;GDkUnQeDG~ljLB`H7fC30K1>Nd*7@RD7ZtuVk|Yw816 zZy@zx&|4GAXw?6}lV0q?F7VMWKE&SGa^OWhGrs-iJ*T}ge*UE%tT&H*xp(NJ@6t#* zGK7w7G;xSi_)9~0)bPl{Z)Q*}raq(|Kj038KYMX z=h4_YI$O{-(d!HT^~>)Yhv7I+>cwS}Zg_LHk*`{t;JL946!kFwY;7FgIiFb@7G4Vi z6nKs3N$)zHjY}{fdqjsX;Qs51Zsfq(G>!*aZazC)FMhc8=~X9^Jbq|(+dsV@BV zx`ddI-y+4=Q>g}cUmyH_e(G{({9^ditukD*WHzOPQlU9ZirCb5V4cdz!-Z$bMG zE8bR~{8}OVh0lC#hjG9MTf0`Fn2`2Y^el^+!Of||We%VGKeulU!{2PeEJ zvPFw*IdH-&qt_B=$quJ!GSUi`pKZcn`6R7j3zoZ51|Ve%UasD#>}*ZBQT)}N0l4Ks z9>V@(=(U6p){E*8&>}4CMV|U@p4YUONdaH-Iq#O3f(1Ukw>HW;la{miH}58TO^29O z%HN#57pIFT;|cE#%=crzxkq@^`-!@@m+|*UMg`v< zMQz7qwju!&xHzG`#OJ&}I{Oox{_F|{XLqM*7w}wc6Q#;_PSeMTVAD~9S)yQZtt5FZ zLdQsuy|kv#FtA36dx?905Z&Q8nqO$&D?G>8t~5JMR%Ap^zNz^S6Q8D%k1FSR=?9On zqkR7dWq8AD{;-4{<1;^;ityVH&AvO_QL6$w{KW5Zwkc*<30`I>?rWURE;Wr4(NtQ* zvkE?^QA6I6{3(bh6@LNm2>q%GvcI1bhPh?~4f7<$u$0OyOvrD1ONYF09J!g?M)5hD zdc(Ew$)@;G&!ISF08FxR97ey@(KWk_lxCVlz~Ns)pgMOf0KFaX&jn(&AGE?#k!8(3 zUSjBdkj^$qmg@Nl`Fg9N5AYKEsp9Ofc>3n}{DZUeAI*bMZ_1W^9DXA#f~c3u4uQa} zDaWlgh#Tl|AC5Yr)ZoEN+HgrqiQdKe=8w%vw$@aUwUO+i*j``kd!{)1Y_Xx=Sw8Kf z1hbgLinEW+HYn#EVotWA*;y_xjf21UQ6~TGjR>#r;Cec&q;a+-38()KTOz9_x$1-J z6HZsw;Is-W&i?+<6ycwCv)Fr)7R?r0n8oe1aATh!%gPz5dJG!3Ql+xb8lLV#Hf6`9 zvIAbl*+(7?q!CAcw7u}7S+j3G;%(W#llrPDz1ZO%YPC07yt8YqhTclCql6#X5?8W( z#XT!Zc2CWZ?keAEd-!f0u>^*cR;@3l!s zbCzS1X8sTJ^;;7|UmZ##HDj1q&c(a3QY_&U`FC5}v3kxvE(v*RHOV-WrH*pV5B?6H z^l>7#!^=NT(zSbi%hrz>3vc@xL|Lkz2-DAo=J0M4K47{aH=ZB;B+GQeK^lUO_@>ja zq%Z1#cVo};$ZZ{T?HBTX+fsCG{@|6{W`+GqJD2KydUKPJOboTb#^IP!!*6fPjlI#8 z3}yH#sM=}rhieN{$@iDGTR*uTKnC) zZt?x}6{gF3g1`6KQ-%>@$3zz?^WpOQoEQB26~me(!X4|Rohkf?{Fi?Z)kO^8g`aoV zHx8h!=@Zsg+u6m&fz?!#dYAP%dCxBfv#t2cadskV$s#3U1J9{R&bEc?tQ*?$<8_Qrq^!gGXhT6IvF4`D|1jtYgA@${XM#(b*Q$){9di*OTW z%+B_3PA=Kmkv1edV+J^iFpur0i4MD%av@}wT3tj7zSPs4*`qRH9<)U1u%;9{b<{~~ zk4MAERzor6Wl<@dN9>A-s=MgYR_Yv-O5SA%&Zmr+#CP>dE?PqBdpQL=@zaJS&5&OL z`C+r&OY8{=c;gRo7k-1d-}&}kQRZcZv@e{IP;qzqo`+j=GqkEc&wtz1jyB%AlXT&Q zyl8iB$_E{2>YEz2i8Y4NNU`r%Yigx~vT4!!#@=VIR6-^3r-5x{bv-J9>Xr@^I!_zG^_ z8-`1HllPWX#V@9!<|Sc9S#qNi^JEnb_Y!+An(-X|yYaF|`F62tLeN+BvrZ>k@tX%V zXfiGhKD34|3@$3f8kXiXjai67Xp;=Dt<&@+Vpuo>3VR?C4Q;1L(p+kB5fEDSDy$u$ zHd5XsQl2%TTuFIY*ac8pT;|bgML6zNFb5yIuf3N-HEO$<+xI0Ty?-5eC2Ci&{7mCh zw5mFWFTyMEHIxmQ!{3)UzU3$P?KPgkfwk2M6HCedY%JW${#gH%T(^{Wtew(kxtcC1Mc0wR>hO4gzfn8V>(m0$VP~#8&`%eX#|Io}hn?u`10|(J zXGos^Td*i)EDqMd7s3{m!76@-Dpw@%5=qGsW3zgmI^AMA^=S7iX%nN!zauauav?Vy zjL>D|@}G9(c|ACv3f;*o4qCm!1U{4RJ~+ec%_oTd7w>jxfY(rg;|O)gYLWy#B3|3v zi7j*jZ#)$1H6{m*QGVuz!)CbF(+;OH_&g8ChmOv|Z7TH*YVWKZ-P}LK7~ad*98UE7 zkeW1w?>=0B3m6_p`m*!fdL%A>2a!L)k-I7C9}9>7FzUD1$N9=5Jwp5*qdMMib{%@e zd9*V>cO+)K--D=(m{G5mVc|;ehRKjl=h*v@ftVFvo9HY5_9XAlV?wF1-vhrca60zD zaI(k(fJ2Ml{wzA-djRDqAAK}B;8GS@g0}KK&7V5jkuB$2j;{BNB$;@}aO^c~tNuLJ zKX}z6s3>i#*I81oS-!f{^rCW#m(}$pcVJye(xdZ9kVkC>DhWfMik=!q8u%W54jKbx z&{&0HTFB4V^=I$%q_5hW{3-ne(s#UsuRt2xz-Y0to%B^<*R5SC6J6^lX;A*iKr8JF ztV^ASrEj{C8F+k-JqgYM4Pv|f8ZCMb({_ILtNVtPAjOLPqXpTMEIr2Nll3Q|GV_0d z^pSJb%FIK`DxsBmNIFGHIU;Ge9w}zZgH_1CffCxz<#8uWovsq@1tzh8_}`}J%}Nqy zx^%W+P!W5Tbe7;T&HhTO z?5hVL&fcs%#D|^8WNW$YL|eQBd;dgERrVaMvP~62i`93WbaBo9G{iLZZ>`k9RIle| zqvEfts;H~er0*a%5$pgj9Zwd}9q`MuaTdAR6eA=${Kq3_izMX;MC@3CW*2kRQhN zUpr1jj#XH|=$fBkJ9OW|!!c7nG$|KyInZviO3VHz%4dShXj#U6YP#9^e(??JRUcjL|Rd<8TM(GC&K;lK53;C=YdCqp}q z%yl~Hf+CJfP=Ye=1}*=}o3j88DMPSr5^pc_se)&CdVOlin-Ae8KRGY3`Fo}YbytqT zCq?%fwje^+u&W4d(CF$KlX_v_8~x zD%EKhZ>sO9{}4sMV_@Q)PK8H2LlI}<_cL(&CUF8H&cp|2Qh0Vt`Kdg{Ztz#W>%b22 zgWvTH_k*iwZmh)-JyeXoL(0Q`RF=mQo_soA=hlTkcsf3MWfGIBZ?eaT@9T6LrH7O& zzJkv^ga7Mv7q*I@Jsp`;D4HR@;Yk)KbVQ$0wOnaaKi&DAo6khCG@g5=Exd~p&cwsJ zuRj}$_Zj9hCVf9F)u_N8z7xr5NRE8=tQS0n;L!c_5RW?(%yU67B0bp8Oz$?t_duIP zlK$!TB6pO?4X?=ANL~Z(Z+Pw51eSz&JbRNH&&9#X+vQxmZo83>I2VsQ`;VP#i}&8^ z5WdHEo@*E20kx?wyB(bZAL75CQ*?$I{QK_{Lu(&Iip}-e2~HV89U(lj!QAP#Kc(S3 zN24SF$J33e(3TAsi|8ef$4eBerVpPm-L2!(8alAqoHul2#k{7Wf9AhBk!rEMJEXpM z@R>@oJvfnV9-jly76$jn@3LIsdFRKmWqjTFNPLC!>G{5_?%4||*lc#Z&>web9=(tp z_h3hwbnK_*2EmNSqq_S%%0ObuAGDvaMHlj&7tFdolll7d5j4GBNc2CSg2OhB7dY1> zp5SR0)A8-j{TDmy_#~P2VW9z!!ysEOtv|-MUrc3r{K~~>){%Q$ir0Dj@Z?J|QN!^b zr-!~W%u-!r#OP~B7LmPcE?ss$$R}Q+TawE!W$HpEY^k}_MTb}4zg}L;I`LIkLc5iW zg$3h&*xoS&={v;g+-Xs0M`e3lnIA{(@gIda#CCvfTAX-m?Qh{{uRK`w9$G~w7R}}y z{y~`d;2eP@v2ioCMI2`yr>QrQ99sMkG<={vd3;h-a@8gxDy09RV9bEkWGRds*=N6$ew~MspRk$a@8O0NQsU2 z3AIGD&=o;Gu9DR*Al;r4Q=PakCS-SO;eJnWKO)Fg zrtU5Db%H)#Wlw7%KO@K%mE5C+TqVfqD!F$Hxk8X5RPulp@&rM4Q^~_x$U{^qS4W8| z4sW6N5$xZnKuXmiL z`&Ig!7ILE?4^YYTTgcxDa;8dN&_X^W$k8fUye-G zTIlNqd%a4Y)k0n=$UBK_^H`1u?s$mlQM=M<_ZXXizQn@I{10v^10QK+kyAFx)R@SeSLKbeYf#bs?M*BPygvfmdxFM z?w(xHPaNLxYWqC&7*Wni~xgN@A+~?P} z>_?vZYbWpZz2Or>|E%Sce*GKk^Mv148Aq3rM7Y!L0|MtYXTJwUr2(f|pMDmb73P4O z*q>s*C@Gmd?e}Nzn;rl|vRU2D+x1lI2Wzl3@h@=^(Y|-qgZCzR=BoE(srT^3ColQp zjp>7fsL(ApkvGFBt|AG?47R|^KSrZ`0Prsp?bASI0VAKp#{kny@xOOqf@6BK&Ys(}^U z*ln)Ns;)Kf_n3hwoD@iy&QJaktsj7RzAd_d|NTb-ZokFd?8rj+z?<>DSKFZKj*@1l z={kSnW;kxOJ%2NwJy>9!T=^xN`hW(b>*cB$yO%mX_Rr`P-2l>G5njC( z8Szr3KTNsCl1}(46?fpBmx$w~@}E78C3rDJ4sMI(k2=f^-S{tmMppTN_3+_M^x3n+ zBM~3y!TEVLN%6v#+fuDhP%eudi(W^@yZdlPO%IPSh%r1@gKxS$evcu3hsO^B(u|>f z(;v;hqju-60BCAMn=1?-eBiy7)KR?~ADDbUyOHX`ZGQ!aO;wr8|G`|&KmMyv(4=6J zgkv#%XF?xhL$khr=dit7EPtmneEj(M?e0|-n5E{04KEl`Fj9R5U2ehO60i-gF(g;u z!@Fxh>oT0S1+_R-H5iiS*1*`O7^>zr6xnZP+)(hBF7W!s7dBY5^nhW>c9?+GVe-6j z2j{*%VTIW@=bJ1$6*G`3zopIsdvk%I=q5?C57ieqYYhDUI|;n}&iJaK&=!ez?i13f zG~3*Inhl4-Oby1OI(kD}j=OWk_R;2I`<$d=`x9xu78t6!8Itf74`F?A61+%PPsh?O zf4IdlBjG%5mNlSK==x9(bfUO$ z-sa)XK4UCeuJK@IRw$qMV0{b{<~%YYvzX*QlQTS75t|`D=E)vsS@Lh5_!|Ajw)S4g z&kk%`p=a&f*kke*Ulj3_eA1VF$X?j?v>)rIi+}zpD6tY}bN>~QPa2z0LC3u=_tDUpF#*VJyc4vJl;}OnyE+M79Ppzji@FqKyw-T|myynSh&1(V^ReisQhnIXLkVOYRNldq# zm3~SR(yIMu$$tg1UhIOL-G=?bM#w2aEQWQL`vd^W@59LEdOa@-O-3HAvo*2EI$$g71`viA#61}DfbO!FR)AU z*-%!e^ZG&lFpMRzV);ZE`lhcuD4d0bc4~wH+i_ib;$Xi*dycVasdHgZB~)G*&OX*R zp1K29(@4EMD}lwyVR1?HX(}T zF_XL@iY2m<^1di$59<5_%9)6l8E(5OBbFYo3{axwNzv>M`BoM#AjGy z$&=uA)Uf0TgJt5Q?#iojLkvqX%|$vKMwW^F+%0a+O*mQps?3$mu`Dda@?VlH z7v+^^mMYJWWy>QTzi?M}!(G{WWrA!rvyP@rq^q*^EwVG^31${%^7=1HUfZ5Aqu1Ok zj^A<0v*KA>`Rh3L9s5xJARbCsC*Q;$e_`LtecQ5^SdM(YEgQ$q%J~WGn9ie}9GJ)= znMLlD$U^<{D`?0IH$;$Wq{o7-pIpx&$>}fW2+b8YW2pvn4{X4ME zFoWC%?-u;_5x_R<{ev3^}wY=Z#<&w{N0EZN8D(I2!;tjSBk9!}~~ zbI(*|kM4+6d<5$7`0ENr@F86Ee;E&ME$j|L+}~f3Svnh`|00B@8q+v=d^#K0=HXp; zoF(@2#dgJN$D80K&Ux~Vbe7D@<;HZDRJEJ-5$Z*x5%?P%h*jSlIk!`xqmQ^L=`bCH zPfv+@+v!9NL$E$&92b`_?RWFVU@^hQd?(&47eBq^kMczP@tx|u?#0i9QZQqU5 z*ITDTl==l*NeaZ^8wxQghLcDn;e)8!;-^c>r3>I2-l$LxgUl)AMV_$tC3%gYI0A`i}Dk%PDY z(OOhk14c{W2{OSZ8NF# zERvdQ5Ij_g#vUq91>v25V@q3o6&tZ1?M3G521Zj(^%DHEWF1y%AwiGyDDy`vUgwp-(@@S2VJV< z*Rok+&?w5{s=^}5*iZg0o5iyB@}JqPW9JK`Up2kOh|P^@M0Kc!TB@p4G`>(Cp2Mam zp2G5rs_(6eFwHt4%*;WyLO}>=F=3+l|UoK0j8t_%CVm49w@1V5kPV*EyHXuc* z+5~O8s+>=}ACJ7-M+em2CeFs91EOqEUJn&tL-bB6K9BG?!m~65`ujnUeYxmVZx3;DBj^z!Mu!Sg&<#bwad|SoML?3ir(6Nx zy+_OZ0jOH$SAZh(GLean=68QMoY)RRg>T^EAW_xDv#CJ5PmsgYq0TScpvRF`?07iZyXQWwCqA1s!+6d}beU<#+feBWL4Q+!~Sx z`|5^O_4cH-9@{YuMrcr{!RsDs`VcKHm=O$dSLyd_kp31V{Z?r3H4T2I!EZI#tiiuk zSS7X53W(QWp2pB$i;vM@r3RO4aIFUS;7>i$?;{Pa*C73^N&2;M73ikMdusU<5wC); zPRsDP1}AB7pawHFXx5;+2AjQAfyXuYi3VTO;4%$XYH*SU`)e?tAj+4zXoLg}hH0=F ze*}|$4H~S|V2uVp(4b&K@U7M|SN!vT#OHgd^1?Jod{n+P-&al0`>XIXt*?L6TH38u z2I4=i(eG%`N6Vj}!8{EP)8GY-@4BBVf685XqI{`RBmAjlphD;uuhEZc^m+~csKJ?9 zMFTX!?KHSZgGpM0`nn3%;2T>0*?v`Ojh1PIWg0_`7N4%c^&0&>4SuGP?L017CwT$^1oUK(bQ!6k+i@W%jXnd7g0x%&t9l`5C?y&N z(qKGB3hEXjs36IuixH$%6SjnCOA#!33c;$U5!BddG&LiX%*zp!Qm~4G4HTroizsbs zLeTs(MSr8{-xQ?)YJ>y|%AE*|jG;2{L`sXiC@>({gb!GxG1dz=Gm=S)3^Z|k-K$bj#Vl^tT z$g2_SQF~Ig5cI3C6jbaUm|w5Oo78l4y+|+Lc76cs6%fAhlxAT;T7C_t$#M6w&~2sn zv77EyVW(B5a`QigXu@DXLMW_BK-iL6NVE!JOd<};5)dXOAnZ#(7?yyrG67*;0>ah^ zMo62q3ZPp>LQ5;;^W$-ZhAjv(%t1|FqCyyjh{G-fglPzve@1N&%s}OLDMf>@5tUzq zupSYIDG3O>60j5XnVpNH^YfjN%6^%`iP_99Y zP_>{gD#XB41$EcxS~|wKpku%bh(WFL{bTaNNEY;e6ij0s^wAg$t^!;FwD|uj7!!vO z=z{;N;D&9p-ej+Yvh;0%UoeAy(Ea%916`!aQo58OO_1&vPlhx}>LyK*GNm5)*Inw0 z)Cq`pK{!d^laZbw{!KxiOypPNleRs)mzmgD*WVeZHES`RJ!hG;=PNOkTmA;QAL#I; zNS1SOARoUs4c>ie33laUkTyn314;bSww>PxhoZN1LA4p9Y^!A{-b$EGqCc*Msp23D zU7hAGSKPg^**xX8r z{u?GOqvRlXM*|OI2C5f%eKweMQW+A{zL8Pe2wCK;0KxTJ){--vcwGstt5GJeMm2mY zkX#S$O)gOfnY*dEl_=x4sDw*gD65bcqq?Yw$X$!vKx8~m5wQBBi zIqne3Zbohe3^lEDODFHOz z`XKp(gUr(>EJPS_tx>JKjF=-MYFjZi z1HZS~5v*3|56kxIqhw6zhkX1&z_8PI`yn2uOsNb+*KZl{{}dGyPML936u;Ju$(IA` zAln>@L4vHCTFIt9_6Tn!JM7GVR56?~lDC(Bt>t1IliWo}o`!7sXYSTnvmH=fzm5Mz zFy;Jjf~U!^lHiRaQ@YZ>rgAk-Y*Omb1cA)jnI+ zD$54oTA$U*fyY^>nb=*wAwvs?&I(x5fA#v(zKdg{UK^ZHI8(+XyrHWR7gbX$C(o-) zcxWbZZ|H-@1G;DlX=zdeXlZyeqSEF`#%!p%CrzlFfNdRS$t21r;t9im zN?D+-pnNKAHqmHhh(gC|w8tNReA4|>L2oz@TLw&>T{$tKxS)V|m3wIS-AAUlPW9X3G+w} z{bw1?fT<5;5>o>0@1-+NCf2sp2Lz2a`cgA!H(?PPEt6=9oBZ=PEF`@G!yr{HL!$Y< zj`&2@*-}1+@l7n2srS<@GyHHzp-%4lEt?qgc>p>Bbxi7kpcs#50QF63GX;|T$+zsj z#AYmO?;&XyawdHY2e4x>atz#dXmLfk+`c!P5K={#6>0r_^rKy<*-|R zA>@@(P)h%~%_OtbCNoxQ!=fbL z3P~cKVMtCIi(n%01#EyI`RkLcAi5IuO(TJEda2DY12P6kZDt2F_*M9pSIX)2EGU@r zpFy^1KOkrl`RnDfdKT4&8f(17q{peT;XustQ}rx0i0Gw=4#9kwGz!SJOY;7D);=gH z744f@Z)DOz_aI5y>CrPuW~W#@md}J!EGK}9x(R+!6q9EnNfgrY2PQp9g>(hdTYl{n zTP}KI528s&5S+u~88D^@O0ps7xLxl59g7eu{u@a`p2uZ0JxUjD@RSUbyd*;=U>DyC zD$|T4!IMlpV|3v@?vfAEeY$vx^n6!(F{LN!&@SnpJd<2J4-wDfy1)?6OerMOR|*-@ zrXsN1SV{#gLt4^m1aIQ;)9V9B7hUG#{F^`XO;kL|CtMCa&5{koTu;oT^z)bHL8n=6 z1Q8RifY=E^Pdx5EWHGC{U#il~;i}gpywb@+KblfRnP{_befqnqCWnX!RgB1?0+`AV}1r0)!{2n8$!TC13uYby1tsn*K$ToYKIetyFRY5|SDb z{Eo-nheoj4xB4_GLI+P`e|IT7!d>#c?q1NDJ0qrQdz}j{t zCAk00q~)Xpe;~nlbYc~#aX;XuyF+D1dq}=4L{im;%T4mS3z{vIf%`SeIswQ`Jnla8 zWEIu8mNwGnm}|q_cxG)mhYFtF0rIU%2^Le z(s=|o@#q8E7DL^A5Ol0S{dVeJ=p#?Q#A1boMm19pB1plb3wT0abBQI0flvklE+nGy zK&DZu&lvf{C1&nQMXUfJ>qP|b;rRlOS~*N?_f~EzlGNEP`3Kh4gO<56dGR?GDNIm* zt<~5Llo$TMV$?ATx-iWGAOqzOeqcQXeF>udsZKO@9rB+)unuC>)PNpOwt4`_kJsex zm)T&EA>q2F^G-kt*0a^R2{KpkG zD^^(OZ(8mBf%L=E#*a*>qKo?^`DumC65a8fi)kH@LwEuLVr63^D-#1z`W>r+2LfFe zDLmOnimVKjA}1N8$V`J2`D}1=n+9Vk71a?eqHbM*bciTz=|DmM2!sF`y?+Mlb`9POPZq?$dQkQKkP_Ve_!gGO#f z8o@j~rLMUAP7|A2MfO?;R@Tl>YB$XTdTj%}LbsXF?MJF!Suhq((1M2q)m#9rk?Q{!H?JQj%P}pBk{v;F&pq>7-hD z^;Nbd&e%t-^6%Z5G(3w*pIB9BLLC1wlXO^~{1a9?cD{#1CKk{2vXcT1D`@5 zPCpy)m3Um~u6Txg;X*`=WSV=*|)sv^Gz{1gvC5<<{he)TE~GPx@58;9Kv9!i$w zSwG|QT&3*z8JEr~<-I?%el3ja(EW9Ino*rP8Pj2qTm7Hxm6b!svk*@lEH>U@@_=R* zt~356-}!}wdjEx$1JA}g;y9X1X9fDXPOdnsNX^)Q{qsjICi=DJyD1kpvq-lMe=)h& zL1yx)xmUJ{JV*b`Q>o_B|E=Xo`um>xn8;uB&peqjCg4c73d(bUnY=dLzS}OhjT&`8 z4J4tpB6sV64!Zx8*pPNFA04xoL8_!_jEYIESBq&aOW+kSNcy={L5I}*Fu8v-i_qzB ztEc=i%}lQ=Rdvja^6hK5wPltQue0_ha+kEuP8vTUPq;2TfOCnX<{unXz#4foINB^i z1LEDlaCv`5%o`>mlW1-feeOA>=vrF?)5P*y3%4Tg;CcM!Dt z!3-bu+@)Oxtrj#omAZcAIKxTEyG(bN?=8HBTQdYp95yrBuS%)~(J~a7TM1O?eH|Fr z++~#Xc<;LreD$sPI)J92U~{WNte~YKZ$&HGOwbmAR@+M6GoaNE6@B!7uLJzw>j3}v zI)L>5+v@<^%5Jia-g3FGuHprqZkpSsKgY@s>U4?QHt2Naf^K}lPp7Y%b^$Ijqa+Q+ zLwGsh(;B`CaGQqL0McDq;%Np9#kE$#&4BqDUJkfO!&d=LZiAC0c%}i;KD87$!8|d3m|LoP+)T@I1o{R*aw#Oi=|^xR9tC(Ape+sk4CftQ?n>3^ zxFJqBU{e>!0bY{ zg8^^gp%&Z(EX_vCkoPK}M-F_>!1aL1cu0Onz)$d$0w<5|RgK=9Qzc0WxvC(#Jn|_X zV)`5~Bo9t-IP}5*_v7gZycRH}7kGeo1YD`%bm!#%5ceg3Q54zVuX|=XlgXXQ4Y>~{ z7Z3so2qMTKxQO6^pnyR|!9@oWP#}a(Ksgi<6dAcBASeo6D~hhDAS$S+VRaP`5ET_X zVZE>T{od=ID+dJE{eJ`Xj;dF8)$6KP)t%SjxaAsv&*_UaAu|m4C8puO7x?ruiMGPO z5AZqtP)Qvn9R}h#I1YFo`11Znge!nQhkG9WUjqLQ#{-83pnu_xz@PD51C1uF2mbvm zbQAn(5N5$(gJ#?Zo8j=!kTLLOaGcH+!1`zy8T%uEu?LO=*zmXuZVUX`6!{I@9?-{t zZ#>6n(gnb8nl$4XLopp8!=}V%;o8H7w*z?ax%g@-=pn#&!A$~P4}4&l6i%m{;jk*6 zk9m!NIN)31z5~4kIP3z04hLR;A>q0s<~{Ila9mKvrECTS-4%E@9CzQFz@NaeOx#68 zk)trn5H}il$i-+a(2Vz8tQ(Qv1T$_7YuGv4UddSL#x#ukpNgSZ;*OE8mwD<>Fz zHWm0CI8Nw&;7$`!Yshp4j=vgx3EN&0@YQfRpeF&p4>y_RfxAz_5P(19dDoy~pcer1 zq17JHlYt+1^F608F(p9US&0!2nm;D66^@&Zu`&&YF8Eu4kIzIxpuYn?P;E@nL%>hY zLJPpEwjKD=8Vo$p6~Mb^qXMA$;?=ci>E}W7{i{KBC@knf4ZLNAG36LcUt48N*9PE``WmCZM*=Ur%b*tlpSc#1kWhc%cj2&= zp!b1CtwZyI9u2%0j%&OGc>Ucd9Q-!`hi)(iT{v*+M%dQjp8-7cUZTUGX8||dhgO6M zOlQJ=zfm*B7i@to2LX&@|ABD&`UU8E(8qwsyogZ>x&nA795?&( zz`47jbl~p-zH*N-04D(Ne936J?yo@kG+;bIW(V-MZ)1wW0>-AL)cueFodNveJE$~F zPlw;pF*4u9hy*hkc;82e0Qybf!cQtv8{pMhGQAVRdD>IoeKOg`|Dts_|Xjb3ApP~BLd^eCe3&o97lcv_z#n&&#|z8 z%W#pgGi+krfgglpZN--x!@o3Y$+$lp*I)?K zU*TZ_dB)Ge<$&G+od2~UUj#e=j%&|fu(}S8<4y;@-=wzye+mZ~+_MCc{f!Z!2zVVF zN7w+IeGJM684LlQ1-Aq=Hjeb#P~b7ddM)I^sOPk z4EXhL(f?f11~5h6q4t<^e4+ExAB}{L06Tv&Wa5C=!SNzx1Mt61|NX#|euj2K2FHM7 ze!;pAbbH{Da9kk9OW`=LWxxka|3f;6zyE3oO#-(5hS7`2j9qXXnelLwz5sZ!NiPAu z7mgFfy+L}<^gjlC&+kTDzK+VbQCWuZJ0|@;@W?;V|JENddO=jeu@Kuamzwl4;BVl1 zL56L-ZW!!XOV$GKgBt|@H-YU6(m-6k?D`=bcgJDi3suZ>P9Ipo$>eCz8NgTD@W28+ z)rS6m5e#R{mt=ctn1-Nx0Uv>z1)=Z|oJhg3On+d$N6Rvdx1011;21mXD3Ff>E(=Ab z=%zlvm2e#QPT>DIU_^t=cfihYbj6R*|8GXHiQKFK@a1rv!4<&Q!Exm2z&DxnBH#^h zTw}(3$iXz@>L@5GWWe`)zk;*=gv@}mqYars!2ET2PXA%x=X3zh;CbM;Oq$PZJ~HXU zz*Ax{D3Q=q;1zJ38Q&p(8II%b1)da()`3hd@a=He{ZT#ev;nNPB#ZA2NKO`CK@b83sJj zq$dFvros>YMZh!Qxc0Mvccr5LIRd__N}s|peGK^RG|YMQ-+thCGSGKFw)o#Hs#>H$yDIE9njREZvd_;!1!T*;71CL0lO9Wha!W5fG>k5!BwCJ8NiuvSAgdG;U#brKu-dG zqBmL!2{Ha1PU4=S&_Fn*2LUfO=_SA)!f~Mw0}tq9bVmiSUJo!Ci9QVcF5Gm`hk&)d zXd=+jz!$+S0KMc)g$}?iVgG&#-2un?;9=l@z%BR@tpfZO+!D}yX=Ml8gpV=z2Pm`< zj_KpT=M2Q``3(I(9>iROp|^p5hhrf=BtIPvLNp%uW;pg|{D?{OF)|+!vp-`#DQ3Dm zum^5C7MZ(&`COCJVa&&yEW_A6ST~qzFssaf^s~`Ka4f`!L44@*+YbijQyKPWj8hl- z3AJR*$0IrDW5#@R!ZM8c^o9Ky?}a0b560h^^s$K`_}V{5V0lRkC`;T24EX% z`19KU7n(G`6tK~x`L%#{=Nf&_ZwHKp<8=5XfxF-~{lHe?E_#Mjp)=qz;X1)hfSU|g z3%3N$1-ApP0d5%FA-GL&$Kayl&@jM(zr{)D5x8w|^Wm1kZGhVfcLUsZxI5t*;C3V_ zv9tt4J>0`^wQ&2lElpFuiRhKIA!CCJ3s%Afk*+|KH`Z_5v+>x*qBJ zsFoU}<4~wliDJBAP&VD9EC-Tn_Q)I9fGBcNqJ3a)paO zC!$Gy?g;izbVZ6k=d4No?kG=87d3sjKYe#J0!L=#UwGlhivyB(#{_u$Q+LM(c>5D~ zJ3TYrO=}m5R>0vY3hr6+ZdzKGI0&!LO;n|*VX;c?ln|nJix?DJ^WqA_8WWgy8*)i# zD$iGl7j5v#Mw3OvT0CdecT94KuPYvDuI+Ppw33oX&dwIfN5i8fV$^E1jn$!rg;-pP zkeLd$UAQ{S;n_Dnxt(X&Yw22|Um`hJ;s!^ez849h0b|rE?w}g9nbp@9IHA@pbJf> zv~;ymL*2Bh_K_4&gah1IH3*?RyeHugDkrTuKKbkNhH(CQAYC{}|kJhZ9|mdykx z;1)U?72}`kLeg51QeY{vTM|d5mRSnp3XEpUEmp_n6{r?>7DuYQ2L-I$0uZG%CZO)B z^pGnXfmJyGGtso2ZB&Fr(M)K1ZY)Pam==p0BnVe6R-06wdqO+t2r1GuSKit)_6)`c zV+M6oBX!h4Gn&hqTdd{H?toY|r~8`7;`cnm=V`0yOO0jw{-{@B(_3GZp&kdldiAdbxZxzqjGBr(axfvyKB$Z_*o|I@5(JY|1VbON) zqvi?UA`1*J$IKd2mN2WvqVl#LKqnsK5b zKV*|dYoA_Ls$}YkAh}7<=Z*sOzJ;!Z1SSCz<6%{7u@oy9O-)Baq6-7Jl`$J`FN(DX zjoD(PZceRpBs)wU89!DYK%OVd)%4C#T``tf<)~Ti*|v%cnq_IVxH=(LxVLpY_U>v% z5k_&0TCBzu@N{)JG&f`%stX#nuqZ-P-6deFx&Rc!6?iJ{>6oSSP_htaIJahus}$JP z6`-hN0$= zIhHGU&L~Y0ly9?AIT79Pmckevj{$%w!y3azb5R&Q9Hoh+#(0zpH>OP8*wuvgdP!3KqM5#k2udU&#~zi4gW&Sgrw)TT0`?VHG;Rglie z;B-(|PG{uWzLU>X+J%@h9(So4ub7?*M&hG_BSv_Jo~C9s3o|n2FjwNm!7(s26l8Vr z+DAAm&*aloO}W@}Yfm*^XGwbqcSoT^3n~4e;5_ex$R!%YHAsdHnk0hwk&AgBqgG-` zJ=t{{x)2ZA#)Ld1@7LPwuc?@7gMoQyYBlF06Yjx*g4Jr~YcL9}u{wN_gM>mJ*yzi% z1L(g6&_e>~a|{~&<)|4dwCd`?*_|tl3o}g1Q!B6FvSLPQHN)YrCKy7MbKsqjpeH0I zN{&r{t1}|FFoK|lFrG9CX39|%R(S)WRw2wWv)~!bG)}e@{mV_6TWrZIw7Kzg!FtOU zX?39@8lF&~FzYe@cyOsyjh2kTe@l1<59f|bL6pVS+cW-j)vfa|k-3uK#)HEFJ?HaD z^7@rw;8n6L;j~u|tC_yTVB03yX zF*jALnjZ9AG+Z5^zmNRg8&PVl@?0Cp2bfH7Z#K}q2D*#uX#Zg{utJIMz?{+@?roS= zT&1~TzDVCN85k*{StKLQ^l)FC|1jBl9AC@n5xywLnS21}W15y2)Y@DsBZJwIKIvmj zwvd5e_{J!oa8|TmSn8YT4(`AQSiopm{p^?~!U;`;UuOYB`1IJ5$Ue;ihHSp`#IkXQ zoF3<`7MHZ(V%5ciRK}=#3w&Hh*&C09D;e`LDJKG#lXy5M-eNuxFwwkEgvXI<)pYRw zC&CQoFq17cGeKE$b93F*A|MZjawv2>88CMsgeOA=*2d(<9D*uoABQSnb~$pZSouQz zt7JrW*LsfkR}*w2nuT&JVIZ08s)Lk!4vRwn@NZ%t_grRkt8Oq7u$l=pM%u`IBm5fi znW?FR<;epA(-co01kFQG9zP{=b1SF6bA;>sj(00 z98`^!oI_(|cw4LCsXNQpPZ6la{k{^-UWKIGt0hCTz1M(gwP+j|P&8T7n0GIx>~v#$6ax9dk%WwzWD)9>W9T&4%=E-aNb=zK)C17#W46^Nh)QvgzXK z+vw}@XtWh4*>p&*N2;wh5eEh~kufOlhOaR=cU)%7<<^=Z24&UTR#s^T$Tw>TSPi{X zn;XEVc4FJu#JZ_AARn|;^{J^08QvR=#G$9Tk)3T!+)NwdjgfKYGC0nwIpfgedGS_m zb5GwY)v32O^Y1~Xfz50*E*(3AAF^J($ukp6H1Es|?gTu_kV4Q{tTM+-yss*-!nHxY zLcTFF+N?{ow=O(<^3W6i&G6C92Z_Jv)Z5TD!9@?|{HiX&SCckX1mca6VP-|bP!WD! zHHNe5^Vg)ZKM$|_&F15rXP=5bGu5QOMmtV0BV@Cbcxsh^cw=OeS&1ZXZzQ1(*R{|a zC)RfprIxSb+OR4&^ojy*kiQdQP-^{|9* zVFqDp%{7NWOWHi8t@TD4(B=^5KGV4w8^eP-?V}c|apF#E+7OO}z%^B6d$27(i7q#n zXYEd{@DLB4HBtafnt%mCHfv1sFBPztB3_u{Nf}TDlksI%pwh4mxkTTyTUg*W={l*?Y6=pUwRVHSmQN{`seen{e!hG~_#gi3AF z4mw)wMC)kCdl!A@_2K;uCWeK3@^0zLi6}?F;+<<^u8y$f3RoRg)^LGq;U^0fmNVv1 z6fac$?0ir0IJKS5i)g<=ggLK4WE!^WhCzg>V1vkb-sp6!f`vh=#a_r-a2g-ovFSmK zzy;VMbPlIp7>G%{3#!J$9p5>vW-CCL*5h@oW!e6qh1>NI|6YpsK301*L-)f7HOYVY z$;bWVR*+Q>qPP+E*;w#fi*phhG_UES0VW95bro0bAqGgzQOi;yTKx!Ep=M9Vq_h_I zOsJfXMvL=DOS%P{1{m_vGvi#ypHGz&Ov?2rr-ekg0RSX=;qto5#EA(way_GCKph_S7A#ljL3t2M@BgQdi1 z?wtsCKL_Bn##&vwKos{@6LKA5zfohXHQa8hVaCDGfJLnE;7GNaeVy=U+!&AXrl|2| zBqZ|!k_mCW2zW5r8KR~)A~oHcOiT#hr*#~38vb5y*B*El^lguMfL|n>fO=DHT7 zByO0vkh#yqg)N4dxUf?Oj<1<3c$VSqienR3m&ymYvtLDKd9V-I=^7L;g=dCd%~>@a z6+9>$TElBxINy*+G>1eYU(Hq;7#KsG$3;MwqDM8eLlvV#L!>|RP<|K|12RY6X#Z2n zJmF7g4)e%VqY>pG=?^<}1a5lILfg?QYmj2oWu2@R-a>u> zMiOSlNWy`ETcxVE#RK<-&jnHW2$yg_sHy8QT;1=m-_uR=KwlY){MIsAA!+&+%JK|* z7k=`9^H;m=rWaWjLfkMVA%C$T`J3U@rbYBFJX$N^Nt)r~6E=hHH%M_!Yg)_X#LeJc zc3^4P#?F^kfVk(XDQbi{2w?ZA{I6@D4Ml_XXj@k?GP8B8D z-Ay{*JJDf!I+a>Oyvekc-3b&!1{b}_H2o9SBclnZsE@npr2Wxbui(+Eiy;ZmY0RsW z&06U=*qywV&?cidEcs7NV(bol6D+q4v$zDA__qPR?(xq?>@!cLM|8-yQlCryOnpvJ zot9?fT)ox$tVExnXly$>h3HTCNVpU#k6LVgR^=;d5)Z?W3Ek0EKRDBNw*LPQw`kK}CsS{ml?_*ow zrWN54hE8=-53H8at4`_N>VwG0zk_1VyMwC3($3gHF%`Uns^Ya!$ExdqYUdy{8LP8) zSe)@aU95JoXPOIN?3r%#jF_mV>*%T$S87gcjJ4qdF2X+nWbfczC|16KI{P<8uBRXn zyiSatauMiOvD?j6|c@_;(m=NHfQ2Ddh z|6p>Scb~{H0z)XI`h+d>39|FIj0>BoLjUH6_daNW0zC1(DtHEZ?n`wyLfh;_DrdrLu*h|e~9I)f!k|G`6adm$h ze;Lhb=WUggU-~Y_?%M5f&rma!n>=Qv(mdP6Tvuxrp+s7>AI2)~RCIQa-((BkA#Aiq}|+1TMQi;YHp^zw_VZ#OaY70Q+(Uy zR>AQ#w+NnPc=P3O^R^3SKcSO-CWPD84)|!alB&b6kna)HqI`TWCXya>5M}WE^IatP z0R=R7$uTKd==})Zzf1m!xp3Yk{|u_-UGgs?)50!UHLnbeFeF;oCi@Q@vCxCE;Du3} zcg&t0SE_Nt-{e>Uo7icngc}uZx|?hJ-dJu57)8d;xAGQl74$&hK|imcYJTNRZUf*3 ziW8PsoMH~=CA4|Y-wDPNGBGx9zD#7H@f#Ni&x(NS1EHt3%7l1hWC+$FIxk2< z$n9^2jel`7w6tpWH$&4s?4NB0b4;D`R{s3v2i4Cu9a!tQrTH+WjSG3t*eN(QGg_1v z?gv_E(e+5P)q%xNv$0kdG4C)8=Y*o z@Hc&BBC-rPD)MRSQ{U1Bbp`iCesE9dRloB{`mZl&7+t{^GSPeRF8b zv#b(dyb5TD;3hv2=YP2QZ)>z@l+m%E47v;l`DSf)QE;324od&b{fQ>S7gihAOq@e2 zodage(!1${ZvTg`a&R$CiOh>0wc!+!RX{(7;mUWtfG6Yyi zy$8Lzv4}X)fcDxhQoOc{6vK9*B1OOLf;q440vkfpcEMDz?E*TPZ5MNZYH!Bo1)t?- ziW$_JDMHZwFUanTNFYFYI8sqc4TXb2eTU;SX#Jfc= zk}Y}zDv9GtjrY%zt|S?U zEr&f6S`Lpr*ly(Qz`_F`pde~B2cYp7HO9Nl#?vJltUO`OT5lgJ(bT}fR+U}oXq+gs zQAM(ZQRNPQp4fz=V+s$t)oS)-iwffa`vylsGHl;Cuxk~bHz%kV^i7_aoBdW2ZWyyC zhpMjeD1_?5;MS@jikE`1fy1mYj*A`C(SlD11?}LXP#ALu_cZG(d|f4A2Z!&dh@!F7 z;L9n&JGe1C#pR$AA3%T*Z{gxhapSx#xjiZy53i|@VbHk~Kn2|vAH(6ZQQ+Jvd}f6o z+)YnNjg)!o=Z35cA4hPwlUcNKA@eEBw-dhE32J-xK85`tih+|aY#;erxKTAtC$~`o zZ2vOQ@Z?J6R1FdzVnI3X<#N;^vfN^CdQ`y`+>b!xz%d;$L@#1_TJ}^|CnLU`l zo>Hb!66(k_O72AW2VU>MK=2tQIn21-fm`%2N@A3Fjgn9WcwMz}ACIgK&^#_^bTPmf zw>_XOy`~zyrXG>m#% zL^T(sC8K9pNJB0+n(v8d8uj%AtpRxing=fMTz~_eGt(RP)=jo`*dq@Xj=u;j)!q`YJokUI2w3we|xsHU|%I52R7 zRn?W#X@`1i3QZ*MG`PF5KufPTRO+`Q_m*;UmmyA7xn$+NJ#sf>-QD4}@mYSF z;geQ|GCz$8ylLac$E@H30w1ozBke@xx{uT9hEF}AU`#jJB~<<&l?$ViPo~YG!43AP zQ7|r-{~EmSM#x`XF4W)GU?*&^H~hu=;J<9HA2}(r8!tb3KguJ8ySRyI^c3xO#^mGO z@$b#cZ(MZ@vW<=Z=8lwBsfWY^?y!b8H1}9<%=QFAA9RE(*}9 z=AwY9;6(v80(^34p>fb|coN1`!Lp9$tEFZ&%T})f)EYHJ)T++l9I!Vn#K%jzhiKI- z;l`5Q;rh{o*=L#|>(-j;*2=(&|b=cGrWDRKTJjiPt#Lsm2{(^B5eD@W3r%5m@(N#N&$q zX9JsCM9v#q#Jd^Esz>KNB6dE72foA;N3G@%>=79?#$%~tTm;}~Na$}!$h*PjC4_zU zT?oi6#=Gg`AJ{2$zl9L~qbb~2vOEg}~)$lksf*LifrnRbb(ZFuBr30VD zFk&o*caM$O9DDC(OJSsgz1w5Cn(g=YUd{GAcMlBFSgf;=qaHa07&$Do8zsm1#h|?h zK^U}~fWow*5mgn)F`N%Y9qx1h`R+zUXwkLyQ1@^y-gyk9Q=8mD=Y;qU`hAS~JJJZ( zRsOh2;lWGQYWC(!=!^rplw)}>p(naz&bWBpkNVo!xFe}bYB9C|~+h2}4!6y~iu{bi+Gf6yDughiGiu5MQ;EOP(XRW31ms}}5B@Oc5%${Q7p zzxTp(NiuxO8;uEz9P7HedozTP(Z)=eY4-32Zu15*VUcq?{wk2s#!q+ynXs_wT%YU@ zebO7sgr$=0$^O9Y-asZSaw^4NIx^CI+8fA(Mb0tI;{JdS-Ccme%%e&JeIe5?8T1Iy z6I`zt%tajVszHxr`gPC+S0c(N=AhR&`o&DYz#%D>|HdHTQH91cnu7_8Eb(1ErDR>y z%0GCd^a8hb@?o2jz3S`+B}+%7XF1Yrj8i5omAv9}oz9WeN?!8u$DeoySN%N8@t1gn zxZjBA8jE5S<8xmexw2h4{wx&V^3q(F!oNW7eiY2JR#ku-ZdruE*3N)cO3Cd=6BG_)XH>ZQ<)9mz7*ckRGH5nC6akIe5&xF zCr56gdpwZqN`Sn=GS^kipa71d$jSjCIsu=zMNoU!#DJiSj3CbsThzQ!P}tB|S0i|l zhN6juB7iSYtN)I$9#A<@%S<+)3ys$?+>^jgW!Afs?cso!EPt+1JjWk(#>Za^5#BfB z%f(z>{M72np0y9CXP!3=K{NS14SfC92%@S0KfnC+7Sfp6g5NC9LtCAR1+&Z`m0%R) zPadIuHSp_^DY-M*7>ZXYCMlj{Tb=Q`uRa#{Y!*{lte|19x0=D;7_>(1gS}sC*&D;U z1!=rK#2KB7j1n5VMDmv}@K*%Ib8#s70unKgzYZXt&!x^aw(l5~> z&7`+Z;|^!U>u6B^5-R)S8+n|Y&FEQMRUMcbZX>m74wG}4#2rjV(!o{u;+LalGV`2f z113s9f7je7@~(L-#BGTI%@>4HP!Rq}O4$2z3(xnaQDbx=1T6$j%7$ii3TNrY(SRdy z6b~S?5Hfrg!dD_0QsQ?L{LIYaB`ZYne)9EZgrTB~3=ta6C5rV5RZD0!2Ug)DB}O6v z1Jb=%JULFYgqI))2`}~Rdl=u3yUi4AdBi6AGQ1sfJ;K1^qywaTnHkSQ8ir&?sr?=B zOX!&TxunHrX>S}R`0ysoMTlUq3sO4q&4Pp${)zMJJR%T1a2 zCy^18&eJCm;>>>Z%j9Pu-EqfUw9zjkWJ?LX z;FtN3$(Cf4Y+s?hGB_7$GGYt;Lf13dQbOz6AoE@uWCmpDz7i$pw31m*4lqV_t1=RB z5}APMI^LI;-lX>P{h9fNn#cr<{H8MaDBoy#d1}Ky4t1Uz%|8M691|;BDdNBa3keyJyHDn1 z3XOG@{{K;-@px@Mr~`CEtC}&OTU*s15@3w8R%JS5`UiEZLjN;`#=5HMp#Hy9Xspk4 zbGo*w_5OznjrEzF6Zl5#|E)q}UBwTT+{#v!)&EqXv97|!I$!PouN4~WGyYgf<*R|p zDp(Kh3k;I=zrx@1mS5Gqr~rT2v)LYV69SCY+6k2##PmSD>uZU>O1qt0xnWWBKU%J} z_%v>&+*(@H{B_#R_cU%*x#|B??bhUJ+=6mzuK)k4 zny>FqsNB5zzg3|>yvEH1}v3YU2-+qjJ8%bVJO z0=25S{+hig^nXC9Tg|N5X0(NxwV>Ua)xMc>Yf1mhTFh9vwz@29n|AZ*fL4{8{wFu1 z&1&{1mu}7Vf7>>rzM8eFxZ1XK^Xvas6AD<2G*wEzIo*nO3$iZ-jC_AOrv8VXnsZ8< z(Y9%~)|K044B*-y_?}qP^MNf0G1hKLwi9ejS?r|R?c~Z$Z*}+jS7Xj`>V8D zvvis%x0dvOzyN7gDYZ?zom@*A^UrwL__b2o)@~=)ZbmvMQf_*SrnX>9+uJ9!w1wsd zSlR+K(n*(oq8#<6wm+Xrk3zbpabzPGAYhgv>GHr_<*>rHZhU}MYm}))0}nACH2nfi zesWgWQtisx$wL2e0pMq{24gPKI_84{SmeY{1cujV-n*$xxZMPgFl5IAKV{?i^t*q2HI*jwE*XyfPxI6vIlN$t(`UHeaQMS2c>j!l8eLQp zk*d+$xXcb3?Qt?x<1;&Sp;gKqHjQ3P3^5VP& z35bS-P%QXpRG-gqq=n)8W!V|M>9@$WSsH~&;ht(=WIdCHr&e@0lb%YiK$cTeS#nl9 z!w5-dRA@x%Kw6iqbMT$wRnUclKTL{9J(~t)6sMd=+q!VEqRR#q#M1rFJl9Yf7TGQF zJj#sDNgPTuvNyz3QfIV5EDdz!xyI7lN?p+$@fk`t2qjhx8jsJLTmI6 z(w`&nJo=zRj*jHk#||nukDdb@O5=++;6a!)J!iX+NkyqwDjyK&wH=QgQO2f)sjLnbakXx^@^C z8%sk_nG_6wNnK*;`+`9Q`17ra9gpOrG0}e-?J8sVTIBK~jTWmBsl6##S(_D03nV$c z{Yv~Dp0bQz(yykF!e7#_rEZ|Fq(z{wq=DJ&v$Wusbd6rf);na8J3p%&sbPG?(uMh4 zpj{~p??7r}X+^?$HvEOctW5U0TN*h(dr-kmG%}$$C6;b19aONGCUh*d-A2x+d0k^^ zk3=4hQqPgWHI#Oy4KEx^+tgCqa@vaI#?ljLp*b=b$I^qHO5t;Md8utN-IbUF7*U!7 zpGS*l7LTQea%UDVCjGu-7K%d>x6$`q=5@V|{*}&|UF2NpT1-XJIkr4HL*WsgjNz6? z1v1)SN84!hV+{Lu%hfyNQMdFj3h~}?Di75S7^E{PE9ckjJW9#YJIti_UB70}q|KQO zp9ejgzRCS9Bad#>CE5^Yc7{g%r3)ryW+Py%_+JKEqZ0V%Q4W0aC`#aPg)>{7{A7MC zRiQDjql%6^MQ31~$I=LN(_;EZ3D@}9T!z(2IheE$N;S?_oGgrExW@H8v#y?W%bOc4|8_Gj?4Mu(} z%}e8MeV|Bs9k3&1BD5oE@b5_Pq%tgy9HgT!dAN0?BjWX1E(hF`#C<$XiA>S(8STiF zH2Ng@NPZXk2Bj{eeT8>f3aB(Lx2S+B0L!SM6Zb_T25b1e)N{Np#=E#Pdzt%L8lVm#6t29Oxnz_3&dFS+$=y-P93IAo=*VzpJK|rc5<}P8I%eI0zte7neV)c){qRVs zMbREh>X>Dt0pK{p?l~Q^*3m%xq2^G8_3g;<22u|x+Lg&HIgB|-zS4nH84aE*ab4Dd z@N;O2ZnB@YKY%azSK<$^b6`TA!HpE|+r(=+J%+H+WXX)CrFfv(=sLQJ<|4y#GKMp`Fau4I1?t(PqNrF1ITLHA=tz->4}xUKZ0a5IG4 zM$ZX%pK#C68<<@XU23xbmcW6+JxlKhH_q9qAl32$eJ0#DDetG)=mk28Vi3*j*1H{Z zU&w;u2eh}r@ko9b7x-+{K)*`Zq&(*SMU4_KHJjtTgDT*HI?;U{4A#oupQqVa%y6K= zoiE&b6e3|B;SP{PxV^%CKoP=awC8vqQnYYCNZ7~ZR5EES_RE>HDzrP`oX}o?*M#-~ z{GgLlLH%oN2@sl|oT4c7eP|l!u3?#=Z_ddDdj=9ii85O9QGc$YK~8$MEG$ zhO1&2<`zHci;xzz8$NZZyL~>T39rEC+)Re23;aXiHv;no9uOFn%rc!rUh&1fPCE!6 z{iQNSDRB(jcVhTk+Cdc$qlAwDk44?6;0dQOeHIr59{^y0YftNl+L;!He+cX&KFY^kc*dYbHJ1G zGwlhqk_G}kLZboyLvFi9_S9Oyh)iz9s5ox9&$4fX&qMh)*%kVk7Tb+9{pmd92$X~| z=AryY9W1&HaK8F1;2yPkw9msedOGE6z~F4Y#bu74>Bm<5Yw@9w`A99edhHw+!QAz= zBTd1p; zb9jtGuVwIPi0{VZV^lKJZzc1%(ckOJUg5w^xN_qnHvB({uFYXMrLpj}9^39~(@OdCM22aExU0J5g z%CVdn2f;ogCA51P`%jWw#^+s++tO=0=o_2~6r1_1m6<ZhdN`gE!%XhG zvJv1$n%u+5mw>AZ+IZO`<1h$W*p6k`6+4w> zanyPC_d|*m2lW=N&i;K!3AnS&u;jEdC5(od+_^c|fm>j5HXEvu< zN4J;0szlN;;pS0#)?pUfMng=FyCRJ) zG&$~ybQ)uF+!g6G!Qga-`yzuLGFXMXB7+))tE1UD3)C#ic5#MA(Q@bl;dso9ryLqB z+;UR8gjl4JsFs#zY);FwNcDtEEbC;E1cm#=*4I+X2@0o|b{uRe_p#F=hgsys1_=x; zyU@}@!YsrY-maWxaxW^oBQLhVl7pXxUR0ioyv)+a$2}1_*)ov6kfP1C_tV~>v*=sl z>g>ZbMLmmtGs9lhqZTNG$jZxDsoZf3fwvJq9_mU4cactQ0gw0ta;D*xygG24tSk9yGgsY?HyN##wDYQt6P0!dbwwzDBOz!5$4%Ulk7hbvH zG+#88LWZs4kgTTU;fo&)YClbe_|)25FJ8c<_sodkXw z8ktzEjG+w%ryLBs-!_ICO|DtWJ#`l8MrFpmL|>58xAgT{#-@6E`f9DZo05Z-~?JCVIL|v=d)hNMnT>5uy95}CsXwK95xRH zU87B=CFk@018ll;jaEr}E;P8({P6^f>;<8t!94;F^{=yc54{ZRKh40wNyW$&%&@mqTeP3cu-Kw!(+UYQ8eb1eQ>RU4yq=U6 zjX%ycg>%r2#;>J4Rm>WVUmFy$j`o{j+!b}S9Yez_Sw}AmH_!fH#v3rb|I6f_$xzfe z^qI+h)3sQcOW&BB+N}hfbsDEKPq%MI;0+XRu=ZVDOTcBC+`o#7l^ZGFvK6-sJ8^yqjpV$vvFBlWwL*O>S56>DtY-$KXVy$~2@|fHkXqh``t;roi%iKX*P41uJZ(yyo-Q;$ME9!FEXL6sH?$TpC^p44X zTe>sMLtmSm+ghyLNk5p}Olt|aFx))niFcE8W!MTDY;w7s_Q$LYs_!bg+z7M3jrH=X zCSg~bVb2%G$Lg!7(q!K)?ijm@=9`Jm#X4|xP{h@=%#{4r_I=c9T5WQ_*j|ZTO&d*a zZ|obih8{4vf5$578hYI1c<9|l&zKyKyt{PTZL&Os*3#=H$3ti>?Ke3s;SH*%LnarU zps4i(&BJYBf1%48w2tg1_g)u8T}Lq{w;8oxA5@9;)XNB?kkEy(>q#GLurf+F&;;R@ zQ+n?Gu^WQ4z(xw6!5Q{Z)^|RtZKSCtmr}yq0+V~GJ7S?Mc5Qna(D+C&}X6 zNP|qSAmUwwO{(U2th)DFH_{Q|H2PcVTy-Nw&ywe#MkBC@*hm-5@`|P+nd!m}R4&RJ z2kuVc`Y7G=t_HUyNV36{tSIH89X7d@C7k9@Cdc~<6uX9V7>E@GSGV(QdHyBPwc4#n zbPrBPIdEu)t>E4l&UoZ(q(yT%Y>BL4Hqr*+ypm4{=asBj5GXlaIIrX);k=SvZ;|Jp zH_;(r{n=Lt=M}Zz7MN&;aNb05WQ3nra-=6vaJ;uM4o(o9M8{qY~(Kisq zc{P$yXmppR^={rZZSe_7H;ba9TsX=@4e*6bUs1SDs`yyU!WoGg-Elv5c1EXoVPKX< z;~O%q(c93L3gM8I?fyk#O0oziPn>%r8B^>~D1Htm=Es;^Kmd1Qw(x*ya zi_xIMRL8lT7sAj;L2pY!L!`m4lp?l8-jF$vgsDuG*p@1^p*=o}iSEtCFb{{z#i>g! zKD7Fz4sbRMF3DVxDIgnaHUiXTSW<6H@F^fr^CI3gSmq^aQle5i+-Yz< z;d;TH4i`gpdHKkQPd>usxM?aJ-K_MFQSKyDMG2LG19HDcB zE)u#(=r|bUo`MX+9DzjwLy1juC3J76L)2H2o=D%s3{$4irpO9qBAuQvOsS*SGjCKz zQ67vQqakyEZ)!h49YuOw-VilZsq5rcW0Z4Kr>Pf6_QUDd_{V8DHO9}yAM)bn>Y>a^_*E@Y zMubLN>&RZ7U>ya2MO}&_@~+@?btg;`yCXBLlLU@a#&(;l&Y;h_)mv8(8!T2J)Ag2h7G0-hT4x}ePppqfA)Zw7onL~^P5lr2 z-;VelN${h41-;k7YWq;RPIK6%ibeRi@@#B^?WmF&Hy($RT&$m!0ct0kqE^TBv@ODh zceE{2om8ScYr`K#HuWV{@aImMXjy?Q$Ehn5cL0W#?gl)q`)eURq!9ZoJ<8t+ zS*Tmi%RLzKq2-$LPeL{kTXvq8%z9XC$v=ej716$y)4HqniI(GCBJ7!#*V5zcgT-I5 z>gDb1igk2qRfuAp065Vy2U#w(tm&kveJwX&PdH9>Md#T!i9KmAQl3botRIy=Vt9<@GI+TAfl-C0_qG{~6v zO~%A;GA4eLG4Y#>hM%o}OQ;I@+4^9~ZI0ihgFr%{a9>d-xa>bVtV-Y9l(2Ax%O0)_>M|TU&R$*?HbuQ2JK1$=|MFg8 zaU#=RWZH|&JJzSmD#NTwI^?IQ+ifeu7FwU|wl1uPjdzXk&~Th1R=Dsk=(4r>MO;-5b$M z0{V-8fAL=`NiVgHv}0p!<9+cVDb^4v)(|Py5GmFWDb_lXUndPdQOQbc7r8=w9zn6P zK;KuCANeHc&XFs0+p|UGkw?&%&|2AFvf41I)ei|Y*OA>|CATmRw9y@J6 zwm+&(QO9VnL|&krp737eP8%zkBT}r(8O<5H)6wmC_)QKO}BJ8jn#%#XSP zsyEY`q_EX1NnuOaBoyLy zPIiiVtaw87ROy0Q(gm}m3vMuz8(*?F`Zx{f`gQao@mZ$yOiGTKLHoP)h?%HZlFo?9 z)MjcUVtUxvV9~?IrimUlHbV5U!Q23Uwks^Pu^nWoZA>KoHg&$njb8$&#%5~mLQab< zp>M-423+3h(%99=W<2#p=v;NM_DrYgu{}h7IN)w&xb_3ASv)yc#D*%H%iJo{>p@4@ z-0BwTf-MRkX)aZGJ32~x1)JF|(kY{~ekDhBFnqE(PK)kzBzB?}o_ied5p0zwYL*T^ z#;%aeCThQ6e>_pM;~Z;?!e^jUw84@PkN+uJOm|L{&qD!ma{3aMD$&j@3ZI|iF_s$b z+=pr?>Q<@D7KKk#>p`bF^(`_Sepa5K0_Rrg#jQ$x=}y|JeBHhrKDTr_U8`64c(q>P z?05W81O`li5r(gyo94HsSZY0u&j^`;bbFW?W5=MLH< zvGxevAasM!`-R>w^dX@S34KK9BMR0(vN;Y|9;bxJLP}taz+{1$0`moy z2((jwTCUn@5RBAz8bYf;52Jd(3uq(YNZgULV`cOZUKSvqFe^J zOt}j1PGu6{YGn#wy`-~2;3nld_-s+C0UuUs0kA;Q;LBh$O(Y3hXOzoWMGP>jWMWNGeNa2<#)ULf|fe9}Bct zSSDNGU?!;3LH*nSk8x=0ymXDQD@RobvAvat_FV>+)Uo{Dz(ZR%1=s!8mH!} zSF5ws@7234doABt?AG?yd#yLwUbWq*9n!wnZnqx`J;O1`vD;A>wm&Q_{IYN*;--kt zBXoDJ#mX*&FL{mO6Fk3r;I`?a|o3<3dgjA9@#dg>?#-$M}@_1&!$* z_Q42OV7jqkXCDISK#XwgrK9m##~A!&A}2o298ZO~`%pw#_y%P@CU^m+c_Ecj7i{2r zQgt%=i=N3V|Lbt$9cV!X>JeR@Iv~EoA z?#l4nB8Eef+5g+vTVYmwEt+YyoZ(iXcPHNg|Ldg?S4akTMsnzAJI6KXzjtMy!y^Am zIMYAsr9UIuY%2@Bm&jh<77v24>F?T=fGJM)F)}kU$V_0L54tdXNaU~We7Y0YO$E;E z*cbGgoWX!YBiMg=-noFEcVhbCa)x`8E(E-yly1qxT=H>)8KO^po;Mj0-t_x(Reo6;bVmn(@q0qd<+Cs!G~ewI4F$me_<2>CLB=3 zoo?e+cNFLt{8M3SaUwKT3XqH8q);B9N*!>c2UaXV6(cAa^l5-9Mo~M^y#Q5=q*Tzo z0af}NhM|H7bUNsfu>PocC}*?%Zw!!%`wY1Vz7&wZj@be9Er2SH-10%+3aH{@aUtl9 zfGXXC@vP9jfGTamm{#aMKo!@IOF(Z1RPi`21^ob^N)KYZEA$YciU)K#=tlrmo&JH+ zD|l-4K)_a%UZKYTReBtyS7;lciaX3_fc__-N>8D&aXk-ErKi!%3Oxg;;%4&z(7OOt zdL9>UaK{r+#SOB-pmzhRvh^q_sDDdSz~4VX-C(d|ky?I(}Yp1ua%o{oXeAiHuqphNK}nG_B>lOjQPpx!!| z4p{Pdlzi$BIv?jQ9;KAtQr?5rali5b;JeDlfbT1x03K9613aW01^h_)3h=P<4dAEB zw}3~KAJwk(i;`~nH6^@Ve_BZEFeo0v4*P9-mk!V-*Mx+xfOyn;xc3 z(ME*K4w)bFRmdj$GxkP%bf_zIOXy7wXIM_ysIZE#C&McuCPwUxcsU|A@?Vjoqi&0O zA!=##+UOn8_L%6HNwL#n{}r3yyu>-#dC>Wl)2dubo6{6jX&n7-g*H(xr%!Au`0@0$ z@K@2>z*2AVN1RL=b(2p3@#M2*!vqK zSEcy;!teLCq-TN1C0;QnP3pq5QIt}sWd3!-F$ezwBWIPfPjCUhC~WR$@znLUI+Z9- z<{4I}zPyMf9MDSs-(A84r?dd)Jxx)vso)R=(h|O$0+mt9Q2^{b8xa1xhxRuH^XR|pbEc@69)bTHp0BF z;-v?9-fFgtF<|aP!zbWrkO-FqmkigAQt-@3!DY-;==xO3fXjr-ftt^S%Y*9x=Yq?J zN$@>D4T5Y%4t}g}Rbv zmw=_$mB+0mbPeWVUlrQTQbJF`eF*ovozf!{*q5AcIx?p3dV>-cwo>2M3+R>0N6JqEWOZZBL$>{IHQvG=Oy z1AiRl8Pd<%&eQm;HPUliKWhe4_HFO>-1TCIAX zbM#L4R1CI0x-Iu?>u;*3^c?H{Z8<}&yA+ROn01F|*y42Swzq~^Yb~CyI(AIXc+fBmyWewZ!2>}BB?!tPiVP%Zi#d7{uocCF^%zhzpm?CDpd#vegcVT~T-f!(6$Ecx z&(+mMS^R$Qbx$%NF8cre-~ao*!2G)2tEyL3uU@^XuD&)tf4OptW8?A`tER-Qyh_j$T$l;DlCjimI@^5@M;Jn+Ix{wpAaV_TCr5g-U!K=YJ9rDwVaqO%8$@NT^P4&_*>y$@srq6=IZ^MG%E0K9 zyOgaNDWt18s5B{|0gmDX9HE2gxvP~Ka<385v5SVMMn7Av92Y(3PMBTk-OAh1l)IF) zsN)``Pju`(N?BI+c+N8u%MjEBYZ|)^V*17f_bBD6ci>Iue)hzkaLtWBzHw=5Tl5dn z$JQ!?Pj;xOGJcN4px>>eV)2nGr#h4ZEJz6?0-3CxIT~d6$X#Rsr zey$qy2O-8fK$axuI140qs(=W0^zzmD*{N>fNcQI@=jJFODhVJ(Uw%+2F)AFYzedK_ zI#hq93lgd%Uw33f6(ou3;jaw192Pqsu@3k5rGIvoM6cw?6W%=d$volKP)QQxfej0(3 zq6)z2t~iN`fFXN+F+_8Zbv1Q<%|p{**B7+Q-uos zc``B_A(4z<20Gl=8?_#(&<#s;qJ=dvfeeU#{y=_K^gwe@Eqcm&rEfuGo8&(c{~}NN zBhUCFoBWaWit3NN;0pRVDtgy?Wm4*iPO5JX%J)ZJhgy&)>VHHjmrmR`^bw_-)NLA7 zt+mzFTaqLg2B~kFi~8K(dIh&(dUVI*%0S~jUu!MQ0$t8=*G_TeTLq2xkN3AO<^MPP zTZ{dzL+~HDm-}0*`2X$xR{TfYD*lfEQs2%0!9f~utXLpOFmFd=>~@S-sS8?-2k{i1 zuXTO0MXskVN^-*RTc2^G9y=uzjX>)r1g=d$WGt+qUt71z{?_R^?gB(^haOV!<)+rx z{jIzFt-Ddt982at>+oS`j;drRwDk*O`;FEw$U<8GDao;7u81q>BR3r2RV< z(IzD^r_Bjtl>Cvc{_)%$Rt{A(avugmYbykeN1!b?;BvdsHB)jB_O})K+KT;crKr1GNltbrCkkY& z^0oE#Pxntxp%UVxB?=-uFi@oNz=yOAFnn!8k~4(U%9I@RH%pY0k8J~dF#(-5gx~C{ zu2$ekbyyBk1K+N*yFi9hg^MFE)mG@Ao=mnyt#=E_-&X5uJDFq7$nj5i4=2_{Ut3)Q zC7$YU8wD~hJT`?IG@bcl(cV!$Trogdv+zU?DAGW5>f=hr$cvdtgCbQxCom!CN9!%i zWc}Ve$)(9)_@;5Mx0PClOd7LuX>80LB8mRdufKByXuVKov|W?shO0glNMqG`4? z-(2!t$>d}O-hAMMhie;^Kobar_*)0a4m_P~Nx^|@6U!_6=3?mj+b(vKYG*>XbNw#G z--IG>279?xQIZ&0XEpeC7o}h2pU(Ze#@{xU3Zs615CQyWpX+N|FS!$my8(&O!FM~+ zNs$O70i)}mQjSYl#KfXwCDF&~vy?w71;&}KY^$H<`{&2{2|a;+g7?9HtCPTiC&GX9 zlhsvL_-23Glk~sKXMrE*u;!;g59D#$o`E7ZVS2`u{bcf2xZFY`-`MJ(&pkOGy?7ao z+;s@d_gH%Kx80uUa=B5nw%b{eI9e*g@YT>k)KkRkQhtn8(3?&E@E+!9?q=?`+YLAY zONKjEK$6|hkPF>))?{lA`4H4(tDSJGRTIme$osZ!P3o!#C@x`ZtN;Ya6gZV-NC^6j z$Rf8j$Rdk+xZo&gx{6#y|J%0He{@PQAhLx1(^!hEheRutWg)M#MeSl&>u=k|)NY&F z?IJC=R=VN1*w03;LOhiKRk!VP7Era>*AqpCypIiM1>4Gs5t4}R`@s>6X6$z)N56Vb zDJorQwVH~?Bum}U*(YEm=LwlK5_y^nTWL%K#qWCN+9?P5OywxzG8$+*hQt8}m$_l&osd zqj8^gyiX=Qx7H#9rg8+hvvFYBjot(gi$pgw*2>l)nU?3WH3PsMGIO03w+>5ka_3+t zkc@R!n0vNuYo>(FxAC%XSak27lyn1$NRr!)2ixfc=I5UQ!g4ok?C=o&$P+PJvQ|FU zFmS<$(4=HGoF}vpc__}pm3cZD?oUouabkl%Y6XuV(q-Fn*qaxN+Z=z{!a^$-cq#B= z6cJO|z0WJbtRyLi*6qzw4)wyP7=-?XmAqn%rfgQyj~#|3FUI-8 zQH)rOWBL0jH=PnYa@=(4CHtpC2C9;ih_+KGTDMs#HAd0USy)Sm)LaUw(!X%5E%gk_ z27*?E%%tM0X!ax$mLa4ZYZ^T+?6wCi?e9GL<=Y{DLr0x)OT&qP;}k5>8jM+-s@FG>K47>1!Yot-d)@7 z7t+b6;dDY=h2JOV%i@z!a`fjUcV@=i<7ILBxRK)yKOt`4am-|Cz{ZQWD66FClmxkd zH2Ed$l@S) zH%`7qUAfoPU8e3fb&siQrk-HxiKd=p>dB^_V(MN~_nEri)Kg78VCq3rPc!v&Q_nE< zOjFM?^=wnmG4)(i&olLWQ!g;}LR0T%>P4pB-PDUsy~Naen0m<6OHIAZ)XPo1!qh8G zy{D=7GWFi3US;ZiOugFFk1_SWrryugk2UrFrar*b2b%gIQy*;VLri_BsUK(RHKsny z)Q6k;2vZ+v>Z45kcvC;Y)K4_^T2nvC)JL287*jvl)K4+>Q%(IeQy**UrISx0t$N>Jd|KHT5=AUuf!!O#KQ|H%i3%ZeWt#~)bBU-2TXmfsXu7y51IPIroPV9*PHqyrv9j@KW6G1O#N|F z-)QPjnEI2Z{*sc$j$7ft;oQ{QUp zFPr)+roPS8x10K_rv7JB-(l)IP5m#X{#R3f&D38v^*2oYO;dl%)OVTs+ot|EQ-8YtnX7pDHDsefha zUz_?jrv498|JKyMGxdL(`uC>(gQ@?^)c2eEkEZ^UsUI-)f1CP2Q~&vDUAj(}@RRX# zNYCnuw5;*^WviVMKqYVyxCuN28bJaM~m%vBhCrBj-5CjR*2+|2M2r>z> z2(k%s2yzMX2=WOE2nq?h5fl-0CnzQ;A?QI6A}A#&BPb`RAgCnhNzjX+H$fFaAA)Lv zV+i^Z^dmTypg+L?f`J5s2nG`jAs9+<96=4iFoNL(BM3$kj3PLm-~@sb32F&WA{b3D zhTvp^QwUBaIE`Q|!RZ9!2*wkfL2xF)Sp*XZCK8-YaE|ocvelEM8wQoXG3v*2$&b_D zUfkJ`AoZs086k2k|GtN=6BHn_Mrtqmq=!_DjTKxiiSE{2MM>8n@>HU0@IsX6(mXkk zI7Q}bWZptLp&XkaSF~^4mMw)mvMokwFWWasD$Tc_5iH4jczISv=!B2iE-0pa9k~FO3Lew4C_?s`{ zW3YJ^ADb+82;%VGyQT}_u(BMJ=s3LNOsc!=tr?4^88z zGYa}Q0EN@;NU3TfuHe}Q|2xR4r`w;^=6`)5ACho9FSd$%+o4 z?NmLYLbx!gMK?X>AAH-_%cOGSpd2a(Cs}Ffg#&$=U8_jqZ+UB>WT>LtEhj4+!Y87! z1&J-y5IyQ7JMk__da zhOgGA;26FSfH1DSstJDSU>dFxO5tKOHT;MbgJ!GYR|sw;M)tL6oK&1ve=-Wavp8KQ zz1Rsl@L->MXK_Y7w1T)ytB5;`v+D5xy8dh`h7v!Bv~JR(t(}#i{|{>C^l%4C{%zWshN@cHslSebk0Gb6C{&U@ zZ2csTTKmPH;J$9@5AE5XPLld2SSC@w0yz$8_`m+|Hhl8$Xn2m?+3>*>Jhb7dy`8vd z8|z`q_D8lq_}L^Wo8IWF$_*z$E6uQFg?l)PwDCQBHR%6CJv@|0NXKvOVaw=YvkqLv z#uJ|HyZ;VXpAsZc%Pks#hd z-A~7{;%vWc1;&Ci4xG?m@O`S!89EaIn+}~tIVMmJm)}*74?fQg zok*;SfU^4a?cuK{Ntwp~4SR_*m$CoB|36B)WB-374@UzXrg6w5w-q@Ko#bvMU#^AD z0aOI!&;Zy(rCR@Yq${icfl*Sdw>E!3)cM@$9>ao$B;C(=P1oOixw!l-vt0{O;#d;pAXFyu01}RF^Mv5pK=#WDLL1%|&ATg8& zp}!m{L(%_-j+FoBmxB{f}%rtNzPhiVk0j^yw3m>UEVG(EiYmlceEZ4DrrW zfGZJkq(1+jp8|gKDZtT|3^H!(gW*#DpNuZ&S^dIEv~tj)jbAhVoAEN;BWmLR;gg{! zQRQD+KeawUT}V!m4*cr#s-T* zdkU(E!YDBRbe`B=4f=oUv}eLm&-;JlO2TsbTr?{$6)gfd~C9! zX`d->zbD_TE8e}`Lewqha(;BXX^zc=HUkcBT6aJ7b z{9#-8I$JoVJkp>Q9fB8)Q+EUY;)apMcYwCeuC`51_#j74M*S6d)E+?|NVNCs+QIVQq zS$7uFbHapjFDI*S>g1^PPay0H!=f}b41?0jtU7%L_7Urp=;kb8*revRa=>h8Z&KiH zADmFwZ8)K`5mp&|mJm4TDC-yB&)Ax4MDvugZrB;+0E9^-$T~f1ENRyh>!j|dK~V}N zh8nEI95_>M#Q6fwC#)k*PU*~yWD&az(ZzN&9pj>l+YhSnebG~&_UE_vb=Bb#=BfSM z?r7uGyqxHT{oEL2a+$tYU zo{viNW1*Gut+G8EVO-(r%p;UUgT7AGn$N=IhwcfG1$C?k4;uIWhgJZ zuHhhBUmVwe;h&fhLMk=(#rB2;oG4N+FZVajEAeThCvgKB1IIwpEZ;4dyCGf74 z>MoGB-1O=~M`$(ZB-sl! zzEP{(z9*SB{HL{N1?!{|4a3hDAi)o}p9DrPgX*W1kH+24 zlm{X9@k#`fRN2Gz4{rno?h`mvzGqeZ0#w1;qEN$6wil<>Nd*RmtOlRLmw+&I$H0hW zrTJtWU>S`>hW~=b5J60G0xG7S`blIn7zA2{T0aBfviiA%{j6jTa-wP%g(2T10s~zw zd&5dNBYZWemhBMDXMEcbIH=-|GPMDN31@s1LyMsDP&Qd~r+oMbdlL1EzJ5VxzP<(w zPOUin9I)YUh!1xlq$z4Br+rR(opihbKciIErtK)iSwRS+P|La&o&ncp@(TkYj7ANY zXVPP#jLuMIn#~Jgq-voT01*<^LePkDr*UXUYD}!9xRyUtamD#wdhex#@~}|qDw>9% zMt)0+P&!WBh_S43sO444+bgZU30m#Sly29zvqEshS_t#67NHEBs}VZXIOGaLds-MV zTFVYZ8zk`7-zt!Da5hUIk+wk8S4-@FsTU7qzYgwi)~NBTDur+@Lb6z3BlN0qXh*_f zD*Y>!7pKx+(I_QrA+R*co^_`6gJ!&h1eEDca7UZt;r{#_b1C`Su{C6Ge4K*)wl zOH!ax_>SMM(qGjmnyf`g6w7NwQCf>Z^bYMXmBMTN7L`)676MD9Ouj)`f4h+yT7+`6 z5Lg{MZzT7;ys=teX{Md1mt-B?n@}=NYxNV8?^4#^(@)4?C@qxD(kq4HJ8GXT z@HhKs%Fse!$)k`h4~B$(+J}MO@)1dm&3J5o|D`DpMxaGV77J{|Aka9p1H;RjN$n}` z11j&=G)hZXd&;A9Ed-WInS7t}{vMT5h86-#0~Cta=!dqvPK_Eo=l_Q}lybBXSOO_z z3xv@?rAsl=TRtPPF_r$VMTB9kF|1Vt`d^EXEEd=ZqtZCE!+n@aKcVt|O{HBLrDQDx zmPVQUn6h?h6mNz&ng%FG3xTBp3dO7RQ(IuCN{=RwGPDqoJVWE4Ef59^l@4=5rC*ZR z|B_1MH45*cMMxCOYlJyy9NH1IHELi#YYfGIPURh4rId`*S}JAo@07JmrAOB&WoRL2 z+-6XXC>XEOFKmIoS*4Vrg}~|}3fb~7ilEVNRA}@cB=vBO8ozs~ixHqjNEQohga^<# zv?KX2BmJ7nJDNr@|5Lga0!yV#enokIk4h;+3xTBp3dL*m8(ZElGz$G=t=~ECyo}aZ zYiG*QLSPA`kS!1c04iPOgi3!PvA=i9!;BXzuQ+=)+B)E#LS(XL%T>T7+b=z(x#y zjYB&U59^)%RNm3mfMl5eDY0ex6l(bw<^4TspbVVLQUj53YH0bN0)G z!PzWxv7SuC&-<5uI)4*y{){Wq0&bd^%F76MD7 zOdg=DzoJp&h=ZSUv=CStpisO@5848ctkNTBlrppsSn?=j%QN8apwdYaRO*oaJ5&l! zrO^jU6_(csPpxrihwm_rN>rS2bd^%N76MD9OyZW(UsdT5HA)#;2rLayh&5o?dl9(f zfCc_$l~RTl0!tu;Y?Z>bX^G`2*8ct$_{T6Dl;*BTw6>SrbjgA4m2Er)-O&C8cD8Sd zCJ&SgqTv~NzV@g5b&@ZEwzTnm2!Tr%?Y>=AQmO&(qN!60Zp4E~XKSwX2?;Ja47a8A zd0)krXtKBsJy?njC%JJJ#A@n*4agjS;jR92R3!x8jyowr7^GUI%N4?i*Gd{N!n6?l ziWY{YX|xBcrPY6rKp=#E)51`b7J_kTd~t*C;t1tp6D_@p@3v9<-w#2!EAXti zyG7>7jTg~A3EfJl`ke=Z$ROcXI^4Cdg`pyBllqmA6IA6;IjvaZyWnM?(mWfAkgc2H zaj`KE#q4R88;OgJ)h0R~45mYt9JDh*OeN%%C)8hymf_9h*zVlpO;vqr{qVn1Tk#l} zwnyL=s_Kmp#RLJ`^H1QbeNMM2EOO zq+F0geQ4KUJ8CeX>F1w+wkvUNqQSMWDg?eSVi5Ogy=F9A;mv)TaT&EBP-I$iriD2s#>n>@903gM63o?wmqL34nb{ugdE^%+0`Tk4XlOQ z_oP8VK8tH9$*{G=?Kv1Ez1e+*m6#gJM^3sO7KTWFLpwqR;DibR6@%mSlj=s#xUHV? z_&j_W8?@Ckd;Huj?)YxuJCEeX`39-68^l=})BIY@b!2pEOpDhTE?|@4?Lphg+)}k8 zYfEEo$xZV~ei7sk_~GAZe?e*j`2p^U09lt|8?-OMauZpHM%%HW1V|_oVptP;33|XO zq$t1-gPv}T>-;l8!{3Xqa4g0V21>7*5f_2}6ONT2(r~0d;$MNc2hw$MaVMyFK{$C5 zxirS{D?pe8^|OYa?X1vIxae~p1Y^8nnpuE`!Vkdx!w(GDi99a4!9b;pSGapltLW85 z7lS4*?F!+m*+QLdbt?6BsDzR_cVmhaxVoBy*k-gDDT4^gjTE-7={R@qK$-^Jk#HA5J$2eC*nK0Pc)!4O!o>dnca6=_ZraK~3^uJ0S%w+_qWj*XNd}>_( zcSYN=m@Qr%QYRG~m!q6RI^a$y0i~h?S`dY%M{r0`D~4GOwN#T9hOR81(CJtQvty-9 zaICF#pf9MwU&n`A8q|g;G-weHu?FEjM5{&VzuF?og%({w2Y$wi zT7;>JTSQ#6hz@a`M_CSS5DVelp19e&jg}pj(Aa=HLW>qcn%zZb?m*XA8(N`0Xkx@f z9G+oN_~D42=r)JkxEQ=pHDW8|bX->+fu5@5&~St_4y*jQRD#20sOb|z!@w_*`Q~AV z%bM4ZLH6{rN94w9AWUvtLRF|wNWxmPFJi1T{V0T&rfA{*04z2z)YQneR3mf>-TnbL z&QEhV!nj*Pqnk3vVCpP8-cg@#iz={WQHE^Xq@1k^yeXHA4^un!)gRg?52G6ZI_Gg3 z{c-a+C6hhPH_^emj|w+GV-%L}-t2^?8Yv=4ZlXh6|4=T-;lUL;pY*fbl^((}Lv6q< z5?Ugr*dipU@4N@h$ZQydh~}HYrAf2Nnz8UIQh04*h6f|sS}kEF}YpN&@hsT8~t%Yz}3LG(OhZVzC9V3xl%2DMS>ka67la~f~Can@NmlQ?vK}= z2~2n+i1HYLR1K3Le3Y7+fSCoWOEopomsqede^}4H=O7?ee_7PG6oJ#{j8O+|l+cNZ z1uL%Kk~jzsmBN%@(DUf${?9p>v3b>mvO#04$l}5W$_AZjg-PTfyscLBzr{*;<)prY zCiE?VjEXB?9x{lgDunxHO*ymYR0I$`VNjF=&$QAH`Y!#xzUhehV9P@@dxqK{8c~Nw zJ{O>`*wGKfB3SfKr?d(6>pQtzqGWNmc5>l-ME}3boR%I9v?QRfM1NY1Lc;#ev}1|; zoW;#ej-{PP+%+^UBJqe$b{ny8v=YzkVyj@MV z6~P)9Y)SnAruCnsVpy^Uj*{#oN@i&N*Bm9?cuQQ{QIhrJWaX3pQ_YUI(hTfOvyj?# zbWTx1=3O+m+?c)16eH!1;370SuE@9x)KVk9NxeSH}vCmF$zREK=`!M#% zzND@x+{d@PT0YI1!`mM?iIyRw;cecA$3A??xEH)H@ymod>p}U=XUbTr6dTDEI<)u}Pka^E}~t6jO0_LoJvV;R(+Ni+3hMICIq+MgxjH^n`{Q zhM8)`>EV-c2%iG*gfF9h@q{m@*kX*(@TnAc8i4i&68ChYCxz5NVr(;jYtMK8Vlx14 zN81yiRZ|z+9XcJ{ve;tcwf97(t-WQazaun`Vrj~C;BzZNR3)+cZbKZ@cYFJ*V-A^f zyY@dU*B z6>$&_9reX9ScNF`<6TEtJ5e&MomSJK=}w>@YbUtU^4<4Bl-x)WSUb@nt`jNOe`)P> zH!`9l2W^o^I8kXAhR;F$t+mv>+_A(ytYa{>kI`=Mb!tseh^N&{gcz`u)j;1bqD+&dpvkT$DpUJJqj8Wyr#C6pKKRCcf4V^ zZNs<%y08o*)qP~kaPz9#>R*1G!X5=rD-O%J}?Nlc(zBM)-`j) zu|vJvw~Vcm&M?Sk?U~>t2kT63yazmfpNDlyp$J;n!Kg7Tu+K%q;(i=3JIrsuIii~A zmK!l6E6tQowoJ`^P{p|w9?^sfLw%v8<_9RUk+9-&>ln_*nZ9)beApQYm4Z>VmJUt# z0cliWwl3cd*9+xQ1V$Ad;zkwa>Ks*d=vlj%>8L}AiyxmT&$kB3#~3JXYG@RX9BPpppXW+3IVIuTm_$EDU$bseh~|O9z3H?%Ir?HJ!EEm0Db^w0^L1`DCq8C z(SF-mxRt)^e5~{I-`ZEDbU0aFPlqOq96tR&mRdiCeF{b3e3=e$t*2bEeN}5>p!2cw zNDcOxSl6_`vx3q52(pkj`Hq!J)FIxa&`Z+_H8{!z>5CfYf zohiPhFugs69!Ll`#$xbQqwqgP`yVINNjdmTR9E^R5Dx1AOaxTAC;p_bf9HrhY#)`i zhSf-%+OQa5waGAFxsf7hF>)lm8P+b5-P-txhbllLj@1wwaYWb?5A6M1RJHk0VufZ> z)h~b<@gzA50bK5&Jxi;0?&imk%{_*7#tIu7`ac~p$kbM z9_yeo-~=xMi8D>2Vv`<=XIsIf*R|Qx#fE(zdv={P*dTj~vrmWcLpd0ru+I&Mf_-kp z;V3IVN=YlfC+OJpIFJ^8aK+`jx3Dcy1nHWNaSOia>;!U2Jz~4!CfCvDM!jA9Sw%sJV_%*ovnsfXAW9{h&c?&7{L6H)9&$M?X|P zI+}5b3Usg;*TNJ74`x{L^i)1Qra_eb><29+cS0D97Txhjl!NYg1_yM<$u52Xg&(G= zm|+oe^!$g&Z_8Cm(BdbyF<@FH|L7(69r zag+yM1SgAHNqK>*@dVKIGuaVvS>z|_{Xy3CA$zBh3*r*uH|Dyyv3)sc(?IjE*SPGS z&b`K`Q9|72sZ(G%j}L{A209Q04g3iQ>|VcvoN-DR@Dph3&i#hhsf*{MYB(jh#5!Dx zLn3cPAMze0+)A46qMLVq`DTK~=TS}=o*l0a%Bp`6ZMNQ{Wba;YMr>uW%&FX=Ay7fN z)ADGgC@O9@JIUn<{h12D#KIfuv1=D}&SX%VXx;w;9h)`*Y281RI;Bo-BrYxb=@{qR zDO2a7AFDTwZp2Vw&Q6-DSR{+W1y>ER)=qC1JEs3(IilV5nOh1PdDcEJ6(6U2hqxWO zhf{*?F^)<1FW~^|I}`hLm)O?uCN$G!0#=WNE<>^0;KSxJ5(67Vb^hNQbxvQ#N}tqw|&#F?-(%K0m(|UVs8=)o?kEmB;awG%m~2jLwafg;hfh z6$R-iiXyOTz`;OSr^QU3%W{MoA*f`}rKt+NkE00$o$ek?n*>eq`6NFoX00BId}8je zBnqL=`Bs8G6{)HV>u8J>zID~UKF3+{UXf-LU~P56m(k^F`w}&`ffWVM)aA&#*s)!E zF$}W={au6K#rVO);cH0zmg}avNm}iL*B;$wkqi_<1Q80yl6n0bCa99_IFomgM zSS;Ngq2ME@0$&Cq<0DTA<0A)(fqyH?#wrDV7vuja>fJ_iso@sr5axC;?W{xkC@ywD z7DQTkEKhbWdd|MSZ6J4%)v7>EC_??w3Sc8XY&lBR!EzK;hheezhG7jO!}=5gkbW7p$&G{A82bBUogDsUkInKN$@ussiDd*)){Dm-1~!c`0>S8<8l zNL+Fibd0lRE>*FuxggaU*Lt6`erZ?x7okM9JHGbCWpUeL*Sz@Fh%UC}Lxvq=Y3wgJ z==jw_zXdpwKfwW>T?m|3@}h8FhysK6aTtW;8iyWpKwMkR$#(?l@O8K_WP&fVLAizm#D!HY7nFF z`v74-erTS6TtVl$GLA4Td;k#_Yw?TVSAd@rKez$9yu#Jb#xV;&%7+g;<{~TpR53K; zjvlI5!`Lsqv`30~u?O+5OF!Mn!q?f-zOPip4H?A+s>o-2C!NCk87DJm5{Dm7BfcY@ z#66R-Ay*Y2Rubl=6MA|PjtCMqaGLM3>r0cxOWi)tQpIE4DOU=|jto%vI(b7b))W88 zDekEXcOGRMkoS6~Dn2iuaQ|+UXfx`oib7=rcGLe|^?6pBxVW2^l_gFoIFPT3XCWd_ zyx#5QtYop#`*~J3@ujR~m55^;-?;7--<41+3o`T+KldEnyQer7oWF{PnKQ~Y8n>rB;U_^)=MqXe8*=-Im-|e@ zOGNT|5a&ht8<#4|6v7v|l{d0Jc4cqKEfM9+-;2CG#TS9my-P$Xs@P8$Q~K1FtHO`= z4HUa8OMCPbDb-YbQ_<+&WnyNE%r>R7Eu^ zalP~v^Iz#s67J>7-GFKh7b_u671ujSThB1Qm|<+lJzi`3sOS+SO?-%+9xlG= zc_upL5t#E(@vrWr#c{FEY*+H-`L0XNv(v{-WWcs_2d$XNw2GIa5rn zrUKR$ey;k(mHE`}+wv#o`$ZTySzK5~oRhOp2~HMYrOG%_&MdyCryrBk_XRV=i5%On z*pod&jLaczeU$lH)eLcNshsK;(~3?Bs^V5u>q0|ZkECcB>YF8s%MRoxivy(x^5=+c zWiO*6F6px&7ca0a*D$ndiZpP>z^co{soh5Q>L*Uft}X8;<_5`x@AHukZtXU(qD;KQ zX4_my9d}oW3kyjhR;YyhigTQle3N!!DSf{bvlyMDoCJ44Bs?7`9iD0k!gx749A|TG z4__^RMVP3674`7l4k|&kf;zdxS6PeBNaB=pK;zRC%pN|;(`Q>9F`+9}KN zXaK~#g~%K@|DH^3;iSpfF`~F4PMVA}B%&tS6x=ater(8B>5)>z@f`OZO9|N2$2N5m z$GJFPK%9avE(mdH8s!V%6YyxiR}AFH9FRm^Yf}@LdfD5J@kQ5xEPb zG2%6j{HD8r?T-;}u+VWmo(|yC#^N20+nW6rGLFGlTdDYuLTgKF(W0-In$VM|apFg& z-pL{A47@Fo+IxNF+ER~n4nDDpNU;`{P>VZ?5+#RZc*WyjO$C`GISRevbhM!s3&Ipc zq6mfJ=HUzUL`^})sbYahW9kI7d8%j;8BG1iQrhtT;{>GK!zoR?aM=OA*CWJ!d~`LJ zQ_`GY3#yPPd|w-4YOx9}iYxwFQOrsIiWzpQxIvUM6=0!JQO*=(BJMU($<$k1{3_9l zsWmL~9#O>6T_s1X#Gnp7>USQ@;-a>IvQPf*# zhLZidjGQ||M2 z7unS>0dFqa4$es_e*xZ{{5Rn6gb#tUfra9hY^v5rsf3fggx6Jl0{j#bB=L|&DXX~Z z@eL#S)I3W0lfiA(5{RWHeg(Xkqjx7$^a)Ad0#8h)*eh7j`x=EU4c*3hpJmKQq4Zlg zb|*`Fh~-S@Tt6lMh}cTzJjc?K89z)kNZe#5@*t>C9M{|JqrOQ3QrAdA=K=;MruigM zoctBiyoJt+#aeAm=VCtRg8#}@v0DEaYilw~uykPQ!)m~rN%t8j!0PF1P`g-Px=ONr zXGU5X7Zy|aBF1Z(vxUP0Ib6gzhj9|)TO9i_<99$++?@7+R~0{WD?oTaX?HZ^N;%}~ zCzh%eKD=4S6ji=7F-RT?T;v#iScajcXMj_lHxb#schuRL@gj6(2Ex0P@GsJb!GFm? zdZl8zif=%8Xeq_U@eR9PT@n4ng_)?Y_hiPBz-7obzE30YhMq0J;?R}ATea)C1vjD6 z&xz&0dmXF6kG0h*>|tf2wTftR3s9ar#= zah0P=-&&#gsTr%$)3Ji7zb#G=zX#j2SIWsqb7-tV8MbC_1YVs<<29~t&^1=IC=C@5 zYh{9x;V1Ly=1&uor5?adQZ+Clj|3_Tg%>Ml0QYlvq?7npIf?(cb2czZrSQ$_NCO8+ z5V1pA2pr^~@Cb!6L^-o?-iq*O&U_2w7c6c9i#SfKN9;ei_z@1uHH&k#D_aq+;Pi7j z{T&?sr*kj(3pno_G13qFFOsRq(T*R0^EmUpT>LSd;WB4(YMQu*!~bS%<;<5NbDAiZ zixE4YE4_eoJ6r_fxjEY zRe5h>Wp^o4w}@BN=R6K^4^viw4zZ4@rS7}cJ5n8DM`zsXR7HHv)Mjz4`_WXF7}Skq zn(khnr|_-R5lk&|_w#gs8e_-Rq;99LM~}B7Yg4_T>g>proaZD>Ot<5@+IGC(_DVZ$Jl;K;C~mOh+Kb*vO%luOxCe{&r5Z_Ml@$q< zew>;t_F0kQo}7PRrEdLgaXyl{KQ*6<8v^w&SQ3Wnyhrb>Fz}Ov4M6-+lWr@_!t4JFm|;mN7gG!-t=9Jv zP34vt6531j=kpdTX)iH{DJx~QSY}g{vRa&2N%>mEWx>%>wMgtql<8gwJynYUQ;Xbx zfOS=i0xJ$$>lQdhOzFwj6Rh?Q5Z+#t(JEqqIFYGaL~GAJ0qkkxk6Lj_&%tpNb-P{ zC7xiaRSfERN???DtBT?*&5RP>K2}P~S1Y#J6!m>AMR2uWR>lQt#n&8X<*UUxHFk1i zrf{-&3uLUolPSmD==P6z~!-6MJI{_HbpI* zDDFF!;y&^Ws9X@3DAqC6>OQq{A*d(qxSxxz3!E)B*;G#V<)B_>%4l`hdq(5b=r4B0 z>pjC0&k=vKskMlkB;L2Fmk~Efe9jbAO~qN^B3x=h@zP&I`%>$~W}DjOzB@2kxY=w> z@w|H-s4+}^B;5!PF|QZ+pBJTZZ7@gwOIRQr6fh^bcbPw`aXeDMdSO!s|N+wm~htu|$> zukwOiZIew^&q>q8t2T8-m4q*GzhhJ1tD~hE;scwKT*DJ*h%anv8;06U;lQ;)8hE=f z)MkoAn;Plej_;;-v#GIOFR0F0#efoLiE=yg-+}F*s%=UQdO;1gDVj(w6eDelCXx%q z$u@8hxm{c){%BKAR(e5gwy8gK-yK*Ww%OEO-9H5Nx=q~?+#k4H?6#?ggHrHv zLwsbDr{!%Ijp9q2nwaMW^@C0Q9NaFN#LqUBgE_rPxN!-UjO}`~qFH!tY7H9EEHZ71 z?4m^!+7#JEizu_HQGR+cfzih%&+&Uf4zj6vh>VC4Hgyf+B4Uh9-C40a&??5;)cqA7 zf~vErFe=j~rrVT(%Cw0&Hr1kS7YoIuHnl|af-(%7T;F@USR}5rsja=epl-0KU1O+8()U0f-ivZ-wqUQo{u;rY*WPwT!N zUm1MGj=ZG17u0JuH9luMc5B|TsmVEBP#@Y9Dfnvfg-wxyuNL3i)Q#xSYs5jDx)U9G zjd1bwXu7Y0Pgo*ShSL0lK8(UCEIFi2*NO~I+Unl#+b*sZ1vceHS6nMfZ80^z(%^NX z%8onB*9+7@JMMyq| z*rsmDJUMuic*mx4dY=)zMP%1lDM$C56pV`Fm}(W>rSm|IVQP!eQ)dO2iSbrSo-3A% zNp{>Ro;ktgqGFh!@>|8Go{hoV#eGDA+MCfByhGFsx2R=Rjlp)Yj;SqTObkdPO&K(uuq9IZK^gE`@c_#b8T{4#&+y>&a|mFGQ6PX+7z9R zJuNP?DLNf{TD02K6>wh9h{ZN_8=TiOhgADnaTCYgD5hlJ7kpN1V``uD3SIwuPIU0y z0sEx00zE*z%GA;fXOHJR9fyeN5N~tbLUFx#FxVkJv8j>r#^9gC^ogXkh2mPrrr>5V zpD8Xvydb94QJhu63u3-ap?G0z5#rpg$SuNaQxy54*bx`^qSzZ3_mWsSr7Pb{;vuH2 zYHy_ooJrFVy-38UEz(f`OF`T{!f{)q0sdEmIRA~2z5H(ncOKH-zlhCKD0ZP(CA}2< z%OP>EiJYlc+=cSK;A^6mDXaL`4@vpDm|&-TNqiD~T{PI#I>%SRH-vE&la`|16bELK zP)kv7io^>nigfXo=s&9~?k#bmO;Ow~QFBpO+%9pNO;Oz2;=Vauac>_|wZDnS4USxh z%kAF>|0cHCNh#wy!p$ost1|D144b03-9q8TkQKLESW6?T5qrc)UjA5ddk!h^T``{H z7K+L8f#ADhB|Rxl?Iodm#SNEq)pV~|X;T!pPh{v_ar^kg7O{NqiGl@Paqo$qOj%v= z{vpM`F9vhmLNQZP(%u&<7x4UN75{;_tg%bX2M9{otvwuP7t!qq|MZf1y^OGgty#i? z%%kHj&ih%a*Xs~{bG*2g@PLN)OW6M-+*RcD${gVkl!&5w4&5bq8kVOQyY&gVFZW*=JYB3Nk z{_kn43^})^5q?#8m`vjkRmZpBnCh;6qISeu@M}Fy?Uuxf5<;uvR$^B~!hSO0-TtoF zcnL;4@q5EoVOB9#@$rROl{kt_`e4Ryv)-c!`Y*|uT?G4=#Z5V60eiXcd$6LmX3|)= znuXqqttJT@v4o$c(h#LTY)5vZymMeT4(yH-XIAgS@$K%EhN>P*Q;Z$9xK5$#-VfnOi|s_{DpzrOe#i(h~I2H-aczrpwo!LLS4r+w+4OC)^M zine(&ff~g9T;df~i~|^lG1fAUWt_-3m2nm@h>PbWVKFcpSM+}_!L?pNQ_5CB>m5m= z*jAud?3aHosbs{uWC3T}FFJxXxOP6FY83G6>~W&i@o2XR_}UPyEEYR@WX%&f99}Oj z?r}ZtOd$SJ$5U1JiRF&-JsZU;#~XeA2n?rg5^Eeyc`u5kLeIhi(Q#tYPO;T-X7!t5 zr(;>qzllwblk>e|fIOjUpIB;e@oPj!_b;$|d>uD!4d9wil^&=*D5gsI4vaKax<^Zr z=1CpFVjxwqLP(jTr3x{#*QpW-og^(lE(v_><4Lu0uU^+k$FStZ(!P>q(o*Ti-gij5 z9B=ekEv*9QerXLj>!kIPu`T0qX`f?R@F`?C*E0(duT+heo|JCDoij^0e2gf;Zq=ub zKlz@Q_B+lAZkHrQ&-$yhi7UEE`g7I0kU(wqDHmpbDQ$K1uKG#JRAxJVMqyXvmdb;< zT7$XLgT=OtQ>CraIlX$zTcw{3)OxFQUf!`F{@#c1i+n;Vpj4UFbA()_ypmfh4^ZX@ z&Xspc&-IxG{I0+I=(HPi*Rygn>c{dV#2S<|z1MySs_vETC?(TyOjO8BY7y@1_|$P@)p3q#w$KxUb&lC~ zxTM!rh#g*at7EZ58Y+ZVwu@oNW##pv*RRTc!7)!69Qd19pd8b4n`42}5!~r$Rj!71 z=TqfyT?(f6lcR}EuL-7?pe$m}BIYb&&JymLo4DZl;+X8Q$_h@ig43+vGy@c~yQQHk zl_z0h*DKWSo0OeWdggK<6}eOTCr&n&%XD(IT3iL|G1jusRjiyo`+BxI3myAPfQIA8-d8$H9dy1_>e!Ys!?{^pmwPj!$qX}b zr_9~ROyV-Rm^Cb78!AMCX7}0b90oyzKcbk|SWm+^?`v$fiJWq$qrG~k^Br!+r;b%s zpE-AO19r-WT$!MLz}cQuCTHfW%f;9JN_8vxsjs?AN$hc)`Z-j60dPpKOTd|5wLtxj zIp5iwZwhZw4>0Eda}=C^yr3pB27sTbIT*SZ07*i3=2S4J0-sg|>lkJYX4YU%G?F=E zm@|es6ZBj{e?c~YDXi`_26<=J)GCPz5y586bjq)$6=aF4rz2XfbP-p931 z#d)ao0f}7o0g1fcMCl8}Zeo3Ga!z;c);1Z=aUL9;iLMWTjhUYT)4bnk2Us8TByO=p z?VBf2`{wc4J2~3Sgk6{&N)pENc-iH+BDYO0l~2g7NZ9G54F*O2wsc^^0J)dvIVq8? zeID@ogn2TJwN~Y}>}bN1iZRZ8TS7qY=>9@Nj!a6fNR+AF-DPTbcbSG_1=6G^ z9>ZyxxFe3?l>4|f`<$bS`z3zL;ZL25ONS$Td}w&$KIcuPCjeKJo(4?wPDpIx&T2wu z&61kLSqA3jMJ#SGS7Ia=Fp@=_2meR^^`Tza)-9<=#yk&y`y$YJ%S+e&eJz zCCW5`?RWA7ri^rdpEwCECI`QuS5DFraeU^$1bBj;1CprYyka$GT_Zhl8W%Z@i(D&) z`e#WixI!zq_!V6I3NC)JV!Hp7G@CUspL5OUTs!3@eH_U<<+*6_PPrs=c;b`F_)IN% zu_8Q!lbbmGB2K@E)9;d-eY2Cl5!i+@#Cmy-@9N|=&e>UY+CFhYj~kN7^lnN1RI~=} zPF^m5>%Jec=M}${?8bsgOL61Y_`$%DA|=HyMlt6^5dde5$OLCBbH*b!8TTcQ1|Q29 z@Fy~V64JQE6p;s5VLXHmLK;cYREQEOhfn*g#Fm$Cr+y{5Wa#r*D`0R zxD%Y45q68)QK4ikx*i1QZcekF(`*pWg7YMEHZkV~@j5tLIlN1JpW-&K$1oVIeVoXH zFX$xW2FWC^U-%Gqi%f|`=Sn5u6oTW&J&Kg3QmO{0iaEoWGfFxWoLc5gWKNwF24^b5 z_#heMd?^Lt%OuiPlSG;@A`+=$kyHe{N+L}xkt%^VNPU1eNyh@0p%QMfLK+5KDIJfu z$($iC@%F^MxwF%H;x2?sfZ5_EV3D{TST6nwtQNWHJ+a>H1sov;14oNm;5acJcn;(F zhNw>;fvadKDI;*-MM}!~96sL;H;DY)h0IyVoQ0x69G|-qS8Se5-^BcVjFLnW3K@%} z+r-GsVH}>y7?B#qSLrJ`d>6-daCj5YNJ-htgpf%@0b>p06vhbSO2!Vx=VdBjFNcML zav;7cs78+{~!tP|EI% zBN-Pl?#*TU7kS(o#u~;cj1k6_j2(=78AU#&uVI|R7-3w=xR+5BuuR4p#wm;u#+8g6 z1#JI&nGl7Xfw6|Mqwq!)v$7lEUdDnV3Qu9IDW-6Qv4c^RFo&^&QS=~AO^-&gCMUw- z4n`3o{z@S1KUuoY>&0)N_(c2zcTD9=Rnib?ymX!vmi{JvC@J!3@|E(l@@w)g`5wpp zj)xt49iKabN~tnLnWS8xG%M}O-Aalx+u6fe?VRnr-T8o1R^M}f?ta5lr9G?ttmP-v zBz&KMyR#G3q~nrWlI}@*BzO(GPWEKa2?+rw$B52jEBK^^diZwK}Vtuk&A4Nn3i$!{+ z2Cq`QqJScb*S7bYIU5Kucj5f=oqzuMXXc;x%sD3m{Mn!x9=tKfW@SsxJB9r~?^nKq ztb*0}B!5Ddq@5$P)D7^D2j7aI zv+931rF_gc74)Sti68GLCI6Up1!$d%6>Jx~b~@} z$<6y34}5WU8WiVmSc>3v2vEVkMOkz99Sz?pOaDJ8RgP`$Rq)}M-{O@zP{B058rTLZ zn4Qbs#Q`dqlgEHvpaQQTuL1Ue7O~zUAJi`jQRc>A)IHV1ep4nXrk>wt%|>wt%|1;8WN^}r)o z6Yxm37{j55@Z^6X7J+L;Bp=S5xS5bUBKNP3 z8Cq#>C5*lX)oBuTdke)z@rZa$oDeg#mD&f|S6Uz2P}>ySV%v7xpKJ$hr)=x(FWL9l z58AUG(;Yu|Jn4Ae@s8t=#((}`Qk^ZangXy28XL{#* z|LXnFdzoINGyYQ+tdNB^g|*{}M}{XLH{}bsF}7l`26qkk(!HIv^^xu!>@`!m>)50U z>26|sY&N*RWsxP>c7UyHKF;fGQ9z6e`1Tb}9pz6qte3{EJH`&^WjJKHkat)=gLAvC zyvNm((MZ&}-%-5~rz&0KBDx2snO&IreiaxgJ@-4I@99QvwUR>y&ixMP*2|+ZtT)B| zPM?S)9C@H~{&zsX6lY&}oaw^AKdY3?3wcwziDb`@a?CUI{2zx6{wVBW{dnh$sN;N? z_0w(wM{sV{H8DAPKjtNHINVk4fYPU-IIRN3lS_J*It%Q$mtl_Tk;ia!CeOpp|BmWH z30}xMfg?eAD0u#NLf@$BLJ{m$jH?8%5DmmYH3(NJt}?vGfS1$Jy=Sm;j6p$M6&S24 zaaG|Oifb6A&1lIz(Sm!T<@Utzm5WxJi`JTpR+@{~#qow4uCee5qU#OfvmZfhX3WP+ zl|j4%xru$lUqPFG6W2l3Lpucb2&>jU#dQ#8PoLrbb6oS;QBC7^o0}Kf=CdKVCg7TD zi)8VYwjj&02U)&-J}a{yWFOma=0Dii@Dj)8?0&abw7Cn#7w-Pz2V8bfk;wLxVBdd` z800AvCHQ35BG1iyh36viApZXHx1Nx2r+I~u77~%P)nYr`57Rb?lJsrj*7Vil=WsWr zhs2)r*Wvf3STP;}g5Hp*^}Y_zkZATE5)XKT>?yBTeCjOxWd4jaXqiA zLKr=!xwbY~&ghFFVcxs2qMVJM-q_q!Kd-TRX-mt5riG1*TgEih)=Cd4T2W5>U%?k7 z=;mD^9-!Ai^Ag7=7iCbO+{-iQb1=%NAsOO1qN0kf0LV&geEaJ>`tocxcha8wG@g-| zwxY&Oo8VVLpMwq^vIL0;S}{oX>SYUC8fP@Nw8#%zj9b2H@jR7=lte|47QGtc#kBQh z`M1Emv3Oox zCH(^tO!O>oT)ceAvN1zzYbg(U`qRU~Fb@o>7@E?Saw}7ARmx2{!C`E4V&7t0mRF@7 zcglkFIaHOCV4|`0r@q?hwD#uB=TT01qPn zn;~9KxpVD2m*xZe%14hbo7Vy(%te~UG_d)NEwxh`*mBF6-neMV4JavTrtz!5pWaB% zAlLxP*%RU?>Ha@yJclN}72;D8?cpLj?EqX!Gxmn~la&2-h%Y00QRBUmZvl_siH%uf zT*-oWQLOwoFKDPQ_wGYMC;ld}J8d{mPj2}eH1Q0Xt;?4z zZe$ahBu&&$olrn04u*IrIqQQEAIy^v9t!a>8nu5I;-|FBmdsD?KOEv`IUV^Z#7i9w zjW;Zu*GT22DwAzT(SA66@y`(7 zMlT!-@qbID^xS75zP!hjhNi}u3m2sf%W9f&L;e0I#OvvP&>GUUHFL`Oo&d$G`UZOFMmsM~4mpF?E$Hg+Lj3Oz zDRoIbwd*~3HeG%eU&&0gZ~ZEZ_5xOt_xljlw?zn1@N{Vt6i3J_P1noWDi&TA0tI$iG88jPv5;M*t7<3~voFy>Q?}^W7$j=f;i!`Vn+C6Z4)4vX{9p8HY z^}oI-uX=T2Oa3=mWMqVSfj`Fmb|*KY4`Ehftag^8_WSxWyGOF<3WzLwS$)h%h5#52MqJV?{2rH?K@(CsI zgu+iL{&R}+l;X50+~#!l=2^xw-Ic+W@`n1dC@Nw=+}@sEK2E9Z^o)S`PaZlajH`RYCI6^1>S74 z#ys!W!BPo2uF`Q_;gbrVv=_+CpH?@geW(Jlbsi(y3de86)*}%{dAV2H%S2Eww!? zZ%*L`4N=!q+3=gujZTj+rE93l1bJ1DWeq`c!FR!)v4wtF2(l5no}#gs695X8~-J^>!!hu*0l2TU>tg zvUDa{+fc%g*BqIcv!4rTR%djCX+>go_+6R!z?)L5o7EBcDaBoc{4$f4yx$cNnOIC@ z^7A~G58f9fK@Zq7?NSJ$TBfbrbe47vRhlK^|51L5yUG=JtFB*Hv3}Vd+MaW!tmB7y zW*J~#$ngannJ`l(k66jgw09drRo57*x)lp_6$^ALHnXeP%&e?PH`yQ2Rc=H#`SQEW z(HG`Ra=MMTysN(Q^I{V_RinvWm)X@tJp+x_Qn7b(J+{)?k>JsN3${GvMHMJ zn4;?(as)CK^=3}6%=kKEksM;o_}v!YjNgYL0#$so8mc^&_|h^o4<&BKx9Y|sDeFNP z^z%|1+Qv48TxPu0XU2D^sCJ_JMR#^ME_93KVxX{p}Q8Rj*17LwU2W>ayBL!O|$?>S*517#h zbk+K!{jg7DMskc$mJ!{Cp4jvoA#)Y_t_$ulq%wTX&W+7FGk!?VMK8n68W*}2BV`o1)4XIK63(RXgrjKhXs2tD7p-(kdxINGlQEJmWYgN`nl;|ffh}wg?)F~xV z#G?wXA;;-LvN5)qb!Hu8F5&>VgYDGNS7&Lw$SNP@ovxHYFj8kk_ofBVr=QZLrCm1E zLE)12J!Qtfk>f0Ul-Xk?c}|av2(h4KWK2QClrjmp9R}DZD@C204h&7XQqGD}g^2FU zccxjEjwq|b)Uipb3YxRfafFN&=ae0g3G&FCU?5O6O^V8zW(C2N4P%Ip+sqmm7S@%f zO?TR5LZctZ8YHI%7}x!x2U@_n5l}JvvWQ5P+J|bo>$kFKWe?U+Nr{zMMpY)Y%D7$5 zOkloPiMPX&u@WQN-rFjQ=-N(2q0EYA-605ze zjHO<=j;Jw~T8d+GpVU}^Cs>M54yoB$iLs)y@)*vYY_iWm=a}oK!u&8lHv zhm196bxWWol)@n#Dx?eHnk^{2mK<_11#>SMv|0sySa!Qu9kohg-V5ccHAk)vHzZ@+ zLa!oWRk~lMMfJYW>8C#ZFjDc?XdK*LkvUS`NW{>o*&{ir`M3q$raGk z83DT#vU+ex%C(wYUSNfa(awxMs}{mJa>bW};Hd2QJ}+9N%V$iJgQE}KJ~O7J)TjQr4WvB#1ki-;2_Bd*;Ag2uHZQEitn+u#U zUk$3h9MfvdCSmoGYMmJUrFBz-!A9591Danh)v$hvErf?$$azpsW^Ah;9LoU63>H{e zuNzU%y>cS}1z;|qnvyV|5%F7b#b!%4x)JN@Vx((_R?KuWoCtx zIU$F?f?=6PN;Ri$gr1V_$g$Miimzn5)OHa5s0@yJFCG}?t(@{p!~9BD#YiUqcx{O4 zCtU`C9C{8k7u&j9;4`3;k3m_I(*rMa;TxIGl?xX)ELpjnu`4;d zOew3Plh}gJ7QqozUyeO2`WN=Uo%9gm0dpkfL2-b}!R)OhZS)nqvRpVV=%gg)|J%+d zqY`^;6ou+OG!}spw=%dbuiwF*cdA3A6)S zu0?bgw!JgF7wn=_J$Tp3#O?x^?nTP%IG$$sgd3aPIauPJ_5a%=W6*`$-Q=zc^ILm9 zcev-rj8{)XFnrt-QRd_Oj2chWK4xb58wxmUuyHnh#>5%_mG)q-hhN<`ZvC36bN2jw z!`9?JgwNnZQhcL>4~298^G`nF59@A7TmQ^W3;qZl9ly5=c;b~Of9NHW1<8_OVLYc! z+lPnwfAeu0?ims0$$LiB@_D9hhG0Ds`MYhIlzwR~_lg-Jap|P-7bW%uM04W1N#jQ+ zZI{*ZDxu+1%88F2pIbs(lG)s)SKu6NB>u_Yv8$3dU0%zJGB{Qdz6kz4wM#A#?`gFkLLTJh{}MDMD`ZZ7|T9EQ5?tEuW%AUp!4Apz((9-=|gaul{+@6Xs8zW{wzHWG(v2-lD-5Otp(ovp33TK`4G|e z8wvwV*2<6lFKq*=5N$C!3{WCA){(1TR?WaT`UyZEEwI@}cL5cQ-B*#J8f4ox45avR zeR^a4yq1MGG}cU!nTURf&qB&yo8|Dd8I8*pHZ7U2Jb&4PPC`wY7Jaq{1?I|vj2`Vl zH9%#as3Xe? z4Ff9DqTdgqIv~IH@{Q#b0m{*u&jjf~pnQ$}xr%lH4c0a$htUb3VlChrN4* - Always + PreserveNewest - Always + PreserveNewest