From 072e73df8822f0eb182896d52a5c6e606b05efe7 Mon Sep 17 00:00:00 2001 From: Mark van Renswoude Date: Fri, 19 Feb 2021 17:42:37 +0100 Subject: [PATCH 01/19] Windows application with mock hardware layer --- .gitignore | 5 + LICENSE | 24 + Windows/App.config | 6 + Windows/Forms/SettingsForm.Designer.cs | 214 + Windows/Forms/SettingsForm.cs | 363 + Windows/Forms/SettingsForm.resx | 5838 +++++++++++++++++ .../Hardware/AbstractMassiveKnobHardware.cs | 62 + Windows/Hardware/CoreAudioDeviceManager.cs | 82 + Windows/Hardware/IAudioDeviceManager.cs | 27 + Windows/Hardware/IMassiveKnobHardware.cs | 30 + Windows/Hardware/MockMassiveKnobHardware.cs | 70 + Windows/MainIcon.ico | Bin 0 -> 173247 bytes Windows/MassiveKnob.csproj | 134 + Windows/MassiveKnob.sln | 25 + Windows/Program.cs | 43 + Windows/Properties/AssemblyInfo.cs | 35 + Windows/Properties/Resources.Designer.cs | 70 + Windows/Properties/Resources.resx | 117 + Windows/Properties/Settings.Designer.cs | 29 + Windows/Properties/Settings.settings | 7 + Windows/Resources/Icon.ai | 4708 +++++++++++++ Windows/Resources/MainIcon.ico | Bin 0 -> 173247 bytes Windows/Resources/NotifyIcon.ico | Bin 0 -> 168870 bytes Windows/Settings/Settings.cs | 26 + Windows/Settings/SettingsJsonSerializer.cs | 106 + Windows/Strings.Designer.cs | 144 + Windows/Strings.resx | 147 + .../KnobDeviceControl.Designer.cs | 90 + Windows/UserControls/KnobDeviceControl.cs | 128 + 29 files changed, 12530 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 Windows/App.config create mode 100644 Windows/Forms/SettingsForm.Designer.cs create mode 100644 Windows/Forms/SettingsForm.cs create mode 100644 Windows/Forms/SettingsForm.resx create mode 100644 Windows/Hardware/AbstractMassiveKnobHardware.cs create mode 100644 Windows/Hardware/CoreAudioDeviceManager.cs create mode 100644 Windows/Hardware/IAudioDeviceManager.cs create mode 100644 Windows/Hardware/IMassiveKnobHardware.cs create mode 100644 Windows/Hardware/MockMassiveKnobHardware.cs create mode 100644 Windows/MainIcon.ico create mode 100644 Windows/MassiveKnob.csproj create mode 100644 Windows/MassiveKnob.sln create mode 100644 Windows/Program.cs create mode 100644 Windows/Properties/AssemblyInfo.cs create mode 100644 Windows/Properties/Resources.Designer.cs create mode 100644 Windows/Properties/Resources.resx create mode 100644 Windows/Properties/Settings.Designer.cs create mode 100644 Windows/Properties/Settings.settings create mode 100644 Windows/Resources/Icon.ai create mode 100644 Windows/Resources/MainIcon.ico create mode 100644 Windows/Resources/NotifyIcon.ico create mode 100644 Windows/Settings/Settings.cs create mode 100644 Windows/Settings/SettingsJsonSerializer.cs create mode 100644 Windows/Strings.Designer.cs create mode 100644 Windows/Strings.resx create mode 100644 Windows/UserControls/KnobDeviceControl.Designer.cs create mode 100644 Windows/UserControls/KnobDeviceControl.cs diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..74d1994 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +.vs/ +bin/ +obj/ + +*.user \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..fdddb29 --- /dev/null +++ b/LICENSE @@ -0,0 +1,24 @@ +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or +distribute this software, either in source code form or as a compiled +binary, for any purpose, commercial or non-commercial, and by any +means. + +In jurisdictions that recognize copyright laws, the author or authors +of this software dedicate any and all copyright interest in the +software to the public domain. We make this dedication for the benefit +of the public at large and to the detriment of our heirs and +successors. We intend this dedication to be an overt act of +relinquishment in perpetuity of all present and future rights to this +software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +For more information, please refer to diff --git a/Windows/App.config b/Windows/App.config new file mode 100644 index 0000000..56efbc7 --- /dev/null +++ b/Windows/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Windows/Forms/SettingsForm.Designer.cs b/Windows/Forms/SettingsForm.Designer.cs new file mode 100644 index 0000000..1f00cab --- /dev/null +++ b/Windows/Forms/SettingsForm.Designer.cs @@ -0,0 +1,214 @@ + +namespace MassiveKnob.Forms +{ + partial class SettingsForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SettingsForm)); + this.NotifyIcon = new System.Windows.Forms.NotifyIcon(this.components); + this.NotifyIconMenu = new System.Windows.Forms.ContextMenuStrip(this.components); + this.SettingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.QuitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.CommunicationGroupbox = new System.Windows.Forms.GroupBox(); + this.SerialPortStatusLabel = new System.Windows.Forms.Label(); + this.SerialPortCombobox = new System.Windows.Forms.ComboBox(); + this.SerialPortLabel = new System.Windows.Forms.Label(); + this.DevicesGroupbox = new System.Windows.Forms.GroupBox(); + this.DevicesPanel = new System.Windows.Forms.Panel(); + this.DeviceCountUnknownLabel = new System.Windows.Forms.Label(); + this.CloseButton = new System.Windows.Forms.Button(); + this.NotifyIconMenu.SuspendLayout(); + this.CommunicationGroupbox.SuspendLayout(); + this.DevicesGroupbox.SuspendLayout(); + this.DevicesPanel.SuspendLayout(); + this.SuspendLayout(); + // + // NotifyIcon + // + this.NotifyIcon.ContextMenuStrip = this.NotifyIconMenu; + this.NotifyIcon.Icon = ((System.Drawing.Icon)(resources.GetObject("NotifyIcon.Icon"))); + this.NotifyIcon.Text = "Massive Knob"; + this.NotifyIcon.Visible = true; + this.NotifyIcon.DoubleClick += new System.EventHandler(this.NotifyIcon_DoubleClick); + // + // NotifyIconMenu + // + this.NotifyIconMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.SettingsToolStripMenuItem, + this.QuitToolStripMenuItem}); + this.NotifyIconMenu.Name = "NotifyIconMenu"; + this.NotifyIconMenu.Size = new System.Drawing.Size(121, 48); + // + // SettingsToolStripMenuItem + // + this.SettingsToolStripMenuItem.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold); + this.SettingsToolStripMenuItem.Name = "SettingsToolStripMenuItem"; + this.SettingsToolStripMenuItem.Size = new System.Drawing.Size(120, 22); + this.SettingsToolStripMenuItem.Text = "&Settings"; + this.SettingsToolStripMenuItem.Click += new System.EventHandler(this.SettingsToolStripMenuItem_Click); + // + // QuitToolStripMenuItem + // + this.QuitToolStripMenuItem.Name = "QuitToolStripMenuItem"; + this.QuitToolStripMenuItem.Size = new System.Drawing.Size(120, 22); + this.QuitToolStripMenuItem.Text = "&Quit"; + this.QuitToolStripMenuItem.Click += new System.EventHandler(this.QuitToolStripMenuItem_Click); + // + // CommunicationGroupbox + // + this.CommunicationGroupbox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.CommunicationGroupbox.Controls.Add(this.SerialPortStatusLabel); + this.CommunicationGroupbox.Controls.Add(this.SerialPortCombobox); + this.CommunicationGroupbox.Controls.Add(this.SerialPortLabel); + this.CommunicationGroupbox.Location = new System.Drawing.Point(12, 12); + this.CommunicationGroupbox.Name = "CommunicationGroupbox"; + this.CommunicationGroupbox.Size = new System.Drawing.Size(455, 52); + this.CommunicationGroupbox.TabIndex = 1; + this.CommunicationGroupbox.TabStop = false; + this.CommunicationGroupbox.Text = " Communication "; + // + // SerialPortStatusLabel + // + this.SerialPortStatusLabel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.SerialPortStatusLabel.AutoEllipsis = true; + this.SerialPortStatusLabel.Location = new System.Drawing.Point(261, 22); + this.SerialPortStatusLabel.Name = "SerialPortStatusLabel"; + this.SerialPortStatusLabel.Size = new System.Drawing.Size(188, 18); + this.SerialPortStatusLabel.TabIndex = 2; + this.SerialPortStatusLabel.Text = "[runtime]"; + // + // SerialPortCombobox + // + this.SerialPortCombobox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.SerialPortCombobox.FormattingEnabled = true; + this.SerialPortCombobox.Location = new System.Drawing.Point(107, 19); + this.SerialPortCombobox.Name = "SerialPortCombobox"; + this.SerialPortCombobox.Size = new System.Drawing.Size(148, 21); + this.SerialPortCombobox.TabIndex = 1; + this.SerialPortCombobox.SelectedIndexChanged += new System.EventHandler(this.SerialPortCombobox_SelectedIndexChanged); + // + // SerialPortLabel + // + this.SerialPortLabel.AutoSize = true; + this.SerialPortLabel.Location = new System.Drawing.Point(10, 22); + this.SerialPortLabel.Name = "SerialPortLabel"; + this.SerialPortLabel.Size = new System.Drawing.Size(54, 13); + this.SerialPortLabel.TabIndex = 0; + this.SerialPortLabel.Text = "Serial port"; + // + // DevicesGroupbox + // + this.DevicesGroupbox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.DevicesGroupbox.Controls.Add(this.DevicesPanel); + this.DevicesGroupbox.Location = new System.Drawing.Point(12, 70); + this.DevicesGroupbox.Name = "DevicesGroupbox"; + this.DevicesGroupbox.Size = new System.Drawing.Size(455, 57); + this.DevicesGroupbox.TabIndex = 2; + this.DevicesGroupbox.TabStop = false; + this.DevicesGroupbox.Text = " Audio devices "; + // + // DevicesPanel + // + this.DevicesPanel.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.DevicesPanel.Controls.Add(this.DeviceCountUnknownLabel); + this.DevicesPanel.Location = new System.Drawing.Point(13, 19); + this.DevicesPanel.Name = "DevicesPanel"; + this.DevicesPanel.Size = new System.Drawing.Size(436, 32); + this.DevicesPanel.TabIndex = 1; + // + // DeviceCountUnknownLabel + // + this.DeviceCountUnknownLabel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.DeviceCountUnknownLabel.Location = new System.Drawing.Point(0, 0); + this.DeviceCountUnknownLabel.Name = "DeviceCountUnknownLabel"; + this.DeviceCountUnknownLabel.Size = new System.Drawing.Size(436, 32); + this.DeviceCountUnknownLabel.TabIndex = 1; + this.DeviceCountUnknownLabel.Text = "Insert Massive Knob to continue..."; + this.DeviceCountUnknownLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // CloseButton + // + this.CloseButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.CloseButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.CloseButton.Location = new System.Drawing.Point(392, 133); + this.CloseButton.Name = "CloseButton"; + this.CloseButton.Size = new System.Drawing.Size(75, 23); + this.CloseButton.TabIndex = 3; + this.CloseButton.Text = "Close"; + this.CloseButton.UseVisualStyleBackColor = true; + this.CloseButton.Click += new System.EventHandler(this.CloseButton_Click); + // + // SettingsForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.CancelButton = this.CloseButton; + this.ClientSize = new System.Drawing.Size(479, 168); + this.Controls.Add(this.CloseButton); + this.Controls.Add(this.DevicesGroupbox); + this.Controls.Add(this.CommunicationGroupbox); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "SettingsForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "Massive Knob - Settings"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.SettingsForm_FormClosing); + this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.SettingsForm_FormClosed); + this.NotifyIconMenu.ResumeLayout(false); + this.CommunicationGroupbox.ResumeLayout(false); + this.CommunicationGroupbox.PerformLayout(); + this.DevicesGroupbox.ResumeLayout(false); + this.DevicesPanel.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.NotifyIcon NotifyIcon; + private System.Windows.Forms.ContextMenuStrip NotifyIconMenu; + private System.Windows.Forms.ToolStripMenuItem QuitToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem SettingsToolStripMenuItem; + private System.Windows.Forms.GroupBox CommunicationGroupbox; + private System.Windows.Forms.Label SerialPortStatusLabel; + private System.Windows.Forms.ComboBox SerialPortCombobox; + private System.Windows.Forms.Label SerialPortLabel; + private System.Windows.Forms.GroupBox DevicesGroupbox; + private System.Windows.Forms.Button CloseButton; + private System.Windows.Forms.Panel DevicesPanel; + private System.Windows.Forms.Label DeviceCountUnknownLabel; + } +} + diff --git a/Windows/Forms/SettingsForm.cs b/Windows/Forms/SettingsForm.cs new file mode 100644 index 0000000..bdc17f1 --- /dev/null +++ b/Windows/Forms/SettingsForm.cs @@ -0,0 +1,363 @@ +using System; +using System.Collections.Generic; +using System.IO.Ports; +using System.Linq; +using System.Threading.Tasks; +using System.Windows.Forms; +using MassiveKnob.Hardware; +using MassiveKnob.Settings; +using MassiveKnob.UserControls; +using Nito.AsyncEx; + +namespace MassiveKnob.Forms +{ + public partial class SettingsForm : Form, IMassiveKnobHardwareObserver + { + private readonly IAudioDeviceManager audioDeviceManager; + private readonly IMassiveKnobHardwareFactory massiveKnobHardwareFactory; + private readonly List knobDeviceControls = new List(); + + private bool loading = true; + private IMassiveKnobHardware hardware; + private IAudioDevice[] devices; + private Settings.Settings settings; + + private readonly AsyncLock saveSettingsLock = new AsyncLock(); + private readonly AsyncLock setVolumeLock = new AsyncLock(); + + private bool startupVisibleCalled; + private bool closing; + + + public SettingsForm(IAudioDeviceManagerFactory audioDeviceManagerFactory, IMassiveKnobHardwareFactory massiveKnobHardwareFactory) + { + audioDeviceManager = audioDeviceManagerFactory.Create(); + this.massiveKnobHardwareFactory = massiveKnobHardwareFactory; + + InitializeComponent(); + + SerialPortStatusLabel.Text = Strings.StatusNotConnected; + + Task.Run(async () => + { + await LoadSettings(); + + await Task.WhenAll( + LoadSerialPorts(), + LoadAudioDevices() + ); + + loading = false; + await Connect(); + }).ContinueWith(t => + { + if (t.IsFaulted && t.Exception != null) + SafeCall(() => throw t.Exception); + }); + } + + + private void SafeCall(Action action) + { + if (InvokeRequired) + Invoke(action); + else + action(); + } + + + private Task LoadSerialPorts() + { + var portNames = SerialPort.GetPortNames(); + + SafeCall(() => + { + SerialPortCombobox.BeginUpdate(); + try + { + SerialPortCombobox.Items.Clear(); + foreach (var portName in portNames) + { + var itemIndex = SerialPortCombobox.Items.Add(portName); + + if (portName == settings.SerialPort) + SerialPortCombobox.SelectedIndex = itemIndex; + } + } + finally + { + SerialPortCombobox.EndUpdate(); + } + }); + + return Task.CompletedTask; + } + + + private async Task LoadSettings() + { + var newSettings = await SettingsJsonSerializer.Deserialize(); + SafeCall(() => SetSettings(newSettings)); + } + + + private void SaveSettings() + { + if (settings == null) + return; + + Task.Run(async () => + { + using (await saveSettingsLock.LockAsync()) + { + await SettingsJsonSerializer.Serialize(settings); + } + }); + } + + + private async Task Connect() + { + string serialPort = null; + + SafeCall(() => + { + SerialPortStatusLabel.Text = Strings.StatusConnecting; + serialPort = (string)SerialPortCombobox.SelectedItem; + }); + + if (string.IsNullOrEmpty(serialPort)) + return; + + if (hardware != null) + { + hardware.DetachObserver(this); + await hardware.Disconnect(); + } + + hardware = massiveKnobHardwareFactory.Create(serialPort); + hardware.AttachObserver(this); + + await hardware.TryConnect(); + } + + + private async Task LoadAudioDevices() + { + var newDevices = await audioDeviceManager.GetDevices(); + SafeCall(() => SetDevices(newDevices)); + } + + + + private void SetSettings(Settings.Settings value) + { + if (value == null) + return; + + SerialPortCombobox.SelectedItem = value.SerialPort; + + // No need to update the knob device user controls, as they are not loaded yet + + settings = value; + } + + private void SetDevices(IEnumerable value) + { + devices = value.ToArray(); + + foreach (var knobDeviceControl in knobDeviceControls) + knobDeviceControl.SetDevices(devices); + } + + + private void SetKnobCount(int count) + { + if (count == knobDeviceControls.Count) + return; + + SuspendLayout(); + try + { + DeviceCountUnknownLabel.Visible = count == 0; + + if (knobDeviceControls.Count > count) + { + for (var i = count; i < knobDeviceControls.Count; i++) + knobDeviceControls[i].Dispose(); + + knobDeviceControls.RemoveRange(count, knobDeviceControls.Count - count); + } + + for (var i = knobDeviceControls.Count; i < count; i++) + { + var knobDeviceControl = new KnobDeviceControl + { + Left = 0, + Width = DevicesPanel.Width + }; + + knobDeviceControl.Top = i * knobDeviceControl.Height; + knobDeviceControl.Parent = DevicesPanel; + + knobDeviceControl.SetKnobIndex(i); + knobDeviceControl.SetDevices(devices); + + if (i < settings.Knobs.Count) + knobDeviceControl.SetDeviceId(settings.Knobs[i].DeviceId); + + knobDeviceControl.OnDeviceChanged += (sender, args) => + { + while (settings.Knobs.Count - 1 < args.KnobIndex) + settings.Knobs.Add(new Settings.Settings.KnobSettings()); + + settings.Knobs[args.KnobIndex].DeviceId = args.DeviceId; + SaveSettings(); + }; + + knobDeviceControls.Add(knobDeviceControl); + } + + + var expectedHeight = knobDeviceControls.Count > 0 + ? knobDeviceControls[0].Height * count + : DeviceCountUnknownLabel.Height; + + if (expectedHeight == DevicesPanel.Height) + return; + + var diff = expectedHeight - DevicesPanel.Height; + Height += diff; + Top -= diff / 2; + } + finally + { + ResumeLayout(); + } + } + + + protected override void SetVisibleCore(bool value) + { + // Prevent the form from showing at startup + if (!startupVisibleCalled) + startupVisibleCalled = true; + else + base.SetVisibleCore(value); + } + + + private void Settings() + { + Show(); + } + + + private void Quit() + { + closing = true; + Close(); + } + + + public void Connected(int knobCount) + { + SafeCall(() => + { + SerialPortStatusLabel.Text = Strings.StatusConnected; + SetKnobCount(knobCount); + }); + } + + + public void Disconnected() + { + SafeCall(() => + { + SerialPortStatusLabel.Text = Strings.StatusNotConnected; + }); + } + + + public void VolumeChanged(int knob, int volume) + { + if (knob >= settings.Knobs.Count) + return; + + if (!settings.Knobs[knob].DeviceId.HasValue) + return; + + var deviceId = settings.Knobs[knob].DeviceId.Value; + + Task.Run(async () => + { + using (await setVolumeLock.LockAsync()) + { + var device = await audioDeviceManager.GetDeviceById(deviceId); + if (device != null) + await device.SetVolume(volume); + } + }); + } + + + private void SettingsForm_FormClosing(object sender, FormClosingEventArgs e) + { + if (closing) + return; + + Hide(); + e.Cancel = true; + } + + + private void SettingsForm_FormClosed(object sender, FormClosedEventArgs e) + { + foreach (var knobDeviceControl in knobDeviceControls) + knobDeviceControl.Dispose(); + + knobDeviceControls.Clear(); + + + hardware?.DetachObserver(this); + hardware?.Disconnect().GetAwaiter().GetResult(); + audioDeviceManager?.Dispose(); + } + + + private void NotifyIcon_DoubleClick(object sender, EventArgs e) + { + Settings(); + } + + + private void QuitToolStripMenuItem_Click(object sender, EventArgs e) + { + Quit(); + } + + + private void SettingsToolStripMenuItem_Click(object sender, EventArgs e) + { + Settings(); + } + + + private void CloseButton_Click(object sender, EventArgs e) + { + Close(); + } + + + private void SerialPortCombobox_SelectedIndexChanged(object sender, EventArgs e) + { + if (loading || (string)SerialPortCombobox.SelectedItem == settings.SerialPort) + return; + + settings.SerialPort = (string) SerialPortCombobox.SelectedItem; + SaveSettings(); + + Task.Run(Connect); + } + } +} diff --git a/Windows/Forms/SettingsForm.resx b/Windows/Forms/SettingsForm.resx new file mode 100644 index 0000000..d12ce05 --- /dev/null +++ b/Windows/Forms/SettingsForm.resx @@ -0,0 +1,5838 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 125, 17 + + + + + AAABAAoAGBgAAAEACADIBgAApgAAAAAAAAABACAAeBQAAG4HAACAgAAAAQAgACgIAQDmGwAAYGAAAAEA + IAColAAADiQBAEhIAAABACAAiFQAALa4AQBAQAAAAQAgAChCAAA+DQIAMDAAAAEAIACoJQAAZk8CACAg + AAABACAAqBAAAA51AgAYGAAAAQAgAIgJAAC2hQIAEBAAAAEAIABoBAAAPo8CACgAAAAYAAAAMAAAAAEA + CAAAAAAAQAIAAAAAAAAAAAAAAAEAAAABAAAAAAAAOjo6AD4+PgCHh4cAmpqaAKGhoQCvr68A3t7eAOnp + 6QD+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////8AAAAA + AAAAAAAAAAAAAAAA/////////////wAAAAAAAAAAAAAAAAD///////////////8AAAAAAAAAAAAAAP// + ////////////////AAAAAAAAAAAA////////////////////AAAAAAAAAAAA//////////////////// + /wAAAAAAAAAA/////////////////////wD///8AAP8A/////////////////////wD/////AP8A//// + /////////////////wD/////AP8A/////////////////////wD/////AP8A//////////////8H//// + //////8AAP//AP///////////wgCA///AP////8AAAD/AP////////////8FAgT/AP////8AAAD//wD/ + ////////////BgcA/////wAAAAAA//8A/////////////wD/////AAAAAAAAAP//AAD///////8AAP// + ////AAAAAAAAAAD///8AAAAAAP///////wAAAAAAAAAAAAAA////////////////AAAAAAAAAAAAAAAA + AAD//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 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 + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wj///8s////S////1////97////f/// + /3////9/////f////3////9r////W////zz///8cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wT///83////c/// + /6/////b//////////////////////////////////////////////////////////////////////// + ///////z////y////5P///9X////GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////DP///1v///+n////8/////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////0/// + /4P///8vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////N////5/////z//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////T////c////xAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8E////U/// + /8v///////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////9////5P///8kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////T////9f///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //v///+f////GAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////K////8P///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////3////e////wgAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////CP///4v////7//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////1////z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///y/////X//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////+/// + /4v///8EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///9n////9/////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////8v///8gAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8E////m/////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////+f///87AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////DP// + /7////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////v///9TAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///xj////H//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////9vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8Y////1/// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////9vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////DP///8P///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////9fAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wT///+3//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////v///9HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////k/////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////P///8nAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///1////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////9f///8MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8n////8/////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /6cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////BP///8////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////1MAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///97//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////6////xQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////JP////f///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////owAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///+z//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////OwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////P/////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////DAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///+///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////9PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////P/////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /8cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///+z//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////zsAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////IP////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////qwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///+H//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////7////FAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///+P///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////9vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///87//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////8MAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///4v///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////xQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////1/////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////XwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///xj///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////+fAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////CP///zj///9b////X////1f///8w////BAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////U/////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /9sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////L////6f////3//////// + ///////////////////////r////k////yQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///+L//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////DP///5P/////////////////////////////////////////////////////////9/// + /3MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///7f///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////QwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wz////D//////////////////////// + /////////////////////////////////////////////////6f///8EAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////4/// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////9rAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8E////v/////////////////////////////////////////////////////////////////// + /////////////////5cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wj///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////48AAAAAAAAAAAAAAAAAAAAAAAAAAP///3v///////////////////////////// + /////////////////////////////////////////////////////////////////0sAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////JP// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////qwAAAAAAAAAAAAAAAAAA + AAD///8Y////9/////////////////////////////////////////////////////////////////// + ////////////////////////////2wAAAAAAAAAAAAAAAAAAAAAAAAAA////EP///5f////b////0/// + /2sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9A//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////+/AAAAAAAAAAAAAAAAAAAAAP///3f///////////////////////////// + ////////////////////////////////////////////////////////////////////////////QwAA + AAAAAAAAAAAAAP///wT////H/////////////////////////38AAAAAAAAAAAAAAAAAAAAAAAAAAP// + /0v///////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////9sAAAAAAAAAAAAA + AAAAAAAA////x/////////////////////////////////////////////////////////////////// + //////////////////////////////////////+TAAAAAAAAAAAAAAAA////P/////////////////// + ////////////8wAAAAAAAAAAAAAAAAAAAAAAAAAA////X/////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////3wAAAAAAAAAAAAAAAAAAAAD////3//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /8cAAAAAAAAAAAAAAAD///9f////////////////////////////////////GAAAAAAAAAAAAAAAAAAA + AAD///9f//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////fAAAAAAAA + AAAAAAAA////FP////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////3wAAAAAAAAAAAAAAAP///1////////////// + //////////////////////8gAAAAAAAAAAAAAAAAAAAAAP///1////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////98AAAAAAAAAAAAAAAD///8g//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////fAAAAAAAAAAAAAAAA////U////////////////////////////////////yAAAAAAAAAAAAAA + AAAAAAAA////X/////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////3wAA + AAAAAAAAAAAAAP///yD///////////////////////////////////////////////////////////// + /////////////////////////////////////////////////98AAAAAAAAAAAAAAAD///9A//////// + ////////////////////////////LAAAAAAAAAAAAAAAAAAAAAD///9T//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////fAAAAAAAAAAAAAAAA////IP////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////3wAAAAAAAAAAAAAAAP///zz///////////////////////////////////9AAAAAAAAA + AAAAAAAAAAAAAP///0D///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /8MAAAAAAAAAAAAAAAD///84//////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////HAAAAAAAAAAAAAAAA////IP// + /////////////////////////////////18AAAAAAAAAAAAAAAAAAAAA////KP////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////swAAAAAAAAAAAAAAAP///0f///////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////78AAAAAAAAAAAAAAAD///8M////////////////////////////////////ewAA + AAAAAAAAAAAAAAAAAAD///8M//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////+XAAAAAAAAAAAAAAAA////X/////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////nwAAAAAAAAAAAAAAAAAA + AAD////v//////////////////////////////+jAAAAAAAAAAAAAAAAAAAAAAAAAAD////r//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////3MAAAAAAAAAAAAAAAD///+D//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////+LAAAAAAAAAAAAAAAAAAAAAP///8////////////////////////////// + /88AAAAAAAAAAAAAAAAAAAAAAAAAAP///8P///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////SwAAAAAAAAAAAAAAAP///6f///////////////////////////////////////////// + /////////////////////////////////////////////////////////////////2sAAAAAAAAAAAAA + AAAAAAAA////q///////////////////////////////9////wQAAAAAAAAAAAAAAAAAAAAA////k/// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////8cAAAAAAAAAAAAAAAA////z/// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////RwAAAAAAAAAAAAAAAAAAAAD///9///////////////////////// + ////////////NwAAAAAAAAAAAAAAAAAAAAD///9f//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////5wAAAAAAAAAAAAAAAP///wj////7//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////8gAAAAAAAA + AAAAAAAAAAAAAP///1P///////////////////////////////////9zAAAAAAAAAAAAAAAAAAAAAP// + /yj///////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////+vAAAAAAAAAAAAAAAA////NP// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////7wAAAAAAAAAAAAAAAAAAAAAAAAAA////JP////////////////// + /////////////////7cAAAAAAAAAAAAAAAAAAAAAAAAAAP///+P///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////2sAAAAAAAAAAAAAAAD///9v//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////+/AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////6///////////////////////////////9////wgAAAAAAAAAAAAA + AAAAAAAA////m/////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////JAAAAAAAAAAAAAAAAP// + /7P///////////////////////////////////////////////////////////////////////////// + /////////////////////////////////4cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///+v//////// + ////////////////////////////TwAAAAAAAAAAAAAAAAAAAAD///9P//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////9MAAAAAAAAAAAAAAAD///8I////8/////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////TwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///2////////////////////////////////////+jAAAAAAAA + AAAAAAAAAAAAAP///wj////v//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////ewAAAAAAAAAAAAAAAP// + /0P///////////////////////////////////////////////////////////////////////////// + //////////////////////////////////v///8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////KP// + //////////////////////////////////P///8MAAAAAAAAAAAAAAAAAAAAAP///5f///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////4+Pj/319ff9ubm7/uLi4//// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////8kAAAAAAAAAAAAAAAA////m/////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////wwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////3/////////////////////////////////// + /2cAAAAAAAAAAAAAAAAAAAAA////N/////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////+Dg4P9MTEz/Ojo6/zo6Ov86Ojr/qKio//////////////////////////////////// + ////////////////////////////////////////////////////////////vwAAAAAAAAAAAAAAAP// + /wj////r//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////97AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///+P////////////////////////////////////ywAAAAAAAAAAAAAAAAAAAAAAAAAA////y/// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////g4OD/TExM/zo6Ov86Ojr/Ojo6/zo6 + Ov86Ojr/qKio//////////////////////////////////////////////////////////////////// + //////////////////////9TAAAAAAAAAAAAAAAA////U/////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /ywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zv///////////////////////////// + ////////////PwAAAAAAAAAAAAAAAAAAAAD///9X//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////7+/v/0xMTP86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/qKio//////////////////// + ////////////////////////////////////////////////////////////2////wQAAAAAAAAAAAAA + AAD///+3//////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////XAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///+P///////////////////////////////////+vAAAAAAAAAAAAAAAAAAAAAP// + /wT////b//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////+4uLj/Ojo6/zo6Ov86Ojr/Ojo6/zo6 + Ov86Ojr/Ojo6/zo6Ov86Ojr/qKio//////////////////////////////////////////////////// + //////////////////////9fAAAAAAAAAAAAAAAA////KP////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /3sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////i/////////////////// + //////////////////////8vAAAAAAAAAAAAAAAAAAAAAP///1v///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////8HBwf86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/qKio//// + ////////////////////////////////////////////////////////////2////wQAAAAAAAAAAAAA + AAD///+f//////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8o/////////////////////////////////////////7sAAAAAAAAAAAAA + AAAAAAAAAAAAAP///8v///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////Pz8/3p6ev86Ojr/Ojo6/zo6 + Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/qKio//////////////////////////////////// + //////////////////////9XAAAAAAAAAAAAAAAA////JP////v///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /7cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///+///////// + /////////////////////////////////0MAAAAAAAAAAAAAAAAAAAAA////O/////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////Pz8/3p6ev86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6 + Ov86Ojr/qKio////////////////////////////////////////////////wwAAAAAAAAAAAAAAAAAA + AAD///+f//////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////SwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///0//////////////////////////////////////////1/// + /wQAAAAAAAAAAAAAAAAAAAAA////m/////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////Pz8/3p6 + ev86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/qKio//////////////////// + //////////////////v///8nAAAAAAAAAAAAAAAA////K/////v///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /9sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////BP// + /9v/////////////////////////////////////////dwAAAAAAAAAAAAAAAAAAAAD///8Q////4/// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////Pz8/3p6ev86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6 + Ov86Ojr/Ojo6/zo6Ov86Ojr/r6+v////////////////////////////////fwAAAAAAAAAAAAAAAAAA + AAD///+7//////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////XwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////X/////////////////////////////////// + ///////3////JwAAAAAAAAAAAAAAAAAAAAD///9D//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////Pz8/3p6ev86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov9JSUn///////// + /////////////////8f///8EAAAAAAAAAAAAAAAA////V/////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /9v///8EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8I////3//////////////////////////////////////////L////BAAAAAAAAAAAAAAAAAAA + AAD///+D//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////Pz8/3p6ev86Ojr/Ojo6/zo6 + Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/0lJSf/////////////////////v////IAAAAAAAAAAAAAAAAP// + /xT////r//////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////XwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9f//////////////////////// + //////////////////////+HAAAAAAAAAAAAAAAAAAAAAP///wT///+7//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////Pz8/3p6ev86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/r6+v//// + ////////////+/39/UcAAAAAAAAAAAAAAAAAAAAA////q/////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /9f///8EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///wT////T//////////////////////////////////////////////9LAAAAAAAA + AAAAAAAAAAAAAP///xD////X//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////Pz8/3p6 + ev86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/6ioqP/////////////////5+flrAAAAAAAAAAAAAAAAAAAAAP// + /1////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////RwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///0f///////////// + //////////////////////////////////P///8nAAAAAAAAAAAAAAAAAAAAAP///yD////n//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////Pz8/3p6ev86Ojr/Ojo6/zo6Ov+oqKj///////// + ////////9vb2jwAAAAAAAAAAAAAAAAAAAAD///8r////8/////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /7MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///6////////////////////////////////////////////// + /9v///8YAAAAAAAAAAAAAAAAAAAAAP///yf////n//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////Pz8/6Kiov+EhIT/xMTE//////////////////T09JMAAAAAAAAAAAAAAAAAAAAA////FP// + /9v///////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////z////IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////HP// + //P//////////////////////////////////////////////8P///8MAAAAAAAAAAAAAAAAAAAAAP// + /yf////n//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///19fWPAAAAAAAAAAAAAAAAAAAAAP///wT////D//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /3MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////a/////////////////////////////////// + /////////////////8P///8MAAAAAAAAAAAAAAAAAAAAAP///yf////b//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////9vb2iwAAAAAAAAAAAAAAAAAAAAD///8E////q/// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////D////BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////v////////////////////////////////////////////////////8P///8MAAAAAAAA + AAAAAAAAAAAAAP///xj////H//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////+/r6 + +mcAAAAAAAAAAAAAAAAAAAAAAAAAAP///5v///////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////7/// + /yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8c////7/////////////////// + /////////////////////////////////8P///8MAAAAAAAAAAAAAAAAAAAAAP///wj///+b//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////+f+/v5DAAAAAAAAAAAAAAAAAAAAAP///wT///+b//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////9XAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///9P//////////////////////////////////////////////////////// + /9P///8YAAAAAAAAAAAAAAAAAAAAAAAAAAD///9b////8/////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////+7////GAAA + AAAAAAAAAAAAAAAAAAD///8E////q/////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////jwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///+H//////// + /////////////////////////////////////////////////+f///8zAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8g////v/////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////z////awAAAAAAAAAAAAAAAAAAAAAAAAAA////FP///8P///////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////7////8EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wT///+3//////////////////////////////////////// + //////////////////f///9jAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////W////+f///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////r////yAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///y/////b//////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////X////FAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /wz////X//////////////////////////////////////////////////////////////+n////EAAA + AAAAAAAAAAAAAAAAAAAAAAAA////EP///4P////3//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////z////0MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9j////8/////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////5////ycAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///yD////n//////////////////////// + ///////////////////////////////////////f////QwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /xj///+L////7/////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////y////08AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8U////q/////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////P///8zAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///yf////r//////////////////////////////////////////////////////// + ////////////n////xQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8Q////a////9P///////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////3////p/// + /zcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////V////+v///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////z////OwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zv////z//////// + ////////////////////////////////////////////////////////////7////3P///8IAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///y////+P////2/////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////f///+7////Y////xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////L/// + /7v///////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////8////zsAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zv////v//////////////////////////////////////// + /////////////////////////////////9v///9f////BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////KP///2f///+n////2/////////////////////////////////////////////////// + ///////////////////////////////////////3////x////4////9L////DAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////JP///5/////7//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////+v///87AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /yf////n//////////////////////////////////////////////////////////////////////// + ///////b////b////wwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////EP// + /zj///9f////f////5f///+f////v////7////+/////v////7P///+f////i////2////9P////LAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////L////5/////7//////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////j////JwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///yP////X//////////////////////// + ////////////////////////////////////////////////////////////8////5P///8zAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8I////V////7////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////y////xgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///xT///+///////////////////////////////////////////////////////// + ///////////////////////////////////////b////g////zMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wz///9P////o/////P///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////6P///8MAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wT///+T//////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////+f///+f////Z////zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8M////P////3v///+7////9/// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //v///9vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9X////8/////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //f////L////p////4P///9j////S////0D///8w////IP///yD///8g////QP///0D///9b////b/// + /4////+z////2/////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////b////MwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8j////x/////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////k/// + /wwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8E////c/////f///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////2////z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////J////8P///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////9////4P///8IAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /1v////j//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////6f///8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wj///93////7/////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////6////8vAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8Q////f////+////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /6////8vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////CP// + /2v////X//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////7////4////8kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9H////p/////f///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////v////1////8IAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////DP///2P///+7////9/////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //v////D////b////xwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8M////U////5f////X//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////3////5////9X////EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8Y////T/// + /4P///+z////3/////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////3////7P///+D////T////xgAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////DP///yz///9L////Y/// + /3////+T////n////5////+/////v////7////+3////n////5////+L////f////1////9H////KP// + /wgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////4AB///////////// + /////AAAA////////////////+AAAAB///////////////+AAAAAD//////////////8AAAAAAP///// + ////////+AAAAAAA/////////////+AAAAAAAD////////////+AAAAAAAAf////////////AAAAAAAA + B////////////gAAAAAAAAP///////////gAAAAAAAAB///////////wAAAAAAAAAP//////////4AAA + AAAAAAB//////////8AAAAAAAAAAP/////////+AAAAAAAAAAB//////////AAAAAAAAAAAP//////// + /wAAAAAAAAAAB/////////4AAAAAAAAAAAP////////8AAAAAAAAAAAD////////+AAAAAAAAAAAAf// + //////gAAAAAAAAAAAD////////wAAAAAAAAAAAA////////8AAAAAAAAAAAAH///////+AAAAAAAAAA + AAB////////gAAAAAAAAAAAAP///////wAAAAAAAAAAAAD///////8AAAAAAAAAAAAAf//////+AAAAA + AAAAAAAAH///////gAAAAAAAAAAAAA///////4AAAAAAAAAAAAAP//////8AAAAAAAAAAAAAD/////// + AAAAAAAAAAAAAAf//////wAAAAAAAAAAAAAH//////4AAAAAAAAAAAAAB/+A///+AAAAAAAAAAAAAAf+ + AD///gAAAAAAAAAAAAAD+AAf//4AAAAAAAAAAAAAA/AAB//+AAAAAAAAAAAAAAPgAAf//AAAAAAAAAAA + AAAD4AAD//wAAAAAAAAAAAAAA8AAA+D8AAAAAAAAAAAAAAPAAAHAfAAAAAAAAAAAAAADwAABwHwAAAAA + AAAAAAAAA8AAAcA8AAAAAAAAAAAAAAOAAAHAPAAAAAAAAAAAAAADgAABwDwAAAAAAAAAAAAAA4AAAcA8 + AAAAAAAAAAAAAAOAAAHAPAAAAAAAAAAAAAADgAABwDwAAAAAAAAAAAAAA4AAAcA8AAAAAAAAAAAAAAOA + AAHgPgAAAAAAAAAAAAADgAAB4D4AAAAAAAAAAAAAA4AAAeAeAAAAAAAAAAAAAAOAAAHgHgAAAAAAAAAA + AAAHAAAB4B4AAAAAAAAAAAAABwAAA+AfAAAAAAAAAAAAAAcAAAPwDwAAAAAAAAAAAAAHAAAD8A8AAAAA + AAAAAAAADgAAA/APAAAAAAAAAAAAAA4AAAPwB4AAAAAAAAAAAAAOAAAH+AeAAAAAAAAAAAAAHAAAB/gH + wAAAAAAAAAAAABwAAAf4A8AAAAAAAAAAAAAcAAAP/APAAAAAAAAAAAAAOAAAD/wB4AAAAAAAAAAAADgA + AA/8AfAAAAAAAAAAAABwAAAf/gDwAAAAAAAAAAAA8AAAH/4AeAAAAAAAAAAAAOAAAD/+AHgAAAAAAAAA + AAHgAAA//wA8AAAAAAAAAAABwAAAP/8AHgAAAAAAAAAAA4AAAH//gB4AAAAAAAAAAAeAAAB//4APAAAA + AAAAAAAPAAAA///AB4AAAAAAAAAAHgAAAf//4APAAAAAAAAAADwAAAH//+AB4AAAAAAAAAB4AAAD///w + APAAAAAAAAAA8AAAA///+AB4AAAAAAAAAfAAAAf///gAPAAAAAAAAAPAAAAP///8AB8AAAAAAAAHgAAA + H////gAPgAAAAAAAHwAAAB////4AB+AAAAAAAD4AAAA/////AAHwAAAAAAD8AAAAf////4AA/AAAAAAD + 8AAAAP/////AAD8AAAAAD+AAAAH/////4AAP4AAAAD+AAAAD//////AAA/wAAAH+AAAAB//////4AAD/ + wAA/+AAAAA///////AAAP////8AAAAAf//////4AAAf///4AAAAAP///////AAAAf//gAAAAAP////// + /8AAAAAAAAAAAAH////////gAAAAAAAAAAAD////////8AAAAAAAAAAAD/////////wAAAAAAAAAAB// + ////////AAAAAAAAAAB//////////4AAAAAAAAAB///////////gAAAAAAAAB///////////+AAAAAAA + AB////////////8AAAAAAAB/////////////wAAAAAAD//////////////gAAAAAH/////////////// + gAAAAf////////////////wAAD////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////KAAAAGAAAADAAAAAAQAgAAAAAACAlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////Af7+/gz///8W////Hf7+/h////8f////H/7+/h////8Y////EP7+ + /gUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////IP7+/l7///+U////vf7+/tf////r////+f7+ + /v7///////////7+/v3////w////4P7+/sn///+n////dv7+/jj///8GAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4F/v7+Of7+/o/+/v7a/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7y/v7+rf7+/lj+/v4UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+EP// + /2j////L////+P7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+ + /v7///////////7+/v7///////////7+/v7///////////7+/v3////l/v7+lP///yj///8CAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP7+/gn+/v5v/v7+3v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/vX+/v6k/v7+JQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8D/v7+Tf///93//////v7+/v////////////////7+ + /v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+ + /v7///////////7+/v7///////////7+/v7//////v7+/v///////////v7++v///4f///8TAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///xv///+j/v7++f// + /////////v7+/v////////////////7+/v7///////////7+/v7///////////7+/v7///////////7+ + /v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7//////v7+/v// + /////////v7+/v////7////W/v7+RwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/v7+Ov7+/tz+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7++P7+/n/+/v4FAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wP///9p/v7+9f///////////v7+/v///////////v7+/v// + //////////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+ + /v7///////////7+/v7///////////7+/v7///////////7+/v7//////v7+/v///////////v7+/v// + /////////v7+/v////////+x/v7+FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+BP///37////5/v7+/v// + /////////v7+/v///////////v7+/v////////////////7+/v7///////////7+/v7///////////7+ + /v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+ + /v7//////v7+/v///////////v7+/v///////////v7+/v/////////+/v7+yf///x0AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD+/v4E/v7+i/7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/tH+/v4dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wL///99/v7+/f///////////v7+/v///////////v7+/v// + /////////v7+/v////////////////7+/v7///////////7+/v7///////////7+/v7///////////7+ + /v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7//////v7+/v// + /////////v7+/v///////////v7+/v///////////v7+/v/////////Q/v7+FwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///2T////4/v7+/v// + /////////v7+/v///////////v7+/v///////////v7+/v////////////////7+/v7///////////7+ + /v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+ + /v7///////////7+/v7//////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v// + ///////+/v7+u////wcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/v7+Nf7+/vT+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/oz+/v4CAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8W/v7+1////////////v7+/v///////////v7+/v// + /////////v7+/v///////////v7+/v////////////////7+/v7///////////7+/v7///////////7+ + /v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+ + /v7//////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v// + //z///9YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wL///+c/v7+/v// + /////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v////////////////7+ + /v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+ + /v7///////////7+/v7///////////7+/v7//////v7+/v///////////v7+/v///////////v7+/v// + /////////v7+/v///////////v7+/v/////////h/v7+HQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP7+/kX+/v73/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ogAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+Bv///9T//////v7+/v///////////v7+/v// + /////////v7+/v///////////v7+/v///////////v7+/v////////////////7+/v7///////////7+ + /v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+ + /v7///////////7+/v7//////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v// + /////////v7+/v///////////v7+/v///z8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+X/// + /////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v// + //////////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+ + /v7///////////7+/v7///////////7+/v7///////////7+/v7//////v7+/v///////////v7+/v// + /////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///7////8HAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD+/v4L/v7+0f7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/vz+/v5HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9W/v7+/v///////////v7+/v// + /////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v////////////////7+ + /v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+ + /v7///////////7+/v7///////////7+/v7//////v7+/v///////////v7+/v///////////v7+/v// + /////////v7+/v///////////v7+/v///////////v7+/v////////+6/v7+AQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+ + /gL///+8/v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v// + /////////v7+/v////////////////7+/v7///////////7+/v7///////////7+/v7///////////7+ + /v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7//////v7+/v// + /////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v// + ///////1/v7+MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/in////z/v7+/v///////////v7+/v///////////v7+/v// + /////////v7+/v///////////v7+/v///////////v7+/v////////////////7+/v7///////////7+ + /v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+ + /v7///////////7+/v7//////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v// + /////////v7+/v///////////v7+/v///////////v7+hQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/nf+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+3QAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP7+/sX//////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v// + /////////v7+/v///////////v7+/v////////////////7+/v7///////////7+/v7///////////7+ + /v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+ + /v7//////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v// + /////////v7+/v///////////v7+/v///ywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Df7+/vr//////v7+/v///////////v7+/v// + /////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v////////////////7+ + /v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+ + /v7///////////7+/v7///////////7+/v7//////v7+/v///////////v7+/v///////////v7+/v// + /////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///24AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8Y/v7+P////0f///80/v7+CAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+Rv7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/qoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4E/v7+Uv7+/sr+/v79/v7+/v7+ + /v7+/v7+/v7+8/7+/p7+/v4rAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////ef7+/v7//////v7+/v///////////v7+/v///////////v7+/v// + /////////v7+/v///////////v7+/v///////////v7+/v////////////////7+/v7///////////7+ + /v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+ + /v7///////////7+/v7//////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v// + /////////v7+/v///////////v7+/v///////////v7+/v///9T///8KAAAAAAAAAAAAAAAAAAAAAP// + /w7///+l/v7++////////////v7+/v///////////v7+/v/////////r/v7+YAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////o/7+/v7//////v7+/v// + /////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v// + //////////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+ + /v7///////////7+/v7///////////7+/v7///////////7+/v7//////v7+/v///////////v7+/v// + /////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v// + //H///8ZAAAAAAAAAAAAAAAA/v7+Av///67////+/v7+/v///////////v7+/v///////////v7+/v// + /////////v7++v///1YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD+/v4D/v7+xv7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v4uAAAAAAAAAAAAAAAA/v7+cv7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/ur+/v4jAAAAAAAAAAAAAAAA/v7+A/// + /z////9k/v7+LAAAAAAAAAAAAAAAAAAAAAD///8M////2P7+/v7//////v7+/v///////////v7+/v// + /////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v////////////////7+ + /v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+ + /v7///////////7+/v7///////////7+/v7//////v7+/v///////////v7+/v///////////v7+/v// + /////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v////////9KAAAAAAAA + AAD///8S/v7+4P///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v// + //////+NAAAAAAAAAAAAAAAA/v7+d/////3//////v7+9P///0cAAAAAAAAAAAAAAAD///8S////4/7+ + /v7//////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v// + /////////v7+/v////////////////7+/v7///////////7+/v7///////////7+/v7///////////7+ + /v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7//////v7+/v// + /////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v// + /////////v7+/v////////9fAAAAAAAAAAD///9L/v7+/v///////////v7+/v///////////v7+/v// + /////////v7+/v///////////v7+/v/////////b/v7+BwAAAAD+/v4R/v7+4/7+/v7+/v7+/v7+/v7+ + /roAAAAAAAAAAAAAAAD+/v4X/v7+7v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v5nAAAAAAAAAAD+/v58/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7y/v7+JgAA + AAD///8X/v7+7v///////////v7+/v///87///8HAAAAAAAAAAD///8X////7/7+/v7//////v7+/v// + /////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v// + //////////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+ + /v7///////////7+/v7///////////7+/v7///////////7+/v7//////v7+/v///////////v7+/v// + /////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v// + //////9nAAAAAAAAAAD///+V/v7+/v///////////v7+/v///////////v7+/v///////////v7+/v// + /////////v7+/v/////////3/v7+LwAAAAD///8V/v7+6v///////////v7+/v///8////8HAAAAAAAA + AAD///8X////7/7+/v7//////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v// + /////////v7+/v///////////v7+/v////////////////7+/v7///////////7+/v7///////////7+ + /v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+ + /v7//////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v// + /////////v7+/v///////////v7+/v////////9nAAAAAAAAAAD///+X/v7+/v///////////v7+/v// + /////////v7+/v///////////v7+/v///////////v7+/v/////////3/v7+LwAAAAD+/v4Q/v7+3/7+ + /v7+/v7+/v7+/v7+/tf+/v4MAAAAAAAAAAD+/v4T/v7+5v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v5iAAAAAAAA + AAD+/v6a/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v71/v7+LQAAAAD///8L/v7+1f///////////v7+/v///+f///8TAAAAAAAAAAD///8N////2v7+ + /v7//////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v// + /////////v7+/v////////////////7+/v7///////////7+/v7///////////7+/v7///////////7+ + /v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7//////v7+/v// + /////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v// + /////////v7+/v////////9OAAAAAAAAAAD///+v/v7+/v///////////v7+/v///////////v7+/v// + /////////v7+/v///////////v7+/v/////////v/v7+IAAAAAD///8E/v7+x////////////v7+/v// + //n///8dAAAAAAAAAAD///8E////x/7+/v7//////v7+/v///////////v7+/v///////////v7+/v// + /////////v7+/v///////////v7+/v///////////v7+/v////////////////7+/v7///////////7+ + /v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+ + /v7///////////7+/v7//////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v// + /////////v7+/v///////////v7+/v///////////v7+/v////////80AAAAAAAAAAD////E/v7+/v// + /////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v/////////p/v7+EwAA + AAAAAAAA/v7+sP7+/v7+/v7+/v7+/v7+/v7+/v5AAAAAAAAAAAAAAAAA/v7+q/7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /vX+/v4bAAAAAP7+/gX+/v7h/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7f/v7+BAAAAAAAAAAA/v7+jf///////////v7+/v////////9sAAAAAAAA + AAAAAAAA////gP7+/v7//////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v// + /////////v7+/v///////////v7+/v////////////////7+/v7///////////7+/v7///////////7+ + /v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+ + /v7//////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v// + /////////v7+/v///////////v7+/v///9n///8MAAAAAP///xz////t/v7+/v///////////v7+/v// + /////////v7+/v///////////v7+/v///////////v7+/v/////////BAAAAAAAAAAAAAAAA/v7+Zf// + /////////v7+/v////////+gAAAAAAAAAAAAAAAA////T/7+/v7//////v7+/v///////////v7+/v// + /////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v////////////////7+ + /v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+ + /v7///////////7+/v7///////////7+/v7//////v7+/v///////////v7+/v///////////v7+/v// + /////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///7MAAAAAAAAAAP// + /z7////8/v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v// + //////+dAAAAAAAAAAAAAAAA/v7+N/7+/v7+/v7+/v7+/v7+/v7+/v7Z/v7+BgAAAAAAAAAA/v7+Fv7+ + /v3+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/noAAAAAAAAAAP7+/m7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v5tAAAAAAAAAAAAAAAA/v7+C/////n//////v7+/v// + ///////1/v7+LgAAAAAAAAAAAAAAAP7+/s///////v7+/v///////////v7+/v///////////v7+/v// + /////////v7+/v///////////v7+/v///////////v7+/v////////////////7+/v7///////////7+ + /v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+ + /v7///////////7+/v7//////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v// + /////////v7+/v///////////v7+/v///////////v7+/v///zUAAAAAAAAAAP///6z//////v7+/v// + /////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v////7///87AAAAAAAA + AAAAAAAAAAAAAP///8z//////v7+/v///////////v7+bwAAAAAAAAAAAAAAAP7+/ob//////v7+/v// + /////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v// + //////////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+ + /v7///////////7+/v7///////////7+/v7///////////7+/v7//////v7+/v///////////v7+/v// + /////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+5v// + /wIAAAAA/v7+BP///+3//////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v// + /////////v7+/v///+z///8WAAAAAAAAAAAAAAAAAAAAAP7+/oj+/v7+/v7+/v7+/v7+/v7+/v7+xgAA + AAAAAAAAAAAAAP7+/jT+/v73/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v39/f7p6en+9/f3/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+jwAAAAAAAAAA/v7+P/7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/rv+/v4CAAAAAAAAAAAAAAAAAAAAAP// + /0X////8/v7+/v///////////v7+/P///ykAAAAAAAAAAP7+/gT////I/v7+/v///////////v7+/v// + /////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v////////////////7+ + /v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+ + /v7///////////7+/v7///////////7+/v7/////+fn5/oSEhP9HR0f/YWFh/ufn5////////v7+/v// + /////////v7+/v///////////v7+/v///////////v7+/v/////////4/v7+PAAAAAAAAAAA/v7+k/// + /////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v// + /3cAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/hH+/v7l/v7+/v7+/v7+/v7+/v7+/v7+/ooAAAAAAAAAAAAA + AAD+/v5o/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v75+fn+g4OD/jk5 + Of45OTn+OTk5/l1dXf7n5+f+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7I/v7+BAAAAAD+/v4Q/v7+4P7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/iwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///+f/v7+/v// + /////////v7+/v///+f///8WAAAAAAAAAAD///8Q/v7+3////////////v7+/v///////////v7+/v// + /////////v7+/v///////////v7+/v///////////v7+/v////////////////7+/v7///////////7+ + /v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+ + /v7///////////7+/v6RkZH/OTk5/jo6Ov86Ojr/OTk5/jo6Ov9aWlr/5OTk/v///////////v7+/v// + /////////v7+/v///////////v7+/v////7///9WAAAAAAAAAAD///9a/v7+/v///////////v7+/v// + /////////v7+/v///////////v7+/v///////////v7+/v///////////v7+0wAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///9M/v7+/f///////////v7+/v////////9zAAAAAAAAAAAAAAAA/v7+dv// + /////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v// + //////////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+ + /v7///////////7+/v7///////////7+/v7///////////7+/v5nZ2f/OTk5/jo6Ov86Ojr/OTk5/jo6 + Ov86Ojr/Wlpa/ufn5////////v7+/v///////////v7+/v///////////v7+/v///8z///8LAAAAAP// + /wX////D/v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v// + /////////v7+eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4O/v7+3P7+/v7+/v7+/v7+/v7+ + /v7+/v7h/v7+FgAAAAAAAAAA/v7+Cv7+/uH+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v6ysrL+PT09/jk5Of45OTn+OTk5/jk5Of45OTn+OTk5/l1dXf7n5+f+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/lUAAAAAAAAAAP7+/kr+/v76/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7x/v7+JgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/v7+gP///////////v7+/v//////////////iAAAAAAAAAAAAAAAAP///1n////7/v7+/v// + /////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v////////////////7+ + /v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+ + /v7///////////7+/v7///////////7+/v7+/v7/srKy/j09Pf86Ojr/OTk5/jo6Ov86Ojr/OTk5/jo6 + Ov9aWlr/5OTk/v///////////v7+/v///////////v7+ugAAAAAAAAAA/v7+Af///8f//////v7+/v// + /////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v////////+oAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+Gv////b//////v7+/v//////////////9v7+ + /icAAAAAAAAAAP///wX///+x/v7+/v///////////v7+/v///////////v7+/v///////////v7+/v// + /////////v7+/v////////////////7+/v7///////////7+/v7///////////7+/v7///////////7+ + /v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7//////v7+/qys + rP9AQED/OTk5/jo6Ov86Ojr/OTk5/jo6Ov86Ojr/Wlpa/unp6f///////v7+/v/////////u/v7+LgAA + AAAAAAAA/v7+Vv////7//////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v// + /////////v7+/v////n///88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+ + /pn+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/rf+/v4HAAAAAAAAAAD+/v4j/v7+5v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v6srKz+PT09/jk5Of45OTn+OTk5/jk5Of45OTn+OTk5/oGB + gf7+/v7+/v7+/v7+/v7+/v5yAAAAAAAAAAD+/v4R/v7+2P7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/rT+/v4EAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///yn////w/v7+/v////////////////7+/v7///91AAAAAAAA + AAAAAAAA/v7+S/////r//////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v// + //////////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+ + /v7///////////7+/v7///////////7+/v7///////////7+/v7//////v7+/v/////+/v7/srKy/j09 + Pf86Ojr/OTk5/jo6Ov86Ojr/OTk5/oGBgf///////v7+/v///6j///8FAAAAAP///wH///+W/v7+/v// + /////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/f// + /zcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///+V/v7+/v// + //////////////7+/v7////w/v7+PQAAAAAAAAAAAAAAAP///4H////8/v7+/v///////////v7+/v// + /////////v7+/v///////////v7+/v////////////////7+/v7///////////7+/v7///////////7+ + /v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+ + /v7//////v7+/v///////////v7+/qysrP9AQED/OTk5/jo6Ov86Ojr/Wlpa/unp6f///////f390Pr6 + +hEAAAAAAAAAAP///0v////2/v7+/v///////////v7+/v///////////v7+/v///////////v7+/v// + /////////v7+/v///////////v7+rAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD+/v4e/v7+6f7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+4P7+/hYAAAAAAAAAAP7+ + /gX+/v6e/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v6srKz+PT09/jk5 + Of5aWlr+5OTk/v7+/v79/f3g6urqJwAAAAAAAAAA/v7+GP7+/uP+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7v/v7+KgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+bf////////////////7+ + /v7//////v7+/v///8P///8QAAAAAAAAAAD///8H/v7+n////////////v7+/v///////////v7+/v// + /////////v7+/v////////////////7+/v7///////////7+/v7///////////7+/v7///////////7+ + /v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7//////v7+/v// + /////////v7+/v/////+/v7/ycnJ/qmpqf/u7u7//v7+/vz8/N7k5OQqAAAAAAAAAAD///8P/v7+wf// + /////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v// + //////94AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/v7+Bf///8n///////////7+/v7//////v7+/v////7///+t/v7+DgAAAAAAAAAA/v7+B/// + /6P////8/v7+/v///////////v7+/v///////////v7+/v////////////////7+/v7///////////7+ + /v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+ + /v7///////////7+/v7//////v7+/v///////////v7+/v///////////v7+/v///////////f394OXl + 5SkAAAAAAAAAAP7+/gj///+i/v7+/v///////////v7+/v///////////v7+/v///////////v7+/v// + /////////v7+/v///////////v7+/v///8f///8OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/jP+/v7z/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+sP7+/gYAAAAAAAAAAP7+/gb+/v6K/v7+/f7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7O7u7uJgAAAAAAAAAAAAAAAP7+/pX+/v79/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+9f7+/i4AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///9v/////v7+/v7//////v7+/v///////////v7+/v///7H///8SAAAAAAAAAAD///8B/v7+Wv// + /+7//////v7+/v///////////v7+/v////////////////7+/v7///////////7+/v7///////////7+ + /v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+ + /v7//////v7+/v///////////v7+/v///////////v7+/f///5/9/f0RAAAAAAAAAAD+/v4I/v7+lf// + /////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v// + ///////7/v7+aQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8H////qP7+/v7//////v7+/v///////////v7+/v// + //7////A/v7+IAAAAAAAAAAAAAAAAP///y/////E/v7+/f///////////v7+/v////////////////7+ + /v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+ + /v7///////////7+/v7///////////7+/v7//////v7+/v///////////v7+/v/////////p/v7+Zv// + /wQAAAAAAAAAAP///w////+i/v7+/f///////////v7+/v///////////v7+/v///////////v7+/v// + /////////v7+/v///////////v7+/v////7///+c/v7+AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+Ev7+ + /tb+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+3f7+/jgAAAAAAAAAAAAAAAD+/v4K/v7+cP7+ + /vH+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/q7+/v4lAAAAAAAAAAAAAAAA/v7+Gv7+/sH+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/r/+/v4PAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/if////j/v7+/v///////////v7+/v///////////v7+/v// + //f///96/v7+BwAAAAAAAAAAAAAAAP///xr///+W/v7+8v////////////////7+/v7///////////7+ + /v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+ + /v7///////////7+/v7//////v7+/v////3////D/v7+RgAAAAAAAAAAAAAAAP///wH///9O/v7+4/// + /////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v// + /////////v7+0////xYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8//v7+6v// + /////////v7+/v///////////v7+/v/////////9/v7+wf///y////8BAAAAAAAAAAD///8B/v7+JP// + /47////k/////v7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+ + /v7///////////7+/v7///////////7+/v7///////////7+/v7////0/v7+t////0n///8HAAAAAAAA + AAAAAAAA/v7+Ef///5b////2/v7+/v///////////v7+/v///////////v7+/v///////////v7+/v// + /////////v7+/v///////////v7+/v/////////Z/v7+KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/v7+Sf7+/vj+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /vH+/v6L/v7+EwAAAAAAAAAAAAAAAAAAAAD+/v4S/v7+WP7+/rX+/v71/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v79/v7+1f7+ + /n3+/v4s/v7+AQAAAAAAAAAAAAAAAP7+/gP+/v5X/v7+2P7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/t3+/v4pAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///0v////r/v7+/v// + /////////v7+/v///////////v7+/v///////////v7+6v///3b///8XAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8M////RP7+/oX///+2////2P7+/vL///////////7+/v7///////////7+/v7/////////+f7+ + /uT////H////nP7+/mL///8fAAAAAAAAAAAAAAAAAAAAAAAAAAD///8F/v7+Sv///8f////+/v7+/v// + /////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v// + /////////v7+0v///yEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///9A/v7+5f///////////v7+/v///////////v7+/v///////////v7+/v// + //7////l/v7+jv///yn///8EAAAAAAAAAAAAAAAAAAAAAAAAAAD///8B////DP7+/hn///8n////N/7+ + /k////9P////T/7+/kP///8y////HP7+/hL///8EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+Ef// + /17////H/v7++v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v// + /////////v7+/v///////////v7+/v////7///++/v7+HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+LP7+/tv+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/vf+/v6+/v7+b/7+/h0AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/v7+Bv7+/kf+/v6a/v7+4v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/p/+/v4PAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///xT///+v/v7+/f///////////v7+/v///////////v7+/v///////////v7+/v// + //////////////7+/v3////S////lP7+/lr///8x////F/7+/gEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP7+/gv///8j////Q/7+/nj///+y////8f7+/v7//////v7+/v///////////v7+/v// + /////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v// + ///////w/v7+bgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8I/v7+d/////T//////v7+/v// + /////////v7+/v///////////v7+/v////////////////7+/v7///////////7+/v7////3////6v7+ + /tv////C////r/7+/qD///+X////l/7+/q////+5////0P7+/uT////x/////f7+/v7///////////7+ + /v7//////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v// + /////////v7+/v///////////v7+/v///8r///83AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP7+/jr+/v7O/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v72/v7+h/7+/gsAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8I/v7+e/////D//////v7+/v// + /////////v7+/v////////////////7+/v7///////////7+/v7///////////7+/v7///////////7+ + /v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7//////v7+/v// + /////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/f// + /7b///8vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///yj///+i/v7+9f///////////v7+/v////////////////7+/v7///////////7+ + /v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+ + /v7///////////7+/v7//////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v// + /////////v7+/v////z////L/v7+Uv///wUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4C/v7+Nv7+/rH+/v77/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+0v7+/lT+/v4HAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8n/v7+kv///+r///////////7+/v7///////////7+/v7///////////7+ + /v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+ + /v7//////v7+/v///////////v7+/v///////////v7+/v///////////v7+8v///6r///9C/v7+AQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///xj///9g////u/7+ + /vH////+//////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+ + /v7///////////7+/v7///////////7+/v7//////v7+/v///////////v7+/v/////////+/v7+8/// + /8X///9y/v7+If///wEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/iT+/v5h/v7+qP7+/uj+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+7P7+/qz+/v5l/v7+KP7+/gEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+ + /gH///8m////W/7+/o3///+2////0v7+/uf////4//////7+/v7///////////7+/v7///////////7+ + /v7////3////5v7+/tD///+1/v7+jf///1v///8m/v7+AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Cf7+/hT///8c////K/7+ + /jf///9D////T/7+/k////8/////N/7+/ib///8b////E/7+/ggAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////8AH/////////////gAAf///////////4AAAD///////////gAAAAf//////// + /+AAAAAP/////////4AAAAAD/////////wAAAAAB/////////gAAAAAAf///////+AAAAAAAP/////// + 8AAAAAAAH///////4AAAAAAAD///////wAAAAAAAB///////wAAAAAAAA///////gAAAAAAAAf////// + AAAAAAAAAf/////+AAAAAAAAAP/////+AAAAAAAAAP/////8AAAAAAAAAH/////8AAAAAAAAAD/////4 + AAAAAAAAAD/////4AAAAAAAAAB/////wAAAAAAAAAB/////wAAAAAAAAAB/////wAAAAAAAAAB/////w + AAAAAAAAAA/////gAAAAAAAAAA/4P//gAAAAAAAAAA/AD//gAAAAAAAAAAeAB//gAAAAAAAAAAcAA//A + AAAAAAAAAAcAAcPAAAAAAAAAAAYAAcHAAAAAAAAAAAYAAIHAAAAAAAAAAAYAAIDAAAAAAAAAAAYAAIDA + AAAAAAAAAAYAAIDAAAAAAAAAAAYAAIDAAAAAAAAAAAYAAIDAAAAAAAAAAAYAAMDgAAAAAAAAAAQAAMDg + AAAAAAAAAAQAAcDgAAAAAAAAAAwAAcBgAAAAAAAAAAwAAcBwAAAAAAAAAAwAAeBwAAAAAAAAAAgAAeBw + AAAAAAAAABgAAeAwAAAAAAAAABgAA+A4AAAAAAAAABAAA/AYAAAAAAAAADAAB/AcAAAAAAAAACAAB/AM + AAAAAAAAAGAAB/gOAAAAAAAAAMAAD/gGAAAAAAAAAMAAD/wDAAAAAAAAAYAAD/wDgAAAAAAAAQAAH/4B + wAAAAAAAAwAAP/4AwAAAAAAABgAAP/8AYAAAAAAADAAAf/8AMAAAAAAAGAAAf/+AGAAAAAAAOAAA///A + DAAAAAAAYAAB///ABwAAAAAAwAAB///gA4AAAAADgAAD///wAOAAAAAOAAAH///4ADAAAAAcAAAP///8 + AB4AAABwAAAf///+AAfAAAfAAAA/////AAD4AD8AAAB/////gAA///gAAAD/////wAAA/wAAAAP///// + 4AAAAAAAAAf/////+AAAAAAAAA///////AAAAAAAAD///////wAAAAAAAH///////4AAAAAAAf////// + //AAAAAAB/////////wAAAAAH/////////+AAAAA///////////wAAAP////////////gAH///////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////ygAAABIAAAAkAAAAAEAIAAAAAAAYFQAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///xL///9O////f////6b////D////1v///9f////X////zv///7j///+W////bP// + /zP///8DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///xz+/v5y////x/// + //z+/v7+//////7+/v7//////v7+/v/////+/v7+///////////+/v7+//////7+/v7////t/v7+ov// + /0n+/v4HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8q////oP////L///////////////////////////// + //////////////////////////////////////////////////////////////////7////X////a/// + /wsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////Fv7+/pj////5/v7+/v/////+/v7+///////////+/v7+//////7+/v7//////v7+/v// + ///+/v7+///////////+/v7+//////7+/v7//////v7+/v/////+/v7+//////7+/t7///9U////AgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9S////4/// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////8////rv///xgAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Bv///4v+/v78//////7+/v7//////v7+/v// + ///+/v7+///////////+/v7+//////7+/v7//////v7+/v/////+/v7+///////////+/v7+//////7+ + /v7//////v7+/v/////+/v7+//////7+/v7///////////7+/uH///86AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8L////sP////7///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////z////VQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /wv+/v69///////////+/v7+//////7+/v7//////v7+/v/////+/v7+///////////+/v7+//////7+ + /v7//////v7+/v/////+/v7+///////////+/v7+//////7+/v7//////v7+/v/////+/v7+//////7+ + /v7///////////7+/v7//////v7++P///1wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Bv///67////+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////X///9JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////hv////7///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////s////JQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///9M/v7++//////+/v7+///////////+/v7+//////7+/v7//////v7+/v// + ///+/v7+///////////+/v7+//////7+/v7//////v7+/v/////+/v7+///////////+/v7+//////7+ + /v7//////v7+/v/////+/v7+//////7+/v7///////////7+/v7//////v7+/v/////+/v7+////yv7+ + /goAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /xP////g//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v///34AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/o///////v7+/v// + ///+/v7+///////////+/v7+//////7+/v7//////v7+/v/////+/v7+///////////+/v7+//////7+ + /v7//////v7+/v/////+/v7+///////////+/v7+//////7+/v7//////v7+/v/////+/v7+//////7+ + /v7///////////7+/v7//////v7+/v/////+/v7+//////7+/vf///8jAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////IP////b///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////+lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////lP7+/v7//////v7+/v/////+/v7+///////////+/v7+//////7+ + /v7//////v7+/v/////+/v7+///////////+/v7+//////7+/v7//////v7+/v/////+/v7+//////// + ///+/v7+//////7+/v7//////v7+/v/////+/v7+//////7+/v7///////////7+/v7//////v7+/v// + ///+/v7+//////7+/v7////2////KQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8U////7P////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////jwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v5i//////7+ + /v7//////v7+/v/////+/v7+///////////+/v7+//////7+/v7//////v7+/v/////+/v7+//////// + ///+/v7+//////7+/v7//////v7+/v/////+/v7+///////////+/v7+//////7+/v7//////v7+/v// + ///+/v7+//////7+/v7///////////7+/v7//////v7+/v/////+/v7+//////7+/v7/////////6P7+ + /gcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///+3//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////v///0QAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wf////2//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////4oAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///8B////Iv///zX///8h////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///zv+/v7+//////7+/v7//////v7+/v/////+/v7+///////////+/v7+//////7+ + /v7//////v7+/v/////+/v7+///////////+/v7+//////7+/v7//////v7+/v/////+/v7+//////// + ///+/v7+//////7+/v7//////v7+/v/////+/v7+//////7+/v7///////////7+/v7//////v7+/v// + ///+/v7+//////7+/v7///////////7+/sUAAAAAAAAAAAAAAAAAAAAA////Bv7+/mj////g//////7+ + /v7//////v7+2////2X+/v4EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /2z///////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////+r///8NAAAAAAAAAAD///8F////pf////7///////////////////////////// + //3///+g////AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///5L+/v7+//////7+ + /v7//////v7+/v/////+/v7+///////////+/v7+//////7+/v7//////v7+/v/////+/v7+//////// + ///+/v7+//////7+/v7//////v7+/v/////+/v7+///////////+/v7+//////7+/v7//////v7+/v// + ///+/v7+//////7+/v7///////////7+/v7//////v7+/v/////+/v7+//////7+/v7///////////7+ + /v7///8fAAAAAAAAAAD+/v5//////v7+/v7///////////7+/v7//////v7+/v/////+/v7+////cwAA + AAAAAAAA////Av///1v///+G////JwAAAAAAAAAAAAAAAP///67///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////85AAAAAP// + /xT////t////////////////////////////////////////////////////5v///w4AAAAA////VP7+ + /v7//////v7+4P///wgAAAAAAAAAAP///8D+/v7+//////7+/v7//////v7+/v/////+/v7+//////// + ///+/v7+//////7+/v7//////v7+/v/////+/v7+///////////+/v7+//////7+/v7//////v7+/v// + ///+/v7+///////////+/v7+//////7+/v7//////v7+/v/////+/v7+//////7+/v7///////////7+ + /v7//////v7+/v/////+/v7+//////7+/v7///////////7+/v7///9MAAAAAP///07+/v7+//////7+ + /v7///////////7+/v7//////v7+/v/////+/v7+//////7+/kEAAAAA////hP////////////////// + /x4AAAAAAAAAAP///8X///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////9NAAAAAP///2z///////////////////////////// + /////////////////////////////////1wAAAAA////ff7+/v7//////v7+/v///yEAAAAAAAAAAP// + /8X+/v7+//////7+/v7//////v7+/v/////+/v7+///////////+/v7+//////7+/v7//////v7+/v// + ///+/v7+///////////+/v7+//////7+/v7//////v7+/v/////+/v7+///////////+/v7+//////7+ + /v7//////v7+/v/////+/v7+//////7+/v7///////////7+/v7//////v7+/v/////+/v7+//////7+ + /v7///////////7+/v7///9NAAAAAP///3H+/v7+//////7+/v7///////////7+/v7//////v7+/v// + ///+/v7+//////7+/l0AAAAA////cP///////////////////zQAAAAAAAAAAP///7T///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////9CAAAAAP///3v///////////////////////////////////////////////////////////// + /1MAAAAA////W////////////////////04AAAAAAAAAAP///5z///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////8rAAAAAP// + /5D//////////////////////////////////////////////////////////////0EAAAAA////QP7+ + /v7//////v7+/v///3UAAAAAAAAAAP///3v+/v7+//////7+/v7//////v7+/v/////+/v7+//////// + ///+/v7+//////7+/v7//////v7+/v/////+/v7+///////////+/v7+//////7+/v7//////v7+/v// + ///+/v7+///////////+/v7+//////7+/v7//////v7+/v/////+/v7+//////7+/v7///////////7+ + /v7//////v7+/v/////+/v7+//////7+/v7///////////7+/vT///8SAAAAAP///7H+/v7+//////7+ + /v7///////////7+/v7//////v7+/v/////+/v7+/////f7+/ikAAAAA////G/////7///////////// + /6MAAAAAAAAAAP///07///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////9b///8EAAAAAP///9n///////////////////////////// + ////////////////////////////7////xQAAAAA////Bf7+/ur//////v7+/v///9v+/v4DAAAAAP// + /xf+/v7+//////7+/v7//////v7+/v/////+/v7+///////////+/v7+//////7+/v7//////v7+/v// + ///+/v7+///////////+/v7+//////7+/v7//////v7+/v/////+/v7+///////////+/v7+//////7+ + /v7//////v7+/v/////+/v7+//////7+/v7///////////7+/v7//////v7+/v/////+/v7+//////7+ + /v7///////////7+/qIAAAAA/v7+Fv////X+/v7+//////7+/v7///////////7+/v7//////v7+/v// + ///+/v7+////1v7+/gEAAAAAAAAAAP///7z///////////////n///8pAAAAAAAAAAD////S//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////v// + /14AAAAA////Sv////7/////////////////////////////////////////////////////////pAAA + AAAAAAAAAAAAAP7+/oD//////v7+/v/////+/v50AAAAAAAAAAD+/v6D//////7+/v7//////v7+/v// + ///+/v7+///////////+/v7+//////7+/v7//////v7+/v/////+/v7+///////////+/v7+//////7+ + /v7//////v7+/v/////+/v7+///////////+/v7+//////7+/v7//////v7+/v/////+/v7+//////7+ + /v7///////////7+/v7//////v7+/v/////+/v7+//////7+/v7/////////9v7+/hYAAAAA/v7+kf// + ///+/v7+//////7+/v7///////////7+/v7//////v7+/v/////+/v7+////aQAAAAAAAAAAAAAAAP// + /zz////9///////////////N////AgAAAAD///8s////+P////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////u7u7/eXl5/3t7e//y8vL///////// + ////////////////////////////////////////////swAAAAD///8H////3P////////////////// + ///////////////////////////////////////9////IwAAAAAAAAAAAAAAAP7+/gn////k/v7+/v// + ///+/v7+////NwAAAAD+/v4B////vP7+/v7//////v7+/v/////+/v7+///////////+/v7+//////7+ + /v7//////v7+/v/////+/v7+///////////+/v7+//////7+/v7//////v7+/v/////+/v7+//////// + ///+/v7+//////7+/v7//////v7+/u7u7v9jY2P+Ojo6/zk5Of5oaGj/8fHx//7+/v7//////v7+/v// + ///+/v7+//////7+/v7////+////TAAAAAD///9C/v7+/v/////+/v7+//////7+/v7///////////7+ + /v7//////v7+/v/////+/v7T////AgAAAAAAAAAAAAAAAAAAAAD///+Y////////////////////qQAA + AAAAAAAA////Sf////7///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////5WVlf86Ojr/Ojo6/zo6Ov86Ojr/ZmZm//Hx8f////////////////////////////// + ///////K////BgAAAAD///+r//////////////////////////////////////////////////////// + //////98AAAAAAAAAAAAAAAAAAAAAAAAAAD///88/v7+/v/////+/v7+////9////zEAAAAA////Av7+ + /sD//////v7+/v/////+/v7+///////////+/v7+//////7+/v7//////v7+/v/////+/v7+//////// + ///+/v7+//////7+/v7//////v7+/v/////+/v7+///////////+/v7+//////7+/v7//////v7+/ri4 + uP87Ozv+Ojo6/zk5Of46Ojr/Ojo6/2hoaP7y8vL//v7+/v/////+/v7+//////7+/v7///9QAAAAAP7+ + /iz////3/v7+/v/////+/v7+//////7+/v7///////////7+/v7//////v7+/v////f+/v4mAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8E////zf///////////////////7cAAAAAAAAAAP///zX////2//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////7+/v+srKz/PDw8/zo6 + Ov86Ojr/Ojo6/zo6Ov9mZmb/8PDw/////////////////////7gAAAAAAAAAAP///6f///////////// + /////////////////////////////////////////////////7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////Yf////7///////////////7///9TAAAAAAAAAAD///+I//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////+/v7/qamp/zw8PP86Ojr/Ojo6/zo6 + Ov86Ojr/bW1t//v7+///////////7v///ycAAAAA////Ov////z///////////////////////////// + /////////////////////////////f///zwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+CP// + /9r+/v7+///////////+/v7k////GwAAAAD///8J/v7+xf/////+/v7+///////////+/v7+//////7+ + /v7//////v7+/v/////+/v7+///////////+/v7+//////7+/v7//////v7+/v/////+/v7+//////// + ///+/v7+//////7+/v7//////v7+/v/////+/v7+/v7+/6ysrP47Ozv/Ojo6/zk5Of46Ojr/Q0ND/vX1 + 9f/+/v79////XgAAAAD///8L////z/7+/v7//////v7+/v/////+/v7+//////7+/v7///////////7+ + /v7//////v7+tv///wIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///1/////+//////// + ////////////tv///wQAAAAA////If///+L///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////7+/v+pqan/PT09/zo6Ov8/Pz//t7e3//7+/v75+fmN/f39AQAA + AAD///+J/////v/////////////////////////////////////////////////////////5////NgAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wb+/v7G///////////+/v7+/////v7+ + /or///8BAAAAAP///zT+/v7p///////////+/v7+//////7+/v7//////v7+/v/////+/v7+//////// + ///+/v7+//////7+/v7//////v7+/v/////+/v7+///////////+/v7+//////7+/v7//////v7+/v// + ///+/v7+//////7+/v7+/v7/ra2t/19fX/66urr//v7+/vX19aLr6+sGAAAAAP7+/k7////8//////7+ + /v7//////v7+/v/////+/v7+//////7+/v7///////////7+/v7///+XAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///81////+P////////////////////z///9vAAAAAAAA + AAD///80////6f////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////z8/P/////+9fX1oefn5wYAAAAA/v7+Nf///+7///////////////////////////// + /////////////////////////////////9////8VAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////hf/////+/v7+//////7+/v7////7/v7+bgAAAAAAAAAA////K/// + /9f+/v7+//////7+/v7//////v7+/v/////+/v7+///////////+/v7+//////7+/v7//////v7+/v// + ///+/v7+///////////+/v7+//////7+/v7//////v7+/v/////+/v7+//////7+/v7///////////7+ + /vz7+/uM7u7uBQAAAAD+/v4m////5/7+/v7///////////7+/v7//////v7+/v/////+/v7+//////7+ + /v7/////////+/7+/kcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////Cf///8P//////////////////////////P///3r///8DAAAAAP///xD///+q/////f// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////6v///1b+/v4BAAAAAP// + /zX////n///////////////////////////////////////////////////////////////+////ggAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /x/+/v7o//////7+/v7//////v7+/v////3+/v6g////CgAAAAD+/v4D////W/7+/uX//////v7+/v// + ///+/v7+///////////+/v7+//////7+/v7//////v7+/v/////+/v7+///////////+/v7+//////7+ + /v7//////v7+/v/////+/v7+//////7+/v7///+v////IAAAAAAAAAAA/v7+UP///+7+/v7+//////7+ + /v7///////////7+/v7//////v7+/v/////+/v7+//////7+/v7///+u////BgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///87////8f// + ////////////////////////////0////zUAAAAAAAAAAP///w////+C////6f////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////9////w////0YAAAAAAAAAAP///wv///+K/////P////////////////////////////////// + /////////////////////////////////8b///8MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Tv////n///////////// + //////////////////b///+F////DwAAAAAAAAAA////FP///2z////N////+/////////////////// + ///////////////////////////////////////////////////////+////8f///6T///8/////BAAA + AAD///8B////Ov///8/////+//////////////////////////////////////////////////////// + ////////////y////xcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+/lf////z/v7+/v/////+/v7+//////// + ///+/v7+////5P7+/mn///8NAAAAAAAAAAAAAAAA////KP///2v+/v6p////1v7+/vL//////v7+/v// + ///+/v7+//////////v+/v7n////xv7+/pD///9N/v7+DgAAAAAAAAAAAAAAAP7+/iz///+o/////P7+ + /v7//////v7+/v/////+/v7+//////7+/v7///////////7+/v7//////v7+/v/////+/v7F////FAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9J////7v////////////////////////////////// + //7////i////gf///yP///8CAAAAAAAAAAAAAAAA////BP///xH///8g////Mv///zv///87////K/// + /xj///8MAAAAAAAAAAAAAAAAAAAAAP///wj///9F////r/////f///////////////////////////// + /////////////////////////////////////////////v///6////8QAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/v7+Mv///9v+/v7+///////////+/v7+//////7+/v7//////v7+/v// + //r+/v7F////eP///zj+/v4LAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+ + /hv///9P/v7+lv///+H+/v7+//////7+/v7///////////7+/v7//////v7+/v/////+/v7+//////7+ + /v7///////////7+/v7////7/v7+hP///wYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///xX///+t/////f////////////////////////////////////////////////// + //3////x////z////6r///+O////f////3H///92////hf///5n///+4////3/////b////+//////// + //////////////////////////////////////////////////////////////////////////////// + /+H///9LAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD+/v4C////ZP///+z+/v7+//////7+/v7//////v7+/v/////+/v7+///////////+/v7+//////7+ + /v7//////v7+/v/////+/v7+///////////+/v7+//////7+/v7//////v7+/v/////+/v7+//////7+ + /v7///////////7+/v7//////v7+/v/////+/v7+//////7+/v7////8////oP7+/hYAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /xv///+j////+P////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////f///8f///89////AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Nv7+ + /rP////9/v7+/v/////+/v7+///////////+/v7+//////7+/v7//////v7+/v/////+/v7+//////// + ///+/v7+//////7+/v7//////v7+/v/////+/v7+//////7+/v7///////////7+/v7//////v7+/v// + ///+/v7N////T/7+/gUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8r////mP// + /+r///////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////x////qP///z8AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///xH///9Z////q/// + /+7////9//////////////////////////////////////////////////////////////////////// + //////////////////3////v////sP///2D///8YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wb+/v45////cf7+ + /qP////M/v7+5f////j+/v7+///////////+/v7+//////7+/v7////3/v7+5P///8v+/v6j////cf7+ + /jv///8IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8B////C/// + /xT///8i////LP///zv///86////K////yD///8T////Cv///wEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////8AAAD///////////8A + AAD///////////8AAAD///////////8AAAD///////////8AAAD///////////8AAAD///////////8A + AAD///////////8AAAD////AAP////8AAAD///4AAB////8AAAD///gAAAf///8AAAD//+AAAAH///8A + AAD//8AAAAD///8AAAD//wAAAAB///8AAAD//gAAAAA///8AAAD//AAAAAAf//8AAAD/+AAAAAAP//8A + AAD/+AAAAAAH//8AAAD/8AAAAAAD//8AAAD/4AAAAAAD//8AAAD/4AAAAAAB//8AAAD/wAAAAAAB//8A + AAD/wAAAAAAA//8AAAD/gAAAAAAA//8AAAD/gAAAAAAAf/8AAAD/gAAAAAAAf/8AAAD/AAAAAAAAfg8A + AAD/AAAAAAAAeAMAAAD/AAAAAAAAMAEAAAD/AAAAAAAAMAEAAACHAAAAAAAAIAAAAACDAAAAAAAAIAAA + AACDAAAAAAAAIAAAAACDAAAAAAAAIAAAAACDAAAAAAAAIAAAAACDAAAAAAAAIAAAAACDAAAAAAAAIAAA + AACDAAAAAAAAIAAAAACBAAAAAAAAQAAAAADBgAAAAAAAQAEAAADBgAAAAAAAQAEAAADAgAAAAAAAgAEA + AADAgAAAAAAAgAEAAADgwAAAAAAAgAMAAADgQAAAAAABAAMAAADgYAAAAAADAAcAAADwMAAAAAACAAcA + AADwEAAAAAAEAAcAAAD4CAAAAAAEAA8AAAD4BAAAAAAIAB8AAAD8BgAAAAAQAB8AAAD+AwAAAAAgAD8A + AAD+AIAAAABAAH8AAAD/AEAAAAGAAH8AAAD/gDAAAAYAAP8AAAD/wAwAAAgAAf8AAAD/4AOAAHAAA/8A + AAD/8ABwB4AAB/8AAAD/+AAP/AAAD/8AAAD//AAAAAAAP/8AAAD//gAAAAAAf/8AAAD//4AAAAAA//8A + AAD//+AAAAAD//8AAAD///gAAAAf//8AAAD///4AAAB///8AAAD////AAAP///8AAAD////8AD////8A + AAD///////////8AAAD///////////8AAAD///////////8AAAD///////////8AAAD///////////8A + AAAoAAAAQAAAAIAAAAABACAAAAAAAABCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////Dv///0j///94////nf///7b///+/////v////7r///+l////g////1f///8bAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///w3///9n////wP////z///////////////////////////////////////////// + /////////////////9X///+A////IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////E////4v////y//////////////////////////////////////// + //////////////////////////////////////////////////3///+s////LQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8C////bP////D///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //3///+W////DwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8Z////v/////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////+H///87AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8z////5v// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////+f///2IAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///9B////8f////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////dwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///8x////8P////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////9oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8X////5P////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////P///0IAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8B////uv////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////p////FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Zf// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////6gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////D////+z///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////PwAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///3////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /8UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wj////s//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////OQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9a//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////58AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////sf////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////w////BQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////Bv////X///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////z8AAAAAAAAAAAAAAAAAAAAAAAAAAP///wL///8k////Lf///w0AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zf///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////96AAAAAAAAAAAAAAAA////A////3D////n//////// + ///////6////q////xwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///9m//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////qwAAAAAAAAAA////Af// + /6P////////////////////////////////////p////JgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////iv////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /84AAAAAAAAAAP///2L//////////////////////////////////////////////8kAAAAAAAAAAP// + /zb////c////z////x8AAAAAAAAAAP///6L///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////mAAAAAAAAAAD////P//////////////////////////////////////// + ////////////NQAAAAD///+n//////////////+CAAAAAAAAAAD///+v//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////7wAAAAD///8F/////f////////////////// + /////////////////////////////////2kAAAAA////rP//////////////jwAAAAAAAAAA////r/// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////+8AAAAA////EP// + //////////////////////////////////////////////////////9vAAAAAP///57///////////// + /5oAAAAAAAAAAP///6T///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////oAAAAAP///xb/////////////////////////////////////////////////////////aQAA + AAD///+K//////////////+2AAAAAAAAAAD///+M//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////0gAAAAD///8p//////////////////////////////////////// + /////////////////1cAAAAA////b///////////////3AAAAAAAAAAA////a/////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////68AAAAA////Sv////////////////// + //////////////////////////////////////89AAAAAP///0r///////////////3///8OAAAAAP// + /zz///////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////+AAAAAAP// + /3T/////////////////////////////////////////////////////////GQAAAAD///8d//////// + ////////////SgAAAAD///8K////+P////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////RgAAAAD///+o////////////////////////////////////////////////////6wAA + AAAAAAAAAAAAAP///+b//////////////5MAAAAAAAAAAP///7r///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////9P///wn///8C////6f////////////////////////////////// + /////////////////7UAAAAAAAAAAAAAAAD///+l///////////////l////AwAAAAD///9j//////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////X19f/ycnJ//// + /////////////////////////////////////////////////6cAAAAA////N/////////////////// + //////////////////////////////////////9zAAAAAAAAAAAAAAAA////W/////////////////// + /0wAAAAA////Df////L///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///Dw8P/Pj4+/zo6Ov+ioqL///////////////////////////////////////////////9EAAAAAP// + /5H/////////////////////////////////////////////////////////KQAAAAAAAAAAAAAAAP// + /w7////4//////////////+7AAAAAAAAAAD///+N//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////p6en/Pj4+/zo6Ov86Ojr/Ojo6/6Kiov////////////////////////////// + ///////O////Af///wr////t////////////////////////////////////////////////////1AAA + AAAAAAAAAAAAAAAAAAAAAAAA////rP///////////////////zoAAAAA////Fv////L///////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////7u7u/0pKSv86Ojr/Ojo6/zo6Ov86Ojr/oqKi//// + ////////////////////////////TQAAAAD///9v//////////////////////////////////////// + /////////////////3QAAAAAAAAAAAAAAAAAAAAAAAAAAP///0P////////////////////G////AQAA + AAD///91//////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////c3Nz/SkpK/zo6 + Ov86Ojr/Ojo6/zo6Ov+ioqL/////////////////////uQAAAAD///8K////5v////////////////// + //////////////////////////////////b///8SAAAAAAAAAAAAAAAAAAAAAAAAAAD///8B////zv// + /////////////////2UAAAAA////BP///8n///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////9zc3P9KSkr/Ojo6/zo6Ov86Ojr/Ojo6/729vf//////////8f///yAAAAAA////hP// + //////////////////////////////////////////////////////+PAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///1H////////////////////y////IgAAAAD///8h////7v////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////3Nzc/0pKSv86Ojr/Ojo6/zo6Ov+9vb3//////v7+ + /lUAAAAA////L/////r////////////////////////////////////////////////////1////GAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8B////xv///////////////////8////8JAAAAAP// + /0H////5//////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////c3Nz/SkpK/zo6 + Ov+ioqL///////T09H4AAAAA////Cv///9T///////////////////////////////////////////// + ////////////fgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zL////8//////// + ////////////rf///wMAAAAA////Tf////n///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////+fn5//R0dH///////Hx8YgAAAAA/f39Af///6z///////////////////////////// + ////////////////////////////2f///wgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////iv////////////////////////+k////AwAAAAD///9G////8f////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////vb29nwAAAAAAAAAAP///5L///////////// + ////////////////////////////////////////////+////zkAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wf////P/////////////////////////6j///8GAAAAAP// + /yj////T//////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////7v7+/lAAAAAA/f39Af// + /5L//////////////////////////////////////////////////////////////3kAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Iv///+3///////////// + ////////////xP///xgAAAAA////CP///4b////5//////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////sP// + /xoAAAAA////C////6z///////////////////////////////////////////////////////////// + /6r///8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///9A////+f/////////////////////////p////TAAAAAAAAAAA////JP///6b////7//////// + //////////////////////////////////////////////////////////////////////////////// + ///////G////RAAAAAAAAAAA////L////9X///////////////////////////////////////////// + /////////////////8P///8JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///1P////8//////////////////////////////+o////HgAA + AAAAAAAA////Hv///4D////a//////////////////////////////////////////////////////// + ////////////7P///5r///83AAAAAAAAAAD///8L////hP////r///////////////////////////// + /////////////////////////////////8j///8OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////VP////n///////////// + //////////////////b///+P////HgAAAAAAAAAAAAAAAP///yP///9g////kf///7f////N////3/// + /9/////U////vv///57///9v////Nv///wMAAAAAAAAAAP///wv///9v////5v////////////////// + /////////////////////////////////////////////////73///8OAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///9D////7/////////////////////////////////////z///+x////V////wwAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8D////PP///5T////v//////// + /////////////////////////////////////////////////////////////////57///8GAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///yX////S//////////////////////////////////////// + ///////5////wf///4n///9c////Of///yL///8U////EP///yD///8y////UP///3n///+u////7P// + ////////////////////////////////////////////////////////////////////////////9v// + /2cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////CP///4/////9//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////xv///ycAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////Ov///8////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////p////Zv///wIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8C////Xf///9v///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////+v///93////CwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8C////UP// + /7v////9//////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////x////2H///8JAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////G////2////+6////9f////////////////////////////////// + ////////////////////////////////////////////9////73///9z////IgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wb///80////ZP// + /43///+r////xP///8/////f////3f///8/////C////qf///4v///9k////NP///wYAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////////// + ///////////////////////////////////////////////////////////+AB////////AAA/////// + wAAA//////8AAAA//////gAAAB/////8AAAAD/////gAAAAH////8AAAAAP////gAAAAAf///8AAAAAA + ////wAAAAAD///+AAAAAAH///4AAAAAAf///AAAAAAA///8AAAAAAD///wAAAAAAH//+AAAAAAAfD/4A + AAAAABwD/gAAAAAAGAH+AAAAAAAYAYYAAAAAABgAhgAAAAAAEACGAAAAAAAQAIYAAAAAABAAhgAAAAAA + EACGAAAAAAAQAIIAAAAAABAAggAAAAAAEAHDAAAAAAAAAcEAAAAAACABwQAAAAAAIAHBgAAAAAAAA+CA + AAAAAEAD4EAAAAAAgAPgQAAAAACAB/AgAAAAAQAH8BAAAAACAA/4CAAAAAQAD/wEAAAADAAf/AIAAAAQ + AD/+AQAAACAAP/8AwAAAwAB//4AwAAMAAP//wA4ADAAB///gAf/gAAP///AAAAAAD///+AAAAAAf///+ + AAAAAD////8AAAAA/////8AAAAP/////+AAAH///////AAD///////////////////////////////// + ////////////////////////KAAAADAAAABgAAAAAQAgAAAAAACAJQAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/v7+CP///zz+/v5o/v7+hv///4/+/v6P/v7+fv///13+/v4r/v7+AQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////BP///07///+w////9f//////////////////////////////////////////////5/// + /5T///8vAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD+/v5N/v7+0v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v// + ///+/v7+/v7+/v/////+/v78/v7+sP///yYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////Dv7+/qb+/v79/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v// + ///+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v////T+/v5w////AQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8h////1f////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////o/// + /wcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///yH+/v7h//////7+/v7+/v7+/v7+/v// + ///+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v// + ///+/v7+//////7+/q/+/v4FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Df///9T///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////7///+TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+ov// + ///+/v7+//////7+/v7+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v// + ///+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+//////7+/v7+/v7+////VQAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD+/v5H/v7+/f/////+/v7+//////7+/v7+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v// + ///+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+//////7+/v7+/v7+////6P7+ + /g8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAP///wL+/v7L/v7+/v/////+/v7+//////7+/v7+/v7+/v7+/v/////+/v7+/v7+/v// + ///+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+//////7+ + /v7+/v7+//////7+/oIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///0X///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////+v///8MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///6T+/v7+/v7+/v/////+/v7+//////7+ + /v7+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v// + ///+/v7+/v7+/v/////+/v7+//////7+/v7+/v7+//////7+/v7+/v5YAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+A////+/+/v7+/v7+/v// + ///+/v7+//////7+/v7+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v// + ///+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+//////7+/v7+/v7+//////7+/v7+/v6mAAAAAAAA + AAAAAAAAAAAAAP7+/gb+/v4h////DwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////MP// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////f////AgAAAAD///8D////ff////H//////////P///63///8YAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA/v7+W//////+/v7+/v7+/v/////+/v7+//////7+/v7+/v7+/v7+/v/////+/v7+/v7+/v// + ///+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+//////7+ + /v7+/v7+//////7+/v7+/v77////EQAAAAD+/v6I/////v7+/v7+/v7+//////7+/v7+/v7O/v7+CAAA + AAD+/v5t/v7+of///xEAAAAA/v7+dv/////+/v7+/v7+/v/////+/v7+//////7+/v7+/v7+/v7+/v// + ///+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v// + ///+/v7+//////7+/v7+/v7+//////7+/v7+/v7+////Kv7+/hf+/v73//////7+/v7+/v7+//////7+ + /v7+/v7+/v7+W////wr////0/////////2QAAAAA////g/////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////M////0T///////////// + ////////////////////////////kP///wn+/v7x/v7+/v///24AAAAA/v7+gP/////+/v7+/v7+/v// + ///+/v7+//////7+/v7+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v// + ///+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+//////7+/v7+/v7+//////7+/v7+/v7+////Mv7+ + /kz+/v7+//////7+/v7+/v7+//////7+/v7+/v7+/v7+kv///wP+/v7m/v7+/v///4QAAAAA/v7+bP// + ///+/v7+/v7+/v/////+/v7+//////7+/v7+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v// + ///+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+//////7+/v7+/v7+//////7+ + /v7+/v7+////IP7+/lz+/v7+//////7+/v7+/v7+//////7+/v7+/v7+/v7+gwAAAAD////O//////// + /6oAAAAA////Sv////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////z////Cv///3z/////////////////////////////////////////aQAA + AAD+/v6m/v7+/v///93+/v4B/v7+Gf////7+/v7+/v7+/v/////+/v7+//////7+/v7+/v7+/v7+/v// + ///+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v// + ///+/v7+//////7+/v7+/v7+//////7+/v7+/v7LAAAAAP7+/qr+/v7+//////7+/v7+/v7+//////7+ + /v7+/v7+/v7+QgAAAAD+/v50/v7+/v////z+/v4nAAAAAP///9T+/v7+/v7+/v/////+/v7+//////7+ + /v7+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v// + ///+/v7+/v7+/v/////+/v7+//////7+/v7+/v7+//////7+/v7+/v6H////Af7+/uX+/v7+//////7+ + /v7+/v7+//////7+/v7+/v76/v7+FAAAAAD///8z/////v////////97AAAAAP///37///////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////e3t7/oqKi//n5+f////////////////////////////////3///8z////NP// + ///////////////////////////////////////MAAAAAAAAAAD+/v4E/v7+4P/////+/v7b/v7+Bf// + /x7+/v73/v7+/v/////+/v7+//////7+/v7+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v// + ///+/v7+/v7+/v/////+/v7+/v7+/uLi4v9MTEz+OTk5/nZ2dv/4+Pj+//////7+/v7+/v7+//////7+ + /sf+/v4B////kv7+/v7+/v7+//////7+/v7+/v7+//////7+/v7+/v5/AAAAAAAAAAAAAAAA/v7+jf// + ///+/v7+/v7+WgAAAAD+/v6Y/v7+/v/////+/v7+//////7+/v7+/v7+/v7+/v/////+/v7+/v7+/v// + ///+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/sbGxv86Ojr+OTk5/jo6Ov92dnb++fn5//7+ + /v7+/v7+//////7+/kv+/v4U////7v7+/v7+/v7+//////7+/v7+/v7+//////7+/vv+/v4nAAAAAAAA + AAAAAAAA////Jv////3/////////3////wn///8X////6v////////////////////////////////// + //////////////////////////////////////////////////////////////7+/v+mpqb/Ozs7/zo6 + Ov86Ojr/dHR0//n5+f//////////tQAAAAD///+H//////////////////////////////////////// + /7cAAAAAAAAAAAAAAAAAAAAAAAAAAP///6z+/v7+/v7+/v///4wAAAAA/v7+Vf////3+/v7+//////7+ + /v7+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v// + ///+/v7+pqam/jo6Ov85OTn+Ojo6/8DAwP7+/v7p////Hv7+/ir+/v71//////7+/v7+/v7+//////7+ + /v7+/v7+/////v7+/jwAAAAAAAAAAAAAAAAAAAAAAAAAAP///y3////5//////////v///9MAAAAAP// + /4j///////////////////////////////////////////////////////////////////////////// + /////////////////////////v7+/6Wlpf86Ojr/dHR0//n5+ff29vZC////Bv///8n///////////// + ////////////////////////////sQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v6O/v7+/v// + ///+/v7v/v7+M////wH+/v6S/////v7+/v7+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v// + ///+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v7+/v/c3Nz++vr69+zs7Ez4+PgC////nP7+ + /v7+/v7+//////7+/v7+/v7+//////7+/v7+/v7x////IQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD+/v4M/v7+1//////+/v7+/v7+6////zL+/v4B////eP7+/vr+/v7+/v7+/v/////+/v7+/v7+/v// + ///+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7m+fn5Qfj4 + +AL+/v6K/////v7+/v7+/v7+//////7+/v7+/v7+//////7+/v3+/v5jAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////MP////T//////////////+////9NAAAAAP///z/////X//////// + //////////////////////////////////////////////////////////////////////////////// + /6////8a////Bv///5z////+/////////////////////////////////////////5oAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///1L+/v75/v7+/v/////+/v79////kP7+ + /gz+/v4G/v7+a////9z+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v// + //z+/v6//v7+RAAAAAD+/v4q////yf7+/v7+/v7+//////7+/v7+/v7+//////7+/v7+/v7+////tP7+ + /gUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v5j/v7++f// + ///+/v7+//////7+/t7+/v5d/v7+Bf///wT+/v5D/v7+kf///87+/v7y/v7+/v/////+/v7+/v7+/f// + /+r+/v6//v7+fP///yoAAAAA/v7+FP///4j+/v71//////7+/v7+/v7+//////7+/v7+/v7+//////7+ + /v7+/v60////CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////VP////b////////////////////+////3P///3n///8jAAAAAAAAAAD///8J////F/// + /yf///8k////E////wUAAAAA////Af///zj///+U////8P////////////////////////////////// + /////////////////5r///8HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zP+/v7a//////7+/v7+/v7+/v7+/v/////+/v7+/v7+2f// + /6D+/v53/v7+XP///07+/v5R/v7+Yv///4H+/v6u/v7+6P/////+/v7+/v7+/v/////+/v7+//////7+ + /v7+/v7+//////7+/v7+/v7x////ZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4O////lP7+/vv+/v7+/v7+/v// + ///+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v// + ///+/v7+//////7+/v7+/v7+/////v7+/rb+/v4kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /zP///+3/////v////////////////////////////////////////////////////////////////// + ///////////////////////////////////////I////Sf///wEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA/v7+Lv///5j+/v7q/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v// + ///+/v7+/v7+/v/////+/v7+/v7+/v////7+/v7t////of7+/jsAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v4J/v7+Qv///4P+/v65/v7+4f// + //f+/v7+/v7+/v/////+/v7+/v7+9v///+D+/v65/v7+hf///0T+/v4KAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////Av///wz///8Y////JP///yP///8X////C////wIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////wAA////////AAD///////8AAP// + /////wAA////////AAD//4Af//8AAP/8AAf//wAA//gAAf//AAD/4AAAf/8AAP/AAAA//wAA/4AAAB// + AAD/AAAAH/8AAP8AAAAP/wAA/gAAAAf/AAD8AAAAB/8AAPwAAAAD/wAA/AAAAAP/AAD4AAAAA8cAAPgA + AAABAQAA+AAAAAEAAACIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAIgAAAAAAAAAgAAAAAIA + AACEAAAAAAAAAIQAAAAAAQAAgAAAAAABAADCAAAAAAEAAMAAAAAIAwAA4QAAAAADAADggAAAAAcAAPAA + AAAABwAA8AAAAAAPAAD4EAAAAB8AAPwAAAIAHwAA/gAACAA/AAD/AGBAAH8AAP+AAAAB/wAA/8AAAAP/ + AAD/8AAAB/8AAP/8AAA//wAA//8AAP//AAD///AP//8AAP///////wAA////////AAD///////8AACgA + AAAgAAAAQAAAAAEAIAAAAAAAgBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wP///8w////VP// + /1////9X////Nv///wYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///yf///+Z////7v// + ////////////////////////////9P///6f///82AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wb///+L////+/// + //////////////////////////////////////////////////7///+h////DgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///8Q////wv// + ///////////////////////////////////////////////////////////////////////W////HQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Bf// + /8H///////////////////////////////////////////////////////////////////////////// + ///////Y////EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD///+H//////////////////////////////////////////////////////////////////////// + //////////////////////+pAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////I/////r///////////////////////////////////////////////////////////// + //////////////////////////////////////9BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAD///+T//////////////////////////////////////////////////////// + /////////////////////////////////////////////////7UAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////Af///+n///////////////////////////////////////////// + ////////////////////////////////////////////////////////////+////xEAAAAAAAAAAP// + /wn///8OAAAAAAAAAAAAAAAAAAAAAAAAAAD///8n//////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////////SQAA + AAD///+F////+f////3///+s////Cf///w3///9q////B////0v///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////9t////TP////////////////////////9/////VP////////9E////V/////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////3f///+E/////////////////////////7X///9K/////////1T///9M//////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////bv///4//////////////////////////r////y7/////////ev// + /yr///////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////9L////r/////////////////////////+V////B/// + //j///+3////Av///+z///////////////////////////////////////////////////////////// + /////////////////////////////////////////////P///xT////j//////////////////////// + /2gAAAAA////v/////j///8T////mP////////////////////////////////////////////////// + ///////////////////w8PD/hoaG/+fn5/////////////////////+6////Mv////////////////// + ////////////JwAAAAD///9s/////////33///8p////+/////////////////////////////////// + /////////////////////////////5iYmP86Ojr/VFRU/+fn5////////////////0f///+Z//////// + /////////////////9EAAAAAAAAAAP///xH////y////8P///xn///+Q//////////////////////// + ////////////////////////////////////////9vb2/2pqav86Ojr/VFRU/+7u7v////+y////I/// + //j/////////////////////////ZgAAAAAAAAAAAAAAAP///4b/////////uP///wr////J//////// + ////////////////////////////////////////////////////////9vb2/2pqav9UVFT/7Ozs3v39 + /Rj///+//////////////////////////9z///8GAAAAAAAAAAAAAAAA////DP///+H/////////lP// + /xT////L////////////////////////////////////////////////////////////////+fn5//Hx + 8d7x8fEi/v7+j//////////////////////////+////RgAAAAAAAAAAAAAAAAAAAAAAAAAA////Pv// + //r/////////nP///xD///+Y/////f////////////////////////////////////////////////// + //////+u/v7+F/7+/o///////////////////////////////4gAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////Y/////7/////////zP///zH///8y////pv////X///////////////////////////// + //r///+0////Qv///yT///+///////////////////////////////+m////AgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////ZP////v//////////P///6r///9C////DP///zz///9h////b/// + /2T///9D////D////zT///+a////+P//////////////////////////////mP///wMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////QP///+L////////////////////u////uf// + /5b///+I////lP///7L////m////////////////////////////////////8P///2EAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////Dv///4v////2//////// + ////////////////////////////////////////////////////////////+v///5r///8aAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP// + /xT///91////yf////z////////////////////////////////////9////y////3r///8aAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////Dv///zz///9b////a////2v///9a////PP///w4AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////// + /////////+A///+AD//+AAP//AAB//gAAP/4AAD/8AAAf/AAAH/gAAAz4AAAIAAAAAAAAAAAAAAAAAAA + AAAAAAAAgAAAAIAAAAGAAAABwAAAAcAAAAPgAAAH8AAAB/gAAA/8AAA//gAAf/+AAf//8A////////// + //8oAAAAGAAAADAAAAABACAAAAAAAGAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgC7+/vKe/v70Xv7+9D7e3tIgAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9vb2E/// + /4n+/v7o/////////////////v7+/v///97+/v538/PzCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+/v5B////6P/////+/v7+/////////////////v7+/v// + ///+/v7+////2P///ysAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP7+ + /kD+/v73/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/uv+/v4mAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9vb2Ev///+f+/v7+///////////+/v7+//////// + /////////v7+/v/////+/v7+///////////+/v7O7u7uAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////hP/////+/v7+///////////+/v7+/////////////////v7+/v/////+/v7+//////// + ///+/v7+////XgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/v7+5P7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+vwAAAAAAAAAAv7+/Cb+/ + vwMAAAAAAAAAAAAAAADz8/Mi///////////+/v7+///////////+/v7+/////////////////v7+/v// + ///+/v7+///////////+/v7+////9v///wX+/v6C////+////+n+/v47////W////4X+/v4+//////// + ///+/v7+///////////+/v7+/////////////////v7+/v/////+/v7+///////////+/v7+//////// + /y7+/v79///////////+/v66////ef///7z+/v47///////////+/v7+///////////+/v7+//////// + /////////v7+/v/////+/v7+///////////+/v7+/////////z/+/v7+///////////+/v7F/v7+Xf7+ + /uH+/v4Z/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+7/7+/kz+/v7+/v7+/v7+/v7+/v6q/Pz8Kv////7+/v4o////1P/////+/v7+//////// + ///+/v7+/////////////////v7+/v/////f39/+/f39///////+/v7+////rf///4b+/v7+//////// + ///+/v52ycnJAf7+/tv+/v6O/v7+a/7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/unp + 6f4+Pj7+h4eH/v39/f7+/v7+/v7+Sf7+/t/+/v7+/v7+/v7+/v7+/v4pAAAAAP///3T+/v73////K/// + /8/+/v7+///////////+/v7+/////////////////v7+/v7+/v+hoaH+Ojo6/5qamv/+/v6v////af// + ///+/v7+/////////7wAAAAAAAAAAPX19Qv+/v7h////zf///y/+/v7j///////////+/v7+//////// + /////////v7+/v/////+/v7+r6+v/9XV1c77+/s5////8f/////+/v7+////+////zQAAAAAAAAAAAAA + AAD+/v5F/v7+/P7+/sP+/v4y/v7+xP7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+q/z8 + /Dn+/v7h/v7+/v7+/v7+/v7+/v7+fwAAAAAAAAAAAAAAAAAAAAAAAAAA////bP////3+/v7i////U/// + /1T+/v60////7//////////+/v7+6f///6j+/v5G////af////H+/v7+///////////+/v6c7u7uAQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///1/+/v71/////v///9T+/v5+////SP///zr///87/v7+Tf// + /4j+/v7g///////////+/v7+////+////3/u7u4BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD+/v4o/v7+uf7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7D/v7+NwAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///zH+/v6N////zv// + //X//////v7+/v////X+/v7P////jv///zcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANXV1QPf398P39/fDtXV1QMAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA////AP///wD/B/8A/AD/APgAfwDwAD8A4AAfAOAAHwDgABkAwAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAgAABAIAAAQDAAAMA4AADAPAABwD4AB8A/gB/AP/D/wD///8AKAAAABAAAAAgAAAAAQAgAAAA + AABABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACfn58hn5+fLZmZ + mQ8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg4ODAfv7+2v////h//////// + ///////8////tuPj4ywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg4ODAf///6T///////////// + ///////////////////////09fX1QQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPv7+2n///////////// + /////////////////////////////////+m9vb0QAAAAAAAAAAAAAAAAAAAAAAAAAAD////e//////// + ////////////////////////////////////////////cAAAAAB/f38GAAAAAK6urh7f398e//////// + /////////////////////////////////////////////////63///90/////f///43///+n////T/// + //////////////////////////////////////////////////////+5////xP/////////Y////i/// + /1f////6////////////////////////////////////////////////////lv///+T/////////vubm + 5kv///+i////r////////////////////////////////5KSkv/IyMj//////////3P///////////// + /36UlJQE////2v///1v////x///////////////////////////V1dX/U1NT//X19ar///+2//////// + //bW1tYbAAAAAPX19Uv////j////Y////+T///////////////////////////n5+aj7+/uQ//////// + //////9zAAAAAAAAAAAAAAAA////cf////H///+C////ev///6b///+0////kv///3H///+2//////// + //////+QAAAAAAAAAAAAAAAAAAAAAAAAAAD4+PhM////3/////r////T////xv///+X///////////// + /+T9/f1bAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKGhoQXz8/NP////kf///7H///+x////kfb2 + 9lGsrKwGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAA/H8AAOAfAADADwAAwAcAAMAFAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAIABAADAAwAA4AcAAPAPAAD//wAA + + + + + AAABAAoAGBgAAAEACADIBgAApgAAAAAAAAABACAAkSUAAG4HAACAgAAAAQAgACgIAQD/LAAAYGAAAAEA + IAColAAAJzUBAEhIAAABACAAiFQAAM/JAQBAQAAAAQAgAChCAABXHgIAMDAAAAEAIACoJQAAf2ACACAg + AAABACAAqBAAACeGAgAYGAAAAQAgAIgJAADPlgIAEBAAAAEAIABoBAAAV6ACACgAAAAYAAAAMAAAAAEA + CAAAAAAAQAIAAAAAAAAAAAAAAAEAAAABAAAAAAAAOjo6AD4+PgB8fHwAgYGBAIaGhgCJiYkAjY2NAJGR + kQCVlZUAmZmZAJ2dnQChoaEApaWlAKioqACtra0AsbGxALW1tQC6uroAvb29AMHBwQDExMQAycnJANDQ + 0ADV1dUA2dnZAN7e3gDi4uIA5ubmAOrq6gDu7u4A8PDwAPX19QD6+voA/v7+AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 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 + oIEvFSQAI8KEYA0xlwbDFItFlMtlFIvFXOQVmKYJwzBgGAY6nU7Slx/DHfg7NPDlgwRgTJiP4DJcIYiM + GvhRFAUrKysoFAoDQcjSQnAcZzDgTdPEs2fPRj1qrQdgB26xDlrjSwoJwARhqcWbcAUhkVUwjKqqWFpa + GiwXCoUClpaWJhpqtG0b/X5/8P+zZ88G34/BMdzsvS8onJcPSACmBAsh/gKCQiTjMBxqXFhYCF1GmKaJ + V69eDb6PkX47CgcAvgZwQLN9viABmDJDS4Q3MaZlIBHHANqgQZ97SABShmUZVuAKQiXLviSkDeB7AG0y + 72cHEoCMGRKEn8N1Ii5n2B2PHtzKO38CDfiZhgRAQpgoLLN/b7LmyhQ+qs3+/x6uWX8I4JBM+vmBBCBn + sPyD5aGmiwj3K3gD26NH8XiCIAiCIAiCIAiCIAiCIAiCIAiCIAiCIAiCIAiCIAiCIAiCIAiCIAiCIAiC + IAiCIAiCIAiCIAiCIAiCIAiCIAiCIAiCIAiCIAiCIAiCIIhp8P8BmkxPb5Mt8oUAAAAASUVORK5CYIIo + AAAAgAAAAAABAAABACAAAAAAAAAIAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFNTUxBL + S0s4Tk5OX1FRUX86OjqXOjo6nzo6Ors6Ojq/Ojo6vzo6Or86OjqrOjo6n0ZGRodRUVFvTk5OT0tLSyxT + U1MEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAABKSkowTk5Obzo6Oq86OjrjOjo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86 + Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ovc6OjrLRkZGj05OTk9WVlYQAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEtLS0M6OjqbOjo64zo6Ov86Ojr/Ojo6/zo6Ov86 + Ojr/Ojo6/zo6Ov86Ojr/RkZG/1JSUv9iYmL/a2tr/2tra/9ra2v/VVVV/1JSUv86Ojr/Ojo6/zo6Ov86 + Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ovs6OjrDREREb0tLSxwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASkpKHERERH86 + OjrjOjo6/zo6Ov86Ojr/Ojo6/zo6Ov9MTEz/d3d3/5+fn//BwcH/3d3d//j4+P////////////////// + ///////////////////////////////s7Oz/1NTU/6+vr/+NjY3/YmJi/z09Pf86Ojr/Ojo6/zo6Ov86 + Ojr/Ojo6+zo6OrdPT09TVFRUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAS0tLLzo6Oqc6Ojr7Ojo6/zo6Ov86Ojr/PT09/25ubv+lpaX/4ODg//////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////9fX1/8fHx/+NjY3/T09P/zo6Ov86Ojr/Ojo6/zo6Ov86OjrfREREb1ZWVggA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAS0tLJDo6Oqs6Ojr/Ojo6/zo6Ov86 + Ojr/XFxc/6mpqf/v7+////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////0NDQ/4eHh/9DQ0P/Ojo6/zo6Ov86Ojr/Ojo650RERGtWVlYEAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAVFRUEERERIs6Ojr7Ojo6/zo6Ov86Ojr/d3d3/9HR0f////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////Ly8v+oqKj/TExM/zo6Ov86 + Ojr/Ojo6/zo6OtdQUFBHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAENDQ0s6OjrjOjo6/zo6Ov86Ojr/d3d3/9ra2v// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////8/Pz/srKy/0xMTP86Ojr/Ojo6/zo6Ov86OjqnWVlZFAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFVVVQw6 + OjqbOjo6/zo6Ov86Ojr/YmJi/9DQ0P////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////+Pj4/5ycnP9AQED/Ojo6/zo6Ov86OjrrRERERwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABNTU0rOjo62zo6Ov86Ojr/Q0ND/6ioqP/8/Pz///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////+bm5v9ra2v/Ojo6/zo6Ov86 + Ojr/RkZGi1hYWAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARERETzo6OvM6 + Ojr/Ojo6/2VlZf/m5ub///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////+srKz/QEBA/zo6Ov86Ojr/Ojo6u1tbWxQAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAERERHM6Ojr/Ojo6/zo6Ov+Wlpb//Pz8//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////////d + 3d3/VVVV/zo6Ov86Ojr/Ojo611xcXCMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABERESPOjo6/zo6Ov9D + Q0P/u7u7//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////19fX/cXFx/zo6Ov86Ojr/Ojo6515eXicA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAARUVFjzo6Ov86Ojr/TExM/9HR0f////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////8/Pz/ioqK/zo6Ov86Ojr/Ojo6515eXicAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEVFRYs6Ojr/Ojo6/0xMTP/g + 4OD///////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////kJCQ/zo6Ov86 + Ojr/Ojo6511dXScAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAABERERvOjo6/zo6Ov9MTEz/4ODg//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////kJCQ/zo6Ov86Ojr/Ojo631xcXBgAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ0NDSzo6Ovs6Ojr/SUlJ/+Dg4P// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////kJCQ/zo6Ov86Ojr/Ojo6y1tbWwgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAFhYWCM6OjrzOjo6/0BAQP/R0dH///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////enp6/zo6Ov86Ojr/Ojo6nwAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUVFQIOjo6zzo6Ov86Ojr/tbW1//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////19fX/YmJi/zo6Ov86Ojr/RUVFXwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAERERJM6Ojr/Ojo6/4qKiv////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////m5ub/RkZG/zo6Ov86 + OjrzXV1dIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABNTU0/Ojo6/zo6Ov9eXl7/+Pj4//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////BwcH/Ojo6/zo6Ov86OjrHWVlZBAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAVFRUCDo6Ots6Ojr/PT09/9ra2v////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////+E + hIT/Ojo6/zo6Ov9GRkZnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABERER7Ojo6/zo6Ov+cnJz///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////Ly8v9PT0//Ojo6/zo6Ou9cXFwUAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAVVVVGDo6OvM6Ojr/VVVV//j4+P////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////7u7u/86Ojr/Ojo6/0ZGRpcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABERESPOjo6/zo6Ov/ExMT///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////2hoaP86Ojr/Ojo6+1BQUCQA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAVVVVGDo6Ovc6Ojr/a2tr//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////zc3N/zo6Ov86Ojr/Ojo6nwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABERESPOjo6/zo6Ov/Nzc3///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////cXFx/zo6Ov86 + Ojr7UFBQHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAU1NTDDo6Ou86Ojr/ZWVl//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////Nzc3/Ojo6/zo6Ov9HR0eHAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDQ0NnOjo6/zo6Ov++vr7///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////9i + YmL/Ojo6/zo6OutaWloIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAADo6Oss6Ojr/TExM//z8/P////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////6+vr/86Ojr/Ojo6/1NTU1MAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKSkokOjo6/zo6Ov+Wlpb///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////9fX1/0NDQ/86Ojr/Ojo6rwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAERERHs6Ojr/Ojo6/9ra2v////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////gICA/zo6Ov86Ojr3XV1dDAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOjo6xzo6Ov9VVVX///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////++vr7/Ojo6/zo6Ov9TU1NTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAFNTUxA6Ojr/Ojo6/5OTk/////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////X19f89PT3/Ojo6/zo6OpcA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAT09PBElJSTdMTExvQ0NDhzo6Op9O + Tk5/TExMZ0pKSiwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATExMTzo6Ov86Ojr/x8fH//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////2tra/86Ojr/Ojo61wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAVVVVEERERH86OjrnOjo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6OtdERERvV1dXCAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAABERESLOjo6/zo6Ov/19fX///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////nJyc/zo6Ov86 + Ojr/UVFRFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAERERFc6OjrrOjo6/zo6Ov86Ojr/Ojo6/zo6Ov9P + T0//Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86OjrbUFBQMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADo6Or86Ojr/X19f//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////ExMT/Ojo6/zo6Ov9UVFRLAAAAAAAAAAAAAAAAAAAAAAAAAABF + RUWHOjo6/zo6Ov86Ojr/X19f/6ysrP/j4+P/////////////////2tra/5+fn/9MTEz/Ojo6/zo6Ov86 + Ojr7RUVFUwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAOjo67zo6Ov+Dg4P///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////+/v7/86 + Ojr/Ojo6/1dXV3MAAAAAAAAAAAAAAAAAAAAAREREfzo6Ov86Ojr/Q0ND/7W1tf////////////////// + //////////////////////////j4+P+ZmZn/PT09/zo6Ov86Ojr7RUVFTwAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEdHRxg6Ojr/Ojo6/6Wlpf// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////0lJSf86Ojr/Ojo6mwAAAAAAAAAAAAAAAEpKSj86 + Ojr/Ojo6/0xMTP/d3d3///////////////////////////////////////////////////////////++ + vr7/PT09/zo6Ov86OjrzXV1dIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAENDQxBDQ0MIAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAASkpKODo6Ov86Ojr/wcHB//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////ZWVl/zo6Ov86Ojq/AAAAAAAAAABJSUkEOjo62zo6Ov89PT3/19fX//////////////////////// + //////////////////////////////////////////////+1tbX/Ojo6/zo6Ov86OjqrAAAAAAAAAAAA + AAAAAAAAAENDQ2c6OjrbOjo6/zo6Ov86OjrDTExMNwAAAAAAAAAAAAAAAAAAAABMTExXOjo6/zo6Ov/a + 2tr///////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////99fX3/Ojo6/zo6Ot8AAAAAAAAAAEVFRVc6 + Ojr/Ojo6/5mZmf////////////////////////////////////////////////////////////////// + //////////////90dHT/Ojo6/zo6Ov9RUVErAAAAAAAAAABERESHOjo6/zo6Ov86Ojr/Ojo6/zo6Ov86 + Ojr7REREQwAAAAAAAAAAAAAAAE1NTWs6Ojr/Ojo6/+np6f////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////5CQkP86Ojr/Ojo69wAAAAAAAAAAOjo6uzo6Ov9DQ0P/8vLy//////////////////////// + /////////////////////////////////////////////////////////9ra2v86Ojr/Ojo6/0dHR4MA + AAAASUlJKzo6Ov86Ojr/SUlJ/5ycnP+Kior/PT09/zo6Ov86OjrbAAAAAAAAAAAAAAAATU1Nfzo6Ov86 + Ojr///////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////nJyc/zo6Ov86Ojr/AAAAAEtLSwQ6 + Ojr3Ojo6/4ODg/////////////////////////////////////////////////////////////////// + /////////////////////////1xcXP86Ojr/Ojo6zwAAAABLS0tzOjo6/zo6Ov/X19f///////////+f + n5//Ojo6/zo6Ov9JSUkwAAAAAAAAAABOTk5/Ojo6/zo6Ov////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////+rq6v/Ojo6/zo6Ov9KSkoYSEhILDo6Ov86Ojr/r6+v//////////////////////// + ////////////////////////////////////////////////////////////////////kJCQ/zo6Ov86 + Ojr3AAAAAE1NTX86Ojr/Ojo6/////////////////87Ozv86Ojr/Ojo6/0tLS0AAAAAAAAAAAERERI86 + Ojr/Q0ND//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////7W1tf86Ojr/Ojo6/0tLSyBK + SkpAOjo6/zo6Ov/Ozs7///////////////////////////////////////////////////////////// + //////////////////////////////+oqKj/Ojo6/zo6Ov8AAAAAT09Pfzo6Ov86Ojr///////////// + ////zs7O/zo6Ov86Ojr/TU1NQAAAAAAAAAAAOjo6lzo6Ov9JSUn///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////tbW1/zo6Ov86Ojr/TExMIEtLS0A6Ojr/Ojo6/87Ozv////////////////// + /////////////////////////////////////////////////////////////////////////7W1tf86 + Ojr/Ojo6/wAAAABRUVF/Ojo6/zo6Ov/////////////////U1NT/Ojo6/zo6Ov9RUVFLAAAAAAAAAABM + TEx/Ojo6/zo6Ov////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////+vr6//Ojo6/zo6Ov9M + TEwgTExMQDo6Ov86Ojr/zs7O//////////////////////////////////////////////////////// + ////////////////////////////////////q6ur/zo6Ov86Ojr/AAAAAFNTU386Ojr/Ojo6//j4+P// + /////////+bm5v86Ojr/Ojo6/1NTU18AAAAAAAAAAEtLS386Ojr/Ojo6//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////5ycnP86Ojr/Ojo6/wAAAABNTU1bOjo6/zo6Ov/g4OD///////////// + //////////////////////////////////////////////////////////////////////////////+c + nJz/Ojo6/zo6Ov8AAAAAUlJSXzo6Ov86Ojr/5ubm////////////7+/v/zo6Ov86Ojr/VVVVcwAAAAAA + AAAASkpKczo6Ov86Ojr/7+/v//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////lpaW/zo6Ov86 + Ojr/AAAAAE1NTV86Ojr/Ojo6/+bm5v////////////////////////////////////////////////// + /////////////////////////////////////////5ycnP86Ojr/Ojo6/wAAAABQUFBXOjo6/zo6Ov/a + 2tr/////////////////QEBA/zo6Ov9ISEiPAAAAAAAAAABISEhfOjo6/zo6Ov/g4OD///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////+EhIT/Ojo6/zo6Ot8AAAAATU1Nfzo6Ov86Ojr/+Pj4//////// + //////////////////////////////////////////////////////////////////////////////// + ////h4eH/zo6Ov86OjrnAAAAAE5OTkA6Ojr/Ojo6/8fHx/////////////////9YWFj/Ojo6/zo6Oq8A + AAAAAAAAAEZGRkA6Ojr/Ojo6/8fHx/////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////2tra/86 + Ojr/Ojo6xwAAAAA6OjqTOjo6/0NDQ/////////////////////////////////////////////////// + //////////////////////////////////////////////93d3f/Ojo6/zo6OtcAAAAAS0tLIDo6Ov86 + Ojr/r6+v/////////////////3R0dP86Ojr/Ojo60wAAAAAAAAAAREREHDo6Ov86Ojr/q6ur//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////TExM/zo6Ov86OjqnAAAAADo6OrM6Ojr/W1tb//////// + //////////////////////////////////////////////////////////////////////////////// + /////////2JiYv86Ojr/Ojo6uwAAAABUVFQEOjo6/zo6Ov+Wlpb/////////////////k5OT/zo6Ov86 + Ojr7WFhYCAAAAAAAAAAAOjo68zo6Ov+NjY3///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////Ly8v86 + Ojr/Ojo6/0RERH8AAAAAOjo61zo6Ov93d3f///////////////////////////////////////////// + ////////////////////////////////////////////////////SUlJ/zo6Ov86OjqbAAAAAAAAAAA6 + OjrbOjo6/3d3d/////////////////+4uLj/Ojo6/zo6Ov9OTk40AAAAAAAAAAA6OjrLOjo6/2JiYv// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////0NDQ/zo6Ov86Ojr/Tk5OT1RUVAg6Ojr/Ojo6/5OTk/// + //////////////////////////////////////////////////////////////////////////////// + //////////Ly8v86Ojr/Ojo6/11dXXcAAAAAAAAAADo6OrM6Ojr/WFhY/////////////////+Dg4P86 + Ojr/Ojo6/1JSUm8AAAAAAAAAADo6OpM6Ojr/QEBA//j4+P////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////+i + oqL/Ojo6/zo6Ov9MTEwgS0tLNDo6Ov86Ojr/u7u7//////////////////////////////////////// + ////////////////////////////////////////////////////1NTU/zo6Ov86Ojr/WlpaUwAAAAAA + AAAARkZGizo6Ov86Ojr/9fX1/////////////////0ZGRv86Ojr/Ojo6rwAAAAAAAAAAR0dHXzo6Ov86 + Ojr/0NDQ//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////3R0dP86Ojr/Ojo65wAAAABMTExvOjo6/zo6Ov/g + 4OD///////////////////////////////////////////////////////////////////////////// + //////////////+rq6v/Ojo6/zo6Ov9WVlYoAAAAAAAAAABPT09TOjo6/zo6Ov/Q0ND///////////// + ////enp6/zo6Ov86OjrvU1NTBAAAAABFRUUgOjo6/zo6Ov+cnJz///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////////8 + /Pz/Q0ND/zo6Ov86OjqnAAAAADo6Oqc6Ojr/RkZG//////////////////////////////////////// + /////////////////////////////////////////////////////////4aGhv86Ojr/Ojo68wAAAAAA + AAAAAAAAAEtLSyQ6Ojr/Ojo6/6Wlpf////////////////+ysrL/Ojo6/zo6Ov9NTU07AAAAAAAAAAA6 + OjrXOjo6/2JiYv////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////8rKyv86Ojr/Ojo6/05OTl8AAAAAOjo67zo6Ov93 + d3f///////////////////////////////////////////////////////////////////////////// + ////////////////////WFhY/zo6Ov86Ojq/AAAAAAAAAAAAAAAAAAAAADo6Ouc6Ojr/d3d3//////// + /////////+np6f86Ojr/Ojo6/0VFRY8AAAAAAAAAAEFBQYs6Ojr/Ojo6/+np6f////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////h4eH/zo6Ov86Ojr/V1dXFEtLSzc6Ojr/Ojo6/6+vr/////////////////////////////////// + /////////////////////////////////////////////////////////+/v7/86Ojr/Ojo6/0pKSocA + AAAAAAAAAAAAAAAAAAAAOjo6pzo6Ov9GRkb//Pz8/////////////////2hoaP86Ojr/Ojo64wAAAAAA + AAAAR0dHOzo6Ov86Ojr/oqKi//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////z8/P9JSUn/Ojo6/zo6OsMAAAAAQ0NDgzo6Ov86 + Ojr/5ubm//////////////////////////////////////////////////////////////////////// + ////////////////////u7u7/zo6Ov86Ojr/VlZWRwAAAAAAAAAAAAAAAAAAAABQUFBnOjo6/zo6Ov/Q + 0ND/////////////////qamp/zo6Ov86Ojr/TExMRwAAAAAAAAAAOjo62zo6Ov9ZWVn///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////4+Pj/319ff9ubm7/uLi4//////// + //////////////////////////////////////////////////////////////////////////////// + ////wcHB/zo6Ov86Ojr/Tk5OYwAAAAA6OjrbOjo6/19fX/////////////////////////////////// + //////////////////////////////////////////////////////////////+Dg4P/Ojo6/zo6Ovdh + YWEIAAAAAAAAAAAAAAAAAAAAAEtLSyA6Ojr/Ojo6/5mZmf/////////////////v7+//QEBA/zo6Ov86 + OjqrAAAAAAAAAABBQUF/Ojo6/zo6Ov/Nzc3///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////+Dg4P9MTEz/Ojo6/zo6Ov86Ojr/qKio//////////////////////////////////////// + //////////////////////////////////////////////9xcXH/Ojo6/zo6OvdWVlYQS0tLNzo6Ov86 + Ojr/n5+f//////////////////////////////////////////////////////////////////////// + /////////////////////////0lJSf86Ojr/Ojo6uwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADo6Os86 + Ojr/VVVV//////////////////////99fX3/Ojo6/zo6OvtKSkocAAAAAE9PTxg6Ojr7Ojo6/3d3d/// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////g4OD/TExM/zo6Ov86Ojr/Ojo6/zo6Ov86 + Ojr/qKio//////////////////////////////////////////////////////////////////////// + ////4ODg/zo6Ov86Ojr/Ojo6mwAAAAA6OjqXOjo6/zo6Ov/p6en///////////////////////////// + ///////////////////////////////////////////////////////////////Q0ND/Ojo6/zo6Ov9Y + WFhnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARUVFfzo6Ov86Ojr/2tra/////////////////9HR0f86 + Ojr/Ojo6/0RERI8AAAAAAAAAADo6Oqc6Ojr/Ojo6/+Dg4P////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////7+/v/0xMTP86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/qKio//////////////////////// + //////////////////////////////////////////////+EhIT/Ojo6/zo6Ov9NTU0vVFRUEDo6Ovc6 + Ojr/cXFx//////////////////////////////////////////////////////////////////////// + /////////////////////////4qKiv86Ojr/Ojo6/1NTUxwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABM + TEwoOjo6/zo6Ov+Wlpb//////////////////////2JiYv86Ojr/Ojo681NTUxAAAAAASEhILzo6Ov86 + Ojr/fX19//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////+4uLj/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86 + Ojr/Ojo6/zo6Ov86Ojr/qKio//////////////////////////////////////////////////////// + ////4+Pj/z09Pf86Ojr/Ojo6twAAAABDQ0NzOjo6/zo6Ov/BwcH///////////////////////////// + ///////////////////////////////////////////////////////////////4+Pj/SUlJ/zo6Ov86 + Ojq7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6OjrPOjo6/09PT//8/Pz///////////// + ////wcHB/zo6Ov86Ojr/Q0NDiwAAAAAAAAAAOjo6rzo6Ov86Ojr/2tra//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////8HBwf86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/qKio//////// + //////////////////////////////////////////////99fX3/Ojo6/zo6Ov9NTU07VVVVCDo6Ouc6 + Ojr/VVVV//z8/P////////////////////////////////////////////////////////////////// + /////////////////////////7u7u/86Ojr/Ojo6/1dXV18AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAERERGs6Ojr/Ojo6/8TExP//////////////////////X19f/zo6Ov86Ojr3VFRUHAAAAABJ + SUkrOjo6+zo6Ov9oaGj///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////Pz8/3p6ev86Ojr/Ojo6/zo6Ov86 + Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/qKio//////////////////////////////////////// + ////0NDQ/zo6Ov86Ojr/Ojo6rwAAAABDQ0NvOjo6/zo6Ov+srKz///////////////////////////// + ////////////////////////////////////////////////////////////////////a2tr/zo6Ov86 + OjrzYGBgDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAV1dXEDo6Ovc6Ojr/cXFx//////// + ///////////////Kysr/Ojo6/zo6Ov86OjqjAAAAAAAAAAA6OjqbOjo6/zo6Ov+1tbX///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////Pz8/3p6ev86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86 + Ojr/qKio//////////////////////////////////z8/P9bW1v/Ojo6/zo6OvtNTU0nVVVVDDo6Ouc6 + Ojr/TExM//j4+P////////////////////////////////////////////////////////////////// + /////////////////////////9ra2v86Ojr/Ojo6/0lJSZMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAOjo6mzo6Ov86Ojr/3d3d//////////////////////9xcXH/Ojo6/zo6Ov9M + TEw/AAAAAFJSUhQ6OjrvOjo6/0lJSf/v7+////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////Pz8/3p6ev86 + Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/qKio//////////////////////// + ////nJyc/zo6Ov86Ojr/REREhwAAAABDQ0ODOjo6/zo6Ov+1tbX///////////////////////////// + ////////////////////////////////////////////////////////////////////hISE/zo6Ov86 + Ojr/U1NTKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABNTU0vOjo6/zo6Ov+E + hIT//////////////////////+Pj4/9AQED/Ojo6/zo6OttTU1MIAAAAAEJCQl86Ojr/Ojo6/3R0dP// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////Pz8/3p6ev86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86 + Ojr/Ojo6/zo6Ov86Ojr/r6+v/////////////////9ra2v89PT3/Ojo6/zo6Ot9XV1cMTExMJDo6Ovc6 + Ojr/W1tb//z8/P////////////////////////////////////////////////////////////////// + /////////////////////////+Pj4/89PT3/Ojo6/zo6Oq8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6OjqzOjo6/z09Pf/j4+P//////////////////////5ycnP86 + Ojr/Ojo6/0NDQ48AAAAAAAAAADo6OrM6Ojr/Ojo6/6mpqf////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////Pz8/3p6ev86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov9JSUn////////////1 + 9fX/VVVV/zo6Ov86Ojr/Tk5OPwAAAAA6Ojq/Ojo6/zo6Ov/Kysr///////////////////////////// + ////////////////////////////////////////////////////////////////////hISE/zo6Ov86 + Ojr/VFRUNwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5OTj86 + Ojr/Ojo6/4SEhP///////////////////////Pz8/15eXv86Ojr/Ojo6/0JCQkcAAAAAVFRUGDo6Ouc6 + Ojr/PT09/9TU1P////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////Pz8/3p6ev86Ojr/Ojo6/zo6Ov86 + Ojr/Ojo6/zo6Ov86Ojr/Ojo6/0lJSf///////////3p6ev86Ojr/Ojo6/0RERIcAAAAAQ0NDazo6Ov86 + Ojr/gICA//////////////////////////////////////////////////////////////////////// + /////////////////////////+Dg4P89PT3/Ojo6/zo6OrsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADo6Or86Ojr/PT09/+Dg4P////////////////// + ////2tra/0BAQP86Ojr/Ojo661VVVRwAAAAAQkJCQzo6Ovs6Ojr/TExM/+bm5v////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////Pz8/3p6ev86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/r6+v//////+c + nJz/Ojo6/zo6Ov86OjrDV1dXBE1NTSc6OjrzOjo6/0lJSf/v7+////////////////////////////// + ////////////////////////////////////////////////////////////////////dHR0/zo6Ov86 + Ojr/VFRULwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAT09PLzo6Ov86Ojr/cXFx////////////////////////////r6+v/zo6Ov86Ojr/Ojo6x1RUVAgA + AAAAQ0NDczo6Ov86Ojr/WFhY/+/v7/////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////Pz8/3p6ev86 + Ojr/Ojo6/zo6Ov86Ojr/Ojo6/6ioqP//////tbW1/zo6Ov86Ojr/Ojo651hYWBhWVlYMOjo60zo6Ov86 + Ojr/xMTE//////////////////////////////////////////////////////////////////////// + /////////////////////////8fHx/86Ojr/Ojo6/zo6OqMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOjo6ozo6Ov86Ojr/x8fH//////// + ////////////////////gYGB/zo6Ov86Ojr/Ojo6owAAAAAAAAAAQ0NDmzo6Ov86Ojr/aGho//X19f// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////Pz8/3p6ev86Ojr/Ojo6/zo6Ov+oqKj//////76+vv89 + PT3/Ojo6/zo6OvNNTU0vAAAAADo6OqM6Ojr/Ojo6/42Njf////////////////////////////////// + ///////////////////////////////////////////////////////////////4+Pj/VVVV/zo6Ov86 + Ojr3YWFhHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAABZWVkcOjo68zo6Ov9SUlL/+Pj4///////////////////////19fX/Xl5e/zo6Ov86 + Ojr/Q0NDhwAAAABUVFQEOjo6qzo6Ov86Ojr/aGho//X19f////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////Pz8/6Kiov+EhIT/xMTE//////++vr7/PT09/zo6Ov86Ojr7QkJCQwAAAABDQ0N7Ojo6/zo6Ov9i + YmL//Pz8//////////////////////////////////////////////////////////////////////// + /////////////////////////5OTk/86Ojr/Ojo6/0dHR3sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFRUV3Ojo6/zo6Ov+T + k5P////////////////////////////s7Oz/TExM/zo6Ov86Ojr/Q0NDbwAAAABVVVUMOjo6wzo6Ov86 + Ojr/W1tb/+zs7P////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////srKy/z09Pf86 + Ojr/Ojo6+0JCQlMAAAAAQ0NDWzo6Ov86Ojr/TExM/+zs7P////////////////////////////////// + ///////////////////////////////////////////////////////////////T09P/PT09/zo6Ov86 + OjrTXl5eBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAFdXVwQ6OjrPOjo6/z09Pf/T09P////////////////////////////g + 4OD/RkZG/zo6Ov86Ojr/Q0NDbwAAAABWVlYMOjo6tzo6Ov86Ojr/T09P/93d3f////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////5mZmf86Ojr/Ojo6/zo6OvtCQkJTAAAAAENDQ1M6Ojr7Ojo6/0NDQ//X + 19f///////////////////////////////////////////////////////////////////////////// + ////////////////////9fX1/1hYWP86Ojr/Ojo6+1RUVDcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBQUC86 + Ojr7Ojo6/1JSUv/19fX////////////////////////////R0dH/Q0ND/zo6Ov86Ojr/Q0NDdwAAAABV + VVUEOjo6pzo6Ov86Ojr/Q0ND/7u7u/////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////Ly8v90dHT/Ojo6/zo6Ov86 + OjrzQkJCPwAAAABDQ0NTOjo6+zo6Ov89PT3/x8fH//////////////////////////////////////// + //////////////////////////////////////////////////////////////+EhIT/Ojo6/zo6Ov9H + R0eDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEVFRX86Ojr/Ojo6/35+fv////////////////// + ///////////////R0dH/Q0ND/zo6Ov86Ojr/Q0NDk1VVVQQAAAAAQ0NDgzo6Ov86Ojr/Ojo6/4qKiv/1 + 9fX///////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////Q0ND/UlJS/zo6Ov86Ojr/Ojo6305OTisAAAAAQ0NDXzo6Ovs6Ojr/PT09/76+vv// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////tbW1/zo6Ov86Ojr/Ojo6x15eXgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAV1dXBDo6OsM6Ojr/Ojo6/6+vr//////////////////////////////////U1NT/TExM/zo6Ov86 + Ojr/Ojo6s1VVVQwAAAAAQ0NDUzo6OvM6Ojr/Ojo6/1hYWP/Q0ND///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////4+Pj/k5OT/z09Pf86Ojr/Ojo6/zo6OrtY + WFgUAAAAAENDQ3s6Ojr/Ojo6/z09Pf++vr7///////////////////////////////////////////// + /////////////////////////////////////////////////////////9fX1/9AQED/Ojo6/zo6Ou9h + YWEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW1tbHDo6Ous6Ojr/PT09/9HR0f// + ///////////////////////////////g4OD/VVVV/zo6Ov86Ojr/Ojo6101NTSsAAAAAVlZWIzo6Os86 + Ojr/Ojo6/zo6Ov+Hh4f/7Ozs//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////xMTE/1VVVf86Ojr/Ojo6/zo6OvtERER7V1dXBFZWVgw6OjqjOjo6/zo6Ov9DQ0P/x8fH//////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////s7Oz/TExM/zo6Ov86Ojr7RkZGRwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAREREQzo6Ovs6Ojr/TExM/+bm5v/////////////////////////////////v + 7+//a2tr/zo6Ov86Ojr/Ojo680NDQ2MAAAAAVVVVBENDQ386Ojr7Ojo6/zo6Ov9GRkb/nJyc//X19f// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////2tra/2tra/86Ojr/Ojo6/zo6Ov86OjrTTk5OMwAAAABM + TEwrOjo60zo6Ov86Ojr/TExM/9fX1/////////////////////////////////////////////////// + ////////////////////////////////////////////////////9fX1/1tbW/86Ojr/Ojo6/0dHR3cA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARUVFczo6Ov86 + Ojr/WFhY/+/v7//////////////////////////////////8/Pz/kJCQ/zo6Ov86Ojr/Ojo6/zo6OrNW + VlYcAAAAAExMTCs6OjrDOjo6/zo6Ov86Ojr/SUlJ/5ycnP/v7+////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////zc3N/3d3d/86 + Ojr/Ojo6/zo6Ov86OjrzREREe1ZWVgQAAAAAQ0NDazo6OvM6Ojr/Ojo6/2VlZf/s7Oz///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////X19f9oaGj/Ojo6/zo6Ov86OjqfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARkZGmzo6Ov86Ojr/aGho//X19f////////////////// + ////////////////////wcHB/0lJSf86Ojr/Ojo6/zo6Ou9DQ0NnVVVVBAAAAABDQ0NTOjo62zo6Ov86 + Ojr/Ojo6/0BAQP+EhIT/0NDQ//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////y8vL/r6+v/19fX/86Ojr/Ojo6/zo6Ov86Ojr7Ojo6n1dXVxgAAAAATExMJzo6Or86 + Ojr/Ojo6/zo6Ov+QkJD//Pz8//////////////////////////////////////////////////////// + ///////////////////////////////////////////////8/Pz/d3d3/zo6Ov86Ojr/Ojo6t15eXgQA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABZ + WVkEOjo6rzo6Ov86Ojr/aGho//X19f//////////////////////////////////////6enp/3R0dP86 + Ojr/Ojo6/zo6Ov86OjrLTExMPwAAAABVVVUEQ0NDXzo6Otc6Ojr/Ojo6/zo6Ov86Ojr/UlJS/5OTk//Q + 0ND//Pz8//////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////+zs7P+1tbX/d3d3/0BAQP86Ojr/Ojo6/zo6Ov86 + Ojr7Ojo6n01NTSQAAAAAVVVVEENDQ4c6Ojr7Ojo6/zo6Ov9PT0//xMTE//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////Pz8/3p6ev86Ojr/Ojo6/zo6OsNfX18MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABZWVkMOjo6wzo6Ov86Ojr/aGho//X19f// + /////////////////////////////////////////7i4uP9MTEz/Ojo6/zo6Ov86Ojr/Ojo6t0xMTC8A + AAAAAAAAAExMTEs6OjqzOjo6+zo6Ov86Ojr/Ojo6/zo6Ov9DQ0P/cXFx/5+fn//ExMT/5ubm//////// + //////////////////////////////////////////////////////////j4+P/a2tr/srKy/4qKiv9c + XFz/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86OjrnREREh1dXVxgAAAAAVFRUCENDQ286OjrrOjo6/zo6Ov86 + Ojr/hISE//Ly8v////////////////////////////////////////////////////////////////// + //////////////////////////////////////////X19f9oaGj/Ojo6/zo6Ov86OjrDX19fDAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAABaWloMOjo6wzo6Ov86Ojr/aGho//Ly8v////////////////////////////////// + //////////Ly8v+Tk5P/QEBA/zo6Ov86Ojr/Ojo6/zo6Or9MTExLAAAAAAAAAABLS0scQ0NDdzo6Oss6 + Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/QEBA/1hYWP9ra2v/gICA/4SEhP+EhIT/hISE/4SEhP+E + hIT/dHR0/2VlZf9PT0//Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6OvM6OjqjTU1NS1VVVQQA + AAAAVFRUFENDQ3s6OjrnOjo6/zo6Ov86Ojr/X19f/9DQ0P////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////////s + 7Oz/ZWVl/zo6Ov86Ojr/Ojo6w2BgYAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABaWloMOjo6wzo6Ov86 + Ojr/WFhY/+np6f/////////////////////////////////////////////////j4+P/hISE/z09Pf86 + Ojr/Ojo6/zo6Ov86OjrfQ0NDd0tLSxwAAAAAAAAAAEtLSxxNTU1fOjo6pzo6Ot86Ojr/Ojo6/zo6Ov86 + Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86 + Ojr3Ojo6x0RERIdNTU0/VVVVBAAAAAAAAAAAS0tLPzo6Op86Ojr3Ojo6/zo6Ov86Ojr/VVVV/7W1tf/8 + /Pz///////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////4ODg/1VVVf86Ojr/Ojo6/zo6OsNfX18MAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABZWVkMOjo6szo6Ov86Ojr/TExM/9fX1/////////////////// + ////////////////////////////////////4+Pj/4qKiv9AQED/Ojo6/zo6Ov86Ojr/Ojo6/zo6OsND + Q0NvS0tLJAAAAAAAAAAAAAAAAEtLSxRMTExHTU1Nbzo6OpM6OjqvOjo6wzo6Ot86OjrfOjo63zo6Ot86 + OjrfOjo63zo6OtM6Ojq/Ojo6n0RERINOTk5XTExMMFVVVQQAAAAAAAAAAFNTUwRKSko/QkJCjzo6OuM6 + Ojr/Ojo6/zo6Ov86Ojr/VVVV/7W1tf/8/Pz///////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////8TExP9D + Q0P/Ojo6/zo6Ov86OjqnX19fBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABZ + WVkEOjo6nzo6Ov86Ojr/QEBA/7W1tf////////////////////////////////////////////////// + /////////+/v7/+ioqL/VVVV/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo63zo6Op9MTExjS0tLMFNTUwQA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABT + U1MQS0tLQ0JCQnc6Ojq3Ojo68zo6Ov86Ojr/Ojo6/zo6Ov89PT3/dHR0/8TExP////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////z8/P+Wlpb/Ojo6/zo6Ov86Ojr/R0dHgwAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARkZGezo6Ov86Ojr/Ojo6/4qKiv/4 + +Pj/////////////////////////////////////////////////////////////////0NDQ/5CQkP9P + T0//Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6+zo6Otc6OjqzOjo6l0xMTH9MTExrTExMX0xMTF9M + TExfTExMX0xMTF9MTEx3Q0NDhzo6Op86OjrDOjo65zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov9o + aGj/qamp/+np6f////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////m5ub/aGho/zo6Ov86 + Ojr/Ojo680dHR1sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAARUVFSzo6Ou86Ojr/Ojo6/1tbW//a2tr///////////////////////////// + ///////////////////////////////////////////////X19f/n5+f/2tra/9DQ0P/Ojo6/zo6Ov86 + Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86 + Ojr/Ojo6/zo6Ov86Ojr/T09P/319ff+1tbX/6enp//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////tbW1/0ZGRv86Ojr/Ojo6/zo6OttUVFQrAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXV1dIzo6Os86 + Ojr/Ojo6/z09Pf+cnJz//Pz8//////////////////////////////////////////////////////// + //////////////////////////z8/P/a2tr/tbW1/5OTk/93d3f/W1tb/0lJSf86Ojr/Ojo6/zo6Ov86 + Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov9SUlL/ZWVl/4CAgP+ioqL/wcHB/+np6f////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////5ubm/3R0dP86Ojr/Ojo6/zo6Ov86 + OjqbX19fDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWlpaBEZGRos6Ojr/Ojo6/zo6Ov9bW1v/0NDQ//////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////p6en/5ubm/+bm5v/m5ub/5ubm/+bm5v/y8vL///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////+Pj4/5+fn/9AQED/Ojo6/zo6Ov86OjrrR0dHUwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAFJSUj86OjrfOjo6/zo6Ov86Ojr/gICA/+np6f////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////7u7u/9VVVX/Ojo6/zo6Ov86Ojr/Ojo6o2BgYBQA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFpaWghGRkaHOjo6+zo6Ov86 + Ojr/QEBA/5aWlv/y8vL///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////8HBwf9f + X1//Ojo6/zo6Ov86Ojr/Ojo611VVVUMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABRUVEnOjo6tzo6Ov86Ojr/Ojo6/0ZGRv+Wlpb/7Ozs//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////Pz8/7u7u/9fX1//Ojo6/zo6Ov86Ojr/Ojo660dHR2tfX18EAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAUlJSRzo6Os86Ojr/Ojo6/zo6Ov9AQED/h4eH/9ra2v////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////7Ozs/6Kiov9PT0//Ojo6/zo6Ov86 + Ojr/Ojo670hISH9gYGAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFNTU086OjrPOjo6/zo6Ov86 + Ojr/Ojo6/2VlZf+vr6//7+/v//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////////4 + +Pj/vr6+/3d3d/89PT3/Ojo6/zo6Ov86Ojr/Ojo660hISH9hYWEQAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABTU1NHOjo6tzo6Ov86Ojr/Ojo6/zo6Ov9AQED/d3d3/7W1tf/v + 7+////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////Ly8v+7u7v/gICA/0NDQ/86Ojr/Ojo6/zo6Ov86Ojr/Ojo600hISGdg + YGAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAUVFRKEdHR4s6OjrnOjo6/zo6Ov86Ojr/Ojo6/zo6Ov9lZWX/lpaW/8fHx//y8vL///////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////y8vL/x8fH/5aWlv9lZWX/PT09/zo6Ov86 + Ojr/Ojo6/zo6Ov86OjrzOjo6m1VVVTcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFtbWwRTU1NLOjo6ozo6OvM6 + Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov9bW1v/fX19/6Wlpf/BwcH/3d3d//j4+P////////////////// + //////////////////////////////////////////////////////////X19f/a2tr/vr6+/6Kiov96 + enr/W1tb/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6OvM6OjqjV1dXU2BgYAgAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXFxcBFNTU0NISEiLOjo60zo6Ov86Ojr/Ojo6/zo6Ov86 + Ojr/Ojo6/zo6Ov86Ojr/Ojo6/0lJSf9YWFj/a2tr/3R0dP+EhIT/hISE/4SEhP+EhIT/hISE/4SEhP9u + bm7/a2tr/1VVVf9GRkb/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6z0pKSotW + VlZDYWFhCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAUVFRFFVVVU9JSUmLOjo6uzo6Ous6Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86 + Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86Ojr/Ojo6/zo6Ov86 + Ojr/Ojo64zo6OrNKSkqDWFhYS2RkZBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAFJSUhRVVVU8WFhYX1paWn86OjqbOjo6rzo6Or86OjrTOjo63zo6Ot86OjrfOjo63zo6Ot86 + OjrfOjo6xzo6Or86OjqjOjo6k1tbW3dZWVlXV1dXNGVlZRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////AAB/////////////////8AAAB//////////////// + 4AAAAD///////////////wAAAAAH//////////////wAAAAAAf/////////////wAAAAAAB///////// + ////wAAAAAAAP////////////4AAAAAAAA////////////4AAAAAAAAH///////////8AAAAAAAAAf// + ////////+AAAAAAAAAD///////////AAAAAAAAAAf//////////gAAAAAAAAAD//////////wAAAAAAA + AAAf/////////4AAAAAAAAAAD/////////8AAAAAAAAAAAf////////+AAAAAAAAAAAD/////////AAA + AAAAAAAAA/////////gAAAAAAAAAAAH////////4AAAAAAAAAAAA////////8AAAAAAAAAAAAH////// + /+AAAAAAAAAAAAB////////gAAAAAAAAAAAAP///////wAAAAAAAAAAAAD///////8AAAAAAAAAAAAAf + //////+AAAAAAAAAAAAAH///////gAAAAAAAAAAAAA///////wAAAAAAAAAAAAAP//////8AAAAAAAAA + AAAAB///////AAAAAAAAAAAAAAf//////gAAAAAAAAAAAAAH//////4AAAAAAAAAAAAAA//////+AAAA + AAAAAAAAAAP//////AAAAAAAAAAAAAAD/wD///wAAAAAAAAAAAAAA/wAH//8AAAAAAAAAAAAAAH4AA// + /AAAAAAAAAAAAAAB8AAH//wAAAAAAAAAAAAAAeAAA//4AAAAAAAAAAAAAAHAAAH5+AAAAAAAAAAAAAAB + gAAB4HgAAAAAAAAAAAAAAYAAAMA4AAAAAAAAAAAAAAGAAACAOAAAAAAAAAAAAAABAAAAgBgAAAAAAAAA + AAAAAAAAAIAYAAAAAAAAAAAAAAAAAACAGAAAAAAAAAAAAAAAAAAAgBgAAAAAAAAAAAAAAAAAAIAYAAAA + AAAAAAAAAAEAAACAGAAAAAAAAAAAAAABAAAAgBgAAAAAAAAAAAAAAQAAAIAYAAAAAAAAAAAAAAEAAACA + GAAAAAAAAAAAAAABAAAAgAwAAAAAAAAAAAAAAQAAAMAMAAAAAAAAAAAAAAAAAADADAAAAAAAAAAAAAAA + AAAAwAwAAAAAAAAAAAAAAgAAAMAEAAAAAAAAAAAAAAIAAAHABgAAAAAAAAAAAAACAAAB4AYAAAAAAAAA + AAAAAAAAAeAGAAAAAAAAAAAAAAQAAAHgAwAAAAAAAAAAAAAEAAAB4AMAAAAAAAAAAAAAAAAAA/ABAAAA + AAAAAAAAAAgAAAPwAYAAAAAAAAAAAAAAAAAD8ACAAAAAAAAAAAAAEAAAB/gAwAAAAAAAAAAAAAAAAAf4 + AEAAAAAAAAAAAAAgAAAH+ABgAAAAAAAAAAAAAAAAD/wAIAAAAAAAAAAAAEAAAA/8ABAAAAAAAAAAAAAA + AAAf/gAYAAAAAAAAAAAAgAAAH/4ACAAAAAAAAAAAAQAAAD//AAQAAAAAAAAAAAAAAAA//wACAAAAAAAA + AAAAAAAAf/+AAwAAAAAAAAAABAAAAH//gAEAAAAAAAAAAAgAAAD//8AAgAAAAAAAAAAQAAAA///AAEAA + AAAAAAAAIAAAAf//4AAgAAAAAAAAAEAAAAP///AACAAAAAAAAACAAAAD///wAAQAAAAAAAABAAAAB/// + +AACAAAAAAAAAAAAAA////wAAQAAAAAAAAgAAAAf///+AABAAAAAAAAQAAAAP////wAAEAAAAAAAQAAA + AD////8AAAgAAAAAAQAAAAB/////gAADAAAAAAQAAAAA/////8AAAMAAAAAQAAAAAf/////gAAAYAAAA + wAAAAAP/////8AAAA4AADAAAAAAH//////gAAAAf/8AAAAAAH//////+AAAAAAAAAAAAAD///////wAA + AAAAAAAAAAB///////+AAAAAAAAAAAAA////////wAAAAAAAAAAAA/////////AAAAAAAAAAAAf///// + ///4AAAAAAAAAAAf/////////gAAAAAAAAAAP/////////+AAAAAAAAAAP//////////4AAAAAAAAAP/ + //////////gAAAAAAAAP///////////+AAAAAAAAf////////////4AAAAAAAf/////////////wAAAA + AA///////////////wAAAAD////////////////4AAAf//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////KAAAAGAAAADAAAAAAQAgAAAAAACAlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABL + S0sFSEhIEEtLSx5MTEwgS0tLIEpKShRJSUkLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABN + TU0FUlJSGEhISEtLS0t6Pj4+pT8/P808PDzhOjo65zk5Oe46OjrvOjo67zk5Oek6OjrkPz8/1j4+PrZA + QECOTExMX1JSUiZRUVEMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAT09PJkJCQn4/Pz/COjo68Tk5Of46Ojr/Ojo6/zo6Ov48PDz/TExM/1lZWf5f + X1//X19f/05OTv5DQ0P/Ojo6/zo6Ov46Ojr/Ojo6/zk5Ofo7OzvWREREnEpKSkdRUVEGAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUFBQD0ZGRmE7OzvFOTk5/Tk5Of47Ozv+VlZW/n5+fv6p + qan+zMzM/unp6f79/f3+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+9PT0/tjY2P62trb+j4+P/mRkZP5D + Q0P+OTk5/jk5Of45OTnmRUVFjE5OTigAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE9PTxFERERzOzs73To6Ov48 + PDz/WFhY/5ycnP7X19f/9PT0//7+/v7///////////7+/v7///////////7+/v7///////////7+/v7/ + //////////7+/v7///////////r6+v7o6Oj/tbW1/29vb/5ERET/OTk5/jo6OvJAQECiUVFRLgAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABU + VFQDSkpKVDk5Odk5OTn+OTk5/nR0dP7Gxsb++Pj4/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7g + 4OD+mJiY/kRERP45OTn+OTk59ERERI9YWFgTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAFBQUCQ7Ozu0OTk5/j09Pf91dXX/1dXV/v////////////////7+/v7/ + //////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7/ + //////////7+/v7///////////7+/v7//////v7+/vT09P+cnJz/SUlJ/jo6Ov86OjrlS0tLW1dXVwEA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABTU1MDSkpKVzo6Ouc6Ojr/WFhY/sXFxf/7 + +/v//v7+/v////////////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7/ + //////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7//////v7+/v/////+ + /v7/5+fn/n5+fv8+Pj7/OTk5+0FBQZpaWloSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFZWVgRA + QECHOTk5+Dw8PP6NjY3+8fHx/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/vz8/P69vb3+TExM/jk5Of47OzvHVlZWJgAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAWVlZDj8/P7A6Ojr/SUlJ/sPDw//+/v7//v7+/v///////////v7+/v////// + //////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7/ + //////////7+/v7///////////7+/v7///////////7+/v7//////v7+/v///////////v7+/v////// + ////6+vr/mtra/86Ojr/OTk56FhYWDoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABZWVkSQUFBuDo6Ov9YWFj/2NjY/v////// + /////v7+/v///////////v7+/v////////////////7+/v7///////////7+/v7///////////7+/v7/ + //////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7/ + /////v7+/v///////////v7+/v///////////v7+/vX19f+IiIj/PDw8/js7O+lXV1dBAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFlZWQ1B + QUG3OTk5/l1dXf7m5ub+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v77 + +/v+lJSU/jk5Of47OzvpWFhYPQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAVlZWBD8/P6w6Ojr/XV1d/u3t7f///////v7+/v///////////v7+/v////// + /////v7+/v////////////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7/ + //////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7//////v7+/v////// + /////v7+/v///////////v7+/v///////////v7+/pSUlP88PDz/OTk57VdXVysAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVVVUCREREgzo6Ov5XV1f/5eXl/v////// + /////v7+/v///////////v7+/v///////////v7+/v////////////////7+/v7///////////7+/v7/ + //////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7/ + //////////7+/v7//////v7+/v///////////v7+/v///////////v7+/v///////////v7+/vv7+/+O + jo7/Ozs7/js7O9JWVlYYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABK + SkpNOTk590ZGRv7W1tb+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v739/f+dHR0/jk5Of5CQkKnW1tbBAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAFNTUyA7OzvmOzs7/rq6uv///////v7+/v///////////v7+/v////// + /////v7+/v///////////v7+/v////////////////7+/v7///////////7+/v7///////////7+/v7/ + //////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7/ + /////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v//////////8fHx/lNTU/86 + Ojr8TU1NbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU1NTAUFBQaw6Ojr/hISE/v39/f// + /////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v////////////////7+/v7/ + //////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7/ + //////////7+/v7///////////7+/v7//////v7+/v///////////v7+/v///////////v7+/v////// + /////v7+/v///////////v7+/svLy/9CQkL/OTk58VNTUyEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAS0tLSDk5Of1SUlL+7Ozs/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v6RkZH+OTk5/kFBQahb + W1sDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVVVULPT09zzs7O/+7u7v//v7+/v///////////v7+/v////// + /////v7+/v///////////v7+/v///////////v7+/v////////////////7+/v7///////////7+/v7/ + //////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7/ + //////////7+/v7//////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v////// + /////v7+/v/////x8fH/VlZW/jo6OvxSUlJIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMTExcOTk5/W1tbf/5 + +fn//v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v////// + //////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7/ + //////////7+/v7///////////7+/v7///////////7+/v7//////v7+/v///////////v7+/v////// + /////v7+/v///////////v7+/v///////////v7+/v//////////tLS0/jo6Ov88PDzBWVlZBQAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAFNTUwk9PT3QOTk5/szMzP7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7++vr6/llZWf45OTn6Tk5ORgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEtLS086Ojr8Z2dn/v///////////v7+/v////// + /////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v////////////////7+/v7/ + //////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7/ + //////////7+/v7///////////7+/v7//////v7+/v///////////v7+/v///////////v7+/v////// + /////v7+/v///////////v7+/v///////////v7+/rS0tP87Ozv/QUFBtAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs7O7I7 + Ozv/urq6/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v////// + /////v7+/v////////////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7/ + //////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7//////v7+/v////// + /////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/vLy8v9R + UVH/OTk5+1VVVR4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAATU1NFDk5OfpQUFD/8vLy/v///////////v7+/v///////////v7+/v////// + /////v7+/v///////////v7+/v///////////v7+/v////////////////7+/v7///////////7+/v7/ + //////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7/ + //////////7+/v7//////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v////// + /////v7+/v///////////v7+/v////+RkZH/OTk5/kpKSncAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARkZGZzk5Of6Kior+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7X19f+PDw8/j8/P8da + WloGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABM + TEwBQkJCrzo6Ov7IyMj//v7+/v///////////v7+/v///////////v7+/v///////////v7+/v////// + /////v7+/v///////////v7+/v////////////////7+/v7///////////7+/v7///////////7+/v7/ + //////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7/ + /////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v////// + /////v7+/v/////29vb/Wlpa/jo6OvZWVlYhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEpKSgNM + TEwUSkpKJEVFRTFPT08dTExMDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABPT08QOjo64UpKSv7u7u7//v7+/v///////////v7+/v////// + /////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v////////////////7+/v7/ + //////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7/ + //////////7+/v7///////////7+/v7//////v7+/v///////////v7+/v///////////v7+/v////// + /////v7+/v///////////v7+/v///////////v7+/v//////////iIiI/jo6Ov9SUlJYAAAAAAAAAAAA + AAAAAAAAAAAAAABWVlYDSkpKTT09Pbg6OjrpOTk5/jo6Ov86Ojr6OTk520NDQ5RQUFAoAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMTEwxOTk5/mxsbP79 + /f3+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+urq6/jk5Of4/Pz+WAAAAAAAAAAAAAAAAAAAAAFVVVSM7Ozu+OTk5/jo6Ov5QUFD+aGho/nd3d/5j + Y2P+Q0ND/jk5Of45OTn2RkZGf1tbWwQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAABKSkpgOjo6/5WVlf7//////v7+/v///////////v7+/v///////////v7+/v////// + /////v7+/v///////////v7+/v///////////v7+/v////////////////7+/v7///////////7+/v7/ + //////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7/ + //////////7+/v7//////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v////// + /////v7+/v///////////v7+/v//////////4+Pj/jo6Ov9AQEDHAAAAAAAAAAAAAAAAVlZWJjw8PN86 + Ojr/XV1d/sPDw//x8fH//f39/v/////7+/v/5+fn/paWlv9GRkb/OTk5/kFBQZRbW1sHAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBQUGNOjo6/7a2tv7//////v7+/v////// + /////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v////// + //////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7/ + //////////7+/v7///////////7+/v7///////////7+/v7//////v7+/v///////////v7+/v////// + /////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////f39/kJCQv87 + OzvkVVVVCgAAAABPT08MPDw8yDo6Ov99fX3/8fHx/v///////////v7+/v///////////v7+/v/////R + 0dH/S0tL/jo6Ov5KSkp1AAAAAAAAAAAAAAAATU1NA0VFRTI/Pz9NRUVFKQAAAAAAAAAAAAAAAAAAAAA+ + Pj6tOjo6/tPT0/7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/l1dXf45OTnxVFRUIwAAAAA/Pz95OTk5/mpqav739/f+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+1dXV/j8/P/45OTntVlZWJAAAAABXV1cRQEBArTo6Ovg6 + Ojr/OTk580JCQodWVlYGAAAAAAAAAAA+Pj7HOjo6/+rq6v7//////v7+/v///////////v7+/v////// + /////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v////////////////7+/v7/ + //////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7/ + //////////7+/v7///////////7+/v7//////v7+/v///////////v7+/v///////////v7+/v////// + /////v7+/v///////////v7+/v///////////v7+/v///////////v7+/nJycv86Ojr5VlZWNElJSQw7 + OzvbOzs7/tfX1////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/oyMjP86 + Ojr/SkpKggAAAABBQUGMOTk5/lJSUv+CgoL/R0dH/jo6OvxLS0tTAAAAAAAAAAA+Pj7dOjo6//v7+/7/ + /////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v////// + /////v7+/v////////////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7/ + //////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7//////v7+/v////// + /////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v////// + /////v7+/oODg/86Ojr/V1dXP0dHRzk6Ojr6ZmZm/v///////////v7+/v///////////v7+/v////// + /////v7+/v///////////v7+/tjY2P9AQED/OTk50AAAAAA+Pj7YOTk5/ujo6P7+/v7+wMDA/jk5Of49 + PT2mAAAAAAAAAAA+Pj7fOjo6/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/pGRkf45OTn+RkZGU0RERGQ5OTn+l5eX/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/vr6+v5QUFD+OTk5+gAAAAA/ + Pz/fOTk5/v//////////2tra/jo6Ov8+Pj6vAAAAAEJCQg06OjrlRkZG//7+/v7//////v7+/v////// + /////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v////// + //////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7/ + //////////7+/v7///////////7+/v7///////////7+/v7//////v7+/v///////////v7+/v////// + /////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/paWlv86 + Ojr/R0dHV0ZGRm86Ojr/qamp/v///////////v7+/v///////////v7+/v///////////v7+/v////// + /////v7+/v////9iYmL/OTk5/gAAAAA/Pz/fOTk5/v//////////3d3d/jo6Ov8/Pz+2AAAAAEhISAE9 + PT3gOzs7//7+/v7//////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v////// + /////v7+/v///////////v7+/v////////////////7+/v7///////////7+/v7///////////7+/v7/ + //////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7/ + /////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v////// + /////v7+/v///////////v7+/pKSkv86Ojr/R0dHV0dHR286Ojr/qamp/v///////////v7+/v////// + /////v7+/v///////////v7+/v///////////v7+/v////9fX1//OTk5/gAAAABAQEDZOTk5/vb29v7+ + /v7+7Ozs/jk5Of5AQEDIAAAAAAAAAAA+Pj7fOjo6/v39/f7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/oODg/45OTn+WFhYP0hISIU5 + OTn+t7e3/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v5S + UlL+OTk5/gAAAAA/Pz/FOTk5/urq6v//////+vr6/js7O/9AQEDdW1tbAgAAAAA9PT3MOjo6/+3t7f7/ + /////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v////// + /////v7+/v////////////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7/ + //////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7//////v7+/v////// + /////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v////// + /////v7+/nd3d/86Ojr7V1dXN0hISJM6Ojr/wcHB/v///////////v7+/v///////////v7+/v////// + /////v7+/v///////////v7+/vr6+v9QUFD/OTk59wAAAAA/Pz+yOTk5/tbW1v///////v7+/k1NTf86 + OjrqU1NTFQAAAAA9PT21Ojo6/9jY2P7//////v7+/v///////////v7+/v///////////v7+/v////// + /////v7+/v///////////v7+/v///////////v7+/v////////////////7+/v7///////////7+/v7/ + //////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7/ + //////////7+/v7//////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v////// + /////v7+/v///////////v7+/v///////////v7+/mNjY/86OjryVlZWJj09Pao7Ozv/0dHR/v////// + /////v7+/v///////////v7+/v///////////v7+/v///////////v7+/u7u7v9KSkr/OTk54gAAAAA+ + Pj6TOTk5/r+/v/7+/v7+/v7+/mlpaf45OTn2V1dXLgAAAAA/Pz+POjo6/ry8vP7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/kRERP45 + OTnnVVVVDzk5OctDQ0P+4ODg/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/t/f3/5DQ0P+OTk5xwAAAABMTExzOTk5/qampv///////v7+/oqKiv86Ojr+SkpKVAAAAABG + RkZnOjo6/5mZmf7//////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v////// + /////v7+/v///////////v7+/v////////////////7+/v7///////////7+/v7///////////7+/v7/ + //////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7/ + /////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v////// + /////v7+/v//////////6Ojo/jo6Ov8+Pj7OXFxcAjo6OvFNTU3/8/Pz/v///////////v7+/v////// + /////v7+/v///////////v7+/v///////////v7+/s7Ozv87Ozv/R0dHpwAAAABKSkpNOTk5/oWFhf// + /////v7+/rCwsP86Ojr/S0tLigAAAABDQ0M3Ojo6/3Jycv79/f3//v7+/v///////////v7+/v////// + /////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v////////////////7+/v7/ + //////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7/ + //////////7+/v7///////////7+/v7//////v7+/v///////////v7+/v///////////v7+/v////// + /////v7+/v///////////v7+/v///////////v7+/v//////////wMDA/jo6Ov8+Pj6dUFBQIDo6Ov9k + ZGT//v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/rCwsP86 + Ojr/UlJSgwAAAABQUFAkOTk5+mNjY/76+vr+/v7+/tjY2P4/Pz/+OTk5zAAAAABLS0sUOTk56U9PT/7w + 8PD+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+j4+P/jk5Of5NTU1kTExMWzk5Of6Li4v+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/oqKiv45OTn+VFRUVgAAAABQUFAOOTk53UlJSf/u7u7//v7+/vj4+P9U + VFT/OTk5+01NTRRLS0sDPT09uTo6Ov7Q0ND//v7+/v///////////v7+/v///////////v7+/v////// + /////v7+/v///////////v7+/v///////////v7+/v////////////////7+/v7///////////7+/v7/ + //////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7/ + //////////7+/v7//////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v////// + /////v7+/v///////////v7+/v/////4+Pj/YGBg/jo6OvlTU1MoQkJCmDo6Ov+4uLj//v7+/v////// + /////v7+/v///////////v7+/v///////////v7+/v///////////v7+/mJiYv86Ojr1YWFhLQAAAABN + TU0BQkJCtDo6Ov/R0dH//v7+/v////+EhIT/OTk5/ktLS18AAAAAREREczk5Of6VlZX//v7+/v////// + /////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v////// + //////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7/ + //////////7+/v7///////////7+/v7///////////7+/v7//////v7+/v///////////v7+/v////// + /////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v/////c3Nz/PT09/j4+PtBY + WFgTPDw81EBAQP/l5eX//v7+/v///////////v7+/v///////////v7+/v///////////v7+/v////// + ////9vb2/j09Pf89PT3iXl5eCgAAAAAAAAAARkZGdDk5Of6bm5v+/v7+/v7+/v7Hx8f+OTk5/kFBQbVT + U1MCS0tLITk5OftVVVX+9vb2/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v39/f7p6en+9/f3/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v6bm5v+OTk5/kdHR4RQUFAyOTk5+2VlZf76+vr+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+w8PD/jk5Of5AQECqAAAAAAAAAAAAAAAATk5OMjo6Ov9m + Zmb//f39/v/////y8vL/U1NT/jo6OvRPT08lAAAAADs7O8I8PDz/xMTE/v///////////v7+/v////// + /////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v////////////////7+/v7/ + //////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7/ + //////////7+/v7///////////7+/v7/////+fn5/oSEhP9HR0f/YWFh/ufn5////////v7+/v////// + /////v7+/v///////////v7+/v///////////v7+/vb29v9YWFj/OTk5/VNTUypFRUWGOTk5/p+fn/// + /////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v//////////jY2N/jo6Ov9S + UlJmAAAAAAAAAAAAAAAAU1NTAjk5OeRERET+4uLi/v7+/v7+/v7+k5OT/jk5Of5BQUGCAAAAAElJSV85 + OTn+dHR0/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v75+fn+g4OD/jk5Of45 + OTn+OTk5/l1dXf7n5+f+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/sHBwf48 + PDz+OTk5w1dXVwo7OzvZOTk5/uPj4/7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v729vb+WVlZ/jk5OfVgYGAiAAAAAAAAAAAAAAAAAAAAAENDQ5M6Ojr/qKio/v////// + ////5eXl/j09Pf87OzvlVFRUFU9PTw86OjrdOTk5/tvb2////////v7+/v///////////v7+/v////// + /////v7+/v///////////v7+/v///////////v7+/v////////////////7+/v7///////////7+/v7/ + //////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7/ + //////////7+/v6RkZH/OTk5/jo6Ov86Ojr/OTk5/jo6Ov9aWlr/5OTk/v///////////v7+/v////// + /////v7+/v///////////f39/mRkZP86Ojr8TExMVExMTFY6Ojr9bm5u/v///////////v7+/v////// + /////v7+/v///////////v7+/v///////////v7+/v/////Ozs7/Ozs7/j09PcBdXV0FAAAAAAAAAAAA + AAAAAAAAAE5OTkE6Ojr6ZGRk/v7+/v///////v7+/nt7e/86Ojr+R0dHdAAAAABDQ0NzOTk5/nh4eP/7 + +/v//v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v////// + //////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7/ + //////////7+/v7///////////7+/v7///////////7+/v5nZ2f/OTk5/jo6Ov86Ojr/OTk5/jo6Ov86 + Ojr/Wlpa/ufn5////////v7+/v///////////v7+/v//////////xcXF/jo6Ov88PDzRWFhYDDs7O8I8 + PDz/vb29/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v////+G + hob/OTk5/lFRUWoAAAAAAAAAAAAAAAAAAAAAAAAAAFJSUgg8PDzVOzs7/tzc3P7+/v7+/v7+/tTU1P5A + QED+Ojo661VVVQ9QUFATOTk53T4+Pv7Ly8v+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v6y + srL+PT09/jk5Of45OTn+OTk5/jk5Of45OTn+OTk5/l1dXf7n5+f+/v7+/v7+/v7+/v7+/v7+/v7+/v72 + 9vb+YGBg/jk5Of5JSUlXS0tLQTk5Of5ZWVn+9/f3/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/uzs7P5LS0v+OTk5+F1dXRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABI + SEh2OTk5/oiIiP/+/v7//v7+/v////+Dg4P/Ojo6/0BAQI5XV1cBREREXjo6Ov9eXl7/9PT0/v////// + /////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v////////////////7+/v7/ + //////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7/ + //////////7+/v7///////////7+/v7+/v7/srKy/j09Pf86Ojr/OTk5/jo6Ov86Ojr/OTk5/jo6Ov9a + Wlr/5OTk/v///////////v7+/v////+hoaH/OTk5/jw8PL1ZWVkPPT09wjo6Ov+1tbX//v7+/v////// + /////v7+/v///////////v7+/v///////////v7+/v///////////v7+/qampv86Ojr/R0dHngAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQUFAeOTk57UhISP/n5+f//v7+/v/////j4+P/SkpK/zk5OfRP + T085V1dXAzs7O8E6Ojr/mZmZ/v///////////v7+/v///////////v7+/v///////////v7+/v////// + /////v7+/v////////////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7/ + //////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7//////v7+/qysrP9A + QED/OTk5/jo6Ov86Ojr/OTk5/jo6Ov86Ojr/Wlpa/unp6f///////v7+/tnZ2f9GRkb/OTk5+VJSUjJH + R0ddOTk5/GJiYv/29vb//v7+/v///////////v7+/v///////////v7+/v///////////v7+/v////// + ////+Pj4/lJSUv86Ojr3VVVVOgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSUlIBQUFBljk5Of6Y + mJj+/v7+/v7+/v7+/v7+pKSk/jk5Of48PDzFWFhYC09PTy85OTnvPj4+/s7Ozv7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v6srKz+PT09/jk5Of45OTn+OTk5/jk5Of45OTn+OTk5/oGBgf7+ + /v7++fn5/mFhYf45OTn+RUVFh1hYWBc7OzvfOTk5/sjIyP7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+sLCw/jk5Of4+Pj63YGBgAQAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAVFRUIzo6OvlJSUn/5+fn/v///////////f39/2ZmZv46Ojr/Pj4+kAAAAABG + RkZnOTk5+1BQUP/l5eX//v7+/v///////////v7+/v///////////v7+/v///////////v7+/v////// + //////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7/ + //////////7+/v7///////////7+/v7///////////7+/v7//////v7+/v/////+/v7/srKy/j09Pf86 + Ojr/OTk5/jo6Ov86Ojr/OTk5/oGBgf/7+/v/h4eH/jo6Ov89PT2/WVlZCz8/P6c6Ojr/gICA/v////// + /////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v/////w8PD/VVVV/jo6OvlX + V1c+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEJCQpk6Ojr/jo6O/v////// + /////////93d3f5KSkr/OTk5+0pKSlJYWFgGQEBAnTo6Ov9mZmb/7u7u/v///////////v7+/v////// + /////v7+/v///////////v7+/v////////////////7+/v7///////////7+/v7///////////7+/v7/ + //////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7/ + /////v7+/v///////////v7+/qysrP9AQED/OTk5/jo6Ov86Ojr/Wlpa/ufn5/+kpKT/PDw8/js7O+NT + U1MnSUlJXjo6OvxTU1P/6Ojo/v///////////v7+/v///////////v7+/v///////////v7+/v////// + /////v7+/v////+enp7/OTk5/kBAQKtfX18DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAFJSUiE5OTnsPj4+/t/f3/7+/v7+/v7+/v7+/v64uLj+PT09/jk5OetPT08xWVlZCz8/P8Y5 + OTn+cnJy/vn5+f7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v6srKz+PT09/jk5Of5a + Wlr+5OTk/rS0tP5AQED+OTk5+E5OTkFQUFAyOTk56z09Pf7Dw8P+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/uDg4P5HR0f+OTk5+lpaWicAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABJSUl2OTk5/m1tbf/5+fn///////7+/v79 + /f3/mpqa/jo6Ov87OzvfVVVVJFFRURc7OzvNOTk5/nZ2dv/w8PD//v7+/v///////////v7+/v////// + /////v7+/v////////////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7/ + //////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7//////v7+/v////// + /////v7+/v/////+/v7/ycnJ/qmpqf/t7e3/tLS0/js7O/86Ojr2RUVFV1VVVSA7OzvbOTk5/p6env/+ + /v7//v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////Pz8/m1tbf86 + Ojr+RkZGhQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABX + V1cPOzs7zTs7O/+tra3///////7+/v7/////+/v7/n5+fv86Ojr/Ozs71VVVVR1SUlIlOzs70zo6Ov9q + amr/6Ojo/v///////////v7+/v///////////v7+/v////////////////7+/v7///////////7+/v7/ + //////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7/ + //////////7+/v7//////v7+/v///////////v7+/v///////////v7+/vv7+/+ioqL/Pz8//jo6OvZF + RUViU1NTFTs7O8k6Ojr/enp6/vv7+////////v7+/v///////////v7+/v///////////v7+/v////// + /////v7+/v/////+/v7/rq6u/jo6Ov89PT3TX19fEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAT09POjk5OfxJSUn+3t7e/v7+/v7+/v7+/v7+/vT09P5x + cXH+OTk5/jw8PNFWVlYiUlJSGDk5Oc05OTn+V1dX/tjY2P7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+9/f3/oSEhP48PDz+OTk5+EVFRVVTU1MVPDw8wjk5Of5oaGj+8vLy/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7a2tr+SEhI/jk5OfdVVVVCAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAERERIc6 + Ojr+YGBg//b29v7//////v7+/v/////19fX/dXV1/jo6Ov87OzvhTU1NN1tbWw5AQECoOTk5/UJCQv+o + qKj/+fn5/v///////////v7+/v////////////////7+/v7///////////7+/v7///////////7+/v7/ + //////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7/ + /////v7+/v///////////v7+/v/////U1NT/XV1d/jo6Ov87OzvfT09PPFVVVSE7OzvKOTk5/mhoaP/v + 7+///v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/u/v7/9e + Xl7/OTk5/kZGRn0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAFhYWAw/Pz/BOjo6/4uLi/77+/v//v7+/v//////////9vb2/oCAgP87 + Ozv/OTk570pKSlVYWFgLR0dHdzo6OvY8PDz/bW1t/tvb2//9/f3//v7+/v////////////////7+/v7/ + //////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7/ + //////////7+/v7///////////7+/v7//////v7+/v//////////8/Pz/pqamv9FRUX/OTk5/j09PbpT + U1MkUFBQMjs7O9s6Ojr/aGho/u/v7////////v7+/v///////////v7+/v///////////v7+/v////// + /////v7+/v//////////+/v7/nl5ef86Ojr+PDw8uWVlZQUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABTU1MmOTk55Dw8PP6r + q6v+/v7+/v7+/v7+/v7+/v7+/vn5+f6Xl5f+PDw8/jk5OfhAQECMW1tbCk1NTUA7OzvUOTk5/kRERP6Q + kJD+6+vr/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/vz8/P65 + ubn+WVlZ/jk5Of45OTn1RUVFfFlZWQhJSUlhOTk56zk5Of56enr+8vLy/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v79/f3+mJiY/jk5Of48PDzZXV1dHAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAUlJSQTk5OfU/Pz//u7u7/v///////////v7+/v/////+/v7/v7+//klJSf86 + Ojr/OTk51FBQUDtWVlYKRkZGfDo6Ou06Ojr/QkJC/pCQkP/d3d3//v7+//7+/v7///////////7+/v7/ + //////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7/ + //////////7+/v7x8fH/s7Oz/lxcXP86Ojr/OTk5/UBAQK9RUVEpWFhYFz8/P6c6Ojr8Pj4+/qCgoP/7 + +/v//v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v7+/v+f + n5//Ozs7/jo6OudWVlYuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEpKSmY6Ojr3Q0ND/sfHx//+ + /v7//v7+/v///////////v7+/t/f3/9sbGz/Ozs7/jo6OvU/Pz+TVlZWG1FRUSU/Pz+XOTk57jo6Ov9D + Q0P/b29v/7i4uP7q6ur//Pz8//7+/v7///////////7+/v7///////////7+/v7///////////7+/v7/ + //////////7+/v7///////////7+/v7z8/P/0tLS/42Njf5RUVH/Ojo6/jo6Ovo8PDzBSUlJS1paWg1H + R0diOzs74Do6Ov9UVFT/w8PD/v7+/v///////v7+/v///////////v7+/v///////////v7+/v////// + /////v7+/v///////////v7+/qysrP8/Pz//OTk58lBQUEIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAABERER7OTk5/UZGRv7Hx8f+/v7+/v7+/v7+/v7+/v7+/v7+/v74+Pj+qKio/kRERP45 + OTn+OTk55kZGRnVWVlYMVVVVIURERIY5OTnlOTk5/jk5Of5GRkb+a2tr/pubm/7FxcX+5+fn/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/vb29v7T09P+ra2t/n19ff5UVFT+Ozs7/jk5Of45 + OTn6Pz8/slFRUUNYWFgGS0tLQT09PcU5OTn8OTk5/oODg/7r6+v+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v79/f3+paWl/j09Pf45OTnyT09PTAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABaWloCREREdjo6Ov1DQ0P/vb29/v////// + /////v7+/v///////////v7+/unp6f+Ghob/QUFB/jo6Ov86OjrtREREiFRUVCVVVVUHS0tLTEBAQKM6 + OjreOjo6/Tk5Of46Ojr/Ojo6/0JCQv5ZWVn/a2tr/3Fxcf5xcXH/cXFx/3BwcP5fX1//TU1N/zk5Of46 + Ojr/Ojo6/zk5Of46OjrvPT09wEZGRm9SUlIZV1dXDExMTFk7OzvFOTk5/jo6Ov9kZGT/y8vL/v////// + /////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/vn5+f+T + k5P/Ozs7/jo6Ou9QUFBHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAWlpaAkRERH06Ojr4Pz8//q6urv/8/Pz//v7+/v///////////v7+/v/////8/Pz/2tra/n19ff9E + RET/OTk5/jo6OvI9PT21SEhIX1JSUhpWVlYSTk5ONUhISG4+Pj6iPj4+zTk5OeQ6OjruOjo69Tk5OfY6 + Ojr3Ojo69zk5OfY6OjrwOjo66T09Pdk+Pj6zREREg0xMTExXV1caVVVVEFBQUDlERESMOzs73To6Ov08 + PDz/Xl5e/ry8vP/29vb//v7+/v///////////v7+/v///////////v7+/v///////////v7+/v////// + /////v7+/v//////////8vLy/nt7e/87Ozv/OTk56VBQUEMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDQ0NoOTk59T09Pf6QkJD+9/f3/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7e3t7+k5OT/klJSf45OTn+OTk5/jk5Oe4+Pj68QkJCgE9PT0NR + UVERAAAAAFRUVAtVVVUeVVVVLFZWVi9WVlYvVlZWL1ZWVi9VVVUjVFRUE1paWgFbW1sDT09PLEdHR2JB + QUGhOTk52Dk5Of05OTn+Ozs7/nBwcP7AwMD+9/f3/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7d3d3+YGBg/jk5Of48PDzaWlpaMgAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAU1NTRTo6Ouo6Ojr/ZmZm/uPj4////////v7+/v///////////v7+/v///////////v7+/vn5+f/E + xMT/hISE/1JSUv47Ozv/Ojo6/zk5Of46Ojr+Ojo65zk5OcJAQECmR0dHlEdHR4dHR0eHR0dHh0dHR4pG + RkafOjo6tDk5Odc6Ojr3Ojo6/zk5Of46Ojr/Q0ND/2lpaf6lpaX/5ubm/v///////////v7+/v////// + /////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////Pz8/q6urv9F + RUX/OTk5/j09PbReXl4YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFVVVSk/Pz/HOTk5/kxMTP+zs7P/+vr6/v////// + /////v7+/v///////////v7+/v////////////////Ly8v7T09P/p6en/3t7e/5aWlr/SkpK/0FBQf47 + Ozv/Ojo6/zk5Of46Ojr/Ojo6/zk5Of46Ojr/Pj4+/0ZGRv5QUFD/aWlp/5KSkv69vb3/5+fn//r6+v7/ + /////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v////// + /////v7+/v/////k5OT/eXl5/jw8PP86OjrzRUVFhWJiYggAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABb + W1sPRUVFjjk5Of47Ozv+dHR0/uTk5P7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v79/f3+7u7u/t3d3f7Q0ND+wcHB/ru7u/67u7v+u7u7/ru7u/7Ly8v+1tbW/ubm5v74 + +Pj+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7++/v7/qampv5LS0v+OTk5/jk5OdtTU1NEAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUUc7OzvWOTk5/kJCQv+YmJj/7e3t/v////// + /////v7+/v////////////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7/ + //////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7//////v7+/v////// + /////v7+/v///////////v7+/v///////////v7+/v///////////v7+/vr6+v/AwMD/XFxc/jo6Ov86 + Ojr0Q0NDj2FhYQsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABb + W1sSQ0NDhDo6OvE6Ojr/UFBQ/qqqqv/u7u7//v7+/v////////////////7+/v7///////////7+/v7/ + //////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7/ + //////////7+/v7//////v7+/v///////////v7+/v///////////v7+/v///////////v7+/v/////3 + 9/f/xMTE/mVlZf89PT3/OTk5+z4+PrhZWVk2YGBgAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFZWVipDQ0OpOTk5+zk5Of5PT0/+mJiY/urq6v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+9PT0/qysrP5gYGD+Ozs7/jk5Of48PDzMVVVVU2BgYAIAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAWlpaLENDQ6o6Ojr0OTk5/j4+Pv92dnb/u7u7//Hx8f7///////////7+/v7///////////7+/v7/ + //////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7/ + /////v7+/v///////////v7+/v//////////9PT0/sXFxf+CgoL/Q0ND/jo6Ov86Ojr6Pz8/wFJSUk1k + ZGQCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFtbWwJXV1cqREREjDw8POM6Ojr9Ozs7/05OTv56 + enr/tLS0/+Pj4/729vb///////7+/v7///////////7+/v7///////////7+/v7///////////7+/v7/ + //////////7+/v7///////////7+/v7//////v7+/v/////29vb/4+Pj/rW1tf9/f3//UFBQ/js7O/86 + Ojr+OTk56kZGRptUVFQ6YGBgBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAFxcXBFNTU1WPj4+rzk5Ofg5OTn+OTk5/j4+Pv5aWlr+fn5+/qOjo/7FxcX+4uLi/vv7+/7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7++fn5/t/f3/7Dw8P+oqKi/n5+fv5a + Wlr+Pj4+/jk5Of45OTn+OTk5+D8/P7BQUFBcXFxcFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhYWAtVVVVNRkZGlDk5Oc46 + Ojr1Ojo6/zk5Of46Ojr/Ojo6/zs7O/5LS0v/XFxc/2hoaP5xcXH/cXFx/3Fxcf5xcXH/ZWVl/1tbW/5K + Skr/Ojo6/zk5Of46Ojr/OTk5/jo6Ov86OjryQEBAzUhISJJZWVlNXV1dDQAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAFlZWQdfX18dUVFRRVBQUHVAQECeQUFBwUBAQOA6OjrnOjo67zk5OfQ6 + Ojr3Ojo69zk5OfY6Ojr3Ojo68jk5Oe06OjrmQEBA20FBQbxERESZWFhYb1NTU0BjY2MaYGBgBgAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAGFhYQJaWloRXl5eH2FhYStjY2MvZGRkL2RkZC9jY2MvYWFhJl9fXxxbW1sOAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAP////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + Af/////////////AAAf///////////8AAAD///////////gAAAA//////////+AAAAAP/////////4AA + AAAD/////////wAAAAAA/////////AAAAAAAf///////+AAAAAAAP///////8AAAAAAAH///////4AAA + AAAAD///////wAAAAAAAB///////gAAAAAAAA///////AAAAAAAAAf//////AAAAAAAAAP/////+AAAA + AAAAAP/////8AAAAAAAAAH/////8AAAAAAAAAD/////4AAAAAAAAAD/////4AAAAAAAAAB/////wAAAA + AAAAAB/////wAAAAAAAAAB/////wAAAAAAAAAA/////gAAAAAAAAAA/////gAAAAAAAAAAf////AAAAA + AAAAAAfwP//AAAAAAAAAAAfAD//AAAAAAAAAAAeAA//AAAAAAAAAAAcAAf/AAAAAAAAAAAIAAcPAAAAA + AAAAAAIAAIDAAAAAAAAAAAAAAIDAAAAAAAAAAAAAAIDAAAAAAAAAAAAAAICAAAAAAAAAAAAAAICAAAAA + AAAAAAAAAIDAAAAAAAAAAAAAAIBAAAAAAAAAAAAAAIBAAAAAAAAAAAAAAIBAAAAAAAAAAAAAAIBAAAAA + AAAAAAAAAIBAAAAAAAAAAAAAAIBAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAIAgAAAAAAAAAAAAAMAAAAAA + AAAAAAAAAcAQAAAAAAAAAAAAAcAQAAAAAAAAAAAAAeAAAAAAAAAAAAAAAeAIAAAAAAAAAAAAA+AAAAAA + AAAAAAAAA/AAAAAAAAAAAAAAB/AAAAAAAAAAAAAAB/AAAAAAAAAAAAAAB/gBAAAAAAAAAAAAD/wAAAAA + AAAAAAAAD/wAAAAAAAAAAAAAH/4AAAAAAAAAAAAAP/4AAAAAAAAAAAAAP/8AAAAAAAAAAAAAf/+AAAAA + AAAAAAAA//+AAAAAAAAAAAAA///AAAAAAAAAAAAB///gAAAAAAAAAAAD///wAAAAAAAAAAAH///4AAAA + AAAAAAAP///4AAAAAAAAAAAf///8AAAAAAAAAAA/////AAACAAAAAAB/////gAAAAAAAAAD/////wAAA + AAAAAAH/////4AAAAAAAAAf/////+AAAAAAAAA///////AAAAAAAAB///////wAAAAAAAH///////8AA + AAAAAf///////+AAAAAAB/////////wAAAAAP/////////+AAAAB///////////wAAAP//////////// + wAf///////////////////////////////////////////////////////////////////////////// + /////////////////////////ygAAABIAAAAkAAAAAEAIAAAAAAAYFQAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKSkoRSkpKLUpKSlRGRkZwREREgURERItERESKQ0NDeExMTGNJ + SUlES0tLHktLSwYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABL + S0soRkZGej8/P786OjrsOjo6/jo6Ov8+Pj7/S0tL/1VVVf9TU1P/RkZG/zo6Ov86Ojr/Ojo6+T09PdtD + Q0OhSUlJVk5OTgsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABNTU0LRkZGXT09Pcc5OTn+R0dH/3Fxcf+k + pKT+y8vL/+zs7P7+/v7//v7+/v/////+/v7+//////n5+f/e3t7+urq6/46Ojv5cXFz/PT09/jo6OvFD + Q0OaT09PLwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAUFBQA0ZGRl07OzvaOzs7/2pqav+3t7f/8PDw//7+/v////////////////// + ///////////////////////////////////////////////7+/v/3Nzc/5aWlv9MTEz/Ojo6+EFBQalS + UlIjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABN + TU0sPT09wTs7O/5ycnL/0tLS/v7+/v/+/v7+///////////+/v7+//////7+/v7//////v7+/v/////+ + /v7+///////////+/v7+//////7+/v7//////v7+/v/////19fX+qamp/05OTv46Ojr1RkZGflVVVQkA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAT09PAkhISGY6OjrxVVVV/8TExP/8 + /Pz///////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////Hx8f+NjY3/Pj4+/j4+PsRUVFQjAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABTU1MGQkJClzo6Ov2EhIT+8fHx//7+/v7//////v7+/v/////+ + /v7+///////////+/v7+//////7+/v7//////v7+/v/////+/v7+///////////+/v7+//////7+/v7/ + /////v7+/v/////+/v7+//////7+/v7/////y8vL/1BQUP46OjrnU1NTQAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAFVVVQpDQ0OtPz8//qenp//9/f3///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////+np6f9nZ2f/Ojo681VVVUwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU1NTBUNDQ6w+ + Pj7+urq6//7+/v/+/v7+//////7+/v7//////v7+/v/////+/v7+///////////+/v7+//////7+/v7/ + /////v7+/v/////+/v7+///////////+/v7+//////7+/v7//////v7+/v/////+/v7+//////7+/v7/ + //////////7+/v709PT/bm5u/jo6OvJVVVVJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQUFABQkJClD8/P/66urr//v7+//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////9fX1/25ubv86OjrwU1NTMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKSkpfOjo6/aSkpP/+/v7///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////+/v7/9b + W1v/PDw81lhYWBIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAFBQUCg7Ozvxfn5+/v39/f/+/v7+///////////+/v7+//////7+/v7//////v7+/v/////+ + /v7+///////////+/v7+//////7+/v7//////v7+/v/////+/v7+///////////+/v7+//////7+/v7/ + /////v7+/v/////+/v7+//////7+/v7///////////7+/v7//////v7+/v/////e3t7+RERE/0VFRaUA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAT09PAj8/P7lQ + UFD/7u7u//////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////rKys/zo6Ov1QUFBJAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATExMUTo6Ov69vb3//v7+/v/////+ + /v7+///////////+/v7+//////7+/v7//////v7+/v/////+/v7+///////////+/v7+//////7+/v7/ + /////v7+/v/////+/v7+///////////+/v7+//////7+/v7//////v7+/v/////+/v7+//////7+/v7/ + //////////7+/v7//////v7+/v/////+/v7++/v7/2pqav4+Pj7UV1dXCgAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABPT08GPj4+zWxsbP/7+/v///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////9LS0v87Ozv+SkpKZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAABLS0tQOzs7/srKyv7//////v7+/v/////+/v7+///////////+/v7+//////7+/v7/ + /////v7+/v/////+/v7+///////////+/v7+//////7+/v7//////v7+/v/////+/v7+///////////+ + /v7+//////7+/v7//////v7+/v/////+/v7+//////7+/v7///////////7+/v7//////v7+/v/////+ + /v7+//////7+/v5ycnL/Ozs72FdXVwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9 + PT25YGBg//39/f////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////////K + ysr/Ozs7/VBQUEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAExMTBo5OTn8rKys//7+/v7/ + /////v7+/v/////+/v7+///////////+/v7+//////7+/v7//////v7+/v/////+/v7+///////////+ + /v7+//////7+/v7//////v7+/v/////+/v7+///////////+/v7+//////7+/v7//////v7+/v/////+ + /v7+//////7+/v7///////////7+/v7//////v7+/v/////+/v7+//////7+/v75+fn/WVlZ/0VFRaQA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEdHR2lBQUH/6Ojo//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////l5eX/zo6OulWVlYNAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAEBAQAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAEFBQa1mZmb//v7+//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////0NDQ/zo6Ov9TU1M6AAAAAAAAAAAAAAAAAAAAAE1NTS1B + QUGVPz8/zjs7O94/Pz/NREREkE5OTiwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAASEhICDs7O+GVlZX+//////7+/v7//////v7+/v/////+/v7+///////////+/v7+//////7+/v7/ + /////v7+/v/////+/v7+///////////+/v7+//////7+/v7//////v7+/v/////+/v7+///////////+ + /v7+//////7+/v7//////v7+/v/////+/v7+//////7+/v7///////////7+/v7//////v7+/v/////+ + /v7+//////7+/v7/////+Pj4/0NDQ/5JSUl3AAAAAAAAAABUVFQGREREjTk5OftRUVH/goKC/5aWlv6B + gYH/TU1N/jo6OvpGRkaDWFhYAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASkpKHzo6Ovq8 + vLz///////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////v7+/2VlZf9HR0elAAAAAEhISAFERESVPj4+/pubm//29vb/////////////////8vLy/5WVlf87 + Ozv+RkZGiQAAAAAAAAAAAAAAAENDQx0/Pz82RkZGDAAAAAAAAAAARkZGPjo6Ov/b29v+//////7+/v7/ + /////v7+/v/////+/v7+///////////+/v7+//////7+/v7//////v7+/v/////+/v7+///////////+ + /v7+//////7+/v7//////v7+/v/////+/v7+///////////+/v7+//////7+/v7//////v7+/v/////+ + /v7+//////7+/v7///////////7+/v7//////v7+/v/////+/v7+//////7+/v7//////////4KCgv48 + PDzKAAAAAEVFRUk5OTn8pqam//7+/v7///////////7+/v7//////v7+/v7+/v+cnJz+Ojo6+lJSUkAA + AAAASUlJcjo6OvY6Ojr+Ozs72VBQUCYAAAAASEhIWTo6Ov/x8fH///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////5iYmP88PDzlAAAAAD09Pbhd + XV3/+/v7///////////////////////////////////////6+vr/V1dX/0NDQ6xISEgZOjo684WFhf7K + ysr/UVFR/kJCQqMAAAAASkpKZzo6Ov/+/v7+//////7+/v7//////v7+/v/////+/v7+///////////+ + /v7+//////7+/v7//////v7+/v/////+/v7+///////////+/v7+//////7+/v7//////v7+/v/////+ + /v7+///////////+/v7+//////7+/v7//////v7+/v/////+/v7+//////7+/v7///////////7+/v7/ + /////v7+/v/////+/v7+//////7+/v7//////////6ampv47OzvwUFBQDzo6OvChoaH+//////7+/v7/ + //////////7+/v7//////v7+/v/////+/v7+mZmZ/zk5Oe9KSkonOjo6/83Nzf//////gICA/z09PcMA + AAAAQ0NDckFBQf////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////7CwsP86OjrzTU1NKTo6Ove9vb3///////////////////////////// + ////////////////////uLi4/zo6Ov9OTk4nOjo6/83Nzf7/////hoaG/j4+PssAAAAAR0dHaTo6Ov/+ + /v7+//////7+/v7//////v7+/v/////+/v7+///////////+/v7+//////7+/v7//////v7+/v/////+ + /v7+///////////+/v7+//////7+/v7//////v7+/v/////+/v7+///////////+/v7+//////7+/v7/ + /////v7+/v/////+/v7+//////7+/v7///////////7+/v7//////v7+/v/////+/v7+//////7+/v7/ + /////////6urq/46OjryUVFRKTo6OvfAwMD+//////7+/v7///////////7+/v7//////v7+/v/////+ + /v7+tra2/zk5Of5OTk4hOjo6+cLCwv//////k5OT/z8/P90AAAAAR0dHYTo6Ov/4+Pj///////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////56env88 + PDzsWFhYKzo6OvvMzMz/////////////////////////////////////////////////ra2t/zo6Ov1K + SkoWOjo68bKysv//////qKio/zo6Ou1PT08NRERESzo6Ov/l5eX///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////42Njf88PDzVUVFRPjo6Ov/a + 2tr/////////////////////////////////////////////////nZ2d/zo6OutGRkYGOjo65Jubm/7/ + ////xMTE/jo6OvlRUVEnRkZGJzo6Ov3Jycn+//////7+/v7//////v7+/v/////+/v7+///////////+ + /v7+//////7+/v7//////v7+/v/////+/v7+///////////+/v7+//////7+/v7//////v7+/v/////+ + /v7+///////////+/v7+//////7+/v7//////v7+/v/////+/v7+//////7+/v7///////////7+/v7/ + /////v7+/v/////+/v7+//////7+/v7//////v7+/29vb/4+Pj60TExMXUJCQv/q6ur+//////7+/v7/ + //////////7+/v7//////v7+/v/////+/v7+iIiI/zk5OdEAAAAAPz8/yH5+fv//////4uLi/z4+Pv9L + S0tSSEhIEDo6Ouujo6P///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////+/v7/09PT/9HR0eJRUVFh09PT//7+/v///////////////////////////// + ////////////////////bW1t/0tLS7AAAAAAQ0NDnV1dXf78/Pz//Pz8/k5OTv9GRkaQAAAAAD09PcV2 + dnb+//////7+/v7//////v7+/v/////+/v7+///////////+/v7+//////7+/v7//////v7+/v/////+ + /v7+///////////+/v7+//////7+/v7//////v7+/v/////+/v7+///////////+/v7+//////7+/v7/ + /////v7+/v/////+/v7+//////7+/v7///////////7+/v7//////v7+/v/////+/v7+//////7+/v7/ + ////4uLi/zk5Of5OTk5TQEBAu3Fxcf/+/v7+//////7+/v7///////////7+/v7//////v7+/v/////9 + /f3+S0tL/01NTYYAAAAAR0dHa0JCQv/w8PD//////4GBgf87OzvTUVFRAkFBQYRMTEz/9PT0//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////ra2t/zo6OvZU + VFQmOjo67p+fn//////////////////////////////////////////////////j4+P/PDw8/1ZWVlMA + AAAATExMMDk5Of7Jycn//v7+/ry8vP85OTn+UFBQKUlJSTg5OTn+xsbG//7+/v7//////v7+/v/////+ + /v7+///////////+/v7+//////7+/v7//////v7+/v/////+/v7+///////////+/v7+//////7+/v7/ + /////v7+/v/////+/v7+///////////+/v7+//////7+/v7//////v7+/v/////+/v7+//////7+/v7/ + //////////7+/v7//////v7+/v/////+/v7+//////7+/v7+/v7/bGxs/z8/P8JOTk5GOTk5/tXV1f/+ + /v7+//////7+/v7///////////7+/v7//////v7+/v////+2trb+Ojo691tbWyEAAAAAT09PBTo6OueS + kpL///////Hx8f9ISEj/REREh1JSUgE6OjrbfHx8//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////u7u7/eXl5/3t7e//y8vL///////////// + ///////////////////////////////h4eH/QEBA/kxMTGlDQ0OZUlJS//n5+f////////////////// + //////////////////////////////9/f3//Pj4+0llZWQIAAAAAAAAAAEFBQaFWVlb//Pz8/v////+H + h4f+Ojo64lJSUg1GRkZ3QEBA/+bm5v7//////v7+/v/////+/v7+///////////+/v7+//////7+/v7/ + /////v7+/v/////+/v7+///////////+/v7+//////7+/v7//////v7+/v/////+/v7+///////////+ + /v7+//////7+/v7//////v7+/u7u7v9jY2P+Ojo6/zk5Of5oaGj/8fHx//7+/v7//////v7+/v/////+ + /v7+//////7+/v6VlZX/Ojo68VJSUiM6OjrokpKS/v/////+/v7+//////7+/v7///////////7+/v7/ + /////v7+/vT09P9MTEz+TExMiAAAAAAAAAAAAAAAAExMTE88PDz+09PT///////a2tr/PT09/khISGlP + T08YOjo67I6Ojv/+/v7///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////5WVlf86Ojr/Ojo6/zo6Ov86Ojr/ZmZm//Hx8f///////////////////////////+/v7/9E + RET/REREkUlJSWc+Pj7+3d3d/////////////////////////////////////////////////8DAwP86 + Ojr+VVVVMwAAAAAAAAAAAAAAAE9PTww7OzvljY2N/v/////+/v7+dXV1/zs7O+JVVVUIQkJChUJCQv7g + 4OD//v7+/v/////+/v7+///////////+/v7+//////7+/v7//////v7+/v/////+/v7+///////////+ + /v7+//////7+/v7//////v7+/v/////+/v7+///////////+/v7+//////7+/v7//////v7+/ri4uP87 + Ozv+Ojo6/zk5Of46Ojr/Ojo6/2hoaP7y8vL//v7+/v/////+/v7+/////5CQkP46OjrwUlJSJzs7O9py + cnL//v7+/v/////+/v7+//////7+/v7///////////7+/v7//////v7+/nR0dP8+Pj7SXFxcAgAAAAAA + AAAAAAAAAAAAAABFRUWLR0dH/+/v7///////2tra/0BAQP9ERER/UlJSEDs7O+NxcXH//Pz8//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////7+/v+srKz/PDw8/zo6Ov86 + Ojr/Ojo6/zo6Ov9mZmb/8PDw////////////1NTU/z8/P/9GRkaASkpKaT09Pf/S0tL///////////// + ////////////////////////////////////3t7e/z4+Pv9QUFBpAAAAAAAAAAAAAAAAAAAAAAAAAABP + T08lOjo696SkpP///////v7+/4+Pj/86OjryUVFRK0pKSlk7Ozv8r6+v//7+/v////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////+/v7/qamp/zw8PP86Ojr/Ojo6/zo6Ov86 + Ojr/bW1t//v7+//39/f/X19f/z09PdhTU1MiOjo65Xx8fP/9/f3///////////////////////////// + ///////////////+/v7/hoaG/zs7O+VbW1sRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQkJCpE5OTv/y + 8vL+//////T09P9TU1P+PT09ylVVVQpBQUGhQkJC/tbW1v/+/v7+///////////+/v7+//////7+/v7/ + /////v7+/v/////+/v7+///////////+/v7+//////7+/v7//////v7+/v/////+/v7+///////////+ + /v7+//////7+/v7//////v7+/v/////+/v7+/v7+/6ysrP47Ozv/Ojo6/zk5Of46Ojr/Q0ND/vPz8/+I + iIj+Ojo69FBQUDxCQkKmRUVF/+bm5v7//////v7+/v/////+/v7+//////7+/v7///////////7+/v7e + 3t7/QEBA/ktLS3sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUFBQKjo6OvacnJz//v7+///////M + zMz/QEBA/kNDQ5JUVFQTPT09z1NTU//l5eX///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////7+/v+pqan/PT09/zo6Ov8/Pz//t7e3/6ampv87Ozv9SUlJb0pKSl86 + Ojr9rq6u//////////////////////////////////////////////////39/f93d3f/Ojo64ltbWw8A + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAERERJJDQ0P+5OTk///////+/v7+paWl/zk5OfxJ + SUltVVVVIzo6OuFcXFz+6+vr///////+/v7+//////7+/v7//////v7+/v/////+/v7+///////////+ + /v7+//////7+/v7//////v7+/v/////+/v7+///////////+/v7+//////7+/v7//////v7+/v/////+ + /v7+//////7+/v7+/v7/ra2t/19fX/65ubn/rq6u/j09Pf5AQECSUlJSODk5OfB9fX3//Pz8//7+/v7/ + /////v7+/v/////+/v7+//////7+/v7//////////7+/v/48PDz9UlJSYQAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAFRUVBU6Ojric3Nz//v7+////////Pz8/4mJif86Ojr5S0tLXVBQUDM6 + OjrmV1dX/97e3v////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////r6+v+kpKT/PT09/kBAQJ5PT08rOzs75F5eXv/09PT///////////////////////////// + ////////////////////7u7u/09PT/9BQUG7XFxcAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAABMTExUOzs7/aysrP/+/v7+//////n5+f57e3v/OTk5+ExMTGNRUVEpPT093EpKSv/F + xcX+//////7+/v7//////v7+/v/////+/v7+///////////+/v7+//////7+/v7//////v7+/v/////+ + /v7+///////////+/v7+//////7+/v7//////v7+/v/////+/v7+//////7+/v7/////9vb2/4WFhf47 + Ozv9QEBAkE9PTys7OzvdU1NT/+Xl5f7///////////7+/v7//////v7+/v/////+/v7+//////7+/v78 + /Pz/e3t7/zk5Oe1aWlomAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAQUFBn0BAQP/X19f////////////5+fn/gYGB/zo6OvtDQ0OBV1dXHT8/P7k9PT3/j4+P//Ly8v// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////Q0ND/W1tb/zo6OvNJSUlqU1NTODs7O+VT + U1P/4+Pj//////////////////////////////////////////////////////+ioqL/Ojo6/FFRUVsA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAV1dXEDs7O9BV + VVX+6+vr//7+/v7/////+vr6/pWVlf87Ozv+Pz8/rVdXVxtFRUV+Ojo691RUVP63t7f//Pz8/v/////+ + /v7+///////////+/v7+//////7+/v7//////v7+/v/////+/v7+///////////+/v7+//////7+/v7/ + /////v7+/v/////+/v7+6urq/4eHh/4+Pj7/PT0901BQUDVKSkpgOTk58F5eXv/l5eX+//////7+/v7/ + //////////7+/v7//////v7+/v/////+/v7+/////8LCwv49PT3/R0dHkAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFZWViQ8PDzqY2Nj//Pz8/// + //////////7+/v+8vLz/SEhI/zo6OudNTU1TUFBQLj8/P7c6Ojr8WVlZ/7CwsP/w8PD///////////// + /////////////////////////////////////////////////////////////////////f39/9ra2v+K + ior/QUFB/zo6OuxJSUl1UlJSIEJCQqY6Ojr9fn5+//X19f////////////////////////////////// + ////////////////////ysrK/0JCQv8/Pz+uX19fBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABPT08/Ojo68m1tbf/z8/P///////////// + ////4eHh/25ubv86Ojr8QEBAtFBQUDNMTExEQEBAuTo6OvpISEj/f39//7m5uf/q6ur/+/v7//7+/v// + ///////////////////////////////9/f3/+Pj4/9XV1f+goKD/Y2Nj/z4+Pv46OjrqR0dHg1FRUR9K + SkptOjo650dHR/+wsLD//Pz8//////////////////////////////////////////////////7+/v/N + zc3/R0dH/z4+Pr9dXV0NAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATk5ORzk5OfNra2v/7+/v/v/////+/v7+//////7+/v+2 + trb+VFRU/zk5OfpAQECrUlJSPk9PTyxFRUWEPDw80jo6Ovo6Ojr+UFBQ/21tbf6EhIT/lJSU/pSUlP+U + lJT+jo6O/3x8fP9iYmL+Q0ND/zk5Of46OjrtPz8/sktLS1tUVFQdSUlJazs7O9o9PT3/fn5+/+fn5/7/ + /////v7+/v/////+/v7+//////7+/v7///////////7+/v7//////v7+/r6+vv9CQkL+Pz8/vF5eXg4A + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAE5OTkg6OjruX19f/+Tk5P//////////////////////9PT0/6mpqf9V + VVX/Ojo6/Dw8PNBFRUV8T09PMFFRUSlLS0tZRkZGiT8/P7E8PDzLPDw83Tw8PN08PDzdPDw81zw8PMFE + RESfRkZGdU9PT0JTU1MfTU1NSkNDQ546OjrrPj4+/nV1df/W1tb//f39//////////////////////// + ///////////////////////////////8/Pz/pKSk/z8/P/5AQECxXV1dDgAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAABSUlI1PDw84k1NTf/IyMj+/v7+///////+/v7+//////7+/v75+fn/wMDA/nl5ef9E + RET+Ojo6/jo6OuBBQUGrR0dHe0tLS1ZSUlI7VlZWLFdXVylXV1cpVlZWMU1NTURLS0tmRUVFjT09PcA6 + OjrxOTk5/lZWVv+UlJT+39/f//7+/v7///////////7+/v7//////v7+/v/////+/v7+//////7+/v7/ + /////////+7u7v57e3v/OTk5/EdHR45hYWEGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAVlZWHUFBQcA+Pj7+lpaW//X19f////////////////////////////7+/v/y8vL/wcHB/5GRkf9m + Zmb/S0tL/0BAQP86Ojr/Ojo6+zo6Ovs6Ojr7Ojo6/Tw8PP9ERET/UlJS/3d3d/+ioqL/19fX//r6+v// + ///////////////////////////////////////////////////////////////9/f3/xsbG/1NTU/86 + OjrsT09PXFxcXAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhYWAhI + SEiDOjo6+lxcXP/MzMz+/v7+//7+/v7//////v7+/v/////+/v7+///////////+/v7++fn5/+fn5/7a + 2tr/zMzM/szMzP/MzMz+0dHR/9/f3//u7u7+/f39//7+/v7//////v7+/v/////+/v7+//////7+/v7/ + //////////7+/v7//////v7+/v/////+/v7+/////+jo6P5+fn7/PDw8/kBAQL9YWFgnAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVFRUNz4+Psg8 + PDz/eHh4/93d3f/+/v7///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////q6ur/lZWV/0NDQ/87OzvmUFBQZ1xcXAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFdXVwZNTU1nOzs75UBAQP56 + enr/0tLS/v7+/v/+/v7+///////////+/v7+//////7+/v7//////v7+/v/////+/v7+///////////+ + /v7+//////7+/v7//////v7+/v/////+/v7+//////7+/v7///////////7+/v7/////39/f/oyMjP9H + R0f+Ojo680pKSotbW1sUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWlpaCU5OTnE9PT3aOjo6/15eXv+l + paX/4+Pj//39/f////////////////////////////////////////////////////////////////// + ///////////////////////////////9/f3/5eXl/62trf9nZ2f/Ojo6/zo6OuVJSUmGXV1dFgAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYWFgKUFBQUkBAQLI6Ojr3Pz8//19fX/+R + kZH/v7+//+fn5//6+vr//f39/////////////////////////////////////////////f39//r6+v/m + 5ub/v7+//5GRkf9gYGD/QEBA/zo6OvhBQUG5T09PW1xcXA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABWVlYXTk5OXkVFRaY5OTnfOjo6/Tk5Of5I + SEj/YWFh/nV1df+FhYX+k5OT/5SUlP+UlJT+kZGR/4WFhf50dHT/X19f/kZGRv85OTn+Ojo6/D09Pd5H + R0elUVFRX1tbWxcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVVVUIVlZWI1RUVFJLS0t7Tk5Onj4+Prg9 + PT3MPT093D4+Pt0+Pj7dPj4+2T09Pcg+Pj60T09PmU5OTndaWlpNWVlZIFtbWwcAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////8AAAD///////////8AAAD/ + //////////8AAAD///////////8AAAD///////////8AAAD///////////8AAAD///////////8AAAD/ + ///gAf////8AAAD///8AAD////8AAAD///gAAA////8AAAD//+AAAAP///8AAAD//8AAAAD///8AAAD/ + /wAAAAB///8AAAD//gAAAAA///8AAAD//AAAAAAf//8AAAD/+AAAAAAP//8AAAD/8AAAAAAH//8AAAD/ + 8AAAAAAD//8AAAD/4AAAAAAD//8AAAD/wAAAAAAB//8AAAD/wAAAAAAA//8AAAD/gAAAAAAA//8AAAD/ + gAAAAAAAf/8AAAD/gAAAAAAAf/8AAAD/AAAAAAAAf/8AAAD/AAAAAAAAP78AAAD/AAAAAAAAPAcAAAD+ + AAAAAAAAMAEAAAD+AAAAAAAAIAEAAADGAAAAAAAAIAAAAACCAAAAAAAAIAAAAAACAAAAAAAAAAAAAAAC + AAAAAAAAAAAAAAACAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACA + AAAAAAAAAAAAAACBAAAAAAAAAAAAAACAAAAAAAAAAAAAAACAAAAAAAAAAAAAAACAAAAAAAAAAAAAAADA + AAAAAAAAAAEAAADAAAAAAAAAAAEAAADAAAAAAAAAAAEAAADgAAAAAAAAAAMAAADgAAAAAAAAAAMAAADw + AAAAAAAAAAcAAADwAAAAAAAAAAcAAAD4AAAAAAAAAA8AAAD4AAAAAAAAAA8AAAD8AAAAAAAAAB8AAAD+ + AAAAAAAAAD8AAAD+AAAAAAAAAH8AAAD/AAAAAAAAAH8AAAD/gAAAAAAAAP8AAAD/wAAAAAAAAf8AAAD/ + 4AAAAAAAA/8AAAD/8AAAAAAAB/8AAAD/+AAAAAAAD/8AAAD//AAAAAAAP/8AAAD//wAAAAAAf/8AAAD/ + /4AAAAAB//8AAAD//+AAAAAH//8AAAD///gAAAAf//8AAAD///8AAAD///8AAAD////gAAf///8AAAD/ + //////////8AAAD///////////8AAAD///////////8AAAD///////////8AAAD///////////8AAAAo + AAAAQAAAAIAAAAABACAAAAAAAABCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEdHRxJK + Sko3Q0NDTUVFRV5GRkZfREREUkpKSj1HR0ceSkpKAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE1NTRBI + SEhfQ0NDpzo6OuQ6Ojr/Ojo6/0NDQ/9QUFD/UlJS/0dHR/86Ojr/Ojo6/zo6OvBCQkK3SUlJc0tLSyIA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAASkpKNUBAQKU6Ojr4R0dH/35+fv+wsLD/19fX//X19f//////////////////////+vr6/+Dg4P+7 + u7v/jY2N/1RUVP86Ojr+Pz8/wkpKSlRQUFACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAABPT08mPj4+sjo6Ov9vb2//wMDA//v7+/////////////////////////////////// + ////////////////////////////////////1dXV/4aGhv8+Pj7/PDw81E5OTkgAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAE9PTwNERER5Ojo6+Glpaf/T09P///////////////////////////// + ////////////////////////////////////////////////////////////////////6+vr/4aGhv87 + Ozv/QUFBqVRUVBEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBQUBM+Pj6+RERE/7S0tP/+/v7///////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////09PT/1hYWP89PT3iUVFRNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFRUVCM8PDzcXFxc/+Tk5P// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////29vb/fX19/zo6OvVUVFRMAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFRUVCI8 + PDzjbGxs//Pz8/////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////7+/v+U + lJT/Ojo6+VVVVU0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAFBQUBI8PDzabGxs//f39/////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////5aWlv86Ojr3U1NTOgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAE5OTgJBQUG5Wlpa//Pz8/////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////g4OD/zo6OudXV1cXAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABJSUl0Q0ND/+Dg4P////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////j4+P9e + Xl7/QkJCt1RUVAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOTk4gOjo69qysrP// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////3d3d/z8/P/9OTk5aAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAQ0NDpmNjY//9/f3///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////+Xl5f/PT095FVVVQkAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAATk5OKTo6Ov3Nzc3///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////8vLy/0dHR/9J + SUltAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEJCQphlZWX///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////+ampr/PT093FRUVAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEpKSgk6Ojryt7e3//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////6Ojo/zw8PP9SUlJAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABI + SEhQQEBA//X19f////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////9sbGz/SUlJlQAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAREREl3Nzc/////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////p6en/zo6OtsAAAAAAAAAAAAAAAAAAAAATk5OI0NDQ4hAQEC9Pz8/x0JCQqRLS0tRUFBQAgAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADw8PNKjo6P///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////9fX1/86Ojr/UVFRFwAAAAAAAAAASEhIdzo6OvpfX1//lZWV/6Ghof97 + e3v/Pj4+/z8/P8JWVlYUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEdHRwY6Ojr7ycnJ//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////7+/v/PT09/1BQUEMAAAAASEhIbz4+Pv+1 + tbX//////////////////////+Tk5P9cXFz/PDw8z1lZWQgAAAAATk5OGUBAQHpAQEByUFBQDQAAAABF + RUUjOjo6/+bm5v////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////1VVVf9M + TExnRkZGFjo6Ovarq6v/////////////////////////////////7Ozs/0hISP9KSkp1SUlJCjw8POFW + Vlb/Tk5O/zw8PMYAAAAAR0dHOjo6Ov/5+fn///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////9oaGj/TU1NfUNDQ21OTk7/+/v7//////////////////////////////////////+b + m5v/PT091EhISDw6Ojr/9fX1/9ra2v86Ojr/R0dHHEZGRkM8PDz///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////dXV1/0JCQo1BQUGafHx8//////////////////////// + ////////////////////zc3N/zo6Ov1KSko/Ojo6///////o6Oj/Ojo6/01NTSJDQ0NFPT09//////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////3Z2dv9DQ0OPQ0NDn4SEhP// + /////////////////////////////////////////9fX1/86Ojr/TExMNzo6Ov/39/f/9fX1/zo6Ov9T + U1M0RkZGPDo6Ov/7+/v///////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////9p + aWn/Tk5Of0NDQ66Ojo7////////////////////////////////////////////Nzc3/Ojo6/0hISCU6 + Ojr/6Ojo//////9DQ0P/TU1NT0RERCc6Ojr/6enp//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////WFhY/01NTWk+Pj7EnZ2d//////////////////////////////////////// + ////v7+//zo6Ou9HR0cJOjo6/9DQ0P//////Xl5e/0tLS3VISEgHOjo6/M3Nzf////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////+/v7/z4+Pv9PT09JOjo64rS0tP////////////////// + /////////////////////////6qqqv86OjrVAAAAADo6OuOzs7P//////4ODg/9FRUWoAAAAADo6Otem + pqb///////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////9zc3P86Ojr/Tk5OKjo6Ov/T + 09P///////////////////////////////////////////+Ojo7/SkpKsgAAAABCQkK3jo6O//////+v + r6//Ojo6509PTwFAQECfeHh4//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////+s + rKz/Ojo641FRUUU9PT3/9/f3////////////////////////////////////////////aWlp/09PT4YA + AAAAR0dHgmRkZP//////5ubm/zo6Ov9NTU0yRkZGWERERP/5+fn///////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////cXFx/0ZGRpxHR0eJZmZm//////////////////////////////////////// + ////+/v7/0FBQf9UVFRRAAAAAEtLS0M9PT3/8vLy//////9hYWH/R0dHik5OTg46Ojr2vr6+//////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////X19f/ycnJ//////// + ////////////////////////////////////7u7u/z09Pf9RUVFJPDw815+fn/////////////////// + /////////////////////////8/Pz/86Ojr9WVlZEwAAAABMTEwIOjo687u7u///////q6ur/zo6OulR + UVEHQUFBpG5ubv////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////////////////////D + w8P/Pj4+/zo6Ov+ioqL//////////////////////////////////////6Kiov86OjrkTk5ONzo6Ov/h + 4eH///////////////////////////////////////////+UlJT/QUFByAAAAAAAAAAAAAAAAEFBQal5 + eXn///////Pz8/9ERET/SUlJZEpKSjU6Ojr/19fX//////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////p6en/Pj4+/zo6Ov86Ojr/Ojo6/6Kiov////////////////////////////j4+P9N + TU3/SEhIeUJCQp5paWn////////////////////////////////////////////9/f3/UVFR/0xMTHUA + AAAAAAAAAAAAAABLS0tOPz8//+/v7///////lpaW/zw8POBWVlYHPT09tW1tbf////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////7u7u/0pKSv86Ojr/Ojo6/zo6Ov86Ojr/oqKi//////// + //////////////+hoaH/Ojo661FRUSw6Ojr5v7+///////////////////////////////////////// + ////ycnJ/zo6OvxbW1saAAAAAAAAAAAAAAAAT09PBDo6OuShoaH///////Hx8f9HR0f/RkZGeE9PTys6 + Ojr7u7u7//////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////c3Nz/SkpK/zo6Ov86 + Ojr/Ojo6/zo6Ov+ioqL////////////l5eX/QkJC/0pKSmpDQ0OdXV1d//39/f////////////////// + /////////////////////////3R0dP9ERESuAAAAAAAAAAAAAAAAAAAAAAAAAABHR0d4TU1N//j4+P// + ////r6+v/zo6OvZSUlIlREREhEhISP/p6en///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////9zc3P9KSkr/Ojo6/zo6Ov86Ojr/Ojo6/729vf/8/Pz/aWlp/z8/P8dPT087Ojo6/cjIyP// + /////////////////////////////////////////9nZ2f86Ojr/VVVVOQAAAAAAAAAAAAAAAAAAAAAA + AAAAUlJSDzo6Ou+oqKj///////7+/v9sbGz/PDw8zFdXVw08PDzJZWVl//j4+P////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////3Nzc/0pKSv86Ojr/Ojo6/zo6Ov+9vb3/lJSU/zo6OvBS + UlIsPDw813x8fP////////////////////////////////////////////////9ycnL/QEBAugAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABISEh0R0dH//Hx8f//////6+vr/0tLS/9AQECcVlZWHDw8POZ6 + enr//Pz8//////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////////////////////c3Nz/SkpK/zo6Ov+i + oqL/q6ur/zo6OvxQUFBLQUFBoE5OTv/w8PD////////////////////////////////////////////F + xcX/Ojo6/VhYWC8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVFRUBzw8PNqGhob////////////Q + 0ND/Pj4+/0dHR31QUFAuOjo68Hx8fP/6+vr///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////+fn5//R0dH/q6ur/zo6Ov5HR0dkR0dHdT4+Pv/S0tL///////////////////////////// + ///////////////09PT/UVFR/0ZGRpQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABO + Tk5AOjo6/sbGxv///////////729vf88PDz/R0dHeVFRUTE6Ojrpampq/+7u7v////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////7+/v/kZGR/zo6OvxHR0djR0dHaDo6Ov64uLj///////////// + ////////////////////////////////////g4OD/z09Pd9cXFwNAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAERERJFLS0v/6+vr////////////ubm5/z4+Pv9DQ0OSVVVVIzw8PNFO + Tk7/x8fH//////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////i4uL/ZmZm/zo6Ou5QUFBHR0dHdjo6Ov6u + rq7/////////////////////////////////////////////////srKy/zo6OvtWVlY6AAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABXV1cHPDw8ymVlZf/4+Pj////////////J + ycn/RkZG/z4+Pr1VVVUhQ0NDlDo6Ov59fX3/5OTk//////////////////////////////////////// + //////////////////////////////////////////////////////////X19f+ampr/QEBA/z8/P8BS + UlIqQUFBoD4+Pv+4uLj/////////////////////////////////////////////////z8/P/z4+Pv9M + TExuAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFdXVxw9 + PT3menp6//z8/P///////////+Li4v9fX1//Ojo67ExMTFxOTk48PDw8yz09Pf+BgYH/1NTU//////// + ////////////////////////////////////////////////////////////////////5+fn/5mZmf9J + SUn/Ojo65k1NTWFPT086PDw8109PT//T09P///////////////////////////////////////////// + ////2tra/0VFRf9DQ0OWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAUVFRLzo6OvB/f3///Pz8////////////+fn5/5mZmf8+Pj7/Pj4+wk5OTjpO + Tk5NPj4+vzo6Ov5WVlb/kpKS/8PDw//q6ur/////////////////////////////////9PT0/87Ozv+g + oKD/aGho/zs7O/88PDzbSkpKbFFRUSZDQ0OgOjo6/oCAgP/w8PD///////////////////////////// + ////////////////////1tbW/0pKSv9DQ0OkXFxcAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABRUVE2Ojo68Ht7e//5+fn///////////// + ////4eHh/3h4eP86Ojr/Pj4+wk5OTlVNTU0rR0dHeT4+PsE6Ojr3Ojo6/0NDQ/9YWFj/X19f/19fX/9b + W1v/SkpK/zo6Ov86Ojr9PDw800VFRY1QUFA7Tk5OOEJCQqE6Ojr5X19f/8rKyv////////////////// + ////////////////////////////////////yMjI/0RERP9DQ0OkXV1dAwAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUTA6 + OjrnZ2dn/+zs7P//////////////////////2tra/4ODg/9AQED/Ojo68EBAQKRLS0tfUFBQKVJSUi5L + S0tQTExMaE1NTW9NTU1vTExMbExMTFdTU1M2UFBQIU1NTUtERESNPDw83Do6Ov9ra2v/wsLC//7+/v// + ///////////////////////////////////////////////+/v7/paWl/zw8PP9JSUmKXFxcAQAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAWFhYHjw8PM5OTk7/y8vL////////////////////////////8/Pz/7e3t/96 + enr/SEhI/zo6Ov86Ojr0Ojo60kNDQ7pDQ0OvQ0NDr0NDQ7U8PDzJOjo66jo6Ov8/Pz//aWlp/6Kiov/k + 5OT////////////////////////////////////////////////////////////s7Oz/c3Nz/zo6OvZO + Tk5eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABZWVkIRUVFlzo6Ov+Li4v/8/Pz//////// + //////////////////////////7+/v/j4+P/wsLC/6ioqP+Xl5f/kJCQ/5CQkP+Tk5P/oqKi/7m5uf/Y + 2Nj/+fn5//////////////////////////////////////////////////////////////////39/f+x + sbH/SEhI/z09Pc9YWFgpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQ + UFBJPT094EtLS/+vr6//+/v7//////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////8fHx/9hYWH/Ojo69UxMTHldXV0FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAFZWVglKSkp/Ojo681RUVP+srKz/9fX1//////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////6+vr/u7u7/2NjY/86Ojr7R0dHnllZWRsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFlZWRNLS0uFOjo67URERP+G + hob/ysrK//v7+/////////////////////////////////////////////////////////////////// + ////////////////////+/v7/87Ozv+NjY3/SkpK/zo6OvRHR0eWWlpaIwAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAFVVVQpOTk5dQEBAuzo6OvxERET/dHR0/6Ghof/IyMj/5+fn//39/f////////////////// + ///////////////8/Pz/5eXl/8bGxv+hoaH/dHR0/0VFRf86Ojr8QUFBvU5OTmVcXFwNAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABVVVURUlJSV0ZGRpg9PT3ROjo6+jo6Ov89 + PT3/Tk5O/1tbW/9fX1//X19f/1lZWf9NTU3/PT09/zo6Ov86Ojr4Pj4+zUxMTJZVVVVWWVlZEgAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAFVVVQVWVlYmVVVVRlFRUVtUVFRsVlZWb1ZWVm9UVFRpUlJSWFZWVkJYWFgiXFxcBAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////////////// + /////////////////////////////////////////////4A////////4AAf//////+AAAP//////gAAA + f/////4AAAAf/////AAAAA/////4AAAAB/////AAAAAD////4AAAAAH////AAAAAAP///8AAAAAAf/// + gAAAAAB///+AAAAAAD///wAAAAAAP///AAAAAAAf//4AAAAAAB///gAAAAAAH//+AAAAAAAeA/4AAAAA + AAwB/AAAAAAACACEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAIIAAAAAAAAAgAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAAHAAAAAAAAAAcAAAAAA + AAABwAAAAAAAAAPgAAAAAAAAA+AAAAAAAAAH8AAAAAAAAAfwAAAAAAAAD/gAAAAAAAAP/AAAAAAAAB/8 + AAAAAAAAP/4AAAAAAAB//wAAAAAAAH//gAAAAAAA///AAAAAAAH//+AAAAAAB///8AAAAAAP///8AAAA + AB////4AAAAAf////4AAAAH/////4AAAB//////8AAA////////AA/////////////////////////// + ////////////////////KAAAADAAAABgAAAAAQAgAAAAAACAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAQkJCBUJCQg9CQkINQ0NDAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABG + RkYpRkZGdEFBQbA8PDzcPz8/8UtLS/ZISEj1PT097jw8PNBERESgR0dHX0hISBMAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABG + RkYER0dHWD4+PslaWlr+l5eX/8nJyf/t7e3//v7+/////////////Pz8/+Pj4/+7u7v/hoaG/0pKSvhC + QkKpTExMNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAEpKSjc+Pj7Kb29v/s7Ozv/9/f3+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+ + /v7+/v7+/vf39/+0tLT+VlZW/ERERKFPT08XAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAABISEgBRkZGdk9PT/nDw8P+/f39/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+ + /v7+/v7+/v/////+/v7+/v7+/v/////+/v7++Pj4/p2dnf9AQEDkT09PQAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAEtLSwRFRUWdbW1t/+/v7/////////////////////////////////// + ///////////////////////////////////////////////////////////////T09P/Tk5O+VFRUVkA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASEhIAUVFRZx4eHj++Pj4//7+/v7+/v7+/v7+/v/////+ + /v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+ + /v7+4+Pj/1FRUflQUFBVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAR0dHcmtra/74+Pj///////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////9/f3/9JSUnzUVFRMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMTEwzTU1N+O3t7f/+ + /v7+//////7+/v7+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+ + /v7+/v7+/v/////+/v7+/v7+/v/////+/v7+//////7+/v7Dw8P+QEBA1lBQUAgAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEdHRwI/ + Pz/Fvr6+/v/////+/v7+//////7+/v7+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+ + /v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+//////7+/v7+/v7+hISE/0pKSnwA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAElJSU1ra2v+/f39/v/////+/v7+//////7+/v7+/v7+/v7+/v/////+/v7+/v7+/v/////+ + /v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+//////7+/v7+ + /v7+6+vr/0JCQu5OTk4SAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAD8/P7/Hx8f///////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////4yMjP9LS0tzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARkZGH1NTU/37+/v+/v7+/v/////+/v7+//////7+/v7+ + /v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+ + /v7+/v7+/v/////+/v7+//////7+/v7+/v7+/////9nZ2f4/Pz/PSkpKAQAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARUVFaI+Pj//+/v7+/v7+/v/////+ + /v7+//////7+/v7+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+ + /v7+/v7+/v/////+/v7+/v7+/v/////+/v7+//////7+/v7+/v7+//////z8/P5VVVX8Tk5OHgAAAAAA + AAAASUlJFENDQ25AQECVREREgElJSS8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQkJCo7+/v/// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////+E + hIT/TExMVwAAAABNTU1KQ0ND7o+Pj/+3t7f/oqKi/1RUVPxHR0eFTU1NAQAAAABBQUENPj4+HQAAAAAA + AAAAPDw8zuLi4v/+/v7+/v7+/v/////+/v7+//////7+/v7+/v7+/v7+/v/////+/v7+/v7+/v/////+ + /v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+//////7+/v7+ + /v7+//////7+/v6np6f+SEhIgEVFRSFGRkbx2dnZ//7+/v7+/v7+//////Pz8/5mZmb+TU1NYUhISCdB + QUHpT09P/EdHR3cAAAAAPDw86Pn5+f/+/v7+/v7+/v/////+/v7+//////7+/v7+/v7+/v7+/v/////+ + /v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+ + /v7+//////7+/v7+/v7+//////7+/v69vb3+SEhIm0FBQYaenp7+//////7+/v7+/v7+//////7+/v7Y + 2Nj+Pz8/1ERERG2Wlpb/5ubm/zw8PNVJSUkDPj4+8P////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////////////////Jycn/QEBAqj8/P7TPz8////////////// + ///////////////9/f3/SUlJ/UdHR26ampr+8vLy/j09Pd8AAAAAPDw87/7+/v/+/v7+/v7+/v/////+ + /v7+//////7+/v7+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+ + /v7+/v7+/v/////+/v7+/v7+/v/////+/v7+//////7+/v7+/v7+//////7+/v7FxcX+RUVFpUBAQLzX + 19f+//////7+/v7+/v7+//////7+/v7+/v7+SUlJ/kVFRV6NjY3+/f39/kBAQPFPT08FOzs73/Hx8f/+ + /v7+/v7+/v/////+/v7+//////7+/v7+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+ + /v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+//////7+/v7+/v7+//////7+/v62 + trb+SEhIkz4+Ps/k5OT+//////7+/v7+/v7+//////7+/v75+fn+Q0ND9UREREF2dnb//////1paWvxM + TEwgPj4+vdXV1f////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////+ZmZn/SkpKcUFBQe709PT////////////////////////////r6+v/Pz8/20VFRRxX + V1f9/f39/oCAgP9JSUlVQEBAjaysrP/+/v7+/v7+/v/////+/v7+//////7+/v7+/v7+/v7+/v/////+ + /v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+ + /v7+//////7+/v7+/v7+//////7+/v5xcXH+SkpKX1hYWP7+/v7+//////7+/v7+/v7+//////7+/v7O + zs7+RkZGtURERAQ/Pz/j7+/v/rS0tP9DQ0ObR0dHTHZ2dv/+/v7+/v7+/v/////+/v7+//////7+/v7+ + /v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+ + /v7+/v7+/v/////+/v7+//////7+/v7+/v7+//////T09P5FRUXxSkpKaoaGhv7+/v7+//////7+/v7+ + /v7+//////7+/v6lpaX+TU1NgwAAAABCQkKpv7+//+7u7v9CQkLpUFBQEkFBQe/u7u7///////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////e3t7/oqKi//n5+f///////////////////////////7q6uv9DQ0OqQkJCrb+/v/// + //////////////////////////////9xcXH/UVFRRAAAAABHR0degoKC/v////98fHz+SUlJX0NDQ5Ki + oqL+/v7+/v/////+/v7+//////7+/v7+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+ + /v7+/v7+/v/////+/v7+/v7+/uLi4v9MTEz+OTk5/nZ2dv/4+Pj+//////7+/v7+/v7+/v7+/2ZmZv5K + SkpeR0dH9fj4+P7+/v7+//////7+/v7+/v7+//////Dw8P5DQ0PtUlJSCgAAAABISEgSRUVF8/b29v/T + 09P+Pz8/109PTyVKSkr28fHx/v/////+/v7+//////7+/v7+/v7+/v7+/v/////+/v7+/v7+/v/////+ + /v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/sbGxv86Ojr+OTk5/jo6Ov92dnb++fn5//7+/v7+ + /v7+x8fH/z4+PslGRkaDkpKS//7+/v7+/v7+//////7+/v7+/v7+/////6+vr/5ISEidAAAAAAAAAAAA + AAAAQ0NDoK2trf//////enp6/0hISG9ERESIiYmJ//////////////////////////////////////// + //////////////////////////////////////////////////////////7+/v+mpqb/Ozs7/zo6Ov86 + Ojr/dHR0//n5+f/19fX/V1dX/UtLS1dFRUXv6urq/////////////////////////////f39/1tbW/1T + U1M2AAAAAAAAAAAAAAAATExMLlVVVf35+fn+5+fn/kVFRfBQUFAyPj4+1MDAwP/+/v7+//////7+/v7+ + /v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+ + /v7+pqam/jo6Ov85OTn+Ojo6/7+/v/6Hh4f+RUVFlENDQ6egoKD+//////7+/v7+/v7+//////7+/v7+ + /v7+vb29/0JCQrsAAAAAAAAAAAAAAAAAAAAAAAAAAEJCQqmrq6v//////7i4uP8+Pj7NUFBQOEZGRvHW + 1tb///////////////////////////////////////////////////////////////////////////// + /////////////////////v7+/6Wlpf86Ojr/dHR0/6CgoP9AQEDHSUlJaWNjY/75+fn///////////// + ///////////////39/f/VlZW/VRUVDUAAAAAAAAAAAAAAAAAAAAAAAAAAE9PTyFHR0fy6enp/v7+/v+T + k5P+QUFBtk1NTUpJSUn00NDQ//7+/v7+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+ + /v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v7+/v/b29v+oKCg/z09PdNKSkpVSkpK9uXl5f7+ + /v7+//////7+/v7+/v7+//////7+/v6UlJT+R0dHmgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABJ + SUlvcHBw/v39/f/8/Pz+hYWF/kJCQrVNTU1LQ0ND6bCwsP79/f3+/v7+/v/////+/v7+/v7+/v/////+ + /v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+/v7+/vT09P+FhYX+QEBAxEpKSlVG + Rkbv0tLS//7+/v7+/v7+//////7+/v7+/v7+/////8nJyf5AQEDcVlZWEAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAABMTEwDQUFBspubm////////f39/5OTk/8+Pj7PT09PRj8/P8JxcXH/3t7e//////// + ///////////////////////////////////////////////////////////////+/v7/wcHB/1RUVPxF + RUWPSUlJaUpKSvbS0tL/////////////////////////////////5OTk/0pKSvVVVVU3AAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUlJSED8/P9SxsbH+/v7+/v7+/v+5ubn+R0dH9EhISHNK + SkpqPT094Hp6ev/Jycn++fn5/v/////+/v7+/v7+/v/////+/v7+/v7+/v/////+/v7+8PDw/rOzs/9h + YWH9Pj4+wk1NTVJDQ0OnZGRk/ubm5v7+/v7+//////7+/v7+/v7+//////7+/v7p6en+VVVV+09PT1YA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFRUR8/Pz/csbGx/v/////+ + /v7+5+fn/3t7e/4+Pj7WSkpKaEpKSmZAQEC7SUlJ9nV1df+YmJj+sLCw/ri4uP+3t7f+qqqq/o+Pj/9n + Z2f+QUFB60NDQ6BNTU1XRkZGg0VFRfCioqL++vr6//7+/v7+/v7+//////7+/v7+/v7+/////+Li4v5V + VVX6Tk5OYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABR + UVEgPT091Z6env/9/f3///////7+/v/V1dX/fHx8/z4+PulDQ0OZSUlJYUpKSllKSkpvR0dHi0hISJNI + SEiTR0dHhExMTGRJSUlXSkpKaUJCQrBISEj2lJSU/+zs7P////////////////////////////////// + ////y8vL/0tLS/VRUVFXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAU1NTEUJCQrZ0dHT+6urq//7+/v7+/v7+/v7+/u7u7v+xsbH+e3t7/lJSUv5A + QEDpPz8/zkBAQMNAQEDDPj4+1EJCQvNcXFz+iIiI/sLCwv/4+Pj+/v7+/v/////+/v7+//////7+/v7+ + /v7+//////j4+P6YmJj+Pz8/3VVVVTUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE9PTwNLS0t1SUlJ9K+vr/76+vr+/v7+/v/////+ + /v7+/v7+/v7+/v/y8vL+5OTk/t3d3f/d3d3+6Ojo/vf39//+/v7+/v7+/v/////+/v7+/v7+/v/////+ + /v7+//////7+/v79/f3+xcXF/1lZWfxGRkadVlZWEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUVFRJUNDQ7Fb + W1v+tbW1//n5+f////////////////////////////////////////////////////////////////// + /////////////////////Pz8/8DAwP9nZ2f/QkJCxlRUVDwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAABSUlI2REREqkpKSveNjY3+y8vL/vb29v/+/v7+/v7+/v/////+/v7+/v7+/v/////+ + /v7+/v7+/v/////+/v7+9vb2/szMzP+RkZH+Tk5O+UNDQ7NSUlJFAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE9PTxlLS0tsREREuENDQ/BlZWX+h4eH/qCgoP+w + sLD+uLi4/ri4uP+vr6/+n5+f/oWFhf9lZWX+RERE70VFRbdNTU1tU1NTHQAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE5OTglO + Tk4uTk5OWE1NTXdMTEyLTk5Ok05OTpNNTU2ITk5OdFBQUFVSUlIrUlJSCAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////wAA////////AAD///////8AAP////// + /wAA///w////AAD//wAP//8AAP/4AAP//wAA//AAAP//AAD/wAAAf/8AAP+AAAA//wAA/wAAAB//AAD/ + AAAAD/8AAP4AAAAH/wAA/AAAAAf/AAD8AAAAA/8AAPwAAAAD/wAA+AAAAAH/AAD4AAAAAYMAAPgAAAAB + AAAAmAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAEAAMAAAAAAAQAAwAAAAAADAADgAAAAAAMAAOAAAAAA + BwAA8AAAAAAHAADwAAAAAA8AAPgAAAAAHwAA/AAAAAA/AAD+AAAAAH8AAP8AAAAA/wAA/4AAAAH/AAD/ + 4AAAB/8AAP/4AAAf/wAA//4AAH//AAD//8AD//8AAP///////wAA////////AAD///////8AACgAAAAg + AAAAQAAAAAEAIAAAAAAAgBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQUFBBEJCQkFBQUF9QkJCoEtLS69E + RESjQUFBg0NDQ0pCQkIIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ0NDCUNDQ3lqamrmsLCw/+Hh4f/8 + /Pz///////39/f/m5ub/t7e3/3V1de9FRUWKR0dHEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEdHRzVdXV3bzs7O//////// + /////////////////////////////////////////9vb2/9qamrpSkpKSgAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKSkpKfn5+9vj4+P// + //////////////////////////////////////////////////////////z8/P+SkpL8TExMZAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAR0dHM319ffX9 + /f3///////////////////////////////////////////////////////////////////////////+U + lJT9S0tLTgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAENDQwhc + XFza9/f3//////////////////////////////////////////////////////////////////////// + //////////39/f9vb2/tSkpKFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAARUVFc8vLy/////////////////////////////////////////////////////////////////// + /////////////////////////+Hh4f9ISEiWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAEBAQAJmZmbi//////////////////////////////////////////////////////////// + /////////////////////////////////////////39/f/ZISEgQAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAQkJCOqqqqv////////////////////////////////////////////////// + ////////////////////////////////////////////////////xMTE/0hISFwAAAAAQ0NDCEBAQFE/ + Pz9aREREFAAAAAAAAAAAAAAAAAAAAABAQEB02tra//////////////////////////////////////// + ///////////////////////////////////////////////////////////////09PT/RkZGlkVFRRtd + XV3bvLy8/8bGxv9vb2/vTExMO0VFRUFJSUm6RkZGNUBAQJf39/f///////////////////////////// + //////////////////////////////////////////////////////////////////////////////9V + VVW4REREnunp6f////////////r6+v9bW1vRQUFBnu3t7f9CQkKPQEBAof////////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////1xcXMZhYWHO/////////////////////4aGhv5CQkKW9PT0/0dHR6A/Pz+Y+Pj4//////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////V1dXuWtra9z/////////////////////gICA+0FBQXrg4OD/XFxcxkJCQnbc + 3Nz///////////////////////////////////////////////////////////////////////////// + //////////////////////////X19f9FRUWcfn5+9/////////////////////9vb2/hQkJCTry8vP+C + goL5SUlJSq2trf////////////////////////////////////////////////////////////////// + ////////////////////////////////////x8fH/0ZGRpOmpqb//////////////////v7+/1NTU7VD + Q0MSiYmJ/MLCwv9ISEhiampq5v////////////////////////////////////////////////////// + ///////////////w8PD/hoaG/+fn5/////////////////+CgoL4RUVFld/f3//////////////////Y + 2Nj/SkpKdgAAAABRUVG9+Pj4/1hYWNBGRkZ80NDQ//////////////////////////////////////// + /////////////////////////5iYmP86Ojr/VFRU/+fn5///////5ubm/0hISKRpaWnl//////////// + /////////5SUlP5LS0skAAAAAEVFRVi5ubn/urq6/0hISHBgYGDf+fn5//////////////////////// + ////////////////////////////////////9vb2/2pqav86Ojr/VFRU/+7u7v90dHTxRUVFkMjIyP// + ///////////////19fX/UlJSuQAAAAAAAAAAQ0NDA1xcXNj7+/v/d3d38kpKSmOFhYX4/v7+//////// + ////////////////////////////////////////////////////9vb2/2pqav9UVFT/jY2N/kdHR4J+ + fn71/////////////////////5ycnP5OTk46AAAAAAAAAAAAAAAASUlJSKGhof7z8/P/YGBg3khISHKG + hob5+vr6////////////////////////////////////////////////////////////+Pj4/5KSkv5E + RESLXl5e3PPz8//////////////////d3d3/TExMoAAAAAAAAAAAAAAAAAAAAAAAAAAASEhImNLS0v/t + 7e3/ZGRk40lJSXVkZGTk19fX/////////////////////////////////////////////////+Pj4/9y + cnLvR0dHgF5eXtzq6ur/////////////////8/Pz/11dXdlOTk4OAAAAAAAAAAAAAAAAAAAAAAAAAABH + R0cHUFBQwd7e3v/39/f/i4uL+kZGRpZFRUWUc3Nz7rm5uf/r6+v/////////////////8PDw/8HBwf9+ + fn72R0dHnkZGRo5/f3/19PT0//////////////////T09P9ra2voUFBQJgAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAABISEgNUFBQwdPT0///////1dXV/3V1de9FRUWcREREj0VFRZNMTEytVlZWt09PT7BF + RUWVRUVFjkVFRZNqamrmycnJ///////////////////////o6Oj/ZGRk4VBQUCoAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAABISEgHSkpKm6SkpP/8/Pz//////+rq6v+wsLD/hoaG/G9vb+Jp + aWnXbW1t34GBgfmoqKj/4eHh///////////////////////+/v7/ubm5/1BQULtPT08XAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAS0tLTGBgYNy+vr7//Pz8//////// + ///////////////////////////////////////////////9/f3/x8fH/2pqauVMTExiSEhIAQAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASEhIBElJSV9W + VlbFkZGR/sXFxf/r6+v//v7+/////////////v7+/+rq6v/FxcX/kpKS/llZWchLS0tmS0tLCAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAABISEgaR0dHWkdHR4lMTEyoWVlZtlhYWLVMTEymSkpKh0pKSlhLS0saAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////// + /////8Af//8AB//+AAP//AAB//gAAP/wAAB/8AAAf+AAAD/gAAAh4AAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAIAAAACAAAABgAAAAcAAAAPgAAAD4AAAB/AAAA/4AAAf/gAAP/8AAP//4Af///////////8o + AAAAGAAAADAAAAABACAAAAAAAGAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/Pz8nPz8/Y0RERH9DQ0N8Pz8/XD8/PxwAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQkJCQXBwcMe7 + u7v+7e3t//7+/v/+/v7/5+fn/rGxsf1mZma2RUVFLgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAADQ0NAFQUFCFwMDA/f7+/v/+/v7+/////////////////v7+/v/////9 + /f3+rKys+E1NTWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBQUIPa + 2tr+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/sTExP1MTExeAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ0NDPr6+vv3+/v7+///////////+/v7+//////////// + /////v7+/v/////+/v7+//////////+ioqL0RkZGIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAb29vwv7+/v/+/v7+///////////+/v7+/////////////////v7+/v/////+/v7+///////////6 + +vr+WlpanQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+Pj4ht7e3/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+m5ub8kBAQAg3NzcFPj4+QD8/PysA + AAAAMDAwAzMzMwc/Pz9c5+fn///////+/v7+///////////+/v7+/////////////////v7+/v/////+ + /v7+///////////+/v7+ysrK/0ZGRj5sbGzK0dHR/7q6uv5SUlJ6WVlZn25ubtFCQkJ3/f39///////+ + /v7+///////////+/v7+/////////////////v7+/v/////+/v7+///////////+/v7+4eHh/0JCQqDa + 2tr+//////////+Xl5f0bW1tspubm/NFRUV1+/v7///////+/v7+///////////+/v7+//////////// + /////v7+/v/////+/v7+///////////+/v7+3t7e/0NDQ7Hu7u7+//////////+hoaH8VlZWlrW1tf5F + RUVw39/f/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+ + /v7+wsLC/ktLS6/8/Pz+/v7+/v7+/v6Pj4/jQUFBZNTU1P9HR0d5qamp+//////+/v7+///////////+ + /v7+/////////////////v7+/v/////f39/+/f39///////+/v7+jo6O5nR0dMX+/v7+//////////9t + bW2xQEBAHK+vr/x1dXXNYGBgq/v7+/7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/unp6f4+ + Pj7+h4eH/v39/f7w8PD+TU1NqrS0tPz+/v7+/v7+/ufn5/5JSUllAAAAAGRkZLLW1tb+SEhIhqGhofT+ + /v7+///////////+/v7+/////////////////v7+/v7+/v+hoaH+Ojo6/5mZmf+GhobkXV1du/n5+f/+ + /v7+/////5aWlu1FRUUNAAAAAERERDK2trb7oqKi8klJSYq7u7v8///////////+/v7+//////////// + /////v7+/v/////+/v7+rq6u/3x8fPRHR0ef0NDQ/v/////+/v7+4uLi/1BQUHMAAAAAAAAAAAAAAABS + UlKJ5eXl/paWluxHR0eSl5eX7/b29v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7v7+/+hISE4kdHR566 + urr7/v7+/v7+/v74+Pj+ampqwkJCQgQAAAAAAAAAAAAAAAA9PT0EYGBgs+vr6/+5ubn8U1NTrVNTU6uS + kpLrw8PD/9nZ2f/Y2Nj/vb29/oqKiuJMTEymXl5eutDQ0P7+/v7+//////f39/95eXnVSUlJFQAAAAAA + AAAAAAAAAAAAAAAAAAAAQEBACFxcXKfW1tb+9PT0/6qqqvlubm6+SUlJrERERKxDQ0OsTU1Nq3V1dcW1 + tbX8+vr6///////+/v7+4+Pj/2tra8JJSUkWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABL + S0tkkpKS6+vr6/7+/v7++/v7/u/v7/7w8PD+/f39/v7+/v7+/v7+/v7+/u7u7v6bm5vwUFBQdUJCQgQA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQ0NDDUlJSW96enrIp6en+8nJyf/Z + 2dn/2dnZ/sjIyP+np6f7fHx8yExMTHJHR0cRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBADkRERDNFRUVHRUVFR0VFRTJCQkINAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAA////AP///wD/A/8A/AD/APAAfwDwAD8A4AAfAOAAHwDAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAgAAAAIAAAQDAAAEAwAADAOAABwD4AA8A/AA/AP+B/wD///8AKAAAABAAAAAgAAAAAQAgAAAAAABA + BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgoKBExMTFHNjY2VDAwMDMh + ISECAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALCwsDWxsbJfGxsb49/f3//7+/v/n + 5+f/paWl3kxMTFEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALCwsDJCQkM39/f3///////////// + ///////////////j4+P+W1tbbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGxsbJX9/f3///////////// + /////////////////////////9PT0/o8PDwrAAAAAAAAAAAAAAAAAAAAACcnJw/Dw8P3//////////// + ////////////////////////////////////dHR0mCcnJwIqKiorIyMjBTg4OD8+Pj5Q9PT0//////// + /////////////////////////////////////////6Ojo9N0dHSl4ODg/4SEhL6ZmZnMQkJCmv39/f// + //////////////////////////////////////////////+srKzfsrKy6v/////BwcH9iIiIsVpaWqDh + 4eH/////////////////////////////////////////////////kpKSy8jIyP3/////sLCw5VZWVnOW + lpbMn5+f2P///////////////////////////////5KSkv/IyMj/+Pj4/15eXsX39/f//////4CAgKUw + MDAXsrKy9VpaWqnf39/9///////////////////////////V1dX/U1NT/42NjdyioqLg/////+Pj4/5E + REQ9AAAAAF1dXXfExMT2X19fsc3Nzfj/////////////////////+Pj4/5GRkdt6enrQ/Pz8//z8/P91 + dXWhAAAAAAAAAAAkJCQBcXFxo9XV1f11dXXGbW1txp+fn8+oqKjZj4+PyF1dXcOjo6Pg/Pz8//n5+f+F + hYW8MzMzCQAAAAAAAAAAAAAAACYmJgFfX195xsbG9uXl5f+8vLz3tbW17cnJyf339/f//v7+/8vLy/ho + aGiHLy8vBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADU1NRlcXFx3j4+PuKioqNeoqKjWkJCQt15eXng5 + OTkbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAA+D8AAOAfAADADwAAwAcAAIAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAIABAACAAQAAwAMAAPAPAAD//wAA + + + \ No newline at end of file diff --git a/Windows/Hardware/AbstractMassiveKnobHardware.cs b/Windows/Hardware/AbstractMassiveKnobHardware.cs new file mode 100644 index 0000000..f576c74 --- /dev/null +++ b/Windows/Hardware/AbstractMassiveKnobHardware.cs @@ -0,0 +1,62 @@ +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace MassiveKnob.Hardware +{ + public abstract class AbstractMassiveKnobHardware : IMassiveKnobHardware + { + protected ObserverProxy Observers = new ObserverProxy(); + + public void AttachObserver(IMassiveKnobHardwareObserver observer) + { + Observers.AttachObserver(observer); + } + + public void DetachObserver(IMassiveKnobHardwareObserver observer) + { + Observers.DetachObserver(observer); + } + + + public abstract Task TryConnect(); + public abstract Task Disconnect(); + + + public class ObserverProxy : IMassiveKnobHardwareObserver + { + private readonly List observers = new List(); + + + public void AttachObserver(IMassiveKnobHardwareObserver observer) + { + observers.Add(observer); + } + + public void DetachObserver(IMassiveKnobHardwareObserver observer) + { + observers.Remove(observer); + } + + + public void Connected(int knobCount) + { + foreach (var observer in observers) + observer.Connected(knobCount); + } + + + public void Disconnected() + { + foreach (var observer in observers) + observer.Disconnected(); + } + + + public void VolumeChanged(int knob, int volume) + { + foreach (var observer in observers) + observer.VolumeChanged(knob, volume); + } + } + } +} diff --git a/Windows/Hardware/CoreAudioDeviceManager.cs b/Windows/Hardware/CoreAudioDeviceManager.cs new file mode 100644 index 0000000..05421cb --- /dev/null +++ b/Windows/Hardware/CoreAudioDeviceManager.cs @@ -0,0 +1,82 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using AudioSwitcher.AudioApi; +using AudioSwitcher.AudioApi.CoreAudio; + +namespace MassiveKnob.Hardware +{ + public class CoreAudioDeviceManager : IAudioDeviceManager + { + private readonly Lazy audioController = new Lazy(); + private List devices; + + + public void Dispose() + { + if (audioController.IsValueCreated) + audioController.Value.Dispose(); + } + + + public async Task> GetDevices() + { + return devices ?? (devices = (await audioController.Value.GetPlaybackDevicesAsync()) + .Select(device => new AudioDevice(device) as IAudioDevice) + .ToList()); + } + + + public Task GetDeviceById(Guid deviceId) + { + return Task.FromResult(devices?.FirstOrDefault(device => device.Id == deviceId)); + } + + + private class AudioDevice : IAudioDevice + { + private readonly IDevice device; + + public Guid Id { get; } + public string DisplayName { get; } + + + public AudioDevice(IDevice device) + { + this.device = device; + Id = device.Id; + + string displayFormat; + + if ((device.State & DeviceState.Disabled) != 0) + displayFormat = Strings.DeviceDisplayNameDisabled; + else if ((device.State & DeviceState.Unplugged) != 0) + displayFormat = Strings.DeviceDisplayNameUnplugged; + else if ((device.State & DeviceState.NotPresent) != 0) + displayFormat = Strings.DeviceDisplayNameNotPresent; + else if ((device.State & DeviceState.Active) == 0) + displayFormat = Strings.DeviceDisplayNameInactive; + else + displayFormat = Strings.DeviceDisplayNameActive; + + DisplayName = string.Format(displayFormat, device.FullName); + } + + + public Task SetVolume(int volume) + { + return device.SetVolumeAsync(volume); + } + } + } + + + public class CoreAudioDeviceManagerFactory : IAudioDeviceManagerFactory + { + public IAudioDeviceManager Create() + { + return new CoreAudioDeviceManager(); + } + } +} diff --git a/Windows/Hardware/IAudioDeviceManager.cs b/Windows/Hardware/IAudioDeviceManager.cs new file mode 100644 index 0000000..1993e77 --- /dev/null +++ b/Windows/Hardware/IAudioDeviceManager.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace MassiveKnob.Hardware +{ + public interface IAudioDevice + { + Guid Id { get; } + string DisplayName { get; } + + Task SetVolume(int volume); + } + + + public interface IAudioDeviceManager : IDisposable + { + Task> GetDevices(); + Task GetDeviceById(Guid deviceId); + } + + + public interface IAudioDeviceManagerFactory + { + IAudioDeviceManager Create(); + } +} diff --git a/Windows/Hardware/IMassiveKnobHardware.cs b/Windows/Hardware/IMassiveKnobHardware.cs new file mode 100644 index 0000000..03634cb --- /dev/null +++ b/Windows/Hardware/IMassiveKnobHardware.cs @@ -0,0 +1,30 @@ +using System.Threading.Tasks; + +namespace MassiveKnob.Hardware +{ + public interface IMassiveKnobHardwareObserver + { + void Connected(int knobCount); + void Disconnected(); + + void VolumeChanged(int knob, int volume); + // void ButtonPress(int index); -- for switching the active device, TBD + } + + + public interface IMassiveKnobHardware + { + void AttachObserver(IMassiveKnobHardwareObserver observer); + void DetachObserver(IMassiveKnobHardwareObserver observer); + + Task TryConnect(); + Task Disconnect(); + // Task SetActiveKnob(int knob); -- for providing LED feedback when switching the active device, TBD + } + + + public interface IMassiveKnobHardwareFactory + { + IMassiveKnobHardware Create(string serialPort); + } +} diff --git a/Windows/Hardware/MockMassiveKnobHardware.cs b/Windows/Hardware/MockMassiveKnobHardware.cs new file mode 100644 index 0000000..99d8bf0 --- /dev/null +++ b/Windows/Hardware/MockMassiveKnobHardware.cs @@ -0,0 +1,70 @@ +using System; +using System.Threading; +using System.Threading.Tasks; + +namespace MassiveKnob.Hardware +{ + public class MockMassiveKnobHardware : AbstractMassiveKnobHardware + { + private readonly int knobCount; + private readonly TimeSpan volumeChangeInterval; + private readonly int maxVolume; + private Timer changeVolumeTimer; + private readonly Random random = new Random(); + + + public MockMassiveKnobHardware(int knobCount, TimeSpan volumeChangeInterval, int maxVolume) + { + this.knobCount = knobCount; + this.volumeChangeInterval = volumeChangeInterval; + this.maxVolume = maxVolume; + } + + + public override async Task TryConnect() + { + if (changeVolumeTimer != null) + return; + + await Task.Delay(2000); + + Observers.Connected(knobCount); + changeVolumeTimer = new Timer( + state => + { + Observers.VolumeChanged(random.Next(0, knobCount), random.Next(0, maxVolume)); + }, + null, + volumeChangeInterval, + volumeChangeInterval); + } + + + public override Task Disconnect() + { + changeVolumeTimer?.Dispose(); + return Task.CompletedTask; + } + } + + + public class MockMassiveKnobHardwareFactory : IMassiveKnobHardwareFactory + { + private readonly int knobCount; + private readonly TimeSpan volumeChangeInterval; + private readonly int maxVolume; + + public MockMassiveKnobHardwareFactory(int knobCount, TimeSpan volumeChangeInterval, int maxVolume) + { + this.knobCount = knobCount; + this.volumeChangeInterval = volumeChangeInterval; + this.maxVolume = maxVolume; + } + + + public IMassiveKnobHardware Create(string serialPort) + { + return new MockMassiveKnobHardware(knobCount, volumeChangeInterval, maxVolume); + } + } +} diff --git a/Windows/MainIcon.ico b/Windows/MainIcon.ico new file mode 100644 index 0000000000000000000000000000000000000000..b4abcb46d7a07f7ae68e4a0a5ac37a491e8d712c GIT binary patch literal 173247 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�Q#-1xVGck7JW$F_b${MaOC(sxK3dn@+Wmv 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 literal 0 HcmV?d00001 diff --git a/Windows/MassiveKnob.csproj b/Windows/MassiveKnob.csproj new file mode 100644 index 0000000..998b322 --- /dev/null +++ b/Windows/MassiveKnob.csproj @@ -0,0 +1,134 @@ + + + + + Debug + AnyCPU + {73130EC7-49B3-40AD-8367-1095C0F41905} + WinExe + MassiveKnob + MassiveKnob + v4.7.2 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + false + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + false + + + MainIcon.ico + + + MassiveKnob.Program + + + + + + + + + + + + + + + + + Form + + + SettingsForm.cs + + + + + + + + + + + + True + True + Strings.resx + + + UserControl + + + KnobDeviceControl.cs + + + SettingsForm.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + + + ResXFileCodeGenerator + Strings.Designer.cs + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + + 4.0.0-alpha5 + + + 4.0.0-alpha5 + + + 12.0.3 + + + 5.1.0 + + + 5.2.1 + + + + + + + + \ No newline at end of file diff --git a/Windows/MassiveKnob.sln b/Windows/MassiveKnob.sln new file mode 100644 index 0000000..64ec8c6 --- /dev/null +++ b/Windows/MassiveKnob.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.31005.135 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MassiveKnob", "MassiveKnob.csproj", "{73130EC7-49B3-40AD-8367-1095C0F41905}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {73130EC7-49B3-40AD-8367-1095C0F41905}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {73130EC7-49B3-40AD-8367-1095C0F41905}.Debug|Any CPU.Build.0 = Debug|Any CPU + {73130EC7-49B3-40AD-8367-1095C0F41905}.Release|Any CPU.ActiveCfg = Release|Any CPU + {73130EC7-49B3-40AD-8367-1095C0F41905}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {3063D7FD-6457-45B0-9ED8-620BDF605773} + EndGlobalSection +EndGlobal diff --git a/Windows/Program.cs b/Windows/Program.cs new file mode 100644 index 0000000..f5819b8 --- /dev/null +++ b/Windows/Program.cs @@ -0,0 +1,43 @@ +using System; +using System.Windows.Forms; +using MassiveKnob.Forms; +using MassiveKnob.Hardware; +using SimpleInjector; +using SimpleInjector.Diagnostics; + +namespace MassiveKnob +{ + public static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + public static void Main() + { + var container = BuildContainer(); + + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(container.GetInstance()); + } + + + private static Container BuildContainer() + { + var container = new Container(); + container.Options.EnableAutoVerification = false; + + container.Register(); + container.GetRegistration(typeof(SettingsForm))?.Registration + .SuppressDiagnosticWarning(DiagnosticType.DisposableTransientComponent, "Windows Form implements IDisposable"); + + container.Register(); + + // For testing without the hardware: + container.Register(() => new MockMassiveKnobHardwareFactory(3, TimeSpan.FromSeconds(1), 25)); + + return container; + } + } +} diff --git a/Windows/Properties/AssemblyInfo.cs b/Windows/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..fc1ec38 --- /dev/null +++ b/Windows/Properties/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("MassiveKnob")] +[assembly: AssemblyDescription("Physical controls for Windows audio devices")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("MassiveKnob")] +[assembly: AssemblyCopyright("Copyright © 2021 Mark van Renswoude")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("73130ec7-49b3-40ad-8367-1095c0f41905")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Windows/Properties/Resources.Designer.cs b/Windows/Properties/Resources.Designer.cs new file mode 100644 index 0000000..a1a7364 --- /dev/null +++ b/Windows/Properties/Resources.Designer.cs @@ -0,0 +1,70 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + + +namespace MassiveKnob.Properties +{ + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("MassiveKnob.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/Windows/Properties/Resources.resx b/Windows/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/Windows/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Windows/Properties/Settings.Designer.cs b/Windows/Properties/Settings.Designer.cs new file mode 100644 index 0000000..28fa051 --- /dev/null +++ b/Windows/Properties/Settings.Designer.cs @@ -0,0 +1,29 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + + +namespace MassiveKnob.Properties +{ + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/Windows/Properties/Settings.settings b/Windows/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/Windows/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Windows/Resources/Icon.ai b/Windows/Resources/Icon.ai new file mode 100644 index 0000000..12f18b3 --- /dev/null +++ b/Windows/Resources/Icon.ai @@ -0,0 +1,4708 @@ +%PDF-1.5 % +1 0 obj <>/OCGs[5 0 R 6 0 R 35 0 R 36 0 R 37 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + application/pdf + + + Print + + + + + 2021-02-19T10:48:23+01:00 + 2021-02-19T10:48:23+01:00 + 2021-02-19T10:44:53+01:00 + Adobe Illustrator CS6 (Windows) + + + + 256 + 216 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgA2AEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7 FXYq7FWN+ZvzH8keWeS6xq8EE69bVCZZ+ld4ow7iviRTFXl+vf8AOVGiwlo9C0ee8NKLPdusCV8Q ieqzD5lcVYVP/wA5Afm5rtwIdFhit5CaLDYWhuHP0S+vU/IYqsj0n/nJLXqgtrKK4oyyzmxUgg1B V3gH0UxVw/If85b48rx1VjU1uL3ma9P2TJvilXX/AJxe/MORRI99pau27K81wWBPiRAwr9OKFkn/ ADjV+Zts3G3ubGRSORaG4lUV8PjjjNcVWJ+Vf/OQGk8pLB7xaAljaakqEilTt6yE9OlMVa/xT/zk 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 irsVdirsVdirsVdirsVdirsVdirsVdir/9k= + + + + + + uuid:9cd59b36-41ae-48c3-8c27-fdad4bec3d28 + xmp.did:0F14401E9772EB11ADFCFBA4D8CDAE46 + uuid:5D20892493BFDB11914A8590D31508C8 + proof:pdf + + uuid:ba5dc92b-6d0a-484a-ab90-b9370a4a0965 + xmp.did:0980117407206811822A897E387FE54C + uuid:5D20892493BFDB11914A8590D31508C8 + proof:pdf + + + + + saved + xmp.iid:0F14401E9772EB11ADFCFBA4D8CDAE46 + 2021-02-19T10:44:53+01:00 + Adobe Illustrator CS6 (Windows) + / + + + + + + Document + Print + + + False + False + 1 + + 256.000000 + 256.000000 + Pixels + + + + Cyan + Magenta + Yellow + Black + + + + + + Default Swatch Group + 0 + + + + White + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 0.000000 + + + Black + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + CMYK Red + CMYK + PROCESS + 0.000000 + 100.000000 + 100.000000 + 0.000000 + + + CMYK Yellow + CMYK + PROCESS + 0.000000 + 0.000000 + 100.000000 + 0.000000 + + + CMYK Green + CMYK + PROCESS + 100.000000 + 0.000000 + 100.000000 + 0.000000 + + + CMYK Cyan + CMYK + PROCESS + 100.000000 + 0.000000 + 0.000000 + 0.000000 + + + CMYK Blue + CMYK + PROCESS + 100.000000 + 100.000000 + 0.000000 + 0.000000 + + + CMYK Magenta + CMYK + PROCESS + 0.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=15 M=100 Y=90 K=10 + CMYK + PROCESS + 14.999998 + 100.000000 + 90.000000 + 10.000002 + + + C=0 M=90 Y=85 K=0 + CMYK + PROCESS + 0.000000 + 90.000000 + 85.000000 + 0.000000 + + + C=0 M=80 Y=95 K=0 + CMYK + PROCESS + 0.000000 + 80.000000 + 95.000000 + 0.000000 + + + C=0 M=50 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 50.000000 + 100.000000 + 0.000000 + + + C=0 M=35 Y=85 K=0 + CMYK + PROCESS + 0.000000 + 35.000004 + 85.000000 + 0.000000 + + + C=5 M=0 Y=90 K=0 + CMYK + PROCESS + 5.000001 + 0.000000 + 90.000000 + 0.000000 + + + C=20 M=0 Y=100 K=0 + CMYK + PROCESS + 19.999998 + 0.000000 + 100.000000 + 0.000000 + + + C=50 M=0 Y=100 K=0 + CMYK + PROCESS + 50.000000 + 0.000000 + 100.000000 + 0.000000 + + + C=75 M=0 Y=100 K=0 + CMYK + PROCESS + 75.000000 + 0.000000 + 100.000000 + 0.000000 + + + C=85 M=10 Y=100 K=10 + CMYK + PROCESS + 85.000000 + 10.000002 + 100.000000 + 10.000002 + + + C=90 M=30 Y=95 K=30 + CMYK + PROCESS + 90.000000 + 30.000002 + 95.000000 + 30.000002 + + + C=75 M=0 Y=75 K=0 + CMYK + PROCESS + 75.000000 + 0.000000 + 75.000000 + 0.000000 + + + C=80 M=10 Y=45 K=0 + CMYK + PROCESS + 80.000000 + 10.000002 + 45.000000 + 0.000000 + + + C=70 M=15 Y=0 K=0 + CMYK + PROCESS + 70.000000 + 14.999998 + 0.000000 + 0.000000 + + + C=85 M=50 Y=0 K=0 + CMYK + PROCESS + 85.000000 + 50.000000 + 0.000000 + 0.000000 + + + C=100 M=95 Y=5 K=0 + CMYK + PROCESS + 100.000000 + 95.000000 + 5.000001 + 0.000000 + + + C=100 M=100 Y=25 K=25 + CMYK + PROCESS + 100.000000 + 100.000000 + 25.000000 + 25.000000 + + + C=75 M=100 Y=0 K=0 + CMYK + PROCESS + 75.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=50 M=100 Y=0 K=0 + CMYK + PROCESS + 50.000000 + 100.000000 + 0.000000 + 0.000000 + + + C=35 M=100 Y=35 K=10 + CMYK + PROCESS + 35.000004 + 100.000000 + 35.000004 + 10.000002 + + + C=10 M=100 Y=50 K=0 + CMYK + PROCESS + 10.000002 + 100.000000 + 50.000000 + 0.000000 + + + C=0 M=95 Y=20 K=0 + CMYK + PROCESS + 0.000000 + 95.000000 + 19.999998 + 0.000000 + + + C=25 M=25 Y=40 K=0 + CMYK + PROCESS + 25.000000 + 25.000000 + 39.999996 + 0.000000 + + + C=40 M=45 Y=50 K=5 + CMYK + PROCESS + 39.999996 + 45.000000 + 50.000000 + 5.000001 + + + C=50 M=50 Y=60 K=25 + CMYK + PROCESS + 50.000000 + 50.000000 + 60.000004 + 25.000000 + + + C=55 M=60 Y=65 K=40 + CMYK + PROCESS + 55.000000 + 60.000004 + 65.000000 + 39.999996 + + + C=25 M=40 Y=65 K=0 + CMYK + PROCESS + 25.000000 + 39.999996 + 65.000000 + 0.000000 + + + C=30 M=50 Y=75 K=10 + CMYK + PROCESS + 30.000002 + 50.000000 + 75.000000 + 10.000002 + + + C=35 M=60 Y=80 K=25 + CMYK + PROCESS + 35.000004 + 60.000004 + 80.000000 + 25.000000 + + + C=40 M=65 Y=90 K=35 + CMYK + PROCESS + 39.999996 + 65.000000 + 90.000000 + 35.000004 + + + C=40 M=70 Y=100 K=50 + CMYK + PROCESS + 39.999996 + 70.000000 + 100.000000 + 50.000000 + + + C=50 M=70 Y=80 K=70 + CMYK + PROCESS + 50.000000 + 70.000000 + 80.000000 + 70.000000 + + + + + + Grays + 1 + + + + C=0 M=0 Y=0 K=100 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 100.000000 + + + C=0 M=0 Y=0 K=90 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 89.999405 + + + C=0 M=0 Y=0 K=80 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 79.998795 + + + C=0 M=0 Y=0 K=70 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 69.999702 + + + C=0 M=0 Y=0 K=60 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 59.999104 + + + C=0 M=0 Y=0 K=50 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 50.000000 + + + C=0 M=0 Y=0 K=40 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 39.999401 + + + C=0 M=0 Y=0 K=30 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 29.998802 + + + C=0 M=0 Y=0 K=20 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 19.999701 + + + C=0 M=0 Y=0 K=10 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 9.999103 + + + C=0 M=0 Y=0 K=5 + CMYK + PROCESS + 0.000000 + 0.000000 + 0.000000 + 4.998803 + + + + + + Brights + 1 + + + + C=0 M=100 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 100.000000 + 100.000000 + 0.000000 + + + C=0 M=75 Y=100 K=0 + CMYK + PROCESS + 0.000000 + 75.000000 + 100.000000 + 0.000000 + + + C=0 M=10 Y=95 K=0 + CMYK + PROCESS + 0.000000 + 10.000002 + 95.000000 + 0.000000 + + + C=85 M=10 Y=100 K=0 + CMYK + PROCESS + 85.000000 + 10.000002 + 100.000000 + 0.000000 + + + C=100 M=90 Y=0 K=0 + CMYK + PROCESS + 100.000000 + 90.000000 + 0.000000 + 0.000000 + + + C=60 M=90 Y=0 K=0 + CMYK + PROCESS + 60.000004 + 90.000000 + 0.003099 + 0.003099 + + + + + + + + + Adobe PDF library 10.01 + + + + + + + + + + + + + + + + + + + + + + + + + +endstream endobj 3 0 obj <> endobj 8 0 obj <>/Resources<>/ExtGState<>/Properties<>>>/Thumb 43 0 R/TrimBox[0.0 0.0 256.0 256.0]/Type/Page>> endobj 39 0 obj <>stream +HUˎ1 +퉓8+ ⴠ9T^+r1Mܕ.;q9q>t[-y9Kە,( u{2|Kܛww5B'=޳98 ~[-3IBz%y,8ھ6nY-uJKN,1 {,╽ ER`bbwS#Ѷpl~ޑh $$΂{pll/E>[%P`XPbչUNm7ˁ\f(/|;c/i7#9zv"p9 4M6еy"\^zRpQQhi ۀUT" R<+¡90TmsBQFR`qֲS71< M.`@n,9#x.1'b@2jy,OR>[K)jQX8+j̈́)}ܱs~np/־n/m_r1荤}O +endstream endobj 43 0 obj <>stream +8;X^:gC4<0#Xf%]rQmUmCc3o=4T)dW`'bKYR8MMl"UOQ85alPcY%OgHmj5g&m9W&0 +bO+%0A/cn'K`p2[jf;!a_h3Z6@[73?5h +endstream endobj 44 0 obj [/Indexed/DeviceRGB 255 45 0 R] endobj 45 0 obj <>stream +8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 +b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` +E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn +6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( +l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> +endstream endobj 35 0 obj <> endobj 36 0 obj <> endobj 37 0 obj <> endobj 50 0 obj [/View/Design] endobj 51 0 obj <>>> endobj 48 0 obj [/View/Design] endobj 49 0 obj <>>> endobj 46 0 obj [/View/Design] endobj 47 0 obj <>>> endobj 42 0 obj <> endobj 41 0 obj [/ICCBased 52 0 R] endobj 52 0 obj <>stream +HuTKtKKJI,t(݋4K%ҹH4J#Ғ(H +wqyy~3̙g<3Y9El +@ ]!O-@\+BVKK :OX~WCaiHKL0qY `5ck +X]x= 8 XĿ׽>.f#aPn D^{y8  dp H st:Y׬cxc IV?S!:_9[YbQP~+rA +ShHht^ '0߅™kYXY9Yqqpl'WzEE$%D>,^|t*K)%/`\ҫ:&D [7dplDa5|mb4,yy{e5 3⚅,t+whlA   m k +xYUH&%Ȥ +qO'Mz3KT@v[NUnn^\o]abTrtlmE]e~U+jאZ:zaqi5};CS[\_ۆwCaQ1;>L$Lz}4:%8M7l̎Χ/}XT^]X>\Ym[n!ycskkƶʷ;v{pIs0Xݯ3s󝋒&$WWW*)!$$%!e$cHNOAKIMEq ƕ;KLw@YX;ؚ8^+DspfKOTCPpJ%D=++O%$*8IZ\Z^UK_wL"dx]}>9=;s_G8/̹N!Gz[<=2|B}PQzlH0Wc(Een|Pds::5&89yFT"od䳔i/ZK^&gd:fgQl kJХeJ*+篍kj5U[ZUh0|em6]B@`PpH?QM1Msψ*iϛ.Z [JYZ)X-]R޸Ѻپw?@?5 ǖ'vNg +W3gLC#u!MMMEvAms˔FVNA̝GLwA̬,llؿsݛnͽ+!B²" 'R&k?3?4+:6oT\ұڿ6VʝoF?LT;:>::>:;eqvx^sawݥʕ'_EFO\DKLtAnFF)F|ԭ6\`@z?m+F;LwiAhy͖)Mgw~_ @ZH_XA,"F)%/*9aZ:Q,\B^_AU񡒀2 +*'[j o5[uR1uh`fm$1xJgBdrltlyyEe$feg-g#`dGbwj0TOC9; ܨݿxz6zx8IP=A!.aAxۑϊ}bG-ޒēx`G/Ԝq_O?0"۬խЮ˯ǰı²µŶȷ͸ӹۺ 0@RfzƏǦȾ *GcЀџҿ'LsٛFsM6+1MZ:{T?~ò~i~L}~cbA~Dad~ty~W~O>~\/~|~`Cx}%H}1X}%z}K} {N}׋<_~7A~-ψ||Dz|+E|[s|z} ^}wO@}-~ċ {Gu{Dz{]Ĭ{f{Zx|[]|ϕM?}R<}Ǝz]YzHħz|z={LNw{\|=>|v|ېI8z/r z;bz'sMzd6zɬqv{D[{0> |;|yyaIy?yazYvzݮ[{^=c{ФI{R*y߄yfUy`VyyuKzZi{ <{z%zȎ~+~}͇}W0}3}HtЄ}Zk}=~zɇ}!~Єd*s}Y<9wpSwuuVrUW؈|;,뇔{RsѲ;:8q)PCV:4.8Ȅ2񡂡?Up Vu9S c bփR.ՁNn U388A/ͬδz6߆өn1T\e7݀tXT)$̯̕6;eCʷˆ imw3SƀV7M +\lGNػځNāa5tNzlߴS<H6*-N}o2ن N%է>w֣A}⇤\fXMݘ2, KԐ3g°[} +0e6M _1 ? 1ӣǾI^I|B̯dܪwLe1$: rW] 1S{z|diL g0\ U{[G{!{ ޔ`{&yE{xbie{Jr|/c5}~ +~:f#MKx+Ca|uI~.yW ώәߎ%¡唘[w!^T`^H*- 5GȨ瘎=Π4rv_ҍRGf,ދ̋|,ƕ{ Ҙtٕ^1Fő,;',#h%T,Qۥ{[s:9󅼓&^!Փa@!" y +.Jl6mHju,bU6+s hܸd-ʥ}wi-sun=0Ľi-_*)U_ˈb$na+;ϧT;ppA7C4.*Iߥa8Mm.ACi7\j|fiԫ)]ޭjʄU]3(í whJch-4x7h׿*P0H됎L랇ڡuÂ,{Bz}8vggҲd[!XTZZ.vlAg +{;Sm`vؿ`~?ga. +3Ì{L^WYe4]L7ok!wI~Ira^=C#Zh`Wu}p)"z7ff&3$FJ8Ҷ5m +uR_,^VS&aR~PfLL_Dw*`\-9]q  TI6)>u6 D`e͢/xqY%9ʜ;åOd\˾P&eRz;].R<oΡ]P{?: r̨\ʻb Ҥ3|m s؟W9oZt]RnÅ\cW#+nI&gyAjsN06HiD'@J+a5V~cRI̫vwtUc[3+?F|l(iU^+O?Rs1Hqil$Wþh=(RE +1BvџnF/ BsGMY9>ܖ3ȗqI ڣ5V_1ȣβiJiX0WVH[8g_/ +n3 ` 38A.|f|ј0I6bv%& ;Y㿜҄#dD.).p'3J12K[Duɥ$s8IƊ.z^48e!R6}vcMiozo0'=~i,3:?-?oS,9w#ROa; ?pB +֞IO ݟe#}ԯN$\l?], y,>&Рq]yh0AqK)ĝBFҍcH:-h-ǟcf)K9T127]qEjL<>h;|U +dpG +ƫ`&!8al`83>.qɂnA9 +; `HByg KB*k㰗2fF=#OM eT? +mTm_OBۊV<ɆF('n3uG~Ȯ#7Њ9[١`Ns.P..콤 'KnpF\? B>-`NWOOWBlfxW^b-_x&*/(j_=߆󑊢zF`LdE:SNʔ@S 03|TOKokto}bFz$4-,.m'j*J|)J6BP ^3ewܫpX.*,07xPڳ:2XOT21|"7=0ߴy}ĸB)H[Fs V+̯+Y(I(x&9JAI'tXmyG=X[8TK)2<TSRvxlȓGO|g/{>4/gRFȶ&A52 uЯ*B幃AuFǞѧuD)B,*?n` 'qQIzK֗4{B_g68#ʉ2.A$69!̒ub1&D3Qx" >ɏnνxVG&TۨÓ)sxd-5KxߣD&1±jdGjJ|J{Z ޲f6/vTp̄ub PmBU#gBg˷)-*E +ar>>Ƶrn[ɭF-IByѸP=ĶKUC wG D}"vN.p]]Q8uY{#qCv}sax_oyiNr( d8aw2CQ}V8UWO\g \yk@dcZt9$u +p-1z(=f) +vě92 w u煼ת#{P6+Dq3HIi%BCb!kc5&U ):X$܎[b2*@PkcӘdoTB_L1Uwi")=2#pI9,RO>T@>;bnDPuCfk^^\G~ oLRcHqܮ=-8^5Ońy*9:-\g8:T<?*C;[yX+I;lRL߭$DvYTQ6DyVmfy%/sIsmXP1Lռȭvow)QBb_LVwupeėO*|+](uHװ4WU.{ 4\m.QwR~MAiRz+%BKz?'{ k҉aa{H]sX}da~3_auQz VM\ĵv5I0LM)DŽp1:5,&4 %!$}ocޤA]R^xT◬M&/B:DwA24?cd&g]5b4a?iǐ Ĉ.OA 6vfvsd(5yTH/P=(a;zUs bWxDa)Eʼ $sgPJreY3w`cFo0|U[j5k.5J&eTor È´}I lpjC8c5J=g%Uo|L58E" +ِ[Ak]J͆VBM"{NrQihЦ@Y?6^߫ZWٯ]ذc؋hKSLj:>O ɲ.ݰQ{5mm<ٷ?^v"}ъw9O&vX7km[ ,70nΒ7|eP\I;-wgFN cIP#qWI ;NٶA)H~7i thl~~dzY Cx2>*c&mb{9f1X*L #> + V@g蒼]7n249=MK% ;,F\j 1klZi؊ΐ.|Q9а$_.!;̿lE,ɥDi}D3^a`Y5g{J=mɳy3CM'jM-iЦm n5? SJE+U~ ;q.tXd~~p*QeS%.Ћ"ưBsZ6-6[\d;^z4`;64藸ͱw;|+&AfLU3XTm)lF'l VɺgcGObbɜ9;v \CL, >B?KGCe"z -@EHILp<5'҉$>8#gL2m c1 c Fw)P+rkC qp/u8#!*g°Pa`vu@oH`"Ž:z_Q<,D>'ӅWP .`xW3|!6 +5 El[",0 e[Oz0~lUO+&xkPc|u$k.?{Qp""kr6isVa=~@W_ +.<7 +2#h?c~m'rE_xs6aG+K 14L^kUp^^_mS^dШ'>}5$:τ!E[bJx&n t(m;ZsF5uqX.ՂBqKP *l%{ٓ{'f';,TT,bhUq2Z3;}T9vwRR;GD + K*/@hUv$j!@ vyבm,W|-͢ ^ ~D_􆭍"ĉ#c禘*X/Ϝe>|XH;:)d9gƖ4aBQ4Ew,C +ۯBU#>SV$L-5gV ϯ*B#} npþtdU$Db&$^\^&Z"/˺+-}%Z:}9AYu rTlP0"~! ͚*@5K?߫Z-P=j>܈[O?)a5 +?WUsy5^(ge${Cm> "Gգ+$踿ϫ& Xw8?g,'ō="/xNM)'EFqrf CįQ9ZY$r!6m)4 V9kJ$# FьX٥Cp[ģ)CS;rFP#ImKGɺzj>>X9,ZL-jIbkȉ8˚?vtxPIO}_ay@:|Ve6ubd/e3<֭ztea'cLaM +lz&,f^_!?l2x2Xyń3D)\?ye ~4O+9$  +EVDTSؓ7X?MM!ԼuOtP Cbt;iްa@gW#@4c9.Do z2>M5i~u0 qswQ9ǸLt삟Mz)>kɝI;io"U)]$YL >$$T:gUo$UK,C`sCMAJMÄKC(g]ٮ9sUG0?L5QM%0Ol5&`Ƒ1,x'{k+mY}-Js#\d:i/NK\8HstQ#-ND).s*Zymnf\1l{(E=VGW9s:?wǟQZsC6A1ƃ6K@8OUY^`7j6@9?,yt4&}"T- +\Y&kVx녣391ٵqQ=beMq\`/nņ|2͌JkzDmͫIR4\~5NlօKɁZ]TC3l̅D3jSS)tWw$IX[wV +WTUw^PeUhWE^ؓ~Wchs sIg`wgs (5mr] B`7JfAaA3ƓG?{O[ ?xj/Z*7exXz Ά})C?`KcMՌ&)Y5J]q':]$؞]Yv x(ıH1eU>_0b?*񸨎b¤،D;Wxm]|N7U13*;.=>SÜj)CM>.eI1/QvН6Tkk+Ɯn\\FFV#Xde&~WE7"bju^I@j@bQ Wk8w_D ^z xZKA _`T}] +x}ЁM0S,rV+ KO&ƈ`;E{irf0F] w86f fm_8c3V<)r1p +hs|p!QP'Ղʛ2rӤej4Y r, r?4! Uq]f(*&umM+;1 +-c8CjL=L1TDJ7>)BH*cHY}~xI,{7WjWާʇhg_YovMKiN> QRǧ}AQj^G syJG"?txt,L>֍p_>Po$^<%}KDS4 +*S<ܖyd;éIJ~JMn>ȸcI6uɖژ䩊i77_5W2' 9t^}/8%wd0k)ͦF9kih3ShPBULzs'0$Y/L3ol|f ɪ\AW#siS-O^I+36xas @M +A hm45V-' ѵ1S+ ~*%~k˝ʉl * +lك=3_2~OgPs +Ccd[aے{<ХjA {! ߲ۓ;O'9+wEHE&JV?fiӺ j05瀶bhWZxo=ƺ 0zhK5mov (YOut;e=R*yMVn,$v:QڳE.yVl;svn,Wi.[@34SD_!MF>J柣ND @$Y~-CMu (+lBpБ^#$~2è /@̣6 3nh +;۪.3Fq3\َvZnZ"/vNFNJ2V{#ΚVse_쑮Ta8C¢!Η>FL\M{5eH~7;F AB?VY=۩Q i9J.sӿc%FVbdեiL`a)kD=W \ne>NX7Ƒ†2IYf-to7/~Uas[`W*v3_`~:kjR("E +* +e)DDIss,f_n6":hmh+]AqñQqSa9{~8|~bh6GZĠםN\h+(E30~kTMGβ1:zka'LG2>,gt X&@?e% +=@Ihs)HUOeX^m7R7~,, \jJԌfͬ8!*]JR:WR]Mɚ PZ;JN.8ɦ,[r*Α]MM"waX)Lbjd`>:?|:?u>^G$fa. +ʥ_S%ED8 J=ĕK{6r zGG Ui<Kg"^ q +I6vPWy^,uc/5@:ǹ+[N+li{P#^yv,ñ-NѳH⺣<֡gxV</nb6󴳜Ρ +nhB˾PoT(W##ĉTwZU} w-vT-9O᭺HIz) z9R'dI5aZGS˟agW=.P1ٜ y?2X)r4VaGXBe`9Q1͚@85$W?D}z2* +pt +;Br\ܕ'> -vCNeʔL-ʌqKHr 7I d<BgNelB^փRγF2AqCR&t7߄{" D9u)Cw1t}?"'[7o̩~1{>Ru* ʖdClutqf2[l~{S4>J$.nQnlP#x])By`r+wLH?VD:|iUG~ժ+&+Rb gP>}WԹkQǖ]WSkqwZ +DQdVd24KGMvU35KJ~4&jwJ*y;X߉˔O@5hw)񘴕o-9E:_̂o&6#V(ѽS-te$ פp}4%4mrnzhe4KX*KÃ29ʩ~'Ǥl|O5ÍB +;^j㛑Q`exH;J\*`l˴Khk +&tF|(8VǡܷR:ϳoG*UjSKknRgl ޅ-6&Nŗ7O4rGmO[du_TvY{ ̏Iy\aRKy&P7ݪJ)l"W5{K S_j0WSW;wixF1^lО伴^'1b%OAXhq)L7j}=9PX=n`ɗKX#CùA *7{ jWܴTByufכd=Af]F=_u*`q+_i݋\^`BaE|S&%Z a8+QgQ[IK-jIKr2Tcju=A ʧQ"7{ٮם*X|,Yzѽ}ƈf:jCo[>]x^hlhNrϳEDkcCǪ ת9c Ht<)}z!hE~DBӳ2S͆i{;ouIp??砃46ٺ^"1R<-65sjpCSjqi6dzھİ紈 41.$5EG9:=ob쾄 v#[xﯦAF+T(C@RQF772I$^a$Eq>.AEbiO0]ТK5ΫPÛG ZdJ*$d ^}E*֤>?Ƅ$dO _tl%$^7[KSECqz"$]*B]}W zT[Rk"n]EUYvFUW\B6-RB^Me2B4/wͺh4Ek5˖<1U[tD>Q!.kR涧7uJc>c +l/i^3;iڐ0sĀZnS +qW7Np:([568ViAFޜ~h9Pldüj2dO ++61--1Ewv =JCHW34܏&x8,&#Rc3Dvz6RSyu_N/nmكvT֥Y˼?RFװKzn9Q4gC^5l`P\ܲG&ޫ` 9PҞٲXr6 +V4,{a؄\tcY`]lǿԾar鴯؏=b!&Yb ^[\aYt$w +[R)i[{$7f"o Xp +zBz'hO|Ō4ǐ|-j +:}̴a%Tv5Y9QK d0 ?$ćH|#uD3 phrd@,@XmVKY@ou([8#!OM~.7SoJn%OG" +Ü3N|/'O-R_1Vh&׺ NPz8de 勊ZTH;XQ6}+'h_|ȋCcuHjBA,NOS{3 L`]1> A rxӴ*E^.ؐ`Q5 v{`=W6뼟\9avGOXc& v1w~0W:ʎ~f: 0/˵%m KRKAcR% P#CSߥfmD5oEx17B0<&Yd8"1wܡ5 TaaJ3p57A>+yIMcu Zd?Bk1x-rsV9sH6p]DGgO| y5S$aE`$Ls +[Ym ~u8p`6*I ߕ`S88sn9O3nXOE /7f^lbN[PBFO.9Z_.5>F S̉R'}ΪѬ`_dX|{dHXԾ3QlZe7PRqشO5OkZrx5u`aǂ:*`T), +DPQʮdߓJRk=H+ +*#u)h) )B6s9߹瞏HZGzGT"93hDͺ sr|b4y $TK "$I~$v(B#].qi?CN ~ޱ|ܷLcOnT~vxj̦5<.f\K<2p:CpSy,66>|zC +E +T)f/:X1}J+>_~Q;^ㆪvs&۸>.k7yZS:˩㜍rݖۜaKa!l.g57Kv0!;ڗfe %]"XT J3aժlwVj=v姠αe=bI/gH& :g,(y 27>aba88fVVqɌT0NɉB`( _"fo! t}Wg_0}HX 9,Qx=~Jٹx>ӱe9M2mFS)Vk-eZFF٥btg0O?Dǐ%7eyښ6WSCyeUS}l`a8i g"1лJ"|PKڝc,$+&PvꖴGBoj_t4I vqf熚(eC!b׼^SbYi1¨;2W`/7uh?4 +!z@#(T 6 ^!R S#>E/Sq9z_ /G%ӈ0C9[ۼ@(٩P ,}XTOkpQȫUG6 x2e,> -?ϭQެYz/T5FL^`tީ3\#̬D:,vw[mDW)TBZ`0Ֆ`3tBQ˟kks41y `\޸cV#z`XHhwA0چFTyqӵܫ*F˪%*/>9 +gS'"b'zL=N)cs*bR)W<#S 癛)K +&L\9WtW!Y17i*%wJ_ 閥nWJ!p-0T`:K6B+SzlL,~J#ZLHBEe߈Eq1 +ڸTD}bB;*OTCnՍl$OYQ0mz7o9NŻ|hDV[Ve֩b7YZÖHl~I)ܻJ5oOݑ%(,hZGҼmRd!/NEWutV57z;jjs^^lDǾ0-a_aL؁w44簍b^ppi&nX uƻ-݂ -cY4_g ?jGIfH %J҂[%ϩC6OzvWzoZtA$?z;ؼFT2/+0@@S<@>0bSuqw;j4S'/4sEթ(P[V^5ƊHkg/ۄw 0*֭ ajyB5TC J(_F4!m, RN ?S9 :״OfOV"յڇ1,V)S@._ +#Q`K|ͨ%cj/&\: [Ft^Z"q٤Jm뙊jMarח`VCg +w"~>< 8i}XT8dzQVY<p%HG/Û`rq;Nm~Ms\/Zh:(MXа^F.꜋.Ys}5`a((X0T+JS 4&~|iB!! !)$)ʰ WFY]E븎3x,˽}|dc +|i-0Ws +Q_GpRjy0׿tjT̎ԍD1څڍ›N:ka? 7ek_%]a;זF=9-b= &Mm0-vD'^j+/5(er^+EL F1$1KWE|fOFMKm::1`ڥfXЩM*i9 +l?+Lw?-Nx͈wɳ\C0瑃f sM;iđ`$O0z*RٹB9@"k5v~.lB?ug]ed8JAj͹um.DO^^v:y;ske+,L¶vŝҼخd_5Z;q#k> MU\J{l*͟ґ3Doy"UDcu#H)BPit/ v`_Sʝ{e5mpPpy=-2[m+v6*.WۿSǔ] +^DMk,2.#ɲ\!{^I4Ԉ.~çlDcBU\b"c jvJG|H`_2rHѥ tHHBaG :Bf{'9 +[jaЧe +&hz6Fdy?>gۑx&l$^:^nx-'-]O 5@S Uڏy]Tu _,zWPT|BJ,ɕ}`8ߴy?p7gˢu\JO(_vOUue4+Qbi?A.jCxyRJ駥Pt㸲rTfdd$ֺFR>PaL'v2M*׵T]`W*cD*hAe#"ɆKO9JKL2J( KgK3jԉfZnL5oM(_>FOӹGi}<@w#Ndhoo4Y ̾Fٸ2YAz$W֜5Copli\ 32l;a<;S?B>zprjsm1tZc̥{s/J{c*#3ހfϡneh->Bc9SJ"չO8'8ހ `yHϤu-*` x[c')Oy\x!QS9q*;$;d'=NY ,|ܶ34qT=ka%hs䬺UX7Fl[ o1apuxf9QGk4;e +˸7荇5xB:yZdͫ,`2?_a[0~9iY Fs3g Ë9u<,yx87 1Ja,O@/gO㔛94 |.]16'^@1'p:XtwL,jVQv@wl{έ̱\?R^UV\GI+9D03oyd[R<""" +.2}"!<4tH~(-r25DH@l"K濣,/S}"+~wF}V dRz,:w&?C~FqJ}JݢJirjzEgU#p]ZF%+[PjewVjlW7wR/*C%%jGx @EFH)&0_Օ|Xu +DRNXA\0JSH307͛73 CWc+U#r# aQOL4Eљ?s~{sIy?y>ҒLָKd-ޣJ1v*fH 6hz+~BO:IQqZUՍP[UD#BM >$ z|?^!J0W8N WzXfщ@'h< +%sdR۔e[$z,Z2H5[&Ht L UO 췯+52j&P6uRɮ! +a+rk!o4 `ܗP)f%VQTF(Z]s,TR|O)O?ho# ]6yл)OU,F٠E})gsٴGyҘp/kw~˖I'Y;TdgYU'I8@F* 8 $I+A2((+y8OϋWȗE {բbW"@}@C׌teYgvֈHofE`eagbN_4!/e%O;mhtWv6[iyFy4ʔat V] au #QYm3rM/q{~tjD 7fiɷ  . =[n`4qShBrx_5wԐ %nQ~x'G[ `+qb]Q2Ըi=UGn~ڋJ(Aݪd E7Kz +M]!} jnh-Cզ_魺a٭Dfrj6$-4nUZF)Zpux'@]U/ٳۿ3Ug`iU}ڰULWu+SU[;uXJPvOŀ{$KF,qQruH.}imfZh~atMBb0*iWC䶧jZmn[nKfi c+.&oV.&ʭ{5_s9dmIA. *s5: 1Ů m!|fl'6#N +Z>\oMkCZ8)*bEE@(27{I" $!0a=+vUZŁ`-xEJUǺ +~~7TSsV6i1=2J眆Jh@ Uu;7!0 +߽\醮%-;=.e/T7D$v{.ʫ|ZѮmcDֲ+-Cu_{>1H1]"D^nR ٺ:E3[h9 7TJOW+3 vœLimc @6'[c`Ǧ8v!bR{1_ӵuoPE2\@;4"mO m{ ߺE1dA}C=WB}[3']\PJG5VmnYG Xyahd'J[U~ vWۅWo]WnGnR9H7ѨAu 1vZm]lUrTVA +sj6lhm,My4A*0vJR? Ĵ>2C!*#q0MJ!:ŏCR|dFa?2݂ch3dBzSIt?%LmF[AxYGҏ0m;GY1űh%[sጒ@9 q_8G>r Wn)jodEzC.qJviN&If8bg + v|sd%:uTf&L0~p.(RU +; _)w%$/ t# +~#u`u[w.qsY_-*'̳ɩk/)2* i9$7fUzflc9}],툏WYCIkS-ty7>T! 26Kݲ m&cӣh' ..+upC6&@j5tdP0=I˂Ė +C{޶$tR:(ϭuOR4$=jluq1?פ9Si|cqF!_z^SK}`d%DT wV>;<'V=(5H%jWMV#9YD2֓p~~J }D]gNSsjJmn->,vg&SLl#>^i8ʞ%4'RJDhRN0hBA0(r0K+aMY|"EGE_R^v4/?m[˨yN`K/5[71[Gؒ' '铯RGhqꭁ]>iIX +5'\GB ćd^ux+[^%e ֪pxE + 6%!Itި@Ҿ#% :*h$r7שׁ55׈Ց'I+6*ЮwȰ%U#zD+Jt BaUؕ 6}uOr7dP Cu}FEua7RV"KST20 EN{^lkƕ$vW(,F7b ˢÞOy<"_).kh[n 9W?gڈ7yș*ӼuA@ OpIRrP($e[iVYR +n#(aFq&mq3%\g?%ӆM5XD3b$ʁW ƿ5&͔D4®KcᏊ . +1Zo +^`~¿`6z q aXǰ)Ӽ܄'84 n"Db.yC<K d},{*h +ڸh>wMv^ c8Iƻ(~j? +eoyl/Dl5Żרpy1ܣܵ^004{ .%CA22dWuQ>okL<5.ſȠiffh7S-|^TjX[wCY*sG^1Ve֗+˃L3 /2y{+.;CtJ } ->٫y6q< WxA_PZ? Q y1>yK\.!OqM +0Cl];Sk)=RZ@[ɷ5JBeǐ$Ni"0 -úR4H~9.☫|Dϸah-)r~"eoMK%4 _7"‘e +QD~0T.>"x*O>酧.Ey+HVy55RWsEk*PxEGB;(J X(8hiqmh^ 0`}_APWDLZ‹]<4zG֦`oyZR|u^gCF#nr)Va5ƪw9njyIt +xI1bIy>}-AگOShKFx6xqqQ +3SU\ka椚̩Di~ ?{>J3mtߐZt]YNju]ɒQYlZZsNѴѷW>Sݥ0Bj+7q҄fU7m :8^;#eտ+*,_CY3MSU*LX.jQȖg_IWJ5a"9R'C\y׳qH)VU-Z.\+Ѥ/aen/|F[?SPkr" +^Y>VH9 &yaIxQfd}+] +U.o.=q-y][viRgk*`/pLBu+A@[)&PYQ?im/K,Y*gu(i2`؀V"fJSs=RU@7+>dْsmY)w=U?ο3D qjv83׽} 1r@vy:{Eͩԡ.޸,珈~CH{ksv_l毁@"lOR."0Fl]]C˧Mfi nq˶Q{56ef e l[IuY_(i&;to 5kZ/ jjp~Ch⨿䦿iRs!G-֠5 +&wa7WAƫXUr8+}E)oVӃIÌ}qZlh<gw +A?=$6-ޡ|,)!<*ǘ*z!8߀ϸuPpD|Ŝe=sm4'ҢؽYaPOZ(vj?VGgxI=V-̹uMCJH_-C]B~2A\8*E8PTΔTo 9/whaߣby\'F,Ռo%wU/ժnM*T Ƌ{5NJԢT9L;y _fXD\uַA:x")V%V/*]1# )ԋ@X"SVӅ4u.f?Uչk%Nj;c~?]Pۺ˄WҌ=V듍1 +E ֻqd{q׉; +NYHdfttc #&vPtQjd1o ­R)ʽ@}<7 &8wyybH04͂@>o` ~M`Oi#T2"-!NSn\ z$SC%Q%;OzcT)!M.wf.Po1U=Bl1F#F0HD\u̞rڜ*ujQO5u8E$7:"І(UuANgulWYE*Z"cT\kTxlx)$8(YBIY`[}.Bb T$=U8Oŧ yP-x$]0_ +j(sOH|/=wKR` ptl>f*ӡuU<=Ts(&zpKA?sLo`N0Mq+~*m-~F7^5惬H]${|-Ҷ9Y&=X'Vu+^ϖEm +Y/0X cAdPc_X VRx6b|C6^FeC]o-F?f7Q3V>͝yFsy]ݯMF͊k^NնI#FZ.7ƆQfeϫCJn;AjB JFw +mԗ6t(I5beElXQ͌ i,)6QS 1zJezVBf ۹ʹ/ HQ89SnE%o-4NJ``,)~utyQN]vحp+e"xN6y*,7$'x\CQL[8.d@}CɏE)1D?@晹b$?7 + YM N| _Td'wa}0Z<9|3閗3~o=Y>l0Wb=P1jmE XR[louv:.C=;.a.BřS[nWJ3ǟN1='\Xr8۲:KXj6e g΀ap%z"K1.c1ɇzɭGTRiVBe-)K@iͬ!u@_`&2q up%P +SЧ|NWP !o-t_ nyV|ؤ賐e`HʏE=>\Tǀ|cҎkIST!%Gu,%[IR'+#T}m3\/df)`n2#\M(CQd6flqGv첵).Z&wITe{JQܕQE\m`p`Ҵ\z[v7OVo9ݜQ}$SSFMWdnyuя: *o[3 O FRJ0ոl+L+&oE+d- +@?^fEkoo\fyJ8zΰXmi  -Nw}OYpz&@>gݪHc. ]7Mz#fe"g\a@\qyºJc\3ܔ r'WQVE D|PLs\h_h#9Z-TdL>˼!WS/bniA3.1Fx@Ǡ3UNN^nPOZdtvWO&-8ךshveSȉ`wPU_cař=շ}m`<<$+UV66do88{ηzkG}ڻ<<7\jvg!5M!w&GmpfSgO3x? +wZsLRq/~lK]QV:om<Q' R]AMXyu ^ȩ $}! 9LHaH8hʡrTtD-*fY]]wuu[bgg޼ߛ"ȹ I7HR7HBHudt *Ჲ=eJtj| #TI/W?{ΝO^'`v'$^E=7ITF2˵7-^'Z"[x ;[U7,QyWrr9E6cy'I gIRm2ZQ +{0K,^H/>>G@l`T=FZnZH ѳ$m¯鵩KA3D;w7ŏw^J<`i$M_x8wU-,/h!pbP1|*k _U;N45jX_:]$ %ͫX+é Miwzz{7`fOE5FohX}fL}k%Jq_b_A54WK'h?:lTHmm. m&"X7rV7l̨b]r+ OpK[{0EuwrfӵFajCCPktMݻVw[FR(Y-VE8 P?)p>͛5 #TtF%3 qhk ;`LVOpZۓ. j&\Cʡ <*g!r)J;ȁ&xK0N\B&Գ$bԍ7fpt(0H23ӲG1d?ź +bVֆ|\[w+tjj?b7hwJCmm#b.^VBDRb8E]4J 7LGc.Xd/a&ڎ @顢zQuֈ4Tqi˽èb˕ 43~,ymoθ[0 +l} TCuLBt 2ZW>Eh@+[Řy0= +sU"r];û](̏{e E=ma^2'FKv~.Оm0Oj(esߺ Pk*!3IBЦs4{^|{6k\* }XYǠD=A %$hǹWǂORV UBꯪr+Ca6 Kԣe :Zڿu6&?W&k).]%],lb7MX][H"}WL)RIrfr?AƁY&I~_IB${XlZXE&|w#؆`_vߢfu3fm89?9 +̟NՎ`jz1*.@爎܋`oْJ_+-4α6@/DWEjE}HRDl;Y+ z/1Dѓ(z)oι&;.4aZ#gsbZ+XWi;<~n"( M'b6!G lP<^\nM8--aG+dyXP^s:0q \p3bWu.,R&rm#қs)lej(^ ,=/FV6fj;ex%Dk%!FW@ao2QTvs 5h0B{UHiGCOzL'pbIq+'_1Lv +QA%$[H~}{1fKٲ:HmWS +ëd}2w7 j< O7i2G;SWݒ!@YsZ~*PƐ6xQܡ/9i7cGHVf3R>K2jZxH"Z")vHD} @} YJ64T(P_(*C]miSJqOZgA(ny8}wν37;?߇*x"D6HaeZ +5K e +tE=H\ƒW8 72ym]Ly 1N<8͍@:> >6pӹ$.7$C$pA)hJewT*FmKg-lm*{{v\ܲsJa>3_*ݑہ>V5|WG_>RR_YL!RFjz S5fځO2< `}I\:XiZkRH*4[(xX$u|I9̺TkVzl_׼gC%*wXR nY)N.9+wZ[E9ľWJ%wp`Nj[.b|JOsdW,R~#* ĽyFdwCp*L(8OelL˞)A vfFʹ.Knd~A򥾺]Di(i]YʯJߟ?>w[侾7KK6w"!eDp5V* 3VEa{:KoEDcɾJ#oOU44lTjFk,>{S?ýSk>Su=|j}T +SU.nk.mcŮ)RxbT<TV*yÙ<+`RC;S^0-itp<ȗ2IZ_0ȡVVKHWol9=fd jb%}DCy{sI*{ZL1r`n}+D_*Uz3}i779_kjxL+u ;FxL.mmQ`sKzK#>&ޗxiBV^\s3_XX_رC+ҭj|S kϽ|j|[X +ΆBL.?\DCqߢ7nO(M&JOiݖw0IJLM,NCOYPoQRSTUVX Y#Z:[Q\f]x^_`abcdfgh#i3jBkRl^mgnqozpqrstuvwxyz{|}~ˀɁǂф{pdXL@3& ֜ȝ|jWE3 תū}kYG6$ڷȸ~kYG5"ŵƣǑ~lYD.оѧҐyaI1ڲۘ}bG,{W3qHvU3sIa)\ Z, +     !"#$%&'()*+,-./0123456789:;~<|=|>|?}@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`acdeefghijklmnopqrstuvwxyz{|z}o~dXMA5)ۈʉq`N=, +ٖɗmZH6%ؤʥwog`ZTOLIFEDEFHJNRW]cjr{ĄŊƐǖȝɥʭ˶̿*7DQ^kyކߔ ,8CNYcjnoldVD/h 2 +R e r xzzzyuph^RE7)4=@?:4 ,!#"#$$%&'()*+,-./|0p1d2Y3M4A566+7!89 ::;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{||}v~oiaZQH>5+! ؎͏Ðxpjc^YURPOOPRUY_fnx̰߱ 8Ql»!Ceª9^ɂʦ2TtҔӲ6Lat݇ޘߧoX\[VL=*b/fMq T + p_L7! }tfUA, !"#$%z&d'N(9)%**+,-./01y2g3U4D526"7889:;<=>?@}AoBbCUDIE~% ہ‚rW; ϊ}bG-ޒēx`G/Ԝq_O?0"۬խЮ˯ǰı²µŶȷ͸ӹۺ 0@RfzƏǦȾ *GcЀџҿ'LsٛFsM6+1MZ:{OX͙~ʹ~y~eL~j~Qc=9~|4~cl@~]̳~nf~C~لOiZ/gP8v}6q}0}>ϲ:}i^},~ ׉_LpK-~~,*~&E()D9vyowy=TS3wI!D)J%OBvwN64;>FVWm +S^Di*bPkpة?%"1#!ϼK`L<n-e2*+) X䥂C@v2l Q?(=0q MzǃIz7MEY; Y@K (-\U&>rI^2IMe;Ya"VN,S;o_%sD;fƎ.R?l ;0Dq>8zDKG)3o+&<4@n͗0EO94#ҐnW9 b_7}B2yːv/ąJH삻Ȧp$ȫވy;Æǘfo虔F¨LsI,KhW2!AjHE^τ _wdlXggΩr!jU)[%B\DCfp <_\?k,.wȲirJRݐ=>0+cvZ{HllLVAc۠ ^{6oCҏSمbȏ:sz 7jP@Q;[wg|z30Uq`!P-~|X3+z2lIђ:_p-FOJ*Yr(".O'qäfrCRJ'dc~h!€?`}WzBd;hѲGϲmT SAij9< +ߨ%@`8xLTqė=,Mk $hJdx_r̰gʱhtG,KytomVK0X?R=Џ ]ٛa`sʠ7g&Grŀ?>r&z`b>&z%sxbw&{~څ]"WR%c"zD zA rs!֝=jcf]rmANJl$ے#ؑ >wTfGFF699<׵.'SZ*˺#-Jl.ZZx%m*| o 2ӝ_TWK4eRsu33'jRFBWl| +Fgml0L1, y+Hu2f;[T0BE{:qntoT]okI, + LgV_R:Kϋ0dP?= vE̷փ(M4m\Tk׉o,H=Zw/EI-LQ[ 8F/g֖'$?[u~fghXjݚ- VImKՀ,%ibQ*e97WKMYiHtXTBUDw-49#iԗ/r]hGވ/ + +lD2 h‘%TTT*Fdw">GY?"[f r5ʊ4`TAo4H5rWS8Xy;$Yr'q vUPV&4m/5LJE:S7Hvy.. kPXAl` +,e: E$@BKr.!{A$A,CY[EA;| TJkU>41aƜdcT.Us R&BchR) + Pd;ʟHbl?1;_:i^mMh9Ӝ+,x+(‡j3=P6u>a}&b (0=.À<2&m%u9_~zL!S`(6͟>թVlW䨸m5ypg!2< PR%wC>ubvbF.0UK$K;؂P,!rA5%\v" +[2gwdxJ:_'Eښ_+^Cژ I! v,V72UJLNITUKɎIy/R+=+(֨v6!M @PB%R--3|4-)#ͯ w.ܘ<;b#;*>$eG +>3"و~AZ$xOUx f𜓜x;٥Q h X(Zx=`dš 8b†id, ϐ!enZ +b /޲І2P0~ +1baktT ?g)˧9 С`.ޓ`>'4\DRdPaxԗ?i|9,t Ĵq]"m-9OD'Ex>#Bz6Nk%tm6BDzVQGq,2O: y{iHcy[]vaZT5 ȨR 345N@qG!fYXr{3^M7HX1ey87ҙ;NP9tn/D=}*I:2s̋%G{7abTBm6ۺ4JZmI׶Fהz\FD*rEyք ̣V-8ˉi#7XmZLW:2 +$Iⷱd`U+z3 8"}Y\E^\Qܵ)<&uZ!FM)V"ڟ}&à/ ď 5 O546PW눤0 fGlEbdc 'ƪrӬ[{K("M/y%0=zFBx}{w6{Y50%,40R}ԓvTp>K@fR$7HU( /10f<,1BS>٨RI3#&&pa5j19#yTH9cI[էjU̟~? +7NzM`k|-kqJ}(Ҙ2SaӼGi ; b:`uǤayU}T 2Ftm̔%OpuDU0m~L-_:qWg0~huw-] NVrP =<]x;Y1iw@8,n\(zqb !$zB&5dn61Q& & CuЎy#c%$7]w'z\0Lk{8 ;fGS Fx¬P~Km%t3MccM(bCB$ _ J,@՜ %ӸZ;.6B)PT~~:_tHNITScΤ5_3bO6-[o 7$cn:zNqnE2~7\NT' "[fTT^2F&+c5r~ԕ(jl 48mWDC]X#<n_ T 45 C0 V~ m&AGA7w@w;Q8Q ?d9#1yʕq_eS]y|d*&6Q30J(WG>HN vAg+[o:y1ډGmUV'pJ{"M@3X|*oƙޞ%sfJ<ߔ[-0R'G i++qNPF\&XT~ykPx>–~u2LX'P MOW rة Z?qU\+w>-q}y/sRQQJ@737Ka[t̷E8X,Tp!PVK$`Κ׵bu~*LlBz-f{i8DbMp/ŲF_<`w[Uq. Y!'i7L' Rz$v]c-ީ%HY~ٕ 鞀ws{)Wa˹ԑ`{[z ϡZ& z +- U@uBP.8jz B{GtϤ1ޕq# ^o2N*`DZm錞c@QY@Oy`ŕ^ )H??s %J@f-H%{#}řPKn@u5w:=YX9(5#p 9#Av(~-"]Qb'䠡ya +'£ +vO@%7_*Z-r*~z Ց4!wBpG-q.a+c"wmqk=WfB +k^0>npu5㞃= m]0o-1:ǒ~%ui;pVO/a3;0oKܼL6Ed@ZU%{ ^ ͰyOVNHLmu?uMBEQ1\IُOui@L7Nk\dd[i|lRܰ3"rW^  +19~(VZQjsfb5~Nl, $LAE \Yv3k"*Ie.gj4uDk"*T~~g^ ~<|1cPx7kF84K(/AI\%HG;'6`kK +ZJAFqKq$5GT#.a;1 p't.t-SSUn;QY(sў*M8= +BHZ# GcDS{d',Utl=,}*vcr+](_1rØ@?A[KDlv'”o>=ԏ[?Q ôn!ܘeoiB]u3PzP'ߧ%44Qw L7@?;gSVjgohop7syR\7V%xL| 3n|2Q|-GotuV֘Gk}fd'̐yQ/;^+b#&~ي2(ɚpTֆ)$Dru:5zj,|~0T\~>*,6Y +]7E9!7;au*8Y?Ң#WfiA~\mB\$OwDhE16:_JqBR%*X3 !O:`Iok2+}Y'1%Y GPMJ{rK w_ L&N NyA'ճmﺾo4gz"v;L je %Ɯ{NS6U'*@djNcvo^=Bi 795l€Aⶫ627ICkyV_}B.I=YR2U^c~o\Ƙa3Ƹ2@eU*Tlmcӱ~ xnNU)o`Iχa]PFŚVTC&ϣ࿋Y=d]/..FBXs+$=}buM>RWm6Ŗ6ᢐFX 5x{v*j;zv<_~AVUJϐ^IjQxシuQo=lK_ՑEkZ\4sqU7vOa J?Q)4C^\k[{3y~M|J'g4Ay,$0( jHl:Q"V҉1X&e s)MZ(W |Ϲ\88&tcpҔa͔ CC GU$^fb|8u̸&A֍9ke7;㥦koAvՏ0o5y'M3q"y$[Y@SgÓ=ݎP1)L \!B;U!)/C$N$A³ueuU},3Y'/Jc .8_[ON-<"NawGm_+yj~P]ſ^\y X,r-|㒒ܳ<L^T},^eDR,nkqց%|r,!gJx=~p{"\eeEN;Þ=${q@Q_\?/иLe>u#Mp'Yn_e<q㼅Ra8pLB=(YK[l`BKB#4;c;HS^OA>Ʉx\+0lkOԼ`Fcfup.wlCnKJIi]&fXPAn1کFTKBoI!ӮZ f)~Xhy9 ݨOC5&|T2ӲnSLB5eD0:yP;(w9mΪnWhKu{`wk +kH>*ڲ1 wp5Q݌$;LvvJ1f3n*Tg@oO#9|}?V0M5.ۀz{" NK?C_$ P&B̆e>(qIu`|ob|_0l2WꂝsCܴLTIa?f(/+PIwB WhgšH EiŮ(G6 +"  +"(H2̙dfr $xZEP>ţC~EF:}< \{ +% rH6N$(߫Nᷘ_%1]2:$o-8ȥ I-qt;'kTjJW^}kfQUr\ulNkHn᫂H*Wd6M2 *{`V%VRoJJ`+"yO|s86Vy8 :+;9ɨ=.qqѝ=ɥ^ӏwldG;fH^2`zBȳ ŞO*{M2MoR0i:T~%$9ED~cj<}${.-+P]c=Vzpwz\S;!?C:GFIױqYŞ ݇>;]mS)yrEz_n˕aI"l|sGvmߵ_7e]֭>ГU)i:D΂G}V W5*{f? +($p\)9D$ZYr|(4D܁OHʳ ;ܫv۱jxLr_r ;Wi nV|Rudܦ;@YNl-QnJȲc/14C:'K&̕BOJ{ߴzfsW|F-q2 ?}Y[pXdY<\v+M{ir8~LJޯ vlL: ?@o[g`}>?UrǛI2Lk.}GpI8QRV%܂L0/PUE ?ɹTcۼfHs^QMC!)$ ; ej uIy W6#LMi9ĦͱP*HʘFg]mߝn+|X$Z6K'OQJq m(B~ljSuZ ťbhWP"z@UVJ΂\,<\HA 5Oaf΍C75O Uݮx7F>QL~:ʥ#][eTS2%c Æ~EWg9i%3W4ފ:}޼0_X|-ƣµVu8H{YF"qĔ-F95E!L/3zLw@"FRmOQ&[#ZO/xˤr~9T00bܬ 4Pߋb>_nMFY%MOaN$ʡ˖~ &($~>tBM%^i3ϐEf8UB '`-icIaͨ+ دR=ZȾŁ=5U#5HR>njky/s6H؃E oLyCG/?QE%FvMMz)=ZB.ϡƋ/•3O85&YKլ(ST eҝZVx'xaV4Ë*H]z~h~ i0d,K8CZy{jCF')b|xNJ>V{0e#|SE1b狛*_R"37Boξ(p3_<ݥ%-tɫBetƓpx HuRuɵ)H?mf@Iz͂qrgM_D|Ce +ӯ_wCՄYK/Ԩ 佨/Y0y̸7.]*ѳa !d[m9#{-;W[ U$mb?ci3ؘsq6ĂT t֠} dlv{Fyt/ټt̰KQ8 N"4ʻc'׸Ns6I ][#?wsb,4U_ f)Eď* uä6Go76ɵ{'CGa+RUA=@5_rgs1OUG*ʚO&Q͡4%nlc=%Z vY Zeਝ4? eC` _wvĦ10KB/*Brv4όwM 0r `$CܝGa6;g-N_&ɰ.` `0M/s\PMf`p3 $A7 i c(y jӍ 5!UiMSD-rBFL&^:OF-T4w T3c q]2Rd/3U\;?Up=@b +TYRJ3O)*+sWu.[L6ǼA. 귒hoN_=C|HW Gz}w\2h{?Ur_ס,[<4DmD〷C/Fl Mr_򑹾g"P\TMIiDw$=` IӐ }6.jYx^h}]"]l +8"ӽ΃ǐL"Hڝk:^֖Tm.^@1~qxTlU#U75:LE|4&W25exz*̖̆;M0do^lpmaIS7kD#'͊$"lL?bADINmEh 8Ԍ*"vұE݌5Z5 `z~x[MN&a|b(ǁ$ch |cq)M_Ɔw>bSО$  Dpz!G@o3a]PnN2);K4 U"p+q 7bLay$04iCc9(6>E3a{ R䏡0`?s07y9'`Lq`ScLr&MP.ڽ,_ru/F=܏=1ltŜ 9>1lם +KX_t+ =#ثL +uuWK̹ u)F@jR_$YuBśGbQl+$,o8qlg!) n2QήU>Ytw(^'Y! %GU9, &>YcwU Mj"Zo6VWF9=al mynqA/2AI̐i +qAN?!9NxlbO{eiYQ̶>SZ .&sbj?1_ǡPkٟx`дY!n6fVJ?ffon06l)7BuyMAѢ&m>>Nj#4J%&|E]ۊ:i2g0io*6zXh +҂3;1"2ҍ+O?KjaY|nMHpA/LsI5cu*ΐDx!W {|mpq%qehrYbBt M7uA- +w%5,x+ z!Ί}|%wpȩxeXx|Yy$M}yAz5{+=}5"6~{άq~p^Q~Md~*XŸ~,LU~S@~5 ~+f2T"P{pUIpf P[AE;Z1ٓ0U)Fj"0΂op~7f ![BPY_EE;T\1撠C)k"djpmfr=[M,1P\ǑES;`Ћ1')}"Ρmfni=pkqr^mtolVurX wtDyw'0|Yz>̾jqźjlr`ntpu0rnvgkbtgwWIv~yCtxz0b{x|bh|~j|l|^n|~pp|j\s}AVtu[}Bw}0z~l;fׇ i +9kDmh5})oviNqꂿUtXBEv=/yVǧeP{qgi卞|l{nohLp(TsuSAv@Z/ryX_dִ2f}}hƖMk/zmtLgdojT3rxAKuI/8xσ[c&5e[}gܞrQj.xylfoDSr d@u/x\ębp vdܫg%iwy3kyenbSq@to.wUad`RfWh-xkkemn)Rq\@?t@.wZtf4uhvjxxm0xyosekz.qR|{itP?|w-~zK'rp{sqԜu#svFtgwwtudxw*Qz%x?E{zb-}|Xpzr'zssj{@(t{vxv|cwy|Qy +}>z}-R|~H(oYpq݃^s=uPt;bvSPPx <>Ay-|0m{opzrt?s^auQOw+T=y>,{¹luSmoou{psGrlatqOvk?=txj,{ @k mܖnlprxqؔM`WsNuȌ=&x,zj׫4lgmomqq0_s*9N uI_|2so|u]}@vLO}xT;"~z-*|Ly(x*yyr z$y gWTaˢĮkTd@D\dPPp-HG&]30;sCg( 1DE*n6ܵaz*&>P3ĸg| ,X񦁓`S$>BG DǕu#i#܌-`xJ!wم:(`[HWeQ2UFD`|:Cd2~TvkdEeUb2̽p ʠ~[@QdF!7H$ #dLt!BOK*G-iCrB.UlmO> ,B2W<+367ߛ@ )۠&KO 0ޏO igm82=D 4FB[!AIb4~Z *fz\OtF&ӝN&3xF[Hjz&3n14bM zB! |+ +/hw{V\lsTjg?қ۟u 깮D}û.5ʺ(wM ұ=Ljeo(u\ yPXƢ8p2232"uh0 ;(3-ybݷ3WdsF@w ,8#!H*9)iF^ +P7Dg3I33D_)JQNdOm2ta':=J.۱ +s`d+uu- ǵiȵ\L +kw/i&G1|91:H^gW@-Eif?QF?/KvřMkz݈uN0:ӎ3BJ]PU@׊VVzDPC9>RTl{=EY^ScyjN96b~mwj[ Zl'd}[YގM:tU9WI-#d=sѣS IKuƷ6i/JO{s{c@6oPU,'9cV~M6IQ1WwoT+mlF0\Od?oi4M4MC%HfM[r0p[p|R’/Ld/_c8]׍ YpFKM(Ewo@jjI0/kad[H>|/ѓL |00SVRׂV2Cæav4x,'L82'7&n&CĿf]9-f]i{Ta4EeNٟή"V_ǔ3tf65ҷ, jP6Ex)ͻUSu@6M6dFVSˬGŦwƠuy@>.TȆVOdj?#驺sycA)w,zl<ـB*7ij,\P#;}}~r4fxO"ZhNMBe@(78,iA#FaN}qǖ*lf Zۋ M2HB-7߅,yY#p9|qeےNYƐ*M}"A튘6؈U,ۅ#||(qW,esY!MANJje6Ç,}#5tPcjOf=_`rhTkHm=op2s(Hv "zbtu5k#jl_-$nnSjpDHrB=tytn2ݑOv)yL |triIs ^ٟtSuSHt#v=_.x02y)B{! +}~st(o.w]^`cCcHlVf+;t)i0aldOȯ>tsw[-wnw\-_AMb0ke#SsShA!a7kO|o>#r -v0[Dn^aaShdL%rg{`j哟On-=rfv-vm3Zp]­ `܄cr f؝C` jRNnb=q-vBw~o`^q&ccrfBti quk_wInN1yq<{u8,-}pymjynlpptnRrp/qsr_;utMwv2>@?nC)HKс#Eu$%`^>[ +(?`~^x0_+OËv&"YD>s5x']~-if~>NF" P^OG# ǖ0<7ӆ7 :sXL!kݱrx{6Rt"+@q*7k1U誘Y}(~\H`J䞂\ +52[{F;Onݦ *C{2Hpuw0D(MHOB$vKѻX{'V' 5c + +sh]T4I DGãTD(2BNlz9eB_ ݫ.#JUbGɰ Pc36߅!3?o/˼ 4Ta1l-vKWZApɾ<>\Щހka8Z5$GdW#{{ߢ! e8l&Vlu4ʚ@ԸQWJ"쎛)9(6gf y'1?JL)b쭢l]4LkۘPpuﲹ)nCA Ŷ+2dEH'Hm&Y3uѷkѽӭ1n]_Z<ڮRvӛpjm9G݂#j}dA-uڠ +0\C"dhK>مٸ:IFq\BVhF'$[I&3BtK\ D'`;I ["%#N\I +|?a8+ş3"-Aש_ZZKO%u6`X{cͯw1 $+OM{'E],jz6+~ Qk a=_/E qbVk&S7fg\"&]KOÑ: %ijeB>%j:l=T1e~/ߪg I0^YV)<^ϑ% +զՏQS-WGpaθD8ߠ9D֑ՃXM' +UJ]I"mteuuE)-3`Ҍ SoO6Ju@$ZZǚ;oam>݄92)@m{>-V|WU>r$Ӳ]qّ¸zEYuɔ>GT@蚩\'}њG9mp.d.@L4c&,r;b ӂdlt3ݦ]Q<b-w Nk k bK%H@ j"W4sf|Aa{8c%J@bW\E':Ehsř=}9fǹTW !3ߔ% פԘ]YzĀ&XIkWdPيb]9gbIi $ O1wu_)xS$P)m/UI .mpsf5Uwl}oyh 4;=DUIKSDSjj:?2*w0P4o+G4O6jeu HW)ϛ=ݮȆs51 okaIӽ֒Wo0%>#}?V5N_r}%7 +Լ{!`D}K_4 +!Q\HҽzȔHN>uA-^Ჰbg%+k58W #wi+q0khcuTT[`5Z[`J &-v**cs0:-7o3G(Z!d  z Q}vx'E}aQ#*'viƷ|'in˵Y;eR{E1vikYT24o/;K |O c +Rr_T'UtKyγzaL= zs#k)|OĀ܇:axim&&^cŽoIѓ` +W82K/ױϬ˽^ipuO:JD:WtG<8YJ] + ՄyiZP-|xm4rQe`dZH ;4SX1̚`wpu>7 H2%Cd>zES?+&e{\Q>+) ^T9ZPFV+@l@ A B +r3L2$$x *,^-ڷ[]<**RInpdk ŻΫ :C>KXi<_TTՖqcs.JmZEŒ:^΄hsVIbm8tSX&^ a*Ɋn^m=A2s^mICca|k`K{"Y١:nf,ڱW x_n~ +!f睥# Aɧo(u +gįVg攷E)?n/ؠbdSu3QQIB`\C!d +P,2QC[Pһn`RXYU^',|Y5G4-},V{:T5zGFdx|4Zٲ u'ʦ"Ww[f^'0Xcx2rKJJDJmB|CÁ=55oc/hNL9'0jI. =$!_3s^>pX0]ScԹ`gi9Q?+,O|ekkC)6bf!),MjQZF_Y[-ۈfiv&mH!`5oIxudP#F +P&h_2nnmMsC?wOt[Pk+jnA ǐHځY*zל`L﵋TL01|w:44o(%j̨5YJ_|fyl00DO+/.5T"$8[g)T`MH?Ɠ\fިÕyL/\Zj@Ν(Wڢud>P"Yd'$$ʗVJ+W>pG[^Gڻ2|M 5kci{ZJbILFPCR7<]'wKÍQXb* +$f»~ ^̈́:)]}pA(+RXzE;b1t!9ݠBj` d> !L7gh%7nׅ _Qg1R2Ǽĸ:@n\KX)'WIC0hݤ!XL}4l5 Vh2,?bLb#(sÀytk]:ibP_"2S&F ߆*:/~5l6fݻ Ӡv(l1u;8qi7mL[@Wxlg Y<#nMDyYZOEX;/C<_IfGuROM++c7S +4ƊaZԃu Mߊ]>]o/m^&=Nh̕.g*>d_$ +]koj-]wz`g`@XRSZ^6uV^og~XQ 濮a%{s Tp4{HLydW)YU&R?FD/'gH7yOG +S0᪄g :po)-.XF:e*diG{.㯙nwn.tY<"`7dsSC!x$g:SX9Y%r_']4K . q cYv.㏢Mrm*ADbW냊M1Dqby9mT'buq7Or }yXK8`微.;~1K}wҭrB;ҏޒ &6 Rr*?j䆑lugICkM|vhZYHn8VzQ3N??֫zGP5|No(RGJ[5&Hs)qq}^&2n:zǰkFmP03;7Nsi+ZiӍ ^zs7Tm , zb@p22{96ʄ/= 4)c x +t&83B-(;^SedSy7yG^H@Es7<AQ|h[\jeZҎy1|i-M']|k!3h{&m5&[KiK%}UEk̀u hT[*FkkOZ e ev]G ؼ;GLW[d;oo3xY{OEk[@|l2섐^򒼗F6a 9uUQ[Em'*uWAw:^WfAw:Rc$DZ9-N7~c + +?;A34VfO 5*DvUe_Rqr_pMv]{қ[;f4( c5ڑGdxEjO-n +| g8 KٶŲ]{r3J(?ұqlu;S7qWA}ǰ=o +nxg|GCTpTaH͗O0U`llڤClt0jh~pڱY_,x',IUjn\[M zDBb<Ô]T7S0Co}2%sF͘MQ ś!7fSѕ&.!mFk(+O Oȏ@ W1fG 0JZ-#=qb>@@gIxFz|޴\E=Yg6atҺ*SY5T9vh  %2{}n}I90v zRf8kOʼjVo:*xH3_ 6WWx4\;5juK::i7rʶYAd~X:J1<;e +(;MsrlڪU[y5vw(k +-OlHWeG㐣݆L9sŠFp6i&xИp0C2}TxmCH#ѽZyڇm{+EAaWdVSy%ې8bש"SLL14$Bs&Bj&d@Y?O+82}-D^ݒD(PR{Ѭ.s!$4Pڣo\i(#u"D8 +:]C>6ڒ׶*m@1GQm lìOrusg# tk-ۤ^G) yۂ2b+PgDWB;T+4Qv{9輵;!f6~/ė|@r~EM$,<`2+oMҿ$ȵk뤆)<$\nnu|LX+z-]:r"Xꗺ.KW;–YFC :Aǔ+IU u+U>.+͋;SN@] LUXKx6 ͑8=*U4^qݗۥ>S韒+Ż eLsf v?m!'粈Yv0zْ2GwT1e{BHM, &fr(y)% P Ehl% +$EVDĶt o \~6-s//E 2<뤪t :mbpVn(Q7:ziZNl*3miИ` snX +U\Пbi0^Kc=!!{pwpyKH&Ș/UDg#M@1&yf_sIrŔ\ Bc7HexXltbu!hI +&) ֩ršbps;Cu GFq~~c6RbO'l"<͖z [T0}5y V|EWrф\2aAA0 /ɷW&aA +AK]מ q\kPU"Jѻ?W{j#'rG^$U)~VHDTup7eÊ⚊R"I^w0^+mOXiMi-T5ȝ'N]~{e r5Ճ-wA-VYF~UgBOJt8y0.{KO(vlJ uS0փyk^?6Wc+ +Cl]Eko%ݼ脦g}h0[[tVۃw,U^|}X?4:a<X s%هU)<@ZQ/[6 . 0A=fxIҗQl3\PBoJ]Դ\>[3?,ЛMOyIOi> '|2kxo6oy*Zo9XYifNP?1k𾠣 *_BupֲB[ 4Xφ}P73d"dٮ&<ăT>x4Y"GXF%Ngt2S 8.hpq܏#~2HleҢ(j =~n$ Y9PKC‰/q䢘&lrS1|8+ۺp5q Z(QӸAX!\$$$CsrL2$L%,*OQuOłBuUX뵊]xV~n,[|nC +-bY@X?(e92"կ)fm6@>_|Xȼ L N+VJ2v&ǂga:y*=>C,꽅zqwΣaVbP$Ԇ3H* +|tc^7CvfCUʆN\A X)MȊQrK{Fۏe"j%hCi24.$ҲɹDӮ?2]HMtaPZ+C9J*_r%QNH4r{W) |em}^e ٻ +.v_.e'T)V4(FoUgzf0=rƣ[(hGjKҢy}%]ʟ%(y쭬0L1sR1w^NJO7 نyoxõO`i0)¿6T@JJL#״C[!)9!w+@,&TQ0GU5a +5\1(-9]s41y3yʍ/ G䇫~IĴ41_35g%@.1N§ N̡Pi'74@rz8Z? i;f +cENOri@Du{A6.ѱ>1_:, Jf?/LCNN*E]٭!mq=p)ݍ +cFMH?b;t% 7r~L&3>ﰞ~6slD'9?6T­ϙ^ 5; +k[}gX0^hq$WKJm3qV/f̔&|}31sO[9"6ε6 9K+|dj8a&kɐ=9wUͩ?|0,lugzeU,}* e-^uGSoy77bC#Qşn[,( l^ 6!ʌ>":jbiq2$V1\$ǕwkGԣQ%[`ѐJ Ή `]+Y)u!*5(HIdaoElw17hYxЈrMyA39ScLYgBل*dlQ P/Džml)IR`i?ĞAY訌:et/ ysn琸M>dSG&HPe*p:vFӫ}9|%*CdڌTm ؍θSVkq~VQ< f +CB'LH? 6ǍZWzjxA|+cshi#a43 KZr?'H:m2AĽ eЭdcM^k^Cj#,@DL2I~tHGǫJ̀e W`_qZb +"pp߄CH I&d2L)xʪ*jXEtJJ]EZ_=@XY#>(UT#tgE UO4E]cDix`Ffw0b(U +Y]sAvjfhw@A,bx#iu+E_Xx˼U-EW'_@ce2b1( h^EN +`V[@-kbn_Pe:60lu-'\j|Dme;tHGD˪&աD!ߪ@M?B=rΕtSwo2Y!;DLž]򮆁˶Rf;˷-r0ۏ첸R}"?5#mk+3((.RxP{K$ ~?uX m(U$C[KIl9vL"F]C2q.OI61Qx 1iQZxle_)O&uZCj7$6} A~8zXmb|n^i>]fQBchJDj^ k]rou#Ih +8ЂTc1)üW+-*kxueI~PE:LR] &t-¬^*$M4-bB c鎳A9ZuKDۄT}pp;dzx0w + 7 ? rlJU/3BK3hf@jm1RזD*p֓2O(Vv +ndmMAO;1S`M-a6)N˛,_ +l[c.Hі%Ŗش+#]lcٶ$ s~&b~In^Y6-쪸ʟ/FRa` Ei|o$Գh:)=kZv6g|V'E;R^t\"ZW +YnN'⢒LiK[!6bjnf$=+ *.ӃKvIchP*%zډ,1-pGsD8DC7x&X8e!j5kL4Y &XqYLA)$]s_g^.[fx́{sHq  o݌ KFaa)1$PoגיDO̐Ńwq?0$װޮxYZN8$8 _ُ$`lcZ6ݐ?ȇY+0H5zቔkQ}Ö!~QQ2&P{BcH|7gz9^sylu^A ;RckU>)vQ 8:oVcsK68#7>^nNk_<w*>mڹ3"ΨŢl` D#ޣ7W-#hD:G"DxA4 >X( 6b-X>*'qkxOOX+{5| fP|~NEzEy?|S-2<3}=`[~#ltGPj_ _߷,cn$kaM=UlMQ"gɆ 5iЉ5M%7R%qvLSG[]]M vKsw>q| +7pL=#.[CjϨ^wUOlTvCe]j20uuFfձʪ:AƆ"E*S'_ +!Z:Qpt47rv윽Ys9{<Fr׃d+G1 F~ /bm1&&x, ^ LtZnDz4g?x7o߽06m3fB|=ksΛ 4|K5~Xp%&(*,.0<664^?|X@`PsB#b$ PX<1A͹O3l.O IrOS#?UBP' +BPT;} *~>22 +EOL_~[ g ,v,cy]zFl(}FVύPq㫪J6A$*H$Ρ`v0;f×9zL2ٞQC|QM5xzAR+Ԕ k*xGjsH%Ť^Vaݼr~Lȡ3h5$؋#2'$ +,FP].V!foDc&2`* _'ǹ{# ݰw%{2>aQ*X SV*5r1V/\2dL9x~dE ]0 +^z[AKmILŤSK``;m\ojc{.]w{]}A][UT5䄚T9"#֑$-QJ֙ +(R;7n^윆a:VVTST@e& +PkLlvw6ԷU8{`>5#8-Eʦhc5Ij ɱUx(EUu=XU=ux}{tjG +4a(=Gr(nËqZTivU肝 F7 :&|ؾĮȬ8CLNlG\nt{Bvx~T2?]ъ?:B': nAS+w."nG%PBRBz^MLpz&*T@ mHh؇Dc΢&ZT_Wj 5yI5LOї5m + һE/`v0;fˡp;ϙ־A}UlK8SQC#kדtYFUVErAF̾!b7E|{e wY쓌E8T@V4U4<7IIiA(R@: j:8vug*tE@EQ*r 럄B; !rIC@V@]_ӇQ5UW/)aY/-Ry%F2"  InK/i"tY{p8d|Q\Đxi'6ĩ/UUi5gԧyebLY(ke&\1q(h-Ev;wΛ6 !5kC(xH@m՝N&וy UFeaf5n\+#$,۾.wAڐ&T%_}ؗY6"s 9G&j ơR9aWLt~-m ANv$&! 2p0t{z$?5Z uTj]Ġ`9t& f,h؈!%gS$&T<6ncK /'z&bp`F*8b(@H3x!}': yo8IP&\P{C@Rt(ɓʌ*rH1𵐗&dx'McČ`$f>m|S~䃱ؕ$x0mq]Pe& i#eF6AWB~8QChiTɞ <|]z[u*nz!bg9Ԓr3lq Xr3" >4SPh=m@A8 {Ͼ+\Ǖ--F3a@4M6;ҩ'Z8JԐpjj6 DzQ0'չ=;Qv(X N#0-z#}2Ң>ƾ#Ahw8Vw5C/[r:mU5fYH7H)N6S PX'>}<5ӽe~y'NNdtOݗdjM Z̓x3YAdECM&-ڀjG ož>ْm\-u ZTS#%xG;Ѣ8]0^`#Hƺb~ںnA-9*ViTR8 +`'yM>aATm#GђZVZ˪ݐETD_l }mϒdo8zPc)VdjGT *:YϪ z*MSqKP}W7K۫Ov*om;Czzqt}JeVl|eryItV2j)kb腳h ?|lIlN^mzQr}\E+ݫl([Xp1ٔZ[m@_Xi䮠pvfy?q)?GZ3=@W =T2lvsdrڰP챢ށzE     q5YTp +yOCŻReb &l[Ghmb9M%>]8!p~{gkl’B42?ȩVnI6 +e%2G-8o QP6ncN/J/FQ&= }-9>#, +>nƙ,Π z,>3'ЏԍI6Mo$GWdosfܐT:jGyhKڻ)k[Leٓ#ceA>Vl oiEǪ2p˪lMe.{J~IT"Cvnc53}-"ÐhI'ِ,kHM"D[YjsUZCM:fD˂+)U +Naa␽Zfk@ 0,"IBLtrAlĐ  N9Vr:#Q1ha x!coDjԀE_dLqi&]8NLSNIS/)WKlƜ5==\[jTv]٨@(WKsm!fwO)iiLڤ?鑓#tɕOL=?ٯ9,o9̳t2UAP@C6-!d!@ BB6BĂQDkop94Mre9*ӍRMd0W:rB5*G1GRBd; ib"P'dh8^`B5yϕJ\ L΄*nW2b߭L)3t*E&' sdr* i@s?/=:Vh,~ߗ;{u15k}6EnA;xobhS$u,N%ɕ8j 'q/qO=`S)г ,Tרs=@o5-z$^˚Fk3(lUA?5(!4v(_uw1ff:w-}hXKvzqAOQ NϜ@:&z$B/ $Gc*8?z0;ߗ]/ZZV#sY]X&qzlKNCd P¶GFޜ=;èj!,z5ϥ+D`C^n"NJf90 2?}ɉ=yΝi*mJnL6M$_e A ($eEU Ȁӏ^9,>IoGs}YEHBWh֯յYTwL3rS1MOeS-)*d`[hh%؝jӣ͓\$|[XRK@-_JoЌ+כŋ8V"]?/&{d_$]B?,kʯ2xF5xun#s +[oyDs?{how1,8 fL?CVAyE% +K.?)-amU [5[ڜȺMtM0o?s}*Ϝ|-.̩ {JZVu (lIneC6%FQnj̍;\M{w 564q@p${{bKXQVx &\^fA{O򒻭m.B0b @ħ/d?4m/o +y0wA6kloz=vVtbd.RC{,DŽ4]@Г zӁ4#L#y,xK|}]XÿC>A𵲇i6pD1|܎,HψP(@c ii@Rq2[eaU^FR6Jz!` {v' fQm)0}^(6Rc$5 (r~P,y9wM:(^։gDHDϡyl"0A4t!5F5bl ”#@ +)ۚ+Ou`;\ mqׂZ4++'8bqu2ǬN Gt$ F7 G,)O '6bgSo/+WuQ.mlc`rj($oQM +0rIF?i#@I_S>8Z7gW-[ܫ J?&[1Ck\B"mф;[ + 7qD +$fØt;Sj͖%qzfg,;-^Q`-}"ҘGHv- 35Sl.J7oÉ@ 5pNgmwٱٙmu*ꊸ/#7H NH  @HB\$77!PxE.ov[O8bD>Π)Q6AY-aWjLGU-oF7k1Fj@3\=ۉ <'#Gޙ?uߎo qxeP IÉh1nzY=Wu Mզgԥ'(e]-gCGi.];^ɹ>~o[?) oOP^M!=aǠtRl69m^rU4\ O%%-,O]TB*s;?Mw+Pmv{ւC)#HܥO)ih\LC.!K'b1 HQs.w{ϟ/2Tp c6#s6"bI)i+˰exVz:;9 sYAnSKG?vOW{$a R*ը1o7l ˯WC^kh+qf7 :B|J+*u}B2#PCѦˋS%e*:g cCh܁li) +`Fm5{kï 5!>s^sUXt9UJ厓7YΆ-P7 $*gz0W]yl`\:XA>s97<5'&cE=ffӕDdyix M8ZH6."4Fm Iz9)d1 ź F+)mju@a7gDfFiUcԝRڊXxi>6|XG/@@+$kaQbќ0/nMҋ]%:c!רZTxY jq4Fּ]Xyw?=5a'v:u]㌵u=,"@n9 $$!+E@AHGBBpEA."(hA P뷙ӗ}Їw +oPEiԑ9qͩ[ q)Q<\Uh.gY}WS(35QEJYj)zS h/Pk<^~'?aS| A :8}F/R+|cha + 4Y^HjZU7 +[C1 ?w<}Aw{_Kyē]Pmp\+ؐ- TźˠRVYĐ[tX;-i(i7[9GPq4zg6@0=4kֈ\c-MANTij *A+7V |ZQ4fmld/ 5@ +ݽ#]w̋Usri07mN wˌ|!WQRQIc fWlerU:Gg&{ q? +n. |f0rg$u͚B869A$Vˊ:bVoi L,EUJ@!Og)Л@v4>4=A[+g $fy4"nv,9r1gJc:5J-AYL +:J匞Y*ϗȭy5Zg!W6@@6,GDOMBӆF`+٘^-+*uj/iuUcnC9K)7hsz 5]Nٰ;Td~>TJ4& *ow} u?zXcΑggS+~P2u.3MV&*1Z,_e%I#\iPpYRg/PphmsY}~'kGs4Tj`ޅX~>3en؈24"y 'ʸq~tZh/5kofصOa8s߸F_$@3q˰>'n9;7^^^=1.5?jD'_X,D,Qn?t/J\p &w!ב0؋gTStZ*j| D„=bCB3WYx{ot}5[,w$ 4LBA#oaQQ\xąʈ}IHNK ȇߠ Ke's}*_};v$p;$p\,1~ ?$ + + ! +9~|?}SRwp^@YH{VDrqQ"Ş'VpoTU$VdDױJtzt +*BM"{i1a=~oضR[ Q!q/eUV.yVH[(`IʪYL 1KWiE2c9rg0]DgQ])ܚd]ѯWiMU}:o@:vN?ćѱ@Fq?.[cT(y1oM70œh~8Jh.#lQDҭWF[3j;E#@O<~.;YKhk&qtd=rT}J+zPUX}Ψ9gTz<#8:<1)y/%O$yevUm:>Cn^!R$,@P18Qr .eFҺs&o|<#AD1@q47剜_NJ5yvAT8a@Â*2 +hc^3~13JEi颸r!:Aj$U^NMrs!&xt~8ۀ>4@sWѴm)9PV-kQŸiP8SYFR4c4Kl] IC4<Q zás!{2 ЅfNxfKH~JμΟuF^4܊prfJ@г:6BRBd +Am-[[ꍏm@Ch[kd+>~r`vS!CkBD+Y]d=a&JD;Dlw؛7c_so` + y툈z6tk4 6֗7Z *-Kآ&%ת#qfB׆cʡ2 GMTC?.X [ZH5:Wt6譥dUEFIҬŋ(ZǗkxZ,z0= >=P~?Y9=1y~4tV$aix%A!jLsLdEԶrV!tZQ<s`i ,{߸?xQ#/Ne`%zyx+UnGz)xVY'iNCV`k"|FyT&`y'_z>#n/F\Lz2Cs/)Tb%Ӌ\8yU B+|Ȫ/: {7Ӟ޸ho;A[,8N(V'O7* xUzjޝ;Wd(aCV%l`PPyp<}捑^gՕBkQG5wa…g7pkŭYlhd˿L^b/IİK(9w} ۿy7S[Zh=(L0~l.}-ZYn@."@P +gSDFd{W5d˸:n8 \o3K>^=ݻ_%%4$&8 j%| A +oմĶ^Ƿî:fԌ& 6-LzH| b?ӑu[}U +^^_b6QYU82Tݘi-434o'iͩZRn +ZoH͟sӹ?}W>ߪm7 +b#1en ?#s"*aQ{u5k ixtJK} +LjH +0}0:[gAM vtv3tљvZuծ]uC;rCDD @ !`BBHHBr;\BZPXnŋu ؇}f~/76ذQ @Bbh\Yuun^R! lQwLs6H-M{#RpRʒKʓ7k׌MrM'?gİkS!" q8@& xw3KsޖG!禼:􊑟 %X~H<齾vmWkaİu~AD +(Dh>F,AC~I)o|J"&xŭԤǮ03bgF}PM}3-z[6|ǓoK@C' 룐A PtD`#c{xʢHjl80bÀ!s'<jc/q/Ӄ@ | +8- QMxFeU>iHR|/1{.K<['-<+AIgPW7 K g + N H]iD/X"IYEMo( +g]Ytd_6]8|pR~ =)L}Uz{@ yf4HsRA:VPRX[CYqDu*ܹr. Y%3XlsZ~=*UN^i\U^,t{gP5y - AEr(ӣAeQq>IY`<<)`?5Y^2]b+0gnϪn]T_\Vc/=˚%>x[@A#I=,-B- g Vm<Ǿ_%߭PfZewJ-۸?{5# %SryUC ݠ>Ф'XʂRlFyCrsTI0%ŭҐǞ݌!Wi KFMvWZfC?]>jqF-VTyl?d^6b#Sl0bYKO̹4KftDuE5spx!DGSvWLv|j'mmcUZգ_E&Ѕmc~0 ֑ܙyWk:nv}þv sv$4y4A֏K磻2nuJUaDG222qwQ؃RpaWPgM/ uLnmXivu:3_0%yN䍡I/ɴQ:8nj %bP,|Tv@^@q;$8ΐBOGhOtP___r:!͆i`=li_(x1ra q#Ь$ $v@mdx8$ F{8 +;("a)^STS 7 +Ә>ɟAdL bc!3쨠bUom`kRS2i@1ȏlr>>^@=͚#K+ڴW+lc4`}_81CQ~u6hxF 0l? y;H !?)|$Y"3?iV徊H!fLSI̝Itx#{vMH!!M@0cr?H+e.%fNMcH͐/dLk V-I9wȫ_G 7^P6P%Ȩea-\`XL)jYFX| ך3"紒jro/&ꀣmjv;!NzA1 +1+d)VasYV.o*X0N?'Tg<'TZs{ZI=yw)=?S4О\ p|*N{?(ы +Q#eMeXqiJѳRSFz9XFRwOMnUzwOqKqOVgKx}E5qcu(:ʢ2 R^P)R @JHC"BE0 A\ gnև}99? ^!HyYz@-F*#1KcH9}b_Rh2/s/gf 97y7 HPa 0WRX3aA *v=A)%(j*5ybf?7 +@\MH@2 P7]APeB<*#q +r|h%x\N/bz|VViè- +5(n@ +^$k +$ub +wkd߁zf0]1>F)\d7KheRUr:[Dx%2Q5I%euaYI+tJ^%(G-il \~NSyU0.FyaM𔋵dCPq d&؜L,QdJ)BJ)dB֋$SC wNyߧ6Ʈ6/> +qJhMIlm"Y+q &WQ%+ŕm +Tbs@@ӞEoܭ-~b0䤶2'rą >UepKyBBc^3XVVIqUz1 >7O;AtzB;~ICțF-LZ,8GK(^4#J]cz9@YA}O_\;nzGPLh%%lƲ.I*\Y(ؼX%mK$ik ^-!Bs@i +?lu?ov9цwD%HS2{31| +n)c!5*!/Q)Hj&I A |sPsp3F>M/Gl|tĺκ>mw3ȭUNӑ98żbt,Bw2IjVs:L&9Z&9&^ MaݕɤvOeq'Ey+_hbh'GDzCȺB(kAzE*f5Ό0"4ӌ)ftPnjXo]+o?سB쨅手e36M$Po(u +v02`Ry=0^G/z*TN k㷩a#3 +sr%ۿ +Ve ˴?si1ߓAԇaqIw3SY*v5(Y51讆to40xQ9rl|Wӆus^Y~mKw|NQ^#Bqsғi1s̈9Zn0/GϷ`{|{cn[:6-2vk-oVZm-FC q4Fcqƴ(c j&Rߕ}L{#}9,Wϼ3 , S!VCfi}ؼþMGNK?z8O.{—`bc?[BD/b>bSPo93){J<#}Yw:W@F4 WAZY۾[hΪ8,v +]#xA7̀}@a zZ`C? O-"ܖ#>65ڷ;2"{+vM%\ -ypI^vq2_gQMg9=ǥ=Gg>(*(Ȏ;Hd%| ,심@EERVOU0l*wo{_;Ci zCg н|_H)Om;ݠ0ʃ]ʬ_Y4("65p`63q' ܭc~3!>G P~؎wr+ ..:rN@uᎅEc *lظ +zHMQ xzAԾDkW pN8t8@`s$@fka;PYln "b HQƺoc.᮳cً9 ܹ11?` v뀍5}wG!Bj/YD}鈿S ++5wqY.棇xcy/q14o(v7kHx AAn8x|A +e=1ı.${5pנq +&+0ȋ9 55l eԄJtJ{UK?Mj>"k>G>EOsE7ڙ+2k1`0)쉑KxP{ +]D#؄t +J2:xՙ&V"_8Cj71RuӲ +6YPsMҹ>jY,BOz;[Rd:MRhg75V]={__Зsbc kAENBv?k|?0j78H89PE +-aoPoꤜYB#k 5*a\pP&k, +E|>O<3KbXC㟡m+y~oߛ`b<&Uȥ\59颦lY€VɋTg*uũ 6cdJ3Ft@6cv`^GKq;}^] +h;c;H N]/eS  VUfRe $7eMZYWF0W-3|@oΗ l1a ؜um%]V;B=vB\pW-%\gKERSy*ʐU(E_0}&79 @͟ +S߮\tncuO:>hp{+!Z#9RM2Ǫ* KH)T*mN6M2յ4\DgB9_2?B p%MumwuL@#pBA^ ST::8iQimlY"YY9}^Pd9(R6 D)LI3 %8)|'r2$E9)yW ro?(}Sӑ) ֩ COǥ]%c7M5Y,iY!iFy-_RM-ϻR?{9,Rl|RRF$5tYqE7 )ɏ<ޑ)  Y4PSF5;/xWg-^f72.ԊU!AyW2*R/}8Bfzc%9gʥAgjĥ:NwJCrgECzu6Wzsmsw~a5eJmN qȈԪkRbWH:&*_V/+w_rDgfIkU[4Pe1vGO}MO@ٛK_omϕY' YwFHNM?x=G_sb:Uݔɬyɮ|ɭRAb/+զtU|J +WmR}mNW)6'|cDŽ6%ňw3\Heܩ%w_J{1 GV(d2*uTnVyxիE5.vmyN5ҏ.b< >oDrZc}[-U$rD$j {.TB2/^#.SjПS3gi{ݒ>'Oqb_B]\~gݑ&ft{w t\ ꨎltz9)z68D WoZ?u#ꇗT ,iCzҏNF<,iQL?ЛO`S,W}ueyUL+vS;3$~S' j#*eߩ]o^T,7Y+O;'=#e4@ӑ/rdbO,B&xȏYhuX#wvݗ +C3깢L!rL:{NFN&&%ST˴}P<4Mt +/fVwWkS%*4ҩǡ; Ra:6p`F~ 0cFnuF##G! +E$Ks@9]0D Te8v,`X` N70I>~ r>ę["fȱ2E>ރwf6uw r3W)˕ 0b +WS $x9[LkpXBA{c7$;C#@!MO/ X/AbAh)c52 +E0"Z+l xj=ir$5w« /Urc3\嬃hD1w!av%8?)b|Jؠs~S6$ o=OQ3MAdpm:f2ɷ@Hq$KˡS YeLT~Sz7I}t _(Âh#t! NuM5exuH،x1bCp = Ȣ{v)Ki5)Zޤw=@0A}N7PF,`Ȅݾr<`&OlX+m$9CiFg#Zd= ̠W5o*oQ+~(F{.0F0Lw$sD% lggEw:v/@2ڿ.bϰ=l.R-:{RUp#V$BB Y$9Y$0Baod(PW+^!,E^y>9/yw}qzP!qO( CT=gd W o#oŸ_F M"#Q/IѯȷP(7b5. 0w~B~`9PXT?9; @X\V?, !tǻ4̡Y%ԴjH#uz:~CCoX}:No\{5MU?ͯO+r3nwfB` 9HY}LpuD(09ZMF5M.t+y&A ?,'L2򤨈2% `uM%;Ěsy~QC| %'bzjb72zjRXMI\I-)'Kb mB\@ḨOH8Ww~rCsk 3s63Q64r6[!¶K&~˙F"D]?L 49.5%Y =7pH`1],Y1W|rTMOweC/0m|L"H +Qo\JhKٍU}_6HϵIӹ{n OO?|{e/ʏU{Pu''L٠KT2^fq OhgK ^\RQ?& +lLjwxѬw݂{"YMв֞\;Tw}˄ nʦD֤ctB5YN7)S92 C'NEEC,PGI1YR PJ[rY¹}'}K5Uv Y/Ηg1c|I'SCR(NYd*R!Z2_ɞ*!hTAc2px3H]}=@]_Y0^}gwt# cOU EttAVJNSrY&U+UJJE1HaU@5ikwxN|ҹk5zC'KԘ<^-j3$/K5u&-Qp5 J暒Qr4rn,Am@7dK[>Tluٰ}së otxՕ`ߦ*P'B2p5 (\R' G&w5\gZ׻^<|}WwVPr9꘩{.+a%R!(Pq9g83mRa. $rt >SWV:rk>WX}rKEGK 2؀9ZG@$Ub\TDc+شB-h.YK}6(E[%XӸ$.wBly; +OU+ڼGr꽳ݳҚ7y(n)(A=Ǯ52:ZVf$+̂J]#EOP)=@/q֯/qxpoӡrΟ}=K+3FNȺ :VMi ӒLC5vDS7<]~QmP.rF/Pm`C߽yݏ:6Žў%GVg  uDЏ fB)7^^Lu)6Z2>u䝆c Ъh](VED$ +*d/FI + Œb#ngT-.uGܷ0n +B39+r?%RC]9˻RzU.y;w;l`Wqy-g?cS_iy=*| BKZJO6>b)MSXT*4VUj^cu:ZvctWn`>ӳ~˴[9N;W/9'%j:f8#mϲLviTv:^֚ۖǔ.[Wd1uV#eߴj%?Pbv$k4mv!&2yҶ]7tG۝8 /t)]8IWN0׵^bvWrRsLyc?=*˷ /m $KQ TL eP`F80+c_ĴŦXJU$& U% J>=r25j"#C##KnD]=q=ɑgDGw>ѝW!p|!ݲ7=^Jp|Rq^>(9!Q( HaY1!;BG.;QȞX?2n )~c3:Q/H&à r"d(|!/1B?T`GMG b ֶj+}<Aw#` 'p3nI`ǃѴ(ȦG@=# :d Ry=[9}Ʀ߷ V|aStD}Hp GP''C>i>ԓ}<9S|P6%_z=P5uv1 ġP/r. ܙIH@Z^(%Q| DJ/&8X`a:$I!a xa;{K!Ȉra93aӡ@ +eqqu1Syn-\Hnlf裆XT?go"aHi9C +crY3aaH @FVҖECm<$ 1n&x k&i}V3 #~{Pi کaa5, >.A C+Ĺ!<20DC:oe@Xu QS|pS\(nD{;rPo,'!6@f A c8Lש( _6 hLj] +䛙āh'#NwY3a)X<,a&Fc42Q)mkD,Bg_ ܒZTO.P&6+%_e- / _'E}4pR4Bo`,L\jV[x~IvX%=!+9x-7+__)[T-=YsSn\V/*G5f. 9sPl8PY^X#*EP.r`i^|onI)k-筮EҗvElSecM셦Y֓~G>A^W֯;8"߇UcPwGs-}5bc)pڳS2$kw[4UՇ5wtO7T]Kzuᔦp?VM63rz\?Y Brs9z!p2;ik#|r[a[!g=,Ʈlׂw1XWef ƫVD)tL^Nn?Γ8rFJF7qxg3Pr|UO3& S5`їƽ}/0~_5t<᳷9h[C䙆xO$_TN r0󖻍\g'9YߎAZ-՘MOd%LM59U}v!5J@XĖ1fGyPdвp.O80v9f< smOvcb8fZp(%-$T,,5K34HDuQP"KٗdZN<9\vupdi}{>Q `>7ZNHM$RCÆGda+2ZB'pĂp2SHr] +j yhC_K^hyb5b=lО# pQ,[8XG*cE_ODNCVNš)i8GU;ۈ&_HfPHZ!I!q"EmB"~>"pg#!(Ohg3aNQ4NB8kC{-!v,t5J d @T~|p7c1?#HKAo*V"t@' @ P{}dY7` +b u: Z34b(@,i!֡%`D(0~N} G69?CL  [(B[= q.Ш=4Bqq%xg`]y=;{5x5,k 2)Blp'0\Wx@c2;U ._ QM;#tp[\6scc~pG{ÜʘT e0} 5alZ(~'gYb.cny8=לOO11v +{*D̿D[!އ-L쑾h hśH 1%:K谺8|H!rP6 ca=,(^%~wBx/[bE܋=!9a grܑN6C=ڵQTUnE/?%'bW/wsᓸےRȬCAIɃL;8bXɜ!|n>sZzs~Ē7 ѯ4[؝>sQSYr_?ߓߑǷKWҋayu!CNF +;ڢ0xǡؐ|Ѹ#i{KcmJqkjobMZ:Oo tgw%;y}w,p>zݭB/M6小\!8D߲^7ZՐUPq̸%5:=iszGRUgcefobEf +b,g":z_Jמ 獡#NvF:unrsԱLvSQpxWZy}&6K&w*簩2yCgu9Irr{A"rYLtފ#oserɁ`{&^ɛu6LfJSdSy:qMP\Tee`KBE~Cb2isjrqؤϷ&,%!T ; (]@{:!PRB( R'DD H*" qwPagȇ99ߒs9I$(BVK S%> ~"^=7y^as`&ETSYAʨcGq'y3좂s‚nÔ/.w-XOlDde1%PD _*s:bhqИvN~Vqt`~xv>ǵ6Ç_TSq4Һ"މDnW49z)p}8EGדrlD@`VFExߡ³JdT=bH2`#7>"ak{?~л>;0y&6)!3)l09l:`9e̒ (FPyyX햅#`\/X˜pQ<cr9Ut(PZ=/2*PmC|zu;+lrJ'&I̩ZgTn$VlDt_$ X' ڤEmۓJper7ujRzdYgg穾P3Qֵ]SNA&&t.C#I.^hz-;XO#v>c>N6nkRlrk}xg.+98=7Q; pa``4ݣARP.F}CycJO$ ]ㅾjQPpav:MaC/ao,lfʹ%?wHo, ןDY\$o4(^U5"kUfJglYsVXV^ R x_md-;]:fֳ{l`^`h>jd~rgc" t^hXx@@!`CӘJ*䣃t'w9O~[=>*~fnsK;jZ|[=8t#42B/kd@su:pPQD-JSь6t7t䌞[_Ce!S +"gf(`*`Tݍ=.ne4.OH"Q(D'P\ЈhCFG t}JaFK!k.:7ict5A=Ș0EƬ_lWXi?M12qJ$ވ:&$*eQyPEY+:긺 (# ~| G E 3N:8ͺ;8Oz@5!8&cǴ +|5;Gk :{nq#x9g 8fӸ/<.ou[@1?s!p@3 if o^9-j y;Rf5@nrv' tR/2}e_^S\?zqfLxÞ7$>hp ANAF\2r6hjіI,[t;RZq3~.Ӿg\^3E&$ߑN_%| +, @`iRkCٽV@8y5l 9H:ff +(wĬMқ\?'?z u:Lw~v{ S?xJ;oe;5CB"/oSlKlYk3)Nd;9ut3{ܟ1N|ʸI/WIs >@e@>AngkJXO]%i2Bӟ֯eǤ鎣2Մ!n 1!ktkk:K7J?(}\[0G}Eb=l AdHQ@[!Mڮ{W{zn4yX)(6~;aj<ⵠ*+6EI>9?nj3qf K10$H 0<_^ ꝉh4 ]\ܒ\w,_!5{omwrqqQ{/3=.iH}!徽jϾ&)id`Oˬc6'vMUE]sz=H٤[ ע/Kj{FܕXRgkܴ?ZWLdUE7pQ=’_DőEQoQ3C:~AW= 1%ޙhFIiV V\-[SOxgWVS{zTg*|$1ZpqXqU_-khbOc/scs^r⦅sx!!n꽫QZM}y6Tvnj +Ҁ' ;#=T>)2U>(I*ي.Q$]qWVS4)u߀`_vP@cMjM給`:IkOk[ +lZ +ϗΉ#j3I%iCibVvr/]$8)NIC5Cǝ/: ;/1n&K `ŏX4jFtM@- + aPBzVYaLYㅘk|kObX3ٱ~&6r6ȻOOG6ɠDW9i"ӽQEhƜ ,0b*e9,'aՖS3c3{DQ4H0)ځPqE! +<Q=0i` 4LOt=.a.ʰ"aDCE4TQDU8 cPf([ .Rn(ASxX9xG r09ACڗZ1Jj ֨IGբ8hJ*\'8(>M\'ot b`8dLT;YR6*q~uF.J=QrNި?(KGyR$%zQQţGC1 0Vg်Qf@e;b/CxbQި$D*,,  ]彂w9zЧ[0OE-z c LZ` +c16\0j +#ڭaMzo0|?@uDЧj*[>*/x}P~|ݣ|ݥBY0< }c% \*fS1wM\H tdrtqƽ7jCd n]7{G}^kNtiD/5D/4Dj=|f~Rc5uԙqIDQ⊈ȾCHrsH }; + +#xZʴiZԱuZ>sx9||񐊵n.5YMAJ"KA 5 *#pL6#-pͶz7ӦJWn]Rc&S٥";H+,%p jHVJbe)Qa^b(,D y)|Z)qn3כ X)a zmVoRG,K)kȫvٕɎ|3LV&V%XU?@Uw(1ſ!1Ő(ZeW0Wi x6}=A{a.'M6eKȞ&!>6!$.ݙ[+tOfUUFW#ȑWy{R"wypьÝs8>Zﵡ7"fi-hgMoKKiIuHl7Iz7QCi +n +\+k{'B>p6?7{qevCd]@?ߓv> eЛbw8Gv廝xw{S;|)W[E?r/~V迒g9jfjk`s@=aSN3w1_3"ܑН]QM^i@AH ,!!   aȢ ѶNjkkGfܵ"hE .qj3/s{{sfW/=4rl4:&eUԉU'br(PV_}P#>NW8,9u >K~i]ԅ܋/a坟ÝyDUD^Rj NOD{Z\oO#"V7ЊwXN)iQOͿjr˹jʺZ\25/$7'6}&o 7}״Gm:i=ic l:;wP^Ս Ϳ㌊|QMD[}fpNۊ<zǷ1tmk|cm_blԶݜǸv ?6OvwP;;ye*pALdRԩ3vΰOJuvuO*vt/v^^ٳK޳[s.=͐^cHzak=U>GhùwK[w@9(+JcԾ"_L+)qZ;@U=h̦E;ȇ#J$ëpKi +נZV7n7ˁp;8]~QBi8 c>H7'""zBJ*'T"}kC]dR!EBXd/48pܑ~p֑ ͎,xx5quoC('u"4c )d $L.9t?$\0Q ‚̷C|n Pݠ}f>g#Ѕf!8w + +W(|!g5q ̤+$a.9N )Br=H$$(H-@TPiwgpZwl!_t1 b v{ cbh01dU!$Ą Va8*Ĥ@= >re(>/}K _2AR]`O!tZ +WR`HR~E$bP +ev0CKq'@7' - r\>&@~ aأ+{X>߀8rɀ7(qVH pIj*$&9f̙!vh7z+bMDbGd*FU'9oTת+-Πӧ<S@?IH䓐0)IO0M_=_3[|5略3h5gx/4x57xk}10=c ֟.)~ HEnZ{4:ML5y$҇V'c0l{nj]^An}SwQDMЮ$M|[:A8n@,ҘHB>#/~|qĒ2U<}̷;u 3+ޣ&Op/Bh3Pxtp_t=ᙨ*рK_걺I& (NBQ(e(:\ Ź77ǽ#g={ U[Zm7SH!zʿE-!ƚ+ƛ9ji&"N}} {o7sY Rʳj)s\ΞMoBVkNŲZД!cR֐ȧ̻$VqSmDcYi@~<4VJ' s<0,bK%!dW"fŹbR~]ʀs> *SINf패';Q̨<Ѡs,AeԽ"xBBZuh)MְBXRȶ[ȯ)\.<9q]QMi$((H*"@V,f5@ !LK@(h5x92NGǶsȇ߹~z}c)̓*u96Ϝ e^*3WuZM?YP2r}mob ZfkVPa~RM|%Qz|Ǹ$~(ŵO%n +%ZnUSOPj8=G`ߡ_ҥhܟ)<fA%z)U#%ܫefeE䶉ò3. ҼMBZ P+ڰ¦9$P%+2-%&DqlZ`ߗ+ ks9l3k2"Z*?﯊"you@+a{6 }jKKKbA*huE!j iTo5&#YP>e~L`C&ZSXQr5\k޸qM>ʮSkMmeCJ)׻_V& *W"5QXN< @>Bsoh\!B-"y3$0T`½z5:<̶ɖøPFm[ÉZUGJ>EMʪ|oHY8T*Wy-$W6Ec-sFF*"odRJ,48X`f:` -ؼbt̡Bpק{+y~š@~,6<_ɮdUL2d tt[Z?tBɐ!䭐\oJީr1p {@0uָ]r]Ky뀨1dzX]ksTu +BV&*)LU*CqP|Ce¬Aȿ!mpLp~Wy z{ô1){˻O9w&)HWԖu㕧4K3!i03"Y3JJTϑ+ r|ȭ^:OuW) {hshF}p|f+iZ@՜#H1\%wc홗.:3.f$p㦥NNzj5y˟>?}?Oq$6nfDgpG p =I=@+B;D7xxK>ؼ04+6g|`rŁfڵCk3eO=IW_zFοC#fwv~Qir +os+ k cLV-&۞˲?f`;Dx; ejgA'зhv 7|fkg/] z ٿկ{x`),@ [ߙ@C 8`64f1ƳGm4c5ȵ4W+jv8N Z] _;{ z LpA8"4```"pP, RFC` +l¥zb'&jA'^R +4TxPQ HG</chm6F&Vjr +l&e +#n#D +eSNCCC@:*"=S,kP%;LQRBlt$js_%nsFΐـ޻9sG^xWSo-Tj}'润 MuyVMg/hF5DӠDdEa0$L!g*Si=j0DG3t9G.ߌzFZd-tm%mӅZ!?9rNGؠq;EQ=QGNZ (M4LfΙIJz{zX[3ح ټkqyVcW\YgCSǟ"8(s9~P~Tx>좸6xx!IM8JEo`iǒ7g`Yûl;x +ʩg[at5#}!UgєPp6i 6-)>$VG7yTE_UF?UcP=LxI ds0<Z@{-ΑR.¸j8]ECF.-D +ǣ_:N N&!Ƚ2~"RVws܏^ZqO%(ߓok"!dc@13E4wкXD]c[lظ ]lq|,úՙ3 +\+ֹM.}7מEIRN+g^3?*I1ބS8Ä́!9&1<&_b7r2Wi1_ì͍dIUTfgT6k^QIɷ<^3{{j϶:-畅w_u+7nJG騘=C<R}ZVry^).jpdI*/Wy`vs-q-[ 5gdBV.YMY2O(g6yK.omZ>a"^.#NzK\ g8@U+beV%y:Ewn_Bu.Ϩ<PD H)#LQA,"tІFpF RD *1XQp]f%'nf=G}s=WR*x-^nAIܐ84wQSQQ;aQP_B61xCTT0^,p̕_-]Qךnܔm^`UfWH+v)OmRIޒ)ܤ޹oEDBLH$ oA26.98]pfnt.*[;hQ]&8+e6lDzBY[Q+HouSEg|2R>H{-H#BK&E20\ߖpQ )qXt)*+4W֕V"ҭ &ۖg:J $\IN^vNWFv -h[i Q^R"K0T꺭bQ#U+,-}).$)" +&{d1pq5k7٨&+46r5 j:^q:(X̝),dEK9wkE5/snAph}OQQQF_,Õ2ڃJwfm4Յlț5{V5d7DbRd+>6)uSu墈&ކ.uCq~hН) +Sxgz7.^܃ZZi>5Pt:2e^iRuI*Knm7rKs=M2 JnHC{p OpCpC:=zW? +-4 ]@e*{磤ϖ)sg.VY97[pp֮(f):v!;ikw۪n{B.^R=lRMPzA]H-u̕IrbVύ>u4BcuGLBd.XPWvﰢqy7N}7{;s& 9:t}C@HĶQc$:2%@`u#BF6_s*ppqp5~'[-LjL.7h2h1=D[!b܍Y?.b/Qߪr#icؤ#7&s,17]Կ+_6dǁ\DU#c$&3+Y+&lU}'|2爦4SJM&-m):S]{ýqwx+}P2 +d.W)6ncmm,m +ib191 qBG|KV@E1aɂ:3jQ!9N,vP>'Sߨ־XԤN]O}&gI}D]\wa% R)i~=>BO͂82ٙ!.g.CX~خe6JlQ*\iTS@H.!y`b FdA@A 4 aJ"cD'( +(
Pϱ+߱}`:{uI ,c`#ց]{I|OdE?Xc{< +8b¯37*535.ClU4-B 8۰::paQpڱX'v1e| 2F9#a[ lA{̷Sɥ,s0\; +"_ h@ |9 fрW2:pb5 a|'&Gq b{̽D|^'Fa7BMhXt'=o) <_YؗڝW(5ܞdZnQcU!-[j!.z5{%-dp_jI:Pw1 d_hwWеL*D:臕fJ>Y)hץ(Sc +e&Ir2j}S_l_W- TC|)3I]':&ͺ(f^zLd/.XBVJ/)y+nd)˼hYh=w2٬ )vQ,yvi%)YaYYWCoadbτd`Π6AfҊ`u ؋M,hSbE nU/*H,X%%.ls>abAǐSN7=p w +%!9kųx)-vbE8{`u,= +*̃/ŖŔ fL7=[+"|WhW+BwK' ,:}mDss^R(shRX\)wPCTffU*'EL;mV1$bل-mWC_^!S~\[~ uI}q-v P߻`G)@N9@ΡKհSk +km N3<:fjm0ormڹ55K֤Uk|YxWWENѨQ?Jw0%wrf@Rɼe%ǘג3Ly)P@w_wOqץu*N:ڕyw[6~_U%1/;{xb ؅>K= c.Ul&׮VsǭX[-uMu^uY~%U4uyqx"*ʡvlC5ިxxŃJs`Vm\clTf3iwNl׶ݴMnc3w<>]لmqN +`TRiyFxs.q|r۵yyo띭}w8>9|nrolʖҵ-ˤe=UΧ䋜o)`"<#“QZ2\b$D+ mk ݾKvxr~Kqf(/]p6Q43` (; e /r*x> ].K< ^9e>gx:,fٌ M`tWDL+p`_+ǐ5|U"wxP w`EĄ+͸EQ"\!dAל8#P ܆Vk=!㼽ay4gTh֩ȑtG] ;z6& +,}sQD%IV%~pYJFii~Nu?V,'ZBsS` 9}yt{\T_b޼1zDw5Q]_Z|#x~sKn)$U9 48U*婄\C"⁒RX?"ZB =zOᨮFgyfG*˒V{3f{OBlMz 4eεFO >pZ`JUD/y:Ľr y̿_ # C{-4k-CF(^ԽfjppQ0f|7\^a3d{wUҕiM դ 0ь]}QNbWT.ŪUV^+1\"h:еg=Փp>j +-b oЫ*CH׵Gh(MAcj1:QLtwxBOg tZf݈kVߙ^b]jP!SXIsGN/l7O3y|-0?a LYB6b>@p-3(.7RFvsնD7ó2?YWyĪw6vXhŽ]ٖ eɳјJgg]ȳfPQ%L^`}a`aQ PD0÷Q )Fal7Ls:q&3sޜ0e \[%%I8ù s>pٴi +]ʞQK @ ?IoUWp㠻6DC{=7ff:47BsP u~ڪ`v? lo>mnVGA '&:n1ߒBӡC U(| YO"$=3!Q2 @ׄBz=HfX0IF)_u@wPlP ( PC2hM? tB"A +kSRsӚEs@a=2`8Ȩl3q}JCHb >$L$)^>8qZt^wK-uD'3Ÿ2q'vABpaRNH^ɛB~ CXHPCnnDOZu T 52^HF"$W셺=W3uЯGnj6{ΆF.f#W'~#{;֫e=֥?:CןdNvå_…VW.D.rah+i 8Jc=a} Xa2bak7lcwݿfwܳmЗH=_2p5YIr4'jqbjQ3o7>xDxG#G퍼y13K~{ԷofÆ_$TT.nTwR7\v43g7p$I42w7y Y<=Aߎ~m1[b~(h-hHh\`%li<?"ﻝAtWΰ)83Aq^aQYpZӀ4ۥWsN)LjK$4%Ygu 煵Dğ |1SPk_yd`ZT[0VFr2zeN +K<׭EhJ3y5YxS}k]|tDP%VHEfuIcQؘo1}c%殺9Us0clƐfӧveٷ͙.J[}FG]z%WPt!A|BT*˗$S^X`EаtP7)r>0Oc m@o6Sm9`ߨIvV8ת\+Urg̬-l/VʣBYNxBKdń3_ ܣگ逋"`~ǸCBGGAӢñG%8XrӜ+wcNg3de7 }|aQ$G}%@~HJQbB'Ry"es8Ba+z|tٰ֠iEU9H.%:!_YW˫mks{H=%Qi/dj )Բb-in({HWFG'5ԗ25e;8a\sI}iqp)2t|b +~VA `T;!V.J亻r'?$ +K߱!u="!{KsH_[p"$bP[*( b ݜB~xmuSv%2MYY^aS̃$0(8qKQ[Q&']%3ZZ:WtCY?֠ȺYwrpnvC}V}^8vw֕z&Vk}j15,(-aW¨/U V]uTz>+C4-(lA~*h7#};jdEqmim2Gi9%5\y볿_x,?:_/aa ճ`>GSʹ -]=m]]@^7^/dٿA0Xnb>/!W[cv 幷%ޮB:B:㦉fz~t.tV.=Q7![@$oGx(3͉OF"Ʋ9u5ctmim##?r>o<Y, Q}hPv ec@¤b=%F:ފ] gBgb=3) ΙmU?nqxkzq 7/ޜS'Xc@ +v>ʵ sH:D&u9_[sc>oχ`|mq2oTh3q6٬܍~Ivl?ᮝn9~Wc2 Ng9ឋ@e.,x p iq6.a]xj_Ǻ%,e%V/YUKʥ#LyFr6#Y,/<爯1E#T{'trcIICm׀759`w +ﮃ^ł_9}PV )x=χ_u1>FH}oM+@ lzx> չle D((`W% 1`A,H@Dņ(< C-O1D!ODQDĂg0;=;{9F 9PY0s C Yҿ#DHNb:D X +ACFr<(g3J,Z=X=OZ8 `] h%+"6!j&;@:5ͣ1n@hm +}k7jGK(]48Zw }0`W.e@~5Gn+jM :kRsG?:=@ON}DoG=b{}`]$7bu)bѽ5t?+f 5(F?C?b>`hUŗ`RwŮ`0o4H%$"H>)k xCxjth(m0k0QLɼLDcOWI%KrW߀|ExNyn@߅BV5ջ ]x)[,<:t6ᑬt7J+&BZ7pC]h2ehTsE9塡|(T7Tj +:U3PŸ@7QMVen)wr{q]yMWՌCkp^øZsƝ{=fKm`f9/c)QDy P+Kz?'\z?#qnU듸c>;sC V}ҮBܾUXfLXD%L3lw`φ1H6G[g\qǜqy,wy"y_sW8-q;-v\#,s:Jvv:;9:wlqfLm|N:h{u A!8bnqm* +[u_epKؐ**2,m7֛l1l5)0.7TJ6 W\:dk\^V2Yg`(vF#9. % }#cwJFscS[ŋ6-X f%YZ=_ڽXU9 ֥t'+mZ#PM88>(cEV~O8qT oDѺk6+Y"ʐ-ʑg{fzmS,maeye//L:}?>4sЬD}>͟Po ;`k@xry`A1Zѓ٣L2eit,ET-RBg}[~=h(1:ӑ (X2 d 3lj2|/N&I I?Wbиlqr1_5׸S3Xejf<.iSGCp" +80(ٯ[u^ȉ̘AȈҢ}QXqR9Ӥ'S E ]|j)ǻMk"-&1sT?pjPEq췍Ҽ3NZ,ҿqBj;(v<.@0wlpvL8!f)xy\ԨLȵ" uyGEuqwgfd`.誈i*e60 URUZb2XYK(nQ@M\)GO-hknQ999s{}b<31=uO\u]D1D[~:s[<ס='ˍykP0e P0I(HҜy2s&3.N#56CiuXShvNޠGGp>36o_kE QY|7jdYc?4bIQ4I\tl-4 6)1D")!ΐc/T+b۵ \z/NFŋ~>\3T`'ٔuy%&G,5E^rR!+ea򗤚a6IѶE +$}LR¤r'Vaܦ 7w 3wY`%Rf5Q|'&`_ԥ;I 2ۭ^8cGbt8Nşi kܭz a5_b[7 W`=.Z +׆]4T[]Mo:`+@. +L p? f' iA̓0 8 ׃S +{t{Ȁ>-fn)Eϖ:4@ro9tXr0y TO&`R3`Q19*hZ]nusp2Nm U{0C{2OAy +vP7A%PJ^uqW}@w&cN7sG80u +p>-*ka{l(H/xArA$upup}DwPA;6yDt3=S-iw8O.ձ]#Zr_`HD)PY^K:_KFn )kp9}5O= G; pKŦ@ ؋+p By:xyDM?} :[KWO21 F.~EG+#ɗK q_po-~#nT]:˪^nb +8K!N>C<O}'iǠd[[k;ϯEf\ wNrgũ!p/394L`""}*/@%Spk6\KÍ8†NQp: +jp2`9Nű yy9t>`:G}vm(/cH?5'Ip?P;2z4.c: 'i8ڍVW0.bfzWt[=h/ + n{h˸_E zyɓTb5 O7?OEOHhq`t Dg)`Cʘ!]Zv{*vkphsѦŭ!CΉׇ7OZ4gI{Y*w}? A/zPg&2S:Qh MP3}:5<@SnT6hZ4uuqUҠ%YVkNq+5WSHOQZ*HyYITꩤމ&8biޡ'H}1 +"'b{d86Gji`6D3-vv]m / %^^%^DR[- & +[v\^'_H {BWG7&3ҿ| )-F{lM16ͱhIbƤ2l}C<@,L\5G$jW3NpZzfyմyQG}*.*D=P̎NQ-xyO |JOi:D'mxZѬSQ7uOg x $>[TujZ*W+F^kSRΌUighUjP yj9n/L]ns!I!X2)!K CmJ,S,HNe'e%9ĕىeܬJiybLR^[(TĻ|~$A& \9 4{IF ǪXnZ㻨1b12h![\npI%\BZ_ +/7+)ەN}?&zAI(^s?dN~7_mSJ<ñ TMAeZ$Sa2s +[jfKS\q7K]*Ӵ'Ԥ1n},)F??2 J/W袙h!kS.s(N9]Q;yIq#IlĦ3Ein8U(1} +$pGn?cUk(b,% J,v-I.. Eu݊#ʘOʘA'GHotE,9g0@X3}9ݓT84ɬOOZqIP/y_,*ʷ8o{PzN-gߑn1>c ӧ#% iJ-,KRĦwIp^4;D!:gk{Re܋$$ӻ0 +Lg6)C8cl7FgaTV?x B\,Il|ଥҨղYeY&rM"<'"*WB[+XIYIoR٢M^s=\wD\C5`0D"83ƹBqfL7JHCvKCviH#iȆe!Ԧ.e.I +^ ̦{~F`8[֘B99c@"u(AxI$ %_2JF_Tf!شzS۴Ne*Kv +PrQ? +_H +\ la d5i!݉tOR r+ZJWޕeE9X 0e,sòb 3КB[m(xuQ!b#IY}XLa[8 l5N /xF6#n7LŖ-lڶ* joAe}u͏Dt##s*g16Jҿ< pnPBUNP6t>2 kgBCfQttR@Z| 01O'06 z? 'Q@86!=Õx-~ 0h兠V>xڸ\[ 9/G0+"<5`#Ha 8iAu#y㼖➼ ŜG;/"WX_B_-'{9ȍN2I{F(;޾^S@y\|N u'^5Mw6'݁t$jV; . ={\\ ry =f +0^-z~I8m|E&w͜>ɤDtح;DM"P2$ydIOK exJVғ;؀DW!-tUU񭸆2Gq?"G@ο\!/"o™89iͦ=zГQ3pkMrpqUFjFgъSm$3‘O"%Cpb.đh8!x ܒNuY"o$[ TY:Sf*/G|6Eр&E :=؝~@JDd j|<\5x]7\uK18 Ψ)ؐ<޷=||E>86pcQgvǡJ? +`>e TNXI(ћ`Pl67HCNI6ܒCHrCEIίx̲\fimc?p}a2lEa$&4lLY(6COBao/}\)A55J .{]8..]n r[ۊ(%*XԱmSӦi3δv!mӴt2M3Mil/2f9ߞ>f&mJ`OfO-'_Ʌɍˍ "ܱj}6p/{Vp\qz܊5)hF+" ӚjLjIMs"fÙ!v43gNsCܠ"\4wYSe}~@DPCܦ+;t/m"hUc*7'sMέdFNfXa젶 i{~0ק=hgnK.UEg_  yyBrpeCmnNSgcDǐނA}ۘ~#ۥ悺\noӝQ ~+BY_٤+Ш>BIN1@QD,60aL@ش æ4g"dGٌt*tUVG5U~B$Zʜ5!M^Z{&Mpݵ6W&dw*&]g] ] ++"\F5uWep2CiJi +zE{RpqbS#uEuSnCw}jwςb_c٘B5Y3xwZ. +וywy_sjJ`&FOy]7Gif-PO՟ +f"1j=d\?_T䴼n"[n~i~-J#0GLQ;;ZPŽ0wn)j2@eE~W9tYV2s܁wyu65WGyu7HJxZ)st~P@1лoA^nhRqp@P>CfdJ U!#:¤zq65qMMKr)=kJu.ӞF D5-ʞ[ +d!st#2ƶc8ia=R|+,a_؉pH0ç] M&)|II74eָLZqhcq=dLO ej=N'$$O`fbI"qH+FB3sH\3oFH28O1p#Mύ!Z-v87 dRLL=e\,'`f< )H\8شhlX|s/#~qxqo n=<9) Ch_$uh +ПfIH^6]p) D"\ށX"vŌu+XEJʕA|-p~I|gėPG@pS%gi9i%ҿL/וP1M}SQQB_CRJSNhHER !|dB29>eȲZfǚ550żmw\]繟њ@ҚCeSeSE؈xxu`E D994|Cݬ`@c\ 0^_o !(`$' NRp>ٜ69mV<Z[9ɭ u;yr)ɘ+ƫf0jRӢ P676 +}@R;Nl_lL:X;:8 u'F7yۀ܋ouQ`= PSy +*_6XAEl<sDw' L7;0x0ZSלV/R"ȭN'w97?=G3sǼBOٌ<݋*%_꺑aуBFqd$$o+%9V)6 *5 Gp-'.o Y]> C+"/NyYG(2ꬢ:lΧq&9[<`_Gz)s 1'#`uQ/Z)ʤN`uSJY1ks4r.f~/Ȣ!ӝ7:WGP3ٌV"uC.b,lN%3_gpqoZ躙Y<8I + ᧾dJQϟ0ԊhI>K\P\͜E140M\ts :k42JC斒e.F` J.$A"gѦV84%^:e^.R/NZ*4؉zzu uawc3vE= 2,wwȍ>6^X㴱;MI(M"pX2 ʏqPze6>WNbOr۱t?63/QmvU揱-xN,+? bIaJ.l?=*q|]?o쵘ݖѨ)nyfQ%*W`U56YQ1 ^GXmnzxj3%Gyg{GFhh:!m3;m}PcjQevlMv`7v9Xgka}9VoE{X^nA+'C %bY(zԿ=}bi}z5 56t38zc?*ð1ӱ#9JYXR<,u*BSPۓ C%(Cg( +<'bg$LCRimE/R. aǜ|+W㬰@=ծL?2ԡHWO,TcNiB:[H+~vHZENһ\b͡\l{Jza|7[ +Θ_!90IB|B\`/.> \/E(TL : <&JAigV29Rz)d>rIv!cv RC⎙!c1# !a ؐHĄ +ѡIBTh0=4W -mSL +'-kzaRYA#[]dK3f H0$h\FFhM04ᘮiBdx0%|09_#M273(Bj+7& +"0#2L*8y2T2E$\Ct2_ۮfFmo^R=|yߔ-}ԋRR-)>Ϝ"3*{$efEim4%wW^zQM ʶ&fPndXVL#1Z[W,2Z2cI>&6j!<@ۖh!Y>q4M`,e,x 9*#fT{RclO8MIE,%eF+amڭku!u +j[5Vm8պʭVU_Z-mߺC[[7䷦A-Vsy\۾HJ1eRl4^kЯBnfs nԢ:D~aj^)K`eổf+]M"ˁ샓4(-wZ^;ir) 㞓nwF[Zi&sMk.:⽏B8jijpkxju-HN~spRb]05g9#э܆AV +xE{M\0pvƎ4Gh 1.::6zIù:bQG, r/ֱ>[#>AVG%h8ٜh[mӝihml҉GccPϡ_ONIt=.9_9%tzuR glf13] &;Jw>%}iBPWf2PWIU̫8rf`Db405nt;xZj~yl ҧp>HKo[ȝkrf>7vߐ@a5쇃L  B,$B&'fѿHi5\Buz}M=żtC:~5V)@C(M44sћ 4棱XׯuSDg-:XsE]>c}X+]`F>/jh   M@'_\h(Ac{)ezO=lK59cnE鄩zj>^TPnBHȅ@B.@!B- !"BAQDTRuκεgzvvnݥ]9o|=y2|k1;nmmW׆p%f.Ōb^pe^wqbpGX}qQ,MB!R}[;q+67Dĕ8.n0np̆vr|'p"~b!MX‘8p1Slӛ+,ejwѽW6\ڔsxiXJ$+܂d'wc.#2-޺[b_77 I}O0vG1QݟP{WH{1jm }=]8c,Pxub'k&j~GIF(}Ls1.è( Qv 0 .E!qbz]BgNtW2)ZXKM於C~ʚ%X$|@5敏)pS=e勔Ǡd#$Jr#K*C@ZԂvenx:) -f$sSk48?&"fE9OO5_{Hcq2Kc^2F9)_<Ay)(ѡ]QVE9*(Mp+Фtl ;|Us^lcQQfU=|ƌsdL3NY)GQF@:,xphRRW€ + WzPW [jƙEsjN1Ǩ}|H@1jO'Pݛz49D&N7@9z_ЦG t|4j JQU*;,:7:?L>fԏ /1*Go6Gg!=GrO4\Q|̒մoѽ =?eiѬ_> Tx +`5\@mj#5uiBuc:NVefZq1^Tr*L#NKT֬`o+&&uh<͔zSy(CC xIe_3LVe(%dtSV@uʹ[hUIѶ +X6# D(ЯvB / ?02xmY/sd?q5iݧg&#?E^`!! rB*d lnFf2SH/!-|H }z+NRi2Bz'6@m W7Dd;灼i06@0{]1K%5edX+aXo/m` ƣP;612@:Xvp {KO"ޣbrϯ.˥*4q~d%dԳճ|$$;G؍=g~Iރs{Ecpnk*>'͓|]%5!qw4V BB%}lN:PBp$aIvg9s~DD$<Ɂ' =Q%_BfjDd{=YpN')|FLN3,19%]`aB.(}INPWʤ8xd8Du:1>J;돟Ч[o pp p&t;1({@}>np/p_b?'v5Q5M+[4[Rjcr}Ǯ{GﱷEsS{^ =9כ `.AFhC+qrCH_i!eWk2[EB ;ɳtUvZ+~~vuGMD]쟀F3A#bÎZ̙m e|??[#(FXI 5hHKS?(4HИ9hb4qR<_Zق5b.@dP+^?jFؤsbguC |h4)ڏ$/{;vk.rrkmOqR-Yۤk#ވ ?;@_e.hza}D Bc>رlÎر;ꔏ<-zUv5ZVJ*T)W x+>hv@Iy _bh4ICgV)B^fUllF-n~TTj{OĎ\봷hh{NC-U'5vk}?UV0īܐe-5LbCfaJh*w\*v:"*p~9.ϔbUnܜoGEچ{hsVDh_wTb-pMD(9IQ&1S9DqpŚjdt/ a44ztc-Mh`yн\g̣:0+*"EPEaeXT7( +.ǚb&Zq_c5֥1xXҨZMD? \{0t^>|߂3s1TG9y%41W1~PŌV1V$ٍ6es[2͔-WJ3-WAMJ`?fr1 6 k`T78bEqgO9+h`U9Kq&(%a,pFIJHc0'+ ?:cx#%S3=|K!1'tTN쉽/[P%5)J)Iq$[d-`.s\ŧ<+SJM2ZbSI Qg[)#Si)ZdQ5DJH5ʜ4LiK+Rm9-QtzƦoԘТKj0;1Ue +v~ۘ7m]Č~2g V|F2-cY1YVEg56@cehKoPxve +G +r+^eti)̇ ߶LUvyWMP*սj4ʳrUS99~nբf@ pWKXN/`^ @8)a3/ffl^˹-~**uv4{Wnuٕ-thFt2K` Py;Nn{7M.v77\ĵ7TN(WRjgpG˽_&h'?mM^!A918P~!0qGBAlp.|7ݾ\Gx`K:9:A$'1 +G f:GMhI ކ* ]{.CvyH8ZZg8 U|J}'|/Fk~Eo#v{n;tk`3?M—Nñ=]|m--M< W8/t?úB9sIm|y=C魇 +ЏF{ok:KkOB<u:=K[Dp\џDlAOЕp@F=+1ɤI *!q|@#q8մNjB)odJOXWGta(V2:h䳣:FGqK]k!*WmWxvjgvBm1<{/H.ΐ}"1++YO䱜LYvNATúuLM&آMG2ӤO<JpW0`6``6` +$&!IsM4I&kf]zd=Uuӎv6դQҺN:mkUv޷dz{>I}R/xW%^սŋ7Zʥc:\G&dQqXtS gb"㙏5;e2|+ +O =.V%?{ewV,Y ,de#l33a*pN79nek4y g((FsP;."7)R.JŎ].%Yˏg m K(dXѢV 2X4Lq턶GIPݦ2=Ke6ҿ7Q׾H_Ny5K/Ib$SCrM6MNJ)&X:@w8]eos[<7C_kҝ6GYyҾLh_Fͱ 3k6Tmqeioi⧣"D{(Uh:D,xlO}fۯ_\DVyFWf/k\2,'XL5v IM[aS4,d +48/QxKEDd'{VwQi> fѩ6n5zqmIޚNuk>VֶJTzx#f(-Q[仗G~C(7_eJ"(YRZ X;TvPљN3eՔ1[(80EQ`#.x O~S +U..HgI*1'k*j;ʃ(`KO>=&z(쭥z MIv Y =DFۤ~&~OF'dDwK렴ĔDPKINA? L!w("d U9@pA҆GI#ydGΈ$ ?KŻ$ }*wJkYEHM%ZcUVQ[cȘ06HD:)y$OyZ'$bcxMćOb_O7xG?#~<Ši1"ѡ5UIJQ٘U!}z I$m8Ms`/68e|/Hu^dD~@cL<0""2 +* 5"(Ȧ(( (8* ++˩₩1n&DQc%i[5ǦMjԨI44>99=Ǚg}T:++Hϖs''- ŏ;q?>Əq)S&ժt"_u~uyzYWz+TXGO~>/~طb-v7R(=zB>C,N)V|^)P+[]G9DFx!Ngu%yab Qh@#`52yi>ZUƏq@Vf*%cDuX;;M,$ǩW5Ġ1 +㱟LVUG$oV*V[rcգ_Ks4g [{/^g A' +hEc)hdc)E +ZV,""[.v._iswr# kG>>wpelwUSVw JhYG%Vu.ZꚢZL-q"|Y܊TVjZ֤y-*s?RwTcxJ1lD%G(1,V aAي /иrF,؈lCuR#~=;iAo m +1 +ǽl09C"J (EӸъQ)5UkTtFF[4b0dǼa1|`!vS\7ya&po +K#.M ̣>0dQvMvD}}GEepcĠ`Ԉ\Ƹ5qiFkUظ/MjzbNs5MSTk7IOsf`f{{K9YeIPfRIIHJWzrҒR%SJMJM]j%7)MG`A,W}́z@y>9JTqd2јTI)& +`ҧ)1ݮEXgޭX`>x7e8نV7m\30*ǔ.SR3(;[9%ʩVdLE(}t jK4l)w)We 7v2l {Emg6k|m~sn0(z8E BװH~Rr_&,K8p.+*.]tqíAaa= Gw1]_5 ͩPFs([\!k\>ZiJɩm*si-䱎jb`;6{[ Vf6SDEVFr{ 6xh$2.c}cc}ǹ}7TGKH1Ia1y5빑oz v^x2 + 3#jrK y36 Y+0;g6~K8N[ u?E\vih2@o!ނ18I59͌# </W/RK ե e_&*F;Djǒ7pjY`\ U +\eN>aFї2gl MVżuؠu <=w'-]U'mu}r uvxa}k}Ӹ_C<ω <74}tWE/JD3|t*Ш-6KANw}eE|y\Y"qyW(29?9<{=;BDzQDJ^Gt<ΐ))y|X5<\i0w|G'X4HG# |4J=ͫ O[;i$Nb''sqbױsqiRM6Z:umU]K+T(L\Mh B6&B Ć m0ډ3??~:w}~{cc/V0]b -|Q_75O op}$1s4WG + :kѡ\i5ϫ~j%?L FX0i*\ъvif/hGɋ*ɒ5Q&>d +eEi׸?-Ye,-5jԪJ-ЬyC =ij׌!ƔiM5a<NjĮ1]ר鞒ה0F,Yڬ^FzЧ}c~,lZsLf1;5mnДEami21˘F-Jn\U c>nzRqU Zju~?>./8l>Xz{f,3qږ)Q)&iU֦-,xwnm~LъksxUa +WާyEit-<3M2s36{f 5dw*nנݧG=9bVr\Ym(TO5wU:koÇgZI"r=I8ce^FːH_mUPY^g8[R&Au׎*X;EuTo͉[=?kh=Rioޡyd,}TckDָTߖۿG.Ljj7T2|[/iW?ճ@su~NB/ ]m|5j RC%w{jc@霑sE՝GT*^eٻހ_p7ά濏YjN~#?yJ +ZUVnTTeOLCS-isCO,| $[[&[=>Vy54ИVA:R#Շ}…rn1*bQe\HnUCe٢CFS]C;'Ḵ{Mb?9WY73hzϣ3N Aۄ%n໣RU_*KT>`RـUA6 j`#e )>s2/]_SIǴ0:tf|0^ B-'F)ՃRuPAED6$dLeHKɘJ 'w([*H^T^r*7C%~(cFgJ D H~hObl3ɘ*QIʤ&*Lժ ըT@aتuL.EL%*Pl܎3% Ce{ˇvLJmϳ?ݿ}" JH%:bv̠RѰ$H@phĈ`ּ>5&ym xyX{g(b5 s/w)1WΣ0JWAJc6ԔG1 #uơK?C"<˚eße.o-q3<{>Mzmx_ShB?ʹ |5[By=g®r'oϳ.0gK2{9 2{2r{ 8|oaׄnZr1xvfK04&{CYi>>椏 ~q>J%?A۹B>zƸ%9j]cF2ur9ACa?/~곟B;i8'U9@mcAg|FW(ćW$ ^~Ea{3ظ!'}q=/XRl $Ip.G&& ҝjKt>oKOlH1ӝS{7$ۘ~S M̫2ґZv>Ϫ@VOS;tF=ğI |ݞpOѩye \0]׹ i"'kL>RXf)'Z:%t,ev+-H|';!.'v5LqTa'&3iB/mt9.hXIdn9L?Ev( ,r5^qOCr1/$v9u&q'-[|c!.yds.3: +On1.̓ي +U2E|$E/"|,||\q7˺LOgTT2CeO8[S6[.R^/i8:4D# <4(GJ31yJ}P\M曓Tp$:`v [6 jV^?!=8-:qHCh(fSwԫMԡAS4>. Y2a ݩЃj +=!vA@{ql5[=0fO53\6;ܠICtgUaɚR{Xi Tkh79|uq 5D,P}JEnGBTaT,5VŶDٜ*e/Hy&)7U9]N%}Ik2*#\gsó֣T= W|$^h)Ub{ +Fʳ'+מle'I.;FY)LTc|Pr:#x>3zhL9eHc_#yVR!: qq)ˑLS,yJO-QZZRL#}R\ z@IGeǕ6|W<h5 ћȅL|}^d+ +W\QhŔX]tȑ_$4(c,J*t=TO\K%7MEF4 gR]AQg]wEЪ(* +-, +BmăD3iFUi;1&ͤNkNc̴L56i֣c,d?Y罾}FL+`WJQdv|dȕQ Jv\*C ~;+ιOcqX^8V±`>( *id_+;IFYIJdT'[y*u)ڋ'/ыp| <<_h&q;(@1τ;~$J ~dʼnJ**@0 :3"$ * !yURxP JlL_qÿ~Llu1JXbPt|R.Fz#ìCH Njų#aKgpK-/p +PH9ĜE̓}O?/Q_µEgKO F+k+:w%KF.(\/Qu`;ϰ-DMT\~vPBsy&1O _?f4`9VAZM.?Ppxs{Ez3r [d!m\@̳p}jΫ)$C7XlaX?X6N`LM6s6U|RMySpw+TQ"͡|ի^3uK a·A? XWY +q/O=r, w}qKCM~'q~g<>,O ڙzb/ku?#|agD:a/Caq0&Xku7F4(8!8G䠿&M sA ";`4"hu&x`x?NsfO8)w /:r΄;M6HhD9pɈH#88rpu\,b%% +~O +y.!MwAQj@|ν:+OQ8|H❧I~E?"sphBp;C->Un3o>$}|QX5=:7j ~{=Hj=k? +Ux3z]W]Rt+pk>\P\fFi3[GP'^uz|:z:~CE0-{/J'i : A ƸE+Zd$,%ض㷋\DKè!A6]Tyxscu9/pޏ#N[f|a +Gb]m;V]a;l/nvS<7v#dr EA+|2;17bۊtf.v#ʎ^DZ=B]F yBz}d%,ã%2vb\lQ*'a{:sυ.#U{~=7QBy5df'ީ~.=$8#`; ۓ=beد~ ?:CZEKo +rzSL9q,Ǭ`#vpFHo~:b&'2B". +8p@wtұkuԣj .3HxU32_ Vq G-*3VÑG&ȃceTY 1GT5Ii +De=G(\jycm+U5qr ?'L84^zJKXk'/SIF-6X3k,!K.l-HWMbHQuOzU&.UUfRqJL/tBEp |'6\p-^~w[62UcJӔjTM3Te|S**7WUV㖫hjͳUk}Eso*!=pm`cmzk.|q⛃SbUeMRŢ +MI*NS5[ֹ*ZS;IyW)7urR٩O+fL9p{HC +U |w*_ԖTRST:A575Kslʳ*VDEʞT5#}2.5-cD55,! ¿4`$|e}oJx  b I5AI*;œVYKfnVbUQyUۺuն]ﶹ]n9 d'y^z|*|̍W%Yety-Y*R OGrjU(Ek +&-V_vl4~PVg~”߬8Ki̥*PfYI(/TzT) jhQjE'Uo@ɾA%;Ċs2T\*>W?a;Rԃ|ǤJ pϊ|THپx&')ʨLiԪP*JnRbuDŚXFwlU|^U կ+|DUݬmo W +TP *1Q +<|.HF3ńٴF4P(NiO;JN3X3.kᡖ&lAĵ)0(41{$f[3K7E,^mfv)##ψvl/ dx:4z0^oQ&R1&J ȵ Ny=/亭Mԃ>!g}6blS|s>imd7yp.]6E,`c 5YQ>9fq/r9br9c/[yfg0% .mm,o:HCYk7f-Pl,`'&'ߡOQ!zt~"'(~sbϫ5*]Msv,!{_3hl<&Bh-TlDŽ0 ň2=r?F(8 +a:tPuVr4%-|4.F&1BJg蓳q\E?OAr3!pFpvR#<+;<au:Qx\(.A]6}fJ#+{^8i=syS~}=*:+G /P]Wiԟ%.~J~B.i\:ops0^/c_>Q\f +4G5t̻jL?~ʹy -JCxЙOEh47jvP}hũ߄3,ji0)(' +L5{ #u̼M`pEWhT՟W<~`;۹v0Ŵi%mx} %rǘ as9jj=7{L`e R5:%.Z;}Q`O#6Zm/u؞{݌VlEݥ Te е/iVқbX1\G.t욱k.l{]Z쇰V+#]Lb +Y:1~6ktv 5bׄE g?RX a2)snM?ӳٮ:e05&9(Fd}{\,XH.&=Fڍc~t!셱ۦv,n/f:z43UaKH}$A+oX&fp:9/:jQ6LC8JdRruaĉc;ǗN8NvlDZs:M$m״ K֭bBJAVSV1Dm0؀A h*h6&.ZQPG'e=:3Hì1V*f젗 c%Xz>A4lsGX 㰔gKH ;;Ѩ$:u42to>.& zg=;6%ʯc³x/U|8fwcniL".|5ը\nsL]:Yuv0-WxZ(m٣fA,ǔVr vM{RaG^{jSWKVZliDҸZJJ[;lWʺPɲ1%(n۬mjS" +ۧ:\G8N +6 +CC7]'caVDY]-vJ~%uJأjw)UԱ@ 1E(llVG!~*h<G +W^k[KBzNUy9-粼u7 ;\MZL3v@gi%r1O5m + ջ+rW]'OWT]HU+ީJ.Uq}\Kryr{oj'荓@.pm4$x#FE[תסץjWU DJ[զ~UT㟐ۿA |EFpJ偋rPOtk#Z!kR]'D~vy*婩&.W0#gGڅ2j<4)Gh/òRYcm݆]h44O#"YePP\u9rWɨUy}4t'[d"kdlUidJ%#DN *\d ԿEسA,$!=P ˀ91B4B6Lֺ"og4t@ mM@mݍ>T𚱮ib8d6cLll&qc|-0'3/<~w4\|tzFaɪ{Yנ6t-#Hb3ı8VjXCc1dOT +3oce}~z.hE75L\=5-Ch,I5$so%{sIFMı817v0&;XTVfH3׆A!s++z ))"ö[/:@ndwt/ ıv?~ޗ}S) +kyR{꣯s"!Rt{^sk^nh +Ƃz8K!Lt?I!q8feep#TxplCN.a0UXR|e>oH])a0K$SgX'0ٟq%=y2ղ1@ۏk#VR+{ @^y3xޔT'Y{.o?$ %KE&<{ŋsgW ml}y`}ò{ސ͚:Lm`VKs%O,~ccl:W {ś4썓dŧpO/yC/s /d"oGG,~~ͤyIKLWW^/}_%Կ,jg'ހ Ufyw?6sZ) +:2qӺ{Esxq~&̳gcۼ8m~v|;׉8iM鑶뵵)F=Cݠ$@cL ILHCC􏩈C$PP}~{<$% ݜ73 0(_fѯ=MgP^ O߰y ކ!$=~7V!Rd cse e:#h$>+xyK+Dgt*sB?Lm* у_u]S25t,v#Wȑq?>2S{R#aCdC/6k*< 3ϋJ\;-[Cw6Н@wY4:0 Gt7)T 2d V9-hm[=c0g!X=GG xl'[p3=ѲЄqQϰǦ![[-&v؉c'vة`;fL$GS\VY<:ށ(Na |ayjiȓ*ʝʕ3ݔ=$[愬epf(Hicc{SP2(:x$!(*n?/UK/w6$gGL*)r F%O9s* rg}-ckl@%!4 +AhߌM-]N9K-uma*$MG+],ljj@iCePPo)CН$PnNS!6J@e4U6]?MS'hu>[w4qu:@zJʱ{-hAz<2Lrr®Y~ΚE~A!ah66@A<0ǀfq&m&А ឦ ]` ta/)q ĮQaE{HYaNaV6 3]Qg6{9d7l[ Pb F +*e(P*SS +J/Pʥj-2 ʴ:ڱj 3Hm-ɞt;oel?V~YpYKbr5 c̉ջc,NY{&Μ&38]p~ᣴX,k:gHL6}?ѯ' v ?mI[-~x;gr!q68wsΕΒmQQ]·˨#rs[ 7c?}&{vdVĻH"8sIKi&xA;.Gd##h^e~WN0?HH3(qe3~VpNEj'[ٜ;nG<$H9X< WU~H<^W^ef\. euqDINۿ^p᳹ϏU6K<`,D$+5>>ɿJKb&>f- | +Ol.>IQAaM2z 2zQ{u΢k~8 p ޿z]uq-l$.%~u9Gem~~|?D~bz":'~BiUh +^VXe]SNڟ&hq48Zj%v؝lj~>^n.NC)u}v!~D_v<mv\pǝ;vd`IЈ"v;;eZu&v;#bl/"Vc(p< 4z"%kЙcp_/;muiG:ў؊ @ENA{;ӱ;arXeQÛ rW+b f8S a@䩾";=}ll>B~ *YoaT1v|*8=ط{Lcz\cQlz+۱ݍ>l`o6 ;s:>GNU QuCt~1lEоkپ Tc ~o~;@VdjYdg:YG-e:5c_ ;~σaWuMC,lr2ژT2c^y;u£)TE G7Y.wmkUh9WJ4fy$;B5ur%X| EΊ}ṗs&o/E̻,HK}ܥx#+iժDb񠂉jO˓˝lSMG;lqf܆i I|HbxSGdQh- ϻ|Iy"QX+3SD~ +& y24Xr5 9gϢ)K{caq+X³Yφ$/"\Cedj(fsI>'ݲ=&=#U0?;ӼMvū_nF5#\O&~mXflؒ! ||e6;A+h9/)>O&d\25 +r73D V:HJW xmǶAlcoC%K"K+>|pN+=`hiy׀)ޅ~F5}faX5 ZZ" +nUƱ3h:Z+neJ;=HYB6BIH@P !Ѻ/NT;նK2x:ɇ0p=!?}f^LRpφ`@Vr@G Aw"0<A!\ŜԪX<71 1 '#hGw_C0" 5m ṫ` ",B",BPGbP !BpS/ t3Ϟߧ"$/0` %:BrXa`F6;XApٕVb\r>i:_PK -:G/Ґ9c+.q|h"|X ~5.5uбFl 0a|x=u04.zE4)x C$Hl- yױ;'jn i\ W8tl-бk؎nA pNlEMlaY6{ר` +Y;y80_w97=Ecg@Ҁ= бQR$Ή {P1j` B΃Vݕ Yk`Õ(,7U +U+'F|` + ^EMB@n/+iQ'B/ paT/D;C!XB"0cr>Q88/l0݊M?xy~n07|cǎ0q)SMs^(d^^2l/WYn_zWl۾ܵ{"ވ־o|#G?>3L6ğ=w>1)BY"D-U5ڂ¢CiTSźƦffpvv]|nܼu}ŗ_o~OD%}y1<\'_ gK"0X8d$ D0QPp)#`@L6-F8n#mO@zH(=&c̾dݽz~x FEyy = % G X'$`(,K?W-=C o"[ ;=Qo;p0ȱ4Ï?!Idr -bXwAWM1 0 +z޻}_>xo=z;xɓOkMuDT__ba~CٖsJ:CR Z G#e&\WfHKi h0a@À 4 w|kfdKeUh_ݯAųs94HASe *g)AxӀ n_ToO*HSoTb.W]ޠZA Р%4(ײ3n膆>nE$YL!`*_mԝ/QsР 4y"ySIfuaƹgc,i0,5pCu~S9Ѡriȇ۝+]xWY"Z:ӸdM3^Dv 97V0N6CC4N۝#>1tdBG*@C'ie$5hͥotРUrS!\ʖrz$N:Ҡ#{脆ƒn#Hi КʷkJ +A˱)sNy6K"cwgI=q:E+6 Zg +Uo-/4CTРa;rV(ՕБu9'_4qbf՚ *ʶ̅ڸ|5ǢT۳,8Ȅ#Eƾt^鎗{<6XjwУ-VZzQQYkF}QLVנϋIh4X$&}49߻w?cW{YE˫}?Q +˱lpWDL|rV\`ƉмVmӰi4l6 m{Pdžg0|ǐ0aV]ց灡F!ʺ[Kn۹l{`?)`oh@lǧ"sf\޼-RtɌ)Nm-në= +5e'#1=0htHh#EAg"F Vh•Ibm0;;6 7`2>A :SvIQĢU]1W B% OXoL[n` `Q/c×hޫF'Jcs_+!DtU3(˗vjYy`xN+1™-x[VJf AƻC),ȗfjkۭTkëK/ck$fLGz(6lj;^i<)7m}Uɰw>&t%4aS&Hsĉe!e;l[԰0ݸ/WioƮOW}/>{cI_ᜲks,p!m,g9@Ov.Rgu6A$Ⱥ[5X=ښWǖͯslwrl$&";$&,aqJ'=ʲ[_vwMæaӰi7X?ښc˖9_ 0tJddD'%x:,&rA>'>\0EEh`NӽGWpkz^`x +Wc"R,Bq&<$Lci7_uA[=kV};Ǘ/ b$fǢ* ˱\PW@i.wEfx΁HmjiHW#-]`0(̩ IHL` HwEĴϙqrxsvB@E͌:yn8~ ^I3mfځ6MmҔK IJ qCwI֣yGﻭѾobKl˖%[^ p(t4uU}\?ɩk3Xb?<1{B1 )ʠ)u +e;5+jK״4Œ^S5x{z~q_=a8 ie/ŴxXj(Q@ӨʨVf =[rSPԤtuEhx{~ {/ͩ0/!=k[8P&ڪY V $7yMRULMogn`##4n%ubD@tPf*haTIȚ^ʸ,oe>OUq x -"8g3h.PԗMЬ] U,*WPW2M~K(d+\+x{ڍ^o_=NioYz!pg'ئb +Z(e^ik{dEDUۆa}B{_k_ӜB3sޔJ(6y +%<$iCPMAcqd"mnf:p~0HA\^0K Ì*QJ 82Eg`*)=P3؏6r[h/w`}o羣=\[u᣻nj:|ͶoZp7ȗ|ImKu:mlB%a50as5ޱwDGI^{Ivx\/$ٝh cD,IFIdB#mZ47"TՁ>m3V?1Yiޯ-:B}Ky/eN(^, +юd,A#$9Z6mtoJZmio=aqS5ݾ|OӂSacO0.v8hx'#TQ*LIHLʆt ޜYޖ~0˪a +аm=ć“!A)# xB1B 3QFg2R!@ R`, }owYr6[iì+auc71'R 9#lD}qNܱqZӝNUzuuk@zWEAAP I\Bx $F$@BȅpAEVԺ9;m-ʶ?*9M8bɢv:jh"(VV@ߠTei4EJtLpavwk}n䅜4~1+=n*(NU +<L;sYINiBx6 +_sZfFGܰZ)HB':!TUr_JDot$ H\$\VQ"Fa]|VaG ^j2#(Q6"*r*&!i"$]0 k A]0ݺ4!>DZр/rz[IV-9~`qL45z]ECmdULDD](ՀOICVt^DA$"C V[+{$SL:Q 1hG 5M|CF^kʇZx3UAPi/  n҄di=ۊ~i+zd%C6@>k\OX["d>Еq]iB6gx;iذ% +gd9 $*MM//uxUakfR2ȕ\o`*X( 0,OƤAq.<1*; O[T{j8lQƒ .3&Ba:A8/ W=hS g4IC΢/}ڐ:=kJ]* *8l]Kh-nH6j &_ciS 3Ҁir`xaؚDy]Mݧ 1M&o +Zr-s.j)kjTAAdGO۸7`pHGܤM$Հ!o?f*wm2~\?h2b۩z2lnʯK @1'TYY0FG)2UhӲ4`^2nK֬f{}Vm&pҁ-ZwZܥ5UUz(ԦMjJ m3GrA A%h4 `Z ЭlVy1>g~ |y؟~uG? ӷmHozޯ'|%:WS 8#^87Ѐ`SӏT]=r{L&u~C*gN{i%8 dp?3 x \aheeh jOy`~RMOU!KrUh>Du38lj,J0pzT~ޡ{&`jmյk˦t˸("R(HɼX&QoAqq˓2,ah6EeX=7eNަ ;63e0uOɧ4]jnH"QRĀvߌ帶la,/1 G#Œaܔ>ehi3~1k<ʞ1tȧiPQ'5D^LRMl)l8q(˛G| 0#xeX+)z 9Ys{xJ1?o'ud^H2kq2,9ʄq00|hahe>o옵fϘ+&;jpQNj$ +%h>鵐ifqfb5\Éߊys&``1k{ڦ4vTᢁ/AɩYL"2B5=+ v:̂*;\q`r!=\= ycʚqOZO:ᢉ/),duPbM97Fz\Wjz{Be7&H΋ ( un̬uyP>8Z?]'[E(fjY1)QUoh"^jN^l^$oGs4o-Ҁ28>u9Ƚyhlu^sKO3;(jzIyD. As\5KT1E7w>u>3mu *].NQ!iWcZDX ޲=7B^UtpQ+.hD2-hM;[l'Apd:d;,{OHgpj]<5jT:hCjJ +]QI%d@ [[ߎA;.}߆w[|pRB\G;A-٤}SKUT*K0)!D=eRoh`2xo.cxk{wt#;]ds=c?bv> k6`B:EM{MDZ"VE +Ӽgwo2oM{ ireӇŢ#3PS + }fj;8wym>3tE`uÅzAQlnwG6{xϫkE7]HH ~5_8ɯs뜀gq+>~?>].Lm`=acܜ>"ˑ~RJaiVUXaS/%(\bxa@ @Յ e nH\tzK?Y)ƶX f#fHvuqҨFą^DJ +a]XH:$?y.d_Y«ѶOo~~ZJ^]rrj[Eۛb.A\Ԓwͽ xYbN8ww`{-CplInF'LǬ/F>-/,zTB^O>{.V~1vtnYHI׽{Bc{C: >gώP:}$%_z^US~nˢeϪq%kҔIe?R˒6^L|,Oxri' ޥ^y/ >9}Ǿ+22AnB:@$dPɈğ?Ǐ۠d~u9;3'ܝd}/Ds;d~>O`?T.@WY4v,dG$xPt2\11 ЧO| @<(1>0nN\x??G )eUMuƥ6-k8b#S͢v횮馐J~Ү*`wo2`i(`!8):W@KD|Ъj){g3Wzǫqdq 1>, Ay-"8YhfNS%o_%B)X7oǶ;LyeT;- DA  p[ZT ͷ4zS>KkL7tDa 3fY`l^{j{~8 &x@ ?= +R7 +EUne2^dQDLr9I[M#D%@P؆~?VN8 o @A$o @ (pM@/6,qkًxդfu㍼*d %vk\Cn\ӂ9Xgh ?)lń(9 +R7DkPPqKf9T$Y?. c(w 5A3xی{6gsv` ;llHklԪa *,ђY.I38aOr791fkpoui6ٶ0 ( KJlK-Xo;_*%/K8 P*cK3\iaY< r|^|ǐk2L=>_USI;İ 6mNH OHT$+U=Td웒rl+Z3! 6?9(zI!73`zѯP^e-'ڜ2a@d#LҖ*1:HFמӼ(/J pEHy,pWt:;7 ^)m.3ȷ '=Zs&6qg +6q[ͷOG$$_py"!hgT6! !E f_+Rl.[buũ@36.}"~'>]W6SL + 1f񌒢Su<*qOhfuqi6gAm8%h?w=Oe4Ĕ=1a$P[k匭sH_g7)hv!oFVϷ0&96gtdul`5( _YT8PG]s߉5{4;~elH&{aL0Ejm<,P2|sszl e1- +?N٭s׏oPʝ~w8 JW14Gu'C0VЮ#ԫ%JFWV]R-fE`%la*2 +& 7Ym((C U5XB~dgr[7h~ }hč87w*A?:Lڞ64^or]҆Xѝ&jL/RiYvCA)Tu6Ae} +{48=?pkbPVg(3]BGiK{hnzicgXeTCP T!١} փNt[>59w#;vމ)/)+F $ev+Ӥ(󻒔.RPtSj]Τ +eGrJc(D 5f&P}j-~&swl&n.Yh)YQtвE~Nkbr[iWra;=VCjRic.TڄjP E &P)46_.K{OkVW<>D:Ewa>r:lHd(qm6r[uKT[|ks+AutpP.0Vhaf' ,լR:!]: sep1"@L)FK%tەYݑ@ 29!kZb.zۖ7.nޭY["B>ߝ1cEGC z)?"WWc{5: DUՄ/ +jDA?iW7lZ7ʷ;[%NJd&Dr'IY\hR60r-ʺ6WC`}UI$P,1oDAÖ/V:eņ-`,oY/ݱ)|! 1iTܽشDιt^73h0!-/]6(֣5~c#턉ӗR05nl:CLy! a1Q_sOq!)%5#03g!0̃T2^6:ע4C_XW L: ip='>sCa@Ci4kP z#T=saTؽ;`fVg  ;`xN@vvG! R\!pJCPy8Otغ.̾߄?m?.N8BpDt=~8+[Z!H[Ck#`X 0- - "dl2.b" >c @gaЫ\BXK&=ה%?}*_Ŗ͐iŢIbhX<" JFA0(&~> C e Cfpc/شLVbJ-?k.A7_"NDˊǣ%cƒ1;;AͲ^bYgT2Cb!,OK= yЫ7DvZC&3O&L%Hq1|4JYqZy->i':OJ|C> 1d#LĐ3ѫorٔTÛcM'M$cؚr]0IU=uf# ȮZT!΢<0ZOsjӞqkuQj-"eA` @XB$d%!@VI %$lj@AA VG;ߙuzݼ٦$DbRfw9WiQ^cUT-U3f5URmJ*0P 5ṗƝK@ޱ C? + ;61|3$-!xUF1x&(bJfX,tf(FނOg5p}o1(f|Sv/%V})$;͚F.MeםuEmvC'hQCݢYаsh],^trx77n97Lw@,Ddu,B %k{=eե:uS.uܥʐt*ڿB۷/7&V,tOmx} o*<^DAxbyލ0>P,8OkĸDT6.HO:{9F#OV{xAW~%=3ϭ/?ulmWۂ%/=J=:U|?HdeP2дpy7g3w{jd8⇃ȀX <&(Gdl1?Ƞʨ13?3vjjqBn8J:j`G'`21| ;7`&oPh1G a}C )ȁedD#O/6 P{]䈪F (䠀Kc.#KqgKhpu?ŀ׊@ؿtAC}"c_zAW;(v@ہ;\BPn  :w#-ya~ C'z6 UC_ + B 9t ;{p?*NN& n +nlw p?8_QC< +Lq;FVk)+>eRƜ%Y8ωgz4Q0kMa?M47q1콌!} Xu;1pC:b`!7Ey!%x„LiRK33oT-"֋2$+Ill2_;$'I$ʻ厐7Fz, \ GN-M"EǚT`R%~BL&6.dN(&pG~H988l' +]mE P7ȌE2&GrpI/9iγ"Szx2*}L|DjP'^81Nh~ʾ}8K ii1U vp9l Z$N0gy4x2L6AT'f=$7< Kl#&s)' /S՗@ A +N*1hb d| Q&O%xΗL(Ɠ+jU) QS4w75}M{Ҁ6D6%h'h ĈADA pm|("F-lTže 'Z88kaVmFwII7 +i~~~}FY;A2 Πq@PB ^WfΔT! sF.JsѯzJrИk8W\+e^_4 1b ,oB! APw}A"NUqSJxBrR9aC۴s%Ime]+nnYfSV)) !cHɽ_oCP% I/ ֔J zP*5aniԚ>Z*|a98fkz.7q{ʹ=O@dA (F0aDY0H R'uJP + ;-ִWSXmzNf+2~D]nt1k%~fo2 0~Py]܊?K +ՉLMeQkj\rU[kתKmVHaыLzqWb1CO@s0 +&߷uasQOԑLe-ZyUqR+ +Ygԕ[j2ZkkU6NQt.bA&b#VgL{BPz7CF7}V3GvHwVeU+mŲ.5[4my6kR-4UN#rH|jx>A2 91PRo<݂x.NW@Ʋ5΅ʃvz!0$lŜ KHH"N_Ԥy=Hzg04Ay,Ey٬,G} "}bg}OXeeK'!vD _0Yǩo"ȋąs^kJ86׍z99`t2~@2ȓCByvK߿靐E?)ԯ&X׺5\L^sv:F"ed? ƿK \⇻)t{]ue5yn4nq2ueI 1@&d tGeɍRR؞Z`nvb, S!O" +Hu rK}*e:.װ~vxcOѥ$Z"oieLMoʲ@[ F{^ ؙΜ.zD{@,D۵rZ ?8rD݁A bfL6lL0V;f`Kdp3% d 7 l+Gq@#[8ko G-x +,=j] bOrT!H4dT2-pSbj'tC>ZMISs?Ç k +LDFr$j@#H$C!ױAU&46Aw'(vGUNkp+o5SB!JbD}ӃP*CD}qIE3 aQ*qGt7Z#`&gV[VpV0wEJz@٦ }}/DІ.ݐr%`U 0j(6 +pUa/S 1f-u%o/&|E@j R|iA +~9_y" -c>CzϐBT0Bh2@EjpB e(;`uzP/R e@SWI-A+vw>o/e<{g@|˚]b={ǖ lMi24kp/70D'^' RʚBka~mg}#|%#3a&ϰ&5==-:+ZQԣuTD+ʅuBf! H,'$!Ҡ("e(U(Lx@e(λO}s7i /l>BG/`X/Ш[ DՄ.3#6'=0] 3ĉjқ:kci!i{JFӚ0#NI@Z +݀xr 9{"=qH{\v[laSBzYF +Hz1|`D>e1̦X 5Q5P7y7@?H @O< qzܻ,\>5F})b_d < y`ۣpnapE?tݦ,p89 ٹi$,~'<=E3ch/qǘcӬ*h䥄gx=?1x~M\!_;_[ 8> yȷ/5 Yt Ac|bIo#e\=;0 cÑ͢GV\_͘>؇:Cɹ>q%y?h] zjPo4L A f~ 'J8=leC5Q QI^M|or=񁬊@vܛ|ܛ,`:jp!ul,Ap#@䐏bv/f<#|`l \QރR܎V^N9OJtQ'i= +G,`Ow& iנ8 `ڹ} 3 ѻkJ&DD0 GMIT: wc;rjޑnct3:S ])lG en G `2w, oo~g1Ag[$KiPyRT'5kkCWlǷiYjl|(9Uѱrfr% 503o':M,s&[W8nR)UK]^6a֖ 6X~%dgEl|AWIg)E + b K1F|q B̳(V=1mxCY0;̂c&εk\,č `rlLjxcWʴ|Yu6NQaK:|a6.ݮX:ҝbMf*7CIC<\:W{}w/<صSS~ՍuquDPQT(bIl$$,D*0:ŒZ;NZ:nǵZP*2)UdK9}m^|^K.7VzaZjBK5}F_\c<\mzGiafӛ0ܻ=|j|4쳨Ǟ$MW?l{I]voqf"k[եm+UnzZh|:^Eh[m[?QIT"bŋxFR.p\T*m?;1te!WrΉDyjx,k#]!ԳQ>ňX&gk *Y>cȎcd%rQ)#5Ңq+QhG3bwF-!?&H#!EjZQq_qY_iRH #ܰ8΋ŊhM\ sp1nq9fG!~%d͠3Y /RLtFkӡ\Ob ICo2 : Ʃ:KayU4c&ϜBp,4? #G2_%dBR+>a.| sxF=qs@ ݄Y0)։AXISQ-~bOqp?;"s;TR4HH6•%t0 `Hp\"b4GvnM-13Vw_,Q1_@? `g]!gCzztPh +á.r=3'CM*${yCBEXtY m Rw26MV/z/钼vH?i3 lhS`¨DFf(Ь\_ܜvCrH1D%3O ;r,jߥh@aEvy7;S0 A1lz, +8HA6 MPnK|bH- z9DWUB𘂠z'~٨]BfoU A %@ǰlr2p`^cI<BW(w8 V)%$uWT5!zJ _6+_(ltrH e&f|U7h2}`t06 +cP2A J$7?OCj!L0lSAG~DuAYgV\7?QtR6?I:?K 94d0 \`Qr$TOCl6Vh%o eLpq__ӫڣI7?k~"-ցjWuDd !I 2 hQP(ThI ǭ{{̋yy~y$A'b*37EmJO%\OŚx4C  b'iݑ/f F}KF-%:v22vfAi:Oǡs=_H`0Z:*J?,m: 20% qqChmݨ6foT?'j݆49u NU<*А^ _b`406YAP24]f2e\w|D x~j&TxXp%=6s@4j rѐǓ +) [`bc1` i,p<f;/_ +|A;sT!5஘I 7X- eI$->CX?\Ij(cO3 4#76N0 Zd{߽\ml׷m#šC.9 !ƶ˜LV]Q[j6,KeDŽ =<Àd0 x9h@ZjKf{p?pjw˓S?+<ڕߡcSX8Z-PKj~!Bl0{R2Y:=,VGr=/mDP\s`z[k sBfjv,t^<{ j]7wZu@E מVET$xb%Rν)S $"B˸D5ŕhڷxHGz,߾ோ;^5YovYcS%]7+Îj~jrXUPPl,S.)Du2qrgH\&餢aH8, DO7"@@*,XSiy}-z.h umǟѨ1yHJ%e+f% b~jږʑ!K餈tXHFy1_d 9i9%FWa`FN֏oU6>\w1ҧ"6TU"Oe!<32%Q*f<%Ii#b|TȖ 8)GjD́dtm-,_tmkŃ]_t_w]|`eDAmLpfV"tnKR%q)yI㲇%dՈznLHK +B@ +6X֬6c7WG0}wv]:֋5-a9AZRNV +T#$Jđ%"\hrLǟ7J#rn<[%/sڥY-xg ~5=?Xt,S~gZxB/sI$4IŎ gj/C5z*4 F.!gCȚ0 -Em-xlۀl@З}pƁ}U7ܭ>"Ϳ{IŒ81k5Rji`MK vXQdbF0 v<[_o7l@陣UeEmz]~?hn/$%8vC2]$ow/4WԀWKկh!Ab;,å` +tYk24cGfMcݬ?Q }#ف!'Gz6⼆pq^o 7}:Y0y!`XNKg j,eUL9or^!p]/?4$BQ.X=㴞0&+Am;2]>0GzbL;Z hk ,A}kPdk-[me{Vg]1f=Ϝt{jx&{9:jo|}{׉ϾGt~;߁pF:0Yc>:̓|ޖy9ӡ7Fy:-p.]gQMy? q +.,* l!!!{ I 7kKGwKU#-X+:uA=zL[8 +B|潚|w]=hil*5{.]0wp3GN RqU"֘[>asbOn"){>G6bڸ-Gx}HY|HC4ЄaX(AQ> a@TNq Gq2͓$ߡ(2)*%`8z dE!; qL.}6D3e|4|Es262'aqh/Ȣhf3 2* (\GAi,; <As +Ru t:3ALd> 1y +J ' JCʀÄF KTaP-!DXK/ldAV'ɺ.g Ivg|[xbd=xM4d'ѡ`1IgB'^9pGCI<ے!ٟ +tNf@x&v.Ywg!>Y/yB t&xCȀ. &E [D(@/8nBܖ>BE<C!ρ ُQx /(#hPy#o1&BPPCUꓠ4 ʝ =GBH#3 KGR9 &'}HNJ1&QOn=[}KAݝ <Ϡ#4>(:qLT}å +A1(Iy -|v{8TgP^RWhʟk4Owyw:?.)4½a#*}P23L}*QhAd$?ҵj}jzoW ˦QӅQ9g0"7x&XśU@|e渱jGʰs)wtuV+neEc88ᑾx_~aKyrpf.l=tГ|{]Ċ:&N'ؐ=ա#1+mWU]GF&K_ +n[nZd(0[mmECSC-_zl/yAo"ؔ-Y#zY[|%+p2\+9TcqK?gK:-;,J/Y_8Z4h 8NJ),9yL~#d+ȷ.ͱLlK2ȟ9( vmpo]_JSMk{As_%Q{k7%γfGpYeM>'( dȾWOz4̣a[4;Yp؛=n[m .ѕ++ۗn)ztAGd9׉+eU|Yy+׾ʾݮ~.'0FfQC5&2%?1Ad袻[~mC?h9|{ɉǪ]]mK:j\]Etm_Wly8yƟ8H%CESf_˖889v!5dl!ҴeFiK4L^XYA@3AZ6]MDj+.;fw9&G7%ƞgTF.8M$, +%tIIlb樒I^֥N{:+vxof:4 kRe i"anH^lYXVt/#\Ԉ 5=/%z*"9z&,9j649j>$)j%=֓0{"_B4{YS.uEp@ +k%Y5_qOfKf|Pw .F +&BWLxYN\;.v% +#<{+UͤHߴzrLNM~jK +ODdg%222YI„)x䇑 ~d7*a:<:~7ǎ.DDaDrxY~nSћjᮽ&ʷmZ_s2P"wZ~ܙ *d 8ᇧOq#Rgy)~[& `A O_B'=q/n&yd,@؆%`mY`Yn`ug=w4{@7|I:H5 ?BHI t`{R"n>|bf/s/m!?삐OV"xF`'!,ɹ 0z}OX ҂Ag,7{Ɇ_g"D.ǃ +QvGlYMtBt"s+]*W5Fh+ !:i__#;?=G+b `>7ҁO=3@$fAb"h%[WWGmtp:f}6aי D @+5zq$X?r'j"Du"֕ +S g8@> JdHJ[Q+<: D3q,]bk,d;2{!8?Ds3듀UHXAPAK +},N&-*unH2 _x+lƴEwÆ؃Q7Q9/9}pŀw3Wq>&!?{ԯZ{d>@V#֊ArArUU=,7J$6^Z^%s^[%*7!q+C;Q 8/DN&A-d_Ɠ|Ň-֑{@w. …lٲt[R["WQT;KRgIO{[7c! qe#C1$WLhb- +#G4g _4egy?YH_κs[+▲%kҞ+o.J{IEeW@ܩj$>đ|)֑6UTN-g7G8/yZ\ИNn}%7,ܫQ=V!Jy27ңv[V-@g_Bidg'=6M%sz_e_- ~6K]nt^7 +r 9戞;O?O9$w&8|[ٮ]ٖ2h[ͩ㲦ԷƴwI dgQ@zlZhRjwZOkCf>VEuv$ٳ!}*$\KlWv#Ir8}`ZjMk귚}#ꆵVE}Ƹ|{[)!yDmH@6o<l&} ԭmݣFyN$,P}U.+*wWdS6g4e6d\Kٙ٫NQdsqYUDH$[G dΥ‘2VrG6O]m5n6;^.{vW6g?h䷙6 +[ ++eyU; jks?լ}0RiN0-1VU0.{$mJ l޲T͡ p<߽Vԫ{58xthWflYWf6nIY\#-lTWO0vZn|Z^03 iMqTU?(˷y{)L|28k݃(7x_h {YGՌF6Z +Ě*yeNfSkʦԒ4Sb:ST41L a&.&{S͠|>rǔmݭ%"J};uʍbBf\.1M),,ոLZ^ُĀ>ӐX:)(UƔLV&Bٜ3(CU沧iFuh:'ʿ۝j[W[Ģx=rzSS +nW&./fkIiViqUX٬5X9SY׺-CuyTe4\ѪuMBXEAaIXE@0qWzZD +REAPAܵEܗ#n=3v +cNUԞ,gg|~zy}?ѐf͂1=ŧoA4ӵV+ok2?mW{$QRYk+;.b}˶S"{qIyy%w,>{I@m˶\6E~у*!ݮ3FtmuM原Tյh'ly}OqOj# Ǭ;&a)*>K_X?+w᜜}md}=@V^`O2w  Y٧DN6 u1ֳ.3&sՒ"/jT6慮;TnuÛf=,=sӪo2/ UYeCswFRևD"_IUǧ M%S,\RU\,=㰽CQ>wݩy'G,iY5-yc\vSѬc{SkRNo / Æ/?R>*FGRGCo#zTFtb=tG_]ҡkT%^ 1MmDd+/d/>08g6;>'^:1U>>f6#9(TѰ臝Dw]۽j/qTyÈM{\]ۑފ_q3m,k |VS\1s6zڌ1יӣ vyŴ#>3D]!h`?Utr뮈ӖO}[8:>˼&<ت};hVFByCx]DFvAu:yDgD7#jnfʯӖ"kNkzżr =ZkCO]JOxVcz>Fȵ=U͊t2T8w(C@u752ω.4>/N͈V/y/eTFWfɯfOxdחa3/N׷!oc.܂M |{FD7$/!5Z!Dul+Xvv'_=7-)_3{p~jZxY4C +UClw~d5IJAlbY?hGXaD|K#Q;#JÎ7n:Z(3 +BHc?d`l.ATVK\_0l_Lj*P5˿C)EpVCԿ.4YEjE( "A% #@#r A("HM׫XVG+VWZ]gߝ/g|g]ך$i VcjD0!D +hzG[Cq n@=_\r}As}F} +ns[x +ϫAy9*Φ9|f9DY@DB(KD*׌F!.mz?2a4;Na1vk +ZC狰oR # ~H{/px*ٽ_ +LJjٰb׻ͷ=o:~y_#!|\qw| $|ÃQ>P@)wusW`Qn2#5hyR/ף5n3Q-߇/5uM  +N :!x\$hB6&P(APo8.S3)mOEHd`\iXf6iK'Ed Rtv阽';' :>|$l*@zg!U 4S V, =vS^jR +\g [ͨ.Ǭ="w99)xOHKU|%i t D0^y(ewE&:bh F 0$@@)=Į%Ωs?A şS~+[ovlLqɥgr"2.GRIZYEࡄc|;+#vl6Knsc$SA +j)0@7b-ǮȳCcSSfz3%쥓a㹱.#->J ;,3*o&e=d}06ߐp]PW%n 8r r`d0q-=-@Ѝ}M>*g./.qL'꒮O+IX") ]E7!=*nFgfONTF*=ERώ\>fP陕}z;D/*'Dˡ9a~5i(akRe +-D}/ +=˷Duz|o.5-Bg7߿f6x@ wqo]GSI:mu~nG߶a6޲z1hQoge!̩R^[.*KחkUM/+(L U~P^^Z6j`0pXWwT hu:yMt52-&bEKh}]m[UM6]e_Q*P+K+njQ@ɵgCe"y;B;9S w!!tC}fh@nj ՔUOguUMbW]CVm7ϐNԱu/ D{X[~|pL[V)DBwNc=fh rͲ]5gm[Gn˞YʆܠRzBNQH~T +Ș +Ht@ĖZYpـp{C |i/CC._-+aNn݉[S;mŴݭՌV"0G)js23^;B|3$toL>,u'{RFj+E^O?dr7 N07]X!@*Bw]Ad Bc _ݤt{+k/7ZT_ks76mDna-r[;~cx|D_|J>KˎEћԂEG->v8T)Nв@]n|;)T{s%35q0Ͷm@yW5;dd&GyS-<D6zvc_֍Yco,dYbjmt"\8\ۅHMkD Ds;^ ,4㹼~ocd 8= TxV{ .\;vhH5mL¯.CwC׏ma3>^gsX~G[BQ(e>*  MCraxayFc xGaw$xKp' l`3vog&_$*BM# |Ʉ@CBZ(( *.\,\ xH` X&c ࠇW!fpU3+l?D"\" Hų: Ix +C =q?/8T 籎簝'c??g5|M˾Erb(xS(b +DZDhĒT /j!8K"f5SdZm$=m2] +{ +-HEbfy"z} ];ҏ|!iү 9ꏨbD2wa1xd] ԠkyXzLVG'zB9 q h( F|?b2 ?ɜgfn3~_r +B,#dX,TzGPA}1a4{W#"f2ς友#; @vȨAKH?0q}5HpvE,UO ɯ)cI +n e@t 1W͈1Ҵʀ﫧4OmbEۄ?+[+M:VHiPv}>dj3q]3r57`g0o/iK9XߎM9#sdkQ5nBN y\8 <; ?QB+ y#p!uNxʶ [Ÿ] X&wg<%ݫ:0/<8S6|n:9@틼H뉸Axh|KD~F!ZS4.y} + +|&t3I l}#fr+Ȧ0k4f,9nD$s& J{jUwQ1k n$o<.x:rVȖQF"vIv$5 +Jst0k울 NeNEOU{JX( Z0D] +(ަi0E&pJהFߍyǷ ʣl2v2&%ݵI ť3ɵD K%)^U + +/ +Es +!Bh`/ {o. +c2{WTKEV}9{[I rU:]M/6 %}_7[͖7[|ĒC_dD[ :U7JHu!ܪ5*5LNe莖˜=jС&K<\YH)ʨ+d nQnz 1!Y*bRSv10x{J.7[$5; לvU< uSTbt<%7GEϒ׳dYa$8̯~Lđd"412D +Xp;O눠kXMaщԭq-5ǷUWFRW%TVzeRkYE;')O'̝{/!s[Y)(J"j& pk0hkZ1i8f .ZU*+{H˔Ԥj<|/_|b +.1]$[=gp{W#vVvYB{>bc'ٸQ9jU#'!@jYR.:S%񫚙'+|*'88|"*;R%S"h5[KLqf`34&w3T1Lz-#6-.Y(l5+ȼ&WdC#- n +Va#FpV#ZX+*_ͿE{Wp ``#6ფ!ly +@N{Ss\»JC:՞A=q;mAԣ͈zL(Auy{oq`w0@-vвuq1Q -q/xl#GN *v:s9>Վiq\r@ o/"s;ٿ}52GpsgN kdӻ iWRX0o39jUmW;'2w(tێLݒc} 9. ra ut 4|$@MH3v;b=IQ>as7[MΦ[sf +fjvg:`Kږ:duȎ1{\E+WwA'@?@ίXΟH m!f[Bਞ_l쫏^'1)i}g6Ky+wVn|8x8]Mh_ο-3'pC"HvY(9yѡY&/J9hZru3W/~,=A}ny;P gD.~gЗL{(m# a!: 5px7?ՙSa20 f`FP"JQ,X"q%Uc jtE=.Y{uƵG"%( +!;O}}'~$~0Ofh#v^R+uBW e{; F;m_ x(6Q}اD֍"j)]5GPps`|(|H?-"")bϏ߈5X/v~nH>6J-߳* .C4'DD8?( + + А:H>0ZArCOY +yJLX R`Ev%,M4/q-T{cDAD 38Ӆ㡽.Cw&]mqm{w'♯E^d֬QSzɫly]jyh'P=9]}GK4wV{Ju#qg|&xBSFӉПHD1v( Cjxm#TFtfNLPɮ+( }߆}fDTDDYaVePYM*X&FM0.59Ѵ1ihKs޼[ą3r { ʏ2hnڒ۪1Sb_ǯ*Ҫ=RDna_Y9sMF"",MB0R߯iPQt &VX) wj+\ټwIl徼Tʜl~Yv)(NBQj& +S(Xlaᮔ^;4>#80Pk=uL{Ӽ/xE}ZhBg./c$18%#p0U$MK]O=O>d(NGQb. +w`1JD}P:}'ih`A=hcZU4u kbMeՉV9iҊ~-FX_r'N>++D8E; +QB`4ԃs5ԃz{vH[Cje-ZEM+c-$u))Y$TzU7 Uxm];xs6pk +bJsS 5PH3@/*Ʌ.3rev.+k_ٶ0Ӥ{,wdh9(w辩KpBr_:lEX z.,^.Vô6T~GK5=Z)GvMw[n̳>\Q缮kD{xv;a="zNϤB 4MC rfh a]';m$gxF[bFl6_7 o7䴺)AU輺ɡQA5h8AzvV,Ns!eL83 Gx*NgLбB㐱Um +kpooȱ>^AwP~1?OH1Łi=3LL{յ3OǨޥzZtnT!ACӷyFsh"D3\p-Ds8I?DMy`%6U" lBgE b eJ2L^U++fMOe?Y-k7g]ew+bG)F)O+a5Xs\3 )ς@x+܊f֟btRk(j/˔? 'ODT up~ `$lF򙔱xV2eы,?xO{*PuAo_t?_#?%7j`X~|0^@0WANx絔Ahieޞ`og?hΓ|9g|Ht7B|{`'  zh%hp440ppX%B0H1Bo FʗRQ>= X=Q[LɅCy+)hEˉH #[!`|E~\BAYpS8RB7(ˉ +ro }bL x`B/Hb͇C<hƠ3̕A#z jAM,H`Z&)&5t>2L$U)}~D^ KK0hȠ ]̝ACo l`rI$! 2A%r|INeJvv :2hOZ1[•XB\RJj٨B: Bw,\'u}GEugqSFA"3u +DPAd230 ",BK5ZWcM=hbY-b'su߻}9(zy'V&q_ Nq%]ev^Hihde-r8hQA:'hE"[|}mqBLb?ǖ( zŨ-,rw( e}ow?$kxo%7WCgҋ_w?=߷{'+E;oKQܒ(['e8s21E3fNPxpz]8oW.Z ?Y̬ Y 0/2]7\ +g'\e +/p@w$@/#@oZP/^z~>+]}A&ݙ;U'Eb;w>3_q)0JƧ(:@38]z~@Iw}҆<4{~ެ>;ܛs\Z&Uٳg7'dY>=x5qχ&G<ޚ~f

#z}b!\ C a ZdC_E yN68=qh~y&sL?ݢ?`xOn>A]gwd-MwN6]V@A`Wal-pM9G2p:ҋ},b>H.p ,ݨ?$Ev/6߹r{Z6A[K:K7]`'QkԱO/&f~e%<疈JGT؃q=ѱ{#4=]7nmtۯ6lM%YK#٪w͡hOPc8O7cq>_'d$8,d_۝P=>Ұ;.AԵ$lSlEGtmMֈ6eY˩1sC9z:N(#5hWұ0e7gRYp" S'g67c{g7'upKJFu=1Ŭ-![ܪYĕ6/Yn"UVѩ6̥2+yy]7Li :Ƣ8н}I ڍ0۔)oS1ņ,؛m ;s䬞l/^g\Pu1$U)&uMCR.־:acE|sejkQ)Wjvţ3q$2 +ÍxAe Z!3|gVglnG^[΢ DY f itMuZ<ʾ$ɱHѩII'ܴI7r/Z52ĉȴI0.x82LcTe} +AO)tX6eiʟPj=VٵuZaIBC]U(ReS*,˶I+-K5;w01E]#.BdSc +PFF 9Pg?\Nay4;ʛfq+ Fuj,ĚqҘFYdNʊmLXŠKhLX9:RXU[<^H}ݍkW J8 +(8g6NZ`jNmzN?f`afnMPEESkٺn]6eyZ(*X +)JYYػہΞ;0}'MZB׋ǽ2-c$)nJjG%W?ō'=vpUB`J56<ցYki3d^S`gꪉ~E+߷bz + |NXc.tsȥձK,i)X,1$f=baoy-~KU^)5cFi(ޔmJצJGxiqoMnx$p̆; .X$lhIix^IUDnIcDܵZ"sVIdގ5^u+7r~v'l3`Jy*qEX[Qsl$S}Fna)kֹ9[V̭3ʮ؇-%$}0=5P-gťʁi\&TwWQXJ(W wݣwy2df3]/ӪKR\;-] lI6h )wHp8_\ɞ:P;`yVCNdQ7F׍j)3u{&կro7$1T(c1f`6ɝ.`2Wûùf6hXt$ G<gSFcwAUQ˴2-Z-~ˣQ;"ijro`R?PTY@Ƈ& cO!g|&_$#%;`?;}MCO"h-ݰ} `;+BgDi#3~n`k/b݅ F I'3@9=.ak[,m03Lv^NOй^6Am?tuނvU*3N5?evSO Hflo|oa1:w4;pPA7 -`s̟ɹ2;ك?e[V`'` x@7BdNqL9ćᇡ7\.,P.W/{rg̎ X>̽o,v$'ehB| CG{"$(C iJ0~OzJclr}jO][B 9 <9Sb(T/yf(ў:-TDA@'/R'yN[ߛ3?;nD$_}š-&¸P9U^x<~4^.0#;ߟi%G\ )PaI6Re١Ԫ֏ k괶MM6ѮAbN} :F9UrꧠǕiE`_PKufT :kA+i_ !7!q6Tt-? A$b@k"q$>ǫPZ%vٱDX}ب]ti;֨ڹS+D7Lj:##ݢ{-T3$88t%|t$ˉWӵ ki-Η=>wqڹ\wYsssy6%6{6&]jH`T$>5@| q4Ay@+#Wӝt[ZF⋴dډS5?gcb)+ )yLeKgMi4Hm5M'UvSUX*iIXgk{YjveVc5 Sհ|w cemyUWo5+ o" JbZE( K!@k@E(޸junkn۱vvt;ad?=s9s߰NJbMH k) ^ ك{x s%' 0!n%&,%^JR/5|ϹR3qS։ةPG2{4!xW!s΀e$ kg|¾Ct+J\V卵WI*9}V8=0MTL$[ƒۘI=!CCY=2/.H]r³ זDظTuYc繥ΕAt_fMMtfv<gTF0즎Їyj^]w!S[lϩ mn6gu4Caͤ&s>*Ie#YBCDHYCB>9Ήװ{^.p!g 0e b GP5&0z +ޝ,}`k~ I_Zȭusf털\;')Yh?P[xJ$  |s×jߢ7 A R7 +`LRʢܺKeM + "]`Ȭ3VVs͆v~YQaIH?+)/n(|+)1"4#Ucpу. {F[UQyнŜX[W]_]j6BJj9%m|cqP4*Ht+rޠ5~#0t`aB 8Y0O0{Ͳny\VQS +(2UXEj/-唞ה^dޗd3MD1AJ^W%fA=X4By#45Zѫ ޥ~E@C]S_kͭif!azSz;\Yu:\YHUITf"P _]AxkC?4 +`Cz'f,@w +;kW j0\Ž-nؾ$mˉuY [uMeW/ة)ZxM* u]xpNA{&q38;p;@57h~D@t[ۛ NDn^>pW BCȃz`uP y2cc}8ܻy3itu` cOx>>ޏ;x}~lFຕ@Cq \֥)bJr:ɣP-g< <ܗ\;JܖᦼUp8^E' 霽:'8^vMm -,U)Q٬jifM~/-߿-4˩ŸS۟*p-lQ犓|P:Ma(UOUϰfRn1MPm6MWf7 +l0Ԭ7m\keYb׭Vh %? Z+jslgXgzj~:J[EJ,6PnLW . )lڜk\]n^bԼfy\d\h,7W9aSs\ Nq+H +eu-??;w +WtX1QcJejtȴ* +OY4KTh;7h.?~vP}^P}n#~zБ]N-:3.mKvʺ{:+=TFiXCEqYZX, +SvfU6zY_L.4W:~Frǜ !{vziBЏdO%⹷7ubM7gjHwP,,ΏL떢u͌lsdvq);|a\NwYo _G=97Y#Y.{{3~,K`E=^&W{^VocvJ4yRp }بR=9$A_ٍCf =s c;eH~kZLtNr"}zpppc-4CJbe6%%ppj\&#}YI %)֘ꌉ!;_3T#R4b JIOde7 1P,,.V:,UHA@*`-k1Xb]QQD#UѱrԊ:k+ڙs@wŤ,F/(GFWύ8;jSxTQWc(a>_# }xk+$|dm8IZ%BN(If4-yYrR"!1ba\eLBUt|M,9"V6:p kv + A>0^舶Kgųf] ޹>-)9;r=$eѹ~Ȝ9aّʰ4$Khz: w=}lIV|(fYb.sFx <%!e3˦˂KQ~-'-Vy[M(Yc^IWؒSڎ]*lH!)6=g;ؖm^!I.I}*$BP# `hKWjlҪP3yU UeXxUYRzVnQyTWW+>j +a^c{s2|s@鎭WU[` |7q8P3kH̐ Y I{6+1n2w55w1lmxk:VXX\s;}FZ:K+* <moԪYG]׏[\?Mx,i+q1K6HVȆjdCLN2T+䃶^7τ={tW +MDofm]2 kPO  3CwǀPosc6.C}$NKE%q\[Hv l#z,za ˞u?0 &5M:0h`<c=F`ӒrXBz\U3X>"$d382;s `. 00(лв]:!e +mv0o E2 +N?!kvN}'5) i{M'܋HDrA..iT5/Z\/_\JyC2h/`pB/뭐yO33OW:赦;X_*8kx!v7\[cی@77,]N)KOgͣp4x0mځ=jz/ȏI~"r~T<</qC.נ(++7&F,(,ȲܖEvvrY˂+  ".!xCEh&Fmc6If:i:MSM[vڴ}z<_9y>|e >X6e7pmŕOK\@$ dXqu,xFVe +*U-])[kkݵMp={aj1drrr_w~ko7CfC $r"CkKGmoWkqKp/4 nRZ.GRZpP9E;}VC)g~֬(b}Bq}Lq==WΑHH둄CHW ׇG17r}G͛`!:)3aNi(-)>)wfi^Qg2z{88w}Hca kl!Mw07ߟWЧ>(U Qϊ귙.=CӞOQ[2 $<%b޿{?@ωlsc9ʅ49Lføv33 @fkזs5ތF~OF-L/jOJ[>})iNؕND"BWO_zp}b0L +&tRݱp@Gt>ի/`wg[]6^g@ێ֬@wV?Ӓt3Fݼ^wKZVw#ơ#"$9p7\G߷`=` +ci`@J0C1)Q0󊸞<+ߝ[ВrE 9{NÈaޒWޕ m'2H1D>O1wW9K(D}7 +A) iN3X&{m.,5V4 +ZE5=!8)Ae_HSGD瘃[xqz~\__z_ΒhlViI]lvcI>Yb9Jl5N-,+̃RaYLPZIXn6iH; \>b';(}-ügyQۼxQ}z ?jXxc^.=.vv)jdҐ0@+w(RV, Ư\2ZBm6^V{Nr1糨{{i'҈ߕ>j@k<ɃȣP]S!> kjX?7vy@E}eaOp}P, +(q]ՠƂADET,NPXh{,G$1qu]{Xۏ{@xgygΑڛ%_>`Q2l]f(2C/)멷4y赌A.| b38~Z9P rxë;<+"Q1ír\\p4éUp,2!9V3yLYǻH?RO VF*gS݀cju#`WDak261ZCcIڲ*K%\@]+!=bԝC݉Eݸr6ԯ_ȠAVh6#GdeYPV: S^ jO-Pwm.߃k=?CIl3Yw8ߕF6eل\dikbR5љ&+"CV!V`zmDQ7+|; R@.Wtll]> 7 Lb|II}g'&w!h!y6N(F{;Q׋]# DuOrLhv/C?[7lO 1yI#_ҐWhv<xռmּExD3=桍i<,`!Pqk6@kA? $#dYM6RDJvRK!u/+~xI!쨭PpW;H32$t䐍dur +.2i.'WG ƙ5H?2|B>N"u9RkC:k%2SVo>~CG7A8RWm! +GzjXjMf|tX@Tjds"@# ~I p'4q7F \hK_hZG9&ۇGx}Lԙ0&He%rM8O_ŠS 8tZ%#R9SThgG8A'5qU˲h%|:bN+qJ'98̃UYê +4jpHՀ&|W2cjAxQeNW^/'7~}6}pV7lGX3`?`8nsWu2:AC=84aT9F@YBz7ˈn.yJ\C;N;tQwðԹGT{$aL敃*|Tx{JHfKi +IA3!!Z=k, `;孁Pg} lʎcPR(bdl HVJ TX)Iy'e~LY֐՝FRK03Ov@ol=P4[Gas8OgHy!s!) !!9!5!U!쐣eOKC"#TțY?]8iG,=c~3XP7la(<`G`q8AZc"[eLeʳƕLFEq2ݸS^~EX(\(I< ԝn_>|r8nU =+LXcFie%-7e&2Lt\E)EjZL1S-0FlSϏ8gj1=6 ,Pe s :W|j +{Kھ>XX? +#e&5E\F3+Pydvf>6#hE ()Tm(O|ǧJx bca@OdFwƒ0XiQGdcNR̎LNNγ]mMV71.!Fh*a`+"}ccbuX2qH &̏(͍͎)K#"q4!SR4VhuGEyafav .D&葨((("0 ̌ (qh]\Q0.cMh4rZ=&Ic\kmm&A;8}}yIirjIjI4j{'JxU?3~F[6a>(ѠԦ*CPnH t$=WV^PVOW5MߡYgMYHc֋*^TZRES.qaQؑlZVudD9TfCi*LiPlJN]Y(_Yeƕjq&˸KΘqZqC&#CT ҏ}mf`69x%RuԘTfbK0ʬcQbBA>dbJxyhI%){rs~0AZy(R+‘R9HLT I\E4L6-U]ު^WY>J"r,JB2`y)PK8]LWA߳H^FB@̯}a瞂hĺ0ǝ"ĸ3ndX宖Ns/nO}M><<P{ + ~u@7hYGo ڥŠ$;Fc@G8;#\<өG] + <M hw=n];G;65+P`0^ہN``~ jCp(C!EAeaqC1}C"? 6je6րv1.Ao8]@8B{|a#hB>n~psynu󘈿+27ԝXg&Qs459=@{?0# pZM3lF{p3,?gyٟ!a{(pm>/д.d/`=fC70ԧ'J"H5K\~¿ƍ b^?EnD|B]k4RCIX= +(z%-BR&kOm?rw޸p0>&?62j4hGLAIþxq1GxPR*Ǎ+GsMԝPS20l<@?F-5Aո޸5ZxWXwq+0"<⢤MT8UKƱs qW\ %uW7hZpYӉQ\ňv ¸C8? ΍3n&<ĉIdGoN~:G ӊx0n11W&%atrF&0- _NI~GH) +^?`ST!|:lG0V#ӝ84ߛш3۱j웹 Cv`p>ݳ10v%%U'8V? _LHjȹ{<3&̬)8>'$r&cp{T`: 5cgP'vö~ak?|^ .l +>/څCք|/@܎FcyG92]ұcq6-.Rlw/# û º]bO~qui;X\/=R}F4XLk6c9 b r&G/Ė$W|ٱVW.jձ*]إ[/vI!-;*ޕb$7SjU=c;3Ҙ?ov$/޸ذ, +Xn}+Ra%=W.H Ƅ'NQ?RjjWr^\ Ekp4riӊ 2)I~<'yNGWJVRn0͐/BBl4ԉC6 rUe8T.j* w4eߓ(N*;STu˯lU' j^,^h71nFȘyP"\ֹ-B-΂d,NJ`/( +bAAdHyղ֯dۆ4fi,5L}2dZU%3_S11׫=W̽H;Xx:O#c㳪EpFIB81(rБ-6!Q"ګ{dwY>ey&& MCMZMZr4;ej\A+XEq 挄2r˲S/dSYlN)ݹINuVR55I4)I%)RCm|GiJ%i"ߋk$UNjr!ۥɕ,]]EBLHuW ]򲪣r|ը纯UUT +U+Wg`/*!mMVXE] k#ݳFz}IEDŽdAyZ8Z1~SIOrYSZU!ϸ\R㻤Ž@H55 IFJd$LEb<[ðu ⽉f`ׂX.omBw{P ޻bh'bh*6FU {'Za'|/^@,%#k& jU8"W-EĪdĢn+ºKuG|qXYĖ,$&niTUk_p +"$DԒPJ2UcLUjj:Jϕ:Gr#y<꒕Ȭ g*]FhI#tM#44B3`i M7-a *tfpY Sa*gC~mw@^dQbOE*<7Ps#)7Fay +믐 + +̟j_v;\y)`jcmAv3yf.fN5`={e!/b򥈥Rpq/R?- T@iڔʿ4A~kS>jmVҾU^#_WOjYQx?Vv&gR\)"K/ʥk%O<Xp1Pom$5qQ cXFTޕe) +SM4PIYhx>]B IϕR)51JjIb۶21 ocR P RCk(b Wovm7) + ĚzrjE oTK;$]++>v۽ c~ǏZZ}-ͥbbjW#0Gi%oFɺUh$/5?(G ~ŏc0$~b9EQ:_|F^}I;l 5wKa MchJV0E:\:Ǣt%B{ KuL/gds2y4]!T=AOI.?H+XMXPܥq>gA*KczM#c/v?>>~_zNo:ptp0JSjc &C0&51II1/gה_q0ބ10fXP+` -6ПPOls&\wV6= 0a&~j [Z=W^u_:Rtzme.4+k4xƠF +)O ίu/`@hȉ+f7r}!>w7%,gҹYn!Kktv> KP_ ٤4*3ZzCǪljjm3S/`R _Z- +N!Mhon6\[b6R\wϑc*=Vc=?jCZyF+n{>@NZ5/bF*#r#7i{YQǍԨ+ƌG(HyNd7xg{=Ê6Wvg"7*l.an ZЭ跔=Js'jvLbR53fg̈YaT2c?5b/ScSbM#I̯\%gˌ\}2|))enE1>=*U)@=Da)fn$[IcuhuX&L;by7q3qFzWhD{o͌ qڽ]iVK4+>B =5#>4`%ۆ)6ZSmD{d[1ѶИ`+UXj,m\Fλݳ 1g$b>ã0{ KHe K"I&L2IfLB&$$C!"ITBR, @!(}cVVc] +B_Hg3s9|/>X$E ҐcU8E5IsT@U-wdґ +G@2#Xa:Ŏ;BGYn;[ycq9.YK$_mqg.j]L,kc acSUU +TE<',ݩӣgFsQ3Lw[,q+'+yN+fNj?g8IK+MuJ,Ty]̈Qif3ȝ;KnEFk\mǽvo[Vr_\GF9ƱlMԀxꉧ,'r`fE8;J9SU3GK= qɔϛ\o@^o1Mfg<`9={4cVy+󱕒c}fCV?8+/n-xBRgT7\c_-or}'w*Q?_n0#b&w[I^+Z\xm&}$=o%PF0 7f|>xhA,BeVVQ2#*RzTVj|&)ԥ`- +V(!x lc 4o2cؒbی-͸"ۈ+c/bO~o&j`C5o(]k(FӜUʥWj֪"ͬFnԴnM=ɵ(zۚ\16&gJm<h|Pu<شZՃ4>\3 i7ѴxMmthJcuC2Mjӄ6ii|qkzCz[Qk`mD#hl#Yy&-)tS4s!&E:TKXܗ.S p8.jkaR3нAWe4ހRbc‡/L>e~>g|A`fNmh5@8 +q P`%:X>qBx_]}%~1%ޅ&V#7B%B70vޯեh>g^}~$%zEs`@}xËWbCaADA z,EL +Fe;{v0-[nrt#Lqjh8Чm>GulꖀiEP0'oeX׈?L0?gpjJU^lbPx;w@x#F7b;&"awQ\r㑗#G~-QXM7gQ;O-SQp2"G#q$*q`i9-2 v/kΘV#cak6X.#/a86`Cj~c>11_Cqy,$Ȱ31;VcJlYi$+6%90HAOPKL=PISA&ze?Z#tI %UoW9R2yWP~XaJy;RU496*pz9֧1ڌv d?}ѓݙCM7!Y'KG=2%|'>KL!rl/碗͙s1  ec [Do=9 V8PxWtS9ڕ{QNUy^ g#?¡3m>K,;&Ygɸl`\*cїyŸ_΂j +([ +OaZ p6¥jJ4 ꚰ>ªzB$a-@Sf4(cCO# 1.aV-EWQ|řh/΃D*.m^4aS$E0 u3J$a"?JE>Nśi^t!:Q%,r\pVhЬEv6VZk`n&AaԾ& EQH5咸Oͫz4KI='=駛qfܚ%piQ)CSU6UhԕêӣAgF&}F F@NZOIB[%*%qX'{j}񻋿UZLXj`-P:FC#j -1tBo Ag}Bcr:#w#K V5HA 5Їf$&"p|wHdꓰb | .&7P[M`븪oR#$32R$uHYjA\, iD"*cDAtH8MENLm]'{LwXǿ *pʐ%DqEׁ /BEyjMl`֓&8֪16Mn?H}~~=~_Y⦎%( )Dn(/WS:`ʖ@Φ%r2mKʡ|2LhLcx, W<$Rk3`\r2#s͡jgQ[ ٙek,3ƛvsZ+*Pb[嵅OΗg +S3`VjeSˌ[ۑCh(u:.:.Xn0g<̙+[F_sa +SyH1g`^.@Us$z 4fp'Eg  +m=E'{xK4bX94s퉮j#MCd;srÎ]ر;ر;h(|Ful]pwr߇ {)5՜ ݌>4Ap&B4hΏ{Hc_N`G#I#ůKuX4`;1'-cٮqux-tɞ%CR[1Y~ւ}8694.HbU(Mm™&>v ~fتnc8!;ݪu.4@W 9| -Mywt{>Sӆ#I? {YrU +nGL_M%݁{ց 0=&&OVۃAcYp drXw@0C̄9P eP`~aY̍;ټ' K==⭇܁uޔ_8 l4r9 scxƎi )>s]u ~˯| | \K68ش +/cHgi? ؂.c*Zkl7ң49Y}]ZZ9flAMOŢ:#WϚdDeo{g)Q~hAN^Z0UiEUUnE&herU|w+Wrm]w?<5nk0I!vßWÕ_n/*}cJ;U *4X;<1*J,{T\,POfӌov?)E]C)!*mU2a.mTAE5k)7Vy~7L9ɚ?^3kz7P2VkJ6Ҥ3J &=UjE7%gaz<+Ŗ7fn^ jzM9X=G(eJSF,BW(5x&k\A yOcB+%FXZ(.EQ6XU<+Ė|l%69i!]552{+w >4)l&MPjX&и /SJ +ج%E҈ CE#\ 06C9,{rhaVᮚɑJ쭉}5 5D㢒46jR'ktQ@#bjxFOCcNjH, Q-נ\ZZ#mPGjRRc<5>_b5&.R)qo%jd%ŧix|4,ޤ5^JأNh`'P-?<*?we1 $n "" 2,0QNHAA(MqZ5q4զM6mzĸ&ƚXa9}"ΡlX?m _fK1SU@Y(/ir'+; ,E&C2 2UZJRSdHPR>%RBNJO %$HrT#,g= 3 +boeȜ6RpeE+#=ItsjLJ26(\MG'qA;Nw(4bS:F @QU5IVcwU^56=VS5Y!r>><ekzP +)iluOy-P0yڇ>+7{4>]5o_pS$l7SO7=ϡ~z&j"9Ff3A(h ܚ4K}i~i<[dZ8ZL-P kygຈmlyh*^/|3Xs"kĚC 7IÚ%%m,1ϵxXE# C N01ҾCP"p8iFjz͚ 5Jc{Jj}?@?6f p뤰;YT':ppzybFcI7xZZ+ow^BmxBP\wFzw>{pbGs֏ ŜC9VM(gU8@xuq?Nx;AEquO/Nj[9WuqN ?%wŗ̺75f/NLN>V 1,vb{%Ө;[|;xR>prWJU}s_DщTMNΨ@Ə7𣋼:~ŏZu[8}D|E Bm'|.85go-/(t"шZ:s_lخ|l6bsll29=قldsۮ"G'#$:D b]Pr\l.`w,$ +ϓTVWUD̮r]9 ];A1B9 (hr4*Ѩf,Ry ZDd+G#r"pvrԾѿ+`ܵ^ Gk4:ıT-TiL\Yn0˰/2,3,31 $vcxKʭk7V괪*RRU~V.Q*Jc;R{;G: rq+YȦcn:JFd)ﱰG}VuWj폴~UeZr6f_T=/F|Tg"S8%S[K8]ͱlsrx[}嘽,Lr fÄce.vLg2=&> 1,wvi9Tk%?k5t2Y$Dq"nG9orj8`!E8\IL&1B(iK{SH9#3jJCq'_vDSyʝi%SK,'r %pj6iLU1݌2ьQfL4-0`tݙ2y_ d2LG_d}>'.zi{XdU˜jɌf*3Y&w/4i'p y-0ws_c=om)]Ɲo6t=&ezX✖.kߜ,ȔjٯZ͛ٗs J*fwa=V|En+x O=ūt?*%o^ΒVGaֺ"tQޓDY3%R=V +=xz1{GN]a92k=c`~53tRLrH[(m $`H#Ϸ\_!9 +}ue1ӿH4)$(~I$ =5XE_Z#_t ^}Wt,RT$k$S @:;I Th$9")Obp/ yvOL\Mb&&+#rrC|ǥĠp!ҮZjBVCq$Y!6BLaCSl aTdo1'"lgqHLݢէ9(Ji+"J_1uBp:ع DSbsMa}aܰnBywx fkf?T#VJ٭aH=Aa+\89JI_4)ҟMDZYXI׃(ORS_US[Ƕ\[U\=%=@vP5,O8"Y=%]6mzI0H_)K0l>.wR )ZL-vj5!/Cp'V54Xք,(z۩g C|D' z "9&5xZpT% -vz'57` BcㆎS}&Tyi0(:5 : HtRwKc)j<)^xrS긭Mz[95YiGcݲ9S OkI7e.5ӍB 2{2ceey(Kk]XXXv]`9DPEEE-}3Ѫ68ƨǚ&5UcըʹMG϶&iLL9l?qg~e}yG㣍 Y&FaV[O?r&4ݑ Cƹߢԩ~?pҪ 'Ki.g]l穋 LhݷS c)+C7`?vj $ur.{gxhV.37kznP7I7M;*D2f;y6U+6S|}.UXzM|;]jsrE5zH]< t9}" v@ Z3a,tS|=t}M>|\sOzO BVȆB}24FQG@Ǘ9 3ЕbA\Ru!u>}p?^0zݣ׽C.RC('~n>_~fb/%||% +x6Otk?Sn)qG>H^WBԟqsϨسu8Mhl6uF*ާVc%>V2e e摍ϯilJfSQM49αͷhf x%{Z1p"ơ4-6o,P +4jИTmnq_x y-5+8{wn}W0zh%KdhVWfvWc!޽LӺR8MI~Tc&X[Us<1=/gjjb(Gˋla5øph?YCif5iJ_&U}M (Q]HѸ8C5 TFU[UWo<=ߏ2pFqZ#-93#gjҔ>(BlQmp֘~+~e_UC,dlְڪ!T~q >O ИUEktI"2¡9*PJ4@);҃i Vgd(͑TG9du(9YgdrF wAF2:)SB}ځγ$:P^ ,g3_Yٲ5(ۢt%ggWk̮*\Jp5fuoQeEຬ(]EgS WgђL1P%PR]e`Yr#+sY<9Sg<);S2Ez7+;y*sIaSDn[X,4&rP ^pV,o4 P!2WdU薡PE#Q4NE +-ZE'̃>8dY]p9dj FEvǮ"!fRzD1j56$HӚ1ZsL5Gڴ4uSv~LLJ=}}}J,}Zҗe-=/kMي\!iZP[OhgJ(~ԏ0h.CM& lXoӈ`]~񣇋5顸{ ٽ ]k4N>brK $B])f:[`ki8`ogg~rr9H};¥{Ev$9P,z)YJ\BcU?t-=7L0cQq-)8ť|?ct$`]9sMxB@w~DŽ q` +a2B5XXQfezE|^&WT_?xNDH x&@QGՠoLNי1]e +?>Ǐ?Y>c2D|oI9d 88>//w@<)3̤NL ?>ď0՝?{wgROyN9%x%cd5^ \{%e3)/&.lخlln应wEVوvϓ:^<@G!.b(?hDcy2ĶuDڄ]?Sm+_qх*?J&v%} (nC +D:\fkmt*t3zs7]/Rk3ɰZ嶥jm\Lʤ"iʒUTZM8K[T`T}wj9ME$QnrvJˤ3i ƗR-gE)v8T:Lũ#5-u&0PiєA^MԬI_ ەO_ kx +G҂Ҋ. `+ܔ9"T0k#Qi*7eyG(AuY`w]`e]]6xM0xD⠉hhԦ:M4=$ΤvI۴;^37{y{wiJ>SMM,)O"t]-)n~]6pDo}=׿%؃ +M|!.oNP9M1#U3&_,UVSSE嶶i] u.XwzHb=xpgيlAS!|(^UEUY\QYM29m^a,-<ٗоY.e|9)-0pvӍ*-M0 &]*pĪ̑,Wi*-5,TRŮ:&5UW27j{/h*u]9rFc3e.KFB|P e;GYli*.RQyVe(S^&OF{f)ӡQ]FV>L+y>FG*^3T͑[|oF׸[SQ5SӨ|3kWo2|ەۯ4 \UZ FoTQ=Fh.& B +}/P06Fk[yoHCY2uLRz` XmJ-ocB2)f(= &rkxȧPPɡf%*!BCC݊S\bo+6znڌ5]0Pp]W>mĤX6&*%p¹J[4,p(.ܨ0/6&|f,4b96Dx5ƌ@=|mA{D'Rb45AC[R@pDT#EMaP<0iBSBca<}P{{$7eh6ugrј?v6ʜMncښ 0mx9c8GXfH⽓1[s)V)m)nql( ".ɣ=åM$wc:<_O&(ӧ &⩒iX tSK(kRˆpp [eg%yt2'9drcN/8&s-[ֳji'7UjCm^0}ƛnr ]"W4y&걙ztG7B=V6,Ԣ\1ovaM]QD:Ro ig3tt:~͍[`+<(f"$#I̯e'{5N1bhof=Cc@~ Wad 0*r޸ΞqM&:$fϼɀ$`8dA>ؠAd,-=qB~#M][}wuO|ʯ~g ryAXzEa N +n2.SY4yy]C4b9eh'{̻Ja,#tZ\S Z!}5}L>U3 xG;h^ms{V3]8 +Je|INS4hTO[}?#ĞIybZg)W*7eƻjArz}}Fwㄧ ShGV4\ԭ~b&Tb n_}ث ѫmM-v,ϵ'`| />g,ƒ8B-^T*G_L|7{٢mӉ9:w [iɨ Fܤ`< W;k,ExNT2yg?fۈ_FtA7 +Z9#9NZ֓I:Y' +\9yv2È?#KBh&t0UjgBF5׏p6XfƱZtR'e]o;v.p8qNlp9&MNv-mvJWrT+[v h5[@QZXA\1& +  +!:'}<_+Qˌ7ъFQ4$M,c]OxaYEVW^eN{{J;Q>!ctM:^FݏNtf6R;Iha:fmMEQڣ^C")RQXs< +uM!}*FjT tj"W5=dƲ7k 7,jpV7PE,+s_ܴb%4J{JCvJ.Ym\)Weʘ&+W*ߩd~ +Z4ZHAD˜*@#S4hтk"6P:MAZ]ƴwRIJfa X<1ٔ0974dnҀ9~sb}kIieF˜, WrFAeY*]YzJ9ZM `<ĉeȖ" X-V(b ֣.:c +7(hߡ} +Skj.7-}G\ܓ<:B %CYXc)O/;Qb-SOYrʫYVI6+^UrD~ǤZ[ث&xFNjr;^Ɋphƒ8$:j0.kQmRD5jq*P mZjj9Ffy|Bu|A5WU| qOPٍQ4` z=^0>Eü^P.Z\jvW]/ۧv5GT_?(g\.&9=A6Á23|43 #7964U_.4&ab1۸zsVW6t-ribAL"c+ǶDObIcN9TYPs46LJs;0c`w^@nwUf 5V1!a5&9f6Ԍn&لnތc+Z$_-xIL|1yyuz8c}:`?GgisyǼO& ٷ=0ۃ>9g4OdNi8)<|.[O+q8O^aX\ūÚRZ#u}g\"ӿ30+FHaW MqM7-:uqSu_qp?a`ә>^h^; s͌I.1_^ }C~w=ue|>r,!݆!ytVLX1K/W[e2c̦Z^ً@'~yy_=ͫ O8v?;NDZ%n;7zImvݺ6[E֪] Bҁ( ʠ*kT.T`@`m2sQS>w{y+8!hn X_8wp@7)82}]c^e?̫ +<߅o79|NFb-COoc\#Wp9/|^u¹|<~KhM^#80lO1|e.c_ރw&2؉_3/^P'=C%i/pZO~|1!} +"zARBLy,|>Osyx4c$csyy0;G{ W=hϳ<*wnY6e6NY]adZyN8K΋eT/·df }?edNaA{)tg"֣=Sqy9 ܯ3 +OTnawj~ m+'`6@;vahO0y$>f{;{n2ŵSϰހa<_֜B~c7EE]TK2/{]B?J5hgI8Zrs̜y)u&x"<参 ǃ-hQt1"Eo2KnB>@6X=GRff}6CKc@ ZbKI~hyYE6VhF~ , )Y}E SQiT]ILkiS;,>Dj+>V%%9ib"6N&!ˀXf2ez˪cU99Ty:;QޣeJZV2V˼jQAE-\RrU!u9Eqs mohn0*]7t ԵTiU)CjꔴXSҤZnicƄYEyj0*h|JTgX>E:'?'n݅=XK۳|ý49u_;-s)(WaQV+TѦhEJgάkpnr*[yZsrW^Ru pSngN5pwoc-u@[>C )VB.1WljtU(r+RW:긂 +ܫuonkUsJ5_#9ϫ}*s:Ļv|OA?tbqo&FxL +y,j+P[ZޠMyu7)6U>(g9|'e="|Ruޜp-ĺV|e:^$Z"s~|KwF@܁rҪ d%"#O Y_%xQgTxSJ}NBw3h&hڡ{Pa\a.UF|rFBt-:'kt,=2GWY!D.5Wi8{ 5سly Cc~;7zUSr cN1d5OQy|Lj78SEc*hct U +9?ހڣس^V>7CPǵIrag+Z +eʖʚpȒp1xiE%ɔL%I$1ILY( IpB'Po+h{$qh~\r߅uc H^"sʢ!Sʩ%) +S jV `V4NaRRRl֝Iّ]hϠņd6h3//LH/S/9t5Hu i࿏{vw #A<0sqsc,1|rl7mF1f#+>i<>]s 4y%lH*P_rsN0+8t&ܧH()^b)e`.ɐц?:񣛜M'х.;q+\̎ ')'/aS} 0Pc7!g y?QK9d% .5u!}0klVO)^ތ6)`{`5=0XI}ƏuaK}u\kWr@nzcyGY<D^%-ći 5M7a&X90Os6&j>괟d+V곟Xl!y}K؟6Sϟ!s=U|R</hr뭁H(!0 XBqaC*5?+8plI>| L}_cuM;9`ͅ9x7Z}k -Ǹ(dD\,FN?#'')3q˥|xCulb3׻Z>W]yD&Qp$ U\0!Vs%q@ϓs ,QTg~)!ĻeW9IнFsƺFA}pC&k@&0@>r0u-ys% kTmr YWIe{1܏-S׀CX5ȵG6(пјwUH}r:~\eM! s?ΣijOZ{$U1#1J ]v[>_mpmu })'hЗQ* 8fy +>=w$) t9Ïa|$љY;6f_)b 5خǶ&b{gbx O)5dt;mG/Q'*;)p XUf{&wѺИPn.NVjd ~E=Kx:\?דDtO`X >-`U2K@ +\gQQH/5?z ORz^Nl߰Ǩc~g;h$i= lYnl WP:l7`{'!n-n_%sŃtAzDwm_P|ت]>`tdJa7#u:IDQR-4,MGZYmbÛV͵ǐy,G1C,E'9 'F;5:KQL䥅L>f2H6lq~+93=\ssAOǾٚ5E^8BpDJ8jnV_D*P#ĸc7|8V3pw1wG6Q)pd‘GnRx੅M؟Ld4HR1è:g(UW^1DwAýxK#>6s13:mԐ`ˀ)𔰓U W\ᚈxC v~nw]Al}`hi`, Y̹ßI)&;U^U'4$yRTRLPij݊.V8uS_T(u)G9%RQ}_ι_m>@xV˻JP=Eՙa2åL2TYrEm5WEA{kߢ^y䶝UrF8Xʸ HjFJޗO4:Vđ,Y**U" 3X|WF\~96>>`b:ɧ20ہZyVJ)7WJI*vf*RRY N@9U*!k]S˵HNZe^+쮳9ALk=YHI;cQ5WR> BK?/M< +*ϗ'';A׃AA?L pew^g;n ,$$\ T +D8V^Bq2ZN6#2Ң >q;9oyn'[鐫%g+{ ]Il% +e VP!d"Z "8<<]LpUq-@ԉhܛ_! +c> ) $Uc֥ &Sa +(Hw#)<as29C>q-JFP .~1͵~L{ MHi 4 -JG ll+@5c`*o >40E70cۭ +W/pdK,1!a7fF3bll m B&xjG؄;@ |Ro.<)> ?:cm9&'4^6O/3JκsܺbCg\o3@jiy\g6^g8 9@/}o1DNQCbwD&AzkN# -:Ncnx_`='d62!'#FW?r&eRR;㚅ͬU[uv ~&v6IZFPI`%XEnE㮥>yl>7 ,f=F5\3KTh\5!%>擤!s`1kD- ^[csX|0>CMlFY} s$A n–Z5d||X`5?b ߝ%b&&ϰo_`aM<~H{xy71RX:8{WYIň%@#_&A%WL$u8xWXQ>8B>0uUJ &^pKd|G|FwUV3]6KD_PLpoFp*%U~/N )ڇGNvSO8jQv85mjd+~Ɵ9D!Mǧ);Lr+jOU,U*.V_ZUbRmP*Q!y7^'q~&>@^gUcS;Y))*wzT0TjĞb{*tT(Ѭj-JsHOU/Zl( "Tr O%*HV^SSSI++5W0*7BMJ3:eK1VmlxRS4Na\ɑJb1ǐ' A9J@!%7=A9$e(ϗP&#}cr?8ʫ +o6$,fwI6l~vIHBH&@J$ +$AkJJJRZjŢXZdZQt:0VvږaV;0/۽=s}o +|ӷCyd}Ke+{y3݌slP⼫`M2|ey*(!Uh+ت`>9ò7RN-F 6`|KZi +|A|lr :)wr(4KP +Q~RpBpNˆ/B׏܆hDѲ!|PNc%|a#hpJF0ߕKżbxLq㤸Sn~ǐ Ѐ (%]%\a8g|JHlHOq4di X65|ՆoexhE0W!Д./n{y೎Y|< scZlŏv0 :rEE0&u٦0k@3nIk%e o!ya|HsvB!'KA#KYd>`]*Y Ճr\tuL-1GlkKx_ o8I/9kA!h.\c 2ꄯMS~w9Xeqrđ&fNjn q/X6,ao=puV?&kyGC&g3dL(9!Qjgky?ۇG>-})wžk) +!#6ko,c\ɊA(fC~yCv&ړ{OK߹F*JyW=烀% qe#3pH\΀j<9y{@&/|N:gT "bc|'ku4Jg-_-__߃?[mrrz{ҿrGQ +-@t%"}v̨N|StLF8$P3\PEM/3y^b}"3ɹ#LV92l+C +3l3ԑ)eX%x?<>j* + +-tL4&qXsh^x_xONjqJtR{L(P&˽v+p^Z!3Ne8qY Squ sa(C2M~] +{mf{Lm5:'`6?)=|w|_APŎL籟.Li$_y=Bz?"kzDZ}p_!B%}'] J)(<5kn tb#BŅ9!:NwpCȎn$|_)nSV"xfO*xlyxH%k7xxSspd;I쯇o9r8+[@ +ԁ8cҕhC|E\ +;{Tn6ٻ4wX܍*ɝyyrgEo/(3?do%3$$`BH@ Ud(Q"EED +TPM(Ȗ-Z""Kw;=4s3_sg}ߖ6(M@rAk&Ь%vJ^ ; KgM@ úZ|u9I<9v,}l+팸 O8:C_ mk<b$J.!)A-A&.~OHtOHZsѴѪŭ$NVi%M["VxsRܢx:{u>4 gqYBzt}N}.ѽzDEģgq%+ġ~ŢNy}d8/aKbrg*bNE} +A3A "M~K[4[<~M [[%VA[rNj?]༆ey|1G@(h`*]S@K!M>b Gs)4 N_(| SC,u%7$ђ4ų `6уv-dwCaآļb1a11NSaȤϋ8!5F -ESw':{U!<\>y0?*>⎤3&C̙",\&57K?GӚ +4JC96g! -dSCI23!rm3A{Z"%I cfqdZ$-*<|6xcw!^"0Å("qkNƤ5!96"M%3 Cso#:24s4/%RLZJkM[f +ESjhrٓ\gRGB %xPEWjI],-VI^T0 GFZќ^IRkA#VN,c.'ZϕW:g/\hL1$iRUkkuRG[bNڱEAΚh˺نTIn}Rɻ@S3$( 4[f\" h /\4DSGwΆ݊+yލCF3gDv6gTT a[>u 4UFhF4B@?hI| baX_MbHДt%0>BS .z$f*|ըj@8:FF0'YPyH`pΪ4M LH9:KFf T{|jHh#OS4puddq'qm*i~RRB7 ೛%ljۛ ZoIq@>CRM}jP~D&%x8(D笚|9*Ŭvh֘Ws/wQqN2,AI5F(SB)RV$M׍luxUyd./(ǘn+ДЬB݆j>׍l[ {T38؂r99<cBvOUdN[`(Y9y +6izEqe-Z^Yqխ暶U_WݱSv7٫w8vC 1r17~¤Snco5{gκos~?.x?.|EO<䩥˖xz3ϮZ k^Z~Ɨ7ymn߱s[{o{>Og𑯎~}Ϝ=ϟ.\JJ]IYWQdg+/RKrR+kAݔ7) nƃe-ʅpa2b"NLUV܉w+3~ܘP~< y G+K<Ô+/b:&e+8fMy[sP>| T}<:I?().^J>\ͻ%~__b2lvǣaO G8#1<\|LҚ7?3' t뮶;f[mq&O6}ƽfϝ7 [xe+.j[ȤƟILiLT*Nhj~o'G~83gϞ;w?]pƶehbm֮-;zW_5a3Жj꩛sӲZdOG. 54PCC 54PCC w +u%^]/9 _ԏ-~kwe ܝVOѢ'~HPG VFծ=Ͽ1}C&|ww>/n{y /Mٵzo.Ѳ{_d'װ6Rk]/޳̾{ttp|gvzffgi;fiNд2/AoF)TLP. E["-)'-߶g/yޘᎀN"_ +)Uka"a>W~ՓĢ ?J!&vezzc-̣>$CkSFkCe\ )j3J-)|ʉ鱶d(;nZs>w'C71}fDmX4 >J6 3O;F.^hW}F]υ +{E"f(/c`4Ѭ7h^!}w>85KhʙHAΡ 5.-F\ |{Gq{im=/ZtUppdK*8+#KD0 +3{717@AoPa.57d0~DK2qH9yBCOmHLU1tՔl2"8dX2, K%e( %6@du= +םj^A\ˎ*$,!2.KGv[=ZP +$A=]+#zw^ XaF*bZ*SRD &^\4h`C͏@v~'x<\վAGi]8^@(WI<}IXA-edYÍDVa( e Zg:8QCHz,I^PQ%xI-02,탡2Ad jk.s[g-HQ$Xi}yJ&E|Ne2@ZFO AF# zw/؄9Ќވ0RYeJ($9J;C`M􂜇}0 P/69&Il됼:y*LYT~?W@lͥt%SYBfaC*Pn;ӑW_ހ}]M*'(bN)%O2qbzȅ)}^KgX $'mo N_u_q y[r=P"fUdVp=!:qܴ.K``ZJ s^9z5-&i *ઑ9u(I#ObDQHnƖP VKE2jVwn '\G&ǼԲ֠m0NJ\ɰuUH Z %4Y@" 5Pog1ip`䉳ߦq/g(MEɱZ,T"V $KM2TjA})Ï9;g/(Ė>Ȝf+Z5b m @92v~ jl̆q'G%7B#~̇ސt& n磛#XB. xю?S]1a^‹w>LpP8:H"Ol@H4@D E> Eߧh x 3{ =p~@bIb)y`o%65~) +}OztGr( yĆ_ x {L|@mT+5s7*Nȁ3GR]xڅ)|9x^d\ \dyb.pPdmkkm_"8'q*)c{&B?P|5 +b} \hXL35j1|%/h`?b!4У( ^@9 Sa6r%'Pb 5A(=)|FIS|F!'AcIn#V4jBkn    {C.bE aԞ=ag*"tVP*GhHLf)sUQ͚H%PY~5[y6V!zgkhpwK +Ly}\DM3 3]WdkijJ$#d=U$yA +7B-P%P_6`ׅ3$}N+5AIL62U`#%yWFSE E[V\Ks2[nh`ԱCbx. 蕽|Đ +Cű-NV>ߊ=jVy& ޠe=ή0ۯk@G +*h\̰O^LA m(U42fwO'pxa0|YPa47(t%1 Ο;\0^vwvgԟg oB l;e^cdUd ~Pb07(PfG?^;87rzĸ~_|)8Wх5SSrITdC!b@ As/=s߼tD[gnyQAA$LN'3 c8FBm}.)u#=g4b4~noUc[Q8ܾMYBy͇fBHOI8t8:K + |H{ȠLdT}ūoݸ\7gMӫ[e`Gp=ϡnO"@EdYs@\4yjlflV/o.=ٴBj:*n%}lNmg[SeJKn/T^P@QQQ@@PA/],YinmyRؽ +e[ +C>yE@)H;a#ssEfKϖ?,?_V3|~lEfAx8䌃XH?Br_({Jh3[^^0_S 3`p^AkOot7$磐dmÐА +P+6/ +f^ Gp1~)$T1|RB.玦TMI千.YoA777SCkCɦC ?#4wPO?Nfo0qZbNYLn~(VbOKmkZeu8MB ̵Օ??#Ȏ,kNDs:#:'>V\9Oe t̚R2'L掞8Nhmנ镡1!?mb#~GPqEfV 7UO$K.R+ \f9\cLu%uMXyߪoNhkGWF 5Ak(9ԁZ$)93Ε4RfiNb]6*MZInAӉW2v -&Ġڷ6[ɐiuL Ye>3YK@e6rU/"4 SjbMCb"5b@ ЇIUBEI*w:SW.+Է[i>9Eߔ+UKr7Se@p^*6A3x!Y!,!*y-vANEM&ACӫ cuԆnvC$e^X_/.bm[rĠyb g \)ƴ&} IQRVmz;hgyn46,bhغ ;WB;b>tv/KWt:A`jNmg\}CEŴ6NΠ7Ҥ}4E111t"/,1AaO\4FٴC AJd2ȫ(8Um3R HaD ذ$[n+A? + cSΙ# ͺvUD֜Zא )F/ +(F;Lj! +14! +rfס^w Y]1|6QHUU5gvŹ=utsԚSͳe׈2xRKFEMP81H|ZOgk15zq4`.dzXFPV(3Kd&Z/asbP+KVPBCǎOf{~4]=|RPIZ-` I-|M)z圾ЂxME os?߻IocA?c)ґ]쉗RtIZbAe򺣕EHE)B)2*AW8/1/o\#=s#ǒF#l{t%/NՓ % ʸtM~aB4|}MG 5 qtl^44ra8((>' ) 1tIDIz*5+ @};XpgӻG\^km'#!_ٴ_DTXrR,-s4A8K`qqY9UX[~M6®QUA۠]tw \ԮUGg<6`**9{".#u 7 '8́j');m{k&h ho''DX_A!NW1K)LY[FfZy on: L㆚ P 5ۗ@+@t =  򆶤YIVS~AƷST*e\W;^^'cF:/n΢wt@s[\d FPEt$H3>eOsJ0)/(kh@>Ӭn fvhN1{vgo'h9_ >u6EgZcin=aqWu7h4(N~ ="l'h0SFI721MGMl/ 4d`B mȠ84'<@sgV;5Q9Ts ny*rQ(FRiھ,&#{ZsJgK|ݶ ۷6@|ftgB&'=TeH[H}U{˚6˪Zs}I/S9K 'h߷ +T7P1!O I=;scPcƪQm%WY.(IM7ـ Ad|LgGX"nJVx+9J%rS}Zd5LV%THdHm/6%^AfdP] ={}-*[[|SJј*9(#6a"[R)|Υt9Xe*\of{{8 o@eЅ փos{Ȑ選 WtEi2ȕMe*icAfa<&ZOki*QCP:gZd`"/zn߽ʯ'mytSqф̚t^s4{g%wQ5g,lmEڬJgd୛ m?gz݋NP*|3I;! RʼnC䖸 5mkey_goMi#֊NǺ_ъbZԊ"( D K! ـ!!@BB "ua(nXQHU^h?ܿʪ@-g{~o٦w7iaݯ'^ EQG TŶȟEa|1Hx]&]-E"͚`^?eܡaWtLmqu~)~?;I _)OԄi_hY=A.3+ݑq+rnW-n/^2禰gl}'=$qϛ2 &[ftC2.L?+N +z*)ShSes s +)[+,vU%8Zyps T z;v6ُ.3 -#0l&. . x D ꞏ|ces`"5^Y{JOD'"E5 2p!8 ;Bq(7n\v{>F+,Uyv.5ก +.I- +vA@Dl 8p}!:.uXb,15(`ռbYȅK2Uw ׇ _ yC7^R@qX;o;w]8|6s\FV[a4,/Aqp[k=;\ȯ f+7@!H26:C6 pm mlO +8{q\ׁD!P@rԣag +BdIR&ԉqMYϢhc.ƓޜG{a87Nso5dX݋`J#o;A ccx⇿LNHVvL7(I sU g F3LcL.SITS󞞹's1{.bXܛ|mz^y3-9D^鮒d L4T ~m8d{嘳@_h[;V'(PJIki)%F'\WTonuwWIeU'z+fjol/c}I6K m+ΨU\f\VnFeoÅwE*I> fh:֥ݰ˧֚.n&(袔[1Z(>D$h $k+{*%KGuS[o{d<5mq|셽qj??gpzB9(RF/oeV[׃ZE-M]5rI@.i' 7crk]:_Szp؜q봋sd 2hD Ӌ>n_ҧʫW\[1(\Ax*P& e~Qaўw5rr,` )||dh2e"1!>LpW1CBzmM><\( WyPzѿdf--hxomP1^R#g¦iIIVD6)/D~R:.rЬ,N/TV ֭],[y +)u߃'/RBHoƒHgyQ0 +L=ED] +DI(>݂]+Q[W_M[f1-cC\ÿDa)5:6`5\,+E$Eq$rV7z߂jZ'W ۄpN%4X`E3@D߅P Y &( Nv /Wm FI,ˣF9"/*J~ ?*\8 'C| X d}51RL܁i k|s'Z8B$1"۳ uod8:;r8 8DC+D8CN@;)/S~l ZCDݑA5"*{&#Ud8p@>3Nl ]80 {`ma CVsX@s`5Qd3c&?.n)TC*בֿ$\)/]N`,w[V6/SW1F@g JUTC4$"1 Bg $*AHP ' `jAj9H7Z $d;A, Q^jC>Ak6*8$l(|g<59jCo_j@nEDioK 0W, `{kX3_*yBJZJEZ n $/F.D>y;5?5HoCIH>,1Sd{jC<, 5ujS h5<:y)!j@Ky4@ݿ4$ig>3MM$" q:y;*CaӇ,.1ҽ?'qL.\|Q&$NzEseP ONM%O_P@<Ґֻ<eh@!Z jYu&o5C\D.S^GU$ͅ`̐n1p=pS4\:9x Va dYˤ~Hg/$'gK'd= iN%  t=n?e5&S74!i HCJ9@ї^\Z;=z4C1O# + FI%>aOЀ~9x,&i<4А͛lG68`H7K +ANmtaLs)JM + + +.QY2%Y")u"bb] +q@$8@50Eڿp0̿bv9YCu7DrV,8dI6Rr<ĵH i(ߴ׵G>trÛV/,أO[C0L]5SI =V E fKt XBkUSjOL~Wi_  鶅 ^9k>=퓝#ۃ͑QqMzZA(VIXb>Yʙ,uIr- RzV]@j +齒B  dW'`#g! ƽßo=UǹC;|{Z#"[o]MIjRE6') oTWV(VX5֝U[++h(\Aj|l>m/^7K>fs,ؐ'NYJdXʮK2_f dzh F<ߪ!zA=P4;A%r@Esw]kЙM? _p8#,-:Ym+jQYņ<YK G*hez}I$jp^ixo\GJ9t[ivO=W{y{7QUmqYd +݄/4s +b)R$Ī8V}pKsةUu_8t#Tov4t_6=sꋈw]`X ҊsdU4a|S$$E#LMaT! LdN)σM~kcK_o}vvo8~,x8<⻘4j̒byƉ_Qy"Z4`k0mz{i4hހ&ǁqܵy 9O"n|@F 'gR> ݈6fYM\d2m&Vp73pp,gnWA8vx2 5c/OOp>D962{"1>m"S^gEYQϸĐ҂z6 +v|yl@jGr j`bCo+ o=]ޜ3a93WgC3"㧉1ԸkxI!/)uJTm sE7Cj?EXzf?l^s_);xًٳa'fKf`cfKʂCgy!$a~W}g{e(]P;# Q7la +8 +` xd( yBr&gp>;~`}juBR*G!lu))6<קix A;/CԞPH i =H1= bPz\Qoh<-^(eCUM-tZ':-"%,X8.λی-~^m灴\qJw֮ udO~q|2PG( ac>lpNj2[Ke8vGEłH "BH)$${$!H*(( X.l"(3{9W?p.Y{ofF0  dI_}Rb/Wx"xW]^ <|s8ųq0}<Nb8!cVx} sw[1,b]YHLelQuҬ`ZdY-IVQ¾guDY@< ␋ +_x:[9pˣ!5Q-e'& +㤞-Pq$FDk +(ܚ|9ǻenkxn1P` #|"Ȝ̍j]w{MEP[[L('1F:רgKjJPER+.4ŧ3M7XN-Kt_>kDP"ga^c'qqK>˞^=SgsוGŜ*OJ)*JS9ZSXW +tr]:ǐ,ȣ+*,4EC>UuӜХKe"[q`/j, +IgMk@76޺|tŦڳ1ѥ|~y +M_La˭LQM-àͥXL$}9UBȹn&;t$=)Y-0epD`anj{9vZkgoaGQudC g Kv1[F?!RS +zdH4%Y0aN8u)H d9s8g[lIJŴ\u]I㚚G1hhjsP+]ռ\}xn~sDr^G{TAPI =uz:ڬ5>tk7ͤ﾿Mw/uk zDs7u#)y)6YAO9e;푷T֦P{@!AsSwZCRs?U O>Rj&;ߨ}M[Z +W}^w76MUK,Ց=8RAbyڰsԁ ֫ uTqZV"D '(`A^Iyݿ20duQ琯UPi5w["I^OjfƵ<ɕawY9*y;zZ]k^wiT4لݔxwg 10dBVI۰ՙ!NG|=xa~iw\p7?W^)m,m*m+w4XƋk/ TA!GRpn .q.qst [q3c>VFn=RRL{ e"Ibw:C/8hΎCBh$3b\PpJx֮CyK2c~q_vdrT]ptInpF"Sp},t66!l"FMl I3Ff9X!AN{H+RƍQgSwy*wlHڨTG= cpsdX"[,G\Z $7@t6KH  +/im>MKH{ +D6XkBA2]d (["O@~bN{@i 9Z F?x9 ϙaciǩF9ݬۜ{1HH@?!i&Ri#g.Qi@sTnBz!<y1v> eJ ?Vެ#Cbhw/e=(}z,~L:%|HŞcdA@6}GnRŨj=˱j*n_J2}rcf32gҎ$MIٔqQ~7לG᜻ vfOJsE]Y*HPkPNaZnZweCI~T~%c"7*kHNT$Kc͢ܧEw/ sGxvt'g@B6$7ϰ&5oT#G:i)E edY$oH I؄ld)C@+R>}/Ç}07H^0iƟRO~O$,i,K0)QN|BȢ`z@`/A\$%%!5v_k]7t 7S.lt9nF f=ް|܁Uǵ6[B!ڐgiznT[$߮sڀxoʐ8dgWos0f3iApZ@bڢ2Mq? n.a~DX+"UP"  "d&R0 w~T]sJ/)h +k0x QbF-&*E jQQDkbaĠ8?R9Q_3kỵ@` ܦO_,Z_t86]aɿe?'#a dëcV[L:@?}b#o$`W{tC +5@; A_m@%kPkj~CfeK0Jjn@A((g4:I?|kXyI*x $%Rtfffjj3Q*jS$bZ\uab'q(\} Tp0zSs( 2A hBmT‰c4탱!]~^qD:M"!#M)Xag +'d&n,D#fa$ȋO0K!G>(B'j m6s+.\I9MD*9N` (7Fx!$fツ^kx]2_K,GT-t@B{,Z_]$$)\Na8XE= Ìzs\2Nl숄^ RMVBd2ePڠfV*`u}P\\cB瀿<JmQۂG0ց~Ӯ^ 7Pz<^O$B°7yi}>Ǎhc'|>B':8<WC𼍑2M0,؀oNXׂ䣮wvkʯHH|;čWH^: 4.x#=h1, -GrR:" `q'yq~=@$= &j ڐw c!o& 0 *r4bY0CFsȒ,!M[t=NU")3`^D`0~폰I𱤡-YI|89H  #D:#eDN3afȎ\E%+!_q U7xw܎ pN}!kH) +'c-uh&W؁/1("B`p7Yke9⬐˶ETxATGLroc?KO~K RSS?{i_c#:u6ᐼJUOjoSp +'r"Rqΐ1QcM#)'XkF/%mG{~B?d%KD.vX5u3Qi`slBE|q볢0H+z/}+K~?Hcd`v1n O ?dh=L-6kq=NƙLR +=d,GJfb *`[%ƶh>U^ذl`=>ԧٝG0odg>$nޤ__I\2s)pFn[lu4v?5c5vwֿ) eG+ ˙%5oDH:2p~LξɹΧ}⏰O2t.KC 7:y, TzdVG[ʾ=VF9Pis.)/w"`8P#~}bC:1J"n!ȼ=sSbMsF])c~.SPnrn(W%3ʓNcžQ[=T ,BBxyɮht9e5hp[Ԋ˓vja̭J9jsT}vi.|oC#$ +$Z-2dAC.q {'i:&C D,{ږ^;2(+r9gJ' +*GUYs[eu-FvAdOse}N6V i(&A;}_;c䰛p­s}Vt*YIVe˯W6嵨~[TsdJiujejekq@H[2YD,%!iAGF>s:jh[i~W#J:Q#gW *J-eٍŻuMj*UgirYB?uz@Q5B];sk:~#-4)A)ԡZ I - +*HDP]@?8*~Yѳ}ssv: {:,{~'ŠBzjZƲԨ3Y i%9ՙp0W(D/D)췉y@4!M?a{g6-—KR.~4qj4h^\:Y]_^+(.*N/gd)ŒԌ 񟱒@:mCySn~c+ǯx`q_8ΩZAd +ёTaiEfFajŜ¾#E%/KiG $I;8-88 w>\/~e*=3rpAO^?۶[cK8!)LjFU^Y\Q/?//[>_LRZbٛ$8I rԫ⾶oý؁{q{nvh䘽a^k]gOhV0qјĴdL^M0TWõO5Ki1oxU+q@6\ET)I}QFˣ{*޴!ݖ17ݶa LjiO$3#>$Mr,ȅ#q)MU2Cu6d7m\N ;~8I jTDfl\o,jo: {FeDzS{“zbb#; WקjHjNgv̦_ -8$t%diF4;$ݑFSh䑎T^Ŗ86_p& ׄ!q쁊D$߁!c`V761=/{5JqP)^^ >;JBf6gdtmB᱃F՜ACƾ,ǴPOhޝ6wBš(whñԉ9mb%~cPI _}8-ۤН /οQKrk{5.T@%uR=w1щXE_R^K>KC  />/iE%FoZgaAլ HkU-ɫV"WCW9FHՔ}B[Z~Z/9})gOrveNfB82GuRbE| |#5lYwT [`wi} ӣ}x={ɏPcMeC0cy^a[I2ކP_B-7:=P&\hΆ80dWPh' bpN't/}hc{6m@]Ĭ Pet7||ϔA$י T%OX黀 >]4.#`\5ƨ LϬ_9,P-R ,?S@5"Ib-adVp'EBP>0O]QM^[TzYuQ Ɛ9! I@ @ A@(rUZPE +*Ȱw;9]笇ظm@X  o#D/a$vla,|Fk~`We0;xۜ{!p .B i+n hkrx[6?nǹQ'q-[FÖ8āh=н0 D Aq1O#pR=%~h@m 3@ ҵ@ez$|e[IZ؀ ws*CfV=zG%v?&W0e 'waO"w6x   Æ9~/ϸnl$;C8 T7[ځ|فa䮛 N!F#{4i!U!_ٔ>oA%W;9-<þ$`ODfhl<%n|TQG wN::>r~u.;Zm`.W&<AȍԄȾD WA3JJb;D|IoKIyO%^H>J3*dS +4p1:?,y7s_pyP]yW~1GyFԦЎ'XGE6&Z,L( %;Hi{I 2+F,,jB&)&:Wn*J.eW{;i4IsȒVIT|(0g-$Z.UíN2 +TU% iC +nE>rSiT՟՟y z ߾C7u27ۉZ5/[|ٲ[WjʙN[QM*jmU-M-4cR<7U>42_%di> +35LA,ty ]lrxOgwۂ_;CO=aCAֶ2fS<֨ThX%B}0/D=$קUR:U)?RHӎ1thkuNf Gkf,ںkyWS:s-=hUR*S Y#0deIU+*"0$N%ǘq5@:g6t1f_Km^t?p#`:Ἇ7R4ԲwVW e2raS(hr+F$!ˬeHP<3Sd[X15@ cbfq݉Ř]K0W4t QrFVXY_aS֗pRK qb\&-O+=JA]4_8̗-,qi O +1P= f<^g̍Kv;φڻp;iSe #ݓ &ZJMr`:/2O_^*yNi7.*a^\W<ƴH=;af~.al̽s0W0}Wu8/l_t.ҳWl:j~IH (" ;BBB@aG(Vԩ#.uSw +,0EtVEq=c= bʎϼO;~|}&GPnj'Stbo~~́ՍҴ껥? eUe>6 S9Gg?2ɃVEnvK7rk. ^H +/usYq[[ 7sbMFuaӶ9Y k +U E┆u9&NMit tIn3 .3^9w^SǰVՑ|פЭ37\X%XQ"L{~:ܮԶʬymdmC9TeZl7$chI-if+ qA3$MScCV{n Э _}#/zq|εIJŕJ*-A#HOr{kJxBrA7좑ܭt~NZn2I##rߒwYQ۞7<{7ú{cDfknNS2KR2LH.$ &zrX艨Y? +^3C \?bY>.Ԉd#hݐky˰qooLlqd)jMlp-:2{-O)zIH8!J"HX>--t?x9g#0 ee:@i5 !e96̰p\C8hՇ" `Bʂ,R)!*Bk ;[s@\#/x7){4<ǃ.fqq!cBE1"ST,B%W"=U^jo3v+w)n࿡) +>HmW] f{!և‡ T\cMPCj1de6C!>Q DHhu«)5QʤL @JM 0&jTًH CָCR6 Qrq Zلq鄏 gLQغ|AACil2} fl)2HϠY_8!e+<8!vCKľāIp1\h"G$wH +.HpAFڕLw8(XahS-^dltf',rw6&`FQ4%oL::!Az;׈Qɛo%Cҹ7I{-GK+ D4ȝP*yLa5%B )mP1oL6Ɍ=~iޫԆ&7rGQo1IyCWW/dclLg)BCBt!ő,:飔c}!"LPƷ:̚ bϱMr6s_`kcN8MEqkKXܪ {H @ b B-@"D@D +A^VPֶ^u9ߞ3)1 ŌyD>$ < {>p}n0 1[ n32+$lw} b:XۯQ)GrU`0kq&LxO1 Q f#@O[ a#O}kTm=0}ډ}Bs"oףX}i$6hWѰV0+ +s~1e9XET2K^Q9A~E6fLH@S@V@((C^ +d!o5n3aNKǪ]/wt9Q~uqXN-Q1J8yj^NB03S?*?g$z$ {s羚P?llew]O~{GI=VkȉŔe&tir:NfQJ8Y9$Q)JRR^y:m<$HX|\^ԯsv-K.O}ݪ7rV>VANfgf1ӋjMOu^>/NPJԷ$?IIeH\@\k X +:G.5yionm>KWg(Kɔ4m#%']ƍϬfeiƴ$:7<-3.#%. lb$ zob0[=\&:7;/j;E W_v_U*є(ɧB-K^P•Djω^H;)ʋ*|˔|J d!"5.7 Eg0ri={vUM-ݥ :gv_cĄr5-4uFxb$[ܒ\A?LQGl2d=iv'poٻǩѕ7w6qiD>YP|]>&Q*4qw mWB-PA;?k#t{h5h0phUw-uHy^/;,1 +0idҌ,M6ɍOhoht#$1a-0 pF;0r]m3`fouw)^lw+{/J#E] J ˒B'Q:*(v#-3>xJ÷!a m̝`,߷A ,hrO-i~%s0ɇv9-t9(ax@!p`9 l ,n0aߌ@v;(ݎ[G%];1MοÞOʾ\O%(wƁfdlfGmrޟ~n^BL Ѿ"4 I\dLCpfbc!Ń5RlOh0P¡Ej9Nh8b#MN dBBgCbrDd9CVI;hdFo۸O@p꣞Sc>k ᳐ENCP@^ᆌE gސlB@|<:S!RԨ/Do/G [1|l hf;U:A=*$(j='os背f2N/d~~C]'^OaM)^Rq|m$ y$ rȋACrr]3CS2.TkyP~@ȏA~6dJ +|:a9z[ gBƄ>c8i80 :W=79>Эvc4ۂnAPAu,lȗQ!ѿ)^E*T'* d#d@G4LX( aaV4D{%1K튢|O"Ə y%~Gnwv?DsdڐT ߳`F5}E=z&L`dcn= +'\y0.+\2lZb憘gMOsN=ɪHӞK{*+y&O\0TAtLi/vNuĂ 7ucżsJ>?.\0s}Իym9,?-wnog\?]}oD|$u0R.`ḁS.͇=/4[/[$ɿ(*n)1wƎKNw=Rv<[7E)F$z".5,uL,Xo?T48˽oҐ17*fhiHRRF酒EMs-3ԧL4'L]c;ڣϳۋd)!J~r}EoY{|_y"űo2ksk._YB|Ʋ.͊c/5K9P|>wϹ%VKedZ n)J{4/#/x +b}_`߻FܽR|~vLU k,WTy|zߜ_);qc2i@Vs%dM}Q ỐOsڷYVp3? c> tF}i1\Ci`mrkU{*7iw<狹_(o3~n9h2m:oHXնf>L0?I8XUA)ғ`B(@( =jjA@P((2눸zQ 3{f{vV|>_NnMF*1&8xxot~ |NΌъXQuTY٭9.}|gWF>UVJoO&51/'&Tſ +NZ 4D#/C ++2TVkrRtLgve뢰%1Gz ;ryr)R~1)ܿ>YƪLa&KEļus->TC"{٘p#W7 ưnA:hO6zIw VzE':J 9U*%IeQ'Nt=h/L@ +TP![ ד`]tk 5]Rwҗ]&ok7BۣKq-IM79'LWBȎr0yL, +M1e?0Y~rD#CdUV&z 0_@]=hxVr⸁pD0`ƿޟ:esZdjJh*dAC1b)VO(P T{kn~x{oeFgC5='ݼios~)wC,D쏹k5t$9ǐ27zO17ml36E|blՋ6<ȕ~WNP0- 7HP5 #(^C}lgIqLO΅sd?8{ &`V`ǘ9f32g̠촋#:JR%n+Wq gC5(~/r!Z Ɯ% Ygf~,"/|&x6dtmGUnߣCnO6p`sY9P@ -HUY.B )RyLR7*71[hP),SOeNwen6sew,~^p\O;Cde.|-{2!aYb3V]5+ꊟJJMWӌV}(>o;6kb6ە/a+~*p<@k:> }Kې_|4kC:(r:k!T +5C^pZ>}w <H[_Hh \~:L:IvMQ" +ְD{P9Jڍrw2Iu|u &9+m8)@ g)kHE vȜ` dYTg;Av5&@ $$$6!)67,E*n8RA[EQ}k=ťӊ֭Uq3_ۙx;}srpig0 bɴA$ +ZH2E1ʴ JYec'6PT9I~(“Fp [83ؘǰ' hiCzu%icj&v&ON߃Ѓ`O B Jπ_.xzǂ6p0~b8A\4uxg3O>C|x\-,@0Yï {M;H3)W;=%wÔ/x0ȃ&|<BDd,H:τ(} Xict `)$- ?&^[?i >Th\H>D,Ku YB !2m@½V"i EknٓWB_ a5W\R'H#ݘZXc!F](#,2S֛CMʆd͔dpG#vg&W߉ڏux!px.S lH`8G!ք`gr{Qv4bgمD)t01&*4 _c3fE;v7{^u~%;4 sI\I>{7s~c +RV$4ePͦ24/-!E: >&ϵ|3So"j9O=w60G=/xߑI;vM +3 " D[1`@*&D3>+ߤL_$~YT|?V.z}nFs#b{=bwUywTyߥ7 Q> v&c a$7d;3,!7#ўL {g c NrPչ_Khȹ&v߅s1D <}Ip"Xˀ|ăs8Ép'4!ιtl2K %dsobɬ&?$3K/w)|*Ι=G :Pui㟈&LUw( dx CIb̀B R2 +{ƛ*WI5GneЌeJѢDNgN˽^w05@rp_Rhhɠj_Ȁ꘴?lww}Kop[b RH~6[EFVQlƯuNV+.Y*Ns:v(@Vo?,r=K%};;RC ˷W$VCؓ/M7&wУ(#Qo̩G06NX'3ZȖgaks&%C>_GT䷫I+&gRVRZfQ6Qmv>-"{9צU[^RZ*^Q$ސA.o9wGxS#VD5\j}\?!m,DPSO;!oQzR[3~:7SohUڻR]\Qo+/]%n.Y'k*ڤXUMYW0Y?U)aDm{gՕAP_&(TLf ֦CnAlMU``|wBmMIs2<;?n-_[])XSY/^],+oWԖ~*鏬(9]VrUQ.rՕT iiQohjl5M]_M:4:-p|澮PѶ[ZT.kzlXпBаliTW}" aQ(B @ؑm( ""PYdY(.Pjg: eLm 8ȢTEgǙ3=a>~s>9 +f?pfތ=!)B3&w7- :íT~!3߷1 ײ~\btqjZVWdx,ҬdX]~at,^}w:}.();x{Br%FeTA:']Hx uE:L8˄M|j2$Z%&EŹ;itK+L)(I:Z㟘75Qp|o~ ^BD&}8jh]π4\nAG byэWYoP|&lmM95qU;U.puVnTUy?? Ȫ=us5:r%j8Of.-lHa^ttz/Z}=b]Zfx;:ƞ͒G7(=:}B|BF:V7^:{Nx +۵W:?yO^T]ׇ^+F5);ǃѽAOﺴ4BU\ۘ{>ȔF|rT^^v=#}#mJ6'jEVH]r.;hHO2pl`)0?cWh-KjэcǚD&Zn*Q<ZG+2[2Q)'9O7^F;uߑ.> g_E̟d+?Āp{߆L3Npp~; ơwRL2,X +kmb>E !T*ք!>8^LI dlT,q*+N׶>~LW4Ӡg3s'|:Dx ꩻDa5`ɿ | 9_!(_SW"y֑vuc8aڽ԰ye=c\\tm2YYpO'-Ba -|P&(Pq%HђBW=iS `0F3 1 +Ә+{XY2kY|uS}.?@O߁2``Aa1 +5ZJTP+Л^4#h=up,08XKt0Ļ75LU$;x #0%uj}4d/K P@領F)AWJ) (t" EƖF;R!"Jh`8 AhyǵHsq'*.Zoω7r,ɖXD8(g?E,A660G \ QJ\ Y ?ψrȝ/j:YB(>\E t1QB0MƲ!Y 2Pͺ(EQK  gijoĨ;Kx,(RfBҜ0SD% ݂5%;_t߸Jkx(i ZG>b9 z }z3u< +qz:O|I~`V=.h` t "7N qQTM ֆAH$2Ī3l5c ~[>`-c5Sfe~ #Ɯ}Ƃٽ0L ƋBF cJjH}1@LIJQz#r߇zVM#ٳn'AF}xiۻnzЂL0X^W6!``U8ߐ4|3-5.!q1GQkG,7[޸VNa{rq&ՐΗB;_ y4F=֧#TX`̿6M{W"H7Bd]沼5_g.}ʎ{fk"f|*k1vWZ~޴b.#" t?>1>Kg O.Qx,ŀ^ `38xػ,|+>Iq峜DKm%8opks=}2f43J>}pIʡ^~3G 4@x{;W`2@_VBkcڝ"_!y٦9zw,;XýȒp>IdY>--\!BEݔjoBWhN(Ԏ}ɂWD+,z*2m;xBa"4hR~/C);ªțfc?]Y뫊]H[@Y1BVaߩSGB:j&Z4y/#g$H;$l61ױTW*H}$B%M\(/, + nOY xb - ;jp:DUʎ0\2ckY,ͦ&k\wUEbʊ:NFQ _r*(VP~[|(B0l5g>BU t]*щvutc%߱0Nkc,l 3R5n^Ԑb]P+uHd|&3e#30x=KvHU=ki;m_0ptn.>'n_Zm}W +>H[4@oƤ`GLspf=1Ze_LRs`6`a(nQ5 S≧3JӾU_zk;qolcoLc9a91 5Rk)C:{PWX\(nvW(hdDzs۵ DQ:8[3.O08ĵ}ݶYٶG1ֻ5]ƶD\"ΡKԼ +*/= 0"&\Bֿl!:!#ԑufq:': ;#;?:kXݵ&$F$W1h|~z=}?o ? n3b{˜XFӛ̊VsBs>)Kk ~ׅBy yV?Kv@x D? ŸBG0qLd0%c Mc{ xgu7v+{u+}u+5=Jp_A_F9\w`l7@0JttTa4F1ned8 Y8ebIeI 52@cs'?25P@` EԔP\ 1l1 l01LF>ba c/jwJRC,Hn!? ۞ Fz0EYf&\TOal>/r* QD('UDE +尢O\\DEM‘0Qn ƹ28_BX=&P3] ^"°O,ߨ[VeJڤRUUG/Tgs⧪+⇪n}Sq[{jVwF@/eP`}\zi=u\Ԏc|p<˘VtS~U*~QV@do}v5uv^ͥQw5y2FkHWɕ(az{tGh.R0#3{g$inuD;nݽov%n=N7coK;bOIǶˮޖ]}$7,5ƣSk<:OQ0-mH8&dհd'dXdYIgs3e]~õ5NW7HL4\rA׭][ަm}^9U3~fݐ{S"6&d2:HF'6Q7t̓МЏyTbq~t[]͙i{iBέ\ΥM8t2&}w }q_GRJEϺ4tKGtfmL,+zwNq›NxLdnG*/ZN~I[rMuG5}qIK@H &8L 5! !!!!B-D~AumγMzvqwHEӒԫ|90;Fzx5OռQQBgC$kP|sKMgZ;> .=w$e@q<;eb6tU!ŕFQ=.Q#U"tGr VMN|D#2fo+) ;i Dokvpa2v\wz`Ys:P{qG2ˬ6d:jH343!ZHXi\:!$;D0ut [8?^|WA ,9ai;d8У;^rji&F7Q*Vnbh +CJdCJ,K!).R.>H_RT +DQ!5({AW ie$J/wwT_ZIqae-Q(w=|kXhރk}twKfWvzoUk%ƜyTe7J| EueTam5-hftd֌W RUXz͏eDL5;hϴ`!@[+{} =L۪_9w^ܧHr+pڸVwU9)ECi6P3&4l6m&lbB&fBdk*=[\?ޅ;`@Iv0ʾd Qџ\ЛvPԓ}-bnV>h0-<m[8u{\r#?Z_#3M/eȐoewbp8S-]YrNaUy,"_M|Tn'UԐZ\&MaSހׯT%=Oz{U z9gIO1!E41C׹z. 銌hԯ-iw {=k aC,CRDNئC +GgsYg./1n_nߘ7wϰ_d8"i46[4X\3 嵄 37%_A_Kn^ ,Pisc ?\tN B`hDSEoOu̐&ʡ'Q <8H1&FTȅ?G|&^(=7ت.Dv6ltvS!{lOVԆ!aP~`*ZpӄqtL:R͠LCsR|I_EuqӱKO,^&?u-Ñ#w6N/►*♺2jw*vEME4ʈhn +ҵПƃL##Z3p'S2'2h,ď,Q ;mu\ݾU{w+igaˣlnsۧ.eqhWD>F` }lAmstl6+Bx4sPzd\yʔŊBb5e Λ]7w+w_cmBKI"KPUvv4 t6L睦y 4,B8,pc7p5aFrD{̔=jG|Ŗ6\!uSiz)kN>*ve]]q+aMLtX*b72):F[\B:qP?Y@PU/bT5?F37Y-gUYv|cVtbYk25X2}ۗiӾ-K;4NҌA^6 ru КHW?w|98/#j8g> ̛fM -KeKr?R|Z9E5.fo/u$F!@n ulJA@5@XYE#.`ǕxZjUlF2Z;sng.8g>>&u)1$~*2~DV]Y$ILLl'bopk9@[D;W"!+H^૫QMmG3ӭ>ȵNSWV:u.NLVH:.K$Mr"91{b7P.8EC`{Jm]inTśXVʳmʲ Y咢LSAFK^z:kQ;kiZ2E]\PUnZV=CU`QJV$YNM.)g')v'(ds8]ٚ&3&I*`Fga4g˨}=@W:Eh[+WV(DVerی"ԒJiRqì5Mh'*o{DZŜb'z|K}jpvAH{WALl:O^UniCan4:vfGɖiY6I55تzv++ETuQOL9DU0DR/i?WS (l BԶ۠rW~>oJn +㬖u1D mRUjNaug}Pw5n|5s U3b7%zCt}v=7[*J5PjfqoEz S:BL6ψiO3ڐk6V*Y%]ֺ)s`7΁-Zòf&^l'~L !߽PvK'^e.=ӑ#Af'OЏl=R-4+Y֕mYdbkufM_Osak%[F~mf6zP(hU((H"y5E/_fm7A|oi=3zj,}{=e{g7>=f>yz LwoTy#@D rH!O.tȇe|5r B<x GhfL{'0yZLA8 c< +0~2$o򏁜a?O@ ([@z0F=7 30z ׋z9cQ- 7ö́1j5򄌑+)?W $ïK(ۍ(0` +2=1 |f Lmo08qLJ8 ƍcGg 0H YG6.Yc \#'+q/?dyTSWK¾!/@ Z*,ʾHHXHԸТH݊8mک^ENw~NrOqw¢)^/  (sHlCbh&M+_<8 xKKO>Nctf' HbGZdAC6=|Gwѽ8}|K ߑgcr?F>c!SMA\=iOcOg#SbH5|'.5ԘhZz%BSE]3QDtNSEWG-M1fO u?Ax}aM>nۓO_)S 'zRC*}I d+d[}̛~?$'7$XW<.z60s;pv*f} τp-#k +,IK`btV`Y.u˻w52U&߽6]n|ѳMF<My~ozIfC޿Ʀ76# uAmaG-Ƽ\%9Zy%FjM0=favo}OOՀ)c>׬>~?l\Ȃ aha߿~}'l_o0'([wb+`50@hlFcYqeF9 3Йۨ(֑p< u}ֽK{BVq +nn ++ogY^G-=w[k [?0^c_t-ě:aqFbe=-V؝՜vkNo o ;(61'ǖg;͑ض9 +|/=7SЅt>LCO!l/5ѓc;)մ31bGں=[n[cm\L_&X'\=* 1X쁭! Bwa0$Ѱѡ 1&T,ҨCh-Mfٚޔ$7'V94%6ҫVovZC,nKCQQ}܈.K]¸c]"0Iiq' AR :Jm(sEM^ğPи(Ƭ Ų\+gjm܂RZW#P BUQVW-Su=#*x!Tc' jLޤQ8' •\CT" RFM.P1ha, 1(6-+Id,[MQPSV +;ej׻ȵe=nRq4ew8],X\iP%28Z2 XNvQSK髂X& Z:\Q-Qg9(J+FuiWIcn(YS üIwypB{a4ܷ 7XFU7(oE42 ÍbrkS,klEV^UM*U.$W4 *\ݢXq04k 3!A4(ADqpU֩Z +X+ +8"8KlUk+.D:Zu}_Z?y}r?hL1+'Ǫ$;LZ_3~Pec^:A?iÖ8g~&h;+Wƒ&^I>7AR9{u{d*`}¬4=f15x/j\jѫ;|v G X{EwϔLmn5l%$ ݓWoy?8lJeҁ529ega:__qڋQq=C89NwnXۚ]2xuj8QgCls4و<+al܃?/ b, q=0DGcr504/"~}Ts{re.r,EvܜGD7H}zQI;q-ri9Ѩ }>mmV ⭱5^tWtSYNq̟Xbߢm_6*m管;k莿+gs' v}8 .B- 8Dz 6PF mmmmdۤ}hͮnyc!xP:շn+9 +d ;H΢l@@ѺEA0[TV%=вdKƠE4++JDuIU>%Kſ+ +T Oﳿ&3{_3[_ wE .R.uCKɗ"ۡrAWY E ] ombj/e?fSXhf? rh^U?mwfpػ>pbP٭P؋!vI/3xG@S` +j'hjXU5@¨#񥤆5kxk ^]zB/Hf,d~Љٖ@ˀO&|P:t^;5o +@] a\:$dwXNR]% +RJ:RpUu~ߜ%Hx]/dϦ{̽j  ~O9^D.Ue纍.O<Otc BTPwk`w%襸MtlVGKf#d<3#Kwa5,Ն!]jr}va2v7Ἰ}[S-.R\ +@!nӀ\!Cu~a/ZlEY`<7"{n\$n q͸Ah?J ŀ2EyuŹf)4S6b*B:Ul| 2ۚ0#Zŭ i4UT$wT9Si̴MuڴWUb*PԅJc~ 2W :b\Qq}nE%󖱢2YQjPYl:e^Ɯ>iNs8ar8.hvO820|aj|tmGF8BF"xY;ը&(n1PO|3Bq"zQt8/ǃKGhE2 jĪ}Eb'{c\jl!B!$K@$6Ibر@ 8X$vl'Y&vL=i&I:Mm433{y9^+b?uUL$L(8/~?b.JϤTJ> FI l +|,Ki #ޖ_LAYB e"dDG_ŞvQe sIZOKB/yȝK3kFJ0}n3уL̽{T +rr\9fW 9eAEEr5 z!֜l=+;ŝ\2S cr0GY)kXP!JEBlkdJ'+RRD.0ԓy 5LG aŸ!5Gh@h@DЯ$a!0\̜/񨻍(#AḦ́˚Ͱy 4iӥr)uQL6WlzUDQs=\,+ {xw/\: >ulG<>G~=<𞍄r98 z1iVIEזƌ3SZPJ\ܞx"Y|RԡZoS'&>Ij){|K !hQ< 0*A-3^d hE0cJ!MaCqG_NU{ʭ.m#۩mv4BfFԤYJh,]KNi~ɦ[ڴ߮%'7؇1wޭF0w]żcX[kN&U&VfG TF4nQZjFn5r]FЮk/'Yt6~5F_EO,g50_.|\}DW1y+Zu/iВFEtUG9*=QYhc5T4sm&Z@bbR&# +ӏJ!@xU&K>zpu6͘79o=Flc 61]ASF4[˩ +ʪnX;恸Jqʟp|&]ՇȗIz"CG/_p3u8mx 8لǚyRHG"^mQlFY]gTֵL}qq:46ZGHX#*qe_k%xa>}g6ּ::1wvw ҠMζm֖Ljn=LnhG; +-Zeijg[nAYè>_b9Qe5^Rs|^b;Gxa}x&ּ+?1s [ܮhhw~{I6W*֕IvFVvǘ:˩ +zy{-ns[ +[gDdZ$E,,siJg|XHCBr<(ds r뀯hf'07!_R:WƊ2B_}(VM* 6U M Me0?;ϋgnse@@Ӏs%`-TMP^q7W;AT(ĉff>XxkU@c^_ c?\p/0Qz:Ue@+ n:ԤnZpC͐7݀3!/o)ca؉?DZڏCKswُM>0U﵀&Ѓ)yocܤQ}E.>o9G윸x~Q`:ϞWXx}ͼ{~⦆5i`M󞬉"CFQl`.~ <_ @]Q }Fi +ͦIٴ66*TL';1E;w<;A&W E8>UQ1=H?y,NxdJ<2uQ-R.iOeEBvWjz/+/ x=K{+~rK NX2Z*L-!Kel%]ϒ%#/X +|* +})v\UlSl}Mbc#?4esZ 4tU\q/Q]}IEcdOΔﰦ)[+ZW(7[sUͪ #s5oPtU]*60>kt&T Q?wQ=F*Nm %4N)h"/_WfWdkr6hvج o"nYo̠6ABmАc̿B$Q~<)p0EaWHiCxڰܰъ_({NV ^ +]dLk$d>=H(aAha^S}ZO#=vn4ݛjfWpj/s'Ϡ?FJ׀7GbCdr#H91Pf蛤^'Ygi3lz2 h8;8R}J_#6{܎~f췏l:lvژȉ醕1aRVtYFtbaʅ&-jiّ" )+G7Niq4%CrcG ;ғ=FYcP'pFnXoEF|O v"-6Q͠hfLΈIM=ߐe41zWCR[c@a [5{砚}>)8 +|`BV `)-,5!Z>ʔULM7]?1nݗbWq\>r{c ;ғm|/#Y.h=?goÌX<5/e GAkТ!#@ Az@TBt]OZa]-3umn~L _|?~i扫t$))2k89ǹ0ՒJT2k7gk[=LڃYSL^&3iH$%QS{ Krٻ>5`:d1UKkR$iAzc~97⚣[XVu'4i^ԛ4#uNpK J?sYIjeC?14LӱظP\!?kԜsr2\ VAZwmꔌ5I^Z Iz-Y/(bkی8(bq1;¬Ay¤c> xc&;b|G:1SYQ1#:As9|ҩw X=|}鄓2v q~ x́GO4=ˠ5½ +PBEE(z<(O=޷z]ɸ-w "N! t;< Ji7N}7PHI2$9CԿp;7qBƝIS0"@!tIeKo4pe" WX0/#tpL.#?o05w1cbzx;~~ 3 'MJpT,=/^`Q|9Y0y\t$o>r|O~|F!Dϵg/PdcE]cAnArKĂܑlX Y,?`/G|b‡hEE>{F)[6SDϣ̘.c x6o>&w -C}1<%ă=&YEyCp m49q42,&$ Ud=LZțNr qO?/ +z%qx:)$D-"d% d+APg?u1q +xk%w~AE?4tN"|G҉Xy8&>y;uvQ ?uR8ۃo>?pnA+r7Fx@qnT\9C41$[1jlf4h:Ӆ/u<;HT}Pem:X5$p 1$$"B"QmCToB +~ZC j]FҊ6\lU~\_qQBYOU"1J F* !zR}/&4w|kuWa\QƗ#.hVs|يs=1|Nw'#k"uqb  $?-2zp۸%Wb7;>ŹU8ӽz4Þ8ٳ'z^m8k:CO`kO]"_ǘ٧1-O$.E&꟏Q8ÑEOg`f_BfOr2lav lpxixm71Fd7w_AB> ' ]8\Q|L|4h9'6{6`ٮf:S-ڙLv.Yݤ]nnbkwrܺ!g5CV_>T-ÈG<&w銿6ZY=[|0,Ga_pҍ6 [tyجs0t%zmu:vMl*[/m[bJ,ѝ.ݒ6x,m!J? +O?$[FM|@380J]b^q!ވ,fM\2]WʶUqKiB}YHҤ_%o5OW̸񢔐O%RkL!jy{Io$('ClH&$%IfQmNpM$2BZ +P )Ҟs=n#ڌ2tŪh1hNMaf3sRNaC1,36 +K5e0j*` +G11E٫`Sg~+Ofz^b)K29sG1sӐc 7_k*ԘҐi:A/OL_LoWUPQ*L,Ch>rp:>iBzeE6l r1M4侍>'d[PJYҪ2 ܤW(6uy8ƓuE^W(6ҜN`g!XK- 5?OY=1#?ov` UyvΟ-R%(ZBe“LUQݭqZ>8,;9,?y™'ʝQxɷTd8GڳX@~*P`ڢQ3a6=$fb+ +rٲWZPėX}5 + .ka][׫m]NVM_jUTXE gܤ:![G-^]4:u&rDiי; ^Q%k}j_ooUwj,\ub3^wY Gr`C3}Qye1LȸfnowKlE~F/zGn)\)\*ܮ6,x2Js KtNRS*4~$'j+텒x|Q䋃7q2 t7畖Kr!Yw]Q{;TiޣTďQV"_ <3:S P4vNO~%npUFQ9FXҘlRir* J$?IRF*ErVe*IXPT!*E9!{:;)`Tҝui />aB0H1șldBLf(5\ZO N$I2Cp0]<^PU T$ +QSo&7h"i4L#UOs: {\?a0G!=p:c 066)a ~nL>\yTƟ3, +ʦ0 '-Dk$F5O465"eE 8Hpj%&*.TӨ(1> +&y{E +9^٬IθI&9]hBm^]u KY+ǢVwdX'!-'Y00g#YT:Gaf)r +/lV&TƜҘXe\*T%R=PC_7f1&yeVr dia=H>}BR8Ο,$}oɽX{c?&ؾc~RĬvywR@Դ`5GQk׋WI%0PCi4K+MA/@t Cc4b嘆HG;rX/usRغv)XHk}/q ;z8x@Mi3_pz"©G3*ViDhe +B*"r8*Ǣk$T͆U[U}VRS0\$1θلyY&7Vlc<.=c6$z =08WO] Թԩy$&ߓBwp_F;~v[.vB-ӎxJd"%"SB ԩN 5j{q|˿C?N?D_/b"Od +fRg>u p6Q)\s;SU[whWp}+\D ZBӅ9 H^!M?Ө3m&SǎXC56sjnݸX|8%:Uj- @oX ^zXHo2L77Z3X Ȧ +󸮥F5*phf,Nc'Y@*o1zuAS;hvcGbl ^;CQ T6`sQl +n?Jp!! "',Y<8}hHBmcj"G:rĦ lZDB4zT픊51n(T{GUHOic{WT^o}kd4hg7Pih2X8 PbxņiuBT#'Ib9/a2a"axFq-ENcEv:Y=k=ן@|U߶^pĦXcBIXcզQ74QZek!0}$-3-rPe*S,1mU,65*N*$Pf)盅"JCơqs5>}{`%v,iȵ2j/e[&IK-Ŗ兖 y%[a)-%yjťeyޙ{D K] qDpFf`fD +5.Kq-5zXTkĜ4mz5m<96ij4Iۓd1w= |zemA6G#ulI1kLslJFɄU&3-X,VUZMI[a(wcm<+1Vl y+6"SH"?7wg:xuH?6#<MXmE%4X2EZ +S,7{2 +ۼZ[b~^*6o]BeKa?LK^Ze}%s4kahEI٦*t۲mPj+KlbͫqֵRul:lsm/ԬkCzu]˸9Dq-빮l-#QW +eʔ$#JLHY"8Xr]+~)W$/U~Q)ʅpEy'<[!܃Yż1t7|ۊQBRu&T@j:\L5IRԀXݭRYVxO^YՐLܢߗuJ@o/K} J#Pdc:9pHG#KPX&.q5َ,Gjo2;uq.,q3l>P/^0GO4l^\NGV G3 +w><\$丌X]9bCJLWcqҦ6H&gltҥ^եOuo4gH꣰+y|'{X[rzTB^i$1qO➉ŞdyRaX,|!S$.TFO&ͽNkpoRrFIII>KB^ޠgS@-H zdW BVHX+' ; <)XTeʆUVU(ebNL,n{OKqޫ)ڸʐ6'.S8\>84ʕ] \n ~OFo }HYSs >Ź͚پSX[hbBڟ8tf`5 |?` 4HnX< S1?$0o.f0fi8Ycc 1Qu@fύC PD3I&s[1efƌhLoiqڪ3fL ((@Lс<؈ =x*)`|W ~KwQ{s+=o^[6 Q1LLjۢ0m,&MSX<`*30`1FkZن;aX"FԎG=a֐Qe۩BFT'%`^ v>ۣ0} ڣ1}t'i;w,ǠF ؂ h?[?CAzdݛX'$b_f1G Dqrº+RW,] Lz?]  |d8paD8vs 0CK77[7E. ̹3_oI}^3vi=EWGA a:-Dr:0 3G_l]BG>Z{#=`7ԧ__ DQԾI@!j{r aCя =aOpaȞߓ{G{]E Ybj٬5{#|Dc1=GO>g`|C x/y=dO4 rjbE 20*;o!"\>'ug_KH2kDT} ** EZnnhYDQA@B"2bM01rRV&NRV8ff\*5qܢo~T{=缤O~ld!Hu'3enDٍ^ӉYDdd"d3AvtS"oq?xW?" ~ 1 1tKlF3`'5ڨqssg#>mj O9z<&ȿ?eg7N&qdOT@EꬤF5j8s#5P{8g;V!}i_2:2G;C5ķQĝL%_AԌ3sӨCBjF%5jH-_'QB//} Moq~$7 /DÁc 9}r]*|=c\| urQDUԨF-5>V9wd4o鋫˴wi0Z"6;ٙ0eG'\;kBq5JN&gͣp y]U +Dh9YВSG|kwqlCyeÆo$O^17x Ұ,\p9bu,ǙU85|z6S 9G#qGF^Qߠ1] sh!ȓx吻|!+ȍpy~.)DpM1lt-C[ :jtmD6toO$xm}qoc<6WL7OfRߛ70L.Ot%wW􎝆|=^ }`M.Ůk:-ScJ O9Sylv M=D+4xB y4O3 : +]&s6L*gsf2ϴaR4{bW*UY[Q?kP7S+}]s_\uS^})ZO.;v{{bs%}4h1' >VlDoj|P[*BoηUX3P>G\=X6rޏb|Y,yP<\{-]~tS\ `*aRJ=ʔXLAҎ"eBY$,W ˔br+-]--YtI#e?!,CG߈.10vƲ1-Zָ. Uc6C}PUT:(PLy!E_H^X +1cx@k[Hb[fB+:q#1&.헥{Rh2q<3I+s#kvxa>Y=DlvBP&-~,"d%ĞXVjI 5bԴc1ZiCvZ3\o1\r{y{lb>Kz 4&Vq.]#4"!RhX0&>'dӀ~M}̽5G%]3G%>4G%VhdeT>` + 38E<gTJ&;iHbR48%LSh@jT6Q}Ҧ+:mҲ+3m),)tUShShdArCc#˰ Jsz2gکOzguStV_ٱ +ώS +˙МSPE9kS+c͹,2L/RXݲ|އB}0 f8*]A +, V@a Zƨe|,3mIU7"ue<-\GacFgWA+%r:!-;klql}Q3dcMW2UP +#[yL@^RE7_W?7Hq؃R)`+5okTg/S |!adg,@PՑXuw\ xº2s/)kS +܍>iޖloaHa1~R=Ci}_CP o,^Ç<OXI-A GhFoz<^ÒsdwT2GvNI8Eag0?:Ǚg +hrM@-H| -/:'֣?<ŕldllj֟%hMFg&9GEq\#dG(+t|+e`؛=vEHrsh@:st4CjQNFi-9c֋]DNg:ЙCGaoA:N:K(gJm5b>i-mP՝ U|ǴUl';cWC(NzM=~WO2|u{7W ?w1ԄZY?T}40VEq*  zM f*7h+;8WYEYy!GsC+-)%)a_ڸŵ7+x(0fl#Yik͊P- %,@=# ^+eOiJWZxR#2Q>_ +h- ZE%Hy!@$ $BТmN!Zҭ͵{3nu;֞vNZ!~>Ͻ`͊O= S&',V iw$uLs0^5K>[R)G{Z +6g-=Xaڌ +pŸQ ?|mX +o^:"YDX\f!U<ຒX`d?|lΞH)EkӰ:;9:rLh)GCN9u]Q-\ʰQjIY̡TP/*IT80Tf?گ>8b팣E5yhV-O j Q`e<y [v&*w _4#2]Y&H4cO79rZM;렂Ʊ _39j&c6.N:tpQæ_/'EYQZ' ̆wd%["G+ ?Xu ;i& }60(Ӱ9lT4 +a+,ƕ(5`1h(.z^ɊLC2iTVh#HEc[LyB~'Z$[s8ܦIpf +bLa5eXX0QRBq*[`4(0zOd:yc/"ɴfIJG=L+s3Y&Pa0JR si:K0PTf̊ʽЗ?]yX}"z\loTBe(me-rA/{"z`-]c,Mb{,KQhO|+UA[YJ*WC][:l1pYUD+~g9 ۀ}M.G}\fN*KqC0TGB_]"hj!&y5*P9P:+ZlW3 tu WH=*gDjUO!wIBFs/QwZǀ'Ɇ5y0(Ȑ_{8CAGL V;V߈Vx2oR/#{Z$y HDGqKU(=C$ s[*e^ Oo*2}QHGZ"țRڔM*,o6`YUHj"ѿK['?m$4CB$!s;ڹ'Zg[#cR3 Hi@R$bi,i]G[Xܪ ;u Fl 11man% ¼"EB̺1q}~ux@s `3]9 ;v#%L-[Jpmcr60%&^JI$"|HL8x˥^ȩI @@ \*""^b2T@W=j>gmt]36v[NvݦsT|?D~;K NH#H3i#ϑm%1|I1G,Cy|G3y~g_2)ѐ,O"ƯgFCldbOajWL#>[_0o69aOƒ #5 &$dP/:jTι_72~w1N.~vp:kߤ0ڍ>$%qαRgrragaoj^ԓ24jZ}\ q>)tvpgp//^_ğYopjG708=]O͙xԓ3I<87+]Jjbf@FRcn)C\vV{k4Wy? C~9wyD)B8%3/ DQU^jM]c:ut='ye&I-`SGch"x^Qy1H}^Y:9?"56qj66LubTZGKB<kW)hVub]X1eG;Kf ?6I:E1g ~s7ڧmFeV +5f4`Up>V.X6!QҌ%!X50<_EugxG|Lw +d*g> Iǚl)X>#"BTGP\,SEsajTϭCFTmCyTG@Y̋ Qo +O}؂ձ!|u iKd煕Q~X=u1cQl2jPkDe qN̏,Q⟠Hn (D +•>.SL >{Hh%kS'F$ $Ơ\*C4 z$d(OB܉(L\|2dp:F87`O9Ia0x'29gIigk譞>'B>e`H![BIFlp&9H*F^r%K))w"KyUȢ(S`n:ظv``볎>VG-}+Ǣ$t(#R#O +J٪\Rݰ#+F¤QsDyUd _Ads6x:ْ>(}T"O +:X5)hĄLm6KaLAn6tۑ? HcNAF?V'.w/Zd=F.V}0,9ԋa+`ԧ!Ð +}Bk\q=LH5|Q4@A4 " F'Aj?xK1#MQ2gLdL3a Yt +ZL ԙyH!RU2d"9k^>d{|~y0Bc{?wp$(^ J5ři h!Pۢf"Ֆ UlRHqCSyRHoԾsGBl$va3#{/u+9Tq/𹼜<\z1:EPyCYH΋D# +rGd $:m:!qAEk-b]g|A#% 9i?wQ{">9*VK!G%=B$A ;y @TQ `NQ#"7#xŠO!m9B!H@+9Κ~/;9_ +4s]QQXWeueߑE=-fQ(̸ `T 0q8QU bզAlVMM`L6{bCRc4how{ xmcb-fJM`PW`ŘՔhSE(4\ldZR[_yE`oجloCkiYΧ6B}3UXO|)uF(6VvЫ +dά<Ȇ3D$ͭlJabWS2mzAWڄf_0'xni]' )vba'luPC!d|R[Yp156v)40wIwvjQ:jXG .@Z.Z}-Kbna14,ttN_tb\KK34@ o/uahj!j6pENc$\bq'-%r?= kgY,zA&Z@q.IX4iÁ=9]lix3o'3#MF{- ~FK.wuNĐv>Q@$M1p2 u1(}\4׸7qț|m‘3}ldIƿ>_{[4Ү)yWP(]%| [6]?>FC#c61qF./l~ `0)`(bJzآ~d|isY;}/\pedZ AwH0Ŵ}k1˰_}- :55u]|gu N|OCx̹7T} c ضa{.0.S0I v͏C8 Zנ"ZIJa/`߈"ih~1/Ƕ \M?Ч<~b*-a8k7刦NƠABc")}gcfcߪ^N*ȎSD2P-T+nKK_ϡ1L4ʓIg#?EhXrc;YvO^Ö}51%;JUhi#:cFg1v՜\; keҧ.]:6k 8qW:Dy{+ePvw9] ƧimZqGiV9hsV8s\ +eJ]*TNuA2_T=z6k\FXᷔaw͆SUnZ=̣U9R%3EiI *4,\JhX|~C9>5fSvVfspN_FъpuQ7N :sh@ h;3bʹvK| ]9ʎ UVd21fF ֌=Vi)=MSf)kRb5)\c7+9Zh|qݚy};`sآ#;EXojz\kj|MV*%~&unS5Qr5.at_7W=hTbF&6jdѳm/uT@T@S2 0 ]`H䲨1 `y ^K$Zf*hY)=Zֶɶv:k%ִܓ?>y}}˚ƎL}%q4bb\9\0 -_EUG$+7ª\eGڔYQ5ʌ5EJTjl,5?NܛEra #NJ + q-z +)?zrX͎1*#&U,*-ήԸjYR)JNإ2%Șx~)S'FNm[q88GE9^2LTaJ3D)Ր KB JI,Pr\%ͪiV'4˸Q2ː.;?^b911AaaV٦0QG%#dɔ$cRf%*1D ɏȐRfřE[*| w)<@75؇~gא2jSHdd8̓d4*yS~NC@SKoޖt/*zXlȤ,bI&XP,cR4QE +*(M+NTV) +M-Ճ%4CJɧ䔼K>yC6&35‹JzYQ΅Zz-X҉oya+>J+)5I0=hD{&3SV$_VqOjlyʳ<˳:8e ,\~Zʹ4\SHl2y1!P&JOոJ? HyU%ʳ*UcQe{"n[FVKիUF.wZVmhȠF΅ǩzr@LI1Z(7T:B(GFe遺 : ;лX_mQg?ߎI~%g#=Rb|J cʥUÛйM\\k1>$mIgiໝSQ;vMG'$]0P`C@uQN w+ +}|7[ًO +FwJ]#y‘PRa#> eԥ8 t4v71qzjiW|?-/҃ +܏WO1xNA^SIAN$'gR,Yhmy׵u/`ͅ35b%Ұ>Z ҅\Opn!p8>c"5ec,ýKKf+ų`ߐoO!|z-Kp\uCѫ 7RnWosܦHv;; PeP hfh(MEyEևb7:󺮢gKp>5HCax$q`\,?Yu !yaMZ`{!`{9)E h̏Qh;:.iofp^'Ѻ7/}J3G~1`9U~ YKm@k6Ӣ?ڵzGOѺѩlS$8AQn<r_ w_pYX;|r"𓈏4-"el +ֱc X:V;؎t^*ׅ5h 9$ V,a߆};plՐZ| -]ɳ|kyF;lݘ؀m@an_L b -M&kk^5SWUv6ҤjTiViӤݴnUNC}>}}.Wy%z"Y/_{Ob> +ۻ3>wiJ>EOOUE79𓣛}!\+q~F6e;K 0"WҽMyޑ`HRsxx/Yڱ8]c~9Xze TtOҢQB|c29wxz8-RLSγhqyi'Ooi=lff1s c`4!F?јop4Vc:Wy,=|`oŔ>1 D`1*u`6ƎjLza"ΏnhF0pC LÒ{_CI"%M{MlbdK II%LTc,QcI%:0,APڀ!i H;0 EldcdsI^EwUtmDG{+3wLYfV 37C;1"##) /ՆCГք6tw`z?:GϘ2іyYwz ^ω?9B x6`uKlfiq'L) (R‚@v9NgѦUGޜ!4LE4?-xo s@Ïy uQD\, Nݿ{xmtMc[:oCxhdj2q@FV Z' +ܨ-ZKg1TΡRav+(7~@N<_&-7p%~X Rud h,LGz}jTpp2Ԣ؄ +c;E즣(3@y6uX-/>K%"Y=r`wps:T:&9&*Mp a7Qn.CŅRKlm$iXga]GQ"}opKcm*q-$ RG7u2VP֊&E&.wm  li&IX9㡭BS5uv۠T!ӆ^(Fp +Ho"!R䳈=%.p$[;xuwIE덂99r(ݬ«CׂL:|Hu!7 yI$lBr ҖHlI-_Y̷۴?77s, ijڥZ Qn Y8H!ůܟd2pAф;! !3 OqF_|g|AfY㼓#VA}FK=J} io{eD$ + B + +D !L`0!J{e7#bɽ6ɼ0Xa,L|qzJ] PSSm$;8D'!b8 +-,FI> d0 1y7ȹf{5"Iq[\9 N98|_%~ / .) ._\Z!,8 ]u'0B(5wN FO3朜>dPg\Ҥ}jCtrt\\ȯkK8D??8{=<<wrx\O &5y vh}q- t=! P Fj0ؔf/TdV [=v]Ku_}K7펝ץc+ XASZQvg+tB-l7?ckncgX>Ntho+|+{n* ^k踂?t\B{lum29wtt"w71pyG\Vx塿ۏa +]x: k %^i optDoq>!;p(cv;i w|-88,~>^rlWaد@Z=ZAXf8Z_m&:-D`kwp~ >szK?"'f)X~vcN^F[4Eт&tl2!'*,42"^q6Q{rר_\1a#bP Gcᨆc2pӜ.E(>;Fvf|¤n 3a#<H#8 +-F"t)rkKwմZ)eZTmjKU}*{lVEσF]W=x2undy>уnOun5W&h{j3T힫qCU1Bc=U9^= y.RJxh~Km**qtS>TgYB*ݨ|V {Sy+0w^s6|;:rT +?Oj_J#5ߤb*ꛪa}sTw+?\Co50hv++2*3䞲B#u jv}L$7TA* 2 (F588CB)7P9!_) t21RJq%ڕP +xwۜC^_IqD7g C"De(#<[JԈ +DNRRl٣Zw}L֘Kp(щCp`<9k6d>FBr<̨~J2(-*F)QJ+):C ׀r%j"ǭٴ]&gzWq2}61dZʧyo":*1CБTCd3F*'k\T%b.TLje΁kJJ%QC|`jK0~a||}XzfXd/,`0oJfJj_5 TE +WQ%+@3T.¤Vބ;@_Kڕ|VKH F7D`aLr_hvȣ<ȣ<iFF6wh es-**12eXI3b3Ism2Q"@zcn^NVN$)I&O/\T ypײ ~ h +x Nw 8 ^o7h:9ϚQL3xm\|pZ+>V4X9np 9 +%pb]79E|Fk.=tqߣp_ ~ @z! 8d +%8b&qO, 7G;[s}F7}#8>oDX׏xobE.!}F'W\G8?#} +y 7{//x8xB/?xxd!]ʥ?8 +Jqq`2ϓ9cʚv鷈uXi<^^G~_['228}@-1/i z]@"b#v91::f)d̲%8 )=`A}`7x#vL*%x[fEA>Nlb=Ӊe2į~xVav];aA-63ڧamFnf:iyZG1cW6!~>gbE,C %F3QVXn8ױwl=>t 3mIB6wh=X)p1b8{V e5YЕ(އq#%Y/>`ݍ.F($ p< +G + 68jȣZӴ<G UJ\ #J7á{6h^b{?v[!{8v +!J$D @2-Dʂ xPW`k,@9GY?[ԟ0G^m8rК.5~a_\0A O:YT W*N.gd m$VM{Mn+rޓ+}GXo|/DA]U9fy;kfTW5-hr,lSNCݚ;d\%X mh#aǕ~Iww[~8:ZڲE7*HFyb=41\ T3f(8NYɲGNWfd2"+Y&YMj:.,/>R+цhkknтҖQ|k9T(ƛm,S/My2̣d3[n\F)%fĬШW#^wh 8ӂ%mhY y>̠NSikTF.+_l# 0 3ΰl +(0.D4Dwq;hc9&٬i&VLlkXSi&=iZcܲUt=}kPqQE! 0ԩ,+7lFSNx1WUJ3nUK)rF7r+%.^nrn-d߂Y?=N#_<&0ҧzs+&OQA1#RVg&),3]Y +*հI2dPp<(0C9?(8/<39AM֪lTi&Sy?;pMgq$*rkPHnȐP`~˿̖qHA>+#C *B ܼg9G0s%\*(EYX'btTP%b_qq-OI,WWҍ1 %gحNՠ:iV4x i|U<}/!㤀A+ Р2|ˌ)h`yr\rYX +0嘵rCƠSW.jB豉4/Ɩd%ӛ BM +0wE=\.BD."c'1!Mdb61;-s8KpG`O+yɇK*a@ȡ3$x \ \5\t5\@5д!`u+-M_M;"88Lum6{&P\ U jbibh[6ҋP@/DG=lyC2D-\X:` +XX G} 35ã9p5XᲈXĢ.$ml||<[\ +nm 5ʡ]ֱ@!H]/Y@ & +VxҏVx£%RZq.|j&UL+q4+ZOX9HfF$|6K[w+(݋ < d۹xvzю(8r965]@:r;zgAK2>Ab{婋t} A===uh $߽V3u"o%9KɓFbvI9V#= u̐ǜc@E?eb(Ea.^zCU>_Z>QA\%!Կ_p55AGy1~ [/ g?>q&8Ǣ%Yzq]9@"g 57<Ǽ=f/΀w9Q|P5Xr*.S 8yP  q-M\׸p@E~_).: x~B>G"QUmpA0ҷx̯5c=U K+<.$;?1?R>@k?eέx +^?ni 53|5ezqA#_L +^.{8 3w𗿂8#=C=:n$2y?t,Y?8VrEr?أ8G:rXD^]M2m~A馲.= ݠ&救GZq+YȑLLV8DDRKX%_"6cvv'iP6Դl_+u:~G-rE.9ϢB1į DWc Ğ2 YNy: ߰Z_j%yWx=19v-{E'{Cf$Ilq1 BjrԑdkL76`0`n&&`CbH'@B(HB[Fi.K@%Ye (mfi6AZN]5mӺ}m6MӦM۪}ؤjڥ4G.S =z?y99『w f 8$7el{W('ߡܿ$xqÖ8 1Ua#f<ߦg3q;cX5#Df= MSw)h5졅p$v1iL.x +8K)gYBDim` $]v>NK<n'2LY%u )tY='e*\v/q~J M5+ɢmIښQ{rڒ˵9%M)aES՜USj61m"Z~D XR(j ?R/1~ +b:m:r"8+GS IږVQQU6`(VBZ7֫޸Qu6Mݪ5Ri3)yNU +VUX>T3SKH'bCطEȓ&K"L3TgU\Z_5ZjUm(hک_Qgͪ,mUb{Sg;>S#{Lo&Yg{(C$;I!Qk,ekͭ*[*m媰W^2GJ[SI39OQsWޜw6 %33IcuKZ~vlF9{IW3SNʜ.*8'"WH>涩 Gyv?ʬQ5` Q)-[J&RVj0vƟ^Dw;X҃][K> 'dMSfI,kr@ ʨVz(PRB=J +)1N0uR;HfbM ~f/w_ዾKax e"'q!a$|:xĞqbMG#a{i{sp mx AY2`͐ѐb: }0q8k]A(nbL4n"LvLavL"&i0bK4A<&?åC){1ǎJw ցJ9>c;cܘɋ9.?7FҳB_Hx| +:;_ U:G;0\|Hv,bb,R(2 $y{8G^~;?oسEi㗩WH*_%p p Ǎ' 67%X,e +2X&8ҫ>_{Ŵna"r܄*_a |n]M>gVcB~PW +Iʊt9c/ggTW6\ۏ_ݛ¸oo=^I/G!R6\{tƟ6%inmzK4IIKKEZ.E\1AAȠ ás)`e2q2&sӝYiOs~/<Yz,GG>ۇ;h +{mf5*c?,ks51#ꋚ b԰>_8?@}^Gnx7u6v̀/b@2(CAw6ڦq-gҿu7g8?R<7{{BGeER?.jK?wvT=:uч踂89,C%tz gz@{཮kz _>/߈M_p귪һܷtɜGG8qyqa6WqR6K'Hz0v]_p|ܟ>ݛ,::)tGsc88#8Zܬ}d/ _R@m!B#_y \b3e'"֯MzGek=:Bt5JR=pt±nѽ(\Sݰt*O.r?b̘C"f'Q~mmIG<4vPAo ɠy#ynsmEo + 8,OUB$P]*,Od_ 2\G{?vX-s^tSsd+\x +)c:h_P +~/k$?fOyF>OqmrѺ!.sSc>;\䱧"p᪇pMdptvZf^w@dG\ȝ +-a4uAL&cjHָA9ʂ͞*P}LHuª4Z59_'`K0\RE-U$Fp+mw_ղqlI&&cqjHNQ8:CjU`b+4$JUI +$5ȗ4VH%oUqOxBwU`BSDEOƮGm%#P1i(bPɨ!Ft94y4T*Rjܤbs +*HW5r[)\ʱ\zD $#F#ϯw泥8!7#kȍߚ +YJ-*RBK +UX):Jn[rm3/T}RcxGi3-»[1nŌsJnFS'R*U`cO۞<{r%r9|I );AY㕙>MNgҝ+*{^2^5MlkH=Sl-~@ Fy24+iSө̌\P +93*=+4L={l]< K7#L_O̔zvx75RxeXՅ|vꤖz P#6(e3Ǣ49\#L*Yek.{LddHO*sLIs#>|o #c`;3 mcHrSCn|Ĥ* Y|vY +ke,K)EmJ.+x U\Qy|;rȻ chiCG3#t27^RL%VJe,u) % VRYH 2*ۡXxK^n"/˴2K-pg]9]m jF_-CF2֓b$&@>*-JLx_b}^ SH~gCcc ~cUEp>4q*=NsaXFh11+)`bA MhPi`0MA C?Vj)x6{LzӐأVBV7q7 $K%l\xa0t\x ǸcBHuhcC걓zCON0yy@0"dF\1RkRivHMdM4pġӄ&45GoLLk.Khhh k\ni)![ 9<h#;?;: 6+Xy#tp 30hs1 ; 9tG7&4nrхU]Gy,AUEpܳ:^J<a<2h6ƺ gGI'M/uE賏FG.Y'ṿ; 1pa0p{Lߐ {%W@Ca!WқO c *r1@_RqpfLtLRl`ut^o$6hVӐq -8.sfp>rFqخR+_W.0Y āt0Rοgjs;pH}A#GGs"^@ aG>|Tp!X4T |pƲ~kg88K8G<N]zS'u/ >z:=E;N*ңn<7U#` :._ORܠԍp/h=k!G!^7YJgz\hDt*bn 6^ 489x,؋h2GM>:p6Nv4#ԥY EfUR0we mXu8# teDt2!Ue/Z"\B.j(fmV]O{ jȭ7\~t \χc9)2xYŮC-Z@泳R\ ,F}9(48ĵ5xW:EiU5YJϨ.&j$ +n1 BxS(fYjC(i>'{ogG;k}+l$n9C5rxxK;\p%'/\p k4\5hr#{#PN. +idgqedY1@3zMaL$?r2C&X5>ȡ1A.%jTPFgiD a!w+'tCV:7)5C)O( 1|!OwDt.Xm)1PANO!ǁ紆*dT^Ur .eGxGRZySbdSd{< =ZQ1]!2YQ,jLN\r,rNi 9~LSeLȄ*W*,qB=9  +NUHO]pwL,Xߕ|VLl)f9#'CNPEyLxl2{2yeLJUD0(-U3Ui0v|:ɮL1v +ͥB+tr)D]᥊y +ݸ~0)\*ָɽû{Xfmհ2V|ߵ=růĔTMT۩jEZWj^vqq*B˄ΆKZ[µo5c[_U`8,G bK^2ٓ:hh5i|1/jZVXA>ך_,N7Ѧ _\[=_iu`xD@yy_2%ʹx>r؏{Թr`jf>+Te$9 `cU: I ~%ٱ/袁/h _s)qqlK3[j ML_>7\;ֲc4QkTT((kx[w +ሕKk4U@{.J1P╢4 ŗqE`ƎUn\ɼEi]l'${.yǵ1Ja} !Ϛ:mfG3m4I3]4E35q^'$;i츎[u r@ +1T<ȸѹm a-߉MKvǀz(j-|BL9~3p.Q3 xԭGn߶dN;|ܛ}6'Ѷ$3'qR<%&4S|qJ~DzR>ދx/9f |ʸ'yj= kâٱ ]0!,ڣp~ӳq0rN<Qٗc;ޥ`|<\^\e>PF<?WOcq|xiorM_a{ u| =&RK忚6W$dv}*1?X߶i{#_\Y3Nmc} 6>|d)];__/9Գ +3%OlOI' 3d,mB=E;bW8{; +,g_^U*IltBtl x( $/g :{'iv6l`gv;8hûCQO)͠s'I=. \x)9)#+yJ9ۉxs'5ۆ Tx>)3tSI/ WB)t~-vk~ƻFvNZMsEp]z>Dk;ddI8,ybi|ENbWVf{crVրco5(Xe1/sSG j+GYvꎣ7b%8pTȊ*J3LJY–ٲ_h9 +ukTz.?.7i<%oD,!`R8\)`. .jȥHB@H1%폎@TXb/&f:.cK4#1wsb=8|LfҖxxCCxt $2N(mt 5&j0T?CpmG2aEh9K(U/0q&{@AkX = =Y&zfͺ uЭ>HV^iPfPwމЋlxH9,4ٲ5f` ,x808!qM٠)]I l"10BTI##P$Ccba܍2Sc5#&F&G;Τ-gҖH#D >[3F5b( Ab${izз9&l^}p"F;b2!{asE +D&x#8j$,byb!p,dLY]ّ!1CHlp\q .U%NLH-Rdch +^@D3Hvgxq|Dp*жhcHu}67jʌ +?R#3I3< PS,> ؞Eq\=-R'6;9IAzɆٜI6|XdA,@W־+Y?[ړC iBF-(ӊ -A[(oq@j ȡ^s8j$,AE$h~?Xhڊ>ǁ-•a0|!St+R)5D@*zmahCFnlV7qm͐pnyQњ+{O#Ok R>5y]Nbs0 ;P^84~EJcil)%dtUY#Wq€rFtGz](9dj_8`]భKJ7HKwsؗ1TT..(rۮѵ}4f>z{ϟࣵLAϻsƌzfzkfL(քC ~h?j}CJ3E%/c_TVJ*pT_xEy\_^Hڨ;Wi YA"ҭ[l!Iv^يR9$Vd2nqy>=/<y;s+Nw $ ӟmWy0\*c<0gלuN@B! +G[Yu?R|^rrH/坑,~$K]Kn`l=Z5[7q|gUnr"~F8ߛ-cY đ\ೖ-K1Es)`[>zyH]PF(볫ܤ;dqFV Lk-zPߔJK{wWy~P'C8d,ߴ. :J@7 dzqF@` V" 6X ##  ZeWŔԃN~a~qfu#E".lйy.?Xϊ ;m HK=`(tu4G!gn_:^!B@zhCLZ8l$@ ++ @ e!OAx C8~ⷎNs]=/I֣3ѡM*{q6ljK~!}9Ym!!_7Hlް(Qppj`0GXs,D`+/xGF@ҚSШ +s=t##URuMT?|zq+[:sMnִ䂹33o\P7.B *OEtO1o,N4GO\ٞ~pc݌)GR0XQAl(f4 M)h@<׹L"]NJYsr,'%hݹv + ݆/U)|JnPW +x kFEQ`0|=t[ 1x}fpc3A&ŽpJ ~ 7%1,۰PRND,^HU0uf>7웻ñ]zQZVq6 S d`0XA#GVJ[(9 +RWvHo^0x3 bx +p`+gQ(^1ױ>9ږ騬*^x#qb ,Y2aHwcVMOb/f=-ȁ/} - `=瀾}k) +4`" C!)p3:mu@XoQv ngn3w:s+*qBV- M$NreO{}v R` 83JyMO4)XZGyQj{DM {_πY ̸Ӻ|)weUefᨈ.A]]dciI~\w<8/t Pg+e >*7E`S# 3\GHpχHn aKS[K 5uk;mɶcVރ iEHD_+߾U\'9GVXJ¬9M<~̨փI+qijL9%A0pcF"((`77Q#'q h[:-H,n#*Z_YXO +=Vy!pLYzY*K;x2}{"w7er"Iw:GSy\V[<6'Rչn%:溬'5mDtbZL\&$ +ܾ~vן{}߻<%E&gINDHJ"NƄdD] Q!c@ +d *>7 8PW% \ h`3^l:93cM|;egA :܂8XJ[7XI|0|N7w[{EkvcJȬi%J-Q#u|FBѵ<~ԠVTw|_JvV{J,͓ɯ)l/` R|Vxfm 96pL1c3Y0ߜ,/NP[@Qt+eKTe9ۏ-p +Ȯ|BpW$ %IHO޿y:~0?_(gD,rE}KcШ+)J_*=I,?!4l=Å[Pծ=Ğ [ }g OZO$o!xL=5dbBC) Oմ>RIr\r"#;@V2[kclzi5a#*Xm?;62.#:ĉ֙Li_8L+ +endstream endobj 40 0 obj <> endobj 53 0 obj <> endobj 54 0 obj <>stream +%!PS-Adobe-3.0 +%%Creator: Adobe Illustrator(R) 16.0 +%%AI8_CreatorVersion: 16.0.0 +%%For: (PsychoMark) () +%%Title: (Icon.ai) +%%CreationDate: 2/19/2021 10:48 AM +%%Canvassize: 16383 +%%BoundingBox: 2 -230 257 -18 +%%HiResBoundingBox: 2.9165 -229.4648 256.168 -18.2017 +%%DocumentProcessColors: Cyan Magenta Yellow Black +%AI5_FileFormat 12.0 +%AI12_BuildNumber: 682 +%AI3_ColorUsage: Color +%AI7_ImageSettings: 0 +%%CMYKProcessColor: 1 1 1 1 ([Registration]) +%AI3_Cropmarks: 0 -256 256 0 +%AI3_TemplateBox: 128.5 -128.5 128.5 -128.5 +%AI3_TileBox: -178 -524 434 268 +%AI3_DocumentPreview: None +%AI5_ArtSize: 14400 14400 +%AI5_RulerUnits: 6 +%AI9_ColorModel: 2 +%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 +%AI5_TargetResolution: 800 +%AI5_NumLayers: 3 +%AI9_OpenToView: -427 249 1 1387 914 18 1 0 82 117 0 0 0 1 1 0 1 1 0 1 +%AI5_OpenViewLayers: 762 +%%PageOrigin:-178 -524 +%AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9 +%AI9_Flatten: 1 +%AI12_CMSettings: 00.MS +%%EndComments + +endstream endobj 55 0 obj <>stream +%%BoundingBox: 2 -230 257 -18 +%%HiResBoundingBox: 2.9165 -229.4648 256.168 -18.2017 +%AI7_Thumbnail: 128 108 8 +%%BeginData: 8681 Hex Bytes +%0000330000660000990000CC0033000033330033660033990033CC0033FF +%0066000066330066660066990066CC0066FF009900009933009966009999 +%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 +%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 +%3333663333993333CC3333FF3366003366333366663366993366CC3366FF +%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 +%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 +%6600666600996600CC6600FF6633006633336633666633996633CC6633FF +%6666006666336666666666996666CC6666FF669900669933669966669999 +%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 +%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF +%9933009933339933669933999933CC9933FF996600996633996666996699 +%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 +%99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF +%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 +%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 +%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF +%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC +%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 +%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 +%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 +%000011111111220000002200000022222222440000004400000044444444 +%550000005500000055555555770000007700000077777777880000008800 +%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB +%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF +%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF +%524C45FD34FFA87D7D5276525227522727275227522752527D7DA8A8FD65 +%FFA87D7DFD0627F82727270527272705272727F8FD062752527D7DFD5CFF +%A8A85252FD07275227525276527D527D767D527D52522752FD09275276A8 +%FD55FFA87D4B272727F8FD04277676A7A8FD0FFFA8FF7D7D525227270527 +%0527275252A8FD50FFA85252FD0527527DA8A8FD1BFFA8A85252FD052752 +%7DFD4CFF7D52FD0527527DFD24FFA852522727F82727527DFD47FF7DFD05 +%27527DFD2BFF7D52FD042752A8FD43FF7D522727F82752A8FD2FFFA85227 +%272705527DFD3FFFA852FD04277DCAFD33FFA87DFD042752A8FD3BFFA876 +%2727055152FD39FF52FD042776A8FD38FF7D522727277DA8FD3BFFA87D27 +%2727527DFD36FF52FD0427A8FD16FFFD04A8A2A8A8FFA8FD20FFA84B27F8 +%2752A8FD32FFA8272727527DFD11FFA8A8767D5252275227272752275227 +%52527676A8A8FD1DFF7D52272727A8FD30FF7D27270552A8FD0EFFA87D52 +%FD0427F8272727F8FD0727F8FD06275276A8FD1AFFA8522727277DFD2EFF +%7D2727277DFD0DFFA85252FD072752527D527D7DA1FD047DFD0452FD0727 +%527DA8FD19FFA127272752A8FD2AFFA852272727A8FD0CFF7D5227270527 +%2752527D7DFD11FF7D7D52522727F82727527DFD18FFA82727F8277DFD28 +%FFA852272727FD0BFFA87DFD05275276A8FD04FFA8A87D7DFD04524BFD04 +%527D7DA8A8FD04FFA85252FD05277DA8FD17FF522727277DFD26FFA85205 +%274BFD0BFF52270527274B52A8FFFFFFA85252FD0427F8272727F8272727 +%F8FD06275252A8FFFFFFA852FD052752FD17FF522727277DFD24FFA85227 +%2752FD0AFF7DFD0527A8FFFFFFA85252FD07275227525276527D52522752 +%FD07275252A8FFFFFF7DFD05277DFD16FF7D2727277DFD22FFA852F82752 +%FD09FF7D52272705527DFFFFA85227F82705272752527D7DFD0BFFA8A87D +%7D52522727F827272752A8FFFF7D522727F852A8FD15FF7D27272752FD21 +%FF52272752FD09FF52FD0427A8FFFF7D52FD0527767DFD16FFA87D52FD05 +%2752A8FFFF7DFD04277CFD15FFA82727277DFD1FFF52272752FD08FFA827 +%27052752FFFFA84B27052727527DFD1DFF7D52FD042752A8FFFF52FD0427 +%FD15FF7D2727277DFD1DFF76272752FD08FF7D27272752A8FFA852FD0427 +%52A8FD21FFA8522D2727277DFFFF7D52272727A8FD14FFA8272727A1FD1B +%FF7D272727FD07FFA8522727277DFFFF52FD042752A8FD25FFA8522727F8 +%527DFFFF522727277DFD14FF7D27F827A8FFA8FD17FFA8272727FD07FFA8 +%52272727A8FFFF5227272752A8FD29FFA84B27272752FFFF7D2727277DFD +%14FF7D272752FD19FF272727A8FD06FFA127272752FFFFA8272705527DFD +%2DFF76FD0427A8FFA827272752FD14FF52272752FD17FF5227277DFD06FF +%7D52272752FFFF7D27272752A8FD2FFFA852272727A8FFA827272752FD14 +%FF5227277DFD15FF7D272752FD06FF7D27F82752FFFF522727277DFD33FF +%7D2727277DFFFF27272752FD14FF272727A8FD13FFA8522752A8FD05FFA8 +%2727277DFFFF76272727A8FD35FFA12727277DFFFF2727277DFD13FFA827 +%2727FD13FF5205277DFD05FFA852272752FFFF52272727A8FD37FFA82727 +%2776FFFF2727277DFD13FF7D272752FD11FFA8272752FD06FF5227277DFF +%FF52272727FD37FF7DA8FFFF2727277DFFA8272727A8FD13FF522727A8FD +%10FF272727A8FD05FF52272752FFFF52F82727FD36FFA82727F852FFA827 +%27277DFFA8272727FD13FF7D272752FD0FFF7D27277DFD05FF7D272752FF +%FF7D272727FD37FF272727522752FFFF272727A8FF7D272752FD13FF5227 +%27A8FD0EFF270552FD05FFA8272727FFFFA8272727FD36FFA8FD072752FF +%A8272727A8FF5227277DFD13FF272727FD0DFF7D27277DFD05FF272727A8 +%FFFF272727A8FD35FFCA27272752FD05277DFFA1272727FFFF522752A8FD +%12FF7D27277DFD0CFF272727FD05FF5227277DFFFF4B27F87DFD35FFA8FD +%0A2752FFFF7D272752FF7D27F852FD12FFA8522727A8FD0AFF7D27277DFD +%04FF7D272752FFFF7D272776FD35FFA8FD052752FD0527A8FFFFFF522727 +%A8FF522727A8FD12FF7D27277DFD0AFF520552FD05FF522727A8FFA82727 +%27A8FD34FFA8FD0B27A8FD04FFA8272752FFA8272727FD13FF272727FD09 +%FFA8272776FD04FF7D272752FFFF5227277DFD34FFA8FD052752FD0527A8 +%FD06FF7D27277DFF7D27277DFD12FF7D27277DFD08FF4B2727FD05FF2727 +%27FFFFA8272727FD34FFA8FD0B27A8FD08FF272727FFFF27F852FD12FFA8 +%272752FD07FFA852277CFD04FF7D27277DFFFF522727FD35FF4B27275227 +%272752272727A8FD09FFA8272752FF7D2727A1FD12FF522727FD07FF7D05 +%277DFD04FF270552FFFF7D272752FD34FFA8FD0A27A8FD0BFF520527A8FF +%272727FD12FFA8272752FD06FF522727FD04FF7D27277DFFFF522752A8FD +%35FFFD052752272727A8FD0CFFA827277DFF7D2727A8FD12FF522752FD05 +%FFA8270552FD04FF272727FFFFA8272752FD36FFA8FD0727A8FD0EFF4B27 +%27FFA827F852FD12FF522727A8FD04FF7D27277DFFFFFF7D27277DFFFF52 +%2727FD39FFFD0527A8FD0FFFA827277DFF522727FD12FFA8272776FD04FF +%4B2727FD04FF520027A8FFA8272752FD39FFA8272727A8FD11FF520552FF +%7D27277DFD12FF522752FD04FF52277DFD04FF272752FFFF7D27277DFD3B +%FFA8FD13FF7D2727A8FF522776FD12FF522727FFFFFFA827277DFFFFFF7D +%27277DFFFF522727FD50FFA8272752FF522727FD12FF7D27277DFFFF7D27 +%27FD04FF7D2752A8FFCB52277DFD51FF522752FF7D272EA1FD11FFA85227 +%7DFFFF522751FD04FF272752FFFFA827277DFD51FF522727A8A827007DFD +%12FF272751FFFF272752FFFFFFA827277DFFFF522727FD52FFA827277DFF +%272752FD12FF7D2752FFA827F87DFFFFFF7D27277DFFFF52F852FD52FFA8 +%520552FF520527A8FD11FF762727A8A827277DFFFFFF522727FFFFFF2727 +%52FD53FF522727FF7D2727FD12FFA827277D7D2727A8FFFFFF522752FFFF +%7D27277DFD53FF7D2727A8A827277DFD11FFA827F87D7D2751A8FFFFFF27 +%2752FFFF7D2727A1FD53FF7D2727A8A852277DFD12FF272752522727FFFF +%FFA227F87DFFFF522727FD54FFA827277DFF272752FD12FF520552522752 +%FFFFFFA8272E7DFFFF7D2752FD54FFA852277DFF522752FD12FF52274B27 +%2752FFFFFF7D2727A8FFFF522727FD55FF272752FF272752FD12FF52274B +%52277DFFFFFF7D272DA8FFFF522752FD55FF52277DFF522752FD12FF52FD +%042752FFFFFF522727FFFFFF272752FD55FF27274BFF522727FD12FF7DF8 +%2727277DFFFFFF7D2752FFFFFF52277DFD55FF522752FF7D2752FD12FF76 +%FD042752FFFFFF522727FFFFFF272752FD55FF522727FF522727FD12FF7D +%052727277DFFFFFF522752FFFFFF522776FD55FF522752FF7D2752FD12FF +%52FD0527A8FFA8272727FFFFFF272752FD55FF272752FF522727A8FD11FF +%522752A827272752272727A8FFFFFF522752FD55FF52277DFFA827277DFD +%11FF272752FF7D2727F827277DFD04FF512727FD55FF272752FFFF522752 +%FD10FF5227277DFFFFA8525252A8FD05FF7D2752FD54FFA827277DFFFF52 +%27277DFD0EFFA8522752FD0DFF522727FD54FFA827277DFFFFFF272727A8 +%FD0DFF5227277DFD0DFF7D2752A8FD53FF7D2727A8FFFFFFA8272727A8FD +%0BFF52272752FD0EFF7D27277DFD53FF7D2727A8FD04FF7D2727277DA8FD +%07FF7D2727274BFD10FF272752FD53FF522752FD06FF7D27272752527D7D +%A87D7DFD042752FD11FF520552FD52FFA827F852FD07FFA82727F8FD0527 +%0527F82752FD12FF522727FD52FFA827277DFD09FF7D76FD0527524B7DFD +%14FFA827277DFD51FF522727A8FD0CFFA8A87DA8A8FD16FFA8522752FD51 +%FF522752FD29FF4B2727FD50FFA8272752FD29FFA827277DFD4FFF522727 +%A8FD29FFA8522752FD4FFF520552FD2BFF522727A8FD4DFFA827277DFD2B +%FFA8272752FD4DFF272727FD2DFF522727A8FD4BFF7D27277DFD2DFF7D27 +%2752FD4BFF520527A8FD2EFF522727A8FD49FFA8272752FD2FFFA8272727 +%FD49FF272727A8FD30FF7D27277DFD47FF5227277DFD31FFA84B2727A8FD +%45FFA8272752FD33FF7D272752FD45FF5227277DFD34FF4B27277DFD43FF +%52F82752FD36FF272727A8FD41FF7D272752FD37FFA8272727A8FD3FFFA8 +%272727FD39FF7D272727FD3EFFA8272727A8FD3AFF7D272727FD3CFFA827 +%27057DFD3CFF7D272727FD3AFFA82727277DFD3EFF52052727A8FD37FFA1 +%2727277DFD40FF7D272727A8FD35FF7D2727277DFD3FFFA8FFFF7D052727 +%7DFD33FF520527277DFD44FFA827272752A8FD2FFFA852272727A8FD46FF +%A8272705277DFD2DFF52FD0427FD4AFF5227272752A8FD29FFA8FD042752 +%FD4CFF7D27F82727527DFD25FF7D52272727527DFD4FFF7D2727275252A8 +%FD21FFA852FD04277DFD52FFA852270527275252FD1CFFA85252FD042752 +%FD56FFA852FD0527527DA8FD15FFA87D52FD05277DA8FD59FFA852522727 +%F8272727527D7DA8A8FD07FFA8FFA8A87D7D522727270527275252A8FD5E +%FFA85252FD07275227FD07522752FD07275252A8FD64FFA87C52FD0427F8 +%272727F8272727F8FD06275276A8FD6BFFA8A87D7D5276FD07527D7DA8A8 +%FDBDFFFF +%%EndData + +endstream endobj 56 0 obj <>stream +S近|>$@9XKӮ&OHP _isa64 HM36^b7wuu;lP)a3x]ua'+je@W8\}䨰I:]L'˛%j? nn&?^ + Dֲt@Xj[é|V9*O+ VZ[(O{P'8`z68jEQȺ@>c[n50{ D1 QV$t@0;({T:A YhoinVvaa nKa=@O31]p/nTSGl¦]G|ut<MSq'q,W\oz5*5}З;9mo<~bVgPf U -JMэp }lvX(U_Z|ոF0aIbS6;f͕KOX>ݝ +o1V-*ZollV̜lWG)kIlƿqzId2;{MC[4I{ZtI kk/}d7iǒFYCu"euvFW=kWkVE$fj*im.nW/翓n, +@KFLtQVEлo=½3Ƭ.l PvǶ~ҐN@I +tP,<mI6:iFI\,3meKMOR?*4V0K>ox0 qב{LGL}{'wݶ`4`d[f|[@F#T䣼ncv90"}d1{:pU|j +*dC=~WvR(:|`ڇvnlWE+wֈiUqd_ ֍F2*[&̬W8cr^@.2&{*5d{MMߚ+it/2nBV[Kd=;7NvԹC?HCx5+n|Z;صij᠜A(F>mh S{IK# +͎7bmB6`VMOIWJ-6"7!uKuDqzuD쥱|.ͧ)O%t_%' Dw;Rq}~d +6Bm?DdkuKڵoPbkLn-Ϫ\Nwx_{1[Aco$ N:!w1yqanؓB h2~L;;%Cj4^jt`Sѭ[cơꨳSͮ9ʾi|q/mD}["tQ ߮}c d/r}H贊9N:S ΨU +>+mjZ\k6L&J`ukӄxΠadR%IsՋLJt^Kܔ^,>g<"gt3<\D~ +LK "fE@Kg6EɧVpx[*g,2H.s@/t@;*&[=Ym.0MDœ4x +W+KM"<ؑd i"@ +\͌XZܿJ&WE} +`{SP Ih>(+}1&\5Fwu%K{̃'@v! -d,.0o|R7C\4p6?WӪ\rQpWL0RFiiI٬"z|,( Op@-8 \CUMp|''\V@ +\4<('kb*Wyt#B*=Ʈ}ys|'sFKj^%*GPޠAPZ@A:@y)@O$-AtRb'7I?I s MUK6ǤF'r8:'GzL9HǓB˫W$R"h5[(3| +]K>%hǍ>3xy7OjQgNdԇ *݆"r~x' L֠/@V#8@/yСK+V uvWlɳ>[GV7r<Wx$B?&<#e\[5>Kk"fk{&EӤ%2+DJ yS:SN)z/>1@n<\#_-zWcoǞ[Ur'}U^^fCzj8̬CZp^%,VQjl%( ߑؒ$ T,sIE 1Obљt&6^yPKwR7 ahY~K/GxH1gj47>m܂ҼvC<ӡO@!D/ :Qq8x+cݳ]|ҮsqeQGͦ-zKu^ruU: 8]fg%fN %QbK˟>퀤BbezMbe&GvUvE]ڛl\[H_|]\l_H8aџ +-U];}ivIQQ팇6'8r pW(1(6һюڏײo<,NpNWv7N84֩p=p 16).V!NX)sj= +% \/$s@jL> jYN>ܐ?أ_*rml:[_G沬w#fMPIKtE3!?QD~A+??Gr#^yϻ ݝ^ny]"i^9S!_|Z>ݪ(ڂZT0w:22{D#51{hhϟ\@d1VVsnIol-W8tyod`/i>Իy۷eV !)e /w I`o@aR'f߰qT}7pWj ӊ^z[;k+k:/gX^жâ#SaGq"kp1Qrb'ֳpw@w$S?5xlPwq:6CJt'f|sxӑft}@M&b%^fX? %u*1AF%nӅNpf\pf_HKlieߞ۟T5^~3rKkF^b_j:ߵz%^t99@YRbvxFkfǬ,r}|Y{IbիِPMblswH՚`#sjVwO,@}(V<9zHWE 60bQ'Ǡ +;dlʫ޸|2 %.xW I'Z.׽?>:a?w;i3uٸc 澪Ku ݯl;ku)4/5|"-Kgf?Ӟ}ez'PhvumeGH톮[=0~[`<E@Ί+v0ՍU+̷8/*55(Ek,VLnLS.#->A/lv o&tsY^_,Ԓ -?! ƫƥp>Zr;R,p[ˋ|>]vskEY)磦;` Fj}ʊVD7|<\u +/1xZnR'NOmŊ)=\lvu;j8XվHbv7ԗw*7f:^-/ܒQyے3\%=NiJ|K +ڽ}|7W]B14*#ݥ뜎*@;jQ҄Kq1z!jw5=w.:hnj)JF KH'NV{my Jժ"rNyyUehQtVY J2F@413&"L9ҌҖlAo n5?}H5=Vj6wr C~FY2` +'Fub:1jmI/wq Eᙦs}Mh 5o6݈ q_jp1}2ʑٿb؂NkX]HJMfǥoF”0hy7WY'8˞i,rvR~mPQ~iS0Kcݕ*ťL+/gBRQNN<*3!}@=5YEәUj-W'm6&xWύV?OQ&ͪ47N1qm.?[MR)c&w0p +Pj|Z4ϽTұUR\aoW"0}EʕxE2VkpӪIB7%Ģ=D[.8FvZc|t˅};gW/Xd!g9 |yc.M.=;@ y;]hPB(G(,_n=MA&0a +?poLC]ID4@{X6NMA"S%`L1 +sOL>S bwzIWbM?1T޳+':/+&i'.c37dV 1>vr5U_I.DB!\ 'DwQ->Rr+d'@=;ڻ +Pan$i1@50xUXTnYx9hf2B4r ,74Hp"~ם)s]$g#|5:>{#@@* 0piU\%J\' ^fxt +"]f4ey3 1yKۦn_H!D7)J~yijsx3(lC( Oj/2~BU1X2$QG~E QYNٹn]s ,%EmV[n2WXǩp=o43H d8MT6CP<@ :(|x+1ޟ8`s;*/y7Ra=4ᄐn/Q wQmp!33_H$ $ MkWȽ/0c|KQ!nyՠ=CT|A =1G];XHX:oo_#hAӦfyӛ|ѵ"?@6Dgl)5R?[Ӎ#gז}|& (O>^vabqx^n}BC]}ZxxޅWK'C!,|S\^xvA 5!_N݆tfy@==y pߜyq٬%^o;CbD:ejdܲL-7oj6Jx>ϟ:g:1lMEDbZsb5}|9)ƭvJ,V5T#.e MRo͜Qdxz ✺px̗[a޵^2zEbK\sRNtF h!vzeBSbyafJJYɰS=;S\alӝL|z`#MV,Uav4:3z +L!TNLnj^F@;r9md?Ze~FsIe7ɍ$Rb&ZMCK].`dYX(pWV;(e-lc+r-'/ XW < y\-~kOθdo͍ b:@\角jХa'o1ZlVڸ7 YI)Kl*U58A!?o]D` +pHka{Oy<^xSx׶5lsT9] Rm=Z,i=DN0*P#&aL$W-8_(I<lw|ON  JVO:{=e笽gx.iQ}2~ cDKՕLvĔC)pƕlpIa5L9 ٗĖyF^xDZƓ#lOrV;#u"EdWFa{N'ս%- KF=^eYGv*:̙A1n*/<`יI&:ot9+})z 8wz#ۈê?}Ȥ.$}m/?yؤ4q[[vOGóv ;Pa1bf-*% ./9mN/)v(V3n,;%] _jL:VXhS.fƠ.i/}ydJ6YZn:X}E?H'`-bd{ fGf.F" ~U] F˾iQ[)-+\O +;le4Ƙu#__^^%̋Pfxv}X+)w}^|-'#w(/2xN1:UuGm?Hs7-mąr`VfcҰY5WL׶Zc>g{3exUh's. 7;PTu@-7ːA#s%#~.&cou#y|t4qto#^IrEu׼߽0{y|,.6(Ɵ:y*TkA$_ڼ΅)*~҆z6FdV/Q5]VU¯+y9 KG+ ". ZpPкh;ȸl8Hcz'C}lǝLosjMK'6-?Zs[v_B}YBr׫?P"_ l| r g})W 7sQx%z]{v쫴HhQ..y̿ϝZ[.^C: vD3 4r3W$7Jnt91)(d Pd5(O\ xbiD~)> j<{_NZ[vd8]$l?]> 4u.&}1Fpʳ)NDeM+@V c) vF TZ=^jӿ[~X4y5 ոH {n=t9QJp<އ;=V2{>EsQ)Q92Z/U,>֫6ntм!m41zs~PCf5Nq(y[-v8'n:;ׂq&78mOHnHI茷K:`L 0F_ѭH״A߸'sқ>lް?ϹYOm>"BxDۻ?dئ&܋UFlz%kmg's)0TI +`M0hL?>/=:Yvsk:^f6q~myF ׷H~Zx3|[x?z.'{u19P`JTl}=;D.*R.Λ~=v3vqn_j5%jRTd.82|,Ҝ24fc<ܭm8^^`|7(Z'Z]̼!it o+EfVhÉ">ӟ v1z3GIܥHD͎¢)j)>'$f/[jImz):}i!GAvNNvL/mLjWǮ -av>=ɨ`9Qd(wm-:*zoGI)~>Ėnq=?=wdՕȫ56iaUI1k.t6gQe&td :XJdCe=BRa. ]~u\Cj%F (SKqzLI3>vv;~䰂kՈœ7ѐ~)N=>P5 ˢ(oO枡 +,Ji4#Y#o/W? 3 w׻Xϼgx`y=Zjy:ٕ/}X*g%sO\sCG}ę +k>  p]d7jHv@3g2yo߁'%fcc<{^AvZP+7ysOOGks +T$15 Dtr zp}md mgȜўyþ,wl=ӳ 3w':j,v7nDj]=Y,f=IӝsLED" !olz`xfX ⎮{^ Yi|[JHOHhwvle,Vd/q݅Aq7ijT®w` NAoz%.']{'3H/Ouےj2;b'<_=^r%֋!0krW tVgeeURz%B j~$[1Pk7l>L-ru-6+Hm;Zl>tz5\O&v )pQ;'3 Y`*6FnNeyۜu&yc\>]}EM(A7A.Ciن95o--ZⵆNf'詤OlLaUSysft ghFnoM÷H|v612u݊=?.5n#ToڮvQj6[$MLF4OWnNjkqlX;ԩN5*L.qEM=X1 ;w*@h3!}w]Ҧ|tN3!\2`kcђ&9vL3Ugd?sKA ׽2(&  +Pzz}gqzcy^*d2 )Oj<^GL- +5+DT͵s^#!_xĤ[L2~z|np/ȏ|>ǥm҂wnٷ.,4VXFQE.wC}VZiW۷'ƽ$ou(ew|uSйSLt7 E[^Ȱ'x@گOm^g3dzś{S)^Km8;뭢nƾv`>\ Il޾}@<_6GaTͪswVvtq}^E /ni, +|ٱM6CixRsXt}V_Q[J qdt/)FsDF쟽uޕweW9l=O6]Z7=ecu;WGԈAzhEGSGI3?7sgΪ_H +^Lth_cx&E E6`u|@o2S}rP=4@[qBevh~`i߾zt]OvDfhoc9.v1 XGӕFeoe/$hHZP?ȉʺq}l)/Fv3@%- ^oGԪn$ ȡ>Y-qV[Ў"gxʋJ.Ĭ7z1:/|d5ycԹS^8_͓jqӓ=`W=u@յskou݉AY_j9θkrHwЅe KKl- +]2 +zI)t٘,@0ޝLayqI;݌*A]WȶY6:,z'e#<.ޯ2se8Y + +O_WcBM@*cLQf>'iQP[uv}@̣~_6>fFkH^疣-YZd׆ +-ʘj> Fpfr}kKY㏹/$m)d[a~{ލQכy=wzFaG]^]6P 0e#Kv"K"!UĚҠ'>Cn IL'1=#j0 nܚ73 ʉT ^|昲t;ԨZ>9w[*޺?Ã&|+ cREPR|#}|5ievFarIacD"hN +?t.^@ê ӗdooA*8f)_9#.lvZǰN˻i*Es g剹=[Kiwb +jej:UI1Gf'B9 +l:>wW ~依,Ĭ#nГܔ Tf჻AzHGgBA^c8[F!t%kUdXL>n`]B|IV.+wESqpws_~dRWa9?w[ۻLel0¬bƱ54qArl, jA}4g[rn"k#ۨ?4 &XƳ ;;*lmmZ]ڴ%YP[(WX u9s^;Ϧ 5:GzƓfVT|D9ٟ$fnr{"tkKϽiCהYeVN%3E*E +a0/ sn5;s6 #\T sB8̴zs[cH. Od asss6P]j^@$ÌUZ硤fJ.|k!.7+q8|v7ѰK&Еճ]ndzCAD?5EG&O͆;sFͬ닊t/h/a2w\N@UۋP1k&鰖=bh}ɚLq{|{mJNٵԼU^ңFusϷV 8QvQ⩪oeKUP+_,W;mk {, *QHlkx&foEHNwC?t7g:莮P6H}[|:lꬱKrwIZ2;]+{!*C([L6J.n3)2:(MyiZ!Ifw]"Uޏ%ixbJT49}ft WPzMGʍ*h)֧kTmV9\>.ztz|f~P? _Jn.pb.؀^N&aC*ҞؠKM,tgcESaE ʖO[(9kZm͂oۅzSg{! C33h.`rԁ$ǫgX!e<1.,O︻nXWRСb/ogz/Ԑ^v \/8̠`gYAݬ>I}N.u]Tpv'+,HnI;Rq8q]EyxRS]hH_͹8Ϲ'rpYXu6?NGźkkVLO_;Nb0ӜXdv~ Bp~@EsK16\A߳3SB4 +ǜ,^K#5潓CG4cp~㗤eP2SLC'I *&RM"Qɚɦ1W-/cZҭ]j߲uvBgf~}0Wgnk,c`hR8 rD.0,cBhX+l/l}Ra{SCFwNY_˵jʷv+&L jex/$hXDUduE ^Ud_h:g}w&,S!v{;ʥ3$_5/hSq>Jթ;JgC1f\B9{tst|.5T#G fHɠ^p]q +OT$8l>]i5in$۸ j >7) + 'u5K\E^ׅObG9cE144p~&i,2'\d 48'5~ u)ZAM}:)*Ӿi'|&Zv +R=)n +.l[Nio +~˰|@9/y I$rg[G:CIZ:lɬ +mlMnZnP#v.2A:!³*T8$L8g8⣳Cqdp}pFq_5KImVݚv gO k#^s7mţ%j-XGҨ_$ZKyσ'cs_8DR3|eyYa_?]63ڽ蔸JȵO"XxSmOl4*>[Sad|%yS>] 3ٚݘv\θ<+d.XptzEb/EB=a8SvbIMƁȮP?6+Qp).KH= Jh; f~0RwX"#vGkt=cB62mG3|+֣C#_Jwy9j f==w`vJǙʼ̂B$W+A?[[\ѰgrNsW5]D-|~*lz{;wC8S{ \0C3ݡlDo-O>zG*ͻZ }[.O:V7{X2 +ac(!p*O9Nؼrę2(?8,FF}LN\䷙O΀aޫUxꔫ~ tƒ޺=ZvՎ3ZN(W4z4s\LBccv 7];.HOk̽z/'n[оn),dU_ h:q{ueʧ ZR 竑4A WhF Vm Gi%Gi52C|gw]wKt :kj(u;O6Ywn-5.ΰ fw wQm-)Q7Gz~uėC6}} 2 Uԛo[(TtاtY~={Agy6ҁ =+3_>TfhkޞGm] m\SQ)f}|4$߿ZOx]-ts#(@vw +`^,Frn<'D͓ZjKcUAFŻK~pxVhi% +tGp'z\byk.iY[a{|zmjjn~Ә7}icuouB79C4*;^=Մ:Ys0Uf-ũ1e-(/(O2pU Gw tĶQr PD~,G0,[jך#ʪ5;4Q f5ЯR?HMjHk޿5_69͇~*`3AAWt%P3:FO𥎃BufV15 }!9 Z}0伪tW>oYSi! +Gʇf.- %ރ2fʲ3ԭTZG4;Iq[ܬ`5o,5Ш,ޜ_55CL+SY.[LKiQ){|v• ڻ\6W(i {_*]EQmͩtw#â~2=Zu4nKV_"~msejaXlҬ*6W [V\)\A\.95l\mJe:c Q!ەf#A'73-nYpN DJWjܢ|sZT^=.gk)Eci_$N%2_4i/kAm&G-!N۷Hdw.1$q3%7}:YRn_}07QF+G[K forꤱj|~T5n'.D<=2A<|Іߘ:r@{y4@u;X?Ae bU8拖12ٶ_NJQwB9++֫_ O\;f.51w+w/@< éGVFNgnEGnu+K(. ^mKR6% !q`Ot:DQpjCe'h\*^׍ՉJ}]&YYNlo$E0/sC& ԣU|<R_!2l In1LH$Rg +a}`?Ȼx:41 RE`0N + 5=A@> 2ֹ^n+ppZ0{"x+~ MqHt"u;%ЫѰ@&= ٵ +`%{\L] +nr:U#+mLxW4 $y9?:o[_ףoՕ1|S/Mtn)D2X#4u@'@ȮvTRwRt'MĘG㞹Ȥuۇ{~f浜ԓуw3 ,gDm D8oI^1fZtѬbp[[͠~o_OΝ} ғr#ʗ^haD\݄2:ܯGՐ@u]ߌOwzyK/[.'EMX}R˫գX6{h#FGd.uObL@[$K_DC*E %NF4,eVwNꤻU]%\^_mnztQnǕ_@4.bW4!O:Y^ھqW{CrΤbXİbt4Ц%BU^c?upmk,~KZ\-m0=0#H:J/$-W[ tZ9=&-L2y{<3^`yT)m|b1i (F5-em.Mgz_% hYtMh-9Yjd.}(uNtY*ZE*R/$͈L,ܯb}kl/krOw_B&jykc^ L6l(*NYo ݪr/ vr6.[ݕˮj4ռy {󵲮߰]snaX~\M1ܝCWDe;u?]g6b}\mePYu6U@VBE^vou16wإ9ֿn3_QBכi4.dk"B/$ba\URKg3Y؜h尙eu*lH2VPB_(m\>"8!Sdv 3lRS6.S)S~|Ρ0=ZQass +V`O<{z]x1[inz? +;(ءΒ>)T*gV9|n!}3!Cz71ߨ7טlMzT7Cq2늶+k+ӯ9 '*|0!HwopDObL +:Wmv +ô + ?j‹d;>)^KyT4sS/Pp#Spmwa]A>:jW컶!3G0?~ʆ=3\>n=a5קp}i݅[jm=mfwIrNc ''dR p&ݻIq;Omzԃ}/-gzv`5Hn0~q {vZ9wu"bXmrNC +VWxh6xN{j\?qm>ٵ-J*Q[2 NJ%y{+һ↗ !~T.h5ǗQ':hwDZщg +ٰ,+\k٫iZ-^5ԘRkXkU@J9|!ve?Z +=2_8t}WqJrvDu8{r^)08N۞Lv(4/[pKCo9#zᑫX1n僶˯},cdlv%VKd6Iמi1N=CϚoڎxYR<d] δ^2}vI7Yܮ)=W5]W#lfNR(eFIX@:BAvz\zyY`ڠʽx[mjB& rW ͻq=_g۹ͤ ~Lf^ЮGId2b)k$x*]_\Q] \K,|xiE^jZ Į=8h1Cc g dyR>ѠM+bSʺ|+^NEg# +RcO +skd# 24G!tawt̘d#4 +Zd Ҭ3_X96( rexj G)^N\V%-@̠~'pGS1Lר4H`vN-nu2ۂ-Od ms`#TfԻ k-Y_ bf2$~ՉLpְQomyaUS&;P$' bOlI©Wo5'MIm4 jb4|O@D&sRtQ3Ai!81^K0mǟfV^$S,$z~/$*102Or"U &dj~A'X*{$'2lO'}NG2Ɉ?v?}Cσ.'ضc8`ZA]j1RLa@?&P ݞJ].Zm^=}K%td5LP&_S۴?&PQɓhpBT3ͷ.PA~/$*T]OT>4H +Ky \H4޻?v.I>6~6]WxhnZd=fYůSQa*qt}sY~*՘12+f aDjEJ"uRbcrŐ˷~}5d. +pㆁ{*>jvkW-w՝^V9w&8M9w|lD{O/'Exxjr$!kqQ?$z2ϐ;1"G(.>ڗU\pEϠU*ƳRB15۝Fb}<=z1yL^;Govc)_h1輰 xf>aܻ?Վ[Gfqg=[Mn{buΣOȬ`rXOrZ=%i[1ߥyFii#5pS`[;<#u/QYKw0GlU ,>1A\ox6Xtʟ|o>3=JrUJ'8y?=ya̝XUڞaxso1U|pRY2lp +~kai ~jc(ȟ֡KP1fzVvUo봹:uS*/Ub?;=74PVNwO.uo/>d IrsE-,z\_|mA}#?}z' `L*LP)[n-N7¸'( +|\S7]ѧkiwP̂uXy|M9#ޒ3WrT"MKݻVε5Lw<>'gaN˕v8j >pt@OWPY-F_Q>mC)QE_><*B(ޅ +5:A ϣܭv[' xUoz0X&97}Ï!YTZcc!fr6+RA?bY5lAjm1 ^4[C+úo~ +).[ʶGMژ:o?u|9Z~!gsͮtaVYb)'ZTFt?pu/Vv;xl?3NI{:esұ #4l(_8w=T8w e5Y7ŁqqSQ_B;^8H^ITB'Ԟ˽[EY>ٻKwJ~D$lƗet_KsS) )^p +|ͭ~w|skF1^%%AT9FEa)7ܥxzsz2ch^Cer:Ӹ7cb_l- ]B;+M!o?_w_3!i\l6+lFR[&ʟ,zBn3&l Zg&N!Ǎo$d}NQ +djIa(1 SdF{7[YB]})IJ(R +!dS|k=sy9朝R8/^7k@n7ϘכY2Ymh<'E^V T@c%ʛ7Mde *AFCmr mOp.&Y(`Q}?wƻLDS/W/wlm;ol~178 `e;:?زj˜ovxervږgŕB[6ՎtlE<ὧ}B0G#~>Hэ2_{`'}gW VLU )Ҫdb <%\b,/4/2w?M^̛b eGt/{5WwKzٱ9ͶǼԞm}N:IeXdscj݊jpC‹[Wηd*V o|p[-䱫cxo"fῸq{wrvZLT#M4ybl+v2:&=]Vow9O[dF#ve `BwA6m -{ȉw8G[Xu"0T;cgfkQ^63E9טB>|+dS{\u99)N&.} FQheӝ[At5pcXz°tN!6tG'{Gw"ޭT1Yu1;ufȑTP$)p&cWTeaS_9!<{O)#qwep0 iOc 4<Ͼn{o~[yW}kӑtIr\>_ʘѿGlhbڔU/ +e }MI _:/rW> 2h,H߶d>vn7BQWOVY;܏Pg.qûu^ypsZ;9/9j@2h"k58yW}Mma&nvJKl֞@FnŊs6Jk0Ik-zm)yj΋mk>-v[,W35b=3 + 5:P]H"~hs{őw$p1|8j&va|oذ7#4ja(h|x99=O&˿0'7>j1`Nug.!L +!?{տ~lJLܪ ~ͤ4Z%kT/>; ]Tnմ*|l+fsT2PHX{P֋z{ru[+ 'ϽD.-- +y7ϵNQ+6PbOmuD +* +`er!%_R|G3-4~  A_,FtZICpB/[l?$$|NmUS~ AK;CQ-sTO n,]w[n^YEW^ܢKr#8xZxqX2ا/طx]?[c1xc-a|j"}լiKVSsokx`iTnuQs C fK);e;e|JI>>TM׷a*e_Z֊0  +A󠌚+X&q+}amS-vӣ&iEzIAJve9Ji`HSwƧ0`r?p]ԈADXqZ=|qB<:q2,C)bgqW))N;elV$@1%33ZϤ$/h\Ւ{W)yQj>եι@l.ЋԎU?whe+X^YQ'W NjKJE7(W$ޅIF>)A5. jNj7RZs{7Oǃ;w*=[7egmHV-v4{pT >Fk?>xŎa~68n~?K/5J +6"z'ZuO玊Nx+}Cљ}fū#"{. t&guDzGu7?=I +)}݋h|p$HշlL9Mˋ[g1:&S[{3[tU~X?MK2WS̀PdRZ{TZtd2|5Ns4^/z\mϦQsd/_I_%\\;o9*:mU3@"Ҵ@f|I؟le-|>Nj< p7^ xAq~wzF_Ib,*{ͦ!ގƚF'j. 4H3\>l?d X,4 wOoKwW4ĄɺjcAĐNU=j4J)mEc"H,vɨRBԭZMV4 uySb4z73Ԛ~ԚtsoJ<?˷ѫ_m9yͅE4\eg LQ`GJO4yqmx݉ +FB R'JSjSybOwvc+r{&dKWEJ{I)MT]?ny|<.fwO[ +5*+QFRш?nM=IUJdܵY˼CN:5n1 8"MQ|\hoxMLQccM}x'kyr6ѬZ,*=D^d~fNH۪=Lx+OBˍA7MTy.H+K'լ2?"^T?~]7X,lIXx(}^Xΐ,W05VH+ԉ1ei1 ZXGRۭb eV@mH1IKQ]8,e]E݁}8/O1nYhFG揫;e[pqa^|9y} xQQ}^2c{boRLOT`n e,$q#:p 4ZG'p߫-ALqɝSPFߜN #\ʐ_`RI\A&1tЅi%3TzDoqY y}B'a^*x͐* 􏹏?<ՠZw7INe\<NJ tìl$E4_'bEKp^]T0Y &W;]FkPYROM7R;Ζݙoeݙ57Ķp{ހ!Yuo,ٸ'K/ϊbpݡ꽌鈓 qt'aJcltWy4g]-=nԺ uA_cT[`6m,mlk[^V[D7FekBjT),JNwBs!" ~B ]?߹^3[%f}T;?Lλa^:rx[Rl熽n^=7s6,f!؆wƨg5NP4-ݝGƁ6)ۄj!r8WA\mr{VbiUT5)hY U v dOQo)+n~/#Tu5kU++nǪٗFeyL8-lV+ ڍTazFz>+({?z֬۩X>LlrNm[PܩM'"O>""Z"(h ,s9nZb-;aHCQLzvRU>o:y3UuRŧ[Q?E!P)!J6^.Kea6C)/iN{{ `OV +:h"&S~=><6v;`ФvV +Fֳ`n.D ¥?):YkE+gT.0^dJ,hH)We>1 "u;Vd`FV;Peh.UC-vD +cqYݱDY Sժs-LR{LgtO"{~8=Z|T|,FL9ٲzpԞ8Vjƽ͘nkF'3ѐ]O`xr 0xhJRsOraOi +YOl5?id#}?VGN)np7?c1ERpEӋl1t\1uSS㘭SJNy q̡|+ =q,;'n~OtHaPU܋@! :;qr>qjDqq88>$i6joq͛)X!Sה+u )^DKsrƱgRF%p}9bvaC,XMi,oHiC7D@2?IXĉIaq:8U~;|q"6_)7(8^ +y&Yᴳ`t4ޑTQ;$w#Im'᫛kzF'㏌wlMSՔ}8W= fpUȐ{'c G}3ƏQ@  ظ#}d' 0i=⯯0/O_b~W{u?WB|J!LcCRk9IՂ_J5f>1:^"@G`S}ܿCzۮt:+TQ]vko^gIlf֕ƘxƏZY5zkkjI%yn'{ iOCKׇVg+9<+{Xyg[m 6OS7p4f&kmϬM^Xy5Wt4kgыwk{R6䗰5}fύ/,hqm + N.0}[ +ժ^뭄 /%\Jj8EIջ9V`_\_G,tᧆRϤ}vB>"@pb~R>׽z87!ĥ[TK r{q̪ч6|jB:RBU콙э7+uhL2ERhhm+x@"{2PY"í&vٌ(;}e/-DZ߻G_xFٶ]ܧg g*_ ezYԈaL͙9 +jT:L뢴hҽ[7V[U~ە0gRy❥ӳY.qGHwM*L1iε8xY OgyhXn<TØ=YњFڲ>⳥KgқP".cDn&Ʃ|R~w(xCSRoor'y&̧MMU&˅ʝ^NO˶Y{ +9F58UPP?sGg\\al-lL9h!HxrۋcuGnk TǛ/]N]\y\{\XuG.?2z$PhfoLDRDJa{{tzq޽,Ycʪ{dI69zPQAʅ˩,D݌@ ZUM{s +Ffbf7тSRPƩ$*4.?1Hu!{V(o *:uWMmUDre:~w'^.{Wˇ D>*)??Χ",Ěe#q:|0_=pdTlޓ1+A\ObAy&dރ=QMT(r?F>fW 5C틀iː!!3YJ5Zd> +;YZ{MNuTmrIKsTnb(2˻C)PH4UZ"X:3"sB$@?\@D.D/7QX5# >ƃ+a`DoaFjZSPʹ)j|=(kle<صnR4ÎqvexfjA1Ӎ*>;Y- _B5H, K#tdap,. [:a58f4Ӳ&hZ{:Le爛d%j 36tW=31*,(îHA޺R\΋N}^. KhPa>"6SˁڃZifNv>SS;@ø~dZk/~5cl K,يT향ed`ـsO7 +73(pkk@\[:WF[HMOֽVw0swi|،k#᮹<`MKMfMi?IwE|>ߤʙI{ĚC\6)v6cѕKb^w8ϝ%h<; +ۉj#6lsjEjQ1 +&nrrllr(V[;/rdmrI~-ڤ<<,j/(-)H|%+[=h|а<~s7pz0ӏVι.vqjmZ}ǫ[]j? T |J[^]ͩui>o>Wm\TZd:Ztv 1CW<= +Hv[4kVn-QTtgo>]R$H' ㌩^hj.| s7qusV+ No४O'M{|%|^Gҟi:o{Ĵ<7+tnHw1Gci Tw~yv -qI>(g!@@q@>Y@+l@{ @w@ţ9Ա?&G0>KWo +qVM%O|_Gy];BziY@c@&`Lzd1f3 ]^\G뿔jL8Z!J☵UlI?6 +n57(6aNrǤmҗlF<>lƁI{l9Oj>į +y8_fuȫgs6pܞQ#e$O9>B)n?2SN3;L.)GlL)׸2'Aجa+y{0 +{Ҡe)zp2 4f!e' )(e3Kcryc>|oj niƋޫ'nP1Yy# +MŢUmIYqڇ8]PZWeС46z7)E>r}GrblYC|yG}E]/!uqj὿w݋] WEş{o>"Pm Nvgb`Vzhљ@󠿩ih}*5Ng杣pH{5ӝj*-!jhm,dBHRKygw*zjw +z'b/g\|Mξ;:rg E(W.Bl0L.4TήWl˃VZW0F)@hgleX=r?@͔^Jf G0Nßx1w·JHKpUM0퇹0>_rX,rqvm3̺}&sZzV9ܑ +o_7xLҞ%j&iU^Ez7{;Tٸ6 +&LH?ðYa/=p)6.{09+ <>Бz~;9׳ If<Kֈ_Q^#*ҒIwV[FG`u;5'4. +! {t8 <{]vS]߯cP.;VUN=&zFRׯ\c>Maji4K3]+d9O&˚˚mxWʸ̎Ɨ_8gIB,pNM7ղ>hz= dX,\UrSae\j`t<׬?kgY7Way)fHra :ob\&C)ټ>&?- s˔}Ȇ}`oyU iN ^6.ۚui0'TtÖcق|cU*j G¿EP~-xo9&'V>q죹Z87˼Yvc͒MDZc,on +;Ql#̄h1gv֜`{晚9`<2År,zҘ-jɳOڎ(d%Y:T ;eI#v{8SXۏ"N>ePb aA$}ィZX*7v/Sg?U>Gkҩ<8r9u<"Wz!''dқmU$tuNEbȣmiko1zaGQlAk_YM=`3_6·zkPe:6cؚ9a֥HiqYt\jlXӭڊHs/%^.-.(. 2#Cլ!8GFbkyma׷۽<gv<wGFuF/rs]*\ ({0d8蛵W_.WGPzTɵQiKHDj|G,o* :pUou:Γ&tpFJJ[+2%LQ-٤[|Lda?nW`ƾqA]'+*%['qD +—*3ڛrmmsh3Q{g3N/e:<1IC$)IlbwoXI3 +_hTC?\KE4Fe{g:҈"/~y/Fk҅av +#W%8p>$J^ac㣾}m:H 0t{ DFz;j+Y Q1gi;q y=} Tyti=Yt%v7KGU%}lVv}l9XfMRdXRɀ8LYMog,KYe̍ϼ/nmi'ȉ싛g 9&,C:-1[eNĕg +[DlpXeΫEn *2bd<;F0H,8.-٬,mJXK %㓓ru<4G>Wץ!*MޘʎбIАȝߐ˲kC1Y!|@&xhCf@!B9u&%ŭ؃4%^ȏȩ',lIgʮc`dlЇ#DZsbm&3C[y}F&gpCj-a}8QlUl mÎ+mѪܲwӺ¿d!m{5=Q>>92Աr颳G y8mz (.o : 8~G;>J/ț,{Gg@4ýɆjY Mh%mWF;Ϲ..+ yv: kd^=&-Chp(O\|{ݯ3CO6W7ֿ t夣±jGBV'Nƿ:s}i*"yktD]Y->W& YT-aIig2AlaP2d3F|vD8ws(j/ޫR+sPe-|V[@Ɂ6W=?64]]jhvhÔIFt!~p`봵giwojJyHohHt޴o垝ibZ 6n)hmܵB/<=ύbܰR^cXalasY//4|)PJْFi2V|*P:^ph}׼VVgP׆/F%>ԪK5Bf5jǪse9*UhdWB2&P9gsC6@B5ؕ0A+9 +Z:y'9^P@{Gm|/{G@JmU~wPNeT0+ DDa)Et)7fmA#_w3A6/wGA0D~m ZUʍnqRy8RQBXs)8]M(OQJƏҷ(E +s*H]GCdt RB}q@69/}p /⏼/Z.=_zۡ f4cs>M-=QZ;`={5'Vll WlP\+p,mM5wy'݋GD'u ikvջ)MUUgBA +EEkD} >m6 ӔLrٗ GK)bCojoCq)fv^$j$j$Nz$ SLK;I)YNaA]%I䂗U0 ˅|Ԟ!qHާ y&un(L1Q3t K,W>Y0?~}}Vm$Sx \^d|~6A$n%֓OO՗*KiA)~]_e; 5+8X hW|s G$߇ 7$H8a;cur4B򭚣shibiR.joY_O܂]mZuG+1gCKmj@@;7lMϯ3OBf -9 z-Nwc`Nɢyܸ 6d|H]4޺|^7DO;}l/qxpmduǮN υg{q*pumʣ71{nGeipmKs&G}/ks0א}gm)PKZ (?h.WzSs96FK aLJs<ߣjG㖁ۆKs2ih]*lȫ9*hkkA]^DjqO47.n4pr6s%ܯ..#truHSqMfo=zPT^[n4.iO^ȎEFLd +i7qr xf8ei|qL%wR8p'-.hc0-  (:lf-E?홆p+W +Rs2XUV쎄"Rk9Np'g-TaBtvc_31-nUR8PP!ԊQjǃ&9_Hxoxza{ҝnV([}']&L~Q_^M%Pn3|:%9; ٝ2]Y#By`k1dtXU|:q_TFzZb GkU{"]ClFu~е[ё|0SI'ATP|XrNU-u EwVDOlk-`>9GZo oj hB y:'k)Sؤ# ]Ynk?Fړ7,?n:tYޚX=Oƻswo~8J\Qg#av`>:*4\ʼ_$11jċ*fb[%^_T~叮?vs+.oXcbASt +C{tuoKk ̈t|O^qܑǬ9FyoUkTUhÄX$y$&l<{##icc?\L\خd(V~(5[F:kʱ*f +4|Q4n':opi%w}`W QA_&=/ۤ#D*/l +Vwt#Thɨ}e\Y$ua Baiiq +ZT<# +Ӷ(O3^g_Q[N& < $=+ ξf>Hy8d[3VYEtdz ZeH#+!d\Z>wjMz$ +"4}0/wJ.(ٌ`282{q,)EnY-( t_hc> +rR'd>i`=a<_n"[TY!ck??M.yl6-t:ٸq0zfTQl6vI-.[*u s|=XhE4 z\cS@GZ$,RFOFfOA7"37Z+uի.W_ǥ:aґܗNTGncVw!zd1J2`,%WKP+0ER[,oV9^.661|NO/9ĹPxS e{1b{ǒvX:5~Dp +N9+\ר^ye7bQFR^54` Q"RlI(Ů`WHgB `FFVꙞ/R+w\Hpk=p~GV5yի2snzI9W逫W)FK +mh XDNQS,*yh"T P| +ϥScޖ"ʜ&tRew('d!@A HuI37Ȣk "qHmdPd +Pu(,Tɧ%72FZ?aPlPvv(C؋s_)Y. ^W0 `X0F=ŮӎAi 9y*!j5>hJi4ѡ1t?70#N1a& y8"Vﯶ +[ݍMSwҒw%SS0Oxfp $|%„R<$p_>*8ަ$aϥu%B1 5)I:Iީin%jIC)OW5ڴF$߀qTj~N{~;?7t߰*\itIyB_\ᏸi]e&yKD"2 tt:h͕ >܍L%^#RN.I7/i" 6,9qdž&j"-GOon|9ם]I,yd:y;&I53> %QNQzwsXrqO/[7n`JGygwmvN<ݸ(0Q^P]xU`U3/F"nydo?EТF4*hᴿE˩|{0ХqaثѤn񴍁mK x kp[G.}x՝ZdBP>xf?w-L;&G¼tzi|&|KrxH\!63i2_p:mխ;Y7{~uRrWRSc),sղ3;F푫8M͵Ϫ,ڄYPlfǛf;GB:J%2XwISHas4fBoK``Uܸ9؃1\)hkcTz +b@8Y='>}~N9 Ig{6xOl}^!zX9i~{E*FxɽM,5 2,S1L4C#:~PA*Ѱn>/{Ds/% t@@j̥1&1sΝo҅F' <ޯ {c$O`/zu낍újGn'Zˁ{_Bʜ/ 4vҺ_] G =0E VYgYGү\ 8+iI۩]5ƗO< e}0&98AeGtA@tMӀ hMe~|<6WUo&@!o`+*tdϘq'%Fsp>t3!҂N|V.ol%5Yf"+ 17m~C{3\;VAQu( YG_>_lvL vє׹m$9n&K ŭTmND0 +;*.)[ +d$XFdCٝFWר>9b?%Tn:Z䫣 Vڑ{bލ~7TR $wPQ(ߘ8$;mjH:ۘiuK UNB7>ZlWt~l^WR,irrÞ#-Ivh O []}v@\ /R: ʲV./1:,9#ˌC$r~+ٵǠ"(`i3ŕZ& +nĦvtOR8zlc}S|OVi@. SP8R<LIV`#ωu;P,Y{b`uh [SEP<(w|(W>e&sk `'^ȱR\\/ g7kt7E=\@Cӗ(k:nxe[|4>>*OQ-Dɵ6c+?qe3$oC°|XH1@R*@:"W }g/ȋVV^CVvmVrhӸC4\.bGHZM~Rw6 +i8nM69  3q֛+'2@Z_,EhW^}ֆ).09|SAcWLp7jRfGtJy(n=x]'z4nxG kY%_0xX1D/۟}Ͽ(`ɆoC.b($+G\$\q $j_o#L~-z?LVWVؽCɪ=g3lZiRgNn ȷ~OiD2];qY¬kQM/P:At3PH;U/&ļ?!-E(G=;MaYYI`OD"z}o|^Ƭڋۡ8hx\ +l$_!zD꣇L' ;Gau S#rdp.=9?V2#2]LTdN)5(YNUi9?Z~/ps NͫS>!w\>/ Ώ.R(>iC|c{w7_dGN3md?pNؒwɧai[ɻ4$eFЯicqMXAvsɕ܀wPXp8mϯan_qG6ήJhշom\H[sʯUHNKŠa_[~coBqUP|0 :߬Q$C;O=hoUFp s\7zu~Vbr_B~ bdp{ <:|sr2ʮheu,H>ބH>ӎZ5> }鹻Bz[l'.C/[X_nS{pl<sVs ]  +3l­N%εm(:}O"7i"VnL,+ rNq0QL7^O߼z/!ehhx9iEdqs/̈́Z;cZ1cg|7K4K$h=c q|N=o{pR`&WV%PwZ]?jr-#Kn/~wq/=v+`xrtrc<@ .!wҲH~2Xoyq] K9y#ru_JfrtwrMqWb0 +)8e\x'ΡM<=Jpd=">gcԤ:UFughX BV\(xy1 ^vYl\Px/<8Ɍ{s#/H_ DQv7DhbcXО'hMPZ/޲J7͜3ԥA9v)Ke+$踏UݬG`QaٯEZ}Ϯ/ -.  徘^MMa춧v}~Tܧ6wOzp790ڦ`0)vscp=n7,NOQmkA[VNZLkp -1|iaR\IոzN~ l5:r8+*S߽QZ[< m2O_Nޖ:ip&wǚ=y Zlc,Vwݢs-F۪֤DAzז$ulr눴nkoil5?a:p,C#D&%Qc~ I{(aS6%y@~u/96nlcTٸE3 ;S>i{L?jjLش\umԨHH< S +O3o~}Q-v Y[1ݮ`L} _ؙ>3h4ۚ Y5ۺbC֧FfqDޟu}'qQqiy!(e'Z-.񣭌Z"JͷMӣEH!07+IcM^ϙr}oS5WǤ̿/o'U5i4[qcxSb=$ׯ:>g>sW8pNr`>yE%\Eˏ&.r2`LS%8<8 .>ֺ3wfa/mr&u"bCN5nxGxxLX= t ST +o>Z1v^붐 (!-+_oԩٲঅ7o9ڰг7BsB\a1ڿbRKj!"y6XP1qwJQpAh^~@bi9lJ,,EHi>d0B^BAe^iScc7GTڏ[- ŋܲ 0@zO+ +|7ZD[8ɳP$ٜ4|'wZ4Y6rrINX&t,~mY_ԕT] y^#z) g4|mkUó laFog.}\7, #MxhU*fJ* iw&׷_VONuԎҩ68ZTUx{ѻ~7?8xh*9`^C}E_\:{\SM2Gi.v<^(7bq9jE8ׇ(: ++WW  \a)_/I5r͜@뭭և$Gm +9abVv{/[ XkXNpA7a,}Nh(*J?B"qp)L X2)u@} @T 3}Js +O6M#F߰Pl6ƾτ?<چmO "/TLj,-0˭ ^vt>~~R C͓'@ hWLwоyGSLwѦy[:/.~l5@ٯʗ/ Oz+HE+t`[0=9`d`S +`o.pkm؝Q96yThDց5\ﲍie_qKU+@kzC㹘p8o n=6@  FD gzJH8NdHT/H*[w˃:S]}m~^^EKH[2l Wq's@:B7@ݶ@#lc Ц_hkV=F)"'k9'n$r]G97<.`jqTey"&7G bοZ||pС x-̀Y=;we7No^w bf2+24wLH#)_W_PBܧ\Vpzݲ%̮.릧[/~ٟ|zKMwh*8'iozo,]N?̚^_Y5_^=p%=Er{>zv͇٘h1GWd5~?.w9!J|i !͇kQ~E،?nD<;-u6׻#˜v M놭d$0q^ 9o/4 SNU/T_h0yS4&*с|oFkQLX<3'd$6-&Owăn7,hWr[\z9jʙaЮҸtLޛ=@A,G`g7@{ Ֆ57LezA]6t,7^UR=;q% ŭJ3vO 6;@rY6Rw w :~\t/*J^ Aղ[z:Ũu+-Fp@y~-Ys,dҙϷNϫcTgy +K6 +y%ߞ;<&<20 e}4{ZZsGX]&`Ba_ۭ> +c^1_E"U ˷gе `3I2Y(B)tH9[t%Պ9='G''ˍHM(tq뛯S}ʥc4oWFq,=. ]f{sΗXvSEBC[L{ȭpr+ٌmjMlU(@힚܅&߭-L G;:yZ Ɵ+_W΂_l.Lۄ6lu03a6(ϣ dzzI'm?cb B=˿oA~}_(+<C.ulńMwN|]Sf6 3sf]Vw{mEP!?lѹE}ahШҽ``{'xfҜ(xB}So:۽llV\f+OA>A閣- R:u +~ADzoņ{9,lU| ܑܶg)IT;F~E(@&s+3ɍ +fzu; )3R@~q! +ڢev&ٮZ+.3MȥpA>^o=~+KRg>v$-8ہ{YS=ۧz f\iL;֣+B=&v~jX/21+sRrڜVkEP{V\O0>6L$ՇhQQ=_y)Z°xviԱE ] 2S/A +P-ώN~nhX y{e<|ߵL~JL+MSeOku5nJ2A^75uU0 +OvC79G؞cz"[mvٶ'P%HOeziUs3VT alkT#){ H7$S+H SQe+@]Ǜ7g#Up٥M+T`fq¸ܶlvl+F/u ˮw/}R7T,OFcR4|[z -;G4ϗgRoW<!z sf1iK5 ,B] PO,8`;~4;⣲ y)1q|ā2xzpظUuqL~'10GRhqvBHvKuڝ-FBN^jD 71&1bPkuDwtɋ^ҭUjrPʣ]V?']Βa'>!:n(sԵ`T7Q(i(fFY#~a(b$ 8MكkiC{=9my98܌ia8&4tŻse-~=;T[bQ?-VM{˙Ԃʕj/ a_򸹕4qkVn,9 zʠXraVtOe]Tgi Q|({(h+iMn$4zh kFVRylq + Etɗ +sª#BF&M2K'z,^hb*K+t`ܻғ$Z&<0N'x 2< .*^|bїՏ8x8'DC=[v &i9b~ s&12Z~|/UAXni>&._JtPrnAoR6'?I77wIG>wh]+|[\=Fnn>[gpJrB5|l̎lI6K6vIBP!f'. S C8TPX"O&iG~3#U]eօ +'.!VGdḇ־`QhBW\J9|yRE@I٪8s2Ό'F.3-DaLh!>*// W=foL]" +o;46+ٰwg.nέ*def|.fZ!G- wh(\f˿Ѥ ϐJ%|>:T8˥~7'aXG9dYŭ͟u84;$LT4ޖZ\Vjku(A=MDH7}h\Jp + iQJ]t.k +NZ|S5ފH(;`IG- } I? 7XDKd7Ϧ[Vg[/;-n>Ν3BZiK){ۙnV7wc9~ɪ}i~psV o!kk!7ч6*xpsF}jX`[ZYk}nu"!߇IiStT~ٹ# wl V 2ˆgG9=l֬2ZVvMC^KN*v·uaoq];XpkUrn{͑_v%gg K\`g@5laH*U[%DpNФsH_MEn8mxgq)qF*< +:n]:mП>ҎR{=Dra))L3 9b~ ̝ՙ t*˱Wײ +Ry5Ԣ5TӦoqc/js5Qߥ/I~:.*M{HAryǶ-Qeɛ[W3,_J+$774Wm{b;o>QZz'Zhlibi 75|7b䰃1=m[ n lyi{=J`19SOxtqF)n>nk9[b'\]^ˋ͔"e˸R?Zlb5q̣|65d*uzok..ZM;W&;i܍'(f'@MCkϊemZ:golFqaP:*Z)Yf/#'`-/~Qjfy#57+ݷ!K-oƦ8: S#^~*B@Q3## ,VLAR^IW\URۨ*',| sΧ巫../{"*q(t!. ^UjSzߑӼ?j?o8ͶX|;gPa{QnQ)[ +]$]2!RYAS=3Q6O€ަ$3K`b|mE||~0qA܂{}Cleg3:EkSYEiuVkS}9!]ԡYjb +dJ ׅ<yp[,YP첋.AF1˨ʡܪơX䌯G4wGoԹ~<EvvM*5'cx/$;JNgETuX|Yk*. +ˏ㟇/wEց0ukȡۆ<' #T~RŽFp& &#_""^#t4'k+*!} ̛$ݭU9$;9!=lMj+-|M~=n|o%6JS} &TJ)xe ++m1>{-I)Jr^e$M\,d`Jݎc;h:4;+f̜lX,iR N`FHQ$Axk"{G7O||Bx1<}јܴTrVqSʡs+rb]_w4{BCo^hn͗$n%T4Qmӟ;]؎oMv-&U59nlCWshv)ilY:fAΣls2ݣXi\ϋ; DE pi>JHW} 'E_ߠ~s7gaw۳X +'}L5Sc}rg1[6]>=1᰽lX^s{GQvI4+AѨC8ӆ"wfhDmT->3J=t_V9>2B5K3XHxq1HoEp +ryM׫d^Rt.UiT Pk~ =pf1e@\0dqaT~UG_?&Ui,$:Z\ӕB/ls^'l`c-lkTtTӿ8r* D@ f3u(vUL;~Od@1ZG^vr}0|?ѷ5t$C۬UM+C mPy\/v=`2Gb1@_L-Gϟ{z=.L4}sew@UV3]R5.kgFBvیd2a >r$^H^7S1Vq/J+bmtj8;/c t #r XlRl3<Ũ_Š읳 +V~q)vtF=s-  =*]Sh,Dr2wr9X<77g<)=cok0>G c~跖)`^h/f3֫IE֟!Haرx?̯K6@@/ g4';Ļ2aqLD?bҚw,$n"bQzNU,*@uV"ɾ_PJ'o_wF @6%'>r]JaJYk @ "Pz ʼY1L6WٚD]}&T%uhVo~ _71&JR{i~-6e0 h4CED4M7d@Ɩ 􎉤ߐ&޿f13DSw/6|=-7iw7z9+~mI. +d?D4M4RO@ӛLIx?t| +05 nn}q;~]չV /Tynf'GV *Gy & +obMbd I%jߏO@6ry+Op|hom<XlCOsiqjYH`ߐFɡT'ᛂ03^H&x`g:1wc̆k$_i;Ou=ELo yk7%mV߯9^Xjg! d6>?z]mjON4/QvF&lo2A\%~]?u< -fv7CGO^S]\N?]81{u35:(;IQsC S ˜=,jsC?д?S^Wޟw;D3 =w7S (3j|zpk~|~~cirQn`n /@$%V:޹{:vx|@ s>ܷ*NnhM^\s+a_TݸExq^)EI܂lܫV12HR?4UgyŊ޾:v[~/xTY7 ӈ(x3m {t1yLpQӚˣy>Db ( L֌O讬zz|vθά U+Խg읛hDvjeWͬZF}F=U"sUN\[w ՝N6GBz4٪MBM`w={ɵkKmVDj#c)-T:P[uR)y^j;q: +:WQsdkmJwVN}]6\8q0fR~6Q û´]* +ָY=ZjLp+%8[ɯRF/m.VVkVzN:a9GT{pf,s/- iGf;C&aY11G'bWF7#l2{Hm=6|oqΌѳsmc$dF ɰ,Xo[YzV/9jUkϬwc*IbsQ)x7-Ѵd(5VcD?^)/m\wVwNo~I80*zUmޔ?y|]Z>Ra|r+Τ.g*~y)2^5nkig(pg}^/}tzK~g +Lbӟɨˍ%Pkbըŷ;2\w +ZӂFwWR׬ʚET7,;`W֯B\(Pg&7nIf,,CH:kBFN YxZCQ'%hax{P/C^+i%|v.,F g}fڧջ#YYh Fl`2ƒXv8֝J%Fw'"9r <%9>|_4|(2zg<;ly(UXt51ջwF6iz}[O44Uw45wjum}GnmdDUV=ZW+?L~Buj璸{5|aai>J79]P[~^,6@ f0 .HtCɷb<qxaާMJeAv).a_1%̣$L1V/c#Z=r}n:lDz3dH~wntfLs!Wnm\&֐x.i~IPx>CiH[N@T gap6.zG.N-5,~0 +X%2 }G +°&ۡy:UW#3g7䵯ɮV&-Nh$|LJa 7tuάéBxlv='6;$6[uH9SI?!-qx o;t}Lc\z[jBu!B@hC+#Ǎ)tšrfs)bqSrZ(ci|/"{/tz,!\PuPtkiBb˭wݚ{j8\k3kgpWWttQeN]d! Ss%7ccUv +d%FwGvUi +endstream endobj 57 0 obj <>stream +f&SbIwHD\-Gf8 Aߐ) <[8b]7uxao?g+c7DY?[1t{M1YBwi;s|tL? 3v+Hcg>TۡXw:w%X: h Hƞq|y+yhC4e^ >[]%QjPőa>Ym8*w2Bm{bSopS_@1s`-=UO`̾ԄbKy]t[=Rm>t-\۟(nKe6.TgXwU +J;Ԧ졪x¥Zhˏjjnf!vs'mWѡm5z-Ý 9b**A TX)՜HެtZ^w#o>¡{ƺ巤^waw^^zRFQ뷟VmW9kF6Ba9lHSn1}ZZFE,ߗJE%lʘ!n]3k&[zѻMնU/mGha;ۃe2\'1k 7>ZA*2VYwa2!a_06y-|&K;3ԥhLZ43PEnG{ t=R;eiWn&3R9"mqO!C.|&ZeZՍ&LU3:ύ}.j6g* +~=xM81Cp3||*~nv;>|+5i4Tnc:av yC?ag@CK+ߨZQR+gjǒcSvC;( K V/J;"v2FT7NmmRUIK=?ߴlϚ܃դ n;^/SeH-R ɝR]1gL7ʮ>3`8 `G1~0nF{7 +fV:׆6F+]^q5V[ˬMe0 +qrzrChc_H|f/YT( TZ4LPKug&*?8>U:|x-ƋdgZd3agM%!J/P~ǑJR%7R+iw*s+yZG팺tJ=]w_PxDP" O|uC rdl,֦:_b7q8%JG疮g[Q9CsjNz</mB;E?m/H }ȅ7ˣ* +~7_ڜlo}zAJCD\6wݡ7Ra!Z8<:I=&E˥;R,8K|M>[qPܘ/rcƁ +q}Ʌhz. ۘ4cЯVf%K5x:P'$ߧ` +\vh]|g|U8(TX! sV +}K 3۴NtX{|ld.w~6؍{h5w0 Vߴxft}|,VڛKp/cLr|闇A][@A@7A%,hj2S*jU ZlR,i5Vo-HW;X:ȵ-ԛ='11$!ir3rm/ Ek/ h{ \ϴxФGD/|OԱ;Op3a';%}ȺxD +s3zxĤe5#VǭKA;7AW±(\c!l76 T ٍ1*E"$-bIV /F?TFEE@w @W{@ &,ѽ0 tE4jo1X}лg6mc@M_.>_n @u"\Bp5cX?2B3?Ĩl֯R&:Tx@A`{5EcCcJrt)Rr9C3 9UCk` l 7_'Ͼ0ar /Ik2O@hf16y z V v vb 2*Uy7vٵ2zS :Uuk_$gI"&szs{y +:H ;b+&r>4@V{ ; Pņ1Pz ʚXi>If7| nC?I~#&~%)Mvȑ#ka=кC>ڋ?#h%s tb:g1&i"&oO@ސd:;*?4Wz|l} qȯOnq}p}z^nx`W>Twкn5$ +oLR+Q)=2ILob@N>6"w7fuQWm\nQ8j  t6Icm}t|岇+ޏOFdD!$K\K6пr`JYxrj9gt:<nP{]KJ+aArˀ*O+= UL'9SZ)UND%FJW/Pɺ_Wvn<ʏTA_R>ҤV++}c 9gVZc6 +hZ|zܨM&(Xt0ګLj]CpI]z~%U +lL V~3XܜlcY\8OkԘH訆*'YvpR `l Z_ +g;o]j o=NSmiyYx2AKzwfO}}':1v.\}ԤdѶ \}Й߈iwr$G;Ș8GB#|νC£Q\VZЌ?7`nH޽>H7/,^]O >و{[uu?mLb6r`=RKj( |N7Mݼl)oiMLOmȪjë!SٶF&+ޡx§p]9/"n$ޛ5wl~zOOywA:O -hc~OЍaORG\!+ZqԡRlf^gxCOx~,ix?l l&_2T &J@)cB~S;̀Am}IM֎?ǡkߞ/mapWzr; s|ٟ3oħdCRXe|/E/m 5#aLMߢ7_͌FSXI? +X0En#}m21ZWjhCW s +ֆwYdi͔ͧE:M"_t8eLjа[uû/51FlY)1%1wM_۽3]kuhkL(T2QYZ]-k/u/үάPύ6q>"/;ͥҹG$rZa7[^_ Ws۫MB-_?B%W3U=%[Sy:q'նi?y$A x})J ,V!b6J~d Hկ},z#>)~4Q hgJSRUl&vYAb~ָ:[+8S0Az~N\mh7{꺋M׳.j8%}knMꮕjzP\x +*9[/Wn-EJm{ "f>[\7/F=! ]PofIR 2UQ"#{Uq8.˲LEսZEe[ +;YYAv;s%QK^{UEI"@Ō/X4uy +֤ h@'%X*zsYU\<ڎj^U˹ÃiF:=T3~0`,鞆]IѺP읝dguƜnO` +<|+OȏߐCu#,LBOLt@75N@c'w +>o~ЩEwٱ{T|js}j^A/,{˩B=L]H4eN a ԯ'wA, .d9/ڡF~^AA{ 'F3j@e4&5Ux#+sE$Xp*3P;Τ;ٽB;)KX'D!^[֩ы ݹKrV4i"YV^vv/;BDx"",?V[fz0oyXtVB.a' +:r>TpRW7Y|F$dth}O2]YH47vc9Aۥj=. +pK[c]?_ ws%ܶiuz]çIݽ2&gR.k.Khϥ~2p i^%7;D!ܝF7Ї$oP>tRN_!Uk6]`O#5.T#170;tn}֚oa:HxaA̞B3\aXqJ π=i +Q]ğwU}*yaGJN+|,T% %B5 ');ۼH(„$m|[1VI $Aa,s11Y@#38.ؖ1*hN+oQ4/ezׄa{|f!{2ViKv5^t Q9OX?&(rbĻ2VAP Pbc31Fds(fڀy@@ܬQ n' R+WR3'*~cZ;Ip.|[ќOQ;l$!Yo0O1,AVAhA@i'!{ ?u ;Ln2<&  +U}Jzm/N@71&ۚ=04%M@s)К-h amrb hES/IYYߐd6dK\eO+Sjˏ= wd'ھ#wsw@t]IJER}!>t45q~DCȧ,-!c? ԩ8VוT0\|0§b'iV>蛳Ok5xգl7\o''աQIuϮ# Fe+6<N9]?^p;f6~hkv{aֈ]N{CZO׿k_ej~K +.lEs$IMdJJݏj.͕0f7gS5"=};OsEo WΙT'g~WPS.4P$oe;1"K<g~ +hI׼ *f/%evTHeβ*N4t-fTb攊*!< cڞzc9oR5"I~Xg)nbl^t3i sF;z:TRuRaP%\>1c>Yޯ)3eJbK#>坨]p3˼gKQOeǭnf^ިu9dk^Q纵֙_@j;zjy?*}a(p]6]9O_u%,t ԱR|L-Hf|&/La<_h/)5s?bM6Q J]l!nw[/GQiu@y]_l2ħv)laH)v'9Gԭr5AۭLd q77, VH9W9jWrpWGv{YsN~W=N锫f2L3i"%w:Z$j /f Eܛ͘ ٱ&X`c +jb;C;V~g`c֪Wd\hH_LwnMOkG_WϺ[-ܽ?h[ۡj7muC |$KF<; F88ZpMvpSgJ*d8bGsd+&4-6>MʑE\|]-Zs;J#}!ǽv[RשdgZQbw+=fbw9r4d&ԅ".-&u_{T&OIƓ)|T F3" +!C:.-Dav:^8z9{KVtƸ`)W]g䢟=!C-N_n>AH:Bi[|SMozELY)1=Q8LS 865F^L#as[[;wN Zol69Q= Ų;0_K8W0oVI]F`7kC)0҇Q&ؗqqhEdk#RgM)\k-dz5֘Fq!n޼`i i.r3qrZMD*yBEݴ)-#rR1G(mZ"!1~'I38n뚉QafMglDdCCKf#h"-cTZ&RZQ:6sm_39iokLUɑc뱁#`#ݔL.mQ;f|uU #[(U +B +~lP2r}Wr`WL;`J +.G5e6~Nv|YF9N7!(>3!'t'E΋hC1tH >h@i(gTm\Lfy+$l +b`3Vw6o0v7u Qz߂Ay5[ fnaT+IhV4ʙLt7I,a 3`^6å&ҔYb"[j5F/x6c|v(<'T_Soz+FrݱWN~<iob&'pff|IS0+NA.˖z+gNDtс W11 *&a9CEW .ltx8zx:A_~{wHpg7ek0|h-j\D|@$n5h5DOx6ԥzMb7!FCzkP0[ e=>-d6ߨtJ)/'N*2F5*"=Y7(,k4//eP8IhYluëe e}>g:d >|͘Q mdF좫 }2jhvloW.VOzݡ-(wX9DFV KIl1ft{: UFۂ}܋ z=ZwB}ԱRꭃW 9\:2V*_ٮr |+ McN5>:a[An͛9ʄmR[(+\wO = +6ʖ#\L;rCmL @ڴ%9l׈un4A3ˈJdcϱudSk\]^ +uZ[긁oyN'LjO16J.!eCO`⣆Ԭrnc8"+2m ]M5+#4bvT'kTQ)y*VQ-3o>2͚xYsBwrN+ܲGӐ..Ѯ/50Kz+v\yp߁L + +j i Kd_ZУ悟޲ᵨ2EKOYtv5} ;-rڱ2R7CTG3RnCZB^@f;(gt-R0Fr}0o1 xqK@rQg7eVe;<)[U7RNC0;A^Tc|f(0/{3GsPU?.dލɝϸ0oPx@~CYƅ%nU+KZsU\̧3 ofFVwҒ ) + \K[Nq˥qP&,1.[ϔѭlJK07E)ˇ@MG| 1tY\ï:h`Qxmd`p/>1;KSM7ԡlFps›ei<)FP:/6Fݪjߤ% E4&L+d c՚F8*;Gld-Z5~-SŰJc͕_ˈM\8fP6ƚ}ٖ8,]A9fkKC~I.чRmuhC,tbxllO\zuȯpԟ}aNaxGV)@+Arٕ6ʣ),Zhs[@g[ /﨓iқR׵i'14>n^*Έh8U #t=JzE#Ch  |M7';+Gwž 3m$l"QJJvQ%|`(R]9j D~&>Nkdx Ŏ01t.|ͰheДP&!{ucxm~?L-|[+لz jC%->ôwlih=x1w/V9CY=552-}>23bVe[4$1lnL4uq/bL&Þ`L{B4@d +GGrlH])ǻYAM;5O_ll K\7`"}ͤiZb.C4EfB>Gu]|RxJUmr6!f SCkKwN*o15qb`'z@_p1Ax&6@t %bQE^W3zdimEbl L{x^H{$wRf(`,5Z{1-@]؊*@+@L +ixvZַxL_mnaU^ V^CyN<4.[}/׊Pur*F()į:PUg7~ s?D'c&5tf*-jYME|α Lt0n/$W[q5Ʃ(Mv>zNY@όBO,CE-tVF\z\7gyrVr{#Pm8>*A.''z=w)|n5MQ4Vi [DF1`mx؆X( 2؏?f֬H@5| h̛o33*Id +#|Ɂw[I2;#m[#Ȋ.H?|VVuJ|ы!¨BU<ΧB ZJ@-še%,.T'ltOcK t.xn2JdBc{(ASW ӫ Ӭ vc!7—g(;Gۘb`a}ǦnLC?(JWpbM},dh@f I&I % &3LJQwv%euGʸteU?WMZTHߤ__o{PS;P6TqZ).QF%uu +ȦX{!ogO}Rl}EkUt6[)V6ʊ:=+ +&H$ |d#&t=>@Op?ww5J񒿮SD +d}r)Y\l-B< +M?U|\a<mU002iO73w=c[T{w?L>4)i|#}]?r4qErtP\5ӝ¶{bz̀&1Ǽ&/L˩2z^?;M>Q,9RLuC?S]+1lv6T+lʠQ^jeE]Y&_(Yd+W2ly0)nΩhrT?}m&rY-ySxnG2| +y}ZHA$$|(ߡμVWJga(5}=NbJ&څ:Ks>a"hFAҐsKuBNYu +EzvPdk/&Ͷ[t^,L7mKD+3T\>U$L`wl;fIku"@r̃[7,Js ,9>+F +YHj@۾ʇ1EbyI&Y]f+~y2@8ŝ #.䶼5k?E&ErΥipDHl,Yza,}8,vcגu:[ޢOgTo,ot"4&¸KD?)sR#ug@'x95Wy,pr[he2x̕JpFE%PWFQ}ʢگeXNp~QI8Հ=Sb />Y~*՞rrrS!`dRH*;ݠg+ a$!00|13riwhQa +RMcO>jDjDGшHM;)","MbP[ƴYj7쥛 +#)ds.鯗W +QRt+ei }dtȥP(T3ES'^'^,B,6;tK0\ny>iyX_j%\T+Hõ[A<ԢHO#ȊȊ׆AV7RΎ|F'RW}[&%" $S?/GLٻ  u?C +Fzߛ^H=ސȶ>nYݳP>nm?Q\,jt=9D2zfԿc=T׵m'8!焳1`sڦjko{ΜkFe%!urچs3 +6dwQHšĊ @[0a'ELǧV+3S[C=JPEQ1RCLCv9oBEr\yqF^hYG}[[Gy備Q)vE~H̷tY!3tygrށ q[\,fi S1w`|q_D#E~!05XçjQFh0va *G$+g-5qvPR񑛸Yu82ʍ5AT:?0~$_эGТ`PȾ'ǐJGTӵA7 A=MYp`nxP2#WG >v &'y/I G}6 }voòh"MU9rD8[Q98x9y! YAJ\nf,&U]Z@[?@۰v +ЮPD@*AY|8P3 kL2;R,#js ; +m!K?[(EaVj +>O'+8np ;G4'%{0T6x`"&Ŝe< 0:Z*ƎJS72ͱZJQt.qܨ4H@ \WU‹Q :Z.ve$(2n6@jU`{4@6ؑlW;Ma'ZͲ5x#k.q$sP:le 22Sd8Nv9  g(FGo^zCH y7р[сGvxYB48YTƺ1҅L`@=ŢIcÌQN'5D-Jz\hy {q m/Q9/+0 ͯ7@̲W@tK*Dv"#쳀Bu^Q""qe;_@o_bvYKEb )C , eϵL|} Zky8*t1E4 @˙|tLpd,-2.c@3ũ0bn3QɎ<.cĬ_=.4ə{J TVcj$B Б P.ŌT#ydTy>―v`WT!2t`t@E@EK@ 46Vx0rvp(EC}b+lSK40A> ¨`U,|: +h*@F ?wGnF=]1 +-@w3@R΂Pr: ;0ZxlHIF '4vF1ȏ|qWkKbP6])_#>ꐯD;a rZFWb4U(9s ہyxa@}|ѕ"{w'5@0/ٍ lv_pʶz+){V# v b@bO)&^#1|~<8H'd]ÙѴV{ ̾Pudc)+fzkd ^Zw$!wrh1F;S@.Oi΁mg;@¤p@" ޗ 7# rxԷ'm?>lRLj> F&$U{LG2.%tX'Mn}'Ճ@1:P P + MR 1,; n*ٱ\C7˗̗b4!w(C{cϺ8I2{?_7Ï+܀[@sU3/׀vj@kի@k[/S/WwQH+I q6&G^һn~{޾ +&"MthL6^+&} \E.Ī<J˙G>otWq}R)>9G-q0)]f;"RqD(% P3Y=Yޏޯu̇:vӏFmЧzv+,_K%vHi?km`%Fy˙uїIՂx2 ck$)cvEvΎ%F8@(P3-C!&8 v"o"[_̝uP6i|P0.z̿Pqwt%zБ+@G"}n:Lv8Z<#.䨭g?CI gK=!1̀gif21kC"׎#NWnb?SG䀐IH\Z +CY_EmZA}טD(i&^:9dH5; *8˥CBM3L8u4$iJVڧPZ{%_ +e7jD?U0-I^)$AmS&bTͻ;BB +?R7;wGwsW8/K|BAQŒ~#ЌV?ɛc:1#v1Y+bD߂%كC3{N)*P) }&.hy} ^ + [EA +Y vh?uC#\wi/6Xk8Y!F>k}leN<@)JJ]{gj &>*,Q*kk7R;5?lI"xn-/U5RE-?ܬpLwʷ/~2b*dTzVu}ngB {Q'k bp_DLD\^ "HV VZvBH,q7랍G+wL sTza;}r>3/%u-պ&TU DbKDq\0?Td +cw>PʁAWW_Qnea)ݮ{ +p9ߍnprӉ(Es +O-4cF=*|iwɞh%= ƌH5A n,OLR}[=4)}-#Z(XTTRǛHi@V 6qPnts0с1F;U 9{B~qK/̱\s`u8$5jEE[]hEP1oEK.`mO5J8Y0HNjj:$cѸTG@N'4;IɷU;ip- MT-{J6VwF *.{WdWH9 l 5Ղ +ute@&"pҖ,ŲDlԯn^^iKFL$VV`Dńw֎t[ܻr"D| &i7 +]$AaDwD8.Ra:UE +@Ձ+FGt% ##8UX)AᘭmtT`R;)To$J9ۡ+ڱ ][ +&Pq];X :J%զ5@woJQ2J8(*8u4O9+cF*d N^󩇆QX)u99~u_1T_:<^i+ Al47ԂzX3@k} 8<@.!j9Ptt |m mv0@+ňHD +s۩vɔ`kxȎm*E3akP*/X u+Zq,i-r + -M!n@r@0?uqb0K9L<`I~1[Nqzh0叆*2 Lm"몆|T8D N/{0yAcph^Nr9ցmn:0Mwd#94vimH-:T͞e]vJ F"3W_qs%s+e5!LG' ѷ+1Be`3 P +srA9p~ G~Lwy7^ە}Tx%U3qu?KVְ CEQh"r?fPHiJ@KўI@h΁ZsqvX @@u@= JLj: T]>n##ҢR%[_[4go(c?4pjw,!# +8@}kKv-v`Z]r79rd9' ]@W/Bёc[=ٱL62&jT+XEMm'q5@O}¯PӧsE@G}!wpR4i;ZKÀnqPP;ӽ/i7^;=F3F$a/(]qnO!?"q>un%/H^:a#0LzfCfi2*`Ze))$`]YLLYFcD0u]2H-1}4Zp9oUF51n,$.ܛaznÉrSgv 5I7 5fsC7`ղXNkgOA٣|s-&^.y"^҂5!?{)һk,#389vn2/SL8)x +g3 {k7B<_/# I<2QX)6 q=G-N1kl.bOISbGv v ?Νء@O+&1 &+5 5S1ĨbL倨Q|0 +bN,_l7Ԥwx|ͣTxX"kb_Կ-s@ތܜ…wqX(P  +xI͒V&V`F wIv.ozab.lq]u% {b߃GF"r +OmN]t"&2k!xotMEyYްȞv6W/b2S:%q 2ȭ͹#pjƽ7"FޏnǵQ>ifY#w+]xDC{8ԩ] ⇦כBFBtGVh]Kͦ7սE6gfxV#eumtvXٵ-pndiW.E5-: {\O7XztJ0Zǭa48:ԋ'pNF)S#bMjRYcNxN͠]D˕<~c2,7좸f#Oe쀥ᩙ:ӽTh0e*G=E%ۡKY'Pd-X"-jpo~<{FfYGBv9)c z.:rιR+g8]IFy'ѷE$)}i-3,# @b*>^;W3Xsd 檕dži7e|L'.N;Vj!=7Chy$}n lY S2c@qe(jȮ/#~k6tYG O(id=]xOn&͝S{TSH*yNB%  r*3Ҫ[TVw^U?*H9Em%λer; +ޗ + +qAA;2Si 2"uE]JDr#FT}Z ܮ\ +됭mc{UG@i}S_)/_)gg-VZQp{K1F7T.j YN֡h|ZXu]r=õ +QY6Vv( Q~t +*6 /tN)آ|uK˺8B v&F_跐`;n,k#+ x*)Itwқ&s=jl#Նh1:Ux!Jr@uw )aVdkwVgf/J!a;.FcL)E# K#n?9'䬳Vb;_t[mٷ(lmF1pu7hK5Qb$*5H :کSV)'`v;)oŨl~: VfPݮĖeRgOb3Ufڍ?k\гuSXbK< 4fWMe7=-o:"OST5aυ~4G񄛺ŝNO>iݙ5?-EPc=Ky 29$U?T\2a=a0ZuRnIy"}6D25;(L, +0Z3.X|RjaRvnkބ%owT^.&dt]HĞDW8lV+XV90Xt,ธ^Ѐ9q]0s;- ۸0["U/hhV(J-%XI13crǨm YHnlȊ2&> fa +mL %4?<P m`a!d نd#VN 081%}lp YH-Cs 2.z +V.vӑfã.]\&bJB. L:|"Ca y P(`0<; Bg˱ .;1Ñ{;=3,2/MeSv1>LD2z/c9&T@󗫅p]h: b"Q`V5֡󭔃sܑD +`r05fkk 8+t!=ѹu^{EVA~a(N "WdVTg rT1.b톲EFJpZ<.t [QDoE[ ڼzqFpJؾ\1 +ϲQZL]ˏT}h+-W5)(sSW9H'F/Q Uc/A*(C:!QJxf|9Z3]'y`@pm [лc67tȎk).~mkd^F@4.dϖwHcL@-P WA)${GB>fftvĄh[RWT@@j9@m I:\HdNt[x;Rȭͺ&DTf=. I|3XsxxʫRk6ub| @ӡ@΁Ső2w`*\q< gtNkyJru(k(fKd<q"QaHxyc?1W dnVO4sEp 3Vt~h39Jܖ'.Aցv`X5X"fK / Ͳ%6ƅLRxjX#ѳlzHgbZ%bD#عEU$ּҞԛ|[>9\~|L'|&p_Kq#~*-\57Tr@:M +RWX.2dvA6J*s+H6(LcdXI3^Ѵ,\7N3{بn(7$2/by1l6UuLz-U.њ~͵L[uYA- #_vlY^^U,>`kx'oxIbD|G2+;)U;U:t9f^\_ts˿8'/ +W4M=zi tÀQX)! *L=5ƅ9+T vr+ؐxt<53BNk ^ vzs)Ez'+(%kYm&8FRfabr}v!7CUp67ڴKcTMRjШZp̚bg~kY6מyw?b/f~[D@Xw,tgF /Bӑnb:ɵ@fǹ~PƻG&vCk;gXʓg8QFž%vGKV-9rX]@^W/36ӭD\w;^eR#!RnO=9:Gq-.^G/?ݑW}HwtG_U{̷o3f|6m̷o3f|6m̷4Fۿ)e3a'N6m̷'PJ<'_Mm |MכLL_k͹6s]m̷o3 ok+Œ0${WL5#PN}"ysVlNL+'_#_&,NkOeͷo3fQfTj5ۤ۲-ğc#6{醓H¥ر('L;It? "'#-{F٬SZKC$nû5տ\{Lfkaa r|-t߰.3ʾ|_`f7Sȟɤ*cO13'n몷@G3~Eݴ/íx#6:Ԓr@ހ{k/9&!r 2*QEy_}ZyVcN E,zٔp>"Se6"D)?Ѯ8,fi$Am;3c^yS 3L4IuKtFS_YR_xx֢^Dԗ-)vSwPyrx{K^oo,{_5͌z߭X/ҬT$m ["7ӑr_VI!{|fbu(C +rP0ofͼtV=9fݽecG4=g#"~L㬜V0bg=N9~`<to|/2#(zKݡt͋@_9}s{=h]Ky R wZj{zN178=he3ʂ?A߽ǧZQWҔ:e^|T>?uM0ɲG/}+{C}/{@0\?:/[Bʖ +kfk!ϟf[דjV^ϙZ6sLS)$~m9sI89(G}/G&'0,x8xu:~'/:E_HtgTkgPQOQf/a#ұpŢˁ{ %'d%hxٽe39>54~}ޗ^݂_Ժ,v5)r_iN8Ѫ>Q.~DM;Vۛg܈ȝu R_ed($LW#R?^ z"j<@^+ɧp<ҥ>"z$([y2iIeXnp{iԼB6^{ p]Vv :/TIA)袳tE1Hfзf 4adB#`OfzuY(jagGE<4⾵ګڤ|™ٟQ?Ƞk}/F煛w/٣eGhUrufQ_QkWe)09^67S|xM{+GdkT/z-f&acM"D24lZ4|90*, Vc kH9[㫼@0j_y #z\lQ9u û=s|?]э{feϞr +=6^}<Ŷ>_D -79"ﲧ\o~e=-XnJm(}xϗV&"gO{Hyyf8RzAO5 o_ +} &yy_ޫ!\zj f갼rVԛ~χgD?co1nP -d^qBd2,6}XZ@#ǜ|Ix9#PsK[_DiNs>ߟm׻K?SǞ G'P}X~/R_‡F:]'zj==ʅz=jy%cم )v}C"jPT|1>\WIVF`5~gFgz NRa[jݭҗ{ ̔t%Wݳпd6B#ukt5쀿&#M{ǸH*i΢c_bZ3fXfx{yKԏE >şS[.G&rb?ϕ%M?fM^{⣟H>NCo!?-܈BFJD575,Cay@jZ΋.*^whãVƽU%4iaG %X1{hgѵ@aB3vnJĜg9sF8yF\DP|nɈDR~oa?SEO+w%) ЖFB@I*ƲLD]yo{s/1 ;|G,vNO !߿{#ߋS9̽X؛p{x1Xh-<"=qUKw~ן"X>/w۾{ 6gzL'^-G1yq)l'Y-A^2Ӈ0v|D?/{oy!c5ԋbCAp}bmCжۓ NzY&/z|5;T :<Cz&Lx/ ֬?ʤjKd=ߣ=u )>$E!7zksi[~wW=-2`ANuu_nuFC]k̬s'sFb >(9PֵLcXh&>.+G3fv R}*bS BXsSr²|؛Oc<Ľ9$lwf~y:e=x -oz˧=&=\Cb~D[ULE]_)Ws< ^-x?3h+\ʿ*qp T^W]#ޘo}48xiƖ'E԰7Ү^a*៸,ygs1N_ Tȏ?iD܅~"H:L^K޿qΨA]Y fmoif?ϒmCtC"2/bY=  +h&ꬁrg3 ժ6UmOG+*~#Q7x3/V?jltqNL#OTX=bշ+ sZO'@Aʖa5츟5;"hJP8j=֤}D}\;.FOi|d!ie)5:?{|MX4D\^S;Q"EF]F֛OEWh'F `~(sS主{/ɏq-M]3'ʻK(uwz?9 +in*I1<~XhxPpio̩򌛶EV^l2%+V'՚[Dw^:~X6lvw4v,[7a۟B>l)ȟmUk S2YP;[b=}3~DEzoE2Z+QѨYh/4y0/cXmb qM`s3S_iV֑Vzx\hU{Q*ÚDǽJM]xJ74Cr37gHʭn^ƪ,-OXB|?QEoUe%zjG^>+ΓY}zqڪ`/;٩mBF{v'$ 09K3l d&緿ݭ,$!ž{=̎$Q]]]!x]be@F _6Xi_R n&msL\ 9,-ݽFc)߮3Aa1i0+}&䜑fDU4EW]9)"T*7n^X8¸}ʧ-t_ߒrISr ]+c=Lߓ/o!O"Ivޯ[&kou. +FÂ7𴧓d#إ/[N4Pf$ N/ޢgjT{ASX4"yuӎJ{*&ُn\wtbjT-Sh|VZ=Tsd] *YG<[cs6&!7SSp_/ǧoz̭mf#?IAm6cxgݥzgoLLn-bBS7Kw$BS OXm[}PixC;ooP?Gq#9I4,ހ8r/W^^n;,Y܂߱6ף#zkCWANaXcNp&QSo?&3>-XF84vO6WNb'vďUn>=.1a{b6sev3 i\/c}>g bvbr:f:isP#5RS^ 7xiv|E?fNζ!lwpp`R@ TN4-xLb,2cſ܀dh Mte]fst5"oQSxܱ=WG*ϭC_mͦbKBV.VCS%?Md] pWaOˎӚwġ䆧'eyxL}kD;o4tpg]П! !/wSޞÞ\o1o[НȌWY'VHBv#L;XυȒ'BږN97hSĪL}.ȘD$nzA҃|2f +6 nC 36N}5s; GіzlE'k]}~Zزo +5B? +-Yje{)Yn,pv?LMk[vх:|zi-C8 r)ڀr~fE5Wf}Zkjݲ!.DtoY{wkSx't1z;Eڳ{#L)FXupYމ7A3h{V𾮒q#FRk! (<-FFOlz>mώ(h8bݝEi@oHx2@Ɏ{M4TBnSs/Ӧ2CD=glf~lOW7;)bҪEa,Ul=~W~4e;żn,9hsg|63DRwlt7j d&;m픷S$w*|=Vj©IϐZ\ + ۢ'3Y) ?9lAm"<>'霚䑞Y^ A\$Ť:ՃslYD`kf۱y5fGBQ%G9qsLj[~cZ +PhKAB? /Mfdz"I*Ԋqc9K固h 5[W- m+~n +>ُ$/" gzqXHt:ޫnkd[+2X>L󀻆5wƨq-fifeh7 c2:߈ ~e7i$B`v52FY)1m|76QhVgml`'љ.6q +3I@$9hDMDw,s+PmޜF!ko`wXɆ=I/>̔Jy,.͗uC=߬$ Usz6?_X+u|2h%=F>i<.'t<'8n75h D=)(!+(knŐRdA}L=yx%J^8@P#?"é1A@Ij0pԜ ZA b*AKaE_A !Aя.H&0EWHʢgí`Lq}U/h%bP?‣ R )E"P,7F1)S\j;/ ++4IP2;/_ĜKF^Qjh1rJUeQLY0᤹ߢ"p7q̋HJl0;*+F(VgC"Z"j" CdǤ!GcF&4",4:-\D V&Y*d]ڐ _*GCn3Jk@41A2QZE}PSTksśz=yzCf%>y*>P^H~+|P\ơػDsQ a/^ te^sgJ3^@!g> ڷSҗHgՕEdE/Hzi'܏A#<%uW?>YJ?E]oV`|a%Ji霻 Lv_N<߶2C;um"O7Up/j}YX赛ڀG*z$4M~92Xg"sblfxj0wVh挗Pv#:͓$9ErHHØ\%ݎf#d1}j>@bG@ حDKgKC;gI +2!{Ģ7 !GWo'4˩F} 0CGvs9Is$e54l6Z ,2ԢyLd ud:cdaFje2LwZi0G^C_؛f;LDb;&J6Q<4)o~xMJ(fB,$o@"`>x #/[=&K]|-2u.x]~qҘѷe%~m/۟gL Ce x*9lekNäe +.v"ʣiSngSn*Πc]Jn_|Ji"gB Q;3n>r\?fy=|,} =OPDq~Gx#[j:Xex<QlʏUdW'i.F,[dcJ7Z?~xT"e'o7Od^Ʃ>W0}^KW9Vk(]ʬ^siv;.<4Q9y:4M^DxlP|B歿/J ӟCOy{JW8<=68ufWj"SՎL|j<%W5GcAˠ.][2ni wA'k!Й5+"m-fe09{ 9{|SO}0͛Œ -l +u\/Nɷ̗ϸI2V1UܔȢ%V?Tf=K&]r8mDŃ4=^f dg!ˆ4# $Ud|Q`Ѫ=swS7k 192&YiI-m@~a85g\1%iB:,N4MV-دew!SH9k林5E ~i-f&ylX>FH`Hё(RGk80@`~ShLlH]3!WEVu[e' x׵=S~b9PpD4!pai|n6h |Ӓ?Qf %,)0eA5i=b!lX@VʅFosY;"\d5_tu7' +Bq‘@l׀m\!M9_~LѦQtb7w~6BC."qJ6!Lgw9mrNrxp"oBdcp1ЀF\DVj4;ɩ5Q\|MGj)f6`ysj5O%kN3ޱA*ߧM[q23К`Հ{ns|ZY>_8ݮVsWLKT>jV{]3nn5/-63nv7$Qy7|.-l`^`j1[s7f{:d3`x%=H &nxܮUP&ޮwvGf ԼQSc]GOU@XnA~-[)Z:* +alxUPQsg=Ɠ V;̜5薙.|LNߤ8a~;,zU->OLNT DէבH Yve):/>zcZ4-4ΡB v.ZX+e~pZl !+a)T{ +T5U~fUXÜc噇1lw3 +TC:q!EQc`-8붕JeCh3#^lw{7WxcU5@Z*vl籙i=ٌ+5v0v8\""0%R$vU|4K됙Tz;secp,io|~ys K8a(͌)tU4| Ix{\>z'7R y5ěT3[u8uc]-Z'O>uL0NŖڿөB hXō]3Ӧ-5}e(I<G{%Xrwph},:Iw/D)x7'yGn&Sܚoh4}͖vXa05%ԣa j"vK#63+wa'=t#A=Kc-_,^bV6B{Win#؋$g˯ݯRXI:rSIac9-5%Ms4b"u80Fi +g?k/b4|K7@߉ٸ`%ta`k?Ryat .6yd &)k -R=<,m|bm|F9{kvieE&"QiV(!0|!+/eVbKb. +7f ֏?X_~v`# + Âc#K佡a`b]xq.! Xߏ'a-E5O=8?t{Sٻe&;y swD#tI^灼1iߠ-ۂ1[?9Zbc#%2^aȄ,$~ݟculS59K269S-쓽[t{cI,sX&+ݢ;+-u-!Zn?<# Ӟ3FB] ]̳&CDb;Kdǂ4#`^ 3@S4X@W4d38/ Lη+p'<*ƙt +{2zZ8P5 +iȆ`@ [(a-ѰcL+v)n":St=|闘I+;C6$edְ|y u IMڵ-z_-RPI/h5CʂBvzW\B%MWzK<=料; I&C/KAV(|F ihZhRi"j7s9).p;n8xIs$hUrs3dE91F易[,79M3͏-יuv, g &Vɲ$2lPFt7{4(kjqTP_$OZ#rVIzF2;\$~˺EufЋ}p"pK:cQyUSEq W<@8. +{r L:R΍xj!~hJTْ_/ v\\o]y]A"HAP@'D!Nf6`##UXڐ%} h; Ƞ<"O7؂]K"+}Y'wK6 a]ID8pP " +-OlH>b $|̥gS~0eykj8Bv: F.Z~>NCJҫS\V*DK;rQZ](Pܝ@+LE@Bg0v +н[zVB_zE$ שUaDvM؇'Ҩ̕(GBs;XhԪ<4+TkbvXZΤa)Nn4M^^cߋ]n\\B +B]q3>@nKzv/ dq t=ef@.e#R{g3҆^u,ݛeͧW^$`ǿv5NhmUf<]Fal+'*63eP1 +E'/UR#ܔr3!Ce=?UNaMmՏoWY"ǯrZ>& {V9ޡ _ + +R#%l>~֏8)4CJ(b4+퐵{eSӮ&{9o`BuTYj"4r.XPM-{1ɲU5tq5U8SSiKBSSl|i\\ͭ*6^M6Åh}T~H0!SWsTlb/(Y8CհT&c49U6ouljC=jIvezWk|O{( v>YIuv>^'~=|ʽ|Bsv>^'A|ʽ|O +W)=)?Dw}w|qg;r/e]n@+tUM%Py/ߌ$*Q1&qrU])o.͈ c {Fh\|LaF\r3VӊWYoVӔ6/[DB%hU^fHE/5񩞡(%ou$"ఔ]JcjCOɊKxUC׵q/$KL7Ś:tʓcKmw‚kCC7Lɥ}Dnԥ;y'V9[YzKɊ( {SWys'Rͫ^P^EeTbcmbNQmIޒɚch|J܏vSSxXyEObNoQ6%*MoܰR=kx^uY,'zJڞROGJ!lc5.3De%UmDƋݩN!,ʋ$ԙgs?uXr HIK83Ry ^A9g7O?uݴJCLa .G#Re8?D +Qg¬: 3t8k!0g*O1OX/EPz|[QRb}ni?bAgI7BH7f|peF0&&R0&VHU; %t(nLE="zSDћ{Wa2! ?.P?zJF臻%ztֺxÉ7"V}tAH]wOC+`BC +j iOeө']1hmB5c"@`r! +b5p7V dE]vV $ٺx]bX⧲&Pŏ*29,;))_Vb9`JF1y#;̓,ݙwOyŰC;<.r[Nx{k-qhmUmy&p1Mj$ oP$ {ѵoDEUW/Y c(jʓinʣkє'6oʻ#)$yGS?FGd_#lHUB]p;gBH:4[ÌnvʒA}b@6clu4AE@6.:n=<,Si:r  +#L QtԻ|\LvVAkV߷nݎR%#)f?2:RsyXa!ہy;eFQ+ڳYw> ) 8}ȵݽ+u/4mMY{&u~ZGk='Kaa҂KO}=stA +Ri0Q_X7*FVbsVQ+4nmz6,Sո}LsbXqEL_cuR>x=#W$"tuaJ ͙.trzp 7T+q&7?IV|ķ4OK`vlS>;g>[124 Co^.S>)PO^frCc߭J><='' )A!rqw)>}RjP>>钑C|D#SSg)rTw_^{r&D>OPGt8: .aEkC%Z#dڱ%Zf%m4&D40ΩVtmQ 925NjwNWjM{⽣K~Fp߭c_$POUŅzh+=9fG1AHHc,>»pӮwty-\y!(=iWqrՓZr|w†>b+Uh.;Wnvh(R Zyc$ni[F2a` 5KiK4EʕH>L +SƫF,5RԔ^Tm=æme]j{~X>1}9IթܨgKU{˦Ytw+=5{O0ӞWF$ꞽBq]b؏m-w{w~׸,rNw'hxĹ*lq{Qܿ'ao[{R:w_[YWu/vaݨKݾ7v5b6fNJd  B,ʁ=.5R|/AKX܈ȧp)RJ ޗ̈7 <\Mד buKmylzDwQd1Ji mYNqYwbsM0!>M+ėYͧ:gA$eQQB]Qqs`|[yC+rsQӠ8iƝ2ʅ[X6a5qSjH RUٵ3ݰ#(etVvoT0FiXE|=:\~ĬLxVĘ< ޗ"Duh(Ű4 {+vɳv'(jI-"-RE-]W}wO}k)8H24a)DvL^uă!I3askT~sc|OB"a_o8`^u mxqRr7U^^fS9_4cu0o/qW[GB_/!/?]nRc$ٹڥLg- +DZN]&R?Ma^]: +8,BvX4.u,˟vsŁ!v*P*yӁ!$YPV7xqr Ë e+v蛻 ?yr3I%Pi|o J<GLx!߸;c<܋O;Ky}rmdRSk8;PqaQ|2րCu! Er]JrvB*p69PN%لxCܵ,;*Cu>C>`|k)jm/zY`WV_yuMw^HV`e5;S7^S~gi0ἱ[.*dYrr;J՗Q!޾o<Կ%-s^ZVv7o~_>!^o/qcBrֽ{#PilN um)R +#?E,G(hon@L{lڢ.ǛS>3 x?c O (sPBZ^ý0vfȄmFLRB>xZK4ڽfLٻHuҭfm-2ړ}}q &fӀ3*.P + hUӼ=.J˛qR4y1%={NbuɠnY;%<@M,jw>yB;ڿ \|Q3n[acew{4z:Yz{ڲN~sN1_w\+u4ᑒ.|( h߀~+E_vJL@%"Jcp"B7b~ *]pz1vFƻ1֧ s/SVQ`7C %+?k6a S( a6|/tZy_٨G&;5?rwbfXUsROM4T`_W%mJcwvtm!B3kɢ,^5 Y{xkq~!h(H(h.!bkD}I33܇Kf`G"#rhy/-ْÛ[>w&LpGZt]'rz Ɲ'Q0s¶{*co: |ds 8= +~{^vNxiPa D=r~Yg9S*htaBi6`vH2,1 +sk߅&1[^4^1?e 9\{54df>byQTׂ:G~ AsZ%%]63y'2`uE/dK&$XNvl3bVd=mYΧGL l曔JpՐ(1f+CwGri;u#Oj!!'񺇚M*MD]`8.T h#;fMfN|)GޝnNM+ A 4·C*p,Lc]Y6څ#N[Wb] +U>ߖהKh:$ɡmYT6v [k_+}ml[{cv&ICAo16p:Ю:9#3Ys,Q6U +_b֦ݺOuX}7'>z<"n2F %"$<6#^cu#ZBo94X:|p-|ze zS#@#KOf6t_!hZFD RK|R T% aZc jd]\Ռ.ǔ99 ()j"|b"|JLK"rpSa"ffT5ĭb 5&2t<001$3DƄ}OFz֟f]n_@ss_i@I8oAq޿ĸĸ p |g۷Pӌ%M0,( q4`7>M+bVDvsx%=Ҙ[R0 Dk'm2AS=uJZk|h@zF+i+ǞP^NbXzFiUÞJzɪ̛D՝1TztJ.ʍ&ܞZG1:6uW"`XQN!4}0)?$CQnh_V !2藣8㗻WXa? NTL#mאڤyLuꗟБ Bn~6/)ty7Z8Eaw}Ez]M. s-Rxv07H ar ^1l\{t| 0i|N;ՂnOVzIe'LkE:ȏ ^niaœ&YDh<',o +U@904aSTS]RpE@\qpV4NQ_% ݩw`N; Rc._I.\S}Xf> пa>z< @E"^ɗ>cb˖" 9#pc.;G_^j s[$~ ȸckcj,>"]x"T˞we?6o/-+[WOá;dQI/_gjf:T0D \htXfJhl#@xr3pqAտGy*߿(4 +p7lB!ֳm:3#li妟g0~T#%Ze.~E]bdqF:y !+*'@f+?;ǻ I7*(mH{FEM/%P%L@y6:6Ѡ?i5߿_W/WlK_vzZ7GMHJ6҅BO*,C;h@~\DAT3[u8ucAu`T\(7a5!9]Akk,BGko@BuP +XYMeiA&\,-ڥkQQfKcG?5u0U%^3WUցPN-:)t6%}Htv"cյTzsaPȴlQ1X/% -ڎb,-VIY EіbTz 2"3RPb s-s͔yܗI[*c)<͹e#bl2個DjT[vc5q\4P:KfFIU|a'OD#z2STϨWńRdҁJWeQArqC 8So&nv2q.*K0q*dFZCE2{=Tz=ؘ8Q6IlE~!p]"4{_2 }g`e3/ ,l tEh'~(Xxi<^_k|`Ahw0~\- 梛>:]6Bp=@f~,/&6nK<V&V21eggN%OF<tVr ߱Wq/Y7q }6:3q?2o"l7|҇NP>-<'/ ^krP~a'=Ffg?>6%Jn1M5:WyҵtbG_'7ʗ^JQV&|aI@)T6ѣ~CH]M1uCh⍡D*I.0p|Np.5=_MyLk0nOaT'4bT1%ޡG]N\!8wHX|/m0nT<Ր^N}ݘI=AgΠjp$xp o@qyO'yAy+ RCbwNhXH>~B +70"7z,3vՅnྠ ‡v50.ǧ}>' f}qp@( D\!~@d/XTxAE$!c}N `3`W bLܞ w%d cxp80ףq{.AI_b_Z[!gp/(xV]q?TVrjNxTJ"ViWVflxrfo]G/*C5R:7 +¯sx9߁[|9|o ?0_Xf +endstream endobj 58 0 obj <>stream +%AI12_CompressedDataxku%u?f)3#;0PTѣ{-[` jq&lu?-zݾy÷/^7_|ͫ7o^_7˳߼xͿ_^={ovƯ|¾gp~W_Mȴ |5sjUp^G9xJ<0-?}?Ռ۷/+;Wslʘm޽{TuF +{ͷX;4^ݼzM#~|O|ek/__~/^`?7?|׿{?rO/~IW~=kl<о+?/~g>޽ËWo{czIMf{.W={{cY/^ O>䑿㷿}3Gڇ7o^Չ Ou߾{b^Ͻ~}٫W/y߿|~g~׋. *zY?'􎿤}Ҙ߅m}5go>{{"w/_m/߽\Ͼi\tse} x~0tWK_13\W?÷2Q7\ uGk7_~_WqILٟ"xMBaB}7Ϣ$gwn7^x7/{ߏO?8pL|q>.xs<owǧm;ܦ|;NrnwOﺻn3=.ߍw|;쎇=q!]`=G~aOܟk;>s˸L˼,˺,.wӵ[uX::˺7a=otoƛfYn֛/nnonCa:̇nMczaO<=YsS>|-GLلkItL.=U`JΣzs^o!S[~<42xw>aJSiif:LGcߒL;1|;2YH-$ E$nSn#۞?G1xXxqaܒmsܝ=gOT7!{i +׹s~4n[yG>xk~ptim˳ \hX;kۇ!掍IV:#_T7{羸zYC/U5t$q*'usak:i3[֧w4-tz.]<<-߰Do_|}M9ucmΜiSGA~y$5͖GI +9}8P>Zc屔c1yr$Φo2@Sp/?+3#H~) LaڦZ(Xc.zNTX{ y| q$RoM΍=n1w27LcߙsmVV}fӁFӅI~ߙt),?MGeNI$iZGӼ&hs`2;wmnLs[LLbZ];'wmnL[LM&egR΄q1ڔ&lg d:Mw&7& lv0A2r`m + :I{e1 +ArbÞ[Q=dzaO{" ,2ݦK۫͐(ܙ?gn[ݍ$mݥ0u7Rn]M6 A;;ȩP3BWRي`}>f:XZ`O ja_㉟#~b2tգSwVQAuL,)wWeoO +'W8NjiS9fo(7/IY-ۯR?04c-:P8GmqҡڛmnU$6هbl` ֍ywbwnK| yrl"5J5|6yVMK8-}bӘgd֬DwR.^qWCn7C^x=e,n01ﳁsWy4)!z!a>Lͤ L.E;.:x^6N0Z#qocm/ġϣ.p)P]%I lĶӉ|ˎd_wS]f9O[4kI;g~w!ҺM&?hӇoA-%JbŵoM-G<􈐦Xi]mch#:oOH'##ͻ aq1R<f#=) [Df$A\FX4FXv *ʷ D rq.CGDq^2)Ϟ*UXbR+݁BzZԬYFj}խHPr*^Rsc>}Ϝz(b䳏TpLf-QJdR&s;fzzgkFMOެǪfsaOzO=ĚbqɳQXpLn*j*v NPVfh`X ݨ62cGtwp{>mBeƪ>4Xj8Kxm -1&vP}mRShW=7f[Re؄ڦ0TӺn;7&xy>VoO/QhpZ<7k_^Iz$,m,khۡ]'S&Ix"-XjV%ȪMY ]ⴖaY,cX43vZdR؄wE25RTa[`jM<_ +9_:7KZ.O/E5?{@N1=|=gO\Nsn`螪C6.3% |]j\o}KbLڔ\^*9ZO^եp +O #Ga7QEæ(7JroTŎQX Yh["UH7okȋE[0bx[Ap2< A'TKwkYnTrs[V0|.?Qe~ s(2T,¥-B`K:!Pܱ8,'aIZ憉&@n..(}M_mxlmx3x*&`nfIcvV47Ok&:w[lqheX+TfJsrԮr}@=~<@ױ'>D#j}lj#r(͕D;_Zߖo۲Z8?@E,ʫ/`ȱܪ0`"6ED˂-PD@E,"(L֙!w hġX6,DC%܀n%ۛR楅sف k вb9R53*&/箽,h->Ҁ!0I$J%L}L'K?JӟIχ,N:&zeglicz T x7b.41NN7~[6ti"܈NMC9g5&HrvGp]q\MJ0KM!L-TFrtrMе2NsW4٘gBzv;z1P2;5w@=.5ћc擃۱qy\8~"\Es*`}*UD9>Wy9*UD>W}"\ERE4NsDž`uDs|Pi<4;p=84;9F8Wu"TAq|QCAm{QMʘ#4Ynӕe: e[dѕVfP{Km. !XBa +b 2+\@2`ogZ;,l' :oθθ +^iظf,'|\dTuJCgiRШ<ۂla{*.{nֺܴB!ɾ"/)TĖeżXZapzЁh9m#uQөڴxNm+Mm嬺Į[A^u-ϰ5|k{ynErF=_֣_~!ikQ4T*֝x?H:y<5t_oGc*ӴQU0^R.R9"&pBESCETB(k뭸5-%].Zj)(kڨ߅>H:QN'{STfoB3j%iC!>D;2Gaf2_ٗ2]*[j0:\<-Vm:De: q{bTNc>EǞx^`Me\~`XjwSjLZ֜3[bZ#o|zHJ|zuyr5 VZ>m8??lOlBH6ڇ.ԜP6c,ᢻ} +.L(${?zM2fM'dnkimbffFrfgF8.M&jR9:y7oߗ UpocxL=qU?Q цFmzƨ6\Am/'m +{8/JG4ٶd==f=ff=F=%ᢶyymyJKҐmӶٷ9lg\l* t|x'}{#ss?q' 6]w+ddi~fz{[<]glk?=hL5l]KvOC] u9-{MaݮՉ(x `uyW]UrrOs#݋:z0Ϳwaޖµ'J-.0TjX3HÞHwD8<p9v{͈l]V]2?㞺˂6 +;#UYh8/^B a^D52|F> ;cIyd=mg7w/_ɖ䷿|ߒg޽xv7^>6Bϓmxq?5]뜮Ҽ\j8po??Gc_vm~~KKxU<[>y5c`<ܼ}wo^?{ǫ:3͛WW?Y~ۯlW/~|׸6<(po=c2_ٖ/LjezevI~z1;~^yHWGq՘8(ھGuv 0n\g0x%f$Wkl@k~~Nj LsL .;3d]3^ zvmo;3͢A׶?^Ӆ0X&ys/fLRIm= dn;z=|uVW|ljs2٠`Fuyżko[&f'S榳Ea SKmtj'$z#k =hdU͊' Hdl{M'hDPl#6 t- !/v1l}~…X(KվejPgn[:O ldF.p[ўodizf$qt>K@@mQHVSo7<3^d o7R ߌ݊3aFЈtsccV{6pX; ͆;Ip<_Nȁw~<<XV-<{o"B?0χo'C2J0ľ:a;V.~2 I#m4l_HOdt"OzSB@z3LG.a˨ Oly+7A&<\g 5ds+>^ʈ: F_"ddVj 8ےɱۖXo@EȝlB& dLotl>Vze^3>c?`Ck&T:bC[bUQ;1\YpͶ1 +[   a:S^-l:AsSWZʆ6ِmj|ߛ1_5aL!LXh!XT0^I6>UonpLdh[ĜSkڬBXd'WmI;ɞ X=y2J}Jl-c0S0:9p줬1 g6C,(N>8}Y7]w Lbp×?l fj>/auQᄅKnDobSxM3j6N%S(UemQd&>u5mݒ K 1|[!VfD8b(DlWc.AͰEK;cw;dbf8v"\#|U<ihYl|ӄ)a- +sh>Fh `2P}) 0N-申 {=Ɓ9_}X| "8 +Ht-8٥^ H?ӳH`!l ++?O‚.F!Fu^d蹛o6"r !$ՉF$lHn8(VH/T HEOLg5dh$ U.t|`|U2n.m:̧եL֛"9U Td#hnuP0'T* 8d<0C_*qY +,.z(YZEx,*Hp ҇B= lʍ=?޳@P moaH&7sW3C=^y&-zC&<̈́huw{ۭ 알K0NP7. +Z0%X^LmV| ߪ;~uMzQDyӸ9ݍ}+̺;7.ʷ')rU˱Nj3,geNIY,I ".;T o0bVB 9[E1SEGHij&&ϰv)z0m[jXS x N\wzoU#ސHgܭL_0b%p Ӂz$zS &b' RI 4e~D_ +.^\Rh$mKd7.w§{%-C7wM8`fia\e UL}Dd CP߱J3}v#sL3*µt(YO`2֣)+; :ba Daҙ8СL?"uuÊI&6*F)b)A8yK*f0Bz Rf4-Y`KjCXb#nJOU܋?2, agv~õu#N> [Mg@NXl鐒CdHRVq %V4o5O[HvrkPKu>T'qTV!^Z7U Z]𲝦%ѦI̛اL4=O()Go)l.dqGgf\.pE{ >!KU2)"!qB}c)+CӅ>-2O>s;߸f.VߘNgݪv _Z %W}r^̓t^qLX{JΦ 1L^ï`YͧFrPca4N#-2F<\W>+H::]/~b5X\9S_6>:'hI^V֠>(yK{ >[E{f&$Z*e9z* @n°ufɠ {-a/t \wń;O݉#{(=b pchap` g(І`ٹ:8pDbnhI#A5X ź_'I:\Of/(׌w7Ğ>ffAPո΀ +uS^&}8"fNݜT4#c޸eeqfke>3H,u 4TRhΙ`!3%Į[*|ي#1l3 "X7=ݠuf;ʟPLD-lb<\c]qtnn{AcNR{c!􈹭A򵵰ǎ@ OU) 9G+d9BǮ77&C6{7.Yխn10{q#nxj!ι6h`&.3UcAC˝@7\rɋAYi=Xa!tu3|e(ɋ?3ts]ߩgq_} ^z; GJ8,l 1cٽa3ȶTk:}qknZTԏKI2F՜?4iN Ì?M]HV/:\ĊV:=b:xKƈ:-&+_/  2ڽ5/(~BPn"qM&Nằb)6[,~VELEϾ/{݋gbg5ZW` +[պU\Q/ +rSԌ2WG2W_5e2W=C-s22! QG*е"W e[1\q [Ըpz"&E+׼ 3os[j|0G+n41>5nJP)rB*re3ͬ(r=%3հu*EFO>t,1ՆW\Pic#GN[G=aybCW|_1G]2׾ C99\(s}l0;cBBJG׹P  A%Z([@ޱ@R ȕ@ F +05(J -{7(N"P`o-!P P h(&X"P b@A DB`(^)iC[ +.ss9n@ydm*9ϥbH pwdٕ`_iscʘȄw:d8ʶ\,$L%#6PʞhTtE 569cQe ޙ%f(oh dz[7 +mk18iÈEF: )jj%jpʨj)w7%3GeQOnh~Y)z4-D @0:{6iށ xUl_ +@mHj( +`[nq Hd htև@g8qFN.tGy-qV1QC- o*ħO"֧Af; "$ 8N: ]-ZTlQ11ëDB(CU1G$V$Xt 3{>eswuL&0ҜW)im h-<0`I;O0pFkHE1:Nas)#J]`ٳ*B}C Yx!D@u 7o`"˰BDY{'[E͔VaV"'XK=4!T썳DsfTZIƊ :wTYSNP0:Qb]\ 4d?H-UՍ>X&f=DZZ}C}f)j; +pbBuBj12"u*jRjtY>Y!oFh"H 1{ Q0rtag5L3nrU$5~]1sfHxًSh}j`B!\L{(bYKA`L!huN&nE:ޞS|h71 =׫˧?aÒ~O<|`?LSD D}䟕`EQ]е=x={ '"4|XEz/B MPP<CYD*IQlRJzP-p)+) XnKotUЉQkxjk}.SIPBU ږnHeDCax +R +١9.`cQ +%]0UUkSWUd=,xx[^ukmBc['٢R9ILuwg*Гċ> ƦOS*(n %7R͙mMt)~ -bs(m!U\JoQQf=ToQ*AP%RT[*LEkTCS9k*x"8H +Z-tԨ-:*v2_Wk}pQwuE%%ꑋ+[v6b$uŎP5uQp-k)̖ReԨ[O[ .#IEaF{LA@:+P(mQ:x@u;28q! oat6 LÙ|szlAt@+lե~-FÆN=hquONoCuYm9`DVSi +|.UPa۩|#E*"YSY@K VGM +<7xEhfu@P.- +ڱLjp\}Lzӷ{+445E1ُ7`1njӀUjgET]|{"$.\$: 8x?LOʦȾ-b~h#@YԩmPwS`hA -| T0JD j-D ݢ4uUl=G[}VBb̈́vfK,VͿV(PWZr4ҏ턑-)?]H Ѱ/1v-鵸0W:ubt[۳5raCw-%fA!:Z/ fde\U Ȣ{A(p@m4ֹlKzVKS]1@uk0#|$lxk2X(|e.~bJ@5B R[EM5o[GipΦNH)UsT.EPQ]+_/  2ڽF'znO ֔h hڴWզBmߞKWԏqrfEȅPS% $Ȩ6WH.VB!Ihu!PV@r*:l\TZx >w bH.' \Ƽz$$Q d(2!XwBSH.(!L\PiH.OP.@` :hrl\b +ra.QksÃr9Ar92ϥ-I>᱿IM7BerFy٨؋zxp]֏ T<?pͻglVF_Z#JNK>A;0hpI2e6#gs(=rAPF[6` ]&(l {2۷FyX'ĝUO>E⩋t( bdl77#;,Q\ =Zu(Ƌ1SaԨ4%4f"jxRiB1Xr{]z 4:D."˃A)Bv6 C][ i ǥpd 2Sw@A./51nt}=YWOC_%BiFzwͭrٰ8i3t a;!]P Z{C\7nţ;wuYZ\ +!<z_ıYfr Y?Jb'tY  ݰ); 5(UUOvQ>SW3 ڇ4W;NH ԡ 9dX+=_/Ȃ0LXREOdl@'Dg `flGO@1+|.;s>^:R`'L;b{~g`q; ~?a +gGG|w Hc_nD_.g4 uIAJNOn=\XZ#$D*E\ hgUa9UoΔ dRoT{C$t ݊꾠E'(L;:ZT$~Q,NaH 28c`M)QdN"zH}7hvB[%YطS v"89WDߑYhkW<6P,Zwv(#)86X&4{$ 2O&Yl;qrktuYBu:,^A"{qph%C02 P>/ ?*S*ƌSE+1Jue u X_wY>=1DB]5JCdh ȋϣy7$B'4,T[#"V*h=G,E)<ՁvKT +kKՔ(̒}_t:FRAɠ=-BVkjF)=Lg1<5';[L5)\] +W˩aZw5m؎KM*EF˳tM4iZaԑMvm+[O-Z^bomoZ.v 7mՖx;j'f>|ba_xOZ$e&(L(S&t00RCIě&Jb+*ՉQ2U%wֱ\-"%F)C{PcJi`j"ju)%a9~t6$ߔ&>ʥh)MA[EO]DӨTF$muK.*UAm5Z5L=UjEIm5rJaCWXY1ۚ E+BjP_DQ\2j+sGtHMwe=1,,mM15ͦfŪSSs0~XvgR<[ 7:(VeY,mNsFk4¿WueICڱ;vOl =\;v%Dk7'3؉hݦ6?mڍWO͸%7Jأiw0/^H704N`' +uYhuBSw]c9A$ۯN^:Dje`zZ C +X܋96C,mr-_~żw脙U s< ͌EA>D9f(#^yBl:6V;0#67jFjliڝf3=H! 6`]Nf2ib[&2KB80 /Mc$+WggUm1]8gMnp{P-!Pц=DG耮TD.nE +np*Xqr T[Cav !al0CfSQG3RѼ"Eo 7|f2W@ghP/,iFP eL=jO&hЏ@3Y d \֝"!D4<.w u4COugF +2F1cX$T@3BZ:j6ŇAlFȺZoFA4P3 k^p$)@)h8m. ?0-Z y,i*pP'2?prkS2"dyadUci~*z^Ph4]T"ˈgՖ\"abg9E1˒jPIː +S Eq|tdk zNQ 0bFY9ɞHӶTf7!8yDP(mk-DW޴*:~<^gR̽ZF"JfWFP(хaLzZ ORp9_JCo[`% +ə.nu3' oO@'J?P(aK0(vȧ=%gl;GS^TayZm|r!yŮUK}SI+[|T.-g\\Ysqn[/dA%.ڗ\961  $ixD+ȐUCVQV$+z"٭{=(th ֑RO}(N$5E3ggsF`I{RUFL:[ 5ʝ*N'5QVTOgr(b*(mWIi +]bR^{_+J +ʚP7  v|[CHkYLj˪R5'Hzr&" 0kh A٬,h[ i +a'|ƠV gY,\ݠ[3^]e﫳|jA:ԫZ^5'B](Zc˷>i[wWwwx>,8yގ.B36Ix5n:J%k|eZZ4/fm[z蓝@АRO;N.+0 LFvU(ea<pw}q,VKֱ>7owmmfԙ}溂hTϥ Ҵ]i2B8>o)}CŐwؚR5ִv>jjͭV ^SUsKulqY~\ԧވp.furv96Eon=J-M0mzx#YS=~_; Qz3+%-DZVڴ1dlFã-.tm*zBjѨ;9vqS1!/8etA=c,6Sy6 f-l Ig +'i u}O VCnVǹ/Re'E^srV*vV1\=ۯTshFքt;jH%Pj-[6ر-(Rmњs[g{B= o>}18rP^5~8;yBh1. fL%hP] +E L@oG3^9>i<~4~ېcP1`E-ݨdͅel}T[v1؞gmQzY VPL,TD&UV2 :* j;JOx.IO^*:McΛ0kEy1$bMޗ5q>u O8au㣨QuЎX8/!.U7np=Mu;s==R̢83@U˅%.؄xtt!%;<v%.%dOp+:.q|bI&Ow*ح%3nDt-E~7 bs@XUw`/+&ϙ!fE?_P±އu lce0Yͽ4 f){IHe<=f^q+'X؂g) [eb BɋȹbqR?5c8._NǷǼ{Gavg{(ZFÔcuKXz/)m2@nrgiL9~юg@L@<ŌX.%WeEyqK'7о:hv]]wDmYm쮋}Pݚ R9n[KJ /8MR +5o:,`.T<u@d.>*hΠ:A헊5%c[V,f:٦o',hO ]AL7@4rzv Q]Χ~oB{&0nq >L#eD^"kTA”\tnR&XȱTc%UHVF{$\hߕVpBu *<;foȟ}s`42v#ǿGx150Z>}~diw:N:?I;€o$8T"xCjlxRG< oF/J[)|{c{ǶWK,c*,APo95Ĭt8ym*3 4[#QBAXL}_1%(CH(gLFX23 ;l+sj.,dLJIsيd<|}XRDrF߈dps$ѽ 1!!48cHH`!Q>6pTHx"D2t=DGz'DBxTGL;'T%1D;wB#?A9IAoe3"3Z#_JpSȗɸ 4T#.\c`kgzp.Е.KipNFc-y+K(CV`E#A/y^e7콡`1)GPh +VNs13`0 7;Dhd؁\H&۔lՈu0Blta"=c)_#.?S\&{FDʋ{˲ɻ;J%{c/8St`4;LS +zz"3elb '+ߺz(!!Υ0ܠz\XS3&Hc;۔ ]A-wt @Ffv]TWSq;"^sW2Q {Kư11jt%*p9*gOn_Φv5metvVL%Oqu(i_\y q~+uȲ'ŔkiN-Pc r1d:;Yq^ptSд MC?tk)_J q*U6p8 1[b_N='XnRM;OQѲS+S2ZE6^Q5^SZ1QZig3'QAaҞBv],eP +Y,[!M0[1dVȌa,nD:tA6v3[vb)th 1pQ)á-sP'[^bƅltַ dy;<7H:L[~01 K +;ah!4O.ف[kԶ.kbDkH +~!N7}̦ZTuBf{^76b8^^Hm1 ij?"rWy} cR@ʛhxTAMqI=(ZH䨢UFT +Hz+" _c3*POKgPXGz?@Qh*5tzQ{6~,PکZbf\k)tF.݅zX.z[P\QY}J +0̪") )*HJ0SbhfjRx-B +`Qzb|;y@GYo<*{1oh^hdU+n!#@]!#BF2"kHɾbRĈ?]#~z1"+bDO#~"Fd}bDO#~"Fƫ^ [O 1Bӂt !iAFZz>܃?^XS'yQ $+< )u?==!4pi"@#~ ^Į1ub@1 77&\n8<" 8V8!2֮a'L1g1o + #Dn)wFX"Iܔ2knA]7G@Es;(XipJy?>*P.p0LԤ <]1L&,Rn\L0HfַzF$N( ļ3}*>5NPV i2]K2ߜQH_" XR4N5*7buCipI}RQD;AV\\y `?s&Ql%4"(c!˱8]Xjh%ss*+w+,9O#66s?UuRikQ}7 ]_4N~F{f|m+=]k6w;M}u`՗ihSy@''Feכ~ RnI[ ||XZ귦9/YW6f=~kּ)!:a=o9"tȏ_Se38Y|5Gk*6aAƐ~h 崆:~sr#[o镟3*߬YH;RVZITU_R./31~SꮮSdB>M0D>c҆g3M6}RM~Ll"4SsN>.mmv55P)NJbw"sOEXCvI2ui5"L +Kimk:ɱdn^;V?%Z`ӑAnd8+gHc`)nNB(Gʵ3ѹ.\y` <<5zw t.{Haw#y$gB(꽮}>\-p_cڻgNpQ5keK^Ox77'I'~>v׬`ބ &جAKM~Fmsbwm41o۬Y4kۮQ&KqwԝH{3Tcwx&2&32iFeˊT =UJcdcT&S[q9O2w%UɬaV*U51ٗpdtzyh,͆ר*qqGЋwh(;DM7XRWj+G 9Cc~ez^C\K^5ďRv}$Au[I9-Wk 3Q ki|%ڬe kb9P.9^Co8NG +"&/yh5W3W"`f/-.=K}E~=xiU[Ai7zO_~T^9#ҼneL%ԧ|qlhcZ}Ft`Tļ~-1Q R蠉iRM=<ʍ {̷!11/3 N^&71oLwt*, }R+ +ԔK#N~ǴqihE}bNʹgxRxmi@_%*,lO>dpd<pbӅɧZd}_#R4.\QҬt*/M{MߤGeG? P/b7>rK=^XmH| ^[hzuSsM= +('t7(#֞FG *Tn#@qIw+ eҝgюc$|EƁ:iˋ ٩@D(YĒmCxPz{>acxDmEm!Ѻa cu`bVo/’x=yA|Ӝ72SKF_ Qڜ2sYF|딗3|gƙ)69g:m9=9g<*r1\~AeX21PW 䂙YF:mX=10?D*e8sy2"93ܑH|Tf"PE"jɪeVq^ȆK71n\:gҳd~=iXL.3 tGL=gzn2[LƦ"Su[ߡdv70[L(2ʹis\e:`Ď]Z&^.yn 3^@dF>wүvw 2R&;i]Vlk&({Ὅ;EwV{:MD$!`D ,h^STCN +/Dxdm{tV+ac{DCuDMK~ch 81w#"G㶕Ӹg|X%5#_GlYj/`:+JA3]i׽V*7d]azMnga+2%Ú8%R"QvcWW\Z8.<׃: ks8ô:֠ 7>* _53%{YvCzMX~__>,2"^Nnݯ4D(@^]Q? + ڎL Off&?U~<8.G}~IEZowze,`:$ۿmvsfٲQDU2i̸rXqG+MY&?uv2HAwEBŀ# Z/|bUƁoUƇZusrb\˗u?uy?a!"zs)ߧg hqdIdThYsZWQGQN9ܞ4'is+?K#qؖ~y ZWA*_;ȬVڇНf7{4nкoTay?"L8sQ)8}.Sơ5ߊ&9Sj.bL`0@K*gوCZ;^^[Sog|)3j>rȜ{IƗ| t\t z瑩"Eғgw +TdbBTfkAaPReK2%eVE\:}Ɍ +WkCyXSkГ y~)ZY f|mYFY:T]a=(YCx=*ԇկ6K&ē]LjQô]dYi4^Q՚$>{ Њ%-P|бݝ.XA]B38M~&52]E?bѲ&q43SiS?QMRL (%?n֒f+%ל#gw1 tG1e̪r8Ѱ@z^KSSg9cRx~±PuW/veS^UR}mSS}lϒ8_oܺ</D>y؂(FE-SuWLVf\}<ϭQA)O\_}. V8ZPq,VuS, /S\Xfy\_DB_o쾫z.\&=~lWC[~zW> H%DrO[LJUTOKթzHiM͟ +uۧjtqߐ?qͶyA8jđҠg;}ϡ[h !MoKZc^<;:r?~~_}~~>M ?7O_ocp5-~~]Lb})q:=kW |o+?\͏c7?o9w5CޠMo?_?/|7w?/_?aCiBWe [[5,D? Xm^ͺ|_ S?9DU޾s^ʇ~ȯS?=׃}D9A?[FyMe_K-Eh,I~Vͯaݴ| vˠ:ޯTFNTI")x +43)QM8YgǢێQlHi=Ŋ&^IvxJK7{I00]UĬ$V&GifT,<ՊK;M(/06Xv#,OEX=y],չaH8:!SpɦdFXE6"uCd{߇>RJM +}uu1WoJSC})2 ;,fUmzK aicVH̡ ~e +JLn,!-yLNjkGoO8,vk0S.c,nl 2~dUOeԔq̴m2!OLt//mrFj(nF>R*碥# V]EɶŀATYJ':Ho>Y` +]R@0,;Tv* wSMvf#j?{L+~d%ЃSCH l0j꯭6f Rz7fŷ z08*bsk3wbfu<~*e\x C0Cn%LG:v +&7/ú-Ġ//0\FU +V.;~L^j[GQzy!)rEͪRf)5msӼ;m%ڦÖ(Z]|T%GDD"7fSU`GFO;(eOO#k~nÌLIq]WmC@ ^.Ò0Â$*U)z˸ +OaG| #1uJ'.F n0q1K)w47Q9,q K[e"v.0OePsnTPبy)[Tw/nۺ +o3sYޢoad z4ă0)W!ԸmIcq>Ŧz3VG_rmZ%qli2(SyXu.մ6a G+{}KCO&5t942̐].rX +E>wzTb7Wݸ/dؖR;y.A7e bf &66'D(j-^ۄ'3|iK Wd|翮V)hQ"_/wn{Dyf9ś /NjB[JL?>\E)4vK7IY[-Sgs,C%X?Ϭ42knͦt5IwVF2u@XjjNClP\$ܛ RkoE,5~7 ]O+Wb#G\Z nzWLwOߋ~I,@-L?Há\`]EStx14qhsBQ%z Ut)ȋ,#Q2憨Ūc:+J.:Ku5gc8I957/ևuu JwodectuiSh߯/i-lkx BnݼZ (ZrF±n$z[Hj(m_bрPdoHYk`Y/uWzq.yM/_i+iʘW=I.mw߶3We/P,b"/iXNQ󉫎"u1\lKDwkoR +epX+$gd'f~Ό^!LKas*לD\- v2ܚf;@rRv9N׈ZvUs#ve +1Hœ<&# 1 +f@ - (%Z"sL^فQbQnlT<J3W2 +ejt\+,#ܸRvHXVΡ1Âqs3ңobƤkL3Vc=e$0eSJ$=LV1)rzYovރRY8(}j<}S:r#poU!!sxڥ-Fmra&d" JO9.*Û2m9XֽH{VT W; 󧶎=T8,Y7-yxl 3a@7?^=gL2<~jElSR&M|ڣEaH́J,3 +n̆eQ2v2HpNԋ8d) rꉮ- 6YP۰.vy$sjlV<#fmFQlu5JV85=T;Ë%|b {] eBP ~Dv*Kh֨3ykv{=,u"/D?*rMKF,yC?v0v,ZMy[:v=ZA5)]+T`^RlEN]4t Q#8`?Cps[y|CGL.ڱX"Y =QɍCK]e +ļa)s'LpX%'ahR~]ի*%'Ծ2f (z C@.ٺOJ{b}=@jۙ ݕf!?ӳ\ȼYr!=Yy0l~Ѱ˦ '_HURc.^}5\XT(sKnZ\a* Yw߻Z+E-#b}Ҳکt > qX,Pڍ4Lu)g~cgek_{qCY>x +nP˘NEs&v̾YgYn42,S퉟)_p,d 87A8 ++fZ=I9-bGD>.y%+N]ĭX-W^tQ}ҦHT{cz$g٦BWJ8{Ϋ␝4u;WGY ~:n9vd-=%!Y/ì!fQJBꐴqyҋ$IMВThT+V"FΒq8 ܏,h!fֽcdu 1A.CW u)158Ty h"f2KKQecvT, +X"Te5doK VMwٸ5VYR$9JHIBB͙hG ~2:RzűBTa5[gzF m%>ҏ_Ik/&[{+7=?-bsQ3wfߔT@62:͈DܼY|x<_SdDۥB6w❅>$㞒7R|+TOŞTK| uN{֯hb}P̄+Ye33n0W7U^B-jU@jR=Kg !!AvWg/ ao:\I*o:LnTQhqTOJ1ުWʴ2Gw֕<Ow\!pYXZH߬UOpUyk٧ڈ1 ~4{)zsC|:.,6_̲2UWoSC>y 5 CiVjrA2QMqF9 +J6#ҵ1o۷dǷA#~w+TLA\]vfMF6U +#u&A9BT嶺_klwV)?K A[a'r7in٘]czoU:y`B\& WHެ۩JW' V  4yg[tP?kTG{hn,vˣF5KRk + UN8)g[ }!@5'Q3s]V!lfLPڪPH{>ba2by ,WzGA(av=ͺ]tTrkAbµTfvH((:L>v4SS fA?lR|6M>K-gxT_f!<׋0]TΓ(uDBb,LﶸE,ٚ|Z_ colͧi \yL O(jwݏd\-oCDwtr*;}VaxdOhuGR4*a~mV~1LY@a:,yi|Shc2PqpmeUmqqZ]gXpGP] aEB_TEe83][)q(0`X(U O[8<%Z)5dJU8U1C8黂jm`_.s,.P: Fb"TɆ;MMS'Uz%AYN=`vr2vBDFF(%Cۭ=YG%_sf xb>pQT׺o[kѲHj\s̛o3YK]VLU"=*Q.#ladr=AgY.*OR)Ru6ʶ@ԘyU33K4eUeCƞU=g3.5٥P"D;OD!ovZȋG/)k;x2א Υ8qr+?VR⪒$*P|k⫨-Kz2M +tv3pFT@eڟxnYDѯiKye }95ㄥhb8#: ce9uQۣ,y@im/D)C>9_폪U82:Y +zi?<璮U[}W_ӘyF>#&BZtĩ#FFƎp]j) y*jeks! T=>}7hURz)R|R +I^"⍩S!4[$gLT':5-<"&&kʈ, +lJ`ѝ8L ba3է줝s͠Eu_5)'\t):㩎4:)\\0tPH~?Y8T +wJ{p\{ Š3H2hIr[Pd<yz̦ .`=sxZ x0~pwON>$M&"ccE:Njt4ٮn5wv81tgU)1P)4*‰PGSiym>̶EhN&Ѫ0%!V`hN +1*5\؁P=Z8 VLbMrd2(G}G.n"?,|yV 6\K{B/6V4-͂8TZHfdIjlNݼXÑ!B<5J["Dzgi}vRDٳ/#G#ė } adM7W [ܧDO>LL֖Ŧ d۬cqT&I^e68mFHW-A=L6 1-eD"B]﷑ʑaEKbMl*wwOhЮ)}{S5+v:ic DBuKo0qRcYMo\srV +>]fz08x̤].ͅEΰeMP%澚4 {˜Q-:&g>ߛBJefX5|yu\|PWo& +lS-]Qwgf 0n 23PeQ`1ͺ9jXƮSfu>!v*MH+/U˯6wݜFsty4Y @QTnLFUT(UDCmP,FVv܏j"7bPf3 uV-]s1,HdcRJjQ;sE%ذoKŻ{f^Sy KXUÍvm8*YD̓Nb'ةbBLT5;2\Z,=LD)☊w_kKѮB!,K7k˗YDvx*FŇefvb&ǻ$va݌;&"GUXӯ.DEɫ<,9 )0DM%,,w =V|DEn=aDž/x a80 l !N9(r,tƘuf&n#:8Qۨ:γ d>(+Uee& +cSڝd<5V1gh.+ f -\CD5Z\ɅmlB? I&r0cvݠY}F%>ˣMF9͡wP{y*ZdbOQea*R3vzm ~~:\t Fệi*?ršl; cJxmI{ xࠈ`'AH5;#uB)VEvYUk;Jl\Lk,UlWoo +KfLXK +-H-[R,GpFw>ثqY2Nm<@&,*SZ밻v*kӻKYwaP$Bk$:A$ޖ$ѽJkʙ=Ht-5Dh/$:>0WDAJdٷDZ%ѵԑ z2GA[UdgIt<1_=It* $6I +uNDTWU :ļ*n a}љ` [ݰ'fc3,: E'kXt2,: +Nݥd EP⁢C⦢ֻ舟~@ѵ5zE D:0-Pty,^#YQt>W]Gwd)(SMSPtX*]o EPtZPt]t3E'kA20|@a(:,EӭQPt]K3HS?PtX N(: ƂPPtkM( +kJ|G5*Mf gA5nEUaF5Qt ၢkOEHU(F;!hGn3Pti((a\ |T04Ptl =|Aё}-EiE}ESQtPt2:S3Vqz&#4SHt ƙDפ6,?It8 + 4PHtiMwڹ~"5)$F@!ѽ.s%a$s!a($:$5 $&Lk>It C%ѽO$: N$:}Dǯ($hIti($iHtڞ$vBcHtg%х1Htl*Q$5 +LBNkQ$:'NBRItX>0W,D'˓DBkDs$5PIt$:Dfo%)zYHt$:BN˙DJf#u@3hJRIt- +s%RHt:Ikw{#q+nX +nDNjQHtIt7ZP0RZ0 ѵMB,3nD׈+z%ѱ $a)$ay%m}HUJ#DG|8xL%ѡ+\It(?Ht,$:SiIti)$:NNNz;gDKDMYIt}Ht:e$N~!ѱU$:,PAtX>D K)1*6) :¹O +G{uODGا舕|a. :70|<) :,@t`M y( :TDvNdyprܕC_U8t:̕Cr9)jW8t,OʡS_yq>pUC.ʡcp8tD* ¡cj9t>p0W/Vu M>8t+N¡M)1R0t\Fq ]ߏ7 ]W c)ti- =Cgyw ܌A: ]?[a(::Yg 3C<[0t]1 Cץc/:U3ӊ0c躪'  Cg N{`l +obO>H?`0>a(oۄ"D,60t&Nv\NuQR0tJ?`p+}SQZ1t}0t*):Ë\1t2 cfkvMdΡĤrl3N'8tD{:E*z5i?8t+E>9t>pؔWªCCGrZCׄy).R8tX*Nk2q:.pgCƓCGm-:BICǧ1*Fɡb*N¡[?pd9t2] +P9tCglaZ+Iɡ{N? +5):xrd9tz  뵴aa(5'][9t IyؙCCG-dCGɡZ8tM +N:3#^],3˾ ʙCG lYa*:naQ[8t޽sH¡kq蘄f]¡$Б):%&NAC -gpxOŒ3w}ry3qCiCTU8t +>8tX *:">~rZуC֟wݙCa8tMwS[>8t m3NљC8|rX0 +rБ~pT0q8p:.p=1ṯ 傡Lad0G5&M Ca7WyCDOC-E;g C'Myb ]S}SL⁡~ C-;Nђ]+еԆ  & ]#N5c1t-C_Йk8L  W {еfgvjMJ`yadyb0W ]hac}:%  C`0<1tX+NCQ1tX*3aH> nO +:=1t$*nJK8 +.Ќ%ka(tBGm)NT(tޗ'suf +:̕B;Y(t<(t]؉BGVR躀o:A +åRT,еzqjuu"S躄& +BBǩB +>(tQBW +%O +J3L+g +̅BR|иJ +]_7 +o +*R NQ(t]N-3NBG{BǤP(tLCBGݓBLkjBIh +ZD:g +B>}ЩP.:Y:z + +BSADSL#gB'qBNtI#X)tD+x +g +3/@S|ЩPtO +f +,BS:7 N 3ZP(tj):7(t:PB +]WLf + +]lѪR)tw|Щ P踌Jx3S3NfO +:,BLSV)>S,6Sԧ 7P>)tN +T)t\ +:3!_)tj?|RU˅ +gݶlOB;COEu B$ЩiQZ t,OOB5OCE + '߸@J&] +#S t~@HUb3#:U.tʩ:f{ :Ogڳ:EgEAGyAGAЩnFЩ-uF0#T@Бtjt->AGaÌ!}ɇOA Ax錠kl:/A Wt[.:㊠cGA'sA3ANA mA(: EEбQtTVݰdR!]?2<#躒23Nň3 0N? ]? d.:Y +A׏"$Du3m~EMcAǗVwFA)6#膡 9t*t} ̊S "Ȋ#"\t~? .:m +N9NA"|@)b;#dtvAG VsrtԡW][7}lt+tO:g,:}Ag~F5:vAG"Z4 NE6A'KAY!A'sARtBTݰg]:t*>::%:IJf2O]J:a|CЙA7SMAQAg3G"膥 &#Ak:nlEI:K=t2,3]SuF5Rg:Źf +A$1>#%A7Yfdvjl :T nX +nAwT#Qtl3*nX +3*kj| f-A' A'͂SA"Ty"Z*N A|B1U +n, >":]ʌPt<tftIwFб Wdt(Ōk*)"::^lAбp|@iZtTݰԹ!́k^tE@ЙpӌCŲ"H@ЙVԌ˼uE]ƌM3,3,.vE2!A Pt8tT]ߣ\\tX*Nw XT:2AGzA AU3D[:"޷CCZtڞt4?tXgx $h3#>OւPt:YgΛtk;!>,:<,t]@I.A O:KKAХ5t N:j +NiBAFGt=r3NƁRt:3N::> 踾A7<KKAХ5tJyGQUtN:"t+N݂KKAЙuBЩ.uFZtf~ :=#tAt}AA@)?#:Ag 선S焠FSބc{"4f@AM~ 0:=#tA'댠Pt:.j ?!3άN3N⏂j|CIiwF@A'gA) r*zZ @BV'Щrg&:egBAu"sf]֋BSL@7N +'Nd3!u>d}@'q& LKkSf3LS# ti g'G%QDTtj{/:n: +Z!Q}$,:af]] ti dH +.:N׆@D& t'ZDSa"6&rA^z:sꭎ`w`j7qJf.!Ԡ@Q16.2q+_8 キA#=Vq22y' NAu!m1q*T2пUH=p +&@mY0 -8ɻ畄8j:$ĩwʈ[EUۀ-8BL5lΎ q$a)qHs9NBq酛G^"bt8%;Nn"LQah82~&PYph1L΅r$).T4zVL>Ze{; +g%F} ˿'\` r'iw;pKw;Huܡv; gɁ`-s +X%.pa [ˍPNE +n߮4"7׭% YMMFq_nw7 +QJ1oUe*/7e,pAUo,Dkaݴt /N*ihG% b7T7LW% 5oO>oIm,qTPFrwq!@;]<o_xUt%MG<I R~gAS8f [_+˧ZԄk7b35ܒ&nr5o*7;'M&[@%MX߸ @%эmJ +.4$lF RJ~z}^߄ j@7OUaVh;4[Z&Z鶚Zoнֵ{Fvl{Po7UoQΡn_P7X["dIKE~UkdX *vVV7 M"̀b 6}3n6:ߨ~MU8L4sK0DaH|_ڜE0:xF-oi(췴M π/nVo +1f +B~[7|/zž6^iP7^)o>H:r.7biQ){;|[hoSmF"k[1 +p(Po{vHU۾%UhGbޤZ %M[]oaLԆvVwchx7<Tnmx7͂ӎwBpA-nM_6h/zw>mbR{6 +(6mk* a6rurIll]ŶaVIb۸[߰mQ@`d؜cd9<8E$r larmL+(60o ඩ*Efp4ۆ^ 0kFq1mvԑ6V$P42R]cP۬:*y^i"ԶUW8^Xm^2ތJmSĶp ۦnlNT/m\\m=ݗ|%RmɞRv?UIٙmVzCAlàjxm +;5>bj`]ڲڔZ`!k%Qmtȷ7R^{:[MuxQڎս"wv Mz_o6rNhDZ mu#MDFl%E +M*೭WO>[̀g3M2ZXϦvgSUbϦ(tⳭDc]l*,6E4@ MBޒ\6; G-&;6nuhS B]m&Dڠ:MX[&sU;bezAho߶@T$&lHX`iQų%f}h6~l̆gE*&H{]m`ns5FY# p#{۷AdSᩢLͪO$9Mx!V:c;QOa eM/w7QIAlTyވ\bPtt urRXiXKS:} X,Cs"4"G 蠥)oȓ-4 FA ^jBG*hi,IXhiql^5#uS^Ϥ iY`҈k4.f ߣZƗ +Z-M=9Zւf(|)_򨠥Yk탖S -4V + -MؠW+tAKi:-՘ZNU*hiRԲ4-⠥q)-ɣAKSNYȼ5k.MP9KS>GjNݗ7AK#afOҚ& Oy)VԜhYfK {;>iaXԺdqMr9mҔV9piҲ45whMqipҔľyڜL3BYrEl_xifҚ$/Ao३gFK#GlnT$Y,i{ HK iz3M +35Rd)T4fsVl^o4HB3u_ +оnr#BLӮX[0V52rgd% 4\C34aF]8cr`{gť!(4J{RT*MaVm@Gpz4J/E $ +MfGil7A`ji[eiV@1+WPi r7\jghLx e@Qa{4ݛ0)Mq5d!i A)Hilm RSʲ+%')M%͚IiX-li4NOWPt̤4hoTqJJcG [UibFd# +R ,XⷀSZptoIS:)Ic_ cx09&cԧ5̘4 + n+pLcLUIYBISo' E 'ŔU3^1og\fҡ&DE.9iXT[Y9iM4me%R4Y|iऩ.z䤱B夭Rd46a BIVK5@`i^] Ic+{A`ڿ4ZNNܟ!~b2^6g/Ri2t=i(n4,v_f#&1QkP iMncER` Bd 09i|,gnk *4)Q(Tia(aF*4@R1!iVQnBtqY^phu io@VkH4U>4lH!.(4WGxFmZZ?cU!8il\SYo*(Mp%6fS8Ts +-/ (mcCs LpAI]B&gl$"mBHRO8ivD/RTjK 4&ԹѤpIgѺrBx"˧.0;S_TډaӤ)[Wh\l/VqH4"6hdq. vvFtШ +"2k&cG۫/ ؆%w"ήRaD3bwv4OZFRxA@y7*p?SY="???twt fDKf]!೫fhSh]Cψ~(m\gcwF Ϯ#7p`/3 +8ygI0Dauq0{9Xu&oC)e߅r`]&2Δi5݁lX +x8}-CvC-SoFQ6[S f -UZn&mz#0w{CP~ͨc،#lfG(L׌~JkF'gMrfYkUUK}5_e$@<xxGV앨f[:Il ;l͆{wML߁W&xfW cXpfXg'mnl|uJʌ &6'nxdc6B` r^q3|zqIr;6E3? +XLX;Œ "!Ra/9fzfY=f@0f.} ,܍&g-^yIkfjzҿf&f\ܳF-& Ů3Pfcg33aB 3<̷gI!ia f8r̓`9sD$ikN0 AINggLm`03' W +0Î߻`FqP'ޙ2]Љ_&A0F&vg|Dks~v&/&v~V-Jp]'L;]&/J`pW]R˰Oefӊa(݉r[hiRH esy" _6dVLfcz+ U~5<|pAIL+.%A/GCnfc˦fKuYH9'ìDNag!b3[-=(f,/ fbPʄoE-L3pׂif[D1 &@Ԏ0c%ɒNa6h"R'`yf 񀘱Hs3wYA0ֈ2^#LʱZց9rfS ;ZemO `F`0n/j/{A/Swwv&]v[Qq>G-Sz,8X7:,eS jY6x-N>2u(Us CB^tq`Y0'z1L2)Ka7lO2)v8g +Eʚjopo·jDZz_\0(2+g;48*CaG թ(eˏ^ܳFE f]Kc=6YWCqmLlZjRp%^ LL2+qg32hde9̬XXN3+kkM=Th`<36ɷY]Y.(4ҪWpj`&68H aYJ-^kç(QMU|8E-s ruN>٬i fYӌG r#*X04ȕL͏dRRiGjB2 gztw8i_ gK;l~Ռׁ펗nLo>ǻ|r2L/ X 6Gq*D! , *:_ʂ!UVp`ʳ0hR>SgmS=XC~̥F/w8 <4k*vM\rwA5}˻!@tv} 6`)y\^Mu7AƹdGajOI70h.$JT R6|YJR\RJYXYv$})* E!.)M4TNX\']#-φE؄%PCK tpc' &<ſN'ScIn"MWX(v| Gf]BxXUN{{}KwjgFF܏%> +p%>ڼKhRYF23\+]UByiPlzL}Gr?0kae7}}^b|#g܂yK6V54qLk]]6# o):@)u9 Gvx,>Ѕ/KY +)w8Td-NxB^ 1:h2U9Ѫvϸ"0SjYuk1ڱ>L*[VQe҂ǩ|Kέdh6NU}Gm"M!]5.r(Hk)n|M~GJy +"EL`Ga5-km:|[j޳k:DWkuk.صF;w!U;Rᶈ3t9ө1kO)4 6](ju*BAh mH6cRNmD+ߡJ{az3Gpq7E=}KVj^PAR ]m(1D\j4)=_>TdYt$;X 5 ]=7Sor)û].۠x8.xlC*{vB,Jp31P^!$c.Gk2zXk&*(,q9l<7к?<3Nd6~d PBUMTQ5UaJ*aզ)XL$1b2K?69\*&gӁ]%ڴp9Z6T+7`Z@edHgSh^XK;&є0ouVjkl6eJt,oKZ.ElEj?~03 Le^:P2%l>Tϐ}ļ{eEṩ,m_"*sUbRl>ЇM"}^od7M9RTMm?Neߛ[,Y +NkWN_woy^6=asj-Fb;/ƃqsPm7 e>,ӧ}zRܖfqqJZQ5=Ko;p("1|4VQ<0ca1h>-zI=o\m,yt2LU^kew2>or/>x+~ێx;lz>bxɾ& iQ3iiիC]p7^.d=EbDpHcךfPf|ī55 M>ܾ׵4oEəEe ybFm?UHf)HƜU{+ժ +؛9ߞ`1xa1&C׹v>dmˆ聳Tذd1t)~*]q + jX~u VuS5^rb ;m0Ӳ}Qs n_8 ~eSV9o +T/3C Jd&;\ZJQݠs=UvL+R=fH^v!In"O޶y9ST3'N-”闝ʋU1檦PG43)Sitgc*ybUCdlgL>6D롡ѧ{TӦ:^ޔ{cA,YU;մ>m36(gbv=^{HpF\- pZ|W +%v(941(zǩ+JPl>pnM;k8!,#5m'H]}2>_PӁ) 'Y56; Hq]VX?՝% +endstream endobj 59 0 obj <>stream +]@n>uIӯ`ȯ&Ո&SP Obf5)jt76nu`Ӈ[3CC.[jHH_돮v"1ަWƙWہv*}-YuYe/Ү].C#U otl) +eKj2smؼpU j]q&V8iccuC'/y 1CKpfyʷO)7xվi_N"}kP,a恊*σ/ǴQtul] ^;q)xqKV`Hm R6b)#&-v f(R)b\k %xq(7 f(N*ePAPseХcq˞{s9^r/Vܮ7;:Zi<ʿƀ:b/]3 Ų+~VI:YF2\<4fJ2q Ń̟|/ +=" +|ي)e!ER6S 9˛ o4#N=+KI^ZWB.٪w9j.T* B|W÷TQA)[ +%2 %ٳЗ{~,֊Nv\y㈖Q<3gy6?c)fHZҧ̞p=|<]Vd[+joK+kV(Zfs^d~>>L㖔J54D$#ɠaQ-ŷ)Dz_jF +\Xqgſ7lV`1[L\>gG|8# +UbkqߔqƖ<}&P2v/QCx-%F@BVQ;7XsM:rgcʊR-ҬI&*YhcjIRZU>ZBVzLܠ@&+*; 6CCj. 2F[2͟:mY?}>s|xhuS<(9slFiDLa{(T2 jfJDYb#k,6 +fjx˹sȽUWE]Jըi+*n۾aXBsz>wbPFPI (l}c)Xj5JP0Uc UV*p<=s +y7{gB(S"ZƘ$p8Jz V>b>;99)Qff +csw#hZNR@bB?W Jw|t5_+#6mO 5T9T*ow17UgHJvē2'C2Rp_<;u* +|Hs=K۲q(hNaqmf1<4'$:u$2OԈ!:mU ndj):庶 j{Pר- ]5Mܨ&ꚭICiuQNҜd[jeсzk˨9Kh_NɚPw);Y<-Ѥ ZZEAMY-ZHz< n0s^d" xޖFb;SnY^ULɀb^,K8 <ഴ^az +kvȂ?ǙM<"Tj6,nPVfGKKi ="kiTbHJi:d|+b"(Z/H*z>,lrCܣv4FK\`%'֊c3$mY<:Ʌ \T.) j"Tvb!Pɇ2oT 4ʄҩl`DTgH|mm&Mt?ˊR +2x5reշLUT4*fmoD$ x),(KДEpӋRȉnm}lW;3ٷ6O:ra:t,w[PP^7AA{) *?Ѻ&]B)您]פD ؛+%UEՠIufb հ떦p"䵩|9^^\}קT5aNsb&Y^H8u2B*!.J@piQ`Tb [d%f238m%Ө#h\0jY[UGhé?qZ1_Q:iujy`kZٴUh$tL>EaH+K:V+VH$夘mL9ufY4v ?n^<^ L!T`-IrJ ڢ +g$B""q*x +XMO+X?g/e-AS"ߑ +Q'BY=oJn+O/!#źۤLdʅRNӇYȭo"gIyh8bR&r-392Ggܕuv cEYM|E"l5F4m8ZX%ENV5|׬;Bcײ^!f+&mRe9,֣'E4Ӛi,A͈>ŮeA$ $-BWk$AIiB4ml84I/Rq*. ,m6 +T5`IM*˒ی1N)ʷQFEǧu@>*`.-Pz+=+T~EK4uj(ǧzZLx|t[y&N,;C>v&CaE|Ne)+)cb7ʨa"F=b؋&2dSJ*DδXWi6CH(Z#dT'74^7˼QW$ )EIa uZy|Yu1q@Q)1o5n]L~^D~y8ՅZμa~Z_5 6@! U W%ۉZv?|x eJ~ӟCGd ڬPlD`͖#^(*- Ya9D) ga.$(HjSoW@0z|Jf벱vqytMtSr*X?Fs8\W+vmea6x*=Fu[ \ꧬ;G% ` +b'O5[@WؽO|ZP-&Q * Csim-ZSBַ[.'BӟةL-ziXHur6A} HyA2vbw[y}]T>.؏LyQ.+`,M Z*^}DС%96(VˎY>w D jmBerF [js` 8+3l!n/P +h?o&҅Ӛc[Į~ٳa*V^C3v)=ݐ +dZfz}Xwa>3<"0bx 7A@$DO_JxrKa\]A֓i ƪk;,!W{ J8a9&|R'K16T[JI 9 J+ DFVI=+n-Wl+ +.v։,ZPYl3‹N(j^0zs +х۲ڌ7dқ+Tjt}$ I x|ͪmb!_{!6JZcZ?Tꉾ/yF/1> $"`P~]f}Jn&1XM:NZU. ٶ QXTCb?|?y^S-'LoHbT]9] BՃL=÷u%{ZXE L%2dgԼd4b#k/VE +LF ={nnҠy'EL#AanJՊիՍű*0$.n}o :M +n?!WL׏V.>mX)E+:ID~<*eaMtBk#UeKT=[}a +ʠc +fx3n )c%?S,R̽Nd.v5wA0>(0x˃# +oeH4z*mV()PϔH/G_ +Y9-ً'@U~w6٘,Q3aX9muKƓS[43mew(ZB5\XGabaPvayfXwZA'c9iS%ȁM/ >-b|`uI<Fp \W<|ʷQ3坩ht2uUw'Pȳ:jT`='=ZM& iJ`b#Z e oeUID^x>^3}Hb4v?( RlvkU g5p +7[zn=~9^Fc@B Z/;L5\dMbJTjcU{E֯FcHNi7 6R7&fO1cTYxS 7ѮZR7!z[T:P*DSTWt^V}FM{^N}.ſp [80AllDƫ֛9`ξhvu 2(ɱ pVsW9eY:J3T*=Sjx6.N=hl{M8XM)lpW}aS+o̯oXɽt,;\&0>5ֹAκꔐٌe_h5dqLs 6ެzP z[πFl쏷czP/8\q=xy7aʿFsDM[!d+ռktE143,IFFT>h\UpfЧﱖ +u9iƞB^5SPY!NsVJtX +bFU$StږbǑ̑|PCY$M}~pT/ҵUDNZT؋"~A!,{;H*Ii­oA'6Q/c9JAmyzbbVI~|m'uH'oìptP e5WyzvSݖAۢJ3]7دhFuml1$Xi6Jmxz3on]F#T]PN";S%Jjofq-2A}~}5V0_ݖolu`'ɣC-"=ubGgsw+׷o.TkS="bP !%UPh P˅sV|58]1#)TviۧeNUO&:];5-Ce& .ҧ2P.YkPjT`BBO8wSMT8 2j['IBH\{Ue8 [пzvMR>*mb G_@~Wk܇XHH(5)(9#9T<\oJH #d2b勌ΛȈ(FEFɈR2Q2"Љ>yUȈɈϖV牌񃌨','2d%JJ"#?wI`D)  hFF`DM[9`Ʈ##r_v0"&i (}K`D !(0"[F,)zFle#Rh_`6) He##bD5gf0"5MT9$0"J#Ԫ$0F#ںb#BL`DX&-p&0";7F4e#r*1F-!b2#j?Fܔ#Vlw0"(7QM#je|F%0bF`Dx)I`D\R7Qr#J`DU#"'0"`D> FԯH`D%0qFL~;;af#ƿ1#j?z2.Fܔ#֨0"? FDN`D)(P"Sf=B!/S-%"JTĶ(:w pީR2MEDNTDDE"jdTDݭLEQ"2s%*bpEE4㎝{ߩ(o*"e;!Q9MEԲ'S 2}KO7QIIPYHQ .LTDd"]AED;|ŊvMV܉j"EzSlTDQDEy֤"Ruቊ#:yn3Q0hEEAsLXD3Q1ETEQV0S"B*HXD H@E$uH$ad," Hd"lXDk8XDE~aOXDݔE$"*<;QɔXJg"*ԔXD=lHWy"%{ce2W"R""XDEE hl"JEwXD",{S;vo,"kbL," o H=# ,"*+أnXD3ݱ5dEo"҉o,"U T8QXD8Q x"XD% ,"D>،EM"jNXD%XDh hІ+7QET;caXJE4 H1aXDe0XD"e;Q5+G:Ѭ_XD• h~;QXDv,H!33QXDR o(o,b ES7,>Q?0cرGXDX"rza5.6F"R\} р H5a+k"",LXD3< HŎEԉu," XVEE*EE3QKSUQQE˲IEbމHz"LTD)LEԀJ)He훊,S8FEHd"2'*"S[kTDd"JL*LEa6RhٚTDS^TDNUpR{IE B"RS"h/*2RS5"ZsNE$QmzQ?"jH5FEdTD߉H2QmMETDdo*"!S"fT=(b/*"r"MTD7%q"*˛R~P5_g*"HЛRQ›#0Qɾ'*TDh2QJ"j)H;NEH`"b"i"řTD6xeHrTj"gRQE?@PDS (PDPDPDȕLPDHE>6C-E3A%("o(b% Cq~KPD^o("Ư *A}CqNPD3 ݡ PDwQ?>C{Cf();1 `"JEl,x$(PDJjf +"ߡtY$(aPD y"|C$%(bv El`o"2%( Ey EDޡQHM"OPDQ ET,CI)ء%(҉?x&(4(?Jxf(hј;_PD/(H8AIt$(F"*=v(E% E(%C"Jޡ%(" H"Zo"Қ"'("89OPD}PD_PDQO}"Ұ"*~tA#흉؏zb"r{ћ8'Eb"jPDtjg"DILD~0qLD5?i%&"~1R$&Vk6H4Zf"HLw[T\T\$&";Dlt՗DC85%1OLLD)y1[DԨ$35ld&J~0LDd&yHHDjtQ$"rB"$$"B"@9 ]<6dDܔ@"~0:am?Dغ R~ {(&5!@"v<0w$b?bSH%$$&0(!D,Q@ q)L9Fȹ@5CΉ^X|#"" +A'"Jl#"bADD,O"`Y2MDԺ Y$""ݩo""r""JDM=e""7}J""ZNDd~mk'"$""m""}-DJuxB&"^NDDDDDDDIDD +VDDv"" eHMDT!ug2}Si7QUȁ(9 DD ?f"𙈨H""H9r""j󃈈R2Q"">:[g""DDv5ADlg""2uXP$""֛t&"RMx7ىDDlgt1%""r""$"DD6+}NDTl!7ehYrG3QWED$ D%$"&;ǃѝMDH0ADT#2DƎED$0l̋MDD)?w""ND#^DD[;DD|]&"yND""x$"">o"ymDDLDD>EDbHF""VHs/"DD(d"bdDD$(h19Q""⸳u_2q*hND$kFDj#"Z-NDTMDĎ#pLDD-MDDD[&"ؘ_DDM;ZJ"".%DDY2wDD4K؉S "f;NDD-h+ЍȪED&"d"ew"o"*}ǩu:K"EDd]&"Җ񝈨"" DD$,KIDDw""hqDDo""8;!9MDMDD]LD\ND$"ZHr'"gym~މD%$"gۘ[h/""`""R0p^DDClDDDD79LJDDrÁ8LD4y'"RZDD݉xX$"o""ʉhf ;QADDWv!bo خ Dd"R7D(o "Dqe "~ H=W"nDd"A Ρ?% +(ω@D7QY& T2qD,as% ""j K "  DE&5g "=o ;HTe J~,K@D%dq + 8"cz<:7[ߏ/D9u^d6JtnôhqS+U3Y;ߌNP-|L#}r]\1 nf12w Dkݲ|A5pWH7!(k1 1?iH@h]4Q &Bug5/z݋f(3d;WKbb72ОR(c?;Ȑ=BsXw` CȬN} lIw=0 YCqˊ7`3,wپHQg\?k46 ;DOSs5s .ޱ! +tPe^r!FPu?7+(e,a OM(o.ܸ5^ɅP 1*!sүYZ@b%F pРI~nGY۔/`{!`k906Э YW= .%|Av>4 ,fc\El + X|$/(W6 A3c |DeB8,aTKAd 0r8XD:Jp:<Aes  +aP_WY~wr=5 B}iM9bKغHC8mSκO& ;C0);apA,H p z/ V-Aceu\rA\ T s *1.3^A3g:3_7T1Z~_e8mS4r< Jy,/1ue5{Mя,'6Pc"/ȸy覭\J nY_PLG_|A Btb&k_AΔ /ALԋi^ ۳RIV rcNQ)]%AIr?`kf9j^OOA6w{/0<0L9EE>`TE6V@,XO;`1ط-`zX@'`puLMsxAzA~GW1 \@ J(o$5T]+r#ˎUP>\P)HoLA%JPڻu,BwK +"&yĉNP+> j= ()E3b jH$AW^ %F-N,G!Alݟr(FC1%AXDЎe_jWpy!+x R Y$=ۊ( +Ռڿ "(]rzd0AJrȫ*A<}JUxTsGP痕DNMSI& ^,8R'X#o:G(UH./8KI%Gן|<10qo (CPmuIԈzzX-벵/@PL.aN5؁Jkp3/^@ǵi+L ZNI(\@FPg-d]1P]ᖰ@L&P=?mv=U%*$HGe2k.D>!p ; psoR俾:J4]ӫU\J.9;qŵB*ՊUZXg"^gw.ܒ"H-@\(Qq>Rp۲ͫtJpX^,zXKHr(_Y\T:/[;Pw:DfYb.ڶ[(?Nz,>/@*;PB`X0L< K-z[Rh,@E}N@ y9osq3uU8ZDVf Q0+Ɲ Ghe{W@=O!"eqHʹ4~+0 HݰAEP$0p@ M|@|hi Ze+N?6KO HO;DϽshnn҄$Sʢbx˝gZw>L(: P HV $դRj% +>22B,QN1%S-3$p@ + Xo$8 ,hU2DQtU9װ.z%byxXήXQϾ؀ |kxl@KfPcEـtsrC(Փ :=BJdJpEL6g*[b2^ +I *y@%djmk5Nl@f-4@iUf2;p XDQa+c[0_lÞ +S $8V=0`XM8+{ـF[h@0v2fR[ (jRu=_T@ RPD4(_}riG]D@5K9XOi/,qu(BO.c"ʙr>8Z]@R6e|q\`@İ2 +`QKYLT߾hPK$'P[V/Q lH_PR(/#XsQt' i (P8 N8ET|Q8rX @]62$Fa %EH` 2lUwN,8-^m}DF'}Co P؇oG>K~i6 jd"\f&H? +ckS0po-S1`?Sa:PA-P@T4x|f|ߟպi(@{D#lu:?'kN nv蝺u EޕoW~촻br,3:Ҍ)܏k"b5pv'O1}wsX|?\g$dݗO. +f]qZ_7_Y)mf3e]J'A`?$susxaOP!Lf)(ĀLk&`mZD?ޜ7!|=6eBVhh~aQVl˵hS$?0-ZS"5(~bOu7-ړGc&q]6pW%|( zhOi})OZ@Tb9wUOz-Ǣu߉'x_%L^F|фk'7znJNܾ[x<#dԾ67G [ fj>`Et4d2^1W"YKxV<O&O(ҥU[O*-=RIISiy,,y&O3X!Xb5B)v}1_O 82S/̰kx>j2O(6{m4=;N >4| EwΡ|PO KbH>j x^Wt)&_ѝ7hgi*|$܂g 9bim+5zY^N&_)>f&_rHEdɇLx6|(uWh8O %|RǜDbe W̔{aeY=ɇ'b"P*H> 52ݳ|F`D+\"I糴D!r?FS+|mkjHD>ziRyOuaf"RD=xT&"_!F"0S>L> ([[?O::BGT݀ BylIqB`^ACE +=^' ?|\JXC|fL w$[*f"He"8H ɧS="̢av&_Q2`(@XLBeD-gJ_HtB! $Զ|R!!iՅ+-/Kk|H>ׁ+0#hLb3ʄɧɧK@ɧ:M֑|%Z&۟Lc4m;,^-&W_<>dʌE9O)ls.$J|rR …{A0 p&LnrbYU=O

    :+l3+rM& F} %`6N3FѾ|F>bJbQQ\ذ[ ||a2;3HEiǩlbX䣇7|$& 傖mWnL>Ndrn|. &_ew#'8C +[$8]ghmL>.ڙ|Pgɋ.6kߙ|g`3Q?RBI!"H>yGjw@,ᦛP>YLߡ|uP~P%T>ekYd,A9OJP%2?ɧ cʧJG#G>,ǵT`jcC0\ؗx&OC[O riUi|u% ?|ZA|*rS7`B?zS|A1OZN&B*m"+@>· WQV5IY!$7CACQ$1ܬZo*E;Oŀ'L+H4w짇ՐM1*ۧ i0h'Κ?C3|#myİ)Չ|ŜNk#o+[D>djȇNCY>(!:uQH>ku1|%"_eC6eg-9|v"O/.SaC'a+N}'RD>"bijN/Zb#'Lw ku'Z߄dwKm:O8>g-%ߒ)0 + Lg' 2Ԫuh4Cs/#{_dzuMrLT<>租_<>2z4Gqbh'hi^k5ĵvk-n&}iHy|1ah3#сGF>Yxe8"ZO!WNMH L BƧb+?QҐ+$)1vb0>)Ek +umOO nǸ6Ȟ콬h%X ۧ1<Ƨ LC,h|Rx'Oכ4>\`4tACE#@EuyEE1S4> vGBb-j4{`wBao{G2UmZP-9|!vC?8|(Z7Mvk1*]X9|y?{۔dD +y &2o ķΏ<c +E9Q|: +G5.vּP|}$4P)](w,3x4ccHQcd?"vq~.hOfK]=9{iu 70X|2o޹$>F.#^냶q:D.\§,@0@Q0#cICY# +s) dߓp9T?=ZՋ L$ jVП5i'{*%2wkNj6t<&lFpx|B=<'~lX5OD[P{MОuagᆪwSٯEbˬD[rP;Paĵb^R")v/׻[<׻9& ,l=tqZ+B;>zwEgn'eTGݏ;(OIj@=@m; !{1'wRAw|=173YK'!EO/1z\ezh!ΦГ/Iϓ9ygx=OY7^ߩ3U7U wR&O8y L6j6%&[:91y-<)'cFDxaI28yI3G2ONٍ*<5+y<㭴eiý<) +M1y&_Z#0yX0+$LJ ݌'%O&߼ՙ'xw#4 ''Je1)yxېJ{nk<YVIJƠIM%OE2%qfq e|z8n/M_WW '6(*$o$W;W'WJa䃎)`ioG`fp < y8N&(yc,~P4RfR8Ϣ9ú')3y)RqY򤐅ʤ<};?U<)tR2)侻<'0GKyiibW0t #  xoaxHy4OhX26HyKIMvRB)|d229@y(Q'P尝LJrsH<=iX ʫ3;_>L&4@yٳJLU4|zmiKkةEHiݶƍ1:_yY6mdzC8|(;X4sm;CNP ע0tu:U']Jb[ƂSg殫E %̻y֍'Kh;J R_瓊6OOWf.1T)FzW>A*O3R+G嶤:Jeg5ȳwZkeRln#MHǺA=@ڐ BKּsy 0!4QcUqre*JWr1S@dDmm.-ˢrFMFSN>u}cJ?K>TKе}Ngoc\4Tݝ(ZH#Ssb[1;&X)&GiZqꌨ7ZNz7P͗7}KeAԠ="ǦjQ48–ч kI\=6&WcuTt]yURPYf/iWIu<5"|(*PZ~FÓ DtikLdt:IX;]N4Q`DC2ޒ+r*@,$L[s4mZ +ӬEqc9].MWS E@UtMrg 伤.c5B 5x޵ܜϙ"#dKuFJؽ8~6D(y$:5|mODuծ)3^qbn Eɖf:,u&9^ yU1!~#|$@,E-9(Z5 fdO7Bzg*ETtlMfHˡG# S銚3TY]5sȏU.a +EX*aicpT_QX6@)Pu_K*7Zv>3+>MQ~ڐMNhܳ4-IUabT^U^9]tnEj?~cNë2Sd>_*\z۴ +1CJ@, +R`HY?D:*(9(;Ϝ rt/OUcۏ8|lE+-\` 5z?RT1<PT׶<;`ptr#+(yezlLċчO&I[r뭜LewQ{vXE:Ppch!KmR P^rj5ߨ5/q$SW߶ݤ4cnSAS 7z^+~ێx;񛌿o1DU?k>3g_j1gr㞂 2 ժoM3kK+`̉W1p|}a4o +sir{W11~KVp[m?[uהKT$ucN&al/!am3L /5vCU>=zB{!kF$Y n۔46LYռ`iI63YV5{,bl;M_a:6)1vO}Qٽ n_8 /i*ʖvjm0fJ%`i,Ԇ32qµF)%HH9mx3Tuv۞nD;N<~(6LFxLQ[1&~1uU@n>uӯ`BcNhd +ꅙ5BMϝgznI{ҾPKjKeoa c@[ZR 0ݵ\qz4lT;y"m3g wXo<{7T @O:Moqwl2TrۭHuUf>Q|"ܡ(n?<2bġ4lÏa)u. Eֺ޵%3K,u`J-f +<Jt'.&C. ?eWR)}Y>fY;7_\t./q6@wuw' +ܲNV\ 7edS|&z&OUې(P~Yh⸙t-2m^8MvES%^_|I(C.ob'07+iR|ar]/hVu`϶Pyt +qNm>ƄBH %*;~?u R&FӢW7r I9o^~:=iM<ښcvv(&WBVJ1υZpP pol앛Okћ}/NRbBD,%AVuL_JfF7B4B;{(zˈ$͝P>Zj,muYw_#ezЎgw\ +fcы̝3hg[J4nфaŅdrjy\圄E FK'|VtssTĄVVXwGju-,TFE +W:,)ӸbZ\ ի,R-QYZYY| YɥwvcI'ܟT+x<3@v1?߾afѶEm"?⠪L>oI2qH\e|i t+ywe 5?bTi!pl vBL'XS\Wܧ;/F_@ح'ܫeqU݀Q e8A6Fvߙ~YBY8z^N}w2i- V|,S>ZM&Soa`n}jMP.f߬,/">Q&gN{r%Y`'$L fsw{(9ʈ^ج閎986; :qς93Ʀ%Ije$GYzpWv8rחJ[w^ p=SY1 +םv4.7d"$@6zX ͣoK;^@r|ޗ=ѭd#ny2Q+O]7̭lkw- .\\}R&5vx<;~:.JEU +=nK yfS#0:a;Xsr%RK2=`\Fp/0@ɌG}bR²8 t0˳y87+ +/-YWδحY>xp7U8AQlFZDv_sq)8@`ٻ_wkjt>°r-"Q%Z jp '4h%gӪpfH\rW"|V"jQp. $PA;YȿmhwTm6n&$PT$]#[]ʧ=V;<HN( vCL q$guPdtPYMd̡Rmddgu,{,r"ujWN ׀}!~+0Uqo$3eIJ@ 8WLB$/; u.*5ewCBV`e41SG1yG{||pJ +@l't4aFv0NCy2@L- xE/} l;3?b0脔ҽb^\-{aًm/?+&.@vOMF6RyxNaLN)r=$QiqYnܡ%$b%Ecd,:5@k-aDedVX)~>sa%c Ji!J\:)e pJ>5ȷ.)LwzܗXZQj&SY`:I#]5PZ\Ncd06%rqQ!.C${{&EF4\(0iXMQͨ6,(?5Kn}.tA] +\r)ݢe/:j*wcZq0u[΂7!eC6/%ni'uoe񹒈Hq/mϒ5=!a黌 ++h@)͒gAE1в<XhR.DGn]lryV-Δtj)p 3K(IXw,~/4Աdѫ ?ž S;HjY*J%BXD#v{cfA +w1f9uJfR:Ѷrzp d!{jgPQmpO/%1rok1L%~[uDEFK}t 8Ҳ,e2V\dl&7FbͼxhY.DͻXQ"B߂C h&=ɭՁe)ŕXq,e0GdpT=dHПzSKH1"Y.R~z]}T^\]X0gKHRI(˷) jqKeh8SFdF`զ3ww4P&Y X"p(7:~[j¦t*McDu&S2Fb 2E-${֗Dt[e74xN^D)M"pyM,QjW + +<\ՈP,cԵEyZlr#AGXj,I&dWHiqJ茒ö(gW*ҪQIa͂yc<ռXs%`eϑH_OKd=b!*%eJ&Sv px) 0dͬn%n|nX:H%F|[M+{UYv[X{1(ГEUdC9D3e2a'QEQ* U&8{u(cX9ɄXC$0Q( L Rr#ӶXb +;qWS(;dȫɂػg63nI&ěOx:Z\B Pt$u54x| L6Um*ʹ6YZg ÑY}r/bFd$d1YwU(Bƒs/Rt& N6wlM[B&<ُK>JB"Gڿ3&X^UL@a@SV"Ur`lBWYEWqVd(&TГ05qq2.:|$X(z;4uv7@J5"R,P: L 2YH B}rȼd\ +왧Lgnho}jM">0>EI=g_Txɒu"rCuwN['<:3iD^D)Rĭ%A.c(l9]}~u!Nl_exj _qY}`e^W^vbj~էJ1;⊗P mW+Rb%-FGh 9q"y@YR'?z_QJȟ˜يc_7wn2ힴ'˘6l`Iy` Ml &$|#%[o+m=mZr,fWiFH , s (4>Paڔ @!rTF! >I}[FuBT9y&KPo֊gQ9rI+ϣLWl;'"Rݗ勑09Z!0>jȕ96γ/|B*ligZ$g3US9[͊ пG)V,'e %5Eެf"TK0BZa-V1~#쳞|BN3>!.f2&Wmud|Bڬf + ZZ!(jb7>* +&≯p'rK\2;M#%_~bŻMDR7nW6Άz ᤢ\øm tRI9 +B.i= ~WOMd%wOfJ= 4tS*),*W2?^3U'Rڭ(Q(Nrkd׽TsKJ,\N|FOONpGl~cj1misÈpƶ5[8nN0 +>0fRue@bjVa ڰpVsp +Yd~Caixk|Ӈ-]jՒ.lZyMyyY e=AeUNA1>C AڨZuF)zp{pNH<ꋸUY-k͊&ߴ5# ^,d=l0 +QEkJ2V_eiݜm.xeFsxMޖKcʴ)P7ًŦY z.V +÷s?^Nh1~:C{k{u[RP5 +pXCŨ'\S'nKkĦǪM4 ++$Fcᠴ˲$To wr_v=72r;kX)v?_):TLD[q}Op~"o{OZ7"!2;B @v5.o",4GVZ77ϯ8k(v#dXuPiiC"ƪ= ,u,x x/n*z?X:SWQVv3~wZl QBw俹aZhuYw!ׂr5'FRDiCGkVTF_ +oyfx4썊^#rYya: $+ [br/)|-:2>V4R<+# r70OYFb֧G?BX煱:!_!SPs\'dӮ4V\'aTۭZ*yzZ_^kΣCo "%[{Vo ~66] o ڼp +8=]3%?my1d$bƞ2v'W!h!r[=1R2V +rCTxO28,.8K1!.JPDXEy4\:ZnxX]35ǦXuU# `*PaJjD=]_}!! CK9/4n7x +Fuz$i%9EZdfsMd\΃V}t_]7Mm8%h%;y^ +iDuM *)|t?oom}l泾c PTl\:5ڼa,5ؖ˚rp7rlG35a#RYq0d"8`[/ђx3 Tkj-ZQ QdL ꥈ7o?B eXc;O\͙nqe@Qj1B98ӕH|uUgGp 7VZCál=k)bуvmHNx%6} Nd*$1O υ'zu9o5" UuwIzPn*{B2 q;J$ʅU|iM:6T Y51P,jtA]f +)O2]ND9;5R8xB"e]!2ٵ {f.D+ս r$1,i-P3'N\#5i30Q.ÈsJ IH\F`vOõR٦ fT%Iʑ"Kzru1o{:V`B3w@a;$m}bЈRY%4FDyE{4bU85ҜhĪ4}4"uЈN"[~C#N%<Ј(4އFzdA#?3qʁFԞ2QhD\2.-;R (%PhDܧ (%mw4hDy3Q4"#gB# +eE#N9Ј^5dy~"#r.hsBFՃhJF䇉ΟdD–O'ȈS2bcտdDJF$Ȉ2?'ȈM'2?Y&2`8<4<ȈMYIضض2b Ly&#V2bNFtXȈUYP(IFDMdDSV2)2LFDIdD' +BȈRQ“ȈUF #JdDVxO2LF4e%#S|LXe$2b<Ȉ #j=ɈJF\8 #DdzOdD7zȈDFɈR2R[ #JNdD O2b;JFFF<ɈBFɈU'2"r"#ӕΟdji!#LFB"#5Ȉo%#V9dzLF0DF 1Ȉ0JFdĪDF[e%#N9Ȉ52<Ɉȉ(%| #ֻQIFɈ:LFWT$2JzHdĩ$2┃hXɈZ #sɈeQ>dD9WW2"^DFJ"#NȈM(2LFɈuKdDəȈIFw}##Vf2Tqȃ/$y~"#2Q'2|R88/S65<~ #&2LFQr&#$2"?}贒| #2*JȈCd)QdD 3QDFr4<Ɉ3^Qn'QۭdDX!kamodĩ$2";QnLFdD(ňAFDy%2"$#*4Ɉ +0`2,dE52b%r@FKdD!2Q Ȉ?G! 5ɈS2bUDF=fdġd2┃<~bdDy2Q~dD2Q?@FԢ1dDu~MdD뼵ȈSv2e/dDZ?Ɉ&2"DF|:ͧC"#QÚȈodD6LdD)ȈMMf#EH`D[?<F`DR(?N#6Dq$0"1FHF)t#Zle# +F#"`D9  F$:~#6e#>t!]urɓ^p qEMՓH+E$ޑ|pq&."J"ZE"`"}"I\D &."Ne."E֓H8qW\Drg."'Qr".L\DR-\D$.V."qa$,N#a7>bd,b#!}"6 Y, +a6a#a,DXD t E' (1cd,"( HPE$F@d,XD ̕ +>`!QbQXFEٓE|>ү#Qq C(:I""cL` ŝIXDyW?`eg,beYF (Z+-%,"XDE[kYYv"*i&sm"ֽ}"*%s+yj *"*5 +Q\ +f"M\DE㚸^ɹpus2QAETE$b"ꇙ(Q˲M,'QkȰXDԄEDL"J!'c%g,6c\ֱj-Q]"|ebY{b$,b!/Xr_ah*?r""bչaREޱ+Q +5[hO*BE"JXDUxPr`UʽEdXDYVbu3Q|"j|XA"^E$b"V X"jXD h;s`e"VԯXD X]%,b +QLX9q߰(O,ET7c|"VXD%QF,"r"JIXD O,bE$R>`+ [V,E)X5XDQzO,"E~ ԆET,U8C$ET,babQ|P&*??PILTDS(*LER>P%g*"w2QQTF|x"*И TDE[o<(JEO3Q"Rߨ*TDq~"6X+Q?T&僊LTD]|"*IElFE4e"_N*"r"JTD)m3 *bQ*"9y$*b"RR)HTD>2QCQ"*ER"֨T6;TDFDEԗT<+QB"JxRITD"󉊈""SUܐDWTD TD +b{PiwPzRQ["AE4JE4*JElTD*DE䄟TD HTDcTD~"ү'Q)HTLEaT%*b#Q'Qi"6 Pu.ذV*"QLE$Q"Rn:LEM"£Z=VR5%*"}TD+:DEDyPTD TDjsTD]{"HTDETTD)Su&?*TDH擊HAHhePFWMPDxO(> EU?@ɝZJPDPDk}"6V(B M>@e>g(j<PD%Wf(\EH0Z"HPħwBq?\$("7`""<HET( EDIPDEd (%C|"~O("m&Q(b#|"jPDO( Ecx^@8$DڞLDDDILDv`",3%&"ٓH<"9&T|o%l;Aҕ!81unH_51Q֓71LD)$2 qV&┃>(F֕"KP|D\THDCYԉDm\2DĈ0IHD\(XDIu!Q-͑YX&Ӳ`Q/9(癑`DNJD8IHDSHDD+92F"{"+hEH+D$6( OHD 6!)[{"q&$be!",HbB"R6D""'$"JB"D"*W&$"'GF"d$~O$b%@"0!|@""'$"(QNDlJV$Z}@"b)&$FՌD29!d$HD$$"Dl?#q7$$b"@"2'$!3qQV$HDlGHD '$"y+фqȅ%$HDDDIHD),>gF"ҬDl|+6 8ѲȎDA3;' koE"N!!AHeF"%LHD-:? (tB"c:!Y:&$"uE"JHF DDX(yB"לzD|YoHZ7$j> %g$beZR> W$"LHD@"Z2ÂDTWF"VPs$D횐$%$"JB"Zr( QHDe/%$KF"N%!M^JqZJ}~ ɪZ4KHD%>HHD2Q)?ذoHDSޑS $"@ ԫHD>]22q* 8@"uF"VF[H +(+Q$B+Q$"HńDDT\F"d$⢬س),DT$"U Ho΄D\8@"Q/DF"j񑑈SIHDW$F2QwQXd iD"quA"]5!)s~"%g$Dd'm$$bU%10#ɋKHĩ$$"S]e$ȩHD D""Q.Ds^3q* ȎD2V$bVcIHDk"GD"IHD'$&HD DJHzhHDk"Ձ4#^њoH>HDٲ 䗌DThʊD4D( HD+QBF"ʮDTOF"j5t{"%g$Dd}DfB"&Ųz'.HD'$$R(%#eE""uo36O$"Q ZC"$DzB"QrB"JHD6y"i +&f$> %g$D4!HFzĊDDy"熁DlLHw$bS`A"jHĩ$$edF"ADTRF"rV$V$P(يDlIHDʖZ?R!!QHD #[ioHD9H9vDJB"N9vDԪQ \[xE"ʿ(uF"NHĩ$$+ڄDldy"%g$DDx"%'$"BB"'QO4!u/3q*+qD$ !̼'HDBB".r?6? yQFF"7D"JMHDDO$"rB"JHD):Hǁ8D4yE"ZHDd$" ($#u0!qD'DD"e%"N9%%""G}9HDD$""ʓW""LD$JDEYS"b4҆ID$W. 8&""DD'…QSID)Q)&I?"V'hʃ8 "13@DFDTT&"R$"Ñ=?*DDy2QVf"*q8 "F*UHJD%LDħg+񿟈xq&$䰨Et߭e C*tB׍R@!$!E }꓃W x){hx=)ZyQjN*Bi|+?$dw7!m'kU?fB }(Q#{ɇ}! +tPj== jGD=~Naa8CD,66BbozNܡh}b &ZHCRLwv(2qoC^uyouLmt+OA;7ʡ~Lac]=wrr47Z]V!=DmMv߷1 +| ]CRb;Pa~,R `4{ PXvwz,M}b/ī)ME7\Hܡ.ʼnj4,P_94Q>9yW]c,,jTSfa}{0 mτ,,^&8]7da|c" 6R^,,;%+D;WG&Y 7daQ7IXXd8Nba9(BD XB)[w %1Rj$JyY$[\XXRuL`y~\Ul3Pr߶{ ِh T\ƉX(5R,Xz#ߘ(,,$hEXP{$-TuY%;7`Z9y :ƌ$ WHQ'P& Lu +UűiEBE9B%]̠Bu,elpcM@G摌(b֚",EܸJ=m" BɘZDX ai6X "m ΧUKp%_8 +@QH^a)sN<4ÆDXsTXGY @q BYDH׫ۓN!rOB?>ӼZ"Be&Eeœ Bސ%@4/,i>%V{0uY@̿ !r$BmNgh=3Pss\@Y 5*ʦCI(©P^ C,EH= EX(htDX:P۽lkaec`a`Ӑ(d[p*D8A"%Ocw`DXNʨeCfzۿ TpA",ZZa#E1]Kfd^ne#qèX6:esh!1bñCXws3 j@gJa*,B^Evj6fwX1/v?m}QV"^q6Q 'P{ˆw`N%pCHn0]9%`sVz4r`;[0 RvcCU&upQV:X,ɸ T]W-:(JܶD9(vL L=:Kۀ rv/P-"up*:81΅1{Jt [5O9,@s9H A\'݊;8ah}% soJxzgJA6v߰E#)=;{iN%apzt[ptH&~ Ts`%8 *P&?~o' ʹaJ N9@;qŵ3]jM\$/q噳a;8m8״TC׊or6)F5C-6])*NJ" NIa]E-hKn:L FdJ5HOA$b$Xzx2$X5IRe`QIZ%f;IPOtV 2fAX&P +zC lO%(΄,>YJPoA,TIr ՜PrfcvjpJPf,(Ay}%2JZ%Dp.rMkŭ\DVfq\+hvRqg  Ã%h}g,YKN"C PC9&J +qVJ8ƆT)|+q裿UN0z*p8JP7$6j$( HV$RkQt2HP {Ы쨷o$( #ʝ#(8*GA'pGPweBc`+mTA 3FAmb+)fdeFP-JA #%(:sSN,A&`QCQ^Ҹ19)06~Id)y0EЂFw#"X7En\1R=\M)) Eh@7R: mgM{2؞2 * H&jkR~/"ȬE (HAfݹA,{MGQf,x-6Fۏ +F^ݔFBVw+#K00og}zbX)j,|:uEog*:7Tl J [6$t?P5NjF5@bi[@%6Ё,FE{et#Q[l@4Oh +f}1|s"YAne"VbVs_ ^`j%^܍)'xQ@\{xr/܇ ,1ymtj0} oQbձ$ܵ1v7bNeoFh08)l+2P΢~;d ɃD]CZuA*1Prx߾O@}l@Z.P;4/J $\뭀jB#4Xw 9 }\,\=Ͼr}׉ @ՐwS !P,4t+"P/nG { ¬L"(x@b/?eb譽\ӽ)kg_:PUwczZo^+ +_oi]=/[zF K[{(RtOj<@T'$@Sa0x=kNl<;> +.s3ƃ/x*pEjhp fN e= @9/XXwFV),@&NPalH$o?AT3sʽM|Ϙ +yRhxj6CP;%B@-UCI2{O^*ƄNϜ +ߥ7skj2)9Tr-[^]3|! p_3˅#[?&S!#.OF?%ʁd%ޟ^։Sϛǩw?})l º'%D)Oc^Sܹn#KN""H!K*xpüO_x3˜~'`I8J?Kio}fSX 9@jrW%}@AshfioIVG(,,~ͽ'd~* FzDŽ)`|7kZR9/>,z_;_JL@5}D:gsXzz>x3/WOޗe}W",JއG7}R,}8 ~_'*Ol>,5ۓ}z#O +RY{IݭD}+!moB5yNvw_y@K6uY}ECg)e֨X}>}|`h}Z[A`RݯWhJdx?8$>)ӟ ߧܓ9-Dn +2O2 W?)4xYNʄ>n%^(?6 +W}SpTk;'%H~>pS9 +~Mx~jBZ}t:= +A<Օ'A3Ox_!cO._ǀc]obˀ飵%xY6;ةwx_nF&xՠ]Gè2tkުj40/<}>el}m|x_+ htrXm(6!(n>)u9jSbLާ*}*>z4 z5.)hL)Hi&7z5 ͠U:F#2}.1Ɲ}9}(69Z?ާ +zE A#oo&uĸ5е}X*LSc[3JӹIwI#} Vߧ3ߧb[Ϻ?2| +z0'z_!9<˺㖩h>بO>+Wi'$[V(2P.'Nzu#"nzyr[4 )\kIҜ<i_GIА}&@齷H(s$)?6*~4^0N=c᧨L!VfA`:4&~&ȹgc)ٕ(`$0؊SԹVOR^߼"d0~V B&-POfO+6sODJO#K׈>p h wRO. E_eQtiՉ|G$5i:_.3>E;O/OhX`alӋnf7ʸ'|BFufŅL˱OC%Q%t3NݧQ77R 3OhO2<аG~1RGb\7|R^>d݇Ҏ>}_OGU>:%v_eA(q> +*ăW1lVm>beҎ#}(C K>ɖa*e+3 C"}>-g!E EId3#y`?$p } ܇$<} D$<}z2O!. Q+wuUyHngۺU[ @1v#Տ7r=vrvIerdAg{z寅ZTF!pp^FeOi!֒(Ȅ QGfVkPvGGkPw)>Dڹ})j l^7l*CcX2 l~_EvhfV&{$}lG?}RlC5}l[_}R3O/qn_QZubS/OZYWMɝ&xۧK97}43 n4+Ug.>:߸}8Hn_H=}ZHlR>e vƒJj@hր_8X| X^}Z?[fȤAn` 7U'%me4Z=P"!>\Ab},7k?'}R&LgC#L:ľǬOO0H2Nى}:Ϊ/P|V2}!016OBb-&ϤN8}jh9})YڇpۦUU/&hyO9}r9OC/?H=M>-h۷{GA۽Y)^Bf00:}gbeg6G^B9OZw$~s=X} >EuMP{DH) ' &O}jB9}f)U7DC=8ߺ5; ϱxΧY<$F\-w&0hyUh`oBB $u)xZ㓱e7r+PQ=4>60d)!o$+<⻼=|OLPa&`>:Ç@]^2x{W$='Ma%l 5{rWH=Y2]{ ۲ +:{̽:- pDGo==9\hW1{SI= =,<8z,Q01h{GtJt=ދր + 'rNҞz['ji VMgحVUROZH=Y[}) Mԣ/5:ZzmUPX?==^R{3bִÉzp@=9-eic.zRl@EYz&Z#zl+P|vM^9ry囯:${hޝg ͑{ѰT/tӺ=:Om,c܆}أ)Ȧ+8֎2yzR:yS+VQxz޲,!$G pz*TD顐Փpzs&<p]hzE|FRjeA+4)MOk;3G 2NOyCvdž{,- +ԛr:}SD"1PSJZi5-K%A$ڠT=R&T(siYTO3,O+}[J'vr՛JM9zv>zZqc'Wyl{@cleB*=i* gd# + oVB${CIvC Fz}8q +MW@:oRH{Lk+So#`礼N~c3PЃԛBB-r8'))#IyRޚcCRf8Bϼ9S_LL= ᰳWN{oVcu[v`FԓiB넁ԓW0#%8R'}cGւw.q gޢL)STޏ;R\Rҷ'R VB![ ۙz[- '$ 9V(+Roʁԫ3H˯?mV}8ݞx{l\#~`_*~c7U!A?\l8we?CƸqmyc?L +|?~}g&ȼǡ=;I=MP"0Y^ڏ|JMSOUíXӨH]K +dR +ُ7qZB +&WH,DO 5vn=vنAame)H^o:%\%+?\'8/J2je)P[q89">Z^9Os+ ?D\n{v'ldA ElL^ _Xٯ =}Dk$WV .IH/bj\uA/љ| y{ ZJwq>;>`ZvX?+4j&di0v@KbxSWv;@l]eHw\zno&0v8(z#z|،̀Nj=}.;/,bқ=J%z9;ߎ|10@˥{P=ݪ+NjK#eV-7V{/Ϫ7Svuv/99v(Ϳ59q Lh|$8oo-eףqLkt*g ɶqܴݖzeppqۻ/Y*U}b )_Q\um'jw]reg2]S}-L!Q>KGXi_?e]" nMo^+Ky]qh硧`ўz>s}?1ƒCx]Kx9>a98t"z>&ɇCO=i̟alCOu1??~r'|/'O}7QjvmG1~RJ +L~_LĚbҨnF"m_ֲᦌGY4(?ދ7q/qr!g{s:l|P㟶G㷗DwvЫms"_d΃Nd:刌O]1}#nC+xү ʥ}?cnvˑS~]~9a짋ԭn+t}T4ؘ4RDY .=`]M.Ƕ5VԀѵ#~v ]"~7<,Óbϋ$T{50hfwI1wRq8x;u31SkFf2oC>~y"3qu8[e~|(>{բZRb3^:0Sj졎D<6z֯ҿMp-΄V㈊whc6?_.CSۧnZv1_ _N/wCj)o\C7㏡Z^M6v6Kpmh>Gފ)Yhakߩ>zogCkiR{1ۓOwSK;>2qm,ڔv3۾"gHçxBg[賭pwk폄,^~vwQW'p߿%qybswZ6V&wLط> +VgÕ-O9\ǶdOg +EZ[B[W76(-sLw;>Ajķe|{Y>cVEoZ8goc]i؆C<9"eʢwx1?^H`|Ֆ?;Rsld=&U 15yOgה?goyZX{w@=pصƯ-8m8uh5$i{( ~I6u\˨ _Y?>쫑(?_!?f}/R 6ܙ#w^_H3&v ^J^3m;j1.aj4QȼR,e]=̆㪱ŗe)gC%;\kaox1crP<+\haPLm2{+%PߝnW\n`1wX{x8Ga{oeG8,= 87Xam8ڎxs/͉^xC@頎{Ģ ϝB؛8!Bۇ w423^e3!B;BG;h#r[wtY]ͽx].'[sWa=sǹ5+auqӠ{X=+qTme+W~im>.m0ϏsMkm_5r,TkxvcB4lU-ۛM6ݧno37'ߧoOo{ Wh)BHk+<kf, 4+\3O>ٝ=nfu9۶m{.׷KXE<ؽOkb,[蛛4`|w?G}qPQ xqI''hoo?xjq2%E>՚z|89i,m{ϮM6)nz>`#՗>n QnuS/Y}{mFά);ז(~Cݾ.-"YBX¨!JG˃%Cԫz(K Zxv؃`w5ۋ3'wV7쏡b6==\6zގ0$I+>oxZ {VeNKOPݜނ~^xCw/n.?Q5¼D(0[3z|S(xp=0wk#ůcm\e'{XCЏguyXs=PtPM[ OpmX͝zn@Al[Ģ?VyUǛZ%tjG[ {BZN]b㑛<8bJmUh^cUkq{[p>yވvZPT? 3`jc/O?<D6P^n%۝b;񅝋Mt^<73:;' .w`qv~vyf~Tqy2F~ _QXnb)}enfoh-D|ePdzhouvgNZ=ڱٺX~d[VÖ0[^vEDfmozڛ#V8>DjLUe3/طrǙ]ku.,2@m כּX\W$J&T=B;8t8%//~o1k*$| ~Zw̕BXn(WrC|W |!\Nu6plf8.#=߱@ vC1!=AkiBmḊ g*o]ر:WSgq= vNco270&)D&UM32uߞ\Ǿ1[ ->#ODr1#"v⿭#C%iƳ-{qcC ]iHm}e7Ք#1Ila=q[U؃56qx \9d0 %ȗڙO{G<"c48c 篍ռ~kѳDaU79 pctj"5,Yrb]F'<Gy0$>}~^$g) =6R{h[8N} @;勄|EX\ýk],c%zx@dڍ=4/D:}tv'|@n}a+A1F]BW,~7xٸcbdp ^wG'޾z챘ҕxCpgůX +̝~XǕ>zw~bEX;=r$‹R;N 2| ІvqL0m3i9%4a?|$h$iakc/;$X +m*Z?ǦnidwI뮏V cO['՞FYbohnw{^,v\1\9(`7lA0Sp[rs7Mc1̪ڬaV0mJ$jcȈȁ8yABt'IN1 +Ӹ>@~77ԅzLC5m)ɒi˰ Ws/sRXnاZn{Q%/ƺ;,ݰf).]=טFԿlqKnZ>#B;n-0ɺƺ79H]fx&@w J2̀"M4͎@4!.$oՍ*(vljGfd~|QCR[TAL PѨ!gp $1V-xm=>QKqKRHJ|<3`U3WA`RTYc05# VԪJr h_ Taql hbVb(?gEXs&άbb3/U5 tq`a!E}إ:wU$;Pw>T½tIk:,B{Bʂa"eE!WDt|:ZJVRY>.va*HYgQ3'kDMș#5bk:]Lδ]p!VӣjIxKnѶ0?]3DTyQwOLD>{5d+GBր@݆zXqp${)Ui*nҬgc"RnLuDKwк +Χ6 I2PU)T޾cu, +sˡgMM$bh*SE@Oj>tX=KYV>Kprp5ۨ}Jm냆7 \?'H/nZW!W~Rf$ۆ</V? 7_/ +>j +$\򬄎w]Qo#2$hTz 5;(0֞(]~3qPE_Z 5E+QC( P[uu~ڵXsBBC^(D+E4$fA$Χ Tt;;V_j3ZATBK|>(j_Dߑ=IݜaX}_`j ZX eC蒁i}r Z+Kڏ‘feHB2B>`Q (?& eU\i31;NO!R""*!9FW˶k!)LI 2bQ嫶H4'T&s P5$Ck'5w8A9R)-5i`Ԝ\`k Z$ ҽv >D[M9;zF-&ug0kxcoiH4ǗPϵkb%܅vR鱲󱞆\7y1]BӰ&'mkT\-z#ֺv ypTXxDZuVܠu4kф + ;?*mnCV]fQ쪓O$R©I ]CTITVhfȤb'1Qkprb)*BٳFZ<5m}֓YY&AA]%]3]Y6NBT: ڠIK8e*%S>u~Fa{V'߲YKnk5(Ԍ<ؼ;U8cͭ +,ǚn*W`_mU"[.,!E3jalޯMB(y +ѵ̸Ώn* +&6l 6?^H~AJe "ڨ=\e<\{jp"7fVz\* l:4j҂nB*E*JrUbqUz +q#_cUwi+VqZAe{;#ij갪j7Vjjji&-6`44` +\6 ] +K +B- ^7 ъIdznP > 1]qlBUwTXctoSB0T}85i0tgL^V7=ِ#i D+T1EC=ÑXz  +$0 +tijĖ}ek1Dz> pvM~P R ]It'YmU]VdFŃ56/&[uu!ckk I;tIwЂA,8\y{7猫rtܠ5%t -ItQQԞ$֒遞dbTZ-{S&=;=P)i!wTu~U>E4 W7`yH759MP!lcw|`j +VܥD5R 9JrMP&r3WzΪJ*O-bLTxQ8jYt)h[XՀG)!uZtlհ5&оQ Rg=.Q`ҝ)F`jΚV +5bʚ.5+7HZ&Sf@9;4>v  Q彏[pvFFjD5|EgX Eҳ4ѥK*4 Gk (.*Ϝ(9:`-t-k, "JEУWVܡN1tW7PU|pԡ0'Kt/6\eb$!u/+\ʭRW +g̫ppo>KqCZ{]*m-KsU7~ژjN!]qϷ>5z U('FZz&G*K=9h` +9#Oըe:j.T0CD+n-phF)EMűF9X-{eV(IT`R¨]N͛LDjҁ)D|U6VyY(#3yspo@9φz pgINbWG +u!YΟsãI +SJڀ x2s+sP;55ZC 1Ux$PZ-׸stMZ˜ ^p aӹRѲwdnXGiI hѾ5n&P[:!Lxi!U'(OzՙS)4؃GU9C4@j?$w ?,hZ_d܄${AS4U;5OC-87G%EҍfDOSSŮy_XFXKMJK I 49*eEْBYK/s=窒*;(5%%{jʑkH;I2?:Q +!Tpk54󥭼gM#:jHff@LkA4Ȝ rA,SeL60<+Xw4DD)?39XFM)[)DyX#˴xAObPFvsPMeƹڀ(}ȣzҔj H8[4gH=[]yFL *kd=&ʤ>(|wH5T&YQV.Z/5c|\6RgI@UfUMbOlդ2'JIQE2Qb!@&o.m5Nаm˃J& kM4\QiS7!irVH`VkjEǣ_P;=I.),HJDM Mruⷅ&sɒ¯&-i.KodcdnFqu5蒹c5n +77zT+;4GS̵Sfi3N`_\.sW|2&/(`=ڬvH<\!աf  ZǀFPqPUPk jU'1IP-P~0gm5ɈyacM*uS^A CQ ]ڝ(==ڢP/F8"zT} +3ǘp +G~Ў*B$/Sճ*t):~Ϻ;7X KzȨluTSb+::=UXK{Wջ4V]Z '[rj:$Kex$3m-#?0)8Z뵭^&S@bZT 7hqW3gbZtP/&weW1C6UcM\vk\WdV_5[LӒ@r:JX!zzķت&4m2E3&Y6ZtCҾMj'К5~X .pK1nyI8%0(YGڂLq._}<u#F,Z1;򬙓Φ\ZWK*H~k6ꊜ,D>NVjnhƟ5hڵ㾰kHg ٬8ekQڍX!JE}ЬYu@{_Ks✆>yK;0$ptG\m47r~hJcz-RnP!0ͥO_[f҇d"겲kub(&jJ銽LF"ETLԒgZBRO~նLu]u*Vô;r-gZEWL2$tΜsهN)'PU +rc[T_Me;'a5 +$lnɺDV|MhRD]Z +⺠ SKWF%d +^8{XMJAw5^ǧ)DZf":3̻e>kHIˮD +G3TE,]4mJ]q`[WdUμ *ЮDsuTbd•)29Z͒B}5 G0tj}抜=as}F׋+-'oi~!XJ7˅,VL?-,N)ZLւ& 0 ņ>ۏg_Zο? +c2߼`}#˯)pp(VBɤ+ް#5pdFt3ɤԮkQ2V9ĨR~6l [KP +{wp\Lӎ{z :'PT;5\?/|cCLi%pJGQl/wrSp &=%ɴYGżJx`͜.͗GjN[-ͦ=a7 Nmizzpkt{5/i<6[X6;>OOHU4iO>v7Or(6m=鵳64n_~3NAŢaetO]2]g>2Py(ZB;q")|3rrS;^,qB`dH!f/@34]+rg1IN67sy\' FJJi8fzD0s z3]t-G')U4,{J`@U=~ 0cq2BV/ј jKӱeY<6WFY'w16ۍnU7q:Qw +'~~73tqY7OOz?8>?}tW叇_;ߗ?=?s5]#ݏߝa닳B}7߼{}0/߽\l_򻗧_xG>@> G vd?(ygEg. 0^߾8=;rmq%Y$=_kZN71?(?^}w~{6#NP]T<\_o0[ƣ=~uwѶ7wh:4CO6icx[&[Wt>;_7_>c}'ygW1%{}Qo +3=6=zWB춸o`Dn'F0vQ]<7?v0Ր[ra}~zq?"H}>~sN˚[}X_3#{8خS\>=?Y >+nwǿ λh]>e#ڵk|b/yr{>m77߬xݧvuZ[?Sہ⧙\{1±+ȝ;7;v1yrڑA.Z߻sBcBB_\\^nʻܢJs{μ pXW dݡ^֐ogӳWLٽAUm śM7WO<5v\н̽ވN/?qMV~a[>?]?ӛ R7j$^_\m"Ku<{ң7@Ϟ.ri?g\ZG-2r齹Ev*{ң.m" +endstream endobj 60 0 obj <>stream +5w{إ cg.m>;]z"b6.m{; إ=v闲 XzKr?]C1;`6YNvb6ڎ _ PMxs~B7W__@έ/ڙGБX| +i} Ó߃bOn^,>@,ƽX܋ŧ!gX܋ŷ?^YSrN;+^(LBq*{Mq/P#l_m>x²qbeﴴi2gb;~~ +AXSM+4/OjǜwQ|ޞ_We_i6-WiZSK4=GPlMFӓ;bퟭ r?wlW&fGv80pPGwGF̧vzlS?W7䷃rDO%I٭Rsc-#껛WE=۔#:]";Hǽد=5g#'7ߢGMFvbDo(Oo/^^mpTٲ+GN]<Olŀ|;:?hu@J}4>vhӺg[T}\a+G{ } 7;rXxߦ{Onr{s^MN½kq\ŷ{޵sZ^}s{~~Qf?*C77wݞ?>u->,+׽#1?z}w sC_ز bNH{hK'h)q1$/;?+&S?|W M76O.{OD=Q{OD=Q(%n)8]3=UnſmO^y:=jO>Cgv`D;Rxf W_<}~x*=xܺS)Q׿n6=x2vd?(ymIaﱭ}0Zrj[y{qofa:L`p_<(okh-/s2C l- icㇽZ,qy"Sq'`D{yw’.Ƕ\{yt7;ow<=dӳ˿\l(;McA3_RW=ϯ6PgmkS~}YY7To;:d5Գ_}!m޵m m_6-+ؗZ{׾Yk%Ooo\*wwJ~1M쫯m)cCo~}Yv "v%sSg\}{7pP=e&9`;wB>^.!pn7{[SExtn9>C:ݲu6ۧ{to.ۧk{to>{8\\nso Խ7P@S6P7ys D:}yrFCz/,ԧ}F۾܎]DT9}GSTddvWq,V}}yzGLU bX~oؾ.o'IUvM&MDB,(Y딏o_ݝwę-&(!hz}Ӎ4[7Rn8K{;gԦG]~͜+[Hn}{W7 5:n[/Kit\@C99_?!'Q첞׽$PkRu:w7盘}7}]W +ږ~g_Ȧ + +J6yΟ\ABaZ֟jA +h6Ha_wwt=i_8q=տ;z%Ǯ=X?Y熞K[Fz}}]BOp~q(9Ѽo"c>=~brxnA*.I߻}ޱdO~|yXYzyyحz/fz"}כK+Zv(g\\7/~ h!V;rOD.QCcFVh"5圣^] u 'wMyE7Ȥ"&{8&є.L:J00m,Pf4S`R(D_ (K7r(khiʗ_K",2돬4b<2ZʧL)SMG7e +И -HYq(KOF䣡$ ʴtB$ޖLJCp#3r]CP&e_'=ާ"50jx8NW14"=uX&7;Ұ Dsƕ&ج0TJYƱe`Ewa`.ˤnn%Taca!;FR/2$x:le:^6{ )5$̣{eL8-e| e/T e#lrޣ;f`"|̈شeY"DҰޅ!i7e v^.03(EbҾ*tCHY|V><!c h!XJCNKV'Cc%i%|?MV8?% )$ +d>h.mr4ag# D׭({6j,f Sd^,ixhL(bHD{3tS,i2L+n ]'fs_/ )BL1u:QE^Ʋ'uu$`Fט1I$ MN/c[^Lftc!)$hfqP:fHe?ЙI)hX1Y [>X7 -WCsO)X+3bGrHl[K9#u4?@W!ùNvTfASlxҵP\;~q-s+L0KĢ^, * E6̙?4C#3 υZqP.QrS8PO)\Dg8>" +ðd+1:}dVe3bh)IńGQC3p*U8i." CM}kX^̺9 4ZmE@$C!sQ-acbRZiD)H%Þt0Buw,L`<[#db[Sl`bڑ`t:jq>V.!y`X~?k׎,|S1K) eFviZ:~0oƢ̆| +l01BAo SU2nok}p +f +OY,"F%DB#}1φe}l1IW=Yܡ/Yv)9YeTa;6'~O ~|d!nc"c(p@@TG~)yH6bNz܀3Pc?^c I!h+Z`o,e4Cg i8tǫf>eb˪LQQ3VscE6$˖?CK$YCJ g:6(mّ;v`x*fs{9$O[|+V` IRHwC +zQE%e@E9PYR.ly{6wJB[\6!,҆ii)bG Cp? !Kv4™ 3ûp   _E}ԥx43>ߑ'`O=\DaC \Yş9 +'6" e7N\״p-ߙOx13bټ,fn1g%sgҡ?A@Sf,˶tݹL&|WhÀ4;q/.ޅxX$9,,;O( Ƥ\\A>\V֗`tr V!$x S+^^IAx_ E<]0-x阙ps'oaH࡙|W;y*HdYHN6YIT +)֙PZ, +(iǥ77e>w/<,,L!G!I$beql^]-˼hdW}}?Y0ispcA8몫r9"gR+M`^.> h +tM^ֻ 9b +-fJ%_qey*\,c/6g|@KF@*BV/?9H'(Pl@!>8aHn6%` >Z<,t[8q lv"BG[,Y6fw91SH(@"Տܤ8iBSDž?oZobAD8QT@6`)bhHY?r=EVL_Kg//қ"` +˾b<~c+BX$~qPk[fD17 j g=Vo1ٕJ39(bH'nG(,(R +O9 ُ”]KS 8!82H +S|t+cJ8ȹD"%P?2xRxĩ!"#T~l 1SR<%qB`Via8yZ|86㭬yF!HJYT}yAA7bŢEė1$2k,D8Z,E4 +)g4$Y!d:9iq,N9Y!x g`M9x.x<,bb/ٿyc8275P'F^D!-s .M>mE @-gםUaZ3ܰE[g?fHh9(x5vam~ETzǷerfe~e>nQ6SP,i$VF8Ue]3 %ûໆa#\"Ipeȧk^j[~& i1F҉;!j? *^M\ +!la#G,53\ȊdOaX$*؆*Ry$XP@(XEMT&p)z1 ^, #ThfwM21ET(՜K5kVbj@ z=Rd$'ؾ hG1 =Q('#" WDJj*BL:ȀxEɫ([ +|L#H+rbMBG咰1[^#_(YQޙaA36-Ot):$\Ih 4O͝b!r+X27zY,*< {FH&7iT,bqjBd$#U;IIa2H-'ȋ^bQ4_:#FŸ1,L; +t1Dln( g&ÿus1hŻO)rSYVcЙl &1 E«Dm#$!ZvǠL-pU uGr +eͪE|폼 !:|P;`1c %j +3,:1H; Gv$Q7EG7"%:HaX?NSVY{=3ï' +(Ջ,b̑6 + i\&к jSA/؀^bE)ēEզnh$V*!߭3!?1&nczi77051IXj#eYD|E Ld1`wN{slwLIU2f9ΊC\fVt<({rc7G~0w<1cEڥ"8. +e8 4^Nj%|g'a&g ͏`( ? +{9n/пѧwPnΧ2YvVedќ(I1230,7Ђ˹z7A+ 8NZhg )Q9^L5w m1o>JD29/AgXqZqCk3Ͷi^D'5/q"h8[ X42-H N*͹qEK@H)šl/M9 J*+4~AC9#q FNV9fakEe + Xl03/0` ॠב#f ɋx,.#0cgUimEce d/Q7 9p'aA ++`^#4 [,C+" 8"20V\&m-<-=[O}RLsc7ܰ+S?ł3F+ JgZsY?spL}F @!!o!,m~kfmYg2IjEH.b51/AZZ3|aChZD#aUmŎ0Ja,N-׹e;3 C SjjfͰifj}̌{0?C@^b@smqSwO@V$&',$y$Mo 2 +opBGpiEq~gQg^gLv2G'#$MDjdl+X0"!*$F '##^ l~@L t<|PN%flenH Ů +0Mb= =1<1{D ++f2(F6Fy9ĪÏiY:!"Q\yBo f}Y B +so"Cl1SA]8,XxX#d02]y qX4WM7=ic u %+ZNcmʲԨ{K&a +b&k%5Pn9%UZe6gf6&ȗόHF*.֥_1.ñFֵ'4 +YS + p}f*Ag#q" +w["%As*M Fup4x13pmo۞m'JD%5Y; @r)'[OnDZ_r3FPASikKqLؼ3BE`bGPOɓ.(جt(`n}~d՗䦩yM=E#\Kl#9)߲ _TJy.c W%O"emwFY Q*~$#,,¶LoOOS)"hݜO+KR>K{>9Y,J87ND;{sJ,V}';'+]leH%ƌj`%>GT  swkwc2Y϶&} 4fBTO'++ݡp @9_##Fpғ9'0W|) nU}L?qZHϟԱv=2o 8*r}Pr*P .8C u #O'H˺MfLid}Ԝ`NSĦ;9QG'$vw/SɅ˛ҹ㟬ɥ:mWT*ws#'\5Q5_ۻi~Ee{l5|b|}uq}zwouy;SwU5ìL/(KGqXTV$R`:"/~O63Cׅha凞}M3?~onO__x;LHseoMjM6t:8CJd/&u^Tw)9Ri>qpdP~'R*C9%.H=Dl{:0>Ϟlg'v<Ӹב7s~>~}Lxx/*mOվ \f;קxK6B֙uEG"(qtoE + 3D$hoF2(\z9;ub G<9Ok,hF9;ogw\e 2Pܖ&ؓNI+m9g[Ց\Ȝvpq}t$օCh Rjo:m& y9yrnKR)`ȁz5[B޽UK5[KޕV O|'RPҗ:a}ËRJƗ('s};h7ڵވGm/Ћ=/nċ?{:@=[YcؠLsCeohiC[Z'_\ߢ8\sui٣</D5r {_ҝ0pKK |{Ze"^}3 +_-bcA]猾f] ^wF}]^qJB9>S #$\ FISs€!;]Re8s' = -[P%΢IQ\zIIviQ mR!$ӥ"0#89T&lapt!%0c (eFfm`e)@pg'ch/ +ۀsBY .EaLi[rfb]|ܞgP/`̙T&BCINBIQ_3Z8UJN+؜k +pT(e9Aؒ頌,MWeK7MJ(ߞn5tFK)eXq1GRRʎrș%DtDZ`MC(98Uݤ(6ݎˋƕU$!HEn;q9_6(%L)Jegj0k@ȍYg|-veNFҝ32=GׄTWB@z\`AZL.fCOs_LH#q-(PE"KZ;DF {$#8ӕ[Eo!QJ0RY&5PN#%#z[/,R}8 j}* \FXu N;HI%o@dZ DJ!IQ̰\Z} ײ|Gʝ;h\<QBiR4#7qDdz(GJdHg/"baQr-b/6$&Zp]Q[,F +fJ +/E8OZ0z0Y Ẻo 3*;#)ÕF.G%&'XP #+qf9, 0dJv#'9AQjS!̇7JZǵu XL2AnIʹY.\ #3Vp%[@+2gܓX1$̸\fMLjb+9ʻf?2%K"8o RBF&7 |CJfeFr7exҝ閯'ŷ|>ce7z=@kg@b&[VhR4qKZ*M͔K] iE8SU2z$-rS,Z0L8S}*:j!pR]BXN ȃ +S@Z}ѱmE(o:1d;h KL] #RC -) +k llZbF@HU" r +oR(rezi_ _+U\V \HV̡*_}"B:TTp=B)QSqqd֦vlgRF +Ӑ5@"GD\#ʿ%Dz..҄Y`Iošp)Tw|΁KH-9HV$yuB@| +/CLjXaTfkmϣKTseA~qw~Y5>j4]%L4߾:~q`?ixbqꒄdg >o&} 0␔y2m5>p*wa14I9gDQE'W!9F7XT?\?𰠛髁ʵ0z05g[1GzZQD H,jopJ"qz*IߺR(pSO\F(DBH\"s +շJk+Q`1|W 9rVG%|AkfYmzVY1Dl)ɼ9Tz!U'Y>_u\oC| )ZR !Nx>k̜ŋC/ώuoUuӽ *JLA%FwFwŠ~ąT sj7em<<55tQThir:H `v*@=SΤή*g&Q^a3;id]@ζv#pM2 0Q:<ۦjQo9S}X۫^LMSU ԮwL8¹HNJRĨJ/[I) ^!g5D|5|?L($Gi%U։m,u2]8:7UF}U[i6^@yF8 6JJc&)aӛFtV-JeqՑH*1pd!N,A%'ˠ(?U,p= +)=X6Ke􏝤,J:O :\?vAuoI)_.v bQ6cQ!7Ab*Fstp/ +NJduQah+XXfM,uHG{TM54:PjCq|Z?f"<4Q+ +)FcEԣArCwPNpSF"[K*L6.ɗVwu 17:I4jBmsdAjt8A3&`[H"ςI 3wEs~{w<8z"$ѵgHZB{$W˂IT, 1hDIGH% ՎTTrتُ5ԓZ듦;x:C7JSu(ӝHiԺB$݀4ݧR%A>u۞JjFm:1 T\MD%Jw3Lov:0V*}M%5]NN.FzTM +]nHPj r#=3]Л>/Q++`l +w)(R5a8j>ȕTv +s.`KSt Wpq +ᛳ UվbRD%jq9d)0lĆh6k[iU-kn5+p +p*6,p*6,p*6©0ǩذذ +2}pMq*6©ذذذ +bbB؁>b[OlXTlXSaSaS)#SaSaSaNe`)Ts p*6,p*6,p*6©ذذذ +2yq*6,p*6©ذذX +bbb* &89ũXIT_T_T_S.f)p_T_S~S~SQ2yq*|֯XX?ǩX +bbbgS~S!3U`9(֯©XXX +bbb*A[ZLǫ888WTlTlXTlXSaSaSaNņNņNņU888~֯ɕzl^lM> +jE[a+9ei[M6ɭ_euf=66R6u'a|n #lulԫMޭ䓕d\I\3"hbhj/IOؙMn&W'&'&mfɉ:ɱM69694M6ɕt66TX&G6921M>:ɻV|$jwk6yj+ɧ!69M>5iu^&6dljO69&{jcI65S|us|^lO9I 95<ɻ/u.mz5S㮞ɻ)lmztݛvPַj &W4wdbvjw:&F,|!ܟDl;{dǭT_m GњDFXՎT,8iP j2Ս5H>Wb բu&郆I-Hc7O*8 S{RUdP4Rn'K&{ǨwfHCH?f9z;s^ + eR5yPOICT9\̄90榕9T* 5+ +b6>&pQf z(祺1?_L +0Nh!"PXtZcNj =]; ,#Y0}jPjs&.5ES4sCq< vspG\7BB(,JqW/>iT Ť G&57/|l)9 GA3{VJI1%}DRQG,(0BQIB2sYUXN/e1lҋO/h;"(ІGtArb!)-VjX6xvAbi|Dq_{YL_ ~ RCr«R|C7P=#8-qH=ְn$Y Ϧ0~Ʀ<( I6Q@ UYRHƴW[XbTtV. qBhIQ[=ȴzZ<b(46Q"B34$c\ " U*njӸ$HѳR&(H֌S"3VW/%M9uiD,hbTV Odu5Q3 1L& c5?\cmEƬvkBwb ϩİ“NpH̠x9G/=Ʒqxu H|jnЋ55XQx1H(X2{"Q)KMinSxZp| pFO:, m$Ȱl4)y1TK]889$=Li^f.b AjO kPZF"y5fݫ(H/DŖsګ"Q$ Z~pOj2Q3j) +VTx!F4!hEmYs*S󞀌8Ygz~ohH4bjzV&k! P15  +O~x|XUxgh GHiH +M"-"jEѼD@sgߙt϶O~j?N_K3Z,zg `q_EG32H@jeyBRD*!  tƄ 3b̘o43AcF+3S*xqF9C"7ԼFD0upƭ4aF}|rOW?iފiݨӺnudLܺ- 0x60J +1f$]hLC1A3S꒓Fi?׈F4ll: ˴JJYS}'wJ I#6excl2tv5 +1܄8*5ڝck5!i'^hp68J/ G^9DK:vƞs{&5[xHӿ _]z=l EoPOBCt1^,~(,f8C)/.~UEe7UƇof[GKYepZai +%`_Y.sn+6pPvk\x\gb-`6.HnJF8.&v`fw04u ?4̛p0Z+rѺlv4`'VNWʰy,61WWH%UE%=4Fg ZA,*9?~Q K[`&m H$;XAne:&%"wo +x|ѰD`Ez^^¤3˓BA4ڟHV,#pd(|;{xzmƉ!0KS0тd4yϢ$і&iQ-Ck$q\RNZ+((:gM[c _>H'DEƨ4$ʀ6(녈ZufE Ab&k~5Q"H!X&9$qhxh|qExwW+A1=,êHVvJsx9p )jE$L=9^nƁ36lFx%p6n ^גp$W:E!Ǩw\Ԣ4?Nä]"C"nhм5G|iH>9%yj?D$e G-$$ {"~DOpg\ <x5@!18WpyJÒC#hHbq2ZP"(|V.pJA0iG)@R$aI"•C׸̈́\ ^7Ag%Bf9 g]Q;a9@p@M@=b}q AIв3d݌=,,B80C#Ȋfij~Tq",dF(]8C hnZ"mɁwnr^ qC]qtqPj|pqL*1B.KpR +ĵ AjSG#Xq %/{ǕX5#|IXA:6Ni"U4 !sF^ Ŵ ++ȘB@~ Xd9hU BKȐ| I+I!yއJ9M.3jq&ZMA&!GAIa(n%e,^}T#u@-%Z} h,cc0P'P]*#)JE{˺2VX'b'x0, JĒ8bDpc{`I_9%~hRUUAJA;ۖ5-Ex(DY@ve$0#WŖfPUU~$Glhy"ij=E&<=EI '*P#ځbG'e:Ce:8 +4^U_ƒ#r2~2 EE>[qD"n hI*k!8.x5AG pEe\Fsv3n(-,m^i c#݂y fEI^h@Ĉ /f +Ae Jc=j.`-eՀxhuR&b+`"!pm/h G>`s,q%9;qh'bVSFxITcm# ǍD{D$N87.C 1^: "=kN$[:U!°D$oO _*/`~BXQI+:AXMfr R'>y,\Z @P +&5XF 'µR8`p; h##2w.!\8XpU:Dk)0"X>"ǚđ4$ +CzL_݃eOK'V/s7bF$~wUxJÁcc$ 3A%l!GL{i0P$eE0b#W)h}>p03ˀUJ?g6Y+Mhf0NK^Cˁ-m,)1h,1";`aTG)B808U 4K ~hB  #*G f.Jo𫀙!J%q a+) +j +WP$<)$L +[PS,# ^ID{ajh؃I#QUfN>z04;@/_Gn%|PA F|Og T`CEH} TK 6,ar%Y0GL'%m˓qw l4NрH'Y5# 4? ;F*Z"ZdHZ)<ŖuG52r$.>!@|}"><*"IBT!oAGA"8Y1wb,(׈|;7Kb[AɃ1{`CTt`}'D뼀</f5˒+Eb@xɄA} "vT"Z~̪ ő%,;8bcq%r dboED!`ړc(@NF ,0x)'CJRD)(*‘ H i0&Ix ł hlzP;7L HTD82Cx()qD\EFP R9'ɑ`C MnNjc +)b*0tD<%8g ' (,R7hB$3M.8PO DI$ +ۺ'eZ :y`I ȄEN XƨAeU!]sQZa0Ok5.2a }p6r ܬju{zq&j|w+w!T:-1N+@ywB:Ӕ S=5L  F%k{%.L&kӊ>zj$<vj, loqhS#avtZ*d/a!moV 7a4.o|*/Ԗk;\4 +Oh.Y%$QXRK+pl|/b%^I9J4/~76k$9"`Kݰ2K] }X'}aFNRMx(Tu7\QZ):r}Z]իo]7 +g%/bRkL^׍x9 J?vTկp mț4lTﴇf]wC2U!̿]qPSv.nql  +SƙߕO:Q6Kphdf!lsP'eJ~Ґ]p]B灰"CT]Y Jh=NZR) ?ziYbPN~8873DȰ@?} kfΔ~_ycj \*5t=6pRC Z bT" xѲwZ d~P +ⷦe"$[?(J/vu33D}KgWEDqCRń#"?b;ۿwR]@.9~(CW-nƲ*-ig-~+3W Ӄ$I| 1p8Â*G#,VZޕ]*"bw0 'Ƚ."])d8qviaߚ{Ǧ9A1qhAu3ke,eebbR/WkkG16 /a4o C3p(c +\TVP,iPhDe\f@ 7yȟfx`,gTv޳r Ss912 +uֱ7f8N5YnxYu^3ח=g͋k.0(mV4 (cnF@<3F@Zuf &Q𿌠=fxƁ|S`<Kv="5NJϱ/c>F0{ Iym Ua sf`NP9^ol𴺼~ʼ+0jpgCTx9ڰ,RcV"cƮ (FX3V<RD!Qԇ"jj Gn,mX4NPa7\'|YScq$go_h|jD㕪EEDf"c5/~]݇~ XmF7@gfQe d18̽*CPހ!hS|R< + ρ&ÝC2M=ߛ sI7$NiGûl~0A (kD<`DM8|%$w51fcJ(D Մ7k' [-F&%'s슷"L2xI B`v097h`"I +3hAXPDU8+J]$/V7QV8iV@ՙR\e[rT]ca' FcA_:h$T HuC0m2$~o  :'?<rKeg^̛9-<\hwm d֋16Ie*k౰`迬,2隌/`3z%\I1AK6p29-hЙ;o7srXҖz]xB^Yt(e KyG|J{fh6iLf9,v,2_W-Ǫ Zl;_KLΎ. 58 c0h\ jO#04nkev",M1| +kç1# +],G럇ihVw^XʯKl8 GaS&RV^Uү9n-% kxO'`R9e?#;#Ÿ-O*Qr_v3Rlu<3]$pYVԞĖxFc nU0M TǗNKA9^5{:aa`q$w;k~ زeerPK)IL[$_1JP'wP~A(ak߯7-=*Ɓϧgz`ew?_[ >)ff9*wX3oyqKEF?ˈ* RSd)?ޜv8> V#eMc-q/@|vv7Hӯ f,S"\nFoDY.+o~p}XX1 'y)/eGrŏ˥FL<{ϙ6XQUnЙ7IN@`߫p ]Z=~MU-,x}7] l#~ bpuxa<^%2~#pTd>)D~և~VH۵rE$/mDtUvX2L</7c3bi!3 3ƺ$n ^P $LDr! 2E\S5a'8a\QQDn+-)_iF.bzZQƛD}y/_jW;Hn,_=U}c4jڱm;XKRyE1ze +Rp[1bx-m{dA W,O7ˉ{{%R8Q,\WD Q׷5B|6X'_ /@s3 gm1q {=nhiB: ++ϋͻRcNmߡAҥ(^cZY5-cEh~r|:+'1sw16aλلOǪo/'wvj:v}S- ꛪojQgj[ßbtQ4DO܇O`nA7yӌ~N]jY&aU[m`&6jG7,õ'TieX;5.DQdhu'k1^:ssX‘Hvi pbki&Fs4$5i z3>cE}Yim>7w V]J}h5[L!0!n.se> +jNV=C!!b*,l 3¹bіX П-iE?_03;+Fdj4^EzsR-5My>ʧ\|OwN'yg+8z\~^lGhgDnf< +=ϷLKc9V<Ӎ`$lM1g>0N-wBăzjW*m'+y7OۜN`@2i=*9ѻ[oCaλDJ #$;C?am!4~DwH}Df_w5>_>_9xiAspKOD/fkl|DF[mbH|~8ۯ2Ƽr];o фT2#҃ &n [9ffYlz|cdT79)ϟt?.WTh1Y ./, +ճWYÍЇzOqJn8,_N"1j(9oCE\3BGpax~  !>phKO@4s.d>  HmGɚH浮~?Sʾ[{4;ZѦke64x5~. KOZ[cl&6CGPh|x30-nky<흁vKG-+wUipxkoONP?|fvCL+gT)`/ 6= R:|?pz;cO(i9kފPFG:+B|ﭐ,hB(l귏n$ZPV%B['3NaRD@MoOSǽ݌zzHiԍdC,.~UEe7UN/FJbJhYkw% )kaW}7wF}ovi#TRUWu}Kuwn^{˅zd5}4^> *XAjYδ 5RcEqaߣv l"$h (sE8>S"s|S@?y?ׇRVujl~Lm t:#ڳk2piNj +5c1بJXpEu)$3wˍJ/S`2͡bh114Jz;6%4?S p}{:6{(_H;9qy7.ƥ!057]lʵwop?R!zan_}uCѝ Cmvc :kvK\z6y&]Rjq:!rήdK#^N;Ef ydž+^3n"{뇨CzpKE+\qy7.doM?4W5c_$fsχZYmێB^؈2z#gWߖ.+?1EtNltq1r@:K1ƹ-31^/]=n|rĺבNLTB}UD0ҼX%[?÷w^i!$N}8ң(LH:TF~( r9ewh1 mV6xz>ۏ<ܴaZpؕ 10uI=&غU}"Ѧ[MOZc۩NJ7QT&yid&J5=91=B9:LP7Vh[bQs'wjRJe\e\nΖMU* Q ]}Zň//F&M6·j] i]fʺBwHWUN2ƨ.3f )3Y՞`ef՜wslPo|~xݻo׻E#;<%No?٩M uc1EK(]wWQWez#es9S]r_U۞p=ǗcTd3nuSf^ߝ-\*IM%z?6ȬGv.c9^|faӒ-p㗚O]Nys[&.lQ_ rM],OU!"Ë2d$E +>C])޲pYFE=n*q"W*&%+WiRUuzCҤV;3uWl\.b$׊]tͯئe.YH锷\6ү,QF'i\ؠn)7nBvCf]ck~7څcU]Jcwi՛;o%g:罡Υ7ʄ1mwD Z~L,+-szT/,6 -[~.ݰ lF6:ƶKBݼ euqU"+Qy'yްh")^6/c϶^Eб:(\t w)٫uxisig7T2Vfwxsk۽=r?=שU1Й{Ƹ+l9_㲩,ﶕ|oFx( +6$_|q-s~tq[bUq4])UjrO7sf=tfÐoB| +&)HF4.~Q8$X21ɐ0&wV;UR"'ݕ6#=]5>ޛ^t |j +U;Wx>Jw3U$+3чuy /+!쓶jj>o!SzHcI'מ?vYt;˴o٧FV u=[TZ.d:T)|w?,J9&X52>D{\U훋VrMw-.)"Kr{T6H!0^d֕VM +}%ѵOAQl\+BzNo{L9%:vF~{$cbo;vOƯ\z*d*Yt"y0`E'O˲궟rMz E4?պIg{וmX2 +Y4Q.jnetܬv30c(9\=bm%~nux 6 gZf;l7\߱3Wulr1i+jh6zURڳfc!i%]˶%ܶn^U~~Sq.GD,dÍkO|Wu9/`n~:27n1TȲC~9oGzJTyԳׁH8ӯ Wya2s& s]Y3dDgfbٌeɆ +6)Z?.pb9ѓ,n8[ɚ͖*S2]:`r3w@i3Ap}\XzyY^(y̖Dj~i^0 ^8¤:s{|VE1Y_e)sj1gf(]XK;~1en^|Eo:nl4lsWhO^uQ\,m;3u\U;Hu*{t#:Se H${w$-nfGܕL'' /_:\QRt8^ ±JzH3Ayri hQ@ݤ=;Gq+r2s1F5~'+]_9]]:׷y6}}2]_) ܵ}.E!vZ I U/Ke|6әS<{]%Gn*]6[h̠я.2RO׎rx>dd{+^;L#%TWf+~t_hzr[|vR9%ނnn5MV-ؚ)cgc7~߳uдܼJQۡWשډc&.ћf\ɷy n~zc^yO* ʦGs85'BgCωH=Yt)qmU>{{jJyu^zIR<Ԓ4[S^AѫƲvgIiv( @ [ۀ|S©KФku5ZՏٙg[KQ<_go<\@x6gGP9/ǞRy ӣ̼lQ_J6RAoJ'˧|9 m;\r[iȴ/kҚ;LcIT]7NwQ~~弮%m>w(Df{9 RsЬ`MÒިsy:ۗyiSbnϵn>2Zfw>[ئ)[vSOx&K[,h8FUI8T]$_ N.ޚ\*6mB3˕xQhWzl8u3t,[] +ۮtlUv<|HEJhk)rEmvJ] ^g,@%(QT)bI ixhaEW3S=?M$TWceRm)m1en<īԱI%9dw]<#ϒ\1uL=K6]_ +m}YyRrTH6rԲSƾ]q->  9Z@CKQ&\o[=bxXUAL]JXT#UZ8 r/i)xx<ͫܳW]._Je!ОHobėowPvL!wiٸ|LqȈuWp_nB"틵2uWԖe"3/}ǛU-qV/rՑ /_wshZO2O.pn@ګ]T.wi5򬐍_BZ T,gIe}v|شm4m\u +vT~kK-@\vڪ/w鲫1eGzY,ţlud:4\6L |lڹ6P>(7M_-L2]D:˵j_Tu'yaw;a[YHy>gD<I/,6{^C^ck[A +mvRW|/^CVT뮎ӶTX_?9RLjYhY*C-D˙(ӺSJ[eu(f|FcKF31(GQ/ijpfڶӪIGgB&K~mR+:ɹE\6'.ޙe\ir-\HWJ +E;HNt Mqwuv,(fB H.`A4Ev0R r0of/&͗6Ȣ.)by/&_>rűVhڏdkKa㹲-WGrjs=4XgT[9.f2w{}r~OҗC5%Pγ3H ^;/]DU"rēRl{X(f/ltjT$Gx8s/$mcF)~' i9BX4{(=eQ7TJqO}to_Hyջay^5Cb^h$Z1W҅It7XQ7;;|˝ G?$,0:.r[Oy=Vt!ЏG1O\gcYpR# +[Ddž`{<1/:~qWף7h5ɲF"}p wΓm2qHV(*'[|MeÔk*}ZQ{I_{6™U!m#ay n[CH,s A;,ܵQ&q8`V> E4u}H,RvTp=gO3-[0\X:Oa˹x%(`Z*9LRh edݧ91U +dj w>>Lya$-IdoݭT^KWrw#%"4{^ۗ>>C7oSr!)#{/\ڛD<UZ*uJucBOmOZׇErDJifk0ڊFƒIutIRΐO7ewYK恪};_}\5= SȬl?2)sw~D'R㡵T 6ˏ~6KnR(_쌼˚mQGåo6m6f0"<7O;$HDj'겓b,=C͝ZA^ ўA':-Un _ QE39,=F[P̚s*Z̡ \73A++g}TNJ\+¥4e'⽳DiC-K yT{l΢hđwL(>=atR.‚H IXï7:|؄T?g@isݴV +f").Mu)]{ӪVqT{Q~{`ϖDZN{A.a"/w{AU2KMΡ?0KK +iwNsϛğaNx6;BBYШ1?$ ٫h| }esʾYDžCmm4^b +0f;-JHeqo]߀x|y6bԞ/KăFKI>c;n#g=PJA^vx93UR6lrhrȭz;(,=A˷v7cgtt6kb ȌEUWF$h|%9h4mK/&bq[K'&X&i4yً;HJbۖ:qőԡl"89yPi%1M2U9CK]1PL\Ѝ;%- 8Yξ*#ӧB +Xl,m}Gkݤek?hOOxI4XfJ]Qz0BOvOZs;&bKa6:Mq3eyB W}ۇ ?= Ѽa>3܃DIpliBBokaQ+٧'}J%N&8K.B$,O]j9C1hWlHF֠5Am1+N%!Bb;A,b'w[J#6ј$bLjnnXˀo0))~|5c‡rpMZ?0͔P5&8]xXU ɼߚU]mn&)j$>RU9){i [}.34PiBվ)>&f˰.J/PMH1Nqbb.S=JBKvQiZ -;җUqKqݑLуRlU+:[oF7'*&ԴD0BO30m*+'x &<:Z- Bɞ9TA`kAvg_nqE?kB&~P7O{|U&fRCE 􏏱v?+%>KΗrS>+VMd%R#GikE#x=a\մFk敥'c٘^`v!goW"u݉#~Vst_'>zcѓ򐻔c]F_~іĔX))qdL*9_ĵ0˞ duA1%@INŕ "WxθE_RMm1)^x{8_.k <'E^C& GfUTHbbMEZK4Ppj惡iPWc Rܝzuw?Go%_cmmQck)F_Kp@qiL:P]Hn\D1\:UU1fU@)+aγ[kA'bڙ25RGxeZPGYć.n)7y<]4Fʝ~|\-Qǂ6{UY^cQ#NӱŃ2Kxޡ YhM4RjvB!-V=ox\xPB}OAqj~ǘj[_5-Qtbox dHPs: cnѽ*Qp*Krړd7tȭ +ki⃅Ig2]չAx&AٟsBWYUe#^2=`&䞖jNʮMv\h-F@jiOXP'7ԕ:[sI +V3$`̑=e]u̵װH zWp(u}& ׬'^<\3%o_hÈj1=0_2Q! +m{̠iD,h1_ ΩKZ2] k9ӾZ+k{yWS'omQf:- +t{PӅ!!=^%7ܴn^C`_.|,aa⑸Uj7V' +XT@-_~>/Fbvv﫠W8},_:>0C~BY-V +'z7n/${Qw5y*{ ҡLL?~9豖ꗁ:[֌BıOTg[ OųUK q&;I2=U^Y3>S戧'H*:ߨ6=[z(G2mm/ ^(/<+k8d@36W.tm ihcc@meϫd@Rң`R32f]߅٤,eY3ObdӮcGr(HھW;v/Xv*C'Jo6nyQRjUL *_M$i#)a5H_U>7/%0Nk{ph<G[`!MnH,[#W{-ţWS 8lww]`êh ̈́x,̽ 𮃨?feac˘3(d4Y1q3 /sXEƎ;22[8$WE6qͬ{I2OQhǣWR>i)mWOB6B[5`^ix%9X3>=8̆^Ɍyϐj (ñl_яdDžUz3/k҉Cזu'ÜSWّ֦]=eIDaPKvlvYC2wpB#`h6yu~sw36]܌ʅ?^>Ch 1VÛn~sUo(?(%|I-HkOLj']nݺT @'I2@A^0&.{%kvX6,>ܔ9J,'[}LQh +Gґ#[S=`]`l4V\2=ң67op~H_ qR犖LO{O"7nMx}i-m>#%̌xF6v)peϰi@ )vs vW{/`C-@EQu cp> a+ + H Fv7 +Nى~bcA +D 1YqBL+BFȨHRM7Vy !^{е-R~Ü䖓reQֶ?g? J=^ uy߶wj6v٬šXyrӂCU/?,kS)[[ȘSn7n>#S+veM@FZNr<|g\{>t>>`IX,!KK[EJP[0o#c3U3U +n[n"ޚ}.࠼^Oj75FI-wJ][ꓩ5hw`]?=!*KxW9 +u,[#]=TOdaO]LD9*uL>6Li:T^Yn;VOoō +ϏͤiFV\mYp~Y;p$R\DBT;(j ~kL7^]R]Rt3u+ۏu \012+"+M7n?-)wݹXv Vڂ=B[3nrLzfoRi(uKes@b9 Y9:6iITO\{%<1΅AI5aKw^|ep՚a)v+,ޭ^EpMYe#w? ]|u6/9Y#j MtΖcZsd5lHpz=~.rnUwP{1Җΰx%"lZ7L2%*dϢ玷v!|0Ώd?a3s_3й_YJ jSE;7~O'(#GLS8}{JT0ݖ;O9V~~JBU )Pi1u =wzX4H܇bK-YGWq̧ԼW,A5$H K~NI&7NP)X f:>ĕ+l\ #ű;%B nM兾S= Vf,o# Pv,/+P9Lz]eKJ +Av| 4wuzo~,KR&54v,?*%W*TkTle4>@tlBpTǗ lu/prD08k(*_u41ݠ,OjHdxV75jq;5 +I3bBs1zBOOaa^t8̫89U kq)p0;(_Z4Z70ԓl IskC4g$v$WῊ5z -`KaTԦ]K;B*kI'^V%QVҕH +Qp%*|+#.%|2]j/!) +ólةR#UlQUN**B*vmT /BqT +:Ub^r5|lqW@"#Iv~Ah<҈F/GiuLAՊ}E|JMlVp)?r9XN xO%Ug]st l|B{>JuiqܔՒ#icV{oXn|n\]rVk2W6&/X/tb(WLx`˙X{^%OS/Q[iE`. 0P~1yNrnT4h2}j>Mx8-)v:X +Ybea6]:{v?m,c[L{#wY +X˰gş~'c3/(gvJ{W~YԺ]wV{<|_i>篁>;ݚVS+%d ٞ}DMG=I+?VGk6Bmxy0\+-?\G43tSuԻ>uYlZI^jZX}X32OyK'U2l3,?kY.auwӇ4KG77iv,Duި0ZG*KV:3ǰTi)ӖT+7i_@W$F"NFs["{|jݏJFO;(MVS[N-- /_G7 檩> 3hDCAGSZ-U$ ~۩Y ++'\ qQ֫;zÝ `CtW-'XXjgdQGnF7#e@\q?5s-7eʘ߿-pusaqM{ ~|ܠیz/01X9-fӢ-f>Rٍ}twxĂcT/'҈|*3,Oko6(`klk-Ls+,l +'Vfi|U&.ǵD_7Tkji&݋)]=ӿK<6f#fԿ8ؿ~BN}eo&[0YǨճ|U+lx8S,6:} 罃9 +*7a|᠑X|{ 751ʛ9٭[׆ߙΗے|z~2 &˼iEM#\3Hf2. Gj뻠AfK }A| ٵh-y0sn-W|0ZY//eOgjO*EȱS^_bŊ=E kS>344& /DI>;vdF!ql>fK*ܕHMO~vo"o0[=?򲆙אy!֒!_ޝ=mPfH̲Ovcy׾՞eӼ}?&GKid? wR S[kLkѵ]#\m Z2AZ|D90 ,Ox`0w6.e7A=B=@\GeDZH/3j3@$ޛ492.;ruӁ6Os QlFCN1r8'MWqUwub;ih],Б=KMS0AEIJ: 6An%ZU fٵN@H0/ʬhS?&4T'Wg4r7VNaWF)[${=Cr/kCWA!qyHaz4j4 +Z+#)>s,B|k"Qy`eK+ "hV;b!EPI,;(&g -ymϻo.s>kkR.c]H8g`/1 cM_j)Atpٹn=yS);dGOU kʎ./W="bgs4/^%Vg`ў[ϬTM +ݣ[1FEU ~;e{FM.R`NjG9=ǟt^p].F+T9E{7~('P*7x/2-i<Ǩ;nWAZ obL8$ݧ0Akޏ_F6F|9JoiJ0)20z`aŞ0^tѭ~3馶, +wSfWY)\ Fl]v =6%?z2*~:`ok?-¶.l2"}j9N)1Ԑci=gYGe +Ѹ 'aυs/OT+lqENuf?7mgi[yl7q/!\jfZaw_?zoD,2G!). tf~N.dhJK,(C栘Dy1Cp#]Vδk еڋ~ V 6*#?ٞ7B8#wEj"kT9f"WkEku^[uؙ)R7uߊAͨ _ #ZՓ[KHjU`Š)ƨ! RBͰ—1I{& k٧!g#(ȔOkHqRp##}p;rQZR /IH5!*Ne<CZoC;r߃ioN-H?veWohN妷 9ZK"@~w0"^Th[O9(7]f fMJy?ܪ-{.+vʴ3q]v]{Z0\֛ My2zHCLuDС:cLϛk`"ugV1k硰)Oّ."yDl7yz`ɮ'5+M` jl8ey.{P p{BUn[ͤ~Lri*-2p#,7mr=44&|=K*3IydfRKve_*HM>YbvZR6PM7zNCcH!47ŀ!h2dذB6IGZ,8q{raz"nÈI, SCސC$Q_ ?~5 =1Zy~SPW^0 B0B}%M!*#Fhx* ź^VpnGWu.y۵bڄ@xOS<DGP1b#8E~V +"p溨DU+ x}X5w:tW7 bf/N33NګpIv*|:#S\+J$@V BW#t&\eUz.kKTe.ꗔ ʝ|۶tb[o(`S|RJ]}#ODN/GVIf{t3^%Pb@^ޮ (s*:Ʊ/h"ZB0 L`Û%jj E+ n($8o,rbJ{)Y= +6eK }dԆ2hS~BuH)2F+ב-o&Į +D?zH<ğ 7wvgÉU$nVS4٭%=BZN^wbDͨ}4 ;jckjS}rSx'AI7 |ُ,.Al YFDA +0X.gez +8/">e)otx)3796kkt1;K+#\OuJ;eq>UYӼ?7Ȳﭱ9LH~Op玁U%-rL72\/AcEA;m|-vɾ<u5<|4Ss˘Ҫ8*Ez=OY}r,.7X[L`KzڵEYߒŭR _V蒝T4!oG۸P>{E*C WmKCN?9nȒƮu5fOo̒:T]g46z3mޢ)n7}@:gS })VsōG7`4dT{SܭbI.٢?ٮ0l<aA2XBD81x?sc&H#a0Fc;N;I:S+><3/zwUo&/oL'?7 kv>Mybѵ0I_o.Vs31mpXX<~|&ᇿsZ)PT@'n4o$V470Cdh6ˍ9іݓz۪Cw7ifz z~QHJ%m,hݭrCec.*?ISXkyͭiޥt +iMvq#֗+Lj5ϫ{="N\k?fegioAضG %¹!ȂzD5Wc4.ؤ:f-~ wUZk+z$Ӿ┋vp{ôɿdݹnOf iՈS~/Ii/N~CuѪI'>׼^ [x|#sN$Ͷd;79ˊv>֭с?וRZHT*/}41)">gKB?N*T[ZthTSfI=GC8D\C >soŝ,{͎1Y;4a  s%A +ʼn*vW,Ln{}gط3L}k4K]l8k@ϼyb; y~Z ~xQ 44C qs.T oLʓE1(w!`vzsǫOAn13EzVH= Լ4:@sgPF;Ds/Wk[e= Rpӽ?yAY`O}彪:_Aulfq ~K+{d+=(C"mk[x]&J PWUG4e2dnOsgP|h#\= tΜ[X8F Րwq՟vSj~.o)wIYi.qLπ+1QQ8mf$;O@֨ю[=&6fp*FCj`N9طˮY,1%r7~Wmu'e'Ƨs;7 +e{] ssk֤[YVF4Tr,R\|^Hz~yԉ_ѷ?HtwZ!0$G.JEoɜ+e4U~'5 'QԜJ)=J5vH?Qs>XiZ[q\Ӯne{xҼ hO5;?~C`%|+~ +%BVCʘBv3fۥQvzZCɰ&9؇EriU*E{s+/-ꟶT犍D +Z U7.Uh #S>qnαn^LQLjzKٕ5j{RҚ,,tr; Eh/9nI[gȮVJ]K 'Je|&m}'ZqFh[/{9*w] m>kЉoܑ&!:8z)~0٭7&b۩p15rc+?x5;?nԾ2Lw%x٧q賜),FC:G +*aN"W>7m4xLf5;pQj+z8tMmݥGWJjs{Dstދk`m~ΉgL [C +Ð2 KR"c!-dl.jqYP0e[_ ^tC=ّZdU'fo~\ˮ[|쓉K\4v|T3Us6 'C8r4b;ZF!+ kq +_5ټ|[XIC7RD[:fDN krh%D#BR  Rqrm V{$k@ w}MŶZZen;Q}|ɽC6L4R08?L,N < M\zˡenMn3gZ-O3q;TҵE^{p3ra}[;Ur7͂֫.|SHAI8"]6Ul0\ݖ<k\[lH-iTL+> ~" ? ?BG_EBGT{˄ ;HzD܁D=ߋQҲfָ}mr[>_Wl2uwx:Zx@M @ zgC!D))ӊYR 2Arߟ|}=&IEZq:KM,,/"ۋtXqB΢]C|նbhmδSX៭:bE!.Uc*dQFJM+ 1}W=6-٘G]'dD=C/V=M qVWٝL"MNcΠƝ79U:cTJvc}1mi^^8 Q=FD$QfژrIt7Ci͓b@7읇t\]Qf`,/jiɍR7eAwYq\0;tK6kCA&։a.]o|OwX80V22~gIeSˑ"s͎ ?w"߽'oN6i($窈SX> Cmznốg[mj5d*"̏ >+6+i]Am|Naݹ DkD|Ѹf=wc7=%ͷ _ ͐{KsjG%obbS1۷ΣMa@=ṋ^CM}2H}%孾ݓFN4t3߯"6o̟%@<6Ayq &噣xΆ хv-ОRQ#pt^ %5eF []w;}c` 9ɨE7=&udj.,@5?4nysKi޻ql*F̹Օ穷rz*S i,2TFr$k顳z7 z1wUcЫ-K✗wJӑ)[kӶEf=|:ŤH%GQ-gQұ~[7ozTaa)wꔔtwb^q6d6c?bm2k2?x+uԲQ=Dw5M3-G%0* +J:L}9N(uE55 sG~+1 F[}BH=ʫD,[טIq⾮%遜ʭpcfO۠9u= pSx93(]?KGoڎ-d$H ǰľ(BÀ_{_KY[ B\Y#o=q]OIx=YKL :#cdN_i4WcI!3e5p8ABAĉjkY}ӸLE@[nĊ~Gv3,uǡ>᫒PݺX۷sc}:{,,OJ(_a1K27E;jn;*D G& z7p 2:lԤ#Isݠr|x%M.M(X䁥֦pW:~2,0zt^yR'kp0+f*I>;WUb!ew\X¾)W>pM'-37K=I!#7pg̻1-O9 ++.fV- њ\\1aupy1ގ-eg3ܲGM$WZ?80uĺo0fĹgrϒVÑI16OHE\f)n^I-I6c z>8逎^?:AiݯScha^^8`Ky3k x PYfvr5EZx*C$ ׄB|$vy:ĩk:BG>$?"OI{HPRgs*+dKlZŸfL~>|;ql VUs<Fml}RV2r~=3jHv%g թ3$h.Y!?(1ù~:0/Y}Ӈ0fs&Q`\',H[AP6QO5x1TS)/.᤻Zʘ#Y!޴ }-J 9ApRz:c{ea$\޷lrF vh{2O~~`Jo.KI2E( |n6"ڪG&ҫOЃ; h娐D2TB"CkutC +hΐO8>xB%s sGw:5Z]&Q`rB%`QG͞(ll|?rvPחQ$ +%]o+esŎjt%s#U6|AfH5e&^UGkX}՛F$J#Zˣ}A.O@1*S + (țkRPKtcalx?۳eNоr(O6o7-e𣼿=XFŜ0(O#M8R[ ɠ@_ *3nqXwԭs]Wķb^ `J6"(̑F`\ B2qlI,0O_||2)_`tVVKt nOaX$S s3 C=Kt;WUņz?MG7#]T\B I JW]*%}cƜ89j\2;FeBHOep/Omq+7)҆!2O!|o;ݢFGH5 +ET.6k2܎ -cCU­6P4>Ue5CV&'#<ժK<&ƣT֪ʥ{Hqvw|u{eJ?7-|V㗩]M9B-~KPWR֒T! WfpTPWθe[U9JnbC`FuqC21h.nsU^Uz%FK z')ʲ~Wt%Yʒn6-\Ŏ(GXoy,&^ƍ~bPqUp`VM_!.CڝbZs*PCG D۸yx0-iG _7}Aٯ<S.';2[+4׫taőTQ 1t?ZX#]EA{u$7/5XkL7G@ Ϯq^]5oZn[@xX't xVtK~d|ʵw_=Q@H]LC=.{SH"z֚2qA89L}YUݡE6S ~^FӶ3|5)mG׿b'RfYaTL驥UlTb56V )ZԈ˳>1`=f@xVkje[6yPj*7Ċk6 *痎_h %#E+wx Mf<ij aP\:~;4  +}ׇW7많`)Q6MfN+X(aSג~\,*PPbL(m~2JI $?>m5+#׻ +T,<ƕCt q$WqKnyMy rc +-dՖ{QpV9g[V |<ţ4uZ9E pO&p3(tQU>;G2)vrFf,;/`g5E[c>5K'IUYk{ Y1ms8QmVo CC[^5lK\3Xܲ/ZC`חQf6@+uBW5f4idT䷚o#u1W=" ++*6(,tWJZ6'$kcc OtE\bg~:JT7m2% 5zĞօq̭)(z]AE~nG퍺"vi[ L̂=PeGQvQݞl?Z m:ngm2)9Xꔧ4ﬡ\$I~;U@,~`Mo)P'-q1p^B99Z}(۰2^cn +XXd.|xXǢ&엩i?f3NIQU'tBݛ΄~^ 3uec\|XɢYyQqO~ G쀪͐< +N +gpzJ,)DS?|5xHEș0w0v|IQV/-%3xT5E1/ڄ,lj6Yo(Aބʯ%P|Yҹfw~wțPcz%mpgAvmWR,}U|tЯ(< NM+1~,j^.gyݻ*zQUɳja!MR˴r?\*Fax@ ZSx K嗟֜K⿖\"vïQmϿzD(]~vZuާ:T&m'2?J+ha/X݉6 =f=~&KH 8v'.=K?utz̲ښocҧC?^~VNF~o}=|f=]+kwi%LE?䶰VʩXVK+A*Sܔ;hR%]^V}:Q1༫&7?AIҥٖm7Ej +1bs>A qP. tx9;A?oڽ@m[.6ug.rD.W\~F&nwtT9񢇽ET$|ˍK}S{KŵtyY"nG ,FoyvSbtz.wk%CM|0w(F;x\!-ťYW`.d TvMܒzMPOzWțJha^-$;ʕfF?C[_KDmjEh0uJ`c +i&Ψ,M+%/UD3ioQe;Z"!EK7t "(VFdbo=nE,ALt^CQ *)Ϣ1 ?l +'5˧j50H)f<:yl=anTJ^W0`%o]k1{f78iH*u\bg5[pfj3&_ P,;mDS8<Ți;Wys>\0trj;_r8A=.^.P֕fH5*?Z,QQA?ՔOd_ITS^NϜe)9ɥ1\2&LvtUz6R54h-LM+US.VX839Tv`wVa^L} Rz'mF3 $ ~Pqh%cr4ǀ{.~GW5QcT5UYgJ{C3yI/mrj}&]gXQI1LbkR~Ʃ1an紞}y֟m*Ρ5V# +wd͢F8m0ۧa4iN>:c&f?$X2n W_K* ;vPw>m[M*ܤ>Zj#EGއ Q3!GbgA w54 Tf 2;5wZlek +.tᲙ#i +! yC-W5{lOI>ы:F |HҒ*cn5@wDp +ZyzipзcS-{Tx,-M  +cl`l-',I#w[{YjV, +ѵ5޽ 8_;7:-U `"wbᆹV27=ቒ=an֛llAWcRkݥx1U@2N*Q&#(pY,T T_h3sĉH%3-Df,Qʠx6,fН\ :^DWwz!|^hk!X{Vo lnspXσ4;5&/L/MfSxEʺW?gp˙nF.ҕOE@_[˟}o-({S V"Q0d*:K L<+ipom-BKrtPy|!t< +},Y4B&R_wEjpmt/cgd.kPH'}0@_B7) Q +ñ>m]<")K=_iVSfFX jwN/|*yĒ +endstream endobj 61 0 obj <>stream +l:Ns=eZZ>I1Uf#0uyOI}1wIPߔe0ʞF'.щN+B^'ZFg>R +  ֪ylydjc;]5~rq8b]jc2IdL-}#k]T†?.+!=RIƠ!O+!5imy43UD;=CEA]y^ο"=yjeP]-h׎a7+TϣC%˭:Z>k{^z~KYM?@&qS_*2Pǐ>ͧǜ~J%]?2a?+c͞53mJ(AL .lܣP56%6ah܇gX%-=hgTqj $E^5n}.\u7)]8 +)[*X|s~vxbJ1{wE^Fr" =ŝ[;?<{0Wn}?p%qLeX̜cFk2vdjYtK(/eG/GRA:pݸkpmwN|ΰl;`U5Yl"{-e3!Ӿ&R.M4WaFgH x>؈]QJgZc&$jil=$l*LY8֔ mK BIC2rWhJj6ܙ?pkEk~U؜Rr|nFkaFB'_ͭ#} %EVU85 ij7CY7eTb-^RI:!AB8V{rm~m).~ΙS6FOBZJ"nj $ ?k*!g }*]-ȅtֹMU~I~F<;GV! 8Sv؎ʣFN:ӻ6W_z()A2]=@@35":ƅWT :G$-恢1n;v~QrV ln1+I`^`Zm^zfFNwG)h*&QFN^֎TnRQD}nR/Zv%jVNwްEWCUbkEhi VdPf[xMt3mz%R׫_EN=`nYo6tfiHXSv2 +GGЪP &0teQB1߯!OUk6䃔zK)ъ̠^^{ju`-ƿ=r@4j.4JL ^H;h6 ~߿J5*3;4T֙{wJ2[£{0kVPK󏎎 +3Ccֿ\v׾}P&9+Ћdz rg*߸eox(kIq/\Bڕ]O^tGڔFZ\RYЮ`LoY눍䐘V1;Rs7޼H&'5t*&wc}km[ey̻&=zQbf=822@n]pԝ_WYMv\?Q~\lj] Bpj:Zao0\;F]}~a0 tvDȇdLB]N?zXe~vWluYKl-$вS `ʋRoї յRu޹,hZm N]q2Zߓ"cV1e]NGU_f#{fJ^Bun6+?K*=] 7VL3N3jM?fa4+xߏ^| /QŪZoD^NKfrv3Qyu9k6xBrH'Q(~jB]caR⃁%e\ n!:neTP`wK2A~2VU: MnA\k/ yy2矘Cǐ }ksW6}ˢHH{sԊn);t5 \7tJ1C[7cj0҅h/o&Uf]u~\N}$K$h湚b9s~'JJ.J%!-- {yrƱ-P3Qj[Q6^Ќxf6'G1 _WϷ6pF:G-_TɍmZMLlw3*M(v-KeGJH'9dtת$\砑Ls- 'dΜSV*O7^62mt1čT9wH>B9ѣTVʤ=iI +7QD}ICz)ݏ?%7FlX.g~Ν0~o+ՃD[k _iLM]1)B;gcf:&C+0GvϬ Uc$暩 >Qۚ8UK*%h1r]@Vm*f[ Ψ?"ϰ6?2}ZB߻ y¬ (q7oD}?Z*^hY]o^,3/ʫZ][e݃g7{A`ݮw]ځn`:-~O!6/sKr`b}*=~Sf\kO +MW.1DK]|4a݆CdO;,_ŧtiPFܘZBoݥ2&j琟?@؛ho'";`ChiPi6L,6q;u(:q/:&J͑[Vĥ7 wZ$rŦm }T0ylC +:6,,md=Ag`Q3@1e7 r'/W'~ꩃ+T^sՋb{P)c`xrĦ*R@|_eF̲x'n^gb֚tqVoj+t<ݵb\?/Q֑fst5#ͥQ4'MwGe-X4eAUo;l8N&؎B6-@exBwRx=::WiDBVY~P3 mK, +!8Et1n^L#Wꤥ+7,/ǐSE 6ee`󶐔 +9{Zst4X@:d F>ŕ%?~l=v VP/9x&NQ/?EnA.nÝJ5~iCݬ$<r|PI+ai¹7jH2 +6UM67%6r}'Mw oH$j"횅"Gyy yv\VyLdBsGTq[BJ=ؑ+&[]< <-b+|DP 1 GQm, {f29>$O4jW9\s" VF㼮Z80@[{~98owW~[<X,:]?aO +93/Oq`{iDoVE8b/PJ\m0w~U|\t|i˖0~2-OC[y+ +ѵ!ڙHqO2+XlKn__7nit傣߭)vm~N>*yqKS=9 YɖEՐ +ipb⨴{MIKi YKn]&5|~v[spT }`Jh,|oM_ JԑW'Rz~A%újկWMKwA=lIXIՂY3$5UUc^DgHՔe7Թ~WpG!{WEbC܊W;<*]Cy*p|*HmgC޸)u?kɯgܟ;︀һ `dt*+4 JSAM\׼2EŸan0@A߂rd\ɌGKl8. BDZz"N}rg[{nŐESOC 4uV~ŗX'}/&E̶g'IC-UAͰFQW O#Գ8Q#oct O)S$Jc-}R{N KdQ.i[eS3-2jkb~skt,R]R280?u"ɰ2vl̆fj(ݕ.-{f# y~6|iUMN1 }4&A١kF䱈QP?[MEdO?D;F*:Z[֍v@v[ֈ%&ma.zVN a-+$EJiX_Gy؆wIA;|XZzAہuIki2as4U?L[]WQ_B$: + kX'{I_yfz_r5n͡;+[芥B}t>F3ɒ vCA?nK8|8mL?֏U(*لiw_EwPw`PNgq9/7`SGGkp-Nb=5d:'q +yZ>'C9\P$A +? o_ўCf"zCF", 7m슳 ƞ2T:a pӉVNa'y]ԂHf2,m UE/,k{sVq%_g#јrnzjt(:i2ZפbGۥvxmp$g994i<[e8~w|2nBAdOmXjQO$ 0'>0u2䈆Y&]c\m +feAi~Pޓ6Gj ϼnH-SHj?`w_o46BVVVXbZέ(}.c$ТV7l@V[Wz~Pa2qNw}8-P.h*|:C?>veK9qVj.;3F^֭g%n`:?#t[s +˵4^c[Fo?HhrB/@E=yGo[<~\TSģE 4ެ^pingDnI%o{Qc@=[i)!Jp}~>/wE&'ELw_b̤9pWwiFJw sAA陲끜| C6)WxbE17gypA1pʔNF|/X_On{nTzzMLjp:eO_Zi=Ys<8U["Dϧ*$wJi7n[&݅ +$ٙ_9h^z-ģpY)q<'I\K_ j^rhytߨ(%"aMԈkӞS~/+ݼrm%8] +h +:tPa束54Gmɍ4gQugV_jj qk~#kϑQ6ؤ;rj=Cc +Az?$:пl\gs0|t8'?V<ުܵձ q"j]uÁ+!<J7LB%!:+@YP$PuTCyNW5KL es@$Em.iS\On%b5Yw,>MRAB4S Y\o7r~;,JE5;+fxK_Jl[YrY7U=%A +)moPw.+J=[Ui +! ,쭁.W:WMMLW%er@CbЏU M]0NBit}K{wL;۷ +OQhtYeH d̘TuU:$^zŐ`.smKھlbioewU2(Ng{i_e_t#CQrQd,5=ְݤƜ_KF[s*n#^|b,[`1`մ Ca:s bkV*x퇹["=nyh b"Qq*8WhgaQ~?=ZN(Aȱm7Wd.^g0J4_Q[l;@|R[2KAp+0& O# ɛ9QIE5K20,|Vute14O+ 4WbT(1bz(ѥͥ#kn) & G\=`߁$ۭCl|XkjkԝD;8-ړ4 ?snOX +~?m_& 5jXys׌{y&/.661)H~GTD 94%ɻ[,%Z}r@ jyܦd9(( +Pvgp )߉Bt'F|0o(Z0l +S O%yZ~<h-Us(Z"*b_.?$Cb5w4;IKnA5~]e8nuO1%^ zAr"gs]$(R=ɬ]֭ԚZ:k/EhΐHS}_aQӾl%5j^T&* -IuL?!0 uGD\'6V+5!<эj MmUn(VZڧη9" k TWC<33oVWqf E# -kʨ +!m,3 3>x4 shi-sȁ$ݧYi*vi̾iB+^V0h:[v־c讥(]ͿJLte>F.g;p1J@S^v2G6"#3G[# puNxnfWSS8ּvZ5TNĭRկKCJqbj}yUt#PHe&_iU5B%x2U*3Ϳ HCG!!&r +i]X*!rEq*A]7*XQ a"Y+JءJrz7Izm3$+NAսPỳTQ򛌘iaȻ=)b9l^3Q-:oCJ7+^e ^2#/ga"-oځ)31vsS(Ν4ʗ{WQ.0 b/U"GLksDA'u@wegR92&O6|v"4[A@Z U0dDž"'k(F吔/\I0[Vk1N>6hV9C $xZjն3t;;htD*7{fdлy2ڏNƆVm7>{S GY~|q3|N:5~KOF$S2&=fvVG\ݼ:2 {} 8GI:Hu*.0J#W W:?F2#{I/ɼþzpن&ꖀ;j?ywq3_`Pv0ϐofdPq\o~x7$'$*IWf^):jRS UJϔdk˔:Z۝CKk2^xùRygl)uB@f75/~)vYUc=YmOMXB^ukr(*u7jﰼGn|@4Px̒Ww`|_#|EJNk/ցޫxڟ{OeψPmgdu-]z/ x6nͮXljLkj@i2A]A̿MmiݟJN Ι]sYd[1̓tV [sY`e8ew9Aq׊ēi2![)wPtus.<qbwQT:l  K(MZooECQY'рɴZ0яm68ٹLhaXA߷g?3垚SiWv)Z6TZ棴ίbƗ8K -jl`~b=gam|ipޝ23nj=|SBtv9˴nJukM[o4%mAJlwntgG!pxfXS~K9ŸaGc{0Ok;9X%zE b{&(2CjF +-pT'ψ*w}\a@\x<99LIe//c,=ۍ%oSQVj]UՑ\ʜmҊ15Cܔbh`Re㻣i_Q1gftt[(Xwz_]h}Rn' - K6ͣܿ%-.Ȓ-D #o)d^;O2{2~|xziڬ駳C!^q-1-W12kd~q"Ɏf˯']cp6v;ڛ%;tާp)m/'&sJlm췧]IK|\-fsZHp}JK>Ì|^K + k>w]S + !).ͩ$NVrr">ו=*{ +kS}Jr}kV 34L; jokq~Ajk8@V ٞ*Ly|um`BU W",[FM6{͂wVOO40jTc_[R0৵:Ӏ+]\7ZU[*r0GC_ wKn0>a^@NDīxRK.9ǻ狲_*_Z7OEn8.)Y|lQva!圿83앸E߀%:#x'QrhLJX$|X}/ܻFZnXIT\ES4gzg>[Tm. Ģ~NNV(2^ϟ+?Nm_۽Qv^oIk*4Hvxgoɭ_Ѷ:W6(:֖-ׁ@M+,0' 2D#A,JdVjB~hZ-lZX>G'oGtO + j5y1z[ݷԐF6gբ]-]3>"ϥ^1DϐzZ#??jTM aZBWl`>d0%XiYu=y(c= +}-QSϲ]G .秛gч}B{KgܝtCLj/>}fTTѫ등Fdu3)Q?gpӶW-ʷF"ZJ(ne1_cTMħcm.QW/ cWvz?zRŬՎ#(w3SYUm6W3ZT9L4ORKo>>V>KC^>:?S0$ǦS:_;pPDzk~65@$9M{yS"jRq#ڦ2 ޷.}5M&fw~,Ήi;~اf baǯY(>bj;( bb%nېѾ{i~y~~S0 3}烰k4>N"r\f6mfj!u"Dئq3mQz#/w; ͟_4< ʵh_ou[Q +dMW;#n7maķ]Բ=Z |Lm(,= >7躌i&殅:|bt~>GEU=5jΫRrubP\C.sGBq[t⇼`kb޹έ%gMTf0A=&c): +>,bFaqPwqAk0ѫGY?# /XMKI=ŋOp~Coѭ>*LF`,ڠz'vs͋FZ8ZГu>j.X :d֛$5DŽW%HECiׁu@qgkXߒod~8V7Wވ~gGzS:\J b0?nFͦq5+ bhELK5n3aҤLڴ^M>P`0F^O'ӣ B(kYJ!xouϗܚL͞;Ho8e [,\]Ĝ3k@P .b>s_v-}qkQ€BsP4ʫM7left}朜FsW4{c5FtBHv]*VwoL\h)di|uGwΔCvFnJSx\HF&0yXdf'j*5fNVpzZMMd99I6m*шbSs9f$e>Cy&Vެ=W#MIͦsiܯj(L5E9?,*TϵvkI/xWԉߙKőCo}yN4e}a٩Y3u^SPt&4J?]~.͖|[=CDbpbU(MA Ū^7Qo@A;/߹{*&GP:#NNߣ>2ErW;{NkdW9lgd1]Ӓ4%6I!b{u\r&FQxQ)$>ԫ%hqo<8rblO.NnP>sfM^'o +&O$ g2%wtȳ]9cED1xyoV~0?TR<`Թs>ͧ7sMKX +{qߦ1w廭ID.>юH@:-كD"[N?h8"t˅`MX ht^L9^CqZhUos1WRZ8 .yx itl{31Y> +Rn&79% o.ރ(:v'2ʦ +F|U{t;9QAa +~$.բ;iw5ڈ$;ͨkV)3Mk ^v%Q]LЊڼ{CuXOgwCRKu@d$`riVow 1u%qYEi` +uF'ò[8 CxV,;xVG[7줙 @g o>fE cSCP`&[O9)m@ 2jgHq1=..כgafPs e/j8A[& cG/ lTcΣԚ`4l=PI)|{LxR:,V/s!sYq{Yܢ'-pLvsgK(^_2]d ,MF4{DX?|*41ߕZ{"kE(1ZE"֥af ?M1LxqQ5-87I%p2m܀ҷHVCgFxd+R^TO` />̻-{/lYx[{Z W{/`B)?N@հ21_Z|±%xv0fcɝ'Òcr j8Cy|C?co$閌Ø/\m_xlTR`\z,Y\TN|;r_HmQi0w|iuzIΟӺk(KפYܳ +zO6ݍK!V{"g8pc:m،]6C9C*Vx{!&5p@_L嵕v'KgaoJ8UsZUWW?{o+^;t^΂s8&uф5;1e̾my4=^wL8ڢfĄ7NA뮵斾_^^3]㯻x[RTM{ ~V}fo^̄L/tKnMӻ]Cthe`l;CmII` /V\Mi^G[YSF#L-Em6J`k"av6-?x,Y6Cbo}P#׺th:(_ 5պA/Ѭ'kN 1Yphy} QVլCn␓Nk;4~Vvq91$e'SNCGlH_6{_Ke`2}& og>~Gچ‚5kje0ƂAF>vlY@1VX f3&6E?zyBZ/*,Һ]M(W]7kyXO1;)Bq1!"Be+_/q>eaُ(9r %a̱6Sn_\3f;3y#|ȱ:E}vE4klv PGO5BQ^]^|ڬXoAهNZfi;RI΍ilMM=MQS5o}=t '>ڬ*[ge8bd&s{HUK +LbW +:zSS7C.x0:V s&RyU+٘T"wg͋hq;b#!R%x'ZiY؍xprN6ʪs}7__,<|k\zfS~tm\='5EU)g ѕZ8&"ۯ.5u'z'")Hr}3^Ӕ^UWA{yXm'̫X<~̚~Xyaa磥w Sy7#8]s!Z 娮$.FTk9n;д恮ha6ԻmߨIٱ >/JOjϡ:6I1OoG^dw?BmU >E(KW9gTK8[ +lڈy6{(L0=}TZ/ѵQY#J8#6vF͵Wd̋{+!+Y5@\Xh3YF\){QFqr}sQ_w/LT;2 qbAϨ:ݝy# |xQH;Tk)r@bdqz}kQP[]I`6%HcF潲WdLWFIvqn:#NlTK&??FZs.uioCWTO/n,`>CuN ȧhl> IC?#<$8i[7EtkO~EgO{q| N@GOoݜjAF,tp/TpYo!~XkQ99sF[S=3/h1?Fe{dVڇ`ݻ <i?Q^#?IekE."'`ƅ% HxyizeAIm3l8ֺ&ҙy ]3?B=xcm8F#Jweed.;:n;/>y=]yGm xj&Z2\&c :@R⡩[4h>9:86Zj+z??a V_e4XEqϮ<ߒҰRآK]vqfWx,g;ĬTy B4Z"1r|Wwcڰe>ΔtgHw^eX`2.9Zfcз}"Ǎ{诃kdt=o} G#f@_*2iGaeT~x[ zߩ[c􈣶N/iIu &/'Y/geGQ7:xK_אDWu×>o= 7dky9_ҳp1hN~Ps큷)mW:DZ`Ƶ2Z$o2 x"i(:G + m2naM-)d RUf{d^f<] ^1\d +Y鄧~^*j谓lvɯnvݘ TJ ρuݨ~-' +J?|+žlCUpҠpQf͉$uMH~/p5+[^.vZ}|JW88ЧZ1䌭Qƍ!ޫ{qreZ⤣R=N9.d- +<<֗ , '΍-g(VmLK_F*_AGh(\~驣ŸiԾHSt?G_~CkL旍J2|.Z\ƞ90 iLsF;n'tu؍0HQ7|q5<8זr=+1!Jìz[`Eprg%\qv+kg×RW?xWaL+mͦ[< am^m5FxXW:8,ų1*N .e@{__V8/$_AQ8b̀r@KnDӣ;Vjdxmc8.|FtX ~*)ZQ㪫Mbo~pX1jze{nu:ngN%?cY>Mfɵ R 8q>.3­^23ԡ՞>92 :k1\yA>ޏgXGQ >>ϔF/sךcA⠾wzP)nXع#31V/LZ2/{ aH7l9bA? +;}xOK0E/dW|Zrhžbhx~wr8`  wYͽTTU QnԠNϫ>1w@ZuY:tS ju oO["B,5] .I$7\UtRɶ/'f*w\NDM1ڛV68Hgv91?.V&qRmk֘/_fƾ t8]dޘtw8Tz<1rLGk4.W՘E8?{aj ,LNWs}$ |`Gw~ߒ“C/0s;2H9/|6χnZ䀎02MqMZþ,3tCUirNzT2yB)!=bo'n5gxz^US %7Y֟LrE+& TL@ZͱZf + +4"[U7/L{9濡a ŒNac0^3,N2kQ4655MQɯA_Ej`}fW)4 +:HPHyX*% +"XT݆5iVljL'kvwM!$O=7j Kf0Mxhu)u]Ffdj\75;.ZR#ݵjRb ](2sme?v;@2JodԆh%}z፧^Ńe:@/yf ;wF -f8 |l'$U/EtŦ'=_^>Z:VBGXw MUZɖ#( 2\Q,_2 ^}o<yHm_DsmWBW_fjuxir4URvWՄ,e:1ӎrEA{?dE:\vYÏ~E+b_`oY +'XGuظY DT\ irWפܙQzj +o)sc\9iG$V84R3tzH'Bv"\ |ɆRuBd7Rv +MPe2'Puq9䘓yF fz/W(1¨@ LBUzu +x bZȣ~Rrh,-+IT|ȡ|Az/y(דB̠d­D7~qL}{2HB2%%:A_V+rddԵp%&wЪ&BӐqԢ%~3iw͘tiPSsc7n(5&,$:0{x$HM)Uq?E O*@{&cz +*Jgn0Kxד!zuSh9اB{HYd^.׍S$#\=nlEj_L8ߨtAfk*v:}ok*+|gY3Hxfuby >iz}^NXNCt1'f$MwP!a*G+K:+z6뗮֝ŢbnS}艾 h8~_ꖮ~)U"OKNv^4e}PUEݨ'M/~I7LSϓ@:]Zbg b!L[cKzn*XWF& ֒ /i[kq>f@u4*8<="3tG~quZV<9m#DOQ2d#_O#,1jqvq^??e^߫ WlZvj >?D_tݼ +)tO x{'ocƗxF#2iއj׿ >~۸U1 OނaնoqH^I5(gnI_8Չ &w(Y(p+_>@5S=k%E gS 姩7 Brjxʮqz6_"o9^o'r 3Z ~KmW_Cߎ_W%7aE}E' wC_J9Au|VG]=ZU4W,z)#}qwqj0J< TkoO/X^ܕû82UZJT!_vq\IQfCqnђe=vՃn\SVK] ̟g݅TU8_ez,mY;uB+n_a>5Y+z{S #d YFpT]7*8w囹?d]# w4cmxzc/tVT5~e#Sư% $tw J`B*N+"ݘK:kX#b` AM |~UTUxv +6/%Ft̏. 5?]F +ށ=]_)٠dllڄ!eQ2)n+mM\ 9;u+OKLj W3G~^ԡ3;:<̈́,O})Y)Au!)a5_+*cWm:rGmQ78=ot+r6Hk|ًLO%m՗g +bk:LyP>0].lͱҭڨu>:T~XC?W),n{p+_2zṭϓ,X?eR ҃·06fXג5 )KՔֳDֺ΢;Qt1#"ەGUяݚkT7 v /\&vjt+mFƳ6Pw 5Ɛ"3 }_>Bry[n_,Gf=ۣ;w::eS3٪߆v|d#d+Ed8}Cu~ b~v=&h@YsbOv.L:e-=7N'DcN0S[e"+EN=+ X=C֨j}|{qDi*)iU>@~dTdTz]#[LSlhR  +oL _Q 5}L^dI&gl9d/7RM/L{,,v m +IwWtfRɇD>< +jpǢ ?=SѺtǮF˨C._`@"@1HVGmN<Ͽ42 &Q TǗY5Zžho\%I@ +dzkrU>Υ#1:~Z4[)H߿'/*:ӄWTAR 3zÁ?\|WA_(AN(y%k MhE迧f}雱kRձsDI_VHLnRް^Gk~{(SIpܐɀbQSneJʥ?>W"ޟD0hp"Gϐ),>w!s6v@SQNĹ 爈?v79Fz=k͌RHt+":mI-Ͼ2as:Fa aA>6V c88E]\V@G9+I%dC{!L*NN{`z@}mzJ/LQ2drS+\r}gXˡtv7͸is}Cz4_`Om{\iug d+ݖf3r-<}y~}%چo^@腡.N¢sP-.MCOY%W¯R8v\h YDbɦ富>!'yoA@*un]X:[vۂW*@Pm/|[9ֻRKy Zfȇu}jzjGtГ^=`zH2WzVTЃ?RPTsDCFP +#. vQe]pLJ% NGχ`߶9/YtQKp;$Íul=4jp [P*%Mg9+"^1&ɴ5*'qkeG"$[cn+ݮ/\ Ϣ𑒙MV@;n['~PI9uyVrLpA'I]3Ć bzn]q,{pQ؟Swx1eg6q_ҽp~ +챒pu#+UtwӌPU̍!?[KH;xבpm9&q>12,*|+EFڒh;,D 118sl,Մ(ڊߎl4~R|ksّk?M]B+Tcgq[+ Hhwh0ze} k>HOoZd8}zWj|+CBjIδRw i>RT6mwӄ7+#rRTTEk .O6A<jZjFݔ +ҥ%5dQ9ScTc_:QvN4zTQ'٣N.؞dK +})Cި^g\䥴OWWjg4EMTǘQgI2K)vNմo$FDOȣ6haߧ SдE`iFs%(/ ZrJ?zOr@0\v6-Q\|kQ"\-}klyCj&1Y +z7qIw#ǡ8ȕt@`UKƀ5ps0D+<ZY(7dU| {8wy6PT"ڪr*?'Bٕ@2>úoQsmKH?p*ۢV4~Zn;۱>zT̼.-ėAX>^R~+h^@79 =gc~.|G{f;oI?Jr0pp |84"6Tތ~A}8Щ#)~uBP ڡʛvkԡ[ 4(I\@6-Ӟ9ӂ^Ơnho+1ZFڎ-OHaG {f俢>_QbbmR҇[l6uP֟#nŊ̵o!Q'YaIzWafd*Cpn{esL) +s^PяXp*$<,{3EejO(ch#7t. w1 z~҂vogjaZ4~PE_?yޘػgnΈ?0JZ{cTh4߮%s[shQqM0vjT =*:@#cU֟Īԯ6[,-l57We!t3ik?'f2JU~ڬ62Fؚ^߸0ǣ;)$LU'&cfuisHD{3n?Ų t3ܲiJ oo'LSϪJݯ'&wY9/>C"cߡ[K8pCF_aÙ4#]r:=Vyam~PkPq^3}[ )qѦRqA˷{5mn>i=E_6Ϗ\(W*gAMyI3{3l B!VDj.n dG +:O~[w?x}PV558HPXQ(k[|$[{a7ު]{m%WSS} +UPV] 3Lajb]>"8Hf&nnN +"#Nn1OUdzmUz+Wƻz:~W# =JNɸRwgztz uXO:=i^qZ5v}1A[YړLN+GTў(шK- zX&KNkuUV^vLɆmsWΘ{toTQۃ dE:xK곗} +=q|5s +z RWIjb2#{#)a#˂%V^ݹL;s"eW-UhD%ùdF}{-4@-õ.,KE#4AiZ3D55 ̿tC{5ۦIB}b I\/^4CK(c ,&[3N04 rR Ś8Z.6?R`\p}G * 8Ee'&H]7Hbݼh V6X'ޱ]WB}cmt8ݦV +Z=*w1z>#;lD65(s6xߓ=Fw&X5w.n5@о_2ΩDDž[ 9I={:cäҸВO^8Y >֚8CVԋsCcs[YJU@ a;4ưL-D|xG/pY}s?+Vn$j? +HOE7\Jh9\J`ZQ=:QpYk[(RB !*jDpaѡU:}}̯݅˻Hr$X&эH3M[mrFwBMz춡֡ߺӯ9gJҒ6R(dp>zn4ׯBZ{F)W:f솕|̕9u$K0VxT`YH漍-k[$]BQ=;*Ƕwh^0 +bVw1bO=gl<$wM[ n\jگ'TnjOupgF*|[ZBA|74v5UiO89xSaa5~]{mn,~理Tuvy&ݪ /Ύp*uAli„%_]vb5C.g\)pE E W_$JrhXΡ'-SzernM/(TdG_=oŀ͍Ur$T6#4в|b?ihٴHnU\MO*'z\vԞ_ <|A])U7Dد C zr5$Int$\VbEBW:.%(£3d̼*nVPiwEӿ'PB1շt[֎)ΌMJF 05gF/UP:ݵ5QZX °WVJlf=>hl^]b{C_1qA t<^yOu)'f.rգT[bB +<.jnߖqLefj.&G_Y/ o@BW +|:H߉sCCz8Er766UrG,؉sj)i{3:ڱ=QbXJn^wu!on'4ׯډ徨\\}ҡzK#9"] mwmq5to{Ist|(Fe%̭ 灤ϾweZ[?%du >1)?lⰦUQ0 + -<:dXYo*b"5 >z +q4g\8? $uyT^%ePO-O`.7kԾG}ŶU:S?i{+qPT7"_"ǽ[Gʟ tCՊ|{T]bQ.٫Ji-OkݖLg?a3gQ%Beu vC)%]vu^-9W;R_tD9bwsđ[İI g2mQ2dbS|N힚1磃:{YnlɿeE7-e$Z +5UqG62,+!E|ioN]WM[9hܿM֒a_mHƺ#bP̚$Oڻ?NAZq[J;)[rT~V.ʀj _ +QE a^yԘp5x$Uls5=Vɦ.j}xUtb͚kr}Iy"Ζ4Цo}H/V 3bR +Wm{ ;r.ӭ1_󝸕Ak}/SEs5@1Chڽ*ja~:Rg<K٨ÝyS? rI[/u?NP}=P{2/"7 $CBYz-sY-K3H~f{b?5  \#bKsQQeJk*hj025Y9A]ZcpfW ϼ 07 jKmwSt]Fl&nMvk`;i ^,硝+'J0< K8bɌN_2' !Է xˣLz@w=4dx*6udR]pf5x8b=aq QwЌ񜖰.Gm:+s4:'~1S=`ЕS+{xNЗvFc;  5衇kݖS{a?kVp-*v/,X߽sH+?X51k˰Ƥ ,_p l|ڦ]ب=fξGp-scz SV Bgquj]Ml鏰?[G:Jgn)#?/`ǽ-GMzZǧ2|~,V֔^1.*:Q- vah:|`IG^d}W ܡji_iAA NQ<[Pȵxm` q`kS5Q׼?ϖianRC! ۿq< Gpc\\jff>$f?vN}Oc ؓ +6mzXo/l^}4@ncNGW24tыEmǁ_b nNKK>Y& 쮸v.bDQq]qmY^q'aQ] 6:8Kuy1u%FUJ\DMcx7Et% (* ܿVM]1%RI23贕.yqr.gq't p)Q#v3Cن\-7)(ݏv59! zŁ|W>Q>uձ엃,׷tm 31#{ 1lom$hS.3c~qhNS)?/핦`Z {PS{+z~_,Yd)}7h?K5X^s6nsFW*|tiG՟]{w8vH>aipf~9y ASh ab[c2Ytv)(nBEtr4p~2_|KF7ߩ?=mά5ؼg̪K*;{gdURzkK]E{xx[.ՁL|tfSCz&~ kЇ!U zgw3g/p`vsŸ_Ʌ:)]֨N(Fէ_)?:Ҡ}).)YI& a#<@>8(9->nL{6L,a5}-ʑj`r4F h9x^W wf&#p:Q\ͫ1ڋ.kes7_MR k۰]br߇l–0nܨ7缠TkaYg[:v!߿)HoZvľ_D;nϝZ]f8!=֨fjr-LkTw D* Nt}R#osz4کv kx.4F^-}xLwƝn9<ϗ똒Y@ 5 j>V3Ll]hq + +<1%.%wfAb?a-M젃\\DԷK.dg=i*OF"2[M&Eժ 7yԗýn7ZrI@0|j| >vzJ\T]MT8tut7ׅ4xyZ},_wF|}5a0C_MN̆`مv)X53^1g7XxJhҝ=N˫C"5sB?.4$EdC׌ã`-Ktb бIjۦm1LsS}깛`^W%uRm=e-?YO+{^:V(3lva:p艓՗M~rhl}mc};= f4Z9i R5p[u\SALs K& ƞP85BwL?].5< #J_{>dpy~F7XEnl(䢣$(r+~(SkAߗZtl9j5ƂX$MpL#{dQN :mIl{BXoZ{h6HlrQG+9y8!ibgjdrZ <" w:R +aW=)0*NE9,.'mH\M6{p6svn%Ku]BKF(cîr]s+=S}OXٸD}طWh=V_>plLZ355/7i Hp̧z],}fVYӳw9\w N[ч͊Œ@-pߌ.#%r}s+fIndQ^)dň4;j6|aΝ̸ w'OE_/4ݕ6c$"\އA'M^p; +"[D!"}-[=I=h˺ۖ=:Z("fnjT} +rXye)#V*2QCX__1XMW+Ư,uagAs׬mNYw٩+H l)D!r ;wffOkXL'-];v0C'Mge='lObə +m7b@:-\+rOWzm=b! [i2PdίEjzeahc1aA\3+ê7}`eˑכ]̒*fi֡ݝ2Dv257t;=EXv=1I-ϖN#CrCz\iMd587:2=f[U@WLv")8 +_r6] ݸsh;RV׌ x)rۗTK廼 ߕ6$$CL]z,[khJF66.iᲫG*-FOL_Q[g(5azKL풄>k>?q$`~bءZ1oK/dn+ٮ[P2۷k}*ҋC|5?N,^:z|<6&j#'u6ːd˩D>fF嗗qPgqӈq 7PNq=bDX]&h4k_l,`w7)~7^6W6F?O4N>VMV[$e2xy' .fnMIݎ_ܯ'QHIl:L)\V,O0#Ŵگg -h0wJ%=nQca-Hs +W35خOښYF\VSZoG'w1[,dջ-*':sVe0b1F{Q#3p]0GF~м.&Q(7f+8s[__ӓ˛{8x׹K ӟtsWV4ZG癗T|J6 u#Kk[DF^2꬜U o]Dґ!-*oSIDyʂ|O s=A/۔^IUq֝YtfڸH,;Ƹ=7U>B\˝3ysO֎yی|q=Sg{Tco~H $mغ&i3 c# +;0_ʻk6[H{MK5N\9ݪ7"jg)}n<{< siZx7RZZkM=b}&~_#'tyi}㾩[ hPSڇ]xϠq5rM[OߋwoP'8V(6t+,x.}TXqDzٵ?tSXJ)JRĿ,VRY+ЎE{º~ <mXgbEWD%#;=n_rmF&%q|z 6B cYRn&_BmwmVV61% ԋ6n]hbqftPLE@=8KXg5?h|Y'Ǖz"`˯ `e:;ܲ6MO3Mɺ!gF#ID̢jFf\9,6z-}(6dA> t? (DK7nU [?&޵Xׅg<>[9(cm=:Q7zO7{.Sl$[r= 7;P Cf/S7CxBd;nynNS g{'m7w][5\1&9S$! >W|r,֗jSL%#L%yxۻMZ9}@ota޽\Կ/V!|^ +ބSTsKKBS2(|"8$w[Gfg{iɡ軛PMw0[bq< 1衁NJaLӧ]៨/a۾FcU s=:_"Mg?N]kZhr Rl{~@Mw@vtY!lQYQBh-C~vPrϫ׽i[\WqyIwǏy+ǦQ;;9Ů>MgcVʴn9B/Xp4;ӽ,<9oqf;ےo֩JgVs|!t' .(xhyk"bģ_۟xE'6E˳y=]nzG\nܖ"΃{<8|AÑi:c{+wV{vl廃I>ФsJU̯^D'joyv.yOGyv)!<Ԝ*5\9dPMh>Ra_Vg2z^i.-z(9Gx 5sW>]e}шz#8R{sOv(:iOoZ7eL~V-r"9<%K싈;5 T먎nk3hNv_OBIǼQ(JJ0bФMӞլ-N{Vh=K;9Z~iFcRGQjsi)D:G]*lVq ɪTI n +4vහX+T?sۍ~n>n2* nx5B9 9"3W^wfKJyaH :9fy33e32@)sbf"; t,5{U'vυ'k6/ߝ~=sFUZ\9sD5 `vsv u[ׇSޔHK['BynrQFg"\F ]P;mB8w{"}oJ:>@TF=NRO.z31,s_A^ǝp|\0[taw]R~X1Fޚ\h>^y@$>p& +~BdtQ5y+w:ټZ}JOv2ע$|D=swN$yļC޺CXve `k1zbĔ˒:o0j!{gH2=U)mUT߻̀lhyuEO+9MCz,U}RМ;n]1;/ټP8^D;H" ߍ$B^zS/eyOǔK9m*xĽg!¬%EEP]nc3 +Bݑ,b]YTS%e50- +K#J|AnB>Zp4|W=lϑ)lg`K/8h*XY&>4|_dfU=t>GA.Xf>sxBr*l"G7T/rw2虄cpU_C2V4]=*5#JNj&5)վa>x]&3YqZARw­$L!X֔D`N95= +aKt{?iLf"G}YL=X6(ոQY7׻ofnj G-oQ8t1VRZj{׳꧞d/c)z&pL_T.ƈ-4^1e󟥵"LjZeԙGԦW@_BD6ZPØT_۞/T/摨 s[Jؤ\|rs`0:Ѥike9{"bl\'(MYKVjlHu7ƩS9L#jU;u?z֫o_f`/z?^ZKpߺLӿWAgK?DzK>KW$K@PB%|M,a6j*c-?&.&D=l{9)&g[/m$e :Tt׆ކ>9Q9ߟ|{47Hs<!UK-&-#Ԫ +%(Ԟ[ l-ARcX^)ٹΟ)*O)wf%^{Ō}HO L/|Ǔ.:Eȩ9, EȊm)lu#ju)ԘܦC:ȃӺTuéeHJ2:rcfC +\GXI7eG NSow{vU' E8,E]oxkuqvŰ/qV}{6ny,L{ZתGGVu9Ys*IiPsTjemʅhO0Bi30g%JDT +Dʌ8JYJᯭnVzs56gtGݦ]W:ArF7Y+KQmׇ΁OyS͛-](|[k_2DaRUAO6vAoQٽTqFع'%#Tn݈D5Vܭ.ś.:-ND +[Ĭ 1mӡ=H +7ʓd5skߕV{nw޾dlYP/>/zO/XI} |הvg9јB]]~o]W.2FkuLci{-8fh4V8 ;mc1'*CeLbISI< m1+3rdZcR-m[t%]Gǜ +nC|A='ڮEUN`͍ |v\FYia +e^`N|IV`C׶0BogP2RT͒W 66^%2҉ ]Xdƒ#2߫.Moŷ^vxț,pe-s/1}BX/~ʺlU0|s;z'6Fa48ڼovza8=]i?{Ψ]~,ӃT >`#!NϖrqֈDo9'׹}0!3* o8[ǹK(7_/CLQV9 MDqj٤E)Aƒ`e$[xO NpLTo80?tt>_zV&A 1քr\yK2w=Vyd`,Ypj”h:p| ,JɮsvS7KЯdL +]~! @̂ U^#5<ᒎMBvж,f%ƹϤ\.I..nrhfЫ*k160ZpV˙ +t;FW6_e- <$beØ̏㞭v 6/]?pk{'="mN4$/ܲtZ1`[Eh*^]-]r7y;4U7mzʷH}qBFE# nuSa6H}qT#.ŹͧbDɯl6<]saﭡޫ0{[tqbGjjU?~iĮycKchxG%a0AQnqvB{rEB}+T2[+$(/ΙD}ҥ|\;7]hUn +qa#Z/5 էM/k| Z=գ57,*LⰛ!70'kY̚ݗ$d+}oG>|u!s=-ItR{D^h⼪?E>yI` 債PF'$wvFl_B}d/_f"2{ iW7#ϪY?r rw-^L9ٓٙŚ7v?=lK IQ=agWs!TJ_yս*ױ9"11n?drMWm2vGyp!Z/O _oMA5wo/.a;iU I>t%{&;ԳrыˏEAZj-|d{IL,fę\5ǿJU7ml>c~zLzցir:檖ml̀ ٕ?֘kQc1j eX_= + +_d|?L}=ǍF*ŢTv3>\=^h*ף]M()̑Mӹ^;7NkYvT_*V]7O5uZVUՇ,u- َ&-.1W&ԍe9?ˇ6LkH+\#%&l N{['d/( ~EgX[ !qٳDF^;z +/Sc6X2"¥? f~HGi]uIi6(bۇFĭ V%C@֗G|IԼrzȷx-m2ؾ9NwuAϭCd|n^ZV=}& =[hMpXO:v7O՝1X>q"#ګ{]`mTXtުy~ʏI$j/P?օ%Hdr.X˸.A61<59M9?;]ٮ8 ?):F=l}羢ab39IE(_W:q{f<,ꧫ辅ؠBtbv%t'e,z>睺=ljJit vy'u4eph%,U"|F5ѯZZ5%CcE7rGQ~O=./er(ae#BQ^MVԹJsA|=q[Fh uG^pۯפB썸z7_r4*^F6Ze8 Ԏ8ӳeXǯwF5úEE>@y^2}ouePt1A;%S%8fI8]ҵn>.RTi4fױ }6 +NnhY@gFİA%{@!I+|csYtٵ2Olƾ)]"MM( @ ̓yXmgأuPd29FPꐋ*bu,@dzk~>!iX$sùk-S+ f {FQl8-QzT(зk߱ZqeǾ>[L8ȣ,_vll~ڜn7T?`/ 6Pԕ6@7u5N&gZeY~~ME37TJpZMg0⪶Cr"{J$Q =Zb(۶Eښ׮S-m&`D524qӕxhI{|\uPၦDDFש,\rx ^e8wZy.4i\9/k}{&\8f*R! qA4Sv=\]ڃaܑLLmY/ Y9(PyvFi9,?*F3/ 0i@|ڏaX szz!DG!2m$ޱ')tZ5S!eF+FktV.U1Q!{G)9쌖 n"/xg!p5]{ @=G~vbTamg:Gf/#eWvg{r|>Һ&τS^m2pk91Va7G0v FMivoIk0d,+hrg KY-=X r|65Vf۞"ʲz+:ы=AYBp7.|):Ov*&NyGhT {O .Pa+@ܦ]y&-{x%Grv..2ұlesN!EW!a {Vi EʊҪal610 )n"quA݉J%ϓɢEqyqJn(|:zu<<{Ɇ-P + D7$l!w.HP4y~LAz[b6fEҁ]ҕ /pvUkztSČ=C$yNb&z9CEnySLP^ɃkemMSCRnֺpк@e-|xS + %BŎ巪\|m޷o4(P-](&՜X my +هƞ]T35h"q9w!4*3 !"IIjO^M2NOc Xg9X@oQPYD6;n쭋d0ߙ24Py-xm"Gw8s̹#&qw{R1Y$-<ʔѧ룀m3aiJ^Qts*WN|]`Ӷ9ΰA" t(\؍( w8I%nﺱDk[tq|w=pث(o(# $0bJ,[SE访O*vg,NPZ[5%Ûǯu:ð!LWRQ'pd ?1TNKS5C7G 13$r~7 DfUV}=%518oztG;o2|d2JfЫ0G៸c-ێKb큔f\h-Զ~32ܥS239e7(KII MerXXDO_|6R5fNO>|Pq947 F fڛkbr63PS޴xwV$yy ڧx#^\=|6J0]< +w|i|3/LLg,}C>}tam1v/ ]ce6A 8yQTy-T2`"͝ށWm#YbaP6-ve +Khco=O⻴MA~pJu:g 5{jZE:uIpI0PÙY)ͪBlm +ћY*ԃV0ZPD.mhK#2^ڌe"34j`)J!1ZǠwWs,ob"/Eƛx.Xx]&uj. Jrx}DكS@ת{g6b, ,-5Rv(Az3mAFIAieǕ1 +TFKA^Lu^u /\1B=Y>MT'=n<7iʄtҨq<`뎈‹pWuVgu8Rn-b{.g?sЃwOVFXэnH [>;#0h,r#'6i17mGLvOh +tx4~S`^b t3 5nԭ53,rJܡElP$jgbQ$i7ٖ}Ԕc{<:Q2#޿j2>c1/SOI6>بz#=Ĉ׭{Vs*-ژz rͰ$a?O8CZ3$&[iQ[t~\BuDt|!85=Z9 f­~BYw^(ZI w=. uhn vPGXLpP_;N?:+8j6fo +i8vYuhv~G$Ě2#2@aFש`cL2B>_oqfpA{};t^InӐ)*=2Tw\kN(ZϑXGWF;|*ʅS=Z徥L>9W{`)Y&N,+Y\< EeRTQj闚Xɓ/C0lZOM*CmOT/pq@Cz*W+|@&SK@RT:3Č.[\1FDZqkqLv)BtWzQRc̲va3EdKA8̉ ڠq:df˦ +,K/2\ ;9ss%T_WJ輓dRq{]}/"j,gf38E?=fi 'R϶΄4'A%+nZ 4$6pjC_|}@UaqGBZ$cqD-\sYkm +0\o5tƤ鼌U-"}նL,0q jNbU_O#i5Z"x'^vՠ-PM o5 +eUmdr"vcHF㇭YcEtHFYaT("۰HUh_N]V垴 XПGmQ:n^ScU{\V殲C&}¾:B732sm,!{he" + jS!y5V,ꓤs0hc¯螹cN*f L 1a&Mގ,seru Ei7cèbaHN|xiBڸ +`'ˢf gתTCio.WSk +CK$#]ƹ×nn2kt! +|s:]ѕo{B"|9nBΨ[s]of3&f PP@߈ӦS~#@-TsWn[&LrC?z9~x=]wˋ|jd[ϑWC5QGk<ֲL~a9ydY )񋷲 76D/, +tq;ytL{{3O\ٛ4F{Rftj8c(Ӹv[$Yl5x;i:N *qr 9:'K`{tM8!n-ﲖG|8{[Tf]G%8muZGql&se "\ɣf]R)/ f@_&l&S-e7_%FU>PNt5WCK˖iSXmb?r| hqtv-ƹm6n`TRK2CK㌼v<mp5".&JM=fe$z[̓ jR0Bjz{M%DO*P$AU_lN5q, Y:s ;V,9Vw 'Ϫgۿd-J~]"soto+.DrטY=AV KjsI~GJ)WMntxSfQD{&tcyԹ6{%L=i~v3zqO"{8;iQ%G$X !]=x;d>QYɀ0QY YЪ)#{05%ۓT6S)]NO +g _ThpKpor-H~/SM1RQpT*hVOA3#˟-;قL=Y~ cp[%5sÚ?`/kN쬓;O/WS0-njΠBn̾kEH-폮}/4TgSRI3XOϿ.?%EkMϋ4ikz͟i/__i/hL&b7N?3ikOE4b4H{ Ax^&ቿ zS/T3;Rf~ 3>Q0OyCHdyݼEإ>_ҒoސP=t⦓MDIw»JX5Z[{ ƹ†xmKkn|ce*SsZz-rShǵ9n]>4fyq/36ì kieA|Kmߝ7 k_T㦝X,y\uZ>:>mov8.Ќ6f_;ޱ\ImW-W>aJ oEH3t-zv{+vpk{Y *ZkhE1d[I,I}XgZ~FgC @DB4oՈ/]Ѵ7rgYb|Y9O_-k{`7+?7!j6k0>^U( {tjg.XmTU-C +K@:;c BBC.!sxTy;V6h{~$z4ZcyKtukOm9?`h_`UِuB½s~(Ys<0NWZ<'O;Y3;C#eSnt9tQ!UЙm? ذłjAxuv^~~Qu̹ZZte߁6s~O/%*j"8eaO? io~{&(5帵7!z)³I!NN"|~ƹt~t&wUI,sxŜۭۘ\ITQ@ˇ( A{ [ ne˝]R~ŬX.ǓB9jw.-nQZDӝ%:xsi࡜PO`.џ?ĭiZrɫ}w/'#u!K!BSwa2Fܖ̵Yܴيu:^ԥm?0DZ +gٙK֮TZZ5$hsٽǕ(bXzB}SYCuL\9$yY5 iwg Oy곒N<[y81lmi$T7?,4T7X?g/45_/_&K3L{EV7?JiV_DdEH]=wę!358bƪqJյ KX*Χi(aJ]z.VtpH9@EDPg@d QhмTfb|7bM5n ἬZZ괭41G]gs9U ?EtX)B5]#H;dﵛN{ڸJm ]ԧSPw,%qNyk:XAzInͷnPDtwE6Vʠg<&(Ը9Bn$)k"(0d9)gD? b:6!&VO#(18m>;^_u9onST|qd:$9üOvۼ~{OA R h5,n;g+ܹȸhZP_aGm$ B {#DGSX9sS\֠؝\eI?깔H7z]?̅q,$`-˜5,řp_J7 fpf Ci1p Kk̦ ]{\͖y"r]_ =š幭S6WL0lެЀ(rlSt>}u;rH9iXeT&GdԳakƒNӈʃ*oR-o\9g CuQ uF#MvoUo^v7w2SuRۦ%nL3e7*(ׯ\-XaL( 6~`_jYP(_({|yz +9\U|4l,Fb{c"XwQl0 i!$ō<)yV קz 3wĜWMLPCEX}k-]PC]xoUWly it#2'OA?O;x%?J;x?J;x<hgR~kgMGD&S~ӛ_/i3V_7wc{`af͠vj<-S\sl8sQ}AR?pCaK0Tq'@ Qg0nM)u^X׃$!@70]q.-ۃ|f¸ |V[ZsSQx&!-L1TV6-A]OG0Tȡͽ䜳v2oqYUa%̩"JnL=hnj7J|:dHl]}:WЏst#4ǥuC- fYE2&Uk)iS A9@ UB?7|A =ROGɏ THz%uw[M wݦCW3:U3fM)bktb*WÍɍ eNRKLCfYՠLyG>ʲC,Ee<C"D.|G0֐Cy=hv +XfSn3(6 KBކXǰin:j`vn"LE" =ӬmHS߼!qmtVlTH]dA)-ik$oEaKO[M:5*|6e5^qLelG +WILqo3Ҽ%c;/2`ݒ@DݞVʎ }G[:' =*^vWu];N:Ӳ-(l_TgI(|/~w2_)/I3XO~xm&E4DS276nVkGոC ;np̽Ł,־4ǟOp{)uྒྷWږ4׹/¿T46~%S&1׍)AN q0HD5uwp|)HS\]\wxu*mlf{`+3߆[9~@fɦŒVܔݚ\ڦ 'FG7 H4h0:缝\xgsުlA_yz_:+ f" 5T`z$ +\A6d5_c<-39hzؓ͞j|3]/zsj=me_n /¿ ,6-Lx^4m K6KgHp.7#{<8;M^6|VlCsD.}C;.zC?+ߧf"D#[GpcAE!auצuz;e<[cwoP::!HAV}C[CRM Zb.1ԏEEF U 7}*tmU,DZGνxFmzvK UZ挋YRkH]4=nDw\EwK&<5u#tY/30,x- m%(Z8kgvBZ ?moڮm{A@QA-̕f'wwwXNj FVGZ[nґRA=7eǣKeps¤u(.C]u5Ki6nN3m;'῔/_8;wБ#|B.zv9)ܴJ +UlNRʭ"Ccr|ZsxY2f@L:W7pamygIRpL<&¹ F>Q{Z̼ Yy^2\.v_?C2RO|I wTDzR*n2.|&lN>tt΃ .^)f֡8dBgߨ.$,+ƃsռLx=VSx'ތ-ɕ5C{+ qΌs-gf.fu )pF(7KBBɬΌϕF~L)lMwքZJ/'·&/0 7ZR y a<X,cC>1+>-n !%,/W-*}ij/X6ʘ5&l)dWn&)Mr'^KӽJvO̚}:E nb0~J_o7}eXmNM"6n;;ጳ44ul<'dd(͈jg%/1w]a|wchK:1 +GƯӮAwǂ}ޟ+[#P_ MO͚JoQk}܁0^4}|$NĨ_9Q󼝠 +%O{6E;AŒEvzBďPT:7 +*Oz0"爆k;еY꼥 }x-s(9ej*ˎmx;$Qj&Fe$X2FgPS8,W}Q軖=!ޞJjQgCx/h.sCA;I#ysc~,clSS1j0ktSFFʹ(GD\1tQU5oS* .7ӧ\tzcr+gQO2 w>r_ + I(MٴCf/e=RDUj"(8\`ٿ͌G&fOY!3Ls($ +xP S[z>2Y1>W{neQ5l|ceu0+ӽdK; IvD!^u uG˯JF3$@ [$NBCVlm[%;^k|4[l ;p5ˆ{v*dL$r0T]dR}^S]۴w&Lz~oL)ڛ592ˏQcGOXuu3 1tlJdn-pnVr~4~*37^r/;^C͓HR0)wYyOILw= \6-́.&&\TQ]Br-yS]$ӕ-ݲZ_vb#3T{4> $~K≾Ou(vE b̩kiL$0Lp=Zi+37u ) +U,{2[J EIj%k 9fm/OEbU2.m$R=}˖.݌{TXt/ؓwzm 4S:F6I l?/ +endstream endobj 62 0 obj <>stream +0ꩠ4>Xc5X'}кri%NJ\]򹾞- u +~N1Ƹ-;E-v +/lf?+e^&'elVMD*u_ + +B~x鈣7Qx8HR- cz˄U'~'Y*v/XX#Gb40:qw3]3,1eS?Ӏ^BiP9 Bs)KΜc]b<.OzHKJh$ +*: db +G}< o Sg.#mA'{TMvHt 9`BG}ܧ}#&%^ᱎ,cîVrĒ:2S)q_Oul&>8et+,ב=%H> O̬7$`H,@'Il@񠤢 2|pa G *)6w0TSM?,ĝcZѧtvk]U%Z}mmUُ.WKܮHH.9 %oQϣ~3[op~9S7wqƏ5M-cJfS*Պ{1斊rM~!.SS{6-胕6%s۫i$_t2?٪a=ud;ՇӒS`vOxcK1"Whl~ebT^>e/awm]Vlד\YdnbĨ^#CbݓO֗$.nY,82&k9繸2d5.P=zqՀ` kՆ1{ g3C>ffXWKuJp\A_+#m"f,=;P[ F]ww la]Y|_)5cofdb +sS#}“y9k쳩S-~&&d31^ bSs_:z=Cn柛T5;tYO2+\5/Rٌw4Ȃfyf_έ\;luw5V?Q58MOj_@u;=gY-.])bNLm1'{ +^1*x)CyWvoA;Oio5bU}GO0. +fփ#Ty;ț^^?& AV;S]~: t^ǔIݦr۟JQ;zʞAvH&WUTj)s-qyˣ-3ݛڀcm8,wH7"R}q҆-m$I_.~&X l֋\z5bJ>>§◎T6Y, }akC*}NԩdWE 6RIY/GOWB#P|yqjcj ~d3a٫9#S^ut^a;e>ȍ'`~}&x k'.Jbn&2~J@%cN.n}+TZM0几J%ɁeVƺo bpT7n7JOb"KBTfoP-g-!_JJFJ"$qKA:_)P=:k[AuY,f ~9N:YCo֓ҫ/J y 𜓎VD?'s~͞q)63POZbB<<ܥվj)z㈁]cgѺ^Uxn>z]EqJ.B}Xۯӱ/eS*p>FwI\{7nxv"6y'galVrBUVf:~jުsE;mqyv`s`u"oCmKt+p¦4+o1l1eOs aL7մ*?iO `MT=KB6lB={Rzq`z\v+ i:m/%YF4rf2 [#gfD;PIy'A{5%q$7TIoAݍC7.Η}>]q%_Rs0DzI۔Q6'B;>X>&b| "=W?%"`Ɏj'FD!?Po*uגK@6}Wg53X>;W*C!ƻ@fHJ%JfWܯPM1ݵYJ1b x+ÝoG9_J!4@\*j8LcHw"J$od2]"t#]'01]a$n@I )Dq9rн22˳l^\_KC猵Ԙfźҽ[ͦ`&>p|ɴF\\(E|U\`°PP-W֛ٵ}s[f?Y)Ұ.``0"o5HN};Nv$IŬ|W`tiP}ޗ$!)ĵᎣ[I]~#[lJJYj>_ϓ6š5xrߟ \-Kp`P&\FY6fч+W|] +.^<}Xܲ[#L,ַʣru,q2g=ô%Z%ϋbL1k7x=^Cc%~#kn{CC}@^|S!aKl*F["?Wl%Nl19@1at@a[d]A}s:5bVo]]|W8ԿEgQ[op&]BW@o7N;\z^􎼭{< (v-?; \:8c3`\U7+ޫjY^ZK,_`ݼ~]rT@ۏ ŭ*IlT c\gBb<0F% \⎹YC;{*/BjJ9(ǂ~-;F\<]&)W:@+ \-|w/*˃[x6O|+h43t/Wi˓E6YfVn>܄0ok#;h2dk1Nus+Z͖qm:_tT+r/" K%؉ Cw,N 5>&z]߄YzLNEF.l8fMKc}yu]qqܸIL/r+ci*vQ\-F]prkiU 7J, Q Gc = +8$x~@. @J+:DbTS"@ I z]0*GxF#jD̀+仧fx'cI-NA)aGTE]I.ty'gU̓*ݎz>' 7$ {t967=4q/:ߙfiN%<Clq ŭXxwTg$/ɋQIvqtI,GWXQz/&:b:_jN$$d )_P1/HBQ2$(rCҪfP(f^U[%GRK?mRd˻R +o[WSzpy,M w/x͉a.fazi0I1l?$qO &cZy4Д!:|u;'ۋO;+Pz%edP?lN,~]w!dww9x|:i?A,ڄn4/ַc5{˜jwԧz]VNo8gS#iQs^=M=‹p6.XK=ּPާ3ҭ -En{~2?[;Ɣ|J +YcTUq>/W=CWq[Q};ʹ0-NݞήvyXi%,bLyq*^'&7ua0E'aZH()qNYL\G'I~_ bT<&";ǒHaYm!־J׋iz-#{z s-QdW7 uOoo'dA0lF2>rM`xw}Om|WLhO%Wcֵc\mSqo4RF2g--!{jQA20 ?87ޟA[(ӻQW$W]& &CK++cD5o7#@;+k7 +q0^i= )&xNsEP:5^ };"~EY~c#e-ƌ57EPmN2a{ [R?Cxv:! ]Y+hӫEu6|_zGĮfomtbGD +((E&(gm@@<=8< ʒn*eL(CNSBp[rCGO? dOt/;N@[,'+#oߢ~3[o k 78E3TqnP29]Qxe˹?Tb[!\(F3@w }a)?3|qQH81fڶrlu3+Tit >w69F.lN wh3ɻgW3k޽{g{3!_Π}$V_Pխ&*7xDĘ븯j|Eg/v;LK]+wH؜/] +ۋ. 7nI;NqEcB?U- aF\dW}"Gd|6+ӟYrȸ rn>)E˦7GR}_~I䷛_Pe/H)M*YKrEW.xUCDas2O(تlInVcdf3];*ܮm9/֥CvI,}C@ +ݸ%,Ĩx?Fx,G>6N1j&>f[*ҔZ{uVvcQ +&2R>3tGiwǂwZ*"UbNsKÉR@c+33M9ڝ[0\B;h}Vq9f́5fwI,]b&Q0I\MRbIn( ׇZi_\BRwҥtE^2VOع٠gX N9[TK"R\_Qb3ꇫ濇%&OVM8ւ\N+i{*L"z.Sj']8)j㰭>5b9S&xn]6jȲܭߐexQ9TH|E8{V%ʞ1Y\z l5Эp={:^nmK~[S`:MKY$f 2CO:Jq?5ⷿN뮏P1$>ȏ˚~X5o +ubYsVF<E9(oRT`>-&f7{J87'J!XB?>EøB$ZvUp ȬluvAdL_wVnKUfr{ȏ<6zz=*eK"-43BJ/;LDQP`۸G1fP~sG6ͼT k|~:m.9>uFSᢞ-KwD&&,j~t*s< `+IK~A]UPIvYOjҴ" +27q&wSdL:\vLnJϊT5Y=coui{pRVҲ ;Az&;w@z7RFJRR3.j>:7vZr5eX:mL&vׇ mti/,2!XJ@/|*xPU>skauC}435A֨O:[J[7'H##.WxyR& J|i3}] M>YΡqN*?pmzkF6b9 r1aH\7szWg4 VeļH5}lkcUG۬]5)9ӊn<%)uv[Ng}85]o PsXj}09~7TgǒWzG8Rq;S jM.he%vwp&54I{- *i?8 +jE{jtOGJbj+YvvɺIynA&ᴽOeV ]BS@!RxD#[ےvY:}x }Ns}9u7`[e̬;̔ۖ_EU7&c+Gwt_R#ajfAl±H? vT6_T\X2/дxʖ!M.r4X'Lj&OIM֌ąÒtϤ> c"*j\ $B3s3p%ߐ8Ս5z"er͕b yJ S]bb5Tp#{ tv'GTB/_O+"H_SX͇6- -^'Q$A@-%1b:wΝMg}m |WF,B3;b)|Qi> :QvH] #ej@WxPS$YɗכP-P=/Kh'jw`7[u^=;Br{OQ9Fj!8bG\&PH&0Xs:خ>({QJ>.{c 8 rMn97c[!z`-H#{, OLow}"}%z`uEwnJ*.;>?7w]p 4-Z"ʚ0gĺOOLo7e;sԼtv{ +u?kmjO> )]ϦM͞|2M$;sڊ,n 3B,Dr,WjLCޡN81 n`bhF# Āe\eMt׽Zd+69q&le q޷SBg"}C>#U%y5'urG ;y77r֤jE׊٠^冝n=jzw=Z~xnfoA6F>@Ɵ$~_?"OER䊠e$IK@QǵDUqfEt@P .4(["(ѕ#(Q9=}*)ݰ% R9῎Ӈ]( d}sk\v6o(:^/(mzP>|N:4 e^ލQQyAIW/-e +݋c,v僑u7_եqƋᖆY@}\6=@AF~0K"_p5ժEy^h>#k Dx䃶 =EqA*GϷ:[C+Io7THP,BW1*oX qb(#zSXAm<ؔd v~g:fR׌, |nɫV,?8Ke9;Ć`eIònJ(& \ȊVT;zb0Ha#!]*#Ϝ@_;]ja +N>9PbԺe0qKWcF8Kvlp},dwUʝPY6|6MAL{VGnOzcQNX>A.vI$F@WhFLC}#'akiJaos4s |27`[Ɨy hUw:}̖Yo( N^I$3I#<-h⃽V mvmr3@tofEGwhj0HZ<QS]vG%bRe>U7DmdĨոJg'P7^IT8I6D{L=F~ rtU;vSb%3˜yv-yʽ:-Ld1/°ohe8\qƮA +\r4ouWQv_IQy6wlﮖ<(TndJM閪Jֶ}AѪaҨ J-v k~֟#WrgsNfDd{֌E4;s3~b OM;kPĻIu'O{9ҺhV$Q[nGߘW\9-vx糧$"қ_ޮUoTBUlR2Rِe˛̘)ʏ?H'Kꬑn>ږ^x}cMYKȩ1gex3^"Y l1*`}'KQ7wlStu1dذث7'[?%5E@~@`O@Q.0x +nq 0͍֗9^vyEKhq 5{_O q^X蒔M>"b9z{VWuH +\LFsk?zf<JTٺ +yo*W SYrdƦa:3sr<]շjկ}FA*D{XIH? G@V 4£wW7}XO/C~oc\5U<\ΆfO#g6ݹ>_OrlLMmN}{;yfK 3rm!_UK`׉k@5.A*H~0L5߫2UހSfq +gg )qY &%+P-f9O/$EQ!ۈtUy >p$d  (#:)|wp5?)#^F)9}*1&?iv'] v/8֍Bs't0P>gMJsEn56\ݎwހy-Mԅ=%ݽA}N(ssb?7~zl\m1|l nh)!@*ʳ7g[ S-\-b5?׃8h)n |ͼL롢GJn>AtRYS8EgR8-{^$4l [z'rZ +5dj-֯Ƈ츺Pf-L^9'ݱA Nׇ7Ϸ*ģ"5_DcYjgؚ4jvןv}zƯ6p:ZZ]HޫʒT}JDR̭A70~K▽`lf[ڧ۞Ew^ {"v ,f^! =TOqԨ+W\K_n7_A(K@):SB~rmd3NPːyhy:ʸzecTʷK==WBLMW:/ē.ღַ oxvpXBijm @WW诔U +~" N $Vd|@ n.DiRWR0xynVɫzaf`{w77sM\ܟR(nA*RULi@I)n}0/7πYYi`$8R ,.QaF6jﷰ\oWXQC. ֈxWoנ=b<}&at!6amͅg*2f h ur4ٯ @['@_(֦~k{@/@(h% -R$c1[ĸZkX?;I-+ϰinx>ARJ[FX]]1>b襠^pmaM^oHvĻu,r}`j[w{lkh_qh?k`7R5\[ +:]}aO ,PL'@<#BC68`;w( {+{>:/r4~@E,w`87.%6v2i;KPjxk$z< I<HVYcbp6kOދz%V_$x{'xi2GF[ww65n=fH|e&Wm+Ep7|%;ܺ#I Js@briрͺqaAQz8 kWz>y~pJq_T=:@ܧUWe=o/n/' [(g:r>u Sd.A=n [q=.NTSTʙ7zym p&.R1Li mGIhhsT7\nQ: RR/(Sŷ:p<3tD/]6&.N^kkAJ}=|NΏmNB''Ere\9Y~_eϵ O%`G@] lU&1TJD$bU?zC{-[6rp9Gvlweۑ&)7SM).~%4X[[=6 S"qNĿ)u maA>t;):i rz{"HR3<6-}<^U[ӗn&xNS;/t7Z9 ? ok;)4ͦ4xژڟJ5N퉓7C ]cr7TTJ'PrvXOk'TWW͡jh~ߔ IH7ɮ(yX(l@>·t#h;{1sk}\ygn[]r{ }CI53c:?fL!=zQwIE{bI'gvd70Xω/ \mu-KPuŭ+dk~-M9YYS]^'KO}]H4  (q//Pyfm֋W+rztv& +"< <_Ta2f{7Ő29D ԅzS Z}s*@x  +] OU0Tq#xOd'ntfxK̚[јWҠAYrP6=-FGΤhqr461fSGBtӑXpZb +̼RNmw6ɇ~Uڽ>U} _FdE&M֤Y>JYBjtFV:+k*}1Tr~P2 w+;PEjTä_]!G2̘;8^*Xwۑ]z>-1;槴fu^(j^bsל!7ivWm1qidƝ3WHoʟw "Iʾw 9zwv:7ps0Vv%FK4;V4LꇫMŰK6W}86ti8N2h5-,tV?u<[޲ufs(k!W: i.vT5Ӫ3:/<?l"U+0n`2Ih Ok))f(Tt# t<5=5{uP]uyy܄&r^g32 E^/)=t1w [do?ym`*vj!Q%ZU4ʲvRuUe6iv¹?W Ү:J-N ZV>dQM]Co}T]W$lf +wlrC~DZk /նkx +r홵Ua]]CS!'x5tꤽ4cJ +bl>I(=^04]|v{鑮e?;oJ:ft5DՊ;^N)*{(o_ ǓuЫ;2Ź7{Yc[N0qbvw@t >y끭 ÑigZ B+[W2t,#ᣴ3QH)-7e*LUuƂ-ġѳ#Ƴ缷^=ݳlqaz fcuˉwyMw9.2[4m'6-+j-P>*'Rr!BnP r*zk7΂ 11b:oRUVaMvy6 þ?m_{Aoj Klyois5p o -7L+W?@(ۧ}-Jo0q+O8OSwgo 5?Wxʸ6@h; Oxy<XU(R!@ ɫ,ZWKj/ZΡːD1e"WHvb +R]M>;,5nnÀjÊ^¬z6v08sjiE{3أH+~ZZǗcOо:0V~D׍~]pZLz ]srTFzX]kvnwt| +BXL2wh==wn`պ^I:ك+vO-BHRO~3BeJ<5^86<8>ܻ¾y +c?' ;引җQ-:R,))[o&FnBre7̯h >$W;B\K 7}+_ēe|ncE4qr]$dhCLCq{)7uuܥȶnԝ\6?~ V\X F%kM%r[;O%Ϸ8Y?ncPv@smz~4QSMC;٬Xy %-qI;V$=y8}W~96Ҷ( +f;[Mm샽puXt^Xbp6Z֐OٚV}ʪ=$3O+4E09idsJghn&s~;|;^5k7WmȺ<9B:\k}!b~byqerpմdnW'_:qs3!? +%\(UDOmoxԧa=噛4Hnbr76 r]gkbM`jLtl֧/c3O᎘"]!Pj }Šgˠ@͚/np_urSjO>Q@cM?4O9}.->?]- mm,0sQt4H|*6)bp}|r:D![$*!?onO/T+^ReA@П݇;x¼4so<1؟6u:Fi XBOZ U(m[ΫVoiTR̟_0i|SLBSO JA8O i'^^S{zϓ_|qv}1W/{*c= NM!SI]"ʤ05,Ujn4ɇqmvnu,3ěpKb +M9Dnпj +񓝦d,tfXF&\f&jTUTkSE)7'Sr9L}j!Wn!Ax8BP*-mDP;W}.+afZWjhKYk>WdmN^NE~L &gӴJ1vyQ-%'dlT;C\rIL.%{a+4s@>y'ZE1>N.\8˛h\\'ݐO}L/>VyE03gZg8P=DkdPAĠpG|h y@]A*̨5q隓e+뤻k:=};?³\{a>nHJ{CeRTۧχa/^8YN*C3t_ |h`ȯҋ?6SN񑽺+xwֆɦ2@Z)V{O7{vCt=ŋ|za[@ev9L-B}{ +z- +/hh '.&gxOo")6Ғ-eƴ@6cq{7 Q*jRFqour9ʠ2sOHW+n#A?v{ J}PX*-Rg>|}=(?8#yJw7%tOxG!ڨB~oO7Qwo;}\F;QzƂ8<闿kBjaW$C6LRޖ7ܫki[_k\e6RIvkJFjX0 pnujH;n+/o}ܣA -(ՋEZ5δ J,_{5hɇ[g wf#-|G7["4P\B^B|Il-0,#Ϭ$6+0g_T{J+Xwɤ\ s3 Zn#C_h%wʲ֘ѤyPFcL +`6t=]AaOkS'q [C7K)Y +U?I+_' OW[i#c,-6љ/40ajScxV~8(oƮX*48fYZvk٠:_C +XPCx&J5 PWA. +6@p P$zY@X{_ gR52ƣ6^*.1 d +d%qy8tf!*vP#AX*;Mq +?H #:&^(uZTYhH5 jP +9C|*WߊI< d֏N# BBQ 6zzix9g+5Tſtʄ +Ksڋ\_tt=jn%nX$[< r' J5< /Zrhm1@P3P:U!k{&ѐ/M^5q9~0sL9'%k6/}]# #ގNI[z7i^Qqʇe̼jF8rj0( ~  KY@9%i kVKbh t|'cQ GFGS iq_{M|yich/kMesrޡ~F([@$vxMSyZjp<{5-ӢR.U#zՙ@zA}7:7@0X/k^0gmtM;%Q_H.}+8\:t@Y}KTϗَSOƶG*SmzDm߿蚏VI$N3tu9Z\Isn'8oܗKݢ+RCJk<믾bWl%Uz{ޅW2Sʦ@Y߬F@,ΪQ,QU\D΋h'${rmTŠ <-, L%^-fG/[c{=?WO~/YIϴWttS3ucUV I㬤dek/ 'e[5ZP(@y(E JT<-3l>G/Z>y{ŏ^5mQVmuyZ9U^HLs>t]U<,XWČ9N'3gf|oF[xiJPwc^s'ZZe-4 k>wcHn2t)q|5CX~lte`9 Af*vi}_}~f}6*F|x-{seGw}2jW]dz풰r%d-#Vٷi'9PLըM-xus$??ڙ6 +rΩu^7O h]I>6sj.;n :fxܙ{Œky0QfFTfQaiJ;wr-:SkX7LYg +>b(U +KT|KV\c,~ޖԛ)R漂ܓ,U̵W'gZ8EX"mRĒLUG$Z-{)0W>?_q$N ?꤀>!z_trTS[la<2SܿYn[Yh`z~pIʪεt3Pc*ClA'[.0:rBܾ%L8̈́ehWwQk?z p#-2r_Y䥽hIde0*w!Iwn &ZDu4y-=}Xurׇ^VkW/O¬31ˁ l5]zsp5ӻa&5?۹B#6ʳ|@+ŢaPu>E+(pϳ{/r-IK`NF9 +{/8N?~0#4t7eWmIf.J͖ [fl՟-&TõlTN"u N*C8UiħcFg29xZ9홁LV&&3cIw^ÿ >};sU.5e$~].+9㽹0{}nYOvTDt/2]%%nBkcvv%v,_Z4nn!|DneoƎƍKk07=+n[[Lmo9Q~ٗWC&qNC 9!*ͫ+jr~g^#惾tr[Rj!GD>t1$3>ׇYX/W|7Uޏ<ƥEE+SK گisc ,kwW)Y>0/y2l+2mts"f 3HK*iR"ɀ.++kL-n=i2*Ω<*J͓v[n]:j +9ctSϵ9jsa&YE?{}/s#4gS+YPqWXXfqN(aUNNw8IiVzh:<}-~3U7lmoS>u^+i^:#U/IMۭdvSGQyxig>%ՑJ8,ynW;eTRYkUG쎋Yeٴ3j pq[,D?vP q%Jc?ĚP,f]#f=,Uw^ +I + t>*w*FB^%64 v^f0l7*7׽G?Xau1F͛e/J뻢w[P~!8Jүu + 1\99@q={TVܐ.4ds9 d_d eAdS&2O_WZSÆ0~ְg6D" +d<2o*# +Ma#4uNu~[T|B: jN^مz {Av +6K ˎ [u:PUYlC,w A&4P'l{:݉vtx[iF>:%Bf{/@ BԹ2Pbd +ݠS7 }*+ + {dRu)K;*L %6 +;f ~V=zol\G"@v| +߀}M"$!E}FKՍ=n5x%!UbYEG_z~>2ۢ,Ȟ_t5\6k**8e>Ii[1&No?5%cDǫECjGE /u1V3wK_Z/IT>OCwT+[RK>jo,j ʻXo9N7"RX>=_|ib1wzֵ TL]jܸ}%>Oa?vWMZ8$N+I `7k%t%އ ]8nV^>C>q}y={2.+ܐTV t`sۇ )w輇{:>/r+%sEJD1?5?WOG7{IoYI r1\1t֔0u&VUt:4Δg7 I)&.Pڌu(٧D asP Qs#ā#{WIy8.nnmestOť4z}l7"*!h-WYxM[F2ȣtEڠh4/Q{ R#oۇNo16[Q2Ӎ-`,Ҫd8riKs܋*^2|k\xq<^]{)_Rx j=yҐ6'Ro3>NAmckA۷ +s_֐u{ŵ˥Ԫ=vaZm-\_Gf%Do;afuNex ?8Br2DO~ (Ufg8߂Oo!nnaT/Vuj[hSh, ,+.φ( flϼS#s!Sp_34;$Xfokods]V)<:&rv3WVc# `}U5JKb~+~#3uB\1ǑH^fsɔ˞WN>SWr8|TipCLҗKP[bDXV6n,-YYSjS:]^-9OIeaN|&knʹ]TG!d + ^4iƚ|_.Ս7/,D*[ўoR/QHv:/#z>8: C9y>J#UD\qxYPGͯpϩFnq#c?|ZӞ);D%)_rݪa0oIY̮ot@ˊORёcHK];gN8.;tugÑi#jt3v I_׳ +6؇b}Y_jPWG< U"x<a&,{~Vf lNo2-[!x[Mc 7]/Bq/$Ѿ}Bwk|mpu^V +5&xHF, 1{ زBf͙a@q{bVq. +;ۻm(q%I<6='\t)/=z'tCu.wީvc}̴ѺrVںfd/udKda2w?caml]z}S#¸ObG}۳N}uw}]ofV|ޖ֠hBi4L7FKAQjd;kc"J])^IE=SH$sU L[6#霼_ӭɱ(NnmE>[44 5[iiWo:Eҝ5z?qjyWO.TeVb֍H$)c)PSOJd39T^NCC|0 +iğyy>r^5>=nշsíuW%\W1=A]1Ynb֢twvIeGR}KrAr.~b$]NB32nu7X5*mGxwj7ݯoEnX;Q?qZO1ʾӔK:]9XXϩ OV@)Oti4mW!A,yw>#3DOݨ'ZJt.jﳉcAbUJ4 sX r%::cU +٨M.֦XkS-#rOG,R ?C&$5KPޞc9.>: y@y=9e|1UtV7 t'x:@G.%}itߋIsx"pN| }W_Jxzb.tO|$\doD=h>O`R _ WL}(&FXTr_Mj<$@ZBJqR狪!p^=-yt#5s# UI(R+ ɋ`Q +@><%`o+Q_8@ F?q|707Z;z03cլIe-vO6vGgjׇE5FC\Bi *HOt)@s}PcxI~UZ(HXdhOi>.x3;ysWue_Wmט> =ٹG¿,`zգ߿`-D"L* `] ( 0]LJ E;3CgKG +w\zVb|p {;zǕ_>9{OgYT;oS !iD8J*90 @.K;k7/?Pu}f`{{xZi[?=7aǦU޳kn~a竳3Ng ӪVa!y^t1ͪ"uz)Ε.,~ݯAxka n] ۆu+kδRθve%3e\pi$*Ȯ9hIE|0yosaz^6 $[ 6!* +׆ G 9+`1֫W+s<_.DŕMOؼ4 +OaF.w +%^*d +!lq~nob;}A5`*Bo)| af`D' ( u[\}~UǩL!vX5;#Vbʦ^5 U&_P(#˅ҹ-6=6/&%?+gE 7[CbH/$}Ht 40;U ~spo^:fuvKmy])6P*9Ir+-آ>Olؙcw'.5 0|o333TOO?Q,mouk;m찣]Zb*))4xz϶%TF +yEuQ+l*6?C)3)03}Ɲ#}E'-:- +C2AQ?H/~{?*ymCϖm[^)6 :zTEK{E_C.Nhݬ1cLPz2)uv '3qtԩ<÷Qj)%j)6rVi h!zRgR?!]awgRP8DV4sxۨ2f><̑-雉J1C& 82'Ξ+.XKr`nԿr}5lo*mQ=\;~u&+7ĆF}p+Kp]BqU +Bf49j2vD7I&ހ4&5"gNlAj2GDØ@ 1$)H]^5y6FҾ vr-Ugj?Et؊F|`\Z1<~@!V(ġk .¸P#n{r̎[ yaT "ѱ_ɝ˧djs.X8f]ZKpY\M78*7hϺgTV{ڽ*l2T]:?UJsLm(8lt+ɰUs2Tw[ Q3w &vb%9#Cf|uP宰((PJҧM?L'{ +? \?oԺ-Ucawr+73PIr1 W7vcaĞGG>v(R?noM4Zo:l8aSB}?q"6[2=}wƽo>'~GBw6:'WtʥӢ-N6?۵n +YwrKԿn%kB7ߚmJ%G'* +wY|Qg~'}vRߵmғƻy1h>ȮMY.N]櫀ih~*tsw=x4٠Ԛ;ub 1f֬Bه`nD"fNyD>ƍHATkQւ19 +^IXVg4u/6@m+r :qj ޙ:Rǣ +L⋿`GBx?KT9ړ)hFz'ިS竩qn-J\km7[5>ӆciAZ;⋥+SRE~oN +YIux7>s6pTNܺLb-.]_īG Pu +;0|OY-'";qߔQRg\|yZQ翣bJ +?ܺ Ky.Huww`mpۮz=UVgC&t"u?櫧\\iۃz %u:u>*ėUk.OFJnͭ=`l4Od-- zpj}^b) +Nj\SyѡvX8*Oq0q/ulX8ݷ6yd+(7q+1Ē*,w:S_ dv @y'}'@ @`)h8u,>U Xm5i~`xفH ^YiIZ%v ;j^bD.}\ӽwNq {&Ri ۻ80:%T@Y y<nOy}^Q';zY#K@  mi?/w\m'eZX uS}` +;#Y@AƦ˴< |@P^1ybP4/AO[\l ZG"P0&:b'r{N\N&Lp %yO6 +@xSHd[{P?etʿj:~TZi?ڝ +K9^uպC_BRV=Qm$;9N 6@#~nwi);V`QH[Zh6:0wSq5nnG|UvN+d=0m$0{iw02 Qnq.COʏ^Wn$SC-֍+w.zJ^,exNRL]8=0g I&R"5y..ܴK;s{N-}es;k85{~q]}r¬/}:omZpah/ +-[j#>rMZ~_ӛnoȿ/A {nV8BǠw$=o|wKa_*N.6 +=C^Z[qA77$h& I9-qi`@`D}o8#VyM管\OY:NQ9s(ܾ<ն6fi?5ѫ +g3E57_lNR7NgjeKZ ﺺ9EiD 9j<$%W]_GҭNT/hKREVBV2Nd60P /M l&5Չ㤋sJlmwŁpR$5"?TZ&/'&A. o13YcĵJ5Fm5/kb(_sQؚ_4Ws4ڣ{d“}[[UQk+D;ğ"dl!yf#y-4cr!ט1I-C OJ8wMj}yQls˷Y=6r&_q&-},͢^Ňc]Uc|qD2(11={1-~{TOT$ j_LIX-pxV#mc 2;)}6k~dעvVdL,UqYWS__KԒMgysosקrPKX$Wم\bx@F8ҒL1/5#n.˂qg϶_mxM.`Fshh;4T)FeRne.K^W i3ߪo՛|rz2/I.I9&YLFdO$} oy:hc]ߎO> lgA%_Y—CWdtFVՠm6CK _ I3"_$;D$frMtm0΅:ΝǓAR&tBx8sfdq< 0w.}+QlI6<2"rSZ214g5Ltt%F5!Jїg~ߜ#C2xu«~ C1Z/#}5@n1%9 _ ++RԨb}5B2p91W谎jӮM3!OڑwLT83 6 | `;fh%8յǿr$rrN?.N!2$\iD+_ܗ' ƶA=*^*n}r=D{{@jS:P2ϛ6z|Ѥ\\)!Y4φ-;LMeN̖r\nVf|яL{F=mٜRExEqEjs_C>K~eUolķCDk=*gkhb+,8 q>5dRVyX#'nGd{63ӳ9tWİ;؃t#&Lӝ +Bx;bޓ2ڼxyʯ˟|F+qB_HSY?ʑP߬O< Ls' %by=j7o8^꣆Nb9%!|ۥ_>}魰vuhl3:[Vk)!l5Vtl ӃzmJԔ0QL9Oc:H> +fԌi ĉp(O421=*t\eٱ% P۪+M$>?7:pIdG! {aP +-RPU78<WKז͵l:~і잠- 6;ūNGJL37bA4#ԡ QmXC_CgW=X!\=ZF/f1,H(-[ms;;Q]?].E\GcfZkG,:tVG+S R #J:IJa\s(7RRA態|y\gv w$}U\OOd֖ѩҨ4έaixuY?u|wZjE81_fjIN., ?M/um'ʙb ;L`5d HnS*s? q?d|-YuMn]S㾖j)_*1,]ԙ֧psyYJ-v٨w͆4lG9c #U@jԊ4A"ӵ/ܵ'ΥN)DԦZLVK/m^MV)7c:4˛5PxЗf=r\6'RCOX=PHrVNfM2xWO3x/I%x2xBȲ<ڥȞuUr NrsL-y;2ȬGHz(o@Fn |UIp2| ö{dq%A8N߻T{cv]}cjq;Y5~mK^@y`P&;Yo c: ˃+:dyphPH +(du% 6 㒗i/2';\8~ 6pB{U0W{f X"Mi|l4PPv3ٍԾ'/IS*ࢀl?6@vP$ O v>nOl~F%rs u.G8hHGK7 {G0zӒ*} ҰtF:@&9fTTiLq1ʛn٫wy#W"]"_¨^լ6W.Tb8l`\>sтu/0C7 M Lt Q'*yKDΈO)%z(I{{҅0&<(R)Gw+3^RKU-~sɛFӹ2{i4.D-Oi0Rc +<>bur{^k7G(.hX>oM2U1}O]vSXݵ\}NVqHuDe +`7hFt_ LgT.|MA*Tj +^)M껖w_"~ y%cVmOm⚘9:|@x?{VٝqmCOx`)?M 53C&"G"//c +\۽\nj/:ɨ&i 9EqB;6C-` L ㉎^]g*vh{e=_OʹBCm Fg5!L)VDC޵Hǁ?{rY7J`4ۄ2ڴ +hCWW1r>meODp=}'SIi?/$zKbH_fG|% xaL5{ʘ5;cG] ʝ nhC][_XZ17Kt0\36 vLVKoḣ7X _HS)2g~V:~Wݪ:3SjxլN|@CfwiN<4tVvg㋪gohR}?Zc8&ffe%<̶ww#fȤQK엽5Q |'\/XtkV6o/ ݘo,nTapMMu-(=ZT \Qv7OkA!қlV Bl+Ϫ_]{| +QVdL^ڕuBOKVOyA^-M{:VVm +ߋnOvN3k 3ƹ/Wse׺iGA8FFF^RMEy_C<&-)#+YZ&:+̎JM=9u^;?~_ڐ_vb>HҴ\]KŽ2ў<@b&ZRv~Uբ caA({> Y~EkJSBGTM= J.*kv\#k;^ќ~Y"5 ZoU+ +9:k2ݳl- q+ +AwV>Xs%fON(J@I`Lg{ Х1c-`M{Pn]5чZMT[2 +z ҩn4t ~qiB7K,[sDJdwzݯ|Z/I۽(udN:/N+:Yehj_(%}-q;TcRזko6?8WRIoSXnSԤacnVivS$32}Wt;?і '2(D|9ǻq9YV2AJ/3^Bb |مٱKvuWĕ=p|w aޣ+wYJGht8d&h0K/|چKG&YЊ]3*Y&AwĬ_HnsNp}-mx6y5u4Pk*g67/bXE\ Y玧}DS:+"cPzSu1…eBk0>a%'(S~!=7S]+,LM\) ]U>\ŘJIL((23bWGlEsJmd.}~R}Y}]S}]Na7#*ܶ2sW3wcj3Ssu>`IOGυeg4[nc"e4W} ZӣsV]բ5xrn'߆z#nQe7unΪgב"0X/xXM'}]]ׂrԓ.Usl,yKGcFOgxG]!^LBPG䮆'QȺԏܪ&ݠKtJ6N~-;v0v7R_8妿՚jIWKDB]W;K5˫;R,8㬈2( +(80 8 + Yu;{ S ;6a0zg0/GfԼн˫:o$KQ:l]"C 0zShjo|8"ޓ8ѓړqkO,_1'PmW_(>1n.ꄒ9f8vgT[ pp=n`|Aw dވO ) `ҍkn#]$r]~u޼QÎxƕ?d.Wtʫd-zN}o@ xffaE\+`A6p!پCAhz:; Q:fTMmޖKv- U]ծw4&~3'e7X ?e>G];r} :Yomzc -B BW]AKk w9o*ʼnKZͱ^h75kʫ1e%*XGqQ*JxL6gXY*Y;'MoSX ȴ;1䓱Ѷ.lfm:$SyZk6zqF.ry!p9!up*O`yda[=ٌn MNevϐ~$`[@Ёoߤ:QUP\RfC9ʩ{~-Z^5Uu[?z SRꞳmOa*c늖Ɖ(0oB.y2ߴ:%$N! e}V{ࢆUAJ6Hw]VCRz2=eSzD +/6T*JCU{՞\>&3ŹWs+(Hgm a5jƘ!hA~SV)a*UJU(9.zZlJQb̬.P׫|x|1導|My)W 8%6S7@b@ pxjQuc`a7*A b=VW9Wn)$NjQ+eOI˶ӿ`cHLeZW軴^|^\R/lWI.\ۅ/&| 2nn +E'ߨ@@\ +/ZJhgKQ8 r|U˥ѫ%HZ|S&O:j7/f~ߤaM?InlINu3i4Ks䚵Y +<&D 0YP% mm(Yʾ7qaZkJWu)ѕbvhPa8SA%Q4!=HV9j秤JIc%KrSU_>)Ehx& KPUOD$yLBy߯k,z\`E7P:CУ|0Rsyjg}k`:~/^Q2p X1Tt3?Q$ PH@Rҗ2Z]Ffs?a`ri?ջ];SonE@M껎pPry'x]bUnϣ:geO[JO?bI +e!)֊(̳-_XK)/:ϖ޷Srjd>70}G7h`_-V NnT +@$.Fߤlg+)&>A x(uwzHsP'9Ge)a0SCo{+|pז=v~6Aˉ{{;e*-s4M: D}~m$yvlZT^:^zG$Ї +3v{? κsn[VUvQn>"}YlZ2 iϯ`282-δhc݄[F>IiZRZw#7hU*ߎ{ [1f[iz@uoJ\v;ۢ誽,Is]L67 =*Fe&uᱮMZOn A}yǥZbEYIyhByz4(QyK!0%EEV-Vgld$ڌclέB~l^-ΝmV A`K+,ҹHP?χRw8gǏʜUʼ?avl=^OtFZx3'7#{s۵6acF_3z=H+\,m,VY΢PNl3sO7w34g4*ػ)uaT^o$E~Gz^a\;XZB3[a֮(ܶ7!Z\gfnƚj"pBgG]7>:w0ĻFBiX%W+mE{j 6Bb3x\QH:ŧH^\/I1( +D\)l={wOdnqo+{BFٮZ܁=ʹbg(HS"vGxqah _f˱F==Fp FTZOKmxgp_l4]ԡjWKDiJYktVGjѪ08WU>f6+8/OZ??^&MtqM\b}Rv ҰZӓqƙa6)5˾5%|s ;ͷ$ӆT'DYc$3K 6w.\GJqbu1 u,8e:/;lq"SebقY?;Kw̯jyՉf+ώbI$>q/caXبܥRTUیixv̢ܲh3qٙ1qevbQ|tv')֤]0;~ٙd +Q_2;d."QGjSCn 7k~γ1OHg<.MEGoKVi?/EGԛ[[f+6"B=^4fg6rY^%dC='ֶ$x[Ɵ^w6%~4oᢶuIXBwM=p0p}`"T}|gvDsz0նFJWlIs9Jm ZX.0߼!U)v32*'"Q/}J$musfjYz/wAvuwf`͡i^Y*Z҇3)ՕiofoƮp uW{rwFjX)Q\OEVXY)!iÝ`|jT{n-sw|f~\}7^nkg]KWi$S7PsGfJ7EWgZm$qPҢxCD&H9b*s0?QQ"(q\>QDF8pط7Mg;8+[>[հա2H +t'u Ry(4--Ni~oGy_;* IApYNDW(XRP +}}XٷodCldv}<0[g*w(LQɂ9fӂwٔxzxnr&4..8_*h {~01RZ+m v{giβ ;wgH?2YYz!!v i]*/s(B ӮRR Y!!vr%$1O0CHfcO\A~N`q8$a$6A7 Aעnn(V{~ݷ&+%k顁YZh=1fH*8J5"M< B _2G{sWV"B>,Cѻ>  Iwqw;wIJ6`OL@i6m0ˆ)bkbɋ闵dr0a8Q E6ZcVX>kw +ߦKge MU:Ϧ+MWN4 6~R/j3?+׵d NFk1}$veք%>it1^gPx`M[el3]w.Sa>MR_FFQU;IP 5P6fmnZ?pSӆ)*CmT5C]VDm҅AWFunf#5b-V ~seb +M}颲UNZg?);5L+9psr2RnPz +NJHo:dxi\?%fWRS{ ZAU[fRk\rR ~ts /+/%dPg8[_0IQjb^fɇG?a BH?J +@b`.J)˴ <+lDQP4mV[7-VŘVOpD%zӮ4$@@:R)Hioi7eJ㬦ji񟩽to0 +CG0%tV(ğlƟǟ铋?Ct0L)8e6Qk9Kc )"岏nf\2$@+Nd?d _.߹щx8[9"3a願*EM I)FgYYVUwk L لkݖW +5{I1o0s{7{wI/*/P^ #?뛪c)+0!?$$zOiݓ=u)$9NrM5J[I߿krܳ)8ɃYeTI.<INp}&>=Ո:-~y>NV"+X+.'ǰϖJ։{qme +\=_4WsΗ-ֆQ8,4@6 ݒ<I^/~4эmCƁBG vr@o6wmn\xZ˴tʝoW:wI-c%q 8ŗ.nҍ{]Wҭ;9c9Pi%W?ɏ_gR@,=򰩣m{ֿ߶O~mOșvGQ}ĺܱ +KTt\ rUS?Gh}ΜllQ8*dʸ68D m/:t~(K[n6DSɃEwýo]n^6Ax.b\oOFRSr OxԊ//ݮLR#u qYI5k/Q֧QUϡZį&O4[,yhV~B<(XAV3YZa^K4P޼t_3ʑy|2D3 Q> ;y=E1ԍ˹hk1`m|{m+ V0_>>o咹C@/WSo*f3j Sjb[gGӝAc[JbW{8?Hb8N1ծ# 3{(ok[~ Ѳ1y + ]i9_˷]dZv.f71crvZrp=`To8٘sB:߷D[B}o+ 85{M\?\ve6a]W,1ª, ue[hLR'L]'S~* + [AadV'o'Bv>#Oj,V1"C!:f +. ;gwb1Ϭ09[m +4[-IAJyUՙ䑨2(+чf +??Eъ/* +hPc;0ܑ4% %ȣX;P*PN#T!Te:gáTYWFfwz7YtQT5/걉,0&La(YSw>X!2J尕UQ܇'BU􇌽]7y~yaI<ܙ|}|TA \絖sj ȏe :Ew8et/%tb@M)V[x_ul}]_;1W![=䝎A yhnvAm_bͱaalȿi&Snjj@8P*5Vy/@Yَ;t-c1f3+kw.n/߫ס;BP7u2c~TxR5ubgw +{ͻW˝5uF"=mmbzEGI0֭6ر~1@kZVJOŬC^}4"qKG/lwcwUѺuCvc_yvs;1-:~{5mc6jϯݵ>չJ}:c÷\b֑sr`/T\9~7]=Jj8>VC\hܘT%w۳C6ϵ5h7/TGi|C 챒8`5(kgO鷥L)v@7o-D2U=Ue#6 SyJ%Y +͞*K\Jn,qN|x$R(E/\Fyvb]>~Qk^4s`^=WE('y.NFHaJ(lj)r888( EIRޝ8;hf$m>?UnUO5LIKӟ?_CLC5i3ҍ@ى?'#0|icqrߤq%%Mwߗ8 :Q̧TF <{ ޣ^5?=ѣ:<~!&={|QSg~ﴓM{z[kϙnǟO=RFl8'7;E\t(Q*ڔDY OFW_w=KD$9 Т[ìJF+?{c;.Q1w /n .YވЎ Cѩ0 +T7o,H`!_?Nonsu2o)prMӝeӬIzޤ]}I.OD)|a=l <~X( I O{Eo|f.tO Q;nV&8ml8:A:%#|:t$9%uKY>#Un>>N3ۓD#^3̭`kL/>>k|s> z(gݚxg +A.MeԒSkWd:bH$gN$$?:? FA(EQK^>ޢ%|aQ,0 n\w@Zaٛ~f/R[{}EXiP͵4Tj:g({1sp7T"&^,7ұ4 +S7|Q/BTE?FYi,zqU%Ln )Ey&5~满΋Ӝq9VG(5%K7A龦jMN" &KlN$Y_x8:*yt6r.Iċ)l-B:{loյxzsT6/ p +Xzyw@(6.OUCMp NDu܉#Դ:4iuRa_WxݝUڐ5!6 iAV̷uѴ},^JԌp _׫zR74S' +XmDǛa4 oE`/Mwۓ nYqXisŁcʔ*uFu5)] >7w<r01nVDISy>YLOF)v ^(:"1EByɦ̉cgt4InĂ}tu7EM44agUP3۫?ŵhvz7{HQ +|ϡY[ dČNDEm5=쑯UYr5{$taozi(!s/68NAN\y鿖'Ѹ;1AZ5 j1`Y-5eeDѣLt9ү^=E*;Vk.a$p|l/,"7: aSz +3(FUCTb=>e=/wP 01Ʒv[9ܬrwb'qMgGXts윛HѾ0x]6 +3!C/ m +.Ŗ!j 'nvCNFp;=Tyle^{g^E:$X7au'ߚjgg"RRc7rkue !z,mƨ'zdaMX8S< AYH$&ZBqhQ;nj_}؟KՏe{p KB~3C[t/>Eze!',p0P>uQ҅QtSIӺA[li%bQJcp]SP.ʿɗ:1Pϗ`4X|\w(|οuiQ]E&Л&.Fhg1j)t1?[Rh j9!',}&d qA~q-װ~8u:D[[ECLH, f dpN{A$#I6%Kn`MMmh˃r >BM Q%RXKn-RaENdi +ٸ +5XSCnA2gt.xD""A~.ͶdWܟEqVf."EP^>KW.٧2w݁7pR,qO  +Ǎ"@ +{W_}a3jP p֭|IkܫC<՗қ.a8k5[kVXC C7.~3#-? ^CcxP{I(pL4)v|,S{JIj_<;&]0ۤ}Z7<y :y?lIeu?*T2b)8Hs Sl$Wo՟?zGv\ks_y7rVdAwJC]8_;!iƸJϞ赬>lYm2/H\iku4(gI 觹~Z5g/~O*onEh6PT;#𒣻vOSU;ɭwmέZZԴfYnV ^mͦ4J7m~ w;m, =>h9:hpu4燽k/:u^[kڦ׋Cb#~Stn`9)Y!T}rC8sc'7Vo*&?zZgPUͫ=~̰^퍹x/+4NT{r#byq?)N=-M[*>D]؝[l%̭u⹪ƒ_ 7PW5 TMW 9etQzˬ^ޤsb9*Kiv4Ұ aN9\d/C~Vz,~`3]].6=֥_ꮼmxviE_XR@֘)pzCDƅ&. Mr,Z.@#*7O&jwhe=7)!Vh*Sl n n1Y#OЉxtuVŐS.6mQ̷vݡyɩg2,zV_7!f|dz|3uM7X61sS5#fBLA^R@_溉?ֈ?2N"N:?#'-#cz88fTp<8f[v +uHQS mpwbo'hϢq\<.d{HrֶyC8COO/OQ*׉'kNj q8OC=Ai[QH9i;xqkސ;_^b\=z; 2ªa'5{vs8K$f^(KoHFqr[D)CH +c[8wG' +gu#W8 >@.X b=. V퐰oL󮎉0OC5 +FU4,_ğv? )nƅƻؿv^|&vO = 2` ]:wiuJPp΋7fr\+$4:On$yֱwC$WXvqZaTeCzkh -Fs׈e^}Ϯ\iBq6?s+sOʰr9><½e鰴;h##ѥv.}i6Z;.,N%K_Mے{yՏONWV 䋳vMr老3Ļ⑍(yӥ /qoh7p'9vv/[lrўSt3?mxnIInp%y6+k#X#^ArBi4·&^H}EJۓ +Lwr0ˆy}n+t9sFP((b„Y?h=8Vc0ެgnYG~z+SWnM˽mxp_a}"-rṽ͢ +OQk>>5w8]PNs}09ek=@J?Q%I؃z8V{_ק>O(t +pUn?~`V\Vc$`%7,ψ}ׅ (TA2, ~%)s j5y]h÷>lWQ iH#R{웊9/ܬ8 `DO_Z=H='*n/.`.b|$t {3Dzcq( lwӀBZ DC' NQ>$oQZ$4:vg$h(\;F@-{7 ^0cQ4a9otgɸg u)6)ߟ cyXwIx[Rx0 }_ԥ?^ ѕZN"y{PPnW]p?V' VP:*#) ^3V-YG o$|ܥo&#ԳtəנLlW}rIy+ϫBC֫Hh0ʭ%)l[&ե|ޮU-^?$}4Tsvjw#xɯ;| hBciKeeŧ5bdj*jmxqZs6}XqdǦf1aC^8[8!/]_6E^5u>2lCY0V5nv/*_Z\R`#Zb|oOuZ06礀LHfISD߉gI +RL^2Dž6uY_slyolaklz(XICc \LyƊ 2VX&l T#܋*[/f6:*8ʉn-T( (ItŲUz ɸ\ SԽe[]WJ5N8"38eԹLg6u,\Q$̾y]zR4q-XB4 Z[O*HU#)pm { R]wGdTx |r A$ }\ӏw?esψ:No1676YDiM w8NGo"s>*OY+3kmFB2*Am XY =pri6gʿuVt >khU7)n9A0~LHd/xV8 OL1NlBYhbON'E +pU 톐&` aY[v!!O!v'DO4Zڤ\ W]oj.Ig3J]Hw[Z :<2dN>m  +yYK]<Cjy;8mfˮ]oǨH"o4V5M~~9GON1FuG:rABKܑ\ !|P.ҳNn:}ri:==7mv*6yCZQ>V6-!ȭ F4&nʣ0Gj kIՎ0&1Un q1fG>ulsLˠsikxw|kl[YC;^WT8Mx|wN|XYXUBѰc>:UrX~9@mL*3SL!L/9/E-1슓^eU!=\wFM5g1Gɪ<75Tn2(KsKJ*U< |\g/8#.2Q-㩱.2 Ş Op^w<ٞ~k"'>>|z7)D}į*OV2f+4~]+d̝ 4lI_*t^8pԱJʺDD9$2z9@%@Cv~T>9y,~+PBU|P{Pb k "c~N5.Kסh/qiӔQI&c{en91f<4Q)ch~qGΞ)܌3٧\Nx\&}s uY׺t<_cy_͝=nb},J/}#G1}E-˜7},W ⵃQRmx"**6X AsξIS:b@v֏9lvݬ^Ƿ`pH?`OO8 ѵ^k:Ϯ$'>~m  v;= \i5ܮYu]S^,}K\TYZ8ׇ1LrNhlz}io 1HE?U3z ZZC!˅^l|?3쫏,#-VssH~z χɂCIm.9ꄜ;1Zu$s킓2{b~ˍkF}w^{=c<.uXvhPյ6UYI < ovj/c9r +A9Va/ldяI]u5>? V >ЮZJuqW9|~B +rjh%-mVd[%>z4<9vJ&2'NL*3%m$: λgPsNv}<~z{&ƚ;P U7K啫CK6>11B +J=vF >X8@'U3}7 ;T) ]dQ. +z8YX?4 +!VEˇa5:4 +{FNM&JMI;C:ZFt\x-'iB/~d^ZY  "q-ݷ gY ;>c3S#᧱ +4uRQm(*5oqkޒ4Bp7uXТ?k{о{LTRNgdjԗz;|Y#t.i}Ћ.m=fOJa:V㹲5'jsx\v=ߔ +Ғ׋{2nu]Aꏺ?g/oJ{<͒w5rY>ՠq=*c8بBj` `۸GP}M0V߃2כ7;FhBt"@ JQԲ^5Ѽ؍bU8KBGs;I9{"$wΨGZhN#5.|Шc^.^U&N7l^)Y\ fUFnmJp#zy':UG+0 p{~~sǠ1|i]ʺYs=NUu)O' ;K?s*wu^D IeHM aHJLpF! +w?GKוz`feeW  ?Z?]\ Y:|jw &fcwFF?S\iZbU-q?A|Z˱ǽ%.]]FY[[\381tm+'ˍHgUzLiNK=|_dKpewެ<ݘx):nqdeIp'mp?Ko}<&k뾩~kPڢGSM PMtW4?m}iei|4TalbBwl2͒Ô`kI{0AawעEcpSqTdUp80YkBpLy?ѽܢyJ5-y0'9Mɮ,LBqrR6Љ?vJwcbɂ +v޿W$eXUD{o3y,E i0қuec]5[}4&rE wwr 3=;=P>c1JĩXU7UtTIZ$]G'vQ:{Nyavwf-eOV|Kmݩ"W!H#u^`W`*Se똊 ⻴eWr\D/ cffht ZgK+*"9"Ғ5~z\U1UYZY=PNw*U2ѓ + &&@w)i|QΑZ+L+.򫼆W^U5x.W٩͖K~gkc-a/Gu~URҁ+v"w32|&OdFBRL8)x&Еǵa'Q Z.ucY4/2RXBۦH+&9/W"$=t6ū#W=s\6zTts}kh +xB1\%8w_BZ +"J 4 f4D"R4U{ +qil4:av"+۹u)Pʺc:HvSʎf AT+t{وsGLR2H+5T8^ D66yצpVd7pCоfq̓I\gӽ 4޵Cs'~^#6͟SmSjkRGS[2ıjz+15`C|rUhi!Ò$$֨zŝq_R?ߦWa P+;t0}ͲY4֌~kFr}KD]{d}YPip_"L#+ZxL]0 tQqBXbx]l ^h>M5+66\?nԨ/Nz[ W>z<1M}[+#Tܨ`ER6oMj}j?FMWӟkSc*U k=ϰj~,ZZEig'Wuʨ];wX9Mއonese96@e5J_*q)FzyE-P)KMnu 8' + w|.t)^"NAd52U"%++(9{XAValބZꔾo?[-ʙsU v_E6P 0}`9²]'\ML9h$<#у< Z}c +QϣFoZU$bEJ @,J  @x-cHڕth8h*g\H +`徫#Yaϔ**@H#|VO7ηm~7Z븊s-zZʷ=t33.6^ |;g`0qղxF˽` `7+fC[gv,U0ɧE]f_y%Ѻ-pcxM?G> E&@ww>oq7ЙdD;,6Zk&^=?spviq=ftfڝxҽpqd "࿉ +@v@Jnv ȧC%e7ÍPh P+|P1}5}e!M;L`{Q*#)Wg?ӔeeGyΪdczDM}n(Zx_u_JJn=]Df/eX(NeȘ,9S4UhBD^YyM)hUz:t_uĽj-KBG!` ogOwy}8㑤}Pw*8ꑽ*N3>]q0n#}ͥ+]Ϣfdt=g!]cY^s̗. UOjYɫ B7p%~u1oɣCi$dti5J򶽲8QB<{1=+K#{ލ]ZN_KfAe) f.Gz=r]`<#xWq6zglᲭW躱ɠkLhk1bp6N}ZtiE;P%e~ +XNfL,쥔]o@IgFt]~ͬdb(7Pϯ^E +NKNc죱2EF5纝ow;Ǝ=Ol\5cuV#+~C/yR,S}9Z紐g}N<{kzCM9mcmàd.VI?3CwDP¬h݀xy+'FeM.*gB.|\Ax7͟Cg>Czz;Ƈ)/35 ++|+S$>++d~|)ZQg^n" GglJԏؾ6'K!~JYٙ9O=_d>,l??'"qMJrv\7OfO1 # +nr"0DZ='U%~VP4,z˛_\j+B،GyayYM_q8t\ }TBLʻ#6%GC7itp9Q4ݓ_t\LkGV6c?d}Z+Z Vi Iyd fufϧkf/Sn<ΰo]] ;ңUڭ0a9He\Uё.U3_m;AuOoO oMP3[9],H0:S^F4 }#E9c]n+n1p)qWcɍG'KV9?vA,ׯc+qdW柗vΎa:ჩ:,iՊz:uT|*r^ڵ߾h^pFUTٻ!D+S\H{-m,[͍[ +`s-+ =7i(sVໍ3 Lhٚ(Vs[Y灼,rs;H"fS8O9KHL<^DmDvj 6wZN]N3;ޮJˤ2%Ni.3`@>jMٳSfj4h0\](Xz*h 6'"( kG\yܰ_W-nyo; 5쒦tK6 -kTsO +#%sҌ ՜ލwo{"Fz/}2SEC»!#Er‹O K/7X; Okt#_[ٜ 1,0]Hud6Zx,/qɔ`k4r (+<؂H) aYl*p<Aj/YC<]2K-Kp.P=2{)Kx'-'GGcX1D~oOz( C4??mȨ>U(;P#]]E}#z\qXA\)\ӹsǷΖѰ*s󦏐4ci@o _zܒeB0dwPn8%1uVa%XЖ'P" vfx-] "C:.t }ZmX :6f*k"CJkZ{٨,JfY +endstream endobj 63 0 obj <>stream +j&FӵӐ*w +תʮ+k' }GZ-Ǿ Iȗ9la*1*,ӏU.mn%>~8ćΫ C?Ky)jzηMujG+#-}['Ě5zqYQ7G] +ŽQW㹖oiN_' ȵk3 FmOxO^.E67!cT*z%,\-i'dh4^b9e浛}7 +8}@`f8qFzX̸@߽F$:V\h%hݤ(x43=@uѿ# I;WfƯ)ܮF^͕j.Uk–xJ +GIe\AWGRBտ +P: + tN|a   O&:PBJg,0_EY*QM}=J).Ph\ 2 N0 E"@ُPgzm```` 1f5n`햗XGP{'\gգV BkV5[9eEhN3&}; +u#X0nN3][+;7~7Ѭf @@G WfG C~~osiRk+ +vlU~P):Ś>B0#n&w^eb}ĹnvSr 3 S;()cAJS:F_3v(MҔ?K{C(k9lg^=H%jW]wS"׬^9s#yvʎpF6ytW5 ߃UiP{/Ov=n^ɴqypߥGڞTϽS89V~' VԹ-gY_lh$RоEJF9Wk% 5K2FS^hnI9FovGy*39Ē8ⶲ&SwIزlE#epPdΛvG0ƅ Қ9@k{[9ņ5޿OX'|1.X⫅q(ycy/9ӹ HUrzvu ٵ*b1.[[36n='1u9.xsR0.M?XccIxGJNjt}W*%KQ?=1|'M9Ϗ2QNZO`;zU.$/u2!N>LGPOg[D?2"jAz%y*"W<>F әs~7U耽m|<[xm '"yU?C)>:=MxQOájO3+Hb/vh?&rn](O7P ~R0۳ކf= ( j8u$T}ެoC`l뷞~ ܅nVj7i>' +СK<##nO.7 [ޘ,:Vpt@k޴M +hX@|1ugPas\IvRVi&Gxz-05wf5x T'70^p➂ŷ󲴬+>6~ q#t\5{u3 !p:fhyϼ>zwjF {FpL}Z=E&״MR#Y;Z-^qv +>V~:oH=Ŷ*xi*mCS}V ;j9iIΩ"z}̟s\&gN^9UCҕ9QC0 %$"Θ^_mr]ur(½6/MPxh3n贡tI窮݇Luo&o/ EǧR:|r7$ m~A$!M|r`cSIys<[|u.x0 ;s5ZCqۗM͞PzΣ}ugs{Cj +`Shu&+cp-od/iS"CG8[g9vKޓw0u0*Zq?W)_ +AN#gVCs;%DPұC +kP8J͵?z +QrG{;y,AR,Ss^oW-Zb=RL3]l5?76o;Oum`tٛǀ1Q$<@JNSpG`cN'@|i86컨YF6l^Lx"4E +Toe],͒iB6CaWӴb;~OMj4.fb[.nR=[,sx"kz6\te(ToHYcAGJ8= GyhKtfY"oZ{k>M}ڤsAҎ b7ߒ61N^`sdV/c)ٟVj{rw._IFd镈7 qtڢLЮ-m@3QQ朳<'A-TW]]]-!鉜uή:{G: +qnta3֡'ݠQ9ʢ +jtwQPoJrWN쌦:KQV([Sh[-4#D:h"xTN\ف(\KjW^%O,!ir٭bXOs駾'zV~*Pi9RF (DO^lScV|v(5sf$YlJ vXYwhοJ PF_͆K ˱;3֊GZMƄu.C/W+Cl{ŵ⬢jFғ +)d@Rx9zȯ{pnꂴ?W8*;5`oQ=sPaξ%aUT]) tHǿ:. KiDg8쩏ffA{Ef$iRmlA䥦ʊ}Fߒ;ux!{5B._^~uڳ-:‘=$7(5j< <BHJ +!y*%#0O}/[ÿSOn9ųd}dؔRXj>_Tg~/}u>o[àE47'Mƀ&߮;En-fְLe^E7T^nf}53(;wk11/kvOej cvaV\kZPMB)&ugȜTH:ԉ):>㍫X’AzE'Z}ZB-e#Joj0pD&27pڑTT䣱bgc~>Y#jzS(GJxrjN{j+ ZYR1Vy!8T ;f G۴p^W .Oᝣ~3Ϭ? q̮55,'G 䍇f1mdNO60y7Rw-x>ܨM~,X*(rЙ<4A)HzzL9B썃47gVZgQ&o\C3N +/QYwGp{n=a 0)dovƹ$~O^&_.iv.欩d0&9Fo4v@5n/;Ͽa Ԉ^+lj"].(0Aq@٫! db ˰c4Wl pf6#TB{;)օ}6Ը@X]@\wRDc@4+4&C}ƻ +5^p_RuA`vc'$CZw&~R@v: DR'J}0EB2=gL<M\pvU!=:kz;V+Uȕ\\5o(b|<|8pRG.nI}.`snLK@ ЇLc(2Wֱ_k{@>Bc<:QW N 6w.wN^ +5f)K|נI ҝ4K3!VۜS+AϠO]+:L~ $^2:iR,Yx !ȯ7 +\]pn)ZSD|iIQݦ8>o*#)#UĻ9Y1nα^WlݿzvvK~%Ճzksxs1FrOjLi_Sϲ< 憽ݜz"w +4|>((v:4'Uf1.TYԂ^?;ofYizkvu] auR + O> +$-O-3Bğ鬝7RrcЃs6޻zZ: + Myyt%z&3+{,o&yM,d|!=@ޱMi,~Fvt>07'> `騆ɡCAϹmbp>1{}3l_\o&#y,gfəe;OPUМBhb6IDŽaDs[k ;}{$;I*P<{A9{ӎeǢk勇x؅;Ϊ]:qow0_]OteΑkUoߌbV̱ZH1ӿ$cb!F#:?s}PK{9;b2\܌K[]Go&b^k$ +-jei΅h^$؀ftrO^0hF+w~XCh#ZTC#]ɨyyqZB͇JMy$w5~5kagƙzm9&5scȫ.wd^v l<͟^#Ծmʽ|(QvPo|;8zhuž/ME= ;HG;Q>;\e6Z[ApbaU<<~Q,,eO+qy9ƽﺵ_TN3y(nj0{|' ]ȩӷ`aIp`UF KͻILe: +ڐ;"} 3YnþpЊ ҹN^vŖө:0g~Zd˵$UOYqœӧ2LEΰ;j= NӱY^,}U6?U wݖg_ܗ6Tw9=6T"co>ws'Blz%5/3,Wf{* e`^{ǯg;Ρk6HcA,PcPFdxq7dbeфdD~\,QTMꕾͱV_F{urw9e~;9*J}_F=][QWGډv,cPƂC'"©cS|iW+9^pJcՒ0ہ `e)nzՑu 2h 麟SUeE ȸեu$!"D65jwB7т}yܻnqCQs:|sz1qڻrCԵEWJUs S9puK~rP 3+#_n̥w +:~DNng+fý? 7Luvv {KO/k͹#o{⟯K ;[p+Yƽt^P]2 +sk ̻}MސӼ@㎋wb7k*a~wn-/~)[Ts-& زT2R849#EjqRGMQ[ Oobl,F wh?JUBI-\^Mػ=cCb@cP1sƵE󱍡ƎwPcheãS+̿3jGOݸCkFWDީ'^ɅYB؁-GBX6\ +<:-(d[q维\ZYz(P!1W"W:<`lr0GXҮ t"h}&4q/N:Ȓ%L.Uڸ݄Is7(Ҫ4k…} +ѭڳݩ@Cwx6!\4\zv+tf6DEq8B?Vdd. -Xl&k-k>U =CC%BҀ$Q%ο,?s^w| q 3o1g4^n4۵r.Su}EǦ7֐5]]6d%/jNqRCjm 8ezO[!7``4rgEyLZBbX.] ~JVk|A9eUɣthet +㛊\[+p5m7]7S0e^po@)'6I}GTyJD1 툗`աzj + +xh +:_a3mO @p3G ̇9 ID%QU( V-\IaݵfS{yyZcr/>T+ +{Sڈ+Rzi,~eڛbbtHG)K>+j_ezg?.'>yW׮h1/\>U=j>Ey9e/#O Aom_hzO>)? ' G-_ޜrEBt;sϟI>yxV"Gv 2KMLyg583q>Ea*1:-GbJ^MB Z1H;55 fi٩oʳ{%ˎ3 x^I5y˙n;ﯷR}so3K`g٨zgW>KdPNPZߕs+qcpwVgnQFr }~9H[-]~hކ#{̺}M|olQ-wчgo ncgwq/Dݥ貍廍hg\tuykxb) +ih#kqwMiަ])^sd:7rOէ%ίOen^m.a\zʉv$K KC[z\Dm2&O[:j'j¹)g{8w\cT ֧PQ[,䠆 NP.I7Ot'F郸b4ס3cYSa'w>|=Œ) c 볒>koU[ޮVy.F=ocIEW_3a'c Ϟ[NlcmçNZ%ͲWsa +max!a͌z zd̡5C#_= ?g'<9n2wrjWɼ0q,\5ݶV75w%7k6¡i4!sf0̫|iծܠwqqwLH8jdm})@UUf|Е1KLgsBQu +=ܲ+ۥѰ3ӈbdhfܮ @u)[5- k6(z)f^ v'Bsz`mQO;ӄؕ: Y듎[.դB47)_e#GTb_ミ./6D'M)L[E/2k}e'P&U1ﷹV{Ƽżgd.3sGnNV|f-Y3YN+gjCs5dִ̥lBL͋; + +l`㼌mGriKnRpZQRp_Ƶ 19znk=;;z$ZяTqzf{T6'ߙ²wvs4slUe;3x +uyE뱌FN"m˳Tg 3bjȀ]G8ppب<] rͤuj$^B\6 8,>Um^BK"n/&p_d(g!O%hV }KaiKK-$qGuV[ᛖPIn뒽z,>ar=ocz|eF/ãRB㻌G5DkT Z@wAH]+ͨߵCf)/mm'78S3 zΎ]Ǝl!P^vt?DR1{uκ֫ ѡyqsNs.i/,63CFVhuM2#]^ LiDae -x a[Oaڵ)Z."-GҢY!Nǀ8Ot$M.Ijl8nY8}aji=-IyC[{<YXhʎ?Ȑqn!.sƾ7!yd >uX8bB!zh&;@@s4FsLXF˕&)y=5z2dktWgۃ .J+N4[FFTmL7ncwK-j//@0 0tz4j2[,$ tj-V{H[QhQBSsW^8)TW~%SXqrp}zϭՑܚ-(9uc2n wA|=4Kd{Ғ}J +*!'o`|5;*6pmRsʅB9J֠k.k(R.4ERD9v-5Z4ZN׆+ Lqy QJ^kDm5+êHYo(+aM_ճSN#l=>o%?0q.AG2Zyuv2/'SK/1Leۓ{ o\A1պН \DIq8cM2+_c6T"jęvZf*Y)M߿ov5J)?Mѕr6uL!P^#̩F:OO۠iYJ=Y}$ym}o\_[f 3f 6N jDgW~NQ߭mx3R̜_=jvfYs/AOBF׈ Ci~lOz64,;'V &E'RK)~{^5ŵH$) ?}ǀlnD@܅Jfda +9B΅ ɗO<)O +|@i3_\q\g]<׀ @P|KA?ź@iIP "ZJ0E{Qb +jlI"@7K@u[~>t6>²: + gY$k*RKz4>rvtTo%]m~EhkI.Q$q?4a(c|068o8`T ()V`8nfJƩo}hI( !32uVD/WB("C( AWN1`V^/΍"`>cL*Hu+l.J?}E-pHڀSCip8VBgm4>ׅl#WaȊ`Z9PM0}̕*OvN`Ep|:|Wv' LP׀g@_c- +)U F?zrׁv}.dӬbt*C^nNۦ_#?oR @@V@b_% u6er& @J E?E߿E+KMI~O ]슶;%xAiƧqrcxգ>eJ翭!|Zz?_W͇>&W4">Ir_%>۸ûsNmYo&&;}^ÚKn1iN͟|5;O}R W$NgoF=jm C:k`?\xE6e/7]87-{Ͳ4505<' w1G[_.j//,P׃]w|m[Iy9~e ~ӉpPLϱ1{4shk߇\%NsFIj~s;2F_y?O,IzgljZLf:n3JGhkP bsCsāx!~_@?8(b?^ԝ.4buV~ioծ^ƾyaewPd.$K0 aRO,mzK=v'Zֵ2+LBur~jn -Gun-!Rduռ7>sj$n: /C ʣm˓g8{eX\q.7v C4i:7w8si=|P͠FbH yl}v:^~AU$%@#:@oUƵ?F:(r_}]kwH; t@!9$M!} +i(żQ#{{2iJy[jdS bnw ߋޭnw*]cTD.p_Oyi׋U_y/PWݞ?Z,~ #ԧz-j]Vz-kպyoV)fa,MTf by_k.` wl۳Lkcfn-eم5 ]k|V\c}],qq-[PA~Y~$r=aV+*bU=Rq jgf"-v̜=tvl]dzV)3/m݌Ym<3OѠ͖\>{X#XӖ/6 +=lOk5 N{O?>n=!g|<Y{vS$ۉZ"lfm FU\{(GH:T%C֥±=HGnVS XHX[osBy1D` ?~+{SEo斳ұ +vb:BajRKiխX>j9j2@K`F]-^yeJb=_}08r*aEz{0VҒ1_GB_S'U3v]ck]]0t3hu-s~wwa ^>Ii,hkHj +]_u8#U$hnFwq_[g㇤a]p±qAC(=y:3%sK\Q223_nTɥ:{Mݻ:߁@5.LDGZ^\\*#fIHEa,o7/)^Y`?l$p; \&Gq5;nUvFQƿ;^ofW< D#멚k>܏w#@ژBA + MRSBNt +-o + N]󢦼gfrOԸh)zq$O{qf< ۙo~9v;jZ)gu$IAY# ǖ@hE?P3^t4{m.FK6?wVJl- LtcLFzzӣC[0q #8sHFaf+V:L˒2T;7Q>?ZBa9[H{ 0im6)lvI}f,1'5SLi7D[Vv>i w2rVͧn8 6ZSev2:#mB!g1[ns;p*Ye3cZS g,=?>T[.&FcߕjJ.;YooI qhh`ݡ_L o_.tk!oW8R,L^LN4`qKW2JnrQynrwVm,Y>ܻizd$Z`U69"ʡKRaH`Qޡ'.|9lgdLu }{߀6Tg\x\Ǒ3vS޿qEIi@PmWY %=9'RV Z|Yc>-up{XcJkD?m է*@vL1O ")a<k_ᕊ`T#x_(OJyo ձVg%(R1Y#9o LU4IC64{#;%}Ppg"%29Jn* +cRCX[ 9 #7 =m^*-V?N8y +>*|e0a֣OMMҏ[x&Ruʬ[]{)օ˰HAy8緅k l)~C;"T!A<ow]^֝\^.>rGOB^tkejXgI fחtGIk.Sޞd:xٶБm}]] 4ېd1*C +{ܰqs:C%tpWa,;W3Sܮ~G3N,p)Oeic!O),N|RZ:j}t`6Rl0 QN=%~ԍn֢*̼UJ3m}.xC)@?@OQ wu+nt{t}t&)BƅO͸ۤ6i5 +=;.r#Wd3t Zua". <7Y(TQ$؍LS ϾI9.o|-4 bM1q_\' d=QPSEj[o^V?zyˮx#.aR? ӡc'= t?S\p%"E"z)z]@x65 P> @dHol{5USXG[=?sAU%ڽs%sF,&,&zs~:tf 2-NSm3|"c߲_i-v~zBh? +* 'qsBwBH@fҏs_a!RmU ҖlEcKP] K:uDOF7 +f +?GSj؉kK [blՁDl@% H.lxt@鶇n{@zjzmU / TD!h9}bS s8\k6iM5\J@^P9Puy:(_51j~8qsfac7g<ݹsYif&O=bnK\7q%R?= 7Ă}ӭ*'egzT!c`~F1N;/ӥVO"wխU/&sQg@~zGF6}JtnrTϸi8cP9L⥄v ݬ~ oRS]h{Եvէl)nIU8s N.k2_@fn??hY@.:#^3QiԴmX!w~] &0MkVy5Q_)hk?=x h<0/tnTT~<3":$GaJXyCneS*+"Z<0nr,*zK%~uoB@w-.vEȊh$͙޴'Y=Lr+=x{.; +lnd1|M:1TeTX_OZ/G}<>w? +1]umtnb,E*>j O!BG!lKx@ 2Qo  .,MY5HyۣfϝKnҭun~&T9>Kmʘa-+7~DbX6ɢarPoLKy|Ehdޏف yp˹X{ߦ=}+^rg s'[pU9Zu [碘s tȕ?[`-IGO..gs(ZN-)La#8F5oLgh\ZxkeOM'=iC;?Y *28jEM%J1W\Lek5y\rnU)7(Jnq3N5b(Ѧ??T3@ph?,fm; _z>2^{etוƆ;g͙wj䶕aC9p3*Og>ZU/#Tj'^Y]S=mWЪ] f'5":ӼUcՔwzѐօFR ì~n5FHQ'FKr-*z3vM빅c#(ϰƬ漽6tNJ-4K[gīu(f_sʅoFxhJ1VY}Qxe{Sq.$J Q3^8ܬEeM1uҪcap~U"^VVwڛ7$f?_'#Cѩ/egGHGhnjsP7 7=bZ'fQ7Xi԰WMs)Ώ_ r1۫[O6%ly{YyJbno*WvP,KtP hK}cіH\&͖U*)1F kl.KH1^nїz! +bI=ÎJUjRoP)[I'I9/: B벾͡Zl+y0ԯ;n穆Ku{K䋲Ҹ3 +3lSzz'H?_zR*U_}ҢƵ`XH3+f:0ˌ!N26%ܪ(9mBJCrUfSw'ՑB|&kYMb%R~5 +of ӻ$&Ŏ1?#Մ/9Y +0(<<><<IjUl "(/ZnЕq|kO搣4h]>-J|I 虨a.Ba9B}C%-lnр\YLU/'l;z7@Y +լ*Tn,|m UY]DY>w6t/+#j0)F}!∇ۚ[W.w8>"<[ &K-SM[}Tzch(C oz;x}Q(@%Q[UZn')I.8Y=RA3<]zCv&lu>XD3}&LýS YXCu-׫4$(n)߽( -\綔D~ /n:*]{}\`I{n m#'%&)eIy#9kr2沛Co>+UKDt8Τ)HfS4(J*UerH<~ #ؗcm{ּ[ ,`I\GÑr l;kN8,)lq.>m4߹t(zP wG]Ü'J: 11(@H(iklg7a&z66 <)b /B B]nYʗ#1d[b2MbhcQJL륯ԔaC(ȀKOw/3Ӎ6XiqXu@+9E>qm0Þw/92`FCfO${7%O6ITԸ +e^f+q5lQX vV/̷^%WTF0-wX\s="@Ruy\s b ,EtdG/L١Zw;JjFmNZ?@u+B\fzF]X_2a)um&/_-ʎi)Nuk}O'.n#*/i60ʘ- +6pDE餵l3h i("rwdm@N?2 0kM%()@Hj+s ym\D@ Nrw8dNϻd-^K.pp9%~S + O!n+$Te>HMFYZԙbeFy *LG/$ )$EeKRy,~gҲ3?9څ0G {.;eՄJ=B 5 ]PC3Ż (J,Ne怪v HqOM-%űYy>5Z}@:C@_* GI5-va׸ WQK}xL]7fq776lBZb:t5\zaĀ> `h)%f~05KFрI'4O wwk 0Y\Rc'+ЃǗ䉾͘ڻFE7HfDLRz8աL1Y~A9Ba+`;Am Q}U.Jpؤ>] pJNe`E O3o"…0Ԝ&Xmr}70%^WC3׀7<^CI'v,~[(?koS@<z0>HJb@Y&_qS7엻 ݎ 377[ߚ~'<6qNJ?i@TN6 RVY8DY њ $xJ e@*;_4K?UJ;-uY,0T=?|/33~UM9_r~Yr]L^e@P(5[@e>PYl|KiS{7Tk ?Bd7ꆶ+᷎k鯳ܣYD!#mK6_Vznsi!p[[^Ԥo +% .Y}0Cޑꋽnruwy|fo/bۨl-=W66?} n5R" 8]|*0#mi KȅW.V t6~-r nIQ|;⳷!/6檸UIuld~'UGK^٦3b [GCno\'IsM$+. 5 /?9 ɮz~.ٯQ齃ŧ/ ;{ 3O8qnS1> =pGn$7)x-skRC'ۚ z_MHؿ^:z ފH~ `nõh9 fcikM25@̆Padܿ t7n0Z>kP,[,鷹Mys^ZCہnʹ> +ݮ߲BwMyy͇>g'>>ɍ>=FPL\,5\N\ bss@Q3v`gl[a:SZܺ5rtMnt=j}ӪDkqO^ +ϽQ_j_2%~:D"ڋAMwRxr,- ijMdձʰ@wj}S6WkF_3=S7g6*❯ܺ]O,)J:ei )9^vڴ[Λbj:{\׃>zNqɐ+ VnH+7a-|=)E0B,;-q+㠷eoo{Zr=CS,&] x`?7Jy_kzu\kܒwդӛVvpx)Q-(E.9 -!,[Yq9R7> i{U*C^l6븁Vۯ_,^J`_/3)uΔc`J#klbJe락?*Q}LMK-uKy8+h9Z[uR܋g Py+p3UL95 ([-hS z62 Cf[í'Ea<*'s-D/5Y23R>;/;Iy6)-5:}af^-k_ޔޥςVMcxF!x}U/NkM-db +n9kRgUKp.}FF*g N܏e8qs.!˙cXٲm5F\m(#3\,vH[br>j iezkUT=6R7BxEn5it7Xk[؟%qPx? og vZ{x[wTö9BP,ƧiY JJ:TSliEenux"vo}~I\xlQ>Z3EB`y  +o@!^{4f CL>VO-l`YYEsPk.(qTcoII/_L6bDoci F+V_<91pVrcZ3Q_mAO@_uЩǙ^oV*R)R򹛒dqpzb‹S᫁Ɯf-o7'>ۂܜ`_6*[*= =S3V Ex}晧qنLg!TV_n0b*RV)fc)URKkw(}jcml `2-EhqsgJ}˝velL Wf_J$PZ[K77z-ubTE~G6YC)Zm@(l +ar:?-LaOϏuv߬SYM^(d/Veǂb+Bů?ހ}`rthiv쿩sR](:uHd_I^cs`v"| +!Ⱦi~Z~HTGQ£1T| O5=%ԧUC6[Y4<Zy,\= P{tWsoP]CS&Wud>HE!y}heY^G,/' O-?à{21wzs}1*M=Y68j3el[w#^1 } 4A֐yPtcb]FWbbs^y\kܾy5kr^AN)ELt^|&AN>V&1=S|~s秘kJ-(rάgH'w(RrpSKi!=8;|zcXn\[Xn2Wt\BP_<8y +y,hZ*"r{"` "]#TlL}~+Ɏ:$ hh2MTl2342 +[׏FU]JwkV0@*B3=C;$]6x l@yJV?4t +l(6ULnL$CQYEwn|73bQv"J78me"cOmH/P|Mm!{B*ѝhlpz y_ W +A;F/Pn)`)kbF +I1Hzkq``A83m,'>b`u`vsxk/c-;"; n[c:n28 tcM<7eď!VK> )= [bYx ݑa1EA|1:)[YzBp3e~,z~+g>F0G/߱ q+ g3m ZfQOCiWhaU@z~u +1Iѹxg1q"EL h>Dc<D3za[Y?4:1"?9-~M"1r _;f1րR$_4K9Jvcue@Ȱ!(- L%Zzlq HzYM@ugL=co$8e|G ϝQk?&[D}Í<}q9z~Dž `0A i|}w!$`bW_ֻ[#?v mf}#u_T_t'b +|٫"Z=G~ o95)YǿJps4M\|Se;ż zj|=1߬V_7;Ŕ|A-ZCӷL8/vK:\o?s3?o.?k/*aj@1>' LbPiq@@lt z]DAW9C/yak-. ѡ=1s&]3'u ȇ +(9 +s/E[~G@)@qP:b8 oi Õn= <'.Z%;,oKaG0G!8#&MzKG5a΍ k[#[)` D~n?OC_u~u`^Os SB/kNZϒ|Nw09ۍAzs-G uj@Iϖ^.B-r/DBYD!㶬,5h:yDRjXcQ'NޮF_VǽRU~ϕUnwʠ\e\|DfΎgMMG歰Qm"̱bQGZ2،wזZJ5u :UTM^EM]{Oʟ.[D%)C![rX)!a$YW',<,4SG%JM]'Z}-4Tg;܂h[Q>5U,T\ mX)aTɡTq9UwslOj{6qx~W+`XX<|.Ya=syjY=.4 3*}uEת{p*zQTmeTU*IQ|0oO8#}kSWUή]S7/çUQ3˚a>^H;Z+1僖;.jE>U<6HbYޟF%9/HJg:& ) -" msbx{-q L<+-1/E3o|.ݘT= 0ȨOO稕ݨ꩕i);04*^m/m*y# *^kGA%<ڭ0*U?q%~R:Fe=IwׯͽST Ȍ4mc ZZǂ;BmƆ"ܼ4$|W?;?lQ :ŐNSxa?⮆@^5Jn%8&sNIaoX3 OQTpOP'f7;! )A 8ؑ]2-NH{p:эBvD0NZ|W{[`lNۘR}WsMA,SN}o]^TN G,o_I9`gqZf6\g]Z26b<3gHJFӌSp*Q|ܐH>I1R|?61Z+|qȩ\.5&,ȧzNMa$χ3%EKrHncALej U-:L*t#\7hS':N>:8b8^*V@7 3.fy8Ɗ;]H:_8ί+T"ǞL/%\^u!^6t>|qg5RǘA~)JR,N;V@W3}Ofvh`6;.:w uU 6#vN5WIMeJYnv?~j»1kG@BfrJ3;!F Oƹ LCh6Гr +(j8j~VTD4*G9,&J_cۇ_"s'YCw\z9Iq)eZ6 `F@d=RlGDgUdUY {Rr9>ZV{/viM9f%sH:i\yRsA\M;j@#d+$s?c)4˟b:,m$;{ZM/;oTV}X L':"_gc띱ޮꊟb2oL -r)/"oe/>D0{+ ,ug -9c {#òZCBobAx@݄2,fg, +Kh"@@()M7 /X {e.Kf^X6LWHU0-[H%>CP(B +"y +Yg~v gGLelsB ,ЌƧh)@!1(\R|PRO ؤg@@S~2[9M^u`|5lvs)Knp4ExyྷMo󐹞`q5 \N2zs2ho:t~t}\<)tq , 'hd}<#gdPnXi2i?X6(f1zQ% `ΐXcl6t-`Xv>)N ```?}FlVY_+9+G2CxR8$oXxL֘ZtfCc E, ~ӡVkF)K@d$: (=@RDv0ü)鿭[{@M|jqz`] D@kg Q& ru+~c]@ 6 *5ӉS,U@\z5@bB Ha-h6I6UTmZ/KqRdw욓[o ӁW ]@JѡudtuTkE1&PШsM"q4IPK3*hN9߬h +SXuُy-g󷦟)p|j_?bXZM%?߱% XVS.zN=f7 gabN>^KpVpIimt`#=rE~&9- jS/:"uq'l'_ڲw19UmL/@QܮDl8b{F2)? xy!װ92cO+}9| 1@/qW}O۸0@kq;AW-->=[G0|c)|gn?A4IÑq:/fBmo||kTZay|͒FL\7PP-nUNfJَK0#o3 + 8MEOFrA ѯ2 +u5pd9MBߣY8Qx=d+zqB5wQiN Kqݭ[o'.Ǿ8o|eYto[_Nv_htZQޯ~;U>)[;8ٟZϗR$O@ h\F5M7+^n@N:$gc6jZY˂U ZqAsc)φKdDدk:nj/~Г#;eWCsjޭƟ|AdcYp tz^GP۸]/p;זf5 ݪi [X*k(?Pk[dV$bi?,>ӡn晤MOp7׫{sXk0DZwZ>j2U_/U*qB]qg`ˡehVJQ-4Ke+;.OMόlO^qd  r$k_d9$A˔UW`ZU&[ͯ|Za(CBUkÒC )+gMra&nO1"X vțɬ=u +QTqAţ`%ouZOxtEvXQ +m]ra8>'9lq-Oťr3 Svm>ZٮG>_~Id)~Vy-N +#u r:̪a[')63 ٚ6ktGn֜JamQ:F4/~ +(U +jz0+0nUnuv;:tlÇ3 lVg<e-}sE9*YsŜ0?};gu?{^z׃I>3/ñ +~ DE]J -XZRjM i-GsczZ:wsQI˝&$p7,z5 )#&PC!p9!UHb +4lR&mc{l 1>g⢩޷.doc :j;Mn8W>Zg2dCG1CgybMIyUIVɓx՚|s.ek/SgZJj:&LDM:MPnfs{u|״sJkUo>WR{Qu)Xp/LޅJrfDHC +F. +L$ %#BHxvMVwkS1*pvGe$k,rM*DeiVrR(®{F*5އQBv'}*ʥ;IȋX94R$AE߽'^38Bkx&<XvvU|K@ŶJqm|هn T6DűvʹʅA8sKא~S 5{'rIF=^11¹`*aMUa11}ыi,r?HCgDg>£v-Ԭ,+m%]ۖ2E//)FېWrYBb? kqǤ^h|6GXR +5V5ǰ> yb;[̂`g>o eso1JN4=8"nk鱕̆F]5ʏ ?ȼz d>;?$]*Tp;;vyBI_'kVos&@* I*GYHu0bEy6Kp Hpy$i/RzewSoZ/2w % 3͇:ࢴл(e}ଊ2Z<}9P@E\W[%"@ +HTo*be@}PJ(O@!cyQno +̪ZW\HcRYTi$Xδ(\\Q߳/-1Wu(?fLTAM _:<@=pЬeZD.kO:A] pt,@v @˒h_~}:0uy!?s]! zdUo耒iq*L'Dlt(1֌7O 0-U =9eFb٥uI[IOx1Lk'4PAnJ4WN +&,j E2:| lBĔ7𛤐ozM!ZW]orNtz ڸ1\μp'e}%qAŗ$Ү2L/Owo4:W㗍/:A =nEO{ݿ ˲ Ff BTkXRy"}FN +~": +p;HzJ$ }NsoD߄ H bni)Vbٍ4.@$QHHZ$c%ǽLy-]n;DeÅ  @> ~UF%n,((WCu;ҟįzT% G7̻0@_9:vI8..&!:rNM2If|=L;t%?N&ICy~rKolH6ʥ[=z0cr;ypxR3}ExCr+-M<8`|aM@ssfH!27V.݂1"l)|vq.~-D]fo }U2~Sͷv8w3;i<ЛNz3 ۯ8#/lt3 & wh9Ǥ +!1xm>GG;~tjfk鉣WG6T\}hkQ۴I$lJqe>+#CG^Fٷ?Ųt>?{@.A~J!/tLM-Vߎ خ5.^HC' -9g,5y<ӻdFXe#1fD{@.޽CGC9.ˮto:]-=0>qFŚyol{SwUܲ.y d7,o֐ $7)3$d jGW:NW!ag~SM/{6ao[qWWuG'Ckb)Aծ֪TTkbs9ڜIfr%q9sx{.eah`4j`˺ۼ_w:ѩax~j%ivZjD8f]W7&WZ1a,G>-[8_(}idV ޏZVmV(+}@U $QF{P'N_,dX16KI,R43c\f$4:q&E_R?jKyb6$,y|Ҳ+E.C=ؖ) 6 @XP'ڶ?|kx6ܱ5rǶqNގen~Z\j ;V)ph1zz’򜝞JTɓ'W.OSG&r%!P䅊YPzkb ϩRl&89{͈eb3wmazO{c%0$_ϨPMU2i̔/鴦:2Co9[jҼ,$?k;Dƻ ǻދ&k;Qgk^'VmG2s&ӏ5~/1ЩDSҢyO* XcTg,;I<ϫ\´.y*"{%azI3j{syyjs+ȝ™wԕoUN73(ӗ*&"=!9:Y5jt{T6.)d>c$gMb\D]R%GNZrϾϲwV$][)ł 8@"\07{kr-Xqg qxمN;wojSi +s29d~zHĊ 6` gf};v0^v0o: JφM),{j{R W^'Wt+oAnw+f4|:JtzPQpA9XeUBen;棉3os6:eW`%*3 6f)D~1E 醠K2yrO>Om_Lx}mhH)Pf^APP`2 7ebλ3 ˥lmkqmѕI${İk+ -Wz-Zy[-}mȽ#uyG;#SzohPSSUA]=n^&@#L[E/.@7=@w(0yvg;+Vshl9i4r*cM7ƈOK GO:sso?T]qެ1ڡQRʀW%{2Չh +qxz}瞘-`dT,h"_[a  H@3 7*=' 諟 \IJw #dL0 fo8C5@o@mEZ=q? μFU*W.K" + +)_}70XL*6ߩ,~1 X8 T`k [lg3>)9,J*+>iڤH#H4l dW )$|<Ro@0|W䀀/{drwH]V5^_ş0Hꠚ.(ˡL# a3}6$(yHf#Ē5D`i cӪ|Ώ +R.rc_cJ<%HonV Jo (F(gP5&)-n32#P͙Owks$yޤO/s[,oաHhezKЭ*tրN@ -lhÏ|.'dbv\_{|0fȝ\L=ҵ#־1mV rVZfu+ V"/=,,I:y;VT7$$w|}?I&=u_'K}.JjsW՘eljK93f|4s:Sk#kzOS5XV'mhs<݆DVuuP]7豻d)V䋳&\Q>,v6ۼ2E9NգOKa53:oU| U +oEjlzdJ%Mε{vԧo҃m6;nˊ6Ij2sh% %Yޤ5~^EGnaH VY%e"mU \ҕX'-> {h~fߴQlKQ r%>[wďY;toJ6>L`T%d!Jl[uLO"{NwKoي]+^ri0w]KB}[(utkG͕޶tCGzn:SF][\csBf_|.~dcł $=C|qIa(̡ppݫv kKkvSU2?MAT,d7o_Dѯ!LQB;j,iy-֭%Hsn_}DۭI2z*2._IJZÄVߙElVQP槕l^,$(,wsk(v0ΝU2hDle5tg˘[,LdZ[Vd& v~IJU[;8hzr `lQu P`ln,hLX ~5lEgM"#^=m[6O\ǘIFNd\?P?,֪‰~XuNP'IǿXm =e +j4'mo,7>-H®K1eYc; 'v =l颫H\ Vk W~#j`T-6AT< ò2؞^䈬 FR-X֪2W1.w0Dk?>iWyMҲz]u[UjJAmYӦ%ϡlBj'ߒm8 O +]џ2&!`2m,Ă}F5T< )jsQOj礄 U1O(GGㆅ˖hSױXV&%mA^J= +>" N$,Y,,Ey~,CZUؙRRKPZ|g{WyrOPNr&{%b$ҎNbЮ"Ya5.U +q~;0[<> bs[N=6,7lbs=w?0e˓psU޲&UT'<̕?K ׅؕP#kƒ@{u&{LNX\9{g1ʞ07"3=dfL?f}NJf>AM˽AYƊmwdSBvVv|:^߸گoyڬ%p= Ja`sŜk\۱lKN+ȭv1anS}38"zΓ)nʼMd3LuR iGyN XX,(Κus (p(ACr9<m钺ǔMجQ'_Sk^[X(NHL}~/T{GM^t@e&ʝ279:9b?5x14Mp~vؾ`X]X]2\^;X(:.ZX7j;Bs+ +LuNJts&iz3D +wY"#Q"8.i`I\+iX¶ͧgś{&tf߯'S3SyO(8vҌ[$L; ԏ6m!3*-:Yn9pt`,(HVƭYi>샏Aҡ[5"'um:e-h2cLdoeFe1tcڧƿ~aB9mkDwx0|`zȐg!:5ÌhT6C 6xO -aYCЏNT27 EY'E83=]b}uQy xO2l> ֱ' +3K(TZM]k3=sSPeP(_E!%AF)IËTwII~ُ+KSXTHrj4Aho}ZXVУ$2bi.z[ + +=*@9@ ^< ݴVD׉x3B}93=ao;ʾV$>@vY"Mgr{Ab`p)o]=\\bG$4:*Ų\7WpPu-Yͪv(S]P^ >S@l&sfGR}y138Aʮ^l&F{Ep,s*>eBFW{@en}|IT4}Xy լ IlG^0lh_C\ƶT?S]C/)! foym"yT>9)e U Hɪ $:CTl@xaRd.V%DVrrynATj `,h")QHdyŬY7x@BPr%e\p9@1` +(8Hyzz2j뿭,:C&Ȝtyܑdw3=)ѭ;/uS?5Ї! h& @{,2`` +;zI+n.lte.!ԣȆ#킋;=㼑gJ~e-~}9NIwˊU*iz&`` XN>v;lPmi`J,L<"iRaNV*.]C"dB~6S¡v9 ]nSE?jfzO釀(  S|e3|BHGzT~+A84]gFnBOV;)ˡ{-t7imN ,57Z[)e dC +o ~g+ʥ #){Xf+d1^TJCinzkO>*&~˹N3\E^CN|T&7Y+ɡ|I/7*{XItWCm Z6]/܁@?^k5UO7Hqum~KI!ȏeb;,)CiJ&a V$9o"״9M^ZkuVvsm2q>鎲Qo8{3f6m3wpj]-\;OG Gx{`V4%kMp6hNPl`'W; \7* @Mś@^xX&m}f<{nvzAteYktʌ]g#&_ l4U.VߺڬΜMUܳWGzQ\q3U {pQءI@R5͒w LjtW%u<ٌ_r֙Ys :Wđ^!]U_WNB1ʖ, dY3ŒWIK+K4Rv NXH`!3 |_VaIJ%b)6cc9{%xs^m?IeT Ϗk~aB9J}-CC++Y Ae͘ǰSckE'IA`nJf_A/Q(0(v0v+5HŲVgvmՐ(3(IVɯq,N{(Lȭpi)URX8ʙ!1˩$?9Ǝ\.$y脒6-PNpƬhEPګXbѹXR,C# fV Mv]UwW55ǣmlGo8ijb0m{ӂZ%dreםQ>A7jW:T.qNd-,O6|z??S7d]JJw MiTpqARLQY$[-}5^H^@S͛d9ɶX?X-Է  KEkz]\7Fk%ʠitWLybB򸡡%ZX8d-UC/-C^,oSjWXM3 +~˼SjTxly2`xکͽ]z.ϖ"z..ߡӳꬶ2( ;#3ɖϳn =֢GvG`g[P@ +ogmwr3gѣVܲVfuƶ8H+ ssjz+묬`Rx۶U# N}lt' +FP&S~΍'5,B{(>wX(K-N 2_:\+3툹0uO$H݌eV]KAEOlO95VH*Bf2é)'N){aQK͸4`ۅXsGcۯb{t5`_у|G>NI +`/U'"IJc?蚄wxćA6me7j=SX =>'v3VBCForSԧ&2 )Pcf}$l4%2M:Q+|cSgU5 ei\KiVv׀Inh݅Qq߫'rqe}D9 wp|bp.T>#~x3KK5B&h_{UV='Isd ,yn%wMc,M9_b]}88vb;v.z.*F:rY#MSAڈJߵI,n<{G!4Z0nxQ4Avp8OX,<W:oRޜ _^"Y\ [&|-f A^-~;2k7ГѦ˺典ZM{H?w5+v>ek:9aca.@Xqt"+_ւ:FX] XTfC˱qOnL6v M8 ju>ۀMiB]74R:vcy}iiXZXWe TIJ_UV{tg >+Jv0yC[bΧ; V| gLgRr͔]lS >&rzu Xi,%@P `HXT &kRZ +Ч]֮jU$)daoXĘqCySeN$#@B[V&j34PA.}7v_-b =X@+GZe_)#~INv3Or)upD(`޽|Xo(d~\bGTEͶ ^V{Z05{DKu-$MX`J26K p`nXq9XzIbOHm(rRH5 f8hz*if?ՠMn*tc[>~rK(|Dbc,f6>euNqաn׹9yaW"scW9˟ kNQeYϭ4~۩ 0Y{Eaih~΅߀mX̟$ތe0Dxe^V!{8 bcY9*XS~ 8{<`⏏lCXR;PaUb@n/@ : ]a )[B2VhW&1XW|tـ\%;\kZ9t|m fqhV -@wW%@kuйwhZitu9|=PLT6[pyGeQ@@E/dd$;vݬZBâzvlDӏ3x[%=QBc0hȘozcz!8+}_ͼLֹu|id9[$;H9; dh<$$#W$̨OU6sW{pȱ6(9oUol0ToX/U{UVsb_֙67m-.*m9WDz)$aZH>] ECrAremdV_^B8̹KZ/ u&8y/#_{٬yx ګR+AJU)>Kh,b=("ż@ +\tR2ͪTv(Uf^kM4~A0$y51_fV}9/su*])X m"-8JI H7JVoD_Ffk1̆iuޛGr)}+{f~[XEx\᭪b/6*̩-҈`Nq1^Hm\0\7~&i0SDri;g|7lH2^gr1hnˣuPEIvƶlZ(Gr?=QL2ǧJ8]8旈CE +nlNs%⤙"ߵ&bsªqn:BߊurMDȆvxiݮǖ(-ئp?g싋ff2o4,!AӁ(v:pOߓt hIfޛt hl<<>a,0`zY9= +%nD#>2zi-nѨ6X*}=Wفx dŘBY5ؖYL۝Zui`r0>iƼfӍ^qZL'z&ECK,:tj9"BF ,K';/][錈3˙S#vԯgHbr1mRI>2S;)^y s8!MuK0;Ź,K*frH;U;m vDZ+fvV'nI6qjTۜLąk{ X! +E2Mit9=n(Ed +m ؾ#CD/,Mpˉ +uACRÈ\fg( 0/V?kj1rg` ӁO4X4VpC=l\ZXvˢ\Q{(^.ϓ=g16KJ0ŘN0g4m7Q]3rf>Ѡ&;8a +l^5'h/!wϿ_/KwpfrlLHa +qfrxoHA3lln2>R__͟O9燎tf7AH!)-hAN+'7j y1Π+$ا4#`b49/OzOr'C]>1$❋Е$*yhb8;8|j}!6~})Ĩkeͽ\ ܗVvLWȞȮU +1w~r]]Q;-oVוa9i!J# z]d}lmhx W-/$Q1 J@<*]qڭN^Po/غ +m\>1r95M܄dueurg*/C>,;'g!wpgQ g?>Rr6_/N8[)!}6_PHXGS3!~_:9/(INTS+Ϭ_>w<-cP 4,}~pAH!I4J-&˵R08U;_FcpeLfʍ0m[hoG+@%mayDvF$I-7]jpS>|8ݽ{gHF|uK@3v~S899}V5yL÷jڕډRX 6O!Zz>D{pb']ft.Ev]_~qnM}~JE*]!=f' J*pO"\:Qً  #m/[vOTg=r(|{}ܖ-U3 jhPs"@͹ ⊉JaVݟB'~0E ?!Pso&6/GR"3'rGV {A!ޝL@> {"z1@7;v UO@uW|aA\dO"a _{Nu3!Ww;[26='ta3 V<ꙃQO4DrTz/#1޶BtE%o q풃]oKs/yi}.^{2fA_m8cG|Z0{<* +!~nz@^**D;uİA +Iڹĉ +ԑPFc;G9)mYD/#i;8_|uQJ +T9#8'1ρOԝ5qeL̡z-HF=m3W_)8α(dOg?gj-t8B(ݱZ; ʁ"+%$8SwǥʑniH2~<~e wyḿ!p23}F{E}'~p&YӨ)w{J ڟ )IgP0n8_)W{)ӗSAP`[5GlF\Etg׎WyEF“_;BOΞp|E\vup| %;;#oMCb@x +j]R:݅\I@NRi_Of;,Yc!̍]Vs|.rއV?|Py*D\j sgi_" KhpӨz]Է;_yg! 8\Y + S*DHrfv L7^N|<\ipΙ ћrW=oGJοpv~s11*@Nz􅓏N d?^/ ;?,n߸TZƘɓؾ:ܨ{GB{JRuFKܝ;A\)17έ[p K)/ȍl0{Cf{cQz)$]>Lr&w< ii8(?hBgX #@]#!ݻRy&g r Nnf#RořbvtJa[=%M'p Q;!ZϿ"JY|aA<ӌsiK35_RCd)JWb6gPڹ{eJnp:]99XW |C-Rm%p8lzaPuct;+W=ph=k~-/?W_ՅV?~Vr[;fh+nir{Fwk + %۾hGBN^~Z|}}Jq++׺E0|>3[jbM'*h}1bR$5'zxDp(T|u0Xh7Ed6F5ZqꭺM9'XGN2!u%h0et*еj縻;EFL3$~M/t&`vŇĪ'#g5lRN&l$BC҈nI4YW3;h/:r7qm8 +ҍ>_خ_,OƻIQPKRjӊwM3J(,yrDqY|i #4&IMqtG/N b*+v>$G)Fgp;Nz1%Rnl&5herG6~@w>;"Ey*4T朻Bwr I|dغ^$u{̈́-"p0Z,ޮ8jn8ָ{+X"6d,L}Ux‹M_J)+<7+!QQψc|tKb 0coK[9;ˢʪ~ܓutQYЫbv{Ϗ1 aM@3:Nh?zN-~66sdbTj<˔!"byWͰ]$>NVbJL䴆S@f&,=i}?$Qk+uL#X(\Hb^̼D)͵ =\z3(ڞ׹ DN +lh3%)_ ?,ǫ>_h Q׺+N?qTr“ >K$Q%5ڒ-%ґ)-*F\!Б&w7Z~Nh|&;8/Ywpfr4>R_6w{ g?)L_PAcAT0s9*~hٱP7H_<˄8I j .زh!'G`qi i0n8~S sB(8WEy 3^Q" G6jA?2 +^}޳\O{xWH? ,k,GUW+/P򝋟g6ߜ +t@9!:NTQAH[5hT-eK z/RSy"C{$G= !:buqTgvcS D5hԢzcp=UkLH+8t“K*v6'#Y)1#  7{o +@̓v!@HŊ)d8+XtIM~{wK-cM P&w}}EjX6~-Rg9 t zY*kY_Y}.S"|WwAh{W!R^s~39gV?}viMK+׶KݘI0Jꡬ"CşiMEX}B7%ƏϩNjddd_N-H:l^9^_8M`ȇAJ{\.q?` RdO0u5|G!vbYk8[P +{CjBԚ2*lEU/+y?^ ^(̠y/ +RwcWbN[8l'^_MWY S EJZ/NM. +(r_jH 8Lk1n o+#vb')Hjw;y7/j5%ЄgU!j}X [ezY R[ⓩZ͹]aV%m{Yp17\+J#WNR ܏\PF!]QMHWԨ0\! =P;:ȁY^)l5R>nkt7 @b\wMHp &SGL?s w_/)lz $} [J5z 7G~-_Q}/Q[79Dg Ikf, + t8' +ٜ'# uk/[6 OmD9^v28neMsӚR(YPǠUjڒ9r7۷xT\50pRpqecJ.÷OTuщd$:]F^nQfUo1S~ts6L'O Ͳ +ty c0$s*5[Zmo/WN%Q`"r¿֧$(XZ@ Pٙ|G]}m1umoģwRV1L3Xx<:p~3_Kb)2 <W:ɽ2Ի 323`.^ꭲ۶mզ>/н^Xwk|J@;ՠX/m|6Nex^7×A.AcI.zf,G"~]v|o4aSX"+)̳<0r=v9T^uad!Ur cTz2b .I0q/Ӵ3GeʛuJv}Y}LQ4<ib#ޫGE15}qHdDͩ_vps'e9csL짻Lf4Ϟ>E}qF@'F}!o8y#X QoZ< $=lіڦƎrE1a\t~-#م+*>M\qПD}'T?ΗIw0l`8_^nlehU9AԕJ"xyP Z!p3)Wlϔ.%ƔH~JrxR{RM^ߚޅ?.ALKY)Jkr[\/wꚳ9H +f%O2Yr(%S[2>ڼD&t`hQRr& z~xZODkHquU DTWHV ^i[枖DM$K-Ft J=(@Jegф^yU~ B +K ATP/ ]KATH+N*eRhK;r-=q]i7Dֱ>u x=`g"x,C?|\si8[]Bew&Msbǽ!UDrLmOC:'6ֶ؎m '<n|D]Y=E.f67G~*_P|,Jbz4k5}D*ZwÇ9Z`:IlX-;<ƒ BKp޹%^>$R[@J5D~A :5=eܦ*ڲ)Łg?jVԇҞ(w:[qGKQ8ܑNRnqʹp !gBoyFeM[1zZZB]3~vmӠZS%/K%21g(i c)m{{$_9[sHs!B?}^jveHnLwof4TE'k@s_QK xz7ofQOC>$-PŻȥۊ#tRÝ1T{z=sέ`KNbďWNKpAH z_omӁ SU|ZD+ث\#B+Cwf7ygPCׁq$nd >SZ?%2 + Bڈ>]#My,Sm!%1J ^9aps@tI D"TFCplsL9a>`bD( :L>Ulʗ3.;Z~Z_3*`Jpy>e(WTL jtN@Ƒsiq9p i}bRRHU֍\u>)F gLv8k=)5Z}%%!G,՟|(+ +SBJŚɹ𴮧SP%g5k2% +:xTmSO%qDu7L^X)G"iRTٍ(j5rf^?݄6a'bhOgλ4؜a]'߈߭iVak +QanUsUh@Yl:8q#<!&ϭRriC;NsLwtmTfUܩnфuJ:mܾ*1Rl_0_G_Ʀ2!0ԩ P+T?{.bdrv Söf1T~>;;$ej$d׺NtWnߪ9!r޻eL].gMd>(̢W +*;>iՃQ2f.};(3P&(.oa$V٬uo`%f)Q$Be"$(0c*NKƌZJi îWIٸuFC91KF "EDNRN. 9_1#f9Z B=)!l?NKzؠc1ԶfVmRѝP] vj,qJp몯ptoyu&6 ξ,t-+_hygqܤrawwtq*Xl%+*wΈPxy[X-<o`RP춍ҫFoMXVQt_rgb&Η<: K@3v!m\9jՕMjGt%sQyrt+:B5k>4XjjrMRuvHfV:Y٩7sMe~Ί=(g^u옽(ZtUq +4|>W7@#zt23*sxfeMfޚQ6qwơ(v EPp\+øz44&ed#@ |4wZ(V|lV;׷NoǑBaz7Lڪ80&M Avq4|O*a>?j׼ա{]⒖45=8*X:*|T +IvWGvJ¾ DX)G~$F}'>yD}'>N_ )LAm_)$ 9%u5w;=Iլ%j&$ C{L';JT2Y.6 +8 #A.)N,BJRaO2BS!nfw<7F)v-EY͛S9nfs( [Ɠ#y,Mعq$ޟ|Juyf6I#s*4b#ό3HRN0(TNHQ@B/hD<˯OXDi13UgԾ>.t[j2oFw0ُeB䳠0-65f,͌&S%X!6~XK 4cTGÙ=R*he_ z\8|wJO Is =Hzj쨟-. GJCrelP~8J ]([^*SFm5.3Zz b3/k+S[v!y8=nplta_ f?H#M y"ҳ@L>$-%&'Z;7޴&@ ++?%[ is7` bNUzMؾcB? (=7z%yzխJsm.?W]>VOyUHowFus۲S^ E RuKY#dC + G Yiw:Rj6~]zj@l4ij;4t14<),)N&T;./;u +dggu{Kd Oڙ)lZ{EVAQ5O`Zkzrsʯ9 bJ/T9RN +wn͓O}wJWf<$ +~]8:W2!?d m]u tU>E}-/t缽9w#$?s_ojvJץF[\@וO|벟#`/VJ_e3 oC uktJGiF͹a~(.S%7-!PsOJ-Ð~86#LwX +N]wf=Vz`3jK]ӮL:.|o~\EEIRU-@P`4?J}ǀX֠TOi(O{pצ3}&+L-ʤs>|4<Nj|2agͥ 7o<,,HqgWdD}`Šq㜴o=ukbVtQ zk>]y('{vPkk[ Ψ5PʷƊ򏈫KNObJ]wJ]mvov!T%/EtBr.CSJ^ًxtISfw,[p6@=vIKuN7L{nzƱC&P鲜\"fH->ܡC׋r!gXfP`iWenkQLaZvSq.TmBJL&dR{~r1uuZ3J8kNpgĞͿw?P24(ͪK/C|A|<-\dgE- e z{fO^lBYv0{ٸ*LCk`lGZyfd-/`3>g1I{mpZ*z~wZ:)le9HW;@l.}ÄVc^9zh5G|l1ئ&q`4Ex3iέWke+(_[/`/U˴QY+Mj㍐<7Z6n,`ʿIez1-\FƇJSZ1 E#i[@9,6k;p }֋PӲn, 2'Ϝɹ`nFw(/qC-wbO1#xOۙLTJ,:.-c[B^<- IMG;UQ}GHT9'dч'7 Ч]xPzL;\jTq^mWM# *Bip~k}%"zš#K02{+!GϞg JhI8Or׮*W ZQGV^ν-⁇3δ:uZCZ5}JԺL*ʥI3*6"tN9ӣA[,c9XJ{B];]dZ#iԾRNkԤ46;4 q,dd{wo286#/7f5g?IwU^RKn:kӲ^tqszo͚%4Pipp_{Oθ-f 5=$S h`VHTY-j\QTcvh]<15&s ksVo2~4 B.u\X-(Lj7ڿŚ(5C)i,acz 91A'׍4nk,.1hq\xR]jJ-\+6hPV(l!73[ 1J +`5zOQ~'/M782  Bwegcګ|,;,a]z=|R^$eC׋U&quqbw qU/t_ _L0HLN6]%Q ` ]zX D;+պZxF%#@x:P."z.e󶹔å/dsw{]L)7z8&kͦ0 ]#`yx1RCՃthq3 5TM>'syOspuUt;N[do}߲u=p*Bٷ `G +e6s|<7#{ooRqiez4!t^4Ž?ٕdFkwQ,qK?m$0:0- + YBnW)t^Q˱8{u앦uR!Y|ni秿?;$w-,kC2  + ( (>stream +WL"F0yȟepUUN/oN f:"~t>iؔ{rn6nls-6t`4 F@kkT>Ubq_ 56H.廱Բ.'ZBY@8)NO˸N\mFc{9b_`=la&/9J/Bw4و^guIQoF|Gqrb| V%Sv7]>ڃhRp5_gaÕkUT.-s8A7[' <'p,,|Ƅi_pjqq2̹aR#œnqҍY>w'2NԋfUR]]R1 )W@a@A]@28CTfĕL?>JQʩ{VN:l:Iѳ +%0AvOdyRFVT{6=Cl@awPtx@ru#DegU3wZ"QgR ;\[u_ ^9%o-5Dۚq}zx~ykVng|l7UgĖj|S깰B* }\4 +и4ySd-,RC*;N\Kǃ•PwȬY)GSy$IGp'?u2oM1R}5 @4EAJ-[tub˻o_C|Z_vUqG֊+%qTQ93Sš/8۟ +mCe9^h&D=]_FZ[amenLmlj\ly-pienZ4_ *ѩl;Ob6.K 0(u;@ ޳.>AԼ;%O#4Y=͘[ꗥ0\ ա\.(-% +QK@`@B ho mU(wb7L*yG;j3gZUN-&,+Gc̷,CU]S\2q rv/ a$$wqL+NGK05F8~Ć_<7U~"x߲ 8϶I1]C77w|yls-.l&3Zr v;[eΫcCʜ#~P89߷gSK؛w@4<^s7:_ .(}ΙIplq|;VJzs䲯I:/=*#0.~N'NUbg_b7Ϯ%2]n 2(N! gZǷqF{%UPAkh|\t}|w)L]b^bARECgv^l>hL70~lO6@1}ׂRk^QF?~y浚,.ml^fqϪ'43ǹ5vLo Sn {h]ha\VG4`Ƿ8Ko~ I6Eߞs#!+g:>S{kc=6}hiɓݷ,F6^ʳȨVKkvy31ȴ9L 3kFvgMxS0O<>ɜ=={vWyS-[ C^җ!=a;_{NM]W V&yq@[on_]s'߅lEF枥9!lDH1jh}m08KK3jؓsiyEQv2G)Ի힐;k/ˆHO hsil س׎^Rem@;,JN|+υ2jm욻t _ؾ"d;? dԤ؉F݆i[!N/` +_v@Ig0I$ӆb9ee ֥)~d,> f3FIGfa* sϲt>f?_Sc9A5]ڲe[Ί#pMwt}y֪fsFz+* Np<~ٜhѶdvq-:M"m}m7z:k}4 W1i1?InjOMo + zjy3E]}`vVX/徊=g#}"xӫJ~!`9^]G?{ϒO?i#*#.N7-|n蝹LW 8@0: +5s/حt3w-7;)= }eķc;ع\uwZ6bt)eIV_g/肅g:UؖAAʠp@a/n@AX]_D|? w`gW٨EkjQp#xXiwR༅ղޓbn-iY9e=Xlǐ~@9ݟM@f Q4v/Qź8E8|*9_4|yZRnqч~9m1z xsu.sR &d,]_P[.u2tU:(&z#:ܽ}?:|r;.nsv343]H$ֽ]6.+m;bŷ&u׬V'b㿏|^$rP,x^xi{7f-f]oPݸZAV'=ɤM56H: MoEUr̖EN~@&i<~߅f +h #D$ FkeWǙ̌Y,]99kcKLgYIm6ݴ;Peg-)JMyM?rQc %{p ucپ{Ҩ}3wb3bvWsW$(zdXh-Z|qJbr?,#Y->`%O9Wh@4>?%d̹}#հ jm&֣ջx6&W[(]~}-{y燓Ѧɴ5|`4aPq`G]gp/^[b_J0e{w_Ѯ~VyP>]0&ب&qq +u~d .iqbwTJ%0~ Fu IA2JI.s-;7Nاg۫ON&hisR-_/Fγ?̈^ v7Y?K36z֩WA7A;ߺ-y]1uF/,33_UEu}=U.lk3=l¶tH2,?dSay>>!q?t_`bӺ74.Ò1*+xK}1zqvG&%']\ VNB1&vs 'ֽ?ozj޽ٰB`R[R]J+@(G +x:,|lIV9Wl4\8w!ggVoC̀f|vT2qLNwgB|{V%(%SٖbhӮǏP16n[JkVZ\-^]d/WgaM%ɍ w7w@*KnJ=oF=-C4OA[!LeqdQXу ;55$=3-]MN)@Xl|\::R.G6g]*93㘉OV7Cϛ&nP 'VF4[R]tI1̛O[uV +J+̅ʝS7kY,m'ee!A/rCj ]z +U2€Y_x {EJgulv:vǺB +K'ݽPG+.҄Nln_Mhl5߲pU8umt}38^;3:~yۡԳv4کkliQq'b}tsMT=EddC_\eC\Gvs< |+ O @;-B=cNQJ'Zv~0VN7cXmN>Kvw+ ?OE{m>oZ}As9q]؋C}ra$?p.F)٫HӻNgHv7%.5RBkZߔm9"-vy,jOWW]E/Zq_69v MaWAƏNʦv\/k,KlMDIu4\BVjrƿjV)QYOgvc^؁׼_t%sXNj4oQ%7֛5&}_ڳTuRǝٲ8tqVkx:i'j2Gў-W[yO>KXE!k;ƏaK؆bt8^S_LO f O eCZbo4`Gاr/U]YmƿSL҄ra%@{\] +bB49tM#]->KF!bdZ" zꦓZO_1K-Y\z;W"}JHِbtH8ZsFڜ { />^JgŸ~ҧ: >;ۖ>4{dae6_F{4Ym_4 + .f%k%Ygݹ<ފ-Y\(J`ѩ^Z ~ȏsOtc ݷ4:Ok<ȧ]FO4 ~{5OO즊zb. u;GY'N w_T#g b㿏ԁRQSNB\* Ukv ry݁zY5/ '}@Ir5.f%O՟Ӡ܅`'ԐfFd? ??+SxjSAn H@AOA7 'x?dZς]<ν>ࢹum5;x/ƟR)q r%ҽtA Ų](ր:#LzLyJݑ猿ܳ8ԃ#jkKp9t"rýw0) +h +C?' E|.=7rqyU{\r.(uwqW=8Zλóܟ$zmyblq]^7heo&O*@},@-~{aNP%c[$wي*u]h۶<{q&`l?3(m4N]z?RȥushR5_/JZ&N-ܭSbr"5\Yfm'aa'\-F+T#Օ7ZؑlծafW:=F/؋\w'%&aIƥ毝\ǃ7ޞw6XEBwlm5.f٪%Qh,r=5?qys +B(A?Njqݐ1QbEA2wO]}hPžcoL]- xD_.ǿw?tۨIDy,+/?sh kVMq?MN/bݢXJ|l)Wi:"jwcx[9.F´n`_g]Ѩz;Ǭ5>{ŴH"S;ĞͿwֶ>Wmיl8%==kTb3`SSr|/e8*$FתќO]ƪ!v$f}~Ag)V۝{^53ֆMݼ~v8,=RݥӦ+i5UvQq/8zEӊU0i-96]ڴ]%;O ȭUM~5N[5 i4m4h =Q+2)W)oe.KUr*زH/{c.&a<7qNI/T~姕6Bg=PS585zW_ &3ތST|YnOsNŝncZ +>^ f`:PѮ=ɹ*πzmNʮ$Z"Q.-Q4sZ=C-r-T[I[]ܬ`̴~ϸ,*kIjwhdWoEbagfqbZI;֛QOЍVE S7MGߨ}[VU)۬PCnLe!iϓ[u%3h`멆^#feN5(we#&D0 ̰% Nj:⊮Qq jNL j+WU*VݐwV֩Ҹ햐מ/!`'u134=}k1/I Lrv Hwb6mv9pފ/Cg TW +Q'F[&Udܰ"J9_4.uGދ՟i:}'QFbQbʽ_WB >5N߰d./i&u;o:6l`ZPme2qjZy'%kJ=Y3g/41ZĢSCїg ϮP]~堆!R}BύW8Ub䱦u_y!h*T"ԹX)YңN8%uIͼW磂<&Xd *sT*j&BWN~a ,Ъ?wNaVyKȬ7{])Z GEk lwY9[̹m̎@F5<`,3i SfI!|@J;y|_T;N1V\#RAv WWPO' rGAxWw\iS-z5P2B& 2FhL4zk7Lm +Wl_n?)XruJl$-+m xeA] 2ȩeKP < 6Pd)[mN7(:>6)CG +d1̌Bz>o*Hgt9c)r}gHf;dr[y̦AV^|jyz2ȕ34U?'QP28* +5(:2>𠴽-%eosJ=LTJ6ig#K9|p{(ȯa[۬ ߥ's$ rއz:d׆S> [ h>LM/Ǿ?\ךm; o +j+CJMW4@NfTY<*f'py*O(=9- >]k2^QٺPavz^fzRg`]zr|p>rP-ͣ݋c<&@ L7 a +3vi `mo}W3ų^Hۘ|;9Y) 6w:jv;K#@YZ#>y +%bp0@_U@Y5(G2S JO 8| t|9}W{s>|Ib V}MH.Q # P:6ɵ}+ਵ+v⧧$Owd^xD-),Ql-|yAq֪?{ ՚dƦT$Z2mϋ9Q@gdQǀlIvE`Tey福J~$ޣ!fVvdrs/IOȞꗒT4bXY5o O7#OQsťu+G>PJ-@S;[%P.(~ +/IN؛q%`,9\{ܒ:==k1qTխI#o?[oD_G +Mu.;,z#c=~J +p(X'OiQ+QjRQjwB}tNvbnvAU~l1p\+wj$ᵖQB)/I*P?y +@>QӖFKL2(ʙK(6֔p"{CP<' {i[}fG4= t[M-#tP Y7O<WN-Υ ҋa" ?&?$TNmt)^כ)BK#(6v!؁bw1{ͫj7E<#y&P3BeuVK> )i13I_ƖjW/f>.;7CYW\0vQn:7" !RMz +TԧlH:}_"ro7Wp}NfAt*m]Pu6ڱ8Dk>u{}N`7LLxAiH_Vr%b\N R,,g Ŷ|)}%?ɢW<6{_e GQ3[R^v qv;kV\ S#'[C ^#7,^#;xO<;7` X‡R',:ϛ7anx vW"Kfy^yEfKN3qD?jd8aIJAd:y߸u69m sΈRsxyՑrjGw4bo󆮼CoĔr3UsQKycn&Iv;'zCƍf =T!yO@!`=Ԅ.#.^}cKU|^oZcn +<='`ը's*^@f'^p7S̞W(\gW +3S)wQơϯ]~ ec}t|KkSز*gl;L"ʂo3\j]Ud>5vh ?^/H>j&-d/Ro8my4뽽\)⏖㰶?76/ZAm]RݲGY}^qEٶnuvdvj4*D|hvoB'P9XG1H}}c3> c]_]ʪ>ۭW$s|tأrN>YšiU:{v9%VUlt +ǫx?+9q,y'8ٙA w@u"?Wj1ݿ|z$:vF}&lw곹ҍL-eԪ"_K.)._sGbQM6U;ݪğ)$iT +>֗Zw~U`>.쿝İQ>} M({n<)P 7Z3nצ-6 .(*Zx(VU+Mj>'7nC'Aِ:Ob3_S]'cӚHCgetLE[Nsjj*MbnkfIW#F$L!c*;>7*Fa[DL*ez`HvsLڇ,lnO,]P-t,WfţY1&8JQ;|ao5JѸq\Wz+\ե5ID0;rA|+1r_mVlr&ng|'(`T[^׷r[V\gdD邢-v2{@iSVK7Y!W%mFl/SQ Slf\?ۑ [,8EC-n^.Y\l<#!I=/TVS%7*;ycn5[]zeJDSOY +5s +5n +zkC.E hi1'cBO˽zeoL$#኱^nwAn֮AeT5[8yD7^h`Fek^KE9 +ic^Y>7PW&L1yxPv fr7԰VaI=kH &]UZfϓƴR\G⢽w >?|7i3/7tfٵ;bL-F5%dJ.s-l 0ofY4٢sv66(_{Za +-9o|6iL/-՜(f7q/ex8 f>V2|it2T)!3OE`2ik$S~__QcL'q0q{p⼚U?9Ggg+At3Z (i$ʝכmwI] ~uAN$rLq\ @: j6ϔ` }·8bm@L6 Hx >2 :8V-{*^X0k=R7$9 +T4Y~ɸ@" zlΠ lmV؉z0i-SZÏˁ CLT{[ѣRӾ}'BBc%P'p.Rv2x./ 2,/B,%m|,m f(> U4p<}Wiz j]^Pġ`U [ oȠrZ]([iU| ;r Z.|EaS*>*]+N}iTҖۧM^l.}n[?P@zȸzO E@7@ hH?B6gO{?Uv|ًh\۪JWo\ NPuި iu37NFK?Pt$#r)2}5°Ks@ z(:Y%N?݀I ɛ,VMxط:_4 td>Ÿdi}2wɢ GKvz7<6m}TߎVqʺ%g?] |-M0bRx-RʫR UOq0sf3ZDS^ ;P%Nn[ <,jwQT,SJi%孓7)&c9i .)'9stA:8 8gVO! yNT\{2x+m/vyjkr:~_^a5{&DOk(&D!:H&S@t_kݏIlH.v?˽/uk4>vmcg*Ե{->Hm(ulGW:кꄤcި^[kH\=<{v0t76rl.5X#FHFUD~*X-<8@&^<*+n.:nY=Xw~Y2Ĭ8Ӗ+)'[yׂ󈍊1hap~ /dX_$7s` MW3`{RzUn}ZzlRURKnsC_E̿J&~ZfC* C4,<򤯆a>c =SmN5 ,|3 +.>RNjFc41?>%At=&OWSҭ}-ߦ{MHZ WFÞ* `f + +k<7=~6WϮv|bQW&wtP)9IȖٖbp%14j}\> 5?oOt?on Ԫn@ƵlNgn=Ckm&#^|`F{lW ْwnS#EJArECi']؜-a0Bs¥D6A$x Du'{M.lIL[ih}:HY)b4kY/@npנ6v5v[ibB;wު]U+Q/ A- )`{/OQ\+˾%CLpά^iS?XfEq(2{SZOi7Ң jj]X +gU@dg礳)Z\2D;ٞ;Z:e8Wb+4t,MaQǠ1RH#EfH.EݙD1$o*~"Ia|Oj'GX*#g%”MnRh'i"(M_P2ib2^L +Vɺ}T,>g;ZE.Vp2- +;.')bpx.NWy&*L0F:e^uW]pЃ.f'.EtKV~ ,r^ٌHo?R|iL5gpIŏ/y9`JEo2o`\> oBѧ!@ߒBM%ab%DbNR9ρVF#=b?x 3cXj +nޟ+iU> +``XX^?~˶vPcT Zg!.De `k£2pwqe#PfDs8gu@xG0X cqI[zpiG]ҷ(,J}F ZeUӿ($~ @P*3g`2L?Hlb]1I/gRCӔ93lqIv~rhUoˮQ Z34>fcJj5@m(Pry-?e@m9|ĉѯ@0 >jv6?43AQ_}L>6ޟoY +lwRd뱑9ņ<0{v}F~Y7W9h1]dbV[nS9&Ƚ.GP&Mg4kXpVķAy _YB}kۗVNϧZs99d<M~tFպvė-K*+8a62lK}17]EIzzoꭷAo^oo% +v{;qưs8,xͱˌc77K,wH<=R;ڸ\zްYҕ#S>:WBgIs76:ϾT:ty|Z9֑$kmǧ_7͔6/N=źZ=m\^Ʒo6߁6/ +Y*u$ɴDEӀP1n=,I00c'l\4&]HcXnh<Úi_5A);H)& +Y_zj|[S"|F{ЅR3~6\W׭8l2$|ZGx䨘P)en%`_1띫z5!_yQd[OPOmsݍb_v>=7@j|/wT)_ߦ=C)-][Flsh<}2B廙Io?Rך֓{OѲUgV1kwh|SҳDߪ1TcG+(|t:Fν<䴄mng,BΪ b5fuMkoyQεu`SeKNm#DlD^dXH\X$L?):Fjx~`z-0颗1܎-!;e]KK-?юlRi :?vu)֣tѾos- +Y}CROg9~RV[ ~ +xPNoEbQA~s3aE0ڜU`}1|u\iR-էr\h=XyZ7JU&%d ;=ϧ_qrr+FV>˳KE$yC Me/aA'3},}[i"Sh^vz aN껍Rުc]5]|*ʣ].V\8}thu8>z|vU)6(M?f a}w&^rw^UJXt\wƩ.'.rЅ띟%mv.,#(Զfcr+_W69l&sݗʻ=G/CTwEWn*8 JkBjWWc a*t'{nrEy^bytsn115[t6. .we} {Clb`ޞ fWHF6Ml,_eJ2Hud?(qv{)5P' Ve+2<i{N*tZ,T&2 S7K{vڝl+>bT ```e2n)8]9j.Si%JȲCK#S[wݽLS NW&ԙ=V0GU\\PZA Jkߐ{nׇ s[j}圏U*+=h׼s=ľ9I (E,E7Gi3YX!} ^ֈA0\|b3کa(cAϿa4>3AOcd(QyHD2{Kz肒ZsZrpV:ˌj֜E}d״Zה&[R{⼑}"GW|f GJ%D" JYdIn7귋UdTctwh4J}rsd+0{ fyd!f._~B*7ѧ`1"TRDب3Xq:z*jM3PKh҃g=@lO3ؒb9 ȣyHmtQ7)Ưn'Y}s~:\dK?MN3FV +sÊ G@ +3>ȰοOlbRƍ!;( w" bxoU%Daä۫H7[h|8誝8/`b`+]Xןm We07+&@%(z Mli9ȸm5gs7XE`y~J +  9}FUL'sطy}~l0*՚&]/=ۢ_[kEV iuo7,ʀ@[;:=ZHz7'c w|a~ueMbſ7}wϨgצC=GEBV&\箅O~TF@^K@^pz=49@B1~9N+՛-3g|n}!*xW õF\y| xha|w!qQ 07oyXRp~B{g&2;m!W@Y,fִfu6xv49}SVNpSXCB?vmKNg&.mqݔɉ_[7AVCO8#k &D[>T.[9}_mW<\T':_#{X_2WIymrV+"dOtC0= +Od\R+pυxih)2NiSxs=@Z~2/]?@mP 7mE-UV8;;ֶ6#ܺJEw'=3<]zܱgs1v\8ת֡5n*XK5tafwv;ѥs^},ca2w=]ul%oQJ'ݸS|fm^e7Wkٰ<\ yv?֢';̦M1nc5:Q+?sjߡ]םv:z9h_TlN{X(9K2Fm\~"0*f5_Gݻޠg}U{>V[t1I#hKf]7ޥWA⪷'u:=>Pᅴ/V)C,ZcB~T׭xhn77_W M e(dL;ӆ~LR3tʠtA NWSdK۪(jkI TAg*ӨˮҨ׬Yssꖴf*ެR w*}DctMrjS 0#2>·j 7Q~ bFLF}p + +VSTP*pUWj]˶+̗JӚh4u2Ť<\RR0C&/20#G;aexzfw;ydOa;zᙧNG+Y]Z-Xu&JsBޑ.ɚt- 7P#9{My˚>kkA WKubKVJB;]c*,|t͙Md8GEgC_W-5g뎨խI76Q10 N)݋Q-SG]*ZYa,d)=]Os=aCn7\֤'^A3h&Srx=< */wYTړRO(HsH ḂvaYyM w~\/w1 $d;ȭqG{z碚7vWMky׵+0v3]|BA5Iy~|YuS8Gi5ow,i9}8A-x5۷F9 eM'<c.e9Df+#[/氃}fP.UXI&OЧzAN[e]R2 T?#dT߽&{8f] 1=GZ+SlWF+TIxml9w7%J{4rh)憭0KQHZBja|Ք\\-oьc6o m{yiHL纮"~jR9~!FvHM-t8ÊN%JI]^z6ƒ}o/-aLco5"%byG +ALT`B(ĪZSyi* P](?'!f ~ |>o]_}yb,B?TkO J} Nd(vd1bH[T!@T+4c (ށ"c7; < Sύ yχoܿn7yϦg6O aZ+qwK 'Z"@UE1v[*ۂFQQAzTE/Ƚ[YGƇd 1# 5%X'`MstIYS\fITKynt&ы +C3ϖW,N .$@g2 |3/7h)eT+"<#n_Φc*9Ceިo_OWķzWx|'Nr 7Lr*E'w |NvT=Y*8Aȝ.QZh}Wv+ul8ϫՉu^A,7NӍY[^P^Y!=RnA!I)ޜP BSFI.*&[l*1y>q%xWc\oZ!yu94lFs`d:\yRECZ(bJe- 5$?mI~di]jEIdEn?&m&6BW\.-^wUYqgSbz==U4mSH|z4uwCߊ*٣$Rc.>v>U%VK0WhnLE[W͕L98L9Lb6dKIn]Kά%Hu#Kb}^Xti[#Q ]w="aZ h^ϲzڇaH(uJ)g2N//7maڜtgޜ/LiҲIfɔ[J'*Gb ^aW齋o]XsisяrTQݲϤ:LT礍("(")4rxWZNMO Qo3YS3FQOڝ!I7^Nf=Mωsr[ #^˻D 9K-)nbLĖ 슳+_TBtei*BI`)1B>U:ߚ NRe4N$.NQ~lJFT0GPs6T7~칄ߛi9=ZK)QiCGܻL!js0?|?Aة=IT03170s`Fc;hE +Cіc2DD[>k+_ޒFMr|{ W_"7^8ڬ8S< @yeLI#eG5+s sj+趞!zbQ+;7=JV>p:ha4/;ANNZšQ( ӛ%z}g%ʡE3? jOP^1N2QM*[ +[zqQQ*q#Qݢj ndF3[MU/P敭%v̂kj9U(:kfs|Xn&=(KHSOʹP[Õ񧇽5Wt<5f}F􍒍]b%U˔ FcKxd 4Z!,y ,rg8@Ac< |2i{qȦ+lTA!{hE>V%~mDcuK=an +ÜL8.,P SR(>e|Y +)O, v_Ӧ5- HM P\3r%V9cC3f?Ϡ́G9 loNyo񇵜);$<3KZ fN! ƹˆ +VOݹ4^׻N!24BU^ +J9Zє(Ɵ[u",OHqJ\?7m_d0/<&6C @ eY;(G|V4]PKiK&/GO)$bJ9 ])ERv5꧔e~=eϩĘ,fy68@. usKCܬ/&6j'  `iyՔK/8LGϹW [J &DcxrG<%$v39c^jl__J|jbP's;f9jA x4 ~%`_Gl%` "p)Ywyh*-?ڟGThwZ==aַH#%,1o-KsHLR4 5 \ ܯa \jmq%+)i_z{SurU/nV=|~Ιs,v1 +;썚hʕ5oKV}~Inw% +qeL%LC ˭$W։$>>W6}ĞwG3ʳ +c55E|z툩{˟+rJ8Z忖M7á {欛~{I?/o3 130ɵb[|x? b@3.07˃hwo U%+\?ˏ:)g;>zߕo/b#uaO]Zkh֑7nC]k@@*Igi*3.jS>X#=9ճTOS~Wާ-γHCH|ۚc 'nw%rWbAn/s+Ѭcec wMˊUp)HSP;:IꐸxŪ y95<npih[Ҁ"̜䶸JK'^q5S)u`Y~cKٟ#:mv[w=^vo@>yv%n\hc5ߴ h\5\,NF|Luҁr +W3wZH$=,חzy"fˎv;Md?$9M >n!֬8kco[L|-KUp@틨-=8&BAW-Y)pVI_Q% RX Rov%a y> TVFCDؓ9{&k 6J2WKӠKSQ]"4'?o1:$#X1>h$v-p8C\ucheuH h$HE-ܼ<8._㡔lҶX: + 9C7k"yvTѕ~Yr'_%֋.[i]&i{\2>ati7Ќd$*HD*si ]qlMAL+5r3;KU1\O妹lJ-i:$,D0,TeGW s^֐M`:&i4" F[逃jtǕ?`M_]i]>nao: {ժV&YPrcբʓ>9ć4D4~fW٪ ލGV ZǸct_c|ƫoڹ>#Ba]I~׃"<îGG{3 X`vR}ݰ.RO+ca;w9pgg*-iM:`AOhBd$ UF{Mnp`Ie]x]T3Cw฿[=~S)}ڊ*i 7(ItEp>LXIJ&A9{E G~<&W2pc +DR='R{å\OXd8\o]fq(, ע[gU-L頷u*/- +}\D3w$'YRIu/-o igNHTna:aZzh0РFm갅J)! (:PLշ7j讅67j]WC*O/kF9syaUmFڝkat8s*!r>:a=ݨbw'vƼ5ҨWIOa$wg͓f/nQ%|+}xKoT_q>I`L+Wh90pyLY6Ye(3#狎>[lX]QYtYݮ$V=.orݟͧy\])ndYs/w7fh!*m1`DښKiL_Yl4 +vLM0\iX[F鶄Vѹs>u'+[*u+ة3O^w*wڔgv?ߝ怍Ҫr4S9:${H|Lu9 CDr>jR)5WЛ|hM#v{Okw) +Em +ҷcb +MS,!Ms CRϊӜ6 .K6r fjuYJC3Hj{BzQj3?F'wlmӧKS_]yѳu* 8ʪv3jkBSj.ܪ?S"&І8q}):吹z~؀o} ^+U9co$,7.|m +G[ |`J e/nBGV,-  +67TnmUwF^8ܚ7ŢZsoTO9I<=-ֆgr VPe*6%9w6L?̽-Jǹ:hKOGE h FylK׋וRV-~|=_T闟m)ka()T2ćAqME|@E|r + +%BN_{})pmGDY&֛G^G]c樵f\mQE1vYg*FiYmyp,⳰Y{E(R[L޻y~)SΝ%.wHϜ$9 0?Tڢs#"hd>CjtqLk/:xAYv*`ܽ]˥MfC(Uq DEIHkMm;9b/^ptn] Á+j$IP8 EiÖ8i f!q1ƥ90pЭ/jҦ"r|@Q 8=$; kn1ԭl& ֘sޙ)W>żx=ޓ%<QlI ?dvb"YJ͍wObJ&fVR!W򼆖rgkVoV +A4$ m:CZ)~7勧q֙OSU䘒|xlT/RKNhƉxKD?y,k9N\3eO)w!N:IH%)R@ğJ Cg{ΧWw ;7Noz󎿠[)W'L:ir&WIofaʑ?lIN?yhx?7hm|'ʹvFƿ![aBgi7V,aU~|:v{[US}kfʺ{8B2Oy1DQ6*gihX_ +ư:[!}ξ]DATLY&)bvV%"LO5&@q}MֱIfKvWѳj߳l,KQ Pzp{O{)٠ڹ[8Joӛv%~@-' 8;ٿu|L:Sc<ɶ`8 zԇzDHMx 8BTd+5sV9Y64~Xs"7|@eIهQp%P >tvm+?b`~s>.?"<|]ɭ}67Rb,M*iǹqHqJKFqtq< )yR% +4@Ky?IO-OD]o'II]]O3.-l2O<8vnv1{rPq`b@{MYgd'VU;X[# &~$dFG4<9@Ͳ!Zu* k]dxRu쿯c[ `O='m\Һ a]⮡- m}Z˞>0[ּ~ ?, +/K +K]0`8I^@Jn01M->ϸA_ja`?l盾[KDoGba r힐Z>| +UpCŵk8Մ8yq2/`\^Ѥ^#F2zX]?/iyPGc'Z Vo̥*{>ix,\RGr)nmڋ2sRތ趾f,JYfUUo~R WW1>]̫FgP sxaq|ÔrQ!=g+5I.>(m륛VOѰGΝs8 +hm|Ɋ4z+٥PNM8Y +L؋`@x <ϿEsO#u{d+B +3Ќଢv- '5տ [=YI9Gu0h3bXVqxݸ*Zz?1xIk L[򬲏{SȋMer;B8Ϗ1~wh |ZN=vYslr;#X>%3ttsjk:* *^>˪ώͯ3T|G^o=BR7rfE;7kxVXMωuGZh*ա0s^m萢=MҰV}1gRXL=DV@{ +ؙhZt-dUmIX_4)6ָ}d\M\gÞ{D>> ?/s *ZS{h >HjoJ/>Ծe{j]/p:cybh4Tqp|vpaAĖ!s5#LȜoFgyTez_`ETNdgfKewn%ǜ蜾xuW +ǜ׃¬+u9=i qy{N(:krLwj|szdN4>Ћ>Ɉ&<(2_S8zus>et]830 e{>GѬ1[dmU$lt;Qs.̹[OnG ^e N!:8nSUOS}K4C(v|Gf'S7xNr~wBЁROԴ|ۆ.ZLRI&O?Wbs -tF}q|-I4oi,Й=d$zV*!_̈́zs.8 nYu٘e USg/Yr^0f>Ki63ʃIyxj]c@$گ%%%q".xn#?3_\p\XoM57Ж3=],q[ҥIb#{}rb:(NVN/GbL,kL|\4pj&y0.f3Jr8l'^ D5wyXnam?Wfr侌.Zsv;kɗʆ˞]ƴӖ]6e`j]cm--̑ +:_ ['"lH::؂e'Ì,t\6 oYu]0[owmH]ꢬ%#> ImsGv?f/ Xa=FG%w0Çw6{c*pvp:$m's;o +# #˾G𰗶f==~Y zY4h#1˽1t'rCB9FRhɯ>PkgcqV} 沩*$ȃٗyǩ\Ip$PIMg(lK,XYrgnH9h=ҦTo갷p}d-VIØce ?2xO{ ,P #`ۓ德7r^Q;~:znlpRovMkrjH[cao |޽6p񗟞Mq%7jI:,Rڗe QVPE=C6X=C%3cwzE+mðgvtko;hP>z_Zs>yYZ]gV={Em=wٞĶ>LeV%v)XQw˪Q\;` +`:,ݫЭ;#1됬#vh~գPbUiV.ӀL^[cYOHYKr:v,=;򱤝pƸ~5ص*׋:6SNX,MHB"l0$o_SaWO\}=nH1m cN,QNKun +xi^ ]z5sy?,ʚ)?Y}z}4 +tz{^]k.|XwU[Ôf;nrfм<;EAՀHh_[=]?_¶է?Ǝľa4ڵf YGIÇFz˴ߚTnm!ARјq#0L`){%$0 + U'x ݋Pҙdpѹkf^|)-D0-WϠ6 o0Q4,P:YE`IZ[;q +#x:FN?)^fO4|ާɟN$]wv!N_^j]z+(: U6 W' ~EEsV6#(fCɔ: N]4|)O!8ѬQ.jL8f=图Em:eǽ4F'v2'3'1ǁnzX&)VUM_RNiRDZ܂SRʶ2Jvg3D_V~D' P]i{P]! U,gO|u8QZ\pygo8Nq6.y ߉S$8e[J?:XJ$8CdMuaz_CY.[xuJhtUpx҃g OEğ?POlS>S=S/`5&\6+~4(7O_ lCѫ^s7 +sdC|\o$`;tU3OV!{*;/Z/DgƌFy usU)szo?gC.@%"-mxr1vַv{kv?0NKcC~M +N@F 0Am@wz=oA]v e#[},O.yE,Q fC"CB~Cw҂ ^n 7t#S8}(MsUSSuG}}H؛}g׽B.:Et>MuqGv[Dɋ`+Kdws +sg!ܝNWx@IC̦* 4h}&Eod gPtǐ'ŕKkff-[OÈzy 9 b9}QI)Cgˣ2Y~Kl(w ̨Vʵoyhut*#H/+eQlzv\:/XnA(W\[u՜5+ l3NNkyQ::!-Clo;73 +w#hR#7߸,i^A3crym5^ߥљC$3":6#϶A$VP>ωc},riz-Z7:/n~2pW2bKV1 "rMX; ׇۛ{g͈^\854^}7Zٝ4/'c=/ nN 7;<'h˓?B +M۫Oc,_>=/!F7$>V6N+[VS.MZc*57cO鞵%|`{ƃ#eڜuQf,vAբ3Ϧ^j 0!_2Y4U^nu&|*Pqo9c]Cr3(NMo461ؿ<˽4s^6lJ3˳- ֞KQFfcdSj#N+1(JP2`c&{@* u(?<4|+E"pB8]j(5_w)٫"&YNgL%t|wa3OW!w9?)eԼLX!KW7?^*ihYS\ 0x |]$R!MW8lv@mO݅'1ؓ׃mm(\TT`΂HN"J9g kRkR 5l_8mZۘAQ+*c7S:khK!w|?2L2\ReafO~,W9p#fWH74HAk$۳nV+'gFZt{w<&;c)N +ZFcKe)в ow-j.bp"vPvZzM ~.u]ўOēnn6fkQk0y|7R#Ԋ1vq[Yт9ˌBMBQ ;S6hCXSI2pD+)v :ܩ2We V?Yrei-1?ܧirbyE-NQTn#>٘ Ç u{OSqгJk_d4H4!ؙ7p7j2T~iN$׺+T@Fx漚cpCE"rkim CUn B<5ޥr2gߘbyۃ;*C;ꨆzQD﫴ԠP<4KLߤsd +k]΃?l'GFpBm-`Zl\z.ݜlcP;z3s4H2C6!?h& _,a}0ٙSٮ,QCj =kd[H$z|{D| zngyʶ@ 'cAfxkpu P+,Ns`2+bDbKg i_0|pGtL+`d4)<8dS߆ +fF|ek^/kYɷM I B K@R +Ko<٤{TI\~78vSDia{ZsqԴY֭SDlN*^WEgJ PPEWeoio[,KB?w 2`eP%8j\ +bV~J\zwꚽ3@@1V?__OB^De]ZiWO>)@7%ѻnzQ`FQλQQ2gqdrk$:NUIpNf m[z# "<ɛ$o3'adwNpXh8IK+Z$ޒ6D 8)|~L=Jl&38J66.{O{>  TS~&qֿgx 7>Ў>e2 %]_F)zB.Pu{ܳ}:FCnonme4OrGFShMgo,I\-wz[JN q 4sv Cओ/xsoѫP63Yjܮk $syIB9%yilOOtu9ƏMNhno%=l\Y{XM`:rOB 83z,jqm/].Ѯ:Ot$xhzZPwKak(u, koִ9&}[eww4F05K/o +oN?H7q&NLę6=3KpG|qdi|%3avvq"VtlD!l/?VYLk|VHÉV1.^3^eU5rf9ͪ<`Ǟ^Hޖx +DB}CO)kZOL<]:޲^?2'Fjq==ue7Nɢ&2u]c]]z;'*,vV5LN?VQ^j ۦJqk O"܅f,B]O^MBK +*6f{᪫;~Sh0Oya&o +`2ю+FVNTlW]}⽕E)T4^e-ۈ^5 r[G6*ABCNI1ANcչ'fiƃáY.~h +}]Nww"_j\yz |iqR9%y-hZꚜeÑKu!#SciIJ0US(\\R ~p 1tqֻ/f'Ӂްzْpz{0֖>[sd9Mǽꊚ|5?o?΋AqQ=vz:lAv7ū*yLK7l! +s}(Yw~}ȓ޸*m?$,NI"+=ʪ>|{_.sTXFVxzLZn~6t]ƀ؀>Lo(_8/&|R; KW>aSzV÷hi@س1~uNː?זiIZcVlt<Z~9XCt`Цk4}tɔʽC󑵽nCbf +ODg@o,VFKPAvr UINe؞j}26 ݜ|Ifx>w~ W0tKvN(>OCn(*SYf[@*dOsd=+[0n r 5[У"R.{`tpM(:iaT~!Qx;h$ˆ"=9a~Humnn4H1d᫇FQ:Z%_=zzŝk꛱_=3*xޕ8Ӫ$I.rXrEe픭Uw,l355s=Hu䪳ƺcYΐn~`źtHYL :+%9KcRZRʕ b&ZESa|_I +Rf.*+ +3Wȿ~.Uvp_$TH+p=V8/dezpl;ŏ1 + WcqȪ{`ς.e.dRNu +t@OkrG7.`{hL ON;nQeU0aC<):/?ȍEK=AG6V[v^K5N)_:w_M`2_+vn$؏nM4E^Sԃ9#d_(u&& Ws<_b#7+푶Og « #@0;@ȍWFuI,IaS @NKz9gTt+\(n$I#VQk=Tlװ.~LX7p * LlK-@ + 5:JZeJ)jtV;tL]WR4 H9}p@0+ފϠد8 ^4@KM&/ꩿWm~+9ȃ?{N%&qCMJ|eg-Bo=|E$;QĶ aqP*! }n9-O +䓂qN4\bg Nε((.$D\L06K:k(@A=5 |zH6/LP Y?&X&ǿ+sƫ_ʪ󜃻ՓV°:!+ODoLBH#7$:%Q?8]뫠'It9Wzy:Ey[es^?o1:>VoE]~zPxjB$v؜7#Z"zFW0⟗0&.Z^&`"yM"+Pܷxp wogz `:tn,# g gOx2>e?}Z#3%5 ԋȞhPrD?I=5N_nܷ= ~kZy6c3$vϞ,g觉;sNxuu~{co/، V0x7>$V%%|0LWGff*Z9^Ñ^F}ViգaY~7U}#op;Mt{mnMlWa(|~*s z 177؟%JEy].=ii$)'ZFƳhP/1< +Ix7hTVXWdlu,y".(3tP8V弦Y7Mr$KM /@KB~-Zqy0辩әCtm81[+g3yL>gDz[<ԃ֖$$1F@,L_r +=.nH¨rݩ;/Ā}<(ֻqZVcA*綨T.pYrgިD-˳ `t I3>3[eYa[:OsqIi2MSGUclp@k {M#XXu/8qM7<;d ɬ3q,q(0;D}r_sD0%{5\mo4^V3ߌj*mbѾ=\p( 5? B1_FA +r:)8]܈ ? +/:n]7Q8WӢ7שl7q!;ž g[Aqn=E!2d&lAFRjJz:vګUSA"())ҪAY{!Wzp6GXOJOv۸yGE\ܶI22=alvvYlͧ69(,6wT1U~j1xZbH9^=POqZ+4@a J-7B5U9fCVA y EN033f^t'T!SKkxR4H"-gTD#%^1)T +'1ţisq:6A3Қ+4Ш-CAK܀+TAO)PPz8p».x 7Cm_D5cL{L2⺷7qOj$Ot!zANu ̽{ tl,sfMTL &F-T"ռDj>BAi(.MDxrm/}7Kgx$%\8S]+3k8V=gFL _ T=>O "m[xex0KK aqӇZ@[a, >rkߜŭfDLZsR]d1҂7ɫR2p +;اJ'92iz p51FN\ϸw0-V`>w`}?d< +B]/y9Y4Oa1!AyUa4߰0l4i&P  4:u7V}t]xr485nj5*5Ym3b夃ʉjSUN@aμ H8;vmt]=%~%sl#vLό-jà_mgFܽ+^UZWT e +e4GbD\&P%e(,_*i^@q0/|6bz_ZEj#_Z{PVgI6$A9=8}-L =n=SK{^|8BŮl%ya0ȗp9[G{('2gev0?ن`S׳.|;=ufwݭVۿ`OAOQɈr1-> E":/vڶiaX.O^J~rag|MZ7><@@. Z1Kp$By%+f܏_&f+_4ĵwNrT 3h57 [XomuRm}Dw%ק r\@7Il<Џ8O< Jfx2S5-] Jسث&h?MӑKM@Z+RXzj۪b5~q2Ri(/,oI  v3kvT>@dĎ_>  gHluT7_ xt-zMqk")la砨KIk_~;~n-T}`S@+~)^I/ԴL2x*oŷr3O_ :4:S{ +@1 &qgt\G@K8+4]Ky4s/`;oXka[Uä3okEw$].Е~w_fï}4Zy*h|vhB.FҢH&M_fY%R%%[[>W_ʵ?DO`#|#j{~קVK1wS2ZPJuI;JvpHLDiJE;=#mǂOx |}z5 OwsŲ s!tܷ&7@&j<]W?ˑOm}ǞxNq@j[O8rϧe Qm7>/I>N[䜻/j{yo0~ZG$5î xoq8m4t n@q*zZrrh!`>][wWwUcxiؗaGrY x^ɏPKͰ YLynd~?CnJkƋ :n>*xjgj勛h}?!b܆;hwH8fm{O[XǍmH3Ke3cy.VWMnr%uos_hh9M=1O)Ԫ҇`܇?FtNVNqz4bnHYC jfɱe3 +uAۖJʡd<*%`p㊻Xn)U#XTx fkRPi8jEsٍW+*;|FU3Fx#u#iu0Y(0,H9P:}(QTn4- 2P%g)aTo~TST~cMPwgf=qe ?<ǒ`n]Г=qv3SDA UûrA ݁r96>q]3mwf{nŵ舕>vKP*Bt-!"g3Dӻu.p^xH?PXHHր +uVP1ML4UR=!&K/*Oo.2q ui?Cf| +|SR6)m{_(Yc2^ ;-5#VrzUhNw=`էZ^f!&͆6,>)'nEO;{2.Sj{Ck7 +Gr*8S~pUtqSt;A3@{Eٳ!) 9A6Sz#nJ +VvY܂X3T}잛$mL:fOx{F28`fwέ *2G!i:?1ɩxwYXj)~Qﴚ[ɖzU$n{ynriJE˪~Urؒ Ze +S-XKVI >㡋MrnUYH'l[*%"u qR/aիx(ϨÇ-&);nl{aM-۠jM .5<%&Rp0w{5i)0lt+3,wA߹\.E#bkfPjAFu:(oM< k +b\]ir,È)YV_x9t}x#cciD2DfvؒBn/n,҉//RIs_,/x߯,~4=L=9CDv #&CGf2!y2٬-q3 +778W VL\ +r+ Ȭ)gx+rpm+bpmgڬk4 ה3?c}_J&tl"no~eSˈw@8%CM +SYvq`1s1?G1)45ه9RFO^֮=d=u>:4/6 4|Ê!}[H!~>mNKFS?~4]oKA &;wo?G +/RRmo2ږf]U%+Gxwpe[zfZnA' E +KD7M(q#@Pyܵx^X7$Ƙq3\^Woa%W"ǠCg&SY=ytVkS`8d r4yF H^+|6ikL0`_&Ȏ/zڪckBQ+֜ [vwBZgr.űUg"·%I0 e +=nq/lNDny۬y8Jial2*Nhu#Gw{Ghdk6F^m68Si^ƕv!="zGe^Xym|4~ g K^K޴ y-<VZ flŠ!Wg}9ur@j|F*}̣ LH"1@{Ko C@l; ?j 5"{H1zH %Z?0#czph}Uq +B:;G~G~?Rh6PNuN)轄'k/V$>V"h}4M_# +Dm4 +檶7+^fa^Օ\'4L)l[KDZ3+A|`@` f y  + #0۳/bfA.S;Gz9|M% +Ixf5~u>:ۤv~ + ֋@\;@BR K5(0((aJ'"@@M"׋-r3ǯ58lJ'a{3_8|k9|u4_^/izZ,4\Huho4fxH"#B&(bLDH0Ԣ "_[o &po3\a䕉MDmפE{4^^Ud .(ꝱ?!]п4&m .iYa0NDžG1y}zvy~ɟcZb$UD#lW1P2ƪ$@4_U? +:H;?HcGb}۶{_a[3.oiZŭ֩sXkFcl/(l$u &@>}e{ų08> >C +嫕5.vL +iS֬G1Ӌ𛝚_Fsmm[YgsljwIZ;<:ٯ4]N`4, ^Vۙ+ы['gjWYSeo^n{=ܶ7VX??ɕC%ZOs- +cuy/_.^|k"Ňl3U5A_&t\o8~b"rX)zw } ikVx/?mdNˬ[/|clJjeKNJ?i .K>+,=TUhR("9 b#\9+vӔFm!Ըu:ym 5҅`g^Γ<-amCg޸R[qLP2hnΌ0$z zvgH4J-"0sAlHGVQ ѡUWrά,VW/3MZl1-_6>F9G\*ˈ^BƎڎ2 ψ0lZ:޷Q6MʇidBtyt#P;"C.}}X7x,lI4 +}g^|񈇻uһ"ڛ{DS ow-n+JF/V[LBzwdY*Gv܁<}~E}^S;TLuG9&vǵD\kqaqZ37'!= ´wn:Xu\P.j%x6\r19}pUq4'Be`'d}7+ba)MJ aCļrnJQ9kéUFeOiͪv\V&>'ͫ knҤs>څ:T0T]ktͭLR#iY(di.ΏrG1@ F+qNoblKl/&⼉ +g/m,O/ćVcӦmFYۀ~mo=D.i#Y^O|mNiyQ+F8*FZ=T-\y),y]CedPs& qkNM_]+3'Wާ"\s&lΉgƁEOsJOĦAԚvWkBi r&}*dVwo+F#^(TZ(#EDt%\8YN^4>3Feoφԑ:=.* [/ JtkݪЉBY˘'*ȭ"LUQ;)GOZHj 4Rۿ0~ q?mogBQ*װ=S-Ls jښ0PcehKJ }#YӒC1K[ +ьR {J SY NaOlcJ@Kw܃n\xkdOq 2$sέ19dӵRjEYS Ph)Tb +v +%; +E[ʒf02j8rg{؋~Esqj2e(lG(Л6HkМ˾Ր 3_NnS:9lZejyy +.&l|bD=+떩A4k}k)k|0m~=Y7+Kɹ=zfY:׍5%)q|0P'L0^RNבGWQأ!ޅt8rerNZZEorʑȚˑFlQ]SO-13w6U{zƩaȨq3L*l\GP?4+GN*ީ _[\,sigC{Y.]z,A3P8?=,?m`yƌE^j7#j==HTG-Y~f@ 6Ȗ"ee/&2Dt (حcI5naf9 Kܢ|X76S᫉6mvV,fW8+HH! BVs Yͫ(#tVCBZM{1+|^.&:P-FJ PٱT8o_uoUZ0)q4?U ^eԅA:zGҽпh[!҈Ns}sZ.L +b٦pyj6l+iPP' +n΍/ҧqO,,ZPm "ϳL|΢.e6y;4X0D|c`2)=ʭN_,8Uuu|vW(&@ƎVm - ZıOq#-`Tbw&9ˀLZ@c@G>7 L{H?۴Xpfؽ۲ ]|47 N'j\h*(B?Wa VQ)gǦsRAߊ|hMS@h ]|~k/@,Z0~DE;Ȏ{k,L7YԨny*+ vkaR`-t.L4`x`(F F%0>#`v +2_$R{YAN>GVFǀU,jV-?ٗ-TV:3ū<@[c%kthMU?/{ۀ}=d8=<{p:~<~c_߰g ۺycpZV>.`hD|'(ɭ|߷sH72TͫcG8U}^-?Dq078# 3_($ofQ a[|pUgń}{AͶs@fO?D_|zEH>`2ve7S KY+~ +}`:2?O-'XMIe|:~;?vz:גϓG_9R>!_/Mf*%xuGOu-­ۼL+]Yr81S8CBr+[dl.B@˳qD7N#($1SgSnaڞ]kv݉= c|cTN|8ow6Dcl>h s?W՗LgXLwp[L'ZkbrfフE (cAaJx#3x@}a8&ЀD}܄Q=o{h~﵆a?(xc_-h0Dgj=6nL!xxI8k*p& +h_Dlx!FPz{'kgrFyd|GluBow^ziBOdǯeO׳:~ǝKEGQw`za_QWkZC*t \ĎTk-4=sdOںݷn!3Ѧܢe_qsn˖8YmʋQpIm6:|q.IO}_T; L;i"KI}<) 1gǾer\[eN!['WQVt5e߼mꝗ6b0-gӲ_[Iyѹ4c K= W[<^ֈsV&TznՔIL{uj6If 8jhvQ=o߁G4>$0~Qm^#|v"M[_rchۃpղޅwh2O̪_DnFxc Kjzf6ga22Z[B~F7ۙ4J|Kw*|R]gN`y,RNYꩢ֍lsMkMj{k.r6*&ս UWX>ҕ JV ]PzPP4(vӝ;ae!l]N#֎Aң = PKruU">e?8ѽfJۨZ{i}SxU*>ߴ|{Oꐢ*=3dJ5iڦëW'45s˽d!2BdO5OuyxD|HR ^zxݹ[ ^嘷76 +L6Tr2-Z?bZ_bz.93eU9 認)洛Y7פ7O)oJ$x2 TL#b>fubAbd_`bePK)[uniD\7#7Rv?t߽=P׎Qf.3Y>+9%V>8Yκ׿Ͽ1YK%v5V>. hѐff{:Tq!oyDq*GoWV7`T9!Q >zuR3iciOP@Bb7y|C7M(cr[g[ BPNYlBmOnll'_slNDTxWN^_Es{ysra9QJq`Ƃ >3T.J:.sO?20kp}е{Ѓ&q~+f#H\*kU9j7p`Oq^t%/-޴ɕ`ca8;Y,$`e#L/?hdszybCKWJWLY8x}u@'lF¥P"5ʥ^zzl)ZI }6CQZo<d 2@# vWmw_w;ɴ.ukkWkK@<=3Vӊߣney4>auCLדIX%d71H*A[: +hAX/-)~` ;:"_eXTm8*r;׍2zrԢծ쭡 /t +OPReX]}3w +f''nRP6(vհ,@v]@MZ7YԠTT55Z1 Es@g&*K8xoS_侊LVDkߣ5W, 6O%@e@{ODúg FHiuoic2`qH.&f5⃐ț/Z޴WJJUqۑe"S`!Ql.?ү*-.`R 8rg}=P[NHg٩x +RN@koQ*g3\I(Ta^mx2a,s8?Z-ii +ں51W-LZ[ XVdtv(@ v +cgT'ĩ Rw+nNx*'sRd6I;뮳Uҹ,%滫y(@lE A 7362gL OX{ 3Zi:>\08y}-P7wo}}O-w#w?9[?!uk/a>޵P#k߭7p DCu׷ӿ^>{YW83{:&ɯ`~ +7AR͆5 Ү5ӟg@7uQfrCj_p| AJ!OgaǑ^㭦WR7f7oݫp7O[d`6ؔ3jXS}'OM[W;߾]u黾22j-c'?c\5ګn-6Xo{O˳e}Vgs^$s +,ɿOa[{_=81 %Sg]iRXoT]ykNZ2ZȝG;Q(Mx2b:)2]&N`s6?2{4:{pkS݈6>Cp ~Z5MJO)x}^]V,&K^zqJ3t.N:'tB|"+Qbr#_Z#pWtE< Qu7@N8ӟ[Elej/|'~zq? +ƾZK&IwIL=~|098O=n  ;|"T͗Cx'sȂUlz.>6+ҫP,¡}0fTwMύ<$;nx@0v2V&-Kd;bi)_M&wcPf֫٭CjhpvjSg]dPCA|7׫n"< sm;׮psuE] onbv^NyvQej'qI ȹbþwCa2kZUCahgQ#]z&:/m|oڰГR&)VF x)OWu:]Tv<>7ɞQrxF>ᔳY{W5dM8!r#$ҫ;Ͷ25 +VDMR.-{Yn dXB|&8SLg)jvBU_koAvsN,az$2<׺זhr>aP%6Y?O*gޢ=%vő=*3y:m|f|W扒X A,wGp]9*0{{ΦlܿX$ ̦Y[h=ej؊wM+FQA&K(Fo48rH5D*6Iɽ?4S^Xc7={w4{5uV +d#9^XkçΊ5g\{ܫQ1PSjx9x|yc%F t# d352w.A+͆=`En0H2b2 FatQ0 mcڞ9C&/A hs1ʹ)Wy#]BVˬO +\MO$;g~s Dž5;@2WV\.3*H&Tҹ^~M%| <$n9oӹ +ҚV +ǛnsSvS3G*RB[lIl)YhgOT0O*e5X.P#:;0.+HyuK&sh]K)S(rIX|F;@\ IrTLh'ΆQc%nmCA~ɵ5r7Vh3ڊڞ :f +5E]$3z"_g +Uo 7oj^fґv$ETE܊**TȁV[i'_ fl +M=GBF-I) +^R\p/Yi}Y1j +N^JiX}Ns3B\K5ҩMTzۈFD{+^*ܟ\3:. v![^XY;u״+4F-dܮmgq\ʅ>E|kld;ZoGZ3#/}D%Q +)0l +K":~Z*[R ĪIAAA|No iKWމhfɬZn|d\j,N2rvf +endstream endobj 65 0 obj <>stream +zE6JbRts 7EG|)ڻ,v|Eo(mLi1, .zGhЏťX*QTE6ڧ[N2NvNgv^?Y*j? +eX^O'׫pU9ļ0OQ`%H?~"?rn~ 8v>?4oBG ++*3f5èRWrQl*KF {h俶s/AeoA^@<2@" ,B7)- , tw!l6  A?|qٚeTIӕvp GUF-a9V7 +w@,Kg@V s-dڃpt}2&3[+ ??es!۵t0z,V;ud +*̛gKUn-mr>76Wb |)X:0@34)Z]}x^d>}ˀ~o aз:{0c`AD̀&B(5<)u՟):!*gJfW}} +A&?tJ?{FoiṊh6k4x r8gѻ&pZwf38jmmB1[SJx.7-tJU]$zٓk#6dVqqB!f5 .#3رv~ +XKKe'.֟cqlqx3qA+ψ|3R tj3J[܀̎Edƀ,|M7d`pӿ>gE>X,C]7i9&qns5e4q [u hGܭct蟆Z)l_Lπ,f2C#ks]ߊm^y]_n"^( ym"u~b G=o萺Hw huݟ4{+--SiEqs@co͂1\ }'JfĜ! KQHzA5/l8Ky 7A ~ fp;"w5q2Ҙ\/aCQ W ;T};!<úzew8۶pNﱝ'_Ao)O̲l~]:Ү4@¢:b3;J;cof@MwE^=Hr<r+ +ڙrtg-s z=/ҠQ=Ӷvvu[ӆKsޔgdRF/pP<^ק~HJS/'s}jkњqe ;o[/FkU{hbǠr־Q[s8M +M[h6P8WՕgzVML- folk53V`JOwϲ߆=A [FW,^SdYՈ$v/GG˜JܫQ͜fƪ0-KC:6Ur%5<~}i}yRzf:=niTsxoc=Ɩwsj r𴱚]]Gv61s ޴W)[hqToLy Q Wju*R2m;y(dz-WXK @Jf,VZ\6r7ݫДZ?ɯE]< O_ɀ5Jq Y֦} TwEoae\ {+_sEݕb# #wvX + +æS)~stp"pE;j4Y̓?LyoOZl1jgdXl=((r+jT+E9Na.2eH?BMN47HtF קּ+­\izbâ¥G1L`ܥʀ9d:ۡEwH%?dosoXO-DUQ%S#JŻ:zw_Ͽsګ+oiX +f#XG {R"1C?2vL&+U-9Raٹ%S5\ +USn̉j~%~޹<xFxg;VSvPa[_xE]r(Vh*9݊lj>ry>2SCWTBGjTa4H;It M &TT¯P~wkg +82]zVik +KoVM)=\5y םT) ]Iģ4\`['*t皪ڵ=,9IAQ̢(s<{hCIf0/[kWBE|& bfLb`nY`:\~Z툎 >؋''<"4)HebaqVx3SҢB_z~c蜲ܳuM<3} ]*wpĀc΄9ghLJ?՟(m,CPRh`S0v9ɜXsdً? w]撳¿]:]0̝X5is:Ri2aNNmbOaFb']X:}r:@5]Uk{#ִ8&!]m{6.{k襕U1qY~{/}a\};TaQbA@i/bN y؉{\`4I\4{K58a'g~ZX hGZYr#=@PQa뾮#oW=TAρo|ێr8iΫTJg-|;. +DBARgvaXh,G{ӎe[0yr= 7nVc8ȹD] e)XhX],>#๜^GhGEX*BϢ 6ze{4y9 `>%4Leb9KڀRXf)M ̓=Xs"k)妋{b?=vj?z[D*4o/\ w٬٘j6DE0E\wcpN\%bב|p<(cy]~<lW*5;uoBkrs.=#{LN?x[5u¡øY| xs9_B( @(ܧ@7 3 Ok<-3@`^8hbL=%RR=)Rv9$UFNk[| _]?z|HCC$bqq͛@$.%q 8U@|Y HDHĹ7EhUwW*5:Y\{r ~ŋE(LZoc|`Q*qdr<K@MPc');x:;˥ 2*] _߱Ľ_G- &e]a\zw,,6t8pold_t~qoMr&LǶ,@([hTWZ--'LVid+VR@k8[ޡ ժv~vXHn0+bV?.9 kM%7]M7!v0#rԁ1ؑ&*/p,k_I6k7d AI|$Ke$rן֟, ¤Ȯߖwgns} +~#ڄ~-=+o%ƏV/9n/Čd~#hx %x@{G+KV8,8I^պT)|0YSH?_"kc?fM$@H +M$JOc9T;ky#hﲕ?A,OAj9ޜ旃?CfM>COG3u+6.ŋ\all۝}­HM2?]β T3:J; sTX> oJOfGfhu)/?EH=gٛp6>B?cBmx zڈݨa#w +q E& +zC{G+QҡMwf5_oul<;]Ng}ox:ɜI=ƫF['EO6Ȟ-;ƲҏV)Yoh=h}w]4ńsoW=2^|Jl?68Ǟ.y:XHinLQAA@~ȇ(Cԯ>n6zhޖjTY  nۓiK~fh首l!i?M܊v՗N*o6Qյ.:lB/~7Uj q?q+h|l7ڈa>tz꼒WPŷUnn Wn.:G;"53 z/wu-xg5Wet.vգ^ؚ +ulU).74.Z +mxȽbsJ%˨{Y57kh\s"\g}CA\][:4[W:4.jĺW|ÔTf?/ܿ{-Z d=woE|P/~m+T~yUqˇr%8Gz<0dK%w}^b: = +MWVoJ]lh=)5 DTlU0USئ.I{g}lzPDs'| 5sV%S%0;ִ-'kfZMe{r+?|R4B]dwrdkPhEYMVNY-Msx&,tcrs5__`@O'CmM;+:*7(䔣&Cq:q&rc-Ne]b+=}Aoy)r}.Qi`qqGuٻoffg Gq2'D_TzQzW94&Z%]Wy֍fcR$Kxe㐖dŦ++u)HwщiB.4+S ٭`2'a!_B5,pyWLw%I61G oL]HZGHՌrIw~ 08ܥIKY2ıSı|N]*ge>/rK[.U >bېuzsU}On([4JoÙNmFdTˏʽeK\cGz&:A" +BZ*? !3y +v+^ phߔj};մ_/ZޝPKa,2j9Ƚ7~eHR۳T,N):obS_2':n +u}w=l8<7\g0ob!:D}m{U嬫~V3IJYԧ- 6tݟI]WE sH+x!M4~u}yZcj\_su[1Ae&X6*L`TgbpX1=+5ۉg,CsXN=z,{L\> h=D~t@Q6sO'!OV)ZT6/;8{srf?igQ(jA(2a_ףO=n7M8Vq/f={g%#Lƍ|Vi=a iSV_P)e"sĒy#C2d&rPL;N2vGܰYuo,tˡ+mі8ڊ=Sgy-`:ge4Öe /jkJ-*ШK"R3]7b(aDRD^\WWpoNM_iZ~"eÎt2VNDw 2W^M[B8&DcKKnҠ &ǯtڜD-ok0~DNc|S+sgCg_#& *@[OAϬOaSz|ƍӄ_p>jq{Ÿf~=͕8-,hς2s16#tќN|:A3^8'gvX-~s01W `Vь("w!ᦳGWGEGK +~F4ѦsچiT}0v`O`ϹK}e rm˻|әj_[&NJS!D(Ǩ 85\mNemw9OK.|qNE%NH~~%bY?rCnjz|Í67WkS< q(i^.xOFb{'] В7Noqܻ v( =eqb~&lA/bck@l9s 'ζgQom=c?[BI=pʽ>YAR3)[2=s9q t No<߃.[@րoyNc܀(@~)42LZukӜxK=JqRG~_'vTL$6w(PPf:a +du@}i:4F JM'DKe^QI߆ڞL]->^' ۦkێ9'‰7IzB`.0nZ[FoD ҬHhՂ?ؿ|F9KᏫ71/gъ *hǐZwg|}`_gIm" CM2?p/o%to1P1w;V88u%:j;ԥpp0,h.eOezeg=Ԓ;42»Yh W/|C=o +ȿRq>ho)H:W۹|9lJi]Muo/^^PKa ci+ ꍾC|ex DψM,1SA{L#%F(.n%ј?=4awo:QAyFcW97fJwCa|@3gtKnd|*K%šk0?eo^=7vh=SvL +iL7;zXeo!* O7ܮ =hˢYȭ֕Bxoe_LC-Z}o*-t(YؕfdXz<o q3W3lMlQ[탶)X,W&ݾd7ZR0q摻ʼ],;,*8LscnRH'{uaV9_lg=e|F/sfjv"q dY;o/k%ԨT+]?9JGgW"Nh,W,~GD|g{3ɓ SXZ0O;&Y}蘹1RRQ+W9uoqe3W(f"?$6g*ZIJ))oB~L-ސMxrcbM1Üw'O[~$\>#olQ^5^uphZ6*ߟʊԱMaUY_s4`uq\CLF̟υBu=͗*mVeNiS+FV"Z⷟FYFwZ}=}]6Rvj%v߇˭T[m:fGYUx\7aNyiCf8sly,DF rn+r:86lNìui&#<ـz֖ 8KO\rrȞ/j(cbj ۹*+Vg/Ʃ/AT_-7?{9q|_h)J.<5\96ܐ9O2s&p-+};ɀ73q Z`ŧAڥ,=٥io|Uv- Ȥ-SIvh>r][P7=ԩxIW3Iqd ĩ- +y-)=d*2}W-ZF]eT?)P}"$ܸs|*c 'E[vy3p_3iL髧 Xt̹4(PMuny:٣LriTQ.6Y!s7DZ?=fiXlŶ׏{ ۃL s>zBڜ?ӨT<xfP}sx"ԉ(hA$>,_N?_d =ۧsLHʤE,= =ߔUB=8#ؾ[`u{lGe5 齀t +Xq`Kq~eHsUsE,Lvhdv@6oBU̧"O_9MZ#]L"f BBϚ젭WzY SN5nw80l9(}5SLAKrK2wjaorr*d_(Kx3ھ-\&JȞCE{'-f%<~H8ptyڰف~:dGrB/5Y +mv X*HU.sO,O U~%D|Dak/zy.RtD ո`U[(48g4B2\nf*_,@W< 3* KeiHUŲ$ɀNR,) Ŭ Hi$U uD +|O sIRY26嬲1aS6ϧ"itiR Se5h>(`YLX.P P9byeYXPYerPP%)@fBOFpN(W y9۳FlP?4;]N~E2-B%lj +FK@kp4tzzG݉y@GP7 1 V?<:y6U"ۜRYXߖ s!nD/P&\|u֞aQG՞6.f+^L'&+FZ~+NU6`Z00v0֤X"PL,|6S1E+`^\L=}PTޥi%y3;H/.v=M^LYu YLwpLf\\yuܘxZOAR,u4ގe D\@\4Q[LzYVՊJ&+¹ o;d_ yYIvoq|雄Mڈth[@@ՠr瑠+n@V0Y]LYf㥪ӨPP HxZ~9t&~=?>DL'7(E @ .@y!q@#[f|P P}jXrOe65GD8?'J87S7aIrz )qI6B +D C"2ScM"&.d$HjRq" 3{ Px@>\;;'73RJoύ;ݕwFx+H5 Mj2OhM2~OxC},}B[a\KRϾ=}: 9z +yxsWQCD9s 6>&*|麶<$!A + >a +ۛPͩ5s#/Z:ѹ b?~Hs- kv~ jq7;]ECM':O٬9!&w1* }NlIlbq*I:ٍ΅y'av-l/M}yn:Qxa27pyB qmÈ9܈]"a#U9JJY}=;%1=h"ֺ.$mJXR&nvUC/obAQ% j~Js^`ms}f/!?Ec;o}ӝXFq!12?;e,] h +ϾyBZd_Ӄ^=*^sKʘsq*Y;1pngЃ*߫V#8T+@8Vz@ NiTE7 asC ?; 5+U=/U|1P%jn%1Eo Ks=ZBx{`fuk-_Mn}.oDzlPRsQv#ۅʪ,U|_+of*.8/#X] s}E^E3:[l_&t:CA  X5C97͠:*+>]ߔ޹̞O:@sJv+jE.j> ) _6F#ﲥ^=,'!VPWצuzo v`Fܪԫj-u!j#ժSj Uή )S/tP M,ngRaNZ\yy.qx/!Qn9Co솩~+AZuӖFlxFtd17[-]7}IӺ +u㑭c+y3fqoE#u3{Zqw㱝+N˱-h1z6B ׇ6>?^iuGflT@iةh;RTeV;ZWWw_th +T+jfƩ ,nE='u>ZM=2r-OoPO wK[muY< yU&(eL~/OHEJ[z9g&Uzg(igх+U%jRW4dEJ6gf+omp87r$Lpk%-FVĨt#e?z.l39uδ|40YUD S2BY7}b0>034.|t /%ӰY,+`yk,M%J&L>*bVxRZ5@\lEYjǵahLdu5R)'{ɸHCbx'/o'T[_W:lm>ү#U7ZKF|ɁfdzǔI x y$شxP_BpTR5|g J+&$ZyQD+#NFʗs#3g<eFMVt'W*2PBi&EeL=F1jo(8_. _Ƶ{bV4̔z̳ZS:Zt/+;Utp]䗕%Ul9 j z"kQ{١ !}L;ŋ)(ʼ8GX|>cl{albbmbtoN.ꔰ) %AT +%^6Ü6MN=Kg2njOq$'vA.ido~ngV12z8uh#9\^e"7:"ݣ &=_sr0M:!-w _b\֣H*jv<6#Xb\M|,?|8d+*Z7Dr61\WiS|{po|94 X[pm< fPw<_:3gnr sY$hDgbYS*\aAP=iaxYͤM/6ۮKdR\B(@s#B5n:YGJI p +?~ +T#wx*R$0%I0htͅ 2>aA86DGlNc(; \iQZ31 + W emמ_m+[ +'Sq +~&xdSwE)'/6Dž9-;|dOc3C LBKaD)Ų61򱸵X=@  V RĸDbJ'I=ѽ'_+o(ꔎFzMK l<<>]l݌2eTXs=iFB0bAZk X. +H׸,HwXMX:g,-˽ ҭr +ҕ5 %4rpv7E!r +r?ȼy[1ҳUO ΊG(`3Х$fI 3 g<+X@dzr\r@N {%ɴY⯔.4 ;X栃zr,CH̿'v.Fo- ȂphFHKAy@ (!erxRV PИu!OzH,?>Z1P Pץ +:ACԌ#d!wWT`Lnߕt,]͚ +>qs +4f +UJ8fS w#[}d30CKQLŲ\& s)XzLEΨK\'6:%Sg6a\-I8tB[L7rgNpkB0f0+70Oρ_@h Z ;E6gDLD;C v ɡAЉ88_šD;dCxךfʱ} H[yҺ?Rg)ԓH7O>?+dQ9bq/p Oow4+'9 sN$$]/MFKƑa2P 鋻PJ(-:M@MT'Pj)c#Z +C+ɕgzxz6}=?ylóPup!)W[Y Pm)">yݢ٧ϲ7h9u^~⥈xh5CX :>U( =sP`_gHo@CMpj᪑ZO|^6G1g2KxuU#v!CaCq%A(}B}@)r/.u+#Ĉ[D샤m?.Yݝ% K$*Ӹa<>dʘ658=V։>î Fp-Cbt]sJO6iJ7o]Dno=׈Z3y6r:g:nulu^Gy. +E9 0Y9A\W}kN@z5n;Y]WmtP96}L];ٕdom}ִtl-=wj^3vqjZ^P ˵ieUu]T +=GW+_FnEe Y2jPK=oVLv@:򣞹hܺ>ˣZQͥHu]]VKQIQ[nKѨT27 mǵ tRm5Y عd9a[:BN:?gBx}+Աԩz̸/][V#;(݃ڼdFɵ٭8.΢bC +{ ++!/49\ (glwx~׍ʴ*. X6_Iy$>n}nkXJ}\g9aYw\M:{>21ær1H]ee|eڹ)/|ڠ ݎ6f޶Npʂ|ł!~6%0GD~o*uOëZ9qo +5JnͬoƗe.dڙ{%!N Ķ5>|Ys}e:ʝ2)QͥÃ2EO}7_n5wadu{Bۅ¾RV&xQ*59i'.QlZjָ,[)TM6pb 7SxbUMp 9Ek˔1P*qP;+B齑'Ph۸{۠d_s:)eO̻ ܵGG,|Sgy)γ"KԺIUؾb$Y}߿6tӚjMOk +nN}QusQcR̬,CH(zԼ.NmK{-zuJ|zJ|7?r{g%͐Km"O,UYEy>$L<Mij^T+:-d%T$C= kHC]Vα'Ы̎0WtvPlnHuG7nvsrżچQ/Y?svQou]"ކ-J*-VyNGbaӔ>ߢQ* HӮؔ@\Xt'a9]rWGmy~ib[1ʪw|ö{!sN*tTE,=WKL&%xFJ8F9+BE$ɟ$eNR~b)ViXbD1ru :.GWXqF Ȳ곟fz6Ѥm\BzBGʌ;s?$E; 2Wwc9k2+ZJJMv怐5,Ë[.!vD^# +,n|].pGɅ[<v%(n& }99DorrC#*;2g5pr):_{ +P~W%Z}Kbt0,&x|6 6ɝԀQa`;'jge|1.hTH\% L 1#h*_q칱LrDI\1*.ţo]y=ҢSG.l;׋/4⟜ˀly =1=~CgCQNט*59I-*,4]Dv%Vx#J+;rϵ'V_ϲX=u{6 ++Y,eӺvaJUW Bw@`1(b~pNoK"Y "n;KD*Q>AGڣ3v|i X#P0 h4*P,TE}&x=̼(Іfޤc s\ot9wDqŷhw6{JCޝ 9J҆$=G09Dw`EbKk\9&u'T ,۷" zWn!F뻔 =feH_mW2 }M*oAeo0)Xay!݉'56a~|B21x|1zYSYeTc-?]K5m@A>[8zaIf{~ uJ\+ku>lF_x/oQ<͝Dә&8"o0y/GN9PF "X +X%@T;&veLۀ. *XDOpJgĨPKed>*B ITVC(N.S 14->4k\' B,%=!< H^% ȇ$5xW@ 8ސxJ$.U6N߾`s/SJN`^H/HahaLa/x4?   W94Y@.2 _W oK%' +9@AbyEL@heHfI{ӻǺ6G yes 2gHsY'Rţ@ G%ãIvc(_]U@͑,q֎<4ˀXa PowO5vyԬ%b/0Dl2U[aQ2KIOJMLĥϢ=`[i/x%amYf2\V#!hR Sj55`8ސ Zt}M)|CWZQ*ܯs6ֺ)\fVexRqEd%c<.cȀj`A y˫` 382s:?C6P' r8&Z㧟 g҉^ׅӞXke9\>7,Ԭ&n?5_Znb<~?_nޜ@BK&c7)yoh <ɬnT Qs7l9c7kg۵̑kWUYԱ^,2 Ҏޤg|x'p%I^l{'a_%crsSxzY9dvem/چRplgI(.J}dކw`MNKzթi̟ҝ[~K?Zecw[+ 6$FdY_엡ۛDT +B|:`K}l|2EScMj쥶G? +7Oc'fCr6k䱿Ndzǡy~//{pG6nzѥ"x7] m^Yz4SQ?GLEnzug%%Re痪lzNIܶ6}.^&.^qm.?[uUתR,['kfjj5<Ӵa m΢ ZX$յG]3DrQ;_'ϲʼKt.GAޥ]ح,Kf ]p* Q! yr5sY+߉1ߜ$b3HՐ@d ^+z30é&K< 7usy35Z O4 :srb{){eG[{nö`}Ϋl<>- I 19=jU;o _7rnޥrcmec6Q1+}j2  "5U>rukLdkv0i:$ؽ5\}zC<SQ!Fg汬N?YOF d[H~8>fr{fe4h{>eGᐷw"YPƕh,wY+&vFaۆk|:zŖwwC(T;.wYIvRj«j,T2x7=x7rBaYS2ܜhKfIxNm+Gqs )lQ;/pUAW\jݻ))xm sLj2n~'˲WۥToWW +4lFQ܏io]lDz ;i>g3w~ +ݜ?)MS:S[$i,Nх kjr +Kj;AY)wf-/}Q%!7&Q7 K{.lGюߘo +_>iv6l˭f& &\{qܫBEj纺v*wHy,ְb]~]"VNk('IjKbޑPZ ^!a @[oXd3hMo܌FUz|$.&EÈJ&UIe,1Tucn4Q,}GUNR9?e(KSă%"QJݥ9UBzynUr ;aϵUēUh&S Ԩx{ZnVMлAi`dKkV{?UU)aQ, +HjoreV~mu%VM}|;:Kڪ.nGPI*Ӝ.~߭ ϮLb2y_jV¶8{ĿmZG;\eMcQZ"*۷zŇ.G~[/=8HKms/0 +5|H[נF]D̂ m._ +ѕ9׊}|+;٫^,=UlUE2} kݙ;N'EږmO+ӫ8:h1ڶ& %j<plo|;K~p)A`Ä|zKCOSsc~ R?rT'\W%c#-j%^(92Hy7o?3>:==gjB"w*^)09JK4*i|Fk#.pq!]dT~VK5ӱN|gkkDU,E2/4@Ǟp]`5+A$=ĥ!;/Se@ۏӆ9o$oDə_}43ᕖib٩GU6KoD) +PCo~i6LrdeH;jj%Iw_`^(9#k#\a% "ZiW^3v(uXG](%<2Jyx )]Be:U еrdC s4ۀjzמE/WaP!t&c"P6RRSbV/Vt9曄Mu&)É6aieI$US@"QOôXP@$ojPduY{qXƺE@ M I%I W4‡|w$"[e (MeLE怂f@>Vp *[ɦ+x45lNZ9N"&8V;+1tHB|$d՛.[`  OkyiF?Mg V=!=Ipx~',cFV} + +d^w);]:݋ya,>xU̼0ԱtUd"-ŕLe_o %ߣd p^Ӛu.G=8_tgǀb1Lwde/\W^+-"Si1Jwfa.I~!owodk/ދ9 ԋ}9vwpo_,N]s1=my3fKq.?BiR#r\.dxoηA}<adawD&% p% 5q&7A?F/2fps7a]; r<>ۭ,kw|z n}0o{dCU ;J;ӫ&F[.Ao4AUm=JnP+˨$ 5hM4CK,A汆(za&4ߥ9'ή%ߺ;^wfO_hnu5>㰑Ep_ձPsYY]ʜCRӘw/ ⇯= <:K\q{?%6ބ$OAX6)1IT +-k*EVT˗~>Unt>K̠Fiõ8.aYFstv6p\=y +$_ IXދ|BFî B^xW +R.kt<$5ܰC7s79gYҽfs/`lqWq7iC=u.I0A6A#Z?sûFԠ} L6IO40-BLiBx˗um.˖U^˯}{M +]'2h砛=ìN2tѐ:}i8_h OBޢq}Y7g\tĞCKG5Q_W19I&=\zBex"NRp#ہ{mk\JVת| +vUj=)ϊ)h^]@?9:_wЬ&~_9xfHBs]nw46'db-Iۖ ʲ97_&vF`AJySO1ow#: 0QЎ3|lh2^ꪗej|wak9HNsAs'} }ӛ8'H |Hr*ێ$ld*mo!W7JDCE^W8~a/M{eDwNo`YUH]% )'R$}.4n/RVlDZ "tU'׊{ @/(j nnWY;v)5LgjV.0]x(/7U'1JChAm!zK3HY%~I,DUp8.=r -7;3Hй;*526~_]r$:w&DʓQ lױ찪m qb e ղX?4ʐ +KnŐBy9;|pRqƪZe)"rK*lAr-sFaDe-LA'I3ObL|o-*y6u‡~X<\1 t1櫨}P)OshrrmIշkH&^]Lx\;pRHYu<_0=>#SVu?P;4GĒ/#*Av[(NXUlWRXnV1~P_0trDGe^{@wFpfp[4Úe29wy/LOqQtN7"B8ǽ KиtKBvP!}cQvo.=2]WM4H}>wZc~47\btZli)XkџTiK<`Yr,nr,~̰ńCR`oChz,Vu2ID_OTi~[0 ##(o=+'b5m3;`]uk >d\*عq{؇Db3,4SˤpZ #grMkD+#ԀI9{S?ne$њl`F^j@REܐbfpx}uxyARc + >rf,M'K;Y_?.e㣩#mZ3bNh]F}оE ?d8O- n+h|. Ys[ 9 J bb1X@* v{8~bQ6|bDh]<@x5 mꈔ+8JBo\~?k?f,B.m\bo깏!*?i 7ȡBՑ_M@ׅw6{U"byg9Ɵ*+x+ͻ%OD(] ?j'̖~<6/a\+_ @{|,JBn+V? +y3t-_xl^U_ Sg;/GMkwZ=$lY00t{D O-)K ?zW'i7Xc 0VLT6uV π%o\ŭfcm3p |/0򷝍[ON`D3;,D 5I9J|cJdMHk47^|/fO5.[uy\?ڑDLL)VF}6U̖E\DE<̌?͙(ŏ?N7!d1kzOabE<<W3@sM z5D/T 0:@ LԸJ߄,~fc Ϟ֛Ԕ U"[r/qKsMM^EF ,Ptm +y~h+^ybR]uKEqM(jhn"y& 5.OB)6>uM>VXhqՖ^ F>3T;ëGFn߯gʜYdwޱ~/(kazcÍVw &i s˪A3Џ&5 %ͺuUvul~3ewO7^eR/ E?ʶ"际Ye/`{qeg=hCjz#' Il|%+%mD!$/IMBh,fcgk)JRaj,Jrr_P~RYv.WKOcPe}\}=LѦS*;m>Y+XY9KRY4H$1~ +IC_olPGigX9cs٬6qJcl5=,[09!1g#:Ԕ.)Fn"knf TfW/|7Z9ik. Yco)MG;i9p5HL3b9Wߍ*U]+v{l&L. Uc:r#ҫ%Ő2ߛ]-Dnݍi":LNwҐ9aiK#qapUR ]sO5?׍b A,wL1bEm?Q7>Ԭ4lKzҸ%i`DBjB8=np7ptDMwE'W%Y?+ >`̹Qm?~B`PvFjC,l -K7@*/T)z,':&17er zyϱfj X Zwg{ZVyݙ2>sn] + +R +^'g2F$IVW + =*nx|~mñ*10цt+!fRWW84XXtgeKiK SÕ|Ǥ%`5Bdl}JG1>дGeR6^Q-xD]| aUOZR>a<;F}ؑxZ(ԂS(Y>2 LѨ*Z3m?u:ql$޼{K&OOhk Lw#J\AjQ /MlGm1uq6+&kN" +D) YA 5t24`_(YN(\VXzNJ +V~h<ߘ sXuv̽ @'Ԙ>o+p\h[Q?#,@N85|7{6T= نa t(8j~-)Șŗjdp$k1{$>+qXP{Hvc\;l~kEz? ^B)d@ ME&c#A m} +HnbRl: E5-)Ov1 TNκ!on~i&ZUvw"Gm6io&q 1('xH,GerJBl +0ȣLvȡ^M,=˜;)+m;!-So%83LG~ZȵZЅ)`pe sb`x.8?@+@s?YZ22oPCK +(3 Cdp{hӂHu܍Pzw㚲q`n0X9zeGTX*dA'*l"s.N&=QidsD`y"|x_vOM*3"FXRͅ 3;]^A7.U?qgup8:ܼ=nIH, 6ˣt;;&JQqќ^Boqϐk+"L?99_αu׸II1a!ȟփxC`h#}#6qS*B,H@Q)7c_„πC k"]|Q(<" +((=J:}'yNˀ\֪k\l6 z ~O55VlL&Uϟlsе.Tˑ'FDeMq9mAZ3$gᗁ,o`IX-X)Lv!<fZg/(2h9% 3gd54u^0+K\N^QM l 8eO'NY<>tsYE@Kg@ҋ@ +.@*j + K/@9] {@R9Ao:^GM08)GJ +_]$L(1Q$W+xWo#?ˬb}gmf}BI\ \Aʨ %pp[LpE"LumǦے#G(FO#(y&xj@*P{7@:  U6;@ҳ8 Jۅ7fEeXfJ67_'>CNa"/1_{S0%p~It`v̸fo#7,`'htמ:yÿZKt &3Fa)&>Խ[qE,m(78Ȋ +}dkpFXtr-Iv %Azc.)MThm#܇@:~M SB{4aT0-|WCAATPѢ 'wHg)Ӧ rV9£RO0|s6GxB(C^^f+#av^~nz6|+l9Bǻݹgfxvesn:q CZ}CRKn~ΈpF5"c*ȇ?AF(G~^̷E4P _aXMqnw9G,:Rdr'҃n*L!Vp;RH.~$LzZ[J须xnӬ]0AjId("o!$8v%~( gqu?Q.ܑ}60R6!2 +25Ciͣ&s >72Q\wv>aϽz>~Uv Bj5$A 8):1o#+6,f┛m@ȱBzņXOH[AɝQ}3j*E+ Ŕ5iSTqnnJZeYJF^N_K07d/d9iL#ɚŪ]VH} /:4Ϭ*y_/VuR7Kwp;+rbUԌ^4s.y'lR987_V.Oa~{,  l-YmTB :$!$^4gk.삵\9 z5)XJ+Б +7-&AٜcIwT 9ZY_%:,GE)rK32n4⋳4Z<m !}jMV2Txm>aC.PwYm%C!As,gDAZ@O&M.v[wʠNwk>D ej- E$E`ihv07Кd^w^n_ExvBq7#mZO +Ms]  0y ۗrϦ({IKgb䀭H ܖ ,!-g F)#b ;L0?H!\UAljRrt(uLGFw%9Eԯii19ho$ +ǚ-!#{"'c1|2(yNE<%t#ɧwK6KV{iSgS7)Si­QP|L]gvX{%ȓYX:o lK45NOLJ6>M".Jj|rrZѓ{ޏSkT1, +TB[/*v+'4}ɋd:1h+XwQ/0tiԤ6"I"٩JO9^IRj~ 5U'S3Iа&:jXc. 7-m3wJ9KT<ɦ[(w (ܞQ8LƬKkrfJucZt7t$h.@=Rǂ%O,U޴b%`6Hl0=-GNydi|Z㽺knzoL!'1Ḷ]9G&Fh G3<=je<"E2E$CCtj] I֞ik:K>r|`Ag4T:zDcSlw9n^sdt>sȽ\l#ӗ1< TdBWUV*"RYDߙ7:\k\Z颣털r~+~I@PRK()'FqZ1*uw'>{{ȬTEHGgD"j " +Df2<>:Œ›^^n5d֩gzA +06jDžX$^xRȳp"i)T_=C|t +®AkN€BCriFlJ0Zxiyt[8ΈhpCK٢!RRybl#O~?o]6 MȍToȽMh]+j< +@l~tj*VP%OkYzM>U4ZU)`=#-4RZgs^ssGaD! 5!q̓8xD@eښxʬ/'n^NVM8Q%4}R *2j +db4Z'q52C84{ #,C, :CpaHlЅ +H,+)(HJ +#ݹɏ<¬,&0<&Vh_G[DdPh3e7Hħ[PPm\ M_$dJw)l؄c#E1M$pDt/kF>%@աCq5=j=(}w.wsR&')= R-HS4ưEE&8[I#&IØ vQa|o(icc@^5H;$YhTI3@د; W b @V;!Jw2zt}}9СCi +B] +|C5L i `f h\ :7=NY@ssUTs1'd3i +(XƒG,/roKP\ܧ\Un 2 ˁk3istx|,$/4]+$Ё>mB:!0[—i9k\ -̋[,kP8MP薟]9WM3J8ȩA{j4W)!-|Y ȡB:{DˡK0D(~0y.*-(P D0LAydA9#t ζ@Kxƨߦ ]o0M6RUݛ94nlL{P?EXQmۿk.>.ߜ/Òώ.ucGǹaGvusuZAtm=2l&s*WCCڬ]FQݥŽXYMbl{[\)S۫87B3Yy{G}\?¹m H_6,kU! ?~pmtb8X̏67Txt|}܏^3%J)_#]-NFv`)>q'OZ1 (m̚]4JbR*漂u4)S_NFVAkm;'{ݑ!6](/`VJC'EjwYAj''ifgIŤ^GXXc tv +XrtK&_3tm5Co ݶbhhd ,bl90hɿF vzp71˛Vׄ{t$؃=M"T!RkN ؀Q32u|>bhne ]c*êvT}ݱV,tK Jˏl.9[asqh v=hl MxZ*uwįmM&+XqJ"RMeuO@{ k&;]ۡ={wM^`ʣѢ}y.Ŗې2[nC*bmvWlŐ>}\[Tt+LU}%W\]F}ݲj}lEwx֞фrAMܑE пBWOX/S_OXOLp7ϧR~gNDw-\lEٙOW`FW },QT@Q}CxgO7Gq8^2as_u<(Զ{cB1 );O!U39)ڰ6t{κng e`\n)멖-%<9YTy|sDuF>m G]ȬӮ<Ղg ۫V/6?[lki9k au|ծ=V;wъW]1X~Zf' pҽJh&aѝyl} `1ͬ7>uo|7uCŜ_rhf9tɼDdzxUP2[*`1ReڧS wMoG6D_2=joӅomkaW(}/x0߾'2}~;Typ FסrmGuH@lY)doWd5lҭI@ 9-[ )7l7 >נƧ7QO^d}Zm#k 7X'|П7gq.m +5@"v*ѕ_@9iv`ǚҨ[K詥5ʽZ/HEތt Ǖzg|1-K/k6:G]<'w>Ntd\8:2+=KV>>t +1!Aw"K +tB}U +w-#Miz4:,">K8)9`/W}*}v﫫.hYE0!?t0~REGsPH'믩YVAX6g^D'9|"tEVU)Zt?Xao]?ގ@E5W+ceiN4?  +َ]ӕeZ_Lw5&H߽_EԂ;-3N{Sr'm]|z*u쏧zzm"(i4'ɨ!'q^Gm+H|yH>[C3eK|:F;|֢SUȎܵH;)*6ygH_EvE~'gϣ}fgN_x m_qݽmLV[L܇+q;y++U!|jJRQQFG]lE4F*#jdm4IJ'S}a_>;[26om ƚ1L-]QQ#yzBz9 ܁P}DqR,oii#Qj Xǧn3k `Ւc#v=68'-&!22huxl>bDg/qW{v߭mM;ÆRZ[TOmɪdkOY~7QQxN}{3g\y d~K@癟:4{1kbÍm*Zq4 acYqq5(R;فfu{*ۙiFv\[\J + ͷmp.Ƕa`^\ˬ1>(3#yO&*9&mm6ŀOQRM!uS 2V'wȲO{={l ߹ȦiDGi IsxrzˆͿCR?-߶ &2Z bj;I4m-O3W?,;.ZjLÖ +Fe +uGfIs>ӨJSk <><>Q:>dGp+4|u{.n;42(-Ma2:O+ArwDu}0Ҍg4쾷~3~ t_<_y;?gOM?#y#~3l?~Ť?y?(Nsp/Fu4|J|.`ni"Zd*ۿ8:+^Bqy_Vuj;2nuzm3A unUZ0 : BL5 i[hͺۧ'WjNO/Wi6̞{~^mNj彸y]meK$ +F# RSSŧWʧdBXtOHI^(mOpZ$;qAKf +=>.Eފrzrvr~9n滭Zq!Gj ge6BRfa>b$|bU uW|!>]]EnfS7Lvl nu/+=g0-iBaʧZɗO5)5SX[ǣ+i9.Mmx Qcon@[wl'+ HuV/!?(;ի2+^9ꟗg3 }#x8&i$Xۮ`ۤ!Ϗ54;Qm@gna^5dq6n:??9Vnc5*^ : ꯃT[ƧMhk ?$6:\JnΫOCqNDf-œm\6x{3a΂buAY7? +AWNC8758B Suk_ϥ~Ryo߇Pv^r34G1vAm*=_Nh:\K8vG>7-ytYeqc'A)%IX|gjs齏>f}uo탹pd;fڒTFR9ivNi)M+z]a_0 U+O{XmY +7Y'\"=&=;D7Gڊm&dZ +WN|Ö|rx`͛Iܒx~xtL㫑Զogd4 '$16=T; [x6Цv&tR?/>9„eiHw qd/`m%ĸ:|y%F% +zpqww[}'|4YL >y +b^[]XWklWN.VJ LɬKMYsȞם^[G{7{1Lu:A`o}/)\i%>>rSZ⨲s-F$.4ᢐ'XpcKwNzkۚ㑳ž3eW>5M4E0:E>/-)a]AO{4"M ֛i-t6;17tlrjCkggo +O[֊ֶ}Wo@` -^b#|[ݧp,tטCFnq$3o v FZNu}6bAB({~tP +\20ZȉtOh{GLs+FN!zFuGI9ZOO3MBOeRʬA`8?mUUs@g'.PX!H)jL+o]TTv<?_>QK>rxψ: r/D|r\+x v׎h Iv|\թ5ű+ʡ.HlMdp7?hG:~u e?30گR~I&G6gY<&GcF񜽅PL1#&ܦ>v}j@|A|—1pt9m][XQ1je=֪_tPϚ$e_? +>q?j |❂<7uiǕVAY&J,^b6GV}kLp}[?^UASQ%Dn}I|2]8}p}$bԼtc(ntz4 Fm3At2W]M+t{쪫|";3W Z5L>-N>=IODt.]񮬜cuX`͎TCյ)46^zS/,.v}`1:}JDO[g!|>E:%qƻ!!_I tYkcneNkwݶckU}}AVuVr`/~ +N߇{j}zmtLAk>Is@1 mODXNyS11UV5lXn[LkN%$@nd(09vWVMOvT"ڻ:NFz} ]J{sQ^4rkdfXN >QM9J&}l!ջMz¨g2ĭ{xn`S-g}uL]6[m!6c[YߌiH_Ta2c>:>ZaTcƵI7ks3B o7^b),e:[M[?S\"C8#DO#aS}B^7A\ 3dJӱ=u+5I-n[QUv-7ч<]/,cloF'E~>P TTU*8BM=?3Gzݫx+Awo.;x*ƶtO,y>Mj6 `MēSƝ2,`'\pBNu`_Jf|fLE⸍Nqxg]M\η,}%8i^]ų.Hq>jSfdv';JH> +2D:lq#O_>gdr.n$ٷ4&c:CwR +A[cs߯0Jߨd߄@QHuAʰۗ>hdź)޵}r$ºwH-^2jN+Yl+5}aD}gӵ~۵?O(V8t^iA݉s~yWŁs-DS'#XY5fZ]nƫ:,r|O_sKͳy +wJ +jQvP{#i}o("mw/q)ݟ4֑-m߳CK8;WHcBdQqg4J}%nvJtkת2ފ>LS+UBIINOzbڧߘT]zlfKˢ^-N +o~3xH%ڈOVat9>i,Z왊9;LlL]9?kWnDC49\5q~ot$耶j@^!nEUL-1|M^G&<ރ [}zמ9hJ2~ѲVs .2-7[`_ⓣG/E$<;巛LƠ֢ OZ,+}rXԡyPVX|ӕS\wR\WeL2z ]!^{{a}lt^6M[6Yx-lz6)n8R^?On9y?aɣȲ.].fcfVIzG)PؠF#vכ=fg>ny +&᧼} uS+wkʍTzy[V/tX&/P+mwFu,9cLftǭ:imb]S03ݨvF>͹brm"Y7ZG zԤ~U_?σ7 N/.pC6u,;V}~H-u]ݝMa0Nlef]FN:W/ nDž(4)&̶Ogs<[G1N>}{_|XKynMGy)74}]K.w :>Q-I7NzWR\{ AzJh{k酜_dzʡϬ >rmqZ~y*r+K-ansQiM||<'$I,9y>&:VTzxKJ-T<򜾮Ձ6II_\\>-djnqwg#Oy7:X][EoMe2PVj(F^zl`~V۳R'S!Xu~49*AlVm@Gk>2g~4sL# 3'15RTɦ:2'*Q@l1yr'F|&mOXK'B79#sT6ZTtgw!ϗ[O3N?zoNu|m^e|vyFc Y*T,mw֔Yg]Fꞻhp$*0Mr)tw+|!c!7q4{vb4>U_ +uj5mjmpZryq, [g.j9 !%61GR)r~]_aϜcfPHD2a6/}8׽WM/51Ei +fpȘ`GR>SiO<Ʋry륜%wǸ.wvS٠إfeF]ʓdUE~WB'g(L82A\p=SΕ4I$mbae }4?fJ +Bt|(qnl_nɉDBfWLA?||"ՎC.>9 `D s^|=Iɞ8^lwߟM"夗S&]) bjlm k)ZG]Zj+S]Odq\>`c Ku)oq H\>FOLQPGzvqkb!x>> +?>Q$`Gc[{6yS':޴kYc]- b +B wf%I=ry8)nk3x"ߝgr +qɿ xp0.ܓ|mN @di\K&/mdH&U:84((V('+\ճnhJ ;lj we\[hla9V`{l#W+E_y?M=gg<|E3=>vsGfn%P Yv3ZބTxx{,1go;^%䚥ޓ;PVȘ#LgBU!Q<T[d{J`6(}^عR[UlR/Ŕ^v{w{ n8ȝMVCQDm ,Y38r=3pE:[rƟ*O{36S7qzHtEVgQ'>`Q=d ϢȈO-uKk[jo{m +ߙXdv*6u{Z,̨`..4>N^!Zp![>RXJzkM@$ s@ϏH2[$h!տp덖k6j0^\pi@OQ vy0)h5qړy&I|Ad]]@.[Tv3/Z͈r)]bӬGD=c .UZnI=֣ΰvPkh_$}jƶ{C뾼ZbnBR϶kZjDg0*#(Ph:9O) b'"^k读󱧦3}.UsdF,{})o%v"_3? EڿB4׵匛b﷐ZODm h]P`p!>#R ﶫԾgu=UTM[:HOi:e+㏟|?H8,}^A!1@aOkVYNm+{uʽ=+73vӥ6Fq]}N:kYc7+xgFL9;@@n@~ _]fpMvrɩ + yoxh]n׬sB^/߈Qq6wy]n+M2rv8ݿ/9&K3:\ Ch/d6\»4yM9mV>'-+(WdW6Ln}"._c{g:[xC8W $@a7צM?Nyů7lRG1܌53f\|lq^r2\d },2F٢/mm~BJ?Ks +Rp4A@%=ݞ]]äfXףfgiQ7v-.yb) ƿ>.{$l~NSRܓN6zv+_H@91^ċ[[W|X*:p;{Wn_/6o*4]k?ǂ<\D#A*? +LqH]C1χT5f+7~wDZ| ,nO {ZƧ%/´Z-׆l-j֠l{BH,I?c1R5틹EGbc63xi5wj.x PG!u`bO~QQ[uu@Fs\H]q V-̈nwY +_Q[qw?d&nK1eǠ,FǨa׊Wݤڬ[8EԐsiͻr7{Oasvh_-ԫV~"–fR$fB3W eqvQ^a^Y}1 ٛTż\gX mzH *Li)WY}4){VtOY;Hni+gO:\_fkkWpwIeoLݵ`&@=N$Ax=k-(A]ŧZy/[\1G2gDvg:T~?ר?ר? Cz@c"@^!bp1n[-A^]AG%u>LXRi5;'sRPw+ߧ;%'d M;nѲηE9EG߿H +FoX| # k!>=+G'֢i^VDL?~ކmrp{Z0ay?G1e +4WyC38@[ ++y TGSKG[n6Nf3erxrqdȷj䋧O`DmB@o^\o+PlJ%Saˇx7l憐hTDG涑i.Z{zA`=*#Dji$v "wT:^Z3[ +< +=ɶC{cl<6;Zr[dp>($ЭO`g 0!wZ`aPUPP$fh\[y_/4 Ȉuٞ?z}_`WvR4Ϛ\OV˸=f'^~N9O@T@ϊ=@: A(A){EZ~Qou=m_(RMqMMtOw]JLa[nWl>ߢ/?[N󂥺`n@v +[kn5LeVl޾N=dםza)hM/}1 u5=zO];U)Z*$97 +Nb2V$_W;~JCg4L#Ϲv.]A|Fg0!ۢv2mӷ^ܺH=j^ի4ǴUG⸟7|jHT4XzY0o -y#{cgsxȟR@厕`㬵URJpڨ%yF25\gq{RإzaFbW׀}ϠጓD5V#leW/Bۡ"_2x njk BZ&\i$< + `n:Siwί<`OO=`Wμ~`Ļ8d菞I-TӻvVKQ"jBa|½\I=7& W6,R݂͒[eSQMݠ<ɜv80,:љ`~R4Dr1Eas-Hfio*Kpzj`TT1om]yJ!.τę#<%8&zl'e+P|ԋV9p%3x9mXؾf:5'ĩN̖r*p-;v^Ł/ub-a~_wˋƌ F殁WŜ aȌ0GTNf>ae+~Kw9?r^ԫ}<^6nJ &JDɧte{8kG]tHQWqrl[F۽lNZ>0Xf}Zm?8ǐ9H7g R|hMlKHls_N }rώI߮[]3y6&ǞPYBU"/Q%y;nbdӋw喻\A|?R)( Zy 3<ku{1PeC2Zo59yklͪSkrHMVi=BV|o?F_/#$>Xl稑 FzPUoBMHBOB@Rz5TT[-EįȞf1}mmxqd,SSxQwA.W鱅Z/~>("]&q J)K ẘM+K,Ӏd"B(EWezs3&WO2Xl&WHDM֊ r"CGdqY{Ja슁z +H] pK8Zqۍ27̍uS޲zƭ*di*e#T@aNU1J?2UnF+Kf쇞Q339[DIvaciGfbx-ܾQnδFʇH,"m"ie_IE2(Qp|pQgZm*f_B{E֘6Q6dOfM>]hK~MS 0Of]nH۞H4"u+"]}+T5Q"6o9+zo,=w$EӇ T>pyHD {>~ߚ5_ڔZFT#ڤ{kraW&Ɍz4],g=>w39EsSNc(\H}|u*&o˨OҴT5A JS2*:Szn>: +:z/s#O%vRV 4MkK V!?hW]DN@n_`,"h-5X͔jj,$SbJǘ[틔#ڸVn*dє¼Y4 wO Z0V{z?m5鬎-;o(޴b #9.z֥G2}Rl4l}?cNYsFbFsMURKx謰NRd +:ּ2;kODpGp#=9@A F}=) м^hde"f P9K4w~s8hj鶾k+0?n/Qx?P;@D}KlX|;GX}=l.U&. YaK(_ ֯FXTupAIѝ{M0|gWl +@T< oRo"V[s7u6X"7Zw謹(oVӗaQ3 oݖf5FEWo~ GXB !M|(L> >Em y4 `iQ/A8@Jʩn:['OA/0-$֗,]!jQQZ\.BO ++}vv@{6vk>Qna87 _5/dHy랝ܞT~} X+3w sR~ ߖO,Dt!tB +if Y7/|ګ&ȠYy,z:Zyr2?~^w qs,ߺ-dz4>aG / S?! +t5' (4Ytpϼ_~޶tD;}mnZ#\_>ǶTU怼OY!a_ނ,Q#؀OAzpµ8kv |>U%2vۦT#PV+RzumpIW3s`qzm[3iClxVxF!;H8rcx[7>u]7~IiԢ1ڨDl u|| -Лn9a;R<^5`ƑJM86J?3Sq0e5%gSOK\1}>LȜ- 9J mC>,'[nQGk)nNBf(G9,50ak O(+F|ZNEbB;OlE=^tIM1O&nz%䭒ާOtk(z']ŚkW[ W%KQK0! y|Ӆ;3 p?>9˱J +ŮO7N#dSWS8zϣ;fZncOn+]{ؾzejm58\|C&E/\h M^@.@)"͠A&^n)vo9ySӋ2^/Kv k?;VʸZo,t*þ; ܔUjjW*`` +Q9dJF s+ +w;+!-E]7WO[VrǤG_|}ZƚG̞4={Ij65άH t/}TlAݲ6vSFeJ..Xe9ayQ G^y5齷xϞgHITq)Z+ڹHe 6P#PWǫdA~+[4p 'Y"l^^CPxg+ֻлc_=L M ï +ڱWjnwooGbr *|0sTrnӡ5Jn1sh>m+ר|6ӧSHl3l@<?|ޠ8j\[XPTLяC0nA{9 ؙ"o@t\J B3b++t􈸝Rf\6իV7LzO^^Ay`$@iDsr˹8n(,_q R;C=bG5,kyXPGfgfOU>?Oc3*$6z0 +k<3.3^ "h!޳DhԻM2Mnw6^fη<~8?Q2UI^VrҾmufm\JskћۍAALFyCQ g*!l=zr |csľmB2qyo+꫋F%V_P\%=W#wZRDly_LjwՈޚ|6}OԵtb>ΰz ;*/e+0?n~%W&Lʖ?ڼޡ )ܫ65sEKl2hKzOFx^ڟs"BgHo>#vAv-4L$ǭlIJ952ӏ刉JHH 6aҬR.MΩdͯΰ$ 틴ڸXK}*Ѵ6YD>̦OcH=8 K5\<:!W7יe*v-J s_oB~BC3,JPgZbs5npwjj5kE;9_SyfX#iu?Y.t鸫,ϨJC!?!հ\[\euF +~]hkN{m !]nA%6} +z=Вp#z5u5tu/q%6U UDo k7>~"/QT:A;CTshTQ8>1=<@N i +a- +Ȅ[@X{b.:7ANp C'Faցu\lTvRANov tݤz~k{1Vl1:eX ~Ʀ  +@jr&*FC# $Uf:8O}p |({KCD.[ǹ1 `l ]Ը,!h@^6yeȫw o4HF<)Oe`7q<}pIrzpRa]Kr+% l Kլa)c#`T`` Pt((Z1AX>~IcǺ؋on=H)G["S]:|kg/ sb8,sV(~-<)@^ oJ / OE-ʍgt^Ja (&G!7K3!ŘvnSb yF."p-?zNr~׵Y琊NK9}u;rb:sQ'= :.7y[|Lɽbl׀§NzT1T~Vz}Nƕ/2z苎hm:R2C ol2TlJTV"]76rug +ۯ[z/_r>f[ΙhrO[n$Yrm-mwwM뀎߇uk3Ħb:EiǬ5\FUgI7oH^YZzBu(V@aDqwͪl΍U]j&8/9)"U:buuu\+s7J)r5O}Wmc%ir iw^K&TuKIZ>P6671EK4@>,ҀEYA!iAFuz)O؏־ԧEi?Ds" +z;[49ϧOHtXOϦ[3ͩ7.}%W*a>O-J!Pݻkv2okΉm MS.c2 lt@C- חIuZ6t.qʼFF_3G긼##ԩGܛ)3!0!pxl(1\ѭұ'.UTεN:+jZ$Ԉ5"i4Z ,8I_X_lq55u1,P2{8<?6(] (Nofv9߇Xp {|AxuMn^Ű%I6[&'=m"rX'|*"~ +~sЪ,@$U~ƧfAi^{B:/o+#~bbW#YV1];zkB^_ڞY!yf1ڣqe `̳Շm_fd8B5Y L%yu LIKK0 84_/Z@!}RJJWU3QϞ"Jiޓv)o_[ڒi|`0Nk0}m0X>٣ٍ +ڌlVn[b\|8̃!V'K6˿Js +ȟrgPG{Wݘf_Nݠְ|ݺOn|v)̓ OQO}%|Ke;uOr Pգ9O}CBg7M{ݤvw{!Rȍ?^Yru?x(iɶ&w/-KJ魊£.s jaY0LP˥Iզ{{ Mkߥo{7;ۮ;r҇sg2EE =Y*ZaEv? +ԸM'nz4ͥgl )Jn-_e0ҘsmpG^ޱWFn,T/Su}1RĄEϊ̔J ԊEFA{vu]fngX y7m Pmݕ%vV3h@,g9pځ\j(EHId !yTʌX:5Ee1;"R>JgXjziWTno,dF3?Qԗkkȳԫ3DHsQ?γBU { -Wą>_6>Iݦ5acAi=8WkљH\p]݋R+*Zo%ucU+)XˠWuԯŜulrE[3j[w-Ag1.ڸc_lۥ[Ɏ?5u8JU?( +qVM+w.PT?yx}\2Em!FΦBrnfǯhI{Ƥ;BߺIYNMk*GU.+l9R<ڕQJB:R,'ܝB-EbHMf9) +i? *dO#ȍw64@:@|H:ܱ r\j1*A_@ P<Ȯ=T ۧ "V^W Og/Նo6k K';HId;72 lib.Ƚ=@nr䈵a7ՖZ=J[_,VVy(;Vx; ]/p|i@-qСNPz= W[Ls*;RG؛smbHc Jt_U]Sǚ9k"d}SJ|tFs붱{N(H}U&*?*-7&:5n}ôpΥ9 =E_2Gq|^=jԤ=2loyi\9gBa^q"3L|v?PwLo$mNJf)92p|"~-AG1׊올v=5N%NnE`gTʝ~ H;g8uG-mYŭaX R QI$ͭ>Z'4Hݴ2ir'kaIVG"X$`tȜ~g4n+V5<ww_mљ.cnizF% t{Is>Rzmմ{3T{NRb0a{rNi5!)_$S-8HJnv4IJQhHRϤN4|D@ݾЦ핲}iܒr䍼fky¬ٜ}\sdo/hi +ӟ٨bN}7ƻ7?/9⸸Vͽkv)q6c3k^- +'0yo=AHg +VY}ܨǠRl޹I7[j|gn՛j Z^;r9O{N1o\TfEs@kz3l¨s+fu"_7IqڹcBR?'@wfxxMDWSUw􈺗i|=:ؗ=K-ZDLV&ִ6.5?s/%gUR8(JEQZxDB +endstream endobj 5 0 obj <> endobj 6 0 obj <> endobj 18 0 obj [/View/Design] endobj 19 0 obj <>>> endobj 16 0 obj [/View/Design] endobj 17 0 obj <>>> endobj 38 0 obj [37 0 R 36 0 R 35 0 R] endobj 66 0 obj <> endobj xref +0 67 +0000000004 65535 f +0000000016 00000 n +0000000204 00000 n +0000053135 00000 n +0000000000 00000 f +0001104142 00000 n +0001104224 00000 n +0000000000 00000 f +0000053186 00000 n +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0001104407 00000 n +0001104438 00000 n +0001104291 00000 n +0001104322 00000 n +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000055025 00000 n +0000055108 00000 n +0000055187 00000 n +0001104523 00000 n +0000053559 00000 n +0000445594 00000 n +0000055725 00000 n +0000055612 00000 n +0000054133 00000 n +0000054463 00000 n +0000054511 00000 n +0000055496 00000 n +0000055527 00000 n +0000055380 00000 n +0000055411 00000 n +0000055264 00000 n +0000055295 00000 n +0000055760 00000 n +0000445668 00000 n +0000446043 00000 n +0000447078 00000 n +0000455964 00000 n +0000521553 00000 n +0000579430 00000 n +0000645019 00000 n +0000710608 00000 n +0000776197 00000 n +0000841786 00000 n +0000907375 00000 n +0000972964 00000 n +0001038553 00000 n +0001104562 00000 n +trailer +<<4B297135216C1A449403E0267726693A>]>> +startxref +1104744 +%%EOF diff --git a/Windows/Resources/MainIcon.ico b/Windows/Resources/MainIcon.ico new file mode 100644 index 0000000000000000000000000000000000000000..b4abcb46d7a07f7ae68e4a0a5ac37a491e8d712c GIT binary patch literal 173247 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�Q#-1xVGck7JW$F_b${MaOC(sxK3dn@+Wmv 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 literal 0 HcmV?d00001 diff --git a/Windows/Resources/NotifyIcon.ico b/Windows/Resources/NotifyIcon.ico new file mode 100644 index 0000000000000000000000000000000000000000..fdc8219472f61730bd7a79fd97312bc860ad7576 GIT binary patch literal 168870 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

    Ho&2Q^=hL2esm6-WX# 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 Xv_H_w6NGx4ouV;=8X%JZS=RkO110tt literal 0 HcmV?d00001 diff --git a/Windows/Settings/Settings.cs b/Windows/Settings/Settings.cs new file mode 100644 index 0000000..ddfc593 --- /dev/null +++ b/Windows/Settings/Settings.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; + +namespace MassiveKnob.Settings +{ + public class Settings + { + public string SerialPort { get; set; } + public List Knobs { get; set; } + + + public static Settings Default() + { + return new Settings + { + Knobs = new List() + }; + } + + + public class KnobSettings + { + public Guid? DeviceId { get; set; } + } + } +} diff --git a/Windows/Settings/SettingsJsonSerializer.cs b/Windows/Settings/SettingsJsonSerializer.cs new file mode 100644 index 0000000..d696165 --- /dev/null +++ b/Windows/Settings/SettingsJsonSerializer.cs @@ -0,0 +1,106 @@ +using System; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Newtonsoft.Json; + +namespace MassiveKnob.Settings +{ + public static class SettingsJsonSerializer + { + public static string GetDefaultFilename() + { + var path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), @"MassiveKnob"); + Directory.CreateDirectory(path); + + return Path.Combine(path, "Settings.json"); + } + + + public static Task Serialize(Settings settings) + { + return Serialize(settings, GetDefaultFilename()); + } + + public static async Task Serialize(Settings settings, string filename) + { + var serializedSettings = SerializedSettings.FromSettings(settings); + var json = JsonConvert.SerializeObject(serializedSettings); + + using (var stream = new FileStream(filename, FileMode.Create, FileAccess.Write, FileShare.Read, 4096, true)) + using (var streamWriter = new StreamWriter(stream, Encoding.UTF8)) + { + await streamWriter.WriteAsync(json); + await streamWriter.FlushAsync(); + } + } + + + public static Task Deserialize() + { + return Deserialize(GetDefaultFilename()); + } + + public static async Task Deserialize(string filename) + { + if (!File.Exists(filename)) + return Settings.Default(); + + string json; + + using (var stream = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite, 4096, true)) + using (var streamReader = new StreamReader(stream, Encoding.UTF8)) + { + json = await streamReader.ReadToEndAsync(); + } + + if (string.IsNullOrEmpty(json)) + return Settings.Default(); + + var serializedSettings = JsonConvert.DeserializeObject(json); + return serializedSettings.ToSettings(); + } + + + private class SerializedSettings + { + // ReSharper disable MemberCanBePrivate.Local - used for JSON serialization + public string SerialPort; + public SerializedKnobSettings[] Knobs; + // ReSharper restore MemberCanBePrivate.Local + + + public static SerializedSettings FromSettings(Settings settings) + { + return new SerializedSettings + { + SerialPort = settings.SerialPort, + Knobs = settings.Knobs.Select(knob => new SerializedKnobSettings + { + DeviceId = knob.DeviceId + }).ToArray() + }; + } + + + public Settings ToSettings() + { + return new Settings + { + SerialPort = SerialPort, + Knobs = Knobs.Select(knob => new Settings.KnobSettings + { + DeviceId = knob.DeviceId + }).ToList() + }; + } + + + public class SerializedKnobSettings + { + public Guid? DeviceId; + } + } + } +} diff --git a/Windows/Strings.Designer.cs b/Windows/Strings.Designer.cs new file mode 100644 index 0000000..c5bf674 --- /dev/null +++ b/Windows/Strings.Designer.cs @@ -0,0 +1,144 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace MassiveKnob { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Strings { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Strings() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("MassiveKnob.Strings", typeof(Strings).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to {0}. + /// + internal static string DeviceDisplayNameActive { + get { + return ResourceManager.GetString("DeviceDisplayNameActive", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} (Disabled). + /// + internal static string DeviceDisplayNameDisabled { + get { + return ResourceManager.GetString("DeviceDisplayNameDisabled", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} (Inactive). + /// + internal static string DeviceDisplayNameInactive { + get { + return ResourceManager.GetString("DeviceDisplayNameInactive", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} (Not present). + /// + internal static string DeviceDisplayNameNotPresent { + get { + return ResourceManager.GetString("DeviceDisplayNameNotPresent", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} (Unplugged). + /// + internal static string DeviceDisplayNameUnplugged { + get { + return ResourceManager.GetString("DeviceDisplayNameUnplugged", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Knob {0}. + /// + internal static string KnobIndex { + get { + return ResourceManager.GetString("KnobIndex", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Connected. + /// + internal static string StatusConnected { + get { + return ResourceManager.GetString("StatusConnected", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Connecting.... + /// + internal static string StatusConnecting { + get { + return ResourceManager.GetString("StatusConnecting", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Not connected. + /// + internal static string StatusNotConnected { + get { + return ResourceManager.GetString("StatusNotConnected", resourceCulture); + } + } + } +} diff --git a/Windows/Strings.resx b/Windows/Strings.resx new file mode 100644 index 0000000..0576451 --- /dev/null +++ b/Windows/Strings.resx @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Connected + + + Connecting... + + + Not connected + + + Knob {0} + + + {0} + + + {0} (Disabled) + + + {0} (Inactive) + + + {0} (Not present) + + + {0} (Unplugged) + + \ No newline at end of file diff --git a/Windows/UserControls/KnobDeviceControl.Designer.cs b/Windows/UserControls/KnobDeviceControl.Designer.cs new file mode 100644 index 0000000..f04ed05 --- /dev/null +++ b/Windows/UserControls/KnobDeviceControl.Designer.cs @@ -0,0 +1,90 @@ + +namespace MassiveKnob.UserControls +{ + partial class KnobDeviceControl + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.DeviceCombobox = new System.Windows.Forms.ComboBox(); + this.KnobIndexLabel = new System.Windows.Forms.Label(); + this.DeviceLabel = new System.Windows.Forms.Label(); + this.SuspendLayout(); + // + // DeviceCombobox + // + this.DeviceCombobox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.DeviceCombobox.DropDownHeight = 300; + this.DeviceCombobox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.DeviceCombobox.FormattingEnabled = true; + this.DeviceCombobox.IntegralHeight = false; + this.DeviceCombobox.ItemHeight = 13; + this.DeviceCombobox.Location = new System.Drawing.Point(59, 24); + this.DeviceCombobox.Name = "DeviceCombobox"; + this.DeviceCombobox.Size = new System.Drawing.Size(286, 21); + this.DeviceCombobox.TabIndex = 0; + this.DeviceCombobox.SelectedIndexChanged += new System.EventHandler(this.DeviceCombobox_SelectedIndexChanged); + // + // KnobIndexLabel + // + this.KnobIndexLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.KnobIndexLabel.Location = new System.Drawing.Point(3, 8); + this.KnobIndexLabel.Name = "KnobIndexLabel"; + this.KnobIndexLabel.Size = new System.Drawing.Size(342, 13); + this.KnobIndexLabel.TabIndex = 1; + this.KnobIndexLabel.Text = "Knob X"; + // + // DeviceLabel + // + this.DeviceLabel.AutoSize = true; + this.DeviceLabel.Location = new System.Drawing.Point(3, 27); + this.DeviceLabel.Name = "DeviceLabel"; + this.DeviceLabel.Size = new System.Drawing.Size(41, 13); + this.DeviceLabel.TabIndex = 2; + this.DeviceLabel.Text = "Device"; + // + // KnobDeviceControl + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.Controls.Add(this.DeviceLabel); + this.Controls.Add(this.KnobIndexLabel); + this.Controls.Add(this.DeviceCombobox); + this.Name = "KnobDeviceControl"; + this.Size = new System.Drawing.Size(351, 56); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.ComboBox DeviceCombobox; + private System.Windows.Forms.Label KnobIndexLabel; + private System.Windows.Forms.Label DeviceLabel; + } +} diff --git a/Windows/UserControls/KnobDeviceControl.cs b/Windows/UserControls/KnobDeviceControl.cs new file mode 100644 index 0000000..569b714 --- /dev/null +++ b/Windows/UserControls/KnobDeviceControl.cs @@ -0,0 +1,128 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows.Forms; +using MassiveKnob.Hardware; + +namespace MassiveKnob.UserControls +{ + public partial class KnobDeviceControl : UserControl + { + private int knobIndex; + private Guid? deviceId; + + public event KnobDeviceChangedEventHandler OnDeviceChanged; + + + public KnobDeviceControl() + { + InitializeComponent(); + + DeviceCombobox.DisplayMember = @"DisplayName"; + } + + + public void SetKnobIndex(int index) + { + knobIndex = index; + KnobIndexLabel.Text = string.Format(Strings.KnobIndex, index + 1); + } + + + public void SetDeviceId(Guid? value) + { + deviceId = value; + + if (DeviceCombobox.Items.Count > 0) + DeviceCombobox.SelectedItem = value.HasValue ? new DeviceItem(value.Value) : null; + } + + + public void SetDevices(IEnumerable devices) + { + DeviceCombobox.BeginUpdate(); + try + { + DeviceCombobox.Items.Clear(); + + if (devices == null) + return; + + var sortedDevices = devices.OrderBy(d => d.DisplayName); + + foreach (var device in sortedDevices) + { + var itemIndex = DeviceCombobox.Items.Add( + new DeviceItem(device.Id) + { + DisplayName = device.DisplayName + }); + + if (deviceId.HasValue && deviceId.Value == device.Id) + DeviceCombobox.SelectedIndex = itemIndex; + } + } + finally + { + DeviceCombobox.EndUpdate(); + } + } + + + private void DeviceCombobox_SelectedIndexChanged(object sender, EventArgs e) + { + OnDeviceChanged?.Invoke(this, new KnobDeviceChangedEventArgs + { + KnobIndex = knobIndex, + DeviceId = ((DeviceItem)DeviceCombobox.SelectedItem)?.DeviceId + }); + } + + + private class DeviceItem : IEquatable + { + // ReSharper disable UnusedAutoPropertyAccessor.Local - used by ComboBox + public Guid DeviceId { get; } + public string DisplayName { get; set; } + // ReSharper restore UnusedAutoPropertyAccessor.Local + + + public DeviceItem(Guid deviceId) + { + DeviceId = deviceId; + } + + + public bool Equals(DeviceItem other) + { + if (other == null) return false; + + return ReferenceEquals(this, other) || DeviceId.Equals(other.DeviceId); + } + + + public override bool Equals(object obj) + { + if (obj == null) return false; + if (ReferenceEquals(this, obj)) return true; + + return obj is DeviceItem deviceItem && Equals(deviceItem); + } + + + public override int GetHashCode() + { + return DeviceId.GetHashCode(); + } + } + } + + + public class KnobDeviceChangedEventArgs : EventArgs + { + public int KnobIndex { get; set; } + public Guid? DeviceId { get; set; } + } + + public delegate void KnobDeviceChangedEventHandler(object sender, KnobDeviceChangedEventArgs e); +} From f15491c541002fc96a05db0fa959206111ed0346 Mon Sep 17 00:00:00 2001 From: Mark van Renswoude Date: Sat, 20 Feb 2021 12:16:18 +0100 Subject: [PATCH 02/19] Implemented Arduino firmware Implemented serial connection in Windows application --- Arduino/MassiveKnob/MassiveKnob.ino | 230 ++++++++++++++++++ README.md | 6 +- Windows/Forms/SettingsForm.Designer.cs | 1 - Windows/Forms/SettingsForm.cs | 188 ++++++++------ .../Hardware/AbstractMassiveKnobHardware.cs | 9 +- Windows/Hardware/IMassiveKnobHardware.cs | 3 +- Windows/Hardware/MockMassiveKnobHardware.cs | 3 +- Windows/Hardware/SerialMassiveKnobHardware.cs | 180 ++++++++++++++ Windows/MassiveKnob.csproj | 7 + Windows/MassiveKnob.sln.DotSettings | 2 + Windows/Program.cs | 3 +- 11 files changed, 553 insertions(+), 79 deletions(-) create mode 100644 Arduino/MassiveKnob/MassiveKnob.ino create mode 100644 Windows/Hardware/SerialMassiveKnobHardware.cs create mode 100644 Windows/MassiveKnob.sln.DotSettings diff --git a/Arduino/MassiveKnob/MassiveKnob.ino b/Arduino/MassiveKnob/MassiveKnob.ino new file mode 100644 index 0000000..5169183 --- /dev/null +++ b/Arduino/MassiveKnob/MassiveKnob.ino @@ -0,0 +1,230 @@ +/* + * + * Configuration + * Modify these settings according to your hardware design + * + */ +// Set this to the number of potentiometers you have connected +const byte KnobCount = 1; + +// For each potentiometer, specify the port +const byte KnobPin[KnobCount] = { +// A0, + A1 +}; + +// Minimum time between reporting changing values, reduces serial traffic +const unsigned long MinimumInterval = 50; + +// Alpha value of the Exponential Moving Average (EMA) to reduce noise +const float EMAAlpha = 0.6; + +// How many measurements to take at boot time to seed the EMA +const byte EMASeedCount = 5; + + + + +/* + * + * Le code + * Here be dragons. + * + */ +bool active = false; +enum OutputMode { + Binary, // Communication with the desktop application + PlainText, // Plain text, useful for the Arduino Serial Monitor + Plotter // Graph values, for the Arduino Serial Plotter +}; +OutputMode outputMode = Binary; + +byte volume[KnobCount]; +unsigned long lastChange[KnobCount]; +int analogReadValue[KnobCount]; +float emaValue[KnobCount]; +unsigned long currentTime; +unsigned long lastPlot; + +void setup() +{ + Serial.begin(115200); + + // Wait for the Serial port hardware to initialise + while (!Serial) {} + + + // Seed the moving average + for (byte knobIndex = 0; knobIndex < KnobCount; knobIndex++) + emaValue[knobIndex] = analogRead(KnobPin[knobIndex]); + + for (byte seed = 1; seed < EMASeedCount - 1; seed++) + for (byte knobIndex = 0; knobIndex < KnobCount; knobIndex++) + getVolume(knobIndex); + + + // Read the initial values + currentTime = millis(); + for (byte knobIndex = 0; knobIndex < KnobCount; knobIndex++) + { + volume[knobIndex] = getVolume(knobIndex); + lastChange[knobIndex] = currentTime; + } +} + + +void loop() +{ + if (Serial.available()) + processMessage(Serial.read()); + + // Not that due to ADC checking and Serial communication, currentTime will not be + // accurate throughout the loop. But since we don't need exact timing for the interval this + // is acceptable and saves a few calls to millis. + currentTime = millis(); + + // Check volume knobs + byte newVolume; + for (byte knobIndex = 0; knobIndex < KnobCount; knobIndex++) + { + newVolume = getVolume(knobIndex); + + if (newVolume != volume[knobIndex] && (currentTime - lastChange[knobIndex] >= MinimumInterval)) + { + if (active) + // Send out new value + outputVolume(knobIndex, newVolume); + + volume[knobIndex] = newVolume; + lastChange[knobIndex] = currentTime; + } + } + + if (outputMode == Plotter && (currentTime - lastPlot) >= 50) + { + outputPlotter(); + lastPlot = currentTime; + } +} + + +void processMessage(byte message) +{ + switch (message) + { + case 'H': // Handshake + processHandshakeMessage(); + break; + + case 'Q': // Quit + processQuitMessage(); + break; + } +} + + +void processHandshakeMessage() +{ + byte buffer[2]; + if (Serial.readBytes(buffer, 3) < 3) + return; + + if (buffer[0] != 'M' || buffer[1] != 'K') + return; + + switch (buffer[2]) + { + case 'B': + outputMode = Binary; + break; + + case 'P': + outputMode = PlainText; + break; + + case 'G': + outputMode = Plotter; + break; + + default: + return; + } + + + switch (outputMode) + { + case Binary: + Serial.write('H'); + Serial.write(KnobCount); + break; + + case PlainText: + Serial.print("Hello! I have "); + Serial.print(KnobCount); + Serial.println(" knobs."); + break; + } + + active = true; +} + + +void processQuitMessage() +{ + switch (outputMode) + { + case Binary: + case PlainText: + Serial.write('Q'); + break; + } + + active = false; +} + + +byte getVolume(byte knobIndex) +{ + analogReadValue[knobIndex] = analogRead(KnobPin[knobIndex]); + emaValue[knobIndex] = (EMAAlpha * analogReadValue[knobIndex]) + ((1 - EMAAlpha) * emaValue[knobIndex]); + + return map(emaValue[knobIndex], 0, 1023, 0, 100); +} + + +void outputVolume(byte knobIndex, byte newVolume) +{ + switch (outputMode) + { + case Binary: + Serial.write('V'); + Serial.write(knobIndex); + Serial.write(newVolume); + break; + + case PlainText: + Serial.print("Volume #"); + Serial.print(knobIndex); + Serial.print(" = "); + Serial.println(newVolume); + break; + } +} + + +void outputPlotter() +{ + for (byte i = 0; i < KnobCount; i++) + { + if (i > 0) + Serial.print('\t'); + + Serial.print(analogReadValue[i]); + Serial.print('\t'); + Serial.print(emaValue[i]); + Serial.print('\t'); + Serial.print(volume[i]); + } + + Serial.println(); +} diff --git a/README.md b/README.md index 58f8a5b..a248105 100644 --- a/README.md +++ b/README.md @@ -6,8 +6,8 @@ Control audio devices using physical knobs. Inspired by [an article on Prusa's blog](https://blog.prusaprinters.org/3d-print-an-oversized-media-control-volume-knob-arduino-basics_30184/), this project has a slightly different set of goals: **Must have** -1. Control multiple audio devices, one set of physical controls per device -2. Volume is set to an absolute value (potentiometer instead of a rotary encoder) +1. ✔ Control multiple audio devices, one set of physical controls per device +2. ✔ Volume is set to an absolute value (potentiometer instead of a rotary encoder) Because of the second requirement, a simple media keys HID device does not suffice and extra software is required on the desktop. @@ -16,6 +16,8 @@ Because of the second requirement, a simple media keys HID device does not suffi a. by changing the Windows default output device b. by running a VoiceMeeter macro 2. Corresponding LEDs to indicate the currently active device +3. OSD +4. API / plugins to use extra knobs and buttons for other purposes ## Developing The hardware side uses an Arduino sketch to communicate the hardware state over the serial port. diff --git a/Windows/Forms/SettingsForm.Designer.cs b/Windows/Forms/SettingsForm.Designer.cs index 1f00cab..576cb78 100644 --- a/Windows/Forms/SettingsForm.Designer.cs +++ b/Windows/Forms/SettingsForm.Designer.cs @@ -185,7 +185,6 @@ namespace MassiveKnob.Forms this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.Text = "Massive Knob - Settings"; this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.SettingsForm_FormClosing); - this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.SettingsForm_FormClosed); this.NotifyIconMenu.ResumeLayout(false); this.CommunicationGroupbox.ResumeLayout(false); this.CommunicationGroupbox.PerformLayout(); diff --git a/Windows/Forms/SettingsForm.cs b/Windows/Forms/SettingsForm.cs index bdc17f1..95dbe9f 100644 --- a/Windows/Forms/SettingsForm.cs +++ b/Windows/Forms/SettingsForm.cs @@ -4,6 +4,8 @@ using System.IO.Ports; using System.Linq; using System.Threading.Tasks; using System.Windows.Forms; +using Dapplo.Windows.Devices; +using Dapplo.Windows.Devices.Enums; using MassiveKnob.Hardware; using MassiveKnob.Settings; using MassiveKnob.UserControls; @@ -11,13 +13,15 @@ using Nito.AsyncEx; namespace MassiveKnob.Forms { - public partial class SettingsForm : Form, IMassiveKnobHardwareObserver + public partial class SettingsForm : Form, IMassiveKnobHardwareObserver, IObserver { private readonly IAudioDeviceManager audioDeviceManager; private readonly IMassiveKnobHardwareFactory massiveKnobHardwareFactory; private readonly List knobDeviceControls = new List(); private bool loading = true; + private string lastConnectedPort = null; + private IDisposable deviceSubscription; private IMassiveKnobHardware hardware; private IAudioDevice[] devices; private Settings.Settings settings; @@ -35,42 +39,43 @@ namespace MassiveKnob.Forms this.massiveKnobHardwareFactory = massiveKnobHardwareFactory; InitializeComponent(); - SerialPortStatusLabel.Text = Strings.StatusNotConnected; - Task.Run(async () => - { - await LoadSettings(); - - await Task.WhenAll( - LoadSerialPorts(), - LoadAudioDevices() - ); - - loading = false; - await Connect(); - }).ContinueWith(t => - { - if (t.IsFaulted && t.Exception != null) - SafeCall(() => throw t.Exception); - }); + // Due to the form not being visible initially (see SetVisibleCore), we can't use the Load event + AsyncLoad(); } - - private void SafeCall(Action action) + + private async void AsyncLoad() + { + await LoadSettings(); + + await Task.WhenAll( + LoadSerialPorts(), + LoadAudioDevices() + ); + + deviceSubscription = DeviceNotification.OnNotification.Subscribe(this); + + loading = false; + await Connect(); + } + + + private void RunInUIContext(Action action) { if (InvokeRequired) Invoke(action); else action(); } - - + + private Task LoadSerialPorts() { var portNames = SerialPort.GetPortNames(); - SafeCall(() => + RunInUIContext(() => { SerialPortCombobox.BeginUpdate(); try @@ -97,22 +102,19 @@ namespace MassiveKnob.Forms private async Task LoadSettings() { var newSettings = await SettingsJsonSerializer.Deserialize(); - SafeCall(() => SetSettings(newSettings)); + RunInUIContext(() => SetSettings(newSettings)); } - private void SaveSettings() + private async Task SaveSettings() { if (settings == null) return; - - Task.Run(async () => - { - using (await saveSettingsLock.LockAsync()) - { - await SettingsJsonSerializer.Serialize(settings); - } - }); + + using (await saveSettingsLock.LockAsync()) + { + await SettingsJsonSerializer.Serialize(settings); + } } @@ -120,9 +122,8 @@ namespace MassiveKnob.Forms { string serialPort = null; - SafeCall(() => + RunInUIContext(() => { - SerialPortStatusLabel.Text = Strings.StatusConnecting; serialPort = (string)SerialPortCombobox.SelectedItem; }); @@ -145,7 +146,7 @@ namespace MassiveKnob.Forms private async Task LoadAudioDevices() { var newDevices = await audioDeviceManager.GetDevices(); - SafeCall(() => SetDevices(newDevices)); + RunInUIContext(() => SetDevices(newDevices)); } @@ -158,10 +159,12 @@ namespace MassiveKnob.Forms SerialPortCombobox.SelectedItem = value.SerialPort; // No need to update the knob device user controls, as they are not loaded yet + // (guaranteed by the order in AsyncLoad) settings = value; } + private void SetDevices(IEnumerable value) { devices = value.ToArray(); @@ -206,13 +209,13 @@ namespace MassiveKnob.Forms if (i < settings.Knobs.Count) knobDeviceControl.SetDeviceId(settings.Knobs[i].DeviceId); - knobDeviceControl.OnDeviceChanged += (sender, args) => + knobDeviceControl.OnDeviceChanged += async (sender, args) => { while (settings.Knobs.Count - 1 < args.KnobIndex) settings.Knobs.Add(new Settings.Settings.KnobSettings()); settings.Knobs[args.KnobIndex].DeviceId = args.DeviceId; - SaveSettings(); + await SaveSettings(); }; knobDeviceControls.Add(knobDeviceControl); @@ -241,7 +244,13 @@ namespace MassiveKnob.Forms { // Prevent the form from showing at startup if (!startupVisibleCalled) + { startupVisibleCalled = true; + + // Make sure the underlying window is still created, otherwise Close won't work + if (!IsHandleCreated) + CreateHandle(); + } else base.SetVisibleCore(value); } @@ -253,16 +262,43 @@ namespace MassiveKnob.Forms } - private void Quit() + private async Task Quit() { + Hide(); + + deviceSubscription?.Dispose(); + + foreach (var knobDeviceControl in knobDeviceControls) + knobDeviceControl.Dispose(); + + knobDeviceControls.Clear(); + + + if (hardware != null) + { + hardware.DetachObserver(this); + await hardware.Disconnect(); + } + + audioDeviceManager?.Dispose(); + closing = true; Close(); } + public void Connecting() + { + RunInUIContext(() => + { + SerialPortStatusLabel.Text = Strings.StatusConnecting; + }); + } + + public void Connected(int knobCount) { - SafeCall(() => + RunInUIContext(() => { SerialPortStatusLabel.Text = Strings.StatusConnected; SetKnobCount(knobCount); @@ -272,14 +308,15 @@ namespace MassiveKnob.Forms public void Disconnected() { - SafeCall(() => + RunInUIContext(() => { SerialPortStatusLabel.Text = Strings.StatusNotConnected; + lastConnectedPort = null; }); } - public void VolumeChanged(int knob, int volume) + public async void VolumeChanged(int knob, int volume) { if (knob >= settings.Knobs.Count) return; @@ -289,15 +326,12 @@ namespace MassiveKnob.Forms var deviceId = settings.Knobs[knob].DeviceId.Value; - Task.Run(async () => + using (await setVolumeLock.LockAsync()) { - using (await setVolumeLock.LockAsync()) - { - var device = await audioDeviceManager.GetDeviceById(deviceId); - if (device != null) - await device.SetVolume(volume); - } - }); + var device = await audioDeviceManager.GetDeviceById(deviceId); + if (device != null) + await device.SetVolume(volume); + } } @@ -310,20 +344,6 @@ namespace MassiveKnob.Forms e.Cancel = true; } - - private void SettingsForm_FormClosed(object sender, FormClosedEventArgs e) - { - foreach (var knobDeviceControl in knobDeviceControls) - knobDeviceControl.Dispose(); - - knobDeviceControls.Clear(); - - - hardware?.DetachObserver(this); - hardware?.Disconnect().GetAwaiter().GetResult(); - audioDeviceManager?.Dispose(); - } - private void NotifyIcon_DoubleClick(object sender, EventArgs e) { @@ -331,9 +351,9 @@ namespace MassiveKnob.Forms } - private void QuitToolStripMenuItem_Click(object sender, EventArgs e) + private async void QuitToolStripMenuItem_Click(object sender, EventArgs e) { - Quit(); + await Quit(); } @@ -349,15 +369,39 @@ namespace MassiveKnob.Forms } - private void SerialPortCombobox_SelectedIndexChanged(object sender, EventArgs e) + private async void SerialPortCombobox_SelectedIndexChanged(object sender, EventArgs e) { - if (loading || (string)SerialPortCombobox.SelectedItem == settings.SerialPort) + var newPort = (string) SerialPortCombobox.SelectedItem; + if (loading || newPort == lastConnectedPort) return; - - settings.SerialPort = (string) SerialPortCombobox.SelectedItem; - SaveSettings(); - Task.Run(Connect); + lastConnectedPort = newPort; + if (settings.SerialPort != newPort) + { + settings.SerialPort = (string) SerialPortCombobox.SelectedItem; + await SaveSettings(); + } + + await Connect(); + } + + + public async void OnNext(DeviceNotificationEvent value) + { + if ((value.EventType == DeviceChangeEvent.DeviceArrival || + value.EventType == DeviceChangeEvent.DeviceRemoveComplete) && + value.Is(DeviceBroadcastDeviceType.DeviceInterface)) + { + await LoadSerialPorts(); + } + } + + public void OnError(Exception error) + { + } + + public void OnCompleted() + { } } } diff --git a/Windows/Hardware/AbstractMassiveKnobHardware.cs b/Windows/Hardware/AbstractMassiveKnobHardware.cs index f576c74..275bf14 100644 --- a/Windows/Hardware/AbstractMassiveKnobHardware.cs +++ b/Windows/Hardware/AbstractMassiveKnobHardware.cs @@ -36,8 +36,15 @@ namespace MassiveKnob.Hardware { observers.Remove(observer); } - + + public void Connecting() + { + foreach (var observer in observers) + observer.Connecting(); + } + + public void Connected(int knobCount) { foreach (var observer in observers) diff --git a/Windows/Hardware/IMassiveKnobHardware.cs b/Windows/Hardware/IMassiveKnobHardware.cs index 03634cb..5421915 100644 --- a/Windows/Hardware/IMassiveKnobHardware.cs +++ b/Windows/Hardware/IMassiveKnobHardware.cs @@ -4,6 +4,7 @@ namespace MassiveKnob.Hardware { public interface IMassiveKnobHardwareObserver { + void Connecting(); void Connected(int knobCount); void Disconnected(); @@ -25,6 +26,6 @@ namespace MassiveKnob.Hardware public interface IMassiveKnobHardwareFactory { - IMassiveKnobHardware Create(string serialPort); + IMassiveKnobHardware Create(string portName); } } diff --git a/Windows/Hardware/MockMassiveKnobHardware.cs b/Windows/Hardware/MockMassiveKnobHardware.cs index 99d8bf0..798bec3 100644 --- a/Windows/Hardware/MockMassiveKnobHardware.cs +++ b/Windows/Hardware/MockMassiveKnobHardware.cs @@ -48,6 +48,7 @@ namespace MassiveKnob.Hardware } + // ReSharper disable once UnusedMember.Global - for testing purposes only public class MockMassiveKnobHardwareFactory : IMassiveKnobHardwareFactory { private readonly int knobCount; @@ -62,7 +63,7 @@ namespace MassiveKnob.Hardware } - public IMassiveKnobHardware Create(string serialPort) + public IMassiveKnobHardware Create(string portName) { return new MockMassiveKnobHardware(knobCount, volumeChangeInterval, maxVolume); } diff --git a/Windows/Hardware/SerialMassiveKnobHardware.cs b/Windows/Hardware/SerialMassiveKnobHardware.cs new file mode 100644 index 0000000..ebd6a41 --- /dev/null +++ b/Windows/Hardware/SerialMassiveKnobHardware.cs @@ -0,0 +1,180 @@ +using System.Diagnostics; +using System.IO.Ports; +using System.Threading; +using System.Threading.Tasks; + +namespace MassiveKnob.Hardware +{ + public class SerialMassiveKnobHardware : AbstractMassiveKnobHardware + { + private readonly string portName; + private Thread workerThread; + + private readonly CancellationTokenSource workerThreadCancellation = new CancellationTokenSource(); + private readonly TaskCompletionSource workerThreadCompleted = new TaskCompletionSource(); + + + public SerialMassiveKnobHardware(string portName) + { + this.portName = portName; + } + + + public override async Task TryConnect() + { + if (workerThread != null) + await Disconnect(); + + workerThread = new Thread(RunWorker) + { + Name = "SerialMassiveKnobHardware Worker" + }; + workerThread.Start(); + } + + + public override async Task Disconnect() + { + workerThreadCancellation.Cancel(); + await workerThreadCompleted.Task; + + workerThread = null; + } + + + private void RunWorker() + { + Observers.Connecting(); + + while (!workerThreadCancellation.IsCancellationRequested) + { + SerialPort serialPort = null; + + void SafeCloseSerialPort() + { + try + { + serialPort?.Dispose(); + } + catch + { + // ignroed + } + + serialPort = null; + Observers.Disconnected(); + Observers.Connecting(); + } + + + var knobCount = 0; + + while (serialPort == null && !workerThreadCancellation.IsCancellationRequested) + { + try + { + serialPort = new SerialPort(portName, 115200); + serialPort.Open(); + + // Send handshake + serialPort.Write(new[] { 'H', 'M', 'K', 'B' }, 0, 4); + + // Wait for reply + serialPort.ReadTimeout = 1000; + var response = serialPort.ReadByte(); + + if ((char) response == 'H') + { + knobCount = serialPort.ReadByte(); + if (knobCount > -1) + break; + } + + SafeCloseSerialPort(); + Thread.Sleep(500); + } + catch + { + SafeCloseSerialPort(); + Thread.Sleep(500); + } + } + + if (workerThreadCancellation.IsCancellationRequested) + { + SafeCloseSerialPort(); + break; + } + + var processingMessage = false; + + Debug.Assert(serialPort != null, nameof(serialPort) + " != null"); + serialPort.DataReceived += (sender, args) => + { + if (args.EventType != SerialData.Chars || processingMessage) + return; + + var senderPort = (SerialPort) sender; + processingMessage = true; + try + { + var message = (char) senderPort.ReadByte(); + ProcessMessage(senderPort, message); + } + finally + { + processingMessage = false; + } + }; + + + Observers.Connected(knobCount); + try + { + // This is where sending data to the hardware would be implemented + while (serialPort.IsOpen && !workerThreadCancellation.IsCancellationRequested) + { + Thread.Sleep(10); + } + } + catch + { + // ignored + } + + Observers.Disconnected(); + SafeCloseSerialPort(); + + if (!workerThreadCancellation.IsCancellationRequested) + Thread.Sleep(500); + } + + workerThreadCompleted.TrySetResult(true); + } + + + private void ProcessMessage(SerialPort serialPort, char message) + { + switch (message) + { + case 'V': + var knobIndex = (byte)serialPort.ReadByte(); + var volume = (byte)serialPort.ReadByte(); + + if (knobIndex < 255 && volume <= 100) + Observers.VolumeChanged(knobIndex, volume); + + break; + } + } + } + + + public class SerialMassiveKnobHardwareFactory : IMassiveKnobHardwareFactory + { + public IMassiveKnobHardware Create(string portName) + { + return new SerialMassiveKnobHardware(portName); + } + } +} diff --git a/Windows/MassiveKnob.csproj b/Windows/MassiveKnob.csproj index 998b322..7655aa1 100644 --- a/Windows/MassiveKnob.csproj +++ b/Windows/MassiveKnob.csproj @@ -65,6 +65,7 @@ + @@ -116,6 +117,12 @@ 4.0.0-alpha5 + + 0.11.24 + + + 0.11.24 + 12.0.3 diff --git a/Windows/MassiveKnob.sln.DotSettings b/Windows/MassiveKnob.sln.DotSettings new file mode 100644 index 0000000..584d2d0 --- /dev/null +++ b/Windows/MassiveKnob.sln.DotSettings @@ -0,0 +1,2 @@ + + UI \ No newline at end of file diff --git a/Windows/Program.cs b/Windows/Program.cs index f5819b8..8f2f1f3 100644 --- a/Windows/Program.cs +++ b/Windows/Program.cs @@ -35,7 +35,8 @@ namespace MassiveKnob container.Register(); // For testing without the hardware: - container.Register(() => new MockMassiveKnobHardwareFactory(3, TimeSpan.FromSeconds(1), 25)); + container.Register(); + //container.Register(() => new MockMassiveKnobHardwareFactory(3, TimeSpan.FromSeconds(1), 25)); return container; } From 19484d811508efbf8c814ae8a206200f73b2a91f Mon Sep 17 00:00:00 2001 From: Mark van Renswoude Date: Sat, 20 Feb 2021 12:18:36 +0100 Subject: [PATCH 03/19] Fixed readme --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a248105..0f0d5cb 100644 --- a/README.md +++ b/README.md @@ -13,8 +13,8 @@ Because of the second requirement, a simple media keys HID device does not suffi **Nice to have** 1. Physical buttons to switch the active device -a. by changing the Windows default output device -b. by running a VoiceMeeter macro + - by changing the Windows default output device + - by running a VoiceMeeter macro 2. Corresponding LEDs to indicate the currently active device 3. OSD 4. API / plugins to use extra knobs and buttons for other purposes From dc0e761244b4be9d94a8c168ac75ef1398db567e Mon Sep 17 00:00:00 2001 From: Mark van Renswoude Date: Sun, 21 Feb 2021 14:04:24 +0100 Subject: [PATCH 04/19] Implemented basic plugin architecture Moving interface to WPF for easier integration --- .../Actions/DeviceVolumeAction.cs | 56 ++++++ .../MassiveKnob.Plugin.CoreAudio.csproj | 74 +++++++ .../MassiveKnobCoreAudioPlugin.cs | 21 ++ .../Properties/AssemblyInfo.cs | 36 ++++ .../Settings/DeviceVolumeActionSettings.xaml | 12 ++ .../DeviceVolumeActionSettings.xaml.cs | 28 +++ .../Devices/MockDevice.cs | 45 +++++ .../MassiveKnob.Plugin.MockDevice.csproj | 69 +++++++ .../MassiveKnobMockDevicePlugin.cs | 20 ++ .../Properties/AssemblyInfo.cs | 35 ++++ .../Settings/MockDeviceSettings.xaml | 24 +++ .../Settings/MockDeviceSettings.xaml.cs | 28 +++ .../MassiveKnob.Plugin/IMassiveKnobAction.cs | 59 ++++++ .../IMassiveKnobActionContext.cs | 12 ++ .../IMassiveKnobActionInstance.cs | 18 ++ .../IMassiveKnobActionPlugin.cs | 15 ++ .../IMassiveKnobAnalogAction.cs | 16 ++ .../MassiveKnob.Plugin/IMassiveKnobContext.cs | 22 +++ .../MassiveKnob.Plugin/IMassiveKnobDevice.cs | 31 +++ .../IMassiveKnobDeviceInstance.cs | 17 ++ .../IMassiveKnobDigitalAction.cs | 9 + .../IMassiveKnobHardwarePlugin.cs | 15 ++ .../MassiveKnob.Plugin/IMassiveKnobPlugin.cs | 36 ++++ .../MassiveKnob.Plugin.csproj | 68 +++++++ .../MassiveKnobPluginAttribute.cs | 17 ++ .../Properties/AssemblyInfo.cs | 36 ++++ .../ReSharper/JetBrains.Annotations.cs | 180 ++++++++++++++++++ Windows/MassiveKnob.sln | 20 +- Windows/{ => MassiveKnob}/App.config | 0 Windows/MassiveKnob/App.xaml | 26 +++ Windows/MassiveKnob/App.xaml.cs | 75 ++++++++ .../Forms/SettingsForm.Designer.cs | 0 .../{ => MassiveKnob}/Forms/SettingsForm.cs | 0 .../{ => MassiveKnob}/Forms/SettingsForm.resx | 0 .../Hardware/AbstractMassiveKnobHardware.cs | 0 .../Hardware/CoreAudioDeviceManager.cs | 0 .../Hardware/IAudioDeviceManager.cs | 0 .../Hardware/IMassiveKnobHardware.cs | 0 .../Hardware/MockMassiveKnobHardware.cs | 0 .../Hardware/SerialMassiveKnobHardware.cs | 0 .../Helpers/ComboBoxTemplateSelector.cs | 54 ++++++ .../MassiveKnob/Helpers/DelegateCommand.cs | 80 ++++++++ Windows/{ => MassiveKnob}/MainIcon.ico | Bin Windows/{ => MassiveKnob}/MassiveKnob.csproj | 79 ++++---- .../Model/IMassiveKnobOrchestrator.cs | 11 ++ Windows/MassiveKnob/Model/IPluginManager.cs | 12 ++ .../Model/MassiveKnobOrchestrator.cs | 52 +++++ Windows/MassiveKnob/Model/PluginManager.cs | 79 ++++++++ Windows/MassiveKnob/Program.cs | 46 +++++ .../Properties/AssemblyInfo.cs | 0 Windows/{ => MassiveKnob}/Resources/Icon.ai | 0 .../{ => MassiveKnob}/Resources/MainIcon.ico | Bin .../Resources/NotifyIcon.ico | Bin Windows/MassiveKnob/Settings/Settings.cs | 38 ++++ .../Settings/SettingsJsonSerializer.cs | 48 +---- Windows/{ => MassiveKnob}/Strings.Designer.cs | 0 Windows/{ => MassiveKnob}/Strings.resx | 0 Windows/MassiveKnob/Style.xaml | 22 +++ .../KnobDeviceControl.Designer.cs | 0 .../UserControls/KnobDeviceControl.cs | 0 Windows/MassiveKnob/View/SettingsWindow.xaml | 45 +++++ .../MassiveKnob/View/SettingsWindow.xaml.cs | 16 ++ .../ViewModel/SettingsViewModel.cs | 109 +++++++++++ Windows/Program.cs | 44 ----- Windows/Properties/Resources.Designer.cs | 70 ------- Windows/Properties/Resources.resx | 117 ------------ Windows/Properties/Settings.Designer.cs | 29 --- Windows/Properties/Settings.settings | 7 - Windows/Settings/Settings.cs | 26 --- 69 files changed, 1730 insertions(+), 374 deletions(-) create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/Actions/DeviceVolumeAction.cs create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/MassiveKnob.Plugin.CoreAudio.csproj create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/MassiveKnobCoreAudioPlugin.cs create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/Properties/AssemblyInfo.cs create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/Settings/DeviceVolumeActionSettings.xaml create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/Settings/DeviceVolumeActionSettings.xaml.cs create mode 100644 Windows/MassiveKnob.Plugin.MockDevice/Devices/MockDevice.cs create mode 100644 Windows/MassiveKnob.Plugin.MockDevice/MassiveKnob.Plugin.MockDevice.csproj create mode 100644 Windows/MassiveKnob.Plugin.MockDevice/MassiveKnobMockDevicePlugin.cs create mode 100644 Windows/MassiveKnob.Plugin.MockDevice/Properties/AssemblyInfo.cs create mode 100644 Windows/MassiveKnob.Plugin.MockDevice/Settings/MockDeviceSettings.xaml create mode 100644 Windows/MassiveKnob.Plugin.MockDevice/Settings/MockDeviceSettings.xaml.cs create mode 100644 Windows/MassiveKnob.Plugin/IMassiveKnobAction.cs create mode 100644 Windows/MassiveKnob.Plugin/IMassiveKnobActionContext.cs create mode 100644 Windows/MassiveKnob.Plugin/IMassiveKnobActionInstance.cs create mode 100644 Windows/MassiveKnob.Plugin/IMassiveKnobActionPlugin.cs create mode 100644 Windows/MassiveKnob.Plugin/IMassiveKnobAnalogAction.cs create mode 100644 Windows/MassiveKnob.Plugin/IMassiveKnobContext.cs create mode 100644 Windows/MassiveKnob.Plugin/IMassiveKnobDevice.cs create mode 100644 Windows/MassiveKnob.Plugin/IMassiveKnobDeviceInstance.cs create mode 100644 Windows/MassiveKnob.Plugin/IMassiveKnobDigitalAction.cs create mode 100644 Windows/MassiveKnob.Plugin/IMassiveKnobHardwarePlugin.cs create mode 100644 Windows/MassiveKnob.Plugin/IMassiveKnobPlugin.cs create mode 100644 Windows/MassiveKnob.Plugin/MassiveKnob.Plugin.csproj create mode 100644 Windows/MassiveKnob.Plugin/MassiveKnobPluginAttribute.cs create mode 100644 Windows/MassiveKnob.Plugin/Properties/AssemblyInfo.cs create mode 100644 Windows/MassiveKnob.Plugin/ReSharper/JetBrains.Annotations.cs rename Windows/{ => MassiveKnob}/App.config (100%) create mode 100644 Windows/MassiveKnob/App.xaml create mode 100644 Windows/MassiveKnob/App.xaml.cs rename Windows/{ => MassiveKnob}/Forms/SettingsForm.Designer.cs (100%) rename Windows/{ => MassiveKnob}/Forms/SettingsForm.cs (100%) rename Windows/{ => MassiveKnob}/Forms/SettingsForm.resx (100%) rename Windows/{ => MassiveKnob}/Hardware/AbstractMassiveKnobHardware.cs (100%) rename Windows/{ => MassiveKnob}/Hardware/CoreAudioDeviceManager.cs (100%) rename Windows/{ => MassiveKnob}/Hardware/IAudioDeviceManager.cs (100%) rename Windows/{ => MassiveKnob}/Hardware/IMassiveKnobHardware.cs (100%) rename Windows/{ => MassiveKnob}/Hardware/MockMassiveKnobHardware.cs (100%) rename Windows/{ => MassiveKnob}/Hardware/SerialMassiveKnobHardware.cs (100%) create mode 100644 Windows/MassiveKnob/Helpers/ComboBoxTemplateSelector.cs create mode 100644 Windows/MassiveKnob/Helpers/DelegateCommand.cs rename Windows/{ => MassiveKnob}/MainIcon.ico (100%) rename Windows/{ => MassiveKnob}/MassiveKnob.csproj (72%) create mode 100644 Windows/MassiveKnob/Model/IMassiveKnobOrchestrator.cs create mode 100644 Windows/MassiveKnob/Model/IPluginManager.cs create mode 100644 Windows/MassiveKnob/Model/MassiveKnobOrchestrator.cs create mode 100644 Windows/MassiveKnob/Model/PluginManager.cs create mode 100644 Windows/MassiveKnob/Program.cs rename Windows/{ => MassiveKnob}/Properties/AssemblyInfo.cs (100%) rename Windows/{ => MassiveKnob}/Resources/Icon.ai (100%) rename Windows/{ => MassiveKnob}/Resources/MainIcon.ico (100%) rename Windows/{ => MassiveKnob}/Resources/NotifyIcon.ico (100%) create mode 100644 Windows/MassiveKnob/Settings/Settings.cs rename Windows/{ => MassiveKnob}/Settings/SettingsJsonSerializer.cs (53%) rename Windows/{ => MassiveKnob}/Strings.Designer.cs (100%) rename Windows/{ => MassiveKnob}/Strings.resx (100%) create mode 100644 Windows/MassiveKnob/Style.xaml rename Windows/{ => MassiveKnob}/UserControls/KnobDeviceControl.Designer.cs (100%) rename Windows/{ => MassiveKnob}/UserControls/KnobDeviceControl.cs (100%) create mode 100644 Windows/MassiveKnob/View/SettingsWindow.xaml create mode 100644 Windows/MassiveKnob/View/SettingsWindow.xaml.cs create mode 100644 Windows/MassiveKnob/ViewModel/SettingsViewModel.cs delete mode 100644 Windows/Program.cs delete mode 100644 Windows/Properties/Resources.Designer.cs delete mode 100644 Windows/Properties/Resources.resx delete mode 100644 Windows/Properties/Settings.Designer.cs delete mode 100644 Windows/Properties/Settings.settings delete mode 100644 Windows/Settings/Settings.cs diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/Actions/DeviceVolumeAction.cs b/Windows/MassiveKnob.Plugin.CoreAudio/Actions/DeviceVolumeAction.cs new file mode 100644 index 0000000..93829f5 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/Actions/DeviceVolumeAction.cs @@ -0,0 +1,56 @@ +using System; +using System.Threading.Tasks; +using System.Windows.Controls; + +namespace MassiveKnob.Plugin.CoreAudio.Actions +{ + public class DeviceVolumeAction : IMassiveKnobAction + { + public Guid ActionId { get; } = new Guid("aabd329c-8be5-4d1e-90ab-5114143b21dd"); + public MassiveKnobActionType ActionType { get; } = MassiveKnobActionType.InputAnalog; + public string Name { get; } = "Set volume"; + public string Description { get; } = "Sets the volume for the selected device, regardless of the current default device."; + + + public IMassiveKnobActionInstance Create(IMassiveKnobActionContext context) + { + return new Instance(context); + } + + + private class Instance : IMassiveKnobAnalogAction + { + private readonly Settings settings; + + + public Instance(IMassiveKnobContext context) + { + settings = context.GetSettings(); + } + + + public void Dispose() + { + } + + + public UserControl CreateSettingsControl() + { + return null; + } + + + public ValueTask AnalogChanged(byte value) + { + // TODO set volume + return default; + } + } + + + private class Settings + { + + } + } +} diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/MassiveKnob.Plugin.CoreAudio.csproj b/Windows/MassiveKnob.Plugin.CoreAudio/MassiveKnob.Plugin.CoreAudio.csproj new file mode 100644 index 0000000..cb62ecd --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/MassiveKnob.Plugin.CoreAudio.csproj @@ -0,0 +1,74 @@ + + + + + Debug + AnyCPU + {5BD5E2F2-9923-4F74-AC69-ACDA0B847937} + Library + Properties + MassiveKnob.Plugin.CoreAudio + MassiveKnob.Plugin.CoreAudio + v4.7.2 + 512 + true + + + true + full + false + $(localappdata)\MassiveKnob\Plugins\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + DeviceVolumeActionSettings.xaml + + + + + {a1298be4-1d23-416c-8c56-fc9264487a95} + MassiveKnob.Plugin + + + + + 4.5.4 + + + + + + Designer + MSBuild:Compile + + + + \ No newline at end of file diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/MassiveKnobCoreAudioPlugin.cs b/Windows/MassiveKnob.Plugin.CoreAudio/MassiveKnobCoreAudioPlugin.cs new file mode 100644 index 0000000..1e8cc5e --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/MassiveKnobCoreAudioPlugin.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using MassiveKnob.Plugin.CoreAudio.Actions; + +namespace MassiveKnob.Plugin.CoreAudio +{ + [MassiveKnobPlugin] + public class MassiveKnobCoreAudioPlugin : IMassiveKnobActionPlugin + { + public Guid PluginId { get; } = new Guid("eaa5d3f8-8f9b-4a4b-8e29-827228d23e95"); + public string Name { get; } = "Windows Core Audio"; + public string Description { get; } = "Included with Massive Knob by default. Provides volume control per device and default device switching."; + public string Author { get; } = "Mark van Renswoude "; + public string Url { get; } = "https://www.github.com/MvRens/MassiveKnob/"; + + public IEnumerable Actions { get; } = new IMassiveKnobAction[] + { + new DeviceVolumeAction() + }; + } +} diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/Properties/AssemblyInfo.cs b/Windows/MassiveKnob.Plugin.CoreAudio/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..b37ec34 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("MassiveKnob.Plugin.CoreAudio")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("MassiveKnob.Plugin.CoreAudio")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("5bd5e2f2-9923-4f74-ac69-acda0b847937")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/Settings/DeviceVolumeActionSettings.xaml b/Windows/MassiveKnob.Plugin.CoreAudio/Settings/DeviceVolumeActionSettings.xaml new file mode 100644 index 0000000..86aa8c4 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/Settings/DeviceVolumeActionSettings.xaml @@ -0,0 +1,12 @@ + + + + + diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/Settings/DeviceVolumeActionSettings.xaml.cs b/Windows/MassiveKnob.Plugin.CoreAudio/Settings/DeviceVolumeActionSettings.xaml.cs new file mode 100644 index 0000000..6c1ed5b --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/Settings/DeviceVolumeActionSettings.xaml.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace MassiveKnob.Plugin.CoreAudio.Settings +{ + /// + /// Interaction logic for DeviceVolumeActionSettings.xaml + /// + public partial class DeviceVolumeActionSettings : UserControl + { + public DeviceVolumeActionSettings() + { + InitializeComponent(); + } + } +} diff --git a/Windows/MassiveKnob.Plugin.MockDevice/Devices/MockDevice.cs b/Windows/MassiveKnob.Plugin.MockDevice/Devices/MockDevice.cs new file mode 100644 index 0000000..d402c4d --- /dev/null +++ b/Windows/MassiveKnob.Plugin.MockDevice/Devices/MockDevice.cs @@ -0,0 +1,45 @@ +using System; +using System.Windows.Controls; +using MassiveKnob.Plugin.MockDevice.Settings; + +namespace MassiveKnob.Plugin.MockDevice.Devices +{ + public class MockDevice : IMassiveKnobDevice + { + public Guid DeviceId { get; } = new Guid("e1a4977a-abf4-4c75-a17d-fd8d3a8451ff"); + public string Name { get; } = "Mock device"; + public string Description { get; } = "Emulates the actual device but does not communicate with anything."; + + public IMassiveKnobDeviceInstance Create(IMassiveKnobContext context) + { + return new Instance(context); + } + + + private class Instance : IMassiveKnobDeviceInstance + { + public Instance(IMassiveKnobContext context) + { + // TODO read settings + } + + + public void Dispose() + { + } + + + public UserControl CreateSettingsControl() + { + // TODO pass context + return new MockDeviceSettings(); + } + } + + + private class Settings + { + // TODO interval, etc. + } + } +} diff --git a/Windows/MassiveKnob.Plugin.MockDevice/MassiveKnob.Plugin.MockDevice.csproj b/Windows/MassiveKnob.Plugin.MockDevice/MassiveKnob.Plugin.MockDevice.csproj new file mode 100644 index 0000000..d9a3c45 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.MockDevice/MassiveKnob.Plugin.MockDevice.csproj @@ -0,0 +1,69 @@ + + + + + Debug + AnyCPU + {674DE974-B134-4DB5-BFAF-7BC3D05E16DE} + Library + Properties + MassiveKnob.Plugin.MockDevice + MassiveKnob.Plugin.MockDevice + v4.7.2 + 512 + true + + + true + full + false + $(localappdata)\MassiveKnob\Plugins\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + MockDeviceSettings.xaml + + + + + {A1298BE4-1D23-416C-8C56-FC9264487A95} + MassiveKnob.Plugin + + + + + + Designer + MSBuild:Compile + + + + \ No newline at end of file diff --git a/Windows/MassiveKnob.Plugin.MockDevice/MassiveKnobMockDevicePlugin.cs b/Windows/MassiveKnob.Plugin.MockDevice/MassiveKnobMockDevicePlugin.cs new file mode 100644 index 0000000..feb9eb5 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.MockDevice/MassiveKnobMockDevicePlugin.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; + +namespace MassiveKnob.Plugin.MockDevice +{ + [MassiveKnobPlugin] + public class MassiveKnobMockDevicePlugin : IMassiveKnobDevicePlugin + { + public Guid PluginId { get; } = new Guid("85f04232-d70f-494c-94a2-41452591ffb3"); + public string Name { get; } = "Mock Device"; + public string Description { get; } = "Emulates the actual device but does not communicate with anything."; + public string Author { get; } = "Mark van Renswoude "; + public string Url { get; } = "https://www.github.com/MvRens/MassiveKnob/"; + + public IEnumerable Devices { get; } = new IMassiveKnobDevice[] + { + new Devices.MockDevice() + }; + } +} diff --git a/Windows/MassiveKnob.Plugin.MockDevice/Properties/AssemblyInfo.cs b/Windows/MassiveKnob.Plugin.MockDevice/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..63e0908 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.MockDevice/Properties/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("MassiveKnob.Plugin.MockDevice")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("MassiveKnob.Plugin.MockDevice")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("674de974-b134-4db5-bfaf-7bc3d05e16de")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Windows/MassiveKnob.Plugin.MockDevice/Settings/MockDeviceSettings.xaml b/Windows/MassiveKnob.Plugin.MockDevice/Settings/MockDeviceSettings.xaml new file mode 100644 index 0000000..15b1798 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.MockDevice/Settings/MockDeviceSettings.xaml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + Number of knobs + + + Randomly change the volume + + diff --git a/Windows/MassiveKnob.Plugin.MockDevice/Settings/MockDeviceSettings.xaml.cs b/Windows/MassiveKnob.Plugin.MockDevice/Settings/MockDeviceSettings.xaml.cs new file mode 100644 index 0000000..843c196 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.MockDevice/Settings/MockDeviceSettings.xaml.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace MassiveKnob.Plugin.MockDevice.Settings +{ + /// + /// Interaction logic for MockDeviceSettings.xaml + /// + public partial class MockDeviceSettings : UserControl + { + public MockDeviceSettings() + { + InitializeComponent(); + } + } +} diff --git a/Windows/MassiveKnob.Plugin/IMassiveKnobAction.cs b/Windows/MassiveKnob.Plugin/IMassiveKnobAction.cs new file mode 100644 index 0000000..ba3f3fc --- /dev/null +++ b/Windows/MassiveKnob.Plugin/IMassiveKnobAction.cs @@ -0,0 +1,59 @@ +using System; + +namespace MassiveKnob.Plugin +{ + /// + /// Determines the type of control this action can be assigned to. + /// + [Flags] + public enum MassiveKnobActionType + { + /// + /// Can be assigned to a potentiometer. The action instance must implement IMassiveKnobAnalogAction. + /// + InputAnalog = 1 << 0, + + /// + /// Can be assigned to a button or switch. The action instance must implement IMassiveKnobDigitalAction. + /// + InputDigital = 1 << 1, + + /// + /// Can be assigned to an output, like an LED or relay. + /// + OutputSignal = 1 << 2 + } + + + /// + /// Provides information about an action which can be assigned to a knob or button. + /// + public interface IMassiveKnobAction + { + /// + /// Unique identifier for the action. + /// + Guid ActionId { get; } + + /// + /// Determines the type of control this action can be assigned to. + /// + MassiveKnobActionType ActionType { get; } + + /// + /// The name of the action as shown in the action list when assigning to a knob or button. + /// + string Name { get; } + + /// + /// A short description of the functionality provided by the action. + /// + string Description { get; } + + /// + /// Called when an action is bound to a knob or button to create an instance of the action. + /// + /// Provides an interface to the Massive Knob settings and device. Can be stored until the action instance is disposed. + IMassiveKnobActionInstance Create(IMassiveKnobActionContext context); + } +} diff --git a/Windows/MassiveKnob.Plugin/IMassiveKnobActionContext.cs b/Windows/MassiveKnob.Plugin/IMassiveKnobActionContext.cs new file mode 100644 index 0000000..9f08a67 --- /dev/null +++ b/Windows/MassiveKnob.Plugin/IMassiveKnobActionContext.cs @@ -0,0 +1,12 @@ +namespace MassiveKnob.Plugin +{ + /// + public interface IMassiveKnobActionContext : IMassiveKnobContext + { + /// + /// Sets the state of the signal. Only valid for OutputSignal action types, will raise an exception otherwise. + /// + /// Whether the signal is on or off. + void SetSignal(bool on); + } +} diff --git a/Windows/MassiveKnob.Plugin/IMassiveKnobActionInstance.cs b/Windows/MassiveKnob.Plugin/IMassiveKnobActionInstance.cs new file mode 100644 index 0000000..3973f60 --- /dev/null +++ b/Windows/MassiveKnob.Plugin/IMassiveKnobActionInstance.cs @@ -0,0 +1,18 @@ +using System; +using System.Windows.Controls; + +namespace MassiveKnob.Plugin +{ + /// + /// Base interface for actions assigned to a knob or button. Implement one of the descendant + /// interfaces to provide input or output. + /// + public interface IMassiveKnobActionInstance : IDisposable + { + /// + /// Called when an action should display it's settings. Assume the width is variable, height is + /// determined by the UserControl. Return null to indicate there are no settings for this action. + /// + UserControl CreateSettingsControl(); + } +} diff --git a/Windows/MassiveKnob.Plugin/IMassiveKnobActionPlugin.cs b/Windows/MassiveKnob.Plugin/IMassiveKnobActionPlugin.cs new file mode 100644 index 0000000..255defc --- /dev/null +++ b/Windows/MassiveKnob.Plugin/IMassiveKnobActionPlugin.cs @@ -0,0 +1,15 @@ +using System.Collections.Generic; + +namespace MassiveKnob.Plugin +{ + /// + /// Implemented by plugins supporting actions which can be assigned to knobs or buttons. + /// + public interface IMassiveKnobActionPlugin : IMassiveKnobPlugin + { + /// + /// A list of actions supported by the plugin which can be assigned to knobs or buttons. + /// + IEnumerable Actions { get; } + } +} diff --git a/Windows/MassiveKnob.Plugin/IMassiveKnobAnalogAction.cs b/Windows/MassiveKnob.Plugin/IMassiveKnobAnalogAction.cs new file mode 100644 index 0000000..15cfae1 --- /dev/null +++ b/Windows/MassiveKnob.Plugin/IMassiveKnobAnalogAction.cs @@ -0,0 +1,16 @@ +using System.Threading.Tasks; + +namespace MassiveKnob.Plugin +{ + /// + /// Required to be implemented for Action type InputAnalog. Receives an update when a knob's position changes. + /// + public interface IMassiveKnobAnalogAction : IMassiveKnobActionInstance + { + /// + /// Called when a knob's position changes. + /// + /// The new value. Range is 0 to 100. + ValueTask AnalogChanged(byte value); + } +} diff --git a/Windows/MassiveKnob.Plugin/IMassiveKnobContext.cs b/Windows/MassiveKnob.Plugin/IMassiveKnobContext.cs new file mode 100644 index 0000000..fdecb2a --- /dev/null +++ b/Windows/MassiveKnob.Plugin/IMassiveKnobContext.cs @@ -0,0 +1,22 @@ +namespace MassiveKnob.Plugin +{ + /// + /// Provides an interface to the Massive Knob settings and device. + /// + public interface IMassiveKnobContext + { + /// + /// Reads the settings for the current action instance. + /// + /// The class type to be deserialized using Newtonsoft.Json. + /// The deserialized class if settings were previously stored, or a new instance of the class otherwise. + T GetSettings() where T : class, new(); + + /// + /// Stores the settings for the current action instance. + /// + /// The class type to be serialized using Newtonsoft.Json. + /// The object to be serialized using Newtonsoft.Json. + void SetSettings(T settings) where T : class, new(); + } +} diff --git a/Windows/MassiveKnob.Plugin/IMassiveKnobDevice.cs b/Windows/MassiveKnob.Plugin/IMassiveKnobDevice.cs new file mode 100644 index 0000000..f949076 --- /dev/null +++ b/Windows/MassiveKnob.Plugin/IMassiveKnobDevice.cs @@ -0,0 +1,31 @@ +using System; + +namespace MassiveKnob.Plugin +{ + /// + /// Contains information about the device supported by this plugin. + /// + public interface IMassiveKnobDevice + { + /// + /// Unique identifier for the device. + /// + Guid DeviceId { get; } + + /// + /// The name of the action as shown in the action list when assigning to a knob or button. + /// + string Name { get; } + + /// + /// A short description of the functionality provided by the action. + /// + string Description { get; } + + /// + /// Called when the device is selected. + /// + /// Provides an interface to the Massive Knob settings and device. Can be stored until the device instance is disposed. + IMassiveKnobDeviceInstance Create(IMassiveKnobContext context); + } +} diff --git a/Windows/MassiveKnob.Plugin/IMassiveKnobDeviceInstance.cs b/Windows/MassiveKnob.Plugin/IMassiveKnobDeviceInstance.cs new file mode 100644 index 0000000..d8307df --- /dev/null +++ b/Windows/MassiveKnob.Plugin/IMassiveKnobDeviceInstance.cs @@ -0,0 +1,17 @@ +using System; +using System.Windows.Controls; + +namespace MassiveKnob.Plugin +{ + /// + /// Represents a connection to a Massive Knob device. + /// + public interface IMassiveKnobDeviceInstance : IDisposable + { + /// + /// Called when a device should display it's settings. Assume the width is variable, height is + /// determined by the UserControl. Return null to indicate there are no settings for this device. + /// + UserControl CreateSettingsControl(); + } +} diff --git a/Windows/MassiveKnob.Plugin/IMassiveKnobDigitalAction.cs b/Windows/MassiveKnob.Plugin/IMassiveKnobDigitalAction.cs new file mode 100644 index 0000000..fb3992f --- /dev/null +++ b/Windows/MassiveKnob.Plugin/IMassiveKnobDigitalAction.cs @@ -0,0 +1,9 @@ +namespace MassiveKnob.Plugin +{ + /// + /// Required to be implemented for Action type InputDigital. Receives an update when a knob's position changes. + /// + public interface IMassiveKnobDigitalAction : IMassiveKnobActionInstance + { + } +} diff --git a/Windows/MassiveKnob.Plugin/IMassiveKnobHardwarePlugin.cs b/Windows/MassiveKnob.Plugin/IMassiveKnobHardwarePlugin.cs new file mode 100644 index 0000000..b20c651 --- /dev/null +++ b/Windows/MassiveKnob.Plugin/IMassiveKnobHardwarePlugin.cs @@ -0,0 +1,15 @@ +using System.Collections.Generic; + +namespace MassiveKnob.Plugin +{ + /// + /// Implemented by plugins which interface with Massive Knob device. + /// + public interface IMassiveKnobDevicePlugin : IMassiveKnobPlugin + { + /// + /// A list of devices supported by the plugin. + /// + IEnumerable Devices { get; } + } +} diff --git a/Windows/MassiveKnob.Plugin/IMassiveKnobPlugin.cs b/Windows/MassiveKnob.Plugin/IMassiveKnobPlugin.cs new file mode 100644 index 0000000..d7b15a0 --- /dev/null +++ b/Windows/MassiveKnob.Plugin/IMassiveKnobPlugin.cs @@ -0,0 +1,36 @@ +using System; + +namespace MassiveKnob.Plugin +{ + /// + /// Minimum required interface to implement for writing a Massive Knob plugin. + /// Implement one of the various descendant interfaces to provide more functionality. + /// + public interface IMassiveKnobPlugin + { + /// + /// Unique identifier for the plugin. + /// + Guid PluginId { get; } + + /// + /// The name of the plugin as shown in the plugin list. + /// + string Name { get; } + + /// + /// A short description of the functionality provided by the plugin. + /// + string Description { get; } + + /// + /// The name of the author(s) of the plugin. + /// + string Author { get; } + + /// + /// URL to the plugin's website. + /// + string Url { get; } + } +} diff --git a/Windows/MassiveKnob.Plugin/MassiveKnob.Plugin.csproj b/Windows/MassiveKnob.Plugin/MassiveKnob.Plugin.csproj new file mode 100644 index 0000000..8cdc5b2 --- /dev/null +++ b/Windows/MassiveKnob.Plugin/MassiveKnob.Plugin.csproj @@ -0,0 +1,68 @@ + + + + + Debug + AnyCPU + {A1298BE4-1D23-416C-8C56-FC9264487A95} + Library + Properties + MassiveKnob.Plugin + MassiveKnob.Plugin + v4.7.2 + 512 + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + bin\Debug\MassiveKnob.Plugin.xml + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + bin\Release\MassiveKnob.Plugin.xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 4.5.4 + + + + \ No newline at end of file diff --git a/Windows/MassiveKnob.Plugin/MassiveKnobPluginAttribute.cs b/Windows/MassiveKnob.Plugin/MassiveKnobPluginAttribute.cs new file mode 100644 index 0000000..17c16b3 --- /dev/null +++ b/Windows/MassiveKnob.Plugin/MassiveKnobPluginAttribute.cs @@ -0,0 +1,17 @@ +using System; +using JetBrains.Annotations; + +// ReSharper disable once UnusedMember.Global - public API + +namespace MassiveKnob.Plugin +{ + /// + /// Attach this attribute to a class to register it as a Massive Knob plugin. + /// The class must implement IMassiveKnobPlugin. + /// + [AttributeUsage(AttributeTargets.Class)] + [MeansImplicitUse] + public class MassiveKnobPluginAttribute : Attribute + { + } +} diff --git a/Windows/MassiveKnob.Plugin/Properties/AssemblyInfo.cs b/Windows/MassiveKnob.Plugin/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..dddcccd --- /dev/null +++ b/Windows/MassiveKnob.Plugin/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("MassiveKnob.PluginHost")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("MassiveKnob.PluginHost")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("a1298be4-1d23-416c-8c56-fc9264487a95")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Windows/MassiveKnob.Plugin/ReSharper/JetBrains.Annotations.cs b/Windows/MassiveKnob.Plugin/ReSharper/JetBrains.Annotations.cs new file mode 100644 index 0000000..2790b2e --- /dev/null +++ b/Windows/MassiveKnob.Plugin/ReSharper/JetBrains.Annotations.cs @@ -0,0 +1,180 @@ +/* + * Stripped version of the ReSharper Annotations source. Enables hinting without referencing the + * ReSharper.Annotations NuGet package. + * + * If you need more annotations, this code was generated using + * ReSharper - Options - Code Annotations - Copy C# implementation to clipboard + */ + + +/* MIT License + +Copyright (c) 2016 JetBrains http://www.jetbrains.com + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. */ + +using System; +// ReSharper disable InheritdocConsiderUsage + +#pragma warning disable 1591 +// ReSharper disable UnusedMember.Global +// ReSharper disable MemberCanBePrivate.Global +// ReSharper disable UnusedAutoPropertyAccessor.Global +// ReSharper disable IntroduceOptionalParameters.Global +// ReSharper disable MemberCanBeProtected.Global +// ReSharper disable InconsistentNaming + +// ReSharper disable once CheckNamespace +namespace JetBrains.Annotations +{ + /// + /// Indicates that the value of the marked element could be null sometimes, + /// so the check for null is necessary before its usage. + /// + /// + /// [CanBeNull] object Test() => null; + /// + /// void UseTest() { + /// var p = Test(); + /// var s = p.ToString(); // Warning: Possible 'System.NullReferenceException' + /// } + /// + [AttributeUsage( + AttributeTargets.Method | AttributeTargets.Parameter | AttributeTargets.Property | + AttributeTargets.Delegate | AttributeTargets.Field | AttributeTargets.Event | + AttributeTargets.Class | AttributeTargets.Interface | AttributeTargets.GenericParameter)] + internal sealed class CanBeNullAttribute : Attribute { } + + /// + /// Indicates that the value of the marked element could never be null. + /// + /// + /// [NotNull] object Foo() { + /// return null; // Warning: Possible 'null' assignment + /// } + /// + [AttributeUsage( + AttributeTargets.Method | AttributeTargets.Parameter | AttributeTargets.Property | + AttributeTargets.Delegate | AttributeTargets.Field | AttributeTargets.Event | + AttributeTargets.Class | AttributeTargets.Interface | AttributeTargets.GenericParameter)] + internal sealed class NotNullAttribute : Attribute { } + + /// + /// Indicates that the marked symbol is used implicitly (e.g. via reflection, in external library), + /// so this symbol will not be marked as unused (as well as by other usage inspections). + /// + [AttributeUsage(AttributeTargets.All)] + internal sealed class UsedImplicitlyAttribute : Attribute + { + public UsedImplicitlyAttribute() + : this(ImplicitUseKindFlags.Default, ImplicitUseTargetFlags.Default) { } + + public UsedImplicitlyAttribute(ImplicitUseKindFlags useKindFlags) + : this(useKindFlags, ImplicitUseTargetFlags.Default) { } + + public UsedImplicitlyAttribute(ImplicitUseTargetFlags targetFlags) + : this(ImplicitUseKindFlags.Default, targetFlags) { } + + public UsedImplicitlyAttribute(ImplicitUseKindFlags useKindFlags, ImplicitUseTargetFlags targetFlags) + { + UseKindFlags = useKindFlags; + TargetFlags = targetFlags; + } + + public ImplicitUseKindFlags UseKindFlags { get; } + + public ImplicitUseTargetFlags TargetFlags { get; } + } + + /// + /// Should be used on attributes and causes ReSharper to not mark symbols marked with such attributes + /// as unused (as well as by other usage inspections) + /// + [AttributeUsage(AttributeTargets.Class | AttributeTargets.GenericParameter)] + internal sealed class MeansImplicitUseAttribute : Attribute + { + public MeansImplicitUseAttribute() + : this(ImplicitUseKindFlags.Default, ImplicitUseTargetFlags.Default) { } + + public MeansImplicitUseAttribute(ImplicitUseKindFlags useKindFlags) + : this(useKindFlags, ImplicitUseTargetFlags.Default) { } + + public MeansImplicitUseAttribute(ImplicitUseTargetFlags targetFlags) + : this(ImplicitUseKindFlags.Default, targetFlags) { } + + public MeansImplicitUseAttribute(ImplicitUseKindFlags useKindFlags, ImplicitUseTargetFlags targetFlags) + { + UseKindFlags = useKindFlags; + TargetFlags = targetFlags; + } + + [UsedImplicitly] public ImplicitUseKindFlags UseKindFlags { get; private set; } + + [UsedImplicitly] public ImplicitUseTargetFlags TargetFlags { get; private set; } + } + + [Flags] + internal enum ImplicitUseKindFlags + { + Default = Access | Assign | InstantiatedWithFixedConstructorSignature, + /// Only entity marked with attribute considered used. + Access = 1, + /// Indicates implicit assignment to a member. + Assign = 2, + /// + /// Indicates implicit instantiation of a type with fixed constructor signature. + /// That means any unused constructor parameters won't be reported as such. + /// + InstantiatedWithFixedConstructorSignature = 4, + /// Indicates implicit instantiation of a type. + InstantiatedNoFixedConstructorSignature = 8 + } + + /// + /// Specify what is considered used implicitly when marked + /// with or . + /// + [Flags] + internal enum ImplicitUseTargetFlags + { + Default = Itself, + Itself = 1, + /// Members of entity marked with attribute are considered used. + Members = 2, + /// Entity marked with attribute and all its members considered used. + WithMembers = Itself | Members + } + + /// + /// This attribute is intended to mark publicly available API + /// which should not be removed and so is treated as used. + /// + [MeansImplicitUse(ImplicitUseTargetFlags.WithMembers)] + internal sealed class PublicAPIAttribute : Attribute + { + public PublicAPIAttribute() { } + + public PublicAPIAttribute([NotNull] string comment) + { + Comment = comment; + } + + [CanBeNull] public string Comment { get; } + } +} \ No newline at end of file diff --git a/Windows/MassiveKnob.sln b/Windows/MassiveKnob.sln index 64ec8c6..85a3fb7 100644 --- a/Windows/MassiveKnob.sln +++ b/Windows/MassiveKnob.sln @@ -3,7 +3,13 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 16 VisualStudioVersion = 16.0.31005.135 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MassiveKnob", "MassiveKnob.csproj", "{73130EC7-49B3-40AD-8367-1095C0F41905}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MassiveKnob", "MassiveKnob\MassiveKnob.csproj", "{73130EC7-49B3-40AD-8367-1095C0F41905}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MassiveKnob.Plugin", "MassiveKnob.Plugin\MassiveKnob.Plugin.csproj", "{A1298BE4-1D23-416C-8C56-FC9264487A95}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MassiveKnob.Plugin.CoreAudio", "MassiveKnob.Plugin.CoreAudio\MassiveKnob.Plugin.CoreAudio.csproj", "{5BD5E2F2-9923-4F74-AC69-ACDA0B847937}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MassiveKnob.Plugin.MockDevice", "MassiveKnob.Plugin.MockDevice\MassiveKnob.Plugin.MockDevice.csproj", "{674DE974-B134-4DB5-BFAF-7BC3D05E16DE}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -15,6 +21,18 @@ Global {73130EC7-49B3-40AD-8367-1095C0F41905}.Debug|Any CPU.Build.0 = Debug|Any CPU {73130EC7-49B3-40AD-8367-1095C0F41905}.Release|Any CPU.ActiveCfg = Release|Any CPU {73130EC7-49B3-40AD-8367-1095C0F41905}.Release|Any CPU.Build.0 = Release|Any CPU + {A1298BE4-1D23-416C-8C56-FC9264487A95}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A1298BE4-1D23-416C-8C56-FC9264487A95}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A1298BE4-1D23-416C-8C56-FC9264487A95}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A1298BE4-1D23-416C-8C56-FC9264487A95}.Release|Any CPU.Build.0 = Release|Any CPU + {5BD5E2F2-9923-4F74-AC69-ACDA0B847937}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5BD5E2F2-9923-4F74-AC69-ACDA0B847937}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5BD5E2F2-9923-4F74-AC69-ACDA0B847937}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5BD5E2F2-9923-4F74-AC69-ACDA0B847937}.Release|Any CPU.Build.0 = Release|Any CPU + {674DE974-B134-4DB5-BFAF-7BC3D05E16DE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {674DE974-B134-4DB5-BFAF-7BC3D05E16DE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {674DE974-B134-4DB5-BFAF-7BC3D05E16DE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {674DE974-B134-4DB5-BFAF-7BC3D05E16DE}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Windows/App.config b/Windows/MassiveKnob/App.config similarity index 100% rename from Windows/App.config rename to Windows/MassiveKnob/App.config diff --git a/Windows/MassiveKnob/App.xaml b/Windows/MassiveKnob/App.xaml new file mode 100644 index 0000000..5a65864 --- /dev/null +++ b/Windows/MassiveKnob/App.xaml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Windows/MassiveKnob/App.xaml.cs b/Windows/MassiveKnob/App.xaml.cs new file mode 100644 index 0000000..5192f72 --- /dev/null +++ b/Windows/MassiveKnob/App.xaml.cs @@ -0,0 +1,75 @@ +using System.Diagnostics; +using System.Windows; +using Hardcodet.Wpf.TaskbarNotification; +using MassiveKnob.View; +using SimpleInjector; + +namespace MassiveKnob +{ + /// + /// Interaction logic for App.xaml + /// + public partial class App + { + private readonly Container container; + private TaskbarIcon notifyIcon; + + private SettingsWindow settingsWindow; + + + public App(Container container) + { + this.container = container; + InitializeComponent(); + } + + + protected override void OnStartup(StartupEventArgs e) + { + base.OnStartup(e); + + notifyIcon = (TaskbarIcon)FindResource("NotifyIcon"); + Debug.Assert(notifyIcon != null, nameof(notifyIcon) + " != null"); + } + + + protected override void OnExit(ExitEventArgs e) + { + notifyIcon?.Dispose(); + + base.OnExit(e); + } + + + + private void ShowSettings() + { + if (settingsWindow == null) + { + settingsWindow = container.GetInstance(); + settingsWindow.Closed += (sender, args) => { settingsWindow = null; }; + settingsWindow.Show(); + } + else + settingsWindow.Activate(); + } + + + private void NotifyIconMenuSettingsClick(object sender, RoutedEventArgs e) + { + ShowSettings(); + } + + + private void NotifyIconTrayMouseDoubleClick(object sender, RoutedEventArgs e) + { + ShowSettings(); + } + + + private void NotifyIconMenuQuitClick(object sender, RoutedEventArgs e) + { + Shutdown(); + } + } +} \ No newline at end of file diff --git a/Windows/Forms/SettingsForm.Designer.cs b/Windows/MassiveKnob/Forms/SettingsForm.Designer.cs similarity index 100% rename from Windows/Forms/SettingsForm.Designer.cs rename to Windows/MassiveKnob/Forms/SettingsForm.Designer.cs diff --git a/Windows/Forms/SettingsForm.cs b/Windows/MassiveKnob/Forms/SettingsForm.cs similarity index 100% rename from Windows/Forms/SettingsForm.cs rename to Windows/MassiveKnob/Forms/SettingsForm.cs diff --git a/Windows/Forms/SettingsForm.resx b/Windows/MassiveKnob/Forms/SettingsForm.resx similarity index 100% rename from Windows/Forms/SettingsForm.resx rename to Windows/MassiveKnob/Forms/SettingsForm.resx diff --git a/Windows/Hardware/AbstractMassiveKnobHardware.cs b/Windows/MassiveKnob/Hardware/AbstractMassiveKnobHardware.cs similarity index 100% rename from Windows/Hardware/AbstractMassiveKnobHardware.cs rename to Windows/MassiveKnob/Hardware/AbstractMassiveKnobHardware.cs diff --git a/Windows/Hardware/CoreAudioDeviceManager.cs b/Windows/MassiveKnob/Hardware/CoreAudioDeviceManager.cs similarity index 100% rename from Windows/Hardware/CoreAudioDeviceManager.cs rename to Windows/MassiveKnob/Hardware/CoreAudioDeviceManager.cs diff --git a/Windows/Hardware/IAudioDeviceManager.cs b/Windows/MassiveKnob/Hardware/IAudioDeviceManager.cs similarity index 100% rename from Windows/Hardware/IAudioDeviceManager.cs rename to Windows/MassiveKnob/Hardware/IAudioDeviceManager.cs diff --git a/Windows/Hardware/IMassiveKnobHardware.cs b/Windows/MassiveKnob/Hardware/IMassiveKnobHardware.cs similarity index 100% rename from Windows/Hardware/IMassiveKnobHardware.cs rename to Windows/MassiveKnob/Hardware/IMassiveKnobHardware.cs diff --git a/Windows/Hardware/MockMassiveKnobHardware.cs b/Windows/MassiveKnob/Hardware/MockMassiveKnobHardware.cs similarity index 100% rename from Windows/Hardware/MockMassiveKnobHardware.cs rename to Windows/MassiveKnob/Hardware/MockMassiveKnobHardware.cs diff --git a/Windows/Hardware/SerialMassiveKnobHardware.cs b/Windows/MassiveKnob/Hardware/SerialMassiveKnobHardware.cs similarity index 100% rename from Windows/Hardware/SerialMassiveKnobHardware.cs rename to Windows/MassiveKnob/Hardware/SerialMassiveKnobHardware.cs diff --git a/Windows/MassiveKnob/Helpers/ComboBoxTemplateSelector.cs b/Windows/MassiveKnob/Helpers/ComboBoxTemplateSelector.cs new file mode 100644 index 0000000..adda8da --- /dev/null +++ b/Windows/MassiveKnob/Helpers/ComboBoxTemplateSelector.cs @@ -0,0 +1,54 @@ +using System; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Markup; +using System.Windows.Media; + +namespace MassiveKnob.Helpers +{ + // Source: https://stackoverflow.com/questions/4672867/can-i-use-a-different-template-for-the-selected-item-in-a-wpf-combobox-than-for + public class ComboBoxTemplateSelector : DataTemplateSelector + { + public DataTemplate SelectedItemTemplate { get; set; } + public DataTemplateSelector SelectedItemTemplateSelector { get; set; } + public DataTemplate DropdownItemsTemplate { get; set; } + public DataTemplateSelector DropdownItemsTemplateSelector { get; set; } + + public override DataTemplate SelectTemplate(object item, DependencyObject container) + { + var itemToCheck = container; + + // Search up the visual tree, stopping at either a ComboBox or + // a ComboBoxItem (or null). This will determine which template to use + while (itemToCheck != null && !(itemToCheck is ComboBoxItem) && !(itemToCheck is ComboBox)) + itemToCheck = VisualTreeHelper.GetParent(itemToCheck); + + // If you stopped at a ComboBoxItem, you're in the dropdown + var inDropDown = (itemToCheck is ComboBoxItem); + + return inDropDown + ? DropdownItemsTemplate ?? DropdownItemsTemplateSelector?.SelectTemplate(item, container) + : SelectedItemTemplate ?? SelectedItemTemplateSelector?.SelectTemplate(item, container); + } + } + + + public class ComboBoxTemplateSelectorExtension : MarkupExtension + { + public DataTemplate SelectedItemTemplate { get; set; } + public DataTemplateSelector SelectedItemTemplateSelector { get; set; } + public DataTemplate DropdownItemsTemplate { get; set; } + public DataTemplateSelector DropdownItemsTemplateSelector { get; set; } + + public override object ProvideValue(IServiceProvider serviceProvider) + { + return new ComboBoxTemplateSelector() + { + SelectedItemTemplate = SelectedItemTemplate, + SelectedItemTemplateSelector = SelectedItemTemplateSelector, + DropdownItemsTemplate = DropdownItemsTemplate, + DropdownItemsTemplateSelector = DropdownItemsTemplateSelector + }; + } + } +} diff --git a/Windows/MassiveKnob/Helpers/DelegateCommand.cs b/Windows/MassiveKnob/Helpers/DelegateCommand.cs new file mode 100644 index 0000000..e895714 --- /dev/null +++ b/Windows/MassiveKnob/Helpers/DelegateCommand.cs @@ -0,0 +1,80 @@ +using System; +using System.Windows.Input; + +namespace MassiveKnob.Helpers +{ + public class DelegateCommand : ICommand + { + private readonly Action execute; + private readonly Func canExecute; + + + public DelegateCommand(Action execute) : this(execute, null) + { + } + + + public DelegateCommand(Action execute, Func canExecute) + { + this.execute = execute ?? throw new ArgumentNullException(nameof(execute)); + this.canExecute = canExecute; + } + + + public bool CanExecute(object parameter) + { + return canExecute?.Invoke() ?? true; + } + + + public void Execute(object parameter) + { + execute(); + } + + + public event EventHandler CanExecuteChanged + { + add => CommandManager.RequerySuggested += value; + remove => CommandManager.RequerySuggested -= value; + } + } + + + public class DelegateCommand : ICommand + { + private readonly Action execute; + private readonly Predicate canExecute; + + + public DelegateCommand(Action execute) : this(execute, null) + { + } + + + public DelegateCommand(Action execute, Predicate canExecute) + { + this.execute = execute ?? throw new ArgumentNullException(nameof(execute)); + this.canExecute = canExecute; + } + + + public bool CanExecute(object parameter) + { + return canExecute?.Invoke((T)parameter) ?? true; + } + + + public void Execute(object parameter) + { + execute((T)parameter); + } + + + public event EventHandler CanExecuteChanged + { + add => CommandManager.RequerySuggested += value; + remove => CommandManager.RequerySuggested -= value; + } + } +} diff --git a/Windows/MainIcon.ico b/Windows/MassiveKnob/MainIcon.ico similarity index 100% rename from Windows/MainIcon.ico rename to Windows/MassiveKnob/MainIcon.ico diff --git a/Windows/MassiveKnob.csproj b/Windows/MassiveKnob/MassiveKnob.csproj similarity index 72% rename from Windows/MassiveKnob.csproj rename to Windows/MassiveKnob/MassiveKnob.csproj index 7655aa1..fb0171e 100644 --- a/Windows/MassiveKnob.csproj +++ b/Windows/MassiveKnob/MassiveKnob.csproj @@ -10,6 +10,7 @@ MassiveKnob v4.7.2 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} true true @@ -41,8 +42,11 @@ MassiveKnob.Program + + + @@ -50,22 +54,26 @@ - + - - Form - - - SettingsForm.cs - + + + + + + + + + SettingsWindow.xaml + @@ -75,37 +83,10 @@ True Strings.resx - - UserControl - - - KnobDeviceControl.cs - - - SettingsForm.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - ResXFileCodeGenerator Strings.Designer.cs - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - @@ -123,6 +104,9 @@ 0.11.24 + + 1.0.8 + 12.0.3 @@ -135,6 +119,33 @@ + + + + + Designer + MSBuild:Compile + + + App.xaml + Code + + + + + Designer + MSBuild:Compile + + + Designer + MSBuild:Compile + + + + + {A1298BE4-1D23-416C-8C56-FC9264487A95} + MassiveKnob.Plugin + diff --git a/Windows/MassiveKnob/Model/IMassiveKnobOrchestrator.cs b/Windows/MassiveKnob/Model/IMassiveKnobOrchestrator.cs new file mode 100644 index 0000000..a818b26 --- /dev/null +++ b/Windows/MassiveKnob/Model/IMassiveKnobOrchestrator.cs @@ -0,0 +1,11 @@ +using MassiveKnob.Plugin; + +namespace MassiveKnob.Model +{ + public interface IMassiveKnobOrchestrator + { + IMassiveKnobDeviceInstance ActiveDeviceInstance { get; } + + IMassiveKnobDeviceInstance SetActiveDevice(IMassiveKnobDevice device); + } +} diff --git a/Windows/MassiveKnob/Model/IPluginManager.cs b/Windows/MassiveKnob/Model/IPluginManager.cs new file mode 100644 index 0000000..87e185d --- /dev/null +++ b/Windows/MassiveKnob/Model/IPluginManager.cs @@ -0,0 +1,12 @@ +using System.Collections.Generic; +using MassiveKnob.Plugin; + +namespace MassiveKnob.Model +{ + public interface IPluginManager + { + IEnumerable Plugins { get; } + + IEnumerable GetDevicePlugins(); + } +} diff --git a/Windows/MassiveKnob/Model/MassiveKnobOrchestrator.cs b/Windows/MassiveKnob/Model/MassiveKnobOrchestrator.cs new file mode 100644 index 0000000..87e2de8 --- /dev/null +++ b/Windows/MassiveKnob/Model/MassiveKnobOrchestrator.cs @@ -0,0 +1,52 @@ +using MassiveKnob.Plugin; + +namespace MassiveKnob.Model +{ + public class MassiveKnobOrchestrator : IMassiveKnobOrchestrator + { + private readonly Settings.Settings settings; + + + public IMassiveKnobDeviceInstance ActiveDeviceInstance { get; private set; } + + + public MassiveKnobOrchestrator(Settings.Settings settings) + { + this.settings = settings; + } + + + public IMassiveKnobDeviceInstance SetActiveDevice(IMassiveKnobDevice device) + { + ActiveDeviceInstance?.Dispose(); + ActiveDeviceInstance = device?.Create(new Context(settings)); + + return ActiveDeviceInstance; + } + + + + public class Context : IMassiveKnobContext + { + private readonly Settings.Settings settings; + + + public Context(Settings.Settings settings) + { + this.settings = settings; + } + + public T GetSettings() where T : class, new() + { + // TODO + return default; + } + + + public void SetSettings(T settings) where T : class, new() + { + // TODO + } + } + } +} diff --git a/Windows/MassiveKnob/Model/PluginManager.cs b/Windows/MassiveKnob/Model/PluginManager.cs new file mode 100644 index 0000000..48fec68 --- /dev/null +++ b/Windows/MassiveKnob/Model/PluginManager.cs @@ -0,0 +1,79 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Reflection; +using MassiveKnob.Plugin; + +namespace MassiveKnob.Model +{ + public class PluginManager : IPluginManager + { + private readonly List plugins = new List(); + + + public IEnumerable Plugins => plugins; + + public IEnumerable GetDevicePlugins() + { + return plugins.Where(p => p is IMassiveKnobDevicePlugin).Cast(); + } + + + public void Load() + { + var codeBase = Assembly.GetEntryAssembly()?.CodeBase; + if (!string.IsNullOrEmpty(codeBase)) + { + var localPath = Path.GetDirectoryName(new Uri(codeBase).LocalPath); + if (!string.IsNullOrEmpty(localPath)) + { + var applicationPluginPath = Path.Combine(localPath, @"Plugins"); + LoadPlugins(applicationPluginPath); + } + } + + + var localPluginPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), @"MassiveKnob", @"Plugins"); + LoadPlugins(localPluginPath); + } + + + private void LoadPlugins(string path) + { + if (!Directory.Exists(path)) + return; + + var filenames = Directory.GetFiles(path, "*.dll"); + + foreach (var filename in filenames) + { + try + { + var pluginAssembly = Assembly.LoadFrom(filename); + RegisterPlugins(pluginAssembly); + } + catch (Exception e) + { + // TODO report error +// Console.WriteLine(e); + throw; + } + } + } + + + private void RegisterPlugins(Assembly assembly) + { + var pluginTypes = assembly.GetTypes().Where(t => t.GetCustomAttribute() != null); + foreach (var pluginType in pluginTypes) + { + var pluginInstance = Activator.CreateInstance(pluginType); + if (!(pluginInstance is IMassiveKnobPlugin)) + throw new InvalidCastException($"Type {pluginType.FullName} claims to be a MassiveKnobPlugin but does not implement IMassiveKnobPlugin"); + + plugins.Add((IMassiveKnobPlugin)pluginInstance); + } + } + } +} diff --git a/Windows/MassiveKnob/Program.cs b/Windows/MassiveKnob/Program.cs new file mode 100644 index 0000000..f28ec47 --- /dev/null +++ b/Windows/MassiveKnob/Program.cs @@ -0,0 +1,46 @@ +using System; +using System.Threading.Tasks; +using MassiveKnob.Model; +using MassiveKnob.Settings; +using MassiveKnob.View; +using MassiveKnob.ViewModel; +using SimpleInjector; + +namespace MassiveKnob +{ + public static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + public static void Main() + { + MainAsync().GetAwaiter().GetResult(); + } + + + private static async Task MainAsync() + { + var container = new Container(); + container.Options.EnableAutoVerification = false; + + container.RegisterSingleton(); + + container.Register(); + container.Register(); + container.Register(); + + var settings = await SettingsJsonSerializer.Deserialize(); + container.RegisterInstance(settings); + + var pluginManager = new PluginManager(); + pluginManager.Load(); + container.RegisterInstance(pluginManager); + + + var app = container.GetInstance(); + app.Run(); + } + } +} diff --git a/Windows/Properties/AssemblyInfo.cs b/Windows/MassiveKnob/Properties/AssemblyInfo.cs similarity index 100% rename from Windows/Properties/AssemblyInfo.cs rename to Windows/MassiveKnob/Properties/AssemblyInfo.cs diff --git a/Windows/Resources/Icon.ai b/Windows/MassiveKnob/Resources/Icon.ai similarity index 100% rename from Windows/Resources/Icon.ai rename to Windows/MassiveKnob/Resources/Icon.ai diff --git a/Windows/Resources/MainIcon.ico b/Windows/MassiveKnob/Resources/MainIcon.ico similarity index 100% rename from Windows/Resources/MainIcon.ico rename to Windows/MassiveKnob/Resources/MainIcon.ico diff --git a/Windows/Resources/NotifyIcon.ico b/Windows/MassiveKnob/Resources/NotifyIcon.ico similarity index 100% rename from Windows/Resources/NotifyIcon.ico rename to Windows/MassiveKnob/Resources/NotifyIcon.ico diff --git a/Windows/MassiveKnob/Settings/Settings.cs b/Windows/MassiveKnob/Settings/Settings.cs new file mode 100644 index 0000000..2ac71c3 --- /dev/null +++ b/Windows/MassiveKnob/Settings/Settings.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; +using Newtonsoft.Json.Linq; + +namespace MassiveKnob.Settings +{ + public class Settings + { + public DeviceSettings Device { get; set; } + public List Actions { get; set; } + + + public static Settings Default() + { + return new Settings + { + Device = null, + Actions = new List() + }; + } + + + public class DeviceSettings + { + public Guid? PluginId { get; set; } + public Guid? DeviceId { get; set; } + public JObject Settings { get; set; } + } + + + public class ActionSettings + { + public Guid PluginId { get; set; } + public Guid ActionId { get; set; } + public JObject Settings { get; set; } + } + } +} diff --git a/Windows/Settings/SettingsJsonSerializer.cs b/Windows/MassiveKnob/Settings/SettingsJsonSerializer.cs similarity index 53% rename from Windows/Settings/SettingsJsonSerializer.cs rename to Windows/MassiveKnob/Settings/SettingsJsonSerializer.cs index d696165..dddc346 100644 --- a/Windows/Settings/SettingsJsonSerializer.cs +++ b/Windows/MassiveKnob/Settings/SettingsJsonSerializer.cs @@ -1,6 +1,5 @@ using System; using System.IO; -using System.Linq; using System.Text; using System.Threading.Tasks; using Newtonsoft.Json; @@ -25,8 +24,7 @@ namespace MassiveKnob.Settings public static async Task Serialize(Settings settings, string filename) { - var serializedSettings = SerializedSettings.FromSettings(settings); - var json = JsonConvert.SerializeObject(serializedSettings); + var json = JsonConvert.SerializeObject(settings); using (var stream = new FileStream(filename, FileMode.Create, FileAccess.Write, FileShare.Read, 4096, true)) using (var streamWriter = new StreamWriter(stream, Encoding.UTF8)) @@ -58,49 +56,7 @@ namespace MassiveKnob.Settings if (string.IsNullOrEmpty(json)) return Settings.Default(); - var serializedSettings = JsonConvert.DeserializeObject(json); - return serializedSettings.ToSettings(); - } - - - private class SerializedSettings - { - // ReSharper disable MemberCanBePrivate.Local - used for JSON serialization - public string SerialPort; - public SerializedKnobSettings[] Knobs; - // ReSharper restore MemberCanBePrivate.Local - - - public static SerializedSettings FromSettings(Settings settings) - { - return new SerializedSettings - { - SerialPort = settings.SerialPort, - Knobs = settings.Knobs.Select(knob => new SerializedKnobSettings - { - DeviceId = knob.DeviceId - }).ToArray() - }; - } - - - public Settings ToSettings() - { - return new Settings - { - SerialPort = SerialPort, - Knobs = Knobs.Select(knob => new Settings.KnobSettings - { - DeviceId = knob.DeviceId - }).ToList() - }; - } - - - public class SerializedKnobSettings - { - public Guid? DeviceId; - } + return JsonConvert.DeserializeObject(json); } } } diff --git a/Windows/Strings.Designer.cs b/Windows/MassiveKnob/Strings.Designer.cs similarity index 100% rename from Windows/Strings.Designer.cs rename to Windows/MassiveKnob/Strings.Designer.cs diff --git a/Windows/Strings.resx b/Windows/MassiveKnob/Strings.resx similarity index 100% rename from Windows/Strings.resx rename to Windows/MassiveKnob/Strings.resx diff --git a/Windows/MassiveKnob/Style.xaml b/Windows/MassiveKnob/Style.xaml new file mode 100644 index 0000000..443fe67 --- /dev/null +++ b/Windows/MassiveKnob/Style.xaml @@ -0,0 +1,22 @@ + + + + + + + + + \ No newline at end of file diff --git a/Windows/UserControls/KnobDeviceControl.Designer.cs b/Windows/MassiveKnob/UserControls/KnobDeviceControl.Designer.cs similarity index 100% rename from Windows/UserControls/KnobDeviceControl.Designer.cs rename to Windows/MassiveKnob/UserControls/KnobDeviceControl.Designer.cs diff --git a/Windows/UserControls/KnobDeviceControl.cs b/Windows/MassiveKnob/UserControls/KnobDeviceControl.cs similarity index 100% rename from Windows/UserControls/KnobDeviceControl.cs rename to Windows/MassiveKnob/UserControls/KnobDeviceControl.cs diff --git a/Windows/MassiveKnob/View/SettingsWindow.xaml b/Windows/MassiveKnob/View/SettingsWindow.xaml new file mode 100644 index 0000000..601f5e4 --- /dev/null +++ b/Windows/MassiveKnob/View/SettingsWindow.xaml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + Device + + + + + + + + + Controls + + + diff --git a/Windows/MassiveKnob/View/SettingsWindow.xaml.cs b/Windows/MassiveKnob/View/SettingsWindow.xaml.cs new file mode 100644 index 0000000..8d9ec31 --- /dev/null +++ b/Windows/MassiveKnob/View/SettingsWindow.xaml.cs @@ -0,0 +1,16 @@ +using MassiveKnob.ViewModel; + +namespace MassiveKnob.View +{ + /// + /// Interaction logic for SettingsWindow.xaml + /// + public partial class SettingsWindow + { + public SettingsWindow(SettingsViewModel settingsViewModel) + { + DataContext = settingsViewModel; + InitializeComponent(); + } + } +} diff --git a/Windows/MassiveKnob/ViewModel/SettingsViewModel.cs b/Windows/MassiveKnob/ViewModel/SettingsViewModel.cs new file mode 100644 index 0000000..4764a9b --- /dev/null +++ b/Windows/MassiveKnob/ViewModel/SettingsViewModel.cs @@ -0,0 +1,109 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Windows.Controls; +using MassiveKnob.Model; +using MassiveKnob.Plugin; + +namespace MassiveKnob.ViewModel +{ + public class SettingsViewModel : INotifyPropertyChanged + { + private readonly Settings.Settings settings; + private readonly IMassiveKnobOrchestrator orchestrator; + private DeviceViewModel selectedDevice; + private UserControl settingsControl; + + + public IEnumerable Devices { get; } + public DeviceViewModel SelectedDevice + { + get => selectedDevice; + + set + { + if (value == selectedDevice) + return; + + selectedDevice = value; + var deviceInstance = orchestrator.SetActiveDevice(value?.Device); + + if (value == null) + settings.Device = null; + else + { + settings.Device = new Settings.Settings.DeviceSettings + { + PluginId = value.Plugin.PluginId, + DeviceId = value.Device.DeviceId, + Settings = null + }; + } + + OnPropertyChanged(); + + SettingsControl = deviceInstance?.CreateSettingsControl(); + } + } + + public UserControl SettingsControl + { + get => settingsControl; + + set + { + if (value == settingsControl) + return; + + settingsControl = value; + OnPropertyChanged(); + } + } + + + + + public SettingsViewModel(IPluginManager pluginManager, Settings.Settings settings, IMassiveKnobOrchestrator orchestrator) + { + this.settings = settings; + this.orchestrator = orchestrator; + + Devices = pluginManager.GetDevicePlugins().SelectMany(dp => dp.Devices.Select(d => new DeviceViewModel(dp, d))); + + if (settings.Device != null) + SelectedDevice = Devices.FirstOrDefault(d => + d.Plugin.PluginId == settings.Device.PluginId && + d.Device.DeviceId == settings.Device.DeviceId); + } + + + public event PropertyChangedEventHandler PropertyChanged; + + protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } + + + + public class DeviceViewModel + { + // ReSharper disable UnusedMember.Global - used by WPF Binding + public string Name => Device.Name; + public string Description => Device.Description; + // ReSharper restore UnusedMember.Global + + public IMassiveKnobDevicePlugin Plugin { get; } + public IMassiveKnobDevice Device { get; } + + + public DeviceViewModel(IMassiveKnobDevicePlugin plugin, IMassiveKnobDevice device) + { + Plugin = plugin; + Device = device; + } + } + } +} diff --git a/Windows/Program.cs b/Windows/Program.cs deleted file mode 100644 index 8f2f1f3..0000000 --- a/Windows/Program.cs +++ /dev/null @@ -1,44 +0,0 @@ -using System; -using System.Windows.Forms; -using MassiveKnob.Forms; -using MassiveKnob.Hardware; -using SimpleInjector; -using SimpleInjector.Diagnostics; - -namespace MassiveKnob -{ - public static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - public static void Main() - { - var container = BuildContainer(); - - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(container.GetInstance()); - } - - - private static Container BuildContainer() - { - var container = new Container(); - container.Options.EnableAutoVerification = false; - - container.Register(); - container.GetRegistration(typeof(SettingsForm))?.Registration - .SuppressDiagnosticWarning(DiagnosticType.DisposableTransientComponent, "Windows Form implements IDisposable"); - - container.Register(); - - // For testing without the hardware: - container.Register(); - //container.Register(() => new MockMassiveKnobHardwareFactory(3, TimeSpan.FromSeconds(1), 25)); - - return container; - } - } -} diff --git a/Windows/Properties/Resources.Designer.cs b/Windows/Properties/Resources.Designer.cs deleted file mode 100644 index a1a7364..0000000 --- a/Windows/Properties/Resources.Designer.cs +++ /dev/null @@ -1,70 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - - -namespace MassiveKnob.Properties -{ - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("MassiveKnob.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { - return resourceCulture; - } - set - { - resourceCulture = value; - } - } - } -} diff --git a/Windows/Properties/Resources.resx b/Windows/Properties/Resources.resx deleted file mode 100644 index af7dbeb..0000000 --- a/Windows/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/Windows/Properties/Settings.Designer.cs b/Windows/Properties/Settings.Designer.cs deleted file mode 100644 index 28fa051..0000000 --- a/Windows/Properties/Settings.Designer.cs +++ /dev/null @@ -1,29 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - - -namespace MassiveKnob.Properties -{ - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { - return defaultInstance; - } - } - } -} diff --git a/Windows/Properties/Settings.settings b/Windows/Properties/Settings.settings deleted file mode 100644 index 3964565..0000000 --- a/Windows/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/Windows/Settings/Settings.cs b/Windows/Settings/Settings.cs deleted file mode 100644 index ddfc593..0000000 --- a/Windows/Settings/Settings.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace MassiveKnob.Settings -{ - public class Settings - { - public string SerialPort { get; set; } - public List Knobs { get; set; } - - - public static Settings Default() - { - return new Settings - { - Knobs = new List() - }; - } - - - public class KnobSettings - { - public Guid? DeviceId { get; set; } - } - } -} From ff1e1ca74c16cb9f429b345d5885118c5198045a Mon Sep 17 00:00:00 2001 From: Mark van Renswoude Date: Wed, 24 Feb 2021 09:05:11 +0100 Subject: [PATCH 05/19] Working proof-of-concept for refactoring Implemented orchestrator Implemented mock device Implemented serial device Implemented volume action Removed old implementation --- Arduino/MassiveKnob/MassiveKnob.ino | 44 +- .../Actions/DeviceVolumeAction.cs | 57 +- .../CoreAudioControllerInstance.cs | 16 + .../MassiveKnob.Plugin.CoreAudio.csproj | 26 +- .../MassiveKnobCoreAudioPlugin.cs | 13 + .../Properties/AssemblyInfo.cs | 1 - .../Settings/BaseDeviceSettings.cs | 9 + .../Settings/BaseDeviceSettingsViewModel.cs | 110 ++++ .../Settings/DeviceVolumeActionSettings.cs | 7 + .../Settings/DeviceVolumeActionSettings.xaml | 12 - .../DeviceVolumeActionSettings.xaml.cs | 28 - .../DeviceVolumeActionSettingsView.xaml | 14 + .../DeviceVolumeActionSettingsView.xaml.cs | 14 + .../DeviceVolumeActionSettingsViewModel.cs | 10 + .../Strings.Designer.cs | 108 ++++ .../MassiveKnob.Plugin.CoreAudio/Strings.resx | 135 +++++ .../Devices/MockDevice.cs | 76 ++- .../MassiveKnob.Plugin.MockDevice.csproj | 8 +- .../Settings/MockDeviceSettings.cs | 9 + .../Settings/MockDeviceSettings.xaml | 24 - .../Settings/MockDeviceSettings.xaml.cs | 28 - .../Settings/MockDeviceSettingsView.xaml | 30 + .../Settings/MockDeviceSettingsView.xaml.cs | 15 + .../Settings/MockDeviceSettingsViewModel.cs | 67 +++ .../Devices/SerialDevice.cs | 64 ++ .../MassiveKnob.Plugin.SerialDevice.csproj | 71 +++ .../MassiveKnobSerialDevicePlugin.cs | 20 + .../Properties/AssemblyInfo.cs | 35 ++ .../Settings/SerialDeviceSettings.cs | 8 + .../Settings/SerialDeviceSettingsView.xaml | 27 + .../Settings/SerialDeviceSettingsView.xaml.cs | 14 + .../Settings/SerialDeviceSettingsViewModel.cs | 77 +++ .../Worker/SerialWorker.cs | 233 ++++++++ .../MassiveKnob.Plugin/IMassiveKnobAction.cs | 16 +- .../IMassiveKnobActionContext.cs | 10 +- .../IMassiveKnobActionInstance.cs | 6 + .../IMassiveKnobAnalogAction.cs | 2 +- .../MassiveKnob.Plugin/IMassiveKnobDevice.cs | 3 +- .../IMassiveKnobDeviceContext.cs | 80 +++ .../IMassiveKnobDeviceInstance.cs | 6 + ...ePlugin.cs => IMassiveKnobDevicePlugin.cs} | 0 .../IMassiveKnobDigitalAction.cs | 9 +- .../MassiveKnob.Plugin.csproj | 3 +- .../Properties/AssemblyInfo.cs | 1 - Windows/MassiveKnob.sln | 6 + .../Hardware/AbstractMassiveKnobHardware.cs | 69 --- .../Hardware/CoreAudioDeviceManager.cs | 82 --- .../Hardware/IAudioDeviceManager.cs | 27 - .../Hardware/IMassiveKnobHardware.cs | 31 - .../Hardware/MockMassiveKnobHardware.cs | 71 --- .../Hardware/SerialMassiveKnobHardware.cs | 180 ------ .../Helpers/ComboBoxTemplateSelector.cs | 5 +- .../MassiveKnob/Helpers/DelegateCommand.cs | 4 +- Windows/MassiveKnob/Helpers/SerialQueue.cs | 65 ++ Windows/MassiveKnob/MassiveKnob.csproj | 20 +- .../Model/IMassiveKnobOrchestrator.cs | 41 +- Windows/MassiveKnob/Model/IPluginManager.cs | 3 +- .../Model/MassiveKnobOrchestrator.cs | 559 +++++++++++++++++- Windows/MassiveKnob/Model/PluginManager.cs | 97 ++- Windows/MassiveKnob/Program.cs | 39 +- Windows/MassiveKnob/Settings/Settings.cs | 48 +- .../Settings/SettingsJsonSerializer.cs | 46 +- Windows/MassiveKnob/Strings.Designer.cs | 78 +-- Windows/MassiveKnob/Strings.resx | 28 +- Windows/MassiveKnob/Style.xaml | 15 + Windows/MassiveKnob/View/InputOutputView.xaml | 44 ++ .../MassiveKnob/View/InputOutputView.xaml.cs | 13 + Windows/MassiveKnob/View/SettingsWindow.xaml | 95 ++- .../MassiveKnob/ViewModel/ActionViewModel.cs | 29 + .../MassiveKnob/ViewModel/DeviceViewModel.cs | 25 + .../ViewModel/InputOutputViewModel.cs | 86 +++ .../ViewModel/SettingsViewModel.cs | 164 +++-- 72 files changed, 2657 insertions(+), 859 deletions(-) create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/CoreAudioControllerInstance.cs create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/Settings/BaseDeviceSettings.cs create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/Settings/BaseDeviceSettingsViewModel.cs create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/Settings/DeviceVolumeActionSettings.cs delete mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/Settings/DeviceVolumeActionSettings.xaml delete mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/Settings/DeviceVolumeActionSettings.xaml.cs create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/Settings/DeviceVolumeActionSettingsView.xaml create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/Settings/DeviceVolumeActionSettingsView.xaml.cs create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/Settings/DeviceVolumeActionSettingsViewModel.cs create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/Strings.Designer.cs create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/Strings.resx create mode 100644 Windows/MassiveKnob.Plugin.MockDevice/Settings/MockDeviceSettings.cs delete mode 100644 Windows/MassiveKnob.Plugin.MockDevice/Settings/MockDeviceSettings.xaml delete mode 100644 Windows/MassiveKnob.Plugin.MockDevice/Settings/MockDeviceSettings.xaml.cs create mode 100644 Windows/MassiveKnob.Plugin.MockDevice/Settings/MockDeviceSettingsView.xaml create mode 100644 Windows/MassiveKnob.Plugin.MockDevice/Settings/MockDeviceSettingsView.xaml.cs create mode 100644 Windows/MassiveKnob.Plugin.MockDevice/Settings/MockDeviceSettingsViewModel.cs create mode 100644 Windows/MassiveKnob.Plugin.SerialDevice/Devices/SerialDevice.cs create mode 100644 Windows/MassiveKnob.Plugin.SerialDevice/MassiveKnob.Plugin.SerialDevice.csproj create mode 100644 Windows/MassiveKnob.Plugin.SerialDevice/MassiveKnobSerialDevicePlugin.cs create mode 100644 Windows/MassiveKnob.Plugin.SerialDevice/Properties/AssemblyInfo.cs create mode 100644 Windows/MassiveKnob.Plugin.SerialDevice/Settings/SerialDeviceSettings.cs create mode 100644 Windows/MassiveKnob.Plugin.SerialDevice/Settings/SerialDeviceSettingsView.xaml create mode 100644 Windows/MassiveKnob.Plugin.SerialDevice/Settings/SerialDeviceSettingsView.xaml.cs create mode 100644 Windows/MassiveKnob.Plugin.SerialDevice/Settings/SerialDeviceSettingsViewModel.cs create mode 100644 Windows/MassiveKnob.Plugin.SerialDevice/Worker/SerialWorker.cs create mode 100644 Windows/MassiveKnob.Plugin/IMassiveKnobDeviceContext.cs rename Windows/MassiveKnob.Plugin/{IMassiveKnobHardwarePlugin.cs => IMassiveKnobDevicePlugin.cs} (100%) delete mode 100644 Windows/MassiveKnob/Hardware/AbstractMassiveKnobHardware.cs delete mode 100644 Windows/MassiveKnob/Hardware/CoreAudioDeviceManager.cs delete mode 100644 Windows/MassiveKnob/Hardware/IAudioDeviceManager.cs delete mode 100644 Windows/MassiveKnob/Hardware/IMassiveKnobHardware.cs delete mode 100644 Windows/MassiveKnob/Hardware/MockMassiveKnobHardware.cs delete mode 100644 Windows/MassiveKnob/Hardware/SerialMassiveKnobHardware.cs create mode 100644 Windows/MassiveKnob/Helpers/SerialQueue.cs create mode 100644 Windows/MassiveKnob/View/InputOutputView.xaml create mode 100644 Windows/MassiveKnob/View/InputOutputView.xaml.cs create mode 100644 Windows/MassiveKnob/ViewModel/ActionViewModel.cs create mode 100644 Windows/MassiveKnob/ViewModel/DeviceViewModel.cs create mode 100644 Windows/MassiveKnob/ViewModel/InputOutputViewModel.cs diff --git a/Arduino/MassiveKnob/MassiveKnob.ino b/Arduino/MassiveKnob/MassiveKnob.ino index 5169183..ec70437 100644 --- a/Arduino/MassiveKnob/MassiveKnob.ino +++ b/Arduino/MassiveKnob/MassiveKnob.ino @@ -9,8 +9,7 @@ const byte KnobCount = 1; // For each potentiometer, specify the port const byte KnobPin[KnobCount] = { -// A0, - A1 + A2 }; // Minimum time between reporting changing values, reduces serial traffic @@ -46,6 +45,7 @@ float emaValue[KnobCount]; unsigned long currentTime; unsigned long lastPlot; + void setup() { Serial.begin(115200); @@ -56,7 +56,10 @@ void setup() // Seed the moving average for (byte knobIndex = 0; knobIndex < KnobCount; knobIndex++) + { + pinMode(KnobPin[knobIndex], INPUT); emaValue[knobIndex] = analogRead(KnobPin[knobIndex]); + } for (byte seed = 1; seed < EMASeedCount - 1; seed++) for (byte knobIndex = 0; knobIndex < KnobCount; knobIndex++) @@ -119,18 +122,28 @@ void processMessage(byte message) case 'Q': // Quit processQuitMessage(); break; + + default: + outputError("Unknown message: " + (char)message); + break; } } void processHandshakeMessage() { - byte buffer[2]; + byte buffer[3]; if (Serial.readBytes(buffer, 3) < 3) + { + outputError("Invalid handshake length"); return; + } if (buffer[0] != 'M' || buffer[1] != 'K') + { + outputError("Invalid handshake: " + String((char)buffer[0]) + String((char)buffer[1]) + String((char)buffer[2])); return; + } switch (buffer[2]) { @@ -147,6 +160,8 @@ void processHandshakeMessage() break; default: + outputMode = PlainText; + outputError("Unknown output mode: " + String((char)buffer[2])); return; } @@ -185,6 +200,11 @@ void processQuitMessage() byte getVolume(byte knobIndex) { + analogRead(KnobPin[knobIndex]); + + // Give the ADC some time to stabilize + delay(10); + analogReadValue[knobIndex] = analogRead(KnobPin[knobIndex]); emaValue[knobIndex] = (EMAAlpha * analogReadValue[knobIndex]) + ((1 - EMAAlpha) * emaValue[knobIndex]); @@ -228,3 +248,21 @@ void outputPlotter() Serial.println(); } + + +void outputError(String message) +{ + switch (outputMode) + { + case Binary: + Serial.write('E'); + Serial.write((byte)message.length()); + Serial.print(message); + break; + + case PlainText: + Serial.print("Error: "); + Serial.println(message); + break; + } +} diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/Actions/DeviceVolumeAction.cs b/Windows/MassiveKnob.Plugin.CoreAudio/Actions/DeviceVolumeAction.cs index 93829f5..db31607 100644 --- a/Windows/MassiveKnob.Plugin.CoreAudio/Actions/DeviceVolumeAction.cs +++ b/Windows/MassiveKnob.Plugin.CoreAudio/Actions/DeviceVolumeAction.cs @@ -1,6 +1,8 @@ using System; using System.Threading.Tasks; using System.Windows.Controls; +using AudioSwitcher.AudioApi; +using MassiveKnob.Plugin.CoreAudio.Settings; namespace MassiveKnob.Plugin.CoreAudio.Actions { @@ -12,45 +14,62 @@ namespace MassiveKnob.Plugin.CoreAudio.Actions public string Description { get; } = "Sets the volume for the selected device, regardless of the current default device."; - public IMassiveKnobActionInstance Create(IMassiveKnobActionContext context) + public IMassiveKnobActionInstance Create() { - return new Instance(context); + return new Instance(); } private class Instance : IMassiveKnobAnalogAction { - private readonly Settings settings; + private IMassiveKnobActionContext actionContext; + private DeviceVolumeActionSettings settings; + private IDevice playbackDevice; - - public Instance(IMassiveKnobContext context) + + public void Initialize(IMassiveKnobActionContext context) { - settings = context.GetSettings(); + actionContext = context; + settings = context.GetSettings(); + ApplySettings(); } - + public void Dispose() { } - + + private void ApplySettings() + { + var coreAudioController = CoreAudioControllerInstance.Acquire(); + playbackDevice = settings.DeviceId.HasValue ? coreAudioController.GetDevice(settings.DeviceId.Value) : null; + } + + public UserControl CreateSettingsControl() { - return null; + var viewModel = new DeviceVolumeActionSettingsViewModel(settings); + viewModel.PropertyChanged += (sender, args) => + { + if (!viewModel.IsSettingsProperty(args.PropertyName)) + return; + + actionContext.SetSettings(settings); + ApplySettings(); + }; + + return new DeviceVolumeActionSettingsView(viewModel); } - - public ValueTask AnalogChanged(byte value) + + public async ValueTask AnalogChanged(byte value) { - // TODO set volume - return default; + if (playbackDevice == null) + return; + + await playbackDevice.SetVolumeAsync(value); } } - - - private class Settings - { - - } } } diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/CoreAudioControllerInstance.cs b/Windows/MassiveKnob.Plugin.CoreAudio/CoreAudioControllerInstance.cs new file mode 100644 index 0000000..1026c25 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/CoreAudioControllerInstance.cs @@ -0,0 +1,16 @@ +using System; +using AudioSwitcher.AudioApi.CoreAudio; + +namespace MassiveKnob.Plugin.CoreAudio +{ + public static class CoreAudioControllerInstance + { + private static readonly Lazy Instance = new Lazy(); + + + public static CoreAudioController Acquire() + { + return Instance.Value; + } + } +} diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/MassiveKnob.Plugin.CoreAudio.csproj b/Windows/MassiveKnob.Plugin.CoreAudio/MassiveKnob.Plugin.CoreAudio.csproj index cb62ecd..123b6c9 100644 --- a/Windows/MassiveKnob.Plugin.CoreAudio/MassiveKnob.Plugin.CoreAudio.csproj +++ b/Windows/MassiveKnob.Plugin.CoreAudio/MassiveKnob.Plugin.CoreAudio.csproj @@ -46,10 +46,20 @@ + - - DeviceVolumeActionSettings.xaml + + + DeviceVolumeActionSettingsView.xaml + + + + + + Strings.resx + True + True @@ -59,13 +69,21 @@ + + 4.0.0-alpha5 + 4.5.4 - - + + ResXFileCodeGenerator + Strings.Designer.cs + + + + Designer MSBuild:Compile diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/MassiveKnobCoreAudioPlugin.cs b/Windows/MassiveKnob.Plugin.CoreAudio/MassiveKnobCoreAudioPlugin.cs index 1e8cc5e..13c738d 100644 --- a/Windows/MassiveKnob.Plugin.CoreAudio/MassiveKnobCoreAudioPlugin.cs +++ b/Windows/MassiveKnob.Plugin.CoreAudio/MassiveKnobCoreAudioPlugin.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Threading.Tasks; using MassiveKnob.Plugin.CoreAudio.Actions; namespace MassiveKnob.Plugin.CoreAudio @@ -17,5 +18,17 @@ namespace MassiveKnob.Plugin.CoreAudio { new DeviceVolumeAction() }; + + + public MassiveKnobCoreAudioPlugin() + { + // My system suffers from this issue: https://github.com/xenolightning/AudioSwitcher/issues/40 + // ...which causes the first call to the CoreAudioController to take up to 10 seconds, + // so initialise it as soon as possible. Bit of a workaround, but eh. + Task.Run(() => + { + CoreAudioControllerInstance.Acquire(); + }); + } } } diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/Properties/AssemblyInfo.cs b/Windows/MassiveKnob.Plugin.CoreAudio/Properties/AssemblyInfo.cs index b37ec34..7ba6cb2 100644 --- a/Windows/MassiveKnob.Plugin.CoreAudio/Properties/AssemblyInfo.cs +++ b/Windows/MassiveKnob.Plugin.CoreAudio/Properties/AssemblyInfo.cs @@ -1,5 +1,4 @@ using System.Reflection; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // General Information about an assembly is controlled through the following diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/Settings/BaseDeviceSettings.cs b/Windows/MassiveKnob.Plugin.CoreAudio/Settings/BaseDeviceSettings.cs new file mode 100644 index 0000000..dd8cb66 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/Settings/BaseDeviceSettings.cs @@ -0,0 +1,9 @@ +using System; + +namespace MassiveKnob.Plugin.CoreAudio.Settings +{ + public class BaseDeviceSettings + { + public Guid? DeviceId { get; set; } + } +} diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/Settings/BaseDeviceSettingsViewModel.cs b/Windows/MassiveKnob.Plugin.CoreAudio/Settings/BaseDeviceSettingsViewModel.cs new file mode 100644 index 0000000..454bd84 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/Settings/BaseDeviceSettingsViewModel.cs @@ -0,0 +1,110 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Threading.Tasks; +using System.Windows; +using AudioSwitcher.AudioApi; + +namespace MassiveKnob.Plugin.CoreAudio.Settings +{ + public class BaseDeviceSettingsViewModel : INotifyPropertyChanged + { + private readonly BaseDeviceSettings settings; + public event PropertyChangedEventHandler PropertyChanged; + + private IList playbackDevices; + private PlaybackDeviceViewModel selectedDevice; + + // ReSharper disable UnusedMember.Global - used by WPF Binding + public IList PlaybackDevices + { + get => playbackDevices; + set + { + playbackDevices = value; + OnPropertyChanged(); + } + } + + public PlaybackDeviceViewModel SelectedDevice + { + get => selectedDevice; + set + { + if (value == selectedDevice) + return; + + selectedDevice = value; + settings.DeviceId = selectedDevice?.Id; + OnPropertyChanged(); + } + } + // ReSharper restore UnusedMember.Global + + + public BaseDeviceSettingsViewModel(BaseDeviceSettings settings) + { + this.settings = settings; + + Task.Run(async () => + { + var coreAudioController = CoreAudioControllerInstance.Acquire(); + var devices = await coreAudioController.GetPlaybackDevicesAsync(); + var deviceViewModels = devices + .OrderBy(d => d.FullName) + .Select(PlaybackDeviceViewModel.FromDevice) + .ToList(); + + Application.Current.Dispatcher.Invoke(() => + { + PlaybackDevices = deviceViewModels; + SelectedDevice = deviceViewModels.SingleOrDefault(d => d.Id == settings.DeviceId); + }); + }); + } + + + public virtual bool IsSettingsProperty(string propertyName) + { + return propertyName != nameof(PlaybackDevices); + } + + + protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } + } + + + public class PlaybackDeviceViewModel + { + public Guid Id { get; private set; } + public string DisplayName { get; private set; } + + + public static PlaybackDeviceViewModel FromDevice(IDevice device) + { + string displayFormat; + + if ((device.State & DeviceState.Disabled) != 0) + displayFormat = Strings.DeviceDisplayNameDisabled; + else if ((device.State & DeviceState.Unplugged) != 0) + displayFormat = Strings.DeviceDisplayNameUnplugged; + else if ((device.State & DeviceState.NotPresent) != 0) + displayFormat = Strings.DeviceDisplayNameNotPresent; + else if ((device.State & DeviceState.Active) == 0) + displayFormat = Strings.DeviceDisplayNameInactive; + else + displayFormat = Strings.DeviceDisplayNameActive; + + return new PlaybackDeviceViewModel + { + Id = device.Id, + DisplayName = string.Format(displayFormat, device.FullName) + }; + } + } +} diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/Settings/DeviceVolumeActionSettings.cs b/Windows/MassiveKnob.Plugin.CoreAudio/Settings/DeviceVolumeActionSettings.cs new file mode 100644 index 0000000..6fa5eee --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/Settings/DeviceVolumeActionSettings.cs @@ -0,0 +1,7 @@ +namespace MassiveKnob.Plugin.CoreAudio.Settings +{ + public class DeviceVolumeActionSettings : BaseDeviceSettings + { + // TODO OSD + } +} diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/Settings/DeviceVolumeActionSettings.xaml b/Windows/MassiveKnob.Plugin.CoreAudio/Settings/DeviceVolumeActionSettings.xaml deleted file mode 100644 index 86aa8c4..0000000 --- a/Windows/MassiveKnob.Plugin.CoreAudio/Settings/DeviceVolumeActionSettings.xaml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/Settings/DeviceVolumeActionSettings.xaml.cs b/Windows/MassiveKnob.Plugin.CoreAudio/Settings/DeviceVolumeActionSettings.xaml.cs deleted file mode 100644 index 6c1ed5b..0000000 --- a/Windows/MassiveKnob.Plugin.CoreAudio/Settings/DeviceVolumeActionSettings.xaml.cs +++ /dev/null @@ -1,28 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows; -using System.Windows.Controls; -using System.Windows.Data; -using System.Windows.Documents; -using System.Windows.Input; -using System.Windows.Media; -using System.Windows.Media.Imaging; -using System.Windows.Navigation; -using System.Windows.Shapes; - -namespace MassiveKnob.Plugin.CoreAudio.Settings -{ - /// - /// Interaction logic for DeviceVolumeActionSettings.xaml - /// - public partial class DeviceVolumeActionSettings : UserControl - { - public DeviceVolumeActionSettings() - { - InitializeComponent(); - } - } -} diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/Settings/DeviceVolumeActionSettingsView.xaml b/Windows/MassiveKnob.Plugin.CoreAudio/Settings/DeviceVolumeActionSettingsView.xaml new file mode 100644 index 0000000..b1485b0 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/Settings/DeviceVolumeActionSettingsView.xaml @@ -0,0 +1,14 @@ + + + Playback device + + + diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/Settings/DeviceVolumeActionSettingsView.xaml.cs b/Windows/MassiveKnob.Plugin.CoreAudio/Settings/DeviceVolumeActionSettingsView.xaml.cs new file mode 100644 index 0000000..7ecd71f --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/Settings/DeviceVolumeActionSettingsView.xaml.cs @@ -0,0 +1,14 @@ +namespace MassiveKnob.Plugin.CoreAudio.Settings +{ + /// + /// Interaction logic for DeviceVolumeActionSettingsView.xaml + /// + public partial class DeviceVolumeActionSettingsView + { + public DeviceVolumeActionSettingsView(DeviceVolumeActionSettingsViewModel viewModel) + { + DataContext = viewModel; + InitializeComponent(); + } + } +} diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/Settings/DeviceVolumeActionSettingsViewModel.cs b/Windows/MassiveKnob.Plugin.CoreAudio/Settings/DeviceVolumeActionSettingsViewModel.cs new file mode 100644 index 0000000..7e46566 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/Settings/DeviceVolumeActionSettingsViewModel.cs @@ -0,0 +1,10 @@ +namespace MassiveKnob.Plugin.CoreAudio.Settings +{ + public class DeviceVolumeActionSettingsViewModel : BaseDeviceSettingsViewModel + { + // ReSharper disable once SuggestBaseTypeForParameter - by design + public DeviceVolumeActionSettingsViewModel(DeviceVolumeActionSettings settings) : base(settings) + { + } + } +} diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/Strings.Designer.cs b/Windows/MassiveKnob.Plugin.CoreAudio/Strings.Designer.cs new file mode 100644 index 0000000..746832c --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/Strings.Designer.cs @@ -0,0 +1,108 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace MassiveKnob.Plugin.CoreAudio { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Strings { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Strings() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("MassiveKnob.Plugin.CoreAudio.Strings", typeof(Strings).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to {0}. + /// + internal static string DeviceDisplayNameActive { + get { + return ResourceManager.GetString("DeviceDisplayNameActive", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} (Disabled). + /// + internal static string DeviceDisplayNameDisabled { + get { + return ResourceManager.GetString("DeviceDisplayNameDisabled", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} (Inactive). + /// + internal static string DeviceDisplayNameInactive { + get { + return ResourceManager.GetString("DeviceDisplayNameInactive", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} (Not present). + /// + internal static string DeviceDisplayNameNotPresent { + get { + return ResourceManager.GetString("DeviceDisplayNameNotPresent", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} (Unplugged). + /// + internal static string DeviceDisplayNameUnplugged { + get { + return ResourceManager.GetString("DeviceDisplayNameUnplugged", resourceCulture); + } + } + } +} diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/Strings.resx b/Windows/MassiveKnob.Plugin.CoreAudio/Strings.resx new file mode 100644 index 0000000..5a89d1c --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/Strings.resx @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + {0} + + + {0} (Disabled) + + + {0} (Inactive) + + + {0} (Not present) + + + {0} (Unplugged) + + \ No newline at end of file diff --git a/Windows/MassiveKnob.Plugin.MockDevice/Devices/MockDevice.cs b/Windows/MassiveKnob.Plugin.MockDevice/Devices/MockDevice.cs index d402c4d..4112c92 100644 --- a/Windows/MassiveKnob.Plugin.MockDevice/Devices/MockDevice.cs +++ b/Windows/MassiveKnob.Plugin.MockDevice/Devices/MockDevice.cs @@ -1,4 +1,5 @@ using System; +using System.Threading; using System.Windows.Controls; using MassiveKnob.Plugin.MockDevice.Settings; @@ -9,37 +10,86 @@ namespace MassiveKnob.Plugin.MockDevice.Devices public Guid DeviceId { get; } = new Guid("e1a4977a-abf4-4c75-a17d-fd8d3a8451ff"); public string Name { get; } = "Mock device"; public string Description { get; } = "Emulates the actual device but does not communicate with anything."; - - public IMassiveKnobDeviceInstance Create(IMassiveKnobContext context) + + public IMassiveKnobDeviceInstance Create() { - return new Instance(context); + return new Instance(); } private class Instance : IMassiveKnobDeviceInstance { - public Instance(IMassiveKnobContext context) + private IMassiveKnobDeviceContext deviceContext; + private MockDeviceSettings settings; + private Timer inputChangeTimer; + + private int reportedAnalogInputCount; + private int reportedDigitalInputCount; + private readonly Random random = new Random(); + + + public void Initialize(IMassiveKnobDeviceContext context) { - // TODO read settings + deviceContext = context; + settings = deviceContext.GetSettings(); + + ApplySettings(); } public void Dispose() { + inputChangeTimer?.Dispose(); + } + + + private void ApplySettings() + { + if (settings.AnalogCount != reportedAnalogInputCount || + settings.DigitalCount != reportedDigitalInputCount) + { + deviceContext.Connected(new DeviceSpecs(settings.AnalogCount, settings.DigitalCount, 0, 0)); + + reportedAnalogInputCount = settings.AnalogCount; + reportedDigitalInputCount = settings.DigitalCount; + } + + + var interval = TimeSpan.FromSeconds(Math.Max(settings.Interval, 1)); + + if (inputChangeTimer == null) + inputChangeTimer = new Timer(Tick, null, interval, interval); + else + inputChangeTimer.Change(interval, interval); } public UserControl CreateSettingsControl() { - // TODO pass context - return new MockDeviceSettings(); + var viewModel = new MockDeviceSettingsViewModel(settings); + viewModel.PropertyChanged += (sender, args) => + { + deviceContext.SetSettings(settings); + ApplySettings(); + }; + + return new MockDeviceSettingsView(viewModel); + } + + + private void Tick(object state) + { + var totalInputCount = reportedAnalogInputCount + reportedDigitalInputCount; + if (totalInputCount == 0) + return; + + var changeInput = random.Next(0, totalInputCount); + + if (changeInput < reportedAnalogInputCount) + deviceContext.AnalogChanged(changeInput, (byte)random.Next(0, 101)); + else + deviceContext.DigitalChanged(changeInput - reportedAnalogInputCount, random.Next(0, 2) == 1); } - } - - - private class Settings - { - // TODO interval, etc. } } } diff --git a/Windows/MassiveKnob.Plugin.MockDevice/MassiveKnob.Plugin.MockDevice.csproj b/Windows/MassiveKnob.Plugin.MockDevice/MassiveKnob.Plugin.MockDevice.csproj index d9a3c45..8a0f341 100644 --- a/Windows/MassiveKnob.Plugin.MockDevice/MassiveKnob.Plugin.MockDevice.csproj +++ b/Windows/MassiveKnob.Plugin.MockDevice/MassiveKnob.Plugin.MockDevice.csproj @@ -48,9 +48,11 @@ - - MockDeviceSettings.xaml + + MockDeviceSettingsView.xaml + + @@ -60,7 +62,7 @@ - + Designer MSBuild:Compile diff --git a/Windows/MassiveKnob.Plugin.MockDevice/Settings/MockDeviceSettings.cs b/Windows/MassiveKnob.Plugin.MockDevice/Settings/MockDeviceSettings.cs new file mode 100644 index 0000000..5990d4b --- /dev/null +++ b/Windows/MassiveKnob.Plugin.MockDevice/Settings/MockDeviceSettings.cs @@ -0,0 +1,9 @@ +namespace MassiveKnob.Plugin.MockDevice.Settings +{ + public class MockDeviceSettings + { + public int AnalogCount { get; set; } = 3; + public int DigitalCount { get; set; } = 1; + public int Interval { get; set; } = 5; + } +} diff --git a/Windows/MassiveKnob.Plugin.MockDevice/Settings/MockDeviceSettings.xaml b/Windows/MassiveKnob.Plugin.MockDevice/Settings/MockDeviceSettings.xaml deleted file mode 100644 index 15b1798..0000000 --- a/Windows/MassiveKnob.Plugin.MockDevice/Settings/MockDeviceSettings.xaml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - Number of knobs - - - Randomly change the volume - - diff --git a/Windows/MassiveKnob.Plugin.MockDevice/Settings/MockDeviceSettings.xaml.cs b/Windows/MassiveKnob.Plugin.MockDevice/Settings/MockDeviceSettings.xaml.cs deleted file mode 100644 index 843c196..0000000 --- a/Windows/MassiveKnob.Plugin.MockDevice/Settings/MockDeviceSettings.xaml.cs +++ /dev/null @@ -1,28 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows; -using System.Windows.Controls; -using System.Windows.Data; -using System.Windows.Documents; -using System.Windows.Input; -using System.Windows.Media; -using System.Windows.Media.Imaging; -using System.Windows.Navigation; -using System.Windows.Shapes; - -namespace MassiveKnob.Plugin.MockDevice.Settings -{ - /// - /// Interaction logic for MockDeviceSettings.xaml - /// - public partial class MockDeviceSettings : UserControl - { - public MockDeviceSettings() - { - InitializeComponent(); - } - } -} diff --git a/Windows/MassiveKnob.Plugin.MockDevice/Settings/MockDeviceSettingsView.xaml b/Windows/MassiveKnob.Plugin.MockDevice/Settings/MockDeviceSettingsView.xaml new file mode 100644 index 0000000..6fcf56b --- /dev/null +++ b/Windows/MassiveKnob.Plugin.MockDevice/Settings/MockDeviceSettingsView.xaml @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + Number of analog inputs + + + Number of digital inputs + + + Random change interval (seconds) + + + diff --git a/Windows/MassiveKnob.Plugin.MockDevice/Settings/MockDeviceSettingsView.xaml.cs b/Windows/MassiveKnob.Plugin.MockDevice/Settings/MockDeviceSettingsView.xaml.cs new file mode 100644 index 0000000..503729c --- /dev/null +++ b/Windows/MassiveKnob.Plugin.MockDevice/Settings/MockDeviceSettingsView.xaml.cs @@ -0,0 +1,15 @@ +namespace MassiveKnob.Plugin.MockDevice.Settings +{ + /// + /// Interaction logic for MockDeviceSettingsView.xaml + /// + public partial class MockDeviceSettingsView + { + public MockDeviceSettingsView(MockDeviceSettingsViewModel settingsViewModel) + { + DataContext = settingsViewModel; + + InitializeComponent(); + } + } +} diff --git a/Windows/MassiveKnob.Plugin.MockDevice/Settings/MockDeviceSettingsViewModel.cs b/Windows/MassiveKnob.Plugin.MockDevice/Settings/MockDeviceSettingsViewModel.cs new file mode 100644 index 0000000..54040ad --- /dev/null +++ b/Windows/MassiveKnob.Plugin.MockDevice/Settings/MockDeviceSettingsViewModel.cs @@ -0,0 +1,67 @@ +using System.ComponentModel; +using System.Runtime.CompilerServices; + +namespace MassiveKnob.Plugin.MockDevice.Settings +{ + public class MockDeviceSettingsViewModel : INotifyPropertyChanged + { + private readonly MockDeviceSettings settings; + public event PropertyChangedEventHandler PropertyChanged; + + + // ReSharper disable UnusedMember.Global - used by WPF Binding + public int AnalogCount + { + get => settings.AnalogCount; + set + { + if (value == settings.AnalogCount) + return; + + settings.AnalogCount = value; + OnPropertyChanged(); + } + } + + + public int DigitalCount + { + get => settings.DigitalCount; + set + { + if (value == settings.DigitalCount) + return; + + settings.DigitalCount = value; + OnPropertyChanged(); + } + } + + + public int Interval + { + get => settings.Interval; + set + { + if (value == settings.Interval) + return; + + settings.Interval = value; + OnPropertyChanged(); + } + } + // ReSharper restore UnusedMember.Global + + + public MockDeviceSettingsViewModel(MockDeviceSettings settings) + { + this.settings = settings; + } + + + protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } + } +} diff --git a/Windows/MassiveKnob.Plugin.SerialDevice/Devices/SerialDevice.cs b/Windows/MassiveKnob.Plugin.SerialDevice/Devices/SerialDevice.cs new file mode 100644 index 0000000..b155974 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.SerialDevice/Devices/SerialDevice.cs @@ -0,0 +1,64 @@ +using System; +using System.Windows.Controls; +using MassiveKnob.Plugin.SerialDevice.Settings; +using MassiveKnob.Plugin.SerialDevice.Worker; + +namespace MassiveKnob.Plugin.SerialDevice.Devices +{ + public class SerialDevice : IMassiveKnobDevice + { + public Guid DeviceId { get; } = new Guid("65255f25-d8f6-426b-8f12-cf03c44a1bf5"); + public string Name { get; } = "Serial device"; + public string Description { get; } = "A Serial (USB) device which implements the Massive Knob Protocol."; + + public IMassiveKnobDeviceInstance Create() + { + return new Instance(); + } + + + private class Instance : IMassiveKnobDeviceInstance + { + private IMassiveKnobDeviceContext deviceContext; + private SerialDeviceSettings settings; + private SerialWorker worker; + + public void Initialize(IMassiveKnobDeviceContext context) + { + deviceContext = context; + settings = deviceContext.GetSettings(); + + worker = new SerialWorker(context); + ApplySettings(); + } + + + public void Dispose() + { + worker.Dispose(); + } + + + private void ApplySettings() + { + worker.Connect(settings.PortName, settings.BaudRate); + } + + + public UserControl CreateSettingsControl() + { + var viewModel = new SerialDeviceSettingsViewModel(settings); + viewModel.PropertyChanged += (sender, args) => + { + if (!viewModel.IsSettingsProperty(args.PropertyName)) + return; + + deviceContext.SetSettings(settings); + ApplySettings(); + }; + + return new SerialDeviceSettingsView(viewModel); + } + } + } +} diff --git a/Windows/MassiveKnob.Plugin.SerialDevice/MassiveKnob.Plugin.SerialDevice.csproj b/Windows/MassiveKnob.Plugin.SerialDevice/MassiveKnob.Plugin.SerialDevice.csproj new file mode 100644 index 0000000..f85d09a --- /dev/null +++ b/Windows/MassiveKnob.Plugin.SerialDevice/MassiveKnob.Plugin.SerialDevice.csproj @@ -0,0 +1,71 @@ + + + + + Debug + AnyCPU + {FC0D22D8-5F1B-4D85-8269-FA4837CDE3A2} + Library + Properties + MassiveKnob.Plugin.SerialDevice + MassiveKnob.Plugin.SerialDevice + v4.7.2 + 512 + true + + + true + full + false + $(localappdata)\MassiveKnob\Plugins\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + SerialDeviceSettingsView.xaml + + + + + + + + {A1298BE4-1D23-416C-8C56-FC9264487A95} + MassiveKnob.Plugin + + + + + Designer + MSBuild:Compile + + + + \ No newline at end of file diff --git a/Windows/MassiveKnob.Plugin.SerialDevice/MassiveKnobSerialDevicePlugin.cs b/Windows/MassiveKnob.Plugin.SerialDevice/MassiveKnobSerialDevicePlugin.cs new file mode 100644 index 0000000..9e0ccaf --- /dev/null +++ b/Windows/MassiveKnob.Plugin.SerialDevice/MassiveKnobSerialDevicePlugin.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; + +namespace MassiveKnob.Plugin.SerialDevice +{ + [MassiveKnobPlugin] + public class MassiveKnobSerialDevicePlugin : IMassiveKnobDevicePlugin + { + public Guid PluginId { get; } = new Guid("276475e6-5ff0-420f-82dc-8aff5e8631d5"); + public string Name { get; } = "Serial Device"; + public string Description { get; } = "A Serial (USB) device which implements the Massive Knob Protocol."; + public string Author { get; } = "Mark van Renswoude "; + public string Url { get; } = "https://www.github.com/MvRens/MassiveKnob/"; + + public IEnumerable Devices { get; } = new IMassiveKnobDevice[] + { + new Devices.SerialDevice() + }; + } +} diff --git a/Windows/MassiveKnob.Plugin.SerialDevice/Properties/AssemblyInfo.cs b/Windows/MassiveKnob.Plugin.SerialDevice/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..751b137 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.SerialDevice/Properties/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("MassiveKnob.Plugin.SerialDevice")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("MassiveKnob.Plugin.SerialDevice")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("fc0d22d8-5f1b-4d85-8269-fa4837cde3a2")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Windows/MassiveKnob.Plugin.SerialDevice/Settings/SerialDeviceSettings.cs b/Windows/MassiveKnob.Plugin.SerialDevice/Settings/SerialDeviceSettings.cs new file mode 100644 index 0000000..3abc590 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.SerialDevice/Settings/SerialDeviceSettings.cs @@ -0,0 +1,8 @@ +namespace MassiveKnob.Plugin.SerialDevice.Settings +{ + public class SerialDeviceSettings + { + public string PortName { get; set; } = null; + public int BaudRate { get; set; } = 115200; + } +} diff --git a/Windows/MassiveKnob.Plugin.SerialDevice/Settings/SerialDeviceSettingsView.xaml b/Windows/MassiveKnob.Plugin.SerialDevice/Settings/SerialDeviceSettingsView.xaml new file mode 100644 index 0000000..12150f1 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.SerialDevice/Settings/SerialDeviceSettingsView.xaml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + Serial port + + + Baud rate + + + diff --git a/Windows/MassiveKnob.Plugin.SerialDevice/Settings/SerialDeviceSettingsView.xaml.cs b/Windows/MassiveKnob.Plugin.SerialDevice/Settings/SerialDeviceSettingsView.xaml.cs new file mode 100644 index 0000000..3e894f0 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.SerialDevice/Settings/SerialDeviceSettingsView.xaml.cs @@ -0,0 +1,14 @@ +namespace MassiveKnob.Plugin.SerialDevice.Settings +{ + /// + /// Interaction logic for SerialDeviceSettingsView.xaml + /// + public partial class SerialDeviceSettingsView + { + public SerialDeviceSettingsView(SerialDeviceSettingsViewModel viewModel) + { + DataContext = viewModel; + InitializeComponent(); + } + } +} diff --git a/Windows/MassiveKnob.Plugin.SerialDevice/Settings/SerialDeviceSettingsViewModel.cs b/Windows/MassiveKnob.Plugin.SerialDevice/Settings/SerialDeviceSettingsViewModel.cs new file mode 100644 index 0000000..56485a1 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.SerialDevice/Settings/SerialDeviceSettingsViewModel.cs @@ -0,0 +1,77 @@ +using System.Collections.Generic; +using System.ComponentModel; +using System.IO.Ports; +using System.Runtime.CompilerServices; + +namespace MassiveKnob.Plugin.SerialDevice.Settings +{ + public class SerialDeviceSettingsViewModel : INotifyPropertyChanged + { + private readonly SerialDeviceSettings settings; + private IEnumerable serialPorts; + public event PropertyChangedEventHandler PropertyChanged; + + + // ReSharper disable UnusedMember.Global - used by WPF Binding + public IEnumerable SerialPorts + { + get => serialPorts; + set + { + serialPorts = value; + OnPropertyChanged(); + } + } + + + public string PortName + { + get => settings.PortName; + set + { + if (value == settings.PortName) + return; + + settings.PortName = value; + OnPropertyChanged(); + } + } + + + public int BaudRate + { + get => settings.BaudRate; + set + { + if (value == settings.BaudRate) + return; + + settings.BaudRate = value; + OnPropertyChanged(); + } + } + // ReSharper restore UnusedMember.Global + + + public SerialDeviceSettingsViewModel(SerialDeviceSettings settings) + { + this.settings = settings; + + serialPorts = SerialPort.GetPortNames(); + + // TODO subscribe to device notification to refresh list + } + + + public bool IsSettingsProperty(string propertyName) + { + return propertyName != nameof(SerialPorts); + } + + + protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } + } +} diff --git a/Windows/MassiveKnob.Plugin.SerialDevice/Worker/SerialWorker.cs b/Windows/MassiveKnob.Plugin.SerialDevice/Worker/SerialWorker.cs new file mode 100644 index 0000000..2e02f25 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.SerialDevice/Worker/SerialWorker.cs @@ -0,0 +1,233 @@ +using System; +using System.Diagnostics; +using System.IO.Ports; +using System.Text; +using System.Threading; + +namespace MassiveKnob.Plugin.SerialDevice.Worker +{ + public class SerialWorker : IDisposable + { + private readonly IMassiveKnobDeviceContext context; + + private readonly object workerLock = new object(); + private string lastPortName; + private int lastBaudRate; + private Thread workerThread; + private CancellationTokenSource workerThreadCancellation = new CancellationTokenSource(); + + public SerialWorker(IMassiveKnobDeviceContext context) + { + this.context = context; + } + + + public void Dispose() + { + Disconnect(); + } + + + public void Connect(string portName, int baudRate) + { + lock (workerLock) + { + if (portName == lastPortName && baudRate == lastBaudRate) + return; + + lastPortName = portName; + lastBaudRate = baudRate; + + Disconnect(); + + if (string.IsNullOrEmpty(portName) || baudRate == 0) + return; + + + workerThreadCancellation = new CancellationTokenSource(); + workerThread = new Thread(() => RunWorker(workerThreadCancellation.Token, portName, baudRate)) + { + Name = "MassiveKnobSerialDevice Worker" + }; + workerThread.Start(); + } + } + + + private void Disconnect() + { + lock (workerLock) + { + workerThreadCancellation?.Cancel(); + + workerThreadCancellation = null; + workerThread = null; + } + } + + + + private void RunWorker(CancellationToken cancellationToken, string portName, int baudRate) + { + context.Connecting(); + while (!cancellationToken.IsCancellationRequested) + { + SerialPort serialPort = null; + DeviceSpecs specs = default; + + void SafeCloseSerialPort() + { + try + { + serialPort?.Dispose(); + } + catch + { + // ignored + } + + serialPort = null; + context.Connecting(); + } + + + while (serialPort == null && !cancellationToken.IsCancellationRequested) + { + if (!TryConnect(ref serialPort, portName, baudRate, out specs)) + { + SafeCloseSerialPort(); + Thread.Sleep(500); + } + else + break; + } + + if (cancellationToken.IsCancellationRequested) + { + SafeCloseSerialPort(); + break; + } + + var processingMessage = false; + + Debug.Assert(serialPort != null, nameof(serialPort) + " != null"); + serialPort.DataReceived += (sender, args) => + { + if (args.EventType != SerialData.Chars || processingMessage) + return; + + var senderPort = (SerialPort)sender; + processingMessage = true; + try + { + var message = (char)senderPort.ReadByte(); + ProcessMessage(senderPort, message); + } + finally + { + processingMessage = false; + } + }; + + + context.Connected(specs); + try + { + // This is where sending data to the hardware would be implemented + while (serialPort.IsOpen && !cancellationToken.IsCancellationRequested) + { + Thread.Sleep(10); + } + } + catch + { + // ignored + } + + context.Disconnected(); + SafeCloseSerialPort(); + + if (!cancellationToken.IsCancellationRequested) + Thread.Sleep(500); + } + } + + + private static bool TryConnect(ref SerialPort serialPort, string portName, int baudRate, out DeviceSpecs specs) + { + try + { + serialPort = new SerialPort(portName, baudRate) + { + Encoding = Encoding.ASCII, + ReadTimeout = 1000, + WriteTimeout = 1000, + DtrEnable = true // TODO make setting + }; + serialPort.Open(); + + // Send handshake + serialPort.Write(new[] { 'H', 'M', 'K', 'B' }, 0, 4); + + // Wait for reply + var response = serialPort.ReadByte(); + + if ((char) response == 'H') + { + var knobCount = serialPort.ReadByte(); + if (knobCount > -1) + { + specs = new DeviceSpecs(knobCount, 0, 0, 0); + return true; + } + } + else + CheckForError(serialPort, (char)response); + + specs = default; + return false; + } + catch + { + specs = default; + return false; + } + } + + + private void ProcessMessage(SerialPort serialPort, char message) + { + switch (message) + { + case 'V': + var knobIndex = (byte)serialPort.ReadByte(); + var volume = (byte)serialPort.ReadByte(); + + if (knobIndex < 255 && volume <= 100) + context.AnalogChanged(knobIndex, volume); + + break; + } + } + + + private static void CheckForError(SerialPort serialPort, char message) + { + if (message != 'E') + return; + + var length = serialPort.ReadByte(); + if (length <= 0) + return; + + var buffer = new byte[length]; + var bytesRead = 0; + + while (bytesRead < length) + bytesRead += serialPort.Read(buffer, bytesRead, length - bytesRead); + + var errorMessage = Encoding.ASCII.GetString(buffer); + Debug.Print(errorMessage); + } + } +} diff --git a/Windows/MassiveKnob.Plugin/IMassiveKnobAction.cs b/Windows/MassiveKnob.Plugin/IMassiveKnobAction.cs index ba3f3fc..bba4713 100644 --- a/Windows/MassiveKnob.Plugin/IMassiveKnobAction.cs +++ b/Windows/MassiveKnob.Plugin/IMassiveKnobAction.cs @@ -19,12 +19,17 @@ namespace MassiveKnob.Plugin InputDigital = 1 << 1, /// - /// Can be assigned to an output, like an LED or relay. + /// Can be assigned to an analog output. /// - OutputSignal = 1 << 2 + OutputAnalog = 1 << 2, + + /// + /// Can be assigned to a digital output, like an LED or relay. + /// + OutputDigital = 1 << 3 } - - + + /// /// Provides information about an action which can be assigned to a knob or button. /// @@ -53,7 +58,6 @@ namespace MassiveKnob.Plugin /// /// Called when an action is bound to a knob or button to create an instance of the action. /// - /// Provides an interface to the Massive Knob settings and device. Can be stored until the action instance is disposed. - IMassiveKnobActionInstance Create(IMassiveKnobActionContext context); + IMassiveKnobActionInstance Create(); } } diff --git a/Windows/MassiveKnob.Plugin/IMassiveKnobActionContext.cs b/Windows/MassiveKnob.Plugin/IMassiveKnobActionContext.cs index 9f08a67..b8154b1 100644 --- a/Windows/MassiveKnob.Plugin/IMassiveKnobActionContext.cs +++ b/Windows/MassiveKnob.Plugin/IMassiveKnobActionContext.cs @@ -4,9 +4,15 @@ public interface IMassiveKnobActionContext : IMassiveKnobContext { /// - /// Sets the state of the signal. Only valid for OutputSignal action types, will raise an exception otherwise. + /// Sets the state of the analog output. Only valid for OutputAnalog action types, will raise an exception otherwise. + /// + /// The analog value in the range of 0 to 100. + void SetAnalogOutput(byte value); + + /// + /// Sets the state of the digital output. Only valid for OutputDigital action types, will raise an exception otherwise. /// /// Whether the signal is on or off. - void SetSignal(bool on); + void SetDigitalOutput(bool on); } } diff --git a/Windows/MassiveKnob.Plugin/IMassiveKnobActionInstance.cs b/Windows/MassiveKnob.Plugin/IMassiveKnobActionInstance.cs index 3973f60..110a27f 100644 --- a/Windows/MassiveKnob.Plugin/IMassiveKnobActionInstance.cs +++ b/Windows/MassiveKnob.Plugin/IMassiveKnobActionInstance.cs @@ -9,6 +9,12 @@ namespace MassiveKnob.Plugin /// public interface IMassiveKnobActionInstance : IDisposable { + /// + /// Called right after this instance is created. + /// + /// Provides an interface to the Massive Knob settings and device. Can be stored until the action instance is disposed. + void Initialize(IMassiveKnobActionContext context); + /// /// Called when an action should display it's settings. Assume the width is variable, height is /// determined by the UserControl. Return null to indicate there are no settings for this action. diff --git a/Windows/MassiveKnob.Plugin/IMassiveKnobAnalogAction.cs b/Windows/MassiveKnob.Plugin/IMassiveKnobAnalogAction.cs index 15cfae1..4fe88ff 100644 --- a/Windows/MassiveKnob.Plugin/IMassiveKnobAnalogAction.cs +++ b/Windows/MassiveKnob.Plugin/IMassiveKnobAnalogAction.cs @@ -8,7 +8,7 @@ namespace MassiveKnob.Plugin public interface IMassiveKnobAnalogAction : IMassiveKnobActionInstance { /// - /// Called when a knob's position changes. + /// Called when an analog input's value changes. /// /// The new value. Range is 0 to 100. ValueTask AnalogChanged(byte value); diff --git a/Windows/MassiveKnob.Plugin/IMassiveKnobDevice.cs b/Windows/MassiveKnob.Plugin/IMassiveKnobDevice.cs index f949076..3a9f6c3 100644 --- a/Windows/MassiveKnob.Plugin/IMassiveKnobDevice.cs +++ b/Windows/MassiveKnob.Plugin/IMassiveKnobDevice.cs @@ -25,7 +25,6 @@ namespace MassiveKnob.Plugin /// /// Called when the device is selected. /// - /// Provides an interface to the Massive Knob settings and device. Can be stored until the device instance is disposed. - IMassiveKnobDeviceInstance Create(IMassiveKnobContext context); + IMassiveKnobDeviceInstance Create(); } } diff --git a/Windows/MassiveKnob.Plugin/IMassiveKnobDeviceContext.cs b/Windows/MassiveKnob.Plugin/IMassiveKnobDeviceContext.cs new file mode 100644 index 0000000..c170ec6 --- /dev/null +++ b/Windows/MassiveKnob.Plugin/IMassiveKnobDeviceContext.cs @@ -0,0 +1,80 @@ +namespace MassiveKnob.Plugin +{ + /// + public interface IMassiveKnobDeviceContext : IMassiveKnobContext + { + /// + /// Call when an attempt is being made to connect to the device. If the connection is always ready + /// this call can be skipped. + /// + void Connecting(); + + /// + /// Call when the device is connected. This method must be called before AnalogChanged or DigitalChanged. + /// + /// The specs as reported by the device. + void Connected(DeviceSpecs specs); + + /// + /// Call when the connection to the device has been lost. + /// + void Disconnected(); + + /// + /// Call when an analog input's value has changed. + /// + /// The index of the analog input. Must be within bounds of the value reported in Connected. + /// The new value in the range from 0 to 100. + void AnalogChanged(int analogInputIndex, byte value); + + /// + /// Call when a digital input's state has changed. + /// + /// The index of the digital input. Must be within bounds of the value reported in Connected. + /// Whether the input is considered on or off. + void DigitalChanged(int digitalInputIndex, bool on); + } + + + /// + /// Defines the specs as reported by the device. + /// + public readonly struct DeviceSpecs + { + /// + /// The number of analog input controls supported by the device. + /// + public readonly int AnalogInputCount; + + /// + /// The number of digital input controls supported by the device. + /// + public readonly int DigitalInputCount; + + /// + /// The number of analog output controls supported by the device. + /// + public readonly int AnalogOutputCount; + + /// + /// The number of digital output controls supported by the device. + /// + public readonly int DigitalOutputCount; + + + /// + /// Defines the specs as reported by the device. + /// + /// The number of analog input controls supported by the device. + /// The number of digital input controls supported by the device. + /// The number of analog output controls supported by the device. + /// The number of digital output controls supported by the device. + public DeviceSpecs(int analogInputCount, int digitalInputCount, int analogOutputCount, int digitalOutputCount) + { + AnalogInputCount = analogInputCount; + DigitalInputCount = digitalInputCount; + AnalogOutputCount = analogOutputCount; + DigitalOutputCount = digitalOutputCount; + } + } +} diff --git a/Windows/MassiveKnob.Plugin/IMassiveKnobDeviceInstance.cs b/Windows/MassiveKnob.Plugin/IMassiveKnobDeviceInstance.cs index d8307df..1924a3e 100644 --- a/Windows/MassiveKnob.Plugin/IMassiveKnobDeviceInstance.cs +++ b/Windows/MassiveKnob.Plugin/IMassiveKnobDeviceInstance.cs @@ -8,6 +8,12 @@ namespace MassiveKnob.Plugin /// public interface IMassiveKnobDeviceInstance : IDisposable { + /// + /// Called right after this instance is created. + /// + /// Provides an interface to the Massive Knob settings and device. Can be stored until the device instance is disposed. + void Initialize(IMassiveKnobDeviceContext context); + /// /// Called when a device should display it's settings. Assume the width is variable, height is /// determined by the UserControl. Return null to indicate there are no settings for this device. diff --git a/Windows/MassiveKnob.Plugin/IMassiveKnobHardwarePlugin.cs b/Windows/MassiveKnob.Plugin/IMassiveKnobDevicePlugin.cs similarity index 100% rename from Windows/MassiveKnob.Plugin/IMassiveKnobHardwarePlugin.cs rename to Windows/MassiveKnob.Plugin/IMassiveKnobDevicePlugin.cs diff --git a/Windows/MassiveKnob.Plugin/IMassiveKnobDigitalAction.cs b/Windows/MassiveKnob.Plugin/IMassiveKnobDigitalAction.cs index fb3992f..2d2998a 100644 --- a/Windows/MassiveKnob.Plugin/IMassiveKnobDigitalAction.cs +++ b/Windows/MassiveKnob.Plugin/IMassiveKnobDigitalAction.cs @@ -1,9 +1,16 @@ -namespace MassiveKnob.Plugin +using System.Threading.Tasks; + +namespace MassiveKnob.Plugin { /// /// Required to be implemented for Action type InputDigital. Receives an update when a knob's position changes. /// public interface IMassiveKnobDigitalAction : IMassiveKnobActionInstance { + /// + /// Called when a digital input's value changes. + /// + /// The new value. + ValueTask DigitalChanged(bool on); } } diff --git a/Windows/MassiveKnob.Plugin/MassiveKnob.Plugin.csproj b/Windows/MassiveKnob.Plugin/MassiveKnob.Plugin.csproj index 8cdc5b2..5659c17 100644 --- a/Windows/MassiveKnob.Plugin/MassiveKnob.Plugin.csproj +++ b/Windows/MassiveKnob.Plugin/MassiveKnob.Plugin.csproj @@ -44,6 +44,7 @@ + @@ -52,7 +53,7 @@ - + diff --git a/Windows/MassiveKnob.Plugin/Properties/AssemblyInfo.cs b/Windows/MassiveKnob.Plugin/Properties/AssemblyInfo.cs index dddcccd..a776320 100644 --- a/Windows/MassiveKnob.Plugin/Properties/AssemblyInfo.cs +++ b/Windows/MassiveKnob.Plugin/Properties/AssemblyInfo.cs @@ -1,5 +1,4 @@ using System.Reflection; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // General Information about an assembly is controlled through the following diff --git a/Windows/MassiveKnob.sln b/Windows/MassiveKnob.sln index 85a3fb7..8f3c00f 100644 --- a/Windows/MassiveKnob.sln +++ b/Windows/MassiveKnob.sln @@ -11,6 +11,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MassiveKnob.Plugin.CoreAudi EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MassiveKnob.Plugin.MockDevice", "MassiveKnob.Plugin.MockDevice\MassiveKnob.Plugin.MockDevice.csproj", "{674DE974-B134-4DB5-BFAF-7BC3D05E16DE}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MassiveKnob.Plugin.SerialDevice", "MassiveKnob.Plugin.SerialDevice\MassiveKnob.Plugin.SerialDevice.csproj", "{FC0D22D8-5F1B-4D85-8269-FA4837CDE3A2}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -33,6 +35,10 @@ Global {674DE974-B134-4DB5-BFAF-7BC3D05E16DE}.Debug|Any CPU.Build.0 = Debug|Any CPU {674DE974-B134-4DB5-BFAF-7BC3D05E16DE}.Release|Any CPU.ActiveCfg = Release|Any CPU {674DE974-B134-4DB5-BFAF-7BC3D05E16DE}.Release|Any CPU.Build.0 = Release|Any CPU + {FC0D22D8-5F1B-4D85-8269-FA4837CDE3A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FC0D22D8-5F1B-4D85-8269-FA4837CDE3A2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FC0D22D8-5F1B-4D85-8269-FA4837CDE3A2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FC0D22D8-5F1B-4D85-8269-FA4837CDE3A2}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Windows/MassiveKnob/Hardware/AbstractMassiveKnobHardware.cs b/Windows/MassiveKnob/Hardware/AbstractMassiveKnobHardware.cs deleted file mode 100644 index 275bf14..0000000 --- a/Windows/MassiveKnob/Hardware/AbstractMassiveKnobHardware.cs +++ /dev/null @@ -1,69 +0,0 @@ -using System.Collections.Generic; -using System.Threading.Tasks; - -namespace MassiveKnob.Hardware -{ - public abstract class AbstractMassiveKnobHardware : IMassiveKnobHardware - { - protected ObserverProxy Observers = new ObserverProxy(); - - public void AttachObserver(IMassiveKnobHardwareObserver observer) - { - Observers.AttachObserver(observer); - } - - public void DetachObserver(IMassiveKnobHardwareObserver observer) - { - Observers.DetachObserver(observer); - } - - - public abstract Task TryConnect(); - public abstract Task Disconnect(); - - - public class ObserverProxy : IMassiveKnobHardwareObserver - { - private readonly List observers = new List(); - - - public void AttachObserver(IMassiveKnobHardwareObserver observer) - { - observers.Add(observer); - } - - public void DetachObserver(IMassiveKnobHardwareObserver observer) - { - observers.Remove(observer); - } - - - public void Connecting() - { - foreach (var observer in observers) - observer.Connecting(); - } - - - public void Connected(int knobCount) - { - foreach (var observer in observers) - observer.Connected(knobCount); - } - - - public void Disconnected() - { - foreach (var observer in observers) - observer.Disconnected(); - } - - - public void VolumeChanged(int knob, int volume) - { - foreach (var observer in observers) - observer.VolumeChanged(knob, volume); - } - } - } -} diff --git a/Windows/MassiveKnob/Hardware/CoreAudioDeviceManager.cs b/Windows/MassiveKnob/Hardware/CoreAudioDeviceManager.cs deleted file mode 100644 index 05421cb..0000000 --- a/Windows/MassiveKnob/Hardware/CoreAudioDeviceManager.cs +++ /dev/null @@ -1,82 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using AudioSwitcher.AudioApi; -using AudioSwitcher.AudioApi.CoreAudio; - -namespace MassiveKnob.Hardware -{ - public class CoreAudioDeviceManager : IAudioDeviceManager - { - private readonly Lazy audioController = new Lazy(); - private List devices; - - - public void Dispose() - { - if (audioController.IsValueCreated) - audioController.Value.Dispose(); - } - - - public async Task> GetDevices() - { - return devices ?? (devices = (await audioController.Value.GetPlaybackDevicesAsync()) - .Select(device => new AudioDevice(device) as IAudioDevice) - .ToList()); - } - - - public Task GetDeviceById(Guid deviceId) - { - return Task.FromResult(devices?.FirstOrDefault(device => device.Id == deviceId)); - } - - - private class AudioDevice : IAudioDevice - { - private readonly IDevice device; - - public Guid Id { get; } - public string DisplayName { get; } - - - public AudioDevice(IDevice device) - { - this.device = device; - Id = device.Id; - - string displayFormat; - - if ((device.State & DeviceState.Disabled) != 0) - displayFormat = Strings.DeviceDisplayNameDisabled; - else if ((device.State & DeviceState.Unplugged) != 0) - displayFormat = Strings.DeviceDisplayNameUnplugged; - else if ((device.State & DeviceState.NotPresent) != 0) - displayFormat = Strings.DeviceDisplayNameNotPresent; - else if ((device.State & DeviceState.Active) == 0) - displayFormat = Strings.DeviceDisplayNameInactive; - else - displayFormat = Strings.DeviceDisplayNameActive; - - DisplayName = string.Format(displayFormat, device.FullName); - } - - - public Task SetVolume(int volume) - { - return device.SetVolumeAsync(volume); - } - } - } - - - public class CoreAudioDeviceManagerFactory : IAudioDeviceManagerFactory - { - public IAudioDeviceManager Create() - { - return new CoreAudioDeviceManager(); - } - } -} diff --git a/Windows/MassiveKnob/Hardware/IAudioDeviceManager.cs b/Windows/MassiveKnob/Hardware/IAudioDeviceManager.cs deleted file mode 100644 index 1993e77..0000000 --- a/Windows/MassiveKnob/Hardware/IAudioDeviceManager.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Threading.Tasks; - -namespace MassiveKnob.Hardware -{ - public interface IAudioDevice - { - Guid Id { get; } - string DisplayName { get; } - - Task SetVolume(int volume); - } - - - public interface IAudioDeviceManager : IDisposable - { - Task> GetDevices(); - Task GetDeviceById(Guid deviceId); - } - - - public interface IAudioDeviceManagerFactory - { - IAudioDeviceManager Create(); - } -} diff --git a/Windows/MassiveKnob/Hardware/IMassiveKnobHardware.cs b/Windows/MassiveKnob/Hardware/IMassiveKnobHardware.cs deleted file mode 100644 index 5421915..0000000 --- a/Windows/MassiveKnob/Hardware/IMassiveKnobHardware.cs +++ /dev/null @@ -1,31 +0,0 @@ -using System.Threading.Tasks; - -namespace MassiveKnob.Hardware -{ - public interface IMassiveKnobHardwareObserver - { - void Connecting(); - void Connected(int knobCount); - void Disconnected(); - - void VolumeChanged(int knob, int volume); - // void ButtonPress(int index); -- for switching the active device, TBD - } - - - public interface IMassiveKnobHardware - { - void AttachObserver(IMassiveKnobHardwareObserver observer); - void DetachObserver(IMassiveKnobHardwareObserver observer); - - Task TryConnect(); - Task Disconnect(); - // Task SetActiveKnob(int knob); -- for providing LED feedback when switching the active device, TBD - } - - - public interface IMassiveKnobHardwareFactory - { - IMassiveKnobHardware Create(string portName); - } -} diff --git a/Windows/MassiveKnob/Hardware/MockMassiveKnobHardware.cs b/Windows/MassiveKnob/Hardware/MockMassiveKnobHardware.cs deleted file mode 100644 index 798bec3..0000000 --- a/Windows/MassiveKnob/Hardware/MockMassiveKnobHardware.cs +++ /dev/null @@ -1,71 +0,0 @@ -using System; -using System.Threading; -using System.Threading.Tasks; - -namespace MassiveKnob.Hardware -{ - public class MockMassiveKnobHardware : AbstractMassiveKnobHardware - { - private readonly int knobCount; - private readonly TimeSpan volumeChangeInterval; - private readonly int maxVolume; - private Timer changeVolumeTimer; - private readonly Random random = new Random(); - - - public MockMassiveKnobHardware(int knobCount, TimeSpan volumeChangeInterval, int maxVolume) - { - this.knobCount = knobCount; - this.volumeChangeInterval = volumeChangeInterval; - this.maxVolume = maxVolume; - } - - - public override async Task TryConnect() - { - if (changeVolumeTimer != null) - return; - - await Task.Delay(2000); - - Observers.Connected(knobCount); - changeVolumeTimer = new Timer( - state => - { - Observers.VolumeChanged(random.Next(0, knobCount), random.Next(0, maxVolume)); - }, - null, - volumeChangeInterval, - volumeChangeInterval); - } - - - public override Task Disconnect() - { - changeVolumeTimer?.Dispose(); - return Task.CompletedTask; - } - } - - - // ReSharper disable once UnusedMember.Global - for testing purposes only - public class MockMassiveKnobHardwareFactory : IMassiveKnobHardwareFactory - { - private readonly int knobCount; - private readonly TimeSpan volumeChangeInterval; - private readonly int maxVolume; - - public MockMassiveKnobHardwareFactory(int knobCount, TimeSpan volumeChangeInterval, int maxVolume) - { - this.knobCount = knobCount; - this.volumeChangeInterval = volumeChangeInterval; - this.maxVolume = maxVolume; - } - - - public IMassiveKnobHardware Create(string portName) - { - return new MockMassiveKnobHardware(knobCount, volumeChangeInterval, maxVolume); - } - } -} diff --git a/Windows/MassiveKnob/Hardware/SerialMassiveKnobHardware.cs b/Windows/MassiveKnob/Hardware/SerialMassiveKnobHardware.cs deleted file mode 100644 index ebd6a41..0000000 --- a/Windows/MassiveKnob/Hardware/SerialMassiveKnobHardware.cs +++ /dev/null @@ -1,180 +0,0 @@ -using System.Diagnostics; -using System.IO.Ports; -using System.Threading; -using System.Threading.Tasks; - -namespace MassiveKnob.Hardware -{ - public class SerialMassiveKnobHardware : AbstractMassiveKnobHardware - { - private readonly string portName; - private Thread workerThread; - - private readonly CancellationTokenSource workerThreadCancellation = new CancellationTokenSource(); - private readonly TaskCompletionSource workerThreadCompleted = new TaskCompletionSource(); - - - public SerialMassiveKnobHardware(string portName) - { - this.portName = portName; - } - - - public override async Task TryConnect() - { - if (workerThread != null) - await Disconnect(); - - workerThread = new Thread(RunWorker) - { - Name = "SerialMassiveKnobHardware Worker" - }; - workerThread.Start(); - } - - - public override async Task Disconnect() - { - workerThreadCancellation.Cancel(); - await workerThreadCompleted.Task; - - workerThread = null; - } - - - private void RunWorker() - { - Observers.Connecting(); - - while (!workerThreadCancellation.IsCancellationRequested) - { - SerialPort serialPort = null; - - void SafeCloseSerialPort() - { - try - { - serialPort?.Dispose(); - } - catch - { - // ignroed - } - - serialPort = null; - Observers.Disconnected(); - Observers.Connecting(); - } - - - var knobCount = 0; - - while (serialPort == null && !workerThreadCancellation.IsCancellationRequested) - { - try - { - serialPort = new SerialPort(portName, 115200); - serialPort.Open(); - - // Send handshake - serialPort.Write(new[] { 'H', 'M', 'K', 'B' }, 0, 4); - - // Wait for reply - serialPort.ReadTimeout = 1000; - var response = serialPort.ReadByte(); - - if ((char) response == 'H') - { - knobCount = serialPort.ReadByte(); - if (knobCount > -1) - break; - } - - SafeCloseSerialPort(); - Thread.Sleep(500); - } - catch - { - SafeCloseSerialPort(); - Thread.Sleep(500); - } - } - - if (workerThreadCancellation.IsCancellationRequested) - { - SafeCloseSerialPort(); - break; - } - - var processingMessage = false; - - Debug.Assert(serialPort != null, nameof(serialPort) + " != null"); - serialPort.DataReceived += (sender, args) => - { - if (args.EventType != SerialData.Chars || processingMessage) - return; - - var senderPort = (SerialPort) sender; - processingMessage = true; - try - { - var message = (char) senderPort.ReadByte(); - ProcessMessage(senderPort, message); - } - finally - { - processingMessage = false; - } - }; - - - Observers.Connected(knobCount); - try - { - // This is where sending data to the hardware would be implemented - while (serialPort.IsOpen && !workerThreadCancellation.IsCancellationRequested) - { - Thread.Sleep(10); - } - } - catch - { - // ignored - } - - Observers.Disconnected(); - SafeCloseSerialPort(); - - if (!workerThreadCancellation.IsCancellationRequested) - Thread.Sleep(500); - } - - workerThreadCompleted.TrySetResult(true); - } - - - private void ProcessMessage(SerialPort serialPort, char message) - { - switch (message) - { - case 'V': - var knobIndex = (byte)serialPort.ReadByte(); - var volume = (byte)serialPort.ReadByte(); - - if (knobIndex < 255 && volume <= 100) - Observers.VolumeChanged(knobIndex, volume); - - break; - } - } - } - - - public class SerialMassiveKnobHardwareFactory : IMassiveKnobHardwareFactory - { - public IMassiveKnobHardware Create(string portName) - { - return new SerialMassiveKnobHardware(portName); - } - } -} diff --git a/Windows/MassiveKnob/Helpers/ComboBoxTemplateSelector.cs b/Windows/MassiveKnob/Helpers/ComboBoxTemplateSelector.cs index adda8da..303ce8f 100644 --- a/Windows/MassiveKnob/Helpers/ComboBoxTemplateSelector.cs +++ b/Windows/MassiveKnob/Helpers/ComboBoxTemplateSelector.cs @@ -24,7 +24,7 @@ namespace MassiveKnob.Helpers itemToCheck = VisualTreeHelper.GetParent(itemToCheck); // If you stopped at a ComboBoxItem, you're in the dropdown - var inDropDown = (itemToCheck is ComboBoxItem); + var inDropDown = itemToCheck is ComboBoxItem; return inDropDown ? DropdownItemsTemplate ?? DropdownItemsTemplateSelector?.SelectTemplate(item, container) @@ -33,6 +33,7 @@ namespace MassiveKnob.Helpers } + // ReSharper disable once UnusedMember.Global - used in XAML public class ComboBoxTemplateSelectorExtension : MarkupExtension { public DataTemplate SelectedItemTemplate { get; set; } @@ -42,7 +43,7 @@ namespace MassiveKnob.Helpers public override object ProvideValue(IServiceProvider serviceProvider) { - return new ComboBoxTemplateSelector() + return new ComboBoxTemplateSelector { SelectedItemTemplate = SelectedItemTemplate, SelectedItemTemplateSelector = SelectedItemTemplateSelector, diff --git a/Windows/MassiveKnob/Helpers/DelegateCommand.cs b/Windows/MassiveKnob/Helpers/DelegateCommand.cs index e895714..8266c22 100644 --- a/Windows/MassiveKnob/Helpers/DelegateCommand.cs +++ b/Windows/MassiveKnob/Helpers/DelegateCommand.cs @@ -1,4 +1,5 @@ -using System; +/* +using System; using System.Windows.Input; namespace MassiveKnob.Helpers @@ -78,3 +79,4 @@ namespace MassiveKnob.Helpers } } } +*/ \ No newline at end of file diff --git a/Windows/MassiveKnob/Helpers/SerialQueue.cs b/Windows/MassiveKnob/Helpers/SerialQueue.cs new file mode 100644 index 0000000..25194bf --- /dev/null +++ b/Windows/MassiveKnob/Helpers/SerialQueue.cs @@ -0,0 +1,65 @@ +using System; +using System.Threading.Tasks; + +// Original source: https://github.com/Gentlee/SerialQueue +// ReSharper disable UnusedMember.Global - public API + +namespace MassiveKnob.Helpers +{ + public class SerialQueue + { + private readonly object locker = new object(); + private readonly WeakReference lastTaskWeakRef = new WeakReference(null); + + public Task Enqueue(Action action) + { + return Enqueue(() => + { + action(); + return true; + }); + } + + public Task Enqueue(Func function) + { + lock (locker) + { + var resultTask = lastTaskWeakRef.TryGetTarget(out var lastTask) + ? lastTask.ContinueWith(_ => function(), TaskContinuationOptions.ExecuteSynchronously) + : Task.Run(function); + + lastTaskWeakRef.SetTarget(resultTask); + + return resultTask; + } + } + + public Task Enqueue(Func asyncAction) + { + lock (locker) + { + var resultTask = lastTaskWeakRef.TryGetTarget(out var lastTask) + ? lastTask.ContinueWith(_ => asyncAction(), TaskContinuationOptions.ExecuteSynchronously).Unwrap() + : Task.Run(asyncAction); + + lastTaskWeakRef.SetTarget(resultTask); + + return resultTask; + } + } + + public Task Enqueue(Func> asyncFunction) + { + lock (locker) + { + var resultTask = lastTaskWeakRef.TryGetTarget(out var lastTask) + ? lastTask.ContinueWith(_ => asyncFunction(), TaskContinuationOptions.ExecuteSynchronously).Unwrap() + : Task.Run(asyncFunction); + + lastTaskWeakRef.SetTarget(resultTask); + + return resultTask; + } + } + } +} diff --git a/Windows/MassiveKnob/MassiveKnob.csproj b/Windows/MassiveKnob/MassiveKnob.csproj index fb0171e..6d627cd 100644 --- a/Windows/MassiveKnob/MassiveKnob.csproj +++ b/Windows/MassiveKnob/MassiveKnob.csproj @@ -58,19 +58,20 @@ - - - - - - + + + + + + InputOutputView.xaml + SettingsWindow.xaml @@ -116,6 +117,9 @@ 5.2.1 + + 5.0.0 + @@ -136,6 +140,10 @@ Designer MSBuild:Compile + + Designer + MSBuild:Compile + Designer MSBuild:Compile diff --git a/Windows/MassiveKnob/Model/IMassiveKnobOrchestrator.cs b/Windows/MassiveKnob/Model/IMassiveKnobOrchestrator.cs index a818b26..e0737a3 100644 --- a/Windows/MassiveKnob/Model/IMassiveKnobOrchestrator.cs +++ b/Windows/MassiveKnob/Model/IMassiveKnobOrchestrator.cs @@ -1,11 +1,44 @@ -using MassiveKnob.Plugin; +using System; +using MassiveKnob.Plugin; namespace MassiveKnob.Model { - public interface IMassiveKnobOrchestrator + public interface IMassiveKnobOrchestrator : IDisposable { - IMassiveKnobDeviceInstance ActiveDeviceInstance { get; } + MassiveKnobDeviceInfo ActiveDevice { get; } + IObservable ActiveDeviceSubject { get; } - IMassiveKnobDeviceInstance SetActiveDevice(IMassiveKnobDevice device); + MassiveKnobDeviceInfo SetActiveDevice(IMassiveKnobDevice device); + + MassiveKnobActionInfo GetAction(MassiveKnobActionType actionType, int index); + MassiveKnobActionInfo SetAction(MassiveKnobActionType actionType, int index, IMassiveKnobAction action); + } + + + public class MassiveKnobDeviceInfo + { + public IMassiveKnobDevice Info { get; } + public IMassiveKnobDeviceInstance Instance { get; } + public DeviceSpecs? Specs { get; } + + public MassiveKnobDeviceInfo(IMassiveKnobDevice info, IMassiveKnobDeviceInstance instance, DeviceSpecs? specs) + { + Info = info; + Instance = instance; + Specs = specs; + } + } + + + public class MassiveKnobActionInfo + { + public IMassiveKnobAction Info { get; } + public IMassiveKnobActionInstance Instance { get; } + + public MassiveKnobActionInfo(IMassiveKnobAction info, IMassiveKnobActionInstance instance) + { + Info = info; + Instance = instance; + } } } diff --git a/Windows/MassiveKnob/Model/IPluginManager.cs b/Windows/MassiveKnob/Model/IPluginManager.cs index 87e185d..9f6a2c4 100644 --- a/Windows/MassiveKnob/Model/IPluginManager.cs +++ b/Windows/MassiveKnob/Model/IPluginManager.cs @@ -5,8 +5,7 @@ namespace MassiveKnob.Model { public interface IPluginManager { - IEnumerable Plugins { get; } - IEnumerable GetDevicePlugins(); + IEnumerable GetActionPlugins(); } } diff --git a/Windows/MassiveKnob/Model/MassiveKnobOrchestrator.cs b/Windows/MassiveKnob/Model/MassiveKnobOrchestrator.cs index 87e2de8..2654904 100644 --- a/Windows/MassiveKnob/Model/MassiveKnobOrchestrator.cs +++ b/Windows/MassiveKnob/Model/MassiveKnobOrchestrator.cs @@ -1,51 +1,548 @@ -using MassiveKnob.Plugin; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reactive.Subjects; +using MassiveKnob.Helpers; +using MassiveKnob.Plugin; +using MassiveKnob.Settings; +using Newtonsoft.Json.Linq; namespace MassiveKnob.Model { public class MassiveKnobOrchestrator : IMassiveKnobOrchestrator { - private readonly Settings.Settings settings; + private readonly IPluginManager pluginManager; + + private readonly object settingsLock = new object(); + private Settings.Settings settings; + private readonly SerialQueue flushSettingsQueue = new SerialQueue(); + + private MassiveKnobDeviceInfo activeDevice; + private readonly Subject activeDeviceInfoSubject = new Subject(); + private IMassiveKnobDeviceContext activeDeviceContext; + + private readonly List analogInputs = new List(); + private readonly List digitalInputs = new List(); + private readonly List analogOutputs = new List(); + private readonly List digitalOutputs = new List(); - public IMassiveKnobDeviceInstance ActiveDeviceInstance { get; private set; } - - - public MassiveKnobOrchestrator(Settings.Settings settings) + public MassiveKnobDeviceInfo ActiveDevice { - this.settings = settings; - } - - - public IMassiveKnobDeviceInstance SetActiveDevice(IMassiveKnobDevice device) - { - ActiveDeviceInstance?.Dispose(); - ActiveDeviceInstance = device?.Create(new Context(settings)); - - return ActiveDeviceInstance; - } - - - - public class Context : IMassiveKnobContext - { - private readonly Settings.Settings settings; - - - public Context(Settings.Settings settings) + get => activeDevice; + private set { - this.settings = settings; + if (value == activeDevice) + return; + + activeDevice = value; + activeDeviceInfoSubject.OnNext(activeDevice); + } + } + + public IObservable ActiveDeviceSubject => activeDeviceInfoSubject; + + + public MassiveKnobOrchestrator(IPluginManager pluginManager) + { + this.pluginManager = pluginManager; + } + + + public void Dispose() + { + activeDevice?.Instance?.Dispose(); + + void DisposeMappings(IEnumerable mappings) + { + foreach (var mapping in mappings) + mapping?.ActionInfo.Instance?.Dispose(); + } + + + DisposeMappings(analogInputs); + DisposeMappings(digitalInputs); + DisposeMappings(analogOutputs); + DisposeMappings(digitalOutputs); + + activeDeviceInfoSubject?.Dispose(); + } + + + public void Load() + { + lock (settingsLock) + { + settings = SettingsJsonSerializer.Deserialize(); + + if (settings.Device == null) + return; + + var allDevices = pluginManager.GetDevicePlugins().SelectMany(dp => dp.Devices); + var device = allDevices.FirstOrDefault(d => d.DeviceId == settings.Device.DeviceId); + + InternalSetActiveDevice(device, false); + } + } + + + MassiveKnobDeviceInfo IMassiveKnobOrchestrator.ActiveDevice => activeDevice; + + public MassiveKnobDeviceInfo SetActiveDevice(IMassiveKnobDevice device) + { + return InternalSetActiveDevice(device, true); + } + + + public MassiveKnobActionInfo GetAction(MassiveKnobActionType actionType, int index) + { + var list = GetActionMappingList(actionType); + return index >= list.Count ? null : list[index].ActionInfo; + } + + + public MassiveKnobActionInfo SetAction(MassiveKnobActionType actionType, int index, IMassiveKnobAction action) + { + var list = GetActionMappingList(actionType); + if (index >= list.Count) + return null; + + if (list[index]?.ActionInfo.Info == action) + return list[index].ActionInfo; + + list[index]?.ActionInfo.Instance?.Dispose(); + + lock (settingsLock) + { + var settingsList = GetActionSettingsList(actionType); + while (index >= settingsList.Count) + settingsList.Add(null); + + settingsList[index] = action == null ? null : new Settings.Settings.ActionSettings + { + ActionId = action.ActionId, + Settings = null + }; + } + + FlushSettings(); + + + Action initializeAfterRegistration = null; + var mapping = CreateActionMapping(action, index, (actionInstance, actionContext) => + { + initializeAfterRegistration = () => actionInstance.Initialize(actionContext); + }); + + list[index] = mapping; + initializeAfterRegistration?.Invoke(); + + return mapping?.ActionInfo; + } + + + private MassiveKnobDeviceInfo InternalSetActiveDevice(IMassiveKnobDevice device, bool resetSettings) + { + if (device == ActiveDevice?.Info) + return ActiveDevice; + + + if (resetSettings) + { + lock (settingsLock) + { + if (device == null) + settings.Device = null; + else + { + settings.Device = new Settings.Settings.DeviceSettings + { + DeviceId = device.DeviceId, + Settings = null + }; + } + } + + FlushSettings(); + } + + ActiveDevice?.Instance.Dispose(); + + if (device != null) + { + var instance = device.Create(); + ActiveDevice = new MassiveKnobDeviceInfo(device, instance, null); + + activeDeviceContext = new DeviceContext(this, device); + instance.Initialize(activeDeviceContext); + } + else + { + ActiveDevice = null; + activeDeviceContext = null; + } + + return ActiveDevice; + } + + + protected T GetDeviceSettings(IMassiveKnobDeviceContext context) where T : class, new() + { + if (context != activeDeviceContext) + throw new InvalidOperationException("Caller must be the active device to retrieve the settings"); + + lock (settingsLock) + { + return settings.Device.Settings?.ToObject() ?? new T(); + } + } + + + protected void SetDeviceSettings(IMassiveKnobDeviceContext context, IMassiveKnobDevice device, T deviceSettings) where T : class, new() + { + if (context != activeDeviceContext) + throw new InvalidOperationException("Caller must be the active device to update the settings"); + + lock (settingsLock) + { + if (settings.Device == null) + settings.Device = new Settings.Settings.DeviceSettings + { + DeviceId = device.DeviceId + }; + + settings.Device.Settings = JObject.FromObject(deviceSettings); + } + + FlushSettings(); + } + + + protected T GetActionSettings(IMassiveKnobActionContext context, IMassiveKnobAction action, int index) where T : class, new() + { + var list = GetActionMappingList(action.ActionType); + if (index >= list.Count) + return new T(); + + if (list[index]?.Context != context) + throw new InvalidOperationException("Caller must be the active action to retrieve the settings"); + + lock (settingsLock) + { + var settingsList = GetActionSettingsList(action.ActionType); + if (index >= settingsList.Count) + return new T(); + + return settingsList[index].Settings?.ToObject() ?? new T(); + } + } + + + protected void SetActionSettings(IMassiveKnobActionContext context, IMassiveKnobAction action, int index, T actionSettings) where T : class, new() + { + var list = GetActionMappingList(action.ActionType); + if (index >= list.Count) + return; + + if (list[index].Context != context) + throw new InvalidOperationException("Caller must be the active action to retrieve the settings"); + + lock (settingsLock) + { + var settingsList = GetActionSettingsList(action.ActionType); + + while (index >= settingsList.Count) + settingsList.Add(null); + + if (settingsList[index] == null) + settingsList[index] = new Settings.Settings.ActionSettings + { + ActionId = action.ActionId + }; + + settingsList[index].Settings = JObject.FromObject(actionSettings); + } + + FlushSettings(); + } + + + protected void AnalogChanged(IMassiveKnobDeviceContext context, int analogInputIndex, byte value) + { + if (context != activeDeviceContext) + return; + + var mapping = GetActionMappingList(MassiveKnobActionType.InputAnalog); + if (mapping == null || analogInputIndex >= mapping.Count) + return; + + if (mapping[analogInputIndex].ActionInfo.Instance is IMassiveKnobAnalogAction analogAction) + analogAction.AnalogChanged(value); + } + + + protected void DigitalChanged(IMassiveKnobDeviceContext context, int digitalInputIndex, bool on) + { + if (context != activeDeviceContext) + return; + + var mapping = GetActionMappingList(MassiveKnobActionType.InputAnalog); + if (mapping == null || digitalInputIndex >= mapping.Count) + return; + + if (mapping[digitalInputIndex].ActionInfo.Instance is IMassiveKnobDigitalAction digitalAction) + digitalAction.DigitalChanged(on); + } + + + private List GetActionMappingList(MassiveKnobActionType actionType) + { + switch (actionType) + { + case MassiveKnobActionType.InputAnalog: + return analogInputs; + + case MassiveKnobActionType.InputDigital: + return digitalInputs; + + case MassiveKnobActionType.OutputAnalog: + return analogOutputs; + + case MassiveKnobActionType.OutputDigital: + return digitalOutputs; + + default: + throw new ArgumentOutOfRangeException(nameof(actionType), actionType, null); + } + } + + + private List GetActionSettingsList(MassiveKnobActionType actionType) + { + switch (actionType) + { + case MassiveKnobActionType.InputAnalog: + return settings.AnalogInput; + + case MassiveKnobActionType.InputDigital: + return settings.DigitalInput; + + case MassiveKnobActionType.OutputAnalog: + return settings.AnalogOutput; + + case MassiveKnobActionType.OutputDigital: + return settings.DigitalOutput; + + default: + throw new ArgumentOutOfRangeException(nameof(actionType), actionType, null); + } + } + + private void FlushSettings() + { + Settings.Settings settingsSnapshot; + + lock (settingsLock) + { + settingsSnapshot = settings.Clone(); + } + + flushSettingsQueue.Enqueue(async () => + { + await SettingsJsonSerializer.Serialize(settingsSnapshot); + }); + } + + + protected void UpdateActiveDeviceSpecs(IMassiveKnobDeviceContext context, DeviceSpecs specs) + { + if (context != activeDeviceContext) + return; + + + var delayedInitializeActions = new List(); + void DelayedInitialize(IMassiveKnobActionInstance instance, IMassiveKnobActionContext instanceContext) + { + delayedInitializeActions.Add(() => + { + instance.Initialize(instanceContext); + }); + } + + lock (settingsLock) + { + UpdateMapping(analogInputs, specs.AnalogInputCount, settings.AnalogInput, DelayedInitialize); + UpdateMapping(digitalInputs, specs.DigitalInputCount, settings.DigitalInput, DelayedInitialize); + UpdateMapping(analogOutputs, specs.AnalogOutputCount, settings.AnalogOutput, DelayedInitialize); + UpdateMapping(digitalOutputs, specs.DigitalOutputCount, settings.DigitalOutput, DelayedInitialize); + } + + foreach (var delayedInitializeAction in delayedInitializeActions) + delayedInitializeAction(); + + + ActiveDevice = new MassiveKnobDeviceInfo( + ActiveDevice.Info, + ActiveDevice.Instance, + specs); + } + + + private void UpdateMapping(List mapping, int newCount, List actionSettings, Action initializeOutsideLock) + { + if (mapping.Count > newCount) + { + for (var actionIndex = newCount; actionIndex < mapping.Count; actionIndex++) + mapping[actionIndex]?.ActionInfo.Instance?.Dispose(); + + mapping.RemoveRange(newCount, mapping.Count - newCount); + } + + if (actionSettings.Count > newCount) + actionSettings.RemoveRange(newCount, actionSettings.Count - newCount); + + + if (mapping.Count >= newCount) return; + { + var allActions = pluginManager.GetActionPlugins().SelectMany(ap => ap.Actions).ToArray(); + + for (var actionIndex = mapping.Count; actionIndex < newCount; actionIndex++) + { + if (actionIndex < actionSettings.Count && actionSettings[actionIndex] != null) + { + var action = allActions.FirstOrDefault(d => d.ActionId == actionSettings[actionIndex].ActionId); + mapping.Add(CreateActionMapping(action, actionIndex, initializeOutsideLock)); + } + else + mapping.Add(null); + } + } + } + + + private ActionMapping CreateActionMapping(IMassiveKnobAction action, int index, Action initialize) + { + if (action == null) + return null; + + var instance = action.Create(); + var context = new ActionContext(this, action, index); + + var mapping = new ActionMapping(new MassiveKnobActionInfo(action, instance), context); + initialize(instance, context); + + return mapping; + } + + + private class ActionMapping + { + public MassiveKnobActionInfo ActionInfo { get; } + public IMassiveKnobActionContext Context { get; } + + + public ActionMapping(MassiveKnobActionInfo actionInfo, IMassiveKnobActionContext context) + { + ActionInfo = actionInfo; + Context = context; + } + } + + + private class DeviceContext : IMassiveKnobDeviceContext + { + private readonly MassiveKnobOrchestrator owner; + private readonly IMassiveKnobDevice device; + + + public DeviceContext(MassiveKnobOrchestrator owner, IMassiveKnobDevice device) + { + this.owner = owner; + this.device = device; } + public T GetSettings() where T : class, new() { - // TODO - return default; + return owner.GetDeviceSettings(this); + } + + + public void SetSettings(T settings) where T : class, new() + { + owner.SetDeviceSettings(this, device, settings); + } + + + public void Connecting() + { + // TODO update status ? + } + + + public void Connected(DeviceSpecs specs) + { + // TODO update status ? + + owner.UpdateActiveDeviceSpecs(this, specs); + } + + + public void Disconnected() + { + // TODO update status ? + } + + + public void AnalogChanged(int analogInputIndex, byte value) + { + owner.AnalogChanged(this, analogInputIndex, value); + } + + + public void DigitalChanged(int digitalInputIndex, bool on) + { + owner.DigitalChanged(this, digitalInputIndex, on); + } + } + + + private class ActionContext : IMassiveKnobActionContext + { + private readonly MassiveKnobOrchestrator owner; + private readonly IMassiveKnobAction action; + private readonly int index; + + + public ActionContext(MassiveKnobOrchestrator owner, IMassiveKnobAction action, int index) + { + this.owner = owner; + this.action = action; + this.index = index; + } + + + public T GetSettings() where T : class, new() + { + return owner.GetActionSettings(this, action, index); + } + + + public void SetSettings(T settings) where T : class, new() + { + owner.SetActionSettings(this, action, index, settings); + } + + + public void SetDigitalOutput(bool on) + { + throw new NotImplementedException(); } - public void SetSettings(T settings) where T : class, new() + public void SetAnalogOutput(byte value) { - // TODO + throw new NotImplementedException(); } } } diff --git a/Windows/MassiveKnob/Model/PluginManager.cs b/Windows/MassiveKnob/Model/PluginManager.cs index 48fec68..1a2b27e 100644 --- a/Windows/MassiveKnob/Model/PluginManager.cs +++ b/Windows/MassiveKnob/Model/PluginManager.cs @@ -7,21 +7,46 @@ using MassiveKnob.Plugin; namespace MassiveKnob.Model { + public class MassiveKnobPluginIdConflictException : Exception + { + public Guid ConflictingId { get; } + public string FirstAssemblyFilename { get; } + public string ConflictingAssemblyFilename { get; } + + + public MassiveKnobPluginIdConflictException( + Guid conflictingId, + string firstAssemblyFilename, + string conflictingAssemblyFilename) + : base($"Conflicting ID {conflictingId} was already registered by {firstAssemblyFilename}.") + { + ConflictingId = conflictingId; + FirstAssemblyFilename = firstAssemblyFilename; + ConflictingAssemblyFilename = conflictingAssemblyFilename; + } + } + + public class PluginManager : IPluginManager { private readonly List plugins = new List(); - public IEnumerable Plugins => plugins; - public IEnumerable GetDevicePlugins() { return plugins.Where(p => p is IMassiveKnobDevicePlugin).Cast(); } - - public void Load() + public IEnumerable GetActionPlugins() { + return plugins.Where(p => p is IMassiveKnobActionPlugin).Cast(); + } + + + public void Load(Action onException) + { + var registeredIds = new RegisteredIds(); + var codeBase = Assembly.GetEntryAssembly()?.CodeBase; if (!string.IsNullOrEmpty(codeBase)) { @@ -29,17 +54,17 @@ namespace MassiveKnob.Model if (!string.IsNullOrEmpty(localPath)) { var applicationPluginPath = Path.Combine(localPath, @"Plugins"); - LoadPlugins(applicationPluginPath); + LoadPlugins(applicationPluginPath, registeredIds, onException); } } var localPluginPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), @"MassiveKnob", @"Plugins"); - LoadPlugins(localPluginPath); + LoadPlugins(localPluginPath, registeredIds, onException); } - private void LoadPlugins(string path) + private void LoadPlugins(string path, RegisteredIds registeredIds, Action onException) { if (!Directory.Exists(path)) return; @@ -51,19 +76,17 @@ namespace MassiveKnob.Model try { var pluginAssembly = Assembly.LoadFrom(filename); - RegisterPlugins(pluginAssembly); + RegisterPlugins(filename, pluginAssembly, registeredIds); } catch (Exception e) { - // TODO report error -// Console.WriteLine(e); - throw; + onException(e, filename); } } } - private void RegisterPlugins(Assembly assembly) + private void RegisterPlugins(string filename, Assembly assembly, RegisteredIds registeredIds) { var pluginTypes = assembly.GetTypes().Where(t => t.GetCustomAttribute() != null); foreach (var pluginType in pluginTypes) @@ -71,9 +94,57 @@ namespace MassiveKnob.Model var pluginInstance = Activator.CreateInstance(pluginType); if (!(pluginInstance is IMassiveKnobPlugin)) throw new InvalidCastException($"Type {pluginType.FullName} claims to be a MassiveKnobPlugin but does not implement IMassiveKnobPlugin"); - + + ValidateRegistration(filename, (IMassiveKnobPlugin)pluginInstance, registeredIds); plugins.Add((IMassiveKnobPlugin)pluginInstance); } } + + + private static void ValidateRegistration(string filename, IMassiveKnobPlugin plugin, RegisteredIds registeredIds) + { + // Make sure all GUIDs are actually unique and someone has not copy/pasted a plugin without + // modifying the values. This way we can safely make that assumption in other code. + if (registeredIds.PluginById.TryGetValue(plugin.PluginId, out var conflictingPluginFilename)) + throw new MassiveKnobPluginIdConflictException(plugin.PluginId, conflictingPluginFilename, filename); + + registeredIds.PluginById.Add(plugin.PluginId, filename); + + + // ReSharper disable once ConvertIfStatementToSwitchStatement - no, a plugin can implement both interfaces + if (plugin is IMassiveKnobDevicePlugin devicePlugin) + { + foreach (var device in devicePlugin.Devices) + { + if (registeredIds.DeviceById.TryGetValue(device.DeviceId, out var conflictingDeviceFilename)) + throw new MassiveKnobPluginIdConflictException(device.DeviceId, conflictingDeviceFilename, filename); + + registeredIds.DeviceById.Add(device.DeviceId, filename); + } + } + + + // ReSharper disable once InvertIf + if (plugin is IMassiveKnobActionPlugin actionPlugin) + { + foreach (var action in actionPlugin.Actions) + { + if (registeredIds.ActionById.TryGetValue(action.ActionId, out var conflictingActionFilename)) + throw new MassiveKnobPluginIdConflictException(action.ActionId, conflictingActionFilename, filename); + + registeredIds.ActionById.Add(action.ActionId, filename); + + // TODO check ActionType vs. implemented interfaces + } + } + } + + + private class RegisteredIds + { + public readonly Dictionary PluginById = new Dictionary(); + public readonly Dictionary DeviceById = new Dictionary(); + public readonly Dictionary ActionById = new Dictionary(); + } } } diff --git a/Windows/MassiveKnob/Program.cs b/Windows/MassiveKnob/Program.cs index f28ec47..dadea3e 100644 --- a/Windows/MassiveKnob/Program.cs +++ b/Windows/MassiveKnob/Program.cs @@ -1,7 +1,7 @@ using System; -using System.Threading.Tasks; +using System.Text; +using System.Windows; using MassiveKnob.Model; -using MassiveKnob.Settings; using MassiveKnob.View; using MassiveKnob.ViewModel; using SimpleInjector; @@ -14,33 +14,42 @@ namespace MassiveKnob /// The main entry point for the application. /// [STAThread] - public static void Main() + public static int Main() { - MainAsync().GetAwaiter().GetResult(); - } + var pluginManager = new PluginManager(); + + var messages = new StringBuilder(); + pluginManager.Load((exception, filename) => + { + messages.AppendLine($"{filename}: {exception.Message}"); + }); + + if (messages.Length > 0) + { + MessageBox.Show($"Error while loading plugins:\r\n\r\n{messages}", "Massive Knob", MessageBoxButton.OK, MessageBoxImage.Error); + return 1; + } + + var orchestrator = new MassiveKnobOrchestrator(pluginManager); + orchestrator.Load(); - private static async Task MainAsync() - { var container = new Container(); container.Options.EnableAutoVerification = false; - container.RegisterSingleton(); + container.RegisterInstance(pluginManager); + container.RegisterInstance(orchestrator); container.Register(); container.Register(); container.Register(); - var settings = await SettingsJsonSerializer.Deserialize(); - container.RegisterInstance(settings); - - var pluginManager = new PluginManager(); - pluginManager.Load(); - container.RegisterInstance(pluginManager); - var app = container.GetInstance(); app.Run(); + + orchestrator.Dispose(); + return 0; } } } diff --git a/Windows/MassiveKnob/Settings/Settings.cs b/Windows/MassiveKnob/Settings/Settings.cs index 2ac71c3..37c8b24 100644 --- a/Windows/MassiveKnob/Settings/Settings.cs +++ b/Windows/MassiveKnob/Settings/Settings.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Linq; using Newtonsoft.Json.Linq; namespace MassiveKnob.Settings @@ -7,32 +8,67 @@ namespace MassiveKnob.Settings public class Settings { public DeviceSettings Device { get; set; } - public List Actions { get; set; } + public List AnalogInput { get; set; } + public List DigitalInput { get; set; } + public List AnalogOutput { get; set; } + public List DigitalOutput { get; set; } + + + public void Verify() + { + if (AnalogInput == null) AnalogInput = new List(); + if (DigitalInput == null) DigitalInput = new List(); + if (AnalogOutput == null) AnalogOutput = new List(); + if (DigitalOutput == null) DigitalOutput = new List(); + } - public static Settings Default() + public Settings Clone() { return new Settings { - Device = null, - Actions = new List() + Device = Device?.Clone(), + AnalogInput = AnalogInput.Select(a => a?.Clone()).ToList(), + DigitalInput = DigitalInput.Select(a => a?.Clone()).ToList(), + AnalogOutput = AnalogOutput.Select(a => a?.Clone()).ToList(), + DigitalOutput = DigitalOutput.Select(a => a?.Clone()).ToList() }; } public class DeviceSettings { - public Guid? PluginId { get; set; } public Guid? DeviceId { get; set; } public JObject Settings { get; set; } + + public DeviceSettings Clone() + { + return new DeviceSettings + { + DeviceId = DeviceId, + + // This is safe, as the JObject itself is never manipulated, only replaced + Settings = Settings + }; + } } public class ActionSettings { - public Guid PluginId { get; set; } public Guid ActionId { get; set; } public JObject Settings { get; set; } + + public ActionSettings Clone() + { + return new ActionSettings + { + ActionId = ActionId, + + // This is safe, as the JObject itself is never manipulated, only replaced + Settings = Settings + }; + } } } } diff --git a/Windows/MassiveKnob/Settings/SettingsJsonSerializer.cs b/Windows/MassiveKnob/Settings/SettingsJsonSerializer.cs index dddc346..57bfd7d 100644 --- a/Windows/MassiveKnob/Settings/SettingsJsonSerializer.cs +++ b/Windows/MassiveKnob/Settings/SettingsJsonSerializer.cs @@ -1,13 +1,25 @@ using System; +using System.Collections.Generic; using System.IO; using System.Text; using System.Threading.Tasks; using Newtonsoft.Json; +using Newtonsoft.Json.Converters; namespace MassiveKnob.Settings { public static class SettingsJsonSerializer { + private static readonly JsonSerializerSettings DefaultSettings = new JsonSerializerSettings + { + Formatting = Formatting.Indented, + Converters = new List + { + new StringEnumConverter() + } + }; + + public static string GetDefaultFilename() { var path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), @"MassiveKnob"); @@ -24,7 +36,7 @@ namespace MassiveKnob.Settings public static async Task Serialize(Settings settings, string filename) { - var json = JsonConvert.SerializeObject(settings); + var json = JsonConvert.SerializeObject(settings, DefaultSettings); using (var stream = new FileStream(filename, FileMode.Create, FileAccess.Write, FileShare.Read, 4096, true)) using (var streamWriter = new StreamWriter(stream, Encoding.UTF8)) @@ -35,28 +47,34 @@ namespace MassiveKnob.Settings } - public static Task Deserialize() + public static Settings Deserialize() { return Deserialize(GetDefaultFilename()); } - public static async Task Deserialize(string filename) + public static Settings Deserialize(string filename) { - if (!File.Exists(filename)) - return Settings.Default(); + Settings settings = null; - string json; - - using (var stream = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite, 4096, true)) - using (var streamReader = new StreamReader(stream, Encoding.UTF8)) + if (File.Exists(filename)) { - json = await streamReader.ReadToEndAsync(); + string json; + + using (var stream = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite, 4096, true)) + using (var streamReader = new StreamReader(stream, Encoding.UTF8)) + { + json = streamReader.ReadToEnd(); + } + + if (!string.IsNullOrEmpty(json)) + settings = JsonConvert.DeserializeObject(json, DefaultSettings); } + + if (settings == null) + settings = new Settings(); - if (string.IsNullOrEmpty(json)) - return Settings.Default(); - - return JsonConvert.DeserializeObject(json); + settings.Verify(); + return settings; } } } diff --git a/Windows/MassiveKnob/Strings.Designer.cs b/Windows/MassiveKnob/Strings.Designer.cs index c5bf674..3611e3b 100644 --- a/Windows/MassiveKnob/Strings.Designer.cs +++ b/Windows/MassiveKnob/Strings.Designer.cs @@ -61,83 +61,11 @@ namespace MassiveKnob { } /// - /// Looks up a localized string similar to {0}. + /// Looks up a localized string similar to Not configured. /// - internal static string DeviceDisplayNameActive { + internal static string ActionNotConfigured { get { - return ResourceManager.GetString("DeviceDisplayNameActive", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to {0} (Disabled). - /// - internal static string DeviceDisplayNameDisabled { - get { - return ResourceManager.GetString("DeviceDisplayNameDisabled", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to {0} (Inactive). - /// - internal static string DeviceDisplayNameInactive { - get { - return ResourceManager.GetString("DeviceDisplayNameInactive", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to {0} (Not present). - /// - internal static string DeviceDisplayNameNotPresent { - get { - return ResourceManager.GetString("DeviceDisplayNameNotPresent", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to {0} (Unplugged). - /// - internal static string DeviceDisplayNameUnplugged { - get { - return ResourceManager.GetString("DeviceDisplayNameUnplugged", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Knob {0}. - /// - internal static string KnobIndex { - get { - return ResourceManager.GetString("KnobIndex", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Connected. - /// - internal static string StatusConnected { - get { - return ResourceManager.GetString("StatusConnected", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Connecting.... - /// - internal static string StatusConnecting { - get { - return ResourceManager.GetString("StatusConnecting", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Not connected. - /// - internal static string StatusNotConnected { - get { - return ResourceManager.GetString("StatusNotConnected", resourceCulture); + return ResourceManager.GetString("ActionNotConfigured", resourceCulture); } } } diff --git a/Windows/MassiveKnob/Strings.resx b/Windows/MassiveKnob/Strings.resx index 0576451..72ba0d9 100644 --- a/Windows/MassiveKnob/Strings.resx +++ b/Windows/MassiveKnob/Strings.resx @@ -117,31 +117,7 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - Connected - - - Connecting... - - - Not connected - - - Knob {0} - - - {0} - - - {0} (Disabled) - - - {0} (Inactive) - - - {0} (Not present) - - - {0} (Unplugged) + + Not configured \ No newline at end of file diff --git a/Windows/MassiveKnob/Style.xaml b/Windows/MassiveKnob/Style.xaml index 443fe67..b7a4d7e 100644 --- a/Windows/MassiveKnob/Style.xaml +++ b/Windows/MassiveKnob/Style.xaml @@ -1,5 +1,9 @@  + + @@ -12,10 +16,21 @@ + + + + diff --git a/Windows/MassiveKnob/View/InputOutputView.xaml b/Windows/MassiveKnob/View/InputOutputView.xaml new file mode 100644 index 0000000..4e8d2f0 --- /dev/null +++ b/Windows/MassiveKnob/View/InputOutputView.xaml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Windows/MassiveKnob/View/InputOutputView.xaml.cs b/Windows/MassiveKnob/View/InputOutputView.xaml.cs new file mode 100644 index 0000000..5d4d6a5 --- /dev/null +++ b/Windows/MassiveKnob/View/InputOutputView.xaml.cs @@ -0,0 +1,13 @@ +namespace MassiveKnob.View +{ + /// + /// Interaction logic for InputOutputView.xaml + /// + public partial class InputOutputView + { + public InputOutputView() + { + InitializeComponent(); + } + } +} diff --git a/Windows/MassiveKnob/View/SettingsWindow.xaml b/Windows/MassiveKnob/View/SettingsWindow.xaml index 601f5e4..2ac0269 100644 --- a/Windows/MassiveKnob/View/SettingsWindow.xaml +++ b/Windows/MassiveKnob/View/SettingsWindow.xaml @@ -4,9 +4,13 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:helpers="clr-namespace:MassiveKnob.Helpers" + xmlns:viewModel="clr-namespace:MassiveKnob.ViewModel" + xmlns:view="clr-namespace:MassiveKnob.View" mc:Ignorable="d" Title="Massive Knob - Settings" Height="555" Width="704.231" - WindowStartupLocation="CenterScreen"> + WindowStartupLocation="CenterScreen" + Style="{StaticResource DefaultWindow}" + d:DataContext="{d:DesignInstance Type=viewModel:SettingsViewModel}"> @@ -14,32 +18,103 @@ - + - + - + + Device - + - + + - - Controls + + + Analog inputs + + + + + + + + + + + + Digital inputs + + + + + + + + + + + + Analog outputs + + + + + + + + + + + + Digital outputs + + + + + + + + diff --git a/Windows/MassiveKnob/ViewModel/ActionViewModel.cs b/Windows/MassiveKnob/ViewModel/ActionViewModel.cs new file mode 100644 index 0000000..e443ecb --- /dev/null +++ b/Windows/MassiveKnob/ViewModel/ActionViewModel.cs @@ -0,0 +1,29 @@ +using System.Windows; +using MassiveKnob.Plugin; + +namespace MassiveKnob.ViewModel +{ + public class ActionViewModel + { + // ReSharper disable UnusedMember.Global - used by WPF Binding + public string Name => RepresentsNull ? Strings.ActionNotConfigured : Action.Name; + public string Description => RepresentsNull ? null : Action.Description; + + public Visibility DescriptionVisibility => string.IsNullOrEmpty(Description) ? Visibility.Collapsed : Visibility.Visible; + // ReSharper restore UnusedMember.Global + + public IMassiveKnobActionPlugin Plugin { get; } + public IMassiveKnobAction Action { get; } + + public bool RepresentsNull => Action == null; + + + + public ActionViewModel(IMassiveKnobActionPlugin plugin, IMassiveKnobAction action) + { + Plugin = plugin; + Action = action; + } + } + +} diff --git a/Windows/MassiveKnob/ViewModel/DeviceViewModel.cs b/Windows/MassiveKnob/ViewModel/DeviceViewModel.cs new file mode 100644 index 0000000..d6769ea --- /dev/null +++ b/Windows/MassiveKnob/ViewModel/DeviceViewModel.cs @@ -0,0 +1,25 @@ +using System.Windows; +using MassiveKnob.Plugin; + +namespace MassiveKnob.ViewModel +{ + public class DeviceViewModel + { + // ReSharper disable UnusedMember.Global - used by WPF Binding + public string Name => Device.Name; + public string Description => Device.Description; + + public Visibility DescriptionVisibility => string.IsNullOrEmpty(Description) ? Visibility.Collapsed : Visibility.Visible; + // ReSharper restore UnusedMember.Global + + public IMassiveKnobDevicePlugin Plugin { get; } + public IMassiveKnobDevice Device { get; } + + + public DeviceViewModel(IMassiveKnobDevicePlugin plugin, IMassiveKnobDevice device) + { + Plugin = plugin; + Device = device; + } + } +} diff --git a/Windows/MassiveKnob/ViewModel/InputOutputViewModel.cs b/Windows/MassiveKnob/ViewModel/InputOutputViewModel.cs new file mode 100644 index 0000000..a31f5fa --- /dev/null +++ b/Windows/MassiveKnob/ViewModel/InputOutputViewModel.cs @@ -0,0 +1,86 @@ +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Windows.Controls; +using MassiveKnob.Model; +using MassiveKnob.Plugin; + +namespace MassiveKnob.ViewModel +{ + public class InputOutputViewModel : INotifyPropertyChanged + { + private readonly SettingsViewModel settingsViewModel; + private readonly IMassiveKnobOrchestrator orchestrator; + private readonly MassiveKnobActionType actionType; + private readonly int index; + + private ActionViewModel selectedAction; + private UserControl actionSettingsControl; + + + // ReSharper disable UnusedMember.Global - used by WPF Binding + public string DisplayName => actionType == MassiveKnobActionType.OutputAnalog || actionType == MassiveKnobActionType.OutputDigital + ? $"Output #{index + 1}" + : $"Input #{index + 1}"; + + public IList Actions => settingsViewModel.Actions; + + + public ActionViewModel SelectedAction + { + get => selectedAction; + set + { + if (value == selectedAction) + return; + + selectedAction = value == null || value.RepresentsNull ? null : value; + var actionInfo = orchestrator.SetAction(actionType, index, selectedAction?.Action); + + OnPropertyChanged(); + + ActionSettingsControl = actionInfo?.Instance.CreateSettingsControl(); + } + } + + public UserControl ActionSettingsControl + { + get => actionSettingsControl; + set + { + if (value == actionSettingsControl) + return; + + actionSettingsControl = value; + OnPropertyChanged(); + } + } + // ReSharper restore UnusedMember.Global + + + public InputOutputViewModel(SettingsViewModel settingsViewModel, IMassiveKnobOrchestrator orchestrator, MassiveKnobActionType actionType, int index) + { + this.settingsViewModel = settingsViewModel; + this.orchestrator = orchestrator; + this.actionType = actionType; + this.index = index; + + var actionInfo = orchestrator.GetAction(actionType, index); + + selectedAction = actionInfo != null + ? Actions.SingleOrDefault(a => !a.RepresentsNull && a.Action.ActionId == actionInfo.Info.ActionId) + : Actions.Single(a => a.RepresentsNull); + + actionSettingsControl = actionInfo?.Instance.CreateSettingsControl(); + } + + + public event PropertyChangedEventHandler PropertyChanged; + + protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } + } +} diff --git a/Windows/MassiveKnob/ViewModel/SettingsViewModel.cs b/Windows/MassiveKnob/ViewModel/SettingsViewModel.cs index 4764a9b..0c4dcfb 100644 --- a/Windows/MassiveKnob/ViewModel/SettingsViewModel.cs +++ b/Windows/MassiveKnob/ViewModel/SettingsViewModel.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Runtime.CompilerServices; +using System.Windows; using System.Windows.Controls; using MassiveKnob.Model; using MassiveKnob.Plugin; @@ -11,47 +12,42 @@ namespace MassiveKnob.ViewModel { public class SettingsViewModel : INotifyPropertyChanged { - private readonly Settings.Settings settings; private readonly IMassiveKnobOrchestrator orchestrator; private DeviceViewModel selectedDevice; private UserControl settingsControl; + private DeviceSpecs? specs; + private IEnumerable analogInputs; + private IEnumerable digitalInputs; + private IEnumerable analogOutputs; + private IEnumerable digitalOutputs; + + + // ReSharper disable UnusedMember.Global - used by WPF Binding + public IList Devices { get; } + public IList Actions { get; } + - public IEnumerable Devices { get; } public DeviceViewModel SelectedDevice { get => selectedDevice; - set { if (value == selectedDevice) return; selectedDevice = value; - var deviceInstance = orchestrator.SetActiveDevice(value?.Device); - - if (value == null) - settings.Device = null; - else - { - settings.Device = new Settings.Settings.DeviceSettings - { - PluginId = value.Plugin.PluginId, - DeviceId = value.Device.DeviceId, - Settings = null - }; - } + var deviceInfo = orchestrator.SetActiveDevice(value?.Device); OnPropertyChanged(); - SettingsControl = deviceInstance?.CreateSettingsControl(); + SettingsControl = deviceInfo?.Instance.CreateSettingsControl(); } } public UserControl SettingsControl { get => settingsControl; - set { if (value == settingsControl) @@ -62,20 +58,113 @@ namespace MassiveKnob.ViewModel } } - - - - public SettingsViewModel(IPluginManager pluginManager, Settings.Settings settings, IMassiveKnobOrchestrator orchestrator) + public DeviceSpecs? Specs + { + get => specs; + set + { + specs = value; + OnPropertyChanged(); + OnOtherPropertyChanged("AnalogInputVisibility"); + OnOtherPropertyChanged("DigitalInputVisibility"); + + AnalogInputs = Enumerable + .Range(0, specs?.AnalogInputCount ?? 0) + .Select(i => new InputOutputViewModel(this, orchestrator, MassiveKnobActionType.InputAnalog, i)); + + DigitalInputs = Enumerable + .Range(0, specs?.DigitalInputCount ?? 0) + .Select(i => new InputOutputViewModel(this, orchestrator, MassiveKnobActionType.InputDigital, i)); + } + } + + public Visibility AnalogInputVisibility => specs.HasValue && specs.Value.AnalogInputCount > 0 + ? Visibility.Visible + : Visibility.Collapsed; + + public IEnumerable AnalogInputs + { + get => analogInputs; + set + { + analogInputs = value; + OnPropertyChanged(); + } + } + + public Visibility DigitalInputVisibility => specs.HasValue && specs.Value.DigitalInputCount > 0 + ? Visibility.Visible + : Visibility.Collapsed; + + public IEnumerable DigitalInputs + { + get => digitalInputs; + set + { + digitalInputs = value; + OnPropertyChanged(); + } + } + + public Visibility AnalogOutputVisibility => specs.HasValue && specs.Value.AnalogOutputCount > 0 + ? Visibility.Visible + : Visibility.Collapsed; + + public IEnumerable AnalogOutputs + { + get => analogOutputs; + set + { + analogOutputs = value; + OnPropertyChanged(); + } + } + + public Visibility DigitalOutputVisibility => specs.HasValue && specs.Value.DigitalOutputCount > 0 + ? Visibility.Visible + : Visibility.Collapsed; + + public IEnumerable DigitalOutputs + { + get => digitalOutputs; + set + { + digitalOutputs = value; + OnPropertyChanged(); + } + } + // ReSharper restore UnusedMember.Global + + + + public SettingsViewModel(IPluginManager pluginManager, IMassiveKnobOrchestrator orchestrator) { - this.settings = settings; this.orchestrator = orchestrator; - Devices = pluginManager.GetDevicePlugins().SelectMany(dp => dp.Devices.Select(d => new DeviceViewModel(dp, d))); + orchestrator.ActiveDeviceSubject.Subscribe(info => { Specs = info.Specs; }); - if (settings.Device != null) - SelectedDevice = Devices.FirstOrDefault(d => - d.Plugin.PluginId == settings.Device.PluginId && - d.Device.DeviceId == settings.Device.DeviceId); + + Devices = pluginManager.GetDevicePlugins() + .SelectMany(dp => dp.Devices.Select(d => new DeviceViewModel(dp, d))) + .ToList(); + + var allActions = new List + { + new ActionViewModel(null, null) + }; + + allActions.AddRange( + pluginManager.GetActionPlugins() + .SelectMany(ap => ap.Actions.Select(a => new ActionViewModel(ap, a)))); + + Actions = allActions; + + if (orchestrator.ActiveDevice == null) + return; + + selectedDevice = Devices.Single(d => d.Device.DeviceId == orchestrator.ActiveDevice.Info.DeviceId); + SettingsControl = orchestrator.ActiveDevice.Instance.CreateSettingsControl(); + Specs = orchestrator.ActiveDevice.Specs; } @@ -86,24 +175,9 @@ namespace MassiveKnob.ViewModel PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } - - - public class DeviceViewModel + protected virtual void OnOtherPropertyChanged(string propertyName) { - // ReSharper disable UnusedMember.Global - used by WPF Binding - public string Name => Device.Name; - public string Description => Device.Description; - // ReSharper restore UnusedMember.Global - - public IMassiveKnobDevicePlugin Plugin { get; } - public IMassiveKnobDevice Device { get; } - - - public DeviceViewModel(IMassiveKnobDevicePlugin plugin, IMassiveKnobDevice device) - { - Plugin = plugin; - Device = device; - } + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } } } From 28c25c8b43e03170d798d97697db8442350d210c Mon Sep 17 00:00:00 2001 From: Mark van Renswoude Date: Wed, 24 Feb 2021 19:35:01 +0100 Subject: [PATCH 06/19] Implemented OSD Implemented mute/unmute input and output actions Changed MockDevice to EmulatorDevice with UI for easier testing --- README.md | 4 +- .../Base/BaseDeviceSettings.cs | 12 + .../Base/BaseDeviceSettingsView.xaml | 19 + .../Base/BaseDeviceSettingsView.xaml.cs | 28 ++ .../BaseDeviceSettingsViewModel.cs | 33 +- .../GetMuted/DeviceGetMutedAction.cs | 82 ++++ .../GetMuted/DeviceGetMutedActionSettings.cs | 9 + .../DeviceGetMutedActionSettingsView.xaml} | 10 +- .../DeviceGetMutedActionSettingsView.xaml.cs | 14 + .../DeviceGetMutedActionSettingsViewModel.cs | 28 ++ .../GetVolume/DeviceGetVolumeAction.cs | 82 ++++ .../DeviceGetVolumeActionSettings.cs | 8 + .../DeviceGetVolumeActionSettingsView.xaml | 14 + .../DeviceGetVolumeActionSettingsView.xaml.cs | 16 + .../DeviceGetVolumeActionSettingsViewModel.cs | 12 + .../MassiveKnob.Plugin.CoreAudio.csproj | 73 ++- .../MassiveKnobCoreAudioPlugin.cs | 14 +- .../OSD/OSDManager.cs | 50 ++ .../OSD/OSDWindow.xaml | 55 +++ .../OSD/OSDWindow.xaml.cs | 49 ++ .../OSD/OSDWindowViewModel.cs | 92 ++++ .../OSD/SpeakerIcon.xaml | 52 +++ .../Resources/Muted.svg | 48 ++ .../Resources/OSDIcon.ai | 441 ++++++++++++++++++ .../SetMuted/DeviceSetMutedAction.cs | 87 ++++ .../SetMuted/DeviceSetMutedActionSettings.cs | 10 + .../DeviceSetMutedActionSettingsView.xaml | 14 + .../DeviceSetMutedActionSettingsView.xaml.cs | 14 + .../DeviceSetMutedActionSettingsViewModel.cs | 42 ++ .../DeviceSetVolumeAction.cs} | 21 +- .../DeviceSetVolumeActionSettings.cs | 9 + .../DeviceSetVolumeActionSettingsView.xaml | 14 + .../DeviceSetVolumeActionSettingsView.xaml.cs | 14 + .../DeviceSetVolumeActionSettingsViewModel.cs | 12 + .../Settings/BaseDeviceSettings.cs | 9 - .../Settings/DeviceVolumeActionSettings.cs | 7 - .../DeviceVolumeActionSettingsView.xaml.cs | 14 - .../DeviceVolumeActionSettingsViewModel.cs | 10 - .../Strings.Designer.cs | 160 ++++++- .../MassiveKnob.Plugin.CoreAudio/Strings.resx | 48 ++ .../Devices/EmulatorDevice.cs | 97 ++++ .../Devices/EmulatorDeviceWindow.xaml | 75 +++ .../Devices/EmulatorDeviceWindow.xaml.cs | 14 + .../Devices/EmulatorDeviceWindowViewModel.cs | 264 +++++++++++ .../MassiveKnob.Plugin.EmulatorDevice.csproj} | 28 +- .../MassiveKnobEmulatorDevicePlugin.cs} | 6 +- .../Properties/AssemblyInfo.cs | 0 .../Settings/EmulatorDeviceSettings.cs | 10 + .../Settings/EmulatorDeviceSettingsView.xaml | 34 ++ .../EmulatorDeviceSettingsView.xaml.cs | 15 + .../EmulatorDeviceSettingsViewModel.cs | 81 ++++ .../Devices/MockDevice.cs | 95 ---- .../Settings/MockDeviceSettings.cs | 9 - .../Settings/MockDeviceSettingsView.xaml | 30 -- .../Settings/MockDeviceSettingsView.xaml.cs | 15 - .../Settings/MockDeviceSettingsViewModel.cs | 67 --- .../Devices/SerialDevice.cs | 11 + .../Worker/SerialWorker.cs | 1 + .../IMassiveKnobDeviceInstance.cs | 14 + Windows/MassiveKnob.sln | 2 +- Windows/MassiveKnob.sln.DotSettings | 4 +- .../Model/MassiveKnobOrchestrator.cs | 56 ++- Windows/MassiveKnob/Style.xaml | 5 +- Windows/MassiveKnob/View/InputOutputView.xaml | 4 +- Windows/MassiveKnob/View/SettingsWindow.xaml | 2 +- .../ViewModel/InputOutputViewModel.cs | 5 +- .../ViewModel/SettingsViewModel.cs | 17 +- 67 files changed, 2357 insertions(+), 334 deletions(-) create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/Base/BaseDeviceSettings.cs create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/Base/BaseDeviceSettingsView.xaml create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/Base/BaseDeviceSettingsView.xaml.cs rename Windows/MassiveKnob.Plugin.CoreAudio/{Settings => Base}/BaseDeviceSettingsViewModel.cs (82%) create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/GetMuted/DeviceGetMutedAction.cs create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/GetMuted/DeviceGetMutedActionSettings.cs rename Windows/MassiveKnob.Plugin.CoreAudio/{Settings/DeviceVolumeActionSettingsView.xaml => GetMuted/DeviceGetMutedActionSettingsView.xaml} (50%) create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/GetMuted/DeviceGetMutedActionSettingsView.xaml.cs create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/GetMuted/DeviceGetMutedActionSettingsViewModel.cs create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/GetVolume/DeviceGetVolumeAction.cs create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/GetVolume/DeviceGetVolumeActionSettings.cs create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/GetVolume/DeviceGetVolumeActionSettingsView.xaml create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/GetVolume/DeviceGetVolumeActionSettingsView.xaml.cs create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/GetVolume/DeviceGetVolumeActionSettingsViewModel.cs create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/OSD/OSDManager.cs create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/OSD/OSDWindow.xaml create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/OSD/OSDWindow.xaml.cs create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/OSD/OSDWindowViewModel.cs create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/OSD/SpeakerIcon.xaml create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/Resources/Muted.svg create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/Resources/OSDIcon.ai create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/SetMuted/DeviceSetMutedAction.cs create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/SetMuted/DeviceSetMutedActionSettings.cs create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/SetMuted/DeviceSetMutedActionSettingsView.xaml create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/SetMuted/DeviceSetMutedActionSettingsView.xaml.cs create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/SetMuted/DeviceSetMutedActionSettingsViewModel.cs rename Windows/MassiveKnob.Plugin.CoreAudio/{Actions/DeviceVolumeAction.cs => SetVolume/DeviceSetVolumeAction.cs} (73%) create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/SetVolume/DeviceSetVolumeActionSettings.cs create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/SetVolume/DeviceSetVolumeActionSettingsView.xaml create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/SetVolume/DeviceSetVolumeActionSettingsView.xaml.cs create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/SetVolume/DeviceSetVolumeActionSettingsViewModel.cs delete mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/Settings/BaseDeviceSettings.cs delete mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/Settings/DeviceVolumeActionSettings.cs delete mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/Settings/DeviceVolumeActionSettingsView.xaml.cs delete mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/Settings/DeviceVolumeActionSettingsViewModel.cs create mode 100644 Windows/MassiveKnob.Plugin.EmulatorDevice/Devices/EmulatorDevice.cs create mode 100644 Windows/MassiveKnob.Plugin.EmulatorDevice/Devices/EmulatorDeviceWindow.xaml create mode 100644 Windows/MassiveKnob.Plugin.EmulatorDevice/Devices/EmulatorDeviceWindow.xaml.cs create mode 100644 Windows/MassiveKnob.Plugin.EmulatorDevice/Devices/EmulatorDeviceWindowViewModel.cs rename Windows/{MassiveKnob.Plugin.MockDevice/MassiveKnob.Plugin.MockDevice.csproj => MassiveKnob.Plugin.EmulatorDevice/MassiveKnob.Plugin.EmulatorDevice.csproj} (73%) rename Windows/{MassiveKnob.Plugin.MockDevice/MassiveKnobMockDevicePlugin.cs => MassiveKnob.Plugin.EmulatorDevice/MassiveKnobEmulatorDevicePlugin.cs} (78%) rename Windows/{MassiveKnob.Plugin.MockDevice => MassiveKnob.Plugin.EmulatorDevice}/Properties/AssemblyInfo.cs (100%) create mode 100644 Windows/MassiveKnob.Plugin.EmulatorDevice/Settings/EmulatorDeviceSettings.cs create mode 100644 Windows/MassiveKnob.Plugin.EmulatorDevice/Settings/EmulatorDeviceSettingsView.xaml create mode 100644 Windows/MassiveKnob.Plugin.EmulatorDevice/Settings/EmulatorDeviceSettingsView.xaml.cs create mode 100644 Windows/MassiveKnob.Plugin.EmulatorDevice/Settings/EmulatorDeviceSettingsViewModel.cs delete mode 100644 Windows/MassiveKnob.Plugin.MockDevice/Devices/MockDevice.cs delete mode 100644 Windows/MassiveKnob.Plugin.MockDevice/Settings/MockDeviceSettings.cs delete mode 100644 Windows/MassiveKnob.Plugin.MockDevice/Settings/MockDeviceSettingsView.xaml delete mode 100644 Windows/MassiveKnob.Plugin.MockDevice/Settings/MockDeviceSettingsView.xaml.cs delete mode 100644 Windows/MassiveKnob.Plugin.MockDevice/Settings/MockDeviceSettingsViewModel.cs diff --git a/README.md b/README.md index 0f0d5cb..4bc27bc 100644 --- a/README.md +++ b/README.md @@ -16,8 +16,8 @@ Because of the second requirement, a simple media keys HID device does not suffi - by changing the Windows default output device - by running a VoiceMeeter macro 2. Corresponding LEDs to indicate the currently active device -3. OSD -4. API / plugins to use extra knobs and buttons for other purposes +3. ✔ OSD +4. ✔ API / plugins to use extra knobs and buttons for other purposes ## Developing The hardware side uses an Arduino sketch to communicate the hardware state over the serial port. diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/Base/BaseDeviceSettings.cs b/Windows/MassiveKnob.Plugin.CoreAudio/Base/BaseDeviceSettings.cs new file mode 100644 index 0000000..17622db --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/Base/BaseDeviceSettings.cs @@ -0,0 +1,12 @@ +using System; + +namespace MassiveKnob.Plugin.CoreAudio.Base +{ + public class BaseDeviceSettings + { + public Guid? DeviceId { get; set; } + + // TODO more options, like positioning and style + public bool OSD { get; set; } = true; + } +} diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/Base/BaseDeviceSettingsView.xaml b/Windows/MassiveKnob.Plugin.CoreAudio/Base/BaseDeviceSettingsView.xaml new file mode 100644 index 0000000..154cf72 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/Base/BaseDeviceSettingsView.xaml @@ -0,0 +1,19 @@ + + + + + + + + + + diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/Base/BaseDeviceSettingsView.xaml.cs b/Windows/MassiveKnob.Plugin.CoreAudio/Base/BaseDeviceSettingsView.xaml.cs new file mode 100644 index 0000000..2abe8e2 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/Base/BaseDeviceSettingsView.xaml.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace MassiveKnob.Plugin.CoreAudio.Base +{ + /// + /// Interaction logic for BaseDeviceSettingsView.xaml + /// + public partial class BaseDeviceSettingsView : UserControl + { + public BaseDeviceSettingsView() + { + InitializeComponent(); + } + } +} diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/Settings/BaseDeviceSettingsViewModel.cs b/Windows/MassiveKnob.Plugin.CoreAudio/Base/BaseDeviceSettingsViewModel.cs similarity index 82% rename from Windows/MassiveKnob.Plugin.CoreAudio/Settings/BaseDeviceSettingsViewModel.cs rename to Windows/MassiveKnob.Plugin.CoreAudio/Base/BaseDeviceSettingsViewModel.cs index 454bd84..9f89426 100644 --- a/Windows/MassiveKnob.Plugin.CoreAudio/Settings/BaseDeviceSettingsViewModel.cs +++ b/Windows/MassiveKnob.Plugin.CoreAudio/Base/BaseDeviceSettingsViewModel.cs @@ -7,11 +7,22 @@ using System.Threading.Tasks; using System.Windows; using AudioSwitcher.AudioApi; -namespace MassiveKnob.Plugin.CoreAudio.Settings +namespace MassiveKnob.Plugin.CoreAudio.Base { + public class BaseDeviceSettingsViewModel : BaseDeviceSettingsViewModel where T : BaseDeviceSettings + { + protected new T Settings => (T)base.Settings; + + public BaseDeviceSettingsViewModel(T settings) : base(settings) + { + } + } + + + public class BaseDeviceSettingsViewModel : INotifyPropertyChanged { - private readonly BaseDeviceSettings settings; + protected readonly BaseDeviceSettings Settings; public event PropertyChangedEventHandler PropertyChanged; private IList playbackDevices; @@ -37,7 +48,21 @@ namespace MassiveKnob.Plugin.CoreAudio.Settings return; selectedDevice = value; - settings.DeviceId = selectedDevice?.Id; + Settings.DeviceId = selectedDevice?.Id; + OnPropertyChanged(); + } + } + + + public bool OSD + { + get => Settings.OSD; + set + { + if (value == Settings.OSD) + return; + + Settings.OSD = value; OnPropertyChanged(); } } @@ -46,7 +71,7 @@ namespace MassiveKnob.Plugin.CoreAudio.Settings public BaseDeviceSettingsViewModel(BaseDeviceSettings settings) { - this.settings = settings; + Settings = settings; Task.Run(async () => { diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/GetMuted/DeviceGetMutedAction.cs b/Windows/MassiveKnob.Plugin.CoreAudio/GetMuted/DeviceGetMutedAction.cs new file mode 100644 index 0000000..dde57d3 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/GetMuted/DeviceGetMutedAction.cs @@ -0,0 +1,82 @@ +using System; +using System.Windows.Controls; +using AudioSwitcher.AudioApi; +using MassiveKnob.Plugin.CoreAudio.OSD; + +namespace MassiveKnob.Plugin.CoreAudio.GetMuted +{ + public class DeviceGetMutedAction : IMassiveKnobAction + { + public Guid ActionId { get; } = new Guid("86646ca7-f472-4c5a-8d0f-7e5d2d162ab9"); + public MassiveKnobActionType ActionType { get; } = MassiveKnobActionType.OutputDigital; + public string Name { get; } = Strings.GetMutedName; + public string Description { get; } = Strings.GetMutedDescription; + + + public IMassiveKnobActionInstance Create() + { + return new Instance(); + } + + + private class Instance : IMassiveKnobActionInstance + { + private IMassiveKnobActionContext actionContext; + private DeviceGetMutedActionSettings settings; + private IDevice playbackDevice; + private IDisposable deviceChanged; + + + public void Initialize(IMassiveKnobActionContext context) + { + actionContext = context; + settings = context.GetSettings(); + ApplySettings(); + } + + + public void Dispose() + { + deviceChanged?.Dispose(); + } + + + private void ApplySettings() + { + if (playbackDevice != null && playbackDevice.Id == settings.DeviceId) + return; + + var coreAudioController = CoreAudioControllerInstance.Acquire(); + playbackDevice = settings.DeviceId.HasValue ? coreAudioController.GetDevice(settings.DeviceId.Value) : null; + + deviceChanged?.Dispose(); + deviceChanged = playbackDevice?.MuteChanged.Subscribe(MuteChanged); + } + + + public UserControl CreateSettingsControl() + { + var viewModel = new DeviceGetMutedActionSettingsViewModel(settings); + viewModel.PropertyChanged += (sender, args) => + { + if (!viewModel.IsSettingsProperty(args.PropertyName)) + return; + + actionContext.SetSettings(settings); + ApplySettings(); + }; + + return new DeviceGetMutedActionSettingsView(viewModel); + } + + + private void MuteChanged(DeviceMuteChangedArgs args) + { + actionContext.SetDigitalOutput(settings.Inverted ? !args.IsMuted : args.IsMuted); + + if (settings.OSD) + OSDManager.Show(args.Device); + } + } + } +} diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/GetMuted/DeviceGetMutedActionSettings.cs b/Windows/MassiveKnob.Plugin.CoreAudio/GetMuted/DeviceGetMutedActionSettings.cs new file mode 100644 index 0000000..51a0bd5 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/GetMuted/DeviceGetMutedActionSettings.cs @@ -0,0 +1,9 @@ +using MassiveKnob.Plugin.CoreAudio.Base; + +namespace MassiveKnob.Plugin.CoreAudio.GetMuted +{ + public class DeviceGetMutedActionSettings : BaseDeviceSettings + { + public bool Inverted { get; set; } + } +} diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/Settings/DeviceVolumeActionSettingsView.xaml b/Windows/MassiveKnob.Plugin.CoreAudio/GetMuted/DeviceGetMutedActionSettingsView.xaml similarity index 50% rename from Windows/MassiveKnob.Plugin.CoreAudio/Settings/DeviceVolumeActionSettingsView.xaml rename to Windows/MassiveKnob.Plugin.CoreAudio/GetMuted/DeviceGetMutedActionSettingsView.xaml index b1485b0..aef700b 100644 --- a/Windows/MassiveKnob.Plugin.CoreAudio/Settings/DeviceVolumeActionSettingsView.xaml +++ b/Windows/MassiveKnob.Plugin.CoreAudio/GetMuted/DeviceGetMutedActionSettingsView.xaml @@ -1,14 +1,14 @@ - + d:DataContext="{d:DesignInstance getMuted:DeviceGetMutedActionSettingsViewModel}"> - Playback device - + diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/GetMuted/DeviceGetMutedActionSettingsView.xaml.cs b/Windows/MassiveKnob.Plugin.CoreAudio/GetMuted/DeviceGetMutedActionSettingsView.xaml.cs new file mode 100644 index 0000000..067abf0 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/GetMuted/DeviceGetMutedActionSettingsView.xaml.cs @@ -0,0 +1,14 @@ +namespace MassiveKnob.Plugin.CoreAudio.GetMuted +{ + /// + /// Interaction logic for DeviceGetMutedActionSettingsView.xaml + /// + public partial class DeviceGetMutedActionSettingsView + { + public DeviceGetMutedActionSettingsView(DeviceGetMutedActionSettingsViewModel viewModel) + { + DataContext = viewModel; + InitializeComponent(); + } + } +} \ No newline at end of file diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/GetMuted/DeviceGetMutedActionSettingsViewModel.cs b/Windows/MassiveKnob.Plugin.CoreAudio/GetMuted/DeviceGetMutedActionSettingsViewModel.cs new file mode 100644 index 0000000..1f52f80 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/GetMuted/DeviceGetMutedActionSettingsViewModel.cs @@ -0,0 +1,28 @@ +using MassiveKnob.Plugin.CoreAudio.Base; + +namespace MassiveKnob.Plugin.CoreAudio.GetMuted +{ + public class DeviceGetMutedActionSettingsViewModel : BaseDeviceSettingsViewModel + { + // ReSharper disable UnusedMember.Global - used by WPF Binding + public bool Inverted + { + get => Settings.Inverted; + set + { + if (value == Settings.Inverted) + return; + + Settings.Inverted = value; + OnPropertyChanged(); + } + } + // ReSharper restore UnusedMember.Global + + + // ReSharper disable once SuggestBaseTypeForParameter - by design + public DeviceGetMutedActionSettingsViewModel(DeviceGetMutedActionSettings settings) : base(settings) + { + } + } +} diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/GetVolume/DeviceGetVolumeAction.cs b/Windows/MassiveKnob.Plugin.CoreAudio/GetVolume/DeviceGetVolumeAction.cs new file mode 100644 index 0000000..a8c2cb5 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/GetVolume/DeviceGetVolumeAction.cs @@ -0,0 +1,82 @@ +using System; +using System.Windows.Controls; +using AudioSwitcher.AudioApi; +using MassiveKnob.Plugin.CoreAudio.OSD; + +namespace MassiveKnob.Plugin.CoreAudio.GetVolume +{ + public class DeviceGetVolumeAction : IMassiveKnobAction + { + public Guid ActionId { get; } = new Guid("6ebf91af-8240-4a75-9729-c6a1eb60dcba"); + public MassiveKnobActionType ActionType { get; } = MassiveKnobActionType.OutputAnalog; + public string Name { get; } = Strings.GetVolumeName; + public string Description { get; } = Strings.GetVolumeDescription; + + + public IMassiveKnobActionInstance Create() + { + return new Instance(); + } + + + private class Instance : IMassiveKnobActionInstance + { + private IMassiveKnobActionContext actionContext; + private DeviceGetVolumeActionSettings settings; + private IDevice playbackDevice; + private IDisposable deviceChanged; + + + public void Initialize(IMassiveKnobActionContext context) + { + actionContext = context; + settings = context.GetSettings(); + ApplySettings(); + } + + + public void Dispose() + { + deviceChanged?.Dispose(); + } + + + private void ApplySettings() + { + if (playbackDevice != null && playbackDevice.Id == settings.DeviceId) + return; + + var coreAudioController = CoreAudioControllerInstance.Acquire(); + playbackDevice = settings.DeviceId.HasValue ? coreAudioController.GetDevice(settings.DeviceId.Value) : null; + + deviceChanged?.Dispose(); + deviceChanged = playbackDevice?.VolumeChanged.Subscribe(VolumeChanged); + } + + + public UserControl CreateSettingsControl() + { + var viewModel = new DeviceGetVolumeActionSettingsViewModel(settings); + viewModel.PropertyChanged += (sender, args) => + { + if (!viewModel.IsSettingsProperty(args.PropertyName)) + return; + + actionContext.SetSettings(settings); + ApplySettings(); + }; + + return new DeviceGetVolumeActionSettingsView(viewModel); + } + + + private void VolumeChanged(DeviceVolumeChangedArgs args) + { + actionContext.SetAnalogOutput((byte)args.Volume); + + if (settings.OSD) + OSDManager.Show(args.Device); + } + } + } +} diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/GetVolume/DeviceGetVolumeActionSettings.cs b/Windows/MassiveKnob.Plugin.CoreAudio/GetVolume/DeviceGetVolumeActionSettings.cs new file mode 100644 index 0000000..0c5c672 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/GetVolume/DeviceGetVolumeActionSettings.cs @@ -0,0 +1,8 @@ +using MassiveKnob.Plugin.CoreAudio.Base; + +namespace MassiveKnob.Plugin.CoreAudio.GetVolume +{ + public class DeviceGetVolumeActionSettings : BaseDeviceSettings + { + } +} diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/GetVolume/DeviceGetVolumeActionSettingsView.xaml b/Windows/MassiveKnob.Plugin.CoreAudio/GetVolume/DeviceGetVolumeActionSettingsView.xaml new file mode 100644 index 0000000..eb60b35 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/GetVolume/DeviceGetVolumeActionSettingsView.xaml @@ -0,0 +1,14 @@ + + + + + diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/GetVolume/DeviceGetVolumeActionSettingsView.xaml.cs b/Windows/MassiveKnob.Plugin.CoreAudio/GetVolume/DeviceGetVolumeActionSettingsView.xaml.cs new file mode 100644 index 0000000..d45f6f1 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/GetVolume/DeviceGetVolumeActionSettingsView.xaml.cs @@ -0,0 +1,16 @@ +using MassiveKnob.Plugin.CoreAudio.SetMuted; + +namespace MassiveKnob.Plugin.CoreAudio.GetVolume +{ + /// + /// Interaction logic for DeviceGetVolumeActionSettingsView.xaml + /// + public partial class DeviceGetVolumeActionSettingsView + { + public DeviceGetVolumeActionSettingsView(DeviceGetVolumeActionSettingsViewModel viewModel) + { + DataContext = viewModel; + InitializeComponent(); + } + } +} \ No newline at end of file diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/GetVolume/DeviceGetVolumeActionSettingsViewModel.cs b/Windows/MassiveKnob.Plugin.CoreAudio/GetVolume/DeviceGetVolumeActionSettingsViewModel.cs new file mode 100644 index 0000000..49d3b87 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/GetVolume/DeviceGetVolumeActionSettingsViewModel.cs @@ -0,0 +1,12 @@ +using MassiveKnob.Plugin.CoreAudio.Base; + +namespace MassiveKnob.Plugin.CoreAudio.GetVolume +{ + public class DeviceGetVolumeActionSettingsViewModel : BaseDeviceSettingsViewModel + { + // ReSharper disable once SuggestBaseTypeForParameter - by design + public DeviceGetVolumeActionSettingsViewModel(DeviceGetVolumeActionSettings settings) : base(settings) + { + } + } +} diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/MassiveKnob.Plugin.CoreAudio.csproj b/Windows/MassiveKnob.Plugin.CoreAudio/MassiveKnob.Plugin.CoreAudio.csproj index 123b6c9..879f89a 100644 --- a/Windows/MassiveKnob.Plugin.CoreAudio/MassiveKnob.Plugin.CoreAudio.csproj +++ b/Windows/MassiveKnob.Plugin.CoreAudio/MassiveKnob.Plugin.CoreAudio.csproj @@ -35,6 +35,7 @@ + @@ -45,17 +46,43 @@ - + + BaseDeviceSettingsView.xaml + + + + + DeviceGetMutedActionSettingsView.xaml + + + + + OSDWindow.xaml + + + + + + + DeviceSetMutedActionSettingsView.xaml + + + + + + DeviceGetVolumeActionSettingsView.xaml + - - - DeviceVolumeActionSettingsView.xaml + + + + DeviceSetVolumeActionSettingsView.xaml - - - + + + Strings.resx True @@ -72,21 +99,49 @@ 4.0.0-alpha5 + + 5.0.0 + 4.5.4 - ResXFileCodeGenerator + PublicResXFileCodeGenerator Strings.Designer.cs - + + Designer + MSBuild:Compile + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + Designer MSBuild:Compile + \ No newline at end of file diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/MassiveKnobCoreAudioPlugin.cs b/Windows/MassiveKnob.Plugin.CoreAudio/MassiveKnobCoreAudioPlugin.cs index 13c738d..35267ed 100644 --- a/Windows/MassiveKnob.Plugin.CoreAudio/MassiveKnobCoreAudioPlugin.cs +++ b/Windows/MassiveKnob.Plugin.CoreAudio/MassiveKnobCoreAudioPlugin.cs @@ -1,7 +1,10 @@ using System; using System.Collections.Generic; using System.Threading.Tasks; -using MassiveKnob.Plugin.CoreAudio.Actions; +using MassiveKnob.Plugin.CoreAudio.GetMuted; +using MassiveKnob.Plugin.CoreAudio.GetVolume; +using MassiveKnob.Plugin.CoreAudio.SetMuted; +using MassiveKnob.Plugin.CoreAudio.SetVolume; namespace MassiveKnob.Plugin.CoreAudio { @@ -9,14 +12,17 @@ namespace MassiveKnob.Plugin.CoreAudio public class MassiveKnobCoreAudioPlugin : IMassiveKnobActionPlugin { public Guid PluginId { get; } = new Guid("eaa5d3f8-8f9b-4a4b-8e29-827228d23e95"); - public string Name { get; } = "Windows Core Audio"; - public string Description { get; } = "Included with Massive Knob by default. Provides volume control per device and default device switching."; + public string Name { get; } = Strings.PluginName; + public string Description { get; } = Strings.PluginDescription; public string Author { get; } = "Mark van Renswoude "; public string Url { get; } = "https://www.github.com/MvRens/MassiveKnob/"; public IEnumerable Actions { get; } = new IMassiveKnobAction[] { - new DeviceVolumeAction() + new DeviceSetVolumeAction(), + new DeviceGetVolumeAction(), + new DeviceSetMutedAction(), + new DeviceGetMutedAction() }; diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/OSD/OSDManager.cs b/Windows/MassiveKnob.Plugin.CoreAudio/OSD/OSDManager.cs new file mode 100644 index 0000000..eca825f --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/OSD/OSDManager.cs @@ -0,0 +1,50 @@ +using System.Threading; +using System.Windows; +using AudioSwitcher.AudioApi; + +namespace MassiveKnob.Plugin.CoreAudio.OSD +{ + public static class OSDManager + { + private const int OSDTimeout = 2500; + + private static OSDWindowViewModel windowViewModel; + private static Window window; + private static Timer hideTimer; + + public static void Show(IDevice device) + { + Application.Current.Dispatcher.Invoke(() => + { + if (window == null) + { + windowViewModel = new OSDWindowViewModel(); + window = new OSDWindow(windowViewModel); + + hideTimer = new Timer(state => + { + Hide(); + }, null, OSDTimeout, Timeout.Infinite); + } + else + hideTimer.Change(OSDTimeout, Timeout.Infinite); + + windowViewModel.SetDevice(device); + window.Show(); + }); + } + + private static void Hide() + { + Application.Current.Dispatcher.Invoke(() => + { + window?.Close(); + window = null; + windowViewModel = null; + + hideTimer?.Dispose(); + hideTimer = null; + }); + } + } +} diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/OSD/OSDWindow.xaml b/Windows/MassiveKnob.Plugin.CoreAudio/OSD/OSDWindow.xaml new file mode 100644 index 0000000..70a0036 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/OSD/OSDWindow.xaml @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/OSD/OSDWindow.xaml.cs b/Windows/MassiveKnob.Plugin.CoreAudio/OSD/OSDWindow.xaml.cs new file mode 100644 index 0000000..2471103 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/OSD/OSDWindow.xaml.cs @@ -0,0 +1,49 @@ +using System; +using System.ComponentModel; +using System.Windows; +using System.Windows.Forms; +using System.Windows.Media.Animation; + +namespace MassiveKnob.Plugin.CoreAudio.OSD +{ + /// + /// Interaction logic for OSDWindow.xaml + /// + public partial class OSDWindow + { + private bool closeStoryBoardCompleted; + + + public OSDWindow(OSDWindowViewModel viewModel) + { + DataContext = viewModel; + InitializeComponent(); + } + + + private void OSDWindow_OnLoaded(object sender, RoutedEventArgs e) + { + var desktopArea = Screen.PrimaryScreen.WorkingArea; + + Left = (desktopArea.Width - Width) / 2; + Top = desktopArea.Bottom - Height - 25; + } + + + private void OSDWindow_OnClosing(object sender, CancelEventArgs e) + { + if (closeStoryBoardCompleted) + return; + + ((Storyboard)FindResource("CloseStoryboard")).Begin(this); + e.Cancel = true; + } + + + private void CloseStoryboard_Completed(object sender, EventArgs e) + { + closeStoryBoardCompleted = true; + Close(); + } + } +} diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/OSD/OSDWindowViewModel.cs b/Windows/MassiveKnob.Plugin.CoreAudio/OSD/OSDWindowViewModel.cs new file mode 100644 index 0000000..a335dda --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/OSD/OSDWindowViewModel.cs @@ -0,0 +1,92 @@ +using System.ComponentModel; +using System.Runtime.CompilerServices; +using System.Security.RightsManagement; +using System.Windows; +using AudioSwitcher.AudioApi; + +namespace MassiveKnob.Plugin.CoreAudio.OSD +{ + public class OSDWindowViewModel : INotifyPropertyChanged + { + // ReSharper disable UnusedMember.Global - used by WPF Binding + private string deviceName; + public string DeviceName + { + get => deviceName; + set + { + if (value == deviceName) + return; + + deviceName = value; + OnPropertyChanged(); + } + } + + private int volume; + public int Volume + { + get => volume; + set + { + if (value == volume) + return; + + volume = value; + OnPropertyChanged(); + OnDependantPropertyChanged(nameof(VolumeLowVisibility)); + OnDependantPropertyChanged(nameof(VolumeMediumVisibility)); + OnDependantPropertyChanged(nameof(VolumeHighVisibility)); + OnDependantPropertyChanged(nameof(VolumeIndicatorLeft)); + } + } + + + private bool isMuted; + public bool IsMuted + { + get => isMuted; + set + { + if (value == isMuted) + return; + + isMuted = value; + OnPropertyChanged(); + OnDependantPropertyChanged(nameof(IsMutedVisibility)); + OnDependantPropertyChanged(nameof(IsNotMutedVisibility)); + } + } + + + public Visibility IsMutedVisibility => IsMuted ? Visibility.Visible : Visibility.Collapsed; + public Visibility IsNotMutedVisibility => IsMuted ? Visibility.Collapsed : Visibility.Visible; + public Visibility VolumeLowVisibility => Volume > 0 ? Visibility.Visible : Visibility.Collapsed; + public Visibility VolumeMediumVisibility => Volume > 33 ? Visibility.Visible : Visibility.Collapsed; + public Visibility VolumeHighVisibility => Volume > 66 ? Visibility.Visible : Visibility.Collapsed; + + public int VolumeIndicatorLeft => Volume * 3; + // ReSharper enable UnusedMember.Global + + + public void SetDevice(IDevice device) + { + DeviceName = device.FullName; + Volume = (int)device.Volume; + IsMuted = device.IsMuted; + } + + + public event PropertyChangedEventHandler PropertyChanged; + + protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } + + protected virtual void OnDependantPropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } + } +} diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/OSD/SpeakerIcon.xaml b/Windows/MassiveKnob.Plugin.CoreAudio/OSD/SpeakerIcon.xaml new file mode 100644 index 0000000..8fc9879 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/OSD/SpeakerIcon.xaml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/Resources/Muted.svg b/Windows/MassiveKnob.Plugin.CoreAudio/Resources/Muted.svg new file mode 100644 index 0000000..5f80244 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/Resources/Muted.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/Resources/OSDIcon.ai b/Windows/MassiveKnob.Plugin.CoreAudio/Resources/OSDIcon.ai new file mode 100644 index 0000000..9769ffa --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/Resources/OSDIcon.ai @@ -0,0 +1,441 @@ +%PDF-1.5 % +1 0 obj <>/OCGs[5 0 R 6 0 R 7 0 R 27 0 R 28 0 R 29 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + Adobe Illustrator CS6 (Windows) + 2021-02-24T14:53:14+01:00 + 2021-02-24T15:05:50+01:00 + 2021-02-24T15:05:50+01:00 + + + + 228 + 256 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAADkAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q+CP+cgvzj8x+cPOO p6XDeS2/ljTbiS0tNPjcrHL6LcGmlC09RnZary+yNh3qqwnyD+Y/mzyLrUOqaBevDwcNcWZYm3uE qOUc0daMGApXqOoIO+Kv0E/LX8xdB8/+VbfX9Iegf93eWjEGS3uFALxPTwrUHupBxVlOKuxV2Kux V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxVLvMPmPQvLulTatrl9Dp+nwD95cTtxWtKhVHVmNNlUEnti r5H/ADf/AOcttb1szaR5F9TSNJNUk1VvhvZh0Pp/74U9iPj916Yq+fYtT1GK/GoRXU0eoK/qreLI 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 + + + + + + 1 + False + False + + 256.000000 + 256.000000 + Pixels + + + + Cyan + Magenta + Yellow + Black + + + + + + Default Swatch Group + 0 + + + + + + Document + + + application/pdf + + + proof:pdf + uuid:1c626357-f5f2-453f-8659-dc4871555e80 + uuid:b8491561-178e-488f-8720-d6526fe71576 + + + + + + + + + + + + + + + + + + + + + + + + + +endstream endobj 3 0 obj <> endobj 9 0 obj <>/Resources<>/Properties<>>>/Thumb 34 0 R/TrimBox[0.0 0.0 256.0 256.0]/Type/Page>> endobj 31 0 obj <>stream +HVێ5|n^YP$-y" +m$OU3g,s|vWp>oۧ--w~|y)Uf  ͻ>}$XǰMbz$R^}kP-~y W)VgFB5&>c3T=y"݉$VőФ^EMu Q\:"]R")Eoȉ{Y|5 B2# nQ[HoQnxB`!}Rh*Z'+qWze 7Օ 'li0R[mcrCLC_%ި7V(AP9#10𡤢Z1dQat hB)@mB'.agKb42CH3*̡ " +$cIH:$+{EEmE(>:+U^[2[@М$̏3$U]^E\reŃ3^f} 1Dpk.+(ݻeW?:层O5KXӗ\=_&u,F?1>'eH2ǭ#@Zm^681AaD .yU.({yGYe +ZL)Ev5q`9&zE &Zu;|rO+i\̳8h;cBX#:pWUٻs[|%&z +endstream endobj 34 0 obj <>stream +8;Y:45n\]%#Qqm?s+C--LM@8VUn3g7c:/"kr4.@SL;fk4cCt1.)$%=AJRQjeQSA"3 +d)Np#IeR[#)>][O>NZCgqroHLWI$\8pF6+iqA#[(p-(@]2cq\t'"^ElA%q#rf.d7snWiD~> +endstream endobj 35 0 obj [/Indexed/DeviceRGB 255 36 0 R] endobj 36 0 obj <>stream +8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 +b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` +E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn +6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( +l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> +endstream endobj 27 0 obj <> endobj 28 0 obj <> endobj 29 0 obj <> endobj 41 0 obj [/View/Design] endobj 42 0 obj <>>> endobj 39 0 obj [/View/Design] endobj 40 0 obj <>>> endobj 37 0 obj [/View/Design] endobj 38 0 obj <>>> endobj 33 0 obj <> endobj 32 0 obj <> endobj 43 0 obj <> endobj 44 0 obj <>stream +%!PS-Adobe-3.0 +%%Creator: Adobe Illustrator(R) 16.0 +%%AI8_CreatorVersion: 16.0.0 +%%For: (PsychoMark) () +%%Title: (OSDIcon.ai) +%%CreationDate: 2/24/2021 3:05 PM +%%Canvassize: 16383 +%%BoundingBox: 2 35 166 222 +%%HiResBoundingBox: 2.25 35.3994 166 221.6006 +%%DocumentProcessColors: Cyan Magenta Yellow Black +%AI5_FileFormat 12.0 +%AI12_BuildNumber: 682 +%AI3_ColorUsage: Color +%AI7_ImageSettings: 0 +%%RGBProcessColor: 0 0 0 ([Registration]) +%AI3_Cropmarks: -0.5 0.5 255.5 256.5 +%AI3_TemplateBox: 127.5 128.5 127.5 128.5 +%AI3_TileBox: -178.5 -267.5 433.5 524.5 +%AI3_DocumentPreview: None +%AI5_ArtSize: 14400 14400 +%AI5_RulerUnits: 6 +%AI9_ColorModel: 1 +%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 +%AI5_TargetResolution: 800 +%AI5_NumLayers: 3 +%AI9_OpenToView: -156 409 2 1389 914 18 0 0 82 117 0 0 0 1 1 0 1 1 0 1 +%AI5_OpenViewLayers: 766 +%%PageOrigin:0 0 +%AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9 +%AI9_Flatten: 1 +%AI12_CMSettings: 00.MS +%%EndComments + +endstream endobj 45 0 obj <>stream +%%BoundingBox: 2 35 166 222 +%%HiResBoundingBox: 2.25 35.3994 166 221.6006 +%AI7_Thumbnail: 116 128 8 +%%BeginData: 7608 Hex Bytes +%0000330000660000990000CC0033000033330033660033990033CC0033FF +%0066000066330066660066990066CC0066FF009900009933009966009999 +%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 +%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 +%3333663333993333CC3333FF3366003366333366663366993366CC3366FF +%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 +%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 +%6600666600996600CC6600FF6633006633336633666633996633CC6633FF +%6666006666336666666666996666CC6666FF669900669933669966669999 +%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 +%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF +%9933009933339933669933999933CC9933FF996600996633996666996699 +%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 +%99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF +%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 +%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 +%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF +%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC +%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 +%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 +%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 +%000011111111220000002200000022222222440000004400000044444444 +%550000005500000055555555770000007700000077777777880000008800 +%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB +%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF +%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF +%524C45FD06FF7DF8F8F852FD4EFF52F8F82752FD1BFF52FD05F827FD4BFF +%7DFD06F827FD19FF7DFD07F852FD48FFA852FD08F87DFD18FF27FD08F852 +%FD46FF52FD0AF852FD18FF52FD09F87DFD44FF27FD0BF827FD18FF52FD0A +%F8A8FD41FF7DFD0DF852FD19FFFD0BF8A8FD3EFFA827FD0EF827FD19FFA8 +%FD0BF8FD3DFF52FD10F827FD1AFFA8FD0AF827FD3AFFA827FD11F827FD1B +%FF7DFD0AF827FD37FFA852FD13F827FD1CFF52FD0AF852FD35FF7D27FD14 +%F827FD1DFF27FD0AF87DFD33FF27FD16F852FD1EFF27FD0AF87DFD30FF7D +%FD0FF8A827FD07F827FD1EFFA8FD0BF8A8FD2DFFA827FD0EF852FFFF52FD +%07F852FD1FFFA8FD0AF827A8FD2BFF52FD0EF8277DFFFFFF27FD07F827FD +%20FF7DFD0AF827FD29FFA827FD0EF852A8FD04FF27FD07F827FD21FF52FD +%0AF852FD27FF7DFD0EF827A8FD06FF27FD07F827FD22FF52FD0AF87DFD24 +%FF7D27FD0EF852FD08FF27FD07F827FD23FF27FD0AF8A8FD22FF52FD0EF8 +%27A8FD09FF27FD07F827FD24FFFD0BF8A8FD1FFFA8FD0FF87DFD0BFF52FD +%07F852FD25FFFD0BF8FD1DFFA852FD0EF827FD0DFF27FD07F827FD25FFA8 +%FD0AF827FD1BFF7DFD0EF8277DFD0EFF52FD07F852FD26FF7DFD0AF827FD +%19FF27FD0EF852A8FD0FFF27FD07F827FD27FF52FD0AF852FD16FF7DFD0F +%F87DFD11FF27FD07F827FD28FF52FD0AF852FD13FFA852FD0EF852FD13FF +%27FD07F827FD29FF27FD0AF87DFD11FF52FD0EF8277DFD14FF27FD07F827 +%FD29FFA827FD0AF8A8FD0EFFA827FD0EF87DFD16FF27FD07F827FD2AFFA8 +%FD0BF8A8FD0BFFA852FD0EF827A8FD17FF52FD07F852FD2BFF7DFD0AF827 +%FD0AFF7D27FD0EF852FD19FF27FD07F827FD2CFF52FD0AF852FD08FF52FD +%0EF852A8FD1AFF52FD07F852FD2DFF52FD0AF87DFD05FF7DFD0FF87DFD1C +%FF27FD07F827FD2EFF27FD0AF87DFD04FF52FD0DF827FD1EFF27FD07F827 +%FD16FF7DFD1352FD05FF27FD0AF8A8FD04FF52FD0AF8277DFD1FFF27FD07 +%F827FD15FF52FD14F827FD04FFA8FD0BF8A8FD04FF27FD08F852A8FD20FF +%27FD07F827FD14FF52FD16F852FD04FFA8FD0AF827FD05FF27FD05F827A8 +%FD22FF27FD07F827FD14FFFD18F87DFD04FF7DFD0AF827FD05FFFD04F852 +%FD24FF52FD07F852FD14FFFD19F87DFD04FF7DFD0AF852FD05FFF827A8FD +%25FF27FD07F827FD14FFFD1AF8A8FD04FF52FD0AF852FD04FFA8A8FD26FF +%52FD07F852FD14FFFD1AF827A8FD04FF27FD0AF87DFD2BFF27FD07F827FD +%14FFFD1BF827A8FFFFFFA827FD0AF87DFD2AFF27FD07F827FD14FFFD08F8 +%2727522752275227522752275227522752275227A8FD04FFA8FD0AF827A8 +%FD29FF27FD07F827FD14FFFD08F87DFD19FF7DFD0AF827FD29FF27FD07F8 +%27FD14FFFD08F87DFD1AFF7DFD0AF852FD28FF27FD07F827FD14FFFD08F8 +%7DFD1BFF52FD0AF852FD27FF52FD07F852FD14FFFD08F87DFD1CFF27FD0A +%F87DFD26FF27FD07F827FD14FFFD08F87DFD1DFF27FD0AF87DFD25FF52FD +%07F852FD14FFFD08F87DFD1EFFFD0BF8A8FD24FF27FD07F827FD14FFFD08 +%F87DFD1EFFA8FD0BF8FD24FF27FD07F827FD14FFFD08F8A8FD1FFFA8FD0A +%F827FD23FF27FD07F827FD14FFFD08F87DFD20FF7DFD0AF827FD22FF27FD +%07F827FD14FFFD08F87DFD21FF52FD0AF852FD21FF27FD07F827FD14FFFD +%08F87DFD22FF27FD0AF852FD20FF52FD07F852FD14FFFD08F87DFD23FF27 +%FD0AF8A8FD1FFF27FD07F827FD14FFFD08F87DFD23FFA8FD0BF8A8FD1EFF +%52FD07F852FD14FFFD08F87DFD24FFA8FD0AF827FD1EFF27FD07F827FD14 +%FFFD08F87DFD25FF7DFD0AF827FD1DFF27FD07F827FD14FFFD08F8A8FD26 +%FF52FD0AF852FD1CFF27FD07F827FD14FFFD08F87DFD27FF27FD0AF87DFD +%1BFF27FD07F827FD14FFFD08F87DFD28FF27FD0AF87DFD1AFF27FD07F827 +%FD14FFFD08F87DFD29FFFD0BF8A8FD19FF52FD07F852FD14FFFD08F87DFD +%2AFFFD0BF8FD19FF27FD07F827FD14FFFD08F87DFD2AFFA8FD0BF8FD18FF +%52FD07F852FD14FFFD08F87DFD2BFF7DFD0AF827FD17FF27FD07F827FD14 +%FFFD08F87DFD2CFF52FD0AF852FD16FF27FD07F827FD14FFFD08F8A8FD2D +%FF52FD0AF87DFD15FF27FD07F827FD14FFFD08F87DFD2EFF27FD0AF87DFD +%14FF27FD07F827FD14FFFD08F87DFD2EFFA827FD0AF8A8FD13FF27FD07F8 +%27FD14FFFD08F87DFD2FFFA8FD0AF827A8FD12FF52FD07F852FD14FFFD08 +%F87DFD30FF7DFD0AF827FD12FF27FD07F827FD14FFFD08F87DFD31FF52FD +%0AF852FD11FF52FD07F852FD14FFFD08F87DFD32FF52FD0AF87DFD10FF27 +%FD07F827FD14FFFD08F87DFD33FF27FD0AF87DFD0FFF27FD07F827FD14FF +%FD08F8A8FD34FF27FD0AF8A8FD0EFF27FD07F827FD14FFFD08F87DFD35FF +%FD0BF8A8FD0DFF27FD07F827FD14FFFD08F87DFD35FFA8FD0BF8FD0DFF27 +%FD07F827FD14FFFD08F87DFD36FF7DFD0AF827FD0CFF52FD07F852FD14FF +%FD08F87DFD37FF7DFD0AF852FD0BFF27FD07F827FD14FFFD08F87DFD38FF +%52FD0AF852FD0AFF52FD07F852FD14FFFD08F87DFD39FF27FD0AF87DFD09 +%FF27FD07F827FD14FFFD08F87DFD39FFA827FD0AF87DFD08FF27FD07F827 +%FD14FFFD08F8A8FD3AFFA827FD09F827A8FD07FF27FD07F827FD14FFFD08 +%F87DFD3BFF7DFD0AF827A8FD06FF27FD07F827FD14FFFD08F87DFD3CFF7D +%FD0AF852FD06FF27FD07F827FD14FFFD08F87DFD3DFF52FD0AF852FD05FF +%27FD07F852FD14FFFD08F87DFD3EFF27FD0AF87DFD04FF7DFD07F827FD14 +%FFFD08F87DFD3FFF27FD0AF8A8FD04FF52FD06F852FD14FFFD08F8A8FD40 +%FFFD0BF8A8FD04FF52FD05F827FD14FFFD09F85227272752272727522727 +%2752272727522727275227272752272727522727275252A8FD1DFFA8FD0B +%F8FD05FF27FD04F827FD14FFFD2CF87DFD1DFFA8FD0AF827FD05FF27F8F8 +%F827FD14FFFD2DF827A8FD1CFF7DFD0AF827FD04FFA8F8F8F827FD14FFFD +%2FF852FD1CFF52FD0AF852FD04FFA8F8F827FD14FFFD31F8A8FD1BFF27FD +%0AF87DFD04FF7DF827FD14FFFD32F87DFD1BFF27FD0AF87DFD04FF7D27FD +%14FF52FD32F8277DFD19FFA8FD0BF8A8FD04FF7DFD15FF27FD33F852FD19 +%FF7DFD0AF827FD1BFF7D5227525252275252522752525227525252275252 +%5227525252275252522752525227525252FD0FF87DFD18FF7DFD0AF827FD +%41FF27FD0EF852A8FD17FF52FD0AF852FD41FF7D27FD0EF87DFD17FF27FD +%0AF87DFD42FF52FD0EF827A8FD16FF27FD0AF8A8FD42FFA8FD0FF87DFD16 +%FFFD0BF8A8FD43FF52FD0EF827A8FD14FFA8FD0BF8FD44FFA827FD0EF852 +%FD14FFA8FD0AF827FD45FF7DFD0EF827A8FD13FF7DFD0AF827FD45FFA827 +%FD0EF852A8FD12FF52FD0AF852FD46FF7DFD0EF8277DFD12FF52FD0AF87D +%FD46FFA827FD0EF827FD12FF27FD0AF87DFD47FF7DFD0FF87DFD10FFA827 +%FD0AF8A8FD48FF27FD0EF827A8FD0FFF7DFD0BF8A8FD48FF7D27FD0EF87D +%FD0FFF7DFD0AF827FD4AFF52FD0EF827A8FD08FFA8FD05FF52FD0AF852FD +%4AFFA8FD0FF87DFD08FF27A8FD04FF52FD0AF87DFD4BFF52FD0EF8277DFD +%06FF27F8FD05FF27FD0AF87DFD4BFFA827FD0EF852FD05FF27F827FD05FF +%27FD0AF8A8FD4CFF7DFD0FF8A8FFFFFF27F8F827FD04FFA8FD0BF8A8FD4D +%FF27FD0EF852A8FF27F8F8F852FD04FFA8FD0BF8FD4EFF52FD0FF87D52FD +%04F87DFD04FF7DFD0AF827FD4EFFA852FD14F8A8FD04FF7DFD0AF852FD4F +%FF7DFD14F8A8FD04FF52FD0AF852FD50FF52FD12F827A8FD04FF27FD0AF8 +%7DFD50FF7D27FD11F852FD04FFA827FD0AF87DFD51FF7DFD10F827FD05FF +%A8FD0AF827A8FD51FFA827FD0EF827FD06FF7DFD0AF827FD53FF52FD0DF8 +%27FD07FF7DFD0AF87DFD53FFA827FD0BF852FD08FF52FD09F852FD55FF7D +%FD0AF852FD09FF27FD08F87DFD57FF27FD08F87DFD0AFFFD08F87DFD58FF +%7D27FD05F852FD0CFFFD06F852FD5AFFA852F8F8F852FD0EFF27F8F8F852 +%FFFFFF +%%EndData + +endstream endobj 46 0 obj <>stream +%AI12_CompressedDataxܽz20MN`1`Lhn`fw_It"YZ]%JT%k WjR.0.CSφryin3A7[J>۲EѻfEϘyg4<`ߛOliYs{4DP{FM(ӛz<_Oӛ x4x^8S;q 7}mIͳaE5z3vfwQC<'CZ.7hI|IѮ{EOHo?}//Րw_A}p2~K+SAWRDz!~ԩؗLo+@ip _o UZmȈ70暂f.2[Ao(kN5lKo0S}T?,)m=߃o<ϛ1o  +-zJdo=b0LAeg"nusB]uODp!c0 HI/ P8 *=Q~ y a;e{ ƾSk2Ě[3ZEր{)T-;CZ!0a[ZO672RES;6T? Xሉ Mz00w X[@0N20O+WYjV5Zn`zlx[=kz@vex2$  f ^Bm$(T`tg@nQ|tQ?f9߭x/gSfIv3CsY +`I;$|c9xf\Χ`;<)FrŏxdopLρSX֪m/Cz@)w2_AGkBИ g2@A +T T:z}3DA>H/2XQ'hӘ*#(Y_;F "} q#Ak|=O?෿ $ax6|| x"cFtnchXؠS,:aԆ-5)'j#oZ I92L !#!4gVp]~ y? 0 kV=PN8EӃ%h< +Z|O Ђ =6FzZ;C0QvoN6bt6++X#:5Xx=_`yjg1S˫A׀F$:|3t9Cfƺ5*~9z xxR/h4:7&S\NR(H1 T(D/`qf/E4?I֡~Nn@mߵwI[G{ĸrG|dSʰ3]ζWHo2q~f|:%bzC/?ϿeTp+JkH'%C'٨g#BM'llBE?V~0zP>E.ytD^k)"䥋/L)kzmE["0er !E=6DŽ$)|fPHThjGQ&= ~*]8f.胕5_͆n zH(Pa+#PA{nbSjw,Ӕ_iwsf`ύ;LF`B?yRh D0id CP$Yʆ"(  +zLA6/N bTz5&vѼP="OvHveL&L [nAo-ܨi1Zη@88ͿB@C#]ٯPGL燕AHp:H;d(ǐ#7A4(nk4W0t+>BJ6U 6[YՈPee`@cL3JKopny yft/ӼHjP wW:H7-쎵l>d?VCj|_b/%Gw6Q< +@ӝ"-ey+0lv06FTj=]R͡8jV +@M`eyy _ ZPrT"H?4!DPcW4P+ޠT0@8&UJX[΢@Lv3< ͏ϘO*lٯ^af]ģ^77AL\LC9QӛԱB/+Y/fw,K +M$f!}HDm m15P ^ތڔ"lFr]9ǥu^XL|ANT +NfN5sb3GڶNhC4RCƴaa3["KJM6mb\q`k-r10uҋiM0q;1tbF `kdX=B=(Q;z\j4-!B l;QFf .}-2,lW+@?m0,LQ8x~3 QyiPǾYZcniJ`#V PDh#Pj5u%0,o=d~~2h40h`"1{j$%r+m16yNhQ3XՐ#cj7qU +CvcI&jA= |l2}Ih2ڬa$^m@)eԎc@lsz*ϓ;H[Nmtf[v#C1[F\fjJ疱I1h"FQ Qh?_6#F l9 Pmj0IU0f;Q{FcEK`a*l-(Z,;=jZh@/ڔ +2R[ Zqi5uQP9DGkL'j7{"&{ԐL-25#{rRAjsVh5:h*6zimIP,]3ν NQ 0! O,$ u>B/hF7 +55UhȪL,-7BC&d@u0R3; +-7ۑA-vjӏZpk'P% ӈ|?K?Q3M/c--뛻6SCCf|ӱx>m +؂(gFa56Fnf?t#Unhi +#C +OÎnFiUOOqo: [ae'h n ej٬Sݞcު oĸȘt`ihP* 6춃x e{T`ʛ*ߔ)Z*^Yrj=8څ֦YIͬdMDa~ *:hj4ǔ,W>ͳIhn{&(>m*_zs.VjdJp KA%6h;|UW:IVtm|VKf>pno\MhP>}ߑ~ vٟI&c==wnw]hZ=k%S!1ʺݖʸh[g˙Zm*T9A!߾w&;!nCIjf-exW2%;ʑux zCvJ/vt3PQ>;"+: t-Kƴ+sjkD~Qnxff~,;/oG2cyg=z2b`?IeƠ& Do8{h!Uiؒ< %k}%SexxyBχy(M|)zT"(Ƀev-@ +qt $VJ/C3N.)9g$9lzxk_nb}pZ>5$U"],2?g=}M>!( @C M%?H{̴8s 4o[&D>NX@祇f1WM84U—P(?-`LgYjv?T3N<``Mo]-UͤkIc“[Nws}J۩j>du7g&v0 +a*{9 u8Z3K~~u<̐ kMp<8 q1JpѦXA uwSw1K?>x> xt7t' }g NJ!"w:)SDn{q'bomY9*`t6H4rcȨIV`pf[f:B[=zߥP+.["BF%&|;IDJg!_kW&`伄>f}-o-clu$ +߰_hetUm!&-'š|ox^[Ts־06ܼxG>Yk_頣2cE-;#svC'm(￳C=v7ډݧ͏eg#&Fhy"u; ݺ}Lt> G2uRoG=2aj|?eاw2^̸A4=SC/ixqIVϝhhwCFPh\.if's=0#);-xGjv=26ad#ɖn\MCJT}&=zerE8k}!;>lQmms#gӓ:.̵$i犂Ʌ CD k}w[pdL@^sm<4-^\usAQ]ppc-{ /tk6H%_x 󸊟r:hlkÞ~#Sx*!R +DΖ~Brc .ZJ3U}+˔Q'J>CD0hA! N?oqWj:{|r [0q/b&naM!X&/9?V7cugv +kx sfi |P +&~~DK/FDtZpDt0>S~k0c}d>[Z?ҁV۝zצzӑJ/10ydK;@ \Fod'de֙}ڬ2/w Slrۘ`Zwpt/ٺy0Scp_C0h]g#Q(YEq$:>[ϙg;ED&Tkղ^FI(}9K1 S@-/lxɼyƘ7v!i=JNbf# p +ã1G (+j7qhoo{.!"Gͨw`.Yhwk07ca38,yrM? | t93#5NwyWH+by"-`; ^SSͷPS _dEaNHw.E_X +m7gwvTYp4hv bMңT\WԧWGl.'sE6\={Ցi|~¦Tc(h myh]zu ]~ssuӴX`sNS-mW#Fٯynj@`^3ؕ--33~r: un0"A^F̡ &EИ(Q t#([kny3\P1 + R`oʦR؞9!OoVJoE/ e +~Tv9 skMܵ['#}y$V=A.CCߖ?B)ClȞSZYsՒ9EtO]\}d2q:#d0\: +cTXS`J's28}3}#dXt??G3fN~/ּ^rv/ѻءOvFT7)th{h} +tjP%yOI(A)DuzW%yިtӯh4#%O55<x,Vp&N3JeMz)ZNE|uc2C]2Sa5\K DێBlr¢;>?4RT +WuqxKOpS1f56E"&-*%VfK%Q)2QPVEXԸu0uSBY6UF&|PoGJ4?GEcml`n|a 2'26A>XG7 vg;m+ %x دT2D̀kxiW׀xQ9:h`X2sw v΢#:0 5f" {mCVElp99YxjHoV@pV)"{VՇxߩ!F%<+0flw z] _: U%()XdBӉaʹ}yJ#Dw7]+Gvl7iR#Ҟ +Y4vvhotz%+ +#w+ qh/F>=;S3o!08˒Z۳ b|-,}' خE.eo0tH޼kV+D3'1_{Dx/Lk%=?kH -!֔ˡ+5nؙ[)-;K"xꈍqA} H"4%`U)]b59D~2**b;9fy ݑk͛i7GjYEY5aeаS[ +8sOm V1C{KĈ"fV:{a-%g7VF@3oy%Gc:E)?4Ԗ_ +X@8𨀵'fSzJyąۇ +5{Zx z2y}.c;KҹG-Wܒ mX+/ke5pVipiz c-JgZ]REEMu ߃<ֲWXyI +Fl~+a-Zq=& +Va8ܖo>Ǵ֜=3+@#n)b15+iAk +96_D^D}E:UL|*Yqtվ$_\fg,GĞ1X}AL1J|"va>X{v`}'8Y]na 7!KbYQ'r/u,_\~ Gk)`ڳ ,c+|LY,)Cbc ޙ:"d`5zŠ& g[0X*zdm#ߵ Ի_PTPý7^m_I(4Sū9>ϋ#Q?ʸDOVz=GTG>,e$-Q7L>[7[iHus0RHތSOBFR<ю\F5_]#g8^Oi}KB|{dWz ˯'e6;Wx}l#;?{޺ﻊDjF ZVXսKdy*??>{J ت=͸u)-fHsrT D~$%o>:vsq7gQ&Ɩ}n cb> c?m9?}@8ؚ= ,ES8CњHt&✡9.ncwXMG51o_:(aVZpEĶ,`wQǎa Y%a-,E6Yq-@# ߤ[+9~ŧ9sNKR %b..C£?.;šQ!=>YkFg\&Ia-~ϝCdsH/e9%`|U/XV/bB::Nzd kq#H͍6RȽ9BV?ќ0#98H +o*.ώs#'@ԣ?,PV|ϖtyr\~y2rE'ˬ>8Us'V̅ + +I=3.yjxWI8 >yv/%le=נM_YqP7AGzʄ`>;y$ޯCmS¬?l13mE}božCaW9LahiM"L+=u)$Rk`\흒&Ŧ0eXSqZ:* h!"F-z= }B;7ݍ+nvOQI-glfEӢXٺ:ww2 e 0Z˳`ʧ6ٜ`6V\D mϐP'P߭;ޠ2E qTe'-y{/&@=aZ?Fu>SQr#(Glgn qpУ~ زڭHS"P[>zE$h핮# +ES/ +GwXFxNS9ZփsAњݓO +#ͼթ/@lR?T>׉]D/JwsjMWOŮiƢ|QIW0E5zRqx&1LDA+`EJ:JZ.|ьn#%V +<4CjY$!6=%3!U-yؖO FZozPj%+2ҋT값e^:|Zhr>Ztr> L-|Q9z- ^xI9z-؀O/]OF\x~9z-./SC }r>Z>v4U +e)ׁ蓞1VFrg]o?b{If9)]e#+HA*8M䔩@RQŊ">#< +t]@z*',?M[Z.>m%6{'<#~u_::RLrl (4[`pfy4N/ #CʺuQZewKE'LY^ +bhbzCFbVF!>54)^I{2d^$t^@ [zĢBMkFSQ)@$)#):vJPuJ-zsß8[Eon8nFo`Y%VOGo|Q뭜'6:ӣ7q08U%eD=͍9P ,aAstDouY+U[6@'&^x$ WQː.+\ܜR!}՘HE8Q̪سAkp6\iZ֙ U!ı3K%.{jhU]L!JNO F V$LtCxٕyo+λvez*49:yLt8t@y'$^RXq޵+B'U橥ZqF*n d*{iq޵+ڕyޚҾPF?TyS/(Rթ#@^C +7tlzɚx5l (bHbkvG6f]|.F\{b<'X+p,y+X t=>34dsuEΉEЖ_ +!S- \UL\ֺQY8z\\(ZWY-Elt!$e(a vۍAgKɾ_HJEW(%M@)./PR$ *r%q:O_c Vwq\QHSw͍LB_O3:}r< +畩SX9Oaڅ}*+,{Fׅ}X?_'zQarb"PW-}>>IF5 +_7+m_OOb¾vZaѮT'Ww*tU(Tz]P'gH//쓓=Vaf {^O ^=On7V.gۙQ7g)9#oc(['7$%{vBʇYMCPO u~ܐ׸O-~ +dM}ҼcU&|Yf>>,@ik7}3e+v]}:NҳuB +RO6.6]'t$),̊y6:uq>_D9Yw#/T_*pߩA3/BJ;^򿛣;# {C1)Wxz5u$Gs}!$\je8 '[ʊG 0)g.C7i$KR chD'6; EO䭝aRAWSRGpT+t6h'JO!vR)+: ɕ84C\^/Gվ?nJ2vL9f%0eHQSΦS[q|3 cޮz.w|P+Z{7 +Ew!@QO=1`w÷ؿTNK Eb`GL 93L;s=bx׷ֽ:MKLuūN,QT{dԚKu9>)4{$bj߳}|{28yC/iu-y>ڗ4v|0ҜQYɕ t42˪}F{^^z]iSvt"(lTY;M]ɆlU㉅TmWkԪ>t;LGNԻWXBQHF.|> +J*judLjZj-թٸ?_9X(7NQwq+ BFrJe%jjawVn^&У7:/l_eO讻q"ENBeG=b "Xj؄FK 3Dn黗$w-`E -F+{p5̭|ZW +7BKC=)a+4K W\#3(ʼp1{*̳a7qX|xQ4WޞVWє-Ea.iI[ kŢ޽%rX1jp'v2lx]ZBӠkW5Af,|$(da]E`ZYgOGv&(}drB:cyɦV6ʭ|"sXZ7қyW&R`g5 4NY`KuRUgWtN+SANS#L[lruP#]uKSML9q9ܓFN]ێsI,LLgK=F&x:D +52Q:L_I (RU,I8T_=5-&/&NE!7_Q6=Ϥg2tTLϘ:N9.@/` S/oHc +F slf0t6lCr\P7N(h $JQ BxuvG10EQԺDl% -ռhaZTH7GGEKhoNv2M$]|Mq,TU17,Ik67g$r='$;\x#OĒD"P`vѠ % +bQa?$Q[(e?T@ңzDujI.P*IKʞtM~\g]VK?xY!F6^BÕ.+BLC!s/{Y!"NB%{(hjvȧ]z!Ǫmx9ZqqpE9P/Rk^xyE9CB_CY&o;L5~}ϋ.c'uX:Ò$' M'gJג0eQXUt4kx7¨+Ό#8zќ/6D.!r?(/"oqK&SfD!yx&D/V@ZV|_CS_o_B|?[_iy&Fu ug C;զ|\_"d;5ڵpl5 +OŝX]ٸ+J4[7TSf󎸥FVsJ^w;XZ1?vA&{b4-"$Z59񞍦_\aGcڎϒ$rOFODڙ{!,59CBȵB}t!RN&^F +!J NF-m屴`px {N[2 {2:^M/>x4R.f0oem~Q +[Ҟ!cMf>phdbs0ؒ4>~Ox&7zwY PBZO?Q1'_nد? ȃ}n@H6]>3  lpye\o=(y&Uv$<; ? G](͝v>:ߌk-iXwVv`Si$X\ Z T[z`Dډt1ڙ >|mf0WSqD|v]Y ~-oxOFگw˹6D8F,p E]=_#B>i`hmcבub-f:??dê R ZomVJ647=Þ7)y7} v~u҅4:.>SO!Ш<cg}G{ǎf +"K}ճM2`^a,H3Cble0B.Gxm7uIJ̾G2i$i]#%݁ݖZ.s.﾿ OGWБkr0khtШD%iP?@҆2瀄|om/]++DQt+sǦ6_&'C|`hl/xeu=ǠE LNxXtv6n$_hID4^{7;dH{[/c}$jRRtى70hG"*fHV"0, F"YHMً~gXV7x#NOziZɢ+OB:zvI/mx +0̤{_H \ux:b~AD7hL9K4UON=xm#@"3_Ob0O:8j|ๅf+份MFsQ_&O53\6')O*[ZwL&?;̻ {fXoYXͻcޝw:FEEq0Bz%7Xܹ4C w@#:^}Ǩ߽Y;diQW019{QD +{ZQx4G+u@pj^XjFc,q&X6 sճ"~O&כ%T&-n1mj(:Y}yc8{lyN,Hw}gќN@mv򺫣E3~Yn3*q\$%8@>!ǛUFС; 9irChc05E*k + +p˩bHImsb2 9źul?AIzvvlKq +Egɤg$@й/shcX1֘ m{ +$j&xf"$kWx)YsH](u9R)Cif?5^ߔѣ.2edin}kot Qðӎ8lm_Z(qN^xr̼Ϳ0_m5X`mT>zG}Z;ɀRЬQW1*Q݈ӅuvΛU nI< gj9X+횈cF23[B%KךDf0:6j}Ol8?1)}s(1կ7 s z'hۍ9U1֘U M6"&Qu]_C@Q_nFque%^dNYggr: y~Ljdٜ\dl5LĤ1`3G М:iz֙EZBArٯLMxsKʹ%K><%RKrrװ{$[y|e9_Bhㅗ =ځz9CzWh9#Z4Yo <,兑۳ m3igx0>jx4ri4Ϊk$_FnsJZI B_`3~`RF"$Sbiϧ}n9;#bS+A,$ =7SɈ~srߠlK=(4Bxїب 3MtO`fOHY?@Wc({nyawĖo/8Cukhi[Sr~b|w陋Z"dw &ӡ-ڙ 9"DIfۅhM:o4UO/S{6T咱q_~x{\n!;(뗇Y7?Su~9j6mRU3ͯ|viOKnJCB+oL肉Q`s ++xUа_Tc$ _xz B pZVʓ-* ix| ~˸m[mi3Gı@*a݄'bJ71Z\f +utVP]l}o8k#%S &Ӏ+Q@~ +ጄX ]Ȼ+ WBP,A(PtX^J`y ~XRtOk?xR%|[7y谢{CI52R8F1_sşe6 ?E0D +0NNB;h``=،|Sݰ:ղFE%r/aQnpՍлŽarn_..Mџ]"wR( \[]gU{2wG}2BNI HZOF.Y:LHnk.Gt _76-#;BjI$! +x + _gޯC/)TXc _"džM|,;Hf1rP%8sK޼?7 ix[,^+,ZXayhV'b'1fufn6p(tgotnigH⅃:u<_q67[oL>T3~gNH{(  |<}<8C,3u7s~E3kc> L-L AMć ;i9on&̅-܁ ?d1bU@F8bY7lIzLrXz%3Ã|r0>7q$ vWevr&m?s8;Ux6bO98/D+۪? C)#1\H2FLA Lᜁ?bv R?U +1GGJe?x~@Qn}v +id !.A>n1[ݛƨYz$D.^;fj/1 xslSl4Vw80cfN!Vu~Cdp{q I.ِDǦsD;y/AϠcC'fʼn#&8%rt;͇l11C+&bP PܗWuL:VPB~@y@q7!~k?WJYC KD4lh;ڇS7! GoZZI8| ‹)>WK"!Ss<>R\BkG@:Ic"1L%jJ:Kzx|(L("%|ج McT"V>~ƼVc }ƩGR**Ң'1eO1a9XjȤ"e 4nfΑ!4xWX&a‡ͪZ#OgDǭ}=%ԋٳZŻ/חˮ/ۧ/Ӈj7Y~t,kYjОu2r"CQ`1X? 9vCfR|}k'R-y{(uP:+8QbĮ\Qpe@6rxek:j^~ؼk0u[ۗn{}~ nnB:dieFFݮyX0|?٢h)1 Y%JPf[ =Px!r1;G-T.NSҩ0v;ܣ|0tv¿[5LlF-I +(fU?0 Myjǘ +i!t9c"Ek!SV"*y\`2M:nI%-Q*işDm +6:9(H2jdK6E@ ,A*XF(Kj)-O+jMtUlu@L~8| X#ت:BOJ6,yK(3LXG: MeRKmS"5z$ p LV~# 7!!>Iq̣g,eh=+;%"f5,؀MXۄ hT6Uk…UaPVМ8ٙ1f 8.O[68+Q4XiǣqG'`"q+F)2Ln}2 ]Qr:c1:&X֫+z6~CHuxԹ ҈Ac^ h!c7[Ềs@ +M<#FbaKkQі̡]S>M*-ƳMwϴmYEsaEyq]a=O"wi\~k33F$pCҾ!>n@ YI\^atL'zP_u zVr+ߵ'?5gݻӛ)?z\}4mZ6> endobj 6 0 obj <> endobj 7 0 obj <> endobj 20 0 obj [/View/Design] endobj 21 0 obj <>>> endobj 18 0 obj [/View/Design] endobj 19 0 obj <>>> endobj 16 0 obj [/View/Design] endobj 17 0 obj <>>> endobj 30 0 obj [29 0 R 28 0 R 27 0 R] endobj 47 0 obj <> endobj xref +0 48 +0000000004 65535 f +0000000016 00000 n +0000000216 00000 n +0000019974 00000 n +0000000000 00000 f +0000058324 00000 n +0000058394 00000 n +0000058472 00000 n +0000000000 00000 f +0000020025 00000 n +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000058772 00000 n +0000058803 00000 n +0000058656 00000 n +0000058687 00000 n +0000058540 00000 n +0000058571 00000 n +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000000000 00000 f +0000022609 00000 n +0000022680 00000 n +0000022759 00000 n +0000058888 00000 n +0000020381 00000 n +0000023289 00000 n +0000023176 00000 n +0000021768 00000 n +0000022047 00000 n +0000022095 00000 n +0000023060 00000 n +0000023091 00000 n +0000022944 00000 n +0000022975 00000 n +0000022828 00000 n +0000022859 00000 n +0000023363 00000 n +0000023537 00000 n +0000024569 00000 n +0000032372 00000 n +0000058927 00000 n +trailer +<]>> +startxref +59062 +%%EOF diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/SetMuted/DeviceSetMutedAction.cs b/Windows/MassiveKnob.Plugin.CoreAudio/SetMuted/DeviceSetMutedAction.cs new file mode 100644 index 0000000..b1e587a --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/SetMuted/DeviceSetMutedAction.cs @@ -0,0 +1,87 @@ +using System; +using System.Threading.Tasks; +using System.Windows.Controls; +using AudioSwitcher.AudioApi; +using MassiveKnob.Plugin.CoreAudio.OSD; + +namespace MassiveKnob.Plugin.CoreAudio.SetMuted +{ + public class DeviceSetMutedAction : IMassiveKnobAction + { + public Guid ActionId { get; } = new Guid("032eb405-a1df-4178-b2d5-6cf556305a8c"); + public MassiveKnobActionType ActionType { get; } = MassiveKnobActionType.InputDigital; + public string Name { get; } = Strings.SetMutedName; + public string Description { get; } = Strings.SetMutedDescription; + + + public IMassiveKnobActionInstance Create() + { + return new Instance(); + } + + + private class Instance : IMassiveKnobDigitalAction + { + private IMassiveKnobActionContext actionContext; + private DeviceSetMutedActionSettings settings; + private IDevice playbackDevice; + + + public void Initialize(IMassiveKnobActionContext context) + { + actionContext = context; + settings = context.GetSettings(); + ApplySettings(); + } + + + public void Dispose() + { + } + + + private void ApplySettings() + { + var coreAudioController = CoreAudioControllerInstance.Acquire(); + playbackDevice = settings.DeviceId.HasValue ? coreAudioController.GetDevice(settings.DeviceId.Value) : null; + } + + + public UserControl CreateSettingsControl() + { + var viewModel = new DeviceSetMutedActionSettingsViewModel(settings); + viewModel.PropertyChanged += (sender, args) => + { + if (!viewModel.IsSettingsProperty(args.PropertyName)) + return; + + actionContext.SetSettings(settings); + ApplySettings(); + }; + + return new DeviceSetMutedActionSettingsView(viewModel); + } + + + public async ValueTask DigitalChanged(bool on) + { + if (playbackDevice == null) + return; + + if (settings.Toggle) + { + if (!on) + return; + + await playbackDevice.SetMuteAsync(!playbackDevice.IsMuted); + } + else + await playbackDevice.SetMuteAsync(settings.SetInverted ? !on : on); + + + if (settings.OSD) + OSDManager.Show(playbackDevice); + } + } + } +} diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/SetMuted/DeviceSetMutedActionSettings.cs b/Windows/MassiveKnob.Plugin.CoreAudio/SetMuted/DeviceSetMutedActionSettings.cs new file mode 100644 index 0000000..3d63acb --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/SetMuted/DeviceSetMutedActionSettings.cs @@ -0,0 +1,10 @@ +using MassiveKnob.Plugin.CoreAudio.Base; + +namespace MassiveKnob.Plugin.CoreAudio.SetMuted +{ + public class DeviceSetMutedActionSettings : BaseDeviceSettings + { + public bool Toggle { get; set; } + public bool SetInverted { get; set;} + } +} diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/SetMuted/DeviceSetMutedActionSettingsView.xaml b/Windows/MassiveKnob.Plugin.CoreAudio/SetMuted/DeviceSetMutedActionSettingsView.xaml new file mode 100644 index 0000000..4cae53d --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/SetMuted/DeviceSetMutedActionSettingsView.xaml @@ -0,0 +1,14 @@ + + + + + diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/SetMuted/DeviceSetMutedActionSettingsView.xaml.cs b/Windows/MassiveKnob.Plugin.CoreAudio/SetMuted/DeviceSetMutedActionSettingsView.xaml.cs new file mode 100644 index 0000000..3d65885 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/SetMuted/DeviceSetMutedActionSettingsView.xaml.cs @@ -0,0 +1,14 @@ +namespace MassiveKnob.Plugin.CoreAudio.SetMuted +{ + /// + /// Interaction logic for DeviceSetMutedActionSettingsView.xaml + /// + public partial class DeviceSetMutedActionSettingsView + { + public DeviceSetMutedActionSettingsView(DeviceSetMutedActionSettingsViewModel viewModel) + { + DataContext = viewModel; + InitializeComponent(); + } + } +} diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/SetMuted/DeviceSetMutedActionSettingsViewModel.cs b/Windows/MassiveKnob.Plugin.CoreAudio/SetMuted/DeviceSetMutedActionSettingsViewModel.cs new file mode 100644 index 0000000..7045a8c --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/SetMuted/DeviceSetMutedActionSettingsViewModel.cs @@ -0,0 +1,42 @@ +using MassiveKnob.Plugin.CoreAudio.Base; + +namespace MassiveKnob.Plugin.CoreAudio.SetMuted +{ + public class DeviceSetMutedActionSettingsViewModel : BaseDeviceSettingsViewModel + { + // ReSharper disable UnusedMember.Global - used by WPF Binding + public bool Toggle + { + get => Settings.Toggle; + set + { + if (value == Settings.Toggle) + return; + + Settings.Toggle = value; + OnPropertyChanged(); + } + } + + + public bool SetInverted + { + get => Settings.SetInverted; + set + { + if (value == Settings.SetInverted) + return; + + Settings.SetInverted = value; + OnPropertyChanged(); + } + } + // ReSharper restore UnusedMember.Global + + + // ReSharper disable once SuggestBaseTypeForParameter - by design + public DeviceSetMutedActionSettingsViewModel(DeviceSetMutedActionSettings settings) : base(settings) + { + } + } +} diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/Actions/DeviceVolumeAction.cs b/Windows/MassiveKnob.Plugin.CoreAudio/SetVolume/DeviceSetVolumeAction.cs similarity index 73% rename from Windows/MassiveKnob.Plugin.CoreAudio/Actions/DeviceVolumeAction.cs rename to Windows/MassiveKnob.Plugin.CoreAudio/SetVolume/DeviceSetVolumeAction.cs index db31607..4c8006e 100644 --- a/Windows/MassiveKnob.Plugin.CoreAudio/Actions/DeviceVolumeAction.cs +++ b/Windows/MassiveKnob.Plugin.CoreAudio/SetVolume/DeviceSetVolumeAction.cs @@ -2,16 +2,16 @@ using System.Threading.Tasks; using System.Windows.Controls; using AudioSwitcher.AudioApi; -using MassiveKnob.Plugin.CoreAudio.Settings; +using MassiveKnob.Plugin.CoreAudio.OSD; -namespace MassiveKnob.Plugin.CoreAudio.Actions +namespace MassiveKnob.Plugin.CoreAudio.SetVolume { - public class DeviceVolumeAction : IMassiveKnobAction + public class DeviceSetVolumeAction : IMassiveKnobAction { public Guid ActionId { get; } = new Guid("aabd329c-8be5-4d1e-90ab-5114143b21dd"); public MassiveKnobActionType ActionType { get; } = MassiveKnobActionType.InputAnalog; - public string Name { get; } = "Set volume"; - public string Description { get; } = "Sets the volume for the selected device, regardless of the current default device."; + public string Name { get; } = Strings.SetVolumeName; + public string Description { get; } = Strings.SetVolumeDescription; public IMassiveKnobActionInstance Create() @@ -23,14 +23,14 @@ namespace MassiveKnob.Plugin.CoreAudio.Actions private class Instance : IMassiveKnobAnalogAction { private IMassiveKnobActionContext actionContext; - private DeviceVolumeActionSettings settings; + private DeviceSetVolumeActionSettings settings; private IDevice playbackDevice; public void Initialize(IMassiveKnobActionContext context) { actionContext = context; - settings = context.GetSettings(); + settings = context.GetSettings(); ApplySettings(); } @@ -49,7 +49,7 @@ namespace MassiveKnob.Plugin.CoreAudio.Actions public UserControl CreateSettingsControl() { - var viewModel = new DeviceVolumeActionSettingsViewModel(settings); + var viewModel = new DeviceSetVolumeActionSettingsViewModel(settings); viewModel.PropertyChanged += (sender, args) => { if (!viewModel.IsSettingsProperty(args.PropertyName)) @@ -59,7 +59,7 @@ namespace MassiveKnob.Plugin.CoreAudio.Actions ApplySettings(); }; - return new DeviceVolumeActionSettingsView(viewModel); + return new DeviceSetVolumeActionSettingsView(viewModel); } @@ -69,6 +69,9 @@ namespace MassiveKnob.Plugin.CoreAudio.Actions return; await playbackDevice.SetVolumeAsync(value); + + if (settings.OSD) + OSDManager.Show(playbackDevice); } } } diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/SetVolume/DeviceSetVolumeActionSettings.cs b/Windows/MassiveKnob.Plugin.CoreAudio/SetVolume/DeviceSetVolumeActionSettings.cs new file mode 100644 index 0000000..61d58c7 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/SetVolume/DeviceSetVolumeActionSettings.cs @@ -0,0 +1,9 @@ +using MassiveKnob.Plugin.CoreAudio.Base; + +namespace MassiveKnob.Plugin.CoreAudio.SetVolume +{ + public class DeviceSetVolumeActionSettings : BaseDeviceSettings + { + // TODO OSD + } +} diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/SetVolume/DeviceSetVolumeActionSettingsView.xaml b/Windows/MassiveKnob.Plugin.CoreAudio/SetVolume/DeviceSetVolumeActionSettingsView.xaml new file mode 100644 index 0000000..fb068f2 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/SetVolume/DeviceSetVolumeActionSettingsView.xaml @@ -0,0 +1,14 @@ + + + + + diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/SetVolume/DeviceSetVolumeActionSettingsView.xaml.cs b/Windows/MassiveKnob.Plugin.CoreAudio/SetVolume/DeviceSetVolumeActionSettingsView.xaml.cs new file mode 100644 index 0000000..9103cf2 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/SetVolume/DeviceSetVolumeActionSettingsView.xaml.cs @@ -0,0 +1,14 @@ +namespace MassiveKnob.Plugin.CoreAudio.SetVolume +{ + /// + /// Interaction logic for DeviceSetVolumeActionSettingsView.xaml + /// + public partial class DeviceSetVolumeActionSettingsView + { + public DeviceSetVolumeActionSettingsView(DeviceSetVolumeActionSettingsViewModel viewModel) + { + DataContext = viewModel; + InitializeComponent(); + } + } +} diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/SetVolume/DeviceSetVolumeActionSettingsViewModel.cs b/Windows/MassiveKnob.Plugin.CoreAudio/SetVolume/DeviceSetVolumeActionSettingsViewModel.cs new file mode 100644 index 0000000..baa5756 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/SetVolume/DeviceSetVolumeActionSettingsViewModel.cs @@ -0,0 +1,12 @@ +using MassiveKnob.Plugin.CoreAudio.Base; + +namespace MassiveKnob.Plugin.CoreAudio.SetVolume +{ + public class DeviceSetVolumeActionSettingsViewModel : BaseDeviceSettingsViewModel + { + // ReSharper disable once SuggestBaseTypeForParameter - by design + public DeviceSetVolumeActionSettingsViewModel(DeviceSetVolumeActionSettings settings) : base(settings) + { + } + } +} diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/Settings/BaseDeviceSettings.cs b/Windows/MassiveKnob.Plugin.CoreAudio/Settings/BaseDeviceSettings.cs deleted file mode 100644 index dd8cb66..0000000 --- a/Windows/MassiveKnob.Plugin.CoreAudio/Settings/BaseDeviceSettings.cs +++ /dev/null @@ -1,9 +0,0 @@ -using System; - -namespace MassiveKnob.Plugin.CoreAudio.Settings -{ - public class BaseDeviceSettings - { - public Guid? DeviceId { get; set; } - } -} diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/Settings/DeviceVolumeActionSettings.cs b/Windows/MassiveKnob.Plugin.CoreAudio/Settings/DeviceVolumeActionSettings.cs deleted file mode 100644 index 6fa5eee..0000000 --- a/Windows/MassiveKnob.Plugin.CoreAudio/Settings/DeviceVolumeActionSettings.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace MassiveKnob.Plugin.CoreAudio.Settings -{ - public class DeviceVolumeActionSettings : BaseDeviceSettings - { - // TODO OSD - } -} diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/Settings/DeviceVolumeActionSettingsView.xaml.cs b/Windows/MassiveKnob.Plugin.CoreAudio/Settings/DeviceVolumeActionSettingsView.xaml.cs deleted file mode 100644 index 7ecd71f..0000000 --- a/Windows/MassiveKnob.Plugin.CoreAudio/Settings/DeviceVolumeActionSettingsView.xaml.cs +++ /dev/null @@ -1,14 +0,0 @@ -namespace MassiveKnob.Plugin.CoreAudio.Settings -{ - /// - /// Interaction logic for DeviceVolumeActionSettingsView.xaml - /// - public partial class DeviceVolumeActionSettingsView - { - public DeviceVolumeActionSettingsView(DeviceVolumeActionSettingsViewModel viewModel) - { - DataContext = viewModel; - InitializeComponent(); - } - } -} diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/Settings/DeviceVolumeActionSettingsViewModel.cs b/Windows/MassiveKnob.Plugin.CoreAudio/Settings/DeviceVolumeActionSettingsViewModel.cs deleted file mode 100644 index 7e46566..0000000 --- a/Windows/MassiveKnob.Plugin.CoreAudio/Settings/DeviceVolumeActionSettingsViewModel.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace MassiveKnob.Plugin.CoreAudio.Settings -{ - public class DeviceVolumeActionSettingsViewModel : BaseDeviceSettingsViewModel - { - // ReSharper disable once SuggestBaseTypeForParameter - by design - public DeviceVolumeActionSettingsViewModel(DeviceVolumeActionSettings settings) : base(settings) - { - } - } -} diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/Strings.Designer.cs b/Windows/MassiveKnob.Plugin.CoreAudio/Strings.Designer.cs index 746832c..fd60a71 100644 --- a/Windows/MassiveKnob.Plugin.CoreAudio/Strings.Designer.cs +++ b/Windows/MassiveKnob.Plugin.CoreAudio/Strings.Designer.cs @@ -22,7 +22,7 @@ namespace MassiveKnob.Plugin.CoreAudio { [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Strings { + public class Strings { private static global::System.Resources.ResourceManager resourceMan; @@ -36,7 +36,7 @@ namespace MassiveKnob.Plugin.CoreAudio { /// Returns the cached ResourceManager instance used by this class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { + public static global::System.Resources.ResourceManager ResourceManager { get { if (object.ReferenceEquals(resourceMan, null)) { global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("MassiveKnob.Plugin.CoreAudio.Strings", typeof(Strings).Assembly); @@ -51,7 +51,7 @@ namespace MassiveKnob.Plugin.CoreAudio { /// resource lookups using this strongly typed resource class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { + public static global::System.Globalization.CultureInfo Culture { get { return resourceCulture; } @@ -63,7 +63,7 @@ namespace MassiveKnob.Plugin.CoreAudio { /// /// Looks up a localized string similar to {0}. /// - internal static string DeviceDisplayNameActive { + public static string DeviceDisplayNameActive { get { return ResourceManager.GetString("DeviceDisplayNameActive", resourceCulture); } @@ -72,7 +72,7 @@ namespace MassiveKnob.Plugin.CoreAudio { /// /// Looks up a localized string similar to {0} (Disabled). /// - internal static string DeviceDisplayNameDisabled { + public static string DeviceDisplayNameDisabled { get { return ResourceManager.GetString("DeviceDisplayNameDisabled", resourceCulture); } @@ -81,7 +81,7 @@ namespace MassiveKnob.Plugin.CoreAudio { /// /// Looks up a localized string similar to {0} (Inactive). /// - internal static string DeviceDisplayNameInactive { + public static string DeviceDisplayNameInactive { get { return ResourceManager.GetString("DeviceDisplayNameInactive", resourceCulture); } @@ -90,7 +90,7 @@ namespace MassiveKnob.Plugin.CoreAudio { /// /// Looks up a localized string similar to {0} (Not present). /// - internal static string DeviceDisplayNameNotPresent { + public static string DeviceDisplayNameNotPresent { get { return ResourceManager.GetString("DeviceDisplayNameNotPresent", resourceCulture); } @@ -99,10 +99,154 @@ namespace MassiveKnob.Plugin.CoreAudio { /// /// Looks up a localized string similar to {0} (Unplugged). /// - internal static string DeviceDisplayNameUnplugged { + public static string DeviceDisplayNameUnplugged { get { return ResourceManager.GetString("DeviceDisplayNameUnplugged", resourceCulture); } } + + /// + /// Looks up a localized string similar to Sets the digital output to the muted state for the selected device, regardless of the current default device.. + /// + public static string GetMutedDescription { + get { + return ResourceManager.GetString("GetMutedDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Muted / unmuted. + /// + public static string GetMutedName { + get { + return ResourceManager.GetString("GetMutedName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Sets the analog output to the volume for the selected device, regardless of the current default device.. + /// + public static string GetVolumeDescription { + get { + return ResourceManager.GetString("GetVolumeDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Volume. + /// + public static string GetVolumeName { + get { + return ResourceManager.GetString("GetVolumeName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Included with Massive Knob by default. Provides volume control per device and default device switching.. + /// + public static string PluginDescription { + get { + return ResourceManager.GetString("PluginDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Windows Core Audio. + /// + public static string PluginName { + get { + return ResourceManager.GetString("PluginName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Toggles the muted state for the selected device, regardless of the current default device.. + /// + public static string SetMutedDescription { + get { + return ResourceManager.GetString("SetMutedDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Mute / unmute. + /// + public static string SetMutedName { + get { + return ResourceManager.GetString("SetMutedName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Inverted (muted is off). + /// + public static string SettingGetMutedInverted { + get { + return ResourceManager.GetString("SettingGetMutedInverted", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Show On-Screen Display. + /// + public static string SettingOSD { + get { + return ResourceManager.GetString("SettingOSD", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Playback device. + /// + public static string SettingPlaybackDevice { + get { + return ResourceManager.GetString("SettingPlaybackDevice", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Inverted (off is muted). + /// + public static string SettingSetMutedSetInverted { + get { + return ResourceManager.GetString("SettingSetMutedSetInverted", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Set mute depending on value (eg. switch). + /// + public static string SettingSetMutedToggleFalse { + get { + return ResourceManager.GetString("SettingSetMutedToggleFalse", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Toggle mute when input turns on (eg. push button). + /// + public static string SettingSetMutedToggleTrue { + get { + return ResourceManager.GetString("SettingSetMutedToggleTrue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Sets the volume for the selected device to the value of the analog input, regardless of the current default device.. + /// + public static string SetVolumeDescription { + get { + return ResourceManager.GetString("SetVolumeDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Volume. + /// + public static string SetVolumeName { + get { + return ResourceManager.GetString("SetVolumeName", resourceCulture); + } + } } } diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/Strings.resx b/Windows/MassiveKnob.Plugin.CoreAudio/Strings.resx index 5a89d1c..f49a4c9 100644 --- a/Windows/MassiveKnob.Plugin.CoreAudio/Strings.resx +++ b/Windows/MassiveKnob.Plugin.CoreAudio/Strings.resx @@ -132,4 +132,52 @@ {0} (Unplugged) + + Sets the digital output to the muted state for the selected device, regardless of the current default device. + + + Muted / unmuted + + + Sets the analog output to the volume for the selected device, regardless of the current default device. + + + Volume + + + Included with Massive Knob by default. Provides volume control per device and default device switching. + + + Windows Core Audio + + + Toggles the muted state for the selected device, regardless of the current default device. + + + Mute / unmute + + + Inverted (muted is off) + + + Show On-Screen Display + + + Playback device + + + Inverted (off is muted) + + + Set mute depending on value (eg. switch) + + + Toggle mute when input turns on (eg. push button) + + + Sets the volume for the selected device to the value of the analog input, regardless of the current default device. + + + Volume + \ No newline at end of file diff --git a/Windows/MassiveKnob.Plugin.EmulatorDevice/Devices/EmulatorDevice.cs b/Windows/MassiveKnob.Plugin.EmulatorDevice/Devices/EmulatorDevice.cs new file mode 100644 index 0000000..542ad36 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.EmulatorDevice/Devices/EmulatorDevice.cs @@ -0,0 +1,97 @@ +using System; +using System.Threading; +using System.Windows.Controls; +using MassiveKnob.Plugin.EmulatorDevice.Settings; + +namespace MassiveKnob.Plugin.EmulatorDevice.Devices +{ + public class EmulatorDevice : IMassiveKnobDevice + { + public Guid DeviceId { get; } = new Guid("e1a4977a-abf4-4c75-a17d-fd8d3a8451ff"); + public string Name { get; } = "Mock device"; + public string Description { get; } = "Emulates the actual device but does not communicate with anything."; + + public IMassiveKnobDeviceInstance Create() + { + return new Instance(); + } + + + private class Instance : IMassiveKnobDeviceInstance + { + private IMassiveKnobDeviceContext deviceContext; + private EmulatorDeviceSettings settings; + + private DeviceSpecs reportedSpecs; + private EmulatorDeviceWindow window; + private EmulatorDeviceWindowViewModel windowViewModel; + + + public void Initialize(IMassiveKnobDeviceContext context) + { + deviceContext = context; + settings = deviceContext.GetSettings(); + + windowViewModel = new EmulatorDeviceWindowViewModel(settings, context); + window = new EmulatorDeviceWindow(windowViewModel); + ApplySettings(); + } + + + public void Dispose() + { + window.Close(); + } + + + private void ApplySettings() + { + if (settings.AnalogInputCount != reportedSpecs.AnalogInputCount || + settings.DigitalInputCount != reportedSpecs.DigitalInputCount || + settings.AnalogOutputCount != reportedSpecs.AnalogOutputCount || + settings.DigitalOutputCount != reportedSpecs.DigitalOutputCount) + { + reportedSpecs = new DeviceSpecs( + settings.AnalogInputCount, settings.DigitalInputCount, + settings.AnalogOutputCount, settings.DigitalOutputCount); + + deviceContext.Connected(reportedSpecs); + } + + windowViewModel.ApplySettings(); + window.Show(); + } + + + public UserControl CreateSettingsControl() + { + var viewModel = new EmulatorDeviceSettingsViewModel(settings); + viewModel.PropertyChanged += (sender, args) => + { + deviceContext.SetSettings(settings); + ApplySettings(); + }; + + return new EmulatorDeviceSettingsView(viewModel); + } + + + public void SetAnalogOutput(int analogOutputIndex, byte value) + { + if (analogOutputIndex >= windowViewModel.AnalogOutputCount) + return; + + windowViewModel.AnalogOutputs[analogOutputIndex].AnalogValue = value; + } + + + public void SetDigitalOutput(int digitalOutputIndex, bool @on) + { + if (digitalOutputIndex >= windowViewModel.DigitalOutputCount) + return; + + windowViewModel.DigitalOutputs[digitalOutputIndex].DigitalValue = on; + } + } + } +} diff --git a/Windows/MassiveKnob.Plugin.EmulatorDevice/Devices/EmulatorDeviceWindow.xaml b/Windows/MassiveKnob.Plugin.EmulatorDevice/Devices/EmulatorDeviceWindow.xaml new file mode 100644 index 0000000..2c2585d --- /dev/null +++ b/Windows/MassiveKnob.Plugin.EmulatorDevice/Devices/EmulatorDeviceWindow.xaml @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Windows/MassiveKnob.Plugin.EmulatorDevice/Devices/EmulatorDeviceWindow.xaml.cs b/Windows/MassiveKnob.Plugin.EmulatorDevice/Devices/EmulatorDeviceWindow.xaml.cs new file mode 100644 index 0000000..1bfefbd --- /dev/null +++ b/Windows/MassiveKnob.Plugin.EmulatorDevice/Devices/EmulatorDeviceWindow.xaml.cs @@ -0,0 +1,14 @@ +namespace MassiveKnob.Plugin.EmulatorDevice.Devices +{ + /// + /// Interaction logic for EmulatorDeviceWindow.xaml + /// + public partial class EmulatorDeviceWindow + { + public EmulatorDeviceWindow(EmulatorDeviceWindowViewModel viewModel) + { + DataContext = viewModel; + InitializeComponent(); + } + } +} diff --git a/Windows/MassiveKnob.Plugin.EmulatorDevice/Devices/EmulatorDeviceWindowViewModel.cs b/Windows/MassiveKnob.Plugin.EmulatorDevice/Devices/EmulatorDeviceWindowViewModel.cs new file mode 100644 index 0000000..54688ec --- /dev/null +++ b/Windows/MassiveKnob.Plugin.EmulatorDevice/Devices/EmulatorDeviceWindowViewModel.cs @@ -0,0 +1,264 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Runtime.CompilerServices; +using MassiveKnob.Plugin.EmulatorDevice.Settings; + +namespace MassiveKnob.Plugin.EmulatorDevice.Devices +{ + public class EmulatorDeviceWindowViewModel : INotifyPropertyChanged + { + private readonly EmulatorDeviceSettings settings; + private readonly IMassiveKnobDeviceContext context; + public event PropertyChangedEventHandler PropertyChanged; + + + // ReSharper disable UnusedMember.Global - used by WPF Binding + private int analogInputCount; + public int AnalogInputCount + { + get => analogInputCount; + set + { + if (value == analogInputCount) + return; + + analogInputCount = value; + OnPropertyChanged(); + + AnalogInputs = Enumerable.Range(0, AnalogInputCount) + .Select(i => new InputOutputViewModel(context, MassiveKnobActionType.InputAnalog, i)) + .ToList(); + } + } + + private IList analogInputs; + public IList AnalogInputs + { + get => analogInputs; + set + { + analogInputs = value; + OnPropertyChanged(); + } + } + + + private int digitalInputCount; + public int DigitalInputCount + { + get => digitalInputCount; + set + { + if (value == digitalInputCount) + return; + + digitalInputCount = value; + OnPropertyChanged(); + + DigitalInputs = Enumerable.Range(0, DigitalInputCount) + .Select(i => new InputOutputViewModel(context, MassiveKnobActionType.InputDigital, i)) + .ToList(); + } + } + + private IList digitalInputs; + public IList DigitalInputs + { + get => digitalInputs; + set + { + digitalInputs = value; + OnPropertyChanged(); + } + } + + + private int analogOutputCount; + public int AnalogOutputCount + { + get => analogOutputCount; + set + { + if (value == analogOutputCount) + return; + + analogOutputCount = value; + OnPropertyChanged(); + + AnalogOutputs = Enumerable.Range(0, AnalogOutputCount) + .Select(i => new InputOutputViewModel(context, MassiveKnobActionType.OutputAnalog, i)) + .ToList(); + } + } + + + private IList analogOutputs; + public IList AnalogOutputs + { + get => analogOutputs; + set + { + analogOutputs = value; + OnPropertyChanged(); + } + } + + + private int digitalOutputCount; + public int DigitalOutputCount + { + get => digitalOutputCount; + set + { + if (value == digitalOutputCount) + return; + + digitalOutputCount = value; + OnPropertyChanged(); + + DigitalOutputs = Enumerable.Range(0, DigitalOutputCount) + .Select(i => new InputOutputViewModel(context, MassiveKnobActionType.OutputDigital, i)) + .ToList(); + } + } + + private IList digitalOutputs; + public IList DigitalOutputs + { + get => digitalOutputs; + set + { + digitalOutputs = value; + OnPropertyChanged(); + } + } + // ReSharper restore UnusedMember.Global + + + + public EmulatorDeviceWindowViewModel(EmulatorDeviceSettings settings, IMassiveKnobDeviceContext context) + { + this.settings = settings; + this.context = context; + + ApplySettings(); + } + + + public void ApplySettings() + { + AnalogInputCount = settings.AnalogInputCount; + DigitalInputCount = settings.DigitalInputCount; + AnalogOutputCount = settings.AnalogOutputCount; + DigitalOutputCount = settings.DigitalOutputCount; + } + + protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } + + + public class InputOutputViewModel : INotifyPropertyChanged + { + private readonly IMassiveKnobDeviceContext context; + public MassiveKnobActionType ActionType { get; } + public int Index { get; } + + public string DisplayName + { + get + { + switch (ActionType) + { + case MassiveKnobActionType.InputAnalog: + return $"Analog input #{Index + 1}"; + + case MassiveKnobActionType.InputDigital: + return $"Digital input #{Index + 1}"; + + case MassiveKnobActionType.OutputAnalog: + return $"Analog output #{Index + 1}"; + + case MassiveKnobActionType.OutputDigital: + return $"Digital output #{Index + 1}"; + + default: + return (Index + 1).ToString(); + } + } + } + + + private byte analogValue; + public byte AnalogValue + { + get => analogValue; + set + { + analogValue = value; + OnPropertyChanged(); + + if (ActionType == MassiveKnobActionType.InputAnalog) + // Context can be null in DesignTime + context?.AnalogChanged(Index, analogValue); + } + } + + private bool digitalValue; + public bool DigitalValue + { + get => digitalValue; + set + { + digitalValue = value; + OnPropertyChanged(); + OnDependantPropertyChanged("DigitalValueDisplayText"); + + if (ActionType == MassiveKnobActionType.InputDigital) + context?.DigitalChanged(Index, digitalValue); + } + } + + public string DigitalValueDisplayText => DigitalValue ? "On" : "Off"; + + + public InputOutputViewModel(IMassiveKnobDeviceContext context, MassiveKnobActionType actionType, int index) + { + this.context = context; + ActionType = actionType; + Index = index; + } + + + public event PropertyChangedEventHandler PropertyChanged; + + protected void OnPropertyChanged([CallerMemberName] string propertyName = null) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } + + protected void OnDependantPropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } + } + } + + + public class EmulatorDeviceWindowViewModelDesignTime : EmulatorDeviceWindowViewModel + { + public EmulatorDeviceWindowViewModelDesignTime() : base( + new EmulatorDeviceSettings + { + AnalogInputCount = 2, + DigitalInputCount = 2, + AnalogOutputCount = 2, + DigitalOutputCount = 2 + }, null) + { + } + } +} diff --git a/Windows/MassiveKnob.Plugin.MockDevice/MassiveKnob.Plugin.MockDevice.csproj b/Windows/MassiveKnob.Plugin.EmulatorDevice/MassiveKnob.Plugin.EmulatorDevice.csproj similarity index 73% rename from Windows/MassiveKnob.Plugin.MockDevice/MassiveKnob.Plugin.MockDevice.csproj rename to Windows/MassiveKnob.Plugin.EmulatorDevice/MassiveKnob.Plugin.EmulatorDevice.csproj index 8a0f341..454d0d2 100644 --- a/Windows/MassiveKnob.Plugin.MockDevice/MassiveKnob.Plugin.MockDevice.csproj +++ b/Windows/MassiveKnob.Plugin.EmulatorDevice/MassiveKnob.Plugin.EmulatorDevice.csproj @@ -7,8 +7,8 @@ {674DE974-B134-4DB5-BFAF-7BC3D05E16DE} Library Properties - MassiveKnob.Plugin.MockDevice - MassiveKnob.Plugin.MockDevice + MassiveKnob.Plugin.EmulatorDevice + MassiveKnob.Plugin.EmulatorDevice v4.7.2 512 true @@ -45,14 +45,18 @@ - - - - - MockDeviceSettingsView.xaml + + + EmulatorDeviceWindow.xaml - - + + + + + EmulatorDeviceSettingsView.xaml + + + @@ -62,7 +66,11 @@ - + + MSBuild:Compile + Designer + + Designer MSBuild:Compile diff --git a/Windows/MassiveKnob.Plugin.MockDevice/MassiveKnobMockDevicePlugin.cs b/Windows/MassiveKnob.Plugin.EmulatorDevice/MassiveKnobEmulatorDevicePlugin.cs similarity index 78% rename from Windows/MassiveKnob.Plugin.MockDevice/MassiveKnobMockDevicePlugin.cs rename to Windows/MassiveKnob.Plugin.EmulatorDevice/MassiveKnobEmulatorDevicePlugin.cs index feb9eb5..f19c347 100644 --- a/Windows/MassiveKnob.Plugin.MockDevice/MassiveKnobMockDevicePlugin.cs +++ b/Windows/MassiveKnob.Plugin.EmulatorDevice/MassiveKnobEmulatorDevicePlugin.cs @@ -1,10 +1,10 @@ using System; using System.Collections.Generic; -namespace MassiveKnob.Plugin.MockDevice +namespace MassiveKnob.Plugin.EmulatorDevice { [MassiveKnobPlugin] - public class MassiveKnobMockDevicePlugin : IMassiveKnobDevicePlugin + public class MassiveKnobEmulatorDevicePlugin : IMassiveKnobDevicePlugin { public Guid PluginId { get; } = new Guid("85f04232-d70f-494c-94a2-41452591ffb3"); public string Name { get; } = "Mock Device"; @@ -14,7 +14,7 @@ namespace MassiveKnob.Plugin.MockDevice public IEnumerable Devices { get; } = new IMassiveKnobDevice[] { - new Devices.MockDevice() + new EmulatorDevice.Devices.EmulatorDevice() }; } } diff --git a/Windows/MassiveKnob.Plugin.MockDevice/Properties/AssemblyInfo.cs b/Windows/MassiveKnob.Plugin.EmulatorDevice/Properties/AssemblyInfo.cs similarity index 100% rename from Windows/MassiveKnob.Plugin.MockDevice/Properties/AssemblyInfo.cs rename to Windows/MassiveKnob.Plugin.EmulatorDevice/Properties/AssemblyInfo.cs diff --git a/Windows/MassiveKnob.Plugin.EmulatorDevice/Settings/EmulatorDeviceSettings.cs b/Windows/MassiveKnob.Plugin.EmulatorDevice/Settings/EmulatorDeviceSettings.cs new file mode 100644 index 0000000..1091b7c --- /dev/null +++ b/Windows/MassiveKnob.Plugin.EmulatorDevice/Settings/EmulatorDeviceSettings.cs @@ -0,0 +1,10 @@ +namespace MassiveKnob.Plugin.EmulatorDevice.Settings +{ + public class EmulatorDeviceSettings + { + public int AnalogInputCount { get; set; } = 2; + public int DigitalInputCount { get; set; } = 2; + public int AnalogOutputCount { get; set; } = 2; + public int DigitalOutputCount { get; set; } = 2; + } +} diff --git a/Windows/MassiveKnob.Plugin.EmulatorDevice/Settings/EmulatorDeviceSettingsView.xaml b/Windows/MassiveKnob.Plugin.EmulatorDevice/Settings/EmulatorDeviceSettingsView.xaml new file mode 100644 index 0000000..2f05a7d --- /dev/null +++ b/Windows/MassiveKnob.Plugin.EmulatorDevice/Settings/EmulatorDeviceSettingsView.xaml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + Analog inputs + + + Digital inputs + + + Analog outputs + + + Digital outputs + + + diff --git a/Windows/MassiveKnob.Plugin.EmulatorDevice/Settings/EmulatorDeviceSettingsView.xaml.cs b/Windows/MassiveKnob.Plugin.EmulatorDevice/Settings/EmulatorDeviceSettingsView.xaml.cs new file mode 100644 index 0000000..2ab7f89 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.EmulatorDevice/Settings/EmulatorDeviceSettingsView.xaml.cs @@ -0,0 +1,15 @@ +namespace MassiveKnob.Plugin.EmulatorDevice.Settings +{ + /// + /// Interaction logic for EmulatorDeviceSettingsView.xaml + /// + public partial class EmulatorDeviceSettingsView + { + public EmulatorDeviceSettingsView(EmulatorDeviceSettingsViewModel settingsViewModel) + { + DataContext = settingsViewModel; + + InitializeComponent(); + } + } +} diff --git a/Windows/MassiveKnob.Plugin.EmulatorDevice/Settings/EmulatorDeviceSettingsViewModel.cs b/Windows/MassiveKnob.Plugin.EmulatorDevice/Settings/EmulatorDeviceSettingsViewModel.cs new file mode 100644 index 0000000..1afa309 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.EmulatorDevice/Settings/EmulatorDeviceSettingsViewModel.cs @@ -0,0 +1,81 @@ +using System.ComponentModel; +using System.Runtime.CompilerServices; + +namespace MassiveKnob.Plugin.EmulatorDevice.Settings +{ + public class EmulatorDeviceSettingsViewModel : INotifyPropertyChanged + { + private readonly EmulatorDeviceSettings settings; + public event PropertyChangedEventHandler PropertyChanged; + + + // ReSharper disable UnusedMember.Global - used by WPF Binding + public int AnalogInputCount + { + get => settings.AnalogInputCount; + set + { + if (value == settings.AnalogInputCount) + return; + + settings.AnalogInputCount = value; + OnPropertyChanged(); + } + } + + + public int DigitalInputCount + { + get => settings.DigitalInputCount; + set + { + if (value == settings.DigitalInputCount) + return; + + settings.DigitalInputCount = value; + OnPropertyChanged(); + } + } + + + public int AnalogOutputCount + { + get => settings.AnalogOutputCount; + set + { + if (value == settings.AnalogOutputCount) + return; + + settings.AnalogOutputCount = value; + OnPropertyChanged(); + } + } + + + public int DigitalOutputCount + { + get => settings.DigitalOutputCount; + set + { + if (value == settings.DigitalOutputCount) + return; + + settings.DigitalOutputCount = value; + OnPropertyChanged(); + } + } + // ReSharper restore UnusedMember.Global + + + public EmulatorDeviceSettingsViewModel(EmulatorDeviceSettings settings) + { + this.settings = settings; + } + + + protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } + } +} diff --git a/Windows/MassiveKnob.Plugin.MockDevice/Devices/MockDevice.cs b/Windows/MassiveKnob.Plugin.MockDevice/Devices/MockDevice.cs deleted file mode 100644 index 4112c92..0000000 --- a/Windows/MassiveKnob.Plugin.MockDevice/Devices/MockDevice.cs +++ /dev/null @@ -1,95 +0,0 @@ -using System; -using System.Threading; -using System.Windows.Controls; -using MassiveKnob.Plugin.MockDevice.Settings; - -namespace MassiveKnob.Plugin.MockDevice.Devices -{ - public class MockDevice : IMassiveKnobDevice - { - public Guid DeviceId { get; } = new Guid("e1a4977a-abf4-4c75-a17d-fd8d3a8451ff"); - public string Name { get; } = "Mock device"; - public string Description { get; } = "Emulates the actual device but does not communicate with anything."; - - public IMassiveKnobDeviceInstance Create() - { - return new Instance(); - } - - - private class Instance : IMassiveKnobDeviceInstance - { - private IMassiveKnobDeviceContext deviceContext; - private MockDeviceSettings settings; - private Timer inputChangeTimer; - - private int reportedAnalogInputCount; - private int reportedDigitalInputCount; - private readonly Random random = new Random(); - - - public void Initialize(IMassiveKnobDeviceContext context) - { - deviceContext = context; - settings = deviceContext.GetSettings(); - - ApplySettings(); - } - - - public void Dispose() - { - inputChangeTimer?.Dispose(); - } - - - private void ApplySettings() - { - if (settings.AnalogCount != reportedAnalogInputCount || - settings.DigitalCount != reportedDigitalInputCount) - { - deviceContext.Connected(new DeviceSpecs(settings.AnalogCount, settings.DigitalCount, 0, 0)); - - reportedAnalogInputCount = settings.AnalogCount; - reportedDigitalInputCount = settings.DigitalCount; - } - - - var interval = TimeSpan.FromSeconds(Math.Max(settings.Interval, 1)); - - if (inputChangeTimer == null) - inputChangeTimer = new Timer(Tick, null, interval, interval); - else - inputChangeTimer.Change(interval, interval); - } - - - public UserControl CreateSettingsControl() - { - var viewModel = new MockDeviceSettingsViewModel(settings); - viewModel.PropertyChanged += (sender, args) => - { - deviceContext.SetSettings(settings); - ApplySettings(); - }; - - return new MockDeviceSettingsView(viewModel); - } - - - private void Tick(object state) - { - var totalInputCount = reportedAnalogInputCount + reportedDigitalInputCount; - if (totalInputCount == 0) - return; - - var changeInput = random.Next(0, totalInputCount); - - if (changeInput < reportedAnalogInputCount) - deviceContext.AnalogChanged(changeInput, (byte)random.Next(0, 101)); - else - deviceContext.DigitalChanged(changeInput - reportedAnalogInputCount, random.Next(0, 2) == 1); - } - } - } -} diff --git a/Windows/MassiveKnob.Plugin.MockDevice/Settings/MockDeviceSettings.cs b/Windows/MassiveKnob.Plugin.MockDevice/Settings/MockDeviceSettings.cs deleted file mode 100644 index 5990d4b..0000000 --- a/Windows/MassiveKnob.Plugin.MockDevice/Settings/MockDeviceSettings.cs +++ /dev/null @@ -1,9 +0,0 @@ -namespace MassiveKnob.Plugin.MockDevice.Settings -{ - public class MockDeviceSettings - { - public int AnalogCount { get; set; } = 3; - public int DigitalCount { get; set; } = 1; - public int Interval { get; set; } = 5; - } -} diff --git a/Windows/MassiveKnob.Plugin.MockDevice/Settings/MockDeviceSettingsView.xaml b/Windows/MassiveKnob.Plugin.MockDevice/Settings/MockDeviceSettingsView.xaml deleted file mode 100644 index 6fcf56b..0000000 --- a/Windows/MassiveKnob.Plugin.MockDevice/Settings/MockDeviceSettingsView.xaml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - Number of analog inputs - - - Number of digital inputs - - - Random change interval (seconds) - - - diff --git a/Windows/MassiveKnob.Plugin.MockDevice/Settings/MockDeviceSettingsView.xaml.cs b/Windows/MassiveKnob.Plugin.MockDevice/Settings/MockDeviceSettingsView.xaml.cs deleted file mode 100644 index 503729c..0000000 --- a/Windows/MassiveKnob.Plugin.MockDevice/Settings/MockDeviceSettingsView.xaml.cs +++ /dev/null @@ -1,15 +0,0 @@ -namespace MassiveKnob.Plugin.MockDevice.Settings -{ - /// - /// Interaction logic for MockDeviceSettingsView.xaml - /// - public partial class MockDeviceSettingsView - { - public MockDeviceSettingsView(MockDeviceSettingsViewModel settingsViewModel) - { - DataContext = settingsViewModel; - - InitializeComponent(); - } - } -} diff --git a/Windows/MassiveKnob.Plugin.MockDevice/Settings/MockDeviceSettingsViewModel.cs b/Windows/MassiveKnob.Plugin.MockDevice/Settings/MockDeviceSettingsViewModel.cs deleted file mode 100644 index 54040ad..0000000 --- a/Windows/MassiveKnob.Plugin.MockDevice/Settings/MockDeviceSettingsViewModel.cs +++ /dev/null @@ -1,67 +0,0 @@ -using System.ComponentModel; -using System.Runtime.CompilerServices; - -namespace MassiveKnob.Plugin.MockDevice.Settings -{ - public class MockDeviceSettingsViewModel : INotifyPropertyChanged - { - private readonly MockDeviceSettings settings; - public event PropertyChangedEventHandler PropertyChanged; - - - // ReSharper disable UnusedMember.Global - used by WPF Binding - public int AnalogCount - { - get => settings.AnalogCount; - set - { - if (value == settings.AnalogCount) - return; - - settings.AnalogCount = value; - OnPropertyChanged(); - } - } - - - public int DigitalCount - { - get => settings.DigitalCount; - set - { - if (value == settings.DigitalCount) - return; - - settings.DigitalCount = value; - OnPropertyChanged(); - } - } - - - public int Interval - { - get => settings.Interval; - set - { - if (value == settings.Interval) - return; - - settings.Interval = value; - OnPropertyChanged(); - } - } - // ReSharper restore UnusedMember.Global - - - public MockDeviceSettingsViewModel(MockDeviceSettings settings) - { - this.settings = settings; - } - - - protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null) - { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); - } - } -} diff --git a/Windows/MassiveKnob.Plugin.SerialDevice/Devices/SerialDevice.cs b/Windows/MassiveKnob.Plugin.SerialDevice/Devices/SerialDevice.cs index b155974..a3c1244 100644 --- a/Windows/MassiveKnob.Plugin.SerialDevice/Devices/SerialDevice.cs +++ b/Windows/MassiveKnob.Plugin.SerialDevice/Devices/SerialDevice.cs @@ -59,6 +59,17 @@ namespace MassiveKnob.Plugin.SerialDevice.Devices return new SerialDeviceSettingsView(viewModel); } + + + public void SetAnalogOutput(int analogOutputIndex, byte value) + { + // TODO Support SetAnalogOutput + } + + public void SetDigitalOutput(int digitalOutputIndex, bool @on) + { + // TODO Support SetDigitalOutput + } } } } diff --git a/Windows/MassiveKnob.Plugin.SerialDevice/Worker/SerialWorker.cs b/Windows/MassiveKnob.Plugin.SerialDevice/Worker/SerialWorker.cs index 2e02f25..56c7b9b 100644 --- a/Windows/MassiveKnob.Plugin.SerialDevice/Worker/SerialWorker.cs +++ b/Windows/MassiveKnob.Plugin.SerialDevice/Worker/SerialWorker.cs @@ -174,6 +174,7 @@ namespace MassiveKnob.Plugin.SerialDevice.Worker if ((char) response == 'H') { + // TODO support multiple I/O's var knobCount = serialPort.ReadByte(); if (knobCount > -1) { diff --git a/Windows/MassiveKnob.Plugin/IMassiveKnobDeviceInstance.cs b/Windows/MassiveKnob.Plugin/IMassiveKnobDeviceInstance.cs index 1924a3e..b736b5c 100644 --- a/Windows/MassiveKnob.Plugin/IMassiveKnobDeviceInstance.cs +++ b/Windows/MassiveKnob.Plugin/IMassiveKnobDeviceInstance.cs @@ -19,5 +19,19 @@ namespace MassiveKnob.Plugin /// determined by the UserControl. Return null to indicate there are no settings for this device. /// UserControl CreateSettingsControl(); + + /// + /// Called when the state of an analog output should be changed. + /// + /// The index of the analog output to set. + /// The analog value in the range of 0 to 100. + void SetAnalogOutput(int analogOutputIndex, byte value); + + /// + /// Called when the state of a digital output should be changed. + /// + /// The index of the digital output to set. + /// Whether the signal is on or off. + void SetDigitalOutput(int digitalOutputIndex, bool on); } } diff --git a/Windows/MassiveKnob.sln b/Windows/MassiveKnob.sln index 8f3c00f..f992761 100644 --- a/Windows/MassiveKnob.sln +++ b/Windows/MassiveKnob.sln @@ -9,7 +9,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MassiveKnob.Plugin", "Massi EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MassiveKnob.Plugin.CoreAudio", "MassiveKnob.Plugin.CoreAudio\MassiveKnob.Plugin.CoreAudio.csproj", "{5BD5E2F2-9923-4F74-AC69-ACDA0B847937}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MassiveKnob.Plugin.MockDevice", "MassiveKnob.Plugin.MockDevice\MassiveKnob.Plugin.MockDevice.csproj", "{674DE974-B134-4DB5-BFAF-7BC3D05E16DE}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MassiveKnob.Plugin.EmulatorDevice", "MassiveKnob.Plugin.EmulatorDevice\MassiveKnob.Plugin.EmulatorDevice.csproj", "{674DE974-B134-4DB5-BFAF-7BC3D05E16DE}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MassiveKnob.Plugin.SerialDevice", "MassiveKnob.Plugin.SerialDevice\MassiveKnob.Plugin.SerialDevice.csproj", "{FC0D22D8-5F1B-4D85-8269-FA4837CDE3A2}" EndProject diff --git a/Windows/MassiveKnob.sln.DotSettings b/Windows/MassiveKnob.sln.DotSettings index 584d2d0..edc850c 100644 --- a/Windows/MassiveKnob.sln.DotSettings +++ b/Windows/MassiveKnob.sln.DotSettings @@ -1,2 +1,4 @@  - UI \ No newline at end of file + OSD + UI + OSD \ No newline at end of file diff --git a/Windows/MassiveKnob/Model/MassiveKnobOrchestrator.cs b/Windows/MassiveKnob/Model/MassiveKnobOrchestrator.cs index 2654904..aa7186d 100644 --- a/Windows/MassiveKnob/Model/MassiveKnobOrchestrator.cs +++ b/Windows/MassiveKnob/Model/MassiveKnobOrchestrator.cs @@ -97,7 +97,7 @@ namespace MassiveKnob.Model public MassiveKnobActionInfo GetAction(MassiveKnobActionType actionType, int index) { var list = GetActionMappingList(actionType); - return index >= list.Count ? null : list[index].ActionInfo; + return index >= list.Count ? null : list[index]?.ActionInfo; } @@ -244,7 +244,7 @@ namespace MassiveKnob.Model if (index >= list.Count) return; - if (list[index].Context != context) + if (list[index]?.Context != context) throw new InvalidOperationException("Caller must be the active action to retrieve the settings"); lock (settingsLock) @@ -273,7 +273,7 @@ namespace MassiveKnob.Model return; var mapping = GetActionMappingList(MassiveKnobActionType.InputAnalog); - if (mapping == null || analogInputIndex >= mapping.Count) + if (mapping == null || analogInputIndex >= mapping.Count || mapping[analogInputIndex] == null) return; if (mapping[analogInputIndex].ActionInfo.Instance is IMassiveKnobAnalogAction analogAction) @@ -286,8 +286,8 @@ namespace MassiveKnob.Model if (context != activeDeviceContext) return; - var mapping = GetActionMappingList(MassiveKnobActionType.InputAnalog); - if (mapping == null || digitalInputIndex >= mapping.Count) + var mapping = GetActionMappingList(MassiveKnobActionType.InputDigital); + if (mapping == null || digitalInputIndex >= mapping.Count || mapping[digitalInputIndex] == null) return; if (mapping[digitalInputIndex].ActionInfo.Instance is IMassiveKnobDigitalAction digitalAction) @@ -295,6 +295,38 @@ namespace MassiveKnob.Model } + public void SetAnalogOutput(IMassiveKnobActionContext context, IMassiveKnobAction action, int index, byte value) + { + if (activeDevice == null) + return; + + var list = GetActionMappingList(action.ActionType); + if (index >= list.Count) + return; + + if (list[index]?.Context != context) + return; + + activeDevice.Instance.SetAnalogOutput(index, value); + } + + + public void SetDigitalOutput(IMassiveKnobActionContext context, IMassiveKnobAction action, int index, bool on) + { + if (activeDevice == null) + return; + + var list = GetActionMappingList(action.ActionType); + if (index >= list.Count) + return; + + if (list[index]?.Context != context) + return; + + activeDevice.Instance.SetDigitalOutput(index, on); + } + + private List GetActionMappingList(MassiveKnobActionType actionType) { switch (actionType) @@ -534,15 +566,15 @@ namespace MassiveKnob.Model } - public void SetDigitalOutput(bool on) - { - throw new NotImplementedException(); - } - - public void SetAnalogOutput(byte value) { - throw new NotImplementedException(); + owner.SetAnalogOutput(this, action, index, value); + } + + + public void SetDigitalOutput(bool on) + { + owner.SetDigitalOutput(this, action, index, on); } } } diff --git a/Windows/MassiveKnob/Style.xaml b/Windows/MassiveKnob/Style.xaml index b7a4d7e..1553388 100644 --- a/Windows/MassiveKnob/Style.xaml +++ b/Windows/MassiveKnob/Style.xaml @@ -17,10 +17,9 @@ + \ No newline at end of file diff --git a/Windows/MassiveKnob/Resources/Logging.xaml b/Windows/MassiveKnob/Resources/Logging.xaml new file mode 100644 index 0000000..f6db3ce --- /dev/null +++ b/Windows/MassiveKnob/Resources/Logging.xaml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + diff --git a/Windows/MassiveKnob/Resources/MainIcon.ico b/Windows/MassiveKnob/Resources/MainIcon.ico index b4abcb46d7a07f7ae68e4a0a5ac37a491e8d712c..208d78d255cf041377a820e744278a4820bca927 100644 GIT binary patch literal 167971 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 E1GkaVQ2+n{ literal 173247 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�Q#-1xVGck7JW$F_b${MaOC(sxK3dn@+Wmv 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 diff --git a/Windows/MassiveKnob/Resources/NotifyIcon.ico b/Windows/MassiveKnob/Resources/NotifyIcon.ico index fdc8219472f61730bd7a79fd97312bc860ad7576..9acaca5ed9d4f66516e54eafc58d975c49565fb4 100644 GIT binary patch literal 168930 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
    L9%O-Qf5gt1kG$x98e5Fh)Icq0UX1iIQQWyW$c4 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�KO0O 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

    Ho&2Q^=hL2esm6-WX# z?=68pA_}q?WxsY&#=xuK)yIgvrYvDS0f?2J6;v@CtSTF?DN8k;Y?TRp?vim*AHT08 ze>W9$rX?RN*0-BR?Yn`aDp6hhG$CH0Ag9M~oO@95rf`@!x+P zer#sF(l+kVoOZ%z#v#@IK4O*=dGZe~P>&Kr`I}0CEv0YTJZ;*Z4CFbEQgE!L`dz)ojT@)j zzI~he**>w};j>#YS{vH5#^wg3)6B~vHiAMX6ljhQcmnH+bvpO@|6yiE17pN-gx`OZ zV-y@5Y}~kUqa1tuF72oI-3xim3%@=FYTIDTU9O31iWu0UkmLUT9-&N$Imr~{3H#NN zzNC?{Iz}j`=&?#2k)aNNan-6-#?a8vlr3Af$oepT7G1e=MLu7loY#!M#kQ}$o4c7 z?Qw>}R!$(_lh6V?ZX{4#Z4<{k$4#7*78$#7&csA3i~51^ z;Uevdeo-j*j}{_ZewGcqFZj-&=Pk%GOItrp+7TJW_8Q0r315-d2I=ccnOUy``c^|m zJ}!l>^ib%i2jsUHEdj4pY6!jH`F{2|pu6WKj!ll`msPfS4(B;To`^u50iJ(MFUkvr zE>P&=If3UuOTaZX=PL7e;lcA>9Pg)aJ#JpSfp-Qt{@E`}fWbhqzTovT*M2cTXU^de zm*D{ZKkY&|ELO$%?FhZ{@3qm27|$x6*Z=P!ZNA@4MM#$i_CeVSQ0~jg8x*3xpeW;9 z$vI>XDEHD|1C{S#3Wt#9_0)1;dfu0!&s^Ke`=&ytJ1KNG2iiJ+vOl?Y91AQ3Otl_G zn%8&*fI+~jKpwk9o(Bs9(~NoKaZTS8$a#m?%;^F8#rpZ(84pXk&TjoPe~;bFrm(SjvN~r+}+~ zj-Jyg$GL=a2G;`9fZ@OofJ1?tzrF-+0>%P4roH22baqPx#zNHz2=1 zo2q}cX*N!qr%gK|BkDLH%X8X7$b0;EyX?goe(+dW4AfqaAS=Ux<8&{u0nmJZ#$FpT zq8$FzM1QRZHUH*@6a9^9_Q#kVeOya$&XTV;GNR4tu>l`>E}9GEHGrpqa~jY0{CH88 z0{G1H_#43QfLs$eI+sJ#Do{r}a4j$lnCag^b)?hK4(=({0p&9|oU48XJr9})YCca1 zUZLD8KL?oupsd5XTq~KMZ*#-d5w@8$m@`2fm|1}?YwT_@yYcg->1q2%vAGi zR*bjTXKw_&5%5OfQHuc14JJUt1j{cxx{;5TmB~6&Odo}md3;~eA68`EVETxp%ty=r zP5EG@aFYzG%HOfXfAiNR$wQ6&Nl7ygrQ{Qs?`z@>S{|oPWSPEas^;M-^YxTZ#fPi% zO}s23jp2qM%K*c<8L#kFc*0fllPDocLHswK|J=-vHR%i?*{SD$DTF?#`Di_}B|Y=i zydj#|lAit>LdfbQnGYlHEBWJpLKX5pCSKkl$|m!P@=7b4#5g3%yO%knK=8@(PDy^5 zH$90MB!7K0Mbe`*L<+}$BdDa)n|M78pbldufBzKUZk2h1uO44B^_BSqX@I{TqlPkx z_}(fzo;(;pu*}Qj1cQe8rj9h4cmr~j@gNVHKqa3QlrhGSp+dwY53Rvw9!&c9^3Wav z)C0wLNTrvM@Pao2-UxUj;EjMc0^SICGy*tt=LNn3$9$-&kG|<`m>%XIp9vGAXuDaC(eCD3lRG`BT!9&&>aIbYG@CCOz=>cW% zk@v#*JVFA{-M~2TKC1co2M;tM-74W%5nvS1)4+S3_0sLA2P(p!YQPJgZn#Q+68LvL z&=jXt!jDEk-XD4xFwAL(-B2&%*|uS2Of#9`>+d zW#pPAvjCqH^w{%M+Cc$Z-7`zWRemhj`ss-@?BxSqRoTrkBbk^+c%tn}``2aSb_>_I9?9;T z>8yluR7sq0}FLHcgXL4f!23I*TWXoD{UFrV6yyYQtHY>id@743SE#Lk_q5NG?b=ws^97h~aYUr+% zWkaUJ6Ovj%dU$Iw*uH(cP{;d^L5gn^M5Y7Oe0{^ZT0s4_8XX+>&r%MwB=EYX++#^g zF;Lpi*RWn!e5wowxUb^~a4*m1duu4?7~r^9Lkto*6?=`q^Imj@fI0?Z4!Cve))>VX zj{9RyI3m|$U0VQsRe{=PcUB=!tO;HNpJ6e;H-e0Z4tAIIBphGS$Mup=w_c3jDa?lQn5R;@oM;8@uS{22Haunv&(X+a?OsDpr9XS4y10Imjd{HGT<279{F zHb?8i4(I&oK<*W02H;#-&Qbr}B?p^zfiVv;06Yiv0Q$JAP0s3}ZQ$F$Q^1UZD=;(+ z=~GkNQwfPIQFkR zv{nIz0mXMB^ktCnf;R%*2zVo)iU9WDx$nW>O6moi2!1*!aSZskK`R2&z1OTVTi0&I0{gw z)5|OM)eUD1p66jdMxDwa~HI*|}`Pwoe??}EC*-l!2oJqqjubkp(pCD`q zYRY|(uap>mfocZ1aki^EYGpAy7OM!+W8tfQ7Yf z6lt`xGs@G4q!8LE;`&X%+Ye9ZlpnRVKe=oX+W%a$$UZ*QC5!x%hxuzD=X?@qxO$Ge|dl8&dstcyx3$>+zYH5};f+$opZSG9X{A zk9qZl&uR*>7l7ix;u@+Y%R#w@avQ+Dap}^favv!1zk_F>UxEQY;66Ks)~S8g^3Xkv z4WtebUITD0;9SOYHOK={WaJEIc~mmu8UB>JckkZ0di82c9Ls!8<}0DyiaxHPOKN>q zr%^uuctTa5*K=Hpa84Kw%6V4?m5gYwv-uZr{5GQRs5k}sOp5W}f^LrCu4-Sc@uvzr&WDnAXm1h&LWLlln`VHr ze|Rm|2kFzGGAJ_kc%I**fK6x%^f}bqCs)Eh8#;bKvD5o=sM8fFAJ3pd{~54v19^_) zd9N{$&++nl=wG0aBg-~l2Bptji#@0K&G~&Y@@&mBVle#xS@}0})$w(dN8JuUJ_D)- z`gj^R0$57u0x!-P<-nH)J_(fL2Fl~7HgFa&0q6+KgOJO6yUhaImDZv@;C0gOq2yvDaf^?|ZnGN1N>d?Fua0yXfdF3@Px59S#4d|U}>I43B7 zRELi@@rQQ!*qEUF5gw*V@syL~yVpc@m_eE5L@K`&3MyXk)KXEdhYSxcc>_*RC}2Jn z{iM)n&>X&!^f%L>20bXw@bcqWf?|h0kI|6G0{XE$y z=r0HS5_lbG32q@X5?Irnen20u!KMPaXW$6%y#5W)<#+j@BR}vbV0z#S^ar*8dII`FX-f-= z!;#0il)!t6oKHOg!=QA61;sxi?^PwAepvF+LN%we`k}^j3$?h{#p^x7NFeu(JOS)i z+S0-o$Y8(oJ5n2gyvDf-bSET3SwY}g3rc$_<1z|m^nv?2bAe7nLPCOZ;>3x@xVSiN z-7U!Ad&`!foMQidrSL=03P4BCcV?Y)=gyV)y*qU1p!J~{gm~`O!eQDbpr8QoUm*9d ziU4N-odWE$8+-TeZT5lRr2>2pE^%j&iZ9{CM{ z;@tNYc&9ywn+3f$A<^BtCKQ-`>;5oS|Sly?Qn`y-&g0$&7j{4N8^`?8=~pwB-5 zx!=OQi722YpblP6*#yXR1BzpS$M3g5>SiC+2fhRB52RdUU_M}V;5?wEv4(6pj<_;& z3?Lr@{D&1)z(KtkI2*`&R~#oC;}?L|fXCE3j#*7Dg?f2`T>o;9%2{BaFdp)^U{Y&# zE(IMt7KQ+MOtL?$0mmtinUO%3?OO5@dKnXrfzH4_3cji2SzOmx(&NoDMF4So0ES?^ zN0$$;jQL`_LB}`5WW*LkIMEQ7MX(DLfEMnC=OVy_LTbB^`W2~k3SR8&+> zV5;_DEIdp92-I)lQuFFE3o<-cWk>!vP@cmtfv*S3`T8U94MAnFP*)V0ZCjD4gnaXw z2>cdQ90A-0p0;GLQa4qZ6`5d7{?ADB-uB%Ly!K*NdC+5Y zk_l3RnpdY|V`EdW&Q;5-LSmv?9{f;z8=23l@ENpez&=2`fN$%j;Jd;plO|1~4I$qg zOsq&Kv;xNz?DBcTJD?STF)Ra>LCrIRX@K#YZ@!VAIhr?b9`n|q=si(R3fLyb>+RdO zb3=w}^n<|4;LX=`;LWyJNu){FtXX6H{rBGw-Me?M4vKgWTaI_o=P7mp z`FzZ7pgs5w{Z|J<93N^3SL+r$Z1Q@K0p$PMT


    MHZ~tHFL_Hc4dLjJS^#j(bbNk^wi7OjtyUw&Iu`D=T6&ZcG_~3Aizph)8$Hk>_s_IV*^iLx%_mWWCg z=q=1QjV#q=9_-5Vl!bcgtV`RsZ)aH30EEt{1#R#HSUEgA+>dni>eVGMHcQx$*B0@7 zFc`>_1dpLeU~8bG!0X-JiZIu4Q-Rzky{qKeBfM5VrwHx1aN$A=@QZ+)>n*}(pM7S; zdRUYV5)9~=S+izk1N{@o^@Kc^gQfx;x5oDE+Z)k;+&9>u6#jSo`0-+lA@b=1&mG+B z5WXp5CW3vO<>+JeKA86V{~th-_PNd(3FO`e=kU*fEE9IY8fVb17VvyzOO(X|8Ox)< zJ;3uo0q1bu?X0b*PUHNU9cwoB=S<)_1!rQ7+jiy3mGYQT%e%_+UUM?eYKB03h6G1y Xv_H_w6NGx4ouV;=8X%JZS=RkO110tt diff --git a/Windows/MassiveKnob/Resources/Startup.xaml b/Windows/MassiveKnob/Resources/Startup.xaml new file mode 100644 index 0000000..fa1de3f --- /dev/null +++ b/Windows/MassiveKnob/Resources/Startup.xaml @@ -0,0 +1,15 @@ + + + + + + + + + + diff --git a/Windows/MassiveKnob/Settings/ILoggingSwitch.cs b/Windows/MassiveKnob/Settings/ILoggingSwitch.cs new file mode 100644 index 0000000..0e8b482 --- /dev/null +++ b/Windows/MassiveKnob/Settings/ILoggingSwitch.cs @@ -0,0 +1,9 @@ +using Serilog.Events; + +namespace MassiveKnob.Settings +{ + public interface ILoggingSwitch + { + void SetLogging(bool enabled, LogEventLevel minimumLevel); + } +} diff --git a/Windows/MassiveKnob/Settings/LoggingSwitch.cs b/Windows/MassiveKnob/Settings/LoggingSwitch.cs new file mode 100644 index 0000000..736f63d --- /dev/null +++ b/Windows/MassiveKnob/Settings/LoggingSwitch.cs @@ -0,0 +1,26 @@ +using System; +using Serilog.Core; +using Serilog.Events; + +namespace MassiveKnob.Settings +{ + public class LoggingSwitch : LoggingLevelSwitch, ILoggingSwitch + { + private bool enabled; + private LogEventLevel minimumLevel; + + + public bool IsIncluded(LogEvent logEvent) + { + return enabled && logEvent.Level >= minimumLevel; + } + + + // ReSharper disable ParameterHidesMember + public void SetLogging(bool enabled, LogEventLevel minimumLevel) + { + this.enabled = enabled; + this.minimumLevel = minimumLevel; + } + } +} diff --git a/Windows/MassiveKnob/Settings/Settings.cs b/Windows/MassiveKnob/Settings/MassiveKnobSettings.cs similarity index 58% rename from Windows/MassiveKnob/Settings/Settings.cs rename to Windows/MassiveKnob/Settings/MassiveKnobSettings.cs index 37c8b24..33a194a 100644 --- a/Windows/MassiveKnob/Settings/Settings.cs +++ b/Windows/MassiveKnob/Settings/MassiveKnobSettings.cs @@ -2,10 +2,25 @@ using System.Collections.Generic; using System.Linq; using Newtonsoft.Json.Linq; +using Serilog.Events; namespace MassiveKnob.Settings { - public class Settings + public enum SettingsMenuItem + { + None, + Device, + AnalogInputs, + DigitalInputs, + AnalogOutputs, + DigitalOutputs, + Logging, + Startup + } + + + + public class MassiveKnobSettings { public DeviceSettings Device { get; set; } public List AnalogInput { get; set; } @@ -13,6 +28,20 @@ namespace MassiveKnob.Settings public List AnalogOutput { get; set; } public List DigitalOutput { get; set; } + private UISettings ui; + public UISettings UI + { + get => ui ?? (ui = new UISettings()); + set => ui = value ?? new UISettings(); + } + + private LogSettings log; + public LogSettings Log + { + get => log ?? (log = new LogSettings()); + set => log = value ?? new LogSettings(); + } + public void Verify() { @@ -23,15 +52,17 @@ namespace MassiveKnob.Settings } - public Settings Clone() + public MassiveKnobSettings Clone() { - return new Settings + return new MassiveKnobSettings { Device = Device?.Clone(), AnalogInput = AnalogInput.Select(a => a?.Clone()).ToList(), DigitalInput = DigitalInput.Select(a => a?.Clone()).ToList(), AnalogOutput = AnalogOutput.Select(a => a?.Clone()).ToList(), - DigitalOutput = DigitalOutput.Select(a => a?.Clone()).ToList() + DigitalOutput = DigitalOutput.Select(a => a?.Clone()).ToList(), + UI = UI.Clone(), + Log = Log.Clone() }; } @@ -70,5 +101,35 @@ namespace MassiveKnob.Settings }; } } + + + public class UISettings + { + public SettingsMenuItem ActiveMenuItem { get; set; } = SettingsMenuItem.None; + + public UISettings Clone() + { + return new UISettings + { + ActiveMenuItem = ActiveMenuItem + }; + } + } + + + public class LogSettings + { + public bool Enabled { get; set; } = true; + public LogEventLevel Level { get; set; } = LogEventLevel.Information; + + public LogSettings Clone() + { + return new LogSettings + { + Enabled = Enabled, + Level = Level + }; + } + } } } diff --git a/Windows/MassiveKnob/Settings/SettingsJsonSerializer.cs b/Windows/MassiveKnob/Settings/MassiveKnobSettingsJsonSerializer.cs similarity index 78% rename from Windows/MassiveKnob/Settings/SettingsJsonSerializer.cs rename to Windows/MassiveKnob/Settings/MassiveKnobSettingsJsonSerializer.cs index 57bfd7d..88ec34c 100644 --- a/Windows/MassiveKnob/Settings/SettingsJsonSerializer.cs +++ b/Windows/MassiveKnob/Settings/MassiveKnobSettingsJsonSerializer.cs @@ -8,7 +8,7 @@ using Newtonsoft.Json.Converters; namespace MassiveKnob.Settings { - public static class SettingsJsonSerializer + public static class MassiveKnobSettingsJsonSerializer { private static readonly JsonSerializerSettings DefaultSettings = new JsonSerializerSettings { @@ -29,12 +29,12 @@ namespace MassiveKnob.Settings } - public static Task Serialize(Settings settings) + public static Task Serialize(MassiveKnobSettings settings) { return Serialize(settings, GetDefaultFilename()); } - public static async Task Serialize(Settings settings, string filename) + public static async Task Serialize(MassiveKnobSettings settings, string filename) { var json = JsonConvert.SerializeObject(settings, DefaultSettings); @@ -47,14 +47,14 @@ namespace MassiveKnob.Settings } - public static Settings Deserialize() + public static MassiveKnobSettings Deserialize() { return Deserialize(GetDefaultFilename()); } - public static Settings Deserialize(string filename) + public static MassiveKnobSettings Deserialize(string filename) { - Settings settings = null; + MassiveKnobSettings settings = null; if (File.Exists(filename)) { @@ -67,11 +67,11 @@ namespace MassiveKnob.Settings } if (!string.IsNullOrEmpty(json)) - settings = JsonConvert.DeserializeObject(json, DefaultSettings); + settings = JsonConvert.DeserializeObject(json, DefaultSettings); } if (settings == null) - settings = new Settings(); + settings = new MassiveKnobSettings(); settings.Verify(); return settings; diff --git a/Windows/MassiveKnob/Strings.Designer.cs b/Windows/MassiveKnob/Strings.Designer.cs index 3611e3b..34f5acc 100644 --- a/Windows/MassiveKnob/Strings.Designer.cs +++ b/Windows/MassiveKnob/Strings.Designer.cs @@ -22,7 +22,7 @@ namespace MassiveKnob { [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Strings { + public class Strings { private static global::System.Resources.ResourceManager resourceMan; @@ -36,7 +36,7 @@ namespace MassiveKnob { /// Returns the cached ResourceManager instance used by this class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { + public static global::System.Resources.ResourceManager ResourceManager { get { if (object.ReferenceEquals(resourceMan, null)) { global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("MassiveKnob.Strings", typeof(Strings).Assembly); @@ -51,7 +51,7 @@ namespace MassiveKnob { /// resource lookups using this strongly typed resource class. /// [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { + public static global::System.Globalization.CultureInfo Culture { get { return resourceCulture; } @@ -63,10 +63,226 @@ namespace MassiveKnob { /// /// Looks up a localized string similar to Not configured. /// - internal static string ActionNotConfigured { + public static string ActionNotConfigured { get { return ResourceManager.GetString("ActionNotConfigured", resourceCulture); } } + + /// + /// Looks up a localized string similar to Input #{0}. + /// + public static string InputHeader { + get { + return ResourceManager.GetString("InputHeader", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Enabled. + /// + public static string LoggingEnabled { + get { + return ResourceManager.GetString("LoggingEnabled", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Logging level. + /// + public static string LoggingLevel { + get { + return ResourceManager.GetString("LoggingLevel", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Error. + /// + public static string LoggingLevelError { + get { + return ResourceManager.GetString("LoggingLevelError", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Only serious errors are logged.. + /// + public static string LoggingLevelErrorDescription { + get { + return ResourceManager.GetString("LoggingLevelErrorDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Information. + /// + public static string LoggingLevelInformation { + get { + return ResourceManager.GetString("LoggingLevelInformation", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Information, warnings and errors are logged. This is the recommended level.. + /// + public static string LoggingLevelInformationDescription { + get { + return ResourceManager.GetString("LoggingLevelInformationDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Verbose. + /// + public static string LoggingLevelVerbose { + get { + return ResourceManager.GetString("LoggingLevelVerbose", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to I like big logs and I can not lie!. + /// + public static string LoggingLevelVerboseDescription { + get { + return ResourceManager.GetString("LoggingLevelVerboseDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Warning. + /// + public static string LoggingLevelWarning { + get { + return ResourceManager.GetString("LoggingLevelWarning", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Warnings and errors are logged. This includes issues with loading plugins.. + /// + public static string LoggingLevelWarningDescription { + get { + return ResourceManager.GetString("LoggingLevelWarningDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Logs are saved to {0}. + /// + public static string LoggingOutputPath { + get { + return ResourceManager.GetString("LoggingOutputPath", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Device. + /// + public static string MenuGroupDevice { + get { + return ResourceManager.GetString("MenuGroupDevice", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Settings. + /// + public static string MenuGroupSettings { + get { + return ResourceManager.GetString("MenuGroupSettings", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Analog inputs. + /// + public static string MenuItemAnalogInputs { + get { + return ResourceManager.GetString("MenuItemAnalogInputs", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Analog outputs. + /// + public static string MenuItemAnalogOutputs { + get { + return ResourceManager.GetString("MenuItemAnalogOutputs", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Device. + /// + public static string MenuItemDevice { + get { + return ResourceManager.GetString("MenuItemDevice", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Digital inputs. + /// + public static string MenuItemDigitalInputs { + get { + return ResourceManager.GetString("MenuItemDigitalInputs", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Digital outputs. + /// + public static string MenuItemDigitalOutputs { + get { + return ResourceManager.GetString("MenuItemDigitalOutputs", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Logging. + /// + public static string MenuItemLogging { + get { + return ResourceManager.GetString("MenuItemLogging", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Startup. + /// + public static string MenuItemStartup { + get { + return ResourceManager.GetString("MenuItemStartup", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Output #{0}. + /// + public static string OutputHeader { + get { + return ResourceManager.GetString("OutputHeader", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Run MassiveKnob at startup. + /// + public static string RunAtStartup { + get { + return ResourceManager.GetString("RunAtStartup", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Massive Knob - Settings. + /// + public static string SettingsWindowTitle { + get { + return ResourceManager.GetString("SettingsWindowTitle", resourceCulture); + } + } } } diff --git a/Windows/MassiveKnob/Strings.resx b/Windows/MassiveKnob/Strings.resx index 72ba0d9..bb908fd 100644 --- a/Windows/MassiveKnob/Strings.resx +++ b/Windows/MassiveKnob/Strings.resx @@ -120,4 +120,76 @@ Not configured + + Input #{0} + + + Enabled + + + Logging level + + + Error + + + Only serious errors are logged. + + + Information + + + Information, warnings and errors are logged. This is the recommended level. + + + Verbose + + + I like big logs and I can not lie! + + + Warning + + + Warnings and errors are logged. This includes issues with loading plugins. + + + Logs are saved to {0} + + + Device + + + Settings + + + Analog inputs + + + Analog outputs + + + Device + + + Digital inputs + + + Digital outputs + + + Logging + + + Startup + + + Output #{0} + + + Run MassiveKnob at startup + + + Massive Knob - Settings + \ No newline at end of file diff --git a/Windows/MassiveKnob/Style.xaml b/Windows/MassiveKnob/Style.xaml index 1553388..37a8685 100644 --- a/Windows/MassiveKnob/Style.xaml +++ b/Windows/MassiveKnob/Style.xaml @@ -1,7 +1,7 @@  + + + + \ No newline at end of file diff --git a/Windows/MassiveKnob/View/Settings/AnalogInputsView.xaml b/Windows/MassiveKnob/View/Settings/AnalogInputsView.xaml new file mode 100644 index 0000000..c2a890e --- /dev/null +++ b/Windows/MassiveKnob/View/Settings/AnalogInputsView.xaml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/Windows/MassiveKnob/View/Settings/AnalogInputsView.xaml.cs b/Windows/MassiveKnob/View/Settings/AnalogInputsView.xaml.cs new file mode 100644 index 0000000..4b0a7e4 --- /dev/null +++ b/Windows/MassiveKnob/View/Settings/AnalogInputsView.xaml.cs @@ -0,0 +1,13 @@ +namespace MassiveKnob.View.Settings +{ + /// + /// Interaction logic for AnalogInputsView.xaml + /// + public partial class AnalogInputsView + { + public AnalogInputsView() + { + InitializeComponent(); + } + } +} diff --git a/Windows/MassiveKnob/View/Settings/AnalogOutputsView.xaml b/Windows/MassiveKnob/View/Settings/AnalogOutputsView.xaml new file mode 100644 index 0000000..19e8585 --- /dev/null +++ b/Windows/MassiveKnob/View/Settings/AnalogOutputsView.xaml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Windows/MassiveKnob/View/Settings/AnalogOutputsView.xaml.cs b/Windows/MassiveKnob/View/Settings/AnalogOutputsView.xaml.cs new file mode 100644 index 0000000..b0b0d57 --- /dev/null +++ b/Windows/MassiveKnob/View/Settings/AnalogOutputsView.xaml.cs @@ -0,0 +1,13 @@ +namespace MassiveKnob.View.Settings +{ + /// + /// Interaction logic for AnalogOutputsView.xaml + /// + public partial class AnalogOutputsView + { + public AnalogOutputsView() + { + InitializeComponent(); + } + } +} diff --git a/Windows/MassiveKnob/View/Settings/DeviceView.xaml b/Windows/MassiveKnob/View/Settings/DeviceView.xaml new file mode 100644 index 0000000..c540ea7 --- /dev/null +++ b/Windows/MassiveKnob/View/Settings/DeviceView.xaml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Windows/MassiveKnob/View/Settings/DeviceView.xaml.cs b/Windows/MassiveKnob/View/Settings/DeviceView.xaml.cs new file mode 100644 index 0000000..5cfec2b --- /dev/null +++ b/Windows/MassiveKnob/View/Settings/DeviceView.xaml.cs @@ -0,0 +1,13 @@ +namespace MassiveKnob.View.Settings +{ + /// + /// Interaction logic for DeviceView.xaml + /// + public partial class DeviceView + { + public DeviceView() + { + InitializeComponent(); + } + } +} diff --git a/Windows/MassiveKnob/View/Settings/DigitalInputsView.xaml b/Windows/MassiveKnob/View/Settings/DigitalInputsView.xaml new file mode 100644 index 0000000..652fc93 --- /dev/null +++ b/Windows/MassiveKnob/View/Settings/DigitalInputsView.xaml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Windows/MassiveKnob/View/Settings/DigitalInputsView.xaml.cs b/Windows/MassiveKnob/View/Settings/DigitalInputsView.xaml.cs new file mode 100644 index 0000000..189a997 --- /dev/null +++ b/Windows/MassiveKnob/View/Settings/DigitalInputsView.xaml.cs @@ -0,0 +1,13 @@ +namespace MassiveKnob.View.Settings +{ + /// + /// Interaction logic for DigitalInputsView.xaml + /// + public partial class DigitalInputsView + { + public DigitalInputsView() + { + InitializeComponent(); + } + } +} diff --git a/Windows/MassiveKnob/View/Settings/DigitalOutputsView.xaml b/Windows/MassiveKnob/View/Settings/DigitalOutputsView.xaml new file mode 100644 index 0000000..87d67d9 --- /dev/null +++ b/Windows/MassiveKnob/View/Settings/DigitalOutputsView.xaml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Windows/MassiveKnob/View/Settings/DigitalOutputsView.xaml.cs b/Windows/MassiveKnob/View/Settings/DigitalOutputsView.xaml.cs new file mode 100644 index 0000000..61f2a1c --- /dev/null +++ b/Windows/MassiveKnob/View/Settings/DigitalOutputsView.xaml.cs @@ -0,0 +1,13 @@ +namespace MassiveKnob.View.Settings +{ + /// + /// Interaction logic for DigitalOutputsView.xaml + /// + public partial class DigitalOutputsView + { + public DigitalOutputsView() + { + InitializeComponent(); + } + } +} diff --git a/Windows/MassiveKnob/View/Settings/LoggingView.xaml b/Windows/MassiveKnob/View/Settings/LoggingView.xaml new file mode 100644 index 0000000..5a53d07 --- /dev/null +++ b/Windows/MassiveKnob/View/Settings/LoggingView.xaml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Windows/MassiveKnob/View/Settings/LoggingView.xaml.cs b/Windows/MassiveKnob/View/Settings/LoggingView.xaml.cs new file mode 100644 index 0000000..7fe2838 --- /dev/null +++ b/Windows/MassiveKnob/View/Settings/LoggingView.xaml.cs @@ -0,0 +1,13 @@ +namespace MassiveKnob.View.Settings +{ + /// + /// Interaction logic for LoggingView.xaml + /// + public partial class LoggingView + { + public LoggingView() + { + InitializeComponent(); + } + } +} diff --git a/Windows/MassiveKnob/View/Settings/StartupView.xaml b/Windows/MassiveKnob/View/Settings/StartupView.xaml new file mode 100644 index 0000000..f9ce4c2 --- /dev/null +++ b/Windows/MassiveKnob/View/Settings/StartupView.xaml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + diff --git a/Windows/MassiveKnob/View/Settings/StartupView.xaml.cs b/Windows/MassiveKnob/View/Settings/StartupView.xaml.cs new file mode 100644 index 0000000..b8ee75e --- /dev/null +++ b/Windows/MassiveKnob/View/Settings/StartupView.xaml.cs @@ -0,0 +1,13 @@ +namespace MassiveKnob.View.Settings +{ + /// + /// Interaction logic for StartupView.xaml + /// + public partial class StartupView + { + public StartupView() + { + InitializeComponent(); + } + } +} diff --git a/Windows/MassiveKnob/View/SettingsWindow.xaml b/Windows/MassiveKnob/View/SettingsWindow.xaml index f88f45d..ddc16e1 100644 --- a/Windows/MassiveKnob/View/SettingsWindow.xaml +++ b/Windows/MassiveKnob/View/SettingsWindow.xaml @@ -3,118 +3,89 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" - xmlns:helpers="clr-namespace:MassiveKnob.Helpers" xmlns:viewModel="clr-namespace:MassiveKnob.ViewModel" - xmlns:view="clr-namespace:MassiveKnob.View" + xmlns:massiveKnob="clr-namespace:MassiveKnob" + xmlns:helpers="clr-namespace:MassiveKnob.Helpers" + xmlns:settings="clr-namespace:MassiveKnob.Settings" mc:Ignorable="d" - Title="Massive Knob - Settings" Height="555" Width="704.231" + Title="{x:Static massiveKnob:Strings.SettingsWindowTitle}" Height="555" Width="800" WindowStartupLocation="CenterScreen" + ResizeMode="CanMinimize" Style="{StaticResource DefaultWindow}" - d:DataContext="{d:DesignInstance Type=viewModel:SettingsViewModel}"> + d:DataContext="{d:DesignInstance Type=viewModel:SettingsViewModelDesignTime, IsDesignTimeCreatable=True}"> + + + + + + - - - - - - + - - - + + + + + - - - - Device - - - + + + + + + + + + + + + + - + + + + - - - Analog inputs - - - - - - - - - - - - Digital inputs - - - - - - - - - - - - Analog outputs - - - - - - - - - - - - Digital outputs - - - - - - - - - - + + + + diff --git a/Windows/MassiveKnob/View/SettingsWindow.xaml.cs b/Windows/MassiveKnob/View/SettingsWindow.xaml.cs index 8d9ec31..66257fd 100644 --- a/Windows/MassiveKnob/View/SettingsWindow.xaml.cs +++ b/Windows/MassiveKnob/View/SettingsWindow.xaml.cs @@ -7,10 +7,16 @@ namespace MassiveKnob.View /// public partial class SettingsWindow { + // ReSharper disable once SuggestBaseTypeForParameter - for clarity public SettingsWindow(SettingsViewModel settingsViewModel) { DataContext = settingsViewModel; InitializeComponent(); + + Closed += (sender, args) => + { + settingsViewModel.Dispose(); + }; } } } diff --git a/Windows/MassiveKnob/ViewModel/InputOutputViewModel.cs b/Windows/MassiveKnob/ViewModel/InputOutputViewModel.cs index ceb71cb..bd81402 100644 --- a/Windows/MassiveKnob/ViewModel/InputOutputViewModel.cs +++ b/Windows/MassiveKnob/ViewModel/InputOutputViewModel.cs @@ -1,14 +1,15 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Runtime.CompilerServices; using System.Windows.Controls; -using MassiveKnob.Model; +using MassiveKnob.Core; using MassiveKnob.Plugin; namespace MassiveKnob.ViewModel { - public class InputOutputViewModel : INotifyPropertyChanged + public class InputOutputViewModel : IDisposable, INotifyPropertyChanged { private readonly IMassiveKnobOrchestrator orchestrator; private readonly MassiveKnobActionType actionType; @@ -19,9 +20,11 @@ namespace MassiveKnob.ViewModel // ReSharper disable UnusedMember.Global - used by WPF Binding - public string DisplayName => actionType == MassiveKnobActionType.OutputAnalog || actionType == MassiveKnobActionType.OutputDigital - ? $"Output #{index + 1}" - : $"Input #{index + 1}"; + public string DisplayName => string.Format( + actionType == MassiveKnobActionType.OutputAnalog || actionType == MassiveKnobActionType.OutputDigital + ? Strings.OutputHeader + : Strings.InputHeader, + index + 1); public IList Actions { get; } @@ -51,6 +54,9 @@ namespace MassiveKnob.ViewModel if (value == actionSettingsControl) return; + if (actionSettingsControl is IDisposable disposable) + disposable.Dispose(); + actionSettingsControl = value; OnPropertyChanged(); } @@ -63,6 +69,11 @@ namespace MassiveKnob.ViewModel this.orchestrator = orchestrator; this.actionType = actionType; this.index = index; + + + // For design-time support + if (orchestrator == null) + return; Actions = settingsViewModel.Actions.Where(a => a.RepresentsNull || a.Action.ActionType == actionType).ToList(); @@ -76,6 +87,13 @@ namespace MassiveKnob.ViewModel actionSettingsControl = actionInfo?.Instance.CreateSettingsControl(); } + + public void Dispose() + { + if (ActionSettingsControl is IDisposable disposable) + disposable.Dispose(); + } + public event PropertyChangedEventHandler PropertyChanged; diff --git a/Windows/MassiveKnob/ViewModel/LoggingLevelViewModel.cs b/Windows/MassiveKnob/ViewModel/LoggingLevelViewModel.cs new file mode 100644 index 0000000..f0f8959 --- /dev/null +++ b/Windows/MassiveKnob/ViewModel/LoggingLevelViewModel.cs @@ -0,0 +1,20 @@ +using Serilog.Events; + +namespace MassiveKnob.ViewModel +{ + public class LoggingLevelViewModel + { + public LogEventLevel Level { get; } + public string Name { get; } + public string Description { get; } + + + public LoggingLevelViewModel(LogEventLevel level, string name, string description) + { + Level = level; + Name = name; + Description = description; + } + } + +} diff --git a/Windows/MassiveKnob/ViewModel/MenuItemProperties.cs b/Windows/MassiveKnob/ViewModel/MenuItemProperties.cs new file mode 100644 index 0000000..e53e18b --- /dev/null +++ b/Windows/MassiveKnob/ViewModel/MenuItemProperties.cs @@ -0,0 +1,21 @@ +using System.Windows; +using System.Windows.Controls; + +namespace MassiveKnob.ViewModel +{ + public static class MenuItemProperties + { + public static string GetText(DependencyObject obj) { return (string) obj.GetValue(TextProperty); } + public static void SetText(DependencyObject obj, string value) { obj.SetValue(TextProperty, value); } + + public static readonly DependencyProperty TextProperty = + DependencyProperty.RegisterAttached("Text", typeof(string), typeof(MenuItemProperties), new FrameworkPropertyMetadata("Menu item")); + + + public static Viewbox GetIcon(DependencyObject obj) { return (Viewbox)obj.GetValue(IconProperty); } + public static void SetIcon(DependencyObject obj, Viewbox value) { obj.SetValue(IconProperty, value); } + + public static readonly DependencyProperty IconProperty = + DependencyProperty.RegisterAttached("Icon", typeof(Viewbox), typeof(MenuItemProperties), new FrameworkPropertyMetadata(null)); + } +} diff --git a/Windows/MassiveKnob/ViewModel/SettingsViewModel.cs b/Windows/MassiveKnob/ViewModel/SettingsViewModel.cs index bc7ed43..ff58946 100644 --- a/Windows/MassiveKnob/ViewModel/SettingsViewModel.cs +++ b/Windows/MassiveKnob/ViewModel/SettingsViewModel.cs @@ -1,20 +1,42 @@ using System; using System.Collections.Generic; using System.ComponentModel; +using System.Diagnostics; +using System.IO; using System.Linq; +using System.Reflection; using System.Runtime.CompilerServices; using System.Windows; using System.Windows.Controls; -using MassiveKnob.Model; +using MassiveKnob.Core; using MassiveKnob.Plugin; +using MassiveKnob.Settings; +using MassiveKnob.View.Settings; +using Microsoft.Win32; +using Serilog.Events; namespace MassiveKnob.ViewModel { - // TODO (nice to have) better design-time version - public class SettingsViewModel : INotifyPropertyChanged + public class SettingsViewModel : IDisposable, INotifyPropertyChanged { + private readonly Dictionary menuItemControls = new Dictionary + { + { SettingsMenuItem.Device, typeof(DeviceView) }, + { SettingsMenuItem.AnalogInputs, typeof(AnalogInputsView) }, + { SettingsMenuItem.DigitalInputs, typeof(DigitalInputsView) }, + { SettingsMenuItem.AnalogOutputs, typeof(AnalogOutputsView) }, + { SettingsMenuItem.DigitalOutputs, typeof(DigitalOutputsView) }, + { SettingsMenuItem.Logging, typeof(LoggingView) }, + { SettingsMenuItem.Startup, typeof(StartupView) } + }; + + + private readonly IMassiveKnobOrchestrator orchestrator; + private readonly ILoggingSwitch loggingSwitch; private DeviceViewModel selectedDevice; + private UserControl selectedView; + private SettingsMenuItem selectedMenuItem; private UserControl settingsControl; private DeviceSpecs? specs; @@ -25,10 +47,46 @@ namespace MassiveKnob.ViewModel // ReSharper disable UnusedMember.Global - used by WPF Binding + public SettingsMenuItem SelectedMenuItem + { + get => selectedMenuItem; + set + { + if (value == selectedMenuItem) + return; + + selectedMenuItem = value; + OnPropertyChanged(); + + if (menuItemControls.TryGetValue(selectedMenuItem, out var viewType)) + SelectedView = (UserControl) Activator.CreateInstance(viewType); + + orchestrator?.UpdateSettings(settings => + { + settings.UI.ActiveMenuItem = selectedMenuItem; + }); + } + } + + public UserControl SelectedView + { + get => selectedView; + set + { + if (value == selectedView) + return; + + selectedView = value; + OnPropertyChanged(); + } + } + + + public IList Devices { get; } public IList Actions { get; } - + public DeviceViewModel SelectedDevice { get => selectedDevice; @@ -38,7 +96,7 @@ namespace MassiveKnob.ViewModel return; selectedDevice = value; - var deviceInfo = orchestrator.SetActiveDevice(value?.Device); + var deviceInfo = orchestrator?.SetActiveDevice(value?.Device); OnPropertyChanged(); @@ -54,6 +112,9 @@ namespace MassiveKnob.ViewModel if (value == settingsControl) return; + if (settingsControl is IDisposable disposable) + disposable.Dispose(); + settingsControl = value; OnPropertyChanged(); } @@ -71,6 +132,11 @@ namespace MassiveKnob.ViewModel OnDependantPropertyChanged("AnalogOutputVisibility"); OnDependantPropertyChanged("DigitalOutputVisibility"); + DisposeInputOutputViewModels(AnalogInputs); + DisposeInputOutputViewModels(DigitalInputs); + DisposeInputOutputViewModels(AnalogOutputs); + DisposeInputOutputViewModels(DigitalOutputs); + AnalogInputs = Enumerable .Range(0, specs?.AnalogInputCount ?? 0) .Select(i => new InputOutputViewModel(this, orchestrator, MassiveKnobActionType.InputAnalog, i)); @@ -89,6 +155,7 @@ namespace MassiveKnob.ViewModel } } + public Visibility AnalogInputVisibility => specs.HasValue && specs.Value.AnalogInputCount > 0 ? Visibility.Visible : Visibility.Collapsed; @@ -144,13 +211,80 @@ namespace MassiveKnob.ViewModel OnPropertyChanged(); } } + + + public IList LoggingLevels { get; } + + private LoggingLevelViewModel selectedLoggingLevel; + public LoggingLevelViewModel SelectedLoggingLevel + { + get => selectedLoggingLevel; + set + { + if (value == selectedLoggingLevel) + return; + + selectedLoggingLevel = value; + OnPropertyChanged(); + + ApplyLoggingSettings(); + } + } + + + private bool loggingEnabled; + public bool LoggingEnabled + { + get => loggingEnabled; + set + { + if (value == loggingEnabled) + return; + + loggingEnabled = value; + OnPropertyChanged(); + + ApplyLoggingSettings(); + } + } + + + // TODO (code quality) do not hardcode path here + public string LoggingOutputPath { get; } = string.Format(Strings.LoggingOutputPath, Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), @"MassiveKnob", @"Logs")); + + + private bool runAtStartup; + public bool RunAtStartup + { + get => runAtStartup; + set + { + if (value == runAtStartup) + return; + + runAtStartup = value; + OnPropertyChanged(); + + ApplyRunAtStartup(); + } + } // ReSharper restore UnusedMember.Global - - public SettingsViewModel(IPluginManager pluginManager, IMassiveKnobOrchestrator orchestrator) + public SettingsViewModel(IPluginManager pluginManager, IMassiveKnobOrchestrator orchestrator, ILoggingSwitch loggingSwitch) { this.orchestrator = orchestrator; + this.loggingSwitch = loggingSwitch; + + // For design-time support + if (orchestrator == null) + return; + + var activeMenuItem = orchestrator.GetSettings().UI.ActiveMenuItem; + if (activeMenuItem == SettingsMenuItem.None) + activeMenuItem = SettingsMenuItem.Device; + + SelectedMenuItem = activeMenuItem; orchestrator.ActiveDeviceSubject.Subscribe(info => { Specs = info.Specs; }); @@ -170,12 +304,83 @@ namespace MassiveKnob.ViewModel Actions = allActions; - if (orchestrator.ActiveDevice == null) - return; + if (orchestrator.ActiveDevice != null) + { + selectedDevice = Devices.Single(d => d.Device.DeviceId == orchestrator.ActiveDevice.Info.DeviceId); + SettingsControl = orchestrator.ActiveDevice.Instance.CreateSettingsControl(); + Specs = orchestrator.ActiveDevice.Specs; + } - selectedDevice = Devices.Single(d => d.Device.DeviceId == orchestrator.ActiveDevice.Info.DeviceId); - SettingsControl = orchestrator.ActiveDevice.Instance.CreateSettingsControl(); - Specs = orchestrator.ActiveDevice.Specs; + + var logSettings = orchestrator.GetSettings().Log; + LoggingLevels = new List + { + new LoggingLevelViewModel(LogEventLevel.Error, Strings.LoggingLevelError, Strings.LoggingLevelErrorDescription), + new LoggingLevelViewModel(LogEventLevel.Warning, Strings.LoggingLevelWarning, Strings.LoggingLevelWarningDescription), + new LoggingLevelViewModel(LogEventLevel.Information, Strings.LoggingLevelInformation, Strings.LoggingLevelInformationDescription), + new LoggingLevelViewModel(LogEventLevel.Verbose, Strings.LoggingLevelVerbose, Strings.LoggingLevelVerboseDescription), + }; + + selectedLoggingLevel = LoggingLevels.SingleOrDefault(l => l.Level == logSettings.Level) + ?? LoggingLevels.Single(l => l.Level == LogEventLevel.Information); + loggingEnabled = logSettings.Enabled; + + + var runKey = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", false); + runAtStartup = runKey?.GetValue("MassiveKnob") != null; + } + + + public void Dispose() + { + if (SettingsControl is IDisposable disposable) + disposable.Dispose(); + + DisposeInputOutputViewModels(AnalogInputs); + DisposeInputOutputViewModels(DigitalInputs); + DisposeInputOutputViewModels(AnalogOutputs); + DisposeInputOutputViewModels(DigitalOutputs); + } + + + private void ApplyLoggingSettings() + { + orchestrator?.UpdateSettings(settings => + { + settings.Log.Enabled = LoggingEnabled; + settings.Log.Level = SelectedLoggingLevel.Level; + }); + + loggingSwitch?.SetLogging(LoggingEnabled, selectedLoggingLevel.Level); + } + + + private void ApplyRunAtStartup() + { + var runKey = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true); + Debug.Assert(runKey != null, nameof(runKey) + " != null"); + + if (RunAtStartup) + { + var entryAssembly = Assembly.GetEntryAssembly(); + Debug.Assert(entryAssembly != null, nameof(entryAssembly) + " != null"); + + runKey.SetValue("MassiveKnob", new Uri(entryAssembly.CodeBase).LocalPath); + } + else + { + runKey.DeleteValue("MassiveKnob", false); + } + } + + + private static void DisposeInputOutputViewModels(IEnumerable viewModels) + { + if (viewModels == null) + return; + + foreach (var viewModel in viewModels) + viewModel.Dispose(); } @@ -191,4 +396,13 @@ namespace MassiveKnob.ViewModel PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } } + + + public class SettingsViewModelDesignTime : SettingsViewModel + { + public SettingsViewModelDesignTime() : base(null, null, null) + { + Specs = new DeviceSpecs(2, 2, 2, 2); + } + } } diff --git a/Windows/min.NET b/Windows/min.NET index 6db7da6..65c76b3 160000 --- a/Windows/min.NET +++ b/Windows/min.NET @@ -1 +1 @@ -Subproject commit 6db7da6234713a50a2c278c00bcd710249738e5e +Subproject commit 65c76b3f214522dd5f1da3704b83375bf238daba From cae557e7e12588a7796ca0c42ae3b08ba71ff4c5 Mon Sep 17 00:00:00 2001 From: Mark van Renswoude Date: Sat, 6 Mar 2021 10:53:38 +0100 Subject: [PATCH 13/19] Implemented default device switching Added VoiceMeeter plugin (run macro and get status) Added Inno Setup script Added Fusion 360 files for housing designs --- .gitignore | 2 + .gitmodules | 4 + ...buttons, under desk, Arduino Pro Micro.f3d | Bin 0 -> 179148 bytes ... 3 pots, under desk, Arduino Pro Micro.f3d | Bin 0 -> 179332 bytes README.md | 45 ++-- Windows/BuildRelease.ps1 | 41 ++++ .../GetDefault/DeviceGetDefaultAction.cs | 101 +++++++++ .../DeviceGetDefaultActionSettings.cs | 12 ++ .../DeviceGetDefaultActionSettingsView.xaml | 28 +++ ...DeviceGetDefaultActionSettingsView.xaml.cs | 14 ++ ...DeviceGetDefaultActionSettingsViewModel.cs | 54 +++++ .../MassiveKnob.Plugin.CoreAudio.csproj | 23 +- .../MassiveKnobCoreAudioPlugin.cs | 8 +- .../SetDefault/DeviceSetDefaultAction.cs | 84 ++++++++ .../DeviceSetDefaultActionSettings.cs | 10 + .../DeviceSetDefaultActionSettingsView.xaml | 23 ++ ...DeviceSetDefaultActionSettingsView.xaml.cs | 14 ++ ...DeviceSetDefaultActionSettingsViewModel.cs | 41 ++++ .../Strings.Designer.cs | 90 ++++++++ .../MassiveKnob.Plugin.CoreAudio/Strings.resx | 30 +++ .../MassiveKnob.Plugin.EmulatorDevice.csproj | 2 +- .../MassiveKnob.Plugin.SerialDevice.csproj | 2 +- .../Base/BaseVoiceMeeterSettings.cs | 13 ++ .../Base/BaseVoiceMeeterSettingsView.xaml | 15 ++ .../Base/BaseVoiceMeeterSettingsView.xaml.cs | 13 ++ .../Base/BaseVoiceMeeterSettingsViewModel.cs | 84 ++++++++ .../VoiceMeeterGetParameterAction.cs | 139 ++++++++++++ .../VoiceMeeterGetParameterActionSettings.cs | 11 + ...eMeeterGetParameterActionSettingsView.xaml | 25 +++ ...eterGetParameterActionSettingsView.xaml.cs | 14 ++ ...eterGetParameterActionSettingsViewModel.cs | 54 +++++ .../IVoiceMeeterAction.cs | 7 + .../InstanceRegister.cs | 69 ++++++ .../MassiveKnob.Plugin.VoiceMeeter.csproj | 110 ++++++++++ .../MassiveKnobPlugin.json | 3 + .../MassiveKnobVoiceMeeterPlugin.cs | 23 ++ .../Properties/AssemblyInfo.cs | 36 ++++ .../RunMacro/VoiceMeeterRunMacroAction.cs | 80 +++++++ .../VoiceMeeterRunMacroActionSettings.cs | 9 + ...VoiceMeeterRunMacroActionSettingsView.xaml | 20 ++ ...ceMeeterRunMacroActionSettingsView.xaml.cs | 14 ++ ...ceMeeterRunMacroActionSettingsViewModel.cs | 29 +++ .../Strings.Designer.cs | 172 +++++++++++++++ .../Strings.resx | 157 ++++++++++++++ Windows/MassiveKnob.sln | 12 ++ Windows/MassiveKnob/Core/PluginManager.cs | 55 ++++- Windows/MassiveKnob/Resources/Analog.xaml | 2 +- Windows/MassiveKnob/Resources/Device.xaml | 2 +- Windows/MassiveKnob/Resources/Digital.xaml | 2 +- Windows/MassiveKnob/Resources/Logging.xaml | 2 +- Windows/MassiveKnob/Resources/Startup.xaml | 2 +- .../ViewModel/SettingsViewModel.cs | 2 + Windows/Setup/MassiveKnobSetup.iss | 197 ++++++++++++++++++ Windows/VoicemeeterRemote | 1 + 54 files changed, 1971 insertions(+), 31 deletions(-) create mode 100644 Hardware/Massive Knob housing - 2 pots, 2 buttons, under desk, Arduino Pro Micro.f3d create mode 100644 Hardware/Massive Knob housing - 3 pots, under desk, Arduino Pro Micro.f3d create mode 100644 Windows/BuildRelease.ps1 create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/GetDefault/DeviceGetDefaultAction.cs create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/GetDefault/DeviceGetDefaultActionSettings.cs create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/GetDefault/DeviceGetDefaultActionSettingsView.xaml create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/GetDefault/DeviceGetDefaultActionSettingsView.xaml.cs create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/GetDefault/DeviceGetDefaultActionSettingsViewModel.cs create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/SetDefault/DeviceSetDefaultAction.cs create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/SetDefault/DeviceSetDefaultActionSettings.cs create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/SetDefault/DeviceSetDefaultActionSettingsView.xaml create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/SetDefault/DeviceSetDefaultActionSettingsView.xaml.cs create mode 100644 Windows/MassiveKnob.Plugin.CoreAudio/SetDefault/DeviceSetDefaultActionSettingsViewModel.cs create mode 100644 Windows/MassiveKnob.Plugin.VoiceMeeter/Base/BaseVoiceMeeterSettings.cs create mode 100644 Windows/MassiveKnob.Plugin.VoiceMeeter/Base/BaseVoiceMeeterSettingsView.xaml create mode 100644 Windows/MassiveKnob.Plugin.VoiceMeeter/Base/BaseVoiceMeeterSettingsView.xaml.cs create mode 100644 Windows/MassiveKnob.Plugin.VoiceMeeter/Base/BaseVoiceMeeterSettingsViewModel.cs create mode 100644 Windows/MassiveKnob.Plugin.VoiceMeeter/GetParameter/VoiceMeeterGetParameterAction.cs create mode 100644 Windows/MassiveKnob.Plugin.VoiceMeeter/GetParameter/VoiceMeeterGetParameterActionSettings.cs create mode 100644 Windows/MassiveKnob.Plugin.VoiceMeeter/GetParameter/VoiceMeeterGetParameterActionSettingsView.xaml create mode 100644 Windows/MassiveKnob.Plugin.VoiceMeeter/GetParameter/VoiceMeeterGetParameterActionSettingsView.xaml.cs create mode 100644 Windows/MassiveKnob.Plugin.VoiceMeeter/GetParameter/VoiceMeeterGetParameterActionSettingsViewModel.cs create mode 100644 Windows/MassiveKnob.Plugin.VoiceMeeter/IVoiceMeeterAction.cs create mode 100644 Windows/MassiveKnob.Plugin.VoiceMeeter/InstanceRegister.cs create mode 100644 Windows/MassiveKnob.Plugin.VoiceMeeter/MassiveKnob.Plugin.VoiceMeeter.csproj create mode 100644 Windows/MassiveKnob.Plugin.VoiceMeeter/MassiveKnobPlugin.json create mode 100644 Windows/MassiveKnob.Plugin.VoiceMeeter/MassiveKnobVoiceMeeterPlugin.cs create mode 100644 Windows/MassiveKnob.Plugin.VoiceMeeter/Properties/AssemblyInfo.cs create mode 100644 Windows/MassiveKnob.Plugin.VoiceMeeter/RunMacro/VoiceMeeterRunMacroAction.cs create mode 100644 Windows/MassiveKnob.Plugin.VoiceMeeter/RunMacro/VoiceMeeterRunMacroActionSettings.cs create mode 100644 Windows/MassiveKnob.Plugin.VoiceMeeter/RunMacro/VoiceMeeterRunMacroActionSettingsView.xaml create mode 100644 Windows/MassiveKnob.Plugin.VoiceMeeter/RunMacro/VoiceMeeterRunMacroActionSettingsView.xaml.cs create mode 100644 Windows/MassiveKnob.Plugin.VoiceMeeter/RunMacro/VoiceMeeterRunMacroActionSettingsViewModel.cs create mode 100644 Windows/MassiveKnob.Plugin.VoiceMeeter/Strings.Designer.cs create mode 100644 Windows/MassiveKnob.Plugin.VoiceMeeter/Strings.resx create mode 100644 Windows/Setup/MassiveKnobSetup.iss create mode 160000 Windows/VoicemeeterRemote diff --git a/.gitignore b/.gitignore index 74d1994..c6fe696 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,7 @@ .vs/ bin/ obj/ +Windows/packages/ +Windows/Release/ *.user \ No newline at end of file diff --git a/.gitmodules b/.gitmodules index 7ccb927..ef386cb 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,7 @@ [submodule "Windows/min.NET"] path = Windows/min.NET url = https://github.com/MvRens/min.NET + +[submodule "Windows/VoicemeeterRemote"] + path = Windows/VoicemeeterRemote + url = https://github.com/MvRens/VoicemeeterRemote diff --git a/Hardware/Massive Knob housing - 2 pots, 2 buttons, under desk, Arduino Pro Micro.f3d b/Hardware/Massive Knob housing - 2 pots, 2 buttons, under desk, Arduino Pro Micro.f3d new file mode 100644 index 0000000000000000000000000000000000000000..fafd68c608083264ba40de41838de7991b0f3670 GIT binary patch literal 179148 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

    j5kRH@WK|xM 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 + ApplySettings(); + } + + + public void Dispose() + { + deviceChanged?.Dispose(); + } + + + private void ApplySettings() + { + if (playbackDevice != null && playbackDevice.Id == settings.DeviceId) + return; + + var coreAudioController = CoreAudioControllerInstance.Acquire(); + playbackDevice = settings.DeviceId.HasValue ? coreAudioController.GetDevice(settings.DeviceId.Value) : null; + + deviceChanged?.Dispose(); + deviceChanged = playbackDevice?.PropertyChanged.Subscribe(PropertyChanged); + + CheckActive(); + } + + + public UserControl CreateSettingsControl() + { + var viewModel = new DeviceGetDefaultActionSettingsViewModel(settings); + viewModel.PropertyChanged += (sender, args) => + { + if (!viewModel.IsSettingsProperty(args.PropertyName)) + return; + + actionContext.SetSettings(settings); + ApplySettings(); + }; + + return new DeviceGetDefaultActionSettingsView(viewModel); + } + + + private void PropertyChanged(DevicePropertyChangedArgs args) + { + if (args.ChangedType != DeviceChangedType.DefaultChanged) + return; + + CheckActive(); + + // TODO default OSD + //if (settings.OSD) + //OSDManager.Show(args.Device); + } + + + private void CheckActive() + { + if (playbackDevice == null) + return; + + var isDefault = (settings.Playback && playbackDevice.IsDefaultDevice) || + (settings.Communications && playbackDevice.IsDefaultCommunicationsDevice); + + actionContext.SetDigitalOutput(settings.Inverted ? !isDefault : isDefault); + } + } + } +} diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/GetDefault/DeviceGetDefaultActionSettings.cs b/Windows/MassiveKnob.Plugin.CoreAudio/GetDefault/DeviceGetDefaultActionSettings.cs new file mode 100644 index 0000000..7ff2ea4 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/GetDefault/DeviceGetDefaultActionSettings.cs @@ -0,0 +1,12 @@ +using MassiveKnob.Plugin.CoreAudio.Base; + +namespace MassiveKnob.Plugin.CoreAudio.GetDefault +{ + public class DeviceGetDefaultActionSettings : BaseDeviceSettings + { + public bool Playback { get; set; } = true; + public bool Communications { get; set; } = true; + + public bool Inverted { get; set; } + } +} diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/GetDefault/DeviceGetDefaultActionSettingsView.xaml b/Windows/MassiveKnob.Plugin.CoreAudio/GetDefault/DeviceGetDefaultActionSettingsView.xaml new file mode 100644 index 0000000..257cd89 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/GetDefault/DeviceGetDefaultActionSettingsView.xaml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/GetDefault/DeviceGetDefaultActionSettingsView.xaml.cs b/Windows/MassiveKnob.Plugin.CoreAudio/GetDefault/DeviceGetDefaultActionSettingsView.xaml.cs new file mode 100644 index 0000000..47aa19b --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/GetDefault/DeviceGetDefaultActionSettingsView.xaml.cs @@ -0,0 +1,14 @@ +namespace MassiveKnob.Plugin.CoreAudio.GetDefault +{ + ///

    + /// Interaction logic for DeviceGetDefaultActionSettingsView.xaml + /// + public partial class DeviceGetDefaultActionSettingsView + { + public DeviceGetDefaultActionSettingsView(DeviceGetDefaultActionSettingsViewModel viewModel) + { + DataContext = viewModel; + InitializeComponent(); + } + } +} \ No newline at end of file diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/GetDefault/DeviceGetDefaultActionSettingsViewModel.cs b/Windows/MassiveKnob.Plugin.CoreAudio/GetDefault/DeviceGetDefaultActionSettingsViewModel.cs new file mode 100644 index 0000000..98018eb --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/GetDefault/DeviceGetDefaultActionSettingsViewModel.cs @@ -0,0 +1,54 @@ +using MassiveKnob.Plugin.CoreAudio.Base; + +namespace MassiveKnob.Plugin.CoreAudio.GetDefault +{ + public class DeviceGetDefaultActionSettingsViewModel : BaseDeviceSettingsViewModel + { + // ReSharper disable UnusedMember.Global - used by WPF Binding + public bool Playback + { + get => Settings.Playback; + set + { + if (value == Settings.Playback) + return; + + Settings.Playback = value; + OnPropertyChanged(); + } + } + + public bool Communications + { + get => Settings.Communications; + set + { + if (value == Settings.Communications) + return; + + Settings.Communications = value; + OnPropertyChanged(); + } + } + + public bool Inverted + { + get => Settings.Inverted; + set + { + if (value == Settings.Inverted) + return; + + Settings.Inverted = value; + OnPropertyChanged(); + } + } + // ReSharper restore UnusedMember.Global + + + // ReSharper disable once SuggestBaseTypeForParameter - by design + public DeviceGetDefaultActionSettingsViewModel(DeviceGetDefaultActionSettings settings) : base(settings) + { + } + } +} diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/MassiveKnob.Plugin.CoreAudio.csproj b/Windows/MassiveKnob.Plugin.CoreAudio/MassiveKnob.Plugin.CoreAudio.csproj index 1cab7bc..802bfcb 100644 --- a/Windows/MassiveKnob.Plugin.CoreAudio/MassiveKnob.Plugin.CoreAudio.csproj +++ b/Windows/MassiveKnob.Plugin.CoreAudio/MassiveKnob.Plugin.CoreAudio.csproj @@ -17,7 +17,7 @@ true full false - $(localappdata)\MassiveKnob\Plugins\CoreAudio\ + bin\Debug\ DEBUG;TRACE prompt 4 @@ -49,6 +49,12 @@ BaseDeviceSettingsView.xaml + + + + DeviceGetDefaultActionSettingsView.xaml + + @@ -61,6 +67,12 @@ + + + + DeviceSetDefaultActionSettingsView.xaml + + @@ -120,6 +132,10 @@ Designer MSBuild:Compile + + MSBuild:Compile + Designer + MSBuild:Compile Designer @@ -136,6 +152,10 @@ MSBuild:Compile Designer + + MSBuild:Compile + Designer + MSBuild:Compile Designer @@ -150,5 +170,6 @@ Always + \ No newline at end of file diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/MassiveKnobCoreAudioPlugin.cs b/Windows/MassiveKnob.Plugin.CoreAudio/MassiveKnobCoreAudioPlugin.cs index 35267ed..5896fd1 100644 --- a/Windows/MassiveKnob.Plugin.CoreAudio/MassiveKnobCoreAudioPlugin.cs +++ b/Windows/MassiveKnob.Plugin.CoreAudio/MassiveKnobCoreAudioPlugin.cs @@ -1,8 +1,10 @@ using System; using System.Collections.Generic; using System.Threading.Tasks; +using MassiveKnob.Plugin.CoreAudio.GetDefault; using MassiveKnob.Plugin.CoreAudio.GetMuted; using MassiveKnob.Plugin.CoreAudio.GetVolume; +using MassiveKnob.Plugin.CoreAudio.SetDefault; using MassiveKnob.Plugin.CoreAudio.SetMuted; using MassiveKnob.Plugin.CoreAudio.SetVolume; @@ -21,8 +23,12 @@ namespace MassiveKnob.Plugin.CoreAudio { new DeviceSetVolumeAction(), new DeviceGetVolumeAction(), + new DeviceSetMutedAction(), - new DeviceGetMutedAction() + new DeviceGetMutedAction(), + + new DeviceSetDefaultAction(), + new DeviceGetDefaultAction() }; diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/SetDefault/DeviceSetDefaultAction.cs b/Windows/MassiveKnob.Plugin.CoreAudio/SetDefault/DeviceSetDefaultAction.cs new file mode 100644 index 0000000..4026741 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/SetDefault/DeviceSetDefaultAction.cs @@ -0,0 +1,84 @@ +using System; +using System.Threading.Tasks; +using System.Windows.Controls; +using AudioSwitcher.AudioApi; +using Microsoft.Extensions.Logging; + +namespace MassiveKnob.Plugin.CoreAudio.SetDefault +{ + public class DeviceSetDefaultAction : IMassiveKnobAction + { + public Guid ActionId { get; } = new Guid("b76f1eb7-2419-42b4-9de4-9bfe6f65a841"); + public MassiveKnobActionType ActionType { get; } = MassiveKnobActionType.InputDigital; + public string Name { get; } = Strings.SetDefaultName; + public string Description { get; } = Strings.SetDefaultDescription; + + + public IMassiveKnobActionInstance Create(ILogger logger) + { + return new Instance(); + } + + + private class Instance : IMassiveKnobDigitalAction + { + private IMassiveKnobActionContext actionContext; + private DeviceSetDefaultActionSettings settings; + private IDevice playbackDevice; + + + public void Initialize(IMassiveKnobActionContext context) + { + actionContext = context; + settings = context.GetSettings(); + ApplySettings(); + } + + + public void Dispose() + { + } + + + private void ApplySettings() + { + var coreAudioController = CoreAudioControllerInstance.Acquire(); + playbackDevice = settings.DeviceId.HasValue ? coreAudioController.GetDevice(settings.DeviceId.Value) : null; + } + + + public UserControl CreateSettingsControl() + { + var viewModel = new DeviceSetDefaultActionSettingsViewModel(settings); + viewModel.PropertyChanged += (sender, args) => + { + if (!viewModel.IsSettingsProperty(args.PropertyName)) + return; + + actionContext.SetSettings(settings); + ApplySettings(); + }; + + return new DeviceSetDefaultActionSettingsView(viewModel); + } + + + public async ValueTask DigitalChanged(bool on) + { + if (playbackDevice == null || !on) + return; + + if (settings.Playback) + await playbackDevice.SetAsDefaultAsync(); + + if (settings.Communications) + await playbackDevice.SetAsDefaultCommunicationsAsync(); + + + // TODO OSD for default device + //if (settings.OSD) + //OSDManager.Show(playbackDevice); + } + } + } +} diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/SetDefault/DeviceSetDefaultActionSettings.cs b/Windows/MassiveKnob.Plugin.CoreAudio/SetDefault/DeviceSetDefaultActionSettings.cs new file mode 100644 index 0000000..1c92c00 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/SetDefault/DeviceSetDefaultActionSettings.cs @@ -0,0 +1,10 @@ +using MassiveKnob.Plugin.CoreAudio.Base; + +namespace MassiveKnob.Plugin.CoreAudio.SetDefault +{ + public class DeviceSetDefaultActionSettings : BaseDeviceSettings + { + public bool Playback { get; set; } = true; + public bool Communications { get; set; } = true; + } +} diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/SetDefault/DeviceSetDefaultActionSettingsView.xaml b/Windows/MassiveKnob.Plugin.CoreAudio/SetDefault/DeviceSetDefaultActionSettingsView.xaml new file mode 100644 index 0000000..bbf2c9a --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/SetDefault/DeviceSetDefaultActionSettingsView.xaml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/SetDefault/DeviceSetDefaultActionSettingsView.xaml.cs b/Windows/MassiveKnob.Plugin.CoreAudio/SetDefault/DeviceSetDefaultActionSettingsView.xaml.cs new file mode 100644 index 0000000..4a12a89 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/SetDefault/DeviceSetDefaultActionSettingsView.xaml.cs @@ -0,0 +1,14 @@ +namespace MassiveKnob.Plugin.CoreAudio.SetDefault +{ + /// + /// Interaction logic for DeviceSetDefaultActionSettingsView.xaml + /// + public partial class DeviceSetDefaultActionSettingsView + { + public DeviceSetDefaultActionSettingsView(DeviceSetDefaultActionSettingsViewModel viewModel) + { + DataContext = viewModel; + InitializeComponent(); + } + } +} diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/SetDefault/DeviceSetDefaultActionSettingsViewModel.cs b/Windows/MassiveKnob.Plugin.CoreAudio/SetDefault/DeviceSetDefaultActionSettingsViewModel.cs new file mode 100644 index 0000000..be7cc94 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.CoreAudio/SetDefault/DeviceSetDefaultActionSettingsViewModel.cs @@ -0,0 +1,41 @@ +using MassiveKnob.Plugin.CoreAudio.Base; + +namespace MassiveKnob.Plugin.CoreAudio.SetDefault +{ + public class DeviceSetDefaultActionSettingsViewModel : BaseDeviceSettingsViewModel + { + // ReSharper disable UnusedMember.Global - used by WPF Binding + public bool Playback + { + get => Settings.Playback; + set + { + if (value == Settings.Playback) + return; + + Settings.Playback = value; + OnPropertyChanged(); + } + } + + public bool Communications + { + get => Settings.Communications; + set + { + if (value == Settings.Communications) + return; + + Settings.Communications = value; + OnPropertyChanged(); + } + } + // ReSharper restore UnusedMember.Global + + + // ReSharper disable once SuggestBaseTypeForParameter - by design + public DeviceSetDefaultActionSettingsViewModel(DeviceSetDefaultActionSettings settings) : base(settings) + { + } + } +} diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/Strings.Designer.cs b/Windows/MassiveKnob.Plugin.CoreAudio/Strings.Designer.cs index e855eab..22fb5fc 100644 --- a/Windows/MassiveKnob.Plugin.CoreAudio/Strings.Designer.cs +++ b/Windows/MassiveKnob.Plugin.CoreAudio/Strings.Designer.cs @@ -105,6 +105,24 @@ namespace MassiveKnob.Plugin.CoreAudio { } } + /// + /// Looks up a localized string similar to Sets the digital output depending on whether the selected device is the active playback or communications device.. + /// + public static string GetDefaultDescription { + get { + return ResourceManager.GetString("GetDefaultDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Is default device. + /// + public static string GetDefaultName { + get { + return ResourceManager.GetString("GetDefaultName", resourceCulture); + } + } + /// /// Looks up a localized string similar to Sets the digital output to the muted state for the selected device, regardless of the current default device.. /// @@ -159,6 +177,24 @@ namespace MassiveKnob.Plugin.CoreAudio { } } + /// + /// Looks up a localized string similar to Changes the default playback and/or communications device when the input turns on.. + /// + public static string SetDefaultDescription { + get { + return ResourceManager.GetString("SetDefaultDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Set default device. + /// + public static string SetDefaultName { + get { + return ResourceManager.GetString("SetDefaultName", resourceCulture); + } + } + /// /// Looks up a localized string similar to Toggles the muted state for the selected device, regardless of the current default device.. /// @@ -177,6 +213,42 @@ namespace MassiveKnob.Plugin.CoreAudio { } } + /// + /// Looks up a localized string similar to is the default communications device. + /// + public static string SettingGetDefaultCommunications { + get { + return ResourceManager.GetString("SettingGetDefaultCommunications", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Inverted (off when the device is the default). + /// + public static string SettingGetDefaultInverted { + get { + return ResourceManager.GetString("SettingGetDefaultInverted", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to is the default playback device. + /// + public static string SettingGetDefaultPlayback { + get { + return ResourceManager.GetString("SettingGetDefaultPlayback", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Turn on when the selected device. + /// + public static string SettingGetDefaultWhen { + get { + return ResourceManager.GetString("SettingGetDefaultWhen", resourceCulture); + } + } + /// /// Looks up a localized string similar to Inverted (off when muted). /// @@ -204,6 +276,24 @@ namespace MassiveKnob.Plugin.CoreAudio { } } + /// + /// Looks up a localized string similar to Set as the default communications device. + /// + public static string SettingSetDefaultCommunications { + get { + return ResourceManager.GetString("SettingSetDefaultCommunications", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Set as the default playback device. + /// + public static string SettingSetDefaultPlayback { + get { + return ResourceManager.GetString("SettingSetDefaultPlayback", resourceCulture); + } + } + /// /// Looks up a localized string similar to Inverted (muted when off). /// diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/Strings.resx b/Windows/MassiveKnob.Plugin.CoreAudio/Strings.resx index 1339126..9ba8dfb 100644 --- a/Windows/MassiveKnob.Plugin.CoreAudio/Strings.resx +++ b/Windows/MassiveKnob.Plugin.CoreAudio/Strings.resx @@ -132,6 +132,12 @@ {0} (Unplugged) + + Sets the digital output depending on whether the selected device is the active playback or communications device. + + + Is default device + Sets the digital output to the muted state for the selected device, regardless of the current default device. @@ -150,12 +156,30 @@ Windows Core Audio + + Changes the default playback and/or communications device when the input turns on. + + + Set default device + Toggles the muted state for the selected device, regardless of the current default device. Mute / unmute + + is the default communications device + + + Inverted (off when the device is the default) + + + is the default playback device + + + Turn on when the selected device + Inverted (off when muted) @@ -165,6 +189,12 @@ Playback device + + Set as the default communications device + + + Set as the default playback device + Inverted (muted when off) diff --git a/Windows/MassiveKnob.Plugin.EmulatorDevice/MassiveKnob.Plugin.EmulatorDevice.csproj b/Windows/MassiveKnob.Plugin.EmulatorDevice/MassiveKnob.Plugin.EmulatorDevice.csproj index 92e4d38..a83d3e4 100644 --- a/Windows/MassiveKnob.Plugin.EmulatorDevice/MassiveKnob.Plugin.EmulatorDevice.csproj +++ b/Windows/MassiveKnob.Plugin.EmulatorDevice/MassiveKnob.Plugin.EmulatorDevice.csproj @@ -17,7 +17,7 @@ true full false - $(localappdata)\MassiveKnob\Plugins\EmulatorDevice\ + bin\Debug\ DEBUG;TRACE prompt 4 diff --git a/Windows/MassiveKnob.Plugin.SerialDevice/MassiveKnob.Plugin.SerialDevice.csproj b/Windows/MassiveKnob.Plugin.SerialDevice/MassiveKnob.Plugin.SerialDevice.csproj index 17e0d9f..8de965f 100644 --- a/Windows/MassiveKnob.Plugin.SerialDevice/MassiveKnob.Plugin.SerialDevice.csproj +++ b/Windows/MassiveKnob.Plugin.SerialDevice/MassiveKnob.Plugin.SerialDevice.csproj @@ -17,7 +17,7 @@ true full false - $(localappdata)\MassiveKnob\Plugins\SerialDevice\ + bin\Debug\ DEBUG;TRACE prompt 4 diff --git a/Windows/MassiveKnob.Plugin.VoiceMeeter/Base/BaseVoiceMeeterSettings.cs b/Windows/MassiveKnob.Plugin.VoiceMeeter/Base/BaseVoiceMeeterSettings.cs new file mode 100644 index 0000000..f5c9273 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.VoiceMeeter/Base/BaseVoiceMeeterSettings.cs @@ -0,0 +1,13 @@ +using Voicemeeter; + +namespace MassiveKnob.Plugin.VoiceMeeter.Base +{ + public class BaseVoiceMeeterSettings + { + public RunVoicemeeterParam Version + { + get => InstanceRegister.Version; + set => InstanceRegister.Version = value; + } + } +} diff --git a/Windows/MassiveKnob.Plugin.VoiceMeeter/Base/BaseVoiceMeeterSettingsView.xaml b/Windows/MassiveKnob.Plugin.VoiceMeeter/Base/BaseVoiceMeeterSettingsView.xaml new file mode 100644 index 0000000..279f21e --- /dev/null +++ b/Windows/MassiveKnob.Plugin.VoiceMeeter/Base/BaseVoiceMeeterSettingsView.xaml @@ -0,0 +1,15 @@ + + + + + + diff --git a/Windows/MassiveKnob.Plugin.VoiceMeeter/Base/BaseVoiceMeeterSettingsView.xaml.cs b/Windows/MassiveKnob.Plugin.VoiceMeeter/Base/BaseVoiceMeeterSettingsView.xaml.cs new file mode 100644 index 0000000..31f0dc4 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.VoiceMeeter/Base/BaseVoiceMeeterSettingsView.xaml.cs @@ -0,0 +1,13 @@ +namespace MassiveKnob.Plugin.VoiceMeeter.Base +{ + /// + /// Interaction logic for BaseVoiceMeeterSettingsView.xaml + /// + public partial class BaseVoiceMeeterSettingsView + { + public BaseVoiceMeeterSettingsView() + { + InitializeComponent(); + } + } +} diff --git a/Windows/MassiveKnob.Plugin.VoiceMeeter/Base/BaseVoiceMeeterSettingsViewModel.cs b/Windows/MassiveKnob.Plugin.VoiceMeeter/Base/BaseVoiceMeeterSettingsViewModel.cs new file mode 100644 index 0000000..d3bf795 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.VoiceMeeter/Base/BaseVoiceMeeterSettingsViewModel.cs @@ -0,0 +1,84 @@ +using System.Collections.Generic; +using System.ComponentModel; +using System.Runtime.CompilerServices; +using Voicemeeter; + +namespace MassiveKnob.Plugin.VoiceMeeter.Base +{ + public class BaseVoiceMeeterSettingsViewModel : BaseVoiceMeeterSettingsViewModel where T : BaseVoiceMeeterSettings + { + protected new T Settings => (T)base.Settings; + + public BaseVoiceMeeterSettingsViewModel(T settings) : base(settings) + { + } + } + + + + public class BaseVoiceMeeterSettingsViewModel : INotifyPropertyChanged + { + protected readonly BaseVoiceMeeterSettings Settings; + public event PropertyChangedEventHandler PropertyChanged; + + // ReSharper disable UnusedMember.Global - used by WPF Binding + public IList Versions { get; } + + private VoiceMeeterVersionViewModel selectedVersion; + public VoiceMeeterVersionViewModel SelectedVersion + { + get => selectedVersion; + set + { + if (value == selectedVersion) + return; + + selectedVersion = value; + OnPropertyChanged(); + + Settings.Version = value?.Version ?? RunVoicemeeterParam.None; + } + } + // ReSharper restore UnusedMember.Global + + + public BaseVoiceMeeterSettingsViewModel(BaseVoiceMeeterSettings settings) + { + Settings = settings; + + Versions = new List + { + new VoiceMeeterVersionViewModel(RunVoicemeeterParam.Voicemeeter, "VoiceMeeter Standard"), + new VoiceMeeterVersionViewModel(RunVoicemeeterParam.VoicemeeterBanana, "VoiceMeeter Banana"), + new VoiceMeeterVersionViewModel(RunVoicemeeterParam.VoicemeeterPotato, "VoiceMeeter Potato") + }; + } + + + public virtual bool IsSettingsProperty(string propertyName) + { + // SelectedVersion already trigger a VoiceMeeterVersionChanged for all instances, + // which causes the settings to be stored + return propertyName != nameof(Versions) && propertyName != nameof(SelectedVersion); + } + + + protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } + } + + public class VoiceMeeterVersionViewModel + { + public RunVoicemeeterParam Version { get; } + public string DisplayName { get; } + + + public VoiceMeeterVersionViewModel(RunVoicemeeterParam version, string displayName) + { + Version = version; + DisplayName = displayName; + } + } +} diff --git a/Windows/MassiveKnob.Plugin.VoiceMeeter/GetParameter/VoiceMeeterGetParameterAction.cs b/Windows/MassiveKnob.Plugin.VoiceMeeter/GetParameter/VoiceMeeterGetParameterAction.cs new file mode 100644 index 0000000..afbec34 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.VoiceMeeter/GetParameter/VoiceMeeterGetParameterAction.cs @@ -0,0 +1,139 @@ +using System; +using System.Threading.Tasks; +using System.Windows.Controls; +using Microsoft.Extensions.Logging; +using Voicemeeter; + +namespace MassiveKnob.Plugin.VoiceMeeter.GetParameter +{ + public class VoiceMeeterGetParameterAction : IMassiveKnobAction + { + public Guid ActionId { get; } = new Guid("4904fffb-aaec-4f19-88bb-49f6ed38c3ec"); + public MassiveKnobActionType ActionType { get; } = MassiveKnobActionType.OutputDigital; + public string Name { get; } = Strings.GetParameterName; + public string Description { get; } = Strings.GetParameterDescription; + + + public IMassiveKnobActionInstance Create(ILogger logger) + { + return new Instance(); + } + + + private class Instance : IMassiveKnobActionInstance, IVoiceMeeterAction + { + private IMassiveKnobActionContext actionContext; + private VoiceMeeterGetParameterActionSettings settings; + private Parameters parameters; + private IDisposable parameterChanged; + + + public void Initialize(IMassiveKnobActionContext context) + { + actionContext = context; + settings = context.GetSettings(); + ApplySettings(); + + InstanceRegister.Register(this); + } + + + public void Dispose() + { + InstanceRegister.Unregister(this); + parameterChanged?.Dispose(); + parameters?.Dispose(); + } + + + private void ApplySettings() + { + if (InstanceRegister.Version == RunVoicemeeterParam.None) + return; + + if (parameters == null) + parameters = new Parameters(); + + if (string.IsNullOrEmpty(settings.Parameter)) + { + parameterChanged?.Dispose(); + parameterChanged = null; + } + + if (parameterChanged == null) + parameterChanged = parameters.Subscribe(x => ParametersChanged()); + + // TODO directly update output depending on value + /* + if (playbackDevice != null) + actionContext.SetDigitalOutput(settings.Inverted ? !playbackDevice.IsMuted : playbackDevice.IsMuted); + */ + } + + + public UserControl CreateSettingsControl() + { + var viewModel = new VoiceMeeterGetParameterActionSettingsViewModel(settings); + viewModel.PropertyChanged += (sender, args) => + { + if (!viewModel.IsSettingsProperty(args.PropertyName)) + return; + + actionContext.SetSettings(settings); + ApplySettings(); + }; + + return new VoiceMeeterGetParameterActionSettingsView(viewModel); + } + + + public void VoiceMeeterVersionChanged() + { + // TODO update viewModel + // TODO reset parameterChanged subscription + + actionContext.SetSettings(settings); + } + + + private void ParametersChanged() + { + if (InstanceRegister.Version == RunVoicemeeterParam.None || string.IsNullOrEmpty(settings.Parameter)) + return; + + // TODO if another task is already running, wait / chain + // TODO only start task if not yet initialized + Task.Run(async () => + { + await InstanceRegister.InitializeVoicemeeter(); + bool on; + + if (float.TryParse(settings.Value, out var settingsFloatValue)) + { + try + { + // Even on/off values are returned as floating point "1.000" in text form, + // so try to compare in native format first + var floatValue = global::VoiceMeeter.Remote.GetParameter(settings.Parameter); + on = Math.Abs(settingsFloatValue - floatValue) < 0.001; + } + catch + { + // Fall back to text comparison + var value = global::VoiceMeeter.Remote.GetTextParameter(settings.Parameter); + on = string.Equals(value, settings.Value, StringComparison.InvariantCultureIgnoreCase); + } + } + else + { + var value = global::VoiceMeeter.Remote.GetTextParameter(settings.Parameter); + on = string.Equals(value, settings.Value, StringComparison.InvariantCultureIgnoreCase); + } + + // TODO check specific parameter for changes, not just any parameter + actionContext.SetDigitalOutput(settings.Inverted ? !on : on); + }); + } + } + } +} diff --git a/Windows/MassiveKnob.Plugin.VoiceMeeter/GetParameter/VoiceMeeterGetParameterActionSettings.cs b/Windows/MassiveKnob.Plugin.VoiceMeeter/GetParameter/VoiceMeeterGetParameterActionSettings.cs new file mode 100644 index 0000000..54919df --- /dev/null +++ b/Windows/MassiveKnob.Plugin.VoiceMeeter/GetParameter/VoiceMeeterGetParameterActionSettings.cs @@ -0,0 +1,11 @@ +using MassiveKnob.Plugin.VoiceMeeter.Base; + +namespace MassiveKnob.Plugin.VoiceMeeter.GetParameter +{ + public class VoiceMeeterGetParameterActionSettings : BaseVoiceMeeterSettings + { + public string Parameter { get; set; } + public string Value { get; set; } + public bool Inverted { get; set; } + } +} diff --git a/Windows/MassiveKnob.Plugin.VoiceMeeter/GetParameter/VoiceMeeterGetParameterActionSettingsView.xaml b/Windows/MassiveKnob.Plugin.VoiceMeeter/GetParameter/VoiceMeeterGetParameterActionSettingsView.xaml new file mode 100644 index 0000000..fa6b5e0 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.VoiceMeeter/GetParameter/VoiceMeeterGetParameterActionSettingsView.xaml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + diff --git a/Windows/MassiveKnob.Plugin.VoiceMeeter/GetParameter/VoiceMeeterGetParameterActionSettingsView.xaml.cs b/Windows/MassiveKnob.Plugin.VoiceMeeter/GetParameter/VoiceMeeterGetParameterActionSettingsView.xaml.cs new file mode 100644 index 0000000..c62f2d9 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.VoiceMeeter/GetParameter/VoiceMeeterGetParameterActionSettingsView.xaml.cs @@ -0,0 +1,14 @@ +namespace MassiveKnob.Plugin.VoiceMeeter.GetParameter +{ + /// + /// Interaction logic for VoiceMeeterGetParameterActionSettingsView.xaml + /// + public partial class VoiceMeeterGetParameterActionSettingsView + { + public VoiceMeeterGetParameterActionSettingsView(VoiceMeeterGetParameterActionSettingsViewModel viewModel) + { + DataContext = viewModel; + InitializeComponent(); + } + } +} \ No newline at end of file diff --git a/Windows/MassiveKnob.Plugin.VoiceMeeter/GetParameter/VoiceMeeterGetParameterActionSettingsViewModel.cs b/Windows/MassiveKnob.Plugin.VoiceMeeter/GetParameter/VoiceMeeterGetParameterActionSettingsViewModel.cs new file mode 100644 index 0000000..2959ff0 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.VoiceMeeter/GetParameter/VoiceMeeterGetParameterActionSettingsViewModel.cs @@ -0,0 +1,54 @@ +using MassiveKnob.Plugin.VoiceMeeter.Base; + +namespace MassiveKnob.Plugin.VoiceMeeter.GetParameter +{ + public class VoiceMeeterGetParameterActionSettingsViewModel : BaseVoiceMeeterSettingsViewModel + { + // ReSharper disable UnusedMember.Global - used by WPF Binding + public string Parameter + { + get => Settings.Parameter; + set + { + if (value == Settings.Parameter) + return; + + Settings.Parameter = value; + OnPropertyChanged(); + } + } + + public string Value + { + get => Settings.Value; + set + { + if (value == Settings.Value) + return; + + Settings.Value = value; + OnPropertyChanged(); + } + } + + public bool Inverted + { + get => Settings.Inverted; + set + { + if (value == Settings.Inverted) + return; + + Settings.Inverted = value; + OnPropertyChanged(); + } + } + // ReSharper restore UnusedMember.Global + + + // ReSharper disable once SuggestBaseTypeForParameter - by design + public VoiceMeeterGetParameterActionSettingsViewModel(VoiceMeeterGetParameterActionSettings settings) : base(settings) + { + } + } +} diff --git a/Windows/MassiveKnob.Plugin.VoiceMeeter/IVoiceMeeterAction.cs b/Windows/MassiveKnob.Plugin.VoiceMeeter/IVoiceMeeterAction.cs new file mode 100644 index 0000000..48f7419 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.VoiceMeeter/IVoiceMeeterAction.cs @@ -0,0 +1,7 @@ +namespace MassiveKnob.Plugin.VoiceMeeter +{ + public interface IVoiceMeeterAction + { + void VoiceMeeterVersionChanged(); + } +} diff --git a/Windows/MassiveKnob.Plugin.VoiceMeeter/InstanceRegister.cs b/Windows/MassiveKnob.Plugin.VoiceMeeter/InstanceRegister.cs new file mode 100644 index 0000000..e04e945 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.VoiceMeeter/InstanceRegister.cs @@ -0,0 +1,69 @@ +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using Voicemeeter; + +namespace MassiveKnob.Plugin.VoiceMeeter +{ + public static class InstanceRegister + { + private static readonly object InstancesLock = new object(); + private static readonly HashSet Instances = new HashSet(); + private static Task initializeTask; + + + // The VoiceMeeter Remote only connects to one instance, so all actions need to be in sync + private static RunVoicemeeterParam version; + public static RunVoicemeeterParam Version + { + get => version; + set + { + if (value == version) + return; + + version = value; + Notify(action => action.VoiceMeeterVersionChanged()); + + initializeTask = Task.Run(async () => + { + await global::VoiceMeeter.Remote.Initialize(version); + }); + } + } + + + public static Task InitializeVoicemeeter() + { + return initializeTask ?? Task.CompletedTask; + } + + + public static void Register(IVoiceMeeterAction instance) + { + lock (InstancesLock) + { + Instances.Add(instance); + } + } + + + public static void Unregister(IVoiceMeeterAction instance) + { + lock (InstancesLock) + { + Instances.Remove(instance); + } + } + + + public static void Notify(Action action) + { + lock (InstancesLock) + { + foreach (var instance in Instances) + action(instance); + } + } + } +} diff --git a/Windows/MassiveKnob.Plugin.VoiceMeeter/MassiveKnob.Plugin.VoiceMeeter.csproj b/Windows/MassiveKnob.Plugin.VoiceMeeter/MassiveKnob.Plugin.VoiceMeeter.csproj new file mode 100644 index 0000000..260bd28 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.VoiceMeeter/MassiveKnob.Plugin.VoiceMeeter.csproj @@ -0,0 +1,110 @@ + + + + + Debug + AnyCPU + {19533600-D4F6-4BD4-82A3-C0234FDF044C} + Library + Properties + MassiveKnob.Plugin.VoiceMeeter + MassiveKnob.Plugin.VoiceMeeter + v4.7.2 + 512 + true + + + true + full + false + $(localappdata)\MassiveKnob\Plugins\VoiceMeeter\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + BaseVoiceMeeterSettingsView.xaml + + + + + + VoiceMeeterGetParameterActionSettingsView.xaml + + + + + + + + + + VoiceMeeterRunMacroActionSettingsView.xaml + + + + Strings.resx + True + True + + + + + PublicResXFileCodeGenerator + Strings.Designer.cs + + + + + {A1298BE4-1D23-416C-8C56-FC9264487A95} + MassiveKnob.Plugin + + + {f35dd8e5-91fa-403e-b6f6-8d2b4ae84198} + Voicemeeter + + + + + Always + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + + \ No newline at end of file diff --git a/Windows/MassiveKnob.Plugin.VoiceMeeter/MassiveKnobPlugin.json b/Windows/MassiveKnob.Plugin.VoiceMeeter/MassiveKnobPlugin.json new file mode 100644 index 0000000..bac5965 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.VoiceMeeter/MassiveKnobPlugin.json @@ -0,0 +1,3 @@ +{ + "EntryAssembly": "MassiveKnob.Plugin.VoiceMeeter.dll" +} diff --git a/Windows/MassiveKnob.Plugin.VoiceMeeter/MassiveKnobVoiceMeeterPlugin.cs b/Windows/MassiveKnob.Plugin.VoiceMeeter/MassiveKnobVoiceMeeterPlugin.cs new file mode 100644 index 0000000..0158123 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.VoiceMeeter/MassiveKnobVoiceMeeterPlugin.cs @@ -0,0 +1,23 @@ +using System; +using System.Collections.Generic; +using MassiveKnob.Plugin.VoiceMeeter.GetParameter; +using MassiveKnob.Plugin.VoiceMeeter.RunMacro; + +namespace MassiveKnob.Plugin.VoiceMeeter +{ + [MassiveKnobPlugin] + public class MassiveKnobVoiceMeeterPlugin : IMassiveKnobActionPlugin + { + public Guid PluginId { get; } = new Guid("cf6634f1-97e3-4a18-a4aa-289b558c0e82"); + public string Name { get; } = Strings.PluginName; + public string Description { get; } = Strings.PluginDescription; + public string Author { get; } = "Mark van Renswoude "; + public string Url { get; } = "https://www.github.com/MvRens/MassiveKnob/"; + + public IEnumerable Actions { get; } = new IMassiveKnobAction[] + { + new VoiceMeeterRunMacroAction(), + new VoiceMeeterGetParameterAction() + }; + } +} diff --git a/Windows/MassiveKnob.Plugin.VoiceMeeter/Properties/AssemblyInfo.cs b/Windows/MassiveKnob.Plugin.VoiceMeeter/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..1da267e --- /dev/null +++ b/Windows/MassiveKnob.Plugin.VoiceMeeter/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("MassiveKnob.Plugin.VoiceMeeter")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("MassiveKnob.Plugin.VoiceMeeter")] +[assembly: AssemblyCopyright("Copyright © 2021")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("19533600-d4f6-4bd4-82a3-c0234fdf044c")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Windows/MassiveKnob.Plugin.VoiceMeeter/RunMacro/VoiceMeeterRunMacroAction.cs b/Windows/MassiveKnob.Plugin.VoiceMeeter/RunMacro/VoiceMeeterRunMacroAction.cs new file mode 100644 index 0000000..e1d6bf1 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.VoiceMeeter/RunMacro/VoiceMeeterRunMacroAction.cs @@ -0,0 +1,80 @@ +using System; +using System.Threading.Tasks; +using System.Windows.Controls; +using Microsoft.Extensions.Logging; +using Voicemeeter; + +namespace MassiveKnob.Plugin.VoiceMeeter.RunMacro +{ + public class VoiceMeeterRunMacroAction : IMassiveKnobAction + { + public Guid ActionId { get; } = new Guid("3bf41e96-9418-4a0e-ba5f-580e0b94dcce"); + public MassiveKnobActionType ActionType { get; } = MassiveKnobActionType.InputDigital; + public string Name { get; } = Strings.RunMacroName; + public string Description { get; } = Strings.RunMacroDescription; + + + public IMassiveKnobActionInstance Create(ILogger logger) + { + return new Instance(); + } + + + private class Instance : IMassiveKnobDigitalAction, IVoiceMeeterAction + { + private IMassiveKnobActionContext actionContext; + private VoiceMeeterRunMacroActionSettings settings; + + + public void Initialize(IMassiveKnobActionContext context) + { + actionContext = context; + settings = context.GetSettings(); + + InstanceRegister.Register(this); + } + + + public void Dispose() + { + InstanceRegister.Unregister(this); + } + + + public UserControl CreateSettingsControl() + { + var viewModel = new VoiceMeeterRunMacroActionSettingsViewModel(settings); + viewModel.PropertyChanged += (sender, args) => + { + if (!viewModel.IsSettingsProperty(args.PropertyName)) + return; + + actionContext.SetSettings(settings); + }; + + return new VoiceMeeterRunMacroActionSettingsView(viewModel); + } + + + public async ValueTask DigitalChanged(bool on) + { + if (!on) + return; + + if (settings.Version == RunVoicemeeterParam.None || string.IsNullOrEmpty(settings.Script)) + return; + + await InstanceRegister.InitializeVoicemeeter(); + global::VoiceMeeter.Remote.SetParameters(settings.Script); + } + + + public void VoiceMeeterVersionChanged() + { + // TODO update viewModel + + actionContext.SetSettings(settings); + } + } + } +} diff --git a/Windows/MassiveKnob.Plugin.VoiceMeeter/RunMacro/VoiceMeeterRunMacroActionSettings.cs b/Windows/MassiveKnob.Plugin.VoiceMeeter/RunMacro/VoiceMeeterRunMacroActionSettings.cs new file mode 100644 index 0000000..81b084e --- /dev/null +++ b/Windows/MassiveKnob.Plugin.VoiceMeeter/RunMacro/VoiceMeeterRunMacroActionSettings.cs @@ -0,0 +1,9 @@ +using MassiveKnob.Plugin.VoiceMeeter.Base; + +namespace MassiveKnob.Plugin.VoiceMeeter.RunMacro +{ + public class VoiceMeeterRunMacroActionSettings : BaseVoiceMeeterSettings + { + public string Script { get; set; } + } +} diff --git a/Windows/MassiveKnob.Plugin.VoiceMeeter/RunMacro/VoiceMeeterRunMacroActionSettingsView.xaml b/Windows/MassiveKnob.Plugin.VoiceMeeter/RunMacro/VoiceMeeterRunMacroActionSettingsView.xaml new file mode 100644 index 0000000..ffc0f23 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.VoiceMeeter/RunMacro/VoiceMeeterRunMacroActionSettingsView.xaml @@ -0,0 +1,20 @@ + + + + + + + + + + diff --git a/Windows/MassiveKnob.Plugin.VoiceMeeter/RunMacro/VoiceMeeterRunMacroActionSettingsView.xaml.cs b/Windows/MassiveKnob.Plugin.VoiceMeeter/RunMacro/VoiceMeeterRunMacroActionSettingsView.xaml.cs new file mode 100644 index 0000000..692c590 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.VoiceMeeter/RunMacro/VoiceMeeterRunMacroActionSettingsView.xaml.cs @@ -0,0 +1,14 @@ +namespace MassiveKnob.Plugin.VoiceMeeter.RunMacro +{ + /// + /// Interaction logic for VoiceMeeterRunMacroActionSettingsView.xaml + /// + public partial class VoiceMeeterRunMacroActionSettingsView + { + public VoiceMeeterRunMacroActionSettingsView(VoiceMeeterRunMacroActionSettingsViewModel viewModel) + { + DataContext = viewModel; + InitializeComponent(); + } + } +} diff --git a/Windows/MassiveKnob.Plugin.VoiceMeeter/RunMacro/VoiceMeeterRunMacroActionSettingsViewModel.cs b/Windows/MassiveKnob.Plugin.VoiceMeeter/RunMacro/VoiceMeeterRunMacroActionSettingsViewModel.cs new file mode 100644 index 0000000..8c67693 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.VoiceMeeter/RunMacro/VoiceMeeterRunMacroActionSettingsViewModel.cs @@ -0,0 +1,29 @@ +using MassiveKnob.Plugin.VoiceMeeter.Base; + +namespace MassiveKnob.Plugin.VoiceMeeter.RunMacro +{ + public class VoiceMeeterRunMacroActionSettingsViewModel : BaseVoiceMeeterSettingsViewModel + { + // ReSharper disable UnusedMember.Global - used by WPF Bindingpriv + public string Script + { + get => Settings.Script; + set + { + // TODO timer for change notification + if (value == Settings.Script) + return; + + Settings.Script = value; + OnPropertyChanged(); + } + } + // ReSharper restore UnusedMember.Global + + + // ReSharper disable once SuggestBaseTypeForParameter - by design + public VoiceMeeterRunMacroActionSettingsViewModel(VoiceMeeterRunMacroActionSettings settings) : base(settings) + { + } + } +} diff --git a/Windows/MassiveKnob.Plugin.VoiceMeeter/Strings.Designer.cs b/Windows/MassiveKnob.Plugin.VoiceMeeter/Strings.Designer.cs new file mode 100644 index 0000000..2cbb168 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.VoiceMeeter/Strings.Designer.cs @@ -0,0 +1,172 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace MassiveKnob.Plugin.VoiceMeeter { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + public class Strings { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Strings() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("MassiveKnob.Plugin.VoiceMeeter.Strings", typeof(Strings).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to Turns the output on if the specified parameter equals the specified value.. + /// + public static string GetParameterDescription { + get { + return ResourceManager.GetString("GetParameterDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Get parameter. + /// + public static string GetParameterName { + get { + return ResourceManager.GetString("GetParameterName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Provides actions to run VoiceMeeter macros or check the current state.. + /// + public static string PluginDescription { + get { + return ResourceManager.GetString("PluginDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to VoiceMeeter Remote. + /// + public static string PluginName { + get { + return ResourceManager.GetString("PluginName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Runs a VoiceMeeter macro when the input turns on.. + /// + public static string RunMacroDescription { + get { + return ResourceManager.GetString("RunMacroDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Run macro. + /// + public static string RunMacroName { + get { + return ResourceManager.GetString("RunMacroName", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Inverted (on if the parameter does not equal the value). + /// + public static string SettingGetParameterInverted { + get { + return ResourceManager.GetString("SettingGetParameterInverted", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Parameter name. + /// + public static string SettingGetParameterParameter { + get { + return ResourceManager.GetString("SettingGetParameterParameter", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Expected value. + /// + public static string SettingGetParameterValue { + get { + return ResourceManager.GetString("SettingGetParameterValue", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Script. + /// + public static string SettingRunMacroScript { + get { + return ResourceManager.GetString("SettingRunMacroScript", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Example: Strip[0].A1 = 1; Strip[0].A2 = 0; + ///Use comma or semicolons to separate commands, or put each command on a separate line. For more information see the VoiceMeeter documentation on Macro Buttons.. + /// + public static string SettingRunMacroScriptExample { + get { + return ResourceManager.GetString("SettingRunMacroScriptExample", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to VoiceMeeter version. + /// + public static string SettingVoiceMeeterVersion { + get { + return ResourceManager.GetString("SettingVoiceMeeterVersion", resourceCulture); + } + } + } +} diff --git a/Windows/MassiveKnob.Plugin.VoiceMeeter/Strings.resx b/Windows/MassiveKnob.Plugin.VoiceMeeter/Strings.resx new file mode 100644 index 0000000..f688f92 --- /dev/null +++ b/Windows/MassiveKnob.Plugin.VoiceMeeter/Strings.resx @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Turns the output on if the specified parameter equals the specified value. + + + Get parameter + + + Provides actions to run VoiceMeeter macros or check the current state. + + + VoiceMeeter Remote + + + Runs a VoiceMeeter macro when the input turns on. + + + Run macro + + + Inverted (on if the parameter does not equal the value) + + + Parameter name + + + Expected value + + + Script + + + Example: Strip[0].A1 = 1; Strip[0].A2 = 0; +Use comma or semicolons to separate commands, or put each command on a separate line. For more information see the VoiceMeeter documentation on Macro Buttons. + + + VoiceMeeter version + + \ No newline at end of file diff --git a/Windows/MassiveKnob.sln b/Windows/MassiveKnob.sln index 6a480a2..c19297a 100644 --- a/Windows/MassiveKnob.sln +++ b/Windows/MassiveKnob.sln @@ -17,6 +17,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MIN", "min.NET\MIN\MIN.cspr EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MIN.SerialPort", "min.NET\MIN.SerialPort\MIN.SerialPort.csproj", "{DB8819EB-D2B7-4AAE-A699-BD200F2C113A}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MassiveKnob.Plugin.VoiceMeeter", "MassiveKnob.Plugin.VoiceMeeter\MassiveKnob.Plugin.VoiceMeeter.csproj", "{19533600-D4F6-4BD4-82A3-C0234FDF044C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Voicemeeter", "VoicemeeterRemote\Voicemeeter\Voicemeeter.csproj", "{F35DD8E5-91FA-403E-B6F6-8D2B4AE84198}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -51,6 +55,14 @@ Global {DB8819EB-D2B7-4AAE-A699-BD200F2C113A}.Debug|Any CPU.Build.0 = Debug|Any CPU {DB8819EB-D2B7-4AAE-A699-BD200F2C113A}.Release|Any CPU.ActiveCfg = Release|Any CPU {DB8819EB-D2B7-4AAE-A699-BD200F2C113A}.Release|Any CPU.Build.0 = Release|Any CPU + {19533600-D4F6-4BD4-82A3-C0234FDF044C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {19533600-D4F6-4BD4-82A3-C0234FDF044C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {19533600-D4F6-4BD4-82A3-C0234FDF044C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {19533600-D4F6-4BD4-82A3-C0234FDF044C}.Release|Any CPU.Build.0 = Release|Any CPU + {F35DD8E5-91FA-403E-B6F6-8D2B4AE84198}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F35DD8E5-91FA-403E-B6F6-8D2B4AE84198}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F35DD8E5-91FA-403E-B6F6-8D2B4AE84198}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F35DD8E5-91FA-403E-B6F6-8D2B4AE84198}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Windows/MassiveKnob/Core/PluginManager.cs b/Windows/MassiveKnob/Core/PluginManager.cs index 198a3eb..45bb752 100644 --- a/Windows/MassiveKnob/Core/PluginManager.cs +++ b/Windows/MassiveKnob/Core/PluginManager.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; @@ -59,23 +60,56 @@ namespace MassiveKnob.Core var registeredIds = new RegisteredIds(); var codeBase = Assembly.GetEntryAssembly()?.CodeBase; - if (!string.IsNullOrEmpty(codeBase)) + if (string.IsNullOrEmpty(codeBase)) { - var localPath = Path.GetDirectoryName(new Uri(codeBase).LocalPath); - if (!string.IsNullOrEmpty(localPath)) - { - var applicationPluginPath = Path.Combine(localPath, @"Plugins"); - LoadPlugins(applicationPluginPath, registeredIds, onException); - } + logger.Error("No known EntryAssembly, unable to load plugins"); + return; } + var localPath = Path.GetDirectoryName(new Uri(codeBase).LocalPath); + if (string.IsNullOrEmpty(localPath)) + { + logger.Error("EntryAssembly CodeBase does not resolve to a local path, unable to load plugins: {codeBase}", codeBase); + return; + } - var localPluginPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), @"MassiveKnob", @"Plugins"); + var applicationPluginPath = Path.Combine(localPath, @"Plugins"); + LoadPlugins(applicationPluginPath, registeredIds, onException); + + #if DEBUG + // For debugging, load directly from the various bin folders + // ReSharper disable once InvertIf + if (IsInPath(localPath, "MassiveKnob", "bin", "Debug")) + { + // Go up three folders, filter out lingering bin/Release builds + var solutionPath = Path.GetDirectoryName(Path.GetDirectoryName(Path.GetDirectoryName(localPath))); + LoadPlugins(solutionPath, registeredIds, onException, pluginPath => IsInPath(pluginPath, "bin", "Debug")); + } + #endif + + var localPluginPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "MassiveKnob", "Plugins"); LoadPlugins(localPluginPath, registeredIds, onException); } + + + private static bool IsInPath(string actualPath, params string[] expectedPathComponents) + { + if (string.IsNullOrEmpty(actualPath) || expectedPathComponents.Length == 0) + return false; + + var expectedPath = Path.Combine(expectedPathComponents); + + if (!actualPath.EndsWith(Path.DirectorySeparatorChar.ToString())) + actualPath += Path.DirectorySeparatorChar; + + if (!expectedPath.EndsWith(Path.DirectorySeparatorChar.ToString())) + expectedPath += Path.DirectorySeparatorChar; + + return actualPath.EndsWith(expectedPath, StringComparison.CurrentCultureIgnoreCase); + } - private void LoadPlugins(string path, RegisteredIds registeredIds, Action onException) + private void LoadPlugins(string path, RegisteredIds registeredIds, Action onException, Func predicate = null) { logger.Information("Checking {path} for plugins...", path); if (!Directory.Exists(path)) @@ -89,6 +123,9 @@ namespace MassiveKnob.Core var pluginPath = Path.GetDirectoryName(metadataFilename); if (string.IsNullOrEmpty(pluginPath)) continue; + + if (predicate != null && !predicate(pluginPath)) + continue; PluginMetadata pluginMetadata; try diff --git a/Windows/MassiveKnob/Resources/Analog.xaml b/Windows/MassiveKnob/Resources/Analog.xaml index d678219..21d6ab4 100644 --- a/Windows/MassiveKnob/Resources/Analog.xaml +++ b/Windows/MassiveKnob/Resources/Analog.xaml @@ -4,7 +4,7 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d"> - + diff --git a/Windows/MassiveKnob/Resources/Device.xaml b/Windows/MassiveKnob/Resources/Device.xaml index 1b4f5ed..8ae9373 100644 --- a/Windows/MassiveKnob/Resources/Device.xaml +++ b/Windows/MassiveKnob/Resources/Device.xaml @@ -4,7 +4,7 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d"> - + diff --git a/Windows/MassiveKnob/Resources/Digital.xaml b/Windows/MassiveKnob/Resources/Digital.xaml index 09faf4b..52fa31d 100644 --- a/Windows/MassiveKnob/Resources/Digital.xaml +++ b/Windows/MassiveKnob/Resources/Digital.xaml @@ -4,7 +4,7 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d"> - + diff --git a/Windows/MassiveKnob/Resources/Logging.xaml b/Windows/MassiveKnob/Resources/Logging.xaml index f6db3ce..ead1df1 100644 --- a/Windows/MassiveKnob/Resources/Logging.xaml +++ b/Windows/MassiveKnob/Resources/Logging.xaml @@ -4,7 +4,7 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d"> - + diff --git a/Windows/MassiveKnob/Resources/Startup.xaml b/Windows/MassiveKnob/Resources/Startup.xaml index fa1de3f..927367b 100644 --- a/Windows/MassiveKnob/Resources/Startup.xaml +++ b/Windows/MassiveKnob/Resources/Startup.xaml @@ -4,7 +4,7 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d"> - + diff --git a/Windows/MassiveKnob/ViewModel/SettingsViewModel.cs b/Windows/MassiveKnob/ViewModel/SettingsViewModel.cs index ff58946..0c4ff78 100644 --- a/Windows/MassiveKnob/ViewModel/SettingsViewModel.cs +++ b/Windows/MassiveKnob/ViewModel/SettingsViewModel.cs @@ -17,6 +17,8 @@ using Serilog.Events; namespace MassiveKnob.ViewModel { + // TODO (code quality) split ViewModel for individual views, create viewmodel using container + // TODO (must have) show device status public class SettingsViewModel : IDisposable, INotifyPropertyChanged { private readonly Dictionary menuItemControls = new Dictionary diff --git a/Windows/Setup/MassiveKnobSetup.iss b/Windows/Setup/MassiveKnobSetup.iss new file mode 100644 index 0000000..32f6fca --- /dev/null +++ b/Windows/Setup/MassiveKnobSetup.iss @@ -0,0 +1,197 @@ +#define AppName "Massive Knob" +#define AppVersion GetEnv("BUILD_VERSION") +#define AppPublisher "Mark van Renswoude" +#define AppURL "https://github.com/MvRens/MassiveKnob" +#define AppExeName "MassiveKnob.exe" +#define BasePath ".." + +#if AppVersion == "" + #define AppVersion "IDE build" +#endif + + +[Setup] +AppId={{6D668D73-54E5-4FE1-8028-24FE993627B8} +AppName={#AppName} +AppVersion={#AppVersion} +AppPublisher={#AppPublisher} +AppPublisherURL={#AppURL} +AppSupportURL={#AppURL} +AppUpdatesURL={#AppURL} +DefaultDirName={pf}\{#AppName} +DisableProgramGroupPage=yes +OutputDir={#BasePath}\Release +OutputBaseFilename=MassiveKnobSetup-{#AppVersion} +Compression=lzma +SolidCompression=yes +ArchitecturesInstallIn64BitMode=x64 + +[Types] +Name: "full"; Description: "Full installation" +Name: "custom"; Description: "Custom installation"; Flags: iscustom + +[Components] +Name: main; Description: "Massive Knob application"; Types: full custom; Flags: fixed +Name: essentialplugins; Description: "Essential plugins"; Types: full custom +Name: essentialplugins\serialdevice; Description: "Serial device"; Types: full custom +Name: essentialplugins\coreaudio; Description: "Windows Core Audio actions"; Types: full custom +Name: optionalplugins; Description: "Optional plugins"; Types: full custom +Name: optionalplugins\emulatordevice; Description: "Emulator device"; Types: full custom +Name: optionalplugins\voicemeeter; Description: "VoiceMeeter actions"; Types: full custom + +[Tasks] +Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked + +[Files] +; Main application +Source: {#BasePath}\MassiveKnob\bin\Release\{#AppExeName}; DestDir: "{app}"; Flags: ignoreversion; Components: main +Source: {#BasePath}\MassiveKnob\bin\Release\{#AppExeName}.config; DestDir: "{app}"; Flags: ignoreversion; Components: main +Source: {#BasePath}\MassiveKnob\bin\Release\*.dll; DestDir: "{app}"; Flags: ignoreversion; Components: main + +; Serial device plugin +Source: {#BasePath}\MassiveKnob.Plugin.SerialDevice\bin\Release\MassiveKnobPlugin.json; DestDir: "{app}\Plugins\SerialDevice"; Flags: ignoreversion; Components: essentialplugins\serialdevice +Source: {#BasePath}\MassiveKnob.Plugin.SerialDevice\bin\Release\*.dll; DestDir: "{app}\Plugins\SerialDevice"; Flags: ignoreversion; Components: essentialplugins\serialdevice + +; Core Audio plugin +Source: {#BasePath}\MassiveKnob.Plugin.CoreAudio\bin\Release\MassiveKnobPlugin.json; DestDir: "{app}\Plugins\CoreAudio"; Flags: ignoreversion; Components: essentialplugins\coreaudio +Source: {#BasePath}\MassiveKnob.Plugin.CoreAudio\bin\Release\*.dll; DestDir: "{app}\Plugins\CoreAudio"; Flags: ignoreversion; Components: essentialplugins\coreaudio + +; Emulator device plugin +Source: {#BasePath}\MassiveKnob.Plugin.EmulatorDevice\bin\Release\MassiveKnobPlugin.json; DestDir: "{app}\Plugins\EmulatorDevice"; Flags: ignoreversion; Components: optionalplugins\emulatordevice +Source: {#BasePath}\MassiveKnob.Plugin.EmulatorDevice\bin\Release\*.dll; DestDir: "{app}\Plugins\EmulatorDevice"; Flags: ignoreversion; Components: optionalplugins\emulatordevice + +; VoiceMeeter plugin +Source: {#BasePath}\MassiveKnob.Plugin.VoiceMeeter\bin\Release\MassiveKnobPlugin.json; DestDir: "{app}\Plugins\VoiceMeeter"; Flags: ignoreversion; Components: optionalplugins\voicemeeter +Source: {#BasePath}\MassiveKnob.Plugin.VoiceMeeter\bin\Release\*.dll; DestDir: "{app}\Plugins\VoiceMeeter"; Flags: ignoreversion; Components: optionalplugins\voicemeeter + +[Dirs] +Name: "{localappdata}\MassiveKnob" +Name: "{localappdata}\MassiveKnob\Logs" +Name: "{localappdata}\MassiveKnob\Plugins" + +[Icons] +Name: "{commonprograms}\{#AppName}"; Filename: "{app}\{#AppExeName}" +Name: "{commondesktop}\{#AppName}"; Filename: "{app}\{#AppExeName}"; Tasks: desktopicon + +[Run] +;Filename: "{app}\{#AppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(AppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent + +[Code] +// .NET version detection credit goes to: +// https://www.kynosarges.org/DotNetVersion.html + +function IsDotNetDetected(version: string; service: cardinal): boolean; +// Indicates whether the specified version and service pack of the .NET Framework is installed. +// +// version -- Specify one of these strings for the required .NET Framework version: +// 'v1.1' .NET Framework 1.1 +// 'v2.0' .NET Framework 2.0 +// 'v3.0' .NET Framework 3.0 +// 'v3.5' .NET Framework 3.5 +// 'v4\Client' .NET Framework 4.0 Client Profile +// 'v4\Full' .NET Framework 4.0 Full Installation +// 'v4.5' .NET Framework 4.5 +// 'v4.5.1' .NET Framework 4.5.1 +// 'v4.5.2' .NET Framework 4.5.2 +// 'v4.6' .NET Framework 4.6 +// 'v4.6.1' .NET Framework 4.6.1 +// 'v4.6.2' .NET Framework 4.6.2 +// 'v4.7' .NET Framework 4.7 +// 'v4.7.1' .NET Framework 4.7.1 +// 'v4.7.2' .NET Framework 4.7.2 +// 'v4.8' .NET Framework 4.8 +// +// service -- Specify any non-negative integer for the required service pack level: +// 0 No service packs required +// 1, 2, etc. Service pack 1, 2, etc. required +var + key, versionKey: string; + install, release, serviceCount, versionRelease: cardinal; + success: boolean; +begin + versionKey := version; + versionRelease := 0; + + // .NET 1.1 and 2.0 embed release number in version key + if version = 'v1.1' then begin + versionKey := 'v1.1.4322'; + end else if version = 'v2.0' then begin + versionKey := 'v2.0.50727'; + end + + // .NET 4.5 and newer install as update to .NET 4.0 Full + else if Pos('v4.', version) = 1 then begin + versionKey := 'v4\Full'; + case version of + 'v4.5': versionRelease := 378389; + 'v4.5.1': versionRelease := 378675; // 378758 on Windows 8 and older + 'v4.5.2': versionRelease := 379893; + 'v4.6': versionRelease := 393295; // 393297 on Windows 8.1 and older + 'v4.6.1': versionRelease := 394254; // 394271 before Win10 November Update + 'v4.6.2': versionRelease := 394802; // 394806 before Win10 Anniversary Update + 'v4.7': versionRelease := 460798; // 460805 before Win10 Creators Update + 'v4.7.1': versionRelease := 461308; // 461310 before Win10 Fall Creators Update + 'v4.7.2': versionRelease := 461808; // 461814 before Win10 April 2018 Update + 'v4.8': versionRelease := 528040; // 528049 before Win10 May 2019 Update + end; + end; + + // installation key group for all .NET versions + key := 'SOFTWARE\Microsoft\NET Framework Setup\NDP\' + versionKey; + + // .NET 3.0 uses value InstallSuccess in subkey Setup + if Pos('v3.0', version) = 1 then begin + success := RegQueryDWordValue(HKLM, key + '\Setup', 'InstallSuccess', install); + end else begin + success := RegQueryDWordValue(HKLM, key, 'Install', install); + end; + + // .NET 4.0 and newer use value Servicing instead of SP + if Pos('v4', version) = 1 then begin + success := success and RegQueryDWordValue(HKLM, key, 'Servicing', serviceCount); + end else begin + success := success and RegQueryDWordValue(HKLM, key, 'SP', serviceCount); + end; + + // .NET 4.5 and newer use additional value Release + if versionRelease > 0 then begin + success := success and RegQueryDWordValue(HKLM, key, 'Release', release); + success := success and (release >= versionRelease); + end; + + result := success and (install = 1) and (serviceCount >= service); +end; + + +function InitializeSetup(): Boolean; +var + response: Integer; + errorCode: Integer; + +begin + if not IsDotNetDetected('v4.7.2', 0) then + begin + response := SuppressibleMsgBox('Massive Knob requires Microsoft .NET Framework 4.7.2, which does not appear to be installed.' + + 'Do you want to open the .NET download page?'#13#10#13#10 + + 'Click No to continue, although Massive Knob may not run properly afterwards, or Cancel to abort the setup.', + mbInformation, + MB_YESNOCANCEL, + IDNO); + + case response of + IDYES: + begin + ShellExecAsOriginalUser('open', 'https://dotnet.microsoft.com/download/dotnet-framework/net472', '', '', + SW_SHOWNORMAL, ewNoWait, errorCode); + Result := False; + end; + + IDNO: + Result := True; + + IDCANCEL: + Result := False; + end; + end else + Result := True; +end; \ No newline at end of file diff --git a/Windows/VoicemeeterRemote b/Windows/VoicemeeterRemote new file mode 160000 index 0000000..5d259cd --- /dev/null +++ b/Windows/VoicemeeterRemote @@ -0,0 +1 @@ +Subproject commit 5d259cdaee942029487e37a02e9a32ed9833d80c From 2525fae2376157cc0d2e80e7b023ea2ebc81d056 Mon Sep 17 00:00:00 2001 From: Mark van Renswoude Date: Sat, 6 Mar 2021 11:00:32 +0100 Subject: [PATCH 14/19] Slight correction in readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 74e7076..9a7039e 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ Because of these requirements, a simple media keys HID device does not suffice a Massive Knob is basically a host for plugins. A plugin can implement a device or actions which either process signals from the device to perform an action (for example, change the volume when a knob is turned) or send signals to the device based on the system state (for example, light up an LED to indicate the default device). ### Devices -Devices can provide the following inputs and outputs, up to 255 for each type (unless you're Look Mum No Computer I assume this will be enough): +A device can provide the following inputs and outputs, up to 255 for each type (unless you're Look Mum No Computer I assume this will be enough): 1. Analog input (*e.g. a potentiometer*) 2. Digital input (*e.g. a button or switch*) From 69a93f68d5169c964b530e23abbec544b425d965 Mon Sep 17 00:00:00 2001 From: Mark van Renswoude Date: Sun, 7 Mar 2021 10:38:56 +0100 Subject: [PATCH 15/19] Fixed bug in caching output values Fixed VoiceMeeter version selection Added device status indicator --- ...buttons, under desk, Arduino Pro Micro.f3d | Bin 0 -> 181720 bytes .../GetDefault/DeviceGetDefaultAction.cs | 2 +- .../SetDefault/DeviceSetDefaultAction.cs | 2 +- .../Settings/SerialDeviceSettingsViewModel.cs | 6 - .../Base/BaseVoiceMeeterSettingsView.xaml.cs | 4 +- .../Base/BaseVoiceMeeterSettingsViewModel.cs | 33 ++++- .../VoiceMeeterGetParameterAction.cs | 57 +++++---- ...eterGetParameterActionSettingsView.xaml.cs | 12 +- .../MassiveKnob.Plugin.VoiceMeeter.csproj | 5 + .../RunMacro/VoiceMeeterRunMacroAction.cs | 13 +- ...ceMeeterRunMacroActionSettingsView.xaml.cs | 12 +- ...ceMeeterRunMacroActionSettingsViewModel.cs | 28 +++- .../Core/IMassiveKnobOrchestrator.cs | 12 ++ .../Core/MassiveKnobOrchestrator.cs | 120 +++++++++++------- Windows/MassiveKnob/Strings.Designer.cs | 27 ++++ Windows/MassiveKnob/Strings.resx | 9 ++ .../MassiveKnob/View/Settings/DeviceView.xaml | 5 + .../ViewModel/SettingsViewModel.cs | 103 ++++++++++++--- Windows/VoicemeeterRemote | 2 +- 19 files changed, 334 insertions(+), 118 deletions(-) create mode 100644 Hardware/Massive Knob housing - 2 pots, 3 buttons, under desk, Arduino Pro Micro.f3d diff --git a/Hardware/Massive Knob housing - 2 pots, 3 buttons, under desk, Arduino Pro Micro.f3d b/Hardware/Massive Knob housing - 2 pots, 3 buttons, under desk, Arduino Pro Micro.f3d new file mode 100644 index 0000000000000000000000000000000000000000..23fa4eca85c0a2fcc7f14bc6f9b6ddd5aa47e058 GIT binary patch literal 181720 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

    PL+Ih$m{YbbtCb7~J`;;+SYb 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

    /// Interaction logic for BaseVoiceMeeterSettingsView.xaml diff --git a/Windows/MassiveKnob.Plugin.VoiceMeeter/Base/BaseVoiceMeeterSettingsViewModel.cs b/Windows/MassiveKnob.Plugin.VoiceMeeter/Base/BaseVoiceMeeterSettingsViewModel.cs index d3bf795..18bca53 100644 --- a/Windows/MassiveKnob.Plugin.VoiceMeeter/Base/BaseVoiceMeeterSettingsViewModel.cs +++ b/Windows/MassiveKnob.Plugin.VoiceMeeter/Base/BaseVoiceMeeterSettingsViewModel.cs @@ -1,5 +1,7 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.ComponentModel; +using System.Linq; using System.Runtime.CompilerServices; using Voicemeeter; @@ -16,10 +18,11 @@ namespace MassiveKnob.Plugin.VoiceMeeter.Base - public class BaseVoiceMeeterSettingsViewModel : INotifyPropertyChanged + public class BaseVoiceMeeterSettingsViewModel : INotifyPropertyChanged, IDisposable { protected readonly BaseVoiceMeeterSettings Settings; public event PropertyChangedEventHandler PropertyChanged; + public event EventHandler Disposed; // ReSharper disable UnusedMember.Global - used by WPF Binding public IList Versions { get; } @@ -52,6 +55,14 @@ namespace MassiveKnob.Plugin.VoiceMeeter.Base new VoiceMeeterVersionViewModel(RunVoicemeeterParam.VoicemeeterBanana, "VoiceMeeter Banana"), new VoiceMeeterVersionViewModel(RunVoicemeeterParam.VoicemeeterPotato, "VoiceMeeter Potato") }; + + UpdateSelectedVersion(); + } + + + private void UpdateSelectedVersion() + { + selectedVersion = Versions.SingleOrDefault(v => v.Version == Settings.Version) ?? Versions.First(); } @@ -63,10 +74,28 @@ namespace MassiveKnob.Plugin.VoiceMeeter.Base } + public virtual void VoiceMeeterVersionChanged() + { + UpdateSelectedVersion(); + OnDependantPropertyChanged(nameof(SelectedVersion)); + } + + protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } + + protected virtual void OnDependantPropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } + + + public virtual void Dispose() + { + Disposed?.Invoke(this, EventArgs.Empty); + } } public class VoiceMeeterVersionViewModel diff --git a/Windows/MassiveKnob.Plugin.VoiceMeeter/GetParameter/VoiceMeeterGetParameterAction.cs b/Windows/MassiveKnob.Plugin.VoiceMeeter/GetParameter/VoiceMeeterGetParameterAction.cs index afbec34..ac76b15 100644 --- a/Windows/MassiveKnob.Plugin.VoiceMeeter/GetParameter/VoiceMeeterGetParameterAction.cs +++ b/Windows/MassiveKnob.Plugin.VoiceMeeter/GetParameter/VoiceMeeterGetParameterAction.cs @@ -1,5 +1,6 @@ using System; -using System.Threading.Tasks; +using System.Collections.Generic; +using System.Runtime.Remoting.Channels; using System.Windows.Controls; using Microsoft.Extensions.Logging; using Voicemeeter; @@ -12,18 +13,19 @@ namespace MassiveKnob.Plugin.VoiceMeeter.GetParameter public MassiveKnobActionType ActionType { get; } = MassiveKnobActionType.OutputDigital; public string Name { get; } = Strings.GetParameterName; public string Description { get; } = Strings.GetParameterDescription; - - + + public IMassiveKnobActionInstance Create(ILogger logger) { return new Instance(); } - - + + private class Instance : IMassiveKnobActionInstance, IVoiceMeeterAction { private IMassiveKnobActionContext actionContext; private VoiceMeeterGetParameterActionSettings settings; + private VoiceMeeterGetParameterActionSettingsViewModel viewModel; private Parameters parameters; private IDisposable parameterChanged; @@ -48,51 +50,54 @@ namespace MassiveKnob.Plugin.VoiceMeeter.GetParameter private void ApplySettings() { - if (InstanceRegister.Version == RunVoicemeeterParam.None) + if (InstanceRegister.Version == RunVoicemeeterParam.None || string.IsNullOrEmpty(settings.Parameter)) + { + parameterChanged?.Dispose(); + parameterChanged = null; + + parameters?.Dispose(); + parameters = null; return; + } if (parameters == null) parameters = new Parameters(); - if (string.IsNullOrEmpty(settings.Parameter)) - { - parameterChanged?.Dispose(); - parameterChanged = null; - } - if (parameterChanged == null) parameterChanged = parameters.Subscribe(x => ParametersChanged()); - // TODO directly update output depending on value - /* - if (playbackDevice != null) - actionContext.SetDigitalOutput(settings.Inverted ? !playbackDevice.IsMuted : playbackDevice.IsMuted); - */ + ParametersChanged(); } public UserControl CreateSettingsControl() { - var viewModel = new VoiceMeeterGetParameterActionSettingsViewModel(settings); + viewModel = new VoiceMeeterGetParameterActionSettingsViewModel(settings); viewModel.PropertyChanged += (sender, args) => { if (!viewModel.IsSettingsProperty(args.PropertyName)) return; - + actionContext.SetSettings(settings); ApplySettings(); }; + viewModel.Disposed += (sender, args) => + { + if (sender == viewModel) + viewModel = null; + }; + return new VoiceMeeterGetParameterActionSettingsView(viewModel); } - + public void VoiceMeeterVersionChanged() { - // TODO update viewModel - // TODO reset parameterChanged subscription + viewModel?.VoiceMeeterVersionChanged(); actionContext.SetSettings(settings); + ApplySettings(); } @@ -101,11 +106,8 @@ namespace MassiveKnob.Plugin.VoiceMeeter.GetParameter if (InstanceRegister.Version == RunVoicemeeterParam.None || string.IsNullOrEmpty(settings.Parameter)) return; - // TODO if another task is already running, wait / chain - // TODO only start task if not yet initialized - Task.Run(async () => + InstanceRegister.InitializeVoicemeeter().ContinueWith(t => { - await InstanceRegister.InitializeVoicemeeter(); bool on; if (float.TryParse(settings.Value, out var settingsFloatValue)) @@ -130,10 +132,9 @@ namespace MassiveKnob.Plugin.VoiceMeeter.GetParameter on = string.Equals(value, settings.Value, StringComparison.InvariantCultureIgnoreCase); } - // TODO check specific parameter for changes, not just any parameter actionContext.SetDigitalOutput(settings.Inverted ? !on : on); }); } } } -} +} \ No newline at end of file diff --git a/Windows/MassiveKnob.Plugin.VoiceMeeter/GetParameter/VoiceMeeterGetParameterActionSettingsView.xaml.cs b/Windows/MassiveKnob.Plugin.VoiceMeeter/GetParameter/VoiceMeeterGetParameterActionSettingsView.xaml.cs index c62f2d9..10daa31 100644 --- a/Windows/MassiveKnob.Plugin.VoiceMeeter/GetParameter/VoiceMeeterGetParameterActionSettingsView.xaml.cs +++ b/Windows/MassiveKnob.Plugin.VoiceMeeter/GetParameter/VoiceMeeterGetParameterActionSettingsView.xaml.cs @@ -1,14 +1,22 @@ -namespace MassiveKnob.Plugin.VoiceMeeter.GetParameter +using System; + +namespace MassiveKnob.Plugin.VoiceMeeter.GetParameter { /// /// Interaction logic for VoiceMeeterGetParameterActionSettingsView.xaml /// - public partial class VoiceMeeterGetParameterActionSettingsView + public partial class VoiceMeeterGetParameterActionSettingsView : IDisposable { public VoiceMeeterGetParameterActionSettingsView(VoiceMeeterGetParameterActionSettingsViewModel viewModel) { DataContext = viewModel; InitializeComponent(); } + + + public void Dispose() + { + (DataContext as VoiceMeeterGetParameterActionSettingsViewModel)?.Dispose(); + } } } \ No newline at end of file diff --git a/Windows/MassiveKnob.Plugin.VoiceMeeter/MassiveKnob.Plugin.VoiceMeeter.csproj b/Windows/MassiveKnob.Plugin.VoiceMeeter/MassiveKnob.Plugin.VoiceMeeter.csproj index 260bd28..76aaf7d 100644 --- a/Windows/MassiveKnob.Plugin.VoiceMeeter/MassiveKnob.Plugin.VoiceMeeter.csproj +++ b/Windows/MassiveKnob.Plugin.VoiceMeeter/MassiveKnob.Plugin.VoiceMeeter.csproj @@ -106,5 +106,10 @@ Designer + + + 5.0.0 + + \ No newline at end of file diff --git a/Windows/MassiveKnob.Plugin.VoiceMeeter/RunMacro/VoiceMeeterRunMacroAction.cs b/Windows/MassiveKnob.Plugin.VoiceMeeter/RunMacro/VoiceMeeterRunMacroAction.cs index e1d6bf1..d786243 100644 --- a/Windows/MassiveKnob.Plugin.VoiceMeeter/RunMacro/VoiceMeeterRunMacroAction.cs +++ b/Windows/MassiveKnob.Plugin.VoiceMeeter/RunMacro/VoiceMeeterRunMacroAction.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Threading.Tasks; using System.Windows.Controls; using Microsoft.Extensions.Logging; @@ -24,6 +25,7 @@ namespace MassiveKnob.Plugin.VoiceMeeter.RunMacro { private IMassiveKnobActionContext actionContext; private VoiceMeeterRunMacroActionSettings settings; + private VoiceMeeterRunMacroActionSettingsViewModel viewModel; public void Initialize(IMassiveKnobActionContext context) @@ -43,7 +45,7 @@ namespace MassiveKnob.Plugin.VoiceMeeter.RunMacro public UserControl CreateSettingsControl() { - var viewModel = new VoiceMeeterRunMacroActionSettingsViewModel(settings); + viewModel = new VoiceMeeterRunMacroActionSettingsViewModel(settings); viewModel.PropertyChanged += (sender, args) => { if (!viewModel.IsSettingsProperty(args.PropertyName)) @@ -52,6 +54,12 @@ namespace MassiveKnob.Plugin.VoiceMeeter.RunMacro actionContext.SetSettings(settings); }; + viewModel.Disposed += (sender, args) => + { + if (sender == viewModel) + viewModel = null; + }; + return new VoiceMeeterRunMacroActionSettingsView(viewModel); } @@ -71,8 +79,7 @@ namespace MassiveKnob.Plugin.VoiceMeeter.RunMacro public void VoiceMeeterVersionChanged() { - // TODO update viewModel - + viewModel?.VoiceMeeterVersionChanged(); actionContext.SetSettings(settings); } } diff --git a/Windows/MassiveKnob.Plugin.VoiceMeeter/RunMacro/VoiceMeeterRunMacroActionSettingsView.xaml.cs b/Windows/MassiveKnob.Plugin.VoiceMeeter/RunMacro/VoiceMeeterRunMacroActionSettingsView.xaml.cs index 692c590..2020978 100644 --- a/Windows/MassiveKnob.Plugin.VoiceMeeter/RunMacro/VoiceMeeterRunMacroActionSettingsView.xaml.cs +++ b/Windows/MassiveKnob.Plugin.VoiceMeeter/RunMacro/VoiceMeeterRunMacroActionSettingsView.xaml.cs @@ -1,14 +1,22 @@ -namespace MassiveKnob.Plugin.VoiceMeeter.RunMacro +using System; + +namespace MassiveKnob.Plugin.VoiceMeeter.RunMacro { /// /// Interaction logic for VoiceMeeterRunMacroActionSettingsView.xaml /// - public partial class VoiceMeeterRunMacroActionSettingsView + public partial class VoiceMeeterRunMacroActionSettingsView : IDisposable { + // ReSharper disable once SuggestBaseTypeForParameter public VoiceMeeterRunMacroActionSettingsView(VoiceMeeterRunMacroActionSettingsViewModel viewModel) { DataContext = viewModel; InitializeComponent(); } + + public void Dispose() + { + (DataContext as VoiceMeeterRunMacroActionSettingsViewModel)?.Dispose(); + } } } diff --git a/Windows/MassiveKnob.Plugin.VoiceMeeter/RunMacro/VoiceMeeterRunMacroActionSettingsViewModel.cs b/Windows/MassiveKnob.Plugin.VoiceMeeter/RunMacro/VoiceMeeterRunMacroActionSettingsViewModel.cs index 8c67693..d8af847 100644 --- a/Windows/MassiveKnob.Plugin.VoiceMeeter/RunMacro/VoiceMeeterRunMacroActionSettingsViewModel.cs +++ b/Windows/MassiveKnob.Plugin.VoiceMeeter/RunMacro/VoiceMeeterRunMacroActionSettingsViewModel.cs @@ -1,21 +1,26 @@ -using MassiveKnob.Plugin.VoiceMeeter.Base; +using System; +using System.Reactive.Linq; +using System.Reactive.Subjects; +using MassiveKnob.Plugin.VoiceMeeter.Base; namespace MassiveKnob.Plugin.VoiceMeeter.RunMacro { - public class VoiceMeeterRunMacroActionSettingsViewModel : BaseVoiceMeeterSettingsViewModel + public class VoiceMeeterRunMacroActionSettingsViewModel : BaseVoiceMeeterSettingsViewModel, IDisposable { - // ReSharper disable UnusedMember.Global - used by WPF Bindingpriv + private readonly Subject throttledScriptChanged = new Subject(); + private readonly IDisposable scriptChangedSubscription; + + // ReSharper disable UnusedMember.Global - used by WPF Binding public string Script { get => Settings.Script; set { - // TODO timer for change notification if (value == Settings.Script) return; Settings.Script = value; - OnPropertyChanged(); + throttledScriptChanged.OnNext(true); } } // ReSharper restore UnusedMember.Global @@ -24,6 +29,19 @@ namespace MassiveKnob.Plugin.VoiceMeeter.RunMacro // ReSharper disable once SuggestBaseTypeForParameter - by design public VoiceMeeterRunMacroActionSettingsViewModel(VoiceMeeterRunMacroActionSettings settings) : base(settings) { + scriptChangedSubscription = throttledScriptChanged + .Throttle(TimeSpan.FromSeconds(1)) + .Subscribe(b => + { + OnDependantPropertyChanged(nameof(Script)); + }); + } + + + public override void Dispose() + { + scriptChangedSubscription?.Dispose(); + throttledScriptChanged?.Dispose(); } } } diff --git a/Windows/MassiveKnob/Core/IMassiveKnobOrchestrator.cs b/Windows/MassiveKnob/Core/IMassiveKnobOrchestrator.cs index a13b2d0..45ef9c2 100644 --- a/Windows/MassiveKnob/Core/IMassiveKnobOrchestrator.cs +++ b/Windows/MassiveKnob/Core/IMassiveKnobOrchestrator.cs @@ -11,12 +11,24 @@ namespace MassiveKnob.Core MassiveKnobDeviceInfo SetActiveDevice(IMassiveKnobDevice device); + MassiveKnobDeviceStatus DeviceStatus { get; } + IObservable DeviceStatusSubject { get; } + + MassiveKnobActionInfo GetAction(MassiveKnobActionType actionType, int index); MassiveKnobActionInfo SetAction(MassiveKnobActionType actionType, int index, IMassiveKnobAction action); MassiveKnobSettings GetSettings(); void UpdateSettings(Action applyChanges); } + + + public enum MassiveKnobDeviceStatus + { + Disconnected, + Connecting, + Connected + } public class MassiveKnobDeviceInfo diff --git a/Windows/MassiveKnob/Core/MassiveKnobOrchestrator.cs b/Windows/MassiveKnob/Core/MassiveKnobOrchestrator.cs index 47e423f..5c5fac7 100644 --- a/Windows/MassiveKnob/Core/MassiveKnobOrchestrator.cs +++ b/Windows/MassiveKnob/Core/MassiveKnobOrchestrator.cs @@ -17,11 +17,12 @@ namespace MassiveKnob.Core private readonly ILogger logger; private readonly object settingsLock = new object(); - private MassiveKnobSettings massiveKnobSettings; + private readonly MassiveKnobSettings settings; private readonly SerialQueue flushSettingsQueue = new SerialQueue(); private MassiveKnobDeviceInfo activeDevice; private readonly Subject activeDeviceInfoSubject = new Subject(); + private readonly Subject deviceStatusSubject = new Subject(); private IMassiveKnobDeviceContext activeDeviceContext; private readonly List analogInputs = new List(); @@ -48,12 +49,15 @@ namespace MassiveKnob.Core public IObservable ActiveDeviceSubject => activeDeviceInfoSubject; + public MassiveKnobDeviceStatus DeviceStatus { get; private set; } = MassiveKnobDeviceStatus.Disconnected; + public IObservable DeviceStatusSubject => deviceStatusSubject; - public MassiveKnobOrchestrator(IPluginManager pluginManager, ILogger logger, MassiveKnobSettings massiveKnobSettings) + + public MassiveKnobOrchestrator(IPluginManager pluginManager, ILogger logger, MassiveKnobSettings settings) { this.pluginManager = pluginManager; this.logger = logger; - this.massiveKnobSettings = massiveKnobSettings; + this.settings = settings; } @@ -87,11 +91,11 @@ namespace MassiveKnob.Core { lock (settingsLock) { - if (massiveKnobSettings.Device == null) + if (settings.Device == null) return; var allDevices = pluginManager.GetDevicePlugins().SelectMany(dp => dp.Devices); - var device = allDevices.FirstOrDefault(d => d.DeviceId == massiveKnobSettings.Device.DeviceId); + var device = allDevices.FirstOrDefault(d => d.DeviceId == settings.Device.DeviceId); InternalSetActiveDevice(device, false); } @@ -105,7 +109,7 @@ namespace MassiveKnob.Core return InternalSetActiveDevice(device, true); } - + public MassiveKnobActionInfo GetAction(MassiveKnobActionType actionType, int index) { lock (settingsLock) @@ -166,7 +170,7 @@ namespace MassiveKnob.Core { lock (settingsLock) { - return massiveKnobSettings.Clone(); + return settings.Clone(); } } @@ -175,7 +179,7 @@ namespace MassiveKnob.Core { lock (settingsLock) { - applyChanges(massiveKnobSettings); + applyChanges(settings); } FlushSettings(); @@ -193,10 +197,10 @@ namespace MassiveKnob.Core lock (settingsLock) { if (device == null) - massiveKnobSettings.Device = null; + settings.Device = null; else { - massiveKnobSettings.Device = new MassiveKnobSettings.DeviceSettings + settings.Device = new MassiveKnobSettings.DeviceSettings { DeviceId = device.DeviceId, Settings = null @@ -208,7 +212,10 @@ namespace MassiveKnob.Core } ActiveDevice?.Instance.Dispose(); + SetDeviceStatus(null, MassiveKnobDeviceStatus.Disconnected); + // TODO (must have) move initialization to separate Task, to prevent issues at startup + // TODO (must have) exception handling! if (device != null) { var instance = device.Create(new SerilogLoggerProvider(logger.ForContext("Context", new { Device = device.DeviceId })).CreateLogger(null)); @@ -230,11 +237,11 @@ namespace MassiveKnob.Core protected T GetDeviceSettings(IMassiveKnobDeviceContext context) where T : class, new() { if (context != activeDeviceContext) - throw new InvalidOperationException("Caller must be the active device to retrieve the massiveKnobSettings"); + throw new InvalidOperationException("Caller must be the active device to retrieve the settings"); lock (settingsLock) { - return massiveKnobSettings.Device.Settings?.ToObject() ?? new T(); + return settings.Device.Settings?.ToObject() ?? new T(); } } @@ -242,23 +249,40 @@ namespace MassiveKnob.Core protected void SetDeviceSettings(IMassiveKnobDeviceContext context, IMassiveKnobDevice device, T deviceSettings) where T : class, new() { if (context != activeDeviceContext) - throw new InvalidOperationException("Caller must be the active device to update the massiveKnobSettings"); + throw new InvalidOperationException("Caller must be the active device to update the settings"); lock (settingsLock) { - if (massiveKnobSettings.Device == null) - massiveKnobSettings.Device = new MassiveKnobSettings.DeviceSettings + if (settings.Device == null) + settings.Device = new MassiveKnobSettings.DeviceSettings { DeviceId = device.DeviceId }; - massiveKnobSettings.Device.Settings = JObject.FromObject(deviceSettings); + settings.Device.Settings = JObject.FromObject(deviceSettings); } FlushSettings(); } + protected void SetDeviceStatus(IMassiveKnobDeviceContext context, MassiveKnobDeviceStatus status) + { + if (context != null && context != activeDeviceContext) + return; + + lock (settingsLock) + { + if (status == DeviceStatus) + return; + + DeviceStatus = status; + } + + deviceStatusSubject.OnNext(status); + } + + protected T GetActionSettings(IMassiveKnobActionContext context, IMassiveKnobAction action, int index) where T : class, new() { lock (settingsLock) @@ -268,7 +292,7 @@ namespace MassiveKnob.Core return new T(); if (list[index]?.Context != context) - throw new InvalidOperationException("Caller must be the active action to retrieve the massiveKnobSettings"); + throw new InvalidOperationException("Caller must be the active action to retrieve the settings"); var settingsList = GetActionSettingsList(action.ActionType); if (index >= settingsList.Count) @@ -288,7 +312,7 @@ namespace MassiveKnob.Core return; if (list[index]?.Context != context) - throw new InvalidOperationException("Caller must be the active action to retrieve the massiveKnobSettings"); + throw new InvalidOperationException("Caller must be the active action to retrieve the settings"); var settingsList = GetActionSettingsList(action.ActionType); @@ -317,11 +341,6 @@ namespace MassiveKnob.Core lock (settingsLock) { - if (analogOutputValues.TryGetValue(analogInputIndex, out var currentValue) && currentValue == value) - return; - - analogOutputValues[analogInputIndex] = value; - var mapping = GetActionMappingList(MassiveKnobActionType.InputAnalog); if (mapping == null || analogInputIndex >= mapping.Count || mapping[analogInputIndex] == null) return; @@ -343,12 +362,6 @@ namespace MassiveKnob.Core lock (settingsLock) { - if (digitalOutputValues.TryGetValue(digitalInputIndex, out var currentValue) && currentValue == on) - return; - - digitalOutputValues[digitalInputIndex] = on; - - var mapping = GetActionMappingList(MassiveKnobActionType.InputDigital); if (mapping == null || digitalInputIndex >= mapping.Count || mapping[digitalInputIndex] == null) return; @@ -362,13 +375,19 @@ namespace MassiveKnob.Core public void SetAnalogOutput(IMassiveKnobActionContext context, int index, byte value) { - if (activeDevice == null) - return; - IMassiveKnobDeviceInstance deviceInstance; lock (settingsLock) { + if (analogOutputValues.TryGetValue(index, out var currentValue) && currentValue == value) + return; + + analogOutputValues[index] = value; + + + if (activeDevice == null) + return; + var list = GetActionMappingList(MassiveKnobActionType.OutputAnalog); if (index >= list.Count) return; @@ -385,13 +404,19 @@ namespace MassiveKnob.Core public void SetDigitalOutput(IMassiveKnobActionContext context, int index, bool on) { - if (activeDevice == null) - return; - IMassiveKnobDeviceInstance deviceInstance; lock (settingsLock) { + if (digitalOutputValues.TryGetValue(index, out var currentValue) && currentValue == on) + return; + + digitalOutputValues[index] = on; + + + if (activeDevice == null) + return; + var list = GetActionMappingList(MassiveKnobActionType.OutputDigital); if (index >= list.Count) return; @@ -433,16 +458,16 @@ namespace MassiveKnob.Core switch (actionType) { case MassiveKnobActionType.InputAnalog: - return massiveKnobSettings.AnalogInput; + return settings.AnalogInput; case MassiveKnobActionType.InputDigital: - return massiveKnobSettings.DigitalInput; + return settings.DigitalInput; case MassiveKnobActionType.OutputAnalog: - return massiveKnobSettings.AnalogOutput; + return settings.AnalogOutput; case MassiveKnobActionType.OutputDigital: - return massiveKnobSettings.DigitalOutput; + return settings.DigitalOutput; default: throw new ArgumentOutOfRangeException(nameof(actionType), actionType, null); @@ -455,7 +480,7 @@ namespace MassiveKnob.Core lock (settingsLock) { - massiveKnobSettingsSnapshot = massiveKnobSettings.Clone(); + massiveKnobSettingsSnapshot = settings.Clone(); } flushSettingsQueue.Enqueue(async () => @@ -482,10 +507,10 @@ namespace MassiveKnob.Core lock (settingsLock) { - UpdateMapping(analogInputs, specs.AnalogInputCount, massiveKnobSettings.AnalogInput, DelayedInitialize); - UpdateMapping(digitalInputs, specs.DigitalInputCount, massiveKnobSettings.DigitalInput, DelayedInitialize); - UpdateMapping(analogOutputs, specs.AnalogOutputCount, massiveKnobSettings.AnalogOutput, DelayedInitialize); - UpdateMapping(digitalOutputs, specs.DigitalOutputCount, massiveKnobSettings.DigitalOutput, DelayedInitialize); + UpdateMapping(analogInputs, specs.AnalogInputCount, settings.AnalogInput, DelayedInitialize); + UpdateMapping(digitalInputs, specs.DigitalInputCount, settings.DigitalInput, DelayedInitialize); + UpdateMapping(analogOutputs, specs.AnalogOutputCount, settings.AnalogOutput, DelayedInitialize); + UpdateMapping(digitalOutputs, specs.DigitalOutputCount, settings.DigitalOutput, DelayedInitialize); } foreach (var delayedInitializeAction in delayedInitializeActions) @@ -603,21 +628,20 @@ namespace MassiveKnob.Core public void Connecting() { - // TODO (should have) update status ? + owner.SetDeviceStatus(this, MassiveKnobDeviceStatus.Connecting); } public void Connected(DeviceSpecs specs) { - // TODO (should have) update status ? - + owner.SetDeviceStatus(this, MassiveKnobDeviceStatus.Connected); owner.UpdateActiveDeviceSpecs(this, specs); } public void Disconnected() { - // TODO (should have) update status ? + owner.SetDeviceStatus(this, MassiveKnobDeviceStatus.Disconnected); } diff --git a/Windows/MassiveKnob/Strings.Designer.cs b/Windows/MassiveKnob/Strings.Designer.cs index 34f5acc..60fd47e 100644 --- a/Windows/MassiveKnob/Strings.Designer.cs +++ b/Windows/MassiveKnob/Strings.Designer.cs @@ -69,6 +69,33 @@ namespace MassiveKnob { } } + /// + /// Looks up a localized string similar to Connected. + /// + public static string DeviceStatusConnected { + get { + return ResourceManager.GetString("DeviceStatusConnected", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Connecting.... + /// + public static string DeviceStatusConnecting { + get { + return ResourceManager.GetString("DeviceStatusConnecting", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Disconnected. + /// + public static string DeviceStatusDisconnected { + get { + return ResourceManager.GetString("DeviceStatusDisconnected", resourceCulture); + } + } + /// /// Looks up a localized string similar to Input #{0}. /// diff --git a/Windows/MassiveKnob/Strings.resx b/Windows/MassiveKnob/Strings.resx index bb908fd..4924581 100644 --- a/Windows/MassiveKnob/Strings.resx +++ b/Windows/MassiveKnob/Strings.resx @@ -120,6 +120,15 @@ Not configured + + Connected + + + Connecting... + + + Disconnected + Input #{0} diff --git a/Windows/MassiveKnob/View/Settings/DeviceView.xaml b/Windows/MassiveKnob/View/Settings/DeviceView.xaml index c540ea7..334a619 100644 --- a/Windows/MassiveKnob/View/Settings/DeviceView.xaml +++ b/Windows/MassiveKnob/View/Settings/DeviceView.xaml @@ -39,6 +39,11 @@ + + + + + diff --git a/Windows/MassiveKnob/ViewModel/SettingsViewModel.cs b/Windows/MassiveKnob/ViewModel/SettingsViewModel.cs index 0c4ff78..f4b4703 100644 --- a/Windows/MassiveKnob/ViewModel/SettingsViewModel.cs +++ b/Windows/MassiveKnob/ViewModel/SettingsViewModel.cs @@ -8,6 +8,7 @@ using System.Reflection; using System.Runtime.CompilerServices; using System.Windows; using System.Windows.Controls; +using System.Windows.Media; using MassiveKnob.Core; using MassiveKnob.Plugin; using MassiveKnob.Settings; @@ -18,7 +19,7 @@ using Serilog.Events; namespace MassiveKnob.ViewModel { // TODO (code quality) split ViewModel for individual views, create viewmodel using container - // TODO (must have) show device status + // TODO (nice to have) installed plugins list public class SettingsViewModel : IDisposable, INotifyPropertyChanged { private readonly Dictionary menuItemControls = new Dictionary @@ -47,6 +48,8 @@ namespace MassiveKnob.ViewModel private IEnumerable analogOutputs; private IEnumerable digitalOutputs; + private IDisposable activeDeviceSubscription; + private IDisposable deviceStatusSubscription; // ReSharper disable UnusedMember.Global - used by WPF Binding public SettingsMenuItem SelectedMenuItem @@ -77,18 +80,18 @@ namespace MassiveKnob.ViewModel { if (value == selectedView) return; - + selectedView = value; OnPropertyChanged(); } } - - + + public IList Devices { get; } public IList Actions { get; } - + public DeviceViewModel SelectedDevice { get => selectedDevice; @@ -141,23 +144,27 @@ namespace MassiveKnob.ViewModel AnalogInputs = Enumerable .Range(0, specs?.AnalogInputCount ?? 0) - .Select(i => new InputOutputViewModel(this, orchestrator, MassiveKnobActionType.InputAnalog, i)); + .Select(i => new InputOutputViewModel(this, orchestrator, MassiveKnobActionType.InputAnalog, i)) + .ToList(); DigitalInputs = Enumerable .Range(0, specs?.DigitalInputCount ?? 0) - .Select(i => new InputOutputViewModel(this, orchestrator, MassiveKnobActionType.InputDigital, i)); + .Select(i => new InputOutputViewModel(this, orchestrator, MassiveKnobActionType.InputDigital, i)) + .ToList(); AnalogOutputs = Enumerable .Range(0, specs?.AnalogOutputCount ?? 0) - .Select(i => new InputOutputViewModel(this, orchestrator, MassiveKnobActionType.OutputAnalog, i)); + .Select(i => new InputOutputViewModel(this, orchestrator, MassiveKnobActionType.OutputAnalog, i)) + .ToList(); DigitalOutputs = Enumerable .Range(0, specs?.DigitalOutputCount ?? 0) - .Select(i => new InputOutputViewModel(this, orchestrator, MassiveKnobActionType.OutputDigital, i)); + .Select(i => new InputOutputViewModel(this, orchestrator, MassiveKnobActionType.OutputDigital, i)) + .ToList(); } } - + public Visibility AnalogInputVisibility => specs.HasValue && specs.Value.AnalogInputCount > 0 ? Visibility.Visible : Visibility.Collapsed; @@ -213,11 +220,12 @@ namespace MassiveKnob.ViewModel OnPropertyChanged(); } } - - + + public IList LoggingLevels { get; } - + private LoggingLevelViewModel selectedLoggingLevel; + public LoggingLevelViewModel SelectedLoggingLevel { get => selectedLoggingLevel; @@ -225,7 +233,7 @@ namespace MassiveKnob.ViewModel { if (value == selectedLoggingLevel) return; - + selectedLoggingLevel = value; OnPropertyChanged(); @@ -235,6 +243,7 @@ namespace MassiveKnob.ViewModel private bool loggingEnabled; + public bool LoggingEnabled { get => loggingEnabled; @@ -245,14 +254,16 @@ namespace MassiveKnob.ViewModel loggingEnabled = value; OnPropertyChanged(); - + ApplyLoggingSettings(); } } // TODO (code quality) do not hardcode path here - public string LoggingOutputPath { get; } = string.Format(Strings.LoggingOutputPath, Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), @"MassiveKnob", @"Logs")); + public string LoggingOutputPath { get; } = string.Format(Strings.LoggingOutputPath, + Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), @"MassiveKnob", + @"Logs")); private bool runAtStartup; @@ -270,6 +281,55 @@ namespace MassiveKnob.ViewModel ApplyRunAtStartup(); } } + + + public string ConnectionStatusText + { + get + { + if (orchestrator == null) + return "Design-time"; + + switch (orchestrator.DeviceStatus) + { + case MassiveKnobDeviceStatus.Disconnected: + return Strings.DeviceStatusDisconnected; + + case MassiveKnobDeviceStatus.Connecting: + return Strings.DeviceStatusConnecting; + + case MassiveKnobDeviceStatus.Connected: + return Strings.DeviceStatusConnected; + + default: + return null; + } + } + } + + public Brush ConnectionStatusColor + { + get + { + if (orchestrator == null) + return Brushes.Fuchsia; + + switch (orchestrator.DeviceStatus) + { + case MassiveKnobDeviceStatus.Disconnected: + return Brushes.DarkRed; + + case MassiveKnobDeviceStatus.Connecting: + return Brushes.Orange; + + case MassiveKnobDeviceStatus.Connected: + return Brushes.ForestGreen; + + default: + return null; + } + } + } // ReSharper restore UnusedMember.Global @@ -288,11 +348,17 @@ namespace MassiveKnob.ViewModel SelectedMenuItem = activeMenuItem; - orchestrator.ActiveDeviceSubject.Subscribe(info => { Specs = info.Specs; }); + activeDeviceSubscription = orchestrator.ActiveDeviceSubject.Subscribe(info => { Specs = info.Specs; }); + deviceStatusSubscription = orchestrator.DeviceStatusSubject.Subscribe(status => + { + OnDependantPropertyChanged(nameof(ConnectionStatusColor)); + OnDependantPropertyChanged(nameof(ConnectionStatusText)); + }); Devices = pluginManager.GetDevicePlugins() .SelectMany(dp => dp.Devices.Select(d => new DeviceViewModel(dp, d))) + .OrderBy(d => d.Name.ToLower()) .ToList(); var allActions = new List @@ -302,7 +368,8 @@ namespace MassiveKnob.ViewModel allActions.AddRange( pluginManager.GetActionPlugins() - .SelectMany(ap => ap.Actions.Select(a => new ActionViewModel(ap, a)))); + .SelectMany(ap => ap.Actions.Select(a => new ActionViewModel(ap, a))) + .OrderBy(a => a.Name.ToLower())); Actions = allActions; diff --git a/Windows/VoicemeeterRemote b/Windows/VoicemeeterRemote index 5d259cd..e0e17e5 160000 --- a/Windows/VoicemeeterRemote +++ b/Windows/VoicemeeterRemote @@ -1 +1 @@ -Subproject commit 5d259cdaee942029487e37a02e9a32ed9833d80c +Subproject commit e0e17e56feca7987a567a324132f785f1548a33f From 0e27fec1e97871552791028f1ca5084749377a34 Mon Sep 17 00:00:00 2001 From: Mark van Renswoude Date: Sun, 7 Mar 2021 10:52:15 +0100 Subject: [PATCH 16/19] Added Run / Run at startup options to setup --- .../MassiveKnob.Plugin.VoiceMeeter.csproj | 2 +- Windows/MassiveKnob/Program.cs | 1 + Windows/Setup/MassiveKnobSetup.iss | 6 +++++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Windows/MassiveKnob.Plugin.VoiceMeeter/MassiveKnob.Plugin.VoiceMeeter.csproj b/Windows/MassiveKnob.Plugin.VoiceMeeter/MassiveKnob.Plugin.VoiceMeeter.csproj index 76aaf7d..d155968 100644 --- a/Windows/MassiveKnob.Plugin.VoiceMeeter/MassiveKnob.Plugin.VoiceMeeter.csproj +++ b/Windows/MassiveKnob.Plugin.VoiceMeeter/MassiveKnob.Plugin.VoiceMeeter.csproj @@ -17,7 +17,7 @@ true full false - $(localappdata)\MassiveKnob\Plugins\VoiceMeeter\ + bin\Debug\ DEBUG;TRACE prompt 4 diff --git a/Windows/MassiveKnob/Program.cs b/Windows/MassiveKnob/Program.cs index e3d0a56..d6d9064 100644 --- a/Windows/MassiveKnob/Program.cs +++ b/Windows/MassiveKnob/Program.cs @@ -11,6 +11,7 @@ using SimpleInjector; namespace MassiveKnob { + // TODO (should have) global exception handler - AppDomain.CurrentDomain.UnhandledException public static class Program { [STAThread] diff --git a/Windows/Setup/MassiveKnobSetup.iss b/Windows/Setup/MassiveKnobSetup.iss index 32f6fca..ded0de0 100644 --- a/Windows/Setup/MassiveKnobSetup.iss +++ b/Windows/Setup/MassiveKnobSetup.iss @@ -41,6 +41,7 @@ Name: optionalplugins\voicemeeter; Description: "VoiceMeeter actions"; Types: fu [Tasks] Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked +Name: "runatstartup"; Description: "{cm:AutoStartProgram,{#AppName}}"; GroupDescription: "{cm:AutoStartProgramGroupDescription}"; Flags: unchecked [Files] ; Main application @@ -73,8 +74,11 @@ Name: "{localappdata}\MassiveKnob\Plugins" Name: "{commonprograms}\{#AppName}"; Filename: "{app}\{#AppExeName}" Name: "{commondesktop}\{#AppName}"; Filename: "{app}\{#AppExeName}"; Tasks: desktopicon +[Registry] +Root: HKCU; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; ValueType: string; ValueName: "MassiveKnob"; ValueData: "{app}\{#AppExeName}.exe"; Tasks: runatstartup; + [Run] -;Filename: "{app}\{#AppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(AppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent +Filename: "{app}\{#AppExeName}"; Description: "{cm:LaunchProgram,{#AppName}}"; Flags: nowait postinstall skipifsilent [Code] // .NET version detection credit goes to: From 543b55f3baec5439d45971816c644dbc4ec9530b Mon Sep 17 00:00:00 2001 From: Mark van Renswoude Date: Mon, 8 Mar 2021 20:18:47 +0100 Subject: [PATCH 17/19] Added support for analog outputs (basic PWM) to Arduino Sketch Added support for binding digital output actions to analog outputs Fixed a few NullReferenceExceptions Fixed Serial "Connecting..." state Fixed update issues when multiple VoiceMeeter output actions are configured Fixed VoiceMeeter Remote not logging out --- Arduino/MassiveKnob/MassiveKnob.ino | 91 +++++++++++-- .../Base/BaseDeviceSettingsViewModel.cs | 2 +- .../GetDefault/DeviceGetDefaultAction.cs | 18 +-- .../GetMuted/DeviceGetMutedAction.cs | 18 +-- .../GetVolume/DeviceGetVolumeAction.cs | 18 +-- .../OSD/OSDManager.cs | 6 +- .../Worker/SerialWorker.cs | 5 +- .../VoiceMeeterGetParameterAction.cs | 10 +- .../InstanceRegister.cs | 84 +++++++++++- .../Strings.Designer.cs | 4 +- .../Strings.resx | 4 +- .../Core/IMassiveKnobOrchestrator.cs | 3 + .../Core/MassiveKnobOrchestrator.cs | 124 ++++++++++++++---- Windows/MassiveKnob/Program.cs | 1 + .../Settings/MassiveKnobSettings.cs | 21 ++- Windows/MassiveKnob/Strings.Designer.cs | 27 ++++ Windows/MassiveKnob/Strings.resx | 9 ++ Windows/MassiveKnob/View/InputOutputView.xaml | 25 +++- .../ViewModel/InputOutputViewModel.cs | 115 +++++++++++++++- .../ViewModel/SettingsViewModel.cs | 8 +- Windows/min.NET | 2 +- 21 files changed, 513 insertions(+), 82 deletions(-) diff --git a/Arduino/MassiveKnob/MassiveKnob.ino b/Arduino/MassiveKnob/MassiveKnob.ino index 291bc8e..9829040 100644 --- a/Arduino/MassiveKnob/MassiveKnob.ino +++ b/Arduino/MassiveKnob/MassiveKnob.ino @@ -5,13 +5,15 @@ * */ // Set this to the number of potentiometers you have connected -const byte AnalogInputCount = 3; +const byte AnalogInputCount = 2; // Set this to the number of buttons you have connected -const byte DigitalInputCount = 0; +const byte DigitalInputCount = 3; -// Not supported yet - maybe PWM and/or other means of analog output? -const byte AnalogOutputCount = 0; +// Set this to the number of PWM outputs you have connected +// Note that this version of the sketch only does a simple analogWrite with the full range, +// which is not compatible with servos. Modify as required. +const byte AnalogOutputCount = 3; // Set this to the number of digital outputs you have connected const byte DigitalOutputCount = 0; @@ -20,14 +22,27 @@ const byte DigitalOutputCount = 0; // For each potentiometer, specify the pin const byte AnalogInputPin[AnalogInputCount] = { A0, - A1, - A2 + A1 }; // For each button, specify the pin. Assumes pull-up. const byte DigitalInputPin[DigitalInputCount] = { + 7, + 8, + 9 }; +// For each analog output, specify the PWM capable pin +const byte AnalogOutputPin[AnalogOutputCount] = { + 3, + 5, + 6 +}; + +// Define this constant to apply a standard LED brightness curve to (all) analog outputs +#define AnalogOutputGammaCorrection + + // For each digital output, specify the pin const byte DigitalOutputPin[DigitalOutputCount] = { }; @@ -107,7 +122,7 @@ struct DigitalInputStatus struct AnalogInputStatus analogInputStatus[AnalogInputCount]; -struct DigitalInputStatus digitalInputStatus[AnalogInputCount]; +struct DigitalInputStatus digitalInputStatus[DigitalInputCount]; void setup() @@ -143,6 +158,13 @@ void setup() analogInputStatus[i].LastChange = millis(); } + // Set up analog outputs + for (byte i = 0; i < AnalogOutputCount; i++) + { + pinMode(AnalogOutputPin[i], OUTPUT); + analogWrite(AnalogOutputPin[i], 0); + } + // Set up digital inputs and outputs for (byte i = 0; i < DigitalInputCount; i++) @@ -181,6 +203,27 @@ unsigned long focusOutputTime; #define IsDigitalInputFocus(i) ((focusType == FocusInputType.DigitalInput) && (focusInputIndex == i)) +#ifdef AnalogOutputGammaCorrection +const uint8_t PROGMEM gamma8[] = { + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, + 2, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, 5, 5, + 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, + 10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 14, 14, 15, 15, 16, 16, + 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 24, 24, 25, + 25, 26, 27, 27, 28, 29, 29, 30, 31, 32, 32, 33, 34, 35, 35, 36, + 37, 38, 39, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 50, + 51, 52, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 66, 67, 68, + 69, 70, 72, 73, 74, 75, 77, 78, 79, 81, 82, 83, 85, 86, 87, 89, + 90, 92, 93, 95, 96, 98, 99,101,102,104,105,107,109,110,112,114, + 115,117,119,120,122,124,126,127,129,131,133,135,137,138,140,142, + 144,146,148,150,152,154,156,158,160,162,164,167,169,171,173,175, + 177,180,182,184,186,189,191,193,196,198,200,203,205,208,210,213, + 215,218,220,223,225,228,231,233,236,239,241,244,247,249,252,255 }; +#endif + + void loop() { #ifndef DebugOutputPlotter @@ -291,6 +334,8 @@ void loop() } Serial.println(); + + lastOutput = millis(); } #endif } @@ -306,7 +351,7 @@ void min_application_handler(uint8_t min_id, uint8_t *min_payload, uint8_t len_p break; case FrameIDAnalogOutput: - //processAnalogOutputMessage(); + processAnalogOutputMessage(min_payload, len_payload); break; case FrameIDDigitalOutput: @@ -364,6 +409,36 @@ void processDigitalOutputMessage(uint8_t *min_payload, uint8_t len_payload) } +void processAnalogOutputMessage(uint8_t *min_payload, uint8_t len_payload) +{ + if (len_payload < 2) + { + outputError("Invalid analog output payload length"); + return; + } + + byte outputIndex = min_payload[0]; + if (outputIndex < AnalogOutputCount) + { + byte value = min_payload[1]; + if (value > 100) + value = 100; + + value = map(value, 0, 100, 0, 255); + + #ifdef AnalogOutputGammaCorrection + value = pgm_read_byte(&gamma8[value]); + #endif + + analogWrite(AnalogOutputPin[min_payload[0]], value); + + focusType = FocusTypeOutput; + focusOutputTime = millis(); + } + else + outputError("Invalid analog output index: " + String(outputIndex)); +} + void processQuitMessage() { active = false; diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/Base/BaseDeviceSettingsViewModel.cs b/Windows/MassiveKnob.Plugin.CoreAudio/Base/BaseDeviceSettingsViewModel.cs index 9f89426..c560580 100644 --- a/Windows/MassiveKnob.Plugin.CoreAudio/Base/BaseDeviceSettingsViewModel.cs +++ b/Windows/MassiveKnob.Plugin.CoreAudio/Base/BaseDeviceSettingsViewModel.cs @@ -82,7 +82,7 @@ namespace MassiveKnob.Plugin.CoreAudio.Base .Select(PlaybackDeviceViewModel.FromDevice) .ToList(); - Application.Current.Dispatcher.Invoke(() => + Application.Current?.Dispatcher.Invoke(() => { PlaybackDevices = deviceViewModels; SelectedDevice = deviceViewModels.SingleOrDefault(d => d.Id == settings.DeviceId); diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/GetDefault/DeviceGetDefaultAction.cs b/Windows/MassiveKnob.Plugin.CoreAudio/GetDefault/DeviceGetDefaultAction.cs index 17c184f..4ee16ea 100644 --- a/Windows/MassiveKnob.Plugin.CoreAudio/GetDefault/DeviceGetDefaultAction.cs +++ b/Windows/MassiveKnob.Plugin.CoreAudio/GetDefault/DeviceGetDefaultAction.cs @@ -44,15 +44,17 @@ namespace MassiveKnob.Plugin.CoreAudio.GetDefault private void ApplySettings() { - if (playbackDevice != null && playbackDevice.Id == settings.DeviceId) - return; - - var coreAudioController = CoreAudioControllerInstance.Acquire(); - playbackDevice = settings.DeviceId.HasValue ? coreAudioController.GetDevice(settings.DeviceId.Value) : null; + if (playbackDevice == null || playbackDevice.Id != settings.DeviceId) + { + var coreAudioController = CoreAudioControllerInstance.Acquire(); + playbackDevice = settings.DeviceId.HasValue + ? coreAudioController.GetDevice(settings.DeviceId.Value) + : null; + + deviceChanged?.Dispose(); + deviceChanged = playbackDevice?.PropertyChanged.Subscribe(PropertyChanged); + } - deviceChanged?.Dispose(); - deviceChanged = playbackDevice?.PropertyChanged.Subscribe(PropertyChanged); - CheckActive(); } diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/GetMuted/DeviceGetMutedAction.cs b/Windows/MassiveKnob.Plugin.CoreAudio/GetMuted/DeviceGetMutedAction.cs index 01b8476..a6c6035 100644 --- a/Windows/MassiveKnob.Plugin.CoreAudio/GetMuted/DeviceGetMutedAction.cs +++ b/Windows/MassiveKnob.Plugin.CoreAudio/GetMuted/DeviceGetMutedAction.cs @@ -44,15 +44,17 @@ namespace MassiveKnob.Plugin.CoreAudio.GetMuted private void ApplySettings() { - if (playbackDevice != null && playbackDevice.Id == settings.DeviceId) - return; - - var coreAudioController = CoreAudioControllerInstance.Acquire(); - playbackDevice = settings.DeviceId.HasValue ? coreAudioController.GetDevice(settings.DeviceId.Value) : null; + if (playbackDevice == null || playbackDevice.Id != settings.DeviceId) + { + var coreAudioController = CoreAudioControllerInstance.Acquire(); + playbackDevice = settings.DeviceId.HasValue + ? coreAudioController.GetDevice(settings.DeviceId.Value) + : null; + + deviceChanged?.Dispose(); + deviceChanged = playbackDevice?.MuteChanged.Subscribe(MuteChanged); + } - deviceChanged?.Dispose(); - deviceChanged = playbackDevice?.MuteChanged.Subscribe(MuteChanged); - if (playbackDevice != null) actionContext.SetDigitalOutput(settings.Inverted ? !playbackDevice.IsMuted : playbackDevice.IsMuted); } diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/GetVolume/DeviceGetVolumeAction.cs b/Windows/MassiveKnob.Plugin.CoreAudio/GetVolume/DeviceGetVolumeAction.cs index 1de4061..1fef7d8 100644 --- a/Windows/MassiveKnob.Plugin.CoreAudio/GetVolume/DeviceGetVolumeAction.cs +++ b/Windows/MassiveKnob.Plugin.CoreAudio/GetVolume/DeviceGetVolumeAction.cs @@ -44,15 +44,17 @@ namespace MassiveKnob.Plugin.CoreAudio.GetVolume private void ApplySettings() { - if (playbackDevice != null && playbackDevice.Id == settings.DeviceId) - return; - - var coreAudioController = CoreAudioControllerInstance.Acquire(); - playbackDevice = settings.DeviceId.HasValue ? coreAudioController.GetDevice(settings.DeviceId.Value) : null; + if (playbackDevice == null || playbackDevice.Id != settings.DeviceId) + { + var coreAudioController = CoreAudioControllerInstance.Acquire(); + playbackDevice = settings.DeviceId.HasValue + ? coreAudioController.GetDevice(settings.DeviceId.Value) + : null; + + deviceChanged?.Dispose(); + deviceChanged = playbackDevice?.VolumeChanged.Subscribe(VolumeChanged); + } - deviceChanged?.Dispose(); - deviceChanged = playbackDevice?.VolumeChanged.Subscribe(VolumeChanged); - if (playbackDevice != null) actionContext.SetAnalogOutput((byte)playbackDevice.Volume); } diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/OSD/OSDManager.cs b/Windows/MassiveKnob.Plugin.CoreAudio/OSD/OSDManager.cs index 77ffd61..ad134ce 100644 --- a/Windows/MassiveKnob.Plugin.CoreAudio/OSD/OSDManager.cs +++ b/Windows/MassiveKnob.Plugin.CoreAudio/OSD/OSDManager.cs @@ -15,7 +15,7 @@ namespace MassiveKnob.Plugin.CoreAudio.OSD public static void Show(IDevice device) { - Application.Current.Dispatcher.Invoke(() => + Application.Current?.Dispatcher.Invoke(() => { if (window == null) { @@ -41,9 +41,11 @@ namespace MassiveKnob.Plugin.CoreAudio.OSD { hideTimer?.Dispose(); hideTimer = null; + + window = null; } - + private static void Hide() { Application.Current?.Dispatcher.Invoke(() => diff --git a/Windows/MassiveKnob.Plugin.SerialDevice/Worker/SerialWorker.cs b/Windows/MassiveKnob.Plugin.SerialDevice/Worker/SerialWorker.cs index 1449597..c55a2cc 100644 --- a/Windows/MassiveKnob.Plugin.SerialDevice/Worker/SerialWorker.cs +++ b/Windows/MassiveKnob.Plugin.SerialDevice/Worker/SerialWorker.cs @@ -49,8 +49,6 @@ namespace MassiveKnob.Plugin.SerialDevice.Worker public void Connect(string portName, int baudRate, bool dtrEnable) { - context.Connecting(); - lock (minProtocolLock) { if (portName == lastPortName && baudRate == lastBaudRate && dtrEnable == lastDtrEnable) @@ -61,11 +59,12 @@ namespace MassiveKnob.Plugin.SerialDevice.Worker lastDtrEnable = dtrEnable; Disconnect(); + context.Connecting(); if (string.IsNullOrEmpty(portName) || baudRate == 0) return; - + minProtocol?.Dispose(); minProtocol = new MINProtocol(new MINSerialTransport(portName, baudRate, dtrEnable: dtrEnable), logger); minProtocol.OnConnected += MinProtocolOnOnConnected; diff --git a/Windows/MassiveKnob.Plugin.VoiceMeeter/GetParameter/VoiceMeeterGetParameterAction.cs b/Windows/MassiveKnob.Plugin.VoiceMeeter/GetParameter/VoiceMeeterGetParameterAction.cs index ac76b15..bce5bd2 100644 --- a/Windows/MassiveKnob.Plugin.VoiceMeeter/GetParameter/VoiceMeeterGetParameterAction.cs +++ b/Windows/MassiveKnob.Plugin.VoiceMeeter/GetParameter/VoiceMeeterGetParameterAction.cs @@ -26,7 +26,6 @@ namespace MassiveKnob.Plugin.VoiceMeeter.GetParameter private IMassiveKnobActionContext actionContext; private VoiceMeeterGetParameterActionSettings settings; private VoiceMeeterGetParameterActionSettingsViewModel viewModel; - private Parameters parameters; private IDisposable parameterChanged; @@ -44,7 +43,6 @@ namespace MassiveKnob.Plugin.VoiceMeeter.GetParameter { InstanceRegister.Unregister(this); parameterChanged?.Dispose(); - parameters?.Dispose(); } @@ -54,17 +52,11 @@ namespace MassiveKnob.Plugin.VoiceMeeter.GetParameter { parameterChanged?.Dispose(); parameterChanged = null; - - parameters?.Dispose(); - parameters = null; return; } - if (parameters == null) - parameters = new Parameters(); - if (parameterChanged == null) - parameterChanged = parameters.Subscribe(x => ParametersChanged()); + parameterChanged = InstanceRegister.SubscribeToParameterChanges(ParametersChanged); ParametersChanged(); } diff --git a/Windows/MassiveKnob.Plugin.VoiceMeeter/InstanceRegister.cs b/Windows/MassiveKnob.Plugin.VoiceMeeter/InstanceRegister.cs index e04e945..f61fa4b 100644 --- a/Windows/MassiveKnob.Plugin.VoiceMeeter/InstanceRegister.cs +++ b/Windows/MassiveKnob.Plugin.VoiceMeeter/InstanceRegister.cs @@ -11,6 +11,13 @@ namespace MassiveKnob.Plugin.VoiceMeeter private static readonly HashSet Instances = new HashSet(); private static Task initializeTask; + private static readonly object SubscribersLock = new object(); + private static Parameters parameters; + private static IDisposable parametersSubscriber; + private static readonly List ParameterSubscriberActions = new List(); + + private static IDisposable voicemeeterClient; + // The VoiceMeeter Remote only connects to one instance, so all actions need to be in sync private static RunVoicemeeterParam version; @@ -27,7 +34,8 @@ namespace MassiveKnob.Plugin.VoiceMeeter initializeTask = Task.Run(async () => { - await global::VoiceMeeter.Remote.Initialize(version); + voicemeeterClient?.Dispose(); + voicemeeterClient = await global::VoiceMeeter.Remote.Initialize(version); }); } } @@ -37,6 +45,55 @@ namespace MassiveKnob.Plugin.VoiceMeeter { return initializeTask ?? Task.CompletedTask; } + + + // For the same reason, we can only subscribe to the parameters once, as they will not be "dirty" + // for other subscribers otherwise + public static IDisposable SubscribeToParameterChanges(Action action) + { + lock (SubscribersLock) + { + if (parameters == null) + { + parameters = new Parameters(); + parametersSubscriber = parameters.Subscribe(x => NotifyParameterSubscribers()); + } + + ParameterSubscriberActions.Add(action); + return new ParametersSubscriber(action); + } + } + + + private static void NotifyParameterSubscribers() + { + Action[] subscribers; + + lock (SubscribersLock) + { + subscribers = ParameterSubscriberActions.ToArray(); + } + + foreach (var subscriber in subscribers) + subscriber(); + } + + + private static void RemoveParameterSubscriber(Action action) + { + lock (SubscribersLock) + { + // ReSharper disable once InvertIf + if (ParameterSubscriberActions.Remove(action) && ParameterSubscriberActions.Count == 0) + { + parametersSubscriber.Dispose(); + parametersSubscriber = null; + + parameters.Dispose(); + parameters = null; + } + } + } public static void Register(IVoiceMeeterAction instance) @@ -52,7 +109,12 @@ namespace MassiveKnob.Plugin.VoiceMeeter { lock (InstancesLock) { - Instances.Remove(instance); + // ReSharper disable once InvertIf + if (Instances.Remove(instance) && Instances.Count == 0) + { + voicemeeterClient?.Dispose(); + voicemeeterClient = null; + } } } @@ -65,5 +127,23 @@ namespace MassiveKnob.Plugin.VoiceMeeter action(instance); } } + + + private class ParametersSubscriber : IDisposable + { + private readonly Action action; + + + public ParametersSubscriber(Action action) + { + this.action = action; + } + + + public void Dispose() + { + InstanceRegister.RemoveParameterSubscriber(action); + } + } } } diff --git a/Windows/MassiveKnob.Plugin.VoiceMeeter/Strings.Designer.cs b/Windows/MassiveKnob.Plugin.VoiceMeeter/Strings.Designer.cs index 2cbb168..7460a8c 100644 --- a/Windows/MassiveKnob.Plugin.VoiceMeeter/Strings.Designer.cs +++ b/Windows/MassiveKnob.Plugin.VoiceMeeter/Strings.Designer.cs @@ -70,7 +70,7 @@ namespace MassiveKnob.Plugin.VoiceMeeter { } /// - /// Looks up a localized string similar to Get parameter. + /// Looks up a localized string similar to VoiceMeeter: Get parameter. /// public static string GetParameterName { get { @@ -106,7 +106,7 @@ namespace MassiveKnob.Plugin.VoiceMeeter { } /// - /// Looks up a localized string similar to Run macro. + /// Looks up a localized string similar to VoiceMeeter: Run macro. /// public static string RunMacroName { get { diff --git a/Windows/MassiveKnob.Plugin.VoiceMeeter/Strings.resx b/Windows/MassiveKnob.Plugin.VoiceMeeter/Strings.resx index f688f92..2b62915 100644 --- a/Windows/MassiveKnob.Plugin.VoiceMeeter/Strings.resx +++ b/Windows/MassiveKnob.Plugin.VoiceMeeter/Strings.resx @@ -121,7 +121,7 @@ Turns the output on if the specified parameter equals the specified value. - Get parameter + VoiceMeeter: Get parameter Provides actions to run VoiceMeeter macros or check the current state. @@ -133,7 +133,7 @@ Runs a VoiceMeeter macro when the input turns on. - Run macro + VoiceMeeter: Run macro Inverted (on if the parameter does not equal the value) diff --git a/Windows/MassiveKnob/Core/IMassiveKnobOrchestrator.cs b/Windows/MassiveKnob/Core/IMassiveKnobOrchestrator.cs index 45ef9c2..670bd57 100644 --- a/Windows/MassiveKnob/Core/IMassiveKnobOrchestrator.cs +++ b/Windows/MassiveKnob/Core/IMassiveKnobOrchestrator.cs @@ -18,6 +18,9 @@ namespace MassiveKnob.Core MassiveKnobActionInfo GetAction(MassiveKnobActionType actionType, int index); MassiveKnobActionInfo SetAction(MassiveKnobActionType actionType, int index, IMassiveKnobAction action); + MassiveKnobSettings.DigitalToAnalogSettings GetDigitalToAnalogSettings(int analogOutputIndex); + void UpdateDigitalToAnalogSettings(int analogOutputIndex, Action applyChanges); + MassiveKnobSettings GetSettings(); void UpdateSettings(Action applyChanges); } diff --git a/Windows/MassiveKnob/Core/MassiveKnobOrchestrator.cs b/Windows/MassiveKnob/Core/MassiveKnobOrchestrator.cs index 5c5fac7..75e1d35 100644 --- a/Windows/MassiveKnob/Core/MassiveKnobOrchestrator.cs +++ b/Windows/MassiveKnob/Core/MassiveKnobOrchestrator.cs @@ -32,6 +32,7 @@ namespace MassiveKnob.Core private readonly Dictionary analogOutputValues = new Dictionary(); private readonly Dictionary digitalOutputValues = new Dictionary(); + private readonly Dictionary digitalToAnalogOutputValues = new Dictionary(); public MassiveKnobDeviceInfo ActiveDevice @@ -150,7 +151,7 @@ namespace MassiveKnob.Core Action initializeAfterRegistration = null; - var mapping = CreateActionMapping(action, index, (actionInstance, actionContext) => + var mapping = CreateActionMapping(actionType, action, index, (actionInstance, actionContext) => { initializeAfterRegistration = () => actionInstance.Initialize(actionContext); }); @@ -165,7 +166,44 @@ namespace MassiveKnob.Core return mapping?.ActionInfo; } + + public MassiveKnobSettings.DigitalToAnalogSettings GetDigitalToAnalogSettings(int analogOutputIndex) + { + lock (settingsLock) + { + var settingsList = GetActionSettingsList(MassiveKnobActionType.OutputAnalog); + if (analogOutputIndex >= settingsList.Count) + return new MassiveKnobSettings.DigitalToAnalogSettings(); + + return settingsList[analogOutputIndex].DigitalToAnalog?.Clone() ?? new MassiveKnobSettings.DigitalToAnalogSettings(); + } + } + + public void UpdateDigitalToAnalogSettings(int analogOutputIndex, Action applyChanges) + { + lock (settingsLock) + { + var settingsList = GetActionSettingsList(MassiveKnobActionType.OutputAnalog); + while (analogOutputIndex >= settingsList.Count) + settingsList.Add(null); + + if (settingsList[analogOutputIndex] == null) + settingsList[analogOutputIndex] = new MassiveKnobSettings.ActionSettings(); + + if (settingsList[analogOutputIndex].DigitalToAnalog == null) + settingsList[analogOutputIndex].DigitalToAnalog = new MassiveKnobSettings.DigitalToAnalogSettings(); + + applyChanges(settingsList[analogOutputIndex].DigitalToAnalog); + } + + FlushSettings(); + + if (digitalToAnalogOutputValues.TryGetValue(analogOutputIndex, out var on)) + SetDigitalToAnalogOutput(null, analogOutputIndex, on, true); + } + + public MassiveKnobSettings GetSettings() { lock (settingsLock) @@ -214,7 +252,6 @@ namespace MassiveKnob.Core ActiveDevice?.Instance.Dispose(); SetDeviceStatus(null, MassiveKnobDeviceStatus.Disconnected); - // TODO (must have) move initialization to separate Task, to prevent issues at startup // TODO (must have) exception handling! if (device != null) { @@ -373,13 +410,13 @@ namespace MassiveKnob.Core } - public void SetAnalogOutput(IMassiveKnobActionContext context, int index, byte value) + public void SetAnalogOutput(IMassiveKnobActionContext context, int index, byte value, bool force) { IMassiveKnobDeviceInstance deviceInstance; lock (settingsLock) { - if (analogOutputValues.TryGetValue(index, out var currentValue) && currentValue == value) + if (!force && analogOutputValues.TryGetValue(index, out var currentValue) && currentValue == value) return; analogOutputValues[index] = value; @@ -402,13 +439,49 @@ namespace MassiveKnob.Core } - public void SetDigitalOutput(IMassiveKnobActionContext context, int index, bool on) + public void SetDigitalToAnalogOutput(IMassiveKnobActionContext context, int index, bool on, bool force) + { + IMassiveKnobDeviceInstance deviceInstance; + MassiveKnobSettings.DigitalToAnalogSettings digitalToAnalogSettings = null; + + lock (settingsLock) + { + if (!force && digitalToAnalogOutputValues.TryGetValue(index, out var currentValue) && currentValue == on) + return; + + digitalToAnalogOutputValues[index] = on; + + + if (activeDevice == null) + return; + + var list = GetActionMappingList(MassiveKnobActionType.OutputAnalog); + if (index >= list.Count) + return; + + if (context != null && list[index]?.Context != context) + return; + + var settingsList = GetActionSettingsList(MassiveKnobActionType.OutputAnalog); + if (index < settingsList.Count) + digitalToAnalogSettings = settingsList[index].DigitalToAnalog; + + deviceInstance = activeDevice.Instance; + } + + deviceInstance.SetAnalogOutput(index, on + ? digitalToAnalogSettings?.OnValue ?? 100 + : digitalToAnalogSettings?.OffValue ?? 0); + } + + + public void SetDigitalOutput(IMassiveKnobActionContext context, int index, bool on, bool force) { IMassiveKnobDeviceInstance deviceInstance; lock (settingsLock) { - if (digitalOutputValues.TryGetValue(index, out var currentValue) && currentValue == on) + if (!force && digitalOutputValues.TryGetValue(index, out var currentValue) && currentValue == on) return; digitalOutputValues[index] = on; @@ -426,7 +499,7 @@ namespace MassiveKnob.Core deviceInstance = activeDevice.Instance; } - + deviceInstance.SetDigitalOutput(index, on); } @@ -507,10 +580,10 @@ namespace MassiveKnob.Core lock (settingsLock) { - UpdateMapping(analogInputs, specs.AnalogInputCount, settings.AnalogInput, DelayedInitialize); - UpdateMapping(digitalInputs, specs.DigitalInputCount, settings.DigitalInput, DelayedInitialize); - UpdateMapping(analogOutputs, specs.AnalogOutputCount, settings.AnalogOutput, DelayedInitialize); - UpdateMapping(digitalOutputs, specs.DigitalOutputCount, settings.DigitalOutput, DelayedInitialize); + UpdateMapping(analogInputs, specs.AnalogInputCount, MassiveKnobActionType.InputAnalog, settings.AnalogInput, DelayedInitialize); + UpdateMapping(digitalInputs, specs.DigitalInputCount, MassiveKnobActionType.InputDigital, settings.DigitalInput, DelayedInitialize); + UpdateMapping(analogOutputs, specs.AnalogOutputCount, MassiveKnobActionType.OutputAnalog, settings.AnalogOutput, DelayedInitialize); + UpdateMapping(digitalOutputs, specs.DigitalOutputCount, MassiveKnobActionType.OutputDigital, settings.DigitalOutput, DelayedInitialize); } foreach (var delayedInitializeAction in delayedInitializeActions) @@ -525,14 +598,17 @@ namespace MassiveKnob.Core // Send out all cached values to initialize the device's outputs foreach (var pair in analogOutputValues.Where(pair => pair.Key < specs.AnalogOutputCount)) - SetAnalogOutput(null, pair.Key, pair.Value); + SetAnalogOutput(null, pair.Key, pair.Value, true); foreach (var pair in digitalOutputValues.Where(pair => pair.Key < specs.DigitalOutputCount)) - SetDigitalOutput(null, pair.Key, pair.Value); + SetDigitalOutput(null, pair.Key, pair.Value, true); + + foreach (var pair in digitalToAnalogOutputValues.Where(pair => pair.Key < specs.AnalogOutputCount)) + SetDigitalToAnalogOutput(null, pair.Key, pair.Value, true); } - private void UpdateMapping(List mapping, int newCount, List actionSettings, Action initializeOutsideLock) + private void UpdateMapping(List mapping, int newCount, MassiveKnobActionType assignedActionType, List actionSettings, Action initializeOutsideLock) { if (mapping.Count > newCount) { @@ -555,7 +631,7 @@ namespace MassiveKnob.Core if (actionIndex < actionSettings.Count && actionSettings[actionIndex] != null) { var action = allActions.FirstOrDefault(d => d.ActionId == actionSettings[actionIndex].ActionId); - mapping.Add(CreateActionMapping(action, actionIndex, initializeOutsideLock)); + mapping.Add(CreateActionMapping(assignedActionType, action, actionIndex, initializeOutsideLock)); } else mapping.Add(null); @@ -564,7 +640,7 @@ namespace MassiveKnob.Core } - private ActionMapping CreateActionMapping(IMassiveKnobAction action, int index, Action initialize) + private ActionMapping CreateActionMapping(MassiveKnobActionType assignedActionType, IMassiveKnobAction action, int index, Action initialize) { if (action == null) return null; @@ -573,12 +649,12 @@ namespace MassiveKnob.Core new { Action = action.ActionId, - action.ActionType, + ActionType = assignedActionType, Index = index }); var instance = action.Create(new SerilogLoggerProvider(actionLogger).CreateLogger(null)); - var context = new ActionContext(this, action, index); + var context = new ActionContext(this, action, index, assignedActionType); var mapping = new ActionMapping(new MassiveKnobActionInfo(action, instance), context); initialize(instance, context); @@ -663,13 +739,14 @@ namespace MassiveKnob.Core private readonly MassiveKnobOrchestrator owner; private readonly IMassiveKnobAction action; private readonly int index; + private readonly MassiveKnobActionType assignedActionType; - - public ActionContext(MassiveKnobOrchestrator owner, IMassiveKnobAction action, int index) + public ActionContext(MassiveKnobOrchestrator owner, IMassiveKnobAction action, int index, MassiveKnobActionType assignedActionType) { this.owner = owner; this.action = action; this.index = index; + this.assignedActionType = assignedActionType; } @@ -687,13 +764,16 @@ namespace MassiveKnob.Core public void SetAnalogOutput(byte value) { - owner.SetAnalogOutput(this, index, value); + owner.SetAnalogOutput(this, index, value, false); } public void SetDigitalOutput(bool on) { - owner.SetDigitalOutput(this, index, on); + if (assignedActionType == MassiveKnobActionType.OutputAnalog) + owner.SetDigitalToAnalogOutput(this, index, on, false); + else + owner.SetDigitalOutput(this, index, on, false); } } } diff --git a/Windows/MassiveKnob/Program.cs b/Windows/MassiveKnob/Program.cs index d6d9064..0e64f6f 100644 --- a/Windows/MassiveKnob/Program.cs +++ b/Windows/MassiveKnob/Program.cs @@ -23,6 +23,7 @@ namespace MassiveKnob loggingSwitch.SetLogging(settings.Log.Enabled, settings.Log.Level); var logger = new LoggerConfiguration() + .MinimumLevel.Verbose() .Filter.ByIncludingOnly(loggingSwitch.IsIncluded) .Enrich.FromLogContext() .WriteTo.File( diff --git a/Windows/MassiveKnob/Settings/MassiveKnobSettings.cs b/Windows/MassiveKnob/Settings/MassiveKnobSettings.cs index 33a194a..b56c4f1 100644 --- a/Windows/MassiveKnob/Settings/MassiveKnobSettings.cs +++ b/Windows/MassiveKnob/Settings/MassiveKnobSettings.cs @@ -89,6 +89,7 @@ namespace MassiveKnob.Settings { public Guid ActionId { get; set; } public JObject Settings { get; set; } + public DigitalToAnalogSettings DigitalToAnalog { get; set; } public ActionSettings Clone() { @@ -97,7 +98,25 @@ namespace MassiveKnob.Settings ActionId = ActionId, // This is safe, as the JObject itself is never manipulated, only replaced - Settings = Settings + Settings = Settings, + + DigitalToAnalog = DigitalToAnalog?.Clone() + }; + } + } + + + public class DigitalToAnalogSettings + { + public byte OffValue { get; set; } + public byte OnValue { get; set; } = 100; + + public DigitalToAnalogSettings Clone() + { + return new DigitalToAnalogSettings + { + OffValue = OffValue, + OnValue = OnValue }; } } diff --git a/Windows/MassiveKnob/Strings.Designer.cs b/Windows/MassiveKnob/Strings.Designer.cs index 60fd47e..b34191f 100644 --- a/Windows/MassiveKnob/Strings.Designer.cs +++ b/Windows/MassiveKnob/Strings.Designer.cs @@ -96,6 +96,33 @@ namespace MassiveKnob { } } + /// + /// Looks up a localized string similar to You are assigning a digital action to an analog output. Please specify how you want to represent the on and off values.. + /// + public static string DigitalToAnalogDescription { + get { + return ResourceManager.GetString("DigitalToAnalogDescription", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Off. + /// + public static string DigitalToAnalogOff { + get { + return ResourceManager.GetString("DigitalToAnalogOff", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to On. + /// + public static string DigitalToAnalogOn { + get { + return ResourceManager.GetString("DigitalToAnalogOn", resourceCulture); + } + } + /// /// Looks up a localized string similar to Input #{0}. /// diff --git a/Windows/MassiveKnob/Strings.resx b/Windows/MassiveKnob/Strings.resx index 4924581..58fdfc1 100644 --- a/Windows/MassiveKnob/Strings.resx +++ b/Windows/MassiveKnob/Strings.resx @@ -129,6 +129,15 @@ Disconnected + + You are assigning a digital action to an analog output. Please specify how you want to represent the on and off values. + + + Off + + + On + Input #{0} diff --git a/Windows/MassiveKnob/View/InputOutputView.xaml b/Windows/MassiveKnob/View/InputOutputView.xaml index 5e0a3fc..99fc97f 100644 --- a/Windows/MassiveKnob/View/InputOutputView.xaml +++ b/Windows/MassiveKnob/View/InputOutputView.xaml @@ -5,9 +5,10 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:helpers="clr-namespace:MassiveKnob.Helpers" xmlns:viewModel="clr-namespace:MassiveKnob.ViewModel" + xmlns:massiveKnob="clr-namespace:MassiveKnob" mc:Ignorable="d" - d:DesignHeight="100" d:DesignWidth="800" - d:DataContext="{d:DesignInstance viewModel:InputOutputViewModel}"> + d:DesignHeight="300" d:DesignWidth="600" + d:DataContext="{d:DesignInstance viewModel:InputOutputViewModelDesignTime, IsDesignTimeCreatable=True}"> @@ -39,6 +40,26 @@ DropdownItemsTemplate={StaticResource ActionDropdownItem}}" /> + + + + + + + + + + + + + + + + + + + + diff --git a/Windows/MassiveKnob/ViewModel/InputOutputViewModel.cs b/Windows/MassiveKnob/ViewModel/InputOutputViewModel.cs index bd81402..4bdb10b 100644 --- a/Windows/MassiveKnob/ViewModel/InputOutputViewModel.cs +++ b/Windows/MassiveKnob/ViewModel/InputOutputViewModel.cs @@ -2,7 +2,10 @@ using System.Collections.Generic; using System.ComponentModel; using System.Linq; +using System.Reactive.Linq; +using System.Reactive.Subjects; using System.Runtime.CompilerServices; +using System.Windows; using System.Windows.Controls; using MassiveKnob.Core; using MassiveKnob.Plugin; @@ -41,6 +44,7 @@ namespace MassiveKnob.ViewModel var actionInfo = orchestrator.SetAction(actionType, index, selectedAction?.Action); OnPropertyChanged(); + OnDependantPropertyChanged(nameof(DigitalToAnalogVisibility)); ActionSettingsControl = actionInfo?.Instance.CreateSettingsControl(); } @@ -61,6 +65,61 @@ namespace MassiveKnob.ViewModel OnPropertyChanged(); } } + + public Visibility DigitalToAnalogVisibility + { + get + { + // Design-time support + if (orchestrator == null) + return Visibility.Visible; + + if (actionType != MassiveKnobActionType.OutputAnalog) + return Visibility.Collapsed; + + if (SelectedAction == null || SelectedAction.RepresentsNull) + return Visibility.Collapsed; + + return SelectedAction.Action.ActionType == MassiveKnobActionType.OutputDigital + ? Visibility.Visible + : Visibility.Collapsed; + } + } + + + private readonly Subject throttledDigitalToAnalogChanged = new Subject(); + private readonly IDisposable digitalToAnalogChangedSubscription; + + private byte digitalToAnalogOn; + public byte DigitalToAnalogOn + { + get => digitalToAnalogOn; + set + { + if (actionType != MassiveKnobActionType.OutputAnalog || value == digitalToAnalogOn) + return; + + digitalToAnalogOn = value; + OnPropertyChanged(); + throttledDigitalToAnalogChanged.OnNext(true); + } + } + + + private byte digitalToAnalogOff; + public byte DigitalToAnalogOff + { + get => digitalToAnalogOff; + set + { + if (actionType != MassiveKnobActionType.OutputAnalog || value == digitalToAnalogOff) + return; + + digitalToAnalogOff = value; + OnPropertyChanged(); + throttledDigitalToAnalogChanged.OnNext(true); + } + } // ReSharper restore UnusedMember.Global @@ -73,10 +132,27 @@ namespace MassiveKnob.ViewModel // For design-time support if (orchestrator == null) + { + DigitalToAnalogOn = 100; return; + } - Actions = settingsViewModel.Actions.Where(a => a.RepresentsNull || a.Action.ActionType == actionType).ToList(); + bool AllowAction(ActionViewModel actionViewModel) + { + if (actionViewModel.RepresentsNull) + return true; + + if (actionViewModel.Action.ActionType == actionType) + return true; + + // Allow digital actions to be assigned to analog outputs, extra conversion settings will be shown + return actionType == MassiveKnobActionType.OutputAnalog && + actionViewModel.Action.ActionType == MassiveKnobActionType.OutputDigital; + } + + + Actions = settingsViewModel.Actions.Where(AllowAction).ToList(); var actionInfo = orchestrator.GetAction(actionType, index); @@ -85,13 +161,35 @@ namespace MassiveKnob.ViewModel : Actions.Single(a => a.RepresentsNull); actionSettingsControl = actionInfo?.Instance.CreateSettingsControl(); + + + if (actionType != MassiveKnobActionType.OutputAnalog) + return; + + var digitalToAnalogSettings = orchestrator.GetDigitalToAnalogSettings(index); + digitalToAnalogOn = digitalToAnalogSettings.OnValue; + digitalToAnalogOff = digitalToAnalogSettings.OffValue; + + digitalToAnalogChangedSubscription = throttledDigitalToAnalogChanged + .Throttle(TimeSpan.FromMilliseconds(250)) + .Subscribe(b => + { + orchestrator?.UpdateDigitalToAnalogSettings(index, settings => + { + settings.OnValue = digitalToAnalogOn; + settings.OffValue = digitalToAnalogOff; + }); + }); } - + public void Dispose() { if (ActionSettingsControl is IDisposable disposable) disposable.Dispose(); + + digitalToAnalogChangedSubscription?.Dispose(); + throttledDigitalToAnalogChanged.Dispose(); } @@ -101,5 +199,18 @@ namespace MassiveKnob.ViewModel { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } + + protected virtual void OnDependantPropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } + } + + + public class InputOutputViewModelDesignTime : InputOutputViewModel + { + public InputOutputViewModelDesignTime() : base(null, null, MassiveKnobActionType.OutputAnalog, 0) + { + } } } diff --git a/Windows/MassiveKnob/ViewModel/SettingsViewModel.cs b/Windows/MassiveKnob/ViewModel/SettingsViewModel.cs index f4b4703..f104af3 100644 --- a/Windows/MassiveKnob/ViewModel/SettingsViewModel.cs +++ b/Windows/MassiveKnob/ViewModel/SettingsViewModel.cs @@ -348,7 +348,13 @@ namespace MassiveKnob.ViewModel SelectedMenuItem = activeMenuItem; - activeDeviceSubscription = orchestrator.ActiveDeviceSubject.Subscribe(info => { Specs = info.Specs; }); + activeDeviceSubscription = orchestrator.ActiveDeviceSubject.Subscribe(info => + { + Application.Current?.Dispatcher.Invoke(() => + { + Specs = info.Specs; + }); + }); deviceStatusSubscription = orchestrator.DeviceStatusSubject.Subscribe(status => { OnDependantPropertyChanged(nameof(ConnectionStatusColor)); diff --git a/Windows/min.NET b/Windows/min.NET index 65c76b3..35b664d 160000 --- a/Windows/min.NET +++ b/Windows/min.NET @@ -1 +1 @@ -Subproject commit 65c76b3f214522dd5f1da3704b83375bf238daba +Subproject commit 35b664d1fe5a03cfc112683e07dbf307dfe3d164 From df57d665bf8e2915680e9d184a6935e789b6d909 Mon Sep 17 00:00:00 2001 From: Mark van Renswoude Date: Mon, 8 Mar 2021 20:27:17 +0100 Subject: [PATCH 18/19] Fixed ReSharper code issues --- .../GetDefault/DeviceGetDefaultAction.cs | 5 +++-- .../Worker/SerialWorker.cs | 10 ++++++++++ .../Base/BaseVoiceMeeterSettingsView.xaml.cs | 4 +--- .../GetParameter/VoiceMeeterGetParameterAction.cs | 2 -- .../MassiveKnob.Plugin.VoiceMeeter/InstanceRegister.cs | 2 +- .../Properties/AssemblyInfo.cs | 1 - .../RunMacro/VoiceMeeterRunMacroAction.cs | 1 - .../VoiceMeeterRunMacroActionSettingsViewModel.cs | 2 +- Windows/MassiveKnob.sln.DotSettings | 4 +++- Windows/MassiveKnob/Core/PluginManager.cs | 2 +- Windows/MassiveKnob/Settings/LoggingSwitch.cs | 3 +-- Windows/MassiveKnob/ViewModel/InputOutputViewModel.cs | 2 +- Windows/MassiveKnob/ViewModel/SettingsViewModel.cs | 9 ++++++--- 13 files changed, 28 insertions(+), 19 deletions(-) diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/GetDefault/DeviceGetDefaultAction.cs b/Windows/MassiveKnob.Plugin.CoreAudio/GetDefault/DeviceGetDefaultAction.cs index 4ee16ea..cfe5bbf 100644 --- a/Windows/MassiveKnob.Plugin.CoreAudio/GetDefault/DeviceGetDefaultAction.cs +++ b/Windows/MassiveKnob.Plugin.CoreAudio/GetDefault/DeviceGetDefaultAction.cs @@ -1,7 +1,6 @@ using System; using System.Windows.Controls; using AudioSwitcher.AudioApi; -using MassiveKnob.Plugin.CoreAudio.OSD; using Microsoft.Extensions.Logging; namespace MassiveKnob.Plugin.CoreAudio.GetDefault @@ -93,9 +92,11 @@ namespace MassiveKnob.Plugin.CoreAudio.GetDefault if (playbackDevice == null) return; + // ReSharper disable ArrangeRedundantParentheses - maybe, but way easier to read var isDefault = (settings.Playback && playbackDevice.IsDefaultDevice) || (settings.Communications && playbackDevice.IsDefaultCommunicationsDevice); - + // ReSharper restore ArrangeRedundantParentheses + actionContext.SetDigitalOutput(settings.Inverted ? !isDefault : isDefault); } } diff --git a/Windows/MassiveKnob.Plugin.SerialDevice/Worker/SerialWorker.cs b/Windows/MassiveKnob.Plugin.SerialDevice/Worker/SerialWorker.cs index c55a2cc..26a85f7 100644 --- a/Windows/MassiveKnob.Plugin.SerialDevice/Worker/SerialWorker.cs +++ b/Windows/MassiveKnob.Plugin.SerialDevice/Worker/SerialWorker.cs @@ -43,6 +43,16 @@ namespace MassiveKnob.Plugin.SerialDevice.Worker public void Dispose() { + IMINProtocol instance; + + lock (minProtocolLock) + { + instance = minProtocol; + } + + if (instance != null) + Task.WaitAny(new [] { instance.QueueFrame((byte) MassiveKnobFrameID.Quit, Array.Empty()) }, 500); + Disconnect(); } diff --git a/Windows/MassiveKnob.Plugin.VoiceMeeter/Base/BaseVoiceMeeterSettingsView.xaml.cs b/Windows/MassiveKnob.Plugin.VoiceMeeter/Base/BaseVoiceMeeterSettingsView.xaml.cs index 7898e40..31f0dc4 100644 --- a/Windows/MassiveKnob.Plugin.VoiceMeeter/Base/BaseVoiceMeeterSettingsView.xaml.cs +++ b/Windows/MassiveKnob.Plugin.VoiceMeeter/Base/BaseVoiceMeeterSettingsView.xaml.cs @@ -1,6 +1,4 @@ -using System; - -namespace MassiveKnob.Plugin.VoiceMeeter.Base +namespace MassiveKnob.Plugin.VoiceMeeter.Base { /// /// Interaction logic for BaseVoiceMeeterSettingsView.xaml diff --git a/Windows/MassiveKnob.Plugin.VoiceMeeter/GetParameter/VoiceMeeterGetParameterAction.cs b/Windows/MassiveKnob.Plugin.VoiceMeeter/GetParameter/VoiceMeeterGetParameterAction.cs index bce5bd2..3e54e47 100644 --- a/Windows/MassiveKnob.Plugin.VoiceMeeter/GetParameter/VoiceMeeterGetParameterAction.cs +++ b/Windows/MassiveKnob.Plugin.VoiceMeeter/GetParameter/VoiceMeeterGetParameterAction.cs @@ -1,6 +1,4 @@ using System; -using System.Collections.Generic; -using System.Runtime.Remoting.Channels; using System.Windows.Controls; using Microsoft.Extensions.Logging; using Voicemeeter; diff --git a/Windows/MassiveKnob.Plugin.VoiceMeeter/InstanceRegister.cs b/Windows/MassiveKnob.Plugin.VoiceMeeter/InstanceRegister.cs index f61fa4b..8e04e78 100644 --- a/Windows/MassiveKnob.Plugin.VoiceMeeter/InstanceRegister.cs +++ b/Windows/MassiveKnob.Plugin.VoiceMeeter/InstanceRegister.cs @@ -142,7 +142,7 @@ namespace MassiveKnob.Plugin.VoiceMeeter public void Dispose() { - InstanceRegister.RemoveParameterSubscriber(action); + RemoveParameterSubscriber(action); } } } diff --git a/Windows/MassiveKnob.Plugin.VoiceMeeter/Properties/AssemblyInfo.cs b/Windows/MassiveKnob.Plugin.VoiceMeeter/Properties/AssemblyInfo.cs index 1da267e..29339bf 100644 --- a/Windows/MassiveKnob.Plugin.VoiceMeeter/Properties/AssemblyInfo.cs +++ b/Windows/MassiveKnob.Plugin.VoiceMeeter/Properties/AssemblyInfo.cs @@ -1,5 +1,4 @@ using System.Reflection; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // General Information about an assembly is controlled through the following diff --git a/Windows/MassiveKnob.Plugin.VoiceMeeter/RunMacro/VoiceMeeterRunMacroAction.cs b/Windows/MassiveKnob.Plugin.VoiceMeeter/RunMacro/VoiceMeeterRunMacroAction.cs index d786243..6755e8f 100644 --- a/Windows/MassiveKnob.Plugin.VoiceMeeter/RunMacro/VoiceMeeterRunMacroAction.cs +++ b/Windows/MassiveKnob.Plugin.VoiceMeeter/RunMacro/VoiceMeeterRunMacroAction.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; using System.Threading.Tasks; using System.Windows.Controls; using Microsoft.Extensions.Logging; diff --git a/Windows/MassiveKnob.Plugin.VoiceMeeter/RunMacro/VoiceMeeterRunMacroActionSettingsViewModel.cs b/Windows/MassiveKnob.Plugin.VoiceMeeter/RunMacro/VoiceMeeterRunMacroActionSettingsViewModel.cs index d8af847..90e5cef 100644 --- a/Windows/MassiveKnob.Plugin.VoiceMeeter/RunMacro/VoiceMeeterRunMacroActionSettingsViewModel.cs +++ b/Windows/MassiveKnob.Plugin.VoiceMeeter/RunMacro/VoiceMeeterRunMacroActionSettingsViewModel.cs @@ -5,7 +5,7 @@ using MassiveKnob.Plugin.VoiceMeeter.Base; namespace MassiveKnob.Plugin.VoiceMeeter.RunMacro { - public class VoiceMeeterRunMacroActionSettingsViewModel : BaseVoiceMeeterSettingsViewModel, IDisposable + public class VoiceMeeterRunMacroActionSettingsViewModel : BaseVoiceMeeterSettingsViewModel { private readonly Subject throttledScriptChanged = new Subject(); private readonly IDisposable scriptChangedSubscription; diff --git a/Windows/MassiveKnob.sln.DotSettings b/Windows/MassiveKnob.sln.DotSettings index 650e2cf..4e657d2 100644 --- a/Windows/MassiveKnob.sln.DotSettings +++ b/Windows/MassiveKnob.sln.DotSettings @@ -4,4 +4,6 @@ OSD SOF UI - OSD \ No newline at end of file + OSD + False + True \ No newline at end of file diff --git a/Windows/MassiveKnob/Core/PluginManager.cs b/Windows/MassiveKnob/Core/PluginManager.cs index 45bb752..e5434b3 100644 --- a/Windows/MassiveKnob/Core/PluginManager.cs +++ b/Windows/MassiveKnob/Core/PluginManager.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; @@ -278,6 +277,7 @@ namespace MassiveKnob.Core private class PluginMetadata { + // ReSharper disable once UnusedAutoPropertyAccessor.Local - for JSON deserialization public string EntryAssembly { get; set; } } } diff --git a/Windows/MassiveKnob/Settings/LoggingSwitch.cs b/Windows/MassiveKnob/Settings/LoggingSwitch.cs index 736f63d..25bc220 100644 --- a/Windows/MassiveKnob/Settings/LoggingSwitch.cs +++ b/Windows/MassiveKnob/Settings/LoggingSwitch.cs @@ -1,5 +1,4 @@ -using System; -using Serilog.Core; +using Serilog.Core; using Serilog.Events; namespace MassiveKnob.Settings diff --git a/Windows/MassiveKnob/ViewModel/InputOutputViewModel.cs b/Windows/MassiveKnob/ViewModel/InputOutputViewModel.cs index 4bdb10b..ee18670 100644 --- a/Windows/MassiveKnob/ViewModel/InputOutputViewModel.cs +++ b/Windows/MassiveKnob/ViewModel/InputOutputViewModel.cs @@ -174,7 +174,7 @@ namespace MassiveKnob.ViewModel .Throttle(TimeSpan.FromMilliseconds(250)) .Subscribe(b => { - orchestrator?.UpdateDigitalToAnalogSettings(index, settings => + orchestrator.UpdateDigitalToAnalogSettings(index, settings => { settings.OnValue = digitalToAnalogOn; settings.OffValue = digitalToAnalogOff; diff --git a/Windows/MassiveKnob/ViewModel/SettingsViewModel.cs b/Windows/MassiveKnob/ViewModel/SettingsViewModel.cs index f104af3..11e1928 100644 --- a/Windows/MassiveKnob/ViewModel/SettingsViewModel.cs +++ b/Windows/MassiveKnob/ViewModel/SettingsViewModel.cs @@ -48,8 +48,8 @@ namespace MassiveKnob.ViewModel private IEnumerable analogOutputs; private IEnumerable digitalOutputs; - private IDisposable activeDeviceSubscription; - private IDisposable deviceStatusSubscription; + private readonly IDisposable activeDeviceSubscription; + private readonly IDisposable deviceStatusSubscription; // ReSharper disable UnusedMember.Global - used by WPF Binding public SettingsMenuItem SelectedMenuItem @@ -393,7 +393,7 @@ namespace MassiveKnob.ViewModel new LoggingLevelViewModel(LogEventLevel.Error, Strings.LoggingLevelError, Strings.LoggingLevelErrorDescription), new LoggingLevelViewModel(LogEventLevel.Warning, Strings.LoggingLevelWarning, Strings.LoggingLevelWarningDescription), new LoggingLevelViewModel(LogEventLevel.Information, Strings.LoggingLevelInformation, Strings.LoggingLevelInformationDescription), - new LoggingLevelViewModel(LogEventLevel.Verbose, Strings.LoggingLevelVerbose, Strings.LoggingLevelVerboseDescription), + new LoggingLevelViewModel(LogEventLevel.Verbose, Strings.LoggingLevelVerbose, Strings.LoggingLevelVerboseDescription) }; selectedLoggingLevel = LoggingLevels.SingleOrDefault(l => l.Level == logSettings.Level) @@ -415,6 +415,9 @@ namespace MassiveKnob.ViewModel DisposeInputOutputViewModels(DigitalInputs); DisposeInputOutputViewModels(AnalogOutputs); DisposeInputOutputViewModels(DigitalOutputs); + + activeDeviceSubscription?.Dispose(); + deviceStatusSubscription?.Dispose(); } From 217013d4cc5ccec4514cbf58b035ee2be893dc54 Mon Sep 17 00:00:00 2001 From: Mark van Renswoude Date: Mon, 8 Mar 2021 20:46:18 +0100 Subject: [PATCH 19/19] Fixed #1: Settings for Analog Outputs are not remembered And a few other null-related fixes --- .../Core/MassiveKnobOrchestrator.cs | 20 ++++++------- .../ViewModel/InputOutputViewModel.cs | 29 ++++++++++--------- 2 files changed, 26 insertions(+), 23 deletions(-) diff --git a/Windows/MassiveKnob/Core/MassiveKnobOrchestrator.cs b/Windows/MassiveKnob/Core/MassiveKnobOrchestrator.cs index 75e1d35..d1c28e9 100644 --- a/Windows/MassiveKnob/Core/MassiveKnobOrchestrator.cs +++ b/Windows/MassiveKnob/Core/MassiveKnobOrchestrator.cs @@ -132,7 +132,7 @@ namespace MassiveKnob.Core return null; if (list[index]?.ActionInfo.Info == action) - return list[index].ActionInfo; + return list[index]?.ActionInfo; list[index]?.ActionInfo.Instance?.Dispose(); @@ -175,7 +175,7 @@ namespace MassiveKnob.Core if (analogOutputIndex >= settingsList.Count) return new MassiveKnobSettings.DigitalToAnalogSettings(); - return settingsList[analogOutputIndex].DigitalToAnalog?.Clone() ?? new MassiveKnobSettings.DigitalToAnalogSettings(); + return settingsList[analogOutputIndex]?.DigitalToAnalog?.Clone() ?? new MassiveKnobSettings.DigitalToAnalogSettings(); } } @@ -320,18 +320,18 @@ namespace MassiveKnob.Core } - protected T GetActionSettings(IMassiveKnobActionContext context, IMassiveKnobAction action, int index) where T : class, new() + protected T GetActionSettings(IMassiveKnobActionContext context, MassiveKnobActionType actionType, IMassiveKnobAction action, int index) where T : class, new() { lock (settingsLock) { - var list = GetActionMappingList(action.ActionType); + var list = GetActionMappingList(actionType); if (index >= list.Count) return new T(); if (list[index]?.Context != context) throw new InvalidOperationException("Caller must be the active action to retrieve the settings"); - var settingsList = GetActionSettingsList(action.ActionType); + var settingsList = GetActionSettingsList(actionType); if (index >= settingsList.Count) return new T(); @@ -340,18 +340,18 @@ namespace MassiveKnob.Core } - protected void SetActionSettings(IMassiveKnobActionContext context, IMassiveKnobAction action, int index, T actionSettings) where T : class, new() + protected void SetActionSettings(IMassiveKnobActionContext context, MassiveKnobActionType actionType, IMassiveKnobAction action, int index, T actionSettings) where T : class, new() { lock (settingsLock) { - var list = GetActionMappingList(action.ActionType); + var list = GetActionMappingList(actionType); if (index >= list.Count) return; if (list[index]?.Context != context) throw new InvalidOperationException("Caller must be the active action to retrieve the settings"); - var settingsList = GetActionSettingsList(action.ActionType); + var settingsList = GetActionSettingsList(actionType); while (index >= settingsList.Count) settingsList.Add(null); @@ -752,13 +752,13 @@ namespace MassiveKnob.Core public T GetSettings() where T : class, new() { - return owner.GetActionSettings(this, action, index); + return owner.GetActionSettings(this, assignedActionType, action, index); } public void SetSettings(T settings) where T : class, new() { - owner.SetActionSettings(this, action, index, settings); + owner.SetActionSettings(this, assignedActionType, action, index, settings); } diff --git a/Windows/MassiveKnob/ViewModel/InputOutputViewModel.cs b/Windows/MassiveKnob/ViewModel/InputOutputViewModel.cs index ee18670..77c3d11 100644 --- a/Windows/MassiveKnob/ViewModel/InputOutputViewModel.cs +++ b/Windows/MassiveKnob/ViewModel/InputOutputViewModel.cs @@ -26,7 +26,7 @@ namespace MassiveKnob.ViewModel public string DisplayName => string.Format( actionType == MassiveKnobActionType.OutputAnalog || actionType == MassiveKnobActionType.OutputDigital ? Strings.OutputHeader - : Strings.InputHeader, + : Strings.InputHeader, index + 1); public IList Actions { get; } @@ -40,7 +40,7 @@ namespace MassiveKnob.ViewModel if (value == selectedAction) return; - selectedAction = value == null || value.RepresentsNull ? null : value; + selectedAction = value == null || value.RepresentsNull ? Actions.Single(a => a.RepresentsNull) : value; var actionInfo = orchestrator.SetAction(actionType, index, selectedAction?.Action); OnPropertyChanged(); @@ -60,7 +60,7 @@ namespace MassiveKnob.ViewModel if (actionSettingsControl is IDisposable disposable) disposable.Dispose(); - + actionSettingsControl = value; OnPropertyChanged(); } @@ -91,6 +91,7 @@ namespace MassiveKnob.ViewModel private readonly IDisposable digitalToAnalogChangedSubscription; private byte digitalToAnalogOn; + public byte DigitalToAnalogOn { get => digitalToAnalogOn; @@ -107,6 +108,7 @@ namespace MassiveKnob.ViewModel private byte digitalToAnalogOff; + public byte DigitalToAnalogOff { get => digitalToAnalogOff; @@ -123,13 +125,14 @@ namespace MassiveKnob.ViewModel // ReSharper restore UnusedMember.Global - public InputOutputViewModel(SettingsViewModel settingsViewModel, IMassiveKnobOrchestrator orchestrator, MassiveKnobActionType actionType, int index) + public InputOutputViewModel(SettingsViewModel settingsViewModel, IMassiveKnobOrchestrator orchestrator, + MassiveKnobActionType actionType, int index) { this.orchestrator = orchestrator; this.actionType = actionType; this.index = index; - - + + // For design-time support if (orchestrator == null) { @@ -142,7 +145,7 @@ namespace MassiveKnob.ViewModel { if (actionViewModel.RepresentsNull) return true; - + if (actionViewModel.Action.ActionType == actionType) return true; @@ -150,12 +153,12 @@ namespace MassiveKnob.ViewModel return actionType == MassiveKnobActionType.OutputAnalog && actionViewModel.Action.ActionType == MassiveKnobActionType.OutputDigital; } - - + + Actions = settingsViewModel.Actions.Where(AllowAction).ToList(); var actionInfo = orchestrator.GetAction(actionType, index); - + selectedAction = actionInfo != null ? Actions.SingleOrDefault(a => !a.RepresentsNull && a.Action.ActionId == actionInfo.Info.ActionId) : Actions.Single(a => a.RepresentsNull); @@ -163,9 +166,9 @@ namespace MassiveKnob.ViewModel actionSettingsControl = actionInfo?.Instance.CreateSettingsControl(); - if (actionType != MassiveKnobActionType.OutputAnalog) + if (actionType != MassiveKnobActionType.OutputAnalog) return; - + var digitalToAnalogSettings = orchestrator.GetDigitalToAnalogSettings(index); digitalToAnalogOn = digitalToAnalogSettings.OnValue; digitalToAnalogOff = digitalToAnalogSettings.OffValue; @@ -213,4 +216,4 @@ namespace MassiveKnob.ViewModel { } } -} +} \ No newline at end of file

    fjO1g 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 literal 0 HcmV?d00001 diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/GetDefault/DeviceGetDefaultAction.cs b/Windows/MassiveKnob.Plugin.CoreAudio/GetDefault/DeviceGetDefaultAction.cs index b2c921b..17c184f 100644 --- a/Windows/MassiveKnob.Plugin.CoreAudio/GetDefault/DeviceGetDefaultAction.cs +++ b/Windows/MassiveKnob.Plugin.CoreAudio/GetDefault/DeviceGetDefaultAction.cs @@ -80,7 +80,7 @@ namespace MassiveKnob.Plugin.CoreAudio.GetDefault CheckActive(); - // TODO default OSD + // TODO (should have) OSD for changing default //if (settings.OSD) //OSDManager.Show(args.Device); } diff --git a/Windows/MassiveKnob.Plugin.CoreAudio/SetDefault/DeviceSetDefaultAction.cs b/Windows/MassiveKnob.Plugin.CoreAudio/SetDefault/DeviceSetDefaultAction.cs index 4026741..251b661 100644 --- a/Windows/MassiveKnob.Plugin.CoreAudio/SetDefault/DeviceSetDefaultAction.cs +++ b/Windows/MassiveKnob.Plugin.CoreAudio/SetDefault/DeviceSetDefaultAction.cs @@ -75,7 +75,7 @@ namespace MassiveKnob.Plugin.CoreAudio.SetDefault await playbackDevice.SetAsDefaultCommunicationsAsync(); - // TODO OSD for default device + // TODO (should have) OSD for changing default //if (settings.OSD) //OSDManager.Show(playbackDevice); } diff --git a/Windows/MassiveKnob.Plugin.SerialDevice/Settings/SerialDeviceSettingsViewModel.cs b/Windows/MassiveKnob.Plugin.SerialDevice/Settings/SerialDeviceSettingsViewModel.cs index c2d0b3e..55c2e20 100644 --- a/Windows/MassiveKnob.Plugin.SerialDevice/Settings/SerialDeviceSettingsViewModel.cs +++ b/Windows/MassiveKnob.Plugin.SerialDevice/Settings/SerialDeviceSettingsViewModel.cs @@ -98,12 +98,6 @@ namespace MassiveKnob.Plugin.SerialDevice.Settings } - protected virtual void OnOtherPropertyChanged(string propertyName) - { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); - } - - public void OnNext(DeviceNotificationEvent value) { diff --git a/Windows/MassiveKnob.Plugin.VoiceMeeter/Base/BaseVoiceMeeterSettingsView.xaml.cs b/Windows/MassiveKnob.Plugin.VoiceMeeter/Base/BaseVoiceMeeterSettingsView.xaml.cs index 31f0dc4..7898e40 100644 --- a/Windows/MassiveKnob.Plugin.VoiceMeeter/Base/BaseVoiceMeeterSettingsView.xaml.cs +++ b/Windows/MassiveKnob.Plugin.VoiceMeeter/Base/BaseVoiceMeeterSettingsView.xaml.cs @@ -1,4 +1,6 @@ -namespace MassiveKnob.Plugin.VoiceMeeter.Base +using System; + +namespace MassiveKnob.Plugin.VoiceMeeter.Base { ///

    *bxTx4S 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�p=y^$5+nnpzdQy3EB+H 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É&LnmvX-Nr%6lL}Mw&IQopI&)Lje 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