From 62a33fe7fc736a770662ffa071960484ebef91c0 Mon Sep 17 00:00:00 2001 From: qianlifeng Date: Tue, 20 Jan 2015 22:41:19 +0800 Subject: [PATCH 01/31] remove unnessary files. --- src/NAppUpdate.Framework/Updater/updater.exe | 1 - 1 file changed, 1 deletion(-) delete mode 100644 src/NAppUpdate.Framework/Updater/updater.exe diff --git a/src/NAppUpdate.Framework/Updater/updater.exe b/src/NAppUpdate.Framework/Updater/updater.exe deleted file mode 100644 index 9451958fc4..0000000000 --- a/src/NAppUpdate.Framework/Updater/updater.exe +++ /dev/null @@ -1 +0,0 @@ -This is a dummy file From 563370f10b65cfb50c09e77a3899537bf1a8d9ed Mon Sep 17 00:00:00 2001 From: qianlifeng Date: Wed, 21 Jan 2015 21:09:35 +0800 Subject: [PATCH 02/31] Remove unnecessary unit test --- Wox.Test/Plugins/PluginInitTest.cs | 8 -------- 1 file changed, 8 deletions(-) diff --git a/Wox.Test/Plugins/PluginInitTest.cs b/Wox.Test/Plugins/PluginInitTest.cs index 8d41088874..4c3b026c08 100644 --- a/Wox.Test/Plugins/PluginInitTest.cs +++ b/Wox.Test/Plugins/PluginInitTest.cs @@ -14,14 +14,6 @@ namespace Wox.Test.Plugins [TestFixture] public class PluginInitTest { - [Test] - public void CouldNotFindUserProfileTest() - { - var api = new Mock(); - Environment.SetEnvironmentVariable("USERPROFILE", ""); - Assert.Throws(typeof(WoxCritialException), () => PluginManager.Init(api.Object)); - } - [Test] public void PublicAPIIsNullTest() { From 00953850b319e1aef4929017c89fb81646d5828c Mon Sep 17 00:00:00 2001 From: qianlifeng Date: Wed, 21 Jan 2015 23:00:56 +0800 Subject: [PATCH 03/31] Improve the update progress. --- Deploy/NAppUpdate/FeedBuilder.config | 14 ++-- Deploy/NAppUpdate/FeedBuilder.exe | Bin 128512 -> 128512 bytes Wox.Core/UI/ResourceMerger.cs | 2 +- Wox.Core/Updater/UpdaterManager.cs | 77 +++++++++---------- Wox.Core/UserSettings/UserSettingStorage.cs | 3 + Wox.Core/i18n/InternationalizationManager.cs | 2 +- Wox.CrashReporter/ReportWindow.xaml.cs | 6 +- Wox/ActionKeyword.xaml.cs | 8 +- Wox/CustomQueryHotkeySetting.xaml.cs | 12 +-- Wox/HotkeyControl.xaml.cs | 4 +- Wox/Languages/en.xaml | 5 ++ Wox/Languages/zh-cn.xaml | 6 ++ Wox/Languages/zh-tw.xaml | 5 ++ Wox/MainWindow.xaml.cs | 28 ++----- Wox/SettingWindow.xaml | 1 - Wox/SettingWindow.xaml.cs | 53 ++++--------- Wox/Update/NewVersionWindow.xaml | 23 ------ Wox/Update/NewVersionWindow.xaml.cs | 46 ----------- Wox/Update/Release.cs | 16 ---- Wox/Update/UpdateChecker.cs | 55 ------------- Wox/Wox.csproj | 9 --- appveyor.yml | 6 +- 22 files changed, 103 insertions(+), 278 deletions(-) delete mode 100644 Wox/Update/NewVersionWindow.xaml delete mode 100644 Wox/Update/NewVersionWindow.xaml.cs delete mode 100644 Wox/Update/Release.cs delete mode 100644 Wox/Update/UpdateChecker.cs diff --git a/Deploy/NAppUpdate/FeedBuilder.config b/Deploy/NAppUpdate/FeedBuilder.config index f06954dd29..4e99a397fd 100644 --- a/Deploy/NAppUpdate/FeedBuilder.config +++ b/Deploy/NAppUpdate/FeedBuilder.config @@ -1,18 +1,16 @@  - + http://127.0.0.1:8888 True False True - True + False <?xml version="1.0" encoding="utf-16"?> -<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" /> + <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" /> True - True - E:\github\Wox\Output\Debug + False + ..\..\Output\Release True False - E:\github\Wox\Output\Update\Update.xml - - http://127.0.0.1:8888 + ..\..\Output\Update\Update.xml diff --git a/Deploy/NAppUpdate/FeedBuilder.exe b/Deploy/NAppUpdate/FeedBuilder.exe index fae2128316308805edcafc2cec6e7f85565ceb9a..278eea2032764079524f266ed1994a142251d284 100644 GIT binary patch delta 12417 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 diff --git a/Wox.Core/UI/ResourceMerger.cs b/Wox.Core/UI/ResourceMerger.cs index b2167a3cd3..6d7a892982 100644 --- a/Wox.Core/UI/ResourceMerger.cs +++ b/Wox.Core/UI/ResourceMerger.cs @@ -39,7 +39,7 @@ namespace Wox.Core.UI foreach (var pluginI18n in pluginI18ns) { - string languageFile = InternationalizationManager.Internationalization.GetLanguageFile( + string languageFile = InternationalizationManager.Instance.GetLanguageFile( ((IPluginI18n)Activator.CreateInstance(pluginI18n)).GetLanguagesFolder()); if (!string.IsNullOrEmpty(languageFile)) { diff --git a/Wox.Core/Updater/UpdaterManager.cs b/Wox.Core/Updater/UpdaterManager.cs index 7f07171606..c89d651db5 100644 --- a/Wox.Core/Updater/UpdaterManager.cs +++ b/Wox.Core/Updater/UpdaterManager.cs @@ -6,6 +6,8 @@ using System.Windows.Threading; using NAppUpdate.Framework; using NAppUpdate.Framework.Common; using NAppUpdate.Framework.Sources; +using Wox.Core.i18n; +using Wox.Core.UserSettings; using Wox.Infrastructure.Logger; namespace Wox.Core.Updater @@ -31,11 +33,14 @@ namespace Wox.Core.Updater UpdateManager.Instance.UpdateSource = GetUpdateSource(); } + public bool IsUpdateAvailable() + { + return UpdateManager.Instance.UpdatesAvailable > 0; + } + public void CheckUpdate() { - // Get a local pointer to the UpdateManager instance UpdateManager updManager = UpdateManager.Instance; - updManager.BeginCheckForUpdates(asyncResult => { if (asyncResult.IsCompleted) @@ -43,9 +48,9 @@ namespace Wox.Core.Updater // still need to check for caught exceptions if any and rethrow try { - ((UpdateProcessAsyncResult) asyncResult).EndInvoke(); + ((UpdateProcessAsyncResult)asyncResult).EndInvoke(); } - catch(System.Exception e) + catch (System.Exception e) { Log.Error(e); updManager.CleanUp(); @@ -55,7 +60,6 @@ namespace Wox.Core.Updater // No updates were found, or an error has occured. We might want to check that... if (updManager.UpdatesAvailable == 0) { - MessageBox.Show("All is up to date!"); return; } } @@ -63,53 +67,44 @@ namespace Wox.Core.Updater updManager.BeginPrepareUpdates(result => { ((UpdateProcessAsyncResult)result).EndInvoke(); + string updateReady = InternationalizationManager.Instance.GetTranslation("update_wox_update_ready"); + string updateInstall = InternationalizationManager.Instance.GetTranslation("update_wox_update_install"); + updateInstall = string.Format(updateInstall, updManager.UpdatesAvailable); + DialogResult dr = MessageBox.Show(updateInstall, updateReady, MessageBoxButtons.YesNo); - // ApplyUpdates is a synchronous method by design. Make sure to save all user work before calling - // it as it might restart your application - // get out of the way so the console window isn't obstructed - try + if (dr == DialogResult.Yes) { - updManager.ApplyUpdates(true,false,true); - } - catch - { - // this.WindowState = WindowState.Normal; - MessageBox.Show( - "An error occurred while trying to install software updates"); - } - updManager.CleanUp(); + // ApplyUpdates is a synchronous method by design. Make sure to save all user work before calling + // it as it might restart your application + // get out of the way so the console window isn't obstructed + try + { + updManager.ApplyUpdates(true, UserSettingStorage.Instance.EnableUpdateLog, false); + } + catch (System.Exception e) + { + string updateError = + InternationalizationManager.Instance.GetTranslation("update_wox_update_error"); + Log.Error(e); + MessageBox.Show(updateError); + } + + updManager.CleanUp(); + } + else + { + updManager.CleanUp(); + } }, null); }, null); } - public void Reinstall() - { - UpdateManager.Instance.ReinstateIfRestarted(); - } - - private void OnPrepareUpdatesCompleted(bool obj) - { - UpdateManager updManager = UpdateManager.Instance; - - DialogResult dr = MessageBox.Show( - "Updates are ready to install. Do you wish to install them now?", - "Software updates ready", - MessageBoxButtons.YesNo); - - if (dr == DialogResult.Yes) - { - // This is a synchronous method by design, make sure to save all user work before calling - // it as it might restart your application - updManager.ApplyUpdates(true,true,true); - } - } - private IUpdateSource GetUpdateSource() { // Normally this would be a web based source. // But for the demo app, we prepare an in-memory source. - var source = new NAppUpdate.Framework.Sources.SimpleWebSource("http://127.0.0.1:8888/Update.xml"); + var source = new SimpleWebSource("http://127.0.0.1:8888/Update.xml"); return source; } } diff --git a/Wox.Core/UserSettings/UserSettingStorage.cs b/Wox.Core/UserSettings/UserSettingStorage.cs index 9b1af13a61..5f7c243c74 100644 --- a/Wox.Core/UserSettings/UserSettingStorage.cs +++ b/Wox.Core/UserSettings/UserSettingStorage.cs @@ -14,6 +14,9 @@ namespace Wox.Core.UserSettings [JsonProperty] public bool DontPromptUpdateMsg { get; set; } + [JsonProperty] + public bool EnableUpdateLog { get; set; } + [JsonProperty] public string Hotkey { get; set; } diff --git a/Wox.Core/i18n/InternationalizationManager.cs b/Wox.Core/i18n/InternationalizationManager.cs index a1f0a9049c..cfe1ca7fc7 100644 --- a/Wox.Core/i18n/InternationalizationManager.cs +++ b/Wox.Core/i18n/InternationalizationManager.cs @@ -14,7 +14,7 @@ namespace Wox.Core.i18n private static Internationalization instance; private static object syncObject = new object(); - public static Internationalization Internationalization + public static Internationalization Instance { get { diff --git a/Wox.CrashReporter/ReportWindow.xaml.cs b/Wox.CrashReporter/ReportWindow.xaml.cs index 55ec0555b7..ec041fb7cd 100644 --- a/Wox.CrashReporter/ReportWindow.xaml.cs +++ b/Wox.CrashReporter/ReportWindow.xaml.cs @@ -45,7 +45,7 @@ namespace Wox.CrashReporter private void btnSend_Click(object sender, RoutedEventArgs e) { - string sendingMsg = InternationalizationManager.Internationalization.GetTranslation("reportWindow_sending"); + string sendingMsg = InternationalizationManager.Instance.GetTranslation("reportWindow_sending"); tbSendReport.Content = sendingMsg; btnSend.IsEnabled = false; ThreadPool.QueueUserWorkItem(o => SendReport()); @@ -57,11 +57,11 @@ namespace Wox.CrashReporter string response = HttpRequest.Post(APIServer.ErrorReportURL, error, HttpProxy.Instance); if (response.ToLower() == "ok") { - MessageBox.Show(InternationalizationManager.Internationalization.GetTranslation("reportWindow_report_succeed")); + MessageBox.Show(InternationalizationManager.Instance.GetTranslation("reportWindow_report_succeed")); } else { - MessageBox.Show(InternationalizationManager.Internationalization.GetTranslation("reportWindow_report_failed")); + MessageBox.Show(InternationalizationManager.Instance.GetTranslation("reportWindow_report_failed")); } Dispatcher.Invoke(new Action(Close)); } diff --git a/Wox/ActionKeyword.xaml.cs b/Wox/ActionKeyword.xaml.cs index e6832be527..96f5e9dcc3 100644 --- a/Wox/ActionKeyword.xaml.cs +++ b/Wox/ActionKeyword.xaml.cs @@ -29,7 +29,7 @@ namespace Wox PluginPair plugin = PluginManager.GetPlugin(pluginId); if (plugin == null) { - MessageBox.Show(InternationalizationManager.Internationalization.GetTranslation("cannotFindSpecifiedPlugin")); + MessageBox.Show(InternationalizationManager.Instance.GetTranslation("cannotFindSpecifiedPlugin")); Close(); return; } @@ -52,14 +52,14 @@ namespace Wox { if (string.IsNullOrEmpty(tbAction.Text)) { - MessageBox.Show(InternationalizationManager.Internationalization.GetTranslation("newActionKeywordCannotBeEmpty")); + MessageBox.Show(InternationalizationManager.Instance.GetTranslation("newActionKeywordCannotBeEmpty")); return; } //check new action keyword didn't used by other plugin if (PluginManager.AllPlugins.Exists(o => o.Metadata.ActionKeyword == tbAction.Text.Trim())) { - MessageBox.Show(InternationalizationManager.Internationalization.GetTranslation("newActionKeywordHasBeenAssigned")); + MessageBox.Show(InternationalizationManager.Instance.GetTranslation("newActionKeywordHasBeenAssigned")); return; } @@ -81,7 +81,7 @@ namespace Wox customizedPluginConfig.Actionword = tbAction.Text.Trim(); } UserSettingStorage.Instance.Save(); - MessageBox.Show(InternationalizationManager.Internationalization.GetTranslation("succeed")); + MessageBox.Show(InternationalizationManager.Instance.GetTranslation("succeed")); Close(); } } diff --git a/Wox/CustomQueryHotkeySetting.xaml.cs b/Wox/CustomQueryHotkeySetting.xaml.cs index 2c9bba0c1d..759defa29a 100644 --- a/Wox/CustomQueryHotkeySetting.xaml.cs +++ b/Wox/CustomQueryHotkeySetting.xaml.cs @@ -29,7 +29,7 @@ namespace Wox { if (!ctlHotkey.CurrentHotkeyAvailable) { - MessageBox.Show(InternationalizationManager.Internationalization.GetTranslation("hotkeyIsNotUnavailable")); + MessageBox.Show(InternationalizationManager.Instance.GetTranslation("hotkeyIsNotUnavailable")); return; } @@ -49,13 +49,13 @@ namespace Wox settingWidow.MainWindow.ChangeQuery(pluginHotkey.ActionKeyword); settingWidow.MainWindow.ShowApp(); }); - MessageBox.Show(InternationalizationManager.Internationalization.GetTranslation("succeed")); + MessageBox.Show(InternationalizationManager.Instance.GetTranslation("succeed")); } else { if (updateCustomHotkey.Hotkey != ctlHotkey.CurrentHotkey.ToString() && !ctlHotkey.CurrentHotkeyAvailable) { - MessageBox.Show(InternationalizationManager.Internationalization.GetTranslation("hotkeyIsNotUnavailable")); + MessageBox.Show(InternationalizationManager.Instance.GetTranslation("hotkeyIsNotUnavailable")); return; } var oldHotkey = updateCustomHotkey.Hotkey; @@ -68,7 +68,7 @@ namespace Wox settingWidow.MainWindow.ShowApp(); settingWidow.MainWindow.ChangeQuery(updateCustomHotkey.ActionKeyword); }); - MessageBox.Show(InternationalizationManager.Internationalization.GetTranslation("succeed")); + MessageBox.Show(InternationalizationManager.Instance.GetTranslation("succeed")); } UserSettingStorage.Instance.Save(); @@ -81,7 +81,7 @@ namespace Wox updateCustomHotkey = UserSettingStorage.Instance.CustomPluginHotkeys.FirstOrDefault(o => o.ActionKeyword == item.ActionKeyword && o.Hotkey == item.Hotkey); if (updateCustomHotkey == null) { - MessageBox.Show(InternationalizationManager.Internationalization.GetTranslation("invalidPluginHotkey")); + MessageBox.Show(InternationalizationManager.Instance.GetTranslation("invalidPluginHotkey")); Close(); return; } @@ -89,7 +89,7 @@ namespace Wox tbAction.Text = updateCustomHotkey.ActionKeyword; ctlHotkey.SetHotkey(updateCustomHotkey.Hotkey, false); update = true; - lblAdd.Text = InternationalizationManager.Internationalization.GetTranslation("update"); + lblAdd.Text = InternationalizationManager.Instance.GetTranslation("update"); } private void BtnTestActionKeyword_OnClick(object sender, RoutedEventArgs e) diff --git a/Wox/HotkeyControl.xaml.cs b/Wox/HotkeyControl.xaml.cs index 1725f64019..bc89336ac2 100644 --- a/Wox/HotkeyControl.xaml.cs +++ b/Wox/HotkeyControl.xaml.cs @@ -99,12 +99,12 @@ namespace Wox if (!CurrentHotkeyAvailable) { tbMsg.Foreground = new SolidColorBrush(Colors.Red); - tbMsg.Text = InternationalizationManager.Internationalization.GetTranslation("hotkeyUnavailable"); + tbMsg.Text = InternationalizationManager.Instance.GetTranslation("hotkeyUnavailable"); } else { tbMsg.Foreground = new SolidColorBrush(Colors.Green); - tbMsg.Text = InternationalizationManager.Internationalization.GetTranslation("succeed"); + tbMsg.Text = InternationalizationManager.Instance.GetTranslation("succeed"); } OnOnHotkeyChanged(); } diff --git a/Wox/Languages/en.xaml b/Wox/Languages/en.xaml index 4f1561034b..54d55f7490 100644 --- a/Wox/Languages/en.xaml +++ b/Wox/Languages/en.xaml @@ -98,4 +98,9 @@ Report failed Wox got an error + + Wox updates available + Wox updates are ready to install. {0} files will be added and replaced, this operation may restart Wox. Do you wish to install them now? + An error occurred while trying to install software updates + \ No newline at end of file diff --git a/Wox/Languages/zh-cn.xaml b/Wox/Languages/zh-cn.xaml index 5e06761f1c..1c341d32eb 100644 --- a/Wox/Languages/zh-cn.xaml +++ b/Wox/Languages/zh-cn.xaml @@ -97,4 +97,10 @@ 发送成功 发送失败 Wox出错啦 + + + Wox更新 + Wox更新啦!{0}个文件会被添加和替换,并且在此过程中可能会重启Wox。你确定需要更新吗? + 更新Wox出错 + \ No newline at end of file diff --git a/Wox/Languages/zh-tw.xaml b/Wox/Languages/zh-tw.xaml index d3c8812995..825679f6e1 100644 --- a/Wox/Languages/zh-tw.xaml +++ b/Wox/Languages/zh-tw.xaml @@ -98,4 +98,9 @@ 發送失敗 Wox出錯啦 + + Wox更新 + Wox更新啦!{0}個文件會被添加和替換,並且在此過程中可能會重啟Wox。你確定需要更新嗎? + 更新Wox出錯 + \ No newline at end of file diff --git a/Wox/MainWindow.xaml.cs b/Wox/MainWindow.xaml.cs index 7a4cd03db1..110faad2bc 100644 --- a/Wox/MainWindow.xaml.cs +++ b/Wox/MainWindow.xaml.cs @@ -24,7 +24,6 @@ using Wox.Infrastructure; using Wox.Infrastructure.Hotkey; using Wox.Plugin; using Wox.Storage; -using Wox.Update; using Brushes = System.Windows.Media.Brushes; using Color = System.Windows.Media.Color; using ContextMenu = System.Windows.Forms.ContextMenu; @@ -124,7 +123,7 @@ namespace Wox public string GetTranslation(string key) { - return InternationalizationManager.Internationalization.GetTranslation(key); + return InternationalizationManager.Instance.GetTranslation(key); } public List GetAllPlugins() @@ -175,7 +174,7 @@ namespace Wox pnlResult.RightMouseClickEvent += pnlResult_RightMouseClickEvent; ThemeManager.Theme.ChangeTheme(UserSettingStorage.Instance.Theme); - InternationalizationManager.Internationalization.ChangeLanguage(UserSettingStorage.Instance.Language); + InternationalizationManager.Instance.ChangeLanguage(UserSettingStorage.Instance.Language); SetHotkey(UserSettingStorage.Instance.Hotkey, OnHotkey); SetCustomPluginHotkey(); @@ -193,7 +192,6 @@ namespace Wox Thread.Sleep(50); PreLoadImages(); }); - CheckUpdate(); } private bool KListener_hookedKeyboardCallback(KeyEvent keyevent, int vkcode, SpecialKeyState state) @@ -215,22 +213,6 @@ namespace Wox ShowContextMenu(result); } - void CheckUpdate() - { - ThreadPool.QueueUserWorkItem(o => - { - Release release = new UpdateChecker().CheckUpgrade(); - if (release != null && !UserSettingStorage.Instance.DontPromptUpdateMsg) - { - Dispatcher.Invoke(new Action(() => - { - NewVersionWindow newVersinoWindow = new NewVersionWindow(); - newVersinoWindow.Show(); - })); - } - }); - } - void MainWindow_Closing(object sender, CancelEventArgs e) { UserSettingStorage.Instance.WindowLeft = Left; @@ -278,7 +260,7 @@ namespace Wox } catch (Exception) { - string errorMsg = string.Format(InternationalizationManager.Internationalization.GetTranslation("registerHotkeyFailed"), hotkeyStr); + string errorMsg = string.Format(InternationalizationManager.Instance.GetTranslation("registerHotkeyFailed"), hotkeyStr); MessageBox.Show(errorMsg); } } @@ -673,7 +655,7 @@ namespace Wox } catch (Exception ex) { - string errorMsg = string.Format(InternationalizationManager.Internationalization.GetTranslation("couldnotStartCmd"), cmd); + string errorMsg = string.Format(InternationalizationManager.Instance.GetTranslation("couldnotStartCmd"), cmd); ShowMsg(errorMsg, ex.Message, null); } return false; @@ -691,7 +673,7 @@ namespace Wox } else { - MessageBox.Show(InternationalizationManager.Internationalization.GetTranslation("invalidWoxPluginFileFormat")); + MessageBox.Show(InternationalizationManager.Instance.GetTranslation("invalidWoxPluginFileFormat")); } } } diff --git a/Wox/SettingWindow.xaml b/Wox/SettingWindow.xaml index 50e5341b9d..704f39936f 100644 --- a/Wox/SettingWindow.xaml +++ b/Wox/SettingWindow.xaml @@ -318,7 +318,6 @@ - diff --git a/Wox/SettingWindow.xaml.cs b/Wox/SettingWindow.xaml.cs index 56152f8c18..e4c43d99d7 100644 --- a/Wox/SettingWindow.xaml.cs +++ b/Wox/SettingWindow.xaml.cs @@ -13,7 +13,6 @@ using System.Windows.Media.Imaging; using Wox.Core.Plugin; using Wox.Plugin; using Wox.Helper; -using Wox.Update; using Application = System.Windows.Forms.Application; using File = System.IO.File; using MessageBox = System.Windows.MessageBox; @@ -218,15 +217,6 @@ namespace Wox #region About tbVersion.Text = ConfigurationManager.AppSettings["version"]; - Release newRelease = new UpdateChecker().CheckUpgrade(); - if (newRelease == null) - { - tbNewVersionAvailable.Visibility = Visibility.Collapsed; - } - else - { - tbNewVersionAvailable.Text = newRelease.version + " available"; - } #endregion @@ -235,7 +225,7 @@ namespace Wox private void LoadLanguages() { - cbLanguages.ItemsSource = InternationalizationManager.Internationalization.LoadAvailableLanguages(); + cbLanguages.ItemsSource = InternationalizationManager.Instance.LoadAvailableLanguages(); cbLanguages.DisplayMemberPath = "Display"; cbLanguages.SelectedValuePath = "LanguageCode"; cbLanguages.SelectedValue = UserSettingStorage.Instance.Language; @@ -244,7 +234,7 @@ namespace Wox void cbLanguages_SelectionChanged(object sender, SelectionChangedEventArgs e) { - InternationalizationManager.Internationalization.ChangeLanguage(cbLanguages.SelectedItem as Language); + InternationalizationManager.Instance.ChangeLanguage(cbLanguages.SelectedItem as Language); } private void EnableProxy() @@ -329,12 +319,12 @@ namespace Wox CustomPluginHotkey item = lvCustomHotkey.SelectedItem as CustomPluginHotkey; if (item == null) { - MessageBox.Show(InternationalizationManager.Internationalization.GetTranslation("pleaseSelectAnItem")); + MessageBox.Show(InternationalizationManager.Instance.GetTranslation("pleaseSelectAnItem")); return; } - string deleteWarning = string.Format(InternationalizationManager.Internationalization.GetTranslation("deleteCustomHotkeyWarning"), item.Hotkey); - if (MessageBox.Show(deleteWarning, InternationalizationManager.Internationalization.GetTranslation("delete"), MessageBoxButton.YesNo) == MessageBoxResult.Yes) + string deleteWarning = string.Format(InternationalizationManager.Instance.GetTranslation("deleteCustomHotkeyWarning"), item.Hotkey); + if (MessageBox.Show(deleteWarning, InternationalizationManager.Instance.GetTranslation("delete"), MessageBoxButton.YesNo) == MessageBoxResult.Yes) { UserSettingStorage.Instance.CustomPluginHotkeys.Remove(item); lvCustomHotkey.Items.Refresh(); @@ -354,7 +344,7 @@ namespace Wox } else { - MessageBox.Show(InternationalizationManager.Internationalization.GetTranslation("pleaseSelectAnItem")); + MessageBox.Show(InternationalizationManager.Instance.GetTranslation("pleaseSelectAnItem")); } } @@ -488,7 +478,7 @@ namespace Wox pluginTitle.Text = pair.Metadata.Name; pluginTitle.Cursor = Cursors.Hand; pluginActionKeyword.Text = pair.Metadata.ActionKeyword; - pluginAuthor.Text = InternationalizationManager.Internationalization.GetTranslation("author") + ": " + pair.Metadata.Author; + pluginAuthor.Text = InternationalizationManager.Instance.GetTranslation("author") + ": " + pair.Metadata.Author; pluginSubTitle.Text = pair.Metadata.Description; pluginId = pair.Metadata.ID; pluginIcon.Source = ImageLoader.ImageLoader.Load(pair.Metadata.FullIcoPath); @@ -627,17 +617,17 @@ namespace Wox { if (string.IsNullOrEmpty(tbProxyServer.Text)) { - MessageBox.Show(InternationalizationManager.Internationalization.GetTranslation("serverCantBeEmpty")); + MessageBox.Show(InternationalizationManager.Instance.GetTranslation("serverCantBeEmpty")); return; } if (string.IsNullOrEmpty(tbProxyPort.Text)) { - MessageBox.Show(InternationalizationManager.Internationalization.GetTranslation("portCantBeEmpty")); + MessageBox.Show(InternationalizationManager.Instance.GetTranslation("portCantBeEmpty")); return; } if (!int.TryParse(tbProxyPort.Text, out port)) { - MessageBox.Show(InternationalizationManager.Internationalization.GetTranslation("invalidPortFormat")); + MessageBox.Show(InternationalizationManager.Instance.GetTranslation("invalidPortFormat")); return; } } @@ -648,25 +638,25 @@ namespace Wox UserSettingStorage.Instance.ProxyPassword = tbProxyPassword.Password; UserSettingStorage.Instance.Save(); - MessageBox.Show(InternationalizationManager.Internationalization.GetTranslation("saveProxySuccessfully")); + MessageBox.Show(InternationalizationManager.Instance.GetTranslation("saveProxySuccessfully")); } private void btnTestProxy_Click(object sender, RoutedEventArgs e) { if (string.IsNullOrEmpty(tbProxyServer.Text)) { - MessageBox.Show(InternationalizationManager.Internationalization.GetTranslation("serverCantBeEmpty")); + MessageBox.Show(InternationalizationManager.Instance.GetTranslation("serverCantBeEmpty")); return; } if (string.IsNullOrEmpty(tbProxyPort.Text)) { - MessageBox.Show(InternationalizationManager.Internationalization.GetTranslation("portCantBeEmpty")); + MessageBox.Show(InternationalizationManager.Instance.GetTranslation("portCantBeEmpty")); return; } int port; if (!int.TryParse(tbProxyPort.Text, out port)) { - MessageBox.Show(InternationalizationManager.Internationalization.GetTranslation("invalidPortFormat")); + MessageBox.Show(InternationalizationManager.Instance.GetTranslation("invalidPortFormat")); return; } @@ -687,16 +677,16 @@ namespace Wox HttpWebResponse response = (HttpWebResponse)request.GetResponse(); if (response.StatusCode == HttpStatusCode.OK) { - MessageBox.Show(InternationalizationManager.Internationalization.GetTranslation("proxyIsCorrect")); + MessageBox.Show(InternationalizationManager.Instance.GetTranslation("proxyIsCorrect")); } else { - MessageBox.Show(InternationalizationManager.Internationalization.GetTranslation("proxyConnectFailed")); + MessageBox.Show(InternationalizationManager.Instance.GetTranslation("proxyConnectFailed")); } } catch { - MessageBox.Show(InternationalizationManager.Internationalization.GetTranslation("proxyConnectFailed")); + MessageBox.Show(InternationalizationManager.Instance.GetTranslation("proxyConnectFailed")); } } @@ -704,14 +694,5 @@ namespace Wox { Process.Start("http://www.getwox.com"); } - - private void tbNewVersionAvailable_MouseUp(object sender, MouseButtonEventArgs e) - { - Release newRelease = new UpdateChecker().CheckUpgrade(); - if (newRelease != null) - { - Process.Start("http://www.getwox.com/release/version/" + newRelease.version); - } - } } } diff --git a/Wox/Update/NewVersionWindow.xaml b/Wox/Update/NewVersionWindow.xaml deleted file mode 100644 index 924e61a202..0000000000 --- a/Wox/Update/NewVersionWindow.xaml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/Wox/Update/NewVersionWindow.xaml.cs b/Wox/Update/NewVersionWindow.xaml.cs deleted file mode 100644 index 8ef0447828..0000000000 --- a/Wox/Update/NewVersionWindow.xaml.cs +++ /dev/null @@ -1,46 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Configuration; -using System.Diagnostics; -using System.Linq; -using System.Text; -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.Shapes; -using Wox.Core.Version; - -namespace Wox.Update -{ - public partial class NewVersionWindow : Window - { - public NewVersionWindow() - { - InitializeComponent(); - - tbCurrentVersion.Text = VersionManager.Instance.CurrentVersion.ToString(); - Release newRelease = new UpdateChecker().CheckUpgrade(); - if (newRelease == null) - { - tbNewVersion.Visibility = Visibility.Collapsed; - } - else - { - tbNewVersion.Text = newRelease.version; - } - } - - private void tbNewVersion_MouseUp(object sender, MouseButtonEventArgs e) - { - Release newRelease = new UpdateChecker().CheckUpgrade(); - if (newRelease != null) - { - Process.Start("http://www.getwox.com/release/version/" + newRelease.version); - } - } - } -} diff --git a/Wox/Update/Release.cs b/Wox/Update/Release.cs deleted file mode 100644 index 3664f5f2fa..0000000000 --- a/Wox/Update/Release.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -namespace Wox.Update -{ - public class Release - { - public string version { get; set; } - public string download_link { get; set; } - public string download_link1 { get; set; } - public string download_link2 { get; set; } - public string description { get; set; } - } -} diff --git a/Wox/Update/UpdateChecker.cs b/Wox/Update/UpdateChecker.cs deleted file mode 100644 index 65fb0c4d3f..0000000000 --- a/Wox/Update/UpdateChecker.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Configuration; -using System.IO; -using System.Linq; -using System.Net; -using System.Text; -using Newtonsoft.Json; -using Wox.Core; -using Wox.Core.UserSettings; -using Wox.Core.Version; -using Wox.Helper; -using Wox.Infrastructure; -using Wox.Infrastructure.Http; - -namespace Wox.Update -{ - public class UpdateChecker - { - private static Release newRelease; - private static bool checkedUpdate = false; - - /// - /// If new release is available, then return the new release - /// otherwise, return null - /// - /// - public Release CheckUpgrade(bool forceCheck = false) - { - if (checkedUpdate && !forceCheck) return newRelease; - string json = HttpRequest.Get(APIServer.LastestReleaseURL,HttpProxy.Instance); - if (string.IsNullOrEmpty(json)) return null; - - try - { - newRelease = JsonConvert.DeserializeObject(json); - if (!IsNewerThanCurrent(newRelease)) - { - newRelease = null; - } - checkedUpdate = true; - } - catch{} - - return newRelease; - } - - private bool IsNewerThanCurrent(Release release) - { - if (release == null) return false; - - return new SemanticVersion(release.version) > VersionManager.Instance.CurrentVersion; - } - } -} diff --git a/Wox/Wox.csproj b/Wox/Wox.csproj index 7339787130..a71e300ffc 100644 --- a/Wox/Wox.csproj +++ b/Wox/Wox.csproj @@ -113,11 +113,6 @@ - - NewVersionWindow.xaml - - - MSBuild:Compile Designer @@ -235,10 +230,6 @@ Designer PreserveNewest - - Designer - MSBuild:Compile - diff --git a/appveyor.yml b/appveyor.yml index 67d04c4cd9..56829a53ff 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -15,7 +15,7 @@ build: after_test: - ps: .\deploy\nuget\pack.ps1 - - ps: .\deploy\Installer\pack.ps1 + - cmd: .\deploy\NAppUpdate\build.bat deploy: provider: NuGet @@ -32,5 +32,5 @@ artifacts: - path: '*.nupkg' name: nugetpackage - - path: Output\Wox-setup.exe - name: setup + - path: Output\Update + name: update-binary From 3c626fd01eb36bb9a27aabd0004b8329243715ef Mon Sep 17 00:00:00 2001 From: qianlifeng Date: Wed, 21 Jan 2015 23:25:57 +0800 Subject: [PATCH 04/31] Update CI builds. --- Deploy/NAppUpdate/build.bat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Deploy/NAppUpdate/build.bat b/Deploy/NAppUpdate/build.bat index 4cf7775756..f5b3a5d4d2 100644 --- a/Deploy/NAppUpdate/build.bat +++ b/Deploy/NAppUpdate/build.bat @@ -1 +1 @@ -FeedBuilder.exe "FeedBuilder.config" -Build +%~dp0FeedBuilder.exe "FeedBuilder.config" -Build From 1273a6fb74012ec09ee6969a811f2a434470b52c Mon Sep 17 00:00:00 2001 From: qianlifeng Date: Wed, 21 Jan 2015 23:51:12 +0800 Subject: [PATCH 05/31] update ci --- Deploy/NAppUpdate/build.bat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Deploy/NAppUpdate/build.bat b/Deploy/NAppUpdate/build.bat index f5b3a5d4d2..2a91715a6c 100644 --- a/Deploy/NAppUpdate/build.bat +++ b/Deploy/NAppUpdate/build.bat @@ -1 +1 @@ -%~dp0FeedBuilder.exe "FeedBuilder.config" -Build +%~dp0FeedBuilder.exe "%~dp0FeedBuilder.config" -Build From f4904e06c84798e980d5fe50f852a0a430037770 Mon Sep 17 00:00:00 2001 From: qianlifeng Date: Thu, 22 Jan 2015 19:02:34 +0800 Subject: [PATCH 06/31] Change CI --- Deploy/NAppUpdate/build.bat | 1 + 1 file changed, 1 insertion(+) diff --git a/Deploy/NAppUpdate/build.bat b/Deploy/NAppUpdate/build.bat index 2a91715a6c..a9b07cb047 100644 --- a/Deploy/NAppUpdate/build.bat +++ b/Deploy/NAppUpdate/build.bat @@ -1 +1,2 @@ +cd /d %~dp0 %~dp0FeedBuilder.exe "%~dp0FeedBuilder.config" -Build From c4ca06d5e59ae46f5c52b7fe043357a014c3040e Mon Sep 17 00:00:00 2001 From: qianlifeng Date: Thu, 22 Jan 2015 20:24:15 +0800 Subject: [PATCH 07/31] Sort plugin and themes in setting dialog --- Wox.Core/Plugin/PluginManager.cs | 2 +- Wox.Core/Theme/Theme.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Wox.Core/Plugin/PluginManager.cs b/Wox.Core/Plugin/PluginManager.cs index dcb455c703..e8c942f950 100644 --- a/Wox.Core/Plugin/PluginManager.cs +++ b/Wox.Core/Plugin/PluginManager.cs @@ -109,7 +109,7 @@ namespace Wox.Core.Plugin { get { - return plugins; + return plugins.OrderBy(o => o.Metadata.Name).ToList(); } } diff --git a/Wox.Core/Theme/Theme.cs b/Wox.Core/Theme/Theme.cs index 78bea898d5..b20e95cdd0 100644 --- a/Wox.Core/Theme/Theme.cs +++ b/Wox.Core/Theme/Theme.cs @@ -102,7 +102,7 @@ namespace Wox.Core.Theme .Where(filePath => filePath.EndsWith(".xaml") && !filePath.EndsWith("Base.xaml")) .ToList()); } - return themes; + return themes.OrderBy(o => o).ToList(); } private string GetThemePath(string themeName) From bda67afd4f88ba94d3dfcce034ccd964ba8ed01f Mon Sep 17 00:00:00 2001 From: qianlifeng Date: Thu, 22 Jan 2015 21:02:52 +0800 Subject: [PATCH 08/31] Update CI --- appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index 56829a53ff..f2a88d28b6 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,5 +1,5 @@ version: 1.1.1.{build} - +os: unstable configuration: Release From 21edfdb62e7ac5c29135cd6419929ed6a636bccf Mon Sep 17 00:00:00 2001 From: qianlifeng Date: Thu, 22 Jan 2015 22:57:54 +0800 Subject: [PATCH 09/31] Add Wox.UpdateFeedGenerator --- Deploy/NAppUpdate/FeedBuilder.config | 16 -- Deploy/NAppUpdate/FeedBuilder.exe | Bin 128512 -> 0 bytes Deploy/NAppUpdate/FeedBuilder.exe.config | 54 ---- Deploy/NAppUpdate/build.bat | 2 - Deploy/NAppUpdate/gui.bat | 1 - .../NAppUpdate.Framework.dll | Bin 92672 -> 142848 bytes Deploy/UpdateGenerator/Newtonsoft.Json.dll | Bin 0 -> 439296 bytes Deploy/UpdateGenerator/Wox.Infrastructure.dll | Bin 0 -> 684032 bytes Deploy/UpdateGenerator/Wox.Plugin.dll | Bin 0 -> 17408 bytes .../Wox.UpdateFeedGenerator.exe | Bin 0 -> 17920 bytes Deploy/UpdateGenerator/build.bat | 2 + Deploy/UpdateGenerator/config.json | 10 + Wox.UpdateFeedGenerator/ConfigStorage.cs | 57 ++++ Wox.UpdateFeedGenerator/FileInfoEx.cs | 38 +++ .../FileSystemEnumerator.cs | 248 ++++++++++++++++++ Wox.UpdateFeedGenerator/Generator.cs | 179 +++++++++++++ Wox.UpdateFeedGenerator/Program.cs | 20 ++ .../Properties/AssemblyInfo.cs | 36 +++ Wox.UpdateFeedGenerator/README.md | 1 + .../Wox.UpdateFeedGenerator.csproj | 84 ++++++ Wox.UpdateFeedGenerator/packages.config | 4 + Wox.sln | 6 + 22 files changed, 685 insertions(+), 73 deletions(-) delete mode 100644 Deploy/NAppUpdate/FeedBuilder.config delete mode 100644 Deploy/NAppUpdate/FeedBuilder.exe delete mode 100644 Deploy/NAppUpdate/FeedBuilder.exe.config delete mode 100644 Deploy/NAppUpdate/build.bat delete mode 100644 Deploy/NAppUpdate/gui.bat rename Deploy/{NAppUpdate => UpdateGenerator}/NAppUpdate.Framework.dll (50%) create mode 100644 Deploy/UpdateGenerator/Newtonsoft.Json.dll create mode 100644 Deploy/UpdateGenerator/Wox.Infrastructure.dll create mode 100644 Deploy/UpdateGenerator/Wox.Plugin.dll create mode 100644 Deploy/UpdateGenerator/Wox.UpdateFeedGenerator.exe create mode 100644 Deploy/UpdateGenerator/build.bat create mode 100644 Deploy/UpdateGenerator/config.json create mode 100644 Wox.UpdateFeedGenerator/ConfigStorage.cs create mode 100644 Wox.UpdateFeedGenerator/FileInfoEx.cs create mode 100644 Wox.UpdateFeedGenerator/FileSystemEnumerator.cs create mode 100644 Wox.UpdateFeedGenerator/Generator.cs create mode 100644 Wox.UpdateFeedGenerator/Program.cs create mode 100644 Wox.UpdateFeedGenerator/Properties/AssemblyInfo.cs create mode 100644 Wox.UpdateFeedGenerator/README.md create mode 100644 Wox.UpdateFeedGenerator/Wox.UpdateFeedGenerator.csproj create mode 100644 Wox.UpdateFeedGenerator/packages.config diff --git a/Deploy/NAppUpdate/FeedBuilder.config b/Deploy/NAppUpdate/FeedBuilder.config deleted file mode 100644 index 4e99a397fd..0000000000 --- a/Deploy/NAppUpdate/FeedBuilder.config +++ /dev/null @@ -1,16 +0,0 @@ - - - http://127.0.0.1:8888 - True - False - True - False - <?xml version="1.0" encoding="utf-16"?> - <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" /> - True - False - ..\..\Output\Release - True - False - ..\..\Output\Update\Update.xml - diff --git a/Deploy/NAppUpdate/FeedBuilder.exe b/Deploy/NAppUpdate/FeedBuilder.exe deleted file mode 100644 index 278eea2032764079524f266ed1994a142251d284..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 128512 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�G(nqFyOQLh>D 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 - - - -
- - - - - - - - - True - - - False - - - True - - - False - - - True - - - True - - - - - - True - - - - - *.pdb - *.config - - - - - True - - - - - - - \ No newline at end of file diff --git a/Deploy/NAppUpdate/build.bat b/Deploy/NAppUpdate/build.bat deleted file mode 100644 index a9b07cb047..0000000000 --- a/Deploy/NAppUpdate/build.bat +++ /dev/null @@ -1,2 +0,0 @@ -cd /d %~dp0 -%~dp0FeedBuilder.exe "%~dp0FeedBuilder.config" -Build diff --git a/Deploy/NAppUpdate/gui.bat b/Deploy/NAppUpdate/gui.bat deleted file mode 100644 index 6c8eaf13e7..0000000000 --- a/Deploy/NAppUpdate/gui.bat +++ /dev/null @@ -1 +0,0 @@ -FeedBuilder.exe "FeedBuilder.config" -ShowGUI diff --git a/Deploy/NAppUpdate/NAppUpdate.Framework.dll b/Deploy/UpdateGenerator/NAppUpdate.Framework.dll similarity index 50% rename from Deploy/NAppUpdate/NAppUpdate.Framework.dll rename to Deploy/UpdateGenerator/NAppUpdate.Framework.dll index 60fac8ffc9a88c8a2dd94af28bbeff08d7723f0f..398d46b81063164babc3f1468ef275cc9a6562d8 100644 GIT binary patch delta 14783 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 O@IWAI)wMus_5T3X&NgoV delta 497 zcmZp;!_jbsbwY>1;_bUb7@*(*1Ct^*BR2y>0wV(h2Sm`X4#-vjvKxRj1B1Y11wTp7 z13)$t1H&QfiMQ1F7=S9gL2^J9Ggu}n3iB*rWZ(hvPt-6n$V~p&t}{83QG+WEYEA;< ztT=u1i<`^u1OyjZa;@>9Ch=dffG+mWIyGFPN5DzxdS z{pOOFwyeB)#ihmn(AtF=4_#NKezGdly!`1wG>nJg@^88P?*3;JqPvQp=`tQne{1%`9mjlY_KD}5 zTOYr$=D)Fa#s%ZAKV$7$f8F?*XN}j^uN^;k?f7BGy=wdd{|#qNbauLP1JcK@G>l_9 zEF&}az=>gQ&lu+HOh?8r?sg0#rOGDr0l43vM7fq< zK~(;a+#smf#)+W&8u~$ZszoG-6enq9;f{RGF-GFxJ^9C5tP5re;Ui;dCf1#G$vT7| zyelXd%L=~Zf8&O6`b4c>dp&@{8_Uk(e~drT-*QyfMD48eeISxo!%!I*5A1}uLZV|o z*HW(dBX6dWFz)}ZX`KJOWuyga7^}9K#wzf2{J3Fk3Shf)?tkpAjTc<}gAGd`f8e#x zUUK9?k3V$6zbBqJx8Hwp;g?6QpY_|{JoNZKE`3At&SM@w;T`|FDS7mYuZ^FY`Fl@p z-mTZxZhqj0sk7hzub+26oP1*Tr#k=mx7S;bpL>k|mt{{ZKJDXooO;xKZ+_F&pFQT= ze?4XVsBa}NdeiwYyJy^7cdohp`OW7wk6iK@uY2g5%f`$GL|~WZm{wCfCz;+QhT)n8 z52bJbbs4?bY|!=JjHp&%0|P5e%R@qEK3s^=DH+D_!i4cPG?EU($XWhH0QUCgdJC&p z_COL%K)2#az<(>l$Yw2&ABFo}!2gPe;a?$q6x{eTi8zK=!JRq`9%~)AGF@fP@u47& z-vCz*8FhO5%CFA#`IiEaQIw>A15wD5-vro9`q$I{R{X5H2^#HOY1Vipqnn&J$3j!r;9U7#WRah!wEx)ES#neu3zI=2p z?{5NfudQe~JH}d%>u;ZHm;%>{4bf6$u!A z3KtG5YiM=-?Ld{{ghbN;(X=GG{e!3#{~fVR-Ta!~OwN_q^%ID#EDu7rGt`?kJ=BI% zn9THKy{nM0H(Tye*uZ2Ouy+b9m(6=0cTo+Q@?K&31x(-B)9Gyn3Y@Fqc=riXz*HtI ze;13^mFv=y&4Hfu&I)j5U30F8G6;5&dq$WI>ULxS2=ZWnJg8!?L0T8q&>Sz6TGj@;Ifrb$*Fx#)?*gwI zN*yrfrm@jD^BFanrZLj-ntBJ+08Mw6n+Z4A^YXd6h=yU;P# zz(p(1S(UTR23m_f8v86X_F3B4lZ90oC+V*TUJ}{`A(_4QP;UYa#(`-O zqtjj95BjzVlIcz65`|U0iCn_WIbvTt7*i*JBsF(LJ1{Ru->q3biY&X4Ww&M-kg#(J z$rib=S(k=NWB6ySQv(oh|Gnv4DwnQW`EpijDVO$d1T$<_FbXskfq8%(aXb{kQNn63 zN`+Eh2zRk;ZqRPmN%MnE7|vy`Id_#NaFvr{7Hmix%I14JbDd@`D-9_qUI1a^XhE{M zP9>355-+KNX#4PuC3lAH<0r<7VQn9a^Y!$P0Pz3- z#uXqQ0Qy3JcmODb0Pz4Y5CX&lz+eav4*>lHunjDPIzpXumfK@^?*oVVg=zTMl*=9Y zN_Xwmv<#@33+wL(Yy&uzw4i~Cl_H=X?9$0*gKpLAE2+;%SL$jzs~``yGqW)S6#oN= za818Rc~8NxRy)m0F)FYdUl0OL$w33{U1%9=kq#rRTs+#@cr)p$0EZ_A)Kg4Pbg6G} zM@N1~2UvHV%HEn`;pzp@lx!;hF1lued0j?tik(Ec47)_WGD#0(5(k5sMlXW%s?K~d zhEh9(l&-R3C0Nj@0n3M>B10rwdNLR}<(sTvbEtj`BAX;{4mMd|W}(SiGV@K=4MteN z<9MkTcIP&f7sIEV=^X-KywshhRlfzyH6;_xSabAmMF#O$^HSE2+TxQ;AI$>dgasrt zqkE15F>UZ-3S%Y?ozJ-m7)%%5>0 zo+&(NGDa?4?3x%ZFU$oBqJ!&?BC-E5{FEnij(-nHC7ESV_#CBu*Dj?U=j(NAXe!& z$5OG(QksQX`#@OqfHRJ0Bk5#%(71%812O$6#NCxHk3vougymo>V>Tl$r|~_=2~C@F z8jZ{8KPV?gw8@D8nHxoNBJn^@=f>oeO-;8LkdxphN~zI6Oda0GRZOGFSYAoZ!K}U9 z3XT5EO&($riWJi=5iYy&U9@{Bu+d3b4aQ|PW4mX?XJZAD60>!BOW2Z+(5T8G>aGXX z4jKtC z;fd|q;L$telr8NI9s~zLn-RMYRcE?Zp916mD5MmWgevbkGgPIdL0?hWwec^dB*zTQ zJo^XlZpaN~?@n%>09DniWL@}i;ypo!_Yk#Wua}U{ti9Uam5v0(XWsxt5q_yCt-e9y zcUBY&wg+9N{Gr>{HbtE(EWbtsBYko6bNYhGk4!8PIWxt5KCS>^z5J zi~m$AnO0vx#s>7-ftO?PuY&F@(zTkdJ zFc^>y=g=5V35^j$PL4c1@Kb_*OK>0v7SkFY48xt?a=|Nhg`Qb~XFxG!Y-P*9rTIlr zE}04MU?#cJ^h$6mX>&|4G0^r_0AN+%IYcpZV1_1OW3(fId5uR9Dy(YKp}Z4PRxpWi z@jgg}(XRJ0xX#2Jv-WJLke1YyLuEI;(^?ijU?CN-P*M)S7W=%{LN1Ui=#o#@$s||W z0AVJ^B?%5$j2=AYade6lQV9b^b&GD`kpe+yUY=-mufjpp$DD0?$iu0mpxr^@ta^k8 zj5MXrQOm_n9Vakv^5HOVr%)Ow4I+nbC&)od8XINJF$?}mpqGx-DbVOdnj-cOC+uW% zRB}V^qEmgMQ=EZfD5CR9@c?i@2oMhd7>X%|c%ZEL0q-~xRqyfiZZ|zNcE_rnK>pqW z!DBM=Fof4!h}35N)ATN)*KU%onP>{NZ-nVikJ9ZS3FKuOux+fAoN0RJBj4t}r0Jm* zp#D%Q4`Ffl3tY5S2_tWDQCM*&=`L+q9GVVU`*|1WW3q=i4Jg>z)JjYcL>n+T;s8mW zKDg7L@-Rlepn|cR>76PbXxk~`nQhkAhSjHpHz%p5k(M~sOfb~SXSR12GTXEBqp*=I z86D6a{#|yNk-Y<^;40H&{hA&OhJ&`#ptviT7SZ)T1F5s^SjIM_0jsU@46R<70EiE! zXJQ`S4EIL*x8lbfs@+6Z4OX)b9$ohv7K^&yJW&IAJ!D#-FKw0H|i5Vhxl#3RpE@ldV`o z<&MD&st(4=NlHa#v3SCYOtn>HzJysnTA=NnfjEj1&Cl*kSIvAW-H^&&-D{^C&|Eub zFQ}#);Ljd{%)D13!Tf2dhZGzLKTI}xl>lnEFGaF*OCR2^wwrkC1?+z+=%)$Y#)T(SxGpYX5XBw7Gz~wYbR;EJ3s3F2@5qY+Qur z-FU!{j2)hW%Q`#(6?+PvcjCDT&vL*pZ8RRn^LX$~JqeHLor|1NmH}{In8f7G+58b0 zmuZtXsen=|lBNO8GHwgP#;&bAV56vped|1a7wW6)0IQqfXZQGRa{jBAx3D5(b8{Ahu!`lEn~&cB_PWqX>1)W-Mrg zMFNb4ih*k1K%TYl z$o|AJdZ0GY7L1wB0j$r>XY$!pXBn%ns3@=# zPtvK?y$NhOtjYu^2RPMzy{{l%3FNU8(LmpfogIvZv65n9LnCM(0?s-0uOXsjrVFdR zv%x}dvMo8#+X$r4vyOA*T>mViFV#yP7Ru5QPKYb95UFjK1+Cg3k8gAkUVDO+VYmG&P8#a>v|YNnP=VYU8S z2yaN{Z0r=-sa1@zCd+N2LfV+5L%HV?fq-*%C}GE`CM}g;8v!gVw~_6^>lSC#N9X{c6D=rx zgbo6_parFm&>?I4C&i^)Q1r6%zyU=)>ls*RS zV{!Zc9UuTU6o+k7SR39G3Tx{-zDpQ78TLiL-*U6FiLz2iCYc|H9X4)G7RG-j?j{OPBeAD4{tSVs!uX%W-9*W0WM?`*{$~Qy zh4H_MyNLqCpj!`@Sk1#2#605&y4(X34**Ao0P$c{e@VcvZGgTpDl$I`Nc9_`3fQ;J za}mqoX0YSf-1BuD|NBUTHT^mQC3moNxY=L|{|5kXhH?yZw(w>~9&Oft2w;=Zrgt$x z5aQ7YS^kd@VTDA7NQ7|z$0PzF36YHfk)MzVqXQy1MMGjJ7djZue~y8}@-j#_48MY5 zmR~%GI5q@`2d8TW*dsfp?Y)h80pqw3Lp;D34l%9@FrfHKR6I!X$`Bx)D?{c~bUfw& z`a$4bq|sH(FsBp3Wa0tfRUtq;VdV^?J$xK>Glsg^xCSUZI#hPWo4+X|?&wX~ZO?Jk z0qu9aKcM&Ze+pl(T|OO~#!ta}JEJ=t|7rNs3y)57XL@w?$_xmzU!Lh*R~>)xAJNn<%EYBn$i*;Ljj`hWIngpAr6y@@I@c#Wa7nqG@Szw3>k}sRAA*PBC$6 z2%%v-BX~yfFkwm(rnWi*K|-{sp)KhG9wtmPVR{ImVLT&vM)5Eq^5gGTXD~=e>z^Ol z0%Ob{CeGPRowJ7s80OCie@6L35;$*Y(J(cJeFdZu$>&7$xzrGnrkFm(^eLtn`RB9( za;Sk#qS5a~v)FVl)gR4Zeb@}d16yj!gj)N9^AH*Ab9)aURmJ8etnTw##+lH!aj{_+ z0MB(+x&UMQ>Ck2-eGno_GN8Lx6YyxG)5W2Y`zRSPD}~kLiB|jH9bZL@mS=4*>NLAf6RwV;unP zoBD*5J|A>P!B#z4#HtX>2#1Ve!IZgUnug_hu4<}C9|eqSmMmubn&rJQp<_uy#BDZ+ z=iiFD3^(fuU>|H7XF&e5MIQ*mNSI8B`s5c)Vb~))MZj<$oyapq-iA!D1tOg326}8G zoQZT-9G3g5EYN(jQ1C3Ce857YhoLe-0|OywAOsB#hM++Op~vz%G@a#tmZbK_svOmw z10Go=1ZBv{DV=21V(WZZ^A;$Mi`txBF+;0QeYCs#Lmq5LmaMN=?S8jhRKK1V$yl;z|g;kXaYRQ|f`N=efWPR_RcabW18|CMMpL*6rx6&9#1&dMAd5mZ#g z6NWH;)hq%A4nVKPlS>^K*JcuxlqF05)%TT<8^`}_qqE36nspCg_jTxEOqTI@%6MLe zhi4B?f(z|5zJur2c(@po!NWNg_hZNL?2YGqJX1H|$Mhd!2~BQgI3-(-<>;ELErs$w zy$iV1j)`+_ePxV~K7m5}|JVstXZ@Em@`uwRZQ0$ebei_9AK70tFEpDf8DC9SY3kdN(Ylxs8Q}W{TU=|)=qX=;E8En&C%H2;c^(3c0YjM z{KCJ843^B8M*>iGZsl~bvsCOV6=$IzyLCpoz+$_~L;d#xuX#6SU9CyGAnWbSabR^O znJv#rrdDHWd>&d;T8Wo_SC(|3I+_LSjYPs zet1Zl{Xk(7C8OqPk5!n&p)=_NC$LgN&(H)AzDWcef&2ztv4UKT#Q{s*RKlD^q?>`; zho?Lj{R$J8_r)^1c*>z?PS63B2hG|)!DBAi*5VpYz%Pb!GN*SAIU2KObbqkqL{G2Kj!9;H3? zbBxA>R#X3Gdh~A@E#{i3e>Xk)_ly?X&FDW&kNzX0#Y$5LP2*7L;9RjSI8FK|VrP0f z^aM$=oCWO9fXUI5Y;ba~t)zb;xu23(&+!r5&xi2bkLL+I+wr`JCueorc>ap#P;|w7dhv|o zsp46RXX-%wUM<=P!9ZSx{ z#xc(QiJkP(-Ua((q%Df0v>C2rP)h97j{arDPWfoOf_)FMrI{)=!}Y9Ur+4%pK5^VGw9coAwo8kH_#qQkEzlhkKKJ2Mr-$`t-tBTEVy<4%ncJyOl zIEs8I}W=!0rnURQCBW~14vS-9+U(lUJV^Dv@#YcGXY@cykidN8!k zhKtSGmev?c4HXZ1=x|E=Gt2lo?8hvz@8Rh#H2l`#l2Q0q;5iD<@w<3d0e(83b7Jx3 zwWbwJ=DBDrvwG7CChqonmZ92RTb*rxr9%&I>0I8V!GInC=}PuW#z$=!(iCR_%?x90tm)ymJZi!?|#Cu8GyEj(VL>3ZB_cQ z2@Gj*w)7nk4+f#I>%)q&*lb(|bI$c!E;vZQ@*zB@bdBl3q)a=DQ~+~z*iEO&WTg!u z&fc9E1_$SrqUex1dIzVp1#H3IV>piz2J@OK7Ia9+Y`m3RIK$?gaZF-*~`T8dOdQfogMesN#K#dmYU~utS!mQ@yEWuT#_aKAb`|-<@KV*j|f9U!N z0830VK$flMe=y0>SVW@7uOU`JSVObxNZ|-#NzOdH1DeD?MXnsI?s^xHN>KyyuC3W1 zBbNUrB*)PQ;VOvE0N3J6Yz|gkE`l>SQC80okLxA7!nub;>eh7BIQVuE`GiC1N@tFa zmVLPQ9mx!Xb5tlx=xr0gh=#91iP`L}s%!RzNN5YPFQi3087SXp8cR+;V{9&z?zP4- zgL=#U(6`OtE}ZmO-VYQP>e&(Ek_7t!kYFEB>`@Y*w`PL`|AfpDv*Kiar1a_><1__@A zMxTqJ8LHo7=IU*!62$d}GFY zMWD=0@jR+4&O7DWT{{-^+TOME@U}a4FZ)Vvf&Vf0y#(dbK1BB$VEC}-k7ZD{4=%JF zgcPpjXurp~lV!XSb&oVyPeljd*4|F8FNKY*?1i>UkcXF7vAXegw(8o$i1trKr>8Hr zSnFY^J1VoR+v)NxK`c$WrP|j>g&Gu)U@NXa#Z3p~=@`qAXPNpYRI3M=mQ}dALJCfP z+Z=Sv(wA;^{2@>)T+N;d+iH^e)}(hjvTu?dtRdM3MiB;*qMw~&&tTbD#Po)#x4LSE zll8N0?*PUXtlIosz?iM)D}P3w`hrE^fk`YCd&^PWOnG^bIz8DRTNuWx6lmLciD0%> zTN9Fsug=M#O(E*UL^&5HJt8Ukui=Q|YE(`KHtmvI)BXsB=4_)3^$nwJvW|C2+|7iP ztlGcBtm0gw+${e_xM*5AdAZ0fpQ+qrlEHgLM<5zgS-v`GB=K6&P`T&?E7;P)VPk@~ ziadR(2-&^1r&W7JD2}c>MkNc@7;gk$e3eK_`$;QST%Mwc3Nz7ZZ962a(@DhP1zpoy zM&0H6)Tl`A+vn_c51_Da!haD}vL0r^%+!wsQr41nZO0#jK>Q+puq8Z+J=&AN`8o`0 zJ36go6=z(=5mnA6)#J}kVJ)9MW6DY={QW>E+~s|2dw$+BV#qjQu2_0QJ(|9D-36#Lx&^3@^Q+uN?VS= z`+ET^o9dJOvCgEmjqD4#RG01Vk3>?SY`U7&v?+fsQUnCGW``#3bV`Ruj9C6WpkNb4 zSAMfr?LJnY)JjXx;GeSoC)|Z1Yi8UgYfH8b93NBGP|8!c13eVQ`Ah(@RUMF^z)#rTa%J9)6a#4><2ZplK*i{{sbBbUOVf?KcmJm>K61iB@6 z>JEre>G}I2ykt`=92xkDwbSXNow~h=axV`0`QxZBwuzv4txSFqkUaoVP>(4%9*U0R zfCw!mkRAcU$hct15thn%2g^pJ%8g!8MS;i5FtqHmIIQRR2O^;*ZNc%;XR=eJt-T9{ zzyKmRiS9bt6c&fN0qnzrd1~7O`!0+6p_@jSPaH3dD=*cTOiR&BvJ~eFca=odf*4jI zrl#mqaM-bSeQ#i|cQVy@#~b~uQ^jfM7l@=*;qZu7U_C;EJW)HW4|BFdKz9RJ<@kW? zViq0jx1u-Y8>6<5UJ?f;H?M$U!J)#hGL`i2UACoAe>R%0dSR}JCx$M_(2Y8Q-&)%^ z>N7J|Z7Aq;s34+nlZ(K+Wx{)=raFYcHru{=9 zuLzkL5?L~CkxN&`Qfa)Fd|MjBFV{j*IBO}-vQj=LI%QZA4&;K4>bIu18imw$F*Mm1 zv>1+Uap3D2IMsYD18#I6CgUBgBh128Ei$zu5FY@gz8wRDdhW5Kfm4JcAQ`aaWxygs z71t6uc&mV52@`^*(us|h{MTZjV~Ip!xG@AA_gDeBpwFTpVmJXkLZMJ8e?D|csY!M; zglvz{ZQ}s&D(Ka{%mEoHVh}0(;ZT*(-HO*rz{nAy@=JMSL`H{%q<&6*(25vq>Z3Mq`*I5^cDFn6#(PUjAew*eBU3_IRMbbB2iLppcc zaA=HnbYK`8v#!s#L{K`dZ-;Xln5kps->n~spG~axma-vF=1tv&ZN<2^AN_=Dtw$e% z!-JL1q{D95@zFhFog@fw#;bc12O%B0jnE$FCdO+=<-D@f-!h8B#{2>w-90T) z5{J7mpmehiUP16*0beJMCZv0vd~dRR5{5lVA2TKlpmGVm!cx3oVHbYSoygNaF;K3; ztxpW#_Yzz$QG}^F9W4mWVu0=}9P8|+2Q#H1xO~rnClt_Ru19CG_!g{X*N+2z)x#fv z*X2^*+`2s+9rM(E0BI>Z(|DB-S}KPV-v<{*IVRpXb&Vj5hc*FrL`Nr9?ZuWLQc@K` z)9;E)qI^QCM)?PE-8~&xX2d+M>>UrT%KNG%C|ATLtt^C+b&|a{I@MPKhi9{r@Sgy` z7DYK&dN?KyaVF3{sQuI12Ucs|&8Cdy?521CxFH0H2TRtR*WLAeiwtfI9T zdmRSrSnjCZ0zQ4b2=8KnLu$`Ek&K3+Vs$bFC1dwra-`$Prts=b4aB`a!}NDrX;IRW z+^P6y}fRw2SSEb{9?efDJSXu30d~qPqVEnz0t`friZdP z)e)=qAXzTTYmyy=S;MW7U=ow8*jr zO<#_{bqV_Z>mkOucN%!<4-#s%yVs5Z~WyY#~HR637yo*SZVZkzkI~OdFl)R)aU22MR z)^22uH#z&u#u&>7^(4bPtEcxG%<&M?$ z0pN6|Cg2Qu=JQ}GMjL_e_4FN1*oT1LZQ`{PP1g7nv!SUF4+Q#f2oMkUyd>j-_W>k; z#rPo8T?PCv01vs{hH&#y`um%Y(CKS_krZ_NfYGdRgp`-)8T1WuNDpR3-rqd|F1nnv zz+HY(+A2=?XTv++Y>OIGm|rGv}P z$dZ4qq$$2up`{6PU?O4Snl+q42LpWX1LI!ag`2CRTgL#v#}LBJmS?4Wj38Vb`*FNm zQBJw>)UEzzyPK*YfKs?m>A;b6bWN@kb3f@&upgB$-VZqcZ0`aP8uHPjy48y9Bdv>C zC{B3iqm@@X?b;n|W*mM1T)R6SxR-&;Xt2~)DUw;)&-9NqF?OliwZ}pf(?1R%*&Qk=S05wH(`t$r{FdT4<|}a8T8YwR!LipLkHpoKT|dC$e9>OVFiICC zb^NE0mh>mKF(oCo7#JG>`y^oQ#xEfm&KJK4z-qsZD=#ojxF0cC&BOBeXW%QX!4?Lh zH4E-qGAsYh%;-i7RL>s*)eS;bqHw%ex$zss31ns&v%$~NyUpX6SafhMiA_VWqc21I!1JgYduQFwS-#6sV0(DK%J_a^xuvo zxYeSp+>;zz6bv0XP8qH^V3>nPFsdHHluoy$i>v@~?m?RGU^P<$}hI9!9^L}`^zH^ZK^48z`X<-16{HW zF1R9}oVorwws~{?HE=RcWs&2*2QA)SIBr#jYwOU0#Nydv$#hZZMpQI5!Jq~?YJ0M> ze=?rtvE8IeDjokGl)YqC=GVrD+cGe9vEy2BEv8aBN8}Z9j#7SwrDQiL9 zGv`el{&7F#-RNhIqs)XVZum(cV?O9MWg(2NgJ%ju00Z5y!V=R;DKyV>ak$RzpEn z+t&mM0_=@owECFoy#vxLSIq{?Qkhp<6)HfG9oAW0U+Q00Bt+K&A(6t;Z(zaQ^xh64 zd3QUeHdny+6xzt4u!S}X#6L7xc`){sKWGi5fa^Lz4lC6hXTVm-``}uaaxE5aXmM$lWZ92Rhq^ZM)zzuYmUe)0bKs?mpLjh^>2mY7Qze4>h=|7Bq>hKM~ zh7RN17}UnAM2ATV{Q+x-{lN#|xfE3~bt61bWywjX`#%UQ`}@$MtMQA5Gqueyh1%gk z=a{pq{VU*uWJzNR10AY8L8|tLGtz9(5hLC_f`A5pm;4YMAdcmcY}s9443A~40+zKb zx$C%jB=G~JC%~I5ehJnv?oL2tej(mWB0cHj3#-enE{d@L&7)$ezsJ;xo`mKx7^b%R z%Y88d$T^`oAI-GNon-9vI1-UxkcN*e@Y3)BFxSc**DfH@D$Q1tO0G!^pvVuCCU=#T z`K@Y7u1Y85FgcDY+l0)#n`jw=GKn*@1fcaTmN*-4r6KWtr4r;L&UEY`PNciTY`(lD zh>$N$MY#WCNVReigg}0p$Ka=YNFWki`ald0!kP!e2a`l4K`&oIdkj>@oF`aX)>T44 zg|4Y_2L)3$T6tBsPRZz@L3Lm92qaVcWYk5AE=g_i9%E6HWUX%mYvOa_Rhh>1MjV** zx;?H8AHAC)r2s=}EYp*jF}Xx$@lg#)&QE7t20D^FHXt;GJB%I%khNfF6Nrr-1S%&S}_nYTT5#twpJpfz0=l8LB!U!`g__r*wes*sqwO!G+wZ$ zv|Bh*oTy;uVTWD9k4Xa-_Wr179ZHKQvYoJ>ZMO4xkfH574sKvO=~dhLVHA?K^Ob-! z`2#;*h_Ra|s2|t7+RYQ`XVxDCw)FpBLNQ(~@*}C(SQ^83<2FcYqM^M=QUMP#v~IAZOE8);Y9~j!*`gbpKn0olf5mL8c?zix z3f1xfh+){r0-xJl%^0&mhZBO$gb5Er0T0_Z1_^^yGS2>->D>WImk%|Cp~{lly)$sb zgDui}RZy|k!}a8#D^j6K>$yqB-nS!8ThCVbrjNa`3SjVwwH>nC)^?(?H!E*?vF!==4RgcO+;BkIdcXxkMNc za^-axt24~SUblHRV>GSVU_hJa8wqakw=x^i^fXT;Y*2`xc|x*AK+*4Cmq1nX&6 za|o^T8Rrm`fwVL761KBl&LJfKsGW(<#M&7(SK66Gh`O*XNwHBFuCS^?Y4z{Oqe<;N zhhTd^I}0>jmE3Al$|z?`Xb8+QoN(@3_2t6O)}*}F2sP+pS8U@a7_F>Ax$<)BV!m@K&)LHCGVr8QZ%?kLxX;3I{EjdC5?T~Ip00-M zgV5c0rmjTg0X(tn5sg1Zcb7O9!lsdNC2`J#N4d8byM%l(Pj1KLu|t+3Q$1XYdioFOMtLuz~#?P$fK*5WCF+ZkC+d7Yr0S zr>ZSJVzqN%K_k0ck@lifXJiuJ;E+Dk!#1Z|vHE(`Ev~bE&fZ%fAy9$9rho1=-aSWDb8_D#%Uv<9L4o#thB;5Q+SqL^|GY=mvSO!35!C<}D&|!#fN5viVMar(_(qjUVq3 zH~1pP)F9Ht)j$}a?ia@=2YNb`l=pV%o-#Z29NKLzX)W)8<|ca!Jq4Xtr4$p>?Sf2= zoz=amRON_V3j1OkP~LEK$D;DzWO#43g1Y~r2KEgm&=sW z`9-JaQu#%AXR?g|T0o3IXPO^POyF)>@>|BVKJeCmLV{2LY>9lA6uDFKef2p055-g3 zJ*&84HQdOt^QIs5a zxN7-&R6sCHy-~IzoOZ|u zmt(Gs@(uP3PA}hJSiZhoUw+YHVPX2TF#Y%vDMaIXQrr17Zq=}Jd9AB~pz4Akt4_UX zT*^DG5V5YPRpj!Cxuo|oNU%Bz7OT4~Meyk`TA~?CIW4Q{2Ir6`FrgPAsy_b~SK-8L zsJ7nm3G~iw&0pJwV(MwNuZL~+3CI%rqtom~+(zs~-Gqp2p_vRh~)iE({tWu zvOigwmGu9?WC{NsXuDJ5r@VH;oIm+Wv$ho?@csnc%3;Y$I_WE2Y7 zPfGJi&6v-$G3FuPK-V9uP$(AuCXAKFS#UXKJ`v{bwQNJv1%cD4d*gEq-XFmfKF1{X zA>|aS%YT5Ba^i>jdNztYzrC$Y-3)}8$c;}VoZ>!{Ym&jC!@=Oh%ot_?a$+Vpv@}08 z{%epBdxxd(dyz#YnUC?1 znIwf-#;MCyhOEuDVdsIDGesMbog|HF%b@PGYRZT29Dgd~PYvSd*PQYHYr|1qm_#nq zCPBfOu6FKl4X>)mPQ8H*nb!_P-fC*NeuA-|@jB5(>5?rTfiCZ##=t{nU-7Bjg21{s z5|y09o#43U&CX}H4~AEyrM0(s#B^kiRw(hfCC-Nl%NbF}7IG=wNH|DYP^>sUjXMwq1h378czas0)n{4^A}w56GMKhd|u>Cz(S9 z@r=SPaL=UfdbHx5>9Obx!l8&NZ!|r22>vIL5L(@jqw1f67k8NZe+Rru)jb`+hspKN z!L_|3kM__yTNF>8K=Onn&)@<8Ca>6q?Dp9Jwvs2}$@3-s$_ZLP#|XrS_hRQ9sbx3O z6U=#AOAgz^;))05|5*qS56fy9S=hAKOIiPoysf;{5>9AYkQwe%s!yg9*+KOrX0(Gbya4xt94bzWs)(<>E6XiN!?oyH_$zLRrel6v8j7+0;I_w_}@(bCG=DGJ_`)dJs9jj_n17k zR|vB#Egi!FIh;53MR=f!l8f0OB~`AC@Ie&`pL!c{%mzWKUmF-HeE3P|SCyLygf-VO zVn9-1GvPv}QyL*cg9rigr9y?jl|^QQuD=D;DszD#q5BbPGDZ1(favkx7lJg5T}FW` zMShQ5GKg^fk0Zgv7Ztwb^K4VG1k3IrKq3CEEz$~DkEUuio5ZH$kwSvaNmzC7003_h{_4pvcHyOi-5^iZ{K*L#cHpJ!&#{`|OM&S|xGp&PX~ zQK(pZqh?EclL#pV+mz@O7?gM3On%#lb0W5>K-*Q(ttJ({txf$dY*XS1+SEe0XCu9S zwUZVJ^L4RI4%`%;a(Vz)_m7o|-KE+y9P#C0TQ_h&?^?vZk!hin|WoYX?4l{W$=ub5i)clJ}qRrkvXEK{T1S{m&z~9k2d*Ux4SS zX%XHd0P;NyG(SwE#oXSpy)Qk(ttr77$pektE2ID@(Wr4+Lta}j(B{J-(!WA^hzA|s zKM8mN$0q54uF>({gbHl_cMNbL0Qh!}#$JK|PI}{DPxEg~4J!XjmxqVN1HivSfOr7d z5dy@s#%w$f06wT#e-veFGN2&5e9(9y9>suy81?sf6axxk)c?ez7*G(S{t-ldiFq-g zAYRiphN|-)13bTwH!4Ut?|&Hp?*f#wba8+JlZcgJVq4w;O!HL$NT4{40K?M=2#OM* zcN&55X#^OaMnF)M0KL-)%$`Po;b{Z}MG4S5jldidz~Plp1`OwURyvY_pkVD6GN2c4 zYBS9@DFamQix8<)zjy#JIs$-rIFIW`^W|T-O_-hC+9ve+K?|*jmqRsw&)P8?bZ~M1 z^cTXLf6{0=UV+KXhWOuvml>OXh(+?Icb`eu( zi>bz9hT39oip31J#Z1IvhTCEm#9~H*n7q1>3&-k9;hrNlmg>vyj;{YWq?{>ZLF`-b zU=m{cXW~|+q}l_#s+FuDKsRs%fLMn$N}#gd*6u*0%7cw?xf0oj3bg-%Z3Z|PLQ-T$K$BjY14^2#Z1Gzp$flZSs z@D`-FXzZbD5zbCPJczJEfOr5%gaGjX;DiA2a1HL&DC1hn&+--_bIU`QTy~wx%N+j- z%+c`9lzJQ=<4wo=H|}Wh4x%A&8uy_hy+hQ0KmCWQ|Ks$(41SubRG6c9&Q|&22Gqle zTmL>Prj8p(_0jkIRW|6>exB^c{i=S)XfS zWUxkr7dgjqhV3c%GEVTWDV9^Q2;&CL%t^NqD#N3g`@F!ekkrm#ct@Iex zL$s{~lCf$RM~1qYrev0y4Z3}ncP#WM3}XF9f`8O+Mnel+AmIf#2&s-`Ew_o42wHYJ z_2ckLc{4*mgTDp;R=!z}#>iM@2(ssz_iVTqQ6Czl=a+#80cui0@_GMJz+`PF#7{){ zm6w9w6XC<;@0mWDbjT0P{hsk_5k5MBJ>%CS{Dm(Ce_e#XXqWg9u1IhWFeqsWz@kKf zUIwu9%oxk>i$}q#MR?=!0O}`-Ih+C3TZfF%*SGjue-wItv|?x_-{_V1E_Z>$*F+t8 z$yeTg9YFo>L`QLsCnb(8t_2SN^x9ykUMETrSG`#bn+-audR+uG_^Ya?e#`$D3gF*^ zpAc{x0b65$y9xMc4DcZWJ{$wwNdU$ZA{J(;`ux_A%GGf!vDk&#BX_YB7~pC5X5hJbRvYG#t_7> zHws4xm|wQ4N&I@la)j{97=rlq4&Dgi2QdWk>!r#O!jEDI;~6(A9L0*)<8MU#)2(Pr zzRd+yA*hx7Gp%@EydHm}j&15oFGgMMU639|6GI-1Ok*$(;sRf$c0FHy?87C zPe!rg&y6`VY3^<Y7~uUME5i&wh|qY2sT+q5@> zA8rLb2JdeL_hImnR}HAPAfRUU{@=+fWe_w5M7mB^IE}0 z3@&X27c+QpD>#W@>96Qu=E8$}nXkv-ra6!Py!S5jMtG}nBY7*H=)H%*S>{Ia=3UDG zb|rB$0%Zir$e(GMmku%h-H2au9bmW-fPjOpfZwz>QbwzaRVB6#07_|m+puyM*v{zU z&pD$DhH+X1S1HVsBpa#Eqt5CZPL_1MXod5aZph?KkO^*PVcG-#$(q#cC3hUvIGJZF zHcaNQ+OQW;tir19jwv)r!y3T$w&aLQ*Edr4Q0Cciw65{pE(VIPU$_kCkBVhI3yg7^ zF_)R(!P{a3N^>Js6?Dtp*u9ZlLP)?E>n5y}g~9@Ug4~ayV$Nyhivd3a$af()1kHUS z)UkF{ywVt;CImIeEV!HQ8nAc?WiuG&v@tH4;=0|AwcpA>)6t4=JG?EHzU%NF17 z*6*0Nq;T+_c|*Pf%(oZ$&SJi9kV{B=Z76N5oeI;U1H7v*Upj5$zL09wt(R@X*+jnp zI7!_P0hvjQN5<2m;P1_BYaTZ@aHm+>#4uU?;#B{_@2y!A-DV|Yv8~EQ7|4fL(l-tW zDT)Vx{X>9wRCoV^JT|oQh(2_G7jpElIZ*bnHePn?zkqq*!S4rvkJafBSV3MlnJTPu z{9ht&L8k-1z_EQk5TN)U1eu{pe)gFucm%%Urv=Ibve?W+cOrM_ped<3A0OWQffrE= z-YuB$_wb%@UIx?rB4+itY45*~U)f8q%b@zO>pMuwPO>L8py;Wb(|m-ODZvC=JZ3>A z4_SepEUBN^jh0y;Yn%5@2k#(K{y4yTIC_BkuaIbi){W_(!JB_H0E=Pe{R?@W57IIH zg8#epVQPF*(7T)VmEU+3kI*w^|G9yBi8e~`B@gtg+yi_o++YuoUfl!yj;{AKE(fH^ zAB>)^r2h)~xvKOvPTjc%h4vVfmC5lzRN4_fhvF%}4x4^L7T-reG_SHCIZ?PWh)M=; z0|Ylum<@WGm*EGNjj3=9rx-Unc;#R-O>xUam5$-j~8jS#=O(J0+DtnVf7v2ZJ zBISa8prFKBSgXmxYWWTX&ZX02cNJnOyLZ41WJj;c?ni;_-U&#PKO(Pfp}a5`4dlfn zF?k(Kd7X*^3#kTEN_i_sLNXG%6?NO(47do3p61)}17R_V2usqM4aVtCBYheUgvAtX z!V*9vETIq+7R#!7X&Sje7LZp^%AkONQx_eLHjT9sCW*;ve?*i|hOC5?*mov!#I@@ zeP%;{Non%SqE<}TCMf|#k`g*GNwK85E=xI44v=Swb{{fKR zjOFuT&jsoFZwTHU)hpGE&1mM{0IN11pVO8eX(kNIKZk~IsaeQhormG@K8@U|Z`^la zHNS=WM1jd7ATGY;(jSjP-O7nY()RITJx7ltX17Bk@OJ?Fsqnr<6W`k^mUNw+>q=PA zGd59%;0B}Q@E$VRhR3yBdRrJThw3&=InRW%!(TDw8(8{Q+Kiae3vIp;1<=KsPgc#=>&^lwx)Yhemq9PiA$TvCaNIO0Y zh-%Ko>{A^7Fr0!CA$iZD>_U$-04ZmT-tsuT{r75V;*9k4%gXqG1&QB|E~x|K1^VR+ zV>o&!0lC~(v;G|wCC&?0ZQS~Y$Pjp88KI#DsuHr7_YqLNP*@!QX)AEyr4|@OO#QTB zsx4cJKrXM`rCgWB<#72PD~R3=>0k5k9z#JNTqXjclcU*{Prl%19qS1o)kj!B$4(! zsUq^N*;bzKi1M7;eV%(#8qJeL+Vi9u$ro!|d0rLexpen=?nx0ePZDX*ld2(KvTf!0 z&M41iyU%k^%A$FaNPC`CANlI9g#%ekkHTFXfy?d3$T;>wqNTe3wT9@^i1cc164_RtVDPZDX*^DmTb4}K)iJ=)7X zb!SoM)hffgqB3B)VcHm^t-a5kzkB1UWgwCEGW?Zgm=%_RHU|5oq1+~SpXZq`DNhn< z&-1^TXD-Zhk8;~nm#lJQ2mI3NVNcbq^jNt1W$`}z);-AriM7?N zp96tZaDf7c*_f(f3Wg)r?SrT12|&KPnlrTZ>wBttEe|XDrO9Vc)vEMZi9!!LI`-sYTg=`a7-wtl-n(x$J6BfyQ7T$c zm9Rq{)nJkoFmCGAjcfoq zlNm%(|9hl3>xhDd&-!AR3A&5u&N0{4OY|%@H*23q7>xwjz5W4wijJRmFK4N4SIV$a#)q8wmw7}&~-pbmNCcWlc=ajgA<(s;*}(HoZ}xdoJ04%4x)60cgX}YS ze)a1nuJ8jN-i=sCTY4Wt7Wl{azws`61s{~-Cd=65QI^L8&{dqE#_ljK{Is%oUk-N@ zIR(Djh|QO$FGJGK+CL-3W^78Yh~_nQ>H0r`xFN|G0kJm&1;UpTu&<9NhbMstdL-Kf zY(pG>VrQZ@6gXC2>&H_vmK} z1pLSFpC?}`N8m9=pmG@TBlyqP_wn&!4kKs^5b=Hbt4isM^wW3%{sjFK3V)P-+7ZA% zPyYgiQ&j-kP7vD|{7=)*4hH^bHToHX4$|nK(NELMPe6#$cT?%{(IDzUH-50|*0<8w zD~aG~u@+!?MARn0c1Rt>I&IF58lPDoXLGahdM>|4mx(VU%l#bM?s|;OXt<7S8=X*@ z_ey&{-3i*We!{VeFF2O5HqDQ9F7*&~JwJbB>Ip_g$)@mTEE@rukbFy&{1@<`fIOgW zj7@u9f$*t89OL6SxChUBnrrB$=hEDm-sdz_laN0SUc`p+3Wq+(0!yv}l$C1lAV8uR z?~wN3^0uH^yOIUE%rNjab`f-A-*A#rf;FBqUJmztlnpPpaO*E%f7*4tUedxx4w0_X z?@0RL34B&=M@vY_X)E|D_pIUVt8&M_V-7@08?ira$w5%OM1{?eaq^Z;V)DrvCvpA?_t#1KgX5i~WuVnfC@- zWwSAbvf$-FYdv&nxN2GDtiEcXZ`(H+T~aK;z=44gd^!^f%TH%&#MX4d+L~6>e5P#U zLvzriYtCJeaFRDw|3dF%uE$6Yoa}W%{D2fw}kNQ>GGSrlKr=*#~*+9_TH|C)yaq+e{{24#FO22i#x} zlwREfHR0p?ws?iwZSsfp=izQ3okPumR#+k4 z-y0D4E8h;TjDP?`%`_tl!j0^<3S09UB#R3a>ENvm`DK3BoV)mn@?mXkMtQh`#@{Fp zhBS|X_B>?EmYGLewm76tfFv$O`?kVSR6R}BPPA`(D`bs*+YEqwqb3Vi+Bxg?NQmOL zX?6QSZWyC(Z-yJxExlT|f5JG3b-M+SCV$|+mHu1kXFWd$44DHKTJ_B2)9RUnoTCeXaU$5mR%GRsC&ZOxMzk`lCM!ejZPa^cH6mx2F{i=OIV7B!QL$S`uhUq9uuz+{6{BVn)cJ zb17!GqzWTjQUjw~QiEe#QbWUAQo}$_jQ}|{TI|}A8Y|A)k}9T)IsCfC?k%ZJTu&Po z3g~>swxkQgThaqalpX|XdI*Wqo47_YBslUJ=dmrg8)z6m#LL-(pq8^Yae*K}!n6dW za7hV}5`vT%L}t0fCeGY7H~Hr9$QFEacoaVwIPEQYR6uJyPk3n8306Oh>TsCzBB>FS>6l}NPX~JibFdM|v-`QiPy__<{ zny)OiZl~L8+jD0c?we~$F{>WH07cs)WvF`Xc#8>CE@dwPfR_08(PH}wP%uEicu}Hfi zN_#s&y`lygG0ZSacNH7w_Oy!qgLgXlERDcwQ6*Q&u_&BX^G zrGDvW)r|wW0u{y(+k@8eZO{5XREs(0a9vve9CJ)P^ZSZ!%a>6f)D&}xKO!IgSyihD zh2cSecT&8%?vCp?R*0&tzmw&hvet7IqPoype-B;HTF+IF>UgN~*8idHO~B+Vs{Q|- z_wDKK=~*&cdL}bTIth@xO!rKdVVNW>0SvOpj+n47>J>y@?M_^nObDo`2wVjfML|FT zLB$m}M8ti$Ub%Wj^a3J!-SN6zuWS5&zNhN#etRYX?tOm$Jn5;bQ&p#`PMtb+>Quc| zTV;(Hhh^bzST@`$>qj+M2vfH;e8$eCG4>{nhDSA6L>l9>u-t`L!lmlG>T0|_KqX@E zcHmV%;+=*N9coK(pt$XUolv{sDCQy^Ud6{Sd^cxQrkKrA`Tg;74 zbZ`qK2kpBj3m(XQ9%vmVd2uC(Z5bHp@ z^c`WTk5ZBoW-|(V=`Nimn_*mLkkp)UJ}7(j`K8rU4r6r{dQ}5;w3?+pYgbO*Fw5$F zd$a?^nu#Rd7uc99t26Iqn&jCr{GQA2A%0RV59W6`zb-lmN@tjP?5@a@y*qUw9*;TQ zx{uJH_|L58$95O_EsL}-?0CiYfmBk*$`VyEqEyvXy&WU;dvv#oE#k*g(I);H(F(=i zOGS&Fs*Pxc?Bl(pdd=bEa_z3x-=0&?AF7_;PnBf6*(gb&`0+WpfD~i0Ht4ej>W;>L zOhM+5)5@;Bp`d#j#S~6hyqmBS4qAsq^wDUF-%1UBTPWW3JST?=%HhobqsU&$@MFN zea&MHOJr4V(lm|rXo;H6BJW-qV{m0WmMdeiTp5Sue%ZTU@$Q$rE90)>KkHo?ZxQa! zSSybiXO-gLeF_<0i3rW^ZyuWv=$>-7QwqF|3#nVa=FQS$+g1cBo?;eov(WqE^NXSG`pYjc;BYyVQrc$o{ zh^*<%yUymH$&8O@^l4F>_O_lwnP?r9dHmcm7pqLcU2GWdNs*l@b9wdYl!;+>cA1dv zL=YOC%>&@11YjQ4ZF^A+^t)W7%SNx&n2>#WEp`2X_;V`*E~s{dTjUliOT(?77oaEH zA~*gmTv)7h)?Q8}-HoZa_%v}Q`87^pC6jLyaW%NJ{h4?Zeg5ef6gE{43_0A{a}4VtnOyed~%C5&E9_lXBj zO-NxLBHk!{WSw(i%_Kg$MsPBmtqi#5BpJ<93nDi2(4snPzY-BHCU7y?EwwoL9geg- z?r2!fO>&z@v}TxOK4g5s&LG$SXQD9?z*Og`qFOTv)vI`Blt680t!ng6;g(#rswOx$ z8qTXc&dt=zJc-A)YtV{5$7ak>Ol#TvL*>CW9PH)okjD(hFik3>y$n$Z_Lswa!9?&f3 zz@(gmRE`of@_fSbuwu772RHL>zVr!68Z^C_zfJJ(kKjjBs-J4U-K%RpU1Oo1dTlR zS)T1a&&ifYOYi8}NuE=bM+q8vK5Ka{@p+!p%(E%UvsrnRppoZ(%d^AhIklPRv?R~z z%A*A8+e>lPx7%MKfS67Yll@NaJ;U%_22dUP1l{QSVN)`$iW*l+Fm~!CVx*n(nVZ^d zBG_SAkMbtT`WciQeNdv%%`MtX|D55!LHPAqR&*w5w%p9j)fH?Lw2+TjI#jq)eDVj5 z$J`$L?0jcGSw41h-U_aGiB?WYfVEUJutz$8R>kqLMncMO29_#tVle$S@P+X?lnTw5 z?;Onn`}UTJ7yeL+_*@e3)|U&MN5C)GEb_U8Ew7;$l9=l%bT@7`^VT4f`GVmQe0*f+ zs<%NDGbpoj0qB-K?oa~(D~3kSYJVyaKVQY=w%rIM{SvO4WC{0gWCi8cG zQ#<*SLXc#dPbMbMQyBgAtEE2G{|U@R?tG^!;}_r`C`>UwX86eYd_tZ1_`RGRs4jJ` z$0#iQL3{xTxQ3|^zYtG8e!mi)?A-W5q3Wni@UYg4@ba;*wajvc(M5owm_OC-99Oo# z7@r{_^>(r4SGj1rqnam3Gl~!M-UKPe7v|%;RmNaG{(#&rPDjb(vKHJm-G}ihHn|Jr zF8JJI)<}C_q|wUa6p}o{<4J0z&Lzbk0n_+Cc<#Wn7Nc#(`>pWOL9Y`88>YpV;+G_K zuGBrOdQ?k>)$7wi-~J&eH?(>6k_Ms{coQjEKdvSY;rWm}Jj3L@uC+zi+V!rrbOTK> zTCvOR*u)G6wU5%%Hhz6U;u^CfI1AW6L*9$qFd_t*-(}X1w{bW^{@XKOcwyqds_kDk z2L>PD&f3kye-T2k9pp}3uz;?FwO=H~xa+p;cv8-eVVKw61&&x)6+44Ghhj8DT}qdz z{s!6@J>kTO>8jF?zNB)dojj@bu;WpGf@JaU_%jw>e2u#uF03^V-Gnm|4MDv|-^^%O zYDT+W?iKEk3WqKhPQd!^`}=T4acrAu3@WK|n>@>Aj-vc8Q@-xz4Wi#uGs(<4h^zaC z@x4@`zJ&m=tvJzo)NnSwYg@o>iv&KYvfV&{}MI9J~Wt6q7VV_0a~ z{O%=cRdorXzfxJZE>S#nq7SUD6gxM*){MuzGB@7V1uj1pyt(o9X8u*Xir> z(O0ShP_vj1ik_pk+hgq*vNt5Y5N0x8H9YF*@dN5?tWpy;;MM=}=Li`Kq;N!2tZ~Qt zgHjOv5_;5^F>Ior;Y+2_Yik?TH+z6zw$wxUUBd63{1yTG5$-Se?Z?1mQqBA;KP<|b zUg8jFnGf;%n-2>%HO!wN3MtDK8|>sL8l}HfEVhJBkCyVMGZ@OJD&%B$^f&R?tjryA zGj|2Ug(uIvU~qTwsglwYMptDXyCIUJ-Ru$NDU+ay@t-|{wwCGZLOOLh>EtSy)YG-n zs_wjQ2I654_Ek(UXZ3JoAe7w>ZJ>cqjI=JS6Yo5cE3;J?Vn{drbaIrvT`v6??o(`^FaP>M|`G761jBxcPxaJF2 zFSvT24z50M^*LOHpsx`91400>F8IkKaDJw*4_tj7*KWG8A1wV2OGm)o+24hw-(z7$ z?FU7FQk|a@xttr1OmFZ+Z>kUjpc-(fia}p7+9^~6O;iJ*8hA2P4fKsZ^)H!>wLMod zX;WMIWy$<>N88e`CI0_zTUv5+RggI(SbA>azbaUISK|L(u=Fp9zZ@<;F!XcY1>xe? zI{$t_d=E0g9}?sQ-6siQ7f3@#u`A|b?yo^yuM)nT5irm`^$>l>i!84o#2l&lc6f3i z7can5<;sD=c~@@Gu;i;3<>FD$6{71f z4MuxVjp|WB?cI&p&6+W^*-h?e$Qozr?)ICK*7P=7Bap$PJte_37kcFJV&=Q4_rRaw z_M4N8eT|F)8QhU!htfF#k*l1=mr*8hI;>Nw$2r&6cP|PWKfvZ;yDEbFgm@}Ww?(*{ zCG4Vzp!TbzIb8OGUB%tN(P1?Ny$zqY!uVV@N)SpFAEsYt=+|`%c?f~aZ+UFz8tvj( z+*sz2eQdtW)CgZlZ6C!o=E4uFWZ0sxw-NpXya&JjO|YT39hBN_S%&`-{HP%4K<##3 z^Xu@J=^##jUIKO4<+wPv{g#Aa{UX>7vh5Ja;L&mju>D<0iUFm#R4D{9c!VBNiO~Bh zX!w_@{ME~Y+Nzaad$Gr}^YJT*um`bc>oM(_`>Ers5LWPDR#K)r)9zAVxkSp7th`Qn3gdTybs)>J219!!Zwh%B&-(S} z4D(7}z)WNQ%WTZTF&p#PxklZvydmnO{&t8s`W-wvcBYG1JR45U=o?IlnQtWR4~J$Y z@`H?4!~yf?QkaEfF6P^TR*wr~x$&#ugn>e3Z`M?=#;YR-TE2}B z2emy{Cw0uHdW?iNfc~|0E#~irej>Bq9!_S9&oPQ-{6cU+la7Q9Oo~6c@=cIFpMoyZ1F3?XGA$z8wt~y*N8i1 zGO1Yf2}Ghx>?+@^on(+~7azs_CVk_Uk835YQ!B~g4c9dQd$~DbQ#?#zDgCgsa&F#a zHFAqf-L%ZE9-p)2?f4PgZmjS~%QDyjZP~pBsdQIT-&CU1#AEW>zhLl|^mkI8*Vbn) zy2I^5iq{^4*B)r_+VJjq&1R42a>zG}>(*XRlXDDRF`gT`mopSD+)sm8ec=V$G5a*g z{2n87lTn*w4rAlQqfDL|LMP7**y3gZn=52KiAfLrb?>smJ13G$7EfjJ`8-w_%1 zeLC=^ut)pOs&A7i)Aco`rM^(bFn0D8`#T**>f4#dc-hm#XuR6h-(^{=8$Ck~boX}~ z_eSmTQ)k|In2oAh_kOeLsr+-;m+$Vv)1ueVG2yA3$Bqi3*WyKw(Z4?&u+!VPv-SYp zw-SD6S{7aJ|2GDUqUSozyt(*wU};$93^Wv9p+d|uHNHm>=AwetcYG+QoztwUbR;*I zIefXeL^AD<273E4^KI3^+1h%Yn~h(u!gN%@nby`jH@*_E3FNNIpcBV@ujH(0*`dxy zOJ4H+_|alP5B|XL#fM8{e$O)C+o&Zcxbbk1JJ=AGm)I~EYlM4U_%C66EwnY$0jCEs zag6UB)CTwW^mnmWVyO?Z_BSQ|b(NLv0S(i(ttLNYLwKsY+f!+@sNdz??Q_y#)X$Ag zn2m3T8A!3@+)iO;0yhr;KI?M;^8mOb0hkBCoe97^0N$Gb%md(70dQ~g?z`m{1Dz;M z773iAYu9-S``0+WtAreEQ2rpxqJ9s$zJ3+m80{@J3|U**{yrjY9k8b&QRRv|1Ty$` z)~POXFGaqAoI3QASt$fEc!XVv0}C9Uc&9pYjXPBo=cR+Cc91_sdh1d1u-$PF0Nd_B!rAUlbRJ`D zMqurReA-9bfg;N&2zIY9^Lg6y@9<>SoiIEiYbRMbrzh0q-m}WR6WFUQu;HxohRFij z>=hJ(R@*GLrX92(Vv5Y!!ySA$du}q+ zve9bV=1jH^%WNO=I16&!oew;dA^sh;$DTOiP)nGt^e916{myxlnI`WiKSs} z-c&a)9UM#7;4nudiymLhMat@8M|nqLU1M8xHQ~!- z^@xYRtpR^Z6xS;$oY*$jisJ1J_))=<9Wc&}IyHz+(K!Wzvgy7M_rWGV4SRm_TtmY? z$V$CfS>ySm?D#_pq`1IzxGQP8Pu5wx6r$B#H`gxbw4YriPmfaulOwyn*6;0^QTqM6 zjebw{dNJMWdJ5|)dws#=aH=n?)RE{hDmA_$tbKA9o#;|KyT0#AhNw7?At{5qKa3^C(XhNwYr1R60c_;xh+Oi8hu1Xu+i!Z2N#QEHb5855W- z_#yfxFx;5<`Mi}2AIrIN-$YMk&tS{3w7Y&Gh{l2~$H~t#h4LRS|0U+HA1dejz5+K> zp6-T71*0{o`rM-WOeXblyxC@Z_}^1KtQA{-0CwHHYfX9=Ik?o@0$UUlzZ(ehLpM-F zYGi{Zw-SK`%#w!jZ3;Qw$3mrh`uoBy7orECED3YY;lG_^9O5+6gbh^hQD&XhQS0cC z`^bQTHZ3=d?;zH-y8*g$F6g~;LGPOjdVd3SqDP-?kM9!DXw5bER%W(+F#dp`M)hM8 zsP2!QT@@_$Mb~M~WFKz8)bE_WGkPTL`AC9<(^m1(wAjXOX!o~@ZjI7D+DzE)6JF*b zj+?Nh~HXXQMfsxwUbsSr1 z4(87b6NA}YDk(SqoRSs?`9ART-bcW~Um$$(NZlL&Wc-2<=%|Ew4hjaNR~uJGTmhUL z>*33RHJEJh$6pk#B=98#_H!{|{N;4iS6ZUJs*sxQ(9V2OP(OK~B93fBl>I`D#9qQ%dNP^Q?zU z{QxP9znZ~FS;bEwhOXOj^)J}UfuFW&SFlBH{Wc{Dww~%?a_ir4FjY_K8ao#J6~>mPTp=XjXh`llU?U1!55xBevuJITZ3*578Zx~R+nb8AN!A3`YpHyVcw zQnMw49Qjm#BcIhxI-$-%|A)q7bThe%d}F7~-y(B$1rJz$8&5n12=P6XV^^>dUB5;N z|DAa0uJ!NWan&I3U^?*Kbf6`s8CVx)+v^W0p|Fk}O0Xwe|DFKW!u`0+;QI<0{SM~| z9|a!PAEUe*|Jo~NU$QTZ#+dsNJi1XMo$M%=F#>g)7wWm_SG1l-Okk4^U zBj_t2Jec1z53BsGFV&pDwjDPGgT2vEbBiM>jtlNU|v%>hF!a<=H_=!ia zKp6kjN7H{*6L3&Z2%xpwYM{#2SaW#&SfzQ=;E1TY~Wq3Lv<@NzrQ7 zjClY&kO0gB;NKE}d31K=DBAs~#&|Y*lnNE={|&PGANkW6V9@>nFmA=+?>Lpc8*LVA z4&S^9g7Gx^aZCKiq=r8pZao3|R=dJ2avkNvt