From 38a36c2be088bc3aa5ae4271313a597c40f9701a Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Wed, 16 Feb 2022 16:14:56 +0800 Subject: [PATCH 01/22] KeyHandler // Introduce UPR293 but not enable it. --- Source/Modules/ControllerModules/KeyHandler.mm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Source/Modules/ControllerModules/KeyHandler.mm b/Source/Modules/ControllerModules/KeyHandler.mm index d61668f7..5e38edc0 100644 --- a/Source/Modules/ControllerModules/KeyHandler.mm +++ b/Source/Modules/ControllerModules/KeyHandler.mm @@ -560,7 +560,9 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; return YES; } - if ((char) charCode >= 'A' && (char) charCode <= 'Z') { + // Lukhnos 這裡的處理反而會使得 Apple 倚天注音動態鍵盤佈局「敲不了半形大寫英文」的缺點曝露無疑,所以注釋掉。 + // 至於他試圖用這種處理來解決的上游 UPR293 的問題,其實針對詞庫檔案的排序做點手腳就可以解決。威注音本來也就是這麼做的。 + if (/*[state isKindOfClass:[InputStateNotEmpty class]] && */(char) charCode >= 'A' && (char) charCode <= 'Z') { string letter = string("_letter_") + string(1, (char) charCode); if ([self _handlePunctuation:letter state:state usingVerticalMode:input.useVerticalMode stateCallback:stateCallback errorCallback:errorCallback]) { return YES; From dc3acc53fc02e16533099238fec0045b8956a598 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Wed, 16 Feb 2022 16:34:25 +0800 Subject: [PATCH 02/22] UserPhrases // Separating the conditioning of validity and duplication. --- Source/Modules/ControllerModules/InputState.swift | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Source/Modules/ControllerModules/InputState.swift b/Source/Modules/ControllerModules/InputState.swift index 94f37529..24151063 100644 --- a/Source/Modules/ControllerModules/InputState.swift +++ b/Source/Modules/ControllerModules/InputState.swift @@ -246,12 +246,16 @@ class InputState: NSObject { if markedRange.length > kMaxMarkRangeLength { return false } + return markedRange.length >= kMinMarkRangeLength && markedRange.length <= kMaxMarkRangeLength + } + + @objc var chkIfUserPhraseExists: Bool { let text = (composingBuffer as NSString).substring(with: markedRange) let (exactBegin, _) = (composingBuffer as NSString).characterIndex(from: markedRange.location) let (exactEnd, _) = (composingBuffer as NSString).characterIndex(from: markedRange.location + markedRange.length) let selectedReadings = readings[exactBegin.. Date: Wed, 16 Feb 2022 16:39:06 +0800 Subject: [PATCH 03/22] mgrLM // +chkIfUserPhraseExists to writeUserPhrase. --- Source/Modules/IMEModules/ctlInputMethod.swift | 2 +- Source/Modules/LangModelRelated/mgrLangModel.h | 2 +- Source/Modules/LangModelRelated/mgrLangModel.mm | 5 ++++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Source/Modules/IMEModules/ctlInputMethod.swift b/Source/Modules/IMEModules/ctlInputMethod.swift index ed0a0b0f..ecc3a120 100644 --- a/Source/Modules/IMEModules/ctlInputMethod.swift +++ b/Source/Modules/IMEModules/ctlInputMethod.swift @@ -603,7 +603,7 @@ extension ctlInputMethod: KeyHandlerDelegate { if !state.validToWrite { return false } - mgrLangModel.writeUserPhrase(state.userPhrase, inputMode: keyHandler.inputMode) + mgrLangModel.writeUserPhrase(state.userPhrase, inputMode: keyHandler.inputMode, areWeDuplicating: state.chkIfUserPhraseExists) return true } } diff --git a/Source/Modules/LangModelRelated/mgrLangModel.h b/Source/Modules/LangModelRelated/mgrLangModel.h index 5a7ac5e7..81ac9df8 100644 --- a/Source/Modules/LangModelRelated/mgrLangModel.h +++ b/Source/Modules/LangModelRelated/mgrLangModel.h @@ -33,7 +33,7 @@ NS_ASSUME_NONNULL_BEGIN + (BOOL)checkIfUserDataFolderExists; + (BOOL)checkIfUserPhraseExist:(NSString *)userPhrase key:(NSString *)key NS_SWIFT_NAME(checkIfExist(userPhrase:key:)); -+ (BOOL)writeUserPhrase:(NSString *)userPhrase inputMode:(InputMode)mode; ++ (BOOL)writeUserPhrase:(NSString *)userPhrase inputMode:(InputMode)mode areWeDuplicating:(BOOL)areWeDuplicating; + (void)setPhraseReplacementEnabled:(BOOL)phraseReplacementEnabled; + (void)setCNSEnabled:(BOOL)cnsEnabled; + (NSString *)userPhrasesDataPath:(InputMode)mode; diff --git a/Source/Modules/LangModelRelated/mgrLangModel.mm b/Source/Modules/LangModelRelated/mgrLangModel.mm index e950c1e6..9555b122 100644 --- a/Source/Modules/LangModelRelated/mgrLangModel.mm +++ b/Source/Modules/LangModelRelated/mgrLangModel.mm @@ -219,7 +219,7 @@ static void LTLoadLanguageModelFile(NSString *filenameWithoutExtension, vChewing return NO; } -+ (BOOL)writeUserPhrase:(NSString *)userPhrase inputMode:(InputMode)mode; ++ (BOOL)writeUserPhrase:(NSString *)userPhrase inputMode:(InputMode)mode areWeDuplicating:(BOOL)areWeDuplicating { if (![self checkIfUserLanguageModelFilesExist]) { return NO; @@ -251,6 +251,9 @@ static void LTLoadLanguageModelFile(NSString *filenameWithoutExtension, vChewing // [currentMarkedPhrase appendString:@"\n"]; // } [currentMarkedPhrase appendString:userPhrase]; + if (areWeDuplicating) { + [currentMarkedPhrase appendString:@"\tFreqOverrideByDuplication"]; + } [currentMarkedPhrase appendString:@"\n"]; NSFileHandle *writeFile = [NSFileHandle fileHandleForUpdatingAtPath:path]; From aade60dd62d87d40794466b88e5b608d027e5744 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Wed, 16 Feb 2022 17:24:20 +0800 Subject: [PATCH 04/22] LMConsolidator // Add another option to allow force-consolidate, etc. --- Source/Modules/FileHandlers/LMConsolidator.h | 2 +- Source/Modules/FileHandlers/LMConsolidator.mm | 4 ++-- .../SubLanguageModels/AssociatedPhrases.mm | 7 +------ .../SubLanguageModels/PhraseReplacementMap.mm | 7 +------ .../LangModelRelated/SubLanguageModels/UserPhrasesLM.mm | 7 +------ Source/Modules/LangModelRelated/mgrLangModel.mm | 4 +++- 6 files changed, 9 insertions(+), 22 deletions(-) diff --git a/Source/Modules/FileHandlers/LMConsolidator.h b/Source/Modules/FileHandlers/LMConsolidator.h index 1007c92b..3dd481ca 100644 --- a/Source/Modules/FileHandlers/LMConsolidator.h +++ b/Source/Modules/FileHandlers/LMConsolidator.h @@ -37,7 +37,7 @@ class LMConsolidator public: static bool CheckPragma(const char *path); static bool FixEOF(const char *path); - static bool ConsolidateContent(const char *path, bool shouldsort); + static bool ConsolidateContent(const char *path, bool shouldsort, bool shouldCheckPragma); }; } // namespace vChewing diff --git a/Source/Modules/FileHandlers/LMConsolidator.mm b/Source/Modules/FileHandlers/LMConsolidator.mm index 7cd0f147..d3350e2f 100644 --- a/Source/Modules/FileHandlers/LMConsolidator.mm +++ b/Source/Modules/FileHandlers/LMConsolidator.mm @@ -71,8 +71,8 @@ bool LMConsolidator::FixEOF(const char *path) } // END: EOF FIXER. // CONTENT CONSOLIDATOR. CREDIT: Shiki Suen. -bool LMConsolidator::ConsolidateContent(const char *path, bool shouldsort) { - if (LMConsolidator::CheckPragma(path) && !shouldsort){ +bool LMConsolidator::ConsolidateContent(const char *path, bool shouldsort, bool shouldCheckPragma) { + if (LMConsolidator::CheckPragma(path) && !shouldsort && shouldCheckPragma){ return true; } diff --git a/Source/Modules/LangModelRelated/SubLanguageModels/AssociatedPhrases.mm b/Source/Modules/LangModelRelated/SubLanguageModels/AssociatedPhrases.mm index 53ae599a..4970f8a3 100644 --- a/Source/Modules/LangModelRelated/SubLanguageModels/AssociatedPhrases.mm +++ b/Source/Modules/LangModelRelated/SubLanguageModels/AssociatedPhrases.mm @@ -59,12 +59,7 @@ bool AssociatedPhrases::open(const char *path) } LMConsolidator::FixEOF(path); - - if (Preferences.shouldAutoSortAssociatedPhrasesOnLoad) { - LMConsolidator::ConsolidateContent(path, true); - } else { - LMConsolidator::ConsolidateContent(path, false); - } + LMConsolidator::ConsolidateContent(path, Preferences.shouldAutoSortAssociatedPhrasesOnLoad, true); fd = ::open(path, O_RDONLY); if (fd == -1) { diff --git a/Source/Modules/LangModelRelated/SubLanguageModels/PhraseReplacementMap.mm b/Source/Modules/LangModelRelated/SubLanguageModels/PhraseReplacementMap.mm index 67aa2870..64d2071e 100644 --- a/Source/Modules/LangModelRelated/SubLanguageModels/PhraseReplacementMap.mm +++ b/Source/Modules/LangModelRelated/SubLanguageModels/PhraseReplacementMap.mm @@ -54,12 +54,7 @@ bool PhraseReplacementMap::open(const char *path) } LMConsolidator::FixEOF(path); - - if (Preferences.shouldAutoSortPhraseReplacementMapOnLoad) { - LMConsolidator::ConsolidateContent(path, true); - } else { - LMConsolidator::ConsolidateContent(path, false); - } + LMConsolidator::ConsolidateContent(path, Preferences.shouldAutoSortPhraseReplacementMapOnLoad, true); fd = ::open(path, O_RDONLY); if (fd == -1) { diff --git a/Source/Modules/LangModelRelated/SubLanguageModels/UserPhrasesLM.mm b/Source/Modules/LangModelRelated/SubLanguageModels/UserPhrasesLM.mm index 2219117d..f23206f8 100644 --- a/Source/Modules/LangModelRelated/SubLanguageModels/UserPhrasesLM.mm +++ b/Source/Modules/LangModelRelated/SubLanguageModels/UserPhrasesLM.mm @@ -60,12 +60,7 @@ bool UserPhrasesLM::open(const char *path) } LMConsolidator::FixEOF(path); - - if (Preferences.shouldAutoSortUserPhrasesAndExclListOnLoad) { - LMConsolidator::ConsolidateContent(path, true); - } else { - LMConsolidator::ConsolidateContent(path, false); - } + LMConsolidator::ConsolidateContent(path, Preferences.shouldAutoSortUserPhrasesAndExclListOnLoad, true); fd = ::open(path, O_RDONLY); if (fd == -1) { diff --git a/Source/Modules/LangModelRelated/mgrLangModel.mm b/Source/Modules/LangModelRelated/mgrLangModel.mm index 9555b122..bb93347f 100644 --- a/Source/Modules/LangModelRelated/mgrLangModel.mm +++ b/Source/Modules/LangModelRelated/mgrLangModel.mm @@ -252,7 +252,9 @@ static void LTLoadLanguageModelFile(NSString *filenameWithoutExtension, vChewing // } [currentMarkedPhrase appendString:userPhrase]; if (areWeDuplicating) { - [currentMarkedPhrase appendString:@"\tFreqOverrideByDuplication"]; + // Do not use ASCII characters to comment here. + // Otherwise, it will be scrambled by HYPY2BPMF module shipped in the vChewing Phrase Editor. + [currentMarkedPhrase appendString:@"\t#𝙾𝚟𝚎𝚛𝚛𝚒𝚍𝚎"]; } [currentMarkedPhrase appendString:@"\n"]; From d8fab5740286d1d3804a0e2f6962591186ed151b Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Wed, 16 Feb 2022 17:28:02 +0800 Subject: [PATCH 05/22] mgrLM // Enforce UserPhraseLM format consolidation on write. --- Source/Modules/LangModelRelated/mgrLangModel.mm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Source/Modules/LangModelRelated/mgrLangModel.mm b/Source/Modules/LangModelRelated/mgrLangModel.mm index bb93347f..4596a0ff 100644 --- a/Source/Modules/LangModelRelated/mgrLangModel.mm +++ b/Source/Modules/LangModelRelated/mgrLangModel.mm @@ -20,6 +20,7 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR TH #import "mgrLangModel.h" #import "mgrLangModel_Privates.h" #import "vChewing-Swift.h" +#import "LMConsolidator.h" using namespace std; using namespace vChewing; @@ -267,6 +268,9 @@ static void LTLoadLanguageModelFile(NSString *filenameWithoutExtension, vChewing [writeFile writeData:data]; [writeFile closeFile]; + // We enforce the format consolidation here, since the pragma header will let the UserPhraseLM bypasses the consolidating process on load. + LMConsolidator::ConsolidateContent([path UTF8String], Preferences.shouldAutoSortUserPhrasesAndExclListOnLoad, false); + // We use FSEventStream to monitor the change of the user phrase folder, // so we don't have to load data here. // [self loadUserPhrases]; From fb38beabd939db154f1495362ddea6dac16d2a77 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Wed, 16 Feb 2022 17:40:20 +0800 Subject: [PATCH 06/22] mgrLM // Make the phrase duplication check compatible with CHS mode. --- Source/Modules/ControllerModules/InputState.swift | 4 ++-- Source/Modules/IMEModules/ctlInputMethod.swift | 9 +++++++++ Source/Modules/LangModelRelated/mgrLangModel.h | 2 +- Source/Modules/LangModelRelated/mgrLangModel.mm | 4 ++-- 4 files changed, 14 insertions(+), 5 deletions(-) diff --git a/Source/Modules/ControllerModules/InputState.swift b/Source/Modules/ControllerModules/InputState.swift index 24151063..e0b9abb2 100644 --- a/Source/Modules/ControllerModules/InputState.swift +++ b/Source/Modules/ControllerModules/InputState.swift @@ -182,7 +182,7 @@ class InputState: NSObject { let (exactEnd, _) = (composingBuffer as NSString).characterIndex(from: markedRange.location + markedRange.length) let selectedReadings = readings[exactBegin.. unigrams = gLangModelCHT.unigramsForKey(unigramKey); + vector unigrams = [mode isEqualToString:imeModeCHT] ? gLangModelCHT.unigramsForKey(unigramKey): gLangModelCHS.unigramsForKey(unigramKey); string userPhraseString = string(userPhrase.UTF8String); for (auto unigram: unigrams) { if (unigram.keyValue.value == userPhraseString) { From 49464ee7c9f4b6b31f901f128ed8c4c661dfc187 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Wed, 16 Feb 2022 20:22:20 +0800 Subject: [PATCH 07/22] i18n // Tweak the tooltip text for duplicated user phrases. --- Source/Modules/ControllerModules/InputState.swift | 2 +- Source/Resources/Base.lproj/Localizable.strings | 2 +- Source/Resources/en.lproj/Localizable.strings | 2 +- Source/Resources/ja.lproj/Localizable.strings | 2 +- Source/Resources/zh-Hans.lproj/Localizable.strings | 2 +- Source/Resources/zh-Hant.lproj/Localizable.strings | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Source/Modules/ControllerModules/InputState.swift b/Source/Modules/ControllerModules/InputState.swift index e0b9abb2..e488c15e 100644 --- a/Source/Modules/ControllerModules/InputState.swift +++ b/Source/Modules/ControllerModules/InputState.swift @@ -184,7 +184,7 @@ class InputState: NSObject { let joined = selectedReadings.joined(separator: "-") let exist = mgrLangModel.checkIfUserPhraseExist(userPhrase: text, mode: ctlInputMethod.currentKeyHandler.inputMode, key: joined) if exist { - return String(format: NSLocalizedString("\"%@\" already exists.", comment: ""), text) + return String(format: NSLocalizedString("\"%@\" already exists, ENTER to boost its priority.", comment: ""), text) } return String(format: NSLocalizedString("\"%@\" selected. ENTER to add user phrase.", comment: ""), text) diff --git a/Source/Resources/Base.lproj/Localizable.strings b/Source/Resources/Base.lproj/Localizable.strings index 9f854dac..fac28d72 100644 --- a/Source/Resources/Base.lproj/Localizable.strings +++ b/Source/Resources/Base.lproj/Localizable.strings @@ -24,7 +24,7 @@ "\"%@\" length must ≥ 2 for a user phrase." = "\"%@\" length must ≥ 2 for a user phrase."; "\"%@\" length should ≤ %d for a user phrase." = "\"%@\" length should ≤ %d for a user phrase."; "\"%@\" selected. ENTER to add user phrase." = "\"%@\" selected. ENTER to add user phrase."; -"\"%@\" already exists." = "\"%@\" already exists."; +"\"%@\" already exists, ENTER to boost its priority." = "\"%@\" already exists, ENTER to boost its priority."; "Edit Phrase Replacement Table…" = "Edit Phrase Replacement Table…"; "Use Phrase Replacement" = "Use Phrase Replacement"; "Candidates keys cannot be empty." = "Candidates keys cannot be empty."; diff --git a/Source/Resources/en.lproj/Localizable.strings b/Source/Resources/en.lproj/Localizable.strings index 9f854dac..fac28d72 100644 --- a/Source/Resources/en.lproj/Localizable.strings +++ b/Source/Resources/en.lproj/Localizable.strings @@ -24,7 +24,7 @@ "\"%@\" length must ≥ 2 for a user phrase." = "\"%@\" length must ≥ 2 for a user phrase."; "\"%@\" length should ≤ %d for a user phrase." = "\"%@\" length should ≤ %d for a user phrase."; "\"%@\" selected. ENTER to add user phrase." = "\"%@\" selected. ENTER to add user phrase."; -"\"%@\" already exists." = "\"%@\" already exists."; +"\"%@\" already exists, ENTER to boost its priority." = "\"%@\" already exists, ENTER to boost its priority."; "Edit Phrase Replacement Table…" = "Edit Phrase Replacement Table…"; "Use Phrase Replacement" = "Use Phrase Replacement"; "Candidates keys cannot be empty." = "Candidates keys cannot be empty."; diff --git a/Source/Resources/ja.lproj/Localizable.strings b/Source/Resources/ja.lproj/Localizable.strings index df40d67c..00026872 100644 --- a/Source/Resources/ja.lproj/Localizable.strings +++ b/Source/Resources/ja.lproj/Localizable.strings @@ -24,7 +24,7 @@ "\"%@\" length must ≥ 2 for a user phrase." = "「%@」もう1つ文字のお選びを。"; "\"%@\" length should ≤ %d for a user phrase." = "「%@」文字数過剰で登録不可、%d 文字以内にして下さい。"; "\"%@\" selected. ENTER to add user phrase." = "「%@」を ENTER で辞書に登録。"; -"\"%@\" already exists." = "「%@」は既存語彙である。"; +"\"%@\" already exists, ENTER to boost its priority." = "「%@」は既存語彙であり、ENTER で最優先にする。"; "Edit Phrase Replacement Table…" = "言葉置換表を編集…"; "Use Phrase Replacement" = "言葉置換機能"; "Candidates keys cannot be empty." = "言選り用キー陣列に何かキーをご登録ください。"; diff --git a/Source/Resources/zh-Hans.lproj/Localizable.strings b/Source/Resources/zh-Hans.lproj/Localizable.strings index 12bb250c..bee4cf8e 100644 --- a/Source/Resources/zh-Hans.lproj/Localizable.strings +++ b/Source/Resources/zh-Hans.lproj/Localizable.strings @@ -24,7 +24,7 @@ "\"%@\" length must ≥ 2 for a user phrase." = "「%@」字数不足以自订语汇。"; "\"%@\" length should ≤ %d for a user phrase." = "「%@」字数超过 %d、无法自订。"; "\"%@\" selected. ENTER to add user phrase." = "「%@」敲 Enter 添入自订语汇。"; -"\"%@\" already exists." = "「%@」已存在。"; +"\"%@\" already exists, ENTER to boost its priority." = "「%@」已存在,敲 ENTER 以提升其权重。"; "Edit Phrase Replacement Table…" = "编辑语汇置换表…"; "Use Phrase Replacement" = "使用语汇置换"; "Candidates keys cannot be empty." = "您必须指定选字键。"; diff --git a/Source/Resources/zh-Hant.lproj/Localizable.strings b/Source/Resources/zh-Hant.lproj/Localizable.strings index 783fa8dd..3a1b9998 100644 --- a/Source/Resources/zh-Hant.lproj/Localizable.strings +++ b/Source/Resources/zh-Hant.lproj/Localizable.strings @@ -24,7 +24,7 @@ "\"%@\" length must ≥ 2 for a user phrase." = "「%@」字數不足以自訂語彙。"; "\"%@\" length should ≤ %d for a user phrase." = "「%@」字數超過 %d、無法自訂。"; "\"%@\" selected. ENTER to add user phrase." = "「%@」敲 Enter 添入自訂語彙。"; -"\"%@\" already exists." = "「%@」已存在。"; +"\"%@\" already exists, ENTER to boost its priority." = "「%@」已存在,敲 ENTER 以提升其權重。"; "Edit Phrase Replacement Table…" = "編輯語彙置換表…"; "Use Phrase Replacement" = "使用語彙置換"; "Candidates keys cannot be empty." = "您必須指定選字鍵。"; From fbf3da37353a23c8a5948438a0464603b883440d Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Wed, 16 Feb 2022 20:50:06 +0800 Subject: [PATCH 08/22] AppDelegate // Reduce user phrase reload delay to 100ms. --- Source/Modules/AppDelegate.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/Modules/AppDelegate.swift b/Source/Modules/AppDelegate.swift index 3d09736e..460fde10 100644 --- a/Source/Modules/AppDelegate.swift +++ b/Source/Modules/AppDelegate.swift @@ -142,8 +142,8 @@ struct VersionUpdateApi { @objc(AppDelegate) class AppDelegate: NSObject, NSApplicationDelegate, ctlNonModalAlertWindowDelegate, FSEventStreamHelperDelegate { func helper(_ helper: FSEventStreamHelper, didReceive events: [FSEventStreamHelper.Event]) { - // 拖一秒鐘再重載,畢竟有些有特殊需求的使用者可能會想使用巨型自訂語彙檔案。 - DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 1) { + // 拖 100ms 再重載,畢竟有些有特殊需求的使用者可能會想使用巨型自訂語彙檔案。 + DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.1) { if Preferences.shouldAutoReloadUserDataFiles { mgrLangModel.loadUserPhrases() mgrLangModel.loadUserPhraseReplacement() From fcb80b116776509cee3ec4085146df978a76446a Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Wed, 16 Feb 2022 20:50:37 +0800 Subject: [PATCH 09/22] AppDelegate // Make fsStreamHelper label independent. --- Source/Modules/AppDelegate.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Modules/AppDelegate.swift b/Source/Modules/AppDelegate.swift index 460fde10..461b836b 100644 --- a/Source/Modules/AppDelegate.swift +++ b/Source/Modules/AppDelegate.swift @@ -159,7 +159,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, ctlNonModalAlertWindowDelega private var ctlAboutWindowInstance: ctlAboutWindow? // New About Window private var checkTask: URLSessionTask? private var updateNextStepURL: URL? - private var fsStreamHelper = FSEventStreamHelper(path: mgrLangModel.dataFolderPath, queue: DispatchQueue(label: "User Phrases")) + private var fsStreamHelper = FSEventStreamHelper(path: mgrLangModel.dataFolderPath, queue: DispatchQueue(label: "vChewing User Phrases")) // 補上 dealloc deinit { From 35794b1376a51dcd8a02da0cd53424e82406cdd8 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Wed, 16 Feb 2022 20:51:37 +0800 Subject: [PATCH 10/22] mgrLM // Reload user phrases after in-place-add a phrase, if necessary. --- Source/Modules/LangModelRelated/mgrLangModel.mm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Source/Modules/LangModelRelated/mgrLangModel.mm b/Source/Modules/LangModelRelated/mgrLangModel.mm index 38a29f4d..7658f3ff 100644 --- a/Source/Modules/LangModelRelated/mgrLangModel.mm +++ b/Source/Modules/LangModelRelated/mgrLangModel.mm @@ -271,9 +271,11 @@ static void LTLoadLanguageModelFile(NSString *filenameWithoutExtension, vChewing // We enforce the format consolidation here, since the pragma header will let the UserPhraseLM bypasses the consolidating process on load. LMConsolidator::ConsolidateContent([path UTF8String], Preferences.shouldAutoSortUserPhrasesAndExclListOnLoad, false); -// We use FSEventStream to monitor the change of the user phrase folder, -// so we don't have to load data here. -// [self loadUserPhrases]; + // We use FSEventStream to monitor the change of the user phrase folder, + // so we don't have to load data here unless FSEventStream is disabled by user. + if (!Preferences.shouldAutoReloadUserDataFiles) { + [self loadUserPhrases]; + } return YES; } From dcaddbb1e599713931b2251d5fa1e6e7338bf38c Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Sun, 20 Feb 2022 19:32:33 +0800 Subject: [PATCH 11/22] Installer // Nib Fix. --- Installer/Resources/Base.lproj/MainMenu.xib | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Installer/Resources/Base.lproj/MainMenu.xib b/Installer/Resources/Base.lproj/MainMenu.xib index d2962136..18ad828f 100644 --- a/Installer/Resources/Base.lproj/MainMenu.xib +++ b/Installer/Resources/Base.lproj/MainMenu.xib @@ -67,7 +67,7 @@ - + @@ -271,7 +271,6 @@ Gw - @@ -283,7 +282,7 @@ Gw - + From e1580e06b792b6a0f5f8f6059fca53cec2ad4d2e Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Sun, 20 Feb 2022 19:52:43 +0800 Subject: [PATCH 12/22] IME // Rebrand vChewingLM to LMInstantiator. --- .../Modules/ControllerModules/KeyHandler.mm | 6 +-- .../{vChewingLM.h => LMInstantiator.h} | 14 +++--- .../{vChewingLM.mm => LMInstantiator.mm} | 46 +++++++++---------- .../Modules/LangModelRelated/mgrLangModel.mm | 10 ++-- .../LangModelRelated/mgrLangModel_Privates.h | 6 +-- vChewing.xcodeproj/project.pbxproj | 12 ++--- 6 files changed, 47 insertions(+), 47 deletions(-) rename Source/Modules/LangModelRelated/{vChewingLM.h => LMInstantiator.h} (95%) rename Source/Modules/LangModelRelated/{vChewingLM.mm => LMInstantiator.mm} (80%) diff --git a/Source/Modules/ControllerModules/KeyHandler.mm b/Source/Modules/ControllerModules/KeyHandler.mm index 5e38edc0..b6ecfbb5 100644 --- a/Source/Modules/ControllerModules/KeyHandler.mm +++ b/Source/Modules/ControllerModules/KeyHandler.mm @@ -19,7 +19,7 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR TH #import "Mandarin.h" #import "Gramambular.h" -#import "vChewingLM.h" +#import "LMInstantiator.h" #import "UserOverrideModel.h" #import "mgrLangModel_Privates.h" #import "KeyHandler.h" @@ -71,7 +71,7 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; Taiyan::Mandarin::BopomofoReadingBuffer *_bpmfReadingBuffer; // language model - vChewing::vChewingLM *_languageModel; + vChewing::LMInstantiator *_languageModel; // user override model vChewing::UserOverrideModel *_userOverrideModel; @@ -96,7 +96,7 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; - (void)setInputMode:(NSString *)value { NSString *newInputMode; - vChewingLM *newLanguageModel; + LMInstantiator *newLanguageModel; UserOverrideModel *newUserOverrideModel; if ([value isKindOfClass:[NSString class]] && [value isEqual:imeModeCHS]) { diff --git a/Source/Modules/LangModelRelated/vChewingLM.h b/Source/Modules/LangModelRelated/LMInstantiator.h similarity index 95% rename from Source/Modules/LangModelRelated/vChewingLM.h rename to Source/Modules/LangModelRelated/LMInstantiator.h index 6ab58fa2..0ee9096c 100644 --- a/Source/Modules/LangModelRelated/vChewingLM.h +++ b/Source/Modules/LangModelRelated/LMInstantiator.h @@ -17,8 +17,8 @@ THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABI TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifndef VCHEWINGLM_H -#define VCHEWINGLM_H +#ifndef LMInstantiator_H +#define LMInstantiator_H #include #include "UserPhrasesLM.h" @@ -32,7 +32,7 @@ namespace vChewing { using namespace Taiyan::Gramambular; -/// vChewingLM is a facade for managing a set of models including +/// LMInstantiator is a facade for managing a set of models including /// the input method language model, user phrases and excluded phrases. /// /// It is the primary model class that the input controller and grammar builder @@ -41,7 +41,7 @@ using namespace Taiyan::Gramambular; /// if there are valid unigrams, and use returned unigrams to produce the final /// results. /// -/// vChewingLM combine and transform the unigrams from the primary language +/// LMInstantiator combine and transform the unigrams from the primary language /// model and user phrases. The process is /// /// 1) Get the original unigrams. @@ -54,10 +54,10 @@ using namespace Taiyan::Gramambular; /// model while launching and to load the user phrases anytime if the custom /// files are modified. It does not keep the reference of the data pathes but /// you have to pass the paths when you ask it to do loading. -class vChewingLM : public LanguageModel { +class LMInstantiator : public LanguageModel { public: - vChewingLM(); - ~vChewingLM(); + LMInstantiator(); + ~LMInstantiator(); /// Asks to load the primary language model at the given path. /// @param languageModelPath The path of the language model. diff --git a/Source/Modules/LangModelRelated/vChewingLM.mm b/Source/Modules/LangModelRelated/LMInstantiator.mm similarity index 80% rename from Source/Modules/LangModelRelated/vChewingLM.mm rename to Source/Modules/LangModelRelated/LMInstantiator.mm index 99f6a2e3..299edb64 100644 --- a/Source/Modules/LangModelRelated/vChewingLM.mm +++ b/Source/Modules/LangModelRelated/LMInstantiator.mm @@ -17,17 +17,17 @@ THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABI TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#include "vChewingLM.h" +#include "LMInstantiator.h" #include #include using namespace vChewing; -vChewingLM::vChewingLM() +LMInstantiator::LMInstantiator() { } -vChewingLM::~vChewingLM() +LMInstantiator::~LMInstantiator() { m_languageModel.close(); m_userPhrases.close(); @@ -37,7 +37,7 @@ vChewingLM::~vChewingLM() m_associatedPhrases.close(); } -void vChewingLM::loadLanguageModel(const char* languageModelDataPath) +void LMInstantiator::loadLanguageModel(const char* languageModelDataPath) { if (languageModelDataPath) { m_languageModel.close(); @@ -45,12 +45,12 @@ void vChewingLM::loadLanguageModel(const char* languageModelDataPath) } } -bool vChewingLM::isDataModelLoaded() +bool LMInstantiator::isDataModelLoaded() { return m_languageModel.isLoaded(); } -void vChewingLM::loadCNSData(const char* cnsDataPath) +void LMInstantiator::loadCNSData(const char* cnsDataPath) { if (cnsDataPath) { m_cnsModel.close(); @@ -58,12 +58,12 @@ void vChewingLM::loadCNSData(const char* cnsDataPath) } } -bool vChewingLM::isCNSDataLoaded() +bool LMInstantiator::isCNSDataLoaded() { return m_cnsModel.isLoaded(); } -void vChewingLM::loadUserPhrases(const char* userPhrasesDataPath, +void LMInstantiator::loadUserPhrases(const char* userPhrasesDataPath, const char* excludedPhrasesDataPath) { if (userPhrasesDataPath) { @@ -76,7 +76,7 @@ void vChewingLM::loadUserPhrases(const char* userPhrasesDataPath, } } -void vChewingLM::loadUserAssociatedPhrases(const char *userAssociatedPhrasesPath) +void LMInstantiator::loadUserAssociatedPhrases(const char *userAssociatedPhrasesPath) { if (userAssociatedPhrasesPath) { m_associatedPhrases.close(); @@ -84,7 +84,7 @@ void vChewingLM::loadUserAssociatedPhrases(const char *userAssociatedPhrasesPath } } -void vChewingLM::loadPhraseReplacementMap(const char* phraseReplacementPath) +void LMInstantiator::loadPhraseReplacementMap(const char* phraseReplacementPath) { if (phraseReplacementPath) { m_phraseReplacement.close(); @@ -92,12 +92,12 @@ void vChewingLM::loadPhraseReplacementMap(const char* phraseReplacementPath) } } -const vector vChewingLM::bigramsForKeys(const string& preceedingKey, const string& key) +const vector LMInstantiator::bigramsForKeys(const string& preceedingKey, const string& key) { return vector(); } -const vector vChewingLM::unigramsForKey(const string& key) +const vector LMInstantiator::unigramsForKey(const string& key) { if (key == " ") { vector spaceUnigrams; @@ -143,7 +143,7 @@ const vector vChewingLM::unigramsForKey(const string& key) return allUnigrams; } -bool vChewingLM::hasUnigramsForKey(const string& key) +bool LMInstantiator::hasUnigramsForKey(const string& key) { if (key == " ") { return true; @@ -156,41 +156,41 @@ bool vChewingLM::hasUnigramsForKey(const string& key) return unigramsForKey(key).size() > 0; } -void vChewingLM::setPhraseReplacementEnabled(bool enabled) +void LMInstantiator::setPhraseReplacementEnabled(bool enabled) { m_phraseReplacementEnabled = enabled; } -bool vChewingLM::phraseReplacementEnabled() +bool LMInstantiator::phraseReplacementEnabled() { return m_phraseReplacementEnabled; } -void vChewingLM::setCNSEnabled(bool enabled) +void LMInstantiator::setCNSEnabled(bool enabled) { m_cnsEnabled = enabled; } -bool vChewingLM::cnsEnabled() +bool LMInstantiator::cnsEnabled() { return m_cnsEnabled; } -void vChewingLM::setExternalConverterEnabled(bool enabled) +void LMInstantiator::setExternalConverterEnabled(bool enabled) { m_externalConverterEnabled = enabled; } -bool vChewingLM::externalConverterEnabled() +bool LMInstantiator::externalConverterEnabled() { return m_externalConverterEnabled; } -void vChewingLM::setExternalConverter(std::function externalConverter) +void LMInstantiator::setExternalConverter(std::function externalConverter) { m_externalConverter = externalConverter; } -const vector vChewingLM::filterAndTransformUnigrams(const vector unigrams, const unordered_set& excludedValues, unordered_set& insertedValues) +const vector LMInstantiator::filterAndTransformUnigrams(const vector unigrams, const unordered_set& excludedValues, unordered_set& insertedValues) { vector results; @@ -225,12 +225,12 @@ const vector vChewingLM::filterAndTransformUnigrams(const vector vChewingLM::associatedPhrasesForKey(const string& key) +const vector LMInstantiator::associatedPhrasesForKey(const string& key) { return m_associatedPhrases.valuesForKey(key); } -bool vChewingLM::hasAssociatedPhrasesForKey(const string& key) +bool LMInstantiator::hasAssociatedPhrasesForKey(const string& key) { return m_associatedPhrases.hasValuesForKey(key); } diff --git a/Source/Modules/LangModelRelated/mgrLangModel.mm b/Source/Modules/LangModelRelated/mgrLangModel.mm index 7658f3ff..e3e9b868 100644 --- a/Source/Modules/LangModelRelated/mgrLangModel.mm +++ b/Source/Modules/LangModelRelated/mgrLangModel.mm @@ -28,8 +28,8 @@ using namespace vChewing; static const int kUserOverrideModelCapacity = 500; static const double kObservedOverrideHalflife = 5400.0; -static vChewingLM gLangModelCHT; -static vChewingLM gLangModelCHS; +static LMInstantiator gLangModelCHT; +static LMInstantiator gLangModelCHS; static UserOverrideModel gUserOverrideModelCHT(kUserOverrideModelCapacity, kObservedOverrideHalflife); static UserOverrideModel gUserOverrideModelCHS(kUserOverrideModelCapacity, kObservedOverrideHalflife); @@ -41,7 +41,7 @@ static NSString *const kTemplateExtension = @".txt"; @implementation mgrLangModel -static void LTLoadLanguageModelFile(NSString *filenameWithoutExtension, vChewingLM &lm) +static void LTLoadLanguageModelFile(NSString *filenameWithoutExtension, LMInstantiator &lm) { Class cls = NSClassFromString(@"ctlInputMethod"); NSString *dataPath = [[NSBundle bundleForClass:cls] pathForResource:filenameWithoutExtension ofType:@"txt"]; @@ -317,12 +317,12 @@ static void LTLoadLanguageModelFile(NSString *filenameWithoutExtension, vChewing return [[NSBundle bundleForClass:cls] pathForResource:@"char-kanji-cns" ofType:@"txt"]; } - + (vChewingLM *)lmCHT + + (LMInstantiator *)lmCHT { return &gLangModelCHT; } -+ (vChewingLM *)lmCHS ++ (LMInstantiator *)lmCHS { return &gLangModelCHS; } diff --git a/Source/Modules/LangModelRelated/mgrLangModel_Privates.h b/Source/Modules/LangModelRelated/mgrLangModel_Privates.h index 49cd0de8..22077d25 100644 --- a/Source/Modules/LangModelRelated/mgrLangModel_Privates.h +++ b/Source/Modules/LangModelRelated/mgrLangModel_Privates.h @@ -19,13 +19,13 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR TH #import "mgrLangModel.h" #import "UserOverrideModel.h" -#import "vChewingLM.h" +#import "LMInstantiator.h" NS_ASSUME_NONNULL_BEGIN @interface mgrLangModel () -@property (class, readonly, nonatomic) vChewing::vChewingLM *lmCHT; -@property (class, readonly, nonatomic) vChewing::vChewingLM *lmCHS; +@property (class, readonly, nonatomic) vChewing::LMInstantiator *lmCHT; +@property (class, readonly, nonatomic) vChewing::LMInstantiator *lmCHS; @property (class, readonly, nonatomic) vChewing::UserOverrideModel *userOverrideModelCHS; @property (class, readonly, nonatomic) vChewing::UserOverrideModel *userOverrideModelCHT; @end diff --git a/vChewing.xcodeproj/project.pbxproj b/vChewing.xcodeproj/project.pbxproj index f7e2c7d7..449538b2 100644 --- a/vChewing.xcodeproj/project.pbxproj +++ b/vChewing.xcodeproj/project.pbxproj @@ -68,7 +68,7 @@ 6ACC3D442793701600F1B140 /* ParselessPhraseDB.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6ACC3D402793701600F1B140 /* ParselessPhraseDB.cpp */; }; 6ACC3D452793701600F1B140 /* ParselessLM.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6ACC3D422793701600F1B140 /* ParselessLM.cpp */; }; D41355D8278D74B5005E5CBD /* mgrLangModel.mm in Sources */ = {isa = PBXBuildFile; fileRef = D41355D7278D7409005E5CBD /* mgrLangModel.mm */; }; - D41355DB278E6D17005E5CBD /* vChewingLM.mm in Sources */ = {isa = PBXBuildFile; fileRef = D41355D9278E6D17005E5CBD /* vChewingLM.mm */; }; + D41355DB278E6D17005E5CBD /* LMInstantiator.mm in Sources */ = {isa = PBXBuildFile; fileRef = D41355D9278E6D17005E5CBD /* LMInstantiator.mm */; }; D41355DE278EA3ED005E5CBD /* UserPhrasesLM.mm in Sources */ = {isa = PBXBuildFile; fileRef = D41355DC278EA3ED005E5CBD /* UserPhrasesLM.mm */; }; D427F76C278CA2B0004A2160 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D427F76B278CA1BA004A2160 /* AppDelegate.swift */; }; D44FB74D2792189A003C80A6 /* PhraseReplacementMap.mm in Sources */ = {isa = PBXBuildFile; fileRef = D44FB74B2792189A003C80A6 /* PhraseReplacementMap.mm */; }; @@ -243,8 +243,8 @@ 6ACC3D432793701600F1B140 /* ParselessLM.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ParselessLM.h; sourceTree = ""; }; D41355D6278D7409005E5CBD /* mgrLangModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = mgrLangModel.h; sourceTree = ""; }; D41355D7278D7409005E5CBD /* mgrLangModel.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = mgrLangModel.mm; sourceTree = ""; }; - D41355D9278E6D17005E5CBD /* vChewingLM.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = vChewingLM.mm; sourceTree = ""; }; - D41355DA278E6D17005E5CBD /* vChewingLM.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = vChewingLM.h; sourceTree = ""; }; + D41355D9278E6D17005E5CBD /* LMInstantiator.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = LMInstantiator.mm; sourceTree = ""; }; + D41355DA278E6D17005E5CBD /* LMInstantiator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LMInstantiator.h; sourceTree = ""; }; D41355DC278EA3ED005E5CBD /* UserPhrasesLM.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = UserPhrasesLM.mm; sourceTree = ""; }; D41355DD278EA3ED005E5CBD /* UserPhrasesLM.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UserPhrasesLM.h; sourceTree = ""; }; D427A9BF25ED28CC005D43E0 /* vChewing-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "vChewing-Bridging-Header.h"; sourceTree = ""; }; @@ -423,12 +423,12 @@ 5B62A32427AE757300A19448 /* LangModelRelated */ = { isa = PBXGroup; children = ( + D41355D9278E6D17005E5CBD /* LMInstantiator.mm */, + D41355DA278E6D17005E5CBD /* LMInstantiator.h */, D41355D6278D7409005E5CBD /* mgrLangModel.h */, D495583A27A5C6C4006ADE1C /* mgrLangModel_Privates.h */, D41355D7278D7409005E5CBD /* mgrLangModel.mm */, 5B62A32527AE758000A19448 /* SubLanguageModels */, - D41355D9278E6D17005E5CBD /* vChewingLM.mm */, - D41355DA278E6D17005E5CBD /* vChewingLM.h */, ); path = LangModelRelated; sourceTree = ""; @@ -937,7 +937,7 @@ 5B11328927B94CFB00E58451 /* AppleKeyboardConverter.swift in Sources */, 5B62A31827AE73A700A19448 /* zip.m in Sources */, 5B62A32E27AE78B000A19448 /* CNSLM.mm in Sources */, - D41355DB278E6D17005E5CBD /* vChewingLM.mm in Sources */, + D41355DB278E6D17005E5CBD /* LMInstantiator.mm in Sources */, 5B62A31A27AE73A700A19448 /* mztools.m in Sources */, 5B62A32927AE77D100A19448 /* FSEventStreamHelper.swift in Sources */, D47F7DD3278C1263002F9DD7 /* UserOverrideModel.cpp in Sources */, From e8a6131864af59dfaa317967e2b3ae7a446106b4 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Sun, 20 Feb 2022 20:01:02 +0800 Subject: [PATCH 13/22] mgrLM // Dealing with Namespace Pollusion. --- .../Modules/LangModelRelated/mgrLangModel.mm | 21 ++++++++----------- 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/Source/Modules/LangModelRelated/mgrLangModel.mm b/Source/Modules/LangModelRelated/mgrLangModel.mm index e3e9b868..2564a8e5 100644 --- a/Source/Modules/LangModelRelated/mgrLangModel.mm +++ b/Source/Modules/LangModelRelated/mgrLangModel.mm @@ -22,16 +22,13 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR TH #import "vChewing-Swift.h" #import "LMConsolidator.h" -using namespace std; -using namespace vChewing; - static const int kUserOverrideModelCapacity = 500; static const double kObservedOverrideHalflife = 5400.0; -static LMInstantiator gLangModelCHT; -static LMInstantiator gLangModelCHS; -static UserOverrideModel gUserOverrideModelCHT(kUserOverrideModelCapacity, kObservedOverrideHalflife); -static UserOverrideModel gUserOverrideModelCHS(kUserOverrideModelCapacity, kObservedOverrideHalflife); +static vChewing::LMInstantiator gLangModelCHT; +static vChewing::LMInstantiator gLangModelCHS; +static vChewing::UserOverrideModel gUserOverrideModelCHT(kUserOverrideModelCapacity, kObservedOverrideHalflife); +static vChewing::UserOverrideModel gUserOverrideModelCHS(kUserOverrideModelCapacity, kObservedOverrideHalflife); static NSString *const kUserDataTemplateName = @"template-data"; static NSString *const kUserAssDataTemplateName = @"template-data"; @@ -41,7 +38,7 @@ static NSString *const kTemplateExtension = @".txt"; @implementation mgrLangModel -static void LTLoadLanguageModelFile(NSString *filenameWithoutExtension, LMInstantiator &lm) +static void LTLoadLanguageModelFile(NSString *filenameWithoutExtension, vChewing::LMInstantiator &lm) { Class cls = NSClassFromString(@"ctlInputMethod"); NSString *dataPath = [[NSBundle bundleForClass:cls] pathForResource:filenameWithoutExtension ofType:@"txt"]; @@ -210,7 +207,7 @@ static void LTLoadLanguageModelFile(NSString *filenameWithoutExtension, LMInstan + (BOOL)checkIfUserPhraseExist:(NSString *)userPhrase inputMode:(InputMode)mode key:(NSString *)key NS_SWIFT_NAME(checkIfUserPhraseExist(userPhrase:mode:key:)) { string unigramKey = string(key.UTF8String); - vector unigrams = [mode isEqualToString:imeModeCHT] ? gLangModelCHT.unigramsForKey(unigramKey): gLangModelCHS.unigramsForKey(unigramKey); + vector unigrams = [mode isEqualToString:imeModeCHT] ? gLangModelCHT.unigramsForKey(unigramKey): gLangModelCHS.unigramsForKey(unigramKey); string userPhraseString = string(userPhrase.UTF8String); for (auto unigram: unigrams) { if (unigram.keyValue.value == userPhraseString) { @@ -269,7 +266,7 @@ static void LTLoadLanguageModelFile(NSString *filenameWithoutExtension, LMInstan [writeFile closeFile]; // We enforce the format consolidation here, since the pragma header will let the UserPhraseLM bypasses the consolidating process on load. - LMConsolidator::ConsolidateContent([path UTF8String], Preferences.shouldAutoSortUserPhrasesAndExclListOnLoad, false); + vChewing::LMConsolidator::ConsolidateContent([path UTF8String], Preferences.shouldAutoSortUserPhrasesAndExclListOnLoad, false); // We use FSEventStream to monitor the change of the user phrase folder, // so we don't have to load data here unless FSEventStream is disabled by user. @@ -317,12 +314,12 @@ static void LTLoadLanguageModelFile(NSString *filenameWithoutExtension, LMInstan return [[NSBundle bundleForClass:cls] pathForResource:@"char-kanji-cns" ofType:@"txt"]; } - + (LMInstantiator *)lmCHT + + (vChewing::LMInstantiator *)lmCHT { return &gLangModelCHT; } -+ (LMInstantiator *)lmCHS ++ (vChewing::LMInstantiator *)lmCHS { return &gLangModelCHS; } From f2eeccfad9544412107be6cebe726351074d57fd Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Sun, 20 Feb 2022 21:08:23 +0800 Subject: [PATCH 14/22] keyHandler // Dealing with Namespace Pollusion. --- .../Modules/ControllerModules/KeyHandler.mm | 144 +++++++++--------- 1 file changed, 69 insertions(+), 75 deletions(-) diff --git a/Source/Modules/ControllerModules/KeyHandler.mm b/Source/Modules/ControllerModules/KeyHandler.mm index b6ecfbb5..2fb6d2be 100644 --- a/Source/Modules/ControllerModules/KeyHandler.mm +++ b/Source/Modules/ControllerModules/KeyHandler.mm @@ -17,28 +17,23 @@ THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABI TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#import "Mandarin.h" + #import "Gramambular.h" -#import "LMInstantiator.h" -#import "UserOverrideModel.h" -#import "mgrLangModel_Privates.h" #import "KeyHandler.h" +#import "LMInstantiator.h" +#import "Mandarin.h" +#import "mgrLangModel_Privates.h" +#import "UserOverrideModel.h" #import "vChewing-Swift.h" #import -// C++ namespace usages -using namespace std; -using namespace Taiyan::Mandarin; -using namespace Taiyan::Gramambular; -using namespace vChewing; - InputMode imeModeCHT = @"org.atelierInmu.inputmethod.vChewing.IMECHT"; InputMode imeModeCHS = @"org.atelierInmu.inputmethod.vChewing.IMECHS"; InputMode imeModeNULL = @"org.atelierInmu.inputmethod.vChewing.IMENULL"; static const double kEpsilon = 0.000001; -static double FindHighestScore(const vector &nodes, double epsilon) { +static double FindHighestScore(const std::vector &nodes, double epsilon) { double highestScore = 0.0; for (auto ni = nodes.begin(), ne = nodes.end(); ni != ne; ++ni) { double score = ni->node->highestUnigramScore(); @@ -49,16 +44,15 @@ static double FindHighestScore(const vector &nodes, double epsilon) return highestScore + epsilon; } -// sort helper -class NodeAnchorDescendingSorter -{ +class NodeAnchorDescendingSorter { public: - bool operator()(const NodeAnchor &a, const NodeAnchor &b) const { + bool operator()(const Taiyan::Gramambular::NodeAnchor &a, const Taiyan::Gramambular::NodeAnchor &b) const + { return a.node->key().length() > b.node->key().length(); } }; -// if DEBUG is defined, a DOT file (GraphViz format) will be written to the +;// if DEBUG is defined, a DOT file (GraphViz format) will be written to the // specified path every time the grid is walked #if DEBUG static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; @@ -96,8 +90,8 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; - (void)setInputMode:(NSString *)value { NSString *newInputMode; - LMInstantiator *newLanguageModel; - UserOverrideModel *newUserOverrideModel; + vChewing::LMInstantiator *newLanguageModel; + vChewing::UserOverrideModel *newUserOverrideModel; if ([value isKindOfClass:[NSString class]] && [value isEqual:imeModeCHS]) { newInputMode = imeModeCHS; @@ -120,7 +114,7 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; if (_builder) { delete _builder; - _builder = new BlockReadingBuilder(_languageModel); + _builder = new Taiyan::Gramambular::BlockReadingBuilder(_languageModel); _builder->setJoinSeparator("-"); } @@ -146,7 +140,7 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; { self = [super init]; if (self) { - _bpmfReadingBuffer = new BopomofoReadingBuffer(BopomofoKeyboardLayout::StandardLayout()); + _bpmfReadingBuffer = new Taiyan::Mandarin::BopomofoReadingBuffer(Taiyan::Mandarin::BopomofoKeyboardLayout::StandardLayout()); // create the lattice builder _languageModel = [mgrLangModel lmCHT]; @@ -154,8 +148,8 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; _languageModel->setCNSEnabled(Preferences.cns11643Enabled); _userOverrideModel = [mgrLangModel userOverrideModelCHT]; - _builder = new BlockReadingBuilder(_languageModel); - + _builder = new Taiyan::Gramambular::BlockReadingBuilder(_languageModel); + // each Mandarin syllable is separated by a hyphen _builder->setJoinSeparator("-"); _inputMode = imeModeCHT; @@ -168,31 +162,31 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; NSInteger layout = Preferences.keyboardLayout; switch (layout) { case KeyboardLayoutStandard: - _bpmfReadingBuffer->setKeyboardLayout(BopomofoKeyboardLayout::StandardLayout()); + _bpmfReadingBuffer->setKeyboardLayout(Taiyan::Mandarin::BopomofoKeyboardLayout::StandardLayout()); break; case KeyboardLayoutEten: - _bpmfReadingBuffer->setKeyboardLayout(BopomofoKeyboardLayout::ETenLayout()); + _bpmfReadingBuffer->setKeyboardLayout(Taiyan::Mandarin::BopomofoKeyboardLayout::ETenLayout()); break; case KeyboardLayoutHsu: - _bpmfReadingBuffer->setKeyboardLayout(BopomofoKeyboardLayout::HsuLayout()); + _bpmfReadingBuffer->setKeyboardLayout(Taiyan::Mandarin::BopomofoKeyboardLayout::HsuLayout()); break; case KeyboardLayoutEten26: - _bpmfReadingBuffer->setKeyboardLayout(BopomofoKeyboardLayout::ETen26Layout()); + _bpmfReadingBuffer->setKeyboardLayout(Taiyan::Mandarin::BopomofoKeyboardLayout::ETen26Layout()); break; case KeyboardLayoutIBM: - _bpmfReadingBuffer->setKeyboardLayout(BopomofoKeyboardLayout::IBMLayout()); + _bpmfReadingBuffer->setKeyboardLayout(Taiyan::Mandarin::BopomofoKeyboardLayout::IBMLayout()); break; case KeyboardLayoutMiTAC: - _bpmfReadingBuffer->setKeyboardLayout(BopomofoKeyboardLayout::MiTACLayout()); + _bpmfReadingBuffer->setKeyboardLayout(Taiyan::Mandarin::BopomofoKeyboardLayout::MiTACLayout()); break; case KeyboardLayoutFakeSeigyou: - _bpmfReadingBuffer->setKeyboardLayout(BopomofoKeyboardLayout::FakeSeigyouLayout()); + _bpmfReadingBuffer->setKeyboardLayout(Taiyan::Mandarin::BopomofoKeyboardLayout::FakeSeigyouLayout()); break; case KeyboardLayoutHanyuPinyin: - _bpmfReadingBuffer->setKeyboardLayout(BopomofoKeyboardLayout::HanyuPinyinLayout()); + _bpmfReadingBuffer->setKeyboardLayout(Taiyan::Mandarin::BopomofoKeyboardLayout::HanyuPinyinLayout()); break; default: - _bpmfReadingBuffer->setKeyboardLayout(BopomofoKeyboardLayout::StandardLayout()); + _bpmfReadingBuffer->setKeyboardLayout(Taiyan::Mandarin::BopomofoKeyboardLayout::StandardLayout()); Preferences.keyboardLayout = KeyboardLayoutStandard; } } @@ -200,8 +194,8 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; - (void)fixNodeWithValue:(NSString *)value { size_t cursorIndex = [self _actualCandidateCursorIndex]; - string stringValue = [value UTF8String]; - NodeAnchor selectedNode = _builder->grid().fixNodeSelectedCandidate(cursorIndex, stringValue); + std::string stringValue(value.UTF8String); + Taiyan::Gramambular::NodeAnchor selectedNode = _builder->grid().fixNodeSelectedCandidate(cursorIndex, stringValue); if (!Preferences.useSCPCTypingMode) { // 不要針對逐字選字模式啟用臨時半衰記憶模型。 // If the length of the readings and the characters do not match, // it often means it is a special symbol and it should not be stored @@ -234,10 +228,10 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; _walkedNodes.clear(); } -- (string)_currentLayout +- (std::string)_currentLayout { NSString *keyboardLayoutName = Preferences.keyboardLayoutName; - string layout = string(keyboardLayoutName.UTF8String) + string("_"); + std::string layout = std::string(keyboardLayoutName.UTF8String) + std::string("_"); return layout; } @@ -348,7 +342,7 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; composeReading |= (!_bpmfReadingBuffer->isEmpty() && ([input isSpace] || [input isEnterCharCode] || [input isEnter])); if (composeReading) { // combine the reading - string reading = _bpmfReadingBuffer->syllable().composedString(); + std::string reading = _bpmfReadingBuffer->syllable().composedString(); // see if we have a unigram for this if (!_languageModel->hasUnigramsForKey(reading)) { @@ -365,12 +359,12 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; NSString *poppedText = [self _popOverflowComposingTextAndWalk]; // get user override model suggestion - string overrideValue = (Preferences.useSCPCTypingMode) ? "" : + std::string overrideValue = (Preferences.useSCPCTypingMode) ? "" : _userOverrideModel->suggest(_walkedNodes, _builder->cursorIndex(), [[NSDate date] timeIntervalSince1970]); if (!overrideValue.empty()) { size_t cursorIndex = [self _actualCandidateCursorIndex]; - vector nodes = _builder->grid().nodesCrossingOrEndingAt(cursorIndex); + std::vector nodes = _builder->grid().nodesCrossingOrEndingAt(cursorIndex); double highestScore = FindHighestScore(nodes, kEpsilon); _builder->grid().overrideNodeScoreForSelectedCandidate(cursorIndex, overrideValue, static_cast(highestScore)); } @@ -411,13 +405,13 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; return YES; } - // MARK: Space and Down, plus PageUp / PageDn / PageLeft / PageRight. - // keyCode 125 = Down, charCode 32 = Space - if (_bpmfReadingBuffer->isEmpty() && - [state isKindOfClass:[InputStateNotEmpty class]] && - ([input isExtraChooseCandidateKey] || [input isExtraChooseCandidateKeyReverse] + // MARK: Space and Down, plus PageUp / PageDn / PageLeft / PageRight. + // keyCode 125 = Down, charCode 32 = Space + if (_bpmfReadingBuffer->isEmpty() && + [state isKindOfClass:[InputStateNotEmpty class]] && + ([input isExtraChooseCandidateKey] || [input isExtraChooseCandidateKeyReverse] || [input isSpace] || [input isPageDown] || [input isPageUp] - || (input.useVerticalMode && ([input isVerticalModeOnlyChooseCandidateKey])))) { + || (input.useVerticalMode && ([input isVerticalModeOnlyChooseCandidateKey])))) { if ([input isSpace]) { // if the spacebar is NOT set to be a selection key if ([input isShiftHold] || !Preferences.chooseCandidateUsingSpace) { @@ -521,7 +515,7 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; InputStateSymbolTable *symbolState = [[InputStateSymbolTable alloc] initWithNode:root useVerticalMode:input.useVerticalMode]; stateCallback(symbolState); return YES; -// if (_languageModel->hasUnigramsForKey(string("_punctuation_list"))) { +// if (_languageModel->hasUnigramsForKey("_punctuation_list"))) { // if (_bpmfReadingBuffer->isEmpty()) { // _builder->insertReadingAtCursor(string("_punctuation_list")); // NSString *poppedText = [self _popOverflowComposingTextAndWalk]; @@ -540,22 +534,22 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; // MARK: Punctuation // if nothing is matched, see if it's a punctuation key for current layout. - string punctuationNamePrefix; + std::string punctuationNamePrefix; if ([input isControlHold]) { - punctuationNamePrefix = string("_ctrl_punctuation_"); + punctuationNamePrefix = std::string("_ctrl_punctuation_"); } else if (Preferences.halfWidthPunctuationEnabled) { - punctuationNamePrefix = string("_half_punctuation_"); + punctuationNamePrefix = std::string("_half_punctuation_"); } else { - punctuationNamePrefix = string("_punctuation_"); + punctuationNamePrefix = std::string("_punctuation_"); } - string layout = [self _currentLayout]; - string customPunctuation = punctuationNamePrefix + layout + string(1, (char) charCode); + std::string layout = [self _currentLayout]; + std::string customPunctuation = punctuationNamePrefix + layout + std::string(1, (char) charCode); if ([self _handlePunctuation:customPunctuation state:state usingVerticalMode:input.useVerticalMode stateCallback:stateCallback errorCallback:errorCallback]) { return YES; } // if nothing is matched, see if it's a punctuation key. - string punctuation = punctuationNamePrefix + string(1, (char) charCode); + std::string punctuation = punctuationNamePrefix + std::string(1, (char) charCode); if ([self _handlePunctuation:punctuation state:state usingVerticalMode:input.useVerticalMode stateCallback:stateCallback errorCallback:errorCallback]) { return YES; } @@ -563,7 +557,7 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; // Lukhnos 這裡的處理反而會使得 Apple 倚天注音動態鍵盤佈局「敲不了半形大寫英文」的缺點曝露無疑,所以注釋掉。 // 至於他試圖用這種處理來解決的上游 UPR293 的問題,其實針對詞庫檔案的排序做點手腳就可以解決。威注音本來也就是這麼做的。 if (/*[state isKindOfClass:[InputStateNotEmpty class]] && */(char) charCode >= 'A' && (char) charCode <= 'Z') { - string letter = string("_letter_") + string(1, (char) charCode); + std::string letter = std::string("_letter_") + std::string(1, (char) charCode); if ([self _handlePunctuation:letter state:state usingVerticalMode:input.useVerticalMode stateCallback:stateCallback errorCallback:errorCallback]) { return YES; } @@ -847,7 +841,7 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; return YES; } -- (BOOL)_handlePunctuation:(string)customPunctuation state:(InputState *)state usingVerticalMode:(BOOL)useVerticalMode stateCallback:(void (^)(InputState *))stateCallback errorCallback:(void (^)(void))errorCallback +- (BOOL)_handlePunctuation:(std::string)customPunctuation state:(InputState *)state usingVerticalMode:(BOOL)useVerticalMode stateCallback:(void (^)(InputState *))stateCallback errorCallback:(void (^)(void))errorCallback { if (!_languageModel->hasUnigramsForKey(customPunctuation)) { return NO; @@ -1152,23 +1146,23 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; } if (Preferences.useSCPCTypingMode) { - string layout = [self _currentLayout]; - string punctuationNamePrefix; + std::string layout = [self _currentLayout]; + std::string punctuationNamePrefix; if ([input isControlHold]) { - punctuationNamePrefix = string("_ctrl_punctuation_"); + punctuationNamePrefix = std::string("_ctrl_punctuation_"); } else if (Preferences.halfWidthPunctuationEnabled) { - punctuationNamePrefix = string("_half_punctuation_"); + punctuationNamePrefix = std::string("_half_punctuation_"); } else { - punctuationNamePrefix = string("_punctuation_"); + punctuationNamePrefix = std::string("_punctuation_"); } - string customPunctuation = punctuationNamePrefix + layout + string(1, (char) charCode); - string punctuation = punctuationNamePrefix + string(1, (char) charCode); + std::string customPunctuation = punctuationNamePrefix + layout + std::string(1, (char) charCode); + std::string punctuation = punctuationNamePrefix + std::string(1, (char) charCode); BOOL shouldAutoSelectCandidate = _bpmfReadingBuffer->isValidKey((char) charCode) || _languageModel->hasUnigramsForKey(customPunctuation) || _languageModel->hasUnigramsForKey(punctuation); if (!shouldAutoSelectCandidate && (char) charCode >= 'A' && (char) charCode <= 'Z') { - string letter = string("_letter_") + string(1, (char) charCode); + std::string letter = std::string("_letter_") + std::string(1, (char) charCode); if (_languageModel->hasUnigramsForKey(letter)) { shouldAutoSelectCandidate = YES; } @@ -1208,9 +1202,9 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; // we must do some Unicode codepoint counting to find the actual cursor location for the client // i.e. we need to take UTF-16 into consideration, for which a surrogate pair takes 2 UniChars // locations - for (vector::iterator wi = _walkedNodes.begin(), we = _walkedNodes.end(); wi != we; ++wi) { + for (std::vector::iterator wi = _walkedNodes.begin(), we = _walkedNodes.end(); wi != we; ++wi) { if ((*wi).node) { - string nodeStr = (*wi).node->currentKeyValue().value; + std::string nodeStr = (*wi).node->currentKeyValue().value; NSString *valueString = [NSString stringWithUTF8String:nodeStr.c_str()]; [composingBuffer appendString:valueString]; @@ -1276,7 +1270,7 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; // retrieve the most likely trellis, i.e. a Maximum Likelihood Estimation // of the best possible Mandarain characters given the input syllables, // using the Viterbi algorithm implemented in the Gramambular library - Walker walker(&_builder->grid()); + Taiyan::Gramambular::Walker walker(&_builder->grid()); // the reverse walk traces the trellis from the end _walkedNodes = walker.reverseWalk(_builder->grid().width()); @@ -1286,7 +1280,7 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; // if DEBUG is defined, a GraphViz file is written to kGraphVizOutputfile #if DEBUG - string dotDump = _builder->grid().dumpDOT(); + std::string dotDump = _builder->grid().dumpDOT(); NSString *dotStr = [NSString stringWithUTF8String:dotDump.c_str()]; NSError *error = nil; @@ -1309,7 +1303,7 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; if (_builder->grid().width() > (size_t) composingBufferSize) { if (_walkedNodes.size() > 0) { - NodeAnchor &anchor = _walkedNodes[0]; + Taiyan::Gramambular::NodeAnchor &anchor = _walkedNodes[0]; poppedText = [NSString stringWithUTF8String:anchor.node->currentKeyValue().value.c_str()]; _builder->removeHeadReadings(anchor.spanningLength); } @@ -1324,15 +1318,15 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; NSMutableArray *candidatesArray = [[NSMutableArray alloc] init]; size_t cursorIndex = [self _actualCandidateCursorIndex]; - vector nodes = _builder->grid().nodesCrossingOrEndingAt(cursorIndex); + std::vector nodes = _builder->grid().nodesCrossingOrEndingAt(cursorIndex); // sort the nodes, so that longer nodes (representing longer phrases) are placed at the top of the candidate list stable_sort(nodes.begin(), nodes.end(), NodeAnchorDescendingSorter()); // then use the C++ trick to retrieve the candidates for each node at/crossing the cursor - for (vector::iterator ni = nodes.begin(), ne = nodes.end(); ni != ne; ++ni) { - const vector &candidates = (*ni).node->candidates(); - for (vector::const_iterator ci = candidates.begin(), ce = candidates.end(); ci != ce; ++ci) { + for (std::vector::iterator ni = nodes.begin(), ne = nodes.end(); ni != ne; ++ni) { + const std::vector &candidates = (*ni).node->candidates(); + for (std::vector::const_iterator ci = candidates.begin(), ce = candidates.end(); ci != ce; ++ci) { [candidatesArray addObject:[NSString stringWithUTF8String:(*ci).value.c_str()]]; } } @@ -1361,8 +1355,8 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; - (NSArray *)_currentReadings { NSMutableArray *readingsArray = [[NSMutableArray alloc] init]; - vector v = _builder->readings(); - for (vector::iterator it_i = v.begin(); it_i != v.end(); ++it_i) { + std::vector v = _builder->readings(); + for (std::vector::iterator it_i = v.begin(); it_i != v.end(); ++it_i) { [readingsArray addObject:[NSString stringWithUTF8String:it_i->c_str()]]; } return readingsArray; @@ -1370,9 +1364,9 @@ static NSString *const kGraphVizOutputfile = @"/tmp/vChewing-visualization.dot"; - (nullable InputState *)buildAssociatePhraseStateWithKey:(NSString *)key useVerticalMode:(BOOL)useVerticalMode { - string cppKey = string(key.UTF8String); + std::string cppKey = std::string(key.UTF8String); if (_languageModel->hasAssociatedPhrasesForKey(cppKey)) { - vector phrases = _languageModel->associatedPhrasesForKey(cppKey); + std::vector phrases = _languageModel->associatedPhrasesForKey(cppKey); NSMutableArray *array = [NSMutableArray array]; for (auto phrase: phrases) { NSString *item = [[NSString alloc] initWithUTF8String:phrase.c_str()]; From c2df4c7c333191db6d8a8b2c8d0e33eed6422c7f Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Sun, 20 Feb 2022 22:02:53 +0800 Subject: [PATCH 15/22] UOM // Dealing with Namespace Pollusion. --- .../SubLanguageModels/UserOverrideModel.cpp | 44 ++++++++++--------- .../SubLanguageModels/UserOverrideModel.h | 11 +++-- 2 files changed, 28 insertions(+), 27 deletions(-) diff --git a/Source/Modules/LangModelRelated/SubLanguageModels/UserOverrideModel.cpp b/Source/Modules/LangModelRelated/SubLanguageModels/UserOverrideModel.cpp index 9571176c..2e0a7096 100644 --- a/Source/Modules/LangModelRelated/SubLanguageModels/UserOverrideModel.cpp +++ b/Source/Modules/LangModelRelated/SubLanguageModels/UserOverrideModel.cpp @@ -23,7 +23,7 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR TH #include #include -using namespace vChewing; +namespace vChewing { // About 20 generations. static const double DecayThreshould = 1.0 / 1048576.0; @@ -33,8 +33,8 @@ static double Score(size_t eventCount, double eventTimestamp, double timestamp, double lambda); -static bool IsEndingPunctuation(const string& value); -static string WalkedNodesToKey(const std::vector& walkedNodes, +static bool IsEndingPunctuation(const std::string& value); +static std::string WalkedNodesToKey(const std::vector& walkedNodes, size_t cursorIndex); UserOverrideModel::UserOverrideModel(size_t capacity, double decayConstant) @@ -43,11 +43,11 @@ UserOverrideModel::UserOverrideModel(size_t capacity, double decayConstant) m_decayExponent = log(0.5) / decayConstant; } -void UserOverrideModel::observe(const std::vector& walkedNodes, +void UserOverrideModel::observe(const std::vector& walkedNodes, size_t cursorIndex, - const string& candidate, + const std::string& candidate, double timestamp) { - string key = WalkedNodesToKey(walkedNodes, cursorIndex); + std::string key = WalkedNodesToKey(walkedNodes, cursorIndex); auto mapIter = m_lruMap.find(key); if (mapIter == m_lruMap.end()) { auto keyValuePair = KeyObservationPair(key, Observation()); @@ -76,20 +76,20 @@ void UserOverrideModel::observe(const std::vector& walkedNodes, } } -string UserOverrideModel::suggest(const std::vector& walkedNodes, +std::string UserOverrideModel::suggest(const std::vector& walkedNodes, size_t cursorIndex, double timestamp) { - string key = WalkedNodesToKey(walkedNodes, cursorIndex); + std::string key = WalkedNodesToKey(walkedNodes, cursorIndex); auto mapIter = m_lruMap.find(key); if (mapIter == m_lruMap.end()) { - return string(); + return std::string(); } auto listIter = mapIter->second; auto& keyValuePair = *listIter; const Observation& observation = keyValuePair.second; - string candidate; + std::string candidate; double score = 0.0; for (auto i = observation.overrides.begin(); i != observation.overrides.end(); @@ -112,7 +112,7 @@ string UserOverrideModel::suggest(const std::vector& walkedNodes, return candidate; } -void UserOverrideModel::Observation::update(const string& candidate, +void UserOverrideModel::Observation::update(const std::string& candidate, double timestamp) { count++; auto& o = overrides[candidate]; @@ -134,16 +134,16 @@ static double Score(size_t eventCount, return prob * decay; } -static bool IsEndingPunctuation(const string& value) { +static bool IsEndingPunctuation(const std::string& value) { return value == "," || value == "。" || value== "!" || value == "?" || value == "」" || value == "』" || value== "”" || value == "’"; } -static string WalkedNodesToKey(const std::vector& walkedNodes, +static std::string WalkedNodesToKey(const std::vector& walkedNodes, size_t cursorIndex) { std::stringstream s; - std::vector n; + std::vector n; size_t ll = 0; - for (std::vector::const_iterator i = walkedNodes.begin(); + for (std::vector::const_iterator i = walkedNodes.begin(); i != walkedNodes.end(); ++i) { const auto& nn = *i; @@ -154,19 +154,19 @@ static string WalkedNodesToKey(const std::vector& walkedNodes, } } - std::vector::const_reverse_iterator r = n.rbegin(); + std::vector::const_reverse_iterator r = n.rbegin(); if (r == n.rend()) { return ""; } - string current = (*r).node->currentKeyValue().key; + std::string current = (*r).node->currentKeyValue().key; ++r; s.clear(); s.str(std::string()); if (r != n.rend()) { - string value = (*r).node->currentKeyValue().value; + std::string value = (*r).node->currentKeyValue().value; if (IsEndingPunctuation(value)) { s << "()"; r = n.rend(); @@ -181,12 +181,12 @@ static string WalkedNodesToKey(const std::vector& walkedNodes, } else { s << "()"; } - string prev = s.str(); + std::string prev = s.str(); s.clear(); s.str(std::string()); if (r != n.rend()) { - string value = (*r).node->currentKeyValue().value; + std::string value = (*r).node->currentKeyValue().value; if (IsEndingPunctuation(value)) { s << "()"; r = n.rend(); @@ -201,7 +201,7 @@ static string WalkedNodesToKey(const std::vector& walkedNodes, } else { s << "()"; } - string anterior = s.str(); + std::string anterior = s.str(); s.clear(); s.str(std::string()); @@ -209,3 +209,5 @@ static string WalkedNodesToKey(const std::vector& walkedNodes, return s.str(); } + +} // namespace vChewing diff --git a/Source/Modules/LangModelRelated/SubLanguageModels/UserOverrideModel.h b/Source/Modules/LangModelRelated/SubLanguageModels/UserOverrideModel.h index aed9992e..7189f5d2 100644 --- a/Source/Modules/LangModelRelated/SubLanguageModels/UserOverrideModel.h +++ b/Source/Modules/LangModelRelated/SubLanguageModels/UserOverrideModel.h @@ -22,7 +22,6 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR TH #include #include -#include #include "Gramambular.h" @@ -34,12 +33,12 @@ class UserOverrideModel { public: UserOverrideModel(size_t capacity, double decayConstant); - void observe(const std::vector& walkedNodes, + void observe(const std::vector& walkedNodes, size_t cursorIndex, - const string& candidate, + const std::string& candidate, double timestamp); - string suggest(const std::vector& walkedNodes, + std::string suggest(const std::vector& walkedNodes, size_t cursorIndex, double timestamp); @@ -56,7 +55,7 @@ private: std::map overrides; Observation() : count(0) {} - void update(const string& candidate, double timestamp); + void update(const std::string& candidate, double timestamp); }; typedef std::pair KeyObservationPair; @@ -67,7 +66,7 @@ private: std::map::iterator> m_lruMap; }; -}; // namespace vChewing +}; // namespace vChewing #endif From 016036eb751c0e19ff286087990158aa2fbb0e77 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Sun, 20 Feb 2022 22:08:03 +0800 Subject: [PATCH 16/22] CoreLM // Dealing with Namespace Pollusion. - We are still maintaining the CoreLM for future purposes. --- .../Modules/LangModelRelated/SubLanguageModels/CoreLM.h | 4 ++-- .../Modules/LangModelRelated/SubLanguageModels/CoreLM.mm | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Source/Modules/LangModelRelated/SubLanguageModels/CoreLM.h b/Source/Modules/LangModelRelated/SubLanguageModels/CoreLM.h index 661cfe15..178ee21a 100644 --- a/Source/Modules/LangModelRelated/SubLanguageModels/CoreLM.h +++ b/Source/Modules/LangModelRelated/SubLanguageModels/CoreLM.h @@ -45,8 +45,8 @@ public: void close(); void dump(); - virtual const vector bigramsForKeys(const string& preceedingKey, const string& key); - virtual const vector unigramsForKey(const string& key); + virtual const std::vector bigramsForKeys(const string& preceedingKey, const string& key); + virtual const std::vector unigramsForKey(const string& key); virtual bool hasUnigramsForKey(const string& key); protected: diff --git a/Source/Modules/LangModelRelated/SubLanguageModels/CoreLM.mm b/Source/Modules/LangModelRelated/SubLanguageModels/CoreLM.mm index 14d6cd63..683106ce 100644 --- a/Source/Modules/LangModelRelated/SubLanguageModels/CoreLM.mm +++ b/Source/Modules/LangModelRelated/SubLanguageModels/CoreLM.mm @@ -281,14 +281,14 @@ void vChewing::CoreLM::dump() } } -const vector vChewing::CoreLM::bigramsForKeys(const string& preceedingKey, const string& key) +const std::vector vChewing::CoreLM::bigramsForKeys(const string& preceedingKey, const string& key) { - return vector(); + return std::vector(); } -const vector vChewing::CoreLM::unigramsForKey(const string& key) +const std::vector vChewing::CoreLM::unigramsForKey(const string& key) { - vector v; + std::vector v; map >::const_iterator i = keyRowMap.find(key.c_str()); if (i != keyRowMap.end()) { From 256a20d93f94de20e48fc12030bf5ef7b2ff205d Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Sun, 20 Feb 2022 22:18:25 +0800 Subject: [PATCH 17/22] LMInstantiator // Dealing with Namespace Pollusion. --- .../Modules/LangModelRelated/LMInstantiator.h | 34 +++++------ .../LangModelRelated/LMInstantiator.mm | 58 ++++++++++--------- 2 files changed, 47 insertions(+), 45 deletions(-) diff --git a/Source/Modules/LangModelRelated/LMInstantiator.h b/Source/Modules/LangModelRelated/LMInstantiator.h index 0ee9096c..d4f49eb9 100644 --- a/Source/Modules/LangModelRelated/LMInstantiator.h +++ b/Source/Modules/LangModelRelated/LMInstantiator.h @@ -20,12 +20,12 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR TH #ifndef LMInstantiator_H #define LMInstantiator_H -#include -#include "UserPhrasesLM.h" -#include "ParselessLM.h" -#include "CNSLM.h" -#include "PhraseReplacementMap.h" #include "AssociatedPhrases.h" +#include "CNSLM.h" +#include "ParselessLM.h" +#include "PhraseReplacementMap.h" +#include "UserPhrasesLM.h" +#include #include namespace vChewing { @@ -54,7 +54,7 @@ using namespace Taiyan::Gramambular; /// model while launching and to load the user phrases anytime if the custom /// files are modified. It does not keep the reference of the data pathes but /// you have to pass the paths when you ask it to do loading. -class LMInstantiator : public LanguageModel { +class LMInstantiator : public Taiyan::Gramambular::LanguageModel { public: LMInstantiator(); ~LMInstantiator(); @@ -83,14 +83,14 @@ public: void loadPhraseReplacementMap(const char* phraseReplacementPath); /// Not implemented since we do not have data to provide bigram function. - const vector bigramsForKeys(const string& preceedingKey, const string& key); + const std::vector bigramsForKeys(const std::string& preceedingKey, const std::string& key); /// Returns a list of available unigram for the given key. - /// @param key A string represents the BPMF reading or a symbol key. For + /// @param key A std::string represents the BPMF reading or a symbol key. For /// example, it you pass "ㄇㄚ", it returns "嗎", "媽", and so on. - const vector unigramsForKey(const string& key); + const std::vector unigramsForKey(const std::string& key); /// If the model has unigrams for the given key. /// @param key The key. - bool hasUnigramsForKey(const string& key); + bool hasUnigramsForKey(const std::string& key); /// Enables or disables phrase replacement. void setPhraseReplacementEnabled(bool enabled); @@ -107,10 +107,10 @@ public: /// If the external converted is enabled or not. bool externalConverterEnabled(); /// Sets a lambda to let the values of unigrams could be converted by it. - void setExternalConverter(std::function externalConverter); + void setExternalConverter(std::function externalConverter); - const vector associatedPhrasesForKey(const string& key); - bool hasAssociatedPhrasesForKey(const string& key); + const std::vector associatedPhrasesForKey(const std::string& key); + bool hasAssociatedPhrasesForKey(const std::string& key); protected: @@ -121,9 +121,9 @@ protected: /// @param insertedValues The values for unigrams already in the results. /// It helps to prevent duplicated unigrams. Please note that the method /// has a side effect that it inserts values to `insertedValues`. - const vector filterAndTransformUnigrams(const vector unigrams, - const std::unordered_set& excludedValues, - std::unordered_set& insertedValues); + const std::vector filterAndTransformUnigrams(const std::vector unigrams, + const std::unordered_set& excludedValues, + std::unordered_set& insertedValues); ParselessLM m_languageModel; CNSLM m_cnsModel; @@ -134,7 +134,7 @@ protected: bool m_phraseReplacementEnabled; bool m_cnsEnabled; bool m_externalConverterEnabled; - std::function m_externalConverter; + std::function m_externalConverter; }; }; diff --git a/Source/Modules/LangModelRelated/LMInstantiator.mm b/Source/Modules/LangModelRelated/LMInstantiator.mm index 299edb64..871206d7 100644 --- a/Source/Modules/LangModelRelated/LMInstantiator.mm +++ b/Source/Modules/LangModelRelated/LMInstantiator.mm @@ -21,7 +21,7 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR TH #include #include -using namespace vChewing; +namespace vChewing { LMInstantiator::LMInstantiator() { @@ -92,49 +92,49 @@ void LMInstantiator::loadPhraseReplacementMap(const char* phraseReplacementPath) } } -const vector LMInstantiator::bigramsForKeys(const string& preceedingKey, const string& key) +const std::vector LMInstantiator::bigramsForKeys(const std::string& preceedingKey, const std::string& key) { - return vector(); + return std::vector(); } -const vector LMInstantiator::unigramsForKey(const string& key) +const std::vector LMInstantiator::unigramsForKey(const std::string& key) { if (key == " ") { - vector spaceUnigrams; - Unigram g; + std::vector spaceUnigrams; + Taiyan::Gramambular::Unigram g; g.keyValue.key = " "; - g.keyValue.value= " "; + g.keyValue.value = " "; g.score = 0; spaceUnigrams.push_back(g); return spaceUnigrams; } - vector allUnigrams; - vector userUnigrams; - vector cnsUnigrams; + std::vector allUnigrams; + std::vector userUnigrams; + std::vector cnsUnigrams; - unordered_set excludedValues; - unordered_set insertedValues; + std::unordered_set excludedValues; + std::unordered_set insertedValues; if (m_excludedPhrases.hasUnigramsForKey(key)) { - vector excludedUnigrams = m_excludedPhrases.unigramsForKey(key); + std::vector excludedUnigrams = m_excludedPhrases.unigramsForKey(key); transform(excludedUnigrams.begin(), excludedUnigrams.end(), inserter(excludedValues, excludedValues.end()), - [](const Unigram& u) { return u.keyValue.value; }); + [](const Taiyan::Gramambular::Unigram& u) { return u.keyValue.value; }); } if (m_userPhrases.hasUnigramsForKey(key)) { - vector rawUserUnigrams = m_userPhrases.unigramsForKey(key); + std::vector rawUserUnigrams = m_userPhrases.unigramsForKey(key); userUnigrams = filterAndTransformUnigrams(rawUserUnigrams, excludedValues, insertedValues); } if (m_languageModel.hasUnigramsForKey(key)) { - vector rawGlobalUnigrams = m_languageModel.unigramsForKey(key); + std::vector rawGlobalUnigrams = m_languageModel.unigramsForKey(key); allUnigrams = filterAndTransformUnigrams(rawGlobalUnigrams, excludedValues, insertedValues); } if (m_cnsModel.hasUnigramsForKey(key) && m_cnsEnabled) { - vector rawCNSUnigrams = m_cnsModel.unigramsForKey(key); + std::vector rawCNSUnigrams = m_cnsModel.unigramsForKey(key); cnsUnigrams = filterAndTransformUnigrams(rawCNSUnigrams, excludedValues, insertedValues); } @@ -143,7 +143,7 @@ const vector LMInstantiator::unigramsForKey(const string& key) return allUnigrams; } -bool LMInstantiator::hasUnigramsForKey(const string& key) +bool LMInstantiator::hasUnigramsForKey(const std::string& key) { if (key == " ") { return true; @@ -185,36 +185,36 @@ bool LMInstantiator::externalConverterEnabled() return m_externalConverterEnabled; } -void LMInstantiator::setExternalConverter(std::function externalConverter) +void LMInstantiator::setExternalConverter(std::function externalConverter) { m_externalConverter = externalConverter; } -const vector LMInstantiator::filterAndTransformUnigrams(const vector unigrams, const unordered_set& excludedValues, unordered_set& insertedValues) +const std::vector LMInstantiator::filterAndTransformUnigrams(const std::vector unigrams, const std::unordered_set& excludedValues, std::unordered_set& insertedValues) { - vector results; + std::vector results; for (auto&& unigram : unigrams) { // excludedValues filters out the unigrams with the original value. // insertedValues filters out the ones with the converted value - string originalValue = unigram.keyValue.value; + std::string originalValue = unigram.keyValue.value; if (excludedValues.find(originalValue) != excludedValues.end()) { continue; } - string value = originalValue; + std::string value = originalValue; if (m_phraseReplacementEnabled) { - string replacement = m_phraseReplacement.valueForKey(value); + std::string replacement = m_phraseReplacement.valueForKey(value); if (replacement != "") { value = replacement; } } if (m_externalConverterEnabled && m_externalConverter) { - string replacement = m_externalConverter(value); + std::string replacement = m_externalConverter(value); value = replacement; } if (insertedValues.find(value) == insertedValues.end()) { - Unigram g; + Taiyan::Gramambular::Unigram g; g.keyValue.value = value; g.keyValue.key = unigram.keyValue.key; g.score = unigram.score; @@ -225,12 +225,14 @@ const vector LMInstantiator::filterAndTransformUnigrams(const vector LMInstantiator::associatedPhrasesForKey(const string& key) +const std::vector LMInstantiator::associatedPhrasesForKey(const std::string& key) { return m_associatedPhrases.valuesForKey(key); } -bool LMInstantiator::hasAssociatedPhrasesForKey(const string& key) +bool LMInstantiator::hasAssociatedPhrasesForKey(const std::string& key) { return m_associatedPhrases.hasValuesForKey(key); } + +} // namespace vChewing From 8bb1ad0be3a4069b22b1338c9e4eae320187ada6 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Sun, 20 Feb 2022 22:33:46 +0800 Subject: [PATCH 18/22] Lukhnos: Gramambular // Modernization. Co-Authored-By: Lukhnos Liu --- .../LanguageParsers/Gramambular/Bigram.h | 133 +++--- .../Gramambular/BlockReadingBuilder.h | 342 +++++++------- .../LanguageParsers/Gramambular/Gramambular.h | 4 +- .../LanguageParsers/Gramambular/Grid.h | 419 ++++++++---------- .../LanguageParsers/Gramambular/Grid.mm | 70 +++ .../Gramambular/KeyValuePair.h | 64 ++- .../Gramambular/LanguageModel.h | 32 +- .../LanguageParsers/Gramambular/Node.h | 358 ++++++++------- .../LanguageParsers/Gramambular/NodeAnchor.h | 79 ++-- .../LanguageParsers/Gramambular/Span.h | 133 +++--- .../LanguageParsers/Gramambular/Unigram.h | 129 +++--- .../LanguageParsers/Gramambular/Walker.h | 104 ++--- vChewing.xcodeproj/project.pbxproj | 4 + 13 files changed, 926 insertions(+), 945 deletions(-) create mode 100644 Source/Modules/LanguageParsers/Gramambular/Grid.mm diff --git a/Source/Modules/LanguageParsers/Gramambular/Bigram.h b/Source/Modules/LanguageParsers/Gramambular/Bigram.h index 3f232750..5995238d 100644 --- a/Source/Modules/LanguageParsers/Gramambular/Bigram.h +++ b/Source/Modules/LanguageParsers/Gramambular/Bigram.h @@ -17,82 +17,77 @@ THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABI TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifndef Bigram_h -#define Bigram_h +#ifndef BIGRAM_H_ +#define BIGRAM_H_ #include #include "KeyValuePair.h" namespace Taiyan { - namespace Gramambular { - class Bigram { - public: - Bigram(); - - KeyValuePair preceedingKeyValue; - KeyValuePair keyValue; - double score; - - bool operator==(const Bigram& inAnother) const; - bool operator<(const Bigram& inAnother) const; - }; +namespace Gramambular { +class Bigram { +public: + Bigram(); + + KeyValuePair preceedingKeyValue; + KeyValuePair keyValue; + double score; + + bool operator==(const Bigram& another) const; + bool operator<(const Bigram& another) const; +}; - inline ostream& operator<<(ostream& inStream, const Bigram& inGram) - { - streamsize p = inStream.precision(); - inStream.precision(6); - inStream << "(" << inGram.keyValue << "|" <& inGrams) - { - inStream << "[" << inGrams.size() << "]=>{"; - - size_t index = 0; - - for (vector::const_iterator gi = inGrams.begin() ; gi != inGrams.end() ; ++gi, ++index) { - inStream << index << "=>"; - inStream << *gi; - if (gi + 1 != inGrams.end()) { - inStream << ","; - } - } - - inStream << "}"; - return inStream; - } - - inline Bigram::Bigram() - : score(0.0) - { - } - - inline bool Bigram::operator==(const Bigram& inAnother) const - { - return preceedingKeyValue == inAnother.preceedingKeyValue && keyValue == inAnother.keyValue && score == inAnother.score; - } - - inline bool Bigram::operator<(const Bigram& inAnother) const - { - if (preceedingKeyValue < inAnother.preceedingKeyValue) { - return true; - } - else if (preceedingKeyValue == inAnother.preceedingKeyValue) { - if (keyValue < inAnother.keyValue) { - return true; - } - else if (keyValue == inAnother.keyValue) { - return score < inAnother.score; - } - return false; - } - - return false; - } - } +inline std::ostream& operator<<(std::ostream& stream, const Bigram& gram) { + std::streamsize p = stream.precision(); + stream.precision(6); + stream << "(" << gram.keyValue << "|" << gram.preceedingKeyValue << "," + << gram.score << ")"; + stream.precision(p); + return stream; } +inline std::ostream& operator<<(std::ostream& stream, + const std::vector& grams) { + stream << "[" << grams.size() << "]=>{"; + + size_t index = 0; + + for (std::vector::const_iterator gi = grams.begin(); + gi != grams.end(); ++gi, ++index) { + stream << index << "=>"; + stream << *gi; + if (gi + 1 != grams.end()) { + stream << ","; + } + } + + stream << "}"; + return stream; +} + +inline Bigram::Bigram() : score(0.0) {} + +inline bool Bigram::operator==(const Bigram& another) const { + return preceedingKeyValue == another.preceedingKeyValue && + keyValue == another.keyValue && score == another.score; +} + +inline bool Bigram::operator<(const Bigram& another) const { + if (preceedingKeyValue < another.preceedingKeyValue) { + return true; + } else if (preceedingKeyValue == another.preceedingKeyValue) { + if (keyValue < another.keyValue) { + return true; + } else if (keyValue == another.keyValue) { + return score < another.score; + } + return false; + } + + return false; +} +} // namespace Gramambular +} // namespace Taiyan + #endif diff --git a/Source/Modules/LanguageParsers/Gramambular/BlockReadingBuilder.h b/Source/Modules/LanguageParsers/Gramambular/BlockReadingBuilder.h index 039a7f88..07fc9add 100644 --- a/Source/Modules/LanguageParsers/Gramambular/BlockReadingBuilder.h +++ b/Source/Modules/LanguageParsers/Gramambular/BlockReadingBuilder.h @@ -17,202 +17,190 @@ THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABI TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifndef BlockReadingBuilder_h -#define BlockReadingBuilder_h +#ifndef BLOCKREADINGBUILDER_H_ +#define BLOCKREADINGBUILDER_H_ +#include #include + #include "Grid.h" #include "LanguageModel.h" namespace Taiyan { - namespace Gramambular { - using namespace std; - - class BlockReadingBuilder { - public: - BlockReadingBuilder(LanguageModel *inLM); - void clear(); - - size_t length() const; - size_t cursorIndex() const; - void setCursorIndex(size_t inNewIndex); - void insertReadingAtCursor(const string& inReading); - bool deleteReadingBeforeCursor(); // backspace - bool deleteReadingAfterCursor(); // delete - - bool removeHeadReadings(size_t count); - - void setJoinSeparator(const string& separator); - const string joinSeparator() const; +namespace Gramambular { - vector readings() const; +class BlockReadingBuilder { +public: + explicit BlockReadingBuilder(LanguageModel* lm); + void clear(); + + size_t length() const; + size_t cursorIndex() const; + void setCursorIndex(size_t newIndex); + void insertReadingAtCursor(const std::string& reading); + bool deleteReadingBeforeCursor(); // backspace + bool deleteReadingAfterCursor(); // delete + + bool removeHeadReadings(size_t count); + + void setJoinSeparator(const std::string& separator); + const std::string joinSeparator() const; + + std::vector readings() const; + + Grid& grid(); + +protected: + void build(); + + static const std::string Join(std::vector::const_iterator begin, + std::vector::const_iterator end, + const std::string& separator); + + // 最多使用六個字組成一個詞 + static const size_t MaximumBuildSpanLength = 6; + + size_t m_cursorIndex; + std::vector m_readings; + + Grid m_grid; + LanguageModel* m_LM; + std::string m_joinSeparator; +}; - Grid& grid(); - - protected: - void build(); - - static const string Join(vector::const_iterator begin, vector::const_iterator end, const string& separator); - - //最多使用六個字組成一個詞 - static const size_t MaximumBuildSpanLength = 6; - - size_t m_cursorIndex; - vector m_readings; - - Grid m_grid; - LanguageModel *m_LM; - string m_joinSeparator; - }; - - inline BlockReadingBuilder::BlockReadingBuilder(LanguageModel *inLM) - : m_LM(inLM) - , m_cursorIndex(0) - { - } - - inline void BlockReadingBuilder::clear() - { - m_cursorIndex = 0; - m_readings.clear(); - m_grid.clear(); - } - - inline size_t BlockReadingBuilder::length() const - { - return m_readings.size(); - } - - inline size_t BlockReadingBuilder::cursorIndex() const - { - return m_cursorIndex; - } +inline BlockReadingBuilder::BlockReadingBuilder(LanguageModel* lm) +: m_LM(lm), m_cursorIndex(0) {} - inline void BlockReadingBuilder::setCursorIndex(size_t inNewIndex) - { - m_cursorIndex = inNewIndex > m_readings.size() ? m_readings.size() : inNewIndex; - } - - inline void BlockReadingBuilder::insertReadingAtCursor(const string& inReading) - { - m_readings.insert(m_readings.begin() + m_cursorIndex, inReading); - - m_grid.expandGridByOneAtLocation(m_cursorIndex); - build(); - m_cursorIndex++; - } +inline void BlockReadingBuilder::clear() { + m_cursorIndex = 0; + m_readings.clear(); + m_grid.clear(); +} - inline vector BlockReadingBuilder::readings() const - { - return m_readings; - } - - inline bool BlockReadingBuilder::deleteReadingBeforeCursor() - { - if (!m_cursorIndex) { - return false; - } - - m_readings.erase(m_readings.begin() + m_cursorIndex - 1, m_readings.begin() + m_cursorIndex); +inline size_t BlockReadingBuilder::length() const { return m_readings.size(); } + +inline size_t BlockReadingBuilder::cursorIndex() const { return m_cursorIndex; } + +inline void BlockReadingBuilder::setCursorIndex(size_t newIndex) { + m_cursorIndex = newIndex > m_readings.size() ? m_readings.size() : newIndex; +} + +inline void BlockReadingBuilder::insertReadingAtCursor( + const std::string& reading) { + m_readings.insert(m_readings.begin() + m_cursorIndex, reading); + + m_grid.expandGridByOneAtLocation(m_cursorIndex); + build(); + m_cursorIndex++; +} + +inline std::vector BlockReadingBuilder::readings() const { + return m_readings; +} + +inline bool BlockReadingBuilder::deleteReadingBeforeCursor() { + if (!m_cursorIndex) { + return false; + } + + m_readings.erase(m_readings.begin() + m_cursorIndex - 1, + m_readings.begin() + m_cursorIndex); + m_cursorIndex--; + m_grid.shrinkGridByOneAtLocation(m_cursorIndex); + build(); + return true; +} + +inline bool BlockReadingBuilder::deleteReadingAfterCursor() { + if (m_cursorIndex == m_readings.size()) { + return false; + } + + m_readings.erase(m_readings.begin() + m_cursorIndex, + m_readings.begin() + m_cursorIndex + 1); + m_grid.shrinkGridByOneAtLocation(m_cursorIndex); + build(); + return true; +} + +inline bool BlockReadingBuilder::removeHeadReadings(size_t count) { + if (count > length()) { + return false; + } + + for (size_t i = 0; i < count; i++) { + if (m_cursorIndex) { m_cursorIndex--; - m_grid.shrinkGridByOneAtLocation(m_cursorIndex); - build(); - return true; - } - - inline bool BlockReadingBuilder::deleteReadingAfterCursor() - { - if (m_cursorIndex == m_readings.size()) { - return false; - } - - m_readings.erase(m_readings.begin() + m_cursorIndex, m_readings.begin() + m_cursorIndex + 1); - m_grid.shrinkGridByOneAtLocation(m_cursorIndex); - build(); - return true; - } - - inline bool BlockReadingBuilder::removeHeadReadings(size_t count) - { - if (count > length()) { - return false; - } - - for (size_t i = 0; i < count; i++) { - if (m_cursorIndex) { - m_cursorIndex--; - } - m_readings.erase(m_readings.begin(), m_readings.begin() + 1); - m_grid.shrinkGridByOneAtLocation(0); - build(); - } - - return true; - } - - inline void BlockReadingBuilder::setJoinSeparator(const string& separator) - { - m_joinSeparator = separator; - } - - inline const string BlockReadingBuilder::joinSeparator() const - { - return m_joinSeparator; } + m_readings.erase(m_readings.begin(), m_readings.begin() + 1); + m_grid.shrinkGridByOneAtLocation(0); + build(); + } + + return true; +} - inline Grid& BlockReadingBuilder::grid() - { - return m_grid; - } +inline void BlockReadingBuilder::setJoinSeparator( + const std::string& separator) { + m_joinSeparator = separator; +} - inline void BlockReadingBuilder::build() - { - if (!m_LM) { - return; - } - - size_t begin = 0; - size_t end = m_cursorIndex + MaximumBuildSpanLength; - - if (m_cursorIndex < MaximumBuildSpanLength) { - begin = 0; - } - else { - begin = m_cursorIndex - MaximumBuildSpanLength; - } - - if (end > m_readings.size()) { - end = m_readings.size(); - } - - for (size_t p = begin ; p < end ; p++) { - for (size_t q = 1 ; q <= MaximumBuildSpanLength && p+q <= end ; q++) { - string combinedReading = Join(m_readings.begin() + p, m_readings.begin() + p + q, m_joinSeparator); - if (!m_grid.hasNodeAtLocationSpanningLengthMatchingKey(p, q, combinedReading)) { - vector unigrams = m_LM->unigramsForKey(combinedReading); +inline const std::string BlockReadingBuilder::joinSeparator() const { + return m_joinSeparator; +} - if (unigrams.size() > 0) { - Node n(combinedReading, unigrams, vector()); - m_grid.insertNode(n, p, q); - } - } +inline Grid& BlockReadingBuilder::grid() { return m_grid; } + +inline void BlockReadingBuilder::build() { + if (!m_LM) { + return; + } + + size_t begin = 0; + size_t end = m_cursorIndex + MaximumBuildSpanLength; + + if (m_cursorIndex < MaximumBuildSpanLength) { + begin = 0; + } else { + begin = m_cursorIndex - MaximumBuildSpanLength; + } + + if (end > m_readings.size()) { + end = m_readings.size(); + } + + for (size_t p = begin; p < end; p++) { + for (size_t q = 1; q <= MaximumBuildSpanLength && p + q <= end; q++) { + std::string combinedReading = Join( + m_readings.begin() + p, m_readings.begin() + p + q, m_joinSeparator); + if (!m_grid.hasNodeAtLocationSpanningLengthMatchingKey(p, q, + combinedReading)) { + std::vector unigrams = m_LM->unigramsForKey(combinedReading); + + if (unigrams.size() > 0) { + Node n(combinedReading, unigrams, std::vector()); + m_grid.insertNode(n, p, q); } } } - - inline const string BlockReadingBuilder::Join(vector::const_iterator begin, vector::const_iterator end, const string& separator) - { - string result; - for (vector::const_iterator iter = begin ; iter != end ; ) { - result += *iter; - ++iter; - if (iter != end) { - result += separator; - } - } - return result; - } } } +inline const std::string BlockReadingBuilder::Join( + std::vector::const_iterator begin, + std::vector::const_iterator end, + const std::string& separator) { + std::string result; + for (std::vector::const_iterator iter = begin; iter != end;) { + result += *iter; + ++iter; + if (iter != end) { + result += separator; + } + } + return result; +} +} // namespace Gramambular +} // namespace Taiyan + #endif diff --git a/Source/Modules/LanguageParsers/Gramambular/Gramambular.h b/Source/Modules/LanguageParsers/Gramambular/Gramambular.h index bf40892f..d2601d3f 100644 --- a/Source/Modules/LanguageParsers/Gramambular/Gramambular.h +++ b/Source/Modules/LanguageParsers/Gramambular/Gramambular.h @@ -17,8 +17,8 @@ THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABI TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifndef Gramambular_h -#define Gramambular_h +#ifndef GRAMAMBULAR_H_ +#define GRAMAMBULAR_H_ #include "Bigram.h" #include "BlockReadingBuilder.h" diff --git a/Source/Modules/LanguageParsers/Gramambular/Grid.h b/Source/Modules/LanguageParsers/Gramambular/Grid.h index 8872cfae..f81c9301 100644 --- a/Source/Modules/LanguageParsers/Gramambular/Grid.h +++ b/Source/Modules/LanguageParsers/Gramambular/Grid.h @@ -17,248 +17,207 @@ THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABI TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifndef Grid_h -#define Grid_h +#ifndef GRID_H_ +#define GRID_H_ #include +#include +#include + #include "NodeAnchor.h" #include "Span.h" namespace Taiyan { - namespace Gramambular { +namespace Gramambular { + +class Grid { +public: + void clear(); + void insertNode(const Node& node, size_t location, size_t spanningLength); + bool hasNodeAtLocationSpanningLengthMatchingKey(size_t location, + size_t spanningLength, + const std::string& key); + + void expandGridByOneAtLocation(size_t location); + void shrinkGridByOneAtLocation(size_t location); + + size_t width() const; + std::vector nodesEndingAt(size_t location); + std::vector nodesCrossingOrEndingAt(size_t location); + + // "Freeze" the node with the unigram that represents the selected candidate + // value. After this, the node that contains the unigram will always be + // evaluated to that unigram, while all other overlapping nodes will be reset + // to their initial state (that is, if any of those nodes were "frozen" or + // fixed, they will be unfrozen.) + NodeAnchor fixNodeSelectedCandidate(size_t location, + const std::string& value); + + // Similar to fixNodeSelectedCandidate, but instead of "freezing" the node, + // only boost the unigram that represents the value with an overriding score. + // This has the same side effect as fixNodeSelectedCandidate, which is that + // all other overlapping nodes will be reset to their initial state. + void overrideNodeScoreForSelectedCandidate(size_t location, + const std::string& value, + float overridingScore); + + std::string dumpDOT(); + +protected: + std::vector m_spans; +}; + +inline void Grid::clear() { m_spans.clear(); } + +inline void Grid::insertNode(const Node& node, size_t location, + size_t spanningLength) { + if (location >= m_spans.size()) { + size_t diff = location - m_spans.size() + 1; - class Grid { - public: - void clear(); - void insertNode(const Node& inNode, size_t inLocation, size_t inSpanningLength); - bool hasNodeAtLocationSpanningLengthMatchingKey(size_t inLocation, size_t inSpanningLength, const string& inKey); - - void expandGridByOneAtLocation(size_t inLocation); - void shrinkGridByOneAtLocation(size_t inLocation); - - size_t width() const; - vector nodesEndingAt(size_t inLocation); - vector nodesCrossingOrEndingAt(size_t inLocation); - - // "Freeze" the node with the unigram that represents the selected candidate value. - // After this, the node that contains the unigram will always be evaluated to that - // unigram, while all other overlapping nodes will be reset to their initial state - // (that is, if any of those nodes were "frozen" or fixed, they will be unfrozen.) - NodeAnchor fixNodeSelectedCandidate(size_t location, const string& value); - - // Similar to fixNodeSelectedCandidate, but instead of "freezing" the node, only - // boost the unigram that represents the value with an overriding score. This - // has the same side effect as fixNodeSelectedCandidate, which is that all other - // overlapping nodes will be reset to their initial state. - void overrideNodeScoreForSelectedCandidate(size_t location, const string& value, float overridingScore); - - const string dumpDOT(); - - protected: - vector m_spans; - }; - - inline void Grid::clear() - { - m_spans.clear(); + for (size_t i = 0; i < diff; i++) { + m_spans.push_back(Span()); } - - inline void Grid::insertNode(const Node& inNode, size_t inLocation, size_t inSpanningLength) - { - if (inLocation >= m_spans.size()) { - size_t diff = inLocation - m_spans.size() + 1; - - for (size_t i = 0 ; i < diff ; i++) { - m_spans.push_back(Span()); - } - } + } + + m_spans[location].insertNodeOfLength(node, spanningLength); +} - m_spans[inLocation].insertNodeOfLength(inNode, inSpanningLength); - } +inline bool Grid::hasNodeAtLocationSpanningLengthMatchingKey( + size_t location, size_t spanningLength, const std::string& key) { + if (location > m_spans.size()) { + return false; + } + + const Node* n = m_spans[location].nodeOfLength(spanningLength); + if (!n) { + return false; + } + + return key == n->key(); +} - inline bool Grid::hasNodeAtLocationSpanningLengthMatchingKey(size_t inLocation, size_t inSpanningLength, const string& inKey) - { - if (inLocation > m_spans.size()) { - return false; - } - - const Node *n = m_spans[inLocation].nodeOfLength(inSpanningLength); - if (!n) { - return false; - } - - return inKey == n->key(); - } - - inline void Grid::expandGridByOneAtLocation(size_t inLocation) - { - if (!inLocation || inLocation == m_spans.size()) { - m_spans.insert(m_spans.begin() + inLocation, Span()); - } - else { - m_spans.insert(m_spans.begin() + inLocation, Span()); - for (size_t i = 0 ; i < inLocation ; i++) { - // zaps overlapping spans - m_spans[i].removeNodeOfLengthGreaterThan(inLocation - i); - } - } - } - - inline void Grid::shrinkGridByOneAtLocation(size_t inLocation) - { - if (inLocation >= m_spans.size()) { - return; - } - - m_spans.erase(m_spans.begin() + inLocation); - for (size_t i = 0 ; i < inLocation ; i++) { - // zaps overlapping spans - m_spans[i].removeNodeOfLengthGreaterThan(inLocation - i); - } - } - - inline size_t Grid::width() const - { - return m_spans.size(); - } - - inline vector Grid::nodesEndingAt(size_t inLocation) - { - vector result; - - if (m_spans.size() && inLocation <= m_spans.size()) { - for (size_t i = 0 ; i < inLocation ; i++) { - Span& span = m_spans[i]; - if (i + span.maximumLength() >= inLocation) { - Node *np = span.nodeOfLength(inLocation - i); - if (np) { - NodeAnchor na; - na.node = np; - na.location = i; - na.spanningLength = inLocation - i; - - result.push_back(na); - } - } - } - } - - return result; - } - - inline vector Grid::nodesCrossingOrEndingAt(size_t inLocation) - { - vector result; - - if (m_spans.size() && inLocation <= m_spans.size()) { - for (size_t i = 0 ; i < inLocation ; i++) { - Span& span = m_spans[i]; - - if (i + span.maximumLength() >= inLocation) { - - for (size_t j = 1, m = span.maximumLength(); j <= m ; j++) { - - if (i + j < inLocation) { - continue; - } - - Node *np = span.nodeOfLength(j); - if (np) { - NodeAnchor na; - na.node = np; - na.location = i; - na.spanningLength = inLocation - i; - - result.push_back(na); - } - } - } - } - } - - return result; - } - - // For nodes found at the location, fix their currently-selected candidate using the supplied string value. - inline NodeAnchor Grid::fixNodeSelectedCandidate(size_t location, const string& value) - { - vector nodes = nodesCrossingOrEndingAt(location); - NodeAnchor node; - for (auto nodeAnchor : nodes) { - auto candidates = nodeAnchor.node->candidates(); - - // Reset the candidate-fixed state of every node at the location. - const_cast(nodeAnchor.node)->resetCandidate(); - - for (size_t i = 0, c = candidates.size(); i < c; ++i) { - if (candidates[i].value == value) { - const_cast(nodeAnchor.node)->selectCandidateAtIndex(i); - node = nodeAnchor; - break;; - } - } - } - return node; - } - - inline void Grid::overrideNodeScoreForSelectedCandidate(size_t location, const string& value, float overridingScore) - { - vector nodes = nodesCrossingOrEndingAt(location); - for (auto nodeAnchor : nodes) { - auto candidates = nodeAnchor.node->candidates(); - - // Reset the candidate-fixed state of every node at the location. - const_cast(nodeAnchor.node)->resetCandidate(); - - for (size_t i = 0, c = candidates.size(); i < c; ++i) { - if (candidates[i].value == value) { - const_cast(nodeAnchor.node)->selectFloatingCandidateAtIndex(i, overridingScore); - break; - } - } - } - } - - inline const string Grid::dumpDOT() - { - stringstream sst; - sst << "digraph {" << endl; - sst << "graph [ rankdir=LR ];" << endl; - sst << "BOS;" << endl; - - for (size_t p = 0 ; p < m_spans.size() ; p++) { - Span& span = m_spans[p]; - for (size_t ni = 0 ; ni <= span.maximumLength() ; ni++) { - Node* np = span.nodeOfLength(ni); - if (np) { - if (!p) { - sst << "BOS -> " << np->currentKeyValue().value << ";" << endl; - } - - sst << np->currentKeyValue().value << ";" << endl; - - if (p + ni < m_spans.size()) { - Span& dstSpan = m_spans[p+ni]; - for (size_t q = 0 ; q <= dstSpan.maximumLength() ; q++) { - Node *dn = dstSpan.nodeOfLength(q); - if (dn) { - sst << np->currentKeyValue().value << " -> " << dn->currentKeyValue().value << ";" << endl; - } - } - } - - if (p + ni == m_spans.size()) { - sst << np->currentKeyValue().value << " -> " << "EOS;" << endl; - } - } - } - } - - sst << "EOS;" << endl; - sst << "}"; - return sst.str(); +inline void Grid::expandGridByOneAtLocation(size_t location) { + if (!location || location == m_spans.size()) { + m_spans.insert(m_spans.begin() + location, Span()); + } else { + m_spans.insert(m_spans.begin() + location, Span()); + for (size_t i = 0; i < location; i++) { + // zaps overlapping spans + m_spans[i].removeNodeOfLengthGreaterThan(location - i); } } } +inline void Grid::shrinkGridByOneAtLocation(size_t location) { + if (location >= m_spans.size()) { + return; + } + + m_spans.erase(m_spans.begin() + location); + for (size_t i = 0; i < location; i++) { + // zaps overlapping spans + m_spans[i].removeNodeOfLengthGreaterThan(location - i); + } +} + +inline size_t Grid::width() const { return m_spans.size(); } + +inline std::vector Grid::nodesEndingAt(size_t location) { + std::vector result; + + if (m_spans.size() && location <= m_spans.size()) { + for (size_t i = 0; i < location; i++) { + Span& span = m_spans[i]; + if (i + span.maximumLength() >= location) { + Node* np = span.nodeOfLength(location - i); + if (np) { + NodeAnchor na; + na.node = np; + na.location = i; + na.spanningLength = location - i; + + result.push_back(na); + } + } + } + } + + return result; +} + +inline std::vector Grid::nodesCrossingOrEndingAt(size_t location) { + std::vector result; + + if (m_spans.size() && location <= m_spans.size()) { + for (size_t i = 0; i < location; i++) { + Span& span = m_spans[i]; + + if (i + span.maximumLength() >= location) { + for (size_t j = 1, m = span.maximumLength(); j <= m; j++) { + if (i + j < location) { + continue; + } + + Node* np = span.nodeOfLength(j); + if (np) { + NodeAnchor na; + na.node = np; + na.location = i; + na.spanningLength = location - i; + + result.push_back(na); + } + } + } + } + } + + return result; +} + +// For nodes found at the location, fix their currently-selected candidate using +// the supplied string value. +inline NodeAnchor Grid::fixNodeSelectedCandidate(size_t location, + const std::string& value) { + std::vector nodes = nodesCrossingOrEndingAt(location); + NodeAnchor node; + for (auto nodeAnchor : nodes) { + auto candidates = nodeAnchor.node->candidates(); + + // Reset the candidate-fixed state of every node at the location. + const_cast(nodeAnchor.node)->resetCandidate(); + + for (size_t i = 0, c = candidates.size(); i < c; ++i) { + if (candidates[i].value == value) { + const_cast(nodeAnchor.node)->selectCandidateAtIndex(i); + node = nodeAnchor; + break; + } + } + } + return node; +} + +inline void Grid::overrideNodeScoreForSelectedCandidate( + size_t location, const std::string& value, float overridingScore) { + std::vector nodes = nodesCrossingOrEndingAt(location); + for (auto nodeAnchor : nodes) { + auto candidates = nodeAnchor.node->candidates(); + + // Reset the candidate-fixed state of every node at the location. + const_cast(nodeAnchor.node)->resetCandidate(); + + for (size_t i = 0, c = candidates.size(); i < c; ++i) { + if (candidates[i].value == value) { + const_cast(nodeAnchor.node) + ->selectFloatingCandidateAtIndex(i, overridingScore); + break; + } + } + } +} + +} // namespace Gramambular +} // namespace Taiyan + #endif diff --git a/Source/Modules/LanguageParsers/Gramambular/Grid.mm b/Source/Modules/LanguageParsers/Gramambular/Grid.mm new file mode 100644 index 00000000..ba76a6e0 --- /dev/null +++ b/Source/Modules/LanguageParsers/Gramambular/Grid.mm @@ -0,0 +1,70 @@ +// Copyright (c) 2011 and onwards The OpenVanilla Project (MIT License). +// All possible vChewing-specific modifications are (c) 2021 and onwards The vChewing Project (MIT-NTL License). +/* +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: + +1. The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +2. No trademark license is granted to use the trade names, trademarks, service marks, or product names of Contributor, + except as required to fulfill notice requirements above. + +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. +*/ + +#include "Grid.h" + +#include +#include + +namespace Taiyan { +namespace Gramambular { + +std::string Grid::dumpDOT() { + std::stringstream sst; + sst << "digraph {" << std::endl; + sst << "graph [ rankdir=LR ];" << std::endl; + sst << "BOS;" << std::endl; + + for (size_t p = 0; p < m_spans.size(); p++) { + Span& span = m_spans[p]; + for (size_t ni = 0; ni <= span.maximumLength(); ni++) { + Node* np = span.nodeOfLength(ni); + if (np) { + if (!p) { + sst << "BOS -> " << np->currentKeyValue().value << ";" << std::endl; + } + + sst << np->currentKeyValue().value << ";" << std::endl; + + if (p + ni < m_spans.size()) { + Span& dstSpan = m_spans[p + ni]; + for (size_t q = 0; q <= dstSpan.maximumLength(); q++) { + Node* dn = dstSpan.nodeOfLength(q); + if (dn) { + sst << np->currentKeyValue().value << " -> " + << dn->currentKeyValue().value << ";" << std::endl; + } + } + } + + if (p + ni == m_spans.size()) { + sst << np->currentKeyValue().value << " -> " + << "EOS;" << std::endl; + } + } + } + } + + sst << "EOS;" << std::endl; + sst << "}"; + return sst.str(); +} + +} // namespace Gramambular +} // namespace Taiyan diff --git a/Source/Modules/LanguageParsers/Gramambular/KeyValuePair.h b/Source/Modules/LanguageParsers/Gramambular/KeyValuePair.h index 1b6bdded..e22a96bd 100644 --- a/Source/Modules/LanguageParsers/Gramambular/KeyValuePair.h +++ b/Source/Modules/LanguageParsers/Gramambular/KeyValuePair.h @@ -17,47 +17,43 @@ THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABI TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifndef KeyValuePair_h -#define KeyValuePair_h +#ifndef KEYVALUEPAIR_H_ +#define KEYVALUEPAIR_H_ #include #include namespace Taiyan { - namespace Gramambular { - using namespace std; - - class KeyValuePair { - public: - string key; - string value; +namespace Gramambular { - bool operator==(const KeyValuePair& inAnother) const; - bool operator<(const KeyValuePair& inAnother) const; - }; +class KeyValuePair { +public: + std::string key; + std::string value; + + bool operator==(const KeyValuePair& another) const; + bool operator<(const KeyValuePair& another) const; +}; - inline ostream& operator<<(ostream& inStream, const KeyValuePair& inPair) - { - inStream << "(" << inPair.key << "," << inPair.value << ")"; - return inStream; - } - - inline bool KeyValuePair::operator==(const KeyValuePair& inAnother) const - { - return key == inAnother.key && value == inAnother.value; - } - - inline bool KeyValuePair::operator<(const KeyValuePair& inAnother) const - { - if (key < inAnother.key) { - return true; - } - else if (key == inAnother.key) { - return value < inAnother.value; - } - return false; - } - } +inline std::ostream& operator<<(std::ostream& stream, + const KeyValuePair& pair) { + stream << "(" << pair.key << "," << pair.value << ")"; + return stream; } +inline bool KeyValuePair::operator==(const KeyValuePair& another) const { + return key == another.key && value == another.value; +} + +inline bool KeyValuePair::operator<(const KeyValuePair& another) const { + if (key < another.key) { + return true; + } else if (key == another.key) { + return value < another.value; + } + return false; +} +} // namespace Gramambular +} // namespace Taiyan + #endif diff --git a/Source/Modules/LanguageParsers/Gramambular/LanguageModel.h b/Source/Modules/LanguageParsers/Gramambular/LanguageModel.h index bea86f7b..b24f7fff 100644 --- a/Source/Modules/LanguageParsers/Gramambular/LanguageModel.h +++ b/Source/Modules/LanguageParsers/Gramambular/LanguageModel.h @@ -17,28 +17,28 @@ THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABI TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifndef LanguageModel_h -#define LanguageModel_h +#ifndef LANGUAGEMODEL_H_ +#define LANGUAGEMODEL_H_ +#include #include + #include "Bigram.h" #include "Unigram.h" namespace Taiyan { - namespace Gramambular { - - using namespace std; - - class LanguageModel { - public: - virtual ~LanguageModel() {} - - virtual const vector bigramsForKeys(const string &preceedingKey, const string& key) = 0; - virtual const vector unigramsForKey(const string &key) = 0; - virtual bool hasUnigramsForKey(const string& key) = 0; - }; - } -} +namespace Gramambular { +class LanguageModel { +public: + virtual ~LanguageModel() {} + + virtual const std::vector bigramsForKeys( + const std::string& preceedingKey, const std::string& key) = 0; + virtual const std::vector unigramsForKey(const std::string& key) = 0; + virtual bool hasUnigramsForKey(const std::string& key) = 0; +}; +} // namespace Gramambular +} // namespace Taiyan #endif diff --git a/Source/Modules/LanguageParsers/Gramambular/Node.h b/Source/Modules/LanguageParsers/Gramambular/Node.h index bf9e568f..ff1d3fd2 100644 --- a/Source/Modules/LanguageParsers/Gramambular/Node.h +++ b/Source/Modules/LanguageParsers/Gramambular/Node.h @@ -17,208 +17,198 @@ THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABI TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifndef Node_h -#define Node_h +#ifndef NODE_H_ +#define NODE_H_ #include +#include +#include #include + #include "LanguageModel.h" namespace Taiyan { - namespace Gramambular { - using namespace std; +namespace Gramambular { - class Node { - public: - Node(); - Node(const string& inKey, const vector& inUnigrams, const vector& inBigrams); - - void primeNodeWithPreceedingKeyValues(const vector& inKeyValues); - - bool isCandidateFixed() const; - const vector& candidates() const; - void selectCandidateAtIndex(size_t inIndex = 0, bool inFix = true); - void resetCandidate(); - void selectFloatingCandidateAtIndex(size_t index, double score); - - const string& key() const; - double score() const; - // double scoreForCandidate(string &candidate) const; // Prevents the override model to remember symbols with scode -X or lower. - const KeyValuePair currentKeyValue() const; - double highestUnigramScore() const; - - protected: - const LanguageModel* m_LM; - - string m_key; - double m_score; - - vector m_unigrams; - vector m_candidates; - map m_valueUnigramIndexMap; - map > m_preceedingGramBigramMap; - - bool m_candidateFixed; - size_t m_selectedUnigramIndex; - - friend ostream& operator<<(ostream& inStream, const Node& inNode); - }; +class Node { +public: + Node(); + Node(const std::string& key, const std::vector& unigrams, + const std::vector& bigrams); + + void primeNodeWithPreceedingKeyValues( + const std::vector& keyValues); + + bool isCandidateFixed() const; + const std::vector& candidates() const; + void selectCandidateAtIndex(size_t index = 0, bool fix = true); + void resetCandidate(); + void selectFloatingCandidateAtIndex(size_t index, double score); + + const std::string& key() const; + double score() const; + double scoreForCandidate(const std::string& candidate) const; + const KeyValuePair currentKeyValue() const; + double highestUnigramScore() const; + +protected: + const LanguageModel* m_LM; + + std::string m_key; + double m_score; + + std::vector m_unigrams; + std::vector m_candidates; + std::map m_valueUnigramIndexMap; + std::map > m_preceedingGramBigramMap; + + bool m_candidateFixed; + size_t m_selectedUnigramIndex; + + friend std::ostream& operator<<(std::ostream& stream, const Node& node); +}; - inline ostream& operator<<(ostream& inStream, const Node& inNode) - { - inStream << "(node,key:" << inNode.m_key << ",fixed:" << (inNode.m_candidateFixed ? "true" : "false") - << ",selected:" << inNode.m_selectedUnigramIndex - << "," << inNode.m_unigrams << ")"; - return inStream; - } +inline std::ostream& operator<<(std::ostream& stream, const Node& node) { + stream << "(node,key:" << node.m_key + << ",fixed:" << (node.m_candidateFixed ? "true" : "false") + << ",selected:" << node.m_selectedUnigramIndex << "," + << node.m_unigrams << ")"; + return stream; +} - inline Node::Node() - : m_candidateFixed(false) - , m_selectedUnigramIndex(0) - , m_score(0.0) - { - } +inline Node::Node() +: m_candidateFixed(false), m_selectedUnigramIndex(0), m_score(0.0) {} - inline Node::Node(const string& inKey, const vector& inUnigrams, const vector& inBigrams) - : m_key(inKey) - , m_unigrams(inUnigrams) - , m_candidateFixed(false) - , m_selectedUnigramIndex(0) - , m_score(0.0) - { - stable_sort(m_unigrams.begin(), m_unigrams.end(), Unigram::ScoreCompare); - - if (m_unigrams.size()) { - m_score = m_unigrams[0].score; - } - - size_t i = 0; - for (vector::const_iterator ui = m_unigrams.begin() ; ui != m_unigrams.end() ; ++ui) { - m_valueUnigramIndexMap[(*ui).keyValue.value] = i; - i++; - - m_candidates.push_back((*ui).keyValue); - } - - for (vector::const_iterator bi = inBigrams.begin() ; bi != inBigrams.end() ; ++bi) { - m_preceedingGramBigramMap[(*bi).preceedingKeyValue].push_back(*bi); - } - } +inline Node::Node(const std::string& key, const std::vector& unigrams, + const std::vector& bigrams) +: m_key(key), +m_unigrams(unigrams), +m_candidateFixed(false), +m_selectedUnigramIndex(0), +m_score(0.0) { + stable_sort(m_unigrams.begin(), m_unigrams.end(), Unigram::ScoreCompare); + + if (m_unigrams.size()) { + m_score = m_unigrams[0].score; + } + + size_t i = 0; + for (std::vector::const_iterator ui = m_unigrams.begin(); + ui != m_unigrams.end(); ++ui) { + m_valueUnigramIndexMap[(*ui).keyValue.value] = i; + i++; - inline void Node::primeNodeWithPreceedingKeyValues(const vector& inKeyValues) - { - size_t newIndex = m_selectedUnigramIndex; - double max = m_score; + m_candidates.push_back((*ui).keyValue); + } + + for (std::vector::const_iterator bi = bigrams.begin(); + bi != bigrams.end(); ++bi) { + m_preceedingGramBigramMap[(*bi).preceedingKeyValue].push_back(*bi); + } +} - if (!isCandidateFixed()) { - for (vector::const_iterator kvi = inKeyValues.begin() ; kvi != inKeyValues.end() ; ++kvi) { - map >::const_iterator f = m_preceedingGramBigramMap.find(*kvi); - if (f != m_preceedingGramBigramMap.end()) { - const vector& bigrams = (*f).second; - - for (vector::const_iterator bi = bigrams.begin() ; bi != bigrams.end() ; ++bi) { - const Bigram& bigram = *bi; - if (bigram.score > max) { - map::const_iterator uf = m_valueUnigramIndexMap.find((*bi).keyValue.value); - if (uf != m_valueUnigramIndexMap.end()) { - newIndex = (*uf).second; - max = bigram.score; - } - } +inline void Node::primeNodeWithPreceedingKeyValues( + const std::vector& keyValues) { + size_t newIndex = m_selectedUnigramIndex; + double max = m_score; + + if (!isCandidateFixed()) { + for (std::vector::const_iterator kvi = keyValues.begin(); + kvi != keyValues.end(); ++kvi) { + std::map >::const_iterator f = + m_preceedingGramBigramMap.find(*kvi); + if (f != m_preceedingGramBigramMap.end()) { + const std::vector& bigrams = (*f).second; + + for (std::vector::const_iterator bi = bigrams.begin(); + bi != bigrams.end(); ++bi) { + const Bigram& bigram = *bi; + if (bigram.score > max) { + std::map::const_iterator uf = + m_valueUnigramIndexMap.find((*bi).keyValue.value); + if (uf != m_valueUnigramIndexMap.end()) { + newIndex = (*uf).second; + max = bigram.score; } } } } - - if (m_score != max) { - m_score = max; - } - - if (newIndex != m_selectedUnigramIndex) { - m_selectedUnigramIndex = newIndex; - } } - - inline bool Node::isCandidateFixed() const - { - return m_candidateFixed; - } - - inline const vector& Node::candidates() const - { - return m_candidates; - } - - inline void Node::selectCandidateAtIndex(size_t inIndex, bool inFix) - { - if (inIndex >= m_unigrams.size()) { - m_selectedUnigramIndex = 0; - } - else { - m_selectedUnigramIndex = inIndex; - } - - m_candidateFixed = inFix; - m_score = 99; - } - - inline void Node::resetCandidate() - { - m_selectedUnigramIndex = 0; - m_candidateFixed = 0; - if (m_unigrams.size()) { - m_score = m_unigrams[0].score; - } - } - - inline void Node::selectFloatingCandidateAtIndex(size_t index, double score) { - if (index >= m_unigrams.size()) { - m_selectedUnigramIndex = 0; - } else { - m_selectedUnigramIndex = index; - } - m_candidateFixed = false; - m_score = score; - } - - inline const string& Node::key() const - { - return m_key; - } - - inline double Node::score() const - { - return m_score; - } - - // Prevents the override model to remember symbols with scode -X or lower. -// inline double Node::scoreForCandidate(string &candidate) const -// { -// for (auto unigram : m_unigrams) { -// if (unigram.keyValue.value == candidate) { -// return unigram.score; -// } -// } -// return 0.0; -// } - - inline double Node::highestUnigramScore() const { - if (m_unigrams.empty()) { - return 0.0; - } - return m_unigrams[0].score; - } - - inline const KeyValuePair Node::currentKeyValue() const - { - if(m_selectedUnigramIndex >= m_unigrams.size()) { - return KeyValuePair(); - } - else { - return m_candidates[m_selectedUnigramIndex]; - } - } + } + + if (m_score != max) { + m_score = max; + } + + if (newIndex != m_selectedUnigramIndex) { + m_selectedUnigramIndex = newIndex; } } +inline bool Node::isCandidateFixed() const { return m_candidateFixed; } + +inline const std::vector& Node::candidates() const { + return m_candidates; +} + +inline void Node::selectCandidateAtIndex(size_t index, bool fix) { + if (index >= m_unigrams.size()) { + m_selectedUnigramIndex = 0; + } else { + m_selectedUnigramIndex = index; + } + + m_candidateFixed = fix; + m_score = 99; +} + +inline void Node::resetCandidate() { + m_selectedUnigramIndex = 0; + m_candidateFixed = 0; + if (m_unigrams.size()) { + m_score = m_unigrams[0].score; + } +} + +inline void Node::selectFloatingCandidateAtIndex(size_t index, double score) { + if (index >= m_unigrams.size()) { + m_selectedUnigramIndex = 0; + } else { + m_selectedUnigramIndex = index; + } + m_candidateFixed = false; + m_score = score; +} + +inline const std::string& Node::key() const { return m_key; } + +inline double Node::score() const { return m_score; } + +// Prevents the override model to remember symbols with scode -X or lower. +//inline double Node::scoreForCandidate(const std::string& candidate) const { +// for (auto unigram : m_unigrams) { +// if (unigram.keyValue.value == candidate) { +// return unigram.score; +// } +// } +// return 0.0; +//} + +inline double Node::highestUnigramScore() const { + if (m_unigrams.empty()) { + return 0.0; + } + return m_unigrams[0].score; +} + +inline const KeyValuePair Node::currentKeyValue() const { + if (m_selectedUnigramIndex >= m_unigrams.size()) { + return KeyValuePair(); + } else { + return m_candidates[m_selectedUnigramIndex]; + } +} +} // namespace Gramambular +} // namespace Taiyan + #endif diff --git a/Source/Modules/LanguageParsers/Gramambular/NodeAnchor.h b/Source/Modules/LanguageParsers/Gramambular/NodeAnchor.h index 29462d85..f215c92e 100644 --- a/Source/Modules/LanguageParsers/Gramambular/NodeAnchor.h +++ b/Source/Modules/LanguageParsers/Gramambular/NodeAnchor.h @@ -17,55 +17,48 @@ THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABI TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifndef NodeAnchor_h -#define NodeAnchor_h +#ifndef NODEANCHOR_H_ +#define NODEANCHOR_H_ + +#include #include "Node.h" namespace Taiyan { - namespace Gramambular { - class NodeAnchor { - public: - NodeAnchor(); - const Node *node; - size_t location; - size_t spanningLength; - double accumulatedScore; - }; - - inline NodeAnchor::NodeAnchor() - : node(0) - , location(0) - , spanningLength(0) - , accumulatedScore(0.0) - { - } +namespace Gramambular { - inline ostream& operator<<(ostream& inStream, const NodeAnchor& inAnchor) - { - inStream << "{@(" << inAnchor.location << "," << inAnchor.spanningLength << "),"; - if (inAnchor.node) { - inStream << *(inAnchor.node); - } - else { - inStream << "null"; - } - inStream << "}"; - return inStream; - } - - inline ostream& operator<<(ostream& inStream, const vector& inAnchor) - { - for (vector::const_iterator i = inAnchor.begin() ; i != inAnchor.end() ; ++i) { - inStream << *i; - if (i + 1 != inAnchor.end()) { - inStream << "<-"; - } - } - - return inStream; - } +struct NodeAnchor { + const Node* node = nullptr; + size_t location = 0; + size_t spanningLength = 0; + double accumulatedScore = 0.0; +}; + +inline std::ostream& operator<<(std::ostream& stream, + const NodeAnchor& anchor) { + stream << "{@(" << anchor.location << "," << anchor.spanningLength << "),"; + if (anchor.node) { + stream << *(anchor.node); + } else { + stream << "null"; } + stream << "}"; + return stream; } +inline std::ostream& operator<<(std::ostream& stream, + const std::vector& anchor) { + for (std::vector::const_iterator i = anchor.begin(); + i != anchor.end(); ++i) { + stream << *i; + if (i + 1 != anchor.end()) { + stream << "<-"; + } + } + + return stream; +} +} // namespace Gramambular +} // namespace Taiyan + #endif diff --git a/Source/Modules/LanguageParsers/Gramambular/Span.h b/Source/Modules/LanguageParsers/Gramambular/Span.h index d4336d47..e46df777 100644 --- a/Source/Modules/LanguageParsers/Gramambular/Span.h +++ b/Source/Modules/LanguageParsers/Gramambular/Span.h @@ -17,88 +17,77 @@ THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABI TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifndef Span_h -#define Span_h +#ifndef SPAN_H_ +#define SPAN_H_ #include #include #include + #include "Node.h" namespace Taiyan { - namespace Gramambular { - class Span { - public: - Span(); +namespace Gramambular { +class Span { +public: + void clear(); + void insertNodeOfLength(const Node& node, size_t length); + void removeNodeOfLengthGreaterThan(size_t length); + + Node* nodeOfLength(size_t length); + size_t maximumLength() const; + +protected: + std::map m_lengthNodeMap; + size_t m_maximumLength = 0; +}; - void clear(); - void insertNodeOfLength(const Node& inNode, size_t inLength); - void removeNodeOfLengthGreaterThan(size_t inLength); - - Node* nodeOfLength(size_t inLength); - size_t maximumLength() const; +inline void Span::clear() { + m_lengthNodeMap.clear(); + m_maximumLength = 0; +} - protected: - map m_lengthNodeMap; - size_t m_maximumLength; - }; - - inline Span::Span() - : m_maximumLength(0) - { - } - - inline void Span::clear() - { - m_lengthNodeMap.clear(); - m_maximumLength = 0; - } - - inline void Span::insertNodeOfLength(const Node& inNode, size_t inLength) - { - m_lengthNodeMap[inLength] = inNode; - if (inLength > m_maximumLength) { - m_maximumLength = inLength; - } - } - - inline void Span::removeNodeOfLengthGreaterThan(size_t inLength) - { - if (inLength > m_maximumLength) { - return; - } - - size_t max = 0; - set removeSet; - for (map::iterator i = m_lengthNodeMap.begin(), e = m_lengthNodeMap.end() ; i != e ; ++i) { - if ((*i).first > inLength) { - removeSet.insert((*i).first); - } - else { - if ((*i).first > max) { - max = (*i).first; - } - } - } - - for (set::iterator i = removeSet.begin(), e = removeSet.end(); i != e; ++i) { - m_lengthNodeMap.erase(*i); - } - - m_maximumLength = max; - } - - inline Node* Span::nodeOfLength(size_t inLength) - { - map::iterator f = m_lengthNodeMap.find(inLength); - return f == m_lengthNodeMap.end() ? 0 : &(*f).second; - } - - inline size_t Span::maximumLength() const - { - return m_maximumLength; - } +inline void Span::insertNodeOfLength(const Node& node, size_t length) { + m_lengthNodeMap[length] = node; + if (length > m_maximumLength) { + m_maximumLength = length; } } +inline void Span::removeNodeOfLengthGreaterThan(size_t length) { + if (length > m_maximumLength) { + return; + } + + size_t max = 0; + std::set removeSet; + for (std::map::iterator i = m_lengthNodeMap.begin(), + e = m_lengthNodeMap.end(); + i != e; ++i) { + if ((*i).first > length) { + removeSet.insert((*i).first); + } else { + if ((*i).first > max) { + max = (*i).first; + } + } + } + + for (std::set::iterator i = removeSet.begin(), e = removeSet.end(); + i != e; ++i) { + m_lengthNodeMap.erase(*i); + } + + m_maximumLength = max; +} + +inline Node* Span::nodeOfLength(size_t length) { + std::map::iterator f = m_lengthNodeMap.find(length); + return f == m_lengthNodeMap.end() ? 0 : &(*f).second; +} + +inline size_t Span::maximumLength() const { return m_maximumLength; } +} // namespace Gramambular +} // namespace Taiyan + #endif diff --git a/Source/Modules/LanguageParsers/Gramambular/Unigram.h b/Source/Modules/LanguageParsers/Gramambular/Unigram.h index 2f4a5b88..b05e55f6 100644 --- a/Source/Modules/LanguageParsers/Gramambular/Unigram.h +++ b/Source/Modules/LanguageParsers/Gramambular/Unigram.h @@ -17,80 +17,75 @@ THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABI TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifndef Unigram_h -#define Unigram_h +#ifndef UNIGRAM_H_ +#define UNIGRAM_H_ #include + #include "KeyValuePair.h" namespace Taiyan { - namespace Gramambular { - class Unigram { - public: - Unigram(); +namespace Gramambular { - KeyValuePair keyValue; - double score; - - bool operator==(const Unigram& inAnother) const; - bool operator<(const Unigram& inAnother) const; - - static bool ScoreCompare(const Unigram& a, const Unigram& b); - }; +class Unigram { +public: + Unigram(); + + KeyValuePair keyValue; + double score; + + bool operator==(const Unigram& another) const; + bool operator<(const Unigram& another) const; + + static bool ScoreCompare(const Unigram& a, const Unigram& b); +}; - inline ostream& operator<<(ostream& inStream, const Unigram& inGram) - { - streamsize p = inStream.precision(); - inStream.precision(6); - inStream << "(" << inGram.keyValue << "," << inGram.score << ")"; - inStream.precision(p); - return inStream; - } - - inline ostream& operator<<(ostream& inStream, const vector& inGrams) - { - inStream << "[" << inGrams.size() << "]=>{"; - - size_t index = 0; - - for (vector::const_iterator gi = inGrams.begin() ; gi != inGrams.end() ; ++gi, ++index) { - inStream << index << "=>"; - inStream << *gi; - if (gi + 1 != inGrams.end()) { - inStream << ","; - } - } - - inStream << "}"; - return inStream; - } - - inline Unigram::Unigram() - : score(0.0) - { - } - - inline bool Unigram::operator==(const Unigram& inAnother) const - { - return keyValue == inAnother.keyValue && score == inAnother.score; - } - - inline bool Unigram::operator<(const Unigram& inAnother) const - { - if (keyValue < inAnother.keyValue) { - return true; - } - else if (keyValue == inAnother.keyValue) { - return score < inAnother.score; - } - return false; - } - - inline bool Unigram::ScoreCompare(const Unigram& a, const Unigram& b) - { - return a.score > b.score; - } - } +inline std::ostream& operator<<(std::ostream& stream, const Unigram& gram) { + std::streamsize p = stream.precision(); + stream.precision(6); + stream << "(" << gram.keyValue << "," << gram.score << ")"; + stream.precision(p); + return stream; } +inline std::ostream& operator<<(std::ostream& stream, + const std::vector& grams) { + stream << "[" << grams.size() << "]=>{"; + + size_t index = 0; + + for (std::vector::const_iterator gi = grams.begin(); + gi != grams.end(); ++gi, ++index) { + stream << index << "=>"; + stream << *gi; + if (gi + 1 != grams.end()) { + stream << ","; + } + } + + stream << "}"; + return stream; +} + +inline Unigram::Unigram() : score(0.0) {} + +inline bool Unigram::operator==(const Unigram& another) const { + return keyValue == another.keyValue && score == another.score; +} + +inline bool Unigram::operator<(const Unigram& another) const { + if (keyValue < another.keyValue) { + return true; + } else if (keyValue == another.keyValue) { + return score < another.score; + } + return false; +} + +inline bool Unigram::ScoreCompare(const Unigram& a, const Unigram& b) { + return a.score > b.score; +} +} // namespace Gramambular +} // namespace Taiyan + #endif diff --git a/Source/Modules/LanguageParsers/Gramambular/Walker.h b/Source/Modules/LanguageParsers/Gramambular/Walker.h index 06c2be3d..fdb035d6 100644 --- a/Source/Modules/LanguageParsers/Gramambular/Walker.h +++ b/Source/Modules/LanguageParsers/Gramambular/Walker.h @@ -17,67 +17,69 @@ THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABI TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifndef Walker_h -#define Walker_h +#ifndef WALKER_H_ +#define WALKER_H_ #include +#include + #include "Grid.h" namespace Taiyan { - namespace Gramambular { - using namespace std; +namespace Gramambular { - class Walker { - public: - Walker(Grid* inGrid); - const vector reverseWalk(size_t inLocation, double inAccumulatedScore = 0.0); - - protected: - Grid* m_grid; - }; - - inline Walker::Walker(Grid* inGrid) - : m_grid(inGrid) - { +class Walker { +public: + explicit Walker(Grid* inGrid); + const std::vector reverseWalk(size_t location, + double accumulatedScore = 0.0); + +protected: + Grid* m_grid; +}; + +inline Walker::Walker(Grid* inGrid) : m_grid(inGrid) {} + +inline const std::vector Walker::reverseWalk( + size_t location, double accumulatedScore) { + if (!location || location > m_grid->width()) { + return std::vector(); + } + + std::vector > paths; + + std::vector nodes = m_grid->nodesEndingAt(location); + + for (std::vector::iterator ni = nodes.begin(); ni != nodes.end(); + ++ni) { + if (!(*ni).node) { + continue; } - inline const vector Walker::reverseWalk(size_t inLocation, double inAccumulatedScore) - { - if (!inLocation || inLocation > m_grid->width()) { - return vector(); - } - - vector > paths; - - vector nodes = m_grid->nodesEndingAt(inLocation); - - for (vector::iterator ni = nodes.begin() ; ni != nodes.end() ; ++ni) { - if (!(*ni).node) { - continue; - } - - (*ni).accumulatedScore = inAccumulatedScore + (*ni).node->score(); - - vector path = reverseWalk(inLocation - (*ni).spanningLength, (*ni).accumulatedScore); - path.insert(path.begin(), *ni); - - paths.push_back(path); - } - - if (!paths.size()) { - return vector(); - } - - vector* result = &*(paths.begin()); - for (vector >::iterator pi = paths.begin() ; pi != paths.end() ; ++pi) { - if ((*pi).back().accumulatedScore > result->back().accumulatedScore) { - result = &*pi; - } - } - - return *result; + (*ni).accumulatedScore = accumulatedScore + (*ni).node->score(); + + std::vector path = + reverseWalk(location - (*ni).spanningLength, (*ni).accumulatedScore); + path.insert(path.begin(), *ni); + + paths.push_back(path); + } + + if (!paths.size()) { + return std::vector(); + } + + std::vector* result = &*(paths.begin()); + for (std::vector >::iterator pi = paths.begin(); + pi != paths.end(); ++pi) { + if ((*pi).back().accumulatedScore > result->back().accumulatedScore) { + result = &*pi; } } + + return *result; } +} // namespace Gramambular +} // namespace Taiyan #endif diff --git a/vChewing.xcodeproj/project.pbxproj b/vChewing.xcodeproj/project.pbxproj index 449538b2..578eea6b 100644 --- a/vChewing.xcodeproj/project.pbxproj +++ b/vChewing.xcodeproj/project.pbxproj @@ -50,6 +50,7 @@ 5BD05C6827B2BBEF004C4F1D /* Content.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BD05C6327B2BBEF004C4F1D /* Content.swift */; }; 5BD05C6927B2BBEF004C4F1D /* WindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BD05C6427B2BBEF004C4F1D /* WindowController.swift */; }; 5BD05C6A27B2BBEF004C4F1D /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BD05C6527B2BBEF004C4F1D /* ViewController.swift */; }; + 5BDC5CAB27C2873D00E1CCE2 /* Grid.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5BDC5CAA27C2873D00E1CCE2 /* Grid.mm */; }; 5BDCBB2E27B4E67A00D0CC59 /* vChewingPhraseEditor.app in Resources */ = {isa = PBXBuildFile; fileRef = 5BD05BB827B2A429004C4F1D /* vChewingPhraseEditor.app */; }; 5BE78BD927B3775B005EA1BE /* ctlAboutWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BE78BD827B37750005EA1BE /* ctlAboutWindow.swift */; }; 5BE78BDD27B3776D005EA1BE /* frmAboutWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BE78BDA27B37764005EA1BE /* frmAboutWindow.xib */; }; @@ -195,6 +196,7 @@ 5BD05C6327B2BBEF004C4F1D /* Content.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Content.swift; sourceTree = ""; }; 5BD05C6427B2BBEF004C4F1D /* WindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WindowController.swift; sourceTree = ""; }; 5BD05C6527B2BBEF004C4F1D /* ViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; + 5BDC5CAA27C2873D00E1CCE2 /* Grid.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = Grid.mm; sourceTree = ""; }; 5BDCBB4227B4F6C600D0CC59 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "zh-Hant.lproj/MainMenu.strings"; sourceTree = ""; }; 5BDCBB4327B4F6C600D0CC59 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "zh-Hant.lproj/frmAboutWindow.strings"; sourceTree = ""; }; 5BDCBB4527B4F6C600D0CC59 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "Source/WindowNIBs/zh-Hant.lproj/frmPrefWindow.strings"; sourceTree = ""; }; @@ -663,6 +665,7 @@ 6A0D4F1515FC0EB100ABF4B3 /* BlockReadingBuilder.h */, 6A0D4F1615FC0EB100ABF4B3 /* Gramambular.h */, 6A0D4F1715FC0EB100ABF4B3 /* Grid.h */, + 5BDC5CAA27C2873D00E1CCE2 /* Grid.mm */, 6A0D4F1815FC0EB100ABF4B3 /* KeyValuePair.h */, 6A0D4F1915FC0EB100ABF4B3 /* LanguageModel.h */, 6A0D4F1A15FC0EB100ABF4B3 /* Node.h */, @@ -943,6 +946,7 @@ D47F7DD3278C1263002F9DD7 /* UserOverrideModel.cpp in Sources */, 5B62A33627AE795800A19448 /* PreferencesModule.swift in Sources */, 5B62A33827AE79CD00A19448 /* NSStringUtils.swift in Sources */, + 5BDC5CAB27C2873D00E1CCE2 /* Grid.mm in Sources */, 5B62A33227AE792F00A19448 /* InputSourceHelper.swift in Sources */, 5B62A34927AE7CD900A19448 /* TooltipController.swift in Sources */, 6A0D4F4515FC0EB100ABF4B3 /* Mandarin.cpp in Sources */, From de3fe2d4f4de33e325580e92b2fe8ffb28af13ba Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Sun, 20 Feb 2022 19:52:56 +0800 Subject: [PATCH 19/22] IME // Clean-Up Useless Files. --- Source/README | 182 -------------------------------------------------- 1 file changed, 182 deletions(-) delete mode 100644 Source/README diff --git a/Source/README b/Source/README deleted file mode 100644 index 1092f5c7..00000000 --- a/Source/README +++ /dev/null @@ -1,182 +0,0 @@ -. -├── AppDelegate.swift -├── Base.lproj -│   ├── Credits.rtf -│   ├── InfoPlist.strings -│   ├── Localizable.strings -│   ├── MainMenu.xib -│   ├── preferences.xib -│   ├── template-data.txt -│   ├── template-exclude-phrases-plain-bpmf.txt -│   ├── template-exclude-phrases.txt -│   └── template-phrases-replacement.txt -├── Data -│   ├── BPMFBase.txt -│   ├── BPMFMappings.txt -│   ├── BPMFPunctuations.txt -│   ├── Makefile -│   ├── PhraseFreq.txt -│   ├── README -│   ├── Symbols.txt -│   ├── associated-phrases.cin -│   ├── bin -│   │   ├── C_Version -│   │   │   ├── Makefile -│   │   │   ├── count.bash -│   │   │   └── count.occurrence.c -│   │   ├── README -│   │   ├── Sample_Prep -│   │   │   ├── build.bash -│   │   │   └── filter.bash -│   │   ├── bpmfmap.py -│   │   ├── buildFreq.py -│   │   ├── cook-plain-bpmf.py -│   │   ├── cook.py -│   │   ├── cook_util.py -│   │   ├── count.bash -│   │   ├── count.occurrence.py -│   │   ├── disabled -│   │   │   ├── BIG5toUTF8.pl -│   │   │   ├── bpmfmap_human.py -│   │   │   ├── build4wlist.bash -│   │   │   ├── buildFreq.bash -│   │   │   ├── cook.rb -│   │   │   ├── count.occurrence.pl -│   │   │   ├── countphrase.bash -│   │   │   ├── randomShuffle.bash -│   │   │   ├── typocorrection.bash -│   │   │   └── utf8length.pl -│   │   ├── nonCJK_filter.py -│   │   ├── self-score-test.py -│   │   └── textpool.rc -│   ├── data-plain-bpmf.txt -│   ├── data.txt -│   ├── exclusion.txt -│   ├── heterophony1.list -│   ├── heterophony2.list -│   ├── heterophony3.list -│   ├── memo -│   │   ├── blacklist.txt -│   │   ├── covered_by_others.txt -│   │   ├── covered_by_singles.txt -│   │   └── falsecount.txt -│   └── phrase.occ -├── Engine -│   ├── AssociatedPhrases.cpp -│   ├── AssociatedPhrases.h -│   ├── CMakeLists.txt -│   ├── Gramambular -│   │   ├── Bigram.h -│   │   ├── BlockReadingBuilder.h -│   │   ├── Gramambular.h -│   │   ├── Grid.h -│   │   ├── KeyValuePair.h -│   │   ├── LanguageModel.h -│   │   ├── Node.h -│   │   ├── NodeAnchor.h -│   │   ├── Span.h -│   │   ├── Unigram.h -│   │   └── Walker.h -│   ├── KeyValueBlobReader.cpp -│   ├── KeyValueBlobReader.h -│   ├── KeyValueBlobReaderTest.cpp -│   ├── Mandarin -│   │   ├── CMakeLists.txt -│   │   ├── Mandarin.cpp -│   │   ├── Mandarin.h -│   │   └── MandarinTest.cpp -│   ├── McBopomofoLM.cpp -│   ├── McBopomofoLM.h -│   ├── ParselessLM.cpp -│   ├── ParselessLM.h -│   ├── ParselessLMBenchmark.cpp -│   ├── ParselessLMTest.cpp -│   ├── ParselessPhraseDB.cpp -│   ├── ParselessPhraseDB.h -│   ├── ParselessPhraseDBTest.cpp -│   ├── PhraseReplacementMap.cpp -│   ├── PhraseReplacementMap.h -│   ├── PhraseReplacementMapTest.cpp -│   ├── UserOverrideModel.cpp -│   ├── UserOverrideModel.h -│   ├── UserPhrasesLM.cpp -│   ├── UserPhrasesLM.h -│   └── UserPhrasesLMTest.cpp -├── Images -│   ├── Bopomofo.tiff -│   ├── Bopomofo@2x.tiff -│   ├── Images.xcassets -│   │   ├── AlertIcon.imageset -│   │   │   ├── 128X128.png -│   │   │   ├── 192x192.png -│   │   │   ├── 64X64.png -│   │   │   └── Contents.json -│   │   ├── AppIcon.appiconset -│   │   │   ├── 1024X1024.png -│   │   │   ├── 128X128.png -│   │   │   ├── 16X16.png -│   │   │   ├── 256X256.png -│   │   │   ├── 32X32.png -│   │   │   ├── 512X512.png -│   │   │   ├── 64X64.png -│   │   │   └── Contents.json -│   │   └── Contents.json -│   ├── PlainBopomofo.tiff -│   └── PlainBopomofo@2x.tiff -├── InputMethodController.swift -├── InputState.swift -├── Installer -│   ├── AppDelegate.swift -│   ├── ArchiveUtil.swift -│   ├── Base.lproj -│   │   └── MainMenu.xib -│   ├── BundleTranslocate.h -│   ├── BundleTranslocate.m -│   ├── Installer-Info.plist -│   ├── Installer-Prefix.pch -│   ├── McBopomofoInstaller-Bridging-Header.h -│   ├── NotarizedArchives -│   │   └── README.md -│   ├── en.lproj -│   │   ├── InfoPlist.strings -│   │   ├── License.rtf -│   │   └── Localizable.strings -│   └── zh-Hant.lproj -│   ├── InfoPlist.strings -│   ├── License.rtf -│   ├── Localizable.strings -│   └── MainMenu.xib -├── KeyHandler.h -├── KeyHandler.mm -├── KeyHandlerInput.swift -├── LanguageModelManager+Privates.h -├── LanguageModelManager.h -├── LanguageModelManager.mm -├── McBopomofo-Bridging-Header.h -├── McBopomofo-Info.plist -├── McBopomofo-Prefix.pch -├── NonModalAlertWindowController.swift -├── NonModalAlertWindowController.xib -├── Preferences.swift -├── PreferencesWindowController.swift -├── README -├── Tools -│   ├── genRTF.py -│   └── tistool.m -├── en.lproj -│   ├── Credits.rtf -│   ├── InfoPlist.strings -│   └── Localizable.strings -├── main.swift -└── zh-Hant.lproj - ├── Credits.rtf - ├── InfoPlist.strings - ├── Localizable.strings - ├── MainMenu.xib - ├── preferences.xib - ├── template-data.txt - ├── template-exclude-phrases-plain-bpmf.txt - ├── template-exclude-phrases.txt - └── template-phrases-replacement.txt - -22 directories, 157 files From bb3fd2efa34a08ae37ea02439a99d163742e3ab1 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Sun, 20 Feb 2022 22:35:47 +0800 Subject: [PATCH 20/22] Data // + Kana & Continental Phrase Pronunciations. --- Source/Data | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/Data b/Source/Data index 36a71ee9..6dc73cd3 160000 --- a/Source/Data +++ b/Source/Data @@ -1 +1 @@ -Subproject commit 36a71ee9d2e58611cd8466a1908f0a30274e261e +Subproject commit 6dc73cd3edd47c85089db8f58e92f0c821e67ed6 From 9047b0c9748f07847d31133cefdf97e36d23685d Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Sun, 20 Feb 2022 23:10:28 +0800 Subject: [PATCH 21/22] IME // Moving vChewingKeyLayoutBundle to a new appEx bundle. - Still, we have no idea how to enable these customized keylayouts. --- .../Base.lproj/ShareViewController.xib | 78 ++++++ KeyboardExtension/Info.plist | 23 ++ .../KeyboardExtension.entitlements | 12 + KeyboardExtension/ShareViewController.swift | 41 ++++ KeyboardExtension/icon.icns | Bin 0 -> 495508 bytes .../Contents/Info.plist | 20 +- .../Resources/vChewingDachen.keylayout | 2 +- .../Contents/Resources/vChewingETen.keylayout | 2 +- .../Contents/Resources/vChewingIBM.keylayout | 2 +- .../Resources/vChewingMiTAC.keylayout | 2 +- .../Resources/vChewingSeigyou.keylayout | 2 +- .../Resources/zh.lproj/InfoPlist.strings | Bin 0 -> 304 bytes .../Contents/version.plist | 0 .../Resources/zh.lproj/InfoPlist.strings | Bin 332 -> 0 bytes Source/WindowControllers/ctlPrefWindow.swift | 2 +- vChewing.xcodeproj/project.pbxproj | 231 +++++++++++++++++- 16 files changed, 388 insertions(+), 29 deletions(-) create mode 100644 KeyboardExtension/Base.lproj/ShareViewController.xib create mode 100644 KeyboardExtension/Info.plist create mode 100644 KeyboardExtension/KeyboardExtension.entitlements create mode 100644 KeyboardExtension/ShareViewController.swift create mode 100644 KeyboardExtension/icon.icns rename {Source/Resources/KeyLayouts => KeyboardExtension}/vChewingKeyLayout.bundle/Contents/Info.plist (67%) rename Source/Resources/KeyLayouts/vChewingKeyLayout.bundle/Contents/Resources/Zhuyin Dachen.keylayout => KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingDachen.keylayout (99%) rename Source/Resources/KeyLayouts/vChewingKeyLayout.bundle/Contents/Resources/Zhuyin ETen.keylayout => KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingETen.keylayout (99%) rename Source/Resources/KeyLayouts/vChewingKeyLayout.bundle/Contents/Resources/Zhuyin IBM.keylayout => KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingIBM.keylayout (99%) rename Source/Resources/KeyLayouts/vChewingKeyLayout.bundle/Contents/Resources/Zhuyin MiTAC.keylayout => KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingMiTAC.keylayout (99%) rename Source/Resources/KeyLayouts/vChewingKeyLayout.bundle/Contents/Resources/Zhuyin Seigyou.keylayout => KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingSeigyou.keylayout (99%) create mode 100644 KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/zh.lproj/InfoPlist.strings rename {Source/Resources/KeyLayouts => KeyboardExtension}/vChewingKeyLayout.bundle/Contents/version.plist (100%) delete mode 100644 Source/Resources/KeyLayouts/vChewingKeyLayout.bundle/Contents/Resources/zh.lproj/InfoPlist.strings diff --git a/KeyboardExtension/Base.lproj/ShareViewController.xib b/KeyboardExtension/Base.lproj/ShareViewController.xib new file mode 100644 index 00000000..bc80e0d6 --- /dev/null +++ b/KeyboardExtension/Base.lproj/ShareViewController.xib @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/KeyboardExtension/Info.plist b/KeyboardExtension/Info.plist new file mode 100644 index 00000000..f275862c --- /dev/null +++ b/KeyboardExtension/Info.plist @@ -0,0 +1,23 @@ + + + + + CFBundleIconFile + icon + NSExtension + + NSExtensionAttributes + + NSExtensionActivationRule + + NSExtensionActivationSupportsText + + + + NSExtensionPointIdentifier + com.apple.share-services + NSExtensionPrincipalClass + $(PRODUCT_MODULE_NAME).ShareViewController + + + diff --git a/KeyboardExtension/KeyboardExtension.entitlements b/KeyboardExtension/KeyboardExtension.entitlements new file mode 100644 index 00000000..33ede3bb --- /dev/null +++ b/KeyboardExtension/KeyboardExtension.entitlements @@ -0,0 +1,12 @@ + + + + + com.apple.security.temporary-exception.mach-register.global-name + org_atelierInmu_inputmethod_vChewing + com.apple.security.app-sandbox + + com.apple.security.files.user-selected.read-only + + + diff --git a/KeyboardExtension/ShareViewController.swift b/KeyboardExtension/ShareViewController.swift new file mode 100644 index 00000000..75910d4c --- /dev/null +++ b/KeyboardExtension/ShareViewController.swift @@ -0,0 +1,41 @@ +// +// ShareViewController.swift +// KeyboardExtension +// +// Created by ShikiSuen on 2022/2/20. +// + +import Cocoa + +class ShareViewController: NSViewController { + + override var nibName: NSNib.Name? { + return NSNib.Name("ShareViewController") + } + + override func loadView() { + super.loadView() + + // Insert code here to customize the view + let item = self.extensionContext!.inputItems[0] as! NSExtensionItem + if let attachments = item.attachments { + NSLog("Attachments = %@", attachments as NSArray) + } else { + NSLog("No Attachments") + } + } + + @IBAction func send(_ sender: AnyObject?) { + let outputItem = NSExtensionItem() + // Complete implementation by setting the appropriate value on the output item + + let outputItems = [outputItem] + self.extensionContext!.completeRequest(returningItems: outputItems, completionHandler: nil) +} + + @IBAction func cancel(_ sender: AnyObject?) { + let cancelError = NSError(domain: NSCocoaErrorDomain, code: NSUserCancelledError, userInfo: nil) + self.extensionContext!.cancelRequest(withError: cancelError) + } + +} diff --git a/KeyboardExtension/icon.icns b/KeyboardExtension/icon.icns new file mode 100644 index 0000000000000000000000000000000000000000..84ae85cdf5d9a60126f992e226b9fd9ca6e9d5cc GIT binary patch literal 495508 zcmb4qWl&pR^lbux;LuVeIHkB2C5fb>kt$8J;= z-pFWp0rz3JwdQY=ikAK|gtCPM1^qDY6K5ZDA-7M_HpXvtYXoRrR6ltemz(neoBEf= zPy8O6+_!3YYE@5U444IT_=lKZ_ZQ%p@iPmUu_z!9TkqTbhXNPdj*+d0tpk2>3Kpeg zp7ML_&(9a1u&QLb9`4i9(H-a{X&U0A%UWcOUb%2pasV_>pxR`BUl_*B^&RgeZx{RM z0v#P4iK&$t`quT0(xa^=6M9xXqIY+9Pql-QEY#IZ9tRLAs-K>{lT#%UoPcy;l)k1^ zUT-SGIituUw8!VYl>q{Shzp+?Q9_itr#L@s5_!P49_8_rN}}Ud6*UPns$Z)pV9%6ZuVK!iS)nC`!M1FSqqG-S zR@vq=yE!&cfoIdl@CWN`+I!UsH?&PR(Sr9Ttofh;6%#>3K(Hqkcz+uWe*BU18qTA3 zZT~IRWy0IukgQ9Vwq5U_y+_h*%SFz@C=4(Am{asmPA^(EC5HBDh9r+R$O_11jo>dE z>4z2R#te}X9pC8y)$Wdm1J$v-h@~!t)&_KxN%Lu94mDR^JwLkV+RrcVQ%T{7scc z!t-FB&HxTxdocVgjc||6wO~&P?Fb$+-%+07Ppju3222_H?i-Ast0qa6wk*;=T=u-R z%=Q=ZBzU2zNnWh^tf&g7UB7Uh8DL|H5H%6ZqlN!ktbn{MO_PNBU!&hPO}1+`#BvxN z{W7|<*^!q#iFdUe%4+4lovk!M&*si}d$c%rsLTLm0P)F^ySa!ewqHH z%5OyF6S*!365QmXE)~w(upH9)7zC}G0|G<(%1-ds^VwZ#gQbh9y^K6&FYQLHGsa{S z5xC>8vbt3?Px8m{`gAp>k@2k$7UFjd!L}T-n8bIDn_0VQqV6`a2iVwT4EixXjd~1x zZaNL}8N&~7<>*wmtr&>}$Gc)wk*Yy1`c_1~L z%RO@K+?2_YO-R^!xf*HH6zGe!b>6&Jjd1R-w{>sQ=HOLtGx8=mGuzj}j+MHby44bXWxxW50uHO6-)yTpP2ogw~h;4y4?__5XcuvYd-peKQ&P-^l?M9 zE$xJ*KXW`R9x1Y!S!Q_AG<9bw;%{$W#5#5U&*e=!Kf)SK3x4^_DGqj>KGnjKy#F?m z{EWox#TC3LV+dJzz~7Px(>cfGL!E+zYIw?|4So@?u-mWn92Yv`p^A6XHq{s@m-p)esG)JMVjCek~ zllZ3<_2C3LiHH8J)WrZ_%sEQMd=^QYQ@Qf*7o!chT$$@DRyT`tr{K}2thb?rbYVKD z5*cdGHpYUNcq6*82}En=y=w-Ab|2T@cSpM8^?(vauw?I1E-?&ww6^9!xPa~c)P?9- zi1gG09hTMd3iEL9s_D?vmQ{KXTycWxV-@Sk0kPAVl z?-ZMn?}Gc3@{}Qbvw7)`=NATPr_R4ZRRljk9OX=oq}R1AgT~ItE!-AZJOsG(ssEpQp1;6YZ z{^<&CyIDBA*D}}?iaQl~&Fm79Hu5oIv&(uQfMCO*@5?0 z4Vow}O~#O}sbdnV9t7duFMhF9s;0<$JCOYYnvy(7=T`YN~>@jt^qOlCD< z%gk&3KCPdSi>-Wad-O7+m=Ri zkA_B5fZN@5CrN0rl#44bo@1RfIr^cfg@?IO?Y5@S!2U$`t|_BHi98zUt1EncQpxn) zXMpI}f;nbA#CKcrQdB-io!}eyXE&Zr8+5lw&$iR-iOy(qrSjt{Z&I3dCo!D#Z60Bn z(=pTlJyWsdvPrimtq28^Y}^7FXEn8mb#rN z#yl&uz<2t(r*U3rwS!Q2%_^6SD=n74W#QvwHsSy?<*9_A+66k_y($>;QyY3)HPC0r=;3-QFa^1^WAODxMe=IxsuT~N9pIDjL4b!& zcQ_@=ZONusy|L4?b=N?`2Pf3ryK5szT}5QwKmC<@s&muOKax-%s-E)S#H?#F=CZma zU~8&do(xvmF+ycmSXv)96Lc%@F>bdC z9(7sW<1ciE$|>awo(t|;Cn?0@M;&_T&jW{rD3_U4I{U98xYP?yzv2xwgB*~D3s(8j zUM)=#CjoGn$E>98b=?$~v3&mz1UGH7UuOB|z59Vpa`IH|;_Yj$o6wts=EKCH!28qoVWlN)Lg&9T zobo+-LLt?Gwx{6?u$3w<7z^c=p!rjG;_sqf#3Wm0E#5&J0@0$~%T4<_z=AtwLdp6i z+@{!42RkBXN&6oS&*B;c7z7+xW0%}zcWv`RP0g`>Ksc#2oVqO~s_pmI3lj9?9J+35 ziFLI$$#xrQPg5$@0bk_N#lPhacRYM0f8_h+!=0+*7Yw%&e*|Tan|l z@00S$djs-x-d`*UMOLQjKIO0jcDB8))>AIFu5SF;GYX5B-XT=!F_~ThsKZ4=*WP(t zqqm=c=HIVyF<}4eCBkNaSs1@yXwr|!7A0aO)kki~5YZlu2t`QE+0`i5DlGLbJLA}Q z*~&7CWxdfmh@6ABbz)Pa?dlgiBt(k{Sy$NVwC!24r? zAsN-@+D`yJ{gh1|jFCKc%2IKKJdI&KG9H?OqX+0Z1}nUv_bk#C9+RiFjXocJgX`IG zpmASSNN@xXR6zI4FJw@Y%@$R{<2}uA6nglFF<+8EP-GYJoLv4TpVp zKfBx_{uMU&#PLnC+2*f-^_&B(9eG-i2tZDpK?OIj*ysZ~@A(~WvL@B1(8n#okib+H zr8M-0_T!g)XT0teZz&|}Zw@<2F0y`$tXY^M)-m;}6^Vp+3KZHppBGwfb z(pXaj=*_za_y-IlT07Su=p_ry5~_0a5J&&a&YGA{8mUhk zD^iXGkidHRXyZlQ@q(OO{=F)Fm;Ql!M)PTfiwyi_rt;>NIPD7*!I7B-^Ti-#)K_zW zSrkg~-S)FtS=MUGFG{qMZlB#|Eyx%EYyv9P?hp$ae}|dS(aQvLf_SqiE<{v@BEXm7 zS~2LPA)_sRi#o09xvU)V49d*T%xSoa5cR@D)oQCFV5{Wzr484Q&0OlbfDhhncE&~` zIBGMx92!=5fXqFB@fGEyn0>6@Es9?2B}g_mT2Y?OH_q)DQ;;VEA5$*@k!bhI(@tsG zlB4iR{Msr$>?ytK6!FWKd_+0+v(L@1^m!4DD(zgG{KF+&o1!kIZUcTiK+5cB-kT@a zU%35B(4eZ*^zPo&&bfeEtQg!-hn+_Mi`PT+Qd=P9r3UqS3v}+N@;&P_&BgJR{fruKlSo@Px*HT zbN0>0gsM(+@jFwp&)uU&-TQ0bRz!zSro*clQ8^A@4d=%A!*%F6eu?s77vGC#9Fa8= zeu=_l&|^-C-}Jfn& zX>hDAat0y|`Mpwh4K;3ynhCc+!RE!y1YD#iC}ri7WcTcqJ|Ungi%bnsia|ZyDTLp; zH;R2Xcd1-&vIzuX!^D(BUGL1Qe`>Yv;410V!VWrO!fmx_Fe0YNnlLvex@c>vd-J99 z(}+Ci=SLxaae{EAH>4oLRpW^IiH9ezk{$n0N6_&LVEIp)b8l5mS5j|d)? zS(feYb1A1zzT`5cGbUYxG9bsQY`Grh4@9+dl4h=#t4dRRcM4IiQd^Ei6z*GEoeY-mW{IueRr^08}Lrv^PvJ8`XdnqVdJbta#D9G@apE2P||00JLr`P1&7F_`* zruUKAQ@1r-42M=Wz3!GyZU43NXyI&k3p&(*?UrQflzlZ2eU=@BO&q)3t4EHLRaK>X zDeCCMzFAk6UmCgONDhv)oBlO-K67nOdLXmEl)NIR37kSXJ55@{#n=j@vhaA;1S`|c z$%#ZnRp1JZ^BTlO-(&fSF3fWYKwFfg3zLpkm|b1ml!~m-S$OOQ=M84Nbz;Vk?cN`- zj%F1-vx{t5_Q9r{F-t`9a8m>6bE_JavA903dh4d#Fk%^ zKG8$e3X8X&s);Q{1I@Q)2vl%IzYlX_gdRIQAg zc1Gctz2vB-p$wL#11I%~z8AlRSsmq#A^&-c?*c~Y`lcMcIK;5%V3YV#cj$&FVFI9k z)F<96jsW`0VK~Kvk&t(pt!*fZllF{SX40CNifZX%EkRW>m(7SlcEU14(5?&U%1@}z zV@Wp_)n!7H%b!7mGt5WXXHNoFbl;UM}>&Pd=GjH@E72S-EG(v7m+teB2 zG^%sU)}ep#I-I%p$LJB5eb6@X-j}Lu!}2=9i%tZh$XEjj)3My~G0_(&ni-?#kXNT= z!WDot+(^`j=+a{`Y^e98tNGWdu~aI&*s-dgRxnx$|2Y{b_ za5d}jrXm3jTh!Wh{Lq|Sz~LKnf%Gin7;!q&Kv1LPX)cn!Jv!Y?vB#b93d>I9F3`C1 zVccvjoJ%M2ngx+qLQxm9E$Nt`I|&(duq_ZJftwTvc${EYdcX(FRkrkGib@iCc zOiFhnQ*?$j$hcCCZK`V5?(M`F|5nC$G1-@qlH_naW?W)bAvadY+B*k~)&c3LzO&?+ za3%@$tIur2>9@~_dZcT_n}&f%0m@CK7djL^rIATt6A^{kWDx-}rrinFu{o|G782b+ z#d+;BuH9;LD_Q#!F}a~!-A4UB?hw_kh{YGFfLat2PC@2%5K*Yb&RM19SBJspR=FL~ zOsR-*#P~PERmfLT!RlzltJI*QsPJwv9H`b!q7xnvqg|k>)H07`<}qb9s@HzvB#t%- zGua^30AZ%!UDlkA#FP5>mXyjO8uWRrld@)WZ9Lzp0&xMY#a^QP4E}N^!q{ft;Rz;nc!~bPy_gs%{xxGxKNJ?!4tW2_-ZuO~jz0aE0@ zCk$$92H{{4Zt*7OTOCXmbmxEny6POLsu8aoy7p17IQdEP_;PN}O1>aNcn_{eldw4m zW6C?TTd9y98bKD46v|&sglEJ(60#+evwvX_z_Ia(a9iL99xGso0Y5!)2I#7D&SS z@^UHUgG4TSGCDh%q9N4Wd%O=#wdbZcYb|g5kxFj zS!hy_65!|$4p655Zoqsklbu%co#NEur^C}X zE}7$~duRAGy2gc9{oIJW0-+2H!qU^U6IsHf9>&bo$pml3Zx-p2PpDLu7|c>CEQ_tY z*VUmP8RfSs>2X8Ic+QYyiTmPW^Wck+;82}nDoFDS^woQHkEy`hzBrwk7<9Y;^!%e& zj+@Mnr7BJ~Zt#BK{`&@@_$RTxHo|v+Q~+tOK3v~&@II{nEE4-bO^BdDpSX~WNH?o& zxPSZwvFbNZYUZ|ad6>{lRZSu(sHLTIpXS>jU1tbgvKP(J??vEKr3AE02J9oNZg(@6 z_KgyX3E;P?b)y1JnLEHv*8~XYmhAe^8W8Qo1#3k=zQf;MnVPYL>?Ou+|FzX+pZmh= zY~DI9LkmCI;OUfRIHHrH7GD}&@pB|^4H4WyW^Y)h+PRHk6JT-KFs|rvGwep}&<#J7ZJozg6IFwh4|n zK^+e&pI1^j$#tA%eL>+S7An{36|vBWLt<&SL)D8Q-~q3suFGY&UkGmF%eR#+peUD* zBBMWon*>^9n@Er9zt|X3A!(m3rMi2G7Jf{*5?xUSTV&}Y#d%O(7(g7}M)tTtsSi-i z8|CZyh~xhBSlpizcJZ38cz_-){#rLb?MS=%HMl_))|$g`h=AhMP(wTVcY;a-lR2h& z>*GUe^($+_>LgIf-B$<~f~`DW9ZMdHIudKIcfZJie5&<9`WSn>H9l{hTEj_ofY15R zYFq64SPhNkOVYWnjiHVD^#vH0c55t>C<1Py$jbMK0aujap6fWk&0% zV#gMKJid0!NT0CSCD1UWgGS;em9yo}W+@ul*UzC{4oItFrzAlo<)^Lh@$R}!LKq*v z`hGGC@@6P z02tKP^aWn%BSK%Z0kXPQ-k<%>RuS7Y4*I6y#^JPpO+{cJS#6haz=bDqYB@Watk_zf z66X=+nqj_hDNg5=ei1iA73KKM5${vNjN)PoX&v5c4cNIw^G$*$gxV?$c@H|gx7YLPk;sD8p@-D=0Q+gBR}pMOKmi#$2f z5()UNoB}uiR42&OaWIV2kvySU#H{V*Hc6=gnE#$QDPI&#E9qX9$MJ6kYbqURP=Ap$ z1P?21l%*5i-CO-h+Xz?_z3%?ecZ=fQ42Y4pD3uf(QKYFG@X(_75dn-R$6VlMSa+)8RcHR@5(VwzKkwc;uV69Vd!y+x(#hyUo}qx}!33 z)(QWS-mem9lP1hb$L|-F?`Is#LxrQSdRY!4u(C(@vkz}!C z9(VBTczzo?tMYp9qchZ$T##vbs@-(@b8?*gL`R+{gI;WIlBc;G?56ZSCiwV?s%_1K zQ)10`_n(fKwo!O#@zrEut2V=~?yMwIlq*DD0A;?@2BlE%xMWP#{_eso@Bab}t;Fg6 zr(UqHNnl{Tl-dsh+8Fd}v=beM_~>B66;B3s*vtHr@8r_VXvE`NFd7^%_$;4)Cm>>u z6nWa6*6++|)kBpGv-_#2`ohY*zd=8|qSSKcc)01<%mCKkYe|bDEafs?C@hbHM@bN_ z6gp5-hfE0o90q4Vv-0ONZ19Lb}>@{~W+ykU6G( zHlWzJ#=C9qpLbj6r{0=@bf_)mJpF)_F{i2=n1AT{*#ATf&;jOlLyFuM~D^z)Bmg*1P(X1o@2tWa9Kk~mVWp5IARV|8p ztE_ub82IO~p}(RKD(b=ug0d(9f(^9Eo!q()Plkh4y2&?B|L1(WpE1^aSS4VW>1I`t z_Lvfu=!~Ml%bd1SQKv_i?d~e2{dT?Z`El&$75eF)nRj3$@QI`cVEQ;uz8`1|e0I#D z)}mHnlFiPe1-4cMqp;Ddg0&-QpCq4hs7iK1#GW%>dbz$3dlk3c1vE+Y{xJHByF>i0VmR8yFZsUTjKV*{K^c-D ztPy5Yg<(*hRG{Oa8{Qa2a2Dn2ohNuood-t62m|5}eJ7Bql1y6Ltf-m{9hPoXtXP|Dq&SLU8wAaE|T;<{K-I_qj!tguw@*)Q3D{NkRd>w1UyYyNIH*msf78+M?LPpQS~uZ4E$(?bAug;pqo*UghRc&gjl*y zcNz=j!)W)w)LPSZWfzgy_J1740#(X%gb2EG8`*Y_GV>cv3@cZ^tkehQB+ICkgBZ0- z`pjtt&#do1X&JcxItQ!T8dWB=1=b58C~omWpn`dJn+-|}P+6-2{lmYOE#A$YN?k`N z+#pR=xxnW}EKabaqjVxAqys*N9g7by@6!D$Mf+u%$F?UR{W-S!nN;1}4wzPWl=Sa1BTi}Rr(m;) zD7c+r4kFoAVvN818}Vbh1c+l-XVw2!-xVJrCxj%~+;xiJUF5oaB&pBr?><~WINFP= zxG-2pRFH5}^CEWm2U<@+YOaS$Sg$)Lb_&^t7)aJpDfZoM+tGgljL>_x6ZdP`K6~@6 zOLo!_2C;Dda0Uo{Ql10VaO0Z5V#~0B5I2e~mK88Bb*V6}n0ef(<~QA#ysMFN3T|wl z;?0yeF68y!PIMiTxcGdQVT3w5lXSe)K5s?OvA)EO+$c$R_&AOL@Vyjk`}>OHJz*-H zOpaow-2%sAPN7}Z{i2`c9ZuH{!N<_&c(a+ZvXnS2jL;nwo|Iv~Wtbx5)a;#@DHcFn zrEwk?94jCWZFYmAqbjySuU{nu&{i&-r49LQco|$&jA=JKTlPD=OuO@FO7Tn2P00E> zuE0d=SRQ+gtq@su=lb`WyJeS+byJka;n}+g!SF>BnD#=s!Jg5@BUf*57MZ@g{ewg% z2tXv@CPIQ$MvCM&?PT$$d8rA|Mv|meJrzfqiex9n|5Y&(yX7R7Ko66ig>2qY5&Nfz5PN^mLus&Gnkr{Q_jelUm0xybThnubE{XKTR~k4lj_w}{G# zM0RzdDMmRiErRj)gfj8wL3MyWw0_-p0)z0ObprPMc0GW!<9lTN6Kfzqd0TC76Cpe3~asgjFAgJ9faaZt7 z(Lwch`}KwwR;)Ks4rCQm-A?xV_#Wd7zUBl`Bu#q^U)Vi=rU*u*n!oo+pmXxTK1qIA zVZwHB6x;=4YbJUlT=F*~Vla#6n_op>=OdMK&I`}-*&!a^P<;9br>rwJPRlkm+Oc;% zqSZ>`fYSb$Lk;jD5tJbaBvWB=-@;kZa>BAtoHfO4LcFk9&5NTe)I=Co9R)XJ@fyS& zF!wU>oDuI`DgFkMK1jJ)ksb9~CmL@z)*OI`xBw(`w3Q zb4~c&jgmaj5waYObj(h3PtcZ&Ek|vE>GluIaL4w$^JesOlz-C;yE3EO#mc4^9n94e z(WM~f@r9=uh)uj z`_-WPb!X8ct;cjQ(;5&W#DmMmkfic^q%#&iUx2B~qxzU#>RWnAX`Sib4KeA+W7 zMq%i+awSjeJ}$MJxpv%tbwxguAwJg+l=f7Z3E&?1=*P1Q$l;v1T4>q`uKatv-i@X8 zJ0>oB-aN&?V33ULt7tWI_+xlXq|ZpXeMOkjttnKT5cX5`5+(eJM%qwE_ z&%kG{Y3*~gt7eB;kBU%KFH@|zN=EDMMBN*d&rs<_6qr9iY{7&7nf1(|Pojvj2Vgh` zmW`lGWfbgRgEEeLE*P%0NY{ToMdv+^$ktd*gae(VGT`3tq02M&PGxvc8dVMuB%{51sp?4v#^Iz^1mVY-@|`Xk*A?GWL3^!qiOH>l~m#WQ&qhMUohJ zG9=0@iz-S^`4;A$4oN-i@%pXcKNL9biy?kr`iFnJs;!EehdhVVyeP`W-dy)l zbXOd8%Q>FEj;A3gud$w3Aqrf&ADz5g_ZEk0^uKiHF&(Zq_Y_+WZ1=^{Pc8a3?npd4=-N*=z#OxpvB6hdjJyQ~H z!wb3gsd&&x^|*W#I~M9m(4oGUNzT-ug3qSsHNzq;o;r+1R%ihDDo3w8#069A*&c4M zFv>u}Tk=0G_8x_5G>jFW_VIB5r3PZ{Zldm6FUAIpumN6TQ~{^v+9GsqCfqm2FC2Hq zOX~Zsew&uQXzb{`QA2a(I_&xXz#z!Ya%FUdBWq*&`v)@Jz}VueoeQZ%>1XGQrpYk3A~;VkJ<~& z4X|pz3S32P*>7=XjJA(U;*Z3Yt1a-{Kzvc0-jjluo(gPbi)!uIHzM+I+n+|J)UfVji z<4oT5KE@>z&Q~n4$@fuXQRSgsM8Xxj=_}&h(Y$6qVbry2^v;8?rjC9?(bwd>Vp;s` zVqz(J<64)lZ*c%apS$eFX+ZwhRcjERpO+EJkJ={gR@2Hznz2pA5L(??YH>tUXs{2` z@TAkZ8t&i2ODwvT!!$7&8g}YG=$Y*zg>adP)+%j#4w7a?tgdvmAlh3c!cuzJv%ENOKtmepR4>50VEV<6eF^c8aTf5XK3A(a$UaO@IdRU zPWFCf9+tEr7MpLK2<4wAc3bGe#D`(p8JG{*9c|O6c{P<9*XkH2pEl5%^s*0c&&BS@ zKK{~Ww{XnEqY%usDHG{3WXB6TluRT^LfGq$U;tz-z#A_1ULxNna*T#Z?u%s8Y~5TM zl6deP2RE_U`UNCX8W%ZFk#tL*nMFDeIn*2KQ20e*qmo zJz7kxx1ES&au%*@nqKIa^Ol}((}pgrPhI2apzFwT@G#nISR3NquSEUv>63jQf`Z%a8&h8^V` z9;|?(3rdtEXN9ENZ(6L>zmxXbW3} zuncP@@J>CW8P1k<44Blhyi-y=2qz;6y++Ebrj_81@!s)5&I_-Hd{v7J8^nnxD2rh@gW@sRmn z60f3PI=MjW-R-ck!ci;0uzrT{I#nIvfUt0`NKV%il&L282h48zPuq8?42zy$UJcQ* z2qA528b`&ywi@N7A)MJ*E$A{oCZkuYl^s6;+I^TNp8%zJK}qu%oL5H=QotY4*26a2 z=Z}69fWljqH|4L5LmnL~PyoOy`u}#U0RQu-0RG3ZqVG~{@!!?|%dsL2_}`9|y;j^* zbDd8))bToLpORj^)c7F%LG4k}R(Axlyv?zGq6d5{lU+fZW&ewtC@827D##|NtxX6W z`HrD_MMB1Ew$+n>0mjAx;^&(2*w9sPu*1D}moDywCl{)QS~nLP;-ADr#9VuHeU*Ln zclQM5U6ZvmHIqF?kvMx%9mgUV%`rm`hiD&5kcV8*lj+C8@2;^WC-J>-_5bdOCZ8r6H1DNi|LR={3qFzg95M*gu$ z)05CXb_V;OZf*bnyCo%`xOfy}+gYe15C}yuF|Dqs(^1FM%L0%Tf?<$2EtJa5iBCQ8 zduz@!DAHgt$@~M6;&jhqxq+g542_QH$`{gPqL|q*7>QW*$F1hq8&0*<4X+0g&F}qv zU&B=z2TvTDt~Lr~bC*^bWfQ8t`OnHpUCjucgg)gC^C;*TZFv5Qi-&uG>B}K?;mun~ z-hxBYqpbKL0x?UFqtVwxLVQ+mw4CXYT98=YcQM%wWbtly&VH=lr!`)=wimOZ5 z^JE5Af-$R#K4;M;GszS2?$6YCvPo6y?d87XpasUhYHd4BLi*S9r zvFWS&=86@n;ETAe{gMJJ#ezaL_u^x^F!ubSsLY_M^^+&4z87Z?-|}wM3SnycQc{R~ zi|O<4EDHQx2dFMCrR)}!#Y^H8*Wz!4nQlkIz0gsoTvD%r;Q6PQ6sBc?&kH1evF5~%itkeNI2nguolauZuI8zH#lCQhV2A;Y6;%}F z^OIBBEv8P&4~gNo$CT)Kh5}8Qw$Y&g~Emb|8rbOE$qpsinMK6;mZCfLtsqvd%*V zI;x2J`j8#-H+~WSJ@i)7=^BabCJK%$;B5Brzbap7Hlzq%mXZ(hG6dCJc<$`+37P)~ zn<9dnwf8e4hqJA>mrnOn|7gG6`21ZuiOFtS|NXTq;&Xkq@Aj@ocIC|iLOw>E_Z--s z_19xq`9E+~_K^<%l%#o3@IBx2My!NJoI5N2s4a}Wj8<7YFMmT%M6WMmeUU|KNSgkiHh6a?PxUb`c07f%fW_vX{gM9z^;GA~zWzQ|m<9$wCJ3yhq<=Km z>^U@qwSM57p~&-cX|L9KrA>S?qMm;WtC zB>mVoa*3bWbgIn@K6Cbpo{Qd=TwVu-Jwk!j+qGUCds5Z=Qpqv5-qKK7sL4=PL|9Fr z_nymY9)s!-VOERy*|-;m)5SrR7>$l6*y#4ZQ2ZCWtr3YGtgb3j$mNC6nLAC_(-elQcsUrZs%&2|OC`5YT(7Z33%1K)+gWpPBn`zRn>%J67D z=cng@(0^|}LF{#_AKK_!%C-M|EThrFi?XKJJFlXCA>iiY z?eZq$qYvubmuZ@I?JC^#EYb3p>JoA&SU52JfI8;hbR_B`)9<8@V$lUL2!Hy_BO?FE zwyyKZ>2%OBSI4M}{?=T3;KN7sned-0DH{K~!;y=?`l~S~zdB<}aHYs;KuYoXx0U%N ztSCS1!R7J}+WMs`w=rd5?uD~*&*)uD)O1H6SVV9o*)8`eXe|afV z=$@dCmN4%9*M#K*Y}XW@9~R{EJz{g2jo_s6y9BUZ=tSUiXHUgtGID*(;ZL8pJYa5R z4wc7nNDe(4S8wEN*dK~^4j3(~pZ^#_?f+tWWOIeGlBk{W$Ps5&@p(IEzvFj;7RD2m z+5ZF3zC9+)hjZW@seAEgJTB}^7kD4VxfUwX?PiD6e4N<15fXW{%?1OoTaDu zR}i4c&Y?+FO|PDUD8DFp3W$R(&RY41dY4>2f+HoT)UQr_-*LDjGn5qX*5qZ-E6c&5 z=B%>qz33#Ryoc4sbr~t)t%p}uYq4(w6xXDp{XVS0YJ;9Y7cn~wKF2QzXfDqH4+-h6 z9OAuKy8Dhh`q`Zc<|t4!syly|k_tnsV9|40ik{)}izEeiRZ*xU9YjjREg7S;;o2e5 ztrTcYyuE-e<*kE=tk;XWKJn*KOq8H6AdIz!5ae$8yMHF(L>f4HYpUDC{@?4?X`^E* zPRF!V35QECgHZfCyQ8BiSo?^)TUW*#Pv8>G?-nVmfhmzE?+?gMU8nfmEe3iPD+6^0 zW)!-lAso%C?v{x9H!#m|9!K6L#;;m(ZO=K{InZfRTRjs)$+6i0lEdD}f5%7KpxEy> z!&Rxtbk7p}c_LYs7qxMIsgNnvl`)EGO92&bC1~V%x56m+42L@z?bL{M^t?_|WE)@veK zK!wxz+TGSu5MOBA0PYx2hjV0`L_R;X@Z>dS%+L(`lF1PazW|e*0 z9Sa8@^9uKv}Uo|e*(0vTfFA9%>O9%#oPS~0Piu3OSA>E9Jz{KGhDX-w?dY>5-P zCdQ|Ra}#Nh3$~;2;dpRnN;7$53a3Zcsps~nBCkOcw*z=}8Wg@~%$#b>%J0_y+CEo+ zJ2yL_DNPf#m0B|9F+=YC8XeD=GlIOC-;}hCxgY;kMlkXZ`9YPPFDZaB5tOzuu+qUL=0&4384TXH;(%nJ5+u4K`?*h#diFCv+X7AP> zdXRu#|0}JNIs}Z5>oJnhi!)&u4iP3X!$IC$;hM2#d999095~005?@Qd&Q@|lr^|?3 z$Ji`9{|b(#{HVg{T_HnoY5fG0^+eT9k}1pK_GYWM;vYMPCwtwe*<>I?@_pm6>!?wb z!sWdznCO50`K7NC$-in>P<*lZp zl>x6l1Av7|=I;(XHzNd?Nh+zAzrJ^3AYuDe9;15mS0EFP%#>h3NKo4oRr55*in^HuMo)E)`=%BlZDz2Qk&~1kK=U#dvRUsc zO(ZvBM5K0X*z-UFE`6X~0^e>>hAP%fYyJ_I0Q@hGuEMRUwv7))N`ulVNGKr#VZbO6 z5J^Sp6vjZhLq>{-bT^|Em6VRr-OU&XQlkdQC~3dF-#>89bv@@fcm3k7@_P&90;1%F zaZ+f*KIim5va}SpM!I0iu?Svl^Gek?DTY3(zbTi|HkAAz=zJy^j6r z{0<zdVd$Tl~ChlyZK#(!zwp_vSeKZ_e%+~SS8(eA-AKLxiaRL!^ouB*b#(Uo|10R*V zMluG~EsI7So|crbPpFcF_{?Zj;;`D$X!g|@Jq94 z@qvx`q+i%D>A55>KXBQiCmQN>)`^aOwdf(ynSUsXOxA%!`KltIGiI+N8>%@jU$os` zV%O`e8cHaNOq*t>7u9H21P7coFZUJCI! z#+|IzNspaomW4^c%>{(uN!-vo7kT8 zvXiIrl1tY>B-f{J2RGskfzY4-%y1)WxMk;Qh4(wl#pU#e6`cnX!q+<=)OSPFmBM^R zzPJVDy^fUwX#VQj%+i4j`p1(2elx)z1V21NsNb#+{A2dlpRywfsVVILefJ_Wk&Da! zE}hJ7vN3Z*&s!PHjDDI94ix?pOCq9$DGfZx|qviY8#>SmT~gTnDgqgw~LI7{qYn*$OoSk zJlwUm`jwx9N&H&`t~vv!)Gzy~LyGPnn=J>jL&M}i=8kVoV^mHemwx3nw)U&*xy08E z|2oQNgxd)JxE1f*3mE(-e-x4UPw+_Yz9oad%Jk$NfF)h)dE9_*^mT%Ryhj4~VU^YV z)BPyV?+h2jW|SKT3~Q%o_kfjb)34~ohu3RlPJemR??y+^*m}5+6cxcYGXpB_7I_Nu z<%BsU6d`QGxS~woBELKQJz9|?TNI`3F`K$&(D}rrw9kV45zFBSAu!sUyVc4Z*MBQ` zyZ-o?x3EE-pBX8Aw4cb7CxzFnbDLoOZw!eQP%q9txpT8C1W^yf3lG6+jI<*C^)-pe zNTj$rE3H2FA?q~VFc5>_4f{o&lI^!LQ z&QS#k>JtXm^`3hFziu&pF9*^BHOPwkvZ7xvu#tW{l9Aq&9*D$`Q7_c>Ro&_p|5D<( zm^Y(=x5gWaQP%|n6q*zi0O9S79*H98Z{~}Z`-(guI_HX>FssRJzOL%lg?sHOiyXk# zXxHuD>F~%Vi;kzbSfy+(N-*o8ZIKuuG%=*6qox~XwpH>6w>mQQuZhH!;-Ppt(UbZs zrzn}VY0FE5#QHil`IcBHcVAJE(DqkvcfWk=I3K#Ix7oVc>$SMLBbD>K zqsMZh%#X*P1u5HFNF8ks1hZV!B%)I1h(i3?{4uG9ZIWK?Vn?lz<~Lii64EmQU*`G4 z7$3!RN(PJCC@HnRtU(u+9ikC`U4ABTShvb`EcwTtm#FeH@d#k;5ps9SjL=O^I}t=UFh>e7GUMyC~*cWwB?b z%TP3i`LNTf;7F+Cs+nq~HHUgu@~3x09IPW4-CR-oYG2r6 z^@DR!W%paXpOMbHXts+UdG{A?Q!7ZE)!_=4oq!&rnsCaw;jKg_-)jEMl^Fa!fqXL) zyLvpa@)4QtmCmQ*4nKd}#7INNXSIXG+3^7}G=Z0cY+js)A*Ag3TmMcFJ&m-#wgvvk zoybPobb>!g)Q^ZOTe*(>^xAAF6Y2wP439mux?l=LTtsl*`7&laXOXv_0cM3{DB|G? zXho5^@^6NcBHW|)YSRMh1urYV(B!5W9D093ck|v=O>K!6_icXveA7WUN%X}`esB%w zxGRD<#D1iAvZ8iEq@^V>`Ksq^*cu-M3?d1w|Ir<4% z4EaaW51pSVZ>c{4`90+`Y=XeO6}BrU_Aj}x&9ydU5(nYBNK9tXcv1%MrPk638|0M( z_qiLjqGI%D+Flo-lH_)^HLt@j4@x5Ce4?=J4$xSq6&=gIS*h~G9(Mvt6X!AVsG_k@ zOTmZPmI*-dMeEswTPDbur#nRK&m&H=<&77)+dt)2?(!_pyo$Sv6hoxac5|G@HGI01 zkL1e1Qu%P^6ulBdD->yP*eyKcCn(U=CmG0CA#;i!m-~a9Wb*v{HePW-7|s?KeQK;L z1$0ic{rBOFWxyy~=&!~A-8Sb@LZmQ!mBP}fdG#aP5ExWhZ}?pC`Hc1$bnBwW`pa(0 z1!nEg?V5wanhr+UWkGO0GohfIcYN;gQmp=RZ^d2=efiVIXXH2_rB8ONiCQ77tKZ^z z{YxaR-0g%SdoZ}de@d-X($CQQ+h2Y$VZgK4Km(x?%xZo-q4Kjo^kly{#koa=?_oi} z4pD$9k|RChEp14@Qm4vzjEGZrB)_ea^!=AiLMpgb<`{l1SxLq_iz*;4U_m^X#5p%* zLOs1hxi8IF9$Sy(G+Hb?fT+h+hK4i|AZBR%*a!av|GN@1f4^U+i87ODTpHc6;2^V? zyYX~!paJW#vs`>xCa%~$QcfkKj}!O)3>#?FBk|Y}sKOQVq9DxiZREyt4pWmCkq9L= zqr&!=zwdd;SA*cCEQ2ENzS;MD;VmVPBCwHGvQZD^W(+70*E=+cqRwKb^dVrMB`4G( zWT0A79;X1bv9KKqZl&zQF3TEyBDS}h>jV&IX_47$Jj@Gj2TfaP>G0~qmW2>M1i9Lwxurk!vP8oOvpo`zxLsV<|1-R3Qs_6F$oYMi4y zrnh!)wH}H+1XKYkqDUsUUxt65R|^NZO`g+}6&4Mfu|Oxthz|K5Fj8`*asT*_1A{Sy zA|EixvcP$~WuMOzrQ5wP*8btiO2g*;16w!JwJCpLYmZc#PPd;rFeucGp<+t+`*-bj z{W(a)wf$W{X>8p{z|aB{qv_;axHu`1ETiPOOV3t-=HmhHNxO3}g=6S%GB??cQ(F6j zg(}^HEOmeMEu`^=_AL++-wL(2-Ab#MuyndG&OUK|)kW<&?lJ&Wniwkl929qvxX)Z2 zjXvb?0bpO?6Wrv5W6^YjnxjsgYOKQJj3Om~qO5`sJfzcU$C^P_ouYn7n33}Vv;$7{ zBwWKTVPqR@zh-{s{I^W+YC8%@pMCCK;HPj=SdE7pNN!5Ex|F=G>o@ znQ!{VGS)#i)|23$`o-b}~p2Cgw& zY+eciHZGmP33om6rc)>)#QlaTNy3M^d=sjv+zTJ5>#|4nKIOI|B%>7Owql(xv}?Uv zD>8FXHlgr6a((Rt+DXHa5%KiB%>8-Mu-7i}m$h4Qau-!B z?;Z(8Z-A|t+a30(Ca8}4<4xuP@DQml`%fBbvu8s-J)yGlooFd>)QJsaKg@Zm-#S}< zZTe*L!Z2{yJ*67v{({Kp3j#q3p3d)KwLiX1+0*Y#8U^{=vq*W=U}_ z*`{BlB^)<$Ep(;B605r8+n0*tt7#eTH0bvdPV}}2O&N`;ThGNRrH_~;s|PPxmX{;%;8{{Tm=j;RA7)>jIcn zE3BX7ELtiHc)s%%J?@S4fGRPcWHi!~brqzsKzJ*G#heq$T_33rxMjcVlvQu@B-cn< zrwhaRJWmLB_k^YPt;36{w#$27BD4^x&Vw9|l9vG+0AC5hK65G;0-xAKc;vWAM*&$a z34Pz#1@RiPH|Wm9!T@b%&gx5knfMVQ@1}}^NBTtTx}`Df*sv#r>~lrQB=4&@KP(iM z$rm6g!+rO&mrwXBnljC-=I~cBM*v_n$=WS`o-U*3n4w%%<1SFNQaBBan}jjbkuT{JfO+Lq)6^*Rj#~mq2gFRs-XH*pjuF?Tc`r7%A9^dM67( z{#Nv8_CNDL)4vnA@nvPJIl#ou^$9osu?OAKG&%pxbx9S@{*#BuVi5zOAabfl$2YO?-v zT2QmpI!`X#D~$(`Q0$#rqxCZ5kkpjj3A|RLSwN*6Ez$f6H9%mdIA@+ca#9d$Qk-J5 zf7}LOJU_qB^<3XFT4CjDI~>^Y4XDweX1IpD@(|q5gn(4_+Ym85i8*8IBTJtuM5~-zy5MG zKV`wu(6X(%SGFuZv5BK(Q3>nV|5?Ke(0Xxd#=TfLD^(rSSe53SS|beh9F2g*UG7PS zsXeU|ev1mD?MqM$n`lm|KJt_y1keziMl-Y8cQ_DOl}k&-JpatKXT}ikv&_li;sV@O z;-ozNAY$<~Dl)g4_mi?1iu5ggS|$;DDK*jbZt;OI(4|^oSR}(6<5={CCjR|uUfZ`C z;JSrD&XoTnZ`7f{Tuk(OX8-dnJ((dH&GBYz=g(1O_40tzRk#`iJwaz^t8HGO-_y%I-|+~q((5ycU@ z6*6;BTx&A5R%gH4#f#R3Mhp>1#7g0o!;VH9iG}0L#(nx(*a&(3QF)CWtSWn8xws~$ zU{gtdmivaon;x66W^bTO`_?x_(tb_%{Q7sFUKzfskLIEwz-e|wjV*o2 z-bv2OFxuCiGm4Ji5XGASn%W#ym_M5Os)gk<8JO|#cT41ef|Lh!1=ZW6D@RWc0DY{qmBhUF zQ~MblzQtv+p;X5~PbxUPBaEpt$rK>bdKENo8}Wk=neNDlSgD6_dRgUyv}J6IDIDc@ zBT!+xi??N_%lB*Pechi13s9+9N$PZ8xQ|GTfK5`q%&uqnuRVo2nh%q}*%7?Aht1Eb z)K67C4Yw@bKi$_GYrJOl8T6WP{hYpWNUMkFAvA4SiOj;11Ikm`_RX8v7mEgq&kDjR zv1Uy6=;{g{_M7Vr(?~6|jY$sR0Xug|T3nuyd5|4LQv&dQONk}YZua|VtT3#Ru4XLnzDe5uH;t1tt>AjT*%xjvp|a1*n|ERE zrztf(5A9b`YWUC=4w@WPsYw2P56~xzwznVUO0{vfRDdY5%IK;DKP$AMe%q%`crOWR zZCugAe2548NQUJ|v^GI<1Qm2WJ6+FJ*@P7;S>_oFy3#`Vys;o8V{Gqe<*#!Ln`@qs zrR>vlux<=5_M@0GF4HgBM({(P`|w1uZn!b&uMeEZ<0A4pTn-Fz(Urv)%~Xhg+5_KSXzyhrSMLP;PO z7KlwydYtp?<@;(8x8!7z6wzA6U89d;+BtwKu{?p_@7I>U$gNrDzmDCE6Jzd1Zf%^u zbGcrZKE3ux5|`NObQ8v4KptbT@*5O%o*Y&EyTleb(Hq&qZ7ImrC_1QboJ?q?E zDoW*&LS&Nu<$wuLj)M)5o^rSYbMA0}(Xz^A&Tt4f#2Sq?vy7jC%v&kL5kLaEpc6J= z1>HBXXH36r&5s=Opc^J&pOv4-VA|6qX4hC5EGMjY7_@cSg{Dr8L0id zc~oQBHz00n)+0eQjuB4BRfHr!!3)Xgvq`2Sc+20*S)|%;*)s+y|kc0$C?t&DZR_}9D8Fdef41#k#@+I=1Cg;M{yZvE;?c$#V zE%SH|=L*JYt&&ys5qFe|Vr{YahH9vxf{S8q8(?DV(BET!0BfrBS8G3xmQxwhsh`nq zXFc(XpY2%;qYR57MX59M>ZBflL34chexk7Ez&^R*PjZ&aQ&^9{eXqJA=HDL_#T7^Z zj{T^kqwm8*<)O(g_!FrhLwEKXisCgoj&E1K2KA40mOHsT7nfVDB0OMBp$K1%!OZb2 zD!OvqUtc3=DDTqJr?wayvSqCXw`a!ZExRx7W0GG5{!MTsY@&8zkN$olPPnt2ycP>~ zKiT?A+pr9A3+nH4|MD*`%0_6^g9-x^j1y-1*p%Bp9^iiaZMY~%I5mlui}?E0^WZ9R z&8#;;S^MCDIRd~vxLejGb8s4m65>wUKOEOTTwgyPU6NK4!8mjiEgji|Uj3E7?Tum9Iv3;-0EA-t@ zo<9-p5elBkyf0N9`-?AkBpS;HA+jx8Eei5l8L9|{`vOXfBpxRYvseb~J6gUs)v~CJ z4D~1hwS7&!$207+YD}CdED#^XsUsDdzei?t*DUsoj9~2Th?HP9{x`(Cx{(9GiV1-$ zV_=a_5#tb#XAqoiTL|Qw%D>{h35RLg__^w4>lORy-?T@2t0A~OMU)C;mx8J)CKEp7 z$C<1(4h|Sd{JBLP?;Jc~kg=5j+fO^ini$0&>u(iH#{T}2eM;DV{G+sD7h`FD27;$? zgan{hd)0v~mCxdE@*Y&`(*}hS)E?2lRkIB%hb^Kxy<=Yoa;MuT<>`h4VS9zPx9u=r}f(TbwwJS>Qde{ zHJ9ncphml;2{3AF!A)g&S>)|21Ry^-KIP+cCXUFaFjeh$REK))3=N?3PL(HtkWdYpL)}A;Pe@_-*^8`|4^XIwB?_p0&fZLVdf<(rvidHu7(n6%iAd{uNP3+1?8I zDik?D56E~<%9N3uOeC^yY{v*$9Pmr0T1{hZc4Cm9TBPDquxLXbq8ql5!8e_5xcE89;_ACD{BvZ;9z#MX?b#Fa4Ld48 z9qt#IUrM^oeX*_2mxT=Bs~b?HuDtmXb(N24{o9FQSIRDNbwx$Hf}d>Mv{j$nO_J+t zotGvCkyAO`9ZViF(oo!6pwVGS;6Y9&M4Yf^kWOp$I5YuBx_+OhbLDxn8f{D1QF-^o zBSbZ;?8kk&w80-?Kao#pw@g*oY4_AGK(0B}6Mw^i-3l#=3!}_9xcsH-zYvy&apXcS zRy2l!T$bG2lZTHLiZO{(Oo`_&x9H)Ry3=t`I3;O1ecr@jUOi#6H+LhRV1^PV$oDyO zA~m~x5qKB(qAl)eILmc;+O7|}FUz7Xn_KVlu6h$a+1pat0GiOPN*UU3e+Y{y$6g-& zXUFZ&mr+89Cf+7fVkeTb^#KU$d*NX!7@q>;tFX?{&PP9l`bDJ|7{9UNxTMe})wz)W5ZD6)L2FqE27M!2t6F z^U4KqMANN5FytOZdB%}PVAaY(zrxv1-<~iTbf=+JYl8BG9aGz~?7JJYcw~MPui$Ul z7~Y9(2AG11lAJs1iMA+&yMz#@ocaZ?F_b9M)xbXAUQt4mL?b}$>G4C+8bbm{l$}um z#;V`rbAc#wN|Hc5uZ_T;5*@es#^0TPR#f%x%Ze_zbB;6SNnu7(1C!y?XB`LJv?184 zBZ(fIjdJ=Dt?9pjvRYO1g{LI_0xMH<`N_0Gv0-+sQ<^_14C_A{w{6a1gtKub6`~Ec zC6nORihasquRw1Q>3ZU@cAW!3$K>7mm=3n};KOh(jG|F&mpDmOKFtjr0P$j+-4I3f#fp?$8sMgL_%zZ!t5@72t%D#1h=_qDj-m2L6w#Q z9-Fl_HhfgmwSA!KoatbHU3z`>Py|+S} z4$^KVgEUDOkOAmCskQD#44kcV`VaGCH&W4c^fLy_R*zZRN}kQcF>qK4#lG0TBQe)# z5=&SS%80y+&q6b3veqoPuVr^9$r_g!J|1V~g$j8zX-0-gV~pEN%utOMk$`NpZD_U? zJB2p!cZjXI(c9Jp_BqEV`1r1x!?Pk?IG$qbC?!$*Fv{};e#H2upbo-4s831mskadC zFf)NoS$AL*eQ4T;=b7Px_mH;|w3Xl4Of6hL()ZYI)+y+*Q(ZGjS+rrXtj2g#UlQxUG-JE3nSedu&g~BNh!@9@u zf3EawPYv6rDKQQl&O;;g0Ft7%`lDZ;UUt8w2z-#-Ko`}SA%$am>00l=_TkVY`)&0Q zg(k3~$vcCK{}q>c4nZWWG`gmWZN5D?7_CZ6$*j9EvP+1)6dD#A@xJ{@z5k9nVC=~K ztxh<&zyCt$7;yK-lPzA@%h^%ApNmtek8^F%CdVB+O3Ti&ub=m1w6KM)8f~|if7X7S z`v)m=s*D&J`|Wj7Eb&q24uF+Q|9M2zwb6#*V>FzBqg%t3aQyMM*QXXVTLMKkWqJOm8*}`<_jN1_M>3^G>gidvrN4j!>)C2G+?Ro9hXB- zUcXPa`_4OThkRpPMj!^TlLAVzR`KvogYr)AEDHc^zi8C(R4Q?jto(_m^ zl+ZqVHuL!yS*(Jp8zz6K!;6agM3#BRu5SnqRH~RDnW63GWmPl|+~DOJ{E+6k+LiP8 zd(#`rvtr^9C$3DVWBb+G=$UuHg&2y6B59^|Jt9K(k=ue~ob`lYT=;roq5uPBO7Df+ zW1w>1Plt+r;+wrg*#_^<>BR5d9l+w8TuxKlWT@@@te-aTHU^@&kb*+bGuz26V8dz# ze9$3nf^yy*#|yE!mgqN;t%-;?^(;<)rQr&+_LFx?Tmj4(JGYMEYV-&^Gp-^!;uR+e zD_uNc*NOqwUc20wf8CL2i?4RK606K_f58$qNuh~WWB3ne_*nhr$pXpR44AV7SiIM` zvfWaeACy#ecP;*`dHZlswuRt<-23`a4reG?9JL%#+~tb$F`;FK6*<+bzAxl;4*qnH z7f1ZK7LzvwaQx_sQ$Y!Y`}=u7NV9^W+LjTU@V%(~1cvG%lwTUK zKMw8jabG%`xlTiW$^g>WzY9cnw8Py?U7wIN+e6fi8!aC=sf6VFRU&X zBaw&wQ^+f^=h&pj>`^2~;*?BIXlAu87-Cirbn!qY$r~?lb<)|~DTMQ^nfq<>sJypV zT!e?cnt-fzvz4cRsBqA(plC9);6+A#Xxkt1F!ww72qK{A;RwOf$K!Zw03V{3XmS|= zl5ur0rcHH5oSpN1M~^3h8cKYKA~YB(I*Z6179q}A>S9=1NGyeoQT-pKxZPh**U7Sg zq3Z8#o#f86)n~Zyi zWDnQHKzXQjJ3xn9XO1O*m}mBDsrQ8m?Xp=cEBF1Ky?1&$PcHHIp!Gsq>C(g}z&<6S zi4ETr0F)Y2-!(&5Gj!O0R;)1?d3}Zq_t*$xZ3D}a)T|lNCUE)Yx^e~RE^l2QNtRc` zKc_GLg=0z`#44wCvu{Mhx)qJ3)~m1{bB?&g67z%C2?edizeulMF)v<^*NSJ&wU!}p zX`I)M87+!Ic7Ifq>X>g~+yh__Z+|V{1?v2rc@>H$@zu42{%{;jO9U#gXuO(ECfed9%m?;?lKliB;kC28FfM=2s8JkPl^iWME-JNhp? z@59NgdFCN>4Lz=;t2ye2#cLqsI!U9*n1(%XT+6ly+tlT5RW|4Dw&mT<({9Sh!s*Tc zLZv0zcgY4;$cwbnG%2UDCtgU$P+N<>eoDzZ_!Fd>d^!YT`IDr`dQu@i=nZ255~y40 zQjifrm_L}M^{SbV`ACfUWlR)|Ome{baf98a0giE(aO^}7SH|MBdXNP4Yh4|_UoH{* znQce9QoLd*qp9xob>G1i#8pMs0KeHg?3xCEC>gEiS=x0IIPd?V4i!5YJ z$=*qJ(p@u#a7Y2mLN%Rn45grQ>^k5_6#q9aJiob79v4{)UZpv!p-sRjPsy*P}6 z<$U+a>qO%P+32!+y3?6`{W@Hk#v4wia|Ln8>@g5||DRo@1cxV;-|7jKs?ij)tD$SE zI9{%c0d04_<_Cg=C2w^6RGqX3#L2_Q)p#Fp2lU|nBrFAQ7{Dx^Gw@Pm4wIakBSu|i&-k8`#;M+PrUo1EkHOJilZ zAs{(I3vo4WD|IDq`yB`UPn1!P6w3j{G3$=$9y)Wm4s5ZDW6gP@0V2}6{;l;bCyoK4 z{f%5PODCt@XS?scj|;HzhaijLxS?YbfWap!y0?<+*G{Ky*Bwwrb=qVO&rUr?^{=A7 zleMTw1k@4v#xgCl2hlSu6-ScSKXD1!^>oc!{7FP;A)SWc(PM;jjTRW9_uthQ z@sSJ?Z-f|&5>j01qii@b+wy;?*;Vhy#1qj^t-(x~^0e;OYL4B`G3~hRNsL2k_K3)c zem#B7XsTeNlpj*DuAk}Q&9>{|qCdJ=26Em_z8pIJ`9zx^m5M7P&1LuXarp#rGdo~0G&}d|SKISMR^vC09r!TT~8P2f4A8SOR zs%VEdiT%Rs#!}NubZ+ADBTIyY1Wb3}=1e721MW${GS#;NYH%1h_7M3niyW%sVpEr z%~Vep&U&9FzJxIvdxLD5IG}QnqjF)1o>d`~RpoOK}Hvt>*H zCNZT$s8DYBlJNK55oAC24b0#o0O{@(cRt}CGSIOy5A}Cgqyni$znFH?UT;{KoJu6& z>({}vD!r%1L%ap9rur(DQTIk()r&iNtyyy~+qCh|=9=+7CRNV zLTWaoW!E8J`nbE*|I4`p&}MssIAbE0ZYi&sQH*xt z=3D1=DBm@wb2h_Y=8jil|nqIBt+OTT25XrmjwkW=*Ke(nl%)NR+juwMVrLu zE?k)27{}kFwW>}uFT9?{9tG@<)q@m9?KJCE9nmijj)ui5+etq7ohiH3d<9u9u!1!K z-yVI7HD1jy3%p5-4E0OwG_oyCZ5g5tyEONhszKJaH5&&p1}1v@ptHWn_b2VC#i$S4 zMN18X$BGm+)GhWhX#QK_HBLjY1CxsPfKw?gzn;GX5V7(8!t65X5fQkp>9AP1r{{~O3i~h2PG#D8vbIA#Bj-3n+iZ-7RRN8sHe6RmG9moK zBEP#`2aimGaLsN3KaQ z19h?8`Jw<|X43<@_SCjhgo$~)U@M)4@x4#=-MA@4Y?&voGuM|@w8w01U#)8PmsRYn z$xA6la%lgerUTRE)~xuCJGS;>fd=*mU{kT;*FOe>}0Q4 z&(zyEU~aIM6%Tz@Vs<^!M*T#j%YRKdPd4x2bEog1*ykWgtjX(aCTG|bvlp&;8|%#G zV?#R8446mNDnD&hb4?`3uSqJcYzsIMRzg`ROK%xG6m!CXoOuromZE>a7#HETR|6aM z;|~$u(hTGKW9R?XRKbk7#>OFQK2C$0b^8~b^;ou>nje)Z)` zP(SO74B)jeG!C$|Hy?l@D{uLlMBkgAXw)-yE|vu_O`a|E-M^fI@=i-wH1MRC40_{C zPZ&i|sqRplzays-xr))Y?7_nd>FyYl+Rfw;ZRK)FD-p}|^mCCK8Xy!d>!4m>IwrXz zLgu{u8dZ=h+I($nU7wCK-Ww@Jl~CsqZy!UHxJ(z#?WVxGYa)fe7f9_OKI5kgs0}(LtBfh_>9{k}ztH5o3#JewytLG6~m5E7`LZqd$BTZ4}CBrq7cXlDs9B z4ND%Npe51E)#6c7fn?u;=$@y)*pF`w^pq#aFXedxe^6n|8MVlQvE~kWw#go8C6Bo<3QDEyci={Bf!arp4v{S2c+N$(Pbm(%-d{Pe5Yp$$PU%W%0?11?!bT>W-8@Oqp;p<`t%UI*34iFXNI|1y(|ZRR zK=EF91^@ta{^teI=Xm3QDa*!{p;QgO_NJ4J$oPy&_m~4X38!#RlC80V2nUw&0OH@< z0IP^cILYbx^$rloi#s10_^K&w_^kP`EEy;KTNUw!f7n%Wxn$IvZ6Z^>vc6^#6YI3D zwqR$rS;rMWab=y$4rpd?j#hAg7pDdgYykvMk63}ZSze@Xc4&;Z4uCS-UY?ho)@|UU zchjgyK=el)CiC~x=R?lKU`F5 z3thm#ONV#iqIj1(k0&(;-#$-?0KX87inK{$M1T_IG*Q839~tVxGRyvnBi+uJY>8k{&;KHM zs7|Xs_f+c6_^J15beSAVymCo(e%ti#{oUPa@kj7i*)2}mQ<;6kQk|YGOY=`EFYfJ2 zW=A1z#1i`_H3+QCJe(a&h)Kc-+s}K&mO1}Ow-4$pSQl(cSeh`sW(?|U*>Jps$SxSg zS4cHmIm@L>EPrV?-(f>H7(0#MU-T_2L5~C;`jMCMKi}g;1=yPQ)jZuT^h5gKAgUIoK zv+dQ@d>+3K+QF&MCUn}`Jw9v+6sNFNpPa9W9fzX!N9nL|e;pS&PF z>Q*9KbeAg+#gAH2jcIC^Pv-}kr}v;ieKoPFYc+GB*JZNNPGa@VyZASn21oN(62np} zooi1_YfUQOj0LPIc|d?}$6E@2WquQVxRg}PuIF`qV(pMe6D~=m%`uzduQnT`F zwQN{ydPCzc>fQAA(D!tnW|1H!d92SWcCvR9d0DePdVg_td|wAfdHFTXDS8gY=}{LX z8g9x+dUSV%O8Qras;4iYY3NshC}h}o4ekSIBBY#!#%hvENzee%gNd*DH^72;#z=X6 zQ4Z+o4mK2R&{u-aQT4GfjV`k>VPhP$)NMf(IdU;ttC)&_N818dRFPatRj1x}m{KCB){`Od=xbcYPM>4b+D#&HhS2I#}9d4z|^h(6+E0PYg13n9`alc72=zihk{PPh& zOMQfOdvIOZx9H_(ru>pXnLMnGs!v>SA&z zh5oajtk+lEbSRa5+Mil2X+4@8gclzi-OVQe{M^$`Go>}rxwQHkdsqQ@OrH@pFUYgT zQsN|Fu+}gNp)%qmsV?d&%(!pE#34g}okKd~-t2K?f*HYfS7Km7DEKSs=`RE=+s1YV z$a)Plq_kXh0JZOc9s#i+RHd-cz$~hZX}q6bm~nfbCkuS28xSHEdkwRfyJGUglU>Y= zhNXU!H>!QRUmK$V+{|GM=Hn!37U3j$_?x^qxjfF$JGHR->8CZ89~9aw4kF*oqEUs= ziQY;q1vg(aMK~4wp$=jFHJV@E zu#N=bOB&+-XrQVuwFs!bHngeyoAR0Ft4N_VKJAPhd`Z;&Y7@$S(QGzta$ON{Il<&m z2`yE{PK(+eUHl8!J1KXS_lUOtEiA?OAezIOoP~7fNsRf?K8{sBk5D)$+&;AkTo?t^ zSke(+iNDE}2H5uuIdPw4@mG5BbGiw-k__dFzEFXUdEs6{W66HRRB18>J@TH!i}`Ae zoovyf5L7Z0#1TkenN~iGoh)}AH9dHz@)Z_1d0M+yx9d1*(mcUGXvf(ovlzxmI+(qt zy?`X&e#|cidY7s0|LUD=hcH3MP+2ilFO#)7!kS4hkGSI#kQMZA7Nm6 zH+%$fqm%kNE2qg(GoVxIOLwhW2g}N3Y*#JP{qMf-PYrt==9o%h78yASKf~<&$UgO! z|Cv#EVsu_gg3(MAOHm*ZAPy1j)gnct?JJ=PC|zA+NLmk&<;T0ho82{(l29`i|EH(I zFe7ZY(!ukG;t!!Hc zk{HCZ-+v&aX+5i9;16^<_k9J>d(1W>iK9$)?wrcRRggf@qM#Up;C%(#nlbm_+1s-)~MDd$rUxBsx2wT_&A0sZ#F^mE=gAm@&Fe zuD=h#7k1{i#k?~Uc3KfNL?O*|Xur|YVHapzPj+Y{8Tjn6o;)-95K=<80L<#aXdp=6 zIT|b}1ek-Kw2F>TrJZh%z0ytJ3&0}2{$6XaZ-P&s!);BaOeCE&NH-~6&-uB10p{w# z&oo3mRznt!|KI^$DPy^dTKt5C{f|sLkA;t(0>ejTQbKl^fDHGSgrQ7P(UEGFNY|{7 z!%T(g?)$bG7cAo-5eR;G|6nm)YEXx%GJ3gTtjzGzi%&F6fbUV~+U^~_q5 z?TzanC|+~sqX0%7oJs;0M&kE^t0`-v9OMa1=1IX3; zSn0%R<|WPEi!^1Sk_Pu_5u|pDHM_n$K9g4qmX$%j0~m!G@}$O#77f*93gBZH))FT* z&R-lAmq>E^^M{XtA-6?}vsD>gIa2hm4KjOJ^N)!DkLch18Zw#CVUM$v>Fo|7J(HvD zc+0Kq5YA71`w#)`#1f=b20E8U$8mm717TPSagqhCyXb)er8Zr);!~xtEOB7Cpf=D|^l_?2D5J?|hqbQt* zUeEuH;AS3kW&cUZ*U3Pd<&Xn$lf6qL%kf{(nubKF_51EGJPCL>s!WbfN(eO&K)fAB zGHSPqT6~Qz1=i+frs43JCJp`0&vB&Qgzc(c;P00&)A-M8?8~VjD`O*;UNfqt?y`NY z`BSd#iB7WX9eRQeAnfC18ttj<;IzYsx?dyh#NVilN$_);k6+i4hPzlcRRoxvq>bVmE*iz*4G(QYUD=6K zYTKJguDe_Da<;)Z6~z;kc3Rm6bp>X$J^)VEPKatJ$8_AobEb|3zsHSCd84YsPX{j%~XeGoKr4&E~4F{wwR>xZ2~J*8fv_ zmA0Llwx1fVT_Z{W{*?0^Aexl`wipHet{%f+YeUJ1S` zBSzALxDjtW-lH3X{No<~{uj{VFpTNC0lyjjY7%cA+qG>Hf+E7Nr%-XF8ntV%6~J#n znfid1s?FI@#)da|)hzSLO?wHT2b)(!wHTct@7rqM|2>$@=;}|)Y)UXl;IV{sH&gk; zp%CnIrmo?}>SX&&R0PVWc>}am|J+f=UnJbga1IyRE%FZ&d`KF6c=Y>v^!IgSm8a*1 z+*($*O1YX@1sQnRc+g!N}T)%91q3;^2kF^hC>FR0hKR=OJCF&QnH&gVc6@U3~! zpT9wWjA??;yAfkg`Fx21OuVrJpcL~!Q8OM$($Pw$fanKZ{1yQRVvS%Eh=aN86Zv77 zg?7V&)}QcF0k2ROTfn!uh1VrxM=bb8NakUnvy(-NGdPLG#IEQ`*()O zQ;D;Rjq^wxmmH3=I}vrdwc>vrO|nz(J+w^!(qLtYPBZ%o{S|OIl`vktQtqMMzwVkSOLzFn1>X3e??(Q?;eg1-r>&Q|knSpd`XfGkk%wpQ znS6!GE$Eeq!dgWG>6+0#zood-nSK&@EeHX;Go9a?x1We+U`Ihy5r?4VhouNiPlS2E zQG~JRbg_!WRzT_~DIX>zP9z~_J$Zc{EZw^A?0OZ8_;-N_cAQ`LvGlo4J6><}{wkDd zC)3T(>C8q!gl7)F&i}i;H?<4O6Qs%r2Y{7Bu!NYDmH#{DTAo#>%m0V}{8``C5AzRG za>Tu0P+NKcy_%|~1Z!kK-vy-M6%5H660QbI!U%V#%?sZ|7X!e6^G+95N?+=Y8J)TIbXGc-H=M!?(}gw+15Zsg)5URKg8I{EVvm!`Y5)3V&h$29xQc^8x*dWKR=khs%_4F#Bf zRxL9HwCxdylO#?(#`ntMX3D`2XU=+(g1ajj6afy7d@p9{u1P0WIr1S-+2(J{9=pnz zdo3 z=3|utM^MXUZ|Ey_tR)u=vS6_2%v;e$YnQfGWg`;vK;-D(6FAkVK z2j2m8+^Kp8vb1L8YOMVQ^i}r##u@)L_8gv89rmE|_G)=Ax$mwY3hxD-a=|_|y@faa z7UoTEadbU-K*R+aHSO;bG0Ph(Ka1y?WO5Jye-ttjfoRo^S&M>Sa> zIYJ3fIzH2W-4TIXn{;1(ERZ@%Xt;wtnqbBUSfEh-2G{BpRJ2Bel7L5p&S4LL}gj0@T z`^dqiOU1}7>C#6$?}U}R@4@r9h6ogeEOi^IrKJL*>nUB>kErm1*q0uP@&4TQ=;>C# zLEu@^T(=1Zcn*|bu=D#LWo*CZi?r~L-gHh1SNk&cB~^!DjLpqD74Rn&{o+Hvg-6m! z5rg(0EDe=;=hvClEq;4l=(bGq*`%J=SP%BO*?Uaju5NaN43d4U5wXtq9Jzb#t%P8&A3~0GLBkpY%mlUB`iQdcHHWa-XRMV_##uB30|u# z)@qdsl9M~a&qWXdV0CwbuM?Lp{FW|S$JHeFneFdQwFJd+b030wK1`6eyc+*dUFs~S zxxvjZ-K{Jpr3E9B+Lm7zR5#%L0b2pYT1CP@>#~`i=lwd0Vt2^$Uj_3UPrnLQ)8tcd zLMQxrWmQaE21DoWV#NHV{`we7!BAU-!}OdI8Z; zBf57$zMlhM+4qUXIOr1>Zzm`lSJ(O55gS9G%0m;+PQIC4<=OIb7^l2fJbPUN*{OEs zb4UKA0D0ZGEjLB4bS0@p7D{QzjPfj1R~D)}`?DQ%qE{ge$(Vyf>;bw1cin;Otc-_W zIQdr3VP}t>1~T%*HhLsVD>t-6APfMK>6Q2+K_Jd2!d&eQufHk`;*^p8vMJGp-HaG% z)w$IyH>wr@#A07}0|<)@FU)2ZK#?+=aZE1uL-~70;2|+UQL*DcnKyo%#|vrBab}pR zKFXhL^iEy+{tG?Oh}1`B)NEAAwLkTkUW`b|%OR%(LQR6LfP2+=~ z_m;2JYXjbPsDnnsVr-hifZ5kj42#w0lTv~bPPp+T@jSp%Vy*^K>NokGrKtW@on?jt zfqoZIpd3~aAe zi+*v~&cr9@Hlh;#{IHCoab`UWr@M}6#Q}idS{dK5YFj97e)z>nlC0?#EGCvCO=S}E zH9we)ctX1w@`0DjSga3z^N+UWykJ2%QyOB@J~Qa8j)f56=d^$h?*Q~djdVpnNC|rx zi@Q8I^uK5c_$nE+H&7S6^BS75{gy9MflHsrfOe?Hh+qZI*(@NxuW7%WTBycrm~1G) zca_HgLapp}S@~?d6H%stM`CMy3fQ=WfVbN(zcRbD7!IPzi!5*BZ2mUO&keX>;>!mJid~+5hpj-PI8+$I zxxQ+N(2!8z=V^UuWOY0*F}>NbkVWEAUtW~$;)|0+Xa$MI{H%$vh~W8ESm&DXluVgx zd{Rphuz?7_*LmEbUG6o|I4b%8G!Z#00%>m4V3dy~x=?BVfz>3oO~m#|Jex&XEcOK>Iet=5eo}CQC3w4Y$qG~DBnOek zW7jPOTNw1&0A#g#1uC(6IR=$}_>5%DFtn&+N4w%mwgbD{fhGRPRoSogWt2N6re^n+ zM7z`$Do20hmc*~ZUqBL-#0tZg^x9YYMk!W97r79>HRGd5pooRKefpU)pwKuR+ZZI# z(QSC=q}JUx^)Bnzdky})X#rD@IlA6;U1+rVQsOj1@>tGRY;%q4b6zW!}e=%TBX&U zid^4ZUl{Z)*rF=k=rXdIJkHKATqEn2cb|^FMZFnIJ!^8C zIKecMt>{K!x&(gV=1cunLI$i_Zt1FK)=!w5i3 z&n(y-*DXl01UsRDAfa2HZ;)<50Nl}WPfK4}7w!sTdJb9YbHl41;qQ6wdeCvlVCmbqzZKE+^8+JHx6j4OaOm2p)-NiolX*dvyk4d zIf{cY*XEtHtjC%j`iW6J*zAv#l%WyGI;`2{^ogvH*|F#sy|p#nrTH*GbEx$tYtGCu z#C{tT$M{Q7W$4+7fu}nrY7+#?WH)db(L_Qy9~t-p2}6vCCfrI#+^O)|5$;$7S?qqOR%_(Bwa!@xU74zS~U)3kVj zeIrdwa>9}~P%WKUED9CFo=tU&WSa7*75eMAJ{Pwd9&j0+?Sp7pJo7hU76Q>z$d~8u zWk|3@rOA91t*q5i^0tFJ|AD*i(tMubN#5qwXTc{nOWze^m*ln)otp?+o78B(<=BQdRFqnUw?olrTXg2K92(53KlQ^!?F$CZ{- z$|OiY~`ZkiF&zz%6(0&fN!%>U_7WS5FER&J?(TDbMTytcEn? z_`?YN#vor7{X-VLIlAhFy~4JS9KJJE5(Q~w3grsrSdDV4D0oh4>z3`!H8`jSmi8$2 z+R=gZA~IaE0Bl7uTiqe4V~WmQBVv4fP_3_V-~x!BvB?HgdwKnzd9`qW_S{9~=1}p^ z)~1*#bK~PUa?SZdz7fImGc+VL(keH&$G_-{oCvbCh(najmb>A84J^XLB3CODuYTuV zjqx^ova0|{yl^H;Xfs^>{0)vv=J;zzboihN1KZZ+$Kn&I4&BQWKvG%U9ANvHSLWw_ z9>t-hInmU0dAQKxv295d*!iUXp3-d-=fQ`6g6Ku=p8%dBQKqjp1Dx>-_0Lmn*Bkv@ z>@vtO6`pL@{QdoJE>=OzgnDmT8RQE&=~6VBBUL0u69D(Z7I#s3y#W9CqrWyye|Y99 z^k;L_!dA}HtM%ua_AsAVg*NH7l4SjRJ+_Pwy%D?FsDz@{$IQnrx!v(gb{(6Ta<0s! zvki&iIBVluU2nnsq_Qb1#QNMseC2beAHxO@Ef$3lb{#A-#} z11u-dg6AUhP)vAH8N<~_H$PyA+OQbKiu(!9diEKl|cA+ z1GNIkX+K`&89lhSu=iS`Tk!x?s{Y!i*>R4{6cDkW#sbqeQdR0}e-OT^Rk-Ao<+s0U zio4P^b?hXh3!A2lck_+Cl8{MU9+qcWbgon+e&{&%aubKylr@dHdi89!jzKbz_cmzj z5`Z?8&1{M?I^+7ctPbnUBq;8n7db}kQMz&2H^2)P0oP z`S-rhS}e7T(dkdRwk-s9!vVWN^Df*FE7P%r*rvo6dcF#*ek!A8RGEN~ z>p<3Fz?K5r)$S$j5_uOI_i)&8&4Rb`5e2B6&dfv?$rGVNg^Dm)O+Yh_nmtb(+rZ5T zNP-@5vAM0JgIJeO9zzVG4TahdVnya-P| z4)ZWIO?7WRSh8;NK8KQD2JZazF-O*t-{MKug~feXxR{e~W|q(O;u7N6Feb|?S2IJV zn-P$kHoMQq>;Ej`+0KBVBm#1qnI2g&l!FOYfau@>0n5oeJo3U*BUSS{1;X3{liN=V z;L)aZGD+h>S30>gq(bA*jwy0~2vACK(FF;hc*q4=q{cgUCw_A0b%OxesBz$zdTUq{ z@6i1`qr#vX*0)2Cm!5E_PoY=Kq?7x?#rZrJc18hA>#6P6)*WZkkTV8)U$c%T^>zf!wN z2wme@ZH`2}LaKqTzbYJsN`SNlZbte6_*T?Xo8oY<-ha><{2_dsK(=L*V8}RP?q>Gb z?dlc_VIX4z1@ps^3x@GBMvxw6?tySQ_1p9W=B7m9>P=E&hlMAtkJJcFZju^W*B|=A zqo4Ni@z5DiG7O|C&Lnuvez(wP*!~Z>ZlzH9aH(Wc2=Qf@)H-0r8qG@T`-*dXzv2+$$ZMc;))cn^26L!8uASq z?M?l#RjS{5q&l?W+_&D~x(4yel=I3JfYRFCk={M;HME1dt%*E-T1!3k(0DpLhLVMC zlgq3h-suprk5%D_!|6;nJ`qszhohwrJt)`C?jOwly02=GIpO3BGv3OpGPat_z^|mA ze(Sf@mzFwTnT6ZQ7pGrL04uq2fLc{gS&$YG{I|aDcXfW&Pp`VG_nET9U2!o}U zihV#1q#2T1&qH2dBRbw$^pJ(xqAF9~wYLu9W79Gm{VUYtZw|amOJ;XEoEbzirfcH0 z-qE|;Jc0w5=hMa6RgN|>X(jJ3(rPg$4H+zq%Kdck%06y>^h-8##q`%vOpU9S*SX?_ zqtMuM;Xu1O@Z&sj%=k3r#EdQ*pCD4hICfxqiivanK<`vX}| z33C1IWDIi7qIcrDy~T;p$TF0Vz01QaP(*;}Rbma`=cB@AI52%&UVpXwpp32|Qrmy} z$zXNmD! zxj7S>*wc1ScaSNCWNT|T*R`uZ5G{gjr7CV65mI6lv#N`KXUQD(ZPfj;#!eltRT9cx zQEl*FST3Teb zc=AdJHN>yXWJ#pzuFiD2K8Z=2{y_ewp2})A(O$n;HP{NJUZVAzQQke^6l$64;mNgzm@TlVg6XlME_IH{RS5@ zsO4}xV+$Uaj*VKDE4v`)>1(s5Mbb5`FX@W_hr`*lnyrafE%=g?#|?)F#LEdNGm5oJ zC~!@>4vp0nz5VcZ^qo4IqQ;&)`O$kswT5>XDkPOlhFYDaA8#u@TdOMNn!0ynPkb43 zNHt@_v6<{aPk_3e-RYLqE13TVhU6T|t7U1p&gwF?Y|70I&Hw7oYlXS1WmN zP$d-s&to-G`>(v4+W)c<;jziD+NJ#8xt9QTtM_y=aS5=M(C2Hp=@3D6FZ7XsYO4y@ zE`-6!%uXTel=i)%9&AnK{tvV;yjoyLg}8a$qIFf%GskqNV>kMkz|vtX|=H>>zNbAQ)G2Rv~63JKNf@;dVKQD-u`&q0-ag0cUk5& zQVXaSVOF+*F^PHYnP65y1jxuTE1)Td5kd5(W1PLVoOEp$kAchVisbny7YU4`$MmYe z)Z5;-9fNj)9XZL!4|`?X;foq}NDTo?p}_)^JG0Jmg$S6=Kkv$otKpsTpMr~tFrUz7 zd7;WG_^HK%U&t(VoX^_GGV$+=pN@`930jVZ_pwu&NGN83BdOn?9I` zlLkaWV8qOMa?sh*zD((G2|p$|zUYhnx?-@t)^IBvGjOcW{&|ZN#>e{M59~C}f+6Kc zWEu$hvp2?^2ng+BmgHNDvM^9>klEsd6c~nuyJ!%7UpP1QJ?=e3SFv4Jkpm7zxDn&W z_MdZk(zp8iy%svR*BFRe#?eYKvA0G{L-KfQ!>e+ofpoYzN-B8Odo`ARbuUO==sbYi z3O;~;CY#fiD%6V~cF0A~k=pc6EpHsm!!fwY+jE*Lg zPOveOeT|$?l_c|%csHH}uex`#Nj;u@O9J3S^DL42s#=O!maugAVNzk(C?lZx){As=FXV(wTkL7_2^8q zm>piJSV~MQM~;yNxOds}Z;xp|%NKY*wT8dQV!$PdI;qjtOCK$nZ?6^97#ypWZhh*h zD>C_$UWgbA*V&zf>}-$yk+OTi@rz@jT53qFeMB7;VZm2^(=ChX#xcZx>X2OXRN;?3 zXFdxK@%a9UxqC?m<3kOx~Glxj)zys(F|-h+Q)aHy~|5h;M39^z0*7 zE4g)RZ(gmrq}Z%q^~>?H8OP>M@nWAH(0pHjP*zrkD!(i64QsIW%1pL>3hw| zPKT$ug6=ZwBQ0OUw1Vi2VRK>sF@EaDdiHR%bIsPiZE4)qFy-o@R z?;srtgEsRO1c(ZGILay46U$)2#_hLc8fQSrbJ?slOn9T^RS6CQ$6-Qmt<$o_9L5Z> zB&lVy$n^9vx2#_dfm9wG2`<*h`hU(i7bmJ`@aiWwQ0W(cua;>WNdyg7>Y}|Iv4aXQ zr(YEH*9CbyHQfs0Q@bBIML7KNQLqX~aLYe-aBLSQ;J!s-%a7i}hCeC&GPs61Y z!h)GWy|A+bYbacp@RWsi}q^_cM?Fvn8wyXeh)W7%#`~9rQ&+=i)0a~ihWlr zxK-Om>cxQAMq4c)1}BkLC;3H9bCCoUNgV|NLcXZ~s;G%0P>);sYki!uE$LuAm%>rA zQ37D0W);}kz9eAVt}8!%pmFn#t-4X;-OvUzL9yULoUZ_DCYH@f;`BIfvl!m}UZ^jF z#kBuX@pm4us^SP5Mwr56aO})bUi2nmG?`TsZ6U3|Q!p-gq91 zj`s{nv50`-JAG*MG;-vV*`}ur=VEJCZYS4jzLlB5gTw7-E=6i1?)9G}j0Ql7ad^jV z@CRS0pR`{;NV(l>AZR7OLoM`5#&<2@-MtW#zzQ;l!|AG3?XxiWHf~!sb2pCt%NP=TwBeR%)oG=H!k>7& zo3uHPihyXAPs#h{3E$?2A=}uGmNXzziw!Lf3wpZmlBa4Q^O4y>Xo;AXY(80QE9z~$ z+TG6v-`emPy*v$(M09O|1Ig>7mCsut=7sN;q`gnK1`?m@%7{B6q4C-!IyVyv_<=7g zVI=BsTk&K1d7FlU9|)_$foAboUx*{asAta86?!4w?Y3Xk1z~IFH8!zy=O9nlk7V#a zjB8UrUe=8aE0EF*r6NmAz5UA5b8Cpkz+0u+QxjqOYtysC3aiVClCrH;Cy8 zm&kF_i-pGR<9RSXK~&(Q{*J5nDiHxC{792qf$i1;_(VA<-Ol6h5-ir0BJ13c7$rHS z#ckCDUlEhMyu5BE5nIoLmEK64=Dq2Hka&^O2jWVGojZiX5ZD=7p!Q$ ze?8%eg!Hs#j%8B6si3~B>syAoY>wP0vb}6877G|&?v>7jvIW^^St~j!wR=}&oBPQQ z&ioYu)r{-f9C&$yg)F09oDzUY1y{2(rMysJKb1FfG$?RniQ-p7uOq8AvEFMl69bF`<5V4oY^?41?- z@(K|GooJYh|1$OjL%L%?&)6vO0?{iwlO?#m=qXlk5rm+<{}xCSY7uNU+H9gGIsiLO zi4`K=+&gV$>G8x}o$Vf4X(hby!?^0t&>x<>c;C?0Uaf{F>(up$@ZO-4f58tg zTs~e(16dJWpeXdVCK4t#n549`92gxKPQY`&z3gERzZL1R|GtP26_Ua}cr+(OLT^en z%QFk^@U!ae#g%vW#lku)8E!k@c#N*9s>1C^eZD&W*i6`QmZN3u_ey{Lz@j47+nZ(# zbgCE|U2s=1P^#*=`U6)@d(jjjPbNHYL{`GXo=x=(u_{BA2qilL3VSW^L|}~5$&-?U zUf$iXD@IWEu8ZXuDkkZabrC2qR`O&@#oO4S*x3JIFe~P;W+Kwf{I^y$q9S2*HCqTI ztz)Tg)EyVdV?Pb)_DEY7!51M2j9@);aqmeKtyH>ZXzfm!>jnkWuy-?!-hKOcUF|Te z*|xY7URRgzaXJvsq0S=dZu>IXtkv{j)*NgGw%ECjy2?o-fc<{mj7enl#{MA6*?f{| zVg{pdvqf&?$~<^&OEMpcU(A0-h6=-8V7-9K6q$XCllBTkZC0eV2)?2C+a5*{TY9QE zevwlW{F6}~TA?L`5opgSVoG6q}PtXf_Vw3DlhX_DO8?8RxUdz6Me0 zu@gkl)m`g``@qW)3gJ|g11vbGBGinybtB!6O#6#uhaSS#~Ird!c~rM83RMd?Q8};!7f4sw>3lvvgjH`1q4uk zo85NLcT`$rNlInSNM@nx>lE%MkkCw4p8!e=Y+HrSlLQ0nXmTzC; z&+h5!1?HS#Z^6UBp~3TTBcnd+ud@~tm;z5pn4jI-&>l_7dtZiA^v1;pe9${b@uib0 z+G}CgruvYWcl#!9>cJj@&DpmFvQ{8k)yaLj zu3JLGx9O!arh7QLNv3I@m6_c8o$Rlr65%mu%vN*z@e8$1f;B1;5NHXBNDGFKWXs}8 z?B?p*N_`tKP6$?SUpA39km8Imku!GOLO;h3%+~cyLozWjGBQee9wD<68<-E7E{zap zj+q~gcVQ7#^VRK3sSP?kcb+w|LGL{FD^&SN0{So=Go17Fn&M^F13Y&0ij%rZI9sV{ zhku6%BieF*w(k1~QE8>EVEvAsANYs65pOYFM@h^+e%`~HI zWOJI@Yp(SeUFe0oe%-UwSCewypvd0`GsdNmpQEAlTRnfk@;>epZbiQweX2B7B0j>4b?>hzhOQOXieSVF9*Jq^6$J1kMgJ1m?e0xVT3(vy98_Y9? z#vL6!YoXj9yR(9j<_~<1q-SHpT`zZs2e@M{k0Xa*Pi0z(J5~fQpFdVbCO49`x3A8u zBGUBy-;Ut%bXbfTaJ1s}9hB%+e8wDtkR(asF~erHxx|eZcUf&`Yqz&%YAkS7pZ}y; za9)4)-e?edD^{Q?1(IeB?!RVzlK|CC@@_Rn^^`pK&#);DLD!TDjn?1@^>jQYWfPxo zt+FHw^gqWx_B3+B7VeR>~nI~IkCV)PAr@MqW8a_*8~07 zY=8$gSxoEM1TdT}_*an36!0M9f9bXRD~Jv6Xwdqz+w@;~psw)$S&Ud5D5g~X|1L(1 z5Bv)M|1L&+>N#-*{Pq8#7%_RAJxqJ);?GHj3%n`T#k5&{`;9#HUAa3w1TP380->~K ziw|D(AUPi)zjP%y6>GQ~aSv&$k!6V8dmm<&O!EVDhaeb2{0u)hs?zrM9Z3>psgV2< zm>=-AYvBq^K-)zCJS}T+$)-IO{kiZuBWtqF`wS2X*h*SF4sUpE?d&LjmoOIpw~6U9 z>PhKOmerO0_g}?~a$q++jq4Yaa{o_*l1|7OgED|*Ozraj{TX@SEb(um|7mJDL_7FM z0uk>r=l}KtI!(xE2>(xW#240}194UUwMi`bZ@(SWHCX@Oe$Aj_zZ~oTX-ER=96pemSsvnv?tlAD5X$X?wg20= zG=Q&k#Aj;LY5H$Jpp!M*|FJkhjK$=EG}BvkL;u_F-_rcg!pKej|8Z%|ycTybr{n5u zjjtOH=2?L=@uzgYH?+4i3Cjz0`tYKa@NPaqZ^&4)N<`V8!ePR{$oS66!C9neg9wue zw`_nx))&qQYY^r7il(uFul$z!li-M>#zLM!<aIyyRHCMKrf_4Rw5XCbBr`V6+D z4SXH7wF#EAbaX@w4ohLtmwb;Fxxe31CCN%>`fezYCE+KL2!=<~Hauvzv9Wo>Mv;`9 z)Egk3*wRjAL~H-ce1pB|HzAPFzFqQSbjdfOl?z7&1&ff;%W|db~2@3 z*mN+Z^c9a`-%%NK?|Eqt?%3ZGL1q5%M1;(~_wVeaM60eh6?E}^MHIci6nR;t*mT3jY39;_J*b_Kk5s-%HPuRV>HUED9^cT=_mwI3Z}Ya5TGd+5n^MRZp*E} zL~!^-NJzQllLF$qf|)gOYzsV-Y1D!=c2)7Oa&EBO8E);p(zbnNV{OXS`v@XRLaJWxxlCC!{J|8j3s47Cgxf-J2Vr# zS1guCySKH9h>CR796AK*%(Pq|AkA)q322> z{3FW}@%l_7LD+mPFssV;DN?5QkOq792HmG4C9ODpRjh|&np`y{yYTl?quBY9qpd-x z4Za4Fd_mI=l)6}LFoe>#*>;U?cNzox#4M{GcKj~tv-uXp-pf9+%7L;i+RuWus!NlP-CT!KTu{8^f9Y>nL;ysVG&^If*~#%) zx!>yoG_>+RALplO3o#Vd7=>C4=mkVmEb8*{@%Yw{H6TGuqWg!A;p@8}K?~Zt z!p{``5oL-*eSK}pyFy3BQ5T3EdQ3Xu5~okYu%I`Ew1cwQCFy3l;H6jByBPDmJd7qm z!!q$0m~=uslPW*`FjD<7mMV8KS8^qL;tNvRfC7_Wjr;uRUH3oAJ8lC|=0b$=AAR9x zZ^7A5!RK^tw-0t9GpuV{tP1d_dQ8%a0rWNInN#ItW2@9^#A|KzmZs8v@^FfF1&M^E zE4yE)Llw5e?-fP({mteRL;DQ?w=(MxHbQ4VrW|ne`|4g5@JeaULCf<#!;Kq5ood#$ z!{O<3$4N>AkfN<*F?P@4ZY6!3y{!5Lk&Jp|Alv%`HpI{6egd!F%I1Gui1Z(8qj^&L zU6=CI5~+G+38UWmIXCy(LbN3}ma%G8J$WUhM6pB3#XM)c-?o-sE?ngb8cj>UKTi0C z&0yN#Qq7nV(;~s*Su}0L60H637rkW~B*?pHh<8nr9epoP? zBeB9}xvsI;VRqLC?LD_*SWA12k3Jk_BJx$w`OlKE0w+c;_T!Ug>zv}C&`$G66_{)R zAvC>hceC1{c}$o8{GPV^tpV2==Q4eQV!N!d2Yb?2e^UUG z=L36ev7*^z?O661kNZFuU`KCrWQSI|-^JhZ zcZu!RW&uJPYg41kSwX*Q(fNby@1}q1;f!YS zeaeB0BlM-E<(Sy?22t63vFy89162d#ztmA~ouctOPmXVo0_(~gr1<;6fhu_J$K`Jm zHpB6UZKRjmm!4J-bc<^i#$vhq;Epc;m1<76!h`kW;iSboqomNTp`o3nmNuuzCDTT! zUt&e-*=a&51r>~9cNmLfK`}1{weMg2#-lh-6|}gMzQN^&)`MGCP*7L!RA4AmeQ%l< z&Y$}GBo=MR(o;H;$@%PRcj|6AK`*Wv=+b)etZuSIC3WhqO^x--VtuFzo2h&~$jaPc z3WEh$-HgmG-L80=cNxD~%gU6g72t$@=Vk3Z34QnPTrt0K=P956UOj}s$m@6Sd^u2-mTm?LNZRPO ztMhY^jdUyAkM;eRkwA~C;)uMGpnlJKHn#Oqwj=L(K{1c>J>=>3`1X$xrG{_XsNX@y zLI9yy-TtM?B1rjc*_@z}#_>%oVfj*HyuX>EBz8Y-r)XoWslz?|s%J0I(oIPNER;U$ za6Q(4{>@&Cj=<|TVD+BqoM{;;%w{Qc04TiUoquoS%1yLk@ezi8g13Pd&)QwlDC9~g zxz$B@r>TKavme6PqYRLK%69Ao7`|E4d*2i9C*3}dDaEaHtswiNcSZS48dIWV`f#Nb zxV%`YH20g+P;1O)uFg95|I9TD zwby$gP;Y$jbH;<3C8ezYNb2cn0!4w@1NL|7>X;<cC9N{9;o9s9SrwQ1{~)`6iQc!25ESh97Ir}hZQ^rfm5aKMZs;jyYZLp*;(i~Z10dGfD z^|M}M4MiOm+sY4zip)P9;2rTaHFMSE!>t5DU$L0 zu3SDnc~4lzn37AhL;4@q#^OaORm$kwgqeddFFsgxq|2si2ed0B_WID_kcelyAn@uH zG;ef_T%t;uTy!6cI4GqwX+8aEf@{4XpQy*ZM+LmZvcWo3u%<9wVCPo;vvcKxHlc!) z89EqVltVI(44phsl=w{R2tM}=AH zy2JDMqX7ZC{dFsD(tz2w<7a?27L4K{@HfFy|L5G^{*MClcew65A*FAOxPW0=p?)_o+TY?W`6<;SV+=P&7fO{x?oSvXkg zV;jf|gn6qTnY3|3l|r69+K$j4B`4bCPcVFUT^uw)OYh><@WN*H>~dokIh6R+I9*=F zCykG0m#?>jtm0Jm-oC6>N-wk{&Y_*QK+a7Y-2dvI;$~z}J(Z^p_Wg5MhFapmJw#bZ zqrsA^xdf6-q^5Ve%>q{i*ki$$LG$zdSkb1mm~DIfOaJHV23WYXswCg@kKkphdB!VDcqWW zv_p9p+#hm&NuU_~L~51}6}(mA&7 zs+v-j+63v)34*FJC5$8a?VPVi>|{=V(Bk#9S-Q|ifMbJo*OKF|%q99&&3&0<`25nw39|!!B`r))${Z--sDUl{6 zmnHUhZh9`FN300cZk&Zfyz;qtgEF}?C zu#@-wVpn)&XOmNPw(Sr;KcyeMDf~7{R>pyY$&<-Of!6NfraMmog9W3)s^I1Jw}56# z?9)WFA(@LQl5QRM^4~r*jr}9D+AhPH&n!4^hb1HO8dU@8qjxDAd&BRVOvYTW=Cn3I z$g1@Xrzebjlxdcmf5HbH258#(aPs5`0*4`(o%*3_>-DvFD8>lq_O{)RudvsVt?gKx zR}p`SWfx{ zC?o68rG@X;tmyG?E<1IG)1kdEgO$?ABuUcN=7C1ANfNPA#`Au?(u0tH;=GzYanAnp zMgGZ8LC-f~mKU(CHqE0CZ5!^{>Hv#|1S6jYUi6n0lp< zqMFd#IA4VTh|?>jb@Jgp-F1iUX-wG0y!zMv^@7eJF72uQPeQW4YGb+K7EeY>e2f}D zqG%qsq|kOlc8Jo)dmEz(Dz2(Xke;a$FJs>Y@vSf)(BgehW&8Oz`(=^rLR6-;*6;6U z(;S!shK_K@n9%}j_Z3Pj#Cu&x7$6iM*w9= ze?8$4$F$UQW^GNjtzOfv{OxCW?qNdVHTS7$E3+alt;^>3N#qKS!fEhSiA?q>&Z$@S zeylIgXvLte$M8SBqrWw1Zl~?#(R$h^8HKRR$uxG8q9d)@w%`D0!$vddD?C*aD`yqc zmYSF^cq-Q>7M#NR3$FT zPK@xBc*Ze|TVNwQrT>FM4SUQ7WD^z;C5amB7oIR?T5iQpI(5Z#hkN5M+xQxgxso}k z6dKqq@Td?Q&K7R4oNp0?k+Po3RlWm9a$TveO19NC*TuXG?DmUuUw)1k7KadBptZjs z`2%k63*L1Z6~$Lej^|M-hwZw(0AgVRu=XtXRC3SgOaAD z*-wDW#2j*OQxoD|V#9ph z`d|K|v2Pg#-mkV2p>2dB{bSs-0~CqQ1@8ug7UCcMiOTsq-18%<1^H-ssyo~Y^%v$san5Pj816cE3jIgDP#- z3T6BIw`#|q_Nk1BvG*~v-lp3okVq!-pi5s0TsA1~EMAF~!FSJ` zO~nHb+D*s8B=4|r(fN8+qDP{$#HW33NS#5%EWY9d%y((dr0ZV*MT zlfGz>lS_=5BF`EsCSG27Q?_dpJtXos2P^z#eHXqNLNPTGY8Ecpg{NNqR?|uo)k9#r zoB8P3q+yEC@r5?xG+&aLQlKw*VKtPTF74u`j^uT-10CL4jns47jNI|S1h7n)x$#GI zAxGx3XJH;k7XpuGv+DQ%b_=P|pxx_l2}xc)YWsRKCSN1>z&==AtRONn7b4<{_gszM z!ide)L}5IaL(N`KPa1omF5V8t#v)&375;a(Y4RA4NoM8PlTDY-~~f&bWZi z*ZWiVYI?!LMKbU1v9T4V1g!K}@A%kYg|aE`J=$N}X_4r+eat_3+hu~D@Lgl&MIB59 zwv=;Elsu47T_~MtH}n2$bV^UHK*LGM#-&rZ)yFXx?|E9ugsCl1YK5qfxHZzM~iX^E*h&^FIeTjta)0EHtw;v>X(W|qr zq8!&6@+dYug%I*%is%8@dgD9^Z?aP%p@ILn7;j(a41IjmLeV1995d8 z@98Kf&gcBx@pgzmm+gP^Xtg?lE7x77Ila7O4!BJ-flRo0%m6ed?*^D1*oUAOIq>NC z{K0^g*rOv5hBFw+ANlBmO5-{nkkl|OuK`$N#>o@ngMWYVZ55hk4q$VbZ}U7XK>ggl z$Kr^|EmE*(I@TnqCv#*N(bc7KqCcvjFr!!&$bd`~td{<PWG0;CV6wBVh_ubB3b@JPPjuXP-YI?SyUV1eA=Ltl68F z=fZeR3nWGMD!XTUky1(gAk6Ad$oMthH%{@?)ZrScIY;K2_HRC5i&fxh60?cGbb!Dw zDdkRm`QKrg$YgnTQ&V%p7Q@}@`eP`IH{?n7?SB_%S|~^fWoHVkY!dkYm7kE$SDz++ z53Jt^RK(rYk_;#uU+)m`Wl-tc`osmXXjO2}Ajn${f1*E*d*2xaNwBRrbD8gdbDH{y z7UyDn3c0&J3Li-m7?%iAZV{@C;g5@zD)xDlkqoJHc)*XOm8~R- z_psoBUwtKU?A^D3bWUmc*Bn8-_skvO3sI?~;BwbPeoJ8j#>-#xz5-cBK&awG*7rOI z_!wvk*>4~$Bodg-@gXRCkMcS-N8sAxK5Bnkq@^R>M+c=j0#~znVAq8RrHmZG zPFxQK))K%;S?j^U1*X#GH!$l(h%Jp>=zvfFZCU5198elbwtqHqagsu-+JYBavDCYA z+YZy?HIV&F2(AklZhV>dKm)>@;YGlBWEKovfYvO^eHo3(B-(l|EoMeF@$=t%{B$Qr z9$_MQsN2C2V;UpGDl>;h>kLv(7yRyL@hcbJ|5Yco1+QY!^sV?v(-+%HJT6JF*jzZG zqo=AT&lC{gc~wbZVET7MobJ3tIK%3chl8D@w^gf0h{@+?-0J^QbHB%35d%;FJsSo2 z)(#n3Tk`QJEIQOcR*HHC^C(v-4NlqV<-2Jk}uN~`hwI~@0MF>}1aUx;?p6&3f|ctN2t{;vmp?(sDp$aM`&kLv zfq~GZ(p;N@AnpM_p%7VHo*3t0*K#a?YYc><#qSCq>zJR<7?0SV%}8MELlIDF)&gA= zz&YLdSbT2lfuTI|28=m_b$P1$9%bK3{TtgNi$^xTrG4+Fj_U%w;e;U@9ymM@NpbAs#d=FT`qg_Z>885 zvxqXhmmuyyjD(GcHvZmD8|rcVPhM(a1*0W8Yw<2`pct6xDFeMFWk@&&>GI&bJu}~< zn<4aoCWum_nTvG~tYS0X6Vu(h59~x!zi64eTk(4>ouW zdZFU|S5Dr8wePU2Stu=c|2n?Pjaqu*=klDeBA>+)Q+d`K_N{69PEVN4k%!FR##`f) zYnrkA-EncOd7aPI^r0yzqLzANj*SP zNJmxKtL*Qnhe*O8Bg7or3ZfjuL-^w@gv21sc>%1AZ9yWENQImc$Ln$%7i*7O15zVS zwh36zc@qk`GQU-*26w<8OdrmvJS^^eH;c2yciIo(zXZA8A=E@5@eL{Kllr9{Q_G<2 z4w;)DteLFAFQ&f*xlr>e89n+#+_jVWk3io5B8tA_l%QQ~9@5m#$Q-B>{qDYCNM-%x zcY>dyuT9sZm0wd|3l0zx*6nthz;+47VdnGj*{1K?WIWo|L)gVMyP+-u`rzO_w;Cvs%%9oqdsf2 z9$@|Es-LkQ{lNt|S?ha$b3|?!|Ii%~9J!;Q>HeK|dn;7rmHU;rs;~#$CkmJ%s&6W? zD|r`P9UW!%`pxUhr-8Eq%y;v$E+s>okG;MtZn^E%+KQc*E~^+0u%Ip8qv#TbLl96V zSsz=rcC2nB()%M> zEpK)i&x|B5KLx>s4;CqM3scYV|JzZ_a?~zbtfElzz3r6^^IhZnROW@h9+rGce0AFi z9V9a_O1KRtFihNzR(U3hzsiPl30`DJ29wb_X6%tE5E&s!aTovI7b--#W6p6y)zNn# zQ=*Il#kUQ7MdaH*G60>)Y^BZ~q>pddtP);FiwzbgfQWD%8LtDUF>s=NI=E6qSMFYPwTwXl3OIHd0cSli|uq`~iX(d_Hh zQBOQRmG&FIYlVivcd9tM2Km2ZGfFoz7^$iUdu?_u4G6Sy>lgJ6Is0ax&xQ~jdH3?p!ll`42dB{r$sJf}31F=YpZ`Juma z=sfjf0hgH~Bso^EU*E*cH@XDYM3v>7>1}R7O6#>0V{X>*3%MnbF-#&jS62S7cIm;M z67$_%=vdvR;pLu#y4b2HalGO&Qi?Oj3qIRm57*nsXHgxI>EVUuf z*Q$DT^uRa3C?xk9@l> z%GAus{aHJLimSpoI)$in9PQn6jmM+IX+JXzXIX_6Q|YT;R|~t%x}0C+%Weuq0CPF2 zq$^AxH7p381u_dvQ zGu4i|p$lUpy?Ok+NPZOF?O?{|fPv9~zj?X9%c@}as!jGirv3t`zk@-3SG4Oo;XY@VJ6>c+a-+2*SibDoO(Mk0-X^$o6T2&db2Z<{w(XS-<=b3W5s%KVQ zQ-%W_C+iw}{E8%zVvy!6&2AGZsMIQ%t~*BuDIc33T3TA_4CJbJY0KW$TeJfwP~lj% zAA)|tug7Ct{z+EnXc1n#))zn&H|5-S%YWwIo@gG9ry2p|6MJ~69yV?3k`M9TvApai z`mbl1FjLhv9gh^Wwo35$#x=25NaaX6p(9V0&~l^kC7pruc%$X36Q8vBY^>2r#9bLb zKusQy9g_gpKoB*tcE!Jl11En1w>ViYar6}Ou{%>0{d{LrdbcBB3YZYp(IB1MrnUms zQ&9j6-kgyo^Ph$VAP!|-F5qdL z@`opJs5o#lH#Ivui7DEoSk8#0deZs;Z>8ICEEuHpN=TS6;pIj`OtlM-N%R3$rp0|j zho#D9)ur|xB8kM7bK)>SG7zQy4<_Rp;FWPKZ|N=TV*%Ltt1TL3(AN$y0OAp!hqkPt zsB)GUljqU&kH*3bW&e4*mm-#J>2c(_tNmU0O|<##?-6KlR|dD2i(&zH)(`fKB4Bwx z_I#irGSfMotkKg|7FQs{fToRc(xC7E{zo&9|COYxI-q{=U_4`wGk^Y++2`)aLlVK2 zg~eli1rE2M05w`ff~ZwTRvh{6E`>(Kk4y+vwOFh(96MFKhwQLz9m`$+uK+5QIG1u^ zk`Q@e;jnl4`RFYBPH1%4a~h(WkEaQ$D%@Wwl3kO6OZjf^G-fxPCB;=bWL8r*lGVk4b&M;`;>pwzkI6A0A>z4ImIVrdbY;~*4{%LIBS#N$p zP@--16Dvc4qBx$N^k?-=y3$;6D!vE(j3+rTyB%>6a}nSg{_!A|%%2}A00SkAP}$05 zEk;79G229J+eMkmm$&XzTfzwAfbIt9^uOuKt4TJ6TG7vUxf^#C*RAWFmbXe5+i$3T zJ3BQCTCa2(;o(uIa>qFrIk2nGefi?*Gq>pr%{F1RZr#v7?21(D1DxSu2M+lTXj`D# z{CpEzdj^M93^dt@bu!4D>@5sgEVkz2I#=6LSV}PW9738UW0ig<9Y~kn2tOaBfp#zc zz{%F%qQmx+?wBvmhH|&6)bS^=pYp%0$5xN-Mh{)Ta5@!#qu>ws@LtYN$ZI04_S<}U zscpScwMPaGS>Dkkr9f*zoX!I-OSZR8J8bqP~*9@k+umxS^(9-c0v@1 zqo9GsEWB)WO0oRMo0SSIjK*2Mul*%-dG_+o1h;qy;lH~Z$_05(F#@tqYJ2ZAE~-8U zf4$by#2mfthT*8%odV9<&x#VXO3nYQyKA-%Y;Rft^%$6f3|W-p2o%U&6447w%2Q%u z)UBMqg7pofB4pN;IS87vALS&6v^F@78xrPqo5(J+vM+!px*jgk*a2^uv*Rc z!f(b78HN2D|0#-3JW5&qUg;7f-8Ijud+4Rd#N=(sik{)ryh`;-IS$?4GzQkkBfoL) zesriIEsEDx@YvJ~`~5f@&_JQgjj40zw-9L1ox2!0uNyxLyUAeij5E%fU*Pv6m%FAx z_$*KPxm?}WUf*$#XIBXxBL8L=5qF{A_v07L>q2(K!{hCHx12u*(|+JlElN+tZfUC{x&}@XO}RD{`|-st{I_Do;iaMU7Bn zd5#gpKs9IyQ#lLlGUN@7^`^0v!UVN z-szBeBCV@Qm(vn42J_Hp& z{3q8?*dFoVx2vLKcZUdizd6mT-f1fXNieWW+o5uC5NvTPyB=t@!W@YxS1_OmF*Fej zr~p^_x4}BiBB(cqdXp)Wsk31>KZ8VG5eh*YGO{jrKFc3WO}TGZ|MRm@uhX_5+wtJ> z{cMQ5@qPUsGDp>Gm^qnBOXsx!&9QD$v1BA@R>knRpmRlHhVtxYpt6npVj@Jg>DiAV zf~{?}DURlazY(Sns_#2qMWO^2NU5yXHyBS~oJt$5EBik}($F)(YR<(pHJ-aFtrKJQ zUoh_+W6)irgEgI3Q-7`Q<6*Gj5T3~Ycfqrfa7nmA3(dq_wzZr^9*#CVCq6|rhfg*y z9Ds)aUtexz%^`{me)XwDzx%JtNwC~;`b0~))AWTQ(P@6Z*g5vKh@b1gU4l`8inp1c zEh&qGe5noB4EK`fw8bJ}7yYjU!uRVFQe88>CDtvFc zp6q$hlsD+GzEi@%Qen#Jtt*R`$6HBS#ihHZIy^evsWA86Q4%QM*PmRbefIJJw63}xrThc^FD-d-`O9MzPtYKZvuId zRCm$X&@}$*VrmVOmrNf0)!Uy`Cf252mSWi;RP9a*mf&!joGY*$kelST@dz!0x} zk9x(%$%8V^lvf#nUj>7rNhTCT+Epts*FRbiH7S8_vWXQ3K3%|#OG|4M*-54tE}Eq7 zUJl;g_(qxrS6z3e+{qq7xb9dkn!Pl!L|x-2cWqLiYH9k#hh|WdAJ{14bq|QM2|vgv z#25E(9@T=tDWoFghmlIIBY zH}%%D+Ts&VIFj`=3%#SV@i9OFgwURGjy z;6Kqu9Uqc%4!?_1rq)+4&wM@Wlj#9H)I|I$o)U!A7-ZJa&e@Vls{Hgbh~ivy!gN-` zJ{};@5-hks8kP;WJD56kjb=LHf-3S6G=}T-6!rze)z_`LUidu_;%WQ1&XMOqE9duNz zvMc{+G!+>$SXL+*gC&o7v*r_iuDm{MKU-4pSqUXIn!ox88cG>@UKm|U(5SepmZ^m2 zE8#SOTWU}OY%z|TY*msZO z`qbt$ve^uX<};%&f^ zD|Vm5XKiGy;k)*BilyspB8>ko1B|7lq{)(+-I5VX&;)Ld=*Uf$5b-@2`umY|Q%io@ z7s=b9s&DSv2uyDGUjJJK9n6W2(UeE>)aSfju$V5*;q>3B`JW)~xBhKC#m4`xRqOIe zB_(2?4M8ip^Z&USz&`;K>I3vzAU;{24Xy^1RP@;qfe6=6HX%&Cqv8!nw?bA&J1cR- z@p~JErEYd;+Pdpz-b*WXOrdUo9|eE>!{Wx19S)E0Q}xJgouhl31u`mI5*J<_YO)*% zUdKga5k|;Ul*smCQ+U{*$|COTmDC^X)#G{Zd%-5DUU`#A6d~cS@`3_)AH@qbCdt#x zul=p(jwP+8+6#UELzq$yH;7a(#N-Bd_){u79223(@H!w2P~tq2O$e(6_3x#VlrkS5b>!tKXwjLv&PRSydyZ zf^=%4yVi>gyJ$^S&bNR1EI!BLj)?@*Gy=%@d!NOBE)0VVkmcY}ZEd-0)_+vRl0!o^ zA;Te9&uf=*dKC^i58wMOlJLS28q9X=VirxM?G53M+K3xTO8dUD~jcy2LA&1g#Q$Ok!QJq-y3$Z$`MOwMqSn| zMfGP#<@i2B&dd1>7wfx4=c^5$fs-O;E=bWOz{E)23)YFfQr7?O@XL4ept8@5Fqp8I zOr%WhLm9Vh%*ehe+4*_4LHM%k^l*wiqkV%!F{WqX9)gn&hK#%KC(jE~bL-npPXYDF z^91;T^Abj@%qpM~`3Z5IkzNJv7Xi+R1k=*>A2Y;aLq7DpKk}*<@nO{C-R((;%&Xvf zOQ;n*H&mI)l+olH)8=Vm-72D^Vj|N9eU6oiupsng+OXMa(a>UQSLnpD@sAGV)><89 zOv9}{@g(SNb+%mm3Au`&KaSzg(Xu(-p;cYi@NA!a3b6(dn5Wb|OQo zLmt)3mqq%8<-3}=wIqV3O`7L{S;5NS(x9j9F|yqe+#vsGJvaSoMFL)-s_D0>ejFQoIK*!}KUL}F!h>9`vr4E< zFZA1tetZ6(jKE1!m&X>`I`1*g&uGrT#CP4QW_Z5pb=7|P3e~)(o z@_xqC@8}#&rL*NX7=u@Srat!AKJF_zhF+;oSG z@L?kFPiLXC>fS--e`+9MrbxqGt}mqukKfy)RPD0q#w-kwL^&?dUSsD6^ATb$Or2SG zDt$?@G9DI|2cJwHx3}ThoOaL@)MPHZ8XI!joV8+Mh*G0J;J{40P~yPcZd?c`icBng zF#yu5OH#Mipc0;*7cuO;Q~JpIhE87Yab{{m42n7+Jai&o=3A4`e6!`#r2^yGvD768 zK7yOaE9KaOqM;{d#tj42US|@QqavNmg{uGEOWUXHD zyD^E`3Gy)xjClq*oL*biPYD~o#Uy(jL4+4l z;*=Ro!AHoNqt3hAtJZFP1-PHy1JX0(ApsTx>ixzuwU~Bl-11Vx>BCe^Tn{v9;?y4g z<+y*yaNAIybJ_5#`_kY?N|~;r|5|)iGQKXp^f#MLqK7vA7YNo5O6KW;-xdFKH zTbqQgq-gkDQcdQjC<9U3zok>{7t-}l)$Vy+8|k5|S;K!f7B7$eUWYn1k~ZY94SOa( z(|n-w&yCuR(8hOg$d3z~?*4kqk*&%ahtdpS8kyVru61UZ_wS+So1WLQ;s|Vrwn@g> z`3?2J&WP3RVUgK-ck=R>4Hp!I){~@)V7!TzDbDSd#HoiASx}#k@W^GKc3+1=Oq61>}gc|f>orFZ}6rMei8=zWd2GM_R}pEhobZks%G zG0?A?i#KFCi4|$5`q5bYSbO2^dj;Oh9_Fbf4#p@0CyB9J(d(yar*&v002R_Sfrr2-Op7lRzw=-<8QI(NAuwg2i>I!Y7I z9wrPU)bBWMj8&L$_pC>e9*RhKLDjmYM3|6%kJAR~aT7R1&<1Q{WcWpN+1nw`f7X6^ z?MHo0y>TXS5cJ8UCMSCqBv|PSBH(Yu2vz{E+m36}?pcq9oH%e}Y6-1g&N!W0FdT0u z=fbb6S5Ciygve{%J+nNtzcCi)dAxGbP?gFi`}hv2+67;VL}{C{7wmAiWjWiD8OpO= zHwT1GuDk#skvS_N@HdVj;xr)i(=4eqFY4rRc7?S(Bs!!_O(rP=yz$FZ16gm-bh zm-TK7%pQI}uc#7Cp9E2g5c`T_ zJ*Y?P;=2flpbGxm;w~0C6345FKpt1uuLb4eRR?l$QvOswOpfcGPgNg(KpeAQ~oYr_y54l; z9I_73>Q`P7X0Y=rSI`zdR{-?1Cve!WP)Nnj5a znm;6HSY06koVZeCh%fGMEeHdG)-{9HH~%-IL$Q<^w_ZJ5`0^?21^mf4MX15Slk_Ot zjn3)F5Z2MddizqxEFsfKrIX*r;dtXq^dcb_6^AE-eAPu_F0}#JiyFPyY%5nHNpo); z*7t%$Q9%B%%LAjtW5nh%bMnz>y$QUe=_H@0SWgX{RLqgFnH~?L8dN|BU=cxR@|k3v z-~K}WQ(_y&B7t-t*;0iMKY@BQ`_*6DFRp<4_=p^KZZ<~a}g`x+vM$O+x6udG{G7|U%-AmnTykAM} zBxeg-&yA)BEZ)tzOgzc!_2-6O8pH`?8EKF>d{0b4z|vwy))fMmzn=`I z7xi>G((CCg96jn8XHUWP$1;-Up7-%jz3uTY(-VMmTunVDt^A_c%~S$zgHZBQL_l)N!NDXK6fhI-h0R<-c7kFc20|q*01ze~JW5oZDPJwu1X+ zNxAI>z~71_OhT0|h73!-ye|@GPdv=$hjdhEhKcV;q1g~(!&*#lrV0gDZ7*#iEJ|(c z)lixaZQKF2=}r8MhEMd)^&aa9v2nY{NG_kCl$vi>q$@pMPi`rQ9;&-uYe%>U9={C) z9@G=~^+~?#_7z_t_chAy?xi3rWh>m}GDk<-{lk~OPp8o?z3K=@UJWvk? zQ|sqAbfO1STG=q5i5xI>8W&n(O`k@|?~-J9+&0@T*x(JP?|PCHaw_VyIj+xcK4nT5 z^fs)NG1SEgSAl*NTzmQHDD{nMvdbHE7WcYm@bfQw;N_CuJi9$GDFMcrU_~C{Y|kQ2 z{o%;%J8dU--p?7!?8)k#LFScm0d$|F3UjL#)Xire7P_+`pR*=e#AY&?Ul^VW_F4Cm z_gQnc@QPej;b8MMFTonCUX@0~Vvm?KHn(iE+^iPP$&R!mPB;CjgaBJWy+=EzVq~W^ z76okRh^L4uIV0*Dir0<;-`86iQ(f7D_~Qp!#GgfT@VKPSOAz_2wFzu5&K9*uK+fq0 z>X?ckZggED^me_91e7Z92^r^Bk2P6+Js{@NXCY$@${SE5_p90-A(7%%iPvl(R>6x$ z7JcD7G>JdY*hbTfh0}jDUb&u-qiOmaEqcC{1u5y~U*id+M5xhY z&m_&io0PR>jY$n?YB4SP(;e&)6po981$Dt7`&9H^5L`qU2fwEXF#VENNbK@+B;0oh#@KrXKvSaXe{X}VyO|gX zCwN%zW8B{VyU#x=6``*=BZAz3p+$8dw5R2;~a`(yWz z$&(`2X3RMi#l-`yp?STRDuWL$;rvFC-?h8dk`+eKQfjEkbBfMG!A^JmbFZIb{oOsj zt-uh8CLr$NHralS1oA};^hI^Ac&;1P7f&SZ;S>apLulGDnqQ9p3X8!d_vj|&T_N3gBd-L`%&-h3y zWRbX)5hq0CzO)xNz}h0T*38DscFY?S%{@KFkpMwU1_GG3itio>9uU2%2|}nDvLr}F)7y^S znx5L&sXg=(yUJ?GkN8z=*xVZ+_7$A5<<$*Xh}6sVe9 zoAeicI=vyng}^Asj}2c!Q0hQLnz3(KS^Rr_Xr(+e`1h zMfk>vZ2LhJjt8%BzXyzKIzKGX1MM^oO6v$vlZ$3fI^DR^^_9h`*(R<+o2{cWu*@`rJ4}gb5Q9AKd@CvCbD~(s_v0|KwfZB#~Z@T9)UTAlwkY_;|u6E1jFy|Z2k*4fFqLp>< z5jf|+Ksd>sBS)jfF(6#ER?yp?@OmUnNthEXevOmmXnBQU3TniAm5Z);HPAr4Y8D?U zMe$Tz#zP37MTaEi4^b11q1XY4IQ78q9v3(6+aTAtPovUPX(UPl9S9LzA;C{6H`KTk zNx=4fxG9Nz6p5uBE>_4ZGHEnCOzb*v4G;mzPKgXr5K6vBPo9`S8PCtK1{!&HL0Jfp z6G3Rs-H;)@#Dm=i@F!Km1dYuxLQ_-OF_F_ky%1qp;F1?}5@$2=JS@QABFf9x$w|M} zn4`8YS6X=EN0Zznz%HUDY;u|mL*Z>{jS%E^cEKoNgA&iQDVaf8NP$4qjW~-mVs(a* zT?XFlyKsIJQq!@y94)!z$(O*-p=c*P2K!aKb&t*OqX(O3Lk`(~!`>i}W-ip7%xv#x z5S^!F`&4QD!K>)u^n>c}biYuxSz;}dY^TD0C&w1U%Fzb~wykx$E1k}Z2C=XxT82E4+01CmI{&s_4;%TRvpqk!aj>$Xys z=}B<>m{8c$UJTtX_Q{XygJM&;HkbYRTMasXboYMi5sxs)$3*sy#XA3|NN4qAoGklM zv3NhzJ21+d4_2=bNP(%*T^NX@SG;^`$B4-9Rij|v_;UFJDH8BB+-Hya$GA9yJMvtL zW6OuFHKI^t!Z%A{66hRa`K`)RS#kHsoj-<$F#zmJN8-@jAKR_B(X=wXd#-B_szUt& zg2xWPS#pp(sD(*@A#;9 z*V@pVB+n)f1#7>bm%QK44a^xs2>BR3;ZT+d5F*L*Y+)qKdAX8AQv&*yn0%c=@XLZc z4RzeV`r4h=5OkI!Mp>9&x-`)0B9v%uwf!EkQ&Z_*Mj>I2TBIC~rqSRuhu2urTJ;{4 z5zLM3Hus(X=WjWwz96}6$g~S(yP+bD=)4j@(-op&PFkF{;``ve*1d5YjMIzh&1K$| z_wd3R+t{k*rIP1hHnRMn@<;wZs-ntCJDf%EG`Gl{h1JN1t=f{%L1NC~eBlX?SEPJ` zF|Ez$FCA^=Pbe-5S^0$p>qeG_y*0f%uW9o{cEt#f>H#x0U!<&+)Y0npG{(=1Vpr2i z+gR(IKc;*zADp&$@F0PnV9QIG$aDiWguQM`g!J=Y^jcS|aez0bl2*rwdaNHUG}c*5 zaMN%EMddsf;uK3|JV@;ZA*m_^k)gC0F)_dOvG#vzi&-R)VXsBI?8D3Fq>fi_Bc~rH z%->8`El>Q+W5$_3QWIGyA5MRkqoaTq#HX6QM;$w*_zAh8H{+#Bnq=va;kuqyUTrij zol}q@HMwK6GiV-CbRy?=T$}zvQDYG~w12xRgxk+nZk8mB$I6C}6T-u(KO*ts zZ(((f>l*41YJWn4O?L@#CQ>I%jnE5&k@t?Tg>yHg*|@h&hjzxq$lenSl?>^R-xSuh z(VFyX8UpLlB!MtvyJryl5y5a)6Pc-h?~WVW<$;;X~}5UXDFSKUEi?$#LF^gNvG&>T zkX2GKHSM%;xfOSZr4?P@M}bB0=Q%hE$WmOs#`K?rLC8XlE!Bi14B~{(X$7@Xg61xqG@19z|G`v{unk@){R1Qx5=;Geev{T zM+YQPjL-E3_1v1;+F(8=8HM=-bLl}LFBWH}cnI1PMiel|^MpIoC0gYYw{v5P0m z$Qzt^$41%r;>N}n?~5d2e20Yl#V?+5Q<+<%gumWfKXEKpHms~-1HRMTXVHw@#=nFx&*5tW@%7zG_G&yXzI zs2Ng=FG59)tDr5>>Qcy2d)sgJm+6#=4}qohP!fS46%3RdDdRaw@-@Ae zeEQoWHi|xPnz4UwsN)nVE!MVA9ftWm9c?mdFJLPXRB6Z+1w1OxZS5NxpttV(V!F%h z%|rn(aruV3e8Z9UxJlZ>>xqq_Z5iz%fnP1$QPw3U+HG)LU1jOz6A>bxl0k#di?VJE z8(uy31bt73pb}}j^6FdFP^$Q7S4w}OW^kItC;!i4`W&S~n33L8yH4)3n{#(IckAn~ zriFS}7C{@q=PY@_sM8UN%i|XvQ$wW=NI7!c4AXzHO7dt$4cld&igCLI9q1tKK?3XC z6M5=5dpabuLvviXw;qqBd*HcEJ$gNKASySWp%!E%nAS1eK6#~+YcD!987+C2ZrRg+ z+#z;>`y5WOXTP!gE3Se$+Qp%g+?KQ%z%+u>J$-hT*?EzfW_dL?ZTY!&%mC#UDDQ?o zIgnD4dNqxe%vm5dO$;?e5KGxi98A4WZqwrmI6(~c^AoPi-o;Jp71mJp__nG{)?&2udgV!S|JTk~RVMR9Ugv?2 zx(@A(a^>TRuHSrwJD<@X=?xlfe7MPMWZ=hSF@yVdB)dRw;_ZnQi-w#uvUA~hv2GA4^`<@Ez5i1Wii$nb`gFFrL) zz{&%e-=6xi1r&LLFs$g*Zm|+73PT-893ymaI4q9l`u=7KB(3MW!YoT(ZVlPQZr8Cd z#%a1LUhmrXC`;+b$62}{v4Eu+mZ3oGILcr^IMk~tT zxf8+i_a*zM{28Y2%B==jwLjS$uJR2Tzy1BFcW88`s;Tic|Iggs^^ef2Kti#Gm2vP9 zrSlayJB`H6?%C=Y-5we<;MKCqWZxefwm43cnJfAo*TxK#`hnhjz4gwVqeSuW^*KfK=HMdtCsd7m|EAiIo31gb=xqmGh?#_o$8J=$sp6!UmCC0L`JI0rWzr`3F!3!RUpz({E>mzm$<-deDURMG7YyCj+6@8%UvSg z|C*(HA-K2h7-GzwvpzX}F4NcK@^X1ccfYrF;RUuNcET60IS-2Be=0imV*RN7X~I?e z*1c<~?Crk|dlo~u(&zEe49Tx#d(Bz~y%8b|tWb&~%| za_!#V-%Fq|)h3t!ig=nF9P4jBq!@Y5M+xwrtSxj?nyGr-E~?^phRpptiRkjvq*pz7}C8~2^p4c>fV^Cv`F zxlK(lyXF~t z|EWx~1jTh~(|y1ivC?w9TDF0Tjri_AdGbu-UPJ`KYBm2<8I~vo#8?&a z#+|H=f92c% z2L6ts*!Lax&k&W5f3#Uah0nFnl#YPjDV?@~?hX45`-o%s zBQCYvAkX`SRrTx;nLb-C#X1)V-?IzuJJ6b*Uh;?&N%C4Y%~l(pDT#lON85s%LL_ zs}7D>araM3{v$L z@YYHD(57IVvoz%iktzD(=I8kwzNi{fD9%8*V<|^#jd`zx6OOb9A~#6p$DmAd2Q$IG zV2otkyR5e4L$m25k;N}|>eKmsg=^nQ$_W@^%UQ6Z$GIKEAy^)vlNvTgwD<=ld~%=Z z@`kKaDJSq;dnAnJ=z+&q*V9Z{pGa?}pwV#k%(dpR4F_=CUS!EWFDQg)I}ZU+r2kaA znj0fd6M&@l(iF18%zV+HMJr7{Lsu}E=e$A)3; zROe2-8Hp|UU;Q#qT+vPwlr`K6p6H^d7LLq6_vUZekVw53m<9mQ6nL=t;_vk$GJn1_AIu(cgmyX#lfIpX*@L021BqW zC%lTBGzF|=8Gv5j?D~2X=s!8KUVqq&8^G^N7o)Q~S8cwu@5s3WqOL8dg6SM8eMrh} zj#$~DsPrlPGx)u7u&nRr52ObFG)jACLt|m+P~J-!Mdm=^fEHPj!$<%>LDoII9#^EX zIJa%bXTbfC;67S>2b?;6s2Qy!`au!?3m>{g~ zT82M-MYS^lxakklR7H(H8opsPr^MhLJ_L5)YH6}U251!BuNEJE|-z&=|BQ&^L6tnWJR`-`J$52g)RWtj)XRUos5H~f} z{{u`xv%XUz$S@O>J1NWv$G8hH-f6Len5NB-9u_rV7W7zv z=VUuRCd5FC@6N)f#4E?ecnrs~`|y*}MEX)VmJ`FK&2f3$bR}q7^h|g=J`Y{KByq*f zn+D<-b^o!9qvECm=Cm=*;Ybt1F@KIPSUDyPObupOdQ5ZJklcOYSk^Ea(wuG>^Ex~%%``d8^AJZr9Q8B*u=B?S zI`%C%=$7O=!|%K<13vgkT%?cTNqFp)Hq><_E9v3lyWjopD;Xh`o~+^-gS|wjeFU(V zGM#r+rIRI+;p;vIG^&yFPUV6Q0`|$~4&wB2Wh~IAj*`DR=(=J2@jMd9zafy98RIc* zUL_o9#^=!ahC%1aY5MRvo#T-{hMk^6XmGqz$<745GO_z8GN-TcssU?YvAuhQ0pk)W z&i%hb#&fZn;ZVyhY-_Xx;7jb=I@|4mdF7h?r&}lIq!%jCGmNty0FCTck z-{tqCMtHS(x_9}7(v-2i<9B&`g|M`IF}zp4d&zHk#^oV;F0}9NL^~NUkB_3+nWKqK zm2cZ3lvwT$4napbD`1O{0ZDO}Vunc-AM?&b82L+eh&Vd=m>s?Qh5+|$#3ShrKz^Rj z-Fxr72~zi1Mhy4qr9@*~gbtfeU)=aU*q0x?^OR^}S`0fMj{x*DoXvtpdRcBKc=M{T zY9MJqBf(O&XYs(Ij__5IQSBs z=?$IFwA?e|R59K&3bb7CLowY?^fK?*#jtUcLd!8}KImPSY4XlGk2WEGqs<-3FfVFb zfqBaC_{8}pSpZDTyddkuJbwJgf1Kar>|UK1)u5x&3o;!Vs?@P_`NteU>7t+p;(|^D zwzwytN~O*PKX`Cl*K3ug^nq8eULCA! zLMNOid7fRiY2d1_I$+Q&>oHmyJi0J?UB=(v+=wSe^cB0lFzGSP^nG~K<}l_f<%QmP zOq<7z?}Ir#agO(W!I<4YIMWHHoBi<9$>Oe$_%P>q?lN@QdEEFM#`5yCae3tVhQ(dC zVKn2WMP3ebpDpCy?mz)KgWyCqc9I3aUS%64STX&@7hj~KJ@3Nz((rBw^NMg-TBMtG zIM#=7j89P(I!vz)vJjBob}R%K(DBtl_>ZbL=_MND4B-_gNaDFOZ4M)y)4(}wXu4tX zm`2#fpS-tk-PT=ztD3M-lir|MT^TGaX$b7sP_)1m9t{nszpR{E)#8wGsJ^qY-rOB& z7m4mmc^`A-A|6~{JmMYhgC#yL&uKBQ!;!{e(n{$OM;)1iykWrbyPTGfNRoq&FSHeH zNaRUA&uzdwt>wE5K-=fW<{RS-yKezFH;po^gP3lwa6ik*<#$KR@l(_Ro$+(Z>0?5AX2<6?yWbe_tAiYi$2SHj zXOgl@y2){Q+;uTNhol>4+7d3OiE)R4nyS(GXALBLr4L6kR18Pdm^ zF0^|ii#^5Dfwnu*Zic4WoiZ9TR^Di6`&hzguWl5Nm>$EFixEq&0*))hu#PY+ZCw77 z(oI?>^pobXOboo>)1v_ydcGmR{eT^B3~-spZw#;~=qtAm?=qvTCEC7p<8uh#VYpJc zF^|)M7=A5;(&PTUH|ZhKg>sfqQOUbxxLF-k4n$!V|--Z zaZdmu(@Ddlgcz01VEk14$V91QO)6B0-krFVHV$sm{G;ecrI%#t$>S4&9X~(p{2cS) zdDV%Dk4YidF??|){4}^+PR9)`8!+NxI8Tdl= z9)_gl>5gOg@vawmbRd{^{P0kmIeOPTZQ7OwkX%E)T{q)_E$@ihw=nYUmm9`APa`gW z;pcwt=ll_%Trlf4$6I{T`_fD^6&&XTU@FFKCRePF$Efs_PrKK2c>+bcbM-OY4}9LB z`%y-T=OlHFv{7F0P7}U+V?aicrGK;hZwqH4;6$LX3rG}^Z?ycX4i$( zN3QEJk^74KjUj!>F7GFOaqvzvgoncs5_Wvta{B08M&##k>GThJ_5W_iuP_c9k>+WI zA?aL<$8bjw0xmb8rVh@M7edUMU#Vj1Hy7UbzW0@XQgS=PP6cn{2@OlzNjX7mKNkR_ z1TLkQa9htl`z+5+(io+&#%Zu&G{e#+(A~b0jv7#T;nayd&KK(#)7o?v0t?)3*2Kn) z*6EgXPFq+A0Ey?kV%&0oi})Be4X_Vy8mAk^JUK3pn}_o-S>u_!aSj`QQ_ucyYat-5 zCAoO+dFsq*y#luVWwVsA{yCN!SkZ!)OMhzoGy>=sH?CbzCr0ighA4o3M4Wz?_r1P& zj<+I>H_Y*);xS(gJ0CFO3FF!6a}k*1{HSI{<9>(XZ|9B3zMF6IIU+BcxbsJu zb}*a6$Sh^mhHKmlfF&EaZ`wJCM*!0bk0O#`($50307xGLaz~n$>8N}(`hJwr$F~nZ zO3q>FCHV{Gh-_g&lUnbu4ssH}qX8BQJRX1tuEgK+#B%!Ra~k-K!j<@gE9Hx{p0L4r z0{5g2ymgaqHPG%~N5Hhb-VivYh0ofZwZXbBNmh5vG(a2c%@2PND)mwIKUu!PEiDMS z7#sVC`wVo(=Y1|}DDi6%qry%%jC=^^c*hMRO~mDR(s%=i1wA`|k2mOAhv83nrFEM^ zkMo?j@y?v58z12~G?AY0BzY#G&CA)(IC8a~i|ow=I(>niO`M*^&Yb(T02sB3DW#Wi zNV}k;lS^-T%Udq1_Sz?gw~+WVdYIc`ai(mI<0jpVN>w440=xexuSzXM*!&?up#+jutpL zc7y)t^okZf)RC_TdU8xe_0N&k00xj_fA=@_%E9KkjKBJ}?~1rz0NrosL-tkx@#tcF zRM_c;@aYSWDkJ7IA8>faFJqU5JpDPNRTY~@8q!DiLp`y)7>?sN;!ELe{qC$+iFOiP zCjTT^i?n_G`tUFrmR2eRUEI8RGkyaAGUnHv9cVlAv}xNM#te0Axnm12w^Eb z$L&zSPyXajrjG%k_(?k9qzyGh=CP9wqs(E#SswHj2c`2EuXuW6Koeg4`Qbzc4~`2t zHpDZDdXhAsVbC(zI}5LX>a59A zyCx=2^Gt#I=jdoaZAm+0{MZ4nvdBw~DZ?lHhAxQS(dAE00AhcLeFZ#yC^~RIlbwOhZcD`!RvXHm!9*pxRJx~4>kVq>Ra%~I^=RVp6kx|;|7Q6 zLMN#C0)P&*vs3L<$gs4XlzWKn*9kzMNRw77(dz>WTiSWPfZ>Tsc1Q0kY!tpPe+gg0 zjp9FUdLQpT{4l~L!!Fjsf%4?u`4X14j1@zxKdzTx>DY0aI-FNFZ}xQ z>VtOq9RL*TMZnHZG+GJHJDPF?#jF~e{h!p0d!x)RQOOLTqoj7JPV zvO*K+lHqUTyvy&oH5Su_UB3>|6A1hhMIP_THWqrXy!M)ZEFs4rYUNnhJvP1p5M4C- zv`36bx_u4Lase>3Q}xth+&r8BJj2R1cPMz=4x8uQulPL4gl_uevEE3>{84SVMMV!MW2z_23(~*{k!Fj@F!ICckh?7n}Jd?lU zn|e7SEdq2(N1ENzqJAjm^qItqI@c2cYv%AF?L_<0A9=UmZJ8eHNId!u6OMQMZgbi_ zhP?=&e{e!TK2E~m=l&OK>;7TrG{jM8&-9;cl?Q<=MQ!3 zbFp00nBHk6-I#V3(B;g6*R(vQkwN;;KLXUR=$(Q=w>|lcpSF{7NNko1fFZ>Ueby24 z^(sa`%JB@(pQmv&nmcQre^^>hyPxqsIr{L!WQlbhmfvZSKJs-sP>zKFhMtRpo7!d2 zR-6(f-FhLwqXA9?j5mZq%ZK2u_K0+eK!1#LK2I~@X1JUf1rIdkjhSfdb_e&RJcbCxZPnx8)5X*BP+GH zIz?(T(rAe#aB^;ILwMl(;wF|naIq#U}upxD2$Ik))obfGB zRjGWzFVaCvy{2(FAM+~Vr{O`YQEx%Ge<1|NHeD8bTdo`;MN{_}pk7wlj6FrCp zKwt05@p*hljkUYvHHy^9r|qyi818d~#-A5C-4RRjjFL0UOB=BeNJok?tm%ybaOTtZ z>LBWN`58}=k~5x2q|L*TZWt|T-nDTViV4#bx+nYyp(Rdv(ZgpM10%nt#RCh0RNusZ zX|SrxRx85s+8`bt95GvN@>e%I4Y>VjuVnajx&uVtq}iu*Xyn1MSaX`8+dq$khn@xP zgAYD9)(HSLginMq?6gFnKQ7a8L(>_8cNj=rZTLw;Ry(CD+Vnluf7c~%^MQWc{u%R- zFOP$(uB-ucC4WH+faX;rsjp0#u*|Q+(uZW7E@@T^fT6~_Aljt#gBM}Ap= zziZQES9qdM?0f}zcA-kVOSoMb=NK`r{MHlnJ&p$G76O`(b}R&#clb3ij@>y8!04J+ z0B0E(S&csVNw>Kv`?zay-@IWfZWhJKVAIoJ3+F`?pYqKSqm>%&tJ#={bA14uv ztHM}Nb()2M#08=1KYOH~m4&IIKL<)R&&k>fAfAW^_bpus-@>X$4lh zQL|bA?B?8HO1*7d+zy^kKmGKD&;IPsz9rLkr16(xx(9mAMK2N$mdAZZVW5@I7 z&!;{>xyXWphn>TQed!S&X(OMACyb|DcKjHA!p67x(rFxF$+pYzn;&x9$MPH=2F(K+ zc*OXyeAA}wH~)i@%k@y7%3lE-CITI7yK@broI%jo{sNa>$CQE{q}FnImUdfz4keKo-_CF_5D4@7<0`r)?9PV z^|6nAOb_K4PNteLYLkNW#8V#0+N8rK|JUpD*VmLQ0%Z~K;%Cdf0OdF2hnvm{PT1jd z>4JGxi7`w_Wg(y&2Zy}n9s~U=$PzfV{Qi@DJay;3-ofieO!c$m!+4ag(PB!Q#`aa^ z-Tte~m6zJYuefm^`hP#J;$7A_=@`|q`u4ZK{V?$=mp1BzPU!}xil5uEc$)b2u3x!n z!`^3@_*HkYU7Glbt3J~P74LZ@k8K&2amf5Ke5T8M$8=eYOg9!|3!B&Ayyq&vD(O!F zjIVUbQxkp*##1)))dQzFLLC?zDrBbf2$_A*{qisWvK|KXWbEW9d$6nK&#AVtT4c-Y znQp94%ZWh?fmfE#P4ygsOFuuXcQATKr5o~e&f=s?%vgu#cV2kMVv9QT%B5W=(zm_s zZNulfde^QKy)e{K`%ZCysq2_@TNC@(F0%nhBrR&+Ek^>mGRZ>vj*O`Mfg8af0^v^vgX-%PCK7RljJ{1V7x(UM9TPmi~EN z>7Un>-(`?aHsQQ4Usd#PcztJ;uN8e{mHaT5CVoA-R~=Wnrrf4l>f`v?haCv|%;vZn zA8W1Q&PjhRHB*OZSx64|ua$n<9qiNd;K{mljVl1H#a1WxeE_#RKbXt+C|@p<%H!Pe zI`^P%Ew+Z!fG*9wMvPj0($9^b`DMDX+_IJa8NNEG6ID4s>570Bn!}BPvg_oganw63 z?FBYW(6Xs-J!j;>h-$+wsxA7X(*i(wzTzvs;(_wxQV-m@b7!c5OUklomp>FAVk$@6 z6<<1hcJD@CJ?ON^`1EJ=I|}9IKwTNI`vpp(;p#vs;t*3`JuIj8GSTfPtx^x|Ql7Y} zu5;aLb*tuKFVExuyt3fAFIgnRGnrUB9R{Fyc#% zT2!n5H1Qt|zT<>dtxGp=ug8kH+_se8GIp%3Cs&5ebe=rF=vn z-{DF^q44C8UH^RBcdn~8t@GFB!4w?Y<4qv-?^`AEN&(L>!N*kopChB{pBL+B^H6~h^ zY4X=ifBNiy=zlFb)E2dKpU3H-G<{}6N3AZa&Dov(!jw&y`bA6neF2ifh6(C<0`%nK z8nvtu8j(UWyJX^v(+tW%pZ+Kh*+Y_v*PQJIWW93+@s|zo?|o z<>*{L;NdUab56dk*gV4SWOEKNYW1zDk9|EBn?AvZzTWFKp8Wi<-g)cefk7vnPK11Q zkY8rg37VMXjWW5UCm&dB$U2ehot7@|e%Y6O*>IQlM?d<}OIHDuS6KP8OQ(%I=taTH zF4;H9@)^D*@bYd#R1Ny5;DPd7E7?_#76M!y(1JiG{+G&RUL1#Tw0oc>p6DyevzRWH z2FJOnW1vHbU0W3FqD1Mu+8tj)m#zHS{a2%hv(YidDCpk4b1!GK5_BI|{BTobu~Cz1 zAI73g@Oo#jz8D_cTRz9vaiH{i@RIPpE4<5*pJN~T*(QHowfTl`_=aKep<0G|O1E8X5asL_GBZq(X8S$c-e zbd!M^09o8jM<{HfWgKt)`mg``(|cR;YQt-w8tXC4l>I1Ji?GE4U^rk$l1IDC&R+^q zR_CA6iTh@o?g1TqesY-h7)P|k14CZP=q&m$#+vjB?rxb3hp!F_r%jWiZWPqJFvwT9`3=8PSK9vB;cJHa8li4lET2=Cdj!b6i?oX!d1~0v(&fAV zz`E$+j8y81+n~}_hhiA4hEeWeqAz2rJM?!8pWP4hd_mDMxhkgG1XcUty{(SH4h09@ zPoRf5j+2dD3ji+rs~%1MT8MI-(2wLE0`C8ygSw4;Q0h`#EiyFui$_n$QkO3Gm$bWI z=p(=EHGc1V=@>&lm)6>q#p}Ul{`ab`^ve@v0r1(7x$om<`M#y2Sz@ z7DU6NUb5S2{K2o>y!F^ufAv?Zvkp(5I~ezj4n%*UM0=0CR;=DQz4%kKskKkN_L|RL zKYVqtOz=EfSmSp1u^~;0+I4c~rmQSp)R7+=`$l+9?y~)6NDxSHsXIyR|d-BNjDYh*#e@xi!D>f z{v(0?rFGRjBp?cOpXli2hYgxw_RY}yeKkq#QeO`JS*RvZ?V9Md@A#tAjegb#hYY1Y z^|NpE5AAK06~leTc;!@|4Od>u@%79z&kXf`{nvl}@bQppRqbjQaRspbi_p$=~8=)w^W|0rzQRxFH+$4czv#dMTW1MV33 zBhX%OY-aD$EnNUyK2pcix8SQ7Jq)OXKYAFD4v_2xGhW7dSkI~Uv08fiw*^bCJ(h0_ z3=08G9A!H!1T+cyLO>_(EQjleFRIOLk~y)9*Y>uzy=|CmAAb1ZK^C4JtYVGra`e2O zvsTBHekjKNsFqi0QYs6hY|}(DTsqeTC%){%4TR+#x)ule7J_n$*EYyWAT2;jua!Pf z-|eo5=+heI_nZ25@=ovVO+pTNqn`FheN7e~A9&HBond^2zMv2GHrHwL*TRw~Lw?QI ze9iFnRJB9LAmi?}kQ-f1Mi14buU(4@>Cl%r`byt07$xtn(+OUvRE8a7%&wO%%HXDK zj%(q^^0fHZFk8i4nlGy>)5Sc(XfNZ-HvpK_HO}zSEt6aDEto8Jx#f7>O@*{>j&;83 z|C_)0o45bsU;K+tmlx7-C!jib_qwUNY-YI1+^vneiW-$uTO1dcg>l^8He3-XD`wp! z_)^(*OdJ*hI)VB^KqqsZq=^%AN>5HO$il`G{Ga@je{wiU>p?+!N6020cE#~sHONLT zZ1NTFo9D)c4u8kD>fC3TkfkUSO}<2M^yzro>lw#%va!p@`AjA*I8omuYpk?u0jZCb z^bHVh_$!YX9~OWb4<>)chI}3`>c|U*{5oEB-0l~(eoRy+e$Pw1s3SghQDHLul+9x} zUyJ3KtKzq+ZAskBS7TC+F`fZHcj>&QT?Z*twi+*6+#DNiUGmxsfS6o`_G}R^`Jnri zU-^~iiu_dR>@SNiik>7HRs)#Dtm(5DW4hirz4)=*r?O@JM{aKqIO*b6Y`P+#uMhIk zz;F!U&*!K9jRD1z9gJe4gBSIDva<*fuXlv{(HDIq;h~2f8r~V|UIf{|LN$?yCnmX( zW%F9xj^E&1{x}ZZ812Q6#X5ye^~P;XhYgCaWOPo^qZ1yT#)+Lv{yJ{7z!QDzTi-g| z461kL>^dfVj65!}sRt85|Qbtzs} zm+KTy@6t3$=qZJ|99$keb@<%?Ede;xic?c1`r~?#INhdr9=Jzx=HD@NQq<^ViowHTF#Y>T4e>ubX_t&gj_0U+|^G z;eLmbVs{YiiKjW@W%s;C#vn{#r|cnID%NVr^qDRVT9h?xO<#+1ZhG~3c?N(!0`N(H ztW2F891B0@gUx->P0}qF0J}5YWC;fVc<904OnDLUnaXhBsFStnV1ajh#`j<||Etnn zm%4f3wvLBz_(0XiMX$lt6@j9@d$bUcT_Yy&|YJ0v+&;S5H07*naREzN>yKWbD zfFAHVc}uSeLsTCLXoAo}K%W!q3V{{}ULUzcrPod#C>Z>};3FKH+j@22&z;f_UZ?BC zyDXgRYCJeivf7#Wbxi1MrJDG;%A+eidUwv`FUmM%xv3Q!l$`R{VpMw^_kt%?|HCiv<26KA$AWIpHtB_YFiQ`^K~7(XxU#XzhbLr0BB<}*9#tgFqA); z4jVLLq71H!uDJkELA_hIPkAwaO7H%7p{S!H@4B9XYJN3+PwcD0UWeLajgoyU{{Tb=yeH2DCWT?>}gP$hc~p#Cx9;FUFVbHu3V) zyM0amQxku2AI@p=@i^oWr4HBC_=rWW#jeHa)o&fYw;soDRok4n_=uMC$L-(vjo-Mq zqu7hy9T&a`&~d^^%6a#y=^fL>FIfO|B}%}<3nS5ws>+J~@Dac$aHdfM$BSxah^kv} z>|T5|afe}zoVET_Y;Bo6%L@)ano&-=I(CMIK*7Aczsvft5b&=KvJg-#?Vcy{#0M*? z$wdnRo$U231yAj_H`~7WseEPtQ) z)%Wzjs5WwWe0ZqWpyNp6zF%y*f78V8`KHF%v0e*&Min#j%dl(evYeT&H)j?j)Ah#9 z@Jr&lFFa#Wj!iuTsAbc6D^C11zZPr@W{AJl0>Fz`F=Jb_kILmMTKXE`@Gu}cdg=w0 zCD&lh@ylYZp=+(D6}LuBTgFg3v@r(IEGKQQVTzuo3hMU-j=nJ^7w`5W9yYf*e*jD{O+IrM01EC~l--u` zH9Y!AiE;P0fBUy@z2hD4c&5A{^PdIWBQ*f6FFJxlGv7=nd`(ZRbD-x~(3HX z9|P!TqxCTLOA7(Ld)K>kCTs5(>XA;H+azOWLScf@c|Lfk^0T$-z+W|0y>UYab-Q#-_)zt&cAxkqYg7Mf($_?-v0z;2SNb~Uin3y% z6ICo0j*1~2_5v-XU3{gF9E!1YBbMblgrtsxVgn}2o9Q-4eb0p~R|xeC0Oqn<`(*dU z0CEi<^<(%k+Yo2&0w5OQvXW+7rbh?O{9N~na#O|g<%OU-E5FnYI!Jl(xc-Lk?}4l@ zGu>F^Ie5ieVGMOF>59Ox5GWIYJ{~|foY-}Fn1z7eNyd#D)CO&m;U#Nwku1Gg~bS z>Mm~v#-0J7BFS{}K_98dyIa1Jb+?>YpVGcpX^hRNp;ZkB+0mR|m@pd-&=gFKkU5{?$QE*4nb;DE1LCgw?J|Lpn`PIxZDk z6TK!eOybXwfxjwBKT#i)zJjXXw5zYwXX-C@ zCVlmfCgqk%pFG~~tQPFDsn4}|Qx3+{eE6LI@LhiSYHYNDlkEIpZ2W`Y7`z1&{pa|^ z827T=(?2~}^;vmv9rplCP4slJ4k*7GfL;`v>)^+1U{bpE0w7JgSMFXtV~Cy2aYIAP z$>CAGSlN09#{GB^qnksOf2%lI>`XVO?sN2s{TSsLHS3spMVVN15+A-XP-5=x1SUCgTX2M@w%KBOtSoSF43-h zVD|mV#IL-=aU?&_30`__Zrf>2^EcLUnyim<;UxI2+%NZ z?JLQ6*PX85l4;HYK*jnNWw*8P?hjw1!%C{0L_eiYzN!~nOQX&WvqpdQ#^}XoeWn=N zddFILeE0r3ru-WNih20zpx*guveBhxeSWV=$#Z%vZ*4$?w$pp^%mT#J)g=(niVb-d+|$qSAv=-DZY)O4wpN^4{CiQ~+h>j!&sL6;;Tr>G^3g{E)n6Utihw34O+az; zn9+u;V^Wiguu$>ZnIxSuNooG8yMGXp{IBJT9CP3e5rf5v%lmo>2{sx zdBLND#u|jvCVS1cLtOkF!?wn_h_)?vZuM;2+WzR}{BrxZe(SfMEuO=iwT~eF;=tW0 z(M7sWwwJ9zWt{^<}lvFT!gRC6@9{ZD1WI zopw$58dogTTfkYPi;NetR3<% z$I?^({@?$5eO;XizkWbvLHc!yPp)R~Ef)aIMI=D)EawMk`E2F!Z~CThO5849)Vw%T z(0!`ZftmG7O`mmB4>t2(s>|xnV%Bg`Ut}!=^x6FAR|oa6fEEIpBou=myr&s{c0no8VIws=>-NO$*tgiunx^(n#Cm=8CIWN$$Vz#vD zAh}NUZrK;Dv3vT97w44EejIdMjed2Ihs^M(S@~&FBhOeHsKK%5+z%a8ivn%s1$?pJ;2_wh>iU3{0H z_IWPnX|L<1_^j3`pZm?8^--pa{nCPoK3mDEg?ganiXo4zXR`P7%x%#oy>w7~qKtkq zUAh3EAw7lQ6Dcv!OHTRneC6BU_kG{@YbC%NDP9W!|D4_fdm9vAa@-sv8@N!< z;3i$BC$4CXR{*yS0qqYqR9PN$P+`R*M;<#dMPnYf!8^uz?4nVh$(qc0WHXC2!yWGI zFLmo$zlXoXPuVXyBsFH3wRG05wL%`n$>O)_jso3hLixQAJq1vkA7J9+$sp4Wj+H-- zcfJB2S1(-vj7M*`sv))QlI?eY_jg|?U|j`xi=1>o)?TP%Hu;WiOMJ)Tj@hmv=U6@W zvMoDi)cP(zUYgF1%MU;d^Yd#z}Ci7STIA-{hv%% z!{Vn&u4T(&xA+O;ZJY8@o?5P&UNPO~yyqL!s~>pB&qpeTXW}nS*=-&-@&yr9RoSu1 zC)x5={aOrb#TmTk1bmUuG}&snxCk^i0}4Se4O>pY=7sti2@1*81vk zT#YB@fj;rX6EBr_Ur%vqPX-Ng_Ch>3t;ob&gs$nap98JcSks?F&D79aqaP2%aGJ#n zK1D1)H#poFe)pv^!3=kY$xoYZCeva--x$z60{SdoTZnNq8DJyE;86a!42D>41Mf82 z-QRIb_?UxO(koxh4h|Y|Q3e-j4JWs+A8Usq|g8UE-ieFf|1nWHo#rXyS?SiZrm zSW%bxEzxZqe@SgEzFGa5t|eA4rk1CsZ;3Bo{2zb(aUKFR=Bi_nD+11s`K)T|y#i2u z@ibP2KQy|zUOX~X_<=7c-ADC;Uu)CAEja0uEZ9+`>Is;ciY-LwTZUmY{7VqV|Z-p zcU|t+LQETavHOMFa79PsRki_>{TZ`mcyyKz)eUXvfhGOc7co(GUu^m<_($n{Uc8dUL)~#MzhbR=BOZv)vRlhcl5w}h8iI0vy-6QaFv86vYq{V<10orwwnPS8^)I|PhM-Pp7>1#e2 zmN;9`v3z5;S}jvPvTJAJ7uDu|`-xwRwO5pn0yt+}N?Gf}OTdc4b57XXt5Q~-3A%;L2{2jTYZ z+mF8GEyFDUgRBEZFKFnX-2cgRZlA-i5p#_gb84^oY*|khJJZ!_TcV#j(bwvTdON;` z8w2_3;Qo_=!?C9ys?kD#p9y9m;BD}ll!wjr=rZa)Zg2H>pEdYeJ*}~$e@)gUety-F z@gPU>(Yt<~2Sz7;;n(OVV#Hdhr-!Z)qbJ{7Y*uHc8;jqIAB#1|R?A=0x8!i&@&@5{ zxlvsY0m?Qea;Rf6o!j9Z=e+Du#wVqxS^%i1xVcWe%V5z#(cdk1Sx!CL%Wv>iz&dBuEbv;!^Xl5YSC%Z+OEShR>z-^T4`K zKpXxVGvB0_E{-L5$Bywau48*+;Y&?pvB9>`7$?deLpJS9{90Ji4(Y|~9Y2dK7Goa6 zd3;@WuKZZPoNLWX>S}3k3x*ncu=vcO%A?~-RL5c2Zmfj6n@#|l*N#sFmpxiA zm%SP_r&<8i%83(ulxuzu=rfjY`Ic`P>~WwO5O>aWZXe^9_>RS`*-o9WR>xK9Ykg4D z&#iTALTIt=?=~M60-A`l5b(>+nz;0h0ew>-TL`FbP9C&DZDe!4r5^k;>ajBWn6A}# z3^!);+~7pjpSq%=`+da6ZGRQ!u=t90uIBRt2Ro9~Y+Bk;1O=GpWO}_id>G1QzS{M}F;h5D; zYG3@tUp!n1&_ck!I!FzkJF967SF^>KQ?lB!G**lM7)Cbrr!Mttj}yP_T5Rq6sFZy9 zJ`36@+s$@8dtmGsncJdT%$j~IPxO(jy}Y*d41n6?o`vKf?eWRtbn8yJ0O%=B9YUwb z?-Kv+cfb2ix%B!>d586Cbvh@m_=3mQn!E>J!`AezHO#@Sl{1Tz>E_gU6+W%C3#Tm} zKVvm}Z2Xw?^|65VxDe1U&}r8<23QEl7k|%3O|Hv$uOqYf=vs3UGv@B~CyuBtpK7w# zyM4XuSKs-j*qZqFIZK!2{U)ERKRwnt@k{z_tQ~8|T|3@b?bp?&Ky2_)!oARf5j5fs@_XO=-sj87;Hh#@9_|Fx0jjd8Azvf>0Gpc|KdAad6F*<+J0vKK7E{8N8ud`7gK4ij$YNUh>&Rh& zK^yb>ct`(;#*#zhuYKh}LRnwH6cq|0? z#z0vJ6w~fd7v=M9T@BDeK<|R3*RCAeptWu!Ud`UBpUN{92Vbvy3@@8}v}+-xeh`hD z7Ek*=Ihy#vdE1@GeqAa3d0p#2$GU5M+N<}rMPJE}KKiI00>mWl^O|_+BPAqy$@n=Q z+-me3769H@cr~65fL>~}9tNZnhi@7HKMBEea=`9BOZc_pU6)!;(e6{^80&B4*T%6k zhOOD~)j~k=xM|H70(wWQZw%=3?zj+W$xofN8cwO7szr7%dZ*8iEX5ja;@6dtOXmRk zwWWVz?5$NwN_RsFN?BOU^D>6op>*z1L7(J%oW%)R(D z=2b2LvJQ$mmoM>U0q~eQUnkIW+jKDaNvc*~E3W2$-SlgIfNaQ3kg< z-Eslo6E=mrPMzU0n2dsh4joxO26*(#zx>ND;WZfX1mQa8FFEfO879*SUeniNx9V$g zYx>r>;MR&mymO^X+Zm6g@PfZ|tc~@9eE0stLO`Ewvk<^fA8Y9w1NyZ=Ed-{XA%LG~ ztkrF6^RZtg*EZR-z!|x-f4I~yf1mhcd!k&+cb)ZP{kUekPL*e>=5wjT>+Gq?vE>^8 zcYg2pe($+`tn3BB9Cnn>g;Vl93xKTfCABKvoR|k6-E5)GA3G`3>^1$82AzZNb#2$V z)}0+&s#RNNYdr?!yZ1kQbucaj^qAW>zxmC>l>jXSv>@=D&Xbqgkf*3(jQLF2Ghf$< zSG)9%U%M6ozR9l3{h}q8wu9MuDWiMt~N&m34n5U1L*+cr3~O z0lsY6uH5(?I<-6u=&5oNd9j>m4i5toP@4~mcupic>+Ww&4`#{^?tY**eNi9fwfZJ5 z1oUpX9Jd_z!(^)O$m>QyEd=z{L75FwFS1y`sa|c!;?aqZn{Z=x$CuaRAgWH?*f{l- zKDCk9UJo&4%k-L9p1di=+*V>a)DR-F65_xiTt9VcFUxk~2`0b(vwDdL&C zGTwER?i4#Q+%}tUSpX>URvV4dBA_+T0r$T5z3)yr;XJ1WfETENsGT&%Y#yVR&*Emf z-net{J$ZYub86}Fsnyb}@5y&Rb4o30|~oUzd{>9tCJ z=9y>w3P2W?IS(p~^Y}2&9lvOEEI!?|WdYC~bnl?TX~bBJ7EJ12768welb@ai@MZ?0 z_e3GTUZ1p>h03uyYPOnwVJThib8DFE*HxT>Tk_Q~H9g^%96z<#im8Qw>{o6 zzA>QB)pa#M3xQfJ>fC}Vr#9WMpoNLv`NvI{`gLU>wjttf(`s-T<~kP zS8<3XdgsoaPj$30oA~8k(|3e!gDzPBv`+9|$?VDAgTR-c1b(@E9{N-{`Fu4eMr=?G zifmBnod;K=88*|^{BQI(Juub-*>Q^ws)c|i&}<=~chdT?A+89N&mg;w@3Gp(YA+{S2cKadd+ag&5KwKKJF(C8 ztJQJPFIfN_f&^x2VbHS(5Z3X|4{7zwOL`ZiO#{M7hQUFO_QByA{qeT7l--NJs+civ zt?rsW`rm6Z$M60U|6w5@SqlT&tBLqcZ+g>kMWB2;=F(RO!7ZU018t&Oc<3F!UVHo6 z4xwe|fk$5B{W^w+jxmP5G}X|rE^ozWxwBlYxXc$_Z;W0%d9Ir7>wfu<|M-t@g<6=y zMC07Zs*cw&cJv|C`r;M~fHkV5(>xZP#qxif$1 z%2m4O%U1xihX9RroL&sP(3~IhS>x?0dQ+E(M{+>Ep9?Xa%u$H zB7V%~uwGbG;`Ua!qSPA>jza@A_c5NpIhXuGDj-}pT5-DB(~DI9y-+z!P5kC(IcttR z2KmdQ{n9ZXR=10v7ivrISkc3AT%3fz=t#nU9Vc%m?X|wVk0vk&#>4MZfmoMps5Yxm z#kovQk}0wW-CQbW4MU1*X*`BP<=>>_g_R>@pP<<@;thR;V91N(? zucnb_Q=_i^?wXP@ss3#opG z8-_}J9Yz?OoRr+Jlp=&EI%5p&s=wChItmXK*bf|hlpfa`MNMZ%W<;ai6sBWuBNn(A zk}$oK_WFsBJ>7ufHzVlzw^i-z>b(>A^)l-eTtPI|C@tY>t#tZ(n zn(&6I65eavJ1=Njacx0>!6-OJr{|B3ku{eD^T**!nLVI9sy^gr@^_`*-@PR_$j8s0 z?@q?U%*5$qj(~u;?v)5VV-ux28WFUX!4V?okKH2@Rkx&mJBttI_2cV&p_`q40>G_y z2kN+m2*X_3Ua-3kLYfcn4k;CB63th!jVOZ-=W>uO|JRUL*=A!Z24@X7W=2j4u_Kjh zAK&{k22ngoe=TCdXCB@7VYa}q&3Qp@X0g0ZMPfq#&3JE` zBHw9#^aiGH(6_INJvUy)z9rGOyyz%ZykJjs-e?1Ncez@0Pwnby_kCE+3HEgh{&M$K zX~KbPRWoTm6EKVLaSP-R)5i{LX&M2#w zWDuNbl0xxUfY$c)M_-H-J|J%uQ}jzr_nF3}7LZcF&Px~zb2DNg>KS6VcYKah`)p7~ z3V0O(sJ_*fDd~0Zie;732J|Grd-jHdobDFEe`}sH3ay8REx?|Fg&{PmYsJd~#n2Mu z>C7ziuyaJBFv{@2;|~HcQ1u3>VFW)~K4=o_XV4IaMg$4Z*v@t)EUIJ`@+@R+i(|P2 zdfVPgxGUGi5#C9?*eqmf&uukV915%6ntgI$5c##BM-?u&uAeHLg4$TB`O0!w`W+I* zTwbCk{{g(_1Q;(Fr|==}EEawSUi!|U8ug5QTpAKtsOL2IKHuyC-`QQ?8vAeZ6Kg)e z@P*gSlx+TJ_2z`>AICc%s_;+UtQ}P(bYmQr9xAGomito=7;XRO_-l%Na#2qIq zyL$rgCZj_-WB%dnu<7P_^p7y@W}U0%J3|fd<2+Aw;+it|+*~QfZt)>dUkG3ow z4>UskqQQQ{zDFEYd)S$%Ui#s7S_{Q@q(cfS`QpvafLUW?fwwcwNNR~Mr}^(1j#xMI z2dF1LrV7fvMN*{%*}a+j5d(W^;SvXUov{wR5KY1DK9R@8UKCua&iHCv=3&VEicR=# z9hEB*Zja6#6oZ=N=}NVoW4u3_LJ_q(=fAIX_R-@S*J)6H36F8V2W&E!pPh%JYavH@ zIC=q7J-_}X5Ao&7y3H{v5b}A2@=C}D-8#BOZHnMnDmT?1)G3<`g}Kf>qY(vbe>S1V zQAEny*tv!7G)%B54;#d*S1I$=;n;Cf5&-lEv6R&kH5^ zE=nIA8j4xFip>4iNY*N%hdk;8$m%}QMO^|%5Sk$qdB}PEtZVvFX0BeN@XY&W)e{{- zkZ-tG(P09sw!ELuyC+gKuVtC-rOCr4lXu^})cGh3)G73-yxPT2T0WeteOPzePA7}( z;q(<^=3;9opwx9VsceFHbj)ITN~f4qXKIxBp&eg$CLdY%3qP(I8~U8o%heFQ>2}O_ zK@&9W1Lb6kp(H&og0~uQU8E%*LXm5= z84jm!1Lq@l^3~g*2#;b(%-XRV65)k&m8!XVFNZLZ80)pBBRSX&i>*QXM90pT52B>T z9KjGqkxxz>R9$NOanBnV}+v-D=ZVZ^hEj5+Q>#D$DTbucbl zaHG?Of|U%|_4xc6O8y<2{y$aKDA%*DS_wBlI`6=0zbLMnuTtszZS@~^Cu)mpBf_pXOR<&TUB)a&9s zP%_<76{IeEfZmHd`$)0ltGez)ZS;1ktmGSliRL z=GRvPcS$Wh=3};{k@#)4rEnjKX;zXm>WBpFOQRDH*;k9^lALx7v5h*Vgs~$i2L5xu zLb%7>APN9nr>5hM<4^cqjfA#Nb!Ts+9!rHA9FY6ia$QVafE}@z5oA|EVFg_gSn_5J z!VWDGK+^cyNJ^>!A)WeuiP3>D(KVRBiPVmq(vFmQ;$CLZm@W_#JsJ=MiZ~_*UezkxPe%CuP`q{ui4XLsvxN^U4x1CXL0^j6oJfl6lvn<;t$PJ zElagg0!v}Yf4buEj8f}e+xs)OQ;spbFe^fyyWFvQXYaNV3hid9H}|8t7cQE1o||hn z;tXu!@tE7u7G#!x)lePg#;aRL>VgBB!2(>P1M_0g1%uD}iwLkjz=LcizO_#$F@1T& ziha?v4)LR)HvFD&aXD8BV_t5|Rg;_MEZD)BW6=m!wfwaqE?pX!OFfr?iNJMWj_AF( zGMXtTq~|BXE3N4qv`2p=4ok!y8}f20TsVWO-2aY6@W3N7AnWHok(AZ?AT8$if2S!t z&3q&|Pq}H@B^}@-9j_eP) z4XB(8!&CcjYj%vt`M*Z4!=)U}#NwLcj@sp07RsbgSBJ<+K%H)LY5vBCmjDBHP z#yG=~TrqgUQQzGKF?)R2@H;4#^;0aXaIRaCU7o4-C97jtF(F3k&K7TFUH=Y@AgSQl zX#gP^iq+zXy`Q>Sza0Nz65Cq|IudTl&)7E4lzc6<1@&|}rAiy6Ym#S?ADt8Q4;URR z#C?KE?N0oG6iY(5+-_=ARx?=?F}$W1*)j6TauoWHBL|?vj8=qGr#ayXeUQ+Kbx*d2 zNJNk=8pII0dT{nj{o~et$HEEfl z&rZ#aE^?n((^ZQFhV&hLtOqi)5VZTEpPgpWXaBm{pj`41T}vlORl;Z)9P zt(bA71TWeIS04*6eZiHHnBXEWNA{g_DnJjr+`7jBJfe85oSM}?Mf0a z-XGLq{CAJj>{EBY$VxzbE|rDZMBUdgATvHrg~K}!#0IfKtbWfmf3g3%>D{|)DWrbh zZvs+#46ZEX@%VbuLy96*ngJ3SVOeUPEirv+X7P`<>Mp*Yac<3Q(|3`(MzOR`pWl*=UalHXQPM&E}`#XsS}r2zEJPzcN!V!Hl&YcZjPf zywHiy$vVPSv~Jcr01K#_&)xTJz`ZZuU=I@xA>K<2HRPJ9V248(sQ&Z29?~sB#r+SA z=S~E^^*8?fugE&nNrr_phmyfE48}Rb;I*$vfdj)GK#RFuQ@q?Ids3bfZK%EW7w`v-kN$+p}cMY9tIZd-wgOViftJOuIf)D zO{=p7`p*WF#XQ89D4N~qid@wI(6MGc_n%P#Wr?qY-@&PQlOG^?ZMsO8(PVo))fa_@ zHIpdnh}EbMI1leSf6b1n9RN5Op(kNXQ^x)87J=^A06FRnABwm8sZZpCu_s?&m1tWk z-Im|_p0~YNodX@$iqIKF+vzYq8?`Doay>g)-cQLg>P+kPgP2W_s z;-oqR_tRD~*81Gb2f=j`^TkFrRUq3WyrB^P@9KUOf8s;EKGMwJ`NcxTG}_pCelJL~ zRzT8bboj9139Yp=m*H}ax$ogfbH8&T+@M6N9#&fVTU~EBq_BHxgvorcNq(#G*J%J< z>Vdu*nDjkvaiXqho%2}OG>%LDCzcOn{rGJqwm1HaMOlI*pk(%EK@3SqH{3dyee_oh zgYlROi*e3k7Fep%MtTpc=!e5~3OcSB5`a*fBZt*$|8b7DTEIz*%Xyrd`xilP9--4f z>4#U5hdr7BKVm>362I>4bg%Q*jUC-vicbN4FW$yPqHXy1eL1QJRCqEhJj8LBo{ZJs z7!U6-`Prze4wSHQp#Z7gw*V;|Hyl0fNRMdhorOW0?UBFzCzcmJZ|;QN#7KSAU9--u zWAt8M}DW%u$jkIJgc)121!|R;p(|{UelY< zIj3;T_N<$5OT{piOz(}409DXLm((B=$#Q5Dz;K40d2rL1iU+CsxjbEu^S8TVyWRvR zic$bC)3eQ2sjq1K?=M_z;H0_#_nbQX0H!t_BA_5)b_6qM1h~{zx&W80hl<5k7qjt% zGdNZsD~i;ftK$PHN2Ch*qGtIOZa47YdK`j##CfxdSF`<`MpPzS zn$hKw5OJc>hM}vWo8uRQ>5$)7MhKi~M1zuoGrj1EpJp`Jp?~yg=}#`8d}WCHvm~2) z2n@OeejON_4b&W`;oxbzu50UiUb#99o6zcgzIzk6YEZrhAmHPqV3@&^ZB!@E3oo}S zvAT9Iek+wRDU^eD?qAJ5%0F74=jvT`mL!V2C3Wz99!IaJ!xI!-pJSgB?V`B>B8y zYCKww5Io0=a;6bk)Obj~L#skw39|aniFd6?gw&PK9kr;_In0nj8)-`)Df8Q?XB=As zdZ>k$HC4H~*I!{%gvqX(>5}Jv1r1;yZTfQiTPn_Be6|aRb@)J*s3P4)@&k6SzV;xv zIYlDHkJkT^1DPTMbHKNZ)Dxzl`k0ynoqb5EDf}owmJ!k)-#PsfWAsXJ9%{O*nraxC z3`Vl~&da$VqZe3rOu4##WVat6jhjhYUIoFg3ci>@ADKNH)WY&If)KPx*?HN&!s!VO zYwM9u95Vm-Jff&mF8uWVwSl>9FzriJMqL00FU5wT&me#FX}cl9r(gJLjL>C2)!S7m zwmV+!G+r`aiw#-W@=gw)8Ksk(Oq4i(n?BNG8sNU$dEi=E@*LNJX211;75n(2`r}>B z2pmu=1oRHD@U$7J)q10J@*~M7e8;3@w~IGLnk`IJ6pP6%pk0MCu2b8F=2xVGL-ZtFThtQRcVpC_ug z(J@||W~@F`MAU`HR6#x8>ZknhdcF%p&BpFYZEa7!Mxn*s8`tdG>`)RrEfmGX4t=O` z_CMh4VNCfXur|Lk1at9uG0c%3DPb+xjKGV`-Xt`lb5av=<34j9Mkg?!L4xRkzbH6I zos*^TG%nW>$8v3Z@d+W}wAdl66yGZ)3J%*w9#s|j7Cb0DSTf4&l*pT z9p0I8U4fXD#?ybt7MlH2$b-!L-wbhKn(knQQAc~g4e18-?QGa}7)}g13IWI!!4-2pYQT4F>|)_`?yZ4l8@?UHsFTZ!nQR8uiX0 zCa^!P2YCAanvv8pxqWU~_b$isLL?Gn(F zqf(@^lbn9;BL7vTOZnHj*{DQ_+!%Sfw-}56v#5Q;%jy$P&XUpKz#8I~1Drz9{d<4v$aVWz>s(F%}$_K+B) zqbt{~PPG!qX4wDIx~&|N<^1dH^;Yv_4s2dHZ`}``pMTBkfGfP2&SMAQL%&~HB3G_j%n z%_}qVkBTg^8=$Aba}`TE*&Sa!k2G3qOS)7X;zW^*kr&6ybEkjK(vyJ|jHknT3$N-I zF1Ax=6m(}2`N0s?@}$7r2p_+-^hADr)R=cEedOrDolF~GEFGP^j*H{HZUJ+;302#r zy1PT4<=UzQK+&mBNtL``rIprljLA&~#|j@PY@Zh>Q_xUX*hVoivIW3+gdYu9e)>K@ zpl*2WrBPmKC}N`NmvDZ%3fva}Hb+QGoa2Vcu<|8X(}lVyw+XY2*9hR{o8vtNodGrZ z+51+`+^{%YNn}O?h#9)b%lhi--=BUPi=klOjW#an~`!&D^h*mFtG!MGdu0&Pf*7piKk{UpJpY4R){|GI$_@>r1qNMk%zIZlJ&kwf; zEt@O*IFSs;)QYk0YjgToQ`xqldjKN)_s+V=#`l!JLw)SUZJ5-U|ucF?`g(l5#F zPc?dGXKCp;+Noftm-xVIphJda1ym2SK5UKFU$z=67i(smSs90G7UT``!<@cDA`+p; ztx}k3T{e84WF8n@4hO>gakS?DnsJ)m!gT}3-VD0`k&(UiRmv{WtE9pN<_1(H_GnoO zd5vx@%B&|$?LqGB#>aq6hv>xrVy6_LDtpfad!VxAQ&vYi?>Gp_P_5KYa?&6grY6hx z4F?Ypq4mYf69;n}D8I!&T@XHeqGO|%Hg^#+>HI``0bHhsSYrm&x+ewxt3P|gj3 z$hZ9m_W9f7u`Zg_{LM>v($VAW;1L!9jJJgq#LIw4=CwP^D*+9#_GTW+oV*?mI?rs= z)V3URnG~H~Arp@XcH*brFL~y;8Cp;cNZ!^bA8|`nhc|sN-fGUUg_>0_@8&hjd@w?t zgHv>{eW*UocG-JLWj&7aN6)VAm)D>kR0#Y$Eh za097y%(-~h^e0}j2G-@Wi@c700!k@y< z*BPDPX_|DfUwEm=0D&8lyhZl@<{iU82eRPX25}rlInDomt#%^B0Sxh!Vb03ZukeTI zbC9fti`P>}2pUJ~e-wL4VDtMMzjgs3fI>)AxhUspOe4@K0}<{+MO5PDtDy8wQ=Y@90*bU%VK#4z zu4?A?{lS>d{OJi(&_{Bs`l3u;cF%m&x7`ubT{1~y5>OFIRPdJg{v@>OKBsFpf7~o& zl2L7aVFeRB;8u52ck)^=4TwmT6LUxk?3xK%=6ALw$EP zUN2=g0c@ARDF|M_k>nixK;V}AayI*-%JLulx!l1I@*vhb61N8&=u>*ib?jY-UXALn z*?bBOC9x=?d3qvd*Z)OUsVU^^Pnxuqt}|1jev$6XhgDe*N7d=tjv7RoMC~C!Ep#;i z6oDn`bqvroM}LdwA1#~2?-H;X$PWQjL4DW#dPA-1B^M?Y)#X0+q0HB8D@sS( zXR3@K(_7?#GEB0|$7Mu{uFFG5)>He$A_(k%G<*b*VSK?<9O1md^Dim22*J)dlSZ}? zf{DzfxiPhjJ_Gvvgf1aD#F05v3iFj7;!GdQj+g`viO%~gRS2*nw=a?%|8)M@EX`_C zb(@&}z9~BQW45>%;xo4{Tb>Pc*JoA)Pc7&V%2uZEfi%!o53)JWV@DAH7T=4f7zsNV z*egj{E{_18P;$bxVjSS|j1rGUCw1Z^Re?#XJmquoo3mhoDRKG=>}jLzDR3!n1b*{l0yX^&xJK!`NHUc^(kkmVHwFu>;aJfL4dNMKw#jM5XDzI3bz#81 zv_>cw;T{RrS#eo+OdQcmJTAR&^AyeQR}4r=G-%<~U*BwtZ342i0r656+!!D#(;F3Z zghFR^XGeVPuhKce$prHV20q`O<=8xs$Tjty){Z!u`dH6{#AwOy%Vyca+_lNz3q{}` zsSJw#SCC~3=XWo>zJmos#2Nev4k4i=1jVPdA2CufO1%Ru3jAw(hi+{ z*&4?N^11y0_H%UF<>R4lZXqE%V4rU*ScLcG7*MZaUUGS53|8j!pli{S@N-dWl7ihyYHz$ z_vzV|D-KP|j*=YJN_)&^f(S=>3jUjgK{7CsNtxf0i{`1-<}Ih@`}Cc3$y4_A{it#Y zq7q$dMX4bSu`FQd+MZTHX}_W~>ioe-vl;AAJkO_GSi%S^k?$+i2YOYk>&jlVzGi6x zG>tcjy~5+_?S9q0?$7pps}>s5Nex%NeBL~tj6K1AZxeu$^XDW5z3!vm1@0sTjy;sQk3UfAnDf!EKA;Z5$`hC96!aYWB~+Zn)dd^G zUAkp9AW z+HaEF%UX?YgmihInvqE`zN$8CP7ZiF&+g}3VhUGPH|STx-0c&FcIgsrMN3k649ZW1a0Kr4ETh{oXOqlRtu0)rvkf{)Ici(b)NQmCh3q?v5;wL&$`lM%8VmH7`|Tqn zRgd#ZAjNQK=N!f({r~p@(7rBaDfE&p5%F>^R^5jp#QvupZg@WUE^s`x({_Bo?l4g^ z9s(R(x{GAO(_wd`Vjl6tRdRsk*0_Fojj0waa#zkSk z(5&lFwX*WQSpaFQ>yQAZV7T`&nA4+MCvFl5EcB0cb74kNUP!~nuLVo8D(jVBN^Z8R zXace9eRByDS@Aw;rAzq7mzNXsbr7$ufZhWoleo(2PoIFXljdEvRXuvrJ8SlCC)6Ou zTV!#@ZZr7Y`i{?^Oi6EjahcAP*{qQLjk;<{C0A4n_^X=qmCEb4wnyFHEkot^LIcl2 zYx;htFfqTT(2xGE5*_ysuzOtKI%TNqP#>U`vFT?l7X!+Nh)HbbLcKq11$}%dZ^9LV zYQPZYueLg4ju(>42OpyKX`s^;0c@j6Y;HLavD;LpwRsrQ{F@ zQ!2(tObW1s=)Ua@5#wC4jA1aGPP}itP{yNq{ycsee|*Bflkxb0{-Pg3eoPb~O0&WIA7qrM}D6eHM@*bq6^K>_cjb><)uwB=4-{#RPx~ zNKM|AdF7)XR_l}r0-4O(?I3vymyGtzx9EUdlT?s^&*m|4`hWnEmA1)t0OiQiY)z>; zn;aSNjP)>PZR&P|?qIp36Vy(HstY2pq?rVLlLmw1*Qy6LW0KKzr#iZv(zeBpBf&{o z9WLyR4l!~kz{p7M%V4Vhbg-s)t1a_-0d)+&ug&CFyLgQL4M>m<4;Syzk!jXKsbVV* zgNtVyf8m{?HI61x`3}>PJh>aR{-0Dzh7DzxvIig^#oYnt7^6!=SAHqYFH`mF#Vaw# zqaW76g}7OVrpvM5j5dua%vPb;!AD^c6XyYg$ovR5Ra$uF*#phtuPTgl7xVlv@yN&J z7M!!(E^TMIwLrhRios1k<$94HsEbtN{+%7|l1|2GIZIeJ069&# z;U_VF7i86+?-}^T?A-?n+Ts8!NqLKsTtlP$g(#b}kk0=ARF-h)%wp@$R$>e7%7Zg~>oHI7UkM3lufPG%m zk&LXC4qy}0xG@%N*&U=SFqV4LX$Htmqx$F%YU()VZmlC0axPY{rEHCZzO~8})fh5H z{S=CXVA8rTw?z>?#une9V=GY>S&sdJm36e~iDE35cUfVPom;KZopy+*HMUBteZPH! zNL;=Q*0a=LCRJZfUT)Gmm2W?)Ja;wSm_>Zc*fU*PghM=UF_%X^Iv7Pk1E?pSfj)mc z988QZYdc$a>&gzU$MXdglLtLPhxfT3u#EOGp7L^TpV5#VhiSrJA{UQ-(3Kpz9ncs> zotTGxqH~M-3}Y=%x;aIh(n5024+q?V8dkX+!MCi*BlTJH?*V@1X-se@Hl$>MY)bND zeR@BT)8oRX!lQh$WEm+Pav<`MYGxG?nSgWcy0(iBJaJN1`LDcw%@HNDgfy=}?;4pH z{~u1kosk1ks-rPwm|tmukYV2^j$Pf<^F99TP#0WZPHg`XK!E{Gzgzw*uv5#=5=h5Qp;TM=HA3pRK`M$87Ken3cVh*JN zxN2Y~0{{HPPHpcQ6j2B01s3WD@_JK%+NA0<+e+PbBUaHY+q|4BM!QVxsoB)zDHUiy zOuk0w^xr%hpUB;BOo3ml3il_KID+LzE!cho*+llIdt6E{$z8#9xv@YRe8e)|VjEaM z{MHT-2#@!pNR&||+OfYW$)fa+w6?{7Vl8!s1)zKy5ZbVx%vUKPSY%`Yrza&GX7A@5 z1=z9GV7V6#z=^CYyce^#D{7ORoQT5630VMZ+eqyL_bujAp*E^br3h#BOb>K)=fMD{ z;LkL2(DRfC+K1+mT|RHQ-S=9;qPE=u>r(B20dmFSOvWam=vST`G%qNB&hHOag1qaD zNhIO-wSs#yIX^RU7*)NA5qJmhvK^rGUuSa^Xn!@Quw@()+KcvySs@xS$4vFstfq&L zvt=_W{0uC(oZT{*PUj~={ojwCPL%1UmNyzi175S)o$;Oh?)>HUi3Q%nV5?4!Q6<2V zLt*-x5)fH_!^!tLFG&}LGV&WME*=H>*!7h-0hfIOYdTBT`D9AMsbE)%FDIuGj1UvoSjf^rTb2sDEAh?B9atTi?rN zI@jOB<9t{%kJjE)paXz*#xa#{SCY)3DPsl?mB)#6zUzEE=d2#7hhp##fgh-X;gpeJD0H@ru*;Mpbds5eN?zd-A$`*CB4f6P zhhG>uE_M-HK0ZHJ?=hfu2TaG5Z}N{sCyi|>d5Bom$ zEX@f|(OHgt~v$Lpo|l!G{4uov7f4(~qHtWVU&ALrQE1 z3{kG%l(I`_7EwZzk90-E^KmU0cPHfAdFVn`bn%LfnDcj7M54hC#>8t>lZh+wSShz* zZ_*XQTqA`S9(rXJ9Qs+MMB7D};!F*lgRdgew(LEq`+O?(cu?w9?E$4+MZP#j#X#I0 zGUgZ@eEBe>Kwu!riS4Wqkp9@_JpIdLHPrId(}JCnu}Ozw`?uKz!ptv+$lc-`-zTL) z$qcE-Qr%;Hy6 ztoIWGl@4WXOvklh&Wm$1Moai~b9J`WGBzuu4PBG)>}lA-eJ~UCdvR}`v*bwd?R5PS z$l)7P>4Z*b3D40NfEn1k=Do^z)?h|HBpYi&uJzQhU%OvLW=A829~d1MS<(dB3psw? zCd0dea$mi*5}ZXc+TyQ4M|MsXxFkr7S#ui9uqpfSfb!ORX~!Q^sWJ8a6v_-244ru) z?Yj&P0DZ*K-c3Qfbtc@*gfGA8;!4l{!Wm&wIex@XXgLBLJf5N1Iky^Ut0tP0nhj^twHU*d0S` zxQnZ_;#~jn(%>)KAA5ulDV`BhHpW{_vAr7c@=oTD?$esALLwP27AsExG$Hb#Y$m(3 zudO^=WsoQMQSYNg(KY23EE4P2j144=n_Z4y7r=85+4abtpRt1i_P!>V8jaO#P@q@> zyFX-uMJy+(tjcq^@@AF*N0y14CW7xibYhwn#~_yeNCoPLzVC%R(Vo~bAnlW{)gd_6>WITUzJcfF(lci#6a-{u27&k({2 zq5qv%XJ8T+>U3{ukFdX|Y?LFj^Y>NrXN{t@rx_{8EbC|I{fr(0HnR1R^%}&uBJwDq ztnE@hB2(PuVc*rC3S{+mX&_2wexH*#jy%`9ZonX~j-4+W(HD*FQ9;XyUu^$1@y+A8 z6v5dQcG+xs0QP3d=me!qS%OiElwFP+ndTg#T`DOTHt_g7#%#)zwU-H~nkhTR!yP3d-e6c!m_W_6E5F9cJg? zi;1IXSNV1uX+TM-vp-9l(b?3f7e{x=J~L~1y?W9cJ!j=j(N3w{ND=vr#Bf0FTJWk9>AhEa zi9nt}=oE;1&aR;R(hlg#V&?UbjI!jm*we`BWVtP`jXv)qaG%Hb(oPTdL^TQPd-FSk zDk-SJvyBvsp=0xXyWd7#;KE-L&Vm7ar%{d=GU(~%^nO>@CPSSs?BkglcBhT@=YUVb zFos8eTR@cweF`{xd0kr36Z>y=XDd)3_WIfs{(K)tx%%8}kDzcbFxB~+sNrnPx`0L1 z3$Kwc?8lR7)#mJGYYC<#TITaV{eI-bd?Hct+MC9lJ|Fq*J0iB`klxxRBts>IB=vXq zk}HtS+sXo?z1p7gV*KIm5%Tqacju@xQ?o6=9 zHCUl69RrcVGoKdj4}0}1v_~&ty5B_ddF7IE+R-$`%dfv$f1NM8m$lbc>_e`&pF5p1 zD;7zd>JlhT_Y^L4H06$mGl)GI#Dc&>=c@ruV3*@e@K*{Zo=q#*IR)o`#7H8T*3|R7 zxz~l8TcTZng2QreNwI;zPSm8yf0qjpQ``UgTak9YY`U{KWCO2yW9{>|FQ>~8b&O+V z{lF9dO~l2j86!!?{~Sy+u5p2vrPpSUGr0YC&Ks{qt!xgkgMsQ-&7%92JUr_bq&A;D zZ_{yS>qt)_e2UcMM}CT{G;W7F7Lo_u6%vl^U*iQg=wRiVkG40y8!?dpO{D8B5`a02 zGkjFx3Uz&U(R_tNUMYmPae#T|Vug1}pG!#uoDnHu%CFr2#kd`F)O7sq z$%r8lfCyg!aW+@4l%lt{wzow*AYP#L&bPb>F|AvgGhN}pd8iN*`7Ivtsoxx~ zS=Q**Movdq!B0Uc+LVj82C;OsT+DEzvbLbmWi0Sj=1|v`8!^kjqQ<$0jo|DMk4OND zs|SAYfgXZ zBzdrAh~qe~a>(QAQRBkG@@XLQFbz+v zLkFBxCZ7?KITMIU#H2H&q>W$6T1!9Mp7?Ul@P=oMcB>>Mj#OGnPtl%_a8iPwN#T-&+g)Z$7(E znf;>{-iWqwS;66lRO_c;X=T}SR&pexctmJ4>$kM(=|=*+V3_(9gOA4dY=q`uLHtCr zvkMjjbjHSQ=Fd6~+MK9`YUY?LWz(>v^rglqC2d=&#Fy~7n4Mv+&&`lH!Rs|7QPk=H zQ+au5t&nzTaBD9~Ay(m#9CrJ#N9!$ttEoD2dBqdE@0xbwv1`l8zD}GvxE-{$G*^fD zKfuEJIA(@RFsYMPk0fXGKBy<)v7#Qyd@^ zJVDanX^8j7{Ib)w`yl6-8e|u6ke^&9r%&p50?}&Wk4_}DszV;2=H}B4d6+u`^kzfk zqha&77x?#ZZfJ$g!v``I^R;tzFzolhqnN8<&FeNnVjJaKIAFrl5P03FpmDBtrM8%S zgoskVn))w__7C%(763rjs~LS zdaEB*Ku?uGjl1OCjHIDha^gnJ)kfff$-=S8f}TKZz{3bozD7xE&M!V{5w^r1hd<16 zVU06slw?2EQvkxI{&4cL*kUNgqFidiXZt&##eRYW-e^nO1n60EKvZK>IaCUDG~eY- z`;Fb>bcXanb;eciQ4+0e6}f2008uo}a_p$Xi?v*PaM_C4(lS^%5L0vZTGmbZH%v|> zwn-3lRAP2nOJ%70f~Am2cIwP$#{lzJvj9us+}dj_SYNzwv;A~zC{fv zCyiFAxj0g=+JPKBL795xAT1|u`>n6iHSH=}@)Z^;F_AP$UlenaiBlfrin6D-Hm*Sa zANHt_hcd`RXdg!TYDS`IQ{DNnXMylpMops`u&v%VCk>JYb3CtnlSe~cmD_g&gI7q7 z*!3+d`E#pcQ&2B5Hb3?qB}GfJaI|9_lH^CN2stTj6WdL`2Pjz3M_@D5gQP#5%#ta} zX*s9h^4oWM4caA}Lr=xk3FBqJ=R42%0Zs1z3+!A`lcrNEOH@CLyH-Luw&Y9t_9m64 z_7nR51IB=N^7osiW<)wab@LT~p(1)68MYAs?xFNy5YVMHt;x(cKRn&dZJ^*HY+#W34 z9kMjnztwnL?CjsSaD5SYjr6&gS-9c^D8I&x+2u!>9W3Ige?J*#N3)RrBOm=xgC>Gw zt65H-o^8dOXxoml>%hQ8jA?NDTnbM#)?+ssEy`N~8(Ab`>}YDa2(xqCUvB;v-=9L}B&lzK3ZdkLD)ec*iE}IbtQ%9`vP) zc`HFxx+M!L2ntC|Z}H|f*Wuu{a;IMrk$o?}$N!!g6=w5rF#@#j`VjEsq9Or5l$~YL z0&@_|h;<65*sFI^!hr#)ME?=NfcDjrd$pbpz-R!;9!$Q=WG>vdtmD7CGZ1sYS*?D7 z8Q;9up%Q(ibKbw;|41REbV|fOH=^!aUYVF*F4}#SJ_>jY@#g<5@PPzQbtb%yl13+y zP7!b#wqxxRNx&e__$cK^*qWqwzR;iwXHDy?R$pp|tnJC~NyJ|x5tx^YB^qKcWFSH_iv;}3@o*ePsHg#9$EB}hWxzL*8b?5z;!eZDVztApXeDW+iQL#&+ zCh>*8n+=Oho7_5qSHN?t!2o2un^%P25X>tNoMR+V&-~FTqGkh>LEDM!jt11ImRA7h z52Rs+2FKYr9Rgp)kNY`y2lGH{ef6j1z=>>M&Nj`p`L^ZO!HoC_}Y)+r{ zG)y)?11c72QKn>eBqsfTTifTRv1ES&tn)$&1b|g$evtd!H82Rh(pdIm>M@k;-sYh1 zK2w8RyO}=Lbw0Y_FEIz;7zhIstNcaag&M9RMW|4;O9`x*5hKikuTR7{0th~xDTSwD zTkT+^_2O~h{u!VQ*C7a&+NhV1YPr&7wzo`(*E@V%qlP?@+I&P0kf|DOqyz=8*n! zSusw_TEWTuLJJdo^Dw6opyj6L$~K^O5i5HC;1fX5PzQJ>H z%3%Kw!aDI$i029K0$bnlg6=06e7oA3j1rKkWxq++|1sr%;B~bLR64gah_QhOnt>-a zfhSF!F{)Q`=tG;f(=RPrZCc%(xB5x$+J$(StQvi^sQM0lvKFW!{QFvY=O*ThdWz1t z1{=CZCoN}l7>xOBy+FTgVItuJ+3S(fqN&dIIj{HeXNQ4T=xa==?|7kU_C16rX zbM^385CC4+no6iZ&abwSJeaa3-x#AqprZZ%Aev_mJCaN@>rudW#Xo}wai&LfkIj%j#JVX+5MGG!p8qG9)Kr#m)M6}8w&nEU_U;BO3v}Erc!;=@L3bR|={Y>VEui23+yYz0uvj;sxJlQyrQfYj zN^iDiS3j2H+W@3YIXY~Q;Qn~y{t(zRBxck)>l=pk?cjnHOI@hTT9s4p?q9Ute}aE5 zInzE4K^IcSXARK+8v7d+GP6G=h5#1)ywT9|`f|GLv`Pn1qme}Y`kZPWM;i0CrnHyW zMIkt5eRrysN9q{{JYd52|7CL$1Hg_p@i#Iuq7@emo*bU}ZYccaP3>MhG%H%)3eD^S z)ZC)kVFzoZ{jjd|BodB9+B{`!nT$OuZa#>v)^bU1H~s4F`v&1DQGb)v#|yn>Us<-#A^X}8Rb#|RU zv+kg}AeYdhQJ=!({BW9+EBqi)jtRWQX(lJs$k~ok&_1ZUGOdSh_8i z0}}bAu)R{_3&@r&$`&$u4Ax8_DIqLVe_xl_yQibrcYAvDo2jEBus{la^&`9floPIB*)uxxdBwmf88#TlnW;>%R>K48u>Z?*>2fG0SlkhZ;D*QZv znu%?xb^Tx!&k#8P!0BHq(h(HSMEH2^IUQ%HI{mL0zvXC&igbOOem^u=yTa|m=jzy# zpDfvqYdQNJa_kNN*K!_Ak}NQJpk%IokSr%eryYq=j3jCE?WyPMD4O~l7)SYYhCm)n zGcz+f4Y~BLD2_>Wji)j*wJg?}_b#Psc(_lUj7t0KsLqADFXt{?xMuQ7_7umFr==n{ zZWx?AG57D$qpl^VPM$o$eJxT{k8-;>PWPY|M*<%h;cEZ&iYA5WK|g7E5%mH5$#cZ1 z*{lD-gQ&3qyX%*Vn3LPTRVLbhj3;C~h+ZY+_ng?Dl%%^`fWBN49Z5=q+>$C=AlT)n zVJw?8sMYql+_$}4&b@uVo`O8932gC7wr!b@r^UZkE86YzWD6yOZMbwIJ5!ZF_V~~h z11@75u=ejf>8hrP&JK;mN|(-XROXtvR?lxj9VS0la*17$v)Qh^yXU$PV4u87#dLX0 z;X%P>!Jqse6oDAbZEWG`brGuc_Hg8$>$kh}nUjx~8lm5l@adu`RDnRo(yw_{;v`-nx^SP0#3f^4n{?*>u=4Lm$_7VHUUej&`whl3f6af) z@O1C5YYt%b6bQB4yCqlO4Yn5n`ChnL>s{>Kf^FC`HxSSC?Fdz#_D#lV1}lOxA8nqG zK_9E!2V#+@weiBs>oZJXN7L9r{@<83Nf`2Ecz;c>IfPM-kdd!1mmT{WCSl!UR%CXvT{5PZ)9jVwJ^r;GGS9% zfl@owFSbng_U`TLZI#Vl=DRaTh=++E(W3smqD^lu+yRFs$y=oDq*m;C!<@9PZwGp_ zvh+Cyd2B3Fq`aM_Fu+Ckhe}VEQhhLP!?kx<&{0LsJkW9!hjrRbYavH(G~!Rh{vmuT zP~2)9e-8b4Bku#plo-C0V4I23jtl=7*v8!Sg2T#!9EsFi#qP#Z!|$#ekm@h}^Omt= z4Or~%v!?k)x)um344vE>cT3kMeQ~nKa?MVz?b{DSri4F?ORhyQ17>p?w%U5AmncEa zA4FiAv1chA4+KvyUdt)jfQ(ImZT1SoW_D|!VbeP=AnJ_^IVZanqKhc&Is3|ti+?OQ z?{8mV_r&DAhg|!exuGyJ>-p7v?6Zy|b_!lNF-Aavefx(zIcHVgiyP>Cn$b0t!YmOQ zCKY5VESszi_`67}b!IV&oUGc7M~5TqY+Kd*PmN1?2mNT-Wf6{$3Z4L-h_S_cL46Sn z$;_`m^k(l=HM=hn6uU$4KV1tb23kcT6`j=0ymmBV>a^ycrz9<2V)aBWz3 zRmM-JZB^Q1N1YTsFo#Lbk9iReKfWiNts@{PpWRlM29g#upRS@4{ig=KZ>+r>NgJE( zG3hf=UWr_I@`z7^c4HvC&QyX)d(p3jl^wfGLR4NQh6Fy5Sg$^nqrdQPuOv>xiM+V8 zGglkf1PAlHg*0IeEJ5L<-JpNw2B;m+VefBx?_Bx^5WaB)+%L5{^V@9M39us$JJZ@S({ZSuG7R&PWjwVF14P2 z8{uS95V&%(T?)IPps{PK2$CE`{B5@X|_SQ=c(C-ruS@zj=SA(jd-;@PgZ02&TbM_Xq;2Ukc z>v|ilTxPr&bd9-?!DHsHE<9$9WsUpV@VM5EVw_s;l6?Tp!Lt_!e3iAIeIMBiy9t9aikAU@_uQ>FUe53W`7euWH?raFKg;{o*aIMPozT~!1{ ze+5j;hn?zaNX9&*n8k=CmvK2&m%K+wkUE}8L4e_K}34OtMl>KbTz^Lt(e;0r@N(& zBhqk>(lajnMjXyYqGtayPSO5&rgouO3~L#A%A_e7XU*xJjutzSF38^E64Y}h zi?z%iIgrZ&3C!<$nRH$`68jt`{B?mVtEA2Jn5pS#1EVG`U3C{?Cx_MRY}arByi-(V zW)XSr)dp5v-!a>DTH|Zly{)GwTJbSwR`$LH9En-&N7z*V=e<7kPUPf|W%({DyXfPB z_LgOZaEf!Itl2k|F5E*#JW-UbEemW8OvG-!#z@y6u$eI7#{1i~%MR?VT?Fpf*)C1$ zoFvmRaXmL!o1XUa(nGTFz0A@n1t$UODYP-Bz{lPaWG56a9Hn0EkJ2e(I*$EmNJ9l1 z=R#H#^5-?=nv$`nT}sVjDtUm=)o*>oP5ASSF_8J-^p73LT{_v5c?}408Qz8)o{r$! zRL`hR$*&%;{y*X?Z)|~G>*Od^R_e)ge_rS`{PWqIMnh$ zPb3cR2LQ$bUjh0*m1*RY?a|%VN0?Te;v4d$@D1MU-^vo8S@NUHwcQ+axNqRVmYr+s z%K>5}N_p4Fy4M<&*GKc!zoa`^8}emwJNFS*a^TDvV*@VjKfeq(X7{5GvbV8@UD*v1 zgiy7C`YyM<X zPb+dUHKHA?xtmMFY}8>h#APcSVu@yS;IH&($UV}aF|1i!BbdyJ7(%74G zE;m?G>-OC8?FMZ*!;&o{MJnQV0bvzPjYT(3B-mym8Wo)Qz8i@DvuNu1x!Wm23FPDU z5od0f25X0mU(vr@{|W3ZzWr>r_4 z=?s$RjfdG-?`-++Qu|;>(3g?NjBJh!?Pz)y((YZUiKE&yNls;GPp-AoI;4k(4YLOi@;15OKN)UoLo%6N8v7tVXpf_tj zy=I{rD-HdMJ^6@%E2?W^*-D`C%)H|ZW-)$zsnHk3>HSVyKgY0tWN7!=jNff|O0YgW z{Y+ONR|i!ENEtzhSwXKFoI4{@nS&Wyb4-Ju!J~H{DS>koX5gB{)kx(s<`ASsxckf* zxu)|eo1gvx!f+0KN&yH_K&G`z=^#`=L!EG2%;nCoz-f&5@4PrNa^=x|))sfnqAGS>ju?n zJYP6zs#KRkMZ$!_vje1aD&yzTN+1I!ZhII)Of%g>E&?j>GV!oX=03bv=p*NP%CYxi zh!wAP1c!Il8X>ax^oP+0ubNrKs;e0OjN&F9aE+u(d_Kr<`=#tbOShzT)X(o1-q!m1 zcQm^~*r|=s;me9reF_Z(L%x?pf8N_;?^Qq+oZTe;@Szl^Z4#hyXzed;EWwHnIns*Z zd~53X{mL?>3o#tj);drvG^XEqRk1KZPFY%puYM^uF&K;gvNDkq)Bt@%{C_SvRqNc zisY7VgcX~+xc3Nf$3pbEKGOOQ)84pCPC{Anm~s4f1p~*N;gN!S)!w-Qj|Mnq9BvhQ zKf6&#mANc-4h>ZcjV}a!ZX*PoGs*CHkSP(=49StRGUFxKWN|2RTX4Dqd4nRSp~l-? zjpx8X5=%`ZYJxDD@_b(?_oybv%WWR@K7=U$d9876KI=gsG-+ay5 zsCJi2Lr%sfyy&GxLj@R`ED z*CSg+fa<5ht-0^N+ZA2PFre1<>!vtzUSKg2_&`Ql@{OD?XCFu0jCsFW-j@s1Ons%> zd6pp`Hkw}zyf=$EW^7~2t%wEEj6wJ=kCe{_mho}+=alfE3Fh2-Jb1p__Sm4p$c1w~ zCk>?V>2bD%Im2Lg(s=v=GqjprU_80un5_rAV*FMU_KxEsjiWH+sN2c9bCw|UNkV9S zuZ<(D;#IxqWKNFTbf^&}NY22X^C1*cwAMNIgCDN&w80F7n^@-hWZPa4+ovPwjsArCr?P|y zr!k2BboxwpRyv0)xbFNO@bO`{GLdg?5FRdBd1sA~2Q%gyW=>}{`UWx_-)G_Zzrw5A zf=A_yX;G}d`PKCh<)7;IB0HBMNceY{^-ei-lTtw3(?QL3LHz}z=q=soE#k#rl8nYwgtbeH{YpKo{%B7sW6ef4)X|iGenGon&pWu!guu{zptD=K zNAJX$EmkiDwE!lHB2;)5S#u8Vn}f1I=j*xiC`URC#!@}KadW3I;a!vOdk(6sLC=Q9 zqz1%~@G7J7CYS9|xy56d7=e6QdBr7YBRw|hdZ}Jb5KX8cjLzSLHEEtYxVql5mGB>; zaj1WZOAVoB;uJv_*(@w6#rO!!rXd+4hTM*kLbF7db)ax<3hL#MO1M}8t`k27`J>D_ zFR2LH?o2K4;51pz(mVM!rpBv&XtIP^lH+p>2Oq9_bMy`?qv>2Loik5^*RN^igT{n= zmZc8j7eN0Mn-YFIE-(M#sbBf+@OKwhpyCm8XXA_IW#k96!f(^nxN)yA-q6yWI+r3L zC%%rH$1uM%r4}6y=hiU;a{gq0Yvuk;CU;s3kZ5IAMjh7^7j~rH!c!)>Ms2fQnXVBs zr44-<(0Tob-;HdO?zK0$!lMkaqKR@J_hS|N#7;#{L7}|Jx0}vut|7UU$VC4oKn|+2D{*>2s&1XKW{Q8 z>blbS8ZOZ>VAB|CFu$`v8t0dLmb2{R72SLt>B{Q$zX99=t*>7;$=@~tT8n_kctV>v&lDgyklFKB zmkb)?p2wbT+tTUP@TpY8d*ruhw_xOo+y@pzEiqjkrrDdG$JH+}A=JN9Do#Zo!-g+k zrZeS?s1-HXCNk=kw^J-W)BTl4tKAO(>$4o->%^gkt{9n`k}`5spgk<&*9G zuVcbpXCIl$g#5S#fHo;G%yZk=W}yx69di1($3}MZ-@syG^-WmLW3vIG-5t08tr_j{E<;)m9s}Okx!PRt$%Hx~2oEgNSe_f+B=lUxUopkHY&KtmztnfPMbV&Z{!RMQa4- ztieq)yBdzmo`JIhdRv?caqG|2;l!MvIYRXp+4T5zJ6nsTNWt`*M7H`>ijuYE5?tF! zO@r&}=3C&%ez~C3$PuP{Tpv;`P`Z4@{o*b}9B#(CjjvYE=K-n!AKGW-?dl-~ZN7%Z zYzO3aMml_98O`1<3p0HocEA!bJ_Xm<8&+PvooswW-0&X}#|f_il?jxYt-ObOKXP@G zh|0aT1Wrd(icsw2 z3iV3xj7V>`Ft4B45=%kQE{Wi*A!iVaEeTKrH9>EPSbaF&jV^(>|1cm^1_QD zg=lqVP_MD^I6lSLll`dhSfv9d_$`JFcYKKRo} zMEH@#up99QZ?BD~;HVkJ5(|i!9AjOcUDYHsKiW~2KVh4NI!P8c7Qy{Kk|$PeDiEu#%xb2L0$XPq?>sGR(zcgSr?z9$>?be zF#PZ#3nnaBopADdS5UNVYQx4*hG?`R*G2Xr`YMJFpHITC0#YzJH~fy_&UcYC=oA2^ zWht|NT0F2h{hu$ccB+p5X!+nP+2xjXr`it>8&TK?C;7@E6w~jOpNmr>pUE%$V=a!s zi`gCLP0CAO$V0@zy%jk=4_q5Es~<2Bf4!Y2x|`T?b`$xJ?pq5PZ4X9A?-F3_b*=I8 zQ%am|Qeq$;ufU*=90l4yA{ncm8Xn&B2nB|x$D^x;BQKSmb^x~f&YO#4RVf{h2k8aJ zS&WBtKG6Ow;?+*y)0!IV#@3hGsXL*xDbgt}+hMU|SZmOI*7{fajKe&n)3hLJtx?z1 zPlLUegogdGeOJaP?`g8iz?_Osu7+&i)>i+i(6QA@!daG%^|f7!fSSByw|-PN@^Nb4UlH&!$2h(U82an z_v}oxTFWSazHJRNJliZ?Lz%&+LU+kLrGgZ&m-V+#(~;zwsz*UHasiEICiga+&MWbCg1)AJetI9`nUXLbq7mo zkX4;&MdQ~c`uO9V(M-1{y*KN1)CG>~01nn3f~F1x73$#!cis%g?b@iY1JMVW4E&JB z41zw5OR_`sTGLs(i0G9}+_8#>_pefO(C1Q7$H(G`zGF#ZAC~H<^6SgB30KR84sYt# zSgK#_KN}czk(i0H;F>0n5l(<`0W*3>xEd60TPr>XAa`cGS$zg}mcL90Da3aD6K_f( zUZa)xXI_dJoC6%deuY@qSl09+`cx26;5fH5s2VZbDi=uRxM5%!=w)v(dLoq!p7*jt z#iwuUHK0bqQGn@NCgzuJ)nMGM2^x#JDs_fqMq|F}U22`o<*ec~GI(raMyH~`EF5rZ zJ!q{4LgtW{|`p@~h63um=-?TDIEQjo*_Q!5WHb z6@MUwzZKiPzz}n(>AsF1Oac)5e*FnumvV+RXydZZ=Ks+GD9@;BKaiUJ3vt?jIs5A` zLqK_|oNIoU7|mYZ4rw|y;(E!cM#l6IkbeRhQrI_-@xjTQk+bDEzxz4{D>i6oqzR}3 zufC8+gngH0}rA_Ve_omnYg(A*XVj!qy0t|*z6dN zdXY_2sArN%H`BquDho`qUg3q$%SarL1?&P#G{WrE-P6Bgy2ZixlJdJTHNmh^NS&tk zW@^Q^@?*HYSS=J-q7ro9z~@1nKX!M?=_(|0y*4+M5PEz%Fqr-{#P6ySRXT3AuR8km}~WD?lo`vJLBnwa+%kCB7ntG&pBsTk*syYUbsG z!!BtVun(B`4{AO-qI0DJ9k0aH@_VAHe3+^5aF0o3y_}Ox_g-e4Z+q!HF5t4%g+K&Q zD&9ryi?n)qEzfLtk>+(Pt(RvgL1^Yw@4cUYiiQO5&)2v$5*xLl-twbk6^07ZD2j*} z5|z>aKK8z)4e$0knZ!**MMc;9%KCn)9o<{cJLUcP?MiB9jrrUrATa#qqh`4JYhF41 z>088V6?MuvSwjfDSiWp=bl%W<$$hesaBnR1Q}U-(MD4CQVvdz(<#>2J$h>JbT;Vv@ zeY7pO&zvX{L(ssn9HjhPXneE_PYO>gcba&zFS6hh7zw%drMSPYCR=lg-!s4T4_PZw zrUD`?|B)x!JhooL;FIAI=pI`Qqe1V?(?wf2xCA^T)N@|My>`PlV*tO2pV@e;Z_EAXtEH#-Cu!3OUwjHap1zx)fT z#B+Sb5bp&KoP8&+|4^ZJIUM!(!G@VqVerB&Dc@k9WuY5R1AE%C%hkAU-fn*5Esayr z-Li7go4Kb}6uWCPSM7jYKuZTzF{DC$=JVGW9UJ^!mqYMY&_Vbz50zu}g6?$i_b*q? z)6jtvsMo=oIm1kK>D2jq4CpWCrB;t~tvOs`U1&J#*A9Rhc&a!5uD*OFW}z+in!>YG z;)Owlr}G~luh?DJL@}R9>u4$X3CMQ`y$Z&^__!FC0zfqGU)?F=I?Z+1y4;a2T}x7M z;55mU4o(0%3+B07Lm9qsnc^!n1dW^nVbe*`2dlK;LF@Huf;uTluW+~KiS%qATI;W2 zypSTWa@O~zoK;D#IPNpFZiR6xHo2noQ=HmPLMU^!KJ1wy=Ri8b+smKdG6fZTpZ9RTbq_j2eY*sru#420PtQCV;MM_ZAQ9}|2nGqpO0?L; z-gXktJul%d9)8aB`{zO`IM__DGWM~3a_qhTU6*oKqnykNocLy^k4o0)GJIpVY6N~W zIZORjW29{*poC)rAfj2j>8Pgb?Afw8m0NgOE$PHvyHbE(OzW1?NUvdk1;&hic*~<| zkY+d%aonWJbZ`9cHMcuv{yG{?3&ro6Z;0V{G7GnyiJ5yNW2yn5ZX-=NuQMQLcatPK zg5jB8i9lN8ES#Fi*$qEW%3vmbf1Vi z&j9S>FOhx%iJY}0GdVJ+C}YkGp=_rZ&bj$}$D3Fap~vNHz>+}KR?Qz|Y%sjl;Ix^e zncf?j1Z#gb<(v~`f*30c0g?h!dPuwJw?vfV1?*;oRkE>O-9n#Q%R$rZ-~3kT7)F8Y z6h9v*rmi+n}pd`R?V{@E$BUyz^{)b5X>EkQg6M2;+ZT9|DK_KKt1q ziA$*e6m@fBXJSpbEN+(>7%f+57dR)sc-^!evpaj%8%~FmjRWyygSwy~yTUYKb*{Hw zV3*yn8rYLN4i(`*k}za+l?j=X%$*r{lWg&{qHP`UAvDVdN#r(9LE8}RBv}uenzlOU zbkLw;@Y;oQaN=eb_o}0jzW@WZW@g^7zPv_k+Kf3#4mG25o&Kudk?ttHT>S=g`xp4_ zz=^!JdDPXl2KwPNiIBkoYs>n@wIw=$Dzzna&&C$=miweoawlhRKQrL%(_iipHg;2} zbR)PLMM#m-XYnJy3yQm`u^R4`U~0Zf*?OplQ{C1c;6s$Kou_zEaTg^8wp&cpR%xL+^FRC^ z@IeaNv{;qG__Cwsdm`LB#+>BnQ>n(nk38wqVbKTwAqyi++vq{to>|=nKn9q)S>8xo z?Vgxds#NPn_`)e8!RcbA0>|w;BscpYNz}lALf(g&i13S|1H}O^t#zV#Iw{I%S3^Od zS-Bv>Blz%VLf>Fxo=NV&l`QBZO4w= zf|iEM<8x){gXb#_aI$hdzw}*g$sOih$v<57pye*0oIw6eiro@>VGX)68t~2{LU*E^j^q3 z(Cy&u7kaBE$CGvR#}=b?;}PKT5<)9VV%tI-Cf6E*1=ljyVnI!cAXT8uelZEcB}I!E z{;B{tCx!#Eavmq1eH6I!UF%|j;&i&hw(6Xx;pF`Dh~v4CvAJ`!UiB5!;(w-gP6o3w z-;_SC$_#jx`uj0r>Fy(nP`bv2B@Je)_!I*mW1KMo|d5)Xd+yEKm@m=p>b(=B^NIRx$x_`b8kIi za`3(+u=7_ppF1C@&*x5?h{{9jMoWpiQ=E4yHkVC)%c19g=#%$XsGGD{|xNdvhEuM9beeRZ1 zqN&}Wy;7j)yri&Im`L2!Hg+t*$DH-nH`f~IkL>*;y^M9zJWnps13c5c0mPbNz>q!DrG*OhYeU)bt8Zc2 zpQ+Fk^=RyT9S*_nf+*((&d;fppa8{MfC9Db(_~#vyENlL_RiXDl!InngJ+Is!u9VM z*mA|Ktj8am&(?N(TFE0F^5d?5#00^q?pmKuF@H8P!=?!>F}mGz8GO$@H1(CWz*Ryf zhA%hbO*V{R`>i8#Bc!W6%xSb{wb5v1r!Q$}c-jrBmtunBG!ZmA%{e^~nZ)%WB*~gk z7vNI+aPzV1WDx7C-DuRxGB;5oOP2xybMZ5sFcs+ zJFCNmpwJH-h$n>4yxWT=`&J7uSf3nJf{Ee26s11S--%oU8t9N`OL}^YDup%xClP;Eb3ph* zj(6iJaQo#6#8L%+yp(Sn^CbuQ3x=5>J zUS#d*KT}PQraF-Jeo2uS-Ld4bb^0yG%QV4W93#-jh7ocn@VEK5rSY61UwAQBfb!Vt z(Q=gWgpxxVBSSm#F%)IFJY-zjz&GIB_mww+uXT#)_p3))R{H+W6$me6$>pl98{;Jy zq_@&$`i@Eq#xi5xctG zkT=u4vl9-twdfU6>H4ld|0?6%Q@QfS0y6gPw8zTox%lUe!7}Q?XrJH`w+$H;TAaRBf!mubL?@tZMDz7Z zc{7?bcFk~dT^N=fus2(~qdbaOE}9I1*{1RH8rPlArKq}e_TaT%YQY!&E^||0kE}I) zs{83hgynEWXm&0{_j;4iWOgG37N6Nz)t(#f$7NIc|ZR2P-1z2-XNDi7RXEu zuJKmiAqfyLJEsms&JO@RJ9926F1br6mOa(s)`mkGZtnuzA|_Z5&tZe_ z0T>B?dOnsFMRo#4I9j}&j?74D*XY&Vf56gT%6%DRaZdl?zTN=7Mdvk_09vzF9o{KP zoBjK&cQ`p6`D7={{U!e-7eGaHVFp=EoSxNc-<=I~FsOr!)lR=jOmjbxk>(^B!1C$D ziG5y9R;gr+024t8*4^k=1#Kpj%(l-Hxo>D73qznTG{iTqHqAfd+A46Cr3NxG27*$> z@q-Ew1FeOMz}Cy@;RotR#4q9h4l_$9IPTj0gqKQ}HV8lb#=jIXDI=}bsGDFuwLl&e7jDke%!pA|+v z4@qgxq24ubOQUonTh>4HKRe!W*dV%ymEK%lPwC$zc$s3!8l5SDLtRGcqfB!m zMaFk?1;-j%$y`AbAISOB_M54j>0jEtTh<>rJ~uKUygz)H)ypILOTPmZOy2A}_j_O5 zWt|B!4)6Z#U47;4QMWUHJq!K&$No2(a~(mwxuBjt6SclK8!I%^-kPI8j&(O1%MWwZ z`4s1Aq4PgaGK{DsXhj@hRPwg%j5qG3xi9sHM`jm4<8q_>RA+4gsRf63BM73ed zI}+wMP)Ii4l?lR9GOgM?jd{rx#z23z^QIVdyVe%BH^PL4O^1ZtRJY8lU2Yhnb#&&r zCA;;PqHdy~V{KlS+Pjrb&i~WaA4x8t6*q6|;qj3zVWV2zJd3^SK)~Brphr+8qpUbz z6|aK6Vc{n8zyQN0S;I_`(|*tSeBm{Sr@94a-gC7zeO}SDRxggq~1c%g~`RLli?G#HElINB;%``<>S52 zC6RoM)WsbP(obf?y;NE62GPhle%SczVdHf2y$1UQdvM=-B@?M3B_$Ej{VCzv8SCs# zpmym)Xcy|SdH}gk?P%p0H$%ZGw+(ODwwrGB9a>LIWt(5s^E|-xoi4xPJ1Rwsq93Z`E{g)YKrd9kwr-Q_T#EQ zXDKa_XV{Kq>m2eR_it-HkQi`hIK`;@tIr&gpTU2|-Hf*Y z(Pk2+_hhVm?1%Gd*X|2P|8aq|n-Vi)xs{CtDqdZeW^Kp>$sK~HuNr&Po4?EKPh4iJ#p5on?6s>y<*E{&LYJK($_0ToFY0 zL}h-mJCGmTdc$FEclCt+ETVMaW>}HiLbpb5Ypi;6oR+hh4ZyWfXe}M+Vy@#36ej&~ z`%3d1e;MzX#cYdT%WJ#Lu*~{&vwtUZ`lUxW1KMO|<#GjoNc92!N=N$d z<4wKLWDsL-iu8f9^W%4&G~-2KcLFt&KDS%F1`kg6?wB%lGD~izI%obwlamSS@0aE3 z*P5uZfTrtOx}(z}iNZLcWDKQk3^wJ(Ke4zlNA5S}GfRD2(QJ7%qRO*(Io4)Mbq1u0 z{_kXEq%tS!r54H7I>z(lHJc`2?M<$b#jr%hCaC*Onj&XpoH9(%F_^teA#Hxp{ra?? zA^b!Cc;4|6b$O5X8w84*K%HBsJAmHMo-o{tAx(l}NkE1>|57%64Ge?v;n8l*4YG;g z9C6pllFjN?poD-$_X_dK3QMmvXlfG^adBzm#kQD?OwQM&hcBMj5QeFB@B21ULY=yse?O}5_qS9U9m@y_lqP8X zYt)Fz^cVD_mMI}k65{L;q#37+-Fy*8Lsf(4j z#P*(rUy%}XJNn3wz=}zJmt@STkB66+y#3UoQEjhx)==)uE1_rg5QAKx#pAg2oPSaY zG>i~#m5_hVx#zcC)Y9YefO|LPai`aNprnR~7Nb+t3(~Dc_ZGb?8`KyNVf) z8hktxeE1+udd|OXlnm(C9-G=dBtB=+$}W_3#xUb}9`HDsWqVxr_+3GGC^F`N3bE?V zajWW`RO)W5&~RJ0IiCpYDCAYbZ?`4g1wU&FE`U4V-cY4MBDr`8I(ozV_F;ksmx2I- zh&1>Tvr0jkUFmJSf7sn2gfEX29WH_;rWiUgO1CZ>Yp@Lj?erdQR>fNKHWh05g6;BA z#71DK#*RE_A5ARJ5Qq-9uR1J&D(uksmbwr4k(i&)Ri_XN4wFlI2E+T#>Joh~B^PqJ z8K9nt6C{3sy^=DszZMp)JW%onSWICmH$3|*Ry{Vb=H$mGjY7B*-M}B!6)pl138Yi8 z=-fwE;hD?&JX89WSyDy#F}SuLN@0f9;zw^&icaF^QNl04C#>O8YxtYkE#)bp7$59Lf~-FV4ra49_16G)J}mQt z<2WO}>V=Y{$X$w==a93mtT_FrH-^6wyZ37{blfFT$Os@bAK*I1j&~Xw-mX)JdTWl( z=Ty*2109us$*GLW?x;|?K!LMP3vSQTH3*NKh(b#E zY@gA51XRD8w3;_y;Ki0)3w+aY!$cS=o&O4qoQoGLs_s?HFE||$oCKpYGA^=yqLo>{ zNurU67oy<{%du(cYH-zeR??TNM+&a~mF>EQ*A>t~4LvZOVTwz?dR@tzpaN2vHXZek z4Y9Y%p*$J~rT`zuhO96$z%kFwE{&hnK4UH?wl~;#@ytg^sUsK)AGPX`E`h$KE>({~E~$${D6OpCKgS{eHu$16!J_ z2j1swnn$}4gX%~OwgUQ^`eAXYPQ5GRc5-X<^k&ymTfk$OADpbiJx5V^zX*ULP6SMn ze+K(XBTIO6#~#-(xMOP0TY|1Uv9jOf8k@LYYO`<4VzgfE9O7>JMqx#`0s~?FPm7So&LZMBzU03~%TEP$Zk? z+?V=Fo7g-0W;@m_vViQpToHYNEds3`mI6w*(u1STB$ITFl^=q808ZVvTH)Q%>gX}W zYZT05I{=c2A0^?vCQlie5F@UU_TJh4$y-Uy6F;oK}| zEmZX`;q}%6H#X$k=9)y6wyFh;gW4d%erCgX1(*O;Dk}m2j&r0Y&rI!W7lzNzHm*)S zN3m$Y62wo3SW^^|-c0(c@GKAmv$5saMx0*7mCj@K^Y@*G(_i~+-GU5jZQs@nY;kRd z<>q}Bp3zHeCk1z0q+hZCJ#0+>!b&ix6{Q^P6&)wf9@r(G@l?bP*YD^4oNAl@A}ep z(%AOnPW4N-N6n%X{lgLT_iH)^S>_WPaW~s=ZX|$pL_HJ~(6173+yq96n_!z`;PU;S z^v4?P$}tqbG4k9<_@$R2KK~zkf8o~j+r|&$beD94(nyMQ3`GQ-fMNiW3WzA(xq*nJ zOj;#|goq&BIU1xvx*0IKVZ>n1d;0m@$M5&O@4w)Az8>>H9D8%cd7b$>UzZNMB2a4O zgdRA2L@Pojn_^9nfnu*fXHKR~D0>u1rVt8zpUR9BzrODY6tdKl!~^Ykh4^)8ah#Qc01!+2gbw zfM;wx)Z#iqc53b={l5GJT?DxL3~HF?&~JPP+Ev_j%CnUnKz^-XxJYL^7a-U>Uil^M zyE2F;$C(aLs~Yw{mu$Sj)n+bBL9{O{yDsU|q$^7c{F^^E=#9xLL}coS5(+>nbbQJ> zL23M(RmkYM=upy`W877<$v|t`xz8o`7_;;Nerkt6fp)U75Q7g)D1FI8C+rEedatiO>%%L05 z0b+gD5-U_RUA+AW+F5(;ue@YASNJ%%K1+AF)%l;qaMOaU6r+tg-16OA)qw2$eV!-} zudWnIHSZ*9S`oFMu(aw1wY5!Bfm|7ERdd-YfF#^UWt{NvRF@SN1BeofecL(ruFL!n ziG2;*N~}&)%B$2C2GpRMDcOALBq!>bjU5+{q6Hesyt{v-3+a|JRy)uVtVH9_6SiNo zKhM`_#hvU?H7~Iz?R+iZfhN$QeCv}5LFA%j$WF8t*$xA=VSkzRw-puK-`BGA?dNN^ z@$vGQ;x|Ku)@r<8Tk^d*TxYGx+UQH#hS)2#+HgY2`%hCMX|xP9V^s2K$s1w(Ic_qE z4yb!xP@WlNo8j>JEul~Vdg-wx57c1iba~FlJ3MCqn5;yUGX<#RF=oO7;39y_Pccbm zQm4dQF8)5`gnc+vC@S9ce%bj+UO4aRpNVW7025i;bC{dty{2-0V+G=lO6QYx&H&%| zSOfIq<%S1BfmWWoo~GmqSGlj&d0|Al3j^rqHN_Xdyj6dmj;Fn-;S|WG)<93fLmtZN z%wGkDbyY2fiLae>E^q>Io&dKRfAvD5J^Cwyq;X41oX4n!3SihFqbPW-)oE$c&x_^v zfSb8Hceyp^sfvt}aSZck4A5!ZEDV5M3<#Y6EUME-UHFxiimN6T@wxkpX&bunc(${@ z2m&&;KvJ@lS-y!Q>PaE#`yIS|U-(+xY)kv!cjhOrN z8kZ7~F=#VzdHAIa9}D_S;7E+3VO8t7Ei|)}5*=_wbzZuU^kJN{fSq%(0N99Qwsk!p z-d~3QK53+YlvUlZR$i@c!IyURo_dED;m!FnYNd&!(`_v;@tN?f$2-Gw{Ol{c1umyW~ zfKD9VWm!Z3P1hau>sBD~t&YqO#=e|3wG)r)je-g9nA<0P-e_2XV2Pwy^K5X^HL`ED zgZ}0>OaGnvW_D9oH2~jxO}J3g+K-4}?8A$S@8`Li-{d!lt0j?+0#J?MJ`fh8v4}E- zy+)vKtH+RSvugFLRW4Myo0*&~8&YGpL3!D)e)>xy70%W1i=t8WTYrekTNq!!Tnq_Sx zG0kCFY{7C*KW=V-FF>+pHDl_U(0Nn?poA|~MqmMvw_#i7)(&&TV}hB0F}K_IaVtO$ z$#^w`rZ?cL(M@5vTt|!JKpv^D9>HtE2X+Il1?Qy&Tfve2HWHWYQ320Cjsj8tB2q`) zbg}-1AOX*ZpgjX7JV65Un{PqV*18KY`_VDiHr2?+1nO$c&8jN z8}v`f{OqkL`Wfs0zK(^W4%+U&(u})@Zw>-b=_z{$Q_CqR35NLgxVyEzy1O3R$bzkd zE(Z*t`(H9FW|z?-;~obGZ_9nMcFdPVe)#Ek(P9iOe)H51XaUJTu2sj<45(*h^JO?l z{VM*v0dWWJMnVvetth8^-pp%hlwJG8Gd5Vh2XpC(r| z*w)6`T1;9vu+F3U^3)~20skre_jSV2NkY{E65$3pDRMxFXDo&m7Twl@rIiTFv!rI| z2hz7~y}@$R&Mj7p`ew)BT4bR3e)`}k#w+~9nz00Y@GnwMj+wRY0Dzzybt$3RVdclY zzt}Ce;jCh{?nQg~U*q0&b7;+- zcbjN@j48(!fr_EkhXGgWCsMqdJj3-3sOLJ_>nX06(|h#{H=?Pr^YYu#w{i~=fZK7e zgUZ>Db~QGGWDsD2_c_xs|0(UAps=r)1{`5Y9Vv(4jmt;37P3Q{YT15!P1@xg6x8ki zvVbh{@tp1sryZAJzrH(DOs60L1t4?mL)dFj zM08%@7n1D?cQrce<1u^ZF3ybx+4s$$L9XCIpjyHdnApc=I-@#(Od_}!OR7PilLQ5qyZ2#2T#nx_`Qc-Nr!pP^VY97^tYybZ;kyGx@Z-UO+gArEMiAMy78MJ; z%UW75^MN9qx7t{ENOFLKf@zn*^@Y~mS@1=y+ZBMQL1ovKdtzH7sTFlvQqcbhy2JoG z444PlerALsu!elm;0x2UG4!1>3m_o7Anv*h`Arg^7-+j-8TgB@D*1w2TEWiUJe0*ZsLdgxJ5}!fRIZM;siw|MwC^Qy6{vsjOD_oAHJ~K) z;mbS$aYMy1pRJ-5SH1!Fu|d7{>ncH`JVLqYOQED|0hDMNtFh(6iIb1TT)IIFK+w|h z%d_sAZJIs1bgW{f!b$eIXXo)sF*h>hiv%RP%Tt`0Q!PNhFP2fON)T^Pdk((UaK23n z2Z~sgcO+&g_GO@|(^{I47f@}v^T;g8=W=oeYR`DgOi@=N?GJvs0C#z`nV6ob(!3>6 zJXANKmEx^%A(toOBy*dh5%QX17wa(#_$*z>JUB8e-Bcb3AC?1>xmc;`v&SR4Rk zIGI6mETUI?9)`RNxy>N0>+-cziVQqt8cMq|bo9)g+%Tmhqb0SFA7pSk5R>gO-%VeD zv@}){+E{lhkE-oOWiRqzsrRfb-rZ|dY{sx$1sbvPEzUK}{VnzbqG)TV-^e{m z78StJ6!^BGJ{{6~y_HEh(s%E$yg!KB0}-V+>7M975y($NZ8D&GQNF zFXA;+Dnq(Ptqp?}AkVWkIR!~!J3u=Os0y>+?KI~xW(LCGnq;B5RZDqzDb#u6+DR5F zvi=i^`kye{dC$|pHD5ZOqmE=-qgj@pUrqDpURUb?Pj3QUbpknETBahjQ`-hAjtlSn zHvz7|zT&;O{!+rxJNj)FwwE;oh)RseuK)3P?50owsY?4Gc&HfYn|b~^lj~I$i-kwN zorTr4$Nbdu1BBwLQl|K?)>4{e(cA-GguZE?f0NWi)rtcRzP50C68Dpm1LHJ%ta)G` zRZ@!AtWRaDcu*=*|9Rhh6ur(Mx%selH)$HF?ZPb3FB@Sv>_!9RsGJe6y~C5L7roPB z_0r@D-0ms)>{W};oX?!IamOw;z8cI>MutObwe~>QU0p}#{0n3%AanhY^y_#H77un0 z8d}trZrm0+*0EP}u4=YBDf$z)-Dw2kHVxXIVqAvCZL{iXz6I?`5)pv4N4YY?gV}aV zKuCuQ|CAXNW}I76!hgYM@AmEqfM&qHxi}gF@key&0xhi9D=?X$v&@{c1iY~)?_Mc& zKlvKF6lDl;-?`MJ!RbkZWF4ORdI7Iupb-!>?5EIq@4gTc))XmbaM6k z>V<&a=AsF23~o>!?W%{Q?!CFDzK~Oul%=M<;GgcpLvA=cEs5v1v{eDHl@xPs9|7r@ z2h8cX6fS}L;>QdN+Erx&(RgtSX6yNs?mK}m3O=}~I;D`fpO&vuux`X#la~*AR2%vC z(eccAPB}DI11YWPk~U@&`^wR0Z&dZ~NVMEDNO?DWFT_LzP83FYmu7K(A@q8jpF2cSGz#Jy0=x}&91dlJNiE0Cu!205v-@C8 z_}jvOCXb2NK0NquQe-Y;(*UOIU1=@a!@WyZWfGg!AfH2oGo>YWs{FgYpQOGRz0XZ@ zg}g{dR1lkm4u#dO7grRxsl?;kcW}G^E$1#ElNrzpzy}%vsD90%3`!%S-AU{s;+@4` zTYh+0v{1z(hU(?C=ij*2=W_T(tj#)~d5Y9_YW_tjjr}Q*(*_?EH~8%X3Q{~;>uj3` zw5%ebMyn<-aSA^B3}R4L^U^sc6(lQp1Fm9+XMOR$ITm6Au%+;Hr&SKMV{WneraRFB zkj=B>-w2Zd?t!29sn7fNUI+Hg+EL|OmXy+jvSyKBh7#}u+aux%WbV3%P{6Q&5%*OA zVizryTia%mK3!nBh!=;XfB^#yKmBSD~{CDnebpkY8hWfY5CVe};MWx36f%B;Aa1wV%7i<+N&Iw4eL$u^{GIIj~?BMNVMi2 z2M4RLx)g7_;Kvt`2yJ|DYlkEEY}QoJHk=$f_=0yma}{}J1f(q;!8!fA-76G5z4CLI z`pWt(2W73jMz!yd_QLD(HHQF~+(qf~!AJuF1xHib>&RLsrv;SQans6O4YfVNX+*Ki zKQ*)OR-t9XN9r9mdL;8HH<1oT7SuDWalzRGT>FD#m2~^F(fvhHLhsBr{U3G#ajMM#-&i3lt z6`l*9WsS0#z-6zDkGDVi{opp5-yvDTH=bG~l!7EN50EROkzjDcn*AwnGLrar5_VsPL zigrJ_VX@M1)<+d?v^@_NN5FUiQ&g(VRT1nZF0GX49)a@j z;W_WcXNuKoUcBx_wz+U{b;(&Kxkex%V_?iCAddbI_iU>H{6t~6)*1KVmJ{^+xU&$9 zsZq_;goneA^7u}pgb$m`I`3+c+-%Rv>&kiG6QJA zo?yAdPf3dy?JDrAvWzQLv zB^?X&?J+%f(%;8)A7qTVj=Cyt*A%ww*&R(DdqdWMMzhM1q-T(`VK@X?UKp_D_z>gt z!C~ODS`x;CNgW;vRXdG@o<&`_9qFi72}Xd<39GWcI6L(Lw1x~deaE3Pm*Em@Q9{)? zg&a4%(6WApR)^(~uLONs%Eq54mf(UWiZW-1Bl6)C+l|;u!`3+pCok*;+T!j)M$tpE z@?u5>DSoxekU`GEHRqVc5q3pWrLn#0^>Y8_H;TY*;5*ov9SB-mr30Jp%{$DJC}zBG z`Oas-a1Yfp2jau_ybb|D`^I~}*&Sr{l;ziMrO-!1tNKCP;kS&_RHg3YCED)LZfuVb zR?b2ErYuD*dM)-9E3<;HfCoQ**wzdw?Zwmww&5;c+rm*bdq#u4DjE|Q=MOy=B}t)6V=9sDxbg+ zVMRlC0(FA6wKnX_j1Mip0L74Ai!hln{WiAE7ZmK8(TgmYJ!9w5nQtE{Ge=zKwN{K4 z5yfo)gu&D;;a3hi?cl|*WbFF&)YA^4U6A~geJQMs@Dqf73#~@|qbnmE!HBvo{qT&7VJtp4E(j066dfVfUZybiKrTKZ4%Dzj$1P1ON$7Ijj%T z)2dq)`=up$n{Dzsc|{arYZ!lC%O)6M%&X$sg)UNg)}FY1Nq#&o{8pR7GFSa>w2Rv; zYs$mjt~*|z_dXXDuO8SmN-HuhZ%@6RS|Elud`$T)tm@LnWaux;T~+3#;=NX2#1aB; zI6A*L1i|C@;R3914g~`zjT(0P`d&u@1FCU=D*d#>Oj`K55iaGyv`NS&ms3lsh6_N-WqyCDB{7RkXWb9K=H`qkIaxJ-1FQE8u5|;}Ix&CBs7S%v_FF(R zu9;QwOQPbu_F_>?Yc;iD?2*Ds&Eljz(1zaMq&6|e@87(zh=JppKE}M~djl?`Q6^EQwvu8MDf5vtBF z9To7HXEz{KV4CzKRxgTQlZT2!=ju>^9h^w4;qq)_#}DY(tw$#S&_ioR{$V5k_;;BkW?!|^^r*-hE1)LM*8#+$E3D|B(tlm>{B+z=c{)J* zay);Vdv&iKFE*aU`Siwi1?{e}P~uxYkWvV#2}t8$hxlfQSf9Oqn9Q_(s~6GslZ8xP z12K_k#s`(z!vlN4e0$xVz=>Z9N_NvA5 zbup@i_jOyTaOWov=UI2>p+b)&UeO-bEqx*Nskq8QzQD!@Pzp&ZF$(b8ek(Z;4-&8i znizWb4iT`+MV3Z|;8M%Jh9Nn%XjhM(mw+TI(U}a}^?L-JNG2CHnU7 zA+l7d376tow<^8s+U5BDlCVHBb zGKTObAdhP}dGtREFxt4W8pLfu^ZOZ?P|f5K`#cv=5=deUkg|_RSjyK?$Ak|M0)25D zv|*s~3D9;BDC2zITv#Ndw|$CV-7|Mw$%69>vH+Pxv=i%Kx-X)&79cekQwQ9xUNHSK z*})S>B`OJ1ki>{ymW)^&X7UG!m|bkDopG5O^xEj~6n~qO4>LgmPMzQmD@XiS(x-tPoAg1{@5Hm%y#ue`OW-lv@1|2r{AA|SP_yI)L5pr%)=+{x$0v+P3# z&`~N{r~<88Gy8NjBsXE!ojlm&K(_0>4E7tx`=o>-oH4t1@|8MydX|uKcUk=>B9ioa z4{J!1i#wC3yUqlom>_=5Sg)}YAFa}AI&g(V6RjhMZTnnK*pKfudV3x^3m^P-TSCQ+ zo2NlMsYkV0yOfzHdAl8iF^T>M$#c^?;s6wAa8E#+$?r_Ph6Q>?{yDM{?W8kiLXcD- zIAwBd3!f@I{Cd*A9*b`j{s#tehi9}X_rg!TlF-+j`qg#3XU`>A*$%v`v?YyXXW%RY zj0m7~7wU!SZp3tV6au8e$V_jwCgV~T!?9%Qh-;LB$s~e0ga9ioc@FHci(zoLH8GXR z4WJb<5~%xmII>F z=F&HG?nM_Z~iW`-0#04!vmBduuo;~J-Z0_GkOZGaKnA_;7A(%4Lk;|5M6^vXYnub8)^!~ zMT#5^Kti1dCbO#Fh9$>fcCeQ_^0e4TFYLIdGegm<&$Ss{be^j$X{oTQQOK#FGi`Ms z&i4EO(_0=C8PfndT@nKMAQS_QA!Gi|K02DkWg)Znw{Mvg zxpAHMULg(O!@`{Ek4ERhey1G4Dix);*EV)wUC~yD#0DlxzB1r!D}ZhVbUU%3;xw`3 zHb>uyP>q$;(*>NC&f5)Dt}Cxb2Rc$7dZ*KAiWGi-Y@ZT2mrcQ2;m%CK-%rV^PqY{w z6uEf+eEy&x1l>_MFu#5Eo7AKHa+lTEeel~_d&J>lv9mGhjlM)Ej@xM48Q|=-;7TzC zf{tLVv-OLU=5x<*J!q7ir`;au*vi1XB_G(-pTWQ|=zZy*h~vqh{tD4cd|D?bh-!Mq zfXm(Srd>(G|p1SvCk$=)p=PDbTII_>wGyt ze9V*&8o8#dhD_{il08KH`qK%qe6jgn97^wJ$!1EOuHb{Op=H2p_QUAM_kCMM-Qo}A z2-#$ZiV0HW?9pjTf?x5skHLc;jxD!hwJO+6cfHjIgMk}q&T{51k1KgN934p8;O7@L z9t#%7$ey`5nEOw>EG1>3;96H=AB`j8D= zh>QJ=u0yHngQl*_GI5v3HZB2pmc5|_4F>l$(dZJ@!iYTQh;^i)MZgiX9$-nHK3a;? zzdQwqGBZ9Pg&~TF=m}f~e}!zY;*~*$ zCeXNI_S14ov8ChgN(RqW-KcI{YV_vvw!J8(u2FAaoz>TpX)9>|dr?Hg#DW90Y7w1k z`V;||&m?BwrV*$Onez?`JbAEe7_A&KDU7>S+OjJ~VBWRJlEDVDJsV@b%{K z1S5D7EPaUhF^S7BKRJrynjO2bg%1(gO+l%2^#2M-71e(206{DA0L#-hoN+CJ`*mh_ zAwck39)m0IOVq9Z$b*~$q+8ZGI7kOHBLABVq=3ZvSkjc(qK!K>9FHN84Z9;ze>jAc z1Aw-}!8xV=si$u3lF3e|rQ(bM4tzCP_K6QT>iI(kTP4fc)gtr27j4GVyk3&h#@Nw)$- z{I%D+cSncD*c;-dGuJ2~_s3rP~B0;8a@+C>J#j;#bq{p5Va&~ z^jbi#OX$9-e+2PxtC?nE9{%_x*}^xnjeInQ12vdMK&`ABPu_CD}@NkIUd3fm{ajT)>eNIN9 z!hEAe#6u(A zaK1PD<-KE4vTPg;BcKVpVA(_UpMb-s{?nGke>F()Fp%N_Y>MF5^wXY_eup*2VU;U* zh6_)MNBJ#Pu8ae4`+{*Gk6hURaEnXsU4!-UtKR^6SEhiDJEysmlDUPwccA45#c1&5 zubm`JxgK)`Vb^gjmG3ZV?CX=eqf2j+3!kr>T(mfy3Mo4jz2{!VnV5kQjbJG5cdNrl z$zsZXR@uPq+10XGOx8r(Yg7s|R3)ZaEd2Mj0FGiTPF*&vCY=V*)1l9yF0EIz{Jm?p zD$ZZFMhnq>l_5_*DeW^ovFXln&?rfjXi;r!F3gxa0CAQTd`_VmEldBR1aC9fSHr5x4cIg;NrBw92kiA0uMHc7LMU+p{Qd9XKT+?a^V z#VVUPl#e7@oHVmQI9(XAdqmfy(m?4LMhJ!4hI`lXy&qRgXBBMC!(8ld8^UQq{#eu1 zpj=#O|Ne}P24aA47#-O6m}S)|R3zP;KRa*r?Zdz(4|rOsSJz7)fX^J;dt#0_Un~rP z(#HjAA<-A4ZF~V--OWgZdwP26J`gK9jb;u|1<0_TmJz^z9M)GkXpy#V-*r}dbBSnv?EViAG~|g z;{mgXBh?XPy)RLs%jx~DNA$3~>D&A3p_L6PFyo&`1$zPI+bIjZ@}$@SY7JT{)!n6I zypX7jnTlh%g7bj{u;!=f=IlH~-uLcAiyA>9fC%*kqn4PaT6g+=#(+J$f=Ym|8X&j_ zt>Qi`70S(;Mkp1k$8j6*ebTwpiyr1r4K*_f9qf@O6=*7fzaw?N(zV(F3&J9cq`a%HAv_yY283BotG>s5=>QP zzxGUcQz9hqgykIIderc zUK=c9*4E86YHBrG#dOxz^}(WWgTq5Ah`Y|Ssj~&`<7J^B$#ahK? ztD9S7Bjr$poQ{>B7oXLgE&BF6L6AxvoS#6eqqBi+YO3%|rhs4FGAxkDvQtxmBq)-2 zov>brkPQr-+~Hi9n6|yx*|ejiB&IE=SHcVki##_`r{2ZT?7kciOBqg zdGSx^23!fS+Ptu%G_sUa@`;U}XK%>pSb@2)I+I7MryE;B>*jRHjy-xin4|H6t`nPI za?B?*ZE6PM;S&&%_0V-%1okO>ctppmj{6^R0{TGam$%4p-y+2D$r1VI&g{U?(eVyk z#3p5x%&U&4_OH8JiN(f9aoD7{L#_WyHjx6@~xefv=km;_QUW8 zdRo*J>=eLT)H>RC4Dj%XfPWI$LfN#j1wT<2I@R$W~ zfAMt;_;>$hp!3GxtfwqpBG54NO{4jXT`;jh4`*zqBGLqZ$@A%&Z zYFp91${e`y5umSsMS85wN3rfqwf0h>#=)POuS}zb?~2a#un70a592qrgSmJE!^xlM zth-pC(hQ-E)#%Fp>5cr08dQ1z#9WTmD@*q00|9Vx8 z6Zx{7@4C8Qr6c(77hNZT`q?eAck2J=D<3aN3@;y{(|7g#f4%okof&V4^foWi|M{{c zCbP!3B-V4Kk^Zmuc!^5zKC1n%Ffx7|$pu zE=7atf4nV*mqq*Eb9#rM0OpIJNLk{1@qf-2_-Si=-hls}6ED%zKw!R4=lM}|8vo;M zO1w3~|1s_&0${#H1VW0Ttp8)#jq$X3{(Gy)f|z)L`7$YVDYpKPoy2X`|JVz%|GQQH zk;DJHRsRvi|9h(bbA(?eOeGj;xBK0C5gkK}=THX!c`i6Z^6KFH~dA@8rr(7>XKx{m@6wQ6r@|e#mXtb zqJfLtzlJ^hwOjWC`}Cz1(jb?XJBsqYOWtnwg5qvfQ(HmqMg8S7TYV~43qPg1JfMy@ zryq`v`U;l9gNdzP+IriX-<4KCl#rwDJ3 z8l}Y>U|ttN#v6@a1(#q5MG6v@Q0%I#goKUO!tT6}_mA075hY($nlF*HtU>UJ@&_s=f+ zrs}wHqim~c@!&v{$Vn4R;F$#ZTZGacQ_@7_;Zm&AkGJxGYQyzwN8Ggl|N zedP6B)VIy($)5?ZzEXovX+!b*8WHCxA9 zpA5`0`n!0Tg|@Fdh({8dd2;!$7i~FpEN`z56v-?ox{N2D@6AGX2%j09K;w^HjK$gA z$8~lOO2p`Tm~XCzmkicW*k)!8@(boMlu|BnLWKH zFSD&e;x%FC?;n&Y4B3302Mb4vPiY)PEjqo{YAuYM>KEDevIYsCJ6U5(?I#>~dJbY7eFN$p#x5y&uNO=yE{_l<$A4#%f&*EUZk#eWrD z-b`59CljIY+w0_-J>hOY@LyYH)9pI(`Ca^?oxmeoYuB*Dx^R0I#(c9iGvAqNk>n`e zkcIKe3(_?!abaTWXg9G-UIanVtj~Z|5b^dbmy5|P>hOC@VcsnCIvG}H0n2+XQOZ#p4zP)9B>!xxR4QI&`cBLRXMTJSi%!5rfUCuT#m2$y`WF#H8|snZGi_s`fbXqI z3g#-ZVXUI(6vkhZray`7X*Q~bN&IqSQrV4;-&a~Ux@bA3p6tKHWRd%pzgTJdeFpXo zTcBq*jj1&gcZ1Q-6Yz?`;}|xieAtSUanxX6VCWK5R+DN@bGPh9z@1|YfZ)M;LN;)@ zo^YA?z3abYwamu3z1ezRG;)6y*^-7pI9@oeFv;N5Zm7HQ0mVA_@a`rmp^nmenH)v5X*5e!6Ld7vdxKqKkkD9=`Sa>+KvV))G;zhsy#z z&4^Xqjs1g{F3tB?Z+tgmo5PPjudOdpKZq@vyx|=`ZzZ~9D6lX21PzTpXDHGC^)e}t zxAm_FZ0Zkq%Ab&&&{Yi{_WK4aA650QEk{SP_wa8XZ~a`9usYWouG=?e>D@i-`h07u zLkPkdYO`f4(M43+O1mR^`bb_4VspJ?7A0e*;nUwDdn$R_^=LLr_5MdA@}!c4+^o1H zZ(bS-(JN^P`uT$!+Ev^8xomB_d%TzD42A&#KWra-r0;s0S##Qfa`&w8Iy~iuI@%Zd z|H|>7)$Typ`gtDaUQ-Jmj-!H1>S2z#FlOdF=98QK7+yb8#qwmUyNNf|KuRbuOQ&l3zS#>- zx|h1UP&<=UO0rY^E}6~_i(jZxfBPIE9ph11W}cXH0d^j^IQnQk8Kx6od->>o z?)|lvk|*P80b#YLCmu7q#p9_4`q-(aD>Jvo4el zDMf_kBp|M(kVFzbqyO#$uC*=xE;ha>N!b{@6O-ijcC)Hl%cJ43&}Mdv=Gca)zB17< zHn&f9hwj8~!nUK7pYfmQ2bBZ_QGGkr;O@Uc)QV8x+2u76zebDWgKQ2+OhqW@@ixA` zNapuQ1NMpK;E|`nK^rRN`)dkJ+-?y>uV+)P_l0|IrthBL!j|yqC=(gc?Mh^m+lCVd z8H(;)4@F(-gkY)`#bL9Y{L5+#D5n-j13=xH2{+e&#O~Ff*b|XLWG*JK;}CoCx>_=cpmOj_KOk-&Li@K53PPW`xU0pte>%{#oK!?| z9;DGaT~SX&r|wGN@6ZXuh&c1FzFJOq)1<^NWFX#D9(f44)rEa<$&(n+Xn+5o$W}}h zQ1fCJBKHXYS#aLnBKN9FaPT?BnzKc^NnKLT@&a*yjS2K2hP3dim@-}lO25VP`S7o| zf#wCz;vrlDwFJHw3*CClPSPCfR)q#$J_%V^(k-eJJ79^!mS)AzmBshNDgFt+vvHwo zwgR=?oxjsFqcbv08`H5ne-_Y&{Atk1{VA)_jnB(D$s(e0XP?2?_WOm`;3sQE6w!}^ zeuBXQ=1@;2uOem3BH;(&)HGF7)%mITPUAbCa|1JTSjq^@Lvg{2^l5l(?-&tD{J#8O zMXQ5TygGV!zFhgU%~J9~q1g!mA7+m)j|}?E6${$NY^W-Zced8zVAE@;&(8Uk2RuVd z>vemDDnZY&teZ3+xeFmOMpTxzfoiZHTm&9-*B76?Ggy*$uQ{Jf*9?T_)IkjwpuEXu z_;2YL{(3dXfK7KkM)8XO^{_v|5Z&dn=UfKO4R?ji?`lL11A@seRyu8z(RrOHe zl%!*>jKnY>vhPmCbPt#be;1yNZ5=CJ$j)*|c|T4U6DvkMjyii$dGM=5y}S|2MR7rx zjnNgjXnw$}_s?dgkOP~ULVo<1{m&SR@bDcDb{aIiFh02!82|?nfq2C+2ZX@({3q(ZzF|f|A zM9=2z-CReqm;Ut&k`Wt+caM3t(7qs%W$cEv`~#GONQiB@SJpcRCkG~*C}(ME0eia7 zjaQv}h~8i1*U4Cp)2_j`L$~uZk}l6ZCZ%`do-v+0EMM~InEt}Z^3O?>A-5()+`n_> z@A4_w5C~sFZ&P5CryLhbyL>Gq_mMJ=!q47C#@z5ck@(4ge2?g&cLs?`ettZ+G#ID` zXKsD^q+4GrAaXOgoMXPe1ghILapi$@#9xt^Um^n@-&L&J^><>CSG=nkPrQB}or7|T z@ffq7ImM=BiH}XLG`gYmYyt3b7o+qYj>X6k&NVuPYxwAJv zKDKe0u9kV+qPq-r?tm+QQw~@5Uli`MSR00%k1yN zP;u&>cq#n{iBCfTe;c7FIB@Z7<^t1g;LiPqyEV;xy#xH)*@55IX_~Hzj%a+wfSY=J zK{IiaY}MSH^M#!bS&-X3L;y$S1bV}zNnsF7096lOa9Vw^qnZ<% z{1P`fbuzIlIJG#~rTqxE$n!7g=T9&Cx{q|q;2$qCg;mQJqOpB_$Kz&LCDlthBVvM0 zUlF7_@~a#bi>kzdRylZHh!HMH{M&hv_K)5(`lQZ{Z^UYRTfPn z0YWf=?~J+s=x>%1kH{Tq(J$MW*;rA)^5rNCHS# zcebB`1LLuvhKh#c`ttAGcH5hdJMpzx4}T0GU8UqjWQddJoFgwCeq!r=Z_V=*BL7)= zvLHL6eR_nQdn_|fv7o{N;XG>Hf*a9GQ)6;VeJp0skt2I_);^`v&DO3$H$eRvc^jE_O0nP?9ukS;X*~(e-8CM+=S^P{r^bL zReZ*G;3Nqqf%DNV6Wa{yjb-b?@$vDKDc>g($Lu4y(J}0CsrhiyJyFdc3HlqCSyq!r=?*2<=GvM4UEG@l z!sL?>knU3J(9NyJZw}bGLKdu99?#R+nURX+g;Xp z1r?VafKa7S;kS=X)-dC}pM)5P4J%B~)L#VqGR~v)zK!k~6_{o8zzw>H1p3X>=pjTR}skmqEBsfVMBzo?tu*-UY^^FUbok~J2(w*Wnw($E3Z!AQ79{UM7=2yl&@ynMH(Sv^;s7|}_=!WGkipnNnjVHk!-o&&rV;|bFWbQPqX8Mrq_f2Ms33uCEZSkNs)@Bek2uiay(g_IKx8Bd zKRej|npr08^LLs0(r|IrC1)1#A6b4)q>|fcD7jbTvGLS)qc64gEV`2ML(=y_L;ar% zxE-^6NMKlg4WV$cdz)=yU$UDEI(yhpgIB=uPrS$y3_MSw-KXavPUj=0i9YpgYzO#= z1!@K+m$W8GhWBH=oi>!M{YhQ7+wVvLCX}DNEP7anDRCpP;?$xRmDZQAUk7ZuPCh-) zAH|%28{o!ga4l}Y^JGN+T083_dCSY@m5y`U_HX3XeV(8AN8;tP?&1gH&a4gZfEqWd z#-kACmB?rL{NtPEZ`+rp%RI@N^)?FCb{c<#oChc5Jl*ksyfIWX9)rK&#rTv-rLw%^ zw8E#u%m-z;v<&eOM&bbWz$E+>Wg0tYvXnOjQK}OfcOME=INZON7NRaTg(+MsPVWUL zXLA-%{<{EixCL18>3#U;cuo`5aRhc@+uO7II@Hbv`+)vq`KqS5jK}G-;OE|Vy(ql0 zJoCqxj`;fzT5wOu(F%0wXp}B(Y&_VM=~pYwDTMsi>2&FULQmvy#Px*-^9S5LrI%K_ z^nXMy5)3E<7WDK==O4X!m0(#fosoR@tT#H47JAZ>y0x_xttRC8opZ)vdU9fRVrt;& zb4gytuZhIL8lM?}u*bQMh#eU{gJ&`|Q~5;uUDCZ z^VxMcne^?m0T@CbQrx% z!C4dFmCp=JEPwR0ZxCm}0r7pn?&<0I%cMziBhFHoN`-lMv$Wr!{ZXaUY)vLAQqrpy zNkLW{gC?mZnzXnt=S6u9DA!7b<00c_6jZPlpe2j;xjsi!`w@p1{{iE@OMvKnzz4I} z(VfBV!#c)_`A2B-G=a(Gc{I3{;U-%oh0jP9|Dn9RyboZ#9j%63D8Y#BXKH-hu%kbx zQvD8lclVUT4episrPuk}FHFW>1Ahsmi_+<0}c>Hdig}HC!gl^I1sN-K-{Ft4J<(h9KMtg!k)~3dircpZN4e&tm4P zT@FaB93Pcn?;($J_>WskfV{19g1{_p-+>Z0Kd!{BvZnYa&NK={sK#E5p8LR2Q0ydH@DTIz zh^dR*zhIGJqJQoGBBdBFa5c<22b16b3t8N`YV>Mj=KX;9p|EYnXD$xmvuEOvK&}Vk zpw-DNLUc}O^upR4Unr4S&)5OPa(SxIB~3XRHAnT3jxp(e<=zUi9i$H*yZuQ&vArJr zA)b7}6ZZHZ!j>GfR{b9c^Z%0@^k~fHd=01GiSy2nhOf9)#^^Vd?k3v4xRpu{OBt+a6hEOnXeV z!}m08R-*f2u*y|n&DKS~S%0Ru^{zIC0~&etyupM=<#~scpIL#&Cjq8pop}3vC*}R8 zFOP4SlEG(Xh)P;7t(X6Cc(FJzj}zFjhSe1yr^*b-#S=n8e>^K-=id3>4L73z@-T`*Kr-UrX431*>|1hexg{UbevAz(=294! z`NF8|$92ZI&*!i9WzgNy(&^8;(= zk0CLZqJJO#^1wBD4+ft+i1^4E_U-1Vk$!WPt0_fkL;M%vS0y@zQhJZ}o<0z&56Wq7 zZ)XS{z9aEsASYi}*{4GgF|~EZfYAJ~j@iE*g71F!DC;o-YRk{gN>4WJ+HMNThy@{N zNk9HSCo+BB3pS*cRsM^X*faZuJ{}$K2To+9t#QBhtd3on5^A zyLnOg)$ga>_2lHATKNWc^6uuAq+6vwsoB|LJMe$M-RLrdZPb1zrNm;sn0Gh#v$xBy zm9HzJTNje7jFbcSe>WM3AuerwY({hiKL+IZ|0W#JITorQui^M_huib;L9!2FznuO) zPPaDw2%lkF$YS)Zna`4|!(H=66h$I7L7eC9+uGv1;tU|-mVTmEW?ZY5oQ(;Jz7j{~ zl)Hpj4CuLM-hB&xkz(dJ!y&NtOryMYPdlfg^JCC6q#6b5h2Td%5?hP^DWr^4&b32L zUSC=NP4NxXs5`(Ae8VrYXu0^8wEW)z?+|Os9iJ$~Si|1coZ(M4z7LvlTgNdrX~27~ zuTv))x=Y8L{~!NQPadx8DB2HjXbPT9TfZ;Fq))vyoA+(Nuxu38t;iaU9H%`YNfZZL zHkaHzyIga z@|F^8UFr`;_WC~qo{hC_)0OJAN#sp9x`GmV-=;+PDVffuYCTyWd`n6c?RwV17Z3fpvu#&j&x3TbkrU* zw(kC}!YRz=v+5^&>Xxx?Hj16WQ+QJkKEz^ZD-H=MNO4Sy^tBzAsiHfFXeTM=U| z1UNFq8uuA7-_zByVURQ9#D3zQ4rj}B+Tde-1QhotE=fSS2$aWwb-23A8IC->Nct!u z&P4Jp_qY6y^8>n|M4Kh(fcDel|Es-jZwZwvp92bp# zy{R*l2W?)GkB)i>SG%y%+@IFFzu(w5esVH8AHJ*WU8Du%{oCJpMd&CGhc70#`i+es zVb!MrYoDir&0M@D6&i(1Ber#=_DAzXB33;G7K`v*I3#BAmXekOWLFm(TraXo?^gr- zI=c72%*1?KBH1ck?^x(R!c;1hCcbUN$YSa6?Z02*m+kDa4Z&|aTABrIPb?PhKeUt) z50e*n8{96zV**dlHV}&Oz^z*-ZQ6x9n4XxcSal04Cr+?Ue?yvpWR@ZzNI?I z&gpaC=ULkpVvx&$!;FZQ3AA5Y>Pu^~}{TF^z zpxxu$RVWucbsx??%+U%l_5UT>A0Kc6T@)@^% zFu^y~f2aO(_nk&T@d+YdW8M@+Td!;QcRr?d=#yht*1P>l^WhKFGB+w#GWl{y=Gi5( z-4ny+WRq=QE^gJ2N_}U!-*r*F@)_9j3I5gcw50~detci|pq6_$C$v=lgt4$=qvYv< z`l5s6EWvhy$%yX1B6;u}_EXHr{THZT(e|S-3T#TjS&p_z)3a48kimxBd zy3xip{Z)a=UA(;Or?uvMd8k{tEBl_Sbg)rRq5~G9KI_-ZvQ!5~Dlux>B-}4f+CL zzl~XU%@=swF6ng@i@DMEs99BJ%a|A^3!4^P`3D^zJej*a3TePF%qjK;=i$T_rBoVe zn^B7Fred{IYJGN9nms(ListF9akHpnP2sQ3ckxx-M3XQ-%Vu!A-K%B-JE@o!8hlyb>=c)cKwv;$W&iS7TgsW6|sF<c1NL6OARe4x-L89W88 za{NNi-h6bqZSMMQzJE!AX8rSOMsV+|9JS%+W)CWi?IrBJ50U?DOHKwMjr zwmy$IwB+_THtL;4*d`6FIU$cf$CVM-&}Sg2_X>DHlZR(B%lii~(=TxkkCpBc5*BwD z9EVU!s)xq4rsX__Q%7X*m}&XK#FxL-aJ3C{&XqG4T!j5zBqH74o`h=6MNuz z9P49EdpX_!T78Fm;OOpv)i+1IY+{x9>#4(a_uS#-_s<#66not&F3)q^iB>gj;g;*f z*O-~Zoy%NIlkHfc6WuORrrDF$XS#an?x1n9^Sw|y zhK+k;GkgV+n)*v}_r5gfGNa=!yGK~l1x!V}MzPyX-z4_+74{9m(=m$@;&w2M{C=FDSnx@J0c)BE z(?-fS>DJ_w8|(e(W&S6QaI)C+q#6|0o#1QbgvRIA#x4l7>k2y?jw{>A+R@q+J)M)+ScMoCI?*`c`I0}XY~~g*&yK7+rn*Tlh*8uVr9t~nZD{fy3YCk0 zZu~hDR=~;0DXwqIef<~B2bwULDjF69Y5eJTI>MED`o;b4m((_}>21_m#|`J0VT z3+5%WRKh~P@cb%QinDn*tB|v~Y_|Esf~1QjKQw0jmGQ;SmpbZ_2tSEtj9_alIC`Vb z^PF82lREE(7b;S0=tF&|TwW1$F8cnpyhYSV)}AcTVEAvA7f#)`ahRnOl~1 z-uWPKaQ831M%ksuW`nwB=7@>c#%9qI%X^AU%f+$Yrt^qanN>x<D-Pt=X$uV2I_f z93IALD@k+xhz~^Qp!+kOjG>y8ZRE`4BuI!1oe;#$)#+erPm9sZeb3yx#jh1lJW%1m zPQ`s|SS>GknbaUXt7JEm=NYVDjczL2URLxKAKv_R=NY=ve|g~kyOuPcq+jk-XsF$4 zv)(dyc1(qr+2Bj_-XHb!;uef-v&0{lk>yMbrzM%%EP2;2pPqC{8)c)4{nmf3-WN7z zZH8$i8L?a8Cf&Qw8bqQlihQU5fNB8HqCAgWRH<#CN3>cun|%UVPG5C-sxMGZalw*; z7xZ8A4DimDuU*%*;`F`BJMG4(?IP19XrCVWX$jODa1-k9hW)Yhq|NFXRN_x{DjYL? zaq^e#4?cm|X5y#kW1HZ@z5eepCYOa`^;d42)l7UU8C-Jg7fCW+-Ua=wluETv*l~iH zt87<$lvTZ(yGW5Z6fFJI-`GC=Y>70qF16-M1o;rxzHaCi7|XiRf&?f}ZrD(=;m=l@ zOfX~a91-iXyF;GHU+qKXjM5v*2Ob=jfLd0}wbim_a9uQPSyy_^FTp%wU4Uu5boB`D zvs!&GX$U&(I(MWnogCY3O?gxR`rv!JWzZKk5JqZ4iAwa;!p{o+p9u;qNG$0ucHX08yj_vsIC zrV`hpTgbe+>7{#%cjTueB7g8-p=ElPT-MpzkfU{%vFozE%>IYgVE!9}J%xM5{;Q-r z;8;#6!;PErZ?I2`i?-$DEXb-N>s_S|Gv1KkqP1JzVlLgZ0rRHCeZ2&c7&z=Vl$A_%hvOQaelx9~aFYxL;6&2EYP${*JJn2Jc8?(U-x zx5(m|5!k~MoldvVM*YGojOzY_9>*@@T3i`)locu6adZg&=UEy$_x^0RWnBYrJ%bnR zJGidMjs%at%vBk-Ep-!S&KpNoTBlxHdZ3VKR2%*9>>)$I+em5GFWt(|J@cw^+;F#p zSKN}Tx^DB z*GUT(@qI8h5;_w_iRz5+v-nofz`|CMO|3Jp9An9#u=Q(HJmcF7SP58dStUH~GzWaI zMW+HJmW$+S1D!?n{K$~~y6Tx`Ydm=l^hfIollD%>75in_j>l2G@H>qh>f_md1n0V{ zz;$s?vsd99@?rzExkzb)dkB2xLwjUC4DWqKZBlE!8mV8EckeXrw(~|+#>#Qv&j;Er z8gp6Ryd9+1ejm9OFCSO3_*vHA8cWbKL64}>aWfZ0nf`{o59nV`CI%00RVcpV(c_Jx zS_93RUwHqL)Bil?_rcGJ7H8}|6G%%FA> z_1`>y3A7M+VUmu|jGsZv{;rZCyJw6>+qbSzX_*C3l)mrO|+q2XCc<0T(!5fJ#9i z*8#%?>!-Nd~ ztH-LR*|ZGK{|jWgT7E#FJ$A%iWD^fL<}19s`1ZSOfmK?@1v_*cGz72rM+`wtT<5;V z{p7RCpWoq*%goa0uc=&9tr)qKFaw_nW}{yX`(i$c&|4uzUsjeIC6IP)!LPJ|@m`B6 z_R@m48S%uZpX-*+q4PCy2h4yJvloBiTsoF_PWt9)EAO8J<_+GPv38bubp3g&HOJbG z!JD_jO5$8j8b#6de7}!cnRY# zJ*IPaX0a+K*50P}t@STgFO&7J{mWumKIXDg2THpBl8GxLcp1JJ#WIU452pQdhxKu6 zmKU%>aQt!8=03S3#SsJZF+C7U8F5I(akae(!oq5m5-U|67$QzRWRa z1`{1swz?CP%GkfE(@oe}wQ-8FF}vDdEYn!=gywB2#WT(~>%ZbNovvdLRW#^k9%sZiN}F9d zlB^Y>-D(eK>RiJ9d!zqf8AG!RmEe*4(8Ahv;#6NkchDnntO)gG7L0vxa7aNHd~<2@ z+ZN7Of!BcFc%RAV_>}96Rt~Fu)J7ZE_2!TopWDpKL4|b8xqPdwbCWBx>yN@ z*20sh?D$=CUM6x9(#Pnna;|6z-oqU2wap!JZkN8OPr>h%ofS7!UYQ_2fTez(v})6A z8DU;MrN{;Da4nBE&%;?)c-`<{FIij@NaLca0{s&eFIwMOpQ^DANrLF6KiD<%n0D4A z7xXjl^cfJR1{8}p)JK=0$=LkCwHoK+YM@dYt7E!G@FPyKEoU&P99j8`(_nha-YP#2 zFT$2g)xi~mkuVdL0SRb;(n)LHnyj1l zge&uK4Y`u25mJAg@tvnheDg5CGE>wmFagz&WJymEp}pVw@tq~VmR6ulEnXeT zGqBSdY0BBsivm<^6@1MKpo}e+_H3`Us|K$*7`+pzlVgA{na$!M=~r*Hg==Q8Rt)D6R6Bs-=ydQ-iaOHLPRgFo56~K<2<*Ln|D3Gb^7lE}vpOpQ$M>~Y4)X6T^T0G@ZGssVYjGcsrwh8wH`4q+C z1EoeE4fj~bj+(HP#UX1Fl$*F-hnC#%+Xdr)KZ9{1?8l(&PvYu-Bq0$yz)GQ2uQ`vw z{W1l2>HBkhe3@qkDW2TMGE@2)KL`BKmx40)bbW%Yo|X_TYU+iO5_}Go#22?g@%z!- zj-*##NsdL=Pi<<^{8$0nb1nA9J0J~iP??l}Xa-S>X)Z0Egc7A1`3`%>r^(ku0~6{= zCpnz`7N=V=EWuM#JSj5UtwyII@MDao=3mg&S&&WQ<#?D@_#V1p;it-sYSQgOuvQ^z zB0}U?`Hw)*$ileYXc|9QDCXpil34h`R#%zs(FfhXqyu;I!C!p}Tfqwowj!FOEwTRD zQ9jkT<{68tsOQaFx@m4`tbm!g-q5j#YHep#{0yrlZf-|j42M@nfihgVe5QKK$H!+C z4ToKAY;`;^*Q#f%cZ`e0T7&CV*zV0Jx;|HyLKc`4R|5x0z%q;5mWSeTux=Yt8LgF= z1?^22exKF4m1^8FG*EPANg!hp;+XMtd0yf(w{VRy#m-wx?W;UHP-E>sANp@m?lW-q zt!^C1f?x1`3fAu^4kljOn3c=P)*N}_dAPjPm2y3};-t&>XR77Y<_7u|Lgg%RKKS7Q z(hd(mdp+j?cr5z%RjS=*`AcvnRC3!AM5Tp1r4q?U;6eQo-^#+2o;{3Kb=u{=gULwG~5@dG0e3si(- z=s?U><5w^rG7=Em8qL5$Yo|3a-eq>P1b1-pX`FS~_@WX6+hC8o!p=akNfWZljLQK% z=#e%9fdYm4a#e2uZ-Rac|GN!T7C*;mF<|HR1o zzup+J;jB)SW|5hH_B{BaCP#k&oH~8V&o>FI*6;+bN)L@u)A^!-p5Ow=?1Ap;$)UVJj``>n88un)p zwS4~Kt22hLCbp})h9N^r2^`+-zuKla5?gn5FDLd_w6=?^A&Y1P?vr}@Ne6I0?LvEhX5EmI#CF~Fj9c80d0 z9K8omJ-&+^KiL6g!H6qVcuR9CZ(Z}(fA7#JQCBmumRGXtS+Mvg>REb~=)UYH%8FhJ zOkw>4)3<9-e+?EP!my0NkC_OXTC{~S0G3j?x7`1WC$t&gO?;Vb8x(J0wWpB0UnpJ1 zC9Q=DkFAxmo*15JJKQssA${RYdC@DWz$vT**okEZFDNBwo+3eTge41 zmdl}=YL^_`B3l)W_ej}hoG7weLDfb3pDtjI*i#W6Xr)mJ8NhTw zyGjF$9GE{elc@c|GinaV568rZ+X&;|3Q2C;rrA8%=BHNc-}jiVOY%R^`YMqw6aV1s zLo*fiN~E{1ZY*(UZQ&@EA4+~rrN%v<{K-yKu7Iw}WpFcCn`5ZmVUHU|+U|2dTXILP zcV)-YINMdZMNJS$C@7bTJ!W{P^YzC9hJDnuVpHF$a-1nf_iG70?^q!IB_T;Y7m3-# z*R1X(=itS@uI|dLC)#&uX}aesxcEMA%*IJ^J9jGeE>}5|vprWyRWr}z#3s)CH#_J7 z-z2H&&spd}w#m(9f$D4<+I|D_gST70aq6nkYAy)tl_cALqUN$hV{HNP-0qc3^7X7U zb@b-O<(55YqfxE$-As5eW}SJRMRT`3vFuo*4G_XPa9_rnL(Sur|^FEcao!;b?- zh*XK6D`HaDaayUY%LvzUcx%yh%9bI!#fA4gB&)I9HPyo1tLhf;_sU0UZvF$w5U5Go zhE%FWedm~#aK9t8w$H)WB-w7Bn<@09LHjNQsg>pi8_aRR)TS#&qZ#Gw#s@^+Pax48 z1SzMQXw#UO+?{^xncp%G{<2MbhU5a|v84}8>`^PYtro7>)VoO<(lwQUJ9iWPcFbV0 zS}hoWlM3KwHeqGoBbVQlXkyoC?Do=zorOF<3px2KUa(tnW$S(UroerEYQrx;>@(ah zBqS1UH5bL;R@L$7A=?$<{R^IU&-wY)>^!sS1{z|2YS{6qP_y#Q(&;C83-6wJ3?Q!Q zrQFUN7Ut%gZI5k`xRNvXBiwT;e7rvq6?p79Mz;lQ-~7=4`dlYsK(L;?QcX1{gNZFs zs7{tbR;?;W_iL0RA&PV3sKVT+XuQ+$I9NC+U20`#-d%u#;FzmZayqyJluYC9xMjnS zDR#GBO=v9dDJ2+Valzy!qp`UpSjY8lu#&69d!=tQzGo>mXk+kP9k7816aTj8$hk%z z8Zms^&bryvXQ5%yR0Y81!a^_@cn6C()80Fy3ax!?Lf6jqQ1G3@h=nuJE`UGzwPGl( z+H%X|;kgv&UHT|!Wa{eg7td=9>MXMydZxc=3^_B!f9GNA9qrC8BF%1Hg7Ie>4FH5% zG@ajVIF@&Er1y689F|g$O_07fi~=jKo8rt---%KtwJ|@@m`kJJIqp{lVWL<&rG z97D?7VA4| zQAJDk97sq5(O0^un8~<26l5nvFhw6r}V@=xL| z;5H#Yh6oU3^0kGm9z8C}5w|&ZF^^37lYo8f`;OJS zS<7XSIiPWagoxZ@OmWH+6=&_d$df=wkA%&J(kS)=>zbZC1KVU* zb2G)wjMU`Yd@WPnFZ->R@R9%tNWqw5+jyuPo>?7nKCztoGx`e&Y3ZXlWzF}JelYbI zy1(IE_7=IJE8I{1{sApc)TeJ_2#tDrt`^%aTuNLLD4p@w6W1r+d0Vk2w@Nd=T^&vO z=%>a3)8BUx)Nozo6{GI^L~-i#+qYI){w(!AbI|43V1A8B4e!*6iOWjU#e-d%_XTO- zt!nwri+z0kV&MHDgT+P)5n8KG1J3a|)WC){CxEz#5>8h9FvC(}S)%X;9bX044P`0U zWBzt7U;o$@1@Ubaxxw*(8sJYWsPWAchxXy+qt#MuGc1_3{ee_MfPL~k#$O~Aw8m|^2kP%q!h3|-w!f^Dij z4ua|fKnBpJ&s9V|mL0$s1I(l%Gg;=Y+BUxiq+jxY>& zut>MO@0tHJ`4QQwj4QY`{=Frbye=3}}=Vlf{vgpm ziVCy^MewL9WXr{@x_94Ezp*`NYnE=e8mLpxStGXTwj-+A=*tR&3Y z*%dy&yaRN8FO~2G{tYFAhGZ~qb>C9XF9Zf^DP|$>c!IUtUO%!Lrj_VYr?lRA|Jus# zm)J8ZDZwRpO8dw1P8)yW`ya{-MLs%EhPWqLqJx7fIh*Mjv$M90mcN-rn|D9#*hiTG z-@wdvalKF4bX-YmrThGdM0-n7n5^9RumVe;B8t z8?@&&zdez|-BSI*^sX?*?%B1%QbeVE*f>q;}2aNq-Z9?T$H-dwb0k^ zai;7IrINu(z?i&{WInd}V%&Xbc{`%n|9swi*8@4w5k~iy>Qwz+=-a$WT@bcVVPJY= z`oT7i>cRQo5+x-+S&&ZsC@*6OXS>< z^;y$bA2fE()iK1WsdQIqnhm0gI`5rAQ+J2gy+Lj%YqyuH)_BQ8VCt9+#HGR=l(Tk9x#}oa2Er=G~`xrh@pIQNSM5bu!K-$$O0r_4O8_Helm5b zCPukeo>1ltaIK2d#dwF>-Om0y(go?eU;E0qhllKj&a&c66W(X2*uKv|jhl=KFoLD3 zq6XaCGhEM%P83e#R6c52`pkGMTbttC6Y6p~x~+QZrcICyDsV-WGXPb*Koy{5qCDug zv>V!Rry0*ocMR5torQ~0yW_A>a`qAu?e|%_>57rXIfpmx6^j&ooT)XBRuis*S+Fe- zQ;hXVWq>$M=D{u`BsZ|-R_O|LAqbFqG4X?yRim-2ryBpzF1vPYql^d`gw(vB88_X7 zhx6MMtW*tmDD1-P^pOoWA1IZvcYBXP1E;tLM59(cB0*>Q6C=^?-Ss*PPOvobvsUV! zBaiNfJ<3uv12jz<#~(`ulh5qy;%%`Cjc|;+9S^#-?T;m7SsF-j?5ir{drGIX9~p_C zf1zBfs2!tU7GlB&zxWcl*Z{S2W?1u9UbOm?+R(P!&EqGilkBpCC#URVNE zC(WQ&*CYg)r*$T)X{~Z>uRR_pi$hdFKw{9(;a?w}icsqbh|}BN3gMz`!_iYNlqm-% zJXAO`FIl9W_}nkm_9aipJv_}F(25Gw?k=RL+dn^Mfv1El13=K5gOnJL)?35hNL1+|_4; z=NQ{4krSSolU7e!h_28Oq-MSI`vtr!=J_wyplCKqC%YWpN>aYvmQB)&Z@hD_g*b8h z<9z916c&j-Ktc1`@xpe4K!{W_awoC^GKMOiaU6<-q&R^gRS$hk%uL^=@sO3JdX?FP zT&C6U=T>`y9B|Mp#rQSfK-0vt21AtqIb5!Cr{mOFBP>9^H_XXQp+(Dx1E|q?L2d&K^EQWCqt>TG<@ALpf7;ZAJ-} z4@?>lo`2Rso3vzjLdcT*)aKV6vctUz4&mB{DfHw%7!@VW4-6^(J2AvBA*f(zlFHGZ ztQ6hpceUBkwHWJ^t1vD0?DGEA4&BD$ne9MJ{3&9U&l{sKb>ma)GLam*@wsq*@XcPBY^vqz>klj*Fz)f8qW?_ zUlWn`1%6MQ15E$XI5?5}!waHP2e3gKzK*b~Pw3PoA1=EY=sZoa<uqHvL`U$%%;$?KNU=bG`907oZPNA_#3sSbT}wm1Ha=wl>zD~ zn$R7+bX+Yn?})2(C5zp01I}Xm%B=pNQhg20=B3{b7o4+ZzJLo}=>|RV_1#1Wo^>gT z0{K_-yo=L3$q#@~5z`V5Pn=i} zQ})Q1`a!-$8xTg1KVnR}zL}AXRyvBV-}KIV{7YXfI$p zQt3>D;nMeYn1{eri2@MlUeZ(Kvuo})3K1zAg?qUqe+IAAD#vgQU?*f@qEg>-uirpq zMO8zq;Q`$Q;&O-Y$ue&L`1xPfB`>WSy^%DiL>%G2^9QIs>*lDlk|=0X;=>Ac*Cafo?2LQ%lXHb zD7Te&rK)=q422bu#fFt~U#`7rsR*K3BwJkz8h6zUI-kWUG|CJd1sIsMy+|3az?AcThHSodiR)~+y=lu-|BE(tK`~$>!f>ph4B4Xwe z*wqUpwNMf>2qJibRNTeZ-IMLjxDK{u@u1>?5dV=gE3zVi|frYMid}2TwXiGQw2QRTiKhHk1_K?5f0iPGgbEeag*>d27Q5TEM`c`MeZFqJs!X8V8^RMfl zCE%5Ft`}%D|C4Z?Isb{;^1PUm@06sDY20t+V<(O{nHrjlmltX9^7U=8aOHovw+*Qr z<>)DmxH&TeZAIPHenYY+Wbw30Ma#(-w};$SCq7o>4~l5k4r-;rk|#B?hu2+&XE1Ww z@Jhug!k3-Yk)_)NKf*89id4(K+C}T``7213x!uc}h5b3^7@XL;*J$vh<0b!b54jG1 zh`K4612())t`{Y`jmMrt*VKSN?M56j>vKC0$+#+w=?Z8Bq;n;|$DiekBc?g5z)-#7>yIZ* zgerMzmI+3wGiMrNp3ob?JT$IeZ?8HX+ZYS3cn2r@ICmH(kqp zU9}SD+gRRttFWERrX{s;Vk#x^JLJQmPw!pHbrMs5yk06Fiib+OSp8%Sz4C)j!arZ& z@=Bs1|*|yRh%Juyw#W3*>rOf1&W{+lLfk*T4uSJpsGd+ZBSp zqrDW@D|t9Xa(g#r^4NaO@pPBwFY>oTv;-Mxvg9{*;o z-$+=Dv-TTtXNSqHw}s#OZa2>ujHetP_?!*j#-I6_3|n+}ocyY+H@{uR7775>VlBqX z;WqNe%X5!n0>9%n$w7-K-#E=z-L9_vq8Z1rXoWeBuJ-dzWraEs(FB!P1p3rtG=BURDbATkY<~7$u&?R=CoM zL=8QgbX7FRh$A4d!aip@mV}FkDx4XmOD)~&vpLrApCWWDyzG@)U)Yrdpv0E~&7^pL zmoYkt25#?w#sFx=>gMM9Mqp_81`RUwDlVnWxm!x+uB*JydG_|n7TWqqz42v-EM^|a z%^9B+Im*~i!mj+3`2+`eOe=rdOz)?QT+Uazw-&Jp>Yr+u+0x8J?ry$KF2+7oXp@ho zihSpwMvoim=5tGfdpZK}w3RVSDNjOuWuIo6k#M$lg3mC-EpNi4zEh#mM>G4(Xk<<{ zNzoNKgVDp@1EQNbsd~Znq_^Ag!=hU&*O(F7 zG+)_7YWo)Sk(}J5p=9`LS~?k`Hl+mSFs?Ry5CY8c?4OUB@vLEvs_&I!;!0S*NNGu&v^N|0=x)+o^X^lIcMJO_i%072S2zAX z?Ca3ME@wlO;iHsdJJ2TnOCs9WfrAERi1tiF!u?{!!7Ewtvi?V^{rQHaq%+( zIpF>1Ho6$=mbN0RRLqFaGsDciUa5N{XI+0(HrZ8!Uaq@5zg}aCQQ&bDoAE@kdwDfI zTw6YaPAy5huP;cOCOn*e-bb}3kfch64`5TLI5!z{9*+7|&ea)IO$|}k z*Vkvp9I-n1hI>DNZP;-rLGgc%93tBEsM*5h*KNFemwQ@I&&Cgjg)_`Pqn;u)dOccv zFRed|2hxPEMu_u22uibBPdf=Xn;@Z5;DM{Q7iYuG5UpBn26GHE!OzxdacUb1lIp{I z&yOn1daRpN_o@5COYEFENbGq`kMPz!Hlos^eRf9S5@+MG_`(lLx+yMz+S2~3Sy4m1 z7H0VP*{xQvSOMIW73^AY-0#G;6J2l~uy-{=w);pv`0m9&l?jl>rl#$ndZn6RlV!A5 zvig&NhNHU9s=qQ5iFNRE_eOXEp;j#BVL#{BB%|pu?uMz8O2(%JnKM~YGk1y+^tUFm zM=3LnGqcW1JP}FC;#<+?oGn$amyV3x%sWKJ2DS3c-AscDk6gDZBtlk?a(Rp~y%lBH!B;>=u2V*e?ZM5H)% z9}gvq9QsO$;fq|Zt_IJ+Zu!1SjrDxIz_FuxQJnwRR~V%r6O)ucF1cRawpXx~>z%90~f)Lyi(cy!NQrDfn2Xg+;_ zQ(USYKUMT&$qYoR`p(OZpe^L)&X6jE;}YG1;Ym`IvFJGzQ?z@3_f1k@DMe{naQ+&V z)z#S#+PV|)Ce46MMirN$sM%_ZCw|GoR|Ep1g;b~wks%q*HSa2VZt8rGfhJY)FlyWN zTLYpMJkYESlCsB!{JCm=OekL>l;9nX)7%oI)@mjUi}CP5*AZV(G<-m1T)KcEdzY%Y z+z1xe4Gda6n$@C{KqhTk3~>3SSkz1m;;m+&fFYLnz`oU%y|Dmyh32X9_Zk(_&t6Hk zjCo`taB+}F3#oR4V#~~Y^#OJC=!*NviD{1mydeSaRYG^dvdZrr&za`0QM}RVc_Ot9 z%v*}^h03MDf)=viKE`b>B2sh>ntGjoT|g z^7|%bLZT=bJG7p}Z;5ROoM%cw)a;lZUmE(iKWvr%`8@}j6mO`25*R+gX8!U~VkT|Z zB?LFqY6o`mr)`Swwu{~ZR2(968pcTeZQ}=GPlEl2H7YfIC7SFC&CHMe_*cBsmDvjv z&K)e6Z#GlsX&XC6DTS^uUH3QK=XUCRceU3?uC?Nms)BcVy*|ro!$JSg-G;mxF2Yo4 zy(wcc+E`#)r+%V5RvbuZ3bYb4cGDB+LUF3g4EO*Wn^RLa_w~lj?2eQ16O&rvrXs%h zKOd8H;+rIozqO>k>p{%knr!@ypBH%fK^fl?$c?{Z=5N1BXPX{|3ml&d+xpl-t0TLm zTnyZtamTj<_C`i7JCVQh@$hYahl*x3Akg`78MdbR6~;XMWI6o!f=;=)5MT*6%TD_y zaMN)bD;9F^|Doxtlt_0sj1B?m z9;0iF7`1)J`}6y~UcC5oyLb28bDr~@d!ExyD(8bSJa43L3{p55zqGc=L`@0I2)+zD zz+FP3g-C3Tl$C;D1~zCzY?>^-vcVfr3`a@R^>Kt#g%4p?c7oPzMZ#K%gq>;8J0J~^7Oye{KAN3 zjw5^mh3QgZ*b8^eS$2LATlX*NSQWo_G_0WWf}mEWTE(wPychc=is**~DA#*jKb3|a z;&49p=0g4U*uARnMn9RTKby$M_3@^9IgAp>=|byHTE7hd#sqB;OsS;!Q5>nK zqjipI*RsxoFrY#e=-4c9qZ!MBlXfMDT3MQ(X05`5+c`|59`j!M6;}xSq-R<=Z2)b< z$LwbRs%jAI#Gs9Oe2G>n|I($psjXR$@ljK|`)xQiDWBtQPQ&a$yPKQ%OOUaLu!i@h z@E`tcw9%MzOlE#0e%!{Y<3fa9O5kGgOTLN8jcZC#8D1W?FUhc8^ZmMg9oUw8iSd~Zto_weTK zpDc=yL54c|to;4niPV=8dT9#hst*z%Qv*+L)%PN|83v_%KouS$rt+(^U>1X>E&c3X7CZ*%>;_52j1dP$TSv6K@j4+T;J)nA2x~cLJ zM(NHXw6;XkvQx{}qaLFxzwPkJ;^(!&1{C3n4;7&4K?csg(DhYba~)9S-jaP5@-om>hKjLTNVO>N;+3+XQK1qHki3}-&Z@t8$Y$3K3 zCeh1BP3y5H2R<0*+@nswhlH^I`Q*WstR6r1^328Nb{XrYcaM8$R!dvs0q0zrp8Jb? z--nd?S{7uz=&fncGbIoiYjIu^q_lnbd#v=KC2z&%*Hkd77uao;*4_#>iM-Z z3SB~Ky1p+7`_mWmmUCr1q+C;!;?je3>f6tH7(fko2ZezQNvJfkv0LGlN360B zf(z@~#=4^X)Tz#1R0#*~ryG)_2R5x#E8d`095T@X2O28gz?q-BzB6vw%s48+Wy=lc zi4$-Sdk|A7p70?O$d13d6yECJs|hr2sCF~ zr^9yj^1%jQWxbfEym00wvqaWFMTwmf_JHIUvL>DGr2M8<` z*^phKm8nuRlM_N!2;N0eW6{rXR^TiR+a;Dvc-NUzwshi>Sl*G?Q0#T_Gy5^R`k1^?iyU#|v>iEnu!Xan zeAlI(j#a`cFWXw_xVqv-ij(7C7*7=CT+{E5ynh+9bGMb8FEctkW5g;|&SmVC_1;7% zU85C`wAqC?`9grzXsH?ayaW2d7f@mS7bRzBFmKe?i>B_l&A6yG>cvH{hW@gmbsAcC z3jQwO+NrUP)%p&I*n`pf-9!rG*OxHJVmYzS(@q&w2hHO9Z^4H>u`+WGXUU%E? zwqs=UJ{{)u6FrTUrF;HjeaI@od)oG3rLV}K2Mv_0HM@r2)xMAhMStj_#)yBtfv(*` z*Z8~)HIkCqheCAI0|pez?|hc4a=$YL=Xf}L?y%af{xt9(Ajrg_sg#jXS`uEofX|?X zxb(#?_B1bXmtCP>y>_TvvaQA7=!CBJK?{W{uYf5XgPK#8)^p-t>5cG^(hi#F_c*p+ zxgPWG2_oXBh(NBAyd?n0?lE3#=@F9zC8>ncie+#cpq$!txf&9xwLFIK0wPT9+Xv9D#MI} zrrlRFoIPNzS2xDydML$TRQb0L z%6~vt2&inmcY?7MIl6)z+DX6D<^^aFlh4xpL5BB@&dWYrK1hPfr-Asm8HgIt zVi<7ZTDu2J-;UNov!p_@I@yR&o_GI%54>%rK;Xs-s(bUs1TD?QxVA90<5o|YTUiMiQY&6ix zh6jF#!pXm~O}-X&J&qehnlCW@xZkO1v^1ADVL?N3wKs_&68KdV*YEU_kd4C~AHNlC z1cglne8{cDbQ7)I6$q$)I__wFKlQ@Fr$wZ;>_M+3lOA(TfL_0#^bc$HPOKM_Mw^=z zfu?azLIcnvw>fFyXjW-`@)xanvBdcPEAt<)!TA;!=y0DR##DPQ+316tQ3!wy`|3`# z4KwnD*S;N?lR>y$W)gl|cJmpSL`E(%C0h!tuMO>|FQ$>vJOp?kBf*&Rx;EP-)k5RQ znE|Tj{oc1dYrw>wSY~ z)h3lAx9U2|`a~UMuTp{Cd9}~mE|$U4|H$6G@y&-COl%=+&|j<(a}z3Jd%_ueqpbC4VE(egeQu&c#^$&`w_+x?a5y)1to!NY`i=$e zaj^V*u+6Jy+ zxaMb<@uzf0AWml?2t)HV9PxzG)(=-*5z`jPD{_iAJXdG=Ax^4|Y2*8g0bkL5-e^X0_3*;SXLbk`8B z*GuwN`(;=wXft(dC;~=&{!2d1OGNgQZm|dH@<-Ac0kZ{9te;!|;t>{<>;2TmnJYLZ zLL@#5MGaDijJu5D=A?Z$o>FG9@FmHW*c>c+M(_&ivvJHt8zUt|-x2HcBe5ey3Ey?h zpfq`xCJwsB12UEq-zX~Vz;vFDMQkHowo$q)ATGf;1S%t8f=9qBVHj5~)A{{&s1j2@ zA!d%(aWmr4%#8+T2G-phjE)xT*)+%BKDj<7P)xHQlrhbTgq{X>K08d7n^SFqqAcLD zyJxd!?aMNgGF8Wcl2$GYgdu9^pM01d1Aw<)7@)0*^*+D4a_mCq{KJ*pRhOPu7yJw8 zajTV><0*&?5Cgsc3>K^=(D3E5_|N~exspr@zLSvH&EmMWY$eI>8?aLlcz z7_i+(T}gfxO^6+{9;r|;zvQOK8&Lq)dwB8w!TE7u271*xoQdHaK>m6C8a*&|Wbt5P&7S+0hZVb!F2}+3#_d?c=aRxZ@0D+%+>8?0d2~B=kFB-WrE}nZI#DvW5j4uR}+w}skEcimP4Zn$we{K)O^sBx*5gO z@xpV|J?`sA`vLrHEZfe7hn1)JbTug`WL_j4h6bHKqd1wI@57db ztNHqSMDOSjX40K`ulzWuI}SV!BxYRC{?s;q;@@`I;ss;c&m8k7<3}#V6(5GHLKfi$ z4LZL5>OL^_PD+hF1|lYix1WV(T2|uySXjsnl6hw4ul?VS`C0aU9z$zoa}3v zb2zW&^P;+SxCRN|lK_eDG1|4#T%GdU^UOTy71c$qdi_wJU&85F{k%aSLL0x%-WD zVPkK(X^cu~e}5VRCC|VBR`*O}9Laz;8b9LQ`ZQjepB?`9t&7-wMnmMt9_og(<$jSomZ{Ugz6?sW-QeJOA&#EHb7=(n3ZNl=8|0F2p5|o<&@wQlH8)(Cr)8 zj27lGz(mj7!dx^u;4OHLEqKTMp(w-6KOy>%Gr;C~K&6QyQHuse#=6yJtOdP(hsjz^ zKI{Y?As!<%S>PYL05Ny%=<9>|aDBL)?Mo!~3c$=B&$kO7?CRq%sfz;6r*b zg$bzIKTDN^h)wsoGSnN%0;>&s%I07XS7g43PHZUTCd4JSJepg3Am7rWJt~}G&;GKS zwrd14Z=!IS@nUC7s?uj&$?JIq{Ob605OweA^lye3J;x)2ROab-l=|7HeR-^^t8tCU0llG9wyu`uypQZlp4MHpnro5>o6f_chCa!1pLKSxu0%IY zij?y#<@@GS4ifcEaK1pM>9+dDe66~iHn`Az9vw_xc|IRdW&l*Az74w7H#L7R`JPd9 z3tL5Qw-4~`crC6q1vYZ%t2^|_CAhI!&7m_OB8X&-JyZ00@kv=u2juv?i za!vK*NR9^lRxrY{zpbZ0asj4OIt1fl)J-t5xZ!auUmfmc^{OudyW-9_Z zE{6dbuF+P~1JD<-jdvXZAacJQKTMSFmeXDs3IFVab1=K_th-E=Kdn^WCP#IWr=JyS zs(r9v7y6M%MVXSA-bALSY1WmccExnG)YB_af&^Gc(RwL6EB04Yh&S;G*|m_>5hYT@ueKW75&`mbHU-Z`N~^ zk^WoRe1i{r4WjSN{Sx$j?ZUMfjmRpMI$TQJ<>fijw%(q)emkT5GhwkqhiV=yURFyZ zW{fk1UHlnf8L3E;bHRLLy3#nLb%mg@TnB&g#l=hGbG zRQ8#HzA$Io7oe6$O+O%=zt~`+_&%o#mA;=ar83^3ecNf8LLx_ob$gQ42+8^I9aRj~ zA34B)@mh%yCxz1cL*mMo_fw81W38*mjQQ|-y z+2B@d_-U^CJ7|wZM%WvQx(vRCL3+`{P#}@V6s~NxawGCy&6%)8TubwG&6owN#Vn!o z>=ty`nw5F=l)o)ed5bPDiU5&hkm`qKp%&`3 zS8)@#U(F+oQui2}>KJJzn3|in2!GoikVy!Y$I^&PM~g>(etBkoNUjUU^)ysUL5xao zrnSbM`=V*c%?oWrm%cld1LMzNBfG4e@Y(NT5G ztXSdn-U@c=FgCe-wM$Cl%^J6H_Ga;K1p^0r4m-!b@kB&TGK7f%GWz*B-vQA?+M{PV zyVjX!Pc@g(&)Yo`P>L3^T!=Upl-E}Fw=FcHsbU@Ado@xlgtS6Oeh~B70ITuHR-fe# zk1K_ire{(XTer$!YU@>?&!(0|kTD-?&-jlhFWI59kB8YVEWHy1p7h)=^MgKUqOIAP zR;G)!KKiy@J6hZPu}$>fIkm=4NIRq-Z~C+g=0Y4?^38dgMcL(vH2~qbZZ`hgt0p=Lue>ia8kWB z)yUh{9VWm0Q%{-p0>C3>OcED5UZ;#o zQb|&otg_6Ew9Xc9*=1%Weyf-5X36Q4ILWQ~DEjE4KX7S&w+5Z1!ZBbJ=C1r`ct=nI z{J5VXGeplnMZUEOIHYmqwOM9a-BcJ6P}0*|Vk>`DF~{T>iRAd7zc3M6_h9)iWNT#H z;C9){G^yoGnEG;^twoGF-GwEK#2;j)HSG@({7i49VPk*2l}Xf}oG+c>G{8m+XF0*a zhg(h=ZtAkXUnPIPA0?HH2YVy8fN%1n|2;ad+S$Sc=W?vrTRC`l_J6E>H;O|UuKs~R zDs(=VyOIQ!20VIOOH^i_8U;E=!hZ|WVHA8qfhBUuAfygQ|ADp@Y>Drx25~?IdUE5w zrvU8d<9DYpi=r_$Up(K?-8*yJUJssQH;H_eG)3L*Pa&QwH3KC_ac>QrvFO+ zWR-4h%6m{769}Wc`5TWOm*frL@4^OSRq^a|&^syu>@i{}TN6h%<$hSg=))#CxmiaA zr$SCg+g{&k=iGc;z{z!zsJu~q@gG)K^A2cY?ue#^gpbuTT_-ScX=0MOmQ|ic1GZFl zw=K#fbuE6kNiHby7MBSojaVtnSTjtfupcgWP&)999RHQJ(ob33b6LUG_XO#1 ztj*!|wey;ZG?h>$T}6VHdOdPRYd>!~IuHI<$%MZYoKC@xHKI zZKx(@n}U-^zICaOJJ@%o@?-RkOf;yMUVdjeiUJdBUd9})&KjkjFb*=lBB8OqV@q1Q zN);H*F9-pHfuen+Hy&Pe?pmhNBs-Coqp`yK!?cXhFG_T0>vVW>=0rA1RP>(MlwzNn zS6M*(g6I?uz=DDglCoaab)(J9BsiF=>LhejQ+eCt-Z&C%gLGM$NzOr(l<_K~DiZ`m zw8sW=crFydW!|SMNm;vF)|~t!DTWKJyD zbwsglth!n%y=|-U=ueOp#{CP`zu!NqR^;*e(1ozb{1Hv?=?nCW25p|NX%SuLS;z|| zFb#VwlZ^LABjiBTunj-ZpQoOrh zJ)UPW?<*9~hWk;`ua)S1aCTRsiXTN2f<0(6AZbtVtc;3AO0Sc~WRXsZzvBuR4pKqE zrf7&R)7XDX5c!QBT#PZ|RBKigH~nNj zk${eEaWjI_{d!97beBF^V{tb+;{X#(tPm}r!WT-}6b$@L3}*fY7oT8fsGaN+!kO@T zCw5>>>kMue{hBH0fwF~+@OK()f)Uj#mzJk04(+KANq!BUOIrY)rsX}s>&?R~k5xUH zNAYtnEmQ`B2n%g9JaO@Ubm^C*Xe+IJnLxju9eGB7WWw5You4wd`s5Ar+i0LbYq`Di z-y;5^bIJSf-T^Rauo`;6XTAUC(}BCpF#4iHa|msa&n3(; zZ_?wh`|)dxBTa5g0|ABy=g*~oW~N1F=61o<$JK1w+IG>3aojG$*au}y!7{ZDeTF^F!jnnnfkNG6(N$p3nR% zyy~Z05QIW1TiQu5EEe+7_m6!)Z%4}@nLaQ}>%FXhQtj7U_3FR5V zyV*}kV=6F%azhg`JeL^N<~&#z`JkN`iolM1<~eh-W9P9bdiDb4@X4{w;%Xw_xA4&hfjPU2^I)^gJEgwZZ<$L7dK4;Sd{D z=W7s|mFB~=X4NRHA?FF`@)N~6PFDGrlZphEfxkIQTQL{=QQ;o0MU9?xzPp7y3hFn) z@6Pv=F$9o08)OlN6z^Hm7MljFox?rzq)>})YFbJ<*E)L7CJTIL$2?Q){%+V|w?$us z(`kI{3Y5N?FpSbQ^0IWVkw4sIs;Q0#+Fv}tzsbu0IFSIm20exDI6)sBIv#=gsH$y7 znXxNm>vQ9HARg1eEM-UvpG;((xW&jjKcD|t979L;DD4*Q+{QI!)L6& zL*6s0Sc{!6zO{`0gUQJhU2gVkS}wyiGJ(=%v3}9lFG>c(_`WqQO?)9T>Ud8coCw>R z|FS^RyD3*|K5@qW+u;ZR9~H7xn={Y2+zK)L0aKK*{ zQUddDP5@B8-RF&K-=I@$i`ZWq#Bp1|eoe*(g?RRdT`+aBm1 zpZlcJ_Ss(wBW}(E#;V5GWx<(HqFSCN^9-+8HF^*%%DC+Uts5e7npy}*r8&2>!?VId{9`2+i+)ZunsV9ToDsV55W`d7$c|0{7p z&YIyHqt^HO3$~$VC7X-@ZTN=D{+{H{PT;?^@Rt%5+e^TWiO(<1LxD0RM?8SJVHQU3 zv?eBV*zwAsy}^KzeDs!S7M-zGx}BoYN2*X%&=!J6hbZ`M(I>z(v1D8DY07Fa#FcopL}gC7F}Vmrf$@lBT^(W*o^ z(goK?jJRlsPl(fLSg9)$K+lTHJUO}|FBnJcO40RZU`q)MntxGx(8po8vvX7HTV$6n z_oUbH`lCtRj*&0cHu7GaAi{eAe|{}4D!r@TQig6reCYkaYP;v+y2>&%JcPlX)JZW` zHl{&&yUICP9_30a-8B!P`QZy(8`4mSy8;WSFhpOu{GAvAe=hbl86V(f(3+9>MQ&hWmG-!A zvd&BFaiihHk~3aYAr&`mII-S(VJhnjVjSi92U&S|G}aIp-$1N;i20zd6V}ydmtrgW z9|U@{Bm?U!Rl4JtCoBBsS=H}dT6R4$t#+GAY?BI22Wo^z>L?6opF^^*%z#Ftlr`)F zPTv=&$A>vy8fp*1JYw~y`nQUM<3aTPn~PVcC1?e;`#-ll7Y-5Jvlbfdm{nFsH&n9G z742k!Ui`Qt{#(id7o2~K z1%(s7zPq3AU@(3`lVPMGOJW|FcU;3v76(|2ea-pxi-BHA5o%!yJ62WWC9ZVVXM0;a zjZDZp&MMGg+RiZ+Bv9bpS<_sVB_*xv>{yNJ;d3Vg3on@c(oG1MOF(sdGp98k0HXv{ z@2B49$8iJV;IAF+{#Tpu3P4YNHe3rAGQWi9pzg}UNSRh|PJ2mp1^Zqu(0ruAA9IP> zp|aH5db_}GY1ySxZ+L-wd@43#!EmG0*+e(Oe%~!VQN?^}VIZV`S#zW=e$z|%2v0?0 z+h!s@Y|MKk!`>aqCH;Op@w+Q`SrVkjTe^bo&Vtf+ogt=FeqB>?;>%z5_`E-Pe5(Zg zh)n^|`1P=7BxJ(V)qo0KGMbi}3f$tfe&&*-9{b_~TFQDZx$%%OG&|-R_9=|d&uG|Q zeU1=5XmgD3a4AcpYfzK^uwnfc;i8|`a_^5g*VkWc*4aek&xH+N?mnY%dd*lsGgG=7 zS#Veun^low{$ENn&7ZyCn#IcaCw?q%RW9RPz#9VT0vp{BAthLn;=<9+Ccd60fB|KU++PXiBABlm%RDkfjg<9bDLKfYN9|2<0yw-R{Ws(W{8=;9v0VEvj>8nW zHH5J|MxW;!lrmoHDH()kyDY}f{Tk8!M)I;WiztFpuv*Swav8)%@kQxo6g2(isX#BE8=O^LoS>Sj*&1pC!?!0^9no-ACb_ZNggezjB~ z#5?O?u%U*}ZJ6x_@$ozkryL!<6Z1ViNa30Zgjxr@K^%9%G2I%YS`a;k$`|3KJ-@A+ z(jZs@?46%(H9r3v)8-x!8oMteMEKNS$DTCLGg)Ng#JRQ72Xq_8MUI?bBiU$l+a z)A(oAkEV^OG;{s*%_X2qCy`Y&m#!V^Pupor!*R^C(+=ka+f`_;J~2do3OWy!h?MTz z*_?H)IeyJUjZ}e`qm@V3vp#kJZ62c7p!sAwaV5NGE7c6uAlk4i5Yx?gzKYXjD26T)2bFu{)heS zk1%(r=h%t1=3j_L^gc|pY((zHA#LgjOz3;8H3YK*$JM(slM)kf6RJIrjoJdY;$y7C0xuKo#*?53$Zdn1Q)0-;fBV|u=wBIEmIThy(H z;>L)+$y0sE$Wl^vu*00f+@%18BO?90)A+8N)c-w|%dlGb@Z-Pa104J2n)H$`1ufaj zB<}HOfFVdAwHf+qYW}sA5C)h3vvn(s6Oyh9$p(d$^7Z-ezbKD#m7&0X7ZwVU;=E7$ zbW80Y@}q0q-l-JNUrfB?!p}dkFcjvIrN51%jO5UPnwlEG;m*5Z7|W&*xImFV7{`1v z?YojrEKrNXOT_Qb@{dZ}Bq83^exU+BXrZbrj{+VCW$L)D+%dBAX1}y_?Vd6R5!exY zfM@bw0JVl-LWaayl?<^Xv}U!<;B;#UrMyNn@)de`v*lztwlv4czI7V3=+wS7B^|#JU*|zaICHp9}}A!rTqE2k*0MJ&@5xV7AstEtt&FNG$+D~Nn*e8yA7z$UrjqdAh(KHGD}S$>Cs39^CK6_A1`-WJ&&~k*T7%04bo|s8#be57nt{2 z`2nssiE*t_HPkn9wwJos&!!A)MYC$W&yr0K(+c!-W@~&+z)(WFZ0P9Rcj@O2%sxRq zMbxe=IZU_J=)WmEDtkfXU^+6rytp^frwj5y{}ds2MKddyA|bm}B+Y2I;_J(RT~7p+ zp4Gq8SULo5mXc1)Ut>< zj9pybATuo#n^~e5rb88y*IbxoaGtP{P{QH#`5oOS(aW(L&BqrP2_2=UE6esI-HVibx<2Fd`L_l$1`8<*+mm%^YgbHRZ@MZbYRDuyro1CzrjoK>bP3*Sm-y*Hkl|1nY1;D9BCYFwHS ztwCYZy?pDQrVKN)0#=XpChL4?&h7HfFfIl)_2~w46n_n$cthx1N*ZKq97Qas#l_S zL*Bf9CGtn;ABg<^_oni)6M) z<|yh;cshqWK+xj5UNrL~Oo@GL;XQS8w6>@UwfsbrCA1{28vGq2LY5^CkT&O=8UVsFEv`P|xp49Q0XsE%8DkUdW?=JEkTI4lO+c8@>CQb#(Ep90sa*~Ceo6cX(8mKH zW9;6k6w<~1+Q69JeAi;@UF?_p9)(iOem+6-jKFBpM7LpH#<~}7M>A*pA2`gbGdaL5 zkME(W#zqcXUL^LY0QOt%v6{P5T$xU@;|2E6iKf$?pomcDZezQU(&;C}U5t2K^B3wb zLVl72c7OZ#REUf@vOd3J+*%i0KQuQaK_@xkfnGGh*IK6#Nwe0NfEu|N!hdQqHGK5j zLzJNR<5mCU5Ne({()UmTj8)%ZLd^7;ylz%IQZJzW2T^^dGl}jnWqIljcZHEAOB0P| z5(mrHO*sm|ncjlSb8XFm4^nm0iKHETU7<7nZG*q>8bF6(4WZ4%QoRGBC!@$0!iT_L zwur@1)1kGBC;F23mi0QN}A9Y^%zNJRQ5b4!h zayh9h8n^$Zbx4|V6yQ9I0Zwe-6k1hFEv#(VY0JBxkR9$Yi)QXkm1x38j(c>}Mryj- z)`|}(q0I1F%Pkmo154w|EG@tKUF$V~?XsqmN+u+2IV5E7KdB8vtbOAK(s*1ABgXP$ zZfbrFfAGOhz%oNHQxS3<|hMS|Js{w!+0$aKO;T7_pD1}YmZTu zRk}A!5W?LXovSR^KqAJZG3fpx*@?3hk1aM~OyZV8(#8D;UtEp%q=65#v@+WgTGJt& zCn>*6tLsSem5Fw-ZvwIT*rE_C=TH}ykqL~u()9W{df2Fzu`aHp-~px|ULT5x>p6Ac zi#Y0#jy2PGTCm|I09aYxBEQ!|)w!)l^$Xik0&+@I$+o+$N75pEkraF!3Wyg;hOeMG zyN0sTL8!`5N+b>q|i6?fgUCdzNas(WPA47a_kSFyFt$v>W>o^dZ% zjJ0aFTN#^n=i^&s>>I-8$6WV7E#u08#~#D3gyh9r)vpils57j3u83*FbK8>&3F>paCVA#u>V3CM z^E+yq%c40r#wFzZGw{*4QaXW*mNNVGv`5Ef{ ze*$#B1}LfxIW7t-EtLL#q78)X|0xGAMpj`|ldAs}epG%VI;8{E0?uk!`l^fF)b1Ov zBeHRbB{Y7)NUO)K0-7=^mS*%tARnmrsQn)O*aKyS8)naUQ@2rKto=LNH4RgnvWlU$ zx(TL-WJ~0}u)D3}NFos)s+Go@ct<70?uXUZNo{v_dJx#76q`f1u9{7gJ7Is8u)r1& zrdCZ=rO})ta?+9%=PMDLCm>pDe6kuN)ghqMhTuMU8!ZE7GCox4HFeNySoRW2r(&Xq zR(yx^p^V4cF9w72R7zA8@Nf*ds5iAU33_q?nDp3R6`n^E$n-Ez;V`DjWa0px)n_(D z$C5F^Xa-oZix25$(l9|loQM@gN~yg4@51nnM58j3+z4h0(1KGaFu^4~HP<-|roVQh zlaRMI$dXUra1hOK$Ym`tS4txNgOXE{HY|*XfH9)RlQ~-W^e2hBmuZpZvUhGm)hG5r za(;AHNZ*_p@CFbF#R*9y)sWBaXRYhU8-zO@Dg+`l%?TP7v*)Fh9n1~MR~y?K$i*|+ z`W|tbv$%Yxw>#cHNv0&Iw;O>&OD-+S)dkaYVD<|19fCchloPKG>EYZG}<10{u4gW#~0#6N6%tauIc<>^BDajEo8`rs2qWQpLv$m@5G)H8}IG}8d!GT z$S4?gjndjVlFcoBD-cqy^hz32rutsZV#t|;7*>&ur@{Uq$dHxUj_~k<5-=ErsIwfO zTbCMyY{m)B;$=w|XyZ=!+E6FkM7dVEMmY>Qq@+A20Yv*dAJu)^&|I6z+AsD!igAfE z>qQXD0{s79*nw0xU-_RagU*l0{1}0Fi+x=$sSW}o4mpjp@x$dT-^1Tv0La(NEc}#0 z-mCw>Ax>ABNqoQb;bl7x$feVkWTjwCgu&=cB_U8rey29)-o7~>zH;KUvPjw{=7j;rHdjGPPRPr>y^DCx82VFUSE$4A+ zQV>yl$$lcc)r7uz1V@lu&yKj10hXQ`Kdxn(vHjabC%1X!|ES13MtUHV5|{5XFiC}1 zKNJ`VaPQPFN*Ns88{4yHY|`^_Z!Ur)+ADNa%{HQ+*Hnb8UhGtSZR2WOz6K$$ccLa> zAc?j2!#b_F1|F`=lD9T`+9_lKXe*b#;~VECl_o&G^f?faVk0O2hZJ;+UB3un5g0j-z>;=N;+uRdROLOVbO)p-V8 z^*<urX2UP}%Oq@4^D zoQeneUF>z`)+?8P#}bqf*LoH4s@kAP822-Q+>QEp-SX_AkTW~Lub)-x{OEQKh5RZ% zO35l-b7`!v*04b0W>fIfQQw8`Us&qiVxwP5@-)>ec!B1^*P%btL9@p2Dg~pJ!rzbn z)O<_3r*XR>7dST9`gm7tVl}#67fOkxZEL(t`&?0VL?Bt$Mn!bG@>zwktp`}_0#Z=3 zTf)5>9p2X?5}rqZu;cBhh5{89eLhB2S+T84`#Ue^N|xTKZ!ba9>o(#_TpF zdjG-tF;(#W#4KZ1&P|=pw=(r^p2}$9;b^~XvgZUVCXXb?|22=kx|*m@K)x;MNCsR3P8H08XdMt_VVjJ3*HLDcqJe@dm zc=TbHRNXC47vr_lO9u{;&VG&dT@~Z$`BO2?0l{xIphMpi|nOqc9snyR79+O*_Ni zfQa~=BB;!n&CCIcfJeXx_=@re;y&G>A{?PkJO`$^J~pfmy2L zU9rY)lF&yZ&YT)adCM(J?->1YXA<<~G0+?vffl;x6+?pYXq+;p8U%+4t8-umR(Bck zS{lF0fIlq%eVPyyT;I2NYp-=#@Mf2Fx_Zy+ATj4|>t%L0tNGwO*)!6Hy&CyDh0b*T zBPj>GwIb4+bboK(kktAUu@b}aVA@Ehv*3Z0YU1(GSBOuGWL2bH^zd~HbEZ3fI;`Byc{iy)bW-1w8JuI!4>|i+U)KJU575h#u_w~;v0}D$ z&l0@+qwWpgNch}jOYVrdK}La=j?yz1T3t==?GnNXBHjZUUD}okEIoZapNFS)H3V1J z6CnTkzgE!#$I*G-L?4)h^ZbI8q$X=+hWEnYA?HvWYUFtoA;>Wj>{oVXalVh3x$nkf z_ssZ^5_fsuix}!()09*OQ@~#4HXAQBG&a}PlqY07XCmCB>k!|myT1td6r2)c+VQNb znD^2=0M}A1EbhsN9DXcLv{)P&*Zgut6?NZai3@W06YB;CXnb>$AXgo zqv%DM6)Fln#}am<$}v5R{NoQ4vNcFmj{25h+ROks>A1HM*MtqiaZw?$M08 zdw=)dKVjcJ=XuUKpMnK#LX(df6tNr@m9&!3uNtgTzoEW=6w?ymJAB%4qa4oPLq87j z*E#H~YM)fh@-RWAWe)tVWq-4FBjYW5t1Y^%t+aEg`O-E(DPdJGg|4k<;x1lgz$C7`5M*Tub0zHz8PGFMzi6F-e4GX1Dtmfmr2Ycb)f z{CJ)uZ5F5v?4WRAl$O_m1y(h=2tQZ_i6EKwIz*gAaazV%Q3J>SQS$0ze0TuWMr=C^ z6n1NVf)H%a>dBZFN>>=Wzjg3X1L9Z;E#PkcP@IFYJY;XFCVbD{v$%Ai!U~`0wI8DU ztSZ%Ah#47oUtyHIG8{5!EqF-b*h}ks)(*Kmxg>zIn9ZdOyu)uA?A_E?EGi>vi>x=# zIoup=QmnGBD27jXGdY@%mUmJV%Z=iIn(i36RgsosR*;Pcfo3(z`30`VFI+f3OJFIb zuuD*_2Wdq1#wPK(G5bXj4XP)~y!gaJNAJ$Vq~#`FwJ3O2%R!E~0$Su~jpsE)hkoxM z>-&BX2=K~;k?eC3fffY>zLNvAzU{*ToYfSCF)uaQ%XMk>eFiFgHl~$UThaU&)KO$c z3B`f^-0OiEhE=KTJEA3llMZpBMFjR0)1KMV4|kFt{l%^)u9v;~v(H@+S|LAEGbd}u zC&GRY>s%<#tKeJRvcW~)_0u2@X)Z5h7bJR$O1jHUUNN1=wX$i4i^Q-HU#sWd1GHw$ z(soIEmvqYl`-x#Ejr0s$4UTJ`^B0DhwfCdFyS$<&HQW+5%8!@per5{x7Y~Cj3j@Lr z+6sAvwUUnGEL#QVmt1FhW&DiLPodI6GNXT@L{z?|yDzmp73+gGOvF+Yx=(yW$t%;Z zusGf&-uy*t`k=H}XHNfxZddFh9&P*~7RS}%+H{!a@GWMg zrT1v^PKfGM?9Vzj=PMyOF^6JhNee_ZS)S&~cfx!f2jSmBo((1RsBgGW+-<=^986DOL!=^d*KT)3S^GnmD$DbWI{qoE|=k?g!9V?$6bYDQu%aPgHyRVEK+Q{#?$BOMx#-pGXwW;<^1cSDcmBhHb8RV-+O9!AWtV1h#(|kshP9We1&J|Lqp`ttWi5wXA#6pI4~^UEnw|0&5k=RDoy78Z#CVETDID>i2zo~ z!;YW5E)GnoA22#{hvn+;q_E(6q;JT*Nc8I%GP84LX zMFHI;Wv^XC{gUdaQiy9KD$}l`e+7tw{Yc$q5E;ZcE+W9~<+i{VI?XjaSy94F?D&o+ zZ<#iFV)$aCdo3dkQD(CHb&>ot4;uAy6BFHAu+{1whR-m4HF^kg!^Dcz2CDJi%0f<> z4+N(qk%`X5wW^61300xBen4BidF;O=VrJfOTxwah7!!y5Wb15kjtlZE7@Rmt8u_S;t+z}eHTq!Ym9Crw zHX_y+=up^hs)he4i8jUf9jRI9zva;;clb}3h9g;qaCq&%M5qmkR?ieuUnx!3#g(8& z))wBU2`1wBG3MN&(B{!78NU*(dV??9HZO$N+OEorVOp$!uq99o{nOW`)mw?8h0{v_&vBC+>fDmWv`%iHlRCMvL0Rh zBcVP_zq>gw*8!VONZ6^iKmZJ@es0xFNE6vz*I~u%G`2~fPD?elf-?{>+G44-6AY_JK(Bm~ zMbI|A%AMF)ai(2p*RcGrVtDjcMQzka{Fe}k8|yzai4Oyt83xjSmHIhOX2g1S{XxV& zz$)}44NT+FbX|$>ZFe}RT=A2_9lzn(cs}}OE?=0H^$tekAkEiNcHy%XN%zxCr%&E2+@ExOw4+3SLEh5VeqB}K zy|akE>_<1SEwvYvF>IzO^%D&#-6azzar5u;8N$*PbJsjf`>sx}&sX7Bp|}y+pWQ~T zWW%|`DLNg3%4^Vg&+a`#H3o9|gPk_d5So8G01!5AtJ2)62$!qb8O^=t4vqIWg8;#! zHfEjFWC@fyLfGK__n^vWefp?8^Gs#9@wl3+?J@ z*`Wg>ld8fjteO0F-~12T^R6feQ=YPkb4cdPll}c)F!I?(lv&HZF6J;?WQ#<~*ROsz zR66mjg2=EM6Nul^NIap={13h(5>~8aP?HUY>8C_Z z(gksFjm3%h^Px=#wLzQ|w=|T(-KnC%irj_HewO!Cv8%F@@ z33AH8z01L@jH~GkZ&~vB0?Lob2acta0n($3y6h42cbKOm{6dCTScvrnMeRi_MQYQ; zrgXQWiG65ml|z}{f`1b>!n6*_Nil$~)WSCFt zN;}KqTgcAxx8BRv$xwHux-Nx+$w@EV-b|p79Il(vIrP?h_R|HfuISo(nrFc-KOrW- zQ9> z@H^tFr(Z(38mZh$zu%VB8xCs}nx-$ZQoBDKRGL#Am+O6@HCd{L=qJ}eT#d!5S=FP8NVj4wz2Lkv>r!X+l)tW zL|5%;?+n{&UlN4$HMeOcghMqRn9REMV+~j((@ifz@<_TO{1&}Ds*9?9tTG9~M$GmU z-_2M@lt5Dmqa^bwvV9spnF(X;c$3uWTO}o_W53ux%D&U=Uvn|Y-(omkl&P13*Z4fY z+!43S>X9uotuOq|f8015g2l6jgtBs1>dII=g;T%T?LoH{{Rcf#TjcV(&A$;Cv)m_q{ z2T9L7RP~-FLVD20u_ z>b|N%;EOTx1O4t>8LAV?BCUzkn=|{50DCSkYL^D{lhJ9%6l8s>+Ux|-uHP@N*kB_8 zGUN{^gp;LxnWgj~pv;0TT1v@lOhOfbK^pWWUI0fdvA`;=YD_w|Ee@(@pS zrNyhmPwV1v=$Oh6#ZWbauWCwqLW+`vFaXp_xTvsDJ@W1}(Y{Plm=6#;divFE?)Jd8 z1pSC%cM%*+Jw_jmTmxQ}s57~&uDEQqth%$4Rn@P%;cbsC-BHD?$O_w zM%7F+pz@wc{z&KzNy~a%6Y<-q$YbFBb}Q_oZ3I=S)IHWA_fmn_lq~&RehMv_L((XQ z2lI1bz2VAEG%czxtF_|K-i{@>vZWH`aE||_Ymzw+wCnOM{rAR+nmzhXYVUMtas(0k zM^jEe)ieznEtP0e3YuLe9uB;sE;DdxA_Eh1#c7n}%~=$rjn_UZY<@+4p5rimqS1;Q z(B*|8fyd9&7sl@~V;SmrpDxTr$S2}ZufaofR^5N2%PeK&9Sh%d4;IroD%bAQ_7s}1 z7;_c>&9#lfI{M;OyM7kN5uT&sL<-i!4nO-^h75}St#H)8mtHi7jUic{r&G5XL6)I~GziHs#)~+$iXGreR4m9P=#NppP zsfpMqlde4cU#hqIggbtfzn$?B#e0{cTjmkY1JE6yXabY(?B|0E6RO!3bmg#>3Ms@o zT4b-Nz&{TDef}bDL-r*=^;>^-57+HNZG#f%R>=zbZ=v_&Sn=q(-jNo>_E`iyo%p;M zVQ}hywXWpn?L0xkH+z zMw8vH`1wSH?FHjIR(q!cFUf_*tJ6MSGVcRrgn|4T4R#n9jnvC+j7uB+Ou!bB+NW;Y zDH2Ie=&VYb@==!M`0O@26K!!(%i2Tr#N35yio8%=&e@BJ+?JvG35Yg`GrvF~^cRW_ zO*kG(i8ynn*(&-Te5czjV6KGg@;l!_Zq;y&bp^X_cCnb1_fxGL7e6dFD+LP+xVjp? zKDK?yf(rEQ;rK3>2B3KxRoCL^{`XpFQ~&sN{pN(7wn6-5R#NcX9}63@56fFdGIedW z*WLtD_q_XB8b#Sf_Zp{W6|ubHD)})h!1XC=<*}cQZj$M_Zj1I$R353xNR8s4OP(Ep zbr{P@$N7AcTeySf7(%}L)N)caQEH&phR1^kjBhdBk2n zkHyV`G4YmoQoXLk9`#_! z#8HmVLby;@+H>rXgOZWlSuq`4Joir+a{1MbbfPa<83h?NQ%C7jo!4;ze9l{CR)avzbU%nHg$y6+uH;Wg_`kZMuF|3HIZMHmT;z5;H}(g-R-h_&gVB2PF>kvLiKM zimvL+bP8wMSlT&V-p$`Pl^LeeM|Z@QP>x1@YT8rFQj5=F4r%)zij>)EOX5_K{8-)M z+npRM{MH2%@ZLA1R^phx%e%fE&ib$G%R2uR(@(Y+6?|N&_Pwa)XgcT<*n3r-4%V1t z{X;VwI|KYOgnntFTi*kn{^`qW;VIH98yN}*A8c~7Z)&`xci?%*qeAbfm{*ALfq~! zhjgVMlgaQKReAugq{?oT+_hxb%6CjlA(mfWj2%`a*O!(Dp7bOHo=~#mx!kxcxQ=re zjImKCEQOCOL;K&4I{tV) z(f2&jh&Ema`8MU@0O@qAEH@PxWiGkCAOB7>1tAQN3pGABZebs0k7Z#YE=;Y^BD2U) zjoFU0OzIiXTb!tUy3Lp=SHANwk7~E~)=tiqdW^osFs(T8=ZC-QnTR3<>zF1%PCIK- zEd#Zf&6lJZYBR5Suxie$%Tl(r6bEPIr;HBjDlMr$GpS&U;Uep)c7B{FiKXmzI@&JQ zV|j51`44Td*MmwbwXeax7N@k`)M9p9t{=xK8pb&q^8PbF+9CMTxZ&D#NJCsrgrXgS z3=QcS9q$0{dhtwDKJvZT1X)$Wq$xy7{H6DxtjyESakXg4A<3V8!!Ntk5mKTL6Vq9! zsWYCCRu)pN)MgJ_LRXJU=>BV_wSkDaw#*fnEP{Nn=BZ>Cqs|DM$$pEF=WrDJmQd7r z#Wm1IB~s)Gwu=gkjYEsR6TixY*Y0&tc`sZ(V!EpQ1rPp8!5h>oTTIIvKt>RZ(dOrx zBP8{&BoQ+%2I(Uj4keCk;@qyI>(#L)nq#Nj6g#hi0Gj-?Zg!#-tvl6o9$UWD8CN5! zDU$~b-SQq?j%){+8f+DUS;gf->A<$=P_#XGanxV1E-d4A3+T8sObe;G?FVt~Dms*T zd_2R0qeATQN&A;ScQgOi>F=`~L8PTJE8_>o!>Slnvi276e%Ej4@>0)7AorN_6FB~C z`J&&L{o5QDaNo|;n_HR`>l@LN5bJ)|mATSC^?Uoy?ecKit{4PvC5gy3g8N(npMa|? z*?0LVhhKlEe|b}SwDFlOOX~V zP%AjvCK`d~6V+5vfchN-y2B(B7HWIR2Fh+l%9!wH%u5RUg{SD#=gBhVc^QUYzpW0H zdz-LJO=j5#_xqYVi_1fY4PNC(#bL@bBOgHw?x@Y^ZT*pcjrKC_d513PHfOoPE)1VZ zm3(+rOfoxmQ!7Vs@mpacS?zVXdAJY$>^=5Ctq) z-W>Js>0DNs*SS(I)|@~YI0+lqSnzD|o=-rw_UhCdmuHPoLrKe)0z=3VTDyz3->qn} zXq*ByvxFG^{fd)6q_g_f0YE}_og!T#@Aqmkp<&&p6_rgWKINO$2bX$E87dS&IrX@K zp%wF<-ax31G;fJ#iw95#+2#Pz6-@9ok8F`Uja#QtE(Z2xM*VN z=(Rq%xu&Vj_rwY?U5lBaYZ{CH60#L|_)`oMhoR9xs8iVXnj>b>>diC~-k7+Ao-drJ zP|B6+z7apkwW{huaZ4crE-Pj7r)hmH$zvG(`Kjcmg;2%3ZN_`mR5uOU2G#K2;Eo6{ zuUo}8JTpw&yt8MA1J~WIeLN3~cq?)=#&t*I(I8|e!;wgemnegc)SNics&Y$N*!<`3 zb53nZI&jA=BKc<&FT1MzG{cH*kh&=3QJjCGa}nUn+--@F-qP$}XhZ0iu-Nc>!m$Dj zX!Qm<=j_cvikxPA00@z9U?iV)bTO=9(KFE;PsGNNY+k-YZWz|+0o1;4VW=mZ^nAqMR7+nd3xzWl zEPE?0Cjm0;Tj~iV3R9u($Mnm+e(MWdZVg-W$rL4^Q#vw0P(F43k5TkN-%; z`$(a}#%cddibLGF9_L?1)PB>bbDj6DhLM!2`Wp7S_u=_QKRq~ndWTuU33#aArK`ig zCK>Peqk(Bb|5-=wA(VQtH_zvcXMOBefBtL8(^$CEWe+L45g*~1(+^txOgvE|_Sm|3 z$WiQxQzVngcg7x*PLtlxb~5s@!Zx*HXAdr0#VbP{?=E$e*^DljXT0Iav^@bZTxUvq z&HQ?xr`O+v_$xYEahWSsKF2ey;Z-~j>Ye5CAvDKwGg}2Mdz7+yGEVH~r$4#$LrHZ`zWSV{nUWM1a>3o} zuEw^ixTfOXpV==k)VnlTvF<0D0c4P*sCXjZM#CiOG=PX?^|F*-7HsEz2kJ$MU8GqO zv?%MktL4}e`{Fc5AR^H|@`);QX_xHk0YSOxCUGu{wYATVG4w$39i=Lx65 zIl+2Wzj+)eUh9SbxZvSo>-`~5u4}nGR!c?VPae70CBLE7Twyq<(j;wNjWjXc0!AkD zh|Y>I=?^jZN=5gEqUl8V9S?poSZ~&?$Kh)Zh_861%k=2WOIr?i$-FrgDIEOCGWwrl zcMGA9kJ}vY|IOU_ruiF|E0_l2Pq8=EQ=Lu@7PkChgvv0VMrw@nXCT8!JI5;om)!`S z3udNqbm$?hCfgX=e$madU$*!lI>0PQn3j*jLKo52@C(e*l?e1arB`I7I}Pxd<~%&<9`8%z+#w21=Yhz z@Q5DNZ78r>lc=l|@0&df_sk6ToB(89csA zjj)5~BOlS6E5yn>FHmMqHefY4_;m9UT7$fPfhtmu1S!GmD=Uvhh!0aTql{yqr=|MT ze`0q`Q&q!M5qDA|hc=OYA1?;IW1yV!Mv> zDs57=*$=q13fmiStO&v%V_R#ps<~!7!)>^loMgVRCMkg}Eb4pdI!L}m`2dtZS;ZhT zS{^QAv9PL7&+wF!CR?^v|L#WAr6hvO$Hu~jA$}F;otMXS7st=MB&=M=D!`v_Hw?joxwd7aXjc0!~hnT(Z=*XJsg!8)bf;V(9eJeo& z{Wi$g{%~i=L2b!F&Yhx?Tgn8h$vb||dj$75XJ7RJl2>|*-dL7-H>_yJIaOjoROV!$D2ao@3vrrR%WgPmdhyrxQ1ZmbiKF5#hmRDX}jeZhIq;h>bZ3H55ex(NH_ zW?`cJl%vb!s(W7fo$zJtRx?V;74zRTnRg(Mz&!OqsgYnw+A0|isWYf#&RS`08uw=p zt9R!x*B_!KR|?;!r*u^9H4Mz&Nnf*eM+h77Mb)w~Go`*VSe7w2CsOG)gf*=$P2Ny3d;qLSNV@dPFFA!nd-Hz|KGwzg+?@K}P=K#S!B;Lr>C#&+)g-@Z z5)#z^(KwZ-)*!!cLgi|_Hu~-;%gNQ!of)bRo>_o}BX_^k7~SUs>EZW()yMYUD$^pX zTrN6ncuc8b6YNH1ypqHP!R$g<@+y0k?Pmwo`RIZ}vZfZlVx?)4u_965*FS$gzSP)x3d!Jn{lPaXr%SB0H&-13k= zqmr_UxPBeOB&Y+&LhPzVK*!H;Xl7jknq(;|RgiK;m)uO|P_*QvxnbMYqK{aT{2<2! zd{N(Z+#5G9I*)u)aPhKsHQzBk+GU8tctnH70$FXN_L_E5R*pasm-7)nDE($TUHz`8 z*y>~PrvC8jv67W+PMyQCe;p_XHQb-A9f0pS%Km*tU3xo!<~khk!hL0haNiAo`Rw$( z`5?YT1|M&99#3&UwM6j!XTG?A-#Ny=U@_JkZ?ttF3L7sz(DKph%kHaeKTEj7!?V}E zkNT=FCgkyyC`HpwpR9tZB|Bq_`L9HCbFGaX{+Wh~byBKEB_i8sA(RxtbY4g?sCrw{ z_V!y|rbIp78Yc@=6w~`)sUZk-gCKFWEz*fYuSYfYt^zgmLs$tfN5aOz;!hz;Q4Mdm zX(PE%VvUUV6g4Y?87q2DPB~#~Qke!_9h^7d%l+U2kuNOn?OX*0HDYYt{#^U%8`xp2A1WzHSyf@}@t3Yc8366nZ^EF&^-Gs!C=F#m`F%vRU&h&g zNC?A#Vw#YEzMo*?%eyJKDdiG|4IhO9@j|1Wi~iMLPRcH4Qx?S>)*W}Mx2?UOQnQSV zp(^z$98MIO`Zmp{4_oq6K#l?7R5U`>W#f@$9JnuYb~^lCI)km_fz6d#Da*MtBO@s> zX}?FSB@GMqQY>aD&ldi}JF|is7;f5vdXBl^S1KwyK@%@apu+a>eA8v!DDb63{;Pbg1EF+($q>A4&+y1(&6w<@x+J zMWsV+;H2C;W!>`^9j?pjXgE3VsIT{9FhLY0b6)vcA2Kx7TZ13cv!nxW!8lWnfla;S zKAr%>drFt%w{i$Ur~&)VgLXUOHCe0vQY?=x>zYD>EMC zX<(+3Vgt={HD2u2MNjHj_DwuTwP_nBT?~35Dy+$XO9z?bXAd=`qQ4tzI!hj|+Tl$e zRNn|miJdbc*UywWo(Kr1fvicdW*AZ~Zy7aGwOX@R!r$9Wf;{r#a||!#FA1JF$I_L7 z`3=+H<*RHX`?nLWsit~x2qM{r$pBhuqKlx4?-kpJDH|pX)Lhcfa#75O`z$o$Hne>4 zVCpzJr&Iwdr(-VpE(Q*wIN@jTgLeITn@u{Rt%~*3U~={YD)NP$B-1%lU<%7+z|8Ko z$50}Y_*^fc+$8~7nNXby6Fu)34dQ0|Uh?MdOd-0A?%N7Wk-DGEx9xvjrk<9fTHNN| zm8xE$FQHq#5RPeO7&KYJSQ}Mw!6e(|2AF268^U0k7 z=8R{G;#qmVEvlP$ECF{^nvVjWA3Dx=j9d3YS%jL7N9fOUM0A#Eo3377vM1TUHga5Q zYxbQ3cxDs+6depHR20yb8bL&NNUxRAc(GewEq78DH85y0Si5N`<}~T!-XNLJ22uGQM$!14$`W<0x38YbXRstV-J$Nl=)9J*bW%^!`}RuL;Ah z`@bNcbUw#nqprwSuiMcp$r%^<5wMCtH4GV?)1_6&c0^i0?)aTJ!?jNp5rz`8NZ6U} z8(m}@oj{Q0MmvfLu}HGPjTO8Vq{>i8pgDKa1r%Quz>55RY4*!7*iF{;;q7kfXApH( zb0hCQjai}|3TF&w$nH*!gm-M%7%IBU-@A~XT#NJegsG@+#4z9E0)r{tNf(tc2LfX8 zGrQ%~|HQxFs!v zPas7ofV5+>vQ{&kVfS*9;igB?QGdeYf0+w*&a!rPjAd*Yl!D+pjBB@6Kdh31h}|B1 zaf@*i_jcMfGWKTC-5x*Gm(?+eavyjRS?(O-`7*4LUPH>^YzSCBh}ax2ty1EQ#RwTH zZvOoAjP0h<0ugnUN&tmgGul?5w>2B5=~reG^e5&I0$=pl@0WRb?n_LMrLJFt9Q1YzAR6dY0&{ z8Q}QO<*v6@>O{c$LvldCrp64>K2dtd9;=hEMHsalw>=YxNbhBmC0WwTgbiMMKfJ<@ z6(yluLk$fdGBP~46kEtjTK|+m^TF(HxjjrL4>OcReIxA9ltZ~t?8P2Qg+A`Y~0$ANSI^y#xFX4hjOCed< z1aNZ||LbS@wmj4I8?>0cmw30%?(ZieooT*Z2=6?N%K3~XeJ2*rtN+@sdK{6xR%*qB zlo4?ngP|9$GYwAi7Cpx7n9x|oei00}+n9ht{G64@nXi*$w0RCig+^QR`ZkGFYX|)u zj&xYGy(MF0+WvExDzYc=myXh`zeATHHI?*nW(G5330{xkrG;M9j?&h1Pyr0b;7(1@ z^Ihb+B2{qr#S`#_YI8#4wzA!o^jg-8CQ>9%yt@EC*qhE>f+u@C>Cm1fg!%Ywu40QE4NlnnBORf4LPWeatnEdb0Mh8m8m$om#gu{ zEj+9ud5!m$S>8d;3Gr#}se2vB;p@8UDtgDRj30AQEAd0@E6ZP2b_yZWoje zF31aq+s2F9(qt@srAxnLw#A8RoKr2v{@T#7i!DzO?ROZ#DTfK)lq+fx6zKg|zl^Sy zZpt|t=bCo?D{y|e-Ok&e5VT1Qb68P-=^3&=ld+>mtJ%ndhD3Y3%?N0SijY|s%3~Cg z&X0-CaL0_St09drecl5N>S$25)=PMcjuLa}YaPu$`bEmMb<&CPg5V>Q! z#l5hSHM{|a<{x7W?rHj>((;vrFF&vFRFbuCan{!g9yS5=1_xdGlm06EH*oFw+@oym zJSM%=J(=5f51j%Y`xIJ|n&bCWopOr|9uvPwqK&JA{`cy@QKj*7>daIt%+I^r=gl z#Ch6N_emDwBZNoqN%L@}ZVX6IL0e{1G?a7ewLn9iY^|VSHN=CuEO9H-D<+%T$x`6h zRIjUwwkQ{3)0&*C1!QXw*3PJ8M#Jwn@0O;{cAMO^Y%}!9oa`~y?)t1>Z4vSu7$@jJ zS8hwf==@+9Nry~pEYXN<+idjOE8OfJv-up?%S7>D&Von}rf;#8@i=wVQTQZqe_c7O zDU`SQR_01}N%l(lnZ7i^5no~@W3-YYWe&GymawKo3GaH&A9azag%2DY?p+Kg_BIGx zzZgBCyQ+&Eohih4d|D|>i(1-JnyrBwY*$;P{5_ROedQXvr`ybcqO#WX>ct0TeB8fe8{H5& zx1bsFXNi^*{PPaf<39}(b4cNexuIDU1ZDRDkc^if9G82ecUsvo?SRa;Wtr9}>PP@w zhKVN^f9j~|9@@LKbue6WrPbG_eGVwS^ERC<#62@R$(HsE@fJqnB?ux;7|dDQc{=m@ z0%G}NE+#E&Mal|Hl?Mm_9j{0^>U!j6LYb1b%4Acq%VOMlX@V*CXSsE>BY}O-c;k!` zt?Te3qOV*dGoX30%%CvpKKNq(`lQ;Oq~+CPyGHwm_Z*M`=3hyw44#qzHYPo2#*5mPRiOXRx!PQXh654yq_s^^`=+m&~2a1Fq3+_5YMk zTgFd_4iy{kv|M`KV^>W+lbQ4){=bfn}5Phaiv0Rt=9*4=~hN!B(7ZE2abTdkQ zFW{PnhBk@F++Qb&>wMBsYlfo)qw1nymyEzP{Sr{){#rgWVNC6)xF#5_bc9tz8Jw-v zt?uJ%0vjc9MQ&AS0vB@&{?Sr#%3}>rf8B9v>-g^zV(7{FQ$sy&DM&xQ;#*>bdm4yH z({piN3Z#+JeCpYJ%Je56gCw7Rjg=RH&9WX4Svbxy|6q2;)OZ}MAzG^r%6Gn~h zCPpdA_j`t=-~OT#4f+LP;7Fs+^)A8RjQx-N-E!NyS>eH+s@9`cgNZY%elSs+K)=U zoOf)&`EBaUMsurgpqSMe$;l|z7B!d<+-vGz*gq*CnDPs!pVLw1(jCQ0|K5ZFBA@1M zrIuVd%_M@20N8uil)d?OR#u(liDlewbam@KKA-3`fg zL6d;R&X-eUi;5Cn?eWbadtO*tt8YY9Jp24@zNXRgK*lx|W|*3&O7ig0QGdNp?P-PQ z&bUBDxmAYeGxNWqjz#8d4j(^#`m`(cO14an3*e(stduyLD)DVzvle@m%^|53&u*JBFh!ZQJ(-nQpeGeDNsbGInHY156BIU)7z3*TvO!k~KawrN8+s4G#u>2)li4>HB9wX-(NWN;QW-0d~#bcmg-?Txnv zE}O)psk;U#%e5;t$~wb5S(?HdytanN!z?#oxMlP~;*Ig(rT4r~4fh}y*zVoQF^Su| z>r^~R%W;;emgk_bI`}9p8c6Y4=K0C;AeZQYyUORCBe=G1gQ0;CWCY4cC~S=Is_tz! zV}=vg{<+Ohf7F9bnZD~%eK}}TAfhDUI#20UO17nR7?TxR63<8NvESsL4Q09hxKZ@T zJCo{+^6uOItx-S3WYX5OWZ$L*zUmOZW&)NBx-u}F2<;#I`5KqJc@y zE6HqQG7r$}d89>a8g46TwCM`9{aUZEdZ~LVZPD7Pbh@@y2@RWcGM{1=I%L{r1ZUUh zs^Pz<#1Oo)B9aYz?F8)>OG+%{8A^C4|2>y1~{+bJ>Dltd|Frs3Nl8VMRI z_?%02@2BiZ)9!Cd_ z9_)OKNzDs&jdiFx9Ge-dFhWiv)peAlb0wBCylcN_Fiy-Gzgrlg?^_j9{u0^3>MuwV zP8&`qH%;1So-y^bWz638Z|Z4lVs#OEYtF^Ju;hhTL}c>|!-!%K4K5JFwI^w0``b6X zaHhbku#g=LP0yExN;ywgo=o5J?dKtQ$O%vC!Cs-A!Wg_MQWiOjtJ!y85Z@Ax`wUk< zyvBFB2^rNYTd}`x!7;ui!jF+f?kK#bJ+a>cyG%LEwd~@WTiJY>_BB$7;R8#y6rYOiZ@u_E~7MqH6Q~y3i7ID zwT&fTcU@HEH#ps=18r=D-v7M%v!55C18n9}4R+FTC_b;*zkes z9kytJt^}RAY*!ZdqZgyStvj@K)a<`K4SAY{^p3{2%fU6A3&?s-zpD}TvoK*fwjMtX zO>cGSuB8+j$yG)UF3=~Qu6G{gUWL2r!FjJSn29~O2LE1r20M#v68{e8^`*yYkKydc z^ovP8GfCTHL&00>!!oFT!uQx;dbMzF++c^LFrfsHnR?4c16kK)2lXuipm){leLKldgo!M~!hQojTz#M?lKA|IqF-eDNqtTNO%W_aPCVt>cl$>XG`i}V%zdeeBXfTDNXeOz5;cU~%jP*b~mlS>ge$#x*eRM0hiz2`ElQpBaJ-&uy9 zMbRbbYa;N)TgM(HxZPw^=;ddQk!GRmBv2KMW~29vK(ZYUJ1o~WZSeZUo>f7ClB>Q|?vS#( z)agrE&@;2xrvAjyB=^6vc&@zQK?ZC1GP`d=oA;%@3K=e1FVXD=nPf{=vfL;nye8`} z0m6L|MU&g|Xg8)JsH31^T@aqgBl!8qi#V<0cOE!WwimL$w+!C*GblHx{nbAM_@)~F z^+*KIA(wu!ro-?+uUEa(GF@0cPlGY<9}el&dk4kdIDDdrCmv;V9kca9!=uJR+kJ9i zJ~2&o=d*L4>PY>gr*_>BWG+7&Tw*8x6FbjO6JM9n60>QgY1OV}IJi&l;P5Y|&fTD5 zXG&mkU3wB5AsszHAX}fir$9lS408*MKCbnmY|Lo3$1SjIkz)@V^tbq2*t<;Qx4Gms zjB^|onKS7X>R~J!i+WykVs@rpVqt=dNr^d~!fy|o_dip=a;QJP+>QymQAja%PC)$k zp#mfPB3Pi8rS_&Tav2AF47Tp7qLa8^o0P`j+<7vF8~S-x*#F(9+tS`q)7sJpeLVeK zn?NgMSeXTSE#>UC&YT4pLhQ z5XlCkO}@FjwfT#=)0(TBX7~kXtxE6*3RWpTZmgrJ=dy>rq4-L^!$^fHCfkJXbVrA& z{=lH}PxpEjn2nF^der~&_dA~_20*A*t!eJERY2lD7jXc$PG)b4YqnO{ggOXC4FyH zo1YjZ?38cyA4qI&#`+i*gTOc+w{U=3RJQ_YJN-tRt>}D08vIO3iQ+Tn`rHALmpha_(J@JB7msFjkC!O0hA*TZ;KYL{%B5lXHI<_T6bUOZtT5bwH zt$(0QiHsP%G=Cs{64X(XCMVLXbO@&pMFvWi~N^Z1?mZAhbT_5v%P4x zz8>Fy0r?#@u2Ufzm_9vdff+Fv9ks4t(5b*~92rUL7w&ELw+l5ecp?Pdz^ezW{*ol( z0wgQOH@mXdW5${&wE-sEv(Cx{M$Ab((y|~|V8lcg=^Vm=tMV9YcL$AFmCGK9;DPl_ z8ZHo-uW?a0MWD9B^sq^0Kk@4=+~o5U=YMM_(Ec?ZmoP27vq7`lKgFl)YAmvH2gX!E zXZL;I9M2(j8{{r0eXn$Q4lh`~YjQ;oP-c-Lvu!Ago9z*fa{tr_&+?ohd$%64EZwjMp0_mdtE;1lt`k~Cq(*0ulK+-aWuz*)a%8WT7y44 zoI<|GxQ(n@TP9+vTbY_Pls}wQFj0aM>0KdVIZ$D%$uN zske$1GsI%&Q~o#Fm#+NL{e?PElJgNSqiH*@>$B;kN%$0*YiR zkGJSqc;X-s=5@vuaD7?})iybGH!>^Vz2WcZzwLw+(wE+Jrlx;YNZ=nE)V)k~sesfd zj^kV{)>tO)DI{vEX`Bea3xIh{c>J<Gw_A?%43&xOFJd^A)Tkj&g10R;v~N=}>)Np_b3D2Rg3MwRn>st8^S)!{zsF zVU(imZcP$ImJyBC1JcJdTf7$D>Hkawkj)&o50u(!ZrEu$Vq@I{Gl6Ac3>Nw3tHH%U z2B1ZD-P0gLSj$06eReG?!}(t?n++{!Zcbf$kT;kTJdRRzEIH&Wmz$FK#f;Obb7|Vy zQBa<4W<|X7U5VcC%1A8ayK9KeEo*Y+fd>0BXzOQ;m;RXrhokuz>LGQ0%Tfy*N03XF9<(IY*z4*IRnqBa&c0`-mQeylPs$dtuZqRGF~ zf&A_WexUE|2Hm-7oPAN}e`XKM)`E^&X8(76PUxo|vuE)v%{&t{zn@L!+jb4I_R zYajW;;r6aCcL>}AkT_>vne0nd%C^y0LofLx&Xwj1Zt2z0GwDX(XP$Ea`ROXwb|;z! zfhCb47?((k;O$xJejdA^%eW2RUK##oOXFmuS%!27LVog+6N5QmxkBT(T@5K$$BlsS zUXnJ~vnGm2$Ilz@uAXl<%wJx0d0YX3R~EOxWGlVt6!d(p`w(=UQr83$?z9KKE+aQJ zCJjocs@DZ@d zjp-?*A?3Cg$`_=(wIYk9sO$4JZ#ySMgbfr9I3k2X%~PWly5(y>tbLHwAP-D|bMy$X zPtl%xoI!Ro+O_x1#!sqlB^)UISHIY1u-RHx_-s78homi+Y>(gok4}$^jv;v57FUBI z#Fge+es5wzARBzfv*hD;*2;Bb;n2P{al`rVW$ zqikp<{a!_41fVTBxPft%#AqjTYBdbK;Ov|@$=>bfI7Td9>;_E1zs+m%sQ4xGBULI? zBCTQ;R22Mvw@-}t#`sA-Dl@=t|Ig%~X3Kp}zg2l3wt?{zEtpMzP=`2TJYAuy8h|I# z?bYdO$^M+L?YJnll2xl?I1?@?I)4_G@aall4F1^0e&gmLq{hklYDZ8WGYu5y6}NU@ z`>GSHGM@3-`{nm~rJ!{388-6Lv-x91t(aCz1wy&lnuB^fHuj*KYRs_Zb$nT6 zw~l>ab~KtMQ1>BupiLm%mw8z=w0MA1)oWHZD7ZCx!8E0W8)gxL?>!K}r0K@gelHz4 zh~}MjVifEz!3AAIC(Xjs@c*{|?wr?n3^-Ol;l04WZk!kFBN;^rxcYnlpjH{Lvn6rbB%h7r$B5@pVT< zZRoQ~;&PMx(6IwDLP9l2{AoeYv2Qte-@4Xl;qiu0r8o*2SPKH3QS8z8Z`;bf{^I~) zqDB;?D!fJbUrCm2N_QSJ?|7hntKFA4`8K34W4|SYAKelefaj}1NU!2+ zM}->Y8GoR^{z%CW1 zdL{F%MC(J(7Sd$CUTy#3z1G7snp%^oSDAGxM(CWi=DjYlp5KQAsRK1VQ|}~jlj}h) z(5K&H-i|3ug?f7=jG?HEmPOKC%8p$bm^Q-W_?=R_AN;5z0~~eLCtIh~CR5VI4UQc= zMU#WQ;t?mNbagjMglwunj{%|gheAqw!?5!=rD8_d95&AW4HKX1mGoU+5mhUO7ALVp zUE^vETl93-5F=`2yue&tv%s;Tb+pj+lHHQNE0@(X%v!vlEAH83_c9*Y4~xAcCRu+=|cJQY$0gg+33p<+2$YPP37>0J1w_g&9q188t2Y@X-o zOW8LLe4=MWq&3b8HwV`4h)+g_%p}@WrHsg!|GvDx-8^i?u=?M<=w~bMkN1n|XGnr& zZE^C{CCQKc?Er@TLRXv!z|fuiW2HIjt9~!m^%dX*C$KB+Z!ovil5nW?F5TBTtdhOT z*xwGm8&#QjwPxuBUN(YsQ zrL~R!gThKQ+YO3@@AJwCIZQ`?;E_AK4luORIFo^EZ4sP4&3ztVZ9@a?%o|fxs!vAQ z4t0e#M>bNyHy)XXShKsd6Czg-yH&|_G>|XGLQ;85^ zc}tWyxSe@SMh7j))rkr}uNe9xj3l^T4|PO(HlElVlBgGp3U;Apld9H#2H!-y_wKV_z zu>t!br;dNGeXJaHFt-V(N?n|^8h46Yvp`dtWg@=gG1q2VrgLAOWelI!kK+{!#lRWM z{Ck4u>VSo^4ZrTni`lDjisb0*bo-F|v5(Yh*+^9%#fqb?z#x?y zRHZ_j(Yu%7&v-c-a;`Ax;qN+E!39|qP_A!T|6`z|MdcdZHoLbWz13B!f2hk{$A zod=BPl`@l|{7sy6gga`p`ysvbd5!3k$~Q^m+TO+5i@`hX5mwWOrtN1lcj^21gvB|i zPmEOuvg7izTqCz`cQ1`D?4|f z4PbDCOUu96T`Pgf8_7Gm7+*9)G48ObYUu14v$VU_{ra%4yWxMWiQdPs7*Vh0DAF?- zxpkxI2+N=2IQp7EIg2!1pg1L-R13O23Bw~R+SbLv{JEt9#r78U-&OI(5^Cy&19MR- zkX|LaPrwGP!IUiGJJ7;*o3bZzyo&OFeS^Q{cus&eA7-VyQb2MRD=6;;p73d{g!A^1 zSjZjUH=*eO35hou94@$uf^^TzSH?dx)k048HB|N`Uel520@irlZbL6-or0UiyKjPW zg01@lfB-KIv(KD8k_DVtFJ;rj^Tdw0T+ z+9{{nWk^b|L-jzUK;{OzvdpPbCjD4tmH*QR8~5s{7=B%AidD9>&Fh87n=WN`?$92U zOq99|EWo#}V7A0^#~pv2hj5_b&1J(m^E_6U2^ejkzc{vWaEH1}s0TeIPLVE!k}DRj zeR;~-(5Iew2^|{q^bNA1l$6|E#e&r#`3c|hZq85!7mi_DzHXjr#H{js_l)N6@`Zhn zv145T&DYvrL%0gwidg2}xCCikyZ4}_>AQQ=_g@Q85{RiY{55Geg37}IED&~lJvt;R z#wVvNwZ_N`H}bjn_?Kq%)M`JQHtZv+*Zq#km`Pq8*^S_O2F2li`?}d^S?7!`>Urq@ zdoTlR)6cGR8pJaQ#(=ny1=I1dQk5Fg8f2+j)!G68bgjE_s;b1>QDJi-l7D)eaPLe= zX)wW%1c0kn#axa^|VLYXQQ1CjgiDDdvpIT zjmfj@A4PL~P|Ku^&i}G$E!$gn%L<0F^(fB-0_4Y#Tn6Q0*(u~XRg0)I;|XN*plB-v z&!?Cq{DHq(o7QpaLZz?6VGc7dc`dXxjEIGGmwk_ zVs;qdl?~Y8{ZX14T>;W`jK1VBt}OwD5Dl(~2K*}S^1`7x!rJGiRBs5N(>qz3yam1m z{FnQY#qtNaQAVS0%VO(aN8fk9qtZF>;?du2={}VECY%tJ`VGhvBKV>4&6>5a10mVB zC^>>^mwstRW|y&-HcL)s^yjDJY0sHwamPBcsMQUr0)e(=r&R9wI;pL0QBNV}yN(x>B14utuYM~ms;=hG{`#c8L<6`qfRvI3 z_Q@+l-J!}e|Dfc3jctw2!uTV0U`Gx>gcT%Pzd;LGUu<2KVrO%md&=S8wxmHcz?pfs zY>SyKy}E7pXB>cZFU*4BgtG7v<`N#OE?2=_t@v5#b}v#b>k~>UmU|xxwsb38%P(`# zJ~!gT--MX~8QfGu9r2?cPQf0SO=H>KGs{}PEuNt!7{$}r$zQu;@GQ>#$HfA_4c|&| zao;DM5{WaRAfo8(+~Z@;ndEtnGRHga z#zhNbvleuaMeGAzSH?wurjB%tH6hC1)%1;=b;0o~7d6Oshy6|+ zC;Wth{CR29!|vK7Spu%tsRx;FEY{DK0;tlp_uu9=Ku|czWBk`!)t6KzX3bW00XF{r z^RX3Y7CT3(N0DXPDzi3mrOK6ek>NsF+026+9~4EhQWQp}AJkaQnSgk44kPH^&w32k zLX;l*4`=0bv~~CU2F(gpTC+IdU+%iFsk}N?e*fEfCC-T)oowe;&&Z(nUC1O)r&Rb@ z8Rr40wS9~-^KB7jqL_pXWvf>R8_p*D5PjS5|Fd}h@J1L?rFbeq+&=|~nSSaK)4@5B z;9Aekn`IdILTIw3Og#II8mAp>K~Ol_yI00$U)F|0Xx%o~vdf;N8=!SqDc(w6QZ+jN zibAmjwIr6Hk_^twTIErF_RaipKv3?b-d5!*L_147yBvq_xDhILngjFqT8*4(?bvt_ z7-@c8@#DM|kjgTGr1&hunp`CFl!atLSs^+D^H|ItTfVbI$IH}yprwk7qx?VNo?xRl z!Od?3<{=$0>;xbf>~wB-syoQw$KKAdwLf}D?7(#DBlapD9RH%%(BG_Js~8n%QuidN zN+ioD860BoZ*9q0#_T#Mh)fZuaB1S@&xmm;+fz4%jI#%s?i+ZPv=qI%o`Ty{x6 z9pvk!k-;v-y~n>CEBDt1T@OEqR*7i*scAeWT)VJ74D8%As?rk)?s&i<4_INK zx_h++O2{v|VQ6P_?(-QzaI@ZiTi*Jri7uQ@HV1J8X?(664;#BsxLi7>#YM|yqa7Ul z)}remv+58C<~Ut_rIcwPRUX>#tu4Q>TP92F`dr1^?;)t3KDg~C$7fb&rs5kh^^}bZ z=7)%DC-cunr#i<2Gk!TLqj7F_7OLA?@M5Rd31@M$Ksh+Vq)P6CL{rKU^H)k)X`idx z?sEQmmAN<2q@D9Z#{a)idmQHVp70pV(2(Ua=Sp}9ZxZ<14FF& z0j?OY>4BRQod^4P8aiNc2iRnf<;1%3m6(oaLhCr&)puE^42PWSGGF;FJ}h^(scv}Q z!6v|)KKXgMhJ##-Oa#mgEL!F)7sRM7Qy^b*)Z!K%dTIFX$pF272j6BVaTTgH~ofZT}%@et;Ao-V|fT1Qr`S>obk)* zXe*qEt1@8foLxKf$MA`yjs2IPP7ZY%H({iYOk^9!a<#h zHbW#Fvh?PKh0d<##*TLzYiNcIdP|zNMC!tc(chxUr%c`^k!v~e%Tb?d=*j+aBt=4R z0xZ_B36|7f{X5GF3n3+%4c(zGsdxSCVh3IM*zEhZY-fngpV7RP^SQMncaYFLJ zj3o}1VtDIv)z_+C*Jo}NE`ias9 z=ZaNJV>vToVD{7oB=}6eKMhjz`|vTQV8?2cduz{>{A$s{Kbg>4u3ZI^ zyzsg`a_8aKDa)Ka(rY*6p3!4RpOgTqXb7=%zo-LjLc0JvoU#)* z@^fzTn#dDV040an)QhDQdrM|wShAWyX~2Dw#^WL3i@#uVTcLJ70_zWp49*-N$Vx6+ z{?*JUvN$;|N$|_@aLW9fa`eDqW`wk`3)DRO& ziTqdjceuTG#n`t?vdZG=pvKl4eu!PDrQxy)NzO4sQnMg;^Y)t68FE+PLL($gRd%0c zIryD(qaw#1rN?CduA{;%aSxAYViPsh)?>@RizUYk{%rbO@m*fj zb9tGx@`1=m$jhoA3E1Sdrh{7Q@7p94jbMQxM-B43)L)vDaiXhax~jCx`Dq66C#^p27=b0RBM{ z(~oo2*|)-NUEu{cgK`aiV=Z(RFrLef3)S?_{HBzp0d$~~4w|vts90~2SicdsQzP_u zfm)qKM2nR;mAk^tvFaVcuzdE5L(tXX#^mxSK>wSDzFVi44kVar-pLJpX8m*PI%O@B z``Mu06t4xnDNMcG(Si^UfoCl%spz+B0B7Q&eed&E-kVEgHyhvCs;S&Qy;Y13wlX;Jv7(ry})Rf8PCJf?Y7j)Q4FmgNM?EhptBhA@C+Llo=D|3TVcxUca5`|6jo zpMx!zRrecOPEpz;Pq@Pq0V}arwnfS2&FRsF+NU|nm29gdQgW~_qg}zEUhabFF(eG# zlW~z2AbDlWcc&5Uh{Z;LP^8s&C;&N$;ffJ4X#TEHDQb47B5raNi-q>#W(!*RGS1th zA!D3m&h5n7^vgxcyb{R%`HFJ+f>)2oB3ds0*m>i~pTHcJrLrUVO2l&|JVkt?-uCCA z-8}Ssrw#}S8xaQoJ zi<_aYZTmKFtgD-Yn){sedotfQ+)H5i$3pl1W*)L4`{emOy&Yk3rBkGhxaGw6dwJUa z^sBI$E^B0#J7|3Ejukw<$_ypaK+32x;8PbveptGi;CkbQrf*wQ!zNfAK58G{%{ukD zZoN&3(#~#BK)Orwi-(*hCnOZ12MOA*@>1>7VF`*c$qSxY@YXZYLRROT6+k}2v95;2 zb=!ey+s$|2$xi<5E+8nET_JoF$q-7hrkP!rpIXTJ8}eQJ;E(g%)5?>0fR>;4>8^`m zA7<3Bs>SU>t_iKn&z8UvN?zr+F}J9<1~;WsTY1_d0(e_&`abXR1dTO+N&TW^eaqmv z*ULLaSzz8n^(;f0*uEd0qYv=hdEie2oEPZ#^Zph!L&NG`ti#N$##Jga@_L1fLGYT5@I0GR;tIlV_ zAj$nq&>=%_l(2iU1%HsEV(o@d0J^p#0eO2ZjfqgPahe-!zCLC;TT6@$BL2aGGa7%dE}(?qH90c8126KS7z) znJg6E`SsDTo;OT z!Gp%$7U&&`$(9ZdmO0kNt-k#i>XUio=PmaZSM(+j`tm{xqeJg?WpOA~^89Rfo4eFb z__Rz{%5lw7sQuc>(7sgo9BG82Bk z*7by&msdR7{XRf`J+6!*Dnrs;K1m=8?g?F?qO zjogpp-?FwbFq3b|-p-uP+nQBe6tw5`RQW`CVGn87Sq223h;tQ&HvxjGKp^w!o2Qvg zu@~f^ow@M?{)L;ZWY1pZ&?W?h*@2wUzs-W#ZDjYeG@TP*GFl)*n?o$*M4$yTJW&MR zlCLAtw@>nJ#r)#)Dv@8P#1z-8RIkS?uN8zx&{oJ{eH^^6Lyyq4M^GP@9m;ZK<$IFW18wSXC=G5aCW7DKi+sb2iz={;K;gMsjQnHqusk=rLZI7WK)p* zMAB*Eh_s4E>(SrqIbWP=tmvVukWZFwSEj98k9)= zWwDt0f0e8Im-~otY{`}CkCL3XxiRc1{%Xf*YUiFQZ;L7-D>MODkDsp^+^V`cFU|3N z<$$B5KxakV%x1`S~bA-=CI5gbG1TWB7smI;fbpgBrF zi53?@zEXWTJn6Ut4dS;d3Y=h?VvVc(Tgq_D5SH%h$?uJceL)P0zLYYZu|rKa8&83` z8*B|7Rj@XywVPM+98@7;Hx6<}3*f{)H@f0w(CHd`t5Pqp@;4y;)&s>t#}t}HmN|_} zWH$@`Fofw51vNOD*6Xi~;Bznkr>Gj4@BqbJeYjnvqd#2R>9H7Sp*Qt1V7Pn!!CW5z zK>g)>d`zDhw^q~_F@3U%k+paFxaSv?u%KXYjOAlI8PL)yvU8{slDR7!gvvw2*jyML zDVc8ZJBd*@p9Z(pv62cw2`xUy_cH1;VzK>qS}y-9;t+thnC2&wJ%9AX$Iqo+ive6o zl{yzMciQlP*;Z>n{9W{=L|UyF2~))4%G2!T4+vroR41iQA%7cke!yv^<~^exf6IqP zf{bpSSR}7@qJ~b{oIFTC_CN7mp`jATSYu2s>c!wz3ZFAyirxEplU6 zYP*IuAfIYrJ2h2aGEc)ZCF`~z^#?t7@!Wz{Oxu&&r9($`%d>XA#a7V%DF!i zNSkOtH=A|8n6~)LP85z?T^m#gJ`G_J4sl-4*MVE8&P4lzVeG*#Op3MV<=|RF&bXqH z;6OPu0~0fLPw)9l76adHn1@YxJ@jTf3)tbLQsw%#_+o&mO8WmUC(!#kCmkmXhtCG7 z;@#oz)dTMl^u5Q?GG1f#8v3J(Mh~9CJ~D$gKSu|0*}#L`OKxFdEd^+B?gED=yL%$Z zZ_lX=hD=c1i?dU2Z+-~4TF@_XKR^GT6`C5HXmCa-0$oI`ZHPt;pM>+rClr$t`G6AH zg{PIXSQnpDN6q%*YoZ`ZV-OH@J#3Ax{11nwP(Mh$RmsoU+SkWIVpQ(;SYrZ%FA~9# z56F9=SLZCntFTvNt18Y+GLIKO#0u~L{|t2%i_3VRa<6tF86=V`x?I8fCZ+BYQziq* z{2b~2Lrocv-aCQvs5Po;HL5|}&5nY7Nw&=}JO|{P_0NBhmE!I!W%-7xH6}{z9`hal zD6P~x9IveOdVAN@?*qSJKlgyC=QO<`?=8aC+x|t5=ho<_KerQx6w9BaZ;JK&IS4X< zkZlDx`AwTjKOS-{GMCxF1DpHS9!#yNSvmMl+D9n$%%L4n zm%M$u^0VJA!54%)e)19>%U@ZIaKw}^MQ+aqiIE;PBu4QcEW^y(v+&BzH-S(bpr0r^ycIXw#7Y8LW{aZ2_}lnu!i1 z{6iH1|HhVAe0X8y zh9L(q0f3t8pDJIHf7&$K6lHLpIPY{G4B^^UxH>^z{lYxGaLw!U)lIsQ1S}eZa;IkB zBpv;_b<1ayqWq_Qt`fqo=9_Fm5&QC)Jaa=)6Q5n!uHn&^>tS1@V8)|V%-j}_7oPVs z)bCwCaq_ijF?qPvd>yO#);}INv^Mj{q70_~o+rdl{g5e$kIwdWyAE}b*%u)OIh$O* zQ|cCzf`~&^n^=GJG<$N$FPkAcgFcFq^3w^UMc9$kN0YJ0O!*@gY%0P){{e8X@+o=C zv-QR148H`mV(=h>%FNes_SRb-j%z&J=76i}WWuTpk3yiq#~!X2Ie0W1k}x#Z(IfQ& zTByZ-Vb+IJtNxxk5XmiG_2TEzXue?(^458{rfoK1!*b{~EOF=v(8%PpB41H{k}(JQ zS+YJ-YC88^ZPVB)q`jnapUoutJ%|EYFqF5LAbV4a3Fuv$^{T>(MVD~M@gn?uXM1-l zq<#Mx2lhMQ&=6Z1TrS+V)ZLy4^+M%A^uk2ZifAmDB?zYc*)rjM zI`GBc35@utW=i9P8v(s{AuMZNPB)T~-nmXe6wD*1s3)>iF`;N1AAipY{35cqnYJnw zyqCSRr*gc0oc0%j(y!I`vMniY1PXUoJoK|ZL+3falDZLZ(b@RZ=z;4l~Ccm zFTVya-Y??wvNq|eDYy2JIM#l6o@0}%j^xVAi?BNT3Z!xldlBo*)tMRF%&y<0{urW% zk_l4nHf*7>9lL$}iy^PMcFLG{lR`Z=4atl@^VMQfRW^MEaCG1Gi%n9KBPZ7C$0<$L ze=Ga8XAfaFFrEF&MThUg6vezokr%KHle($a(j@oYt_9GPJG7oC_R$$^iPRCbtc$fT z4m!|6ugyu{K$G_@@(_E692|V#*F6*SOBvwUVOJhbyd!_|g)0zB9jZ3t)V`e}AZY;U zxUFHCk|y$R&}Kfnt|&0KtPc#{?x%e_4v7uTJ_Vv~$i463YUg(Pa>~@W*%^pE4fKg{ zCb%_A5xI~0!oBkOV0^3nayn|M>F!$E{O9pLiadpI=Pds|tM|1Ar(YL0e_xI;pTXkw z3=EZCgRSaQ>)y1Ai(8H>O_i-j7v5sn2@Up5QmMd4yN84Pdao`(vpM9&F--0UeUovK!_mzUn&$}~|VU~u9ngs=0Lc;;D*CV&rcfN`7 zc}1UVs+O~rDSI2Qm!f>mN*<)cvJ#y^5dnp92UYYv#g z++J<0gTjyUbPhH4f4S z6LPXvsN2=wS@1U;Fyz0hLp+#=z6=?+{Ti-Gg2^ti$~$j-uOXPiV&UEOFNe;IbOu*< z9uej?9R%8at)?GQ37>TAwdaJ}uvo)L6BCafHpt1&94}ZCK}QC5y%X{%ZE|X(Z)_Y_ zr=xPP3yxOjNB6xkqwC3`OFDFSh33c2sBTBGShXE}WY$v@I?h~4y)_x%qP()5c}%U^ zpjc&;$L(J5KT3|8O|gz}o;`mw)M@SJF`#3Mn(pL(y83ir*=0MYxPtap?N+`?X%BkK6eDF`3| zp|{*7S+*xE*q<%5UtXP8F)%{-LifRmu_R{LDg5r(7=JtSJtP5}ZrKk{MEdzU9>`e| z1%BR;N!oxNDBov+j2y8CZ(XfwBle&OfR6-+b){yQchejDLDIjSuKpeBTWz<{2*g!m zf5?sZULDALmbk6gi(?{)$ev$@EsiCTHVM2MXnj#8Lf$qj{38m_BbZ>9Q{kmP*)U^6 z*3PIHJYDi?oHOuSdndyI z`s!)ey0|zAl2AWgOJLD;YMw-pq#O(T^pkj2F&ud zqN3@Z6?;~19NiCj(pET~eWwcjMqUqpeF{Unoc9uU7cT%vuEfR5@C8t)mZ3|vs+b$? zOI3!W33~F)m*!@*UmjZ$y32 zohv7eTkn$^#Hq*Kdr?izk^{RO&#(T14gNb#q_{x;rrCSWn_T-B8noITp|+rT0FKy% zixI$#rkkDL^{sU@nz{L*Jw+p`Y6+x})ASK&plz;uv9{U@OH5H`P>}O%k651$T|=)A z)@Ja0{U?VDIPl(6K=}y+4)sP64+U|`q;p}%HviU zT_uzOG$56hbq1rDZTG+?i>!x&z0^ZWx^U>|)Upum_L37639Ym_lb*K>=M!zwG&=OMe>L>!On&MKq#i&fS7n-@=!2i_c1bhB#(F>D2SHBZ!Aj;%U~9OC{!dU-J)HHIjSIaG!W zmW7NCm0PkD3nir$`<~35-+}7L|8$bYzqF=ke&SW~$XDYEqW8md>ZSLeCCs13o8XrDR!9+&YA*7S4&dg5gc2`^T zpq7kB{jnP(E+M?0ILkVUJDAPEXyOU=r-^Qsc8C!3pGv8@feKy%Tqqz z9faTy`k@oKIht?ji(S%4gTtq2Ck||vyaj9z05qwx@#O-GM!@KO?bhqw=1Hwm(rI`2 zX@-VyamlBwQn;J3-s_%1H2(Jm(7c>?`{05{>9=3@NbqpRAI0pfzFaT43b_*v74`D! zm}LdN3xP^4G7W#47|0MTFQcDpaB4fln6i2-Jo}B2vB9n^meMjTB6(UF6TBYD_QAuE zdM7jWwEWiM6M=G2J(~}U?}b8TcvnOKS`E0GkUyEZdb}mhW;pY5{5GXIx6V>1WNR(T zxTv`XW_-x2EFU+vUZHkLoF0%&^LWEGe_p+JP;ttR3EjTb3vgSs6HX)%>9p*;FIkjR6?*##u$h75jyKY7G>9Dkl3z(HJQ10=lO8Gt zCszCLx5m~;aV(DMBVSy-{ZNvwMiPA!e{E|kQIlP5QuEk!Mz#ez6}rG;8>K?+F*8}i zN)-*Hm3$%MnN(|&mP|wHvvKdai)kT>)F(3$MY2b;mV=#brD3BP*fi_qrKg3?3nql# zsG9P)SVmba&U~U|Ao!XhNP32N)^U0rsiM9+*Xnb$)(O`P`Ej^M;)FK*huEyM4HIGt zFsj);Q@aZy3hw`mRKNFr;=hfF_%eUs*>=XmpcW0d+cztn?hcK1*8Jz7kfPH2%P1nT z*F8fBlV(jwWXQAhMQLaAn+O_s533=4MB2`P`W*<^J$Jz}_~_92@MjxvP^hiF@)ym_ z#D^)mObK|1U4HP?X=w;<0)xQ#-;%FrigGXE9sLfk9XP!v&kU_W9C5cedb6LYL;TKz zwke&SWjivCH{9q=T!WC);+N(t3Y$i6=&k&Nwn?ss<3ZDS%OA(g1uKcGf5ALSyhsw3 zGZ0V3?p48@EdF}u(VH3yA%`wJ+5&!EH|WCMb`f}pq}@kIvFm`M;*cZ9IGf_&=IsgJ zATg}S$v2fl;XF;uf;yJ3C5?IHE)w#ZM|gLCDVe$D#;9{lw)96seg0V^rP$BtWACxj^*vntHJqJ5ni++S|0okv>VwMXz}w2 zVD-Ix4RhM;$+a>H>2yEAF4*NoN|}?gD(Zk$Xcb|MKoI{#&;M;n_L=%yI#=7~_52Y- z+X+Y}4O0stBHE^6Slnw~9UAyzM=1nQ2F+`KkvnD zwsT$9zpJG2JR9Utk(|qUsZu}#Ws=tNr_Ug0=8Zj{^mpXlr{SQ&wR2DJOKc722Hl#5 z<>OXcw-;`zG)3EZEe3V7&r5!I^2Tkt)@(j9zVXp%naaHD4O1iv3E@+MNIBCkdX;9GYnF^2B8g zVHdWCPS2R$jpk=!kU=kQGhCa~lx*XF7?(z21}vh(ct5IcgrXO=ha%cqO65>T=}+}u z^;Nj-Z7robju8y>5Bv<+7y3^s*JL?FfX{eB?FApz{zIwB)n=nf*3EDF^0JMsygpU7 z4*mgZJMme#+i^%vhhsph@qIp*nW#NiRXSjk+>C(oMx^;Bfyr!7L$5%qY$hAu6xE({ zq|slxH?%bEuHOrwdeSHawzXjNh-f}4)Uu(u_qVS>T-Jk>`f}b;DIk?DMBtwV<33-_ zS##}jhK$9t*eJn@R`HFmk+FMph9h-Zd;R+B$Lj8TKeZ-nIhasSG|mG)?m@=OUE5B6 z2xgqx)nl|kb%;Rm>%|wHOOPL8YPyc8)8(w~2a?;+*|s zCEx0aKk)kg6Ds!1?XkDhkkbPB;Am%SV_9VQo?#x0uT~lV@uNOIQivy8sIl+{9WXDL zn=}9ZhF4<4N8z{NJH1+Fev&_e({X*v-*pEWItNprrZh%u3D^ovc@zboNf5{WidSvZI^^sY}q}Ez6SOfo*jMO;Mxwj7gU2&+okZPwTQXtcYea#ruV6`&$bK zr$!vtruSX`rzEZxY?ne4egZq)H~KYObHL0cx9W8D$pmq?+!vln%Ra?_uKM6+>utLY z+~cd_Wc{CO)h0_@YxNT!TNd{_#z?dte6QD)82yG$eJE&s_Flrl`GxUiL}nz}gfg~Z z_FH?(c43`c@OyN}Gu2uhUu=cA98b2sQs2`>M5?C@M@u8r3p2}axGjF(n}E6^Z$Pi# zZZ!PR@g!tqi$oXX;cq{B&HGF5OxhOrj>Y2Hq_+Q~5LUla{T;gcj~QE$F=2}ak)*qI z`is411~I!eVL7lG`DdOn{P=}}RjyMG6tij_Ls0*AVb0rr4f~nl<37={%$CcuEr&ag zv(|hACW7rh&#$^-r?r+{eam>R)&v3cx_52_XIAUY>KBP zns}0k?{mh@I&4lXB7ROuOe!V7m)xAn!Ua@Rx!Akjx*k zuz#Tp0JH$zI&`Qx7J<{oTAhScfBk9kN>}F@PpLSP0Tbid#3;Zea_!IQ& zAHU3#I)2bCA}kEyx=COQs#NZbEvJ;m0)cIcV6J&n40K6A0*eLVI69*H(wHq*P}+gj zm||dT2Qu5AFR$!;-^KZgctWN1^vv9wZ>%$@1!uw=gz0+}X0;~8&P(?FV&9u~UFN%e zd>4W`$nLi9X@2eFjJREbTo6zY7Vp;EE_lP@K`-i?hIg8K*E6fH-~`S%H=2Ilo8xj% zrylbLwY??z^?qUJ`fHVw^RJMk??sFpw?h2o5mc6}UviXEbEoWgXD_j@wHdCZ90i7n z09CgKD4lT(vc0nHurzui;_4u9%*z;YO#8FJ7{5x%?_ zln=bMb?clvfSkHEQ1)rG=}!Hl9*jJb&kLtwm6XX(Y=EsakFtk>9O{1P_dP}gRrO@? z1&-Zr;R~@r#=0UeF14ChWApLf@jpf?1YmN(ziI>J=4D{9VaSL1EU**Lt0PZ<&fMA3 zMg)t^`a`upuRJ=bAHv3)TJzAhWjbYs=8e1O9dE4M>uNM+VoH=bK)E(*BtsH!+f(Hm zQ?q}z0YqU-RrODhZz}P4ooo*3K1!R`Y-%3-qQE|>pD*Da+{_gw^-$VOLT#nDE=Tc( zaDzbeo3(h7^a#tc3{+^3^fK840TwZIdUUy-;hD^E;LX;W*{neqY28NYIB;LY<`Y}Q zi6`B9gysP&3r5=}(@W`(A0}-@cxH#>yTuXL#3)Y0TM~ltr zw+;GBEW+H-&vIVs^q{}#nqTwnBBmhxOFox42{U3`qE2jM51=pl#$0FVV;-_lW1V37 z0Y&u7U7I^-ngWvA>zI(ttwIr7GZrqQ`8if6C?`6J1%&qgEVR_AdYgP8qk415G-l7DiCAHe}kGJ7J$6jCj8DzBCVVPr4?W@Z`MPhRg z?Z{dQSLOgH=96(Fc`Rw~i)a#x^3DqEWrtAxKGzE#KfEZNXzSYQSP7Tli%Zb$SHJ_b z&|xDc6v91fAOa78OSNNG^rlu3o$80*Zbj2U)* zKA!W)81|fO;fs@1WdA&S*HhL1kEXM5Yw~^HKcT1}N<|q+iAV_y3F%T=N=0clU?50$ zmm(qzHUTM#DJjz31F3;X$LJb38b*w54EXK+J&xZ$upQfdKhJ&L*L9w+Q(%kmozdLB zPgA|&&l2 zl#Zc4#QHx+K$Vu-xmo+M&r7Fk8{YUzIT=eNM3ruR%4i@gj zd4{z5&yoMj_^r}gWLKm5nAu0>MR=$F#dncH&^>QRrLuqU<2IRS7i$7N%kC@LoM-~O zpaT8+YI1m-a45LY@EKww!yU)EQPMslMZWt$To){mIqEGYb;8D1Ied=}Gsuij^MU=hiV)$!OX5^I846`| z`jql{n`)+h5i%-U7zU}#tn~o<_YyuEVZpLc)wFrO7K%8L1yA{E=nmmA>G1y_W)@>P4S8>Y^%wx@Hr-~F<&e* z4_)kEUQ}dp%0JDGN|0m&qjMtz4~^MYRv@&^P6Rb;U0)TBJ{z5Le#^!t#}h&STf=S_ zQ2O+gkN*S8hW*SJ!)N;dzoyfIXIsj@V40|i%OC%(a=y|Zlib#;*Cp5okKUA1PV_aU;j{v&e-zSyru^12nkW>J>{ZFj|sBRJfyRYk1{xf}-BQ&*oBb zx)Bhn!gD=%?^p2Ab5u1|r3&e!Cn#Q@xjyLIVZXsSi#O3EtqYgmu{uoSK_y7ru| z6wPN&$fa}+swGaVL5mnAEmF@Z$wh9|vU&{bbKt5km+>WHQxB|A14v2*V;h%8tf@8} zYx>unbAk5`A3@=aP7jG|>pd)p=HtM7fU6bL8iWk%Mx`K9H*gIA7Ji&OSSxKE+IF6# zY+*xBGYs4viqvZnSzg_`MJ+76_37*Xlqf^)dM@hi%JBOBDz&BdFm%pt1O4gI98|Np z$E&MKZimXucV3DsV1K?218upw^NiEd@Tq9YP!%VOG%kg5ZCLAkWs;4%qCoF0s#Qs) zX2~AWH>2}MY9XhvdgqrR_q!^fE2W+s4yj}>jG_A^=Q%pui;PO`Up4+bN*RUsRu?Ij zt8B)Ec8~<_o*&HE>jkdgz6m}NZt~Sw7+c@$jFZJ;9(aypDEt1ngu&xT%{ss#?~$~T zW8~q9m*U!|?{Eido3s_qbUUVR+AwC^2fesQM= zjlwP`NMDx(Dc}3JtiNt{+aZ5oytUMo?jCB|I#WMYmUCupv&n6qaYP9}!RoH;klRC{ zGc(xOZSB%y-Cp65zc?kzf(`b~*k@oWd5)jyz%2Uk^&qP~8p5tegr!~A$2*GMbV_Dh zvuibWg4Uf-p0ENS#Z<7lnnycVF&{$QnNbemTN{Vg2>PEL@T>Z!B#sMINPbSS; z{GIN3LKoF30Xg1+Eu>dIqKZfr8)PtR#n;F>7S z#%7NG}Px8vxU-=2Unu5jJ8{rM zrOJ>Pw_iFF$^NcWJ6Kx!we~O@7X+t{2WwnZb$dFspQ-$-8nJXc@UAzSgZfhSv`A=Y*X7M?D?hiiqZ;Ih3 zC1B;2h|6$d3XJ}i!J-4AxpL$+U); z^M(69c#C#U{}W&KTt%+<%qK=}#?SB@k-yt1cid^sD;oh1Nz+YS5KhN+{KdNXO0)~x z%BRqgs!oV_t2zV+y_^InKLn3sH#vu&kJLRip21RzFX`|vHD0YrY>sj{Pg0$fUceGW zCpT=QK;naQhmy!0iK-nhj2k2j;Ovvts zJU_bNlDAark#1p--C+VIt|R^8G2OOhY?i%P#39cmjwkp^N0%I1HMLIdy`}BxH^eXX zdYR>Al6$`j7~9a=C3JxgOSA*%lW~%>-z+2ki!iD3>x+3ng8k1RTP8IcakO%sz{d0g zWz$w(>)0KITSzWly6J1yj#EyB(i2Wops-(}2HJQiQma z#B<$8th73Z>O`8b6F@VTczD;j?T$nh5(XmNl$enHVXJ;P8=&8LH^P13yc2+Y!A-l2 zR&e{)p|^PULy~P1F9&7?2dzzRblOH8SBufK;Dz)$3{;QjTq zAyClnWQ{2(Vt1#&6a<7b2yyoyeuHYqlmP#(TfrkwcurhMcj5UX!y6vQiX@)%FSQ#U zU0h6@93-+M3*i}}PuV|q5M}Ps!xvHVIq&l$k8C;qxhSFh9;zi4KR$Tsv&NX$v z)K*10lYjh`;qMRV|HCtxqMfzzM|ml&2Od;woP5h#9?L!?n-$=T~m7N=pL?`+la@_&|# zOEEu}ir>FizM*0PgvYlow&mt}>y5IK; zb0{6yycwG1y+_iywSE4hR6#~3M~f@Swf73FyQZ5!-kA|uAB`MFOo!K;H!P3$3bAh$ z_O=RX?9A8Cd9JHBDcS_ZL=Lu^9#0|vH;dh(zei2_0uyhMZy|RY@t_6ImW!E1c>Xt; zJ0O0%h(U+9ObenV*iX8fkJT%19f3$s_5_I3m@>CYCWY8)D*PX=*D~~jr+m(`>fDGI z{{oWh5%c;>nbjD=E!9Gp`=(>-s%gZ~6C^XkW{n(ZwzuqJD%xG#q&V%_7zQI4LK!1` z)utH8WeA$<)WZiv~)Ip!=nG&prAloJNUP-u0#Y*El_o%w6Ea{f=RGu=SGZ>Tr z)Suwke!_YDxd&PF(h+id=*l?-bLbtUl_pMe^BPB*31Ic>Z{7+<4rdl=Ta75Aq(Pyg zW>m;Mhrl(JpnEE9cKd#TGXm&Pl`r6X<_zCmKZsniVjU_R+C({66DI?v5KES|DcV;X zt3I+RNBB>M@1Hi;H{o+N)WW{L;|Z&>+L@~%%+DHK3WcTEj6}N`tGb{ZN0$I*XCD!p zj{xWO%RN}~#HIXVM__hUX|wmv1MLq2!GGz$f9SVQOjBKJCI~u;t~2rV0&aV~a{UVU zbjBCKS$qdIVrjNxsGBjQlLx$q5dvIfS=KIfb5w#Cy&z`vXnCLgl&&XBQWU<&V0|b> z)HNa%5xid1XPCHo;s|I2MTB^@9C)D>0%l}3O$;rC<_O0t?U!fm+om}u{XK7@;G(M?O=7%`<-QiR^*WR-CP#l%+5>tBHqV zr*^T9_{OrjYY`jFts0eUR{CO_8wYOIHAdMdE1}uD*slosah4 zwW4y*UbnU(dG6rtki{l5Hs? ztJHy;h!M?ut5Ms(br6UDLCNG)DJzyk$1?I`qO&#-B>@cX94Zr(>bs;OPNo;dSosz|<(Bz5XYS*1vB4jp+cuILevBMJEq&M%U@m%E6WY_Lfj=$4^vgXSZ@Z}rUr`G`- zN-~~(dNDg9XAjM$i9uU(LCw+N|Z`AKVX!(WByIlWILWKV0`I z+n-;K4!BlW!B&zc`)3hle(;SpMq&qSNzkWO!2(dzZu#o;fpOI z&HQ(hMF2bvbhoCB?cp!A1b;w|-SEP2s<6j;TbcL17o#gP$c54~4V>5ZXY*_4P5QgX zWt^HYdR<%4ZzEnJA}kgHP5INTD=S19W1i&J98l9=5S)8M0wR-1T z8H`1b;g*!T^>g>Xkzydi6korzaH=ZOgt^X^^)~H}3~I zN%X^tD0-0tIdFOZu}!c84sjJCGaG9KFC}(xeWwc>YH@M>*%Agc@6iZ4rT{Ud#nF#K z%>QIxG`ubkoSSNR)hg;bj{X@^zAr!%GwX;5J=ATbjr<)$ZOFk0VhH?t_%I{Oa!7z< z`{$<0^>fPN&AA_+NDcYXQ{Ik%O{C!r8mig;py2%&bFcUIi)-;ah+sorLJdr^aH z%m#BYm&#Rl=pv@SYM6$ZHtmSINwokey$4-Dz?B0#ekU}ne}g$$VR8QN6*xUa?21z- zuyvMgr<}wUihG#6{t}L=_0^D{OiZ(0rwr8^qGT?Jh|8cL-ut_?Yq`^8A6gh@L-0#s3=cv_iCy<}q;l{)9+A}Hs8`Im z3GjX1@Rzk}^`r1*pZS%_Cqj8*taPeHkhrJ+*KUPL(nu#Tka&$HPRH-Rz6&exnh@z+7fFxl7H0c|Ew1h=3 zyYa;4KY!Y+Oolw!2M6AUIz8-(ifsVitBv^n{%kA_>5CVPI23feq^y+rECZ!==djk= zx|3KEFSa6dwkCmO_@tn#;@~%&$0^Yl()Nh{8X_82&1QoQXjA)g6^_E+ehPf+>JKtJ zFAQI&_qL9ele@37SPfMU$!f`8)qd$AXL)DY@X8slr&m#A4=YmUO6yW#Kc~e;#^r6! z3$UhTSYCHlW6h|C-eq05E8vX$r$X+3U}@1aZm$yw9u{m*xYUg~ZT$U!CdGWE;r7;p zQ}M&2v+21z%12M7*Iy2yg_D(1A+K&UV~c?nrFsAbC28Oqm`Xky#71Ws>3EbqWC<8=Z)H4Xa}xb1dM}Tku=Ydq?taQ0__oMWdlL zJlgd}2`4)kreJ3s{JlgpXfp4wFxsfhpy=Pe1fG#cU2ze(%cYHDqG}p6KiSf#{{FU> z6{K{STKXSegZUfc4-FOdg5OrvQ*Dc^&8fEcd+UhylPOD{(4)+yP&?Xv5w*?At=jO% zCPCH1Y?e_GVWpY)0G|K2d-ey>6W)|NA-DJ||x%1bC4l{^%F zHn#*iJ2BkVpcC~QU87Y>BER6u`lFK8ih}<0d)8%?tw1h1? zy1k$|w<3NQXczj1H)nk8nR``B-1z!*69i1XY`W4@L52e2NRZNv_mp98aEiaboIj{GbNEp)haQWf(Fe7+GcoX2Pz zY@go+2{RA%HZslVVW1c@e^Og3iE|9F=4}a{KaiOktzi4bpoPgf$U$RR4wqXwn}h8g zeCCK|a}eAd{*>)F+k(M=SNvQ72G*NRZlL%O&ev61R5nD1SQCee`Nm+j4f~TZ#^zKT zH{$-$JfRGZlA)4FLo5zTofCjB^9b9s4?1CTlKD?CulS)YtX|A3xh7nNn{{B{iQ!;TK!cNo=B}(MSic%$Zzy zm!dY26RoNBpcx+j!ZlOUv-JmycbI+X7U%n_#-xz{8Uh}@~_4AIZOu`j_%-}&<2 zD#8G8iGPNvkzEYTnJbgT| z@BX%*u1tRk;#jW|t#kNNhT2{Qy0|(1C!nIl6#p$*T+S9Y=dRFEk8y@fc6mgc&GB6I z2r*>La*(9(@ARch=0--PD;fV8SWr3jK;*N3KKn#?^ZVn|7={0yyYmUdLY`UOLlLjX zCe}^98yz>ZoBwqFCE~Pg($3uC_avqba^twhWX^t_S_eC52gMk$ScfW%z6U>^2jk|T6Ohl5%2@+ zjd*z3UyzpNCezhj7NbuBqz7P)-o7i_aWOA=fdwmKQ2U;B5fm5JxxMU`?9aZ`SrDmB zO#i@K2j&NwHHC$=JpQQN@{u2F&HOyq*wnn~aUy^?p={u1rQ&<^6O+8+fmAq|~>ZC+e-u6d`g+bcEpSF14E|!Jyhf+_L3d@c0)Jt$) zR)}4o^TpI`y({WkJ880lb=Ykx60@0=YvMS5e{uDyld0bvsX3lTA^Iwns_D-srPriP z{B<0A!G7rhi$T~}Kf}v+aVcSj)!*!0Y(8xch#Vxc${qBQ6gB_pWJd5U%=%v5H@Y_` zUTyO{27SZ8uYV$xZrj()i-Oev91Xi2n(keH%wa11t`ZO2q+JSEilKdL<)omL-W1js& zGJ7YFKg=P5U3OGTV)R?{)uf9T!@oqr2GZZAKjUyVedEcgP9gQO0=PwNS_V3E&U1$= z&a9{o$ttL;685zFvgRo&Tjn$4lJQt$%6{J=aB`y%$GV118z3!*&ATRk{ecQHwWBC= zs^wKg<6}e5YgD>kcJT+8k0gXI>%nK$q~sjX=yahFfJhitaqNniN$}QP=sYTI9q$jd zU$kP9*c>LaGFz{z=lw0LZs7k$c|lta?co1#(+-_Q2t~kt$EeqZ#Vv$&m%QzQ4g4Qm z!G$_;5xs~tyLg_a5}VT^ zD@2w9!66#zBDl|JCicItJ?{niQ%4ftWUZy`c28;szpUO?{ilxe8}P5r7*93Oe`QL3 zm6_HA)NiVEyj-XQp9Jw-X+KDw+nyO{xoZF7%(`hq<@7w)WawaQ)1jld+^UvU1>iUmFt1*F4nlva$k}%bw0<;9xYm~c>TLk=%p(uWFoT7rVV69^{B5=o7UhDVhq@jA6^R2fJ zZ$k+*h~Etpn0!d*;1|v~GVz8kui0}1pJ5+?ka4uc@I8L3n(!NT`Y`PvOhKE$_*~-4 zCW}F%iDI;$iM-+dtfpti{LIILCW9S0uTrjdCUD#|RUt)^*e`meuRb(Uc`}b1$46<< zfe6agi{%Ftxa(JnU}NR-zbK7Ym&D-+5G!?u-lrR?0J@3a$zM)5lqTP#D*5(*Ho3kB zf1I=b4!P6){8mmwakJ+ykr!D_SGi`R?>}!){cer`o zTyL}p=`-$?mvC|QTi5ch*QbG%*Gu}CL>=&ob8anRmy{vwoFMen-}8M%SibDh88W(Z z3GlTcv3KLv)LA0&3r-X2mefk9V#;14ew9bgn1rEOso2opy>P>6>N=d4)AnRDhLq@5 z65qKy7)-cZ?WFk7jOJEjXQc5W9M zek}HFZ7uIGH9j!uO?GH}YZ}KR_^2YCqCNU3pa4C$Aq>am0p_6Fxc!O8kXb`SgJQ~R z_7rDH>+g)G6^@ZuhWRL|>A~kHBvs|+#7}-Oh9dlPnKaFYU5%u)U!g97@i{|f?>R*? zw~SjBWqkGPln2_(ZcW!#z!Fk->R=+ck8j-T33eS#*4K}o3GQ9D$w5=}2lh!u*SxhO zxfw^iSa*A57;(yr+ui#T|6%mj-f<_NX-WYQ$7hFW?N(d+$TN5IE0INP#roEG+|$hC zByI4IL?vrK@69~@SJ|zp`Ff#~DNydCdlc5>A-B4`09mXdc~1PV%6l<@X`1MDQNVTA zAInKsX}t5&hOgWfvH>1!8TqWrw^g$ zZf8?=O>YqNp^A7`05O%rI!wCW`0RNQMfg^=w_a0S#9PvQ_|wR5xM)Wfj*~Mg+HrU= zgpSTrt*#;zDS^m&X@F>NoDn%z9K#iRD3g5ZrBhM)M|p8vC=D{!`xZ#v6nO~8RsU#h zK9J?gx;e${OqskVIO z1;6gtd@x6b#?fEV;o+qGme;8f5BVrCTvt&(+QorioK;m!u!I|`vARml(it&B*;KXb zj;d!f>>lTz_IGu!$@|(1C2JTnF*4{%SCl+XjgV|kyE`?W8((oISzQIn>o*h|J`NNO zML5ZF01RF64~TVFatr{rR$r=wI?j58(v0rRF3{FXzu6kw_ep89bH(RhEoE*QiD_5< zR)KHR7U3RQ;~U1L5vB$4L%WP;Q2HP(C2})l^^FTk!09Uq2#W$Dk zdi;S7lSdm$jl||mK&{s*T%mJ)EA$m|@kjjH@OR^ErKJv%iG>PHc6>nydegjE#QF$X zfUA?FAWixdxFyAT)_fr7I0^?3Q24Kxz9*fk?GclvDIpw>9GiBuKnaVTllB@|xm-q3 zs^y}MmyWL@-eOLSldEh;-G!?bGi|1HHcoZ@W?nBqgrGc|zo6h`3Ku#FS8JVm>L%_o zAVG)(qgJ(9^D>|F{flei5=`R>JHE9~^%^crF!%KZK*`E&w6 zh371v$npoua}@hFHY^5jN3~yUw};zh`{G!OuX>!M8FF3=_S?DZ1f&FXJmvcif$T`| z%6AHwua7JnQ|NF>j+2%YA8gM45`}#@s@Dl?*bcL}&&rk(;!{z>kD0pxyP*QOGSY+D zrkcMvgM!JcJ1bo=n%1p1Bl~D*{4oN`8&~u4n`cF{2r2+AY1zqMc zM+N(00MFN-jFR>=cegwefZaEFvL6587vV;BKpuLXn znQlfMR-LpX1P|Rhc!)XCi5ZSg&cZr4c*tUSzWMK5^bmH&maMm6yN&Nob{fsca>x`0 zN?63qVhPLQ2es^|Cu1v98wa3t-@o)!rg=O50on#0T0H8sdfE^X)siqQWj4F9f3dgE zJ=^c#M*aQC&5bKx{0O_Bc+sCc4tcfbIk%t_QxYM&Y^%ADkI0`FLKY=rqo=$xpVQov zF@Z=omTsTShej8^_gP$J1eVGks)ll`x2$zTeF^^!o0gwCVm?IbB9ojpY$XTXI@&Kz zDu(x#+QIjOGl~z^s$)eR+$O?40OJE+PGO?o3z*~hwHGi-sm__-qz!0vL&>x1jpGZr6G!NIJf(IdyMK;y@Em|LVlvovG%ZG2Ee&r@AaT z6(I=75`}buhrF08)LGLn86J9;PN(u(R_Dt<&x5!oy!}_ka~dA3+U9@PyhmNOMV8(M z{i`m=?`O}0%r}DqK9wr*_7h&MT9#Su=>(&o0&q3)+2N7hEZ)fMA4B45++*C;;r*S7rKDhapXammN0Y#FSBO0#+=!r5pQVo?OC2rl}ZGPH3W9Go!8#$W@N^~k*D z2=RWHNktH~jgaupmsgv~>%QIuUT$xhat7~d>?X}ORQ!@2I5*;-;Fc8?=Y4*Cgs9{8 zm)5$TdS9hFyo;AHev&s-Kh~qPoafqcBF!+7f9_TuXRMK>jDxJBUZ9m==;>C6uV_RH zY`xI*+E$vd*cHzei^FX%VF9RmsWn+XL#_Hv=jRIgu$56kE%%~xijSaVFX0*m*Rfb8 zjwINfZh!Y3ecwx`FjCEDVYc&}&cG|))mjIr(sN`H42w#2Yhag9cOz!d%i2384<}Ra zp51e)GefOAVOLCd%|rxnT$#yD^M23Guu*UhRDrl6wwt102S6>>O~fTql(j3Sr$YD>AV zz25E*h1GSD!v&^vl_m&U2i*&TT0(f>T;uainR6gvRe9BeG5>wpcA~)^`tIOB?fvia z-)6lFaVFvna_fSCAD_s-U%8{JE$eT}}^1CHYQhu~r?}Nhrg%Ri6XK z7c}jg)pFJ+-;W|1Vo0J*cD~l5{PEjrMTWZq)V2JVi>H+Ej=AORfW=MsyL6~e)~q)^ zPF|sDAL*<69rej5(Je4{WxTM%ry25AB^RmgP3kP6+ppao))aS(D3|m2z=hW|@UnvW zgN8u5+{D_R?Gi4*h}EDn%q!GSBk~iXrP_=VkRM1%mD6QKZ;r_;n3ql#CL zXwvg(GPTz{)e%nb@mMeotyz=nVi2!q9ZeM3l z{&U`N=q~HdmnHQ+ON`s^1{>y4v@uTNYlAOSW7-AHLBUB3lmW5kqVo1jUZP7}fnKKt z#h3LOyqSF3?=9m)=!3d7@R_^YF8km6&dk=0v)`lp9wCjBBIKn4l-5zfgl!f@&G=G0fO~KkXe_+!uwt+);2wQ3gO@Z@< zz|0sax#QI>*WsC&%2}4KVcX5eiQzhiDGKcC?VQmTe9;n+#5( zz+J~aBrN)s(x%c2()*O{s(D?SaPrvC^;_;t^oTLR7PZoyBQpw`d27VM5K*0yd91ik zbVP*ttDat(E9^&E(1sP~FS`iy=*@y2@nkNH_o;DO)Q9gk*f1UIb*?JOo((isfPF=s9U!xG}EX{X5MK)tJp|5!|FO zJ7g=f=*>QI0s0d)7odPO@^&7T&pLWw*qkWNmF7aj8FcUjhb8C6s}scfmew`Coi5G1dHbmy~DD2SMZbZ#h<1G)&DQ~q4zGu`Gs;G*3l%eYvmCGby^ z4wfdH-rw~P^5Bs=Zn=w8h)HOj_76$&0>)Mx ztIPPh>ok2oKrH+IX{tF@jhNxCUct$6o!Adc_>AbyWZ$#Yv!eX!#?GtNd&9n&l$J$W0*IC+%tIw4PVf>CLoVqs(Xoy&)p}HZOl2qCa_jmSs z3HLXVJ%8m77l$FAawgo^2Fo3^a{2vp=b2ra$2Cm1=!Pk;x30mU(>z>!oeuzF=DOFA zkH=o_Dja-lDK+-PQBF17pgIkr`sNqk^6=+Uv|}l5;nt24YRuTxXWa3gh0T0-qg?NQ zCa7dE$ZN?gzoWiyt-l}6+pXdzaEly~ZW@D2rBc3sQ+cggcThv!?byNe;;s~1(Ovqw zW4>Wr?(Y}#i&wE*;|@=bQ{Luya|Cr?ZD2(^LXztoBD3Ja@@<^Va|b?>SovL?hRQCd zQMhmDjUw<_*kJ|uTpsZ_@t>IkbtL3t0^~)VQ~wjK%Xox z*vsa0`qfeRno)AXT(OZAT7YmDgv>@mT#VKfre9`S_@CYZa=-@r`6`A@x^pbg1WwQA z@$2aq6MGRWuZwsLDZbu^`<4vvS)P&~^x<+r#mbru_Txmoxh0|nhK4E|toJT9nwk|i ztV-I*yB0ef=X;uLwws2sxc!3T+O>R=N#1x|MOBlnyB3}AVNrw1zwQ`8WT1^61c(~m zgydB`%S_xmR`JS^>^~ZajT|^z{RGYsC>Iypt@tHsQwc^JH7gk zd3fDsC*m`N?)7!bWN&+qZn=qylGaoKJAO|C3b+8WYbEIOhx? z^?;KjcDx#xE>F=C{Sv6&svq|h+z-p9y`SLqG$ox~OBP}Txmj5=2{pYYFlb!)y^XaE=?3eXl&aim?e@_&w(y?FQbyMxt)or{-`qki}}?&7$MS=Bzg zAj;Cu_Xb!{bn=$^oL3SyFeznALV@2BdWdeMs&tAOlv6COYlMwY_wOFhU7jyphV4^m z%hX22&3)rRjFk@BoIo6xZ+B|Mm)F1!+eMa|*-q&7VqtOOy@Lvel zGqq-ZkA|C(S^cV+7kl@4s%hy$xYL}rvh;ENsRu(bMTBUdrof3#tyu}5u{{sN7TMpa zcs~QMOI4lRsW8_hkVP!R8TUq;Lg}~BDA~&-)KGOaebA)lmj2U?_$D!22$7je!c_Q% z-amS#R3%rTf%W|yBR z4~jYzQ7Q?8XQ|MtjBPY#`Z=~sJOW>XSZLGOA{70*Qeg0@+cZ-F<HfktiV26YBfI#uUI$+-#nwgk_g zw=Q6pgD2_gCmyAUx)a+C!k4VZ8KHyj{eh^*6JvKlN?3Yv{Zeu9=U{yRcC%%R-GiYq zTcB(H*7qZg*PFA14jGC^zS2)Sl3-q-R|vV|0yOM@G0?xRE;*_HY$OFSQRF^``%nA= zJ;lIP_x9*?n6aCzH0gwzmm@#UHmvej>?Ei&?-1?~x9%zPY^mR4*w))(nSIf>3@3$=GE+709;E&PhLi$T)GfNlzTkeddzM z@)7yi!q4O0g}}PA7{vn(`&L!K_OW2F@BwnRKq1B_XU-2f$D(Sz>|ep8kA3gEOWG-! z_!sf(4L!A0-}dBtC800$;h|mPcTY?&Ac|W}R<)2yS{_7h#+SZ z(Nf>Tf~+NTj3H8Xb{zZipjc*;z|o0&rxVUTJ8DwD(Q9C7`lu{sLJ4C#A!6HdY0HU% zH$gFTXx7@RAQja}9q_pE)u8NTY@j?B>y@SjaKx>9V=c8WpWsZ}E7>=bcvh55imXA^ zD}krG%{I?T%g-en7PO5f_iMuTs#E9dY|vjCQUfh3eNNosjeIGW4~iLc9e6*xu~8@z z=EnSn4QI!3aR-F3?swj{;;d_a(`al-^>gd%d!1$8=R-!QGs;FA9F90;ugqG*06KX; zWUi`vp{JdGPfgD~9!3{z~;9VNHJY)SEOH@0#ypVN}mg zUB5VW%}uY^Wq@az2xt!4J4NIsrrNbt5$?J?&{ukGMiV^ntQy0s-P^ksO&@v@@%LE= zMF=d9NXR;M@JI=A8zl>gr zqx~)An*!xCpENfS?2odxzs-+aTFj?gElkYA``3j1v0%B z`_EQvh5NQ%sj1*{HP*sv<{8}Hjh+e;U;_m)aRjOFroZyHpO~>71F$jw>SJa6mvz&8 zZ{T5!vgYC}si8j5&e6vWT1q&OosBE=LSfJyC5Vl0agHBnfw%QGxsJ ze(|x3ewJ91({EVp`W?UL@}m+-Ln)_a;J?3}1txxaj$)>#hiokZZG`1p07>=3O*>Xc z&GlC!U8wIxJuEE<6g5NunXD=nPy9hRDR>6r z%O0qk^SM_V`rOD3^|UAZIK?JHa`wg!*V!bX!TKi7h0#HN1)PB5QfDn?0Zv!*~ksSe>sDjN?Z(?>(cZ3iEl~-`r$o zB)a_XGI!H!TFBxdQk}xJbd<)2-D#bofG=ygwvRy_o4KbK0m!3l_XFpf+XME@jbn7z z7KD33eo9ZR70~(o3|tttz#Ot+^Ebr{JUI0PL9#@$J-G7pvHBU5b*?S!<++vKeh*D`P789H1&6KxX zeF^nfTwQnGbm}z9^!h_*lqqoW?YPUa^$4mOLA^>ixY6#^Tkd2xW@b_*cQJBovj;Zwg!xe85$zaVVFS=mN1>FTIh&wvW3inW)1#z_`Gi zWTidbn02%T)w13P@d)er7btO9A9UC1=M%PLk|)H$c(s4?ZBPt|s*g@0QTKz39=(jC zG3lPCO;#$*(>n7i6*BUloUYNiWah65rqr#1-8Aw)0>q9zFZrkqHT`v>JKPkjzx4}NLL5ic{V zZ}>Sjp+3Cdo;tFJYR}GQtm_#SNAh(sx}RDA#XGJ8z$cpZ@AMXL?9d|Pjwe!K&bYR{ zZ%Lt60R$bB@gh?v<-5^Sr_G*jZb7Dp&9{V!B&ui><-Xi%cVTDg|}bp8qEGSiXl z0wFt(d;O3ov+(L^>@ih-2!PF22=&;ZhaLy zJq_HPJWwwDyq~POBV0FJ2iDt*O3kXXNsA9EtM6wq zTEo8BURH@ga@H`*^1^-aFHsgsy;(dC1?O`B(=x^xL%?X3Do8&$+SfqoV)DKI&nJoZ z>ENU9h`S|ROK5~pGWghmmYe0OfSl|6&|kMsrO~V&s`JDC2UINgWzPTizXTwZwpyE! zxuu%xELUz>y`=BcEU4x0I~2pHSTJQXwqqX%3i_lujn5e}6YoyBIJw2UIaNIQ$38qu z;WG(b5*%pCOd}kd(Br0&9mOVM;0I-{r=u@W-Qh+DevX$Nawm zZAKS9!dH#QhF8u4eP*|gqFiObF%;VBhI&d?1!o0+&d-W^=NUV-UB+LObll74(%Aa!lhB~40g(OHjv z%B>j`O9%hE{%wNtQ8pSb)s*`f8RSw$FADjF4%UNc=-v6)3&r{ErITBi2r?ZJXyNa8F~fx32(IF+{~*W-SmdY_5U z@$M8afQl0HQK(>F`qVpq==-Ri8e%s|bl~#879HyUoP+O3SGSES%aSwb>gn2$(%pcm zxwI;`$q$sql-Wp6e@6MBuGn7sjXo|T?uLOC=DRBky#?ykUMHFQAGw`tAL!eY5$oY8&*~^hhZ#ar`D5`Cw5L}pUNAu-+CKm;(iVa zlH+Y>IpGs`dc|3s7I2+%$5jkkZV8adzSpY+ekR=aw(k0Ytf7_e@oq$;@M=pq%rI!> z+4;N9BKL)$_iR4RamtRg+zK$S=6tDC9yjbNmrDp!TV0QoHo`qFf&X;jRef4D$7v7( z;d?<|i%})7VDf7&HFFFZM~Bon!qBn1S;33~MGaRxUWvL;Kma205AzE(tXx|XR5CDG zS~2fW$a@PdttCm9CFFOrFpym3YTB$sl!c{|4|a9_Of~>X+A$b(SZYMc^hg+DSG}9Y z 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 %9vnbho?7kE=tDY?K+k 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%0D3)DTxOns|HBI-W(S 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 CFBundleVersion 1.0 - KLInfo_Zhuyin Dachen + KLInfo_vChewingDachen TICapsLockLanguageSwitchCapable TISInputSourceID - org.atelierInmu.keyboardlayout.vChewingKeyLayout.zhuyindachen + org.atelierInmu.keyboardlayout.vChewingKeyLayout.vChewingDachen TISIntendedLanguage zh-Hanb - KLInfo_Zhuyin ETen + KLInfo_vChewingETen TICapsLockLanguageSwitchCapable TISInputSourceID - org.atelierInmu.keyboardlayout.vChewingKeyLayout.zhuyineten + org.atelierInmu.keyboardlayout.vChewingKeyLayout.vChewingETen TISIntendedLanguage zh-Hanb - KLInfo_Zhuyin IBM + KLInfo_vChewingIBM TICapsLockLanguageSwitchCapable TISInputSourceID - org.atelierInmu.keyboardlayout.vChewingKeyLayout.zhuyinibm + org.atelierInmu.keyboardlayout.vChewingKeyLayout.vChewingIBM TISIntendedLanguage zh-Hanb - KLInfo_Zhuyin MiTAC + KLInfo_vChewingMiTAC TICapsLockLanguageSwitchCapable TISInputSourceID - org.atelierInmu.keyboardlayout.vChewingKeyLayout.zhuyinmitac + org.atelierInmu.keyboardlayout.vChewingKeyLayout.vChewingMiTAC TISIntendedLanguage zh-Hanb - KLInfo_Zhuyin Seigyou + KLInfo_vChewingSeigyou TICapsLockLanguageSwitchCapable TISInputSourceID - org.atelierInmu.keyboardlayout.vChewingKeyLayout.zhuyinseigyou + org.atelierInmu.keyboardlayout.vChewingKeyLayout.vChewingSeigyou TISIntendedLanguage zh-Hanb diff --git a/Source/Resources/KeyLayouts/vChewingKeyLayout.bundle/Contents/Resources/Zhuyin Dachen.keylayout b/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingDachen.keylayout similarity index 99% rename from Source/Resources/KeyLayouts/vChewingKeyLayout.bundle/Contents/Resources/Zhuyin Dachen.keylayout rename to KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingDachen.keylayout index bf901502..19c784b8 100644 --- a/Source/Resources/KeyLayouts/vChewingKeyLayout.bundle/Contents/Resources/Zhuyin Dachen.keylayout +++ b/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingDachen.keylayout @@ -1,7 +1,7 @@ - + diff --git a/Source/Resources/KeyLayouts/vChewingKeyLayout.bundle/Contents/Resources/Zhuyin ETen.keylayout b/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingETen.keylayout similarity index 99% rename from Source/Resources/KeyLayouts/vChewingKeyLayout.bundle/Contents/Resources/Zhuyin ETen.keylayout rename to KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingETen.keylayout index 98ba181c..918c7780 100644 --- a/Source/Resources/KeyLayouts/vChewingKeyLayout.bundle/Contents/Resources/Zhuyin ETen.keylayout +++ b/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingETen.keylayout @@ -1,7 +1,7 @@ - + diff --git a/Source/Resources/KeyLayouts/vChewingKeyLayout.bundle/Contents/Resources/Zhuyin IBM.keylayout b/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingIBM.keylayout similarity index 99% rename from Source/Resources/KeyLayouts/vChewingKeyLayout.bundle/Contents/Resources/Zhuyin IBM.keylayout rename to KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingIBM.keylayout index e0b3d15c..66ea8e1b 100644 --- a/Source/Resources/KeyLayouts/vChewingKeyLayout.bundle/Contents/Resources/Zhuyin IBM.keylayout +++ b/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingIBM.keylayout @@ -1,7 +1,7 @@ - + diff --git a/Source/Resources/KeyLayouts/vChewingKeyLayout.bundle/Contents/Resources/Zhuyin MiTAC.keylayout b/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingMiTAC.keylayout similarity index 99% rename from Source/Resources/KeyLayouts/vChewingKeyLayout.bundle/Contents/Resources/Zhuyin MiTAC.keylayout rename to KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingMiTAC.keylayout index 2a670716..c459b76a 100644 --- a/Source/Resources/KeyLayouts/vChewingKeyLayout.bundle/Contents/Resources/Zhuyin MiTAC.keylayout +++ b/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingMiTAC.keylayout @@ -1,7 +1,7 @@ - + diff --git a/Source/Resources/KeyLayouts/vChewingKeyLayout.bundle/Contents/Resources/Zhuyin Seigyou.keylayout b/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingSeigyou.keylayout similarity index 99% rename from Source/Resources/KeyLayouts/vChewingKeyLayout.bundle/Contents/Resources/Zhuyin Seigyou.keylayout rename to KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingSeigyou.keylayout index bc6032ad..d153ef26 100644 --- a/Source/Resources/KeyLayouts/vChewingKeyLayout.bundle/Contents/Resources/Zhuyin Seigyou.keylayout +++ b/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/vChewingSeigyou.keylayout @@ -1,7 +1,7 @@ - + diff --git a/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/zh.lproj/InfoPlist.strings b/KeyboardExtension/vChewingKeyLayout.bundle/Contents/Resources/zh.lproj/InfoPlist.strings new file mode 100644 index 0000000000000000000000000000000000000000..128b7a6694fb2f879401d239948a40e38bc9788e GIT binary patch literal 304 zcmezWPl=(7!I>e0A(f$=A(J7GA)P^i!G$4_AsH-|$Djn{+XAr?17p;SoX^wMBb|di z{2gMH7_1q%fTEbXT^T}vreW%o3eb$iuhSRkf)EBrpnK45jjNQJfM2gCgA;=Nx~zM9-jgnj^Gj6S#k literal 0 HcmV?d00001 diff --git a/Source/Resources/KeyLayouts/vChewingKeyLayout.bundle/Contents/version.plist b/KeyboardExtension/vChewingKeyLayout.bundle/Contents/version.plist similarity index 100% rename from Source/Resources/KeyLayouts/vChewingKeyLayout.bundle/Contents/version.plist rename to KeyboardExtension/vChewingKeyLayout.bundle/Contents/version.plist diff --git a/Source/Resources/KeyLayouts/vChewingKeyLayout.bundle/Contents/Resources/zh.lproj/InfoPlist.strings b/Source/Resources/KeyLayouts/vChewingKeyLayout.bundle/Contents/Resources/zh.lproj/InfoPlist.strings deleted file mode 100644 index 08c98689c94bf9f4234df39b8c98d54823f01d1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 332 zcmezWPl+LlA%mfmp^_n!A&)_U!G$4_AsHx=3gjsP`L;leUyU^b7lsN~h7i0aAmp*> y_652ngu#))8K(=7RbVs0lfj9>7pHEREH<6NKzC;{qyxhv9~dgQLI7PA$Rq%@12pOY diff --git a/Source/WindowControllers/ctlPrefWindow.swift b/Source/WindowControllers/ctlPrefWindow.swift index ebdd9695..b2b11896 100644 --- a/Source/WindowControllers/ctlPrefWindow.swift +++ b/Source/WindowControllers/ctlPrefWindow.swift @@ -86,7 +86,7 @@ extension RangeReplaceableCollection where Element: Hashable { let menuItem_vChewingDachen = NSMenuItem() menuItem_vChewingDachen.title = String(format: NSLocalizedString("vChewing Dachen (Not Finished Yet)", comment: "")) - menuItem_vChewingDachen.representedObject = String("org.atelierInmu.keyboardlayout.vChewingKeyLayout.zhuyindachen") + menuItem_vChewingDachen.representedObject = String("org.atelierInmu.keyboardlayout.vChewingKeyLayout.vChewingDachen") basisKeyboardLayoutButton.menu?.addItem(menuItem_vChewingDachen) let basisKeyboardLayoutID = Preferences.basisKeyboardLayout diff --git a/vChewing.xcodeproj/project.pbxproj b/vChewing.xcodeproj/project.pbxproj index 578eea6b..dd59d3d6 100644 --- a/vChewing.xcodeproj/project.pbxproj +++ b/vChewing.xcodeproj/project.pbxproj @@ -11,7 +11,6 @@ 5B11328927B94CFB00E58451 /* AppleKeyboardConverter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B11328827B94CFB00E58451 /* AppleKeyboardConverter.swift */; }; 5B2DB16F27AF6891006D874E /* data-chs.txt in Resources */ = {isa = PBXBuildFile; fileRef = 5B2DB16D27AF6891006D874E /* data-chs.txt */; }; 5B2DB17027AF6891006D874E /* data-cht.txt in Resources */ = {isa = PBXBuildFile; fileRef = 5B2DB16E27AF6891006D874E /* data-cht.txt */; }; - 5B30F11327BA568800484E24 /* vChewingKeyLayout.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 5B30F11227BA568800484E24 /* vChewingKeyLayout.bundle */; }; 5B62A31727AE73A700A19448 /* unzip.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B62A30927AE73A700A19448 /* unzip.m */; }; 5B62A31827AE73A700A19448 /* zip.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B62A30A27AE73A700A19448 /* zip.m */; }; 5B62A31927AE73A700A19448 /* ioapi.m in Sources */ = {isa = PBXBuildFile; fileRef = 5B62A30B27AE73A700A19448 /* ioapi.m */; }; @@ -51,6 +50,11 @@ 5BD05C6927B2BBEF004C4F1D /* WindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BD05C6427B2BBEF004C4F1D /* WindowController.swift */; }; 5BD05C6A27B2BBEF004C4F1D /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BD05C6527B2BBEF004C4F1D /* ViewController.swift */; }; 5BDC5CAB27C2873D00E1CCE2 /* Grid.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5BDC5CAA27C2873D00E1CCE2 /* Grid.mm */; }; + 5BDC5CB327C28E8B00E1CCE2 /* icon.icns in Resources */ = {isa = PBXBuildFile; fileRef = 5BDC5CB227C28E8B00E1CCE2 /* icon.icns */; }; + 5BDC5CB527C28E8B00E1CCE2 /* ShareViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BDC5CB427C28E8B00E1CCE2 /* ShareViewController.swift */; }; + 5BDC5CB827C28E8B00E1CCE2 /* ShareViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BDC5CB627C28E8B00E1CCE2 /* ShareViewController.xib */; }; + 5BDC5CBD27C28E8B00E1CCE2 /* KeyboardExtension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 5BDC5CB027C28E8B00E1CCE2 /* KeyboardExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + 5BDC5CC227C2941F00E1CCE2 /* vChewingKeyLayout.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 5B30F11227BA568800484E24 /* vChewingKeyLayout.bundle */; }; 5BDCBB2E27B4E67A00D0CC59 /* vChewingPhraseEditor.app in Resources */ = {isa = PBXBuildFile; fileRef = 5BD05BB827B2A429004C4F1D /* vChewingPhraseEditor.app */; }; 5BE78BD927B3775B005EA1BE /* ctlAboutWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BE78BD827B37750005EA1BE /* ctlAboutWindow.swift */; }; 5BE78BDD27B3776D005EA1BE /* frmAboutWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = 5BE78BDA27B37764005EA1BE /* frmAboutWindow.xib */; }; @@ -97,6 +101,13 @@ remoteGlobalIDString = 5BD05BB727B2A429004C4F1D; remoteInfo = vChewingPhraseEditor; }; + 5BDC5CBB27C28E8B00E1CCE2 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6A0D4E9415FC0CFA00ABF4B3 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 5BDC5CAF27C28E8B00E1CCE2; + remoteInfo = KeyboardExtension; + }; 6A38BC2515FC131100A8A51F /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 6A0D4E9415FC0CFA00ABF4B3 /* Project object */; @@ -113,6 +124,20 @@ }; /* End PBXContainerItemProxy section */ +/* Begin PBXCopyFilesBuildPhase section */ + 5BDC5CBE27C28E8B00E1CCE2 /* Embed App Extensions */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 13; + files = ( + 5BDC5CBD27C28E8B00E1CCE2 /* KeyboardExtension.appex in Embed App Extensions */, + ); + name = "Embed App Extensions"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + /* Begin PBXFileReference section */ 5B04305327B529D800CB65BC /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/InfoPlist.strings"; sourceTree = ""; }; 5B04305427B529D800CB65BC /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Localizable.strings"; sourceTree = ""; }; @@ -197,6 +222,12 @@ 5BD05C6427B2BBEF004C4F1D /* WindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WindowController.swift; sourceTree = ""; }; 5BD05C6527B2BBEF004C4F1D /* ViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; 5BDC5CAA27C2873D00E1CCE2 /* Grid.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = Grid.mm; sourceTree = ""; }; + 5BDC5CB027C28E8B00E1CCE2 /* KeyboardExtension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = KeyboardExtension.appex; sourceTree = BUILT_PRODUCTS_DIR; }; + 5BDC5CB227C28E8B00E1CCE2 /* icon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = icon.icns; sourceTree = ""; }; + 5BDC5CB427C28E8B00E1CCE2 /* ShareViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShareViewController.swift; sourceTree = ""; }; + 5BDC5CB727C28E8B00E1CCE2 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/ShareViewController.xib; sourceTree = ""; }; + 5BDC5CB927C28E8B00E1CCE2 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 5BDC5CBA27C28E8B00E1CCE2 /* KeyboardExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = KeyboardExtension.entitlements; sourceTree = ""; }; 5BDCBB4227B4F6C600D0CC59 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "zh-Hant.lproj/MainMenu.strings"; sourceTree = ""; }; 5BDCBB4327B4F6C600D0CC59 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "zh-Hant.lproj/frmAboutWindow.strings"; sourceTree = ""; }; 5BDCBB4527B4F6C600D0CC59 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "Source/WindowNIBs/zh-Hant.lproj/frmPrefWindow.strings"; sourceTree = ""; }; @@ -282,6 +313,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 5BDC5CAD27C28E8B00E1CCE2 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 6A0D4E9F15FC0D2D00ABF4B3 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -299,14 +337,6 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 5B30F10727BA501900484E24 /* KeyLayouts */ = { - isa = PBXGroup; - children = ( - 5B30F11227BA568800484E24 /* vChewingKeyLayout.bundle */, - ); - path = KeyLayouts; - sourceTree = ""; - }; 5B62A30127AE732800A19448 /* 3rdParty */ = { isa = PBXGroup; children = ( @@ -461,7 +491,6 @@ 5B62A33027AE78E500A19448 /* Resources */ = { isa = PBXGroup; children = ( - 5B30F10727BA501900484E24 /* KeyLayouts */, 6A0D4EEE15FC0DA600ABF4B3 /* Images */, 5BBBB76E27AED70B0023B93A /* MenuIcons */, 5BBBB75C27AED54C0023B93A /* SoundFiles */, @@ -598,6 +627,19 @@ path = Resources; sourceTree = ""; }; + 5BDC5CB127C28E8B00E1CCE2 /* KeyboardExtension */ = { + isa = PBXGroup; + children = ( + 5B30F11227BA568800484E24 /* vChewingKeyLayout.bundle */, + 5BDC5CB227C28E8B00E1CCE2 /* icon.icns */, + 5BDC5CB427C28E8B00E1CCE2 /* ShareViewController.swift */, + 5BDC5CB627C28E8B00E1CCE2 /* ShareViewController.xib */, + 5BDC5CB927C28E8B00E1CCE2 /* Info.plist */, + 5BDC5CBA27C28E8B00E1CCE2 /* KeyboardExtension.entitlements */, + ); + path = KeyboardExtension; + sourceTree = ""; + }; 6A0D4E9215FC0CFA00ABF4B3 = { isa = PBXGroup; children = ( @@ -605,6 +647,7 @@ 6ACA41E715FC1D9000935EF6 /* Installer */, 6A0D4EC215FC0D3C00ABF4B3 /* Source */, 5BD05BB927B2A429004C4F1D /* UserPhraseEditor */, + 5BDC5CB127C28E8B00E1CCE2 /* KeyboardExtension */, 6A0D4EA315FC0D2D00ABF4B3 /* Products */, D47D73C127A7200500255A50 /* Frameworks */, ); @@ -616,6 +659,7 @@ 6A0D4EA215FC0D2D00ABF4B3 /* vChewing.app */, 6ACA41CB15FC1D7500935EF6 /* vChewingInstaller.app */, 5BD05BB827B2A429004C4F1D /* vChewingPhraseEditor.app */, + 5BDC5CB027C28E8B00E1CCE2 /* KeyboardExtension.appex */, ); name = Products; sourceTree = ""; @@ -737,6 +781,23 @@ productReference = 5BD05BB827B2A429004C4F1D /* vChewingPhraseEditor.app */; productType = "com.apple.product-type.application"; }; + 5BDC5CAF27C28E8B00E1CCE2 /* KeyboardExtension */ = { + isa = PBXNativeTarget; + buildConfigurationList = 5BDC5CC127C28E8B00E1CCE2 /* Build configuration list for PBXNativeTarget "KeyboardExtension" */; + buildPhases = ( + 5BDC5CAC27C28E8B00E1CCE2 /* Sources */, + 5BDC5CAD27C28E8B00E1CCE2 /* Frameworks */, + 5BDC5CAE27C28E8B00E1CCE2 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = KeyboardExtension; + productName = KeyboardExtension; + productReference = 5BDC5CB027C28E8B00E1CCE2 /* KeyboardExtension.appex */; + productType = "com.apple.product-type.app-extension"; + }; 6A0D4EA115FC0D2D00ABF4B3 /* vChewing */ = { isa = PBXNativeTarget; buildConfigurationList = 6A0D4EC015FC0D2E00ABF4B3 /* Build configuration list for PBXNativeTarget "vChewing" */; @@ -744,12 +805,14 @@ 6A0D4E9E15FC0D2D00ABF4B3 /* Sources */, 6A0D4E9F15FC0D2D00ABF4B3 /* Frameworks */, 6A0D4EA015FC0D2D00ABF4B3 /* Resources */, + 5BDC5CBE27C28E8B00E1CCE2 /* Embed App Extensions */, ); buildRules = ( ); dependencies = ( 5B0AF8B327B2C4E20096FE54 /* PBXTargetDependency */, 6A38BC2615FC131100A8A51F /* PBXTargetDependency */, + 5BDC5CBC27C28E8B00E1CCE2 /* PBXTargetDependency */, ); name = vChewing; packageProductDependencies = ( @@ -793,6 +856,10 @@ LastSwiftMigration = 1320; ProvisioningStyle = Automatic; }; + 5BDC5CAF27C28E8B00E1CCE2 = { + CreatedOnToolsVersion = 13.2; + ProvisioningStyle = Automatic; + }; 6A0D4EA115FC0D2D00ABF4B3 = { LastSwiftMigration = 1240; ProvisioningStyle = Automatic; @@ -824,6 +891,7 @@ 6A0D4EA115FC0D2D00ABF4B3 /* vChewing */, 6ACA41CA15FC1D7500935EF6 /* vChewingInstaller */, 5BD05BB727B2A429004C4F1D /* vChewingPhraseEditor */, + 5BDC5CAF27C28E8B00E1CCE2 /* KeyboardExtension */, 6A38BC2115FC12FD00A8A51F /* Data */, ); }; @@ -841,6 +909,16 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 5BDC5CAE27C28E8B00E1CCE2 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 5BDC5CB827C28E8B00E1CCE2 /* ShareViewController.xib in Resources */, + 5BDC5CC227C2941F00E1CCE2 /* vChewingKeyLayout.bundle in Resources */, + 5BDC5CB327C28E8B00E1CCE2 /* icon.icns in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 6A0D4EA015FC0D2D00ABF4B3 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -861,7 +939,6 @@ 5BBBB77627AED70B0023B93A /* MenuIcon-TCVIM.png in Resources */, 6A187E2616004C5900466B2E /* MainMenu.xib in Resources */, 5BBBB75F27AED54C0023B93A /* Beep.m4a in Resources */, - 5B30F11327BA568800484E24 /* vChewingKeyLayout.bundle in Resources */, 5B2DB16F27AF6891006D874E /* data-chs.txt in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -916,6 +993,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 5BDC5CAC27C28E8B00E1CCE2 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 5BDC5CB527C28E8B00E1CCE2 /* ShareViewController.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 6A0D4E9E15FC0D2D00ABF4B3 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -983,6 +1068,11 @@ target = 5BD05BB727B2A429004C4F1D /* vChewingPhraseEditor */; targetProxy = 5B0AF8B227B2C4E20096FE54 /* PBXContainerItemProxy */; }; + 5BDC5CBC27C28E8B00E1CCE2 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 5BDC5CAF27C28E8B00E1CCE2 /* KeyboardExtension */; + targetProxy = 5BDC5CBB27C28E8B00E1CCE2 /* PBXContainerItemProxy */; + }; 6A38BC2615FC131100A8A51F /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 6A38BC2115FC12FD00A8A51F /* Data */; @@ -1050,6 +1140,14 @@ name = Main.storyboard; sourceTree = ""; }; + 5BDC5CB627C28E8B00E1CCE2 /* ShareViewController.xib */ = { + isa = PBXVariantGroup; + children = ( + 5BDC5CB727C28E8B00E1CCE2 /* Base */, + ); + name = ShareViewController.xib; + sourceTree = ""; + }; 5BE78BDA27B37764005EA1BE /* frmAboutWindow.xib */ = { isa = PBXVariantGroup; children = ( @@ -1229,6 +1327,102 @@ }; name = Release; }; + 5BDC5CBF27C28E8B00E1CCE2 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = KeyboardExtension/KeyboardExtension.entitlements; + CODE_SIGN_IDENTITY = "-"; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1923; + DEBUG_INFORMATION_FORMAT = dwarf; + DEVELOPMENT_ASSET_PATHS = KeyboardExtension/vChewingKeyLayout.bundle; + DEVELOPMENT_TEAM = ""; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = KeyboardExtension/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = KeyboardExtension; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @executable_path/../../../../Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 12.1; + MARKETING_VERSION = 1.3.4; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = org.atelierInmu.inputmethod.vChewing.KeyboardExtension; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + 5BDC5CC027C28E8B00E1CCE2 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_ENTITLEMENTS = KeyboardExtension/KeyboardExtension.entitlements; + CODE_SIGN_IDENTITY = "-"; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1923; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_ASSET_PATHS = KeyboardExtension/vChewingKeyLayout.bundle; + DEVELOPMENT_TEAM = ""; + ENABLE_NS_ASSERTIONS = NO; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = KeyboardExtension/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = KeyboardExtension; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @executable_path/../../../../Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 12.1; + MARKETING_VERSION = 1.3.4; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = org.atelierInmu.inputmethod.vChewing.KeyboardExtension; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; 6A0D4E9915FC0CFA00ABF4B3 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -1315,6 +1509,7 @@ 6A0D4EBE15FC0D2E00ABF4B3 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ALWAYS_SEARCH_USER_PATHS = NO; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_CXX_LANGUAGE_STANDARD = "c++17"; @@ -1332,7 +1527,7 @@ COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 1922; - DEVELOPMENT_ASSET_PATHS = Source/Resources/KeyLayouts/vChewingKeyLayout.bundle; + DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_TEAM = ""; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; @@ -1379,6 +1574,7 @@ 6A0D4EBF15FC0D2E00ABF4B3 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ALWAYS_SEARCH_USER_PATHS = NO; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_CXX_LANGUAGE_STANDARD = "c++17"; @@ -1397,7 +1593,7 @@ COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 1922; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEVELOPMENT_ASSET_PATHS = Source/Resources/KeyLayouts/vChewingKeyLayout.bundle; + DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_TEAM = ""; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_ENABLE_OBJC_EXCEPTIONS = YES; @@ -1593,6 +1789,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 5BDC5CC127C28E8B00E1CCE2 /* Build configuration list for PBXNativeTarget "KeyboardExtension" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 5BDC5CBF27C28E8B00E1CCE2 /* Debug */, + 5BDC5CC027C28E8B00E1CCE2 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; 6A0D4E9715FC0CFA00ABF4B3 /* Build configuration list for PBXProject "vChewing" */ = { isa = XCConfigurationList; buildConfigurations = ( From 9ba5cfe88e587e3a3655f63222c4556294b1c7a5 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Sun, 20 Feb 2022 22:39:33 +0800 Subject: [PATCH 22/22] Bump version to 1.3.4 Build 1923. --- Update-Info.plist | 4 ++-- vChewing.xcodeproj/project.pbxproj | 24 ++++++++++++------------ 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/Update-Info.plist b/Update-Info.plist index 4fc78e67..dc3e903d 100644 --- a/Update-Info.plist +++ b/Update-Info.plist @@ -7,8 +7,8 @@ UpdateInfoSite https://gitee.com/vchewing/vChewing-macOS CFBundleVersion - 1922 + 1923 CFBundleShortVersionString - 1.3.3 + 1.3.4 diff --git a/vChewing.xcodeproj/project.pbxproj b/vChewing.xcodeproj/project.pbxproj index dd59d3d6..916c2a5b 100644 --- a/vChewing.xcodeproj/project.pbxproj +++ b/vChewing.xcodeproj/project.pbxproj @@ -1249,7 +1249,7 @@ CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1922; + CURRENT_PROJECT_VERSION = 1923; DEBUG_INFORMATION_FORMAT = dwarf; GCC_C_LANGUAGE_STANDARD = gnu11; GCC_DYNAMIC_NO_PIC = NO; @@ -1268,7 +1268,7 @@ INFOPLIST_KEY_NSPrincipalClass = NSApplication; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.11.5; - MARKETING_VERSION = 1.3.3; + MARKETING_VERSION = 1.3.4; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = org.atelierInmu.vChewing.vChewingPhraseEditor; @@ -1301,7 +1301,7 @@ CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1922; + CURRENT_PROJECT_VERSION = 1923; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -1315,7 +1315,7 @@ INFOPLIST_KEY_NSPrincipalClass = NSApplication; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.11.5; - MARKETING_VERSION = 1.3.3; + MARKETING_VERSION = 1.3.4; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = org.atelierInmu.vChewing.vChewingPhraseEditor; @@ -1526,7 +1526,7 @@ CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1922; + CURRENT_PROJECT_VERSION = 1923; DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_TEAM = ""; GCC_C_LANGUAGE_STANDARD = gnu99; @@ -1558,7 +1558,7 @@ INFOPLIST_FILE = "Source/Resources/IME-Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.11.5; - MARKETING_VERSION = 1.3.3; + MARKETING_VERSION = 1.3.4; ONLY_ACTIVE_ARCH = YES; PRODUCT_BUNDLE_IDENTIFIER = org.atelierInmu.inputmethod.vChewing; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -1591,7 +1591,7 @@ CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1922; + CURRENT_PROJECT_VERSION = 1923; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_TEAM = ""; @@ -1617,7 +1617,7 @@ INFOPLIST_FILE = "Source/Resources/IME-Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.11.5; - MARKETING_VERSION = 1.3.3; + MARKETING_VERSION = 1.3.4; PRODUCT_BUNDLE_IDENTIFIER = org.atelierInmu.inputmethod.vChewing; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -1700,7 +1700,7 @@ CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1922; + CURRENT_PROJECT_VERSION = 1923; DEVELOPMENT_TEAM = ""; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; @@ -1722,7 +1722,7 @@ INFOPLIST_FILE = "Installer/Installer-Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.11.5; - MARKETING_VERSION = 1.3.3; + MARKETING_VERSION = 1.3.4; ONLY_ACTIVE_ARCH = YES; PRODUCT_BUNDLE_IDENTIFIER = "org.atelierInmu.vChewing.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -1750,7 +1750,7 @@ CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; - CURRENT_PROJECT_VERSION = 1922; + CURRENT_PROJECT_VERSION = 1923; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = ""; GCC_C_LANGUAGE_STANDARD = gnu99; @@ -1766,7 +1766,7 @@ INFOPLIST_FILE = "Installer/Installer-Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.11.5; - MARKETING_VERSION = 1.3.3; + MARKETING_VERSION = 1.3.4; PRODUCT_BUNDLE_IDENTIFIER = "org.atelierInmu.vChewing.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = "";