From 22740c2c2ae92329cce39723a2aa791766051dd6 Mon Sep 17 00:00:00 2001 From: MalavikaSreehari Date: Fri, 24 Sep 2021 22:03:09 +0530 Subject: [PATCH 1/2] Completed Task 2 --- .gitignore | 46 ++ .metadata | 10 + README.md | 16 + android/.gitignore | 11 + android/app/build.gradle | 59 +++ android/app/src/debug/AndroidManifest.xml | 7 + android/app/src/main/AndroidManifest.xml | 41 ++ .../kotlin/com/example/myapp/MainActivity.kt | 6 + .../res/drawable-v21/launch_background.xml | 12 + .../main/res/drawable/launch_background.xml | 12 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 544 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 442 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 721 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 1031 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 1443 bytes .../app/src/main/res/values-night/styles.xml | 18 + android/app/src/main/res/values/styles.xml | 18 + android/app/src/profile/AndroidManifest.xml | 7 + android/build.gradle | 29 ++ android/gradle.properties | 3 + .../gradle/wrapper/gradle-wrapper.properties | 6 + android/settings.gradle | 11 + assets/Profile.jpg | Bin 0 -> 68605 bytes ios/.gitignore | 33 ++ ios/Flutter/AppFrameworkInfo.plist | 26 + ios/Flutter/Debug.xcconfig | 1 + ios/Flutter/Release.xcconfig | 1 + ios/Runner.xcodeproj/project.pbxproj | 471 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 91 ++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + ios/Runner/AppDelegate.swift | 13 + .../AppIcon.appiconset/Contents.json | 122 +++++ .../Icon-App-1024x1024@1x.png | Bin 0 -> 10932 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 0 -> 564 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 0 -> 1283 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 0 -> 1588 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 0 -> 1025 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 0 -> 1716 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 0 -> 1920 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 0 -> 1283 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 0 -> 1895 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 0 -> 2665 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 0 -> 2665 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 0 -> 3831 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 0 -> 1888 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 0 -> 3294 bytes .../Icon-App-83.5x83.5@2x.png | Bin 0 -> 3612 bytes .../LaunchImage.imageset/Contents.json | 23 + .../LaunchImage.imageset/LaunchImage.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@2x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@3x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/README.md | 5 + ios/Runner/Base.lproj/LaunchScreen.storyboard | 37 ++ ios/Runner/Base.lproj/Main.storyboard | 26 + ios/Runner/Info.plist | 45 ++ ios/Runner/Runner-Bridging-Header.h | 1 + lib/main.dart | 153 ++++++ pubspec.lock | 273 ++++++++++ pubspec.yaml | 77 +++ test/widget_test.dart | 30 ++ web/favicon.png | Bin 0 -> 917 bytes web/icons/Icon-192.png | Bin 0 -> 5292 bytes web/icons/Icon-512.png | Bin 0 -> 8252 bytes web/index.html | 98 ++++ web/manifest.json | 23 + windows/.gitignore | 17 + windows/CMakeLists.txt | 95 ++++ windows/flutter/CMakeLists.txt | 103 ++++ .../flutter/generated_plugin_registrant.cc | 9 + windows/flutter/generated_plugin_registrant.h | 13 + windows/flutter/generated_plugins.cmake | 15 + windows/runner/CMakeLists.txt | 18 + windows/runner/Runner.rc | 121 +++++ windows/runner/flutter_window.cpp | 64 +++ windows/runner/flutter_window.h | 39 ++ windows/runner/main.cpp | 42 ++ windows/runner/resource.h | 16 + windows/runner/resources/app_icon.ico | Bin 0 -> 33772 bytes windows/runner/run_loop.cpp | 66 +++ windows/runner/run_loop.h | 40 ++ windows/runner/runner.exe.manifest | 20 + windows/runner/utils.cpp | 64 +++ windows/runner/utils.h | 19 + windows/runner/win32_window.cpp | 245 +++++++++ windows/runner/win32_window.h | 98 ++++ 90 files changed, 3011 insertions(+) create mode 100644 .gitignore create mode 100644 .metadata create mode 100644 README.md create mode 100644 android/.gitignore create mode 100644 android/app/build.gradle create mode 100644 android/app/src/debug/AndroidManifest.xml create mode 100644 android/app/src/main/AndroidManifest.xml create mode 100644 android/app/src/main/kotlin/com/example/myapp/MainActivity.kt create mode 100644 android/app/src/main/res/drawable-v21/launch_background.xml create mode 100644 android/app/src/main/res/drawable/launch_background.xml create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/values-night/styles.xml create mode 100644 android/app/src/main/res/values/styles.xml create mode 100644 android/app/src/profile/AndroidManifest.xml create mode 100644 android/build.gradle create mode 100644 android/gradle.properties create mode 100644 android/gradle/wrapper/gradle-wrapper.properties create mode 100644 android/settings.gradle create mode 100644 assets/Profile.jpg create mode 100644 ios/.gitignore create mode 100644 ios/Flutter/AppFrameworkInfo.plist create mode 100644 ios/Flutter/Debug.xcconfig create mode 100644 ios/Flutter/Release.xcconfig create mode 100644 ios/Runner.xcodeproj/project.pbxproj create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 ios/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 ios/Runner/AppDelegate.swift create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md create mode 100644 ios/Runner/Base.lproj/LaunchScreen.storyboard create mode 100644 ios/Runner/Base.lproj/Main.storyboard create mode 100644 ios/Runner/Info.plist create mode 100644 ios/Runner/Runner-Bridging-Header.h create mode 100644 lib/main.dart create mode 100644 pubspec.lock create mode 100644 pubspec.yaml create mode 100644 test/widget_test.dart create mode 100644 web/favicon.png create mode 100644 web/icons/Icon-192.png create mode 100644 web/icons/Icon-512.png create mode 100644 web/index.html create mode 100644 web/manifest.json create mode 100644 windows/.gitignore create mode 100644 windows/CMakeLists.txt create mode 100644 windows/flutter/CMakeLists.txt create mode 100644 windows/flutter/generated_plugin_registrant.cc create mode 100644 windows/flutter/generated_plugin_registrant.h create mode 100644 windows/flutter/generated_plugins.cmake create mode 100644 windows/runner/CMakeLists.txt create mode 100644 windows/runner/Runner.rc create mode 100644 windows/runner/flutter_window.cpp create mode 100644 windows/runner/flutter_window.h create mode 100644 windows/runner/main.cpp create mode 100644 windows/runner/resource.h create mode 100644 windows/runner/resources/app_icon.ico create mode 100644 windows/runner/run_loop.cpp create mode 100644 windows/runner/run_loop.h create mode 100644 windows/runner/runner.exe.manifest create mode 100644 windows/runner/utils.cpp create mode 100644 windows/runner/utils.h create mode 100644 windows/runner/win32_window.cpp create mode 100644 windows/runner/win32_window.h diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..0fa6b675 --- /dev/null +++ b/.gitignore @@ -0,0 +1,46 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +**/ios/Flutter/.last_build_id +.dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies +.packages +.pub-cache/ +.pub/ +/build/ + +# Web related +lib/generated_plugin_registrant.dart + +# Symbolication related +app.*.symbols + +# Obfuscation related +app.*.map.json + +# Android Studio will place build artifacts here +/android/app/debug +/android/app/profile +/android/app/release diff --git a/.metadata b/.metadata new file mode 100644 index 00000000..56bfc2c4 --- /dev/null +++ b/.metadata @@ -0,0 +1,10 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: f4abaa0735eba4dfd8f33f73363911d63931fe03 + channel: stable + +project_type: app diff --git a/README.md b/README.md new file mode 100644 index 00000000..7fc3dda2 --- /dev/null +++ b/README.md @@ -0,0 +1,16 @@ +# myapp + +A new Flutter project. + +## Getting Started + +This project is a starting point for a Flutter application. + +A few resources to get you started if this is your first Flutter project: + +- [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab) +- [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook) + +For help getting started with Flutter, view our +[online documentation](https://flutter.dev/docs), which offers tutorials, +samples, guidance on mobile development, and a full API reference. diff --git a/android/.gitignore b/android/.gitignore new file mode 100644 index 00000000..0a741cb4 --- /dev/null +++ b/android/.gitignore @@ -0,0 +1,11 @@ +gradle-wrapper.jar +/.gradle +/captures/ +/gradlew +/gradlew.bat +/local.properties +GeneratedPluginRegistrant.java + +# Remember to never publicly share your keystore. +# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app +key.properties diff --git a/android/app/build.gradle b/android/app/build.gradle new file mode 100644 index 00000000..667d89e7 --- /dev/null +++ b/android/app/build.gradle @@ -0,0 +1,59 @@ +def localProperties = new Properties() +def localPropertiesFile = rootProject.file('local.properties') +if (localPropertiesFile.exists()) { + localPropertiesFile.withReader('UTF-8') { reader -> + localProperties.load(reader) + } +} + +def flutterRoot = localProperties.getProperty('flutter.sdk') +if (flutterRoot == null) { + throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") +} + +def flutterVersionCode = localProperties.getProperty('flutter.versionCode') +if (flutterVersionCode == null) { + flutterVersionCode = '1' +} + +def flutterVersionName = localProperties.getProperty('flutter.versionName') +if (flutterVersionName == null) { + flutterVersionName = '1.0' +} + +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' +apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" + +android { + compileSdkVersion 30 + + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } + + defaultConfig { + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). + applicationId "com.example.myapp" + minSdkVersion 16 + targetSdkVersion 30 + versionCode flutterVersionCode.toInteger() + versionName flutterVersionName + } + + buildTypes { + release { + // TODO: Add your own signing config for the release build. + // Signing with the debug keys for now, so `flutter run --release` works. + signingConfig signingConfigs.debug + } + } +} + +flutter { + source '../..' +} + +dependencies { + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" +} diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 00000000..406eff08 --- /dev/null +++ b/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml new file mode 100644 index 00000000..9bc990ee --- /dev/null +++ b/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + diff --git a/android/app/src/main/kotlin/com/example/myapp/MainActivity.kt b/android/app/src/main/kotlin/com/example/myapp/MainActivity.kt new file mode 100644 index 00000000..9330c556 --- /dev/null +++ b/android/app/src/main/kotlin/com/example/myapp/MainActivity.kt @@ -0,0 +1,6 @@ +package com.example.myapp + +import io.flutter.embedding.android.FlutterActivity + +class MainActivity: FlutterActivity() { +} diff --git a/android/app/src/main/res/drawable-v21/launch_background.xml b/android/app/src/main/res/drawable-v21/launch_background.xml new file mode 100644 index 00000000..f74085f3 --- /dev/null +++ b/android/app/src/main/res/drawable-v21/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/android/app/src/main/res/drawable/launch_background.xml b/android/app/src/main/res/drawable/launch_background.xml new file mode 100644 index 00000000..304732f8 --- /dev/null +++ b/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..db77bb4b7b0906d62b1847e87f15cdcacf6a4f29 GIT binary patch literal 544 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!h8bpbvhu0Wd6uZuB!w&u2PAxD2eNXD>P5D~Wn-+_Wa#27Xc zC?Zj|6r#X(-D3u$NCt}(Ms06KgJ4FxJVv{GM)!I~&n8Bnc94O7-Hd)cjDZswgC;Qs zO=b+9!WcT8F?0rF7!Uys2bs@gozCP?z~o%U|N3vA*22NaGQG zlg@K`O_XuxvZ&Ks^m&R!`&1=spLvfx7oGDKDwpwW`#iqdw@AL`7MR}m`rwr|mZgU`8P7SBkL78fFf!WnuYWm$5Z0 zNXhDbCv&49sM544K|?c)WrFfiZvCi9h0O)B3Pgg&ebxsLQ05GG~ AQ2+n{ literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..17987b79bb8a35cc66c3c1fd44f5a5526c1b78be GIT binary patch literal 442 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-sk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5Xx&nMcT!A!W`0S9QKQy;}1Cl^CgaH=;G9cpY;r$Q>i*pfB zP2drbID<_#qf;rPZx^FqH)F_D#*k@@q03KywUtLX8Ua?`H+NMzkczFPK3lFz@i_kW%1NOn0|D2I9n9wzH8m|-tHjsw|9>@K=iMBhxvkv6m8Y-l zytQ?X=U+MF$@3 zt`~i=@j|6y)RWMK--}M|=T`o&^Ni>IoWKHEbBXz7?A@mgWoL>!*SXo`SZH-*HSdS+ yn*9;$7;m`l>wYBC5bq;=U}IMqLzqbYCidGC!)_gkIk_C@Uy!y&wkt5C($~2D>~)O*cj@FGjOCM)M>_ixfudOh)?xMu#Fs z#}Y=@YDTwOM)x{K_j*Q;dPdJ?Mz0n|pLRx{4n|)f>SXlmV)XB04CrSJn#dS5nK2lM zrZ9#~WelCp7&e13Y$jvaEXHskn$2V!!DN-nWS__6T*l;H&Fopn?A6HZ-6WRLFP=R` zqG+CE#d4|IbyAI+rJJ`&x9*T`+a=p|0O(+s{UBcyZdkhj=yS1>AirP+0R;mf2uMgM zC}@~JfByORAh4SyRgi&!(cja>F(l*O+nd+@4m$|6K6KDn_&uvCpV23&>G9HJp{xgg zoq1^2_p9@|WEo z*X_Uko@K)qYYv~>43eQGMdbiGbo>E~Q& zrYBH{QP^@Sti!`2)uG{irBBq@y*$B zi#&(U-*=fp74j)RyIw49+0MRPMRU)+a2r*PJ$L5roHt2$UjExCTZSbq%V!HeS7J$N zdG@vOZB4v_lF7Plrx+hxo7(fCV&}fHq)$ literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..d5f1c8d34e7a88e3f88bea192c3a370d44689c3c GIT binary patch literal 1031 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q8Ax83A=Cw=BuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFa`(sgt!6~Yi|1%a`XoT0ojZ}lNrNjb9xjc(B0U1_% zz5^97Xt*%oq$rQy4?0GKNfJ44uvxI)gC`h-NZ|&0-7(qS@?b!5r36oQ}zyZrNO3 zMO=Or+<~>+A&uN&E!^Sl+>xE!QC-|oJv`ApDhqC^EWD|@=#J`=d#Xzxs4ah}w&Jnc z$|q_opQ^2TrnVZ0o~wh<3t%W&flvYGe#$xqda2bR_R zvPYgMcHgjZ5nSA^lJr%;<&0do;O^tDDh~=pIxA#coaCY>&N%M2^tq^U%3DB@ynvKo}b?yu-bFc-u0JHzced$sg7S3zqI(2 z#Km{dPr7I=pQ5>FuK#)QwK?Y`E`B?nP+}U)I#c1+FM*1kNvWG|a(TpksZQ3B@sD~b zpQ2)*V*TdwjFOtHvV|;OsiDqHi=6%)o4b!)x$)%9pGTsE z-JL={-Ffv+T87W(Xpooq<`r*VzWQcgBN$$`u}f>-ZQI1BB8ykN*=e4rIsJx9>z}*o zo~|9I;xof literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..4d6372eebdb28e45604e46eeda8dd24651419bc0 GIT binary patch literal 1443 zcmb`G{WsKk6vsdJTdFg%tJav9_E4vzrOaqkWF|A724Nly!y+?N9`YV6wZ}5(X(D_N(?!*n3`|_r0Hc?=PQw&*vnU?QTFY zB_MsH|!j$PP;I}?dppoE_gA(4uc!jV&0!l7_;&p2^pxNo>PEcNJv za5_RT$o2Mf!<+r?&EbHH6nMoTsDOa;mN(wv8RNsHpG)`^ymG-S5By8=l9iVXzN_eG%Xg2@Xeq76tTZ*dGh~Lo9vl;Zfs+W#BydUw zCkZ$o1LqWQO$FC9aKlLl*7x9^0q%0}$OMlp@Kk_jHXOjofdePND+j!A{q!8~Jn+s3 z?~~w@4?egS02}8NuulUA=L~QQfm;MzCGd)XhiftT;+zFO&JVyp2mBww?;QByS_1w! zrQlx%{^cMj0|Bo1FjwY@Q8?Hx0cIPF*@-ZRFpPc#bBw{5@tD(5%sClzIfl8WU~V#u zm5Q;_F!wa$BSpqhN>W@2De?TKWR*!ujY;Yylk_X5#~V!L*Gw~;$%4Q8~Mad z@`-kG?yb$a9cHIApZDVZ^U6Xkp<*4rU82O7%}0jjHlK{id@?-wpN*fCHXyXh(bLt* zPc}H-x0e4E&nQ>y%B-(EL=9}RyC%MyX=upHuFhAk&MLbsF0LP-q`XnH78@fT+pKPW zu72MW`|?8ht^tz$iC}ZwLp4tB;Q49K!QCF3@!iB1qOI=?w z7In!}F~ij(18UYUjnbmC!qKhPo%24?8U1x{7o(+?^Zu0Hx81|FuS?bJ0jgBhEMzf< zCgUq7r2OCB(`XkKcN-TL>u5y#dD6D!)5W?`O5)V^>jb)P)GBdy%t$uUMpf$SNV31$ zb||OojAbvMP?T@$h_ZiFLFVHDmbyMhJF|-_)HX3%m=CDI+ID$0^C>kzxprBW)hw(v zr!Gmda);ICoQyhV_oP5+C%?jcG8v+D@9f?Dk*!BxY}dazmrT@64UrP3hlslANK)bq z$67n83eh}OeW&SV@HG95P|bjfqJ7gw$e+`Hxo!4cx`jdK1bJ>YDSpGKLPZ^1cv$ek zIB?0S<#tX?SJCLWdMd{-ME?$hc7A$zBOdIJ)4!KcAwb=VMov)nK;9z>x~rfT1>dS+ zZ6#`2v@`jgbqq)P22H)Tx2CpmM^o1$B+xT6`(v%5xJ(?j#>Q$+rx_R|7TzDZe{J6q zG1*EcU%tE?!kO%^M;3aM6JN*LAKUVb^xz8-Pxo#jR5(-KBeLJvA@-gxNHx0M-ZJLl z;#JwQoh~9V?`UVo#}{6ka@II>++D@%KqGpMdlQ}?9E*wFcf5(#XQnP$Dk5~%iX^>f z%$y;?M0BLp{O3a(-4A?ewryHrrD%cx#Q^%KY1H zNre$ve+vceSLZcNY4U(RBX&)oZn*Py()h)XkE?PL$!bNb{N5FVI2Y%LKEm%yvpyTP z(1P?z~7YxD~Rf<(a@_y` literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/values-night/styles.xml b/android/app/src/main/res/values-night/styles.xml new file mode 100644 index 00000000..449a9f93 --- /dev/null +++ b/android/app/src/main/res/values-night/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml new file mode 100644 index 00000000..d74aa35c --- /dev/null +++ b/android/app/src/main/res/values/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/android/app/src/profile/AndroidManifest.xml b/android/app/src/profile/AndroidManifest.xml new file mode 100644 index 00000000..406eff08 --- /dev/null +++ b/android/app/src/profile/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/android/build.gradle b/android/build.gradle new file mode 100644 index 00000000..9b6ed06e --- /dev/null +++ b/android/build.gradle @@ -0,0 +1,29 @@ +buildscript { + ext.kotlin_version = '1.3.50' + repositories { + google() + jcenter() + } + + dependencies { + classpath 'com.android.tools.build:gradle:4.1.0' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + } +} + +allprojects { + repositories { + google() + jcenter() + } +} + +rootProject.buildDir = '../build' +subprojects { + project.buildDir = "${rootProject.buildDir}/${project.name}" + project.evaluationDependsOn(':app') +} + +task clean(type: Delete) { + delete rootProject.buildDir +} diff --git a/android/gradle.properties b/android/gradle.properties new file mode 100644 index 00000000..94adc3a3 --- /dev/null +++ b/android/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.jvmargs=-Xmx1536M +android.useAndroidX=true +android.enableJetifier=true diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000..bc6a58af --- /dev/null +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Fri Jun 23 08:50:38 CEST 2017 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip diff --git a/android/settings.gradle b/android/settings.gradle new file mode 100644 index 00000000..44e62bcf --- /dev/null +++ b/android/settings.gradle @@ -0,0 +1,11 @@ +include ':app' + +def localPropertiesFile = new File(rootProject.projectDir, "local.properties") +def properties = new Properties() + +assert localPropertiesFile.exists() +localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) } + +def flutterSdkPath = properties.getProperty("flutter.sdk") +assert flutterSdkPath != null, "flutter.sdk not set in local.properties" +apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" diff --git a/assets/Profile.jpg b/assets/Profile.jpg new file mode 100644 index 0000000000000000000000000000000000000000..587dc61267ab28cf368c0a3925830b833f81c0de GIT binary patch literal 68605 zcmeFa1z1(j_bmtY06ZuI0e=7p8Gv|61E?sF zYk$x3`7# zGb`i(GB_3tkoN%q2=>TVKnevsuF@3(R|s4oaD~7X0#^w9w?shO(#{m-=0vSx0ds~? zOPN|a!yKtOIoLSZI5{{tIoUY*xCM9si3fHtyB|5Vl(ITCpX3Et7je;LTyt6e*EDf) zaB&K82num=P;+qzaqtRpa{&OoU(By)2%p+7{tx=*bDBS+r{@emXvi%9c+T->1oWKi zSEK{E6$V^HIsgI(7dJ;3{IBQ@ zTSOrLJQo<-MWFtqaX=dF4|)5DfD4@vFs8zHj|jUw7d!_CC=>n{I^s_{>DM?xkdq)k zb%L>765JoQ#3#Z3qT%q9v3{M4;88O6AN2ENoS%Kc$T9Vo9?+mvxIcBK!vBRv`bl5N za9ob(GNMfV5p{wQD?wN)*QI_ik|an-<++q02I;y~-b)%CqzC_uDAB>_6acOw$_o^( z(iH+%2wWj>g}@a8|E&?Yh$&3L<6?~o!o|TUD8$Jn#KlPs5*%DYJlw#4Y6FmxE~7~R zjI%DH%Ae_ik_L}ITYho=yO!#{pyh~h0Dm@E!q;%{3vh7pa&YkS3-Vk-LIUO&Xj%R& zFB*TL2a%HI;$h|F;I*}-He=^epq5jo)>Kyn01hxc;1uNNhyIkl=z#!+$iEU26cykS zVdLiEx=;c^MMcFx#~{JPB;mSFex2*L(|H4civo^p8y<2UfWw8r<3i4x04i{_h!?BD zkY7*&;6D%uh)BpNsA%Y*KqczF5v1q6j8B&DQfWaaLvYiMd| z>*(s4m_p6WEiA2^oLyYq+&w&>JoOKF_WVU)MC7Ze=+|%F#w4etrln_OW@Q%@mz0*3 zS5#Jg_}J9k()y{by|=G_U~p)7WORCFc5Z%QacOyFb8CBNcW?jT@aV!W@V|y1X8mE= zKkUKSunPj`c40U!0^)T}B)r?I$PXOwX}BJv5ZnoWSJ;S3%dNISXzcg} zjfjqCntt=bv`fqWYliv#zq0HP!~V2u6u^LofEN!Q7Z3;bk8T3VkI?>_rQUc%6bRf* zg8QFjj5p!08Es03PFM3+^cR?f!ZYItx`{pZJO}P>O<2$7hG2M7#*!_j4k=cL?n?`v zSiQ2l(RJr|raYK!mc>P*OpBxmC;J@WP+rxXIe0mXU(+~)9+9*`r(x3C@1?nw)W6E& z!)sl(&ur~&ZZ0-(EmaC?MmIY|IA&2##1nj*c->;JOIZN%(OihbPFmYAo2#d5VaCcA zQWm?JIL40%cG@dKfz`S}dVjU+Z)Pg=ASpk8D4%v&6=W z&0?K_{gGw9MTHWZC)5u=e_Rp!K7BYq-!BvU)yTl;lWBqneQXxn$c-djECJE1apc3a z*W}^KWfd0b$l`2HN>f(ok6lD7rO`AnB7{!HBM%_j#+42TFNtPaA(agz3=AS};(2N& z?3Pt0qYBB^%!f1)ViL^L-VL(}r~aP#{+o7;fj2S>lWl==gr|>^ue|tQv$sxb3Akn^KW9)wilY<-r1Ubp7)(XX` z+QZlI8zGaced>OH-K6}u1Ypjds%H{19q73BRPHe@MXGNH-y+q}Mv}S5)c5Dy?n=jP z#~QC=gzfi64&RAoRU>#kX*?SGqGy%@%UvR!@P98yqy);>$np3x} zhUQu6k3E6sb8~1gO6oz(@fMT!zowDk0ca(j(7K_P`r+k@GLc8{1YN^F#_eak?`Do* zl7=kjJ$ut0%hKufT4RaK;qdha-aFoG&bHqviTl-qUc4fcLZ#7UKoO@bdEZ7>v5mvE z-)vzf?|dIohnb^A0{%?)WVP=M}19kv~D)C%pwI^80D0!}56}q|V_1XPkquYJ1eYTA`8hEaU@AG)rc!QT7D5Wl~dT52;$J ztit|nV5%`(ggeC&{OmdKBBpWhjK*po?#`wRryt9n#-Z;UhRuArL%UZ^7RzOg6ON9Z z`x@HbDHdyYVJgJqPCETjB|@2fbs1h6%WY)Xue`LLmjU)bE>_2|a#5f%wc7h{v}0N8 zN1DPfZ^=kV`7QEh>2a6|%%(HH9B`g@>`FmiZk^Ru(lXP0_c=ssfmr)NkXvgl8(Qo3 zb=43o<~&NLp1sgVLj9c%*~`73yMl`}F}zOuPMN<-b8t#PEK>jJjGEuS(U!cgsC<2D zz*$`0gVBThafqvA->FNEWs93rEOjB41djvx$-3h6?+=;NlHqSEe41p69O7LX^$tuI z)0@rwPTQB12k&}wGf4AMLJ8*MyXLPu0emjXg#b3mq1C9DGSWnywv*8zSO*!?1cn$S^S?n;_ZAQTU z+w68Z?KN$_V4mu<2tC}472j`s2id%Dvzul6h?|W&uJ3-R;YQv&efNpS4CG|%>*@g6 zbYxAa8d{I^(>uAgIkEvCZFw?yfZiyCoED4s2Hh1#bx|+8ac+)ehUe-oBrue67Jqi1z{%E-fdpciAW_H-alKD=?YUbB>MS5lT zo7qq3!dU!Okfa3YC`;QE4HJTOZzj+Au=UZ7Eq2T=7Lc~i>l2MGymf2h59e%gh$H(t zDA=EG@lK9_@c!*3OV^~em7#0Y;#!>1>V{A2{GgF=em|@>uRly~;M$Xr zlFV8?A|_$kRWZW$k25|`xr4f-eWx(*84fOz{CkQvJxG}N_K-dMBMy=rE4?OyDW1lW z3Ubp{4vW9O9~P!3%r6(QESjEqTh`5oB8TZ5K>gyc{r1bp^znOwmJ8^V_L<1H^)}p{ z4IAXC2!PO{;xx9Bmjr>w}s6$k5=sKvd5;g zzq$C{OU$;j`W~hQ(Q-f_pWQmGX^cxtXlhY7fkoYBoJLiyRiGh;Zf?w%AnWT9_&rq9 zN7|6tYsyTU4DbOY;{F2SJ~O%Xt_BAx=ns{9kW<%uH(Lq{a+0S1J$K~0sc+hr#b(vU zHqs^YB1s1Y<$G86x8G%2>y77E9ih769xzC9V(5)ooYJ_L!TAaSGpz^-TLj*yI9c~l z&xZ4{UnU~daDp}kohbF2Ugg`|DUuLsRd-6-=W${nw>dv}mV3BPE8U_N!DfB;n*$j))>CZ}sHw9Oe|U$%r(Ri29Y(v< z1iyF>#NF~|?7ZkViHSBz5&GEVeXHsc7R#-wR2IT{Gukk*1NeUUg>d?B8^rs!3sV)bn1K zU<=aX&O7kAz@&TbVO&cs!KZ&-maXsjdQ1l`E70z@bhn-?KVn8ZW>?QaIbB?Ghc3K! z7g6MGZV&z1WvaE-P)<^CukSuO9JW)E1C3BML<*PurK-R9 z2kxD$nk1RK#Wz%HZXr6H(Nho0zFlF`nq5-gSa?f5Y8n3q33r{jJhIbk@>w#@flni6 z=y=x2;aO=3Z&a7((QR6#!2bDvddH%OJ}QUa_|0=b`?{Jpm-x{D{(&OnLyK*%4!Wu* zD&^sUN>hZ$!*f1KYD@TsVK+P5X30M-{euh{r5h!b$cCnOajgDC)yj>tl)G zRPFM|HS2jt10Atyo8e1>sbP2Z;+n!m+$38+A;%1tx!h-zthBMn#xM&w)XGbtrP(|h zA})xEnL*d`PBtG^PWrA^Ua4$NRz}o>B%5-RqKqj4RkWf2R`&8!X#nmC3h@?U8e8s1 zLa3>{l#Sy*18D8KQvD7_+c7Gk&4kv{8~Fk8@!jnGcukxEd-v$ymSu^Mhm7QUArN^6 zH!(FOIcg+I7{n`UIyvU7xkQInYLyU`yof|rC_pOuMzJ2UA>_ux5t0tqHUnGNiZ(Gl za^*_rz1}(-Q}2-dX?Z?5zR5U6!_st5@KpQ^kJ;7x$%J9T@smmv0zSIFJ$5Ulekyf z>eU;zZw7YVzoQwWgef4`Z-lNMXlH2k4^`RE*k!aIAriiO^bdzry+x_Ki7)x~(fQHYOa)OeRpBMH6{nFm3s8F`t@rAh~|9?+hb2YH+Zd*%=sM6^|U5Hn86YWEe zkZNzzN?>XV&YLl>sXJ!3n{Yxg7rmDD^ZUmTNnehdV$YhO@j~&ib>*JYmqSDE>gy^! zUOo)!ng}gbNQ$k@WxC6!-Logp|5+lYN1NU{Y)96-3O9e@K7mW8X(IjzDya!OH+*Q6 zTr)8fMAUf2eIco<#c;ksHhz3s15eR|*63QiW`Smfr5jgdBk4JS zwv_BRb5CL=6mAuFRSdr<>@KB+iUdbDQ%9?~>XU;ZIepQtTghSnaB@NzJ6`WZnwd(@ zz?&)dN>TrZ=fEaIOPEndmhOm1uSmpWy37hny=;Gj-A4Kl(bMH5kur~ud`7hX*JQ{Y zmNlDJ^6C(vv)>|PY_RWd+c$YUWWnafTlle3gZj!W9fW1WGTtaT1+FOSs}=BW)RKl~ za~oFbyMIz}Y<;Y%qf1{E-J-M08#H%gr_jw^&8lWA#F|Elp+&EKOy{MP?^h*zdk^$+ za1CPnbSa;YPplTxrC004$LDVGp~eRiGY+u2#?;f*wuSg6pzXt~SW1FuvsbPgXM56< zpglXmouk2^#T);CN!{@MP57=lYU?(rHD#|S4G?4k8ie8EI*c`NWDc7OYkm?rkM=$@Gx#a39|rwvfE@v*fj8#mh09W#dF>@ z*C7Ky3A@%wOD}#{+g+zG;8yDsE!S^TAYLccGNFiN_kJHrhwF1 zE;cX@ema=f zc?j4~V7Uu+XVmIxOOAh^u9myI?mXO%f^agjSgIq3Cp8{KVor*bWRm&URiffu;n(HQ zZo+dOYPfX*4_7zY4Gizhud@!6RR*jssH|4rCxgVqoFE~>tS3++PvOh#-5Hu+_vwLg^$D58}oB< zL8d8`Q3&S@gEV$Z7CC81J&m|s9;y49A1$zz=S?riT#S4cU&h2YtAJXPC%0?G!o-xP z?~FShC{qVb&3<=KHWjXN3bC%(3ciL)NvhdLsvaJ06g6E>WMpW?nR@i%MFYgm=HrI8 zWw+6XEK#_Y^{(3N;guJAvb@)-Ol1Gc09VsJ!#g`V@+?M9x_A7} z8alZ{5G7+?!v?F`dYaDgqQmD@+z2iq^ZMIuySct4W(x1W_xHh6DC}n}`Zp^a5*Ak# zbO~-WDASUr*;8gh)JSl{9EG)e$UMK7DD10tIt?wkOnXMi+Xx4S2;7i(ZrWPxoXg^B z5EZL(@9_S$2^|e_%YI~iEh;s}k-$w;82xsLF^cGDmIyYj&u)ho)+-&hDx&rEJNXXH zCI@f%Ey}aS7hj$Ow0Fi8C%BsjQ0*`k3mN_?!KE^QjzcR{6*Rg>wv>sAF@PluJ7hnm#H3?%;C4~X0YPW zhsCslDn)PmnE!vGlnt{R%E2_uc^^lrdUy;uu@@R>(?|a+=XLd8SjsFPnny=Xj%!Q^T;_q5~$GGsQPU4DfP&S zhZ0&opGtCbff_b32&^kb5HN>*&h=oLNlhj(!wDf4Td1O-Z9EFe?_hpnYctt2y8uf9 z!}b@7Qp8HJv4tz6cF!!Q>#-y<^mvl3TaKkZg*#GcGu0%-O>OEOxi?ucC!|yhEjLRG z5eN3DaP4H>w0Ig?D=3Jj>we3 zL!}Q7XM&Bt>kZOXRYt{+J+4T6<>@qw*p9{+6qJ$rMV^*7imB6OS{OT&gN__FxjSf&iXQJIvS7 z?VUj^FF&&P483)KGJX0rw8}!K)A}3`<=aa9j=ici*IR}1C0I_k+F%j-zP4DER;o(G zlxw?L4(5pRk#H=`V~HtCQ(aryJ&5-%-u&CNWNTc@n2D0_sGKQ&9t|X-zHH)TNBoUq zti^+TdQAnS79G@1LkK%3f_an~oMWnLzgFoSj6^qj`qy8plvM;=`$UjG@?J|yv~p?O z)SG!xI1f|dlX;}IiF4o^k%XEMW~PBC0gw1$jB8B;awnqla9u!xo|J!!=vnE?SMola z>0at%I!1Dvr1+Ewuf_f$Lexrrr_s+#(yy+!=LQcvflouiI>=jd-{*lnie3>B=Ccip zpQw5qTEH92TG!W`pIptIx|Yj{g~g3W7Gh$YaX&i2fU^^io3NF|_h>ez#g+>-IbumNld!PD;T%{6e}|Zr zA{W%OMRhdN0*$&<9u{bPU0FY!%)*>}R)B{q9({cGSqJvCDE51?gHGFnyI!&4IPUJL zAw{fnR)o(mNY+I{jim*5cMGIn9qw3t-sE(L-TzMNB)wOk2vc7{yD4}l5MW|{`G(b) zYh00BH6)J~5q>)fOGfqJZPKWnzOLfhlZ;mlY(5!BXj3lAfk%7Ep%hP5hNYFUQoJ7T zium|dbC=+{He=$9_10daVs?~I zes~PmMA5_b2$|YX=p0DYGY$Jj!IV~s`-Q;lQHE8pQ($u}gTu-km6eu{P!AEc*^O|O z7$m&_Y*j5u??SEcm!{h7L@kOFD2>gEIRz&Q5GIXRY7*oLQQjm~1#giW%L+x5S#Wfu z+3wlcGDXOgi}w~Me(1Ek7q2swpFhQNqa@mF#NXWP!y-wm529vajYpua{v8@=ldxPj z%39?#hr8Trkd273J)Njsa$BiY`hY&B{|3*(j@Eq~s>6?< zs+az@vHi>2nP3kQ@su`~NBbCPjkst0ty>hUjl8uo8UyphF;R^bX0B)yMd48`w^SSQ z6%10NqFXB?dei3?S@)z(wXt5KOfil&K1WFr56hVNfH&vws2-rO18j-Md*qdcW(Cob zT1XMF^L*gBvnFlNB(R>oO?MkV+Q=PYCPJyXQc9Rl$6B4VsjDz<>s>jnzL3-!ANO#L z;`P(jpg1fn?l9)NuxM?;O->ifioC=_?t$resQl-m9eSk8chX<_>S-|@LCSUr>0FOJXr4YD5qiYvq-EY; z;PJW)O1@a0C!d)QOSzT%&RB^mbGDX(jXu|s0O;2;eBQ(M%gWL!k z8QXgAo&y`$+Qhfja>r?*)<&UA?zyC4eGZu!uS+zomfc#s ze^126=p5)xpca@LC@~>UB0){*7-^f+7|wb5Na`9QAPg05C(zL*ojX$VFc{F$zQ%Lw z&fEs)V0vW`@5xguYNC_mA`I56_o`3Cs#C}w2~_K;WsDZDK?JCu>mG^bdtR2h``hD-cj=2;1i`I(H&l%d-(zuK`# zD~`c?EwRwyb3nPh7A8ozJWb!JG!YuvWwB-KQUAuzm}uZ$Vzk57-kfiwS{P@{vUx;6 zVj53SkQ&=8ADUg?s``U;QEA4Vo;Q6%JXlhkIO7qL4o?EyRK$g%m+NPsH@vIV_3`#4 z`Cp@2TeEz#&rAz;Pe>EZJ3T4Kq-*aLG}-bK?5=e%AuCeYFOrpyQ8)6363NAtb~p@! zD~)7ORvYoFIcy1Z&w1q7f7px0YrDy~Ae0?&MqO#_dzU7@Ev`?C zdzR7|#uy5x%#H9Lhy0TaoEO~^cC}kXq+-E0*h&0R8LCh2X-3C^J3pf z4|S^vldXKX+gI+?(zUd$s!6QezeIw{!iF!((SNIP`VQ)H|4?dol%X67!MGa9M9EV% zMpS9b=cqG}cau;G>s87P>^_?2;TH-$eTv(^shm_d^l9dyZ+@=UM}-$>9)gh+ulqI& zc)J{x5q1ig3E8Zo*SvjHWk#kWeXUhfBHJ30KhF2hi0^#yeUocaxzu4SABM4oK}kNl zon20S%|#R~p@j9rJqVqG0V8>Y07)L|cjz&|zD-K{h_y?gb-KUrrN!ISb%zHPICsM1 z=CFKjpYfA1?N09J#6jXm4_@RIiLfd4yHm93uq@} zMsu?0vTBnZrv`3*E!~Z;M?B>s3{?EUC;hbv5#fHBk~q6(z%&Kvm#`eT+Xz}jqKG_u zCf8ZEA=GQhS&d(8i%J0{h z!dHVFjF={s`=}WzHVLQW!$tP!0Nneq*(J*GQ?Ng?z)ORPS~j@hzc{ zn_hl{bgr;B+EfWbT2Y^wHb!Xdwh_#3w{#sLW2kyAvV2luD}0QkJe-_r#Te*Lly=jU@U;FH2&9emRF zvfqtM9@d||#2*1aG=fiAfC=0p22fr~lK#C8zkOLpz0AQ3@}t+qb1D~=%NoOv@t|GQ zFVp2Y;dd`-S%BTl4CL5=Ik;C3Opu=~@7~7z(E>hp1Gejd`7asX%NEu@TP|%p0P6s_ zGXXgNj|qP1g8d&^=l@@Lm&p8hM)|^4&`!8pKaQU$Qi82NQ2c=p*+msz7|edyb5Xr` zQW}87g9JRl1@MDEmzpj(e@nkm1RF1;FM9nw{YBsp#?N70)a_hsY{25;VQ?g4n2VjM zld`du30V8tPtC-c6RcfaazF!gE*qGg`2~HE6rg6#f34qfhS~n8{}_gvxy4WZr6EX8 zHkKw(CoLNVC$KZ*Z|6b0I}12c5!xs{?&2NY(Pi)S1X1w%o%j3f3>57m)PQ;;+LPf z%jdZ+T@~lDj&X5fJOwbjfak&q9)Tn{(?x?M9tS`IK)~I*f4naN-1RF9{(!S7fN|Rt zW(>V2p$JNR1F$Y@fGOA;td9Xt0Spur6jT%paJw!pIvP4IAvOjEHX#WT<-J*%`t_C(EQrzI{})GeBJ~R z2S@q${l4(vzSm#-eZfio?@VyB=^vYcaR3Mc1l$M=hlq@Xf(VbneYq1A;W{2C;%(Ij z_%sfWxsV9J-LiLR=?K*tjk$Ro{k}*b(?_UpOmCVv@e(B$J-HznsbMPhA;p=GxL0!q zx>fx2W1q|Hwlu@5RR5BwrvAB|w9@8*`CTnD*MR8svX;SxJ$@N&bGK)&Gs;_s7WctD zyFWMWf*X{LA2K(c@wB5~goHYwi4)HzJ<`Ph zkZ$86`C|zG&m&;?a|q{u+km^P5g|vKxrOXWw%ppp4IG8{Xy>% z3BNEEV!=vuxs2Fr-jXNB^_K6?BG2A;SR0w|K3mn+IqHkvpRYEfB{!7DN8QP>I1)Y! zEpVO8@U90}c)OZBE)mQJKXX zg1S-F+R=@@)K=ocPo0^PPst*-*|U6S(T<8XkHmGH@-uE0)hHB6B(&D7L5VBtRtwjB z%W}?v_>>dz%hHf+mM7bT`#>(DXTEjQRN=+iHT&m}sA{D1<(4(A zT!X(--)T5%{_^%d`zUzSpkPnRsWVpprG z%cxA=W;%HwSW))vl(YLBWerRY*5yyR2>Zr=%JeKu;^TeAM^+#O9sX zHA0>H35}D7F+1SBS&fbFSrzNZht&l(?mpq)`%ZQ_q8{l*hGIPT+=-AQ%m&d>KmYO* z9poW2PN9sUHI_Ji#Do2wv3u`uEL=*ZhmfkxmsXAHY9_OGjtZ;RNw3{5D>syimcew& zbrp8=g|p0MH^{D5P@f7V^Qa7oOg@9Dl;(P;zx%ewBj2nrp)VGC>Hwdr{lbZ9 zW!OD>O4BJ}kf(l`=#AH&VE3ecy|;5`bJn_b9DV0Nh9CAz6!YP5(`)n`1%7`IvRt2h;sxSH{PI)AgZ)$qW z;D2(lA%gD2J&{t%3rOD6FoTc%zGrtNF6ELq6U$6>W~=RAzniqm?rm?%`JFYd%h_h% z_HIZ^tc@LstF@j3LhI+iQsxXJFjOG5%LS}Fn8`gWNyqPcBg-XnN$>OC?7{X+%P1V(wvZEQ{cAyrm{P`);3-u zgF{DV)FQCJW*>gX)mLl5tG-(=dR7-2Tw-XRafTONZ7sWbO{Vv(Dq!i0tt7nkzT9gq z#k~8Z%BSd$0nWM&1fn?@G*SKxy-$mCJ?|B79+y{lU}sxvi<1#!(f;uFWXc0;-<;*( z&i!5_!}dRc?i$b!(aK?;$r(0Ykiv99U*;vo^wFb*^?(iPSpQmvhY3c+tp}#M7IRz zqMc=M#KB%x%VLdEAh(}r>*;Hdn$ZnTZ;6H;nLDl}g&~;U`E!lIxsTVu`xnB?r`QM0 z^F2M+u=cug?ZNdgOPDvb8*}AbV*$f@$pgFmnrFu^6Q+jd3>HHd?YygVb}3e}MfsB# zU94>i2;Z$)?tk4Te4qH$$?aS58D_$c9E2Lr0@-|pns45GaOwJ5euH$(Gr`*W+-e&y zShlqjW_Tk^d?EKcIOA!rEV*dQlzo1wzcOcPJ8EDApPgK}f0__e29EX~G@7+uUS;8p z{kNQMUA)oORDjjZtOlNER5_NKW%Zh!e8<{e|5wu4Q)r==jk}*rn^sv;ds)(*jeATh zwhY;eWpo%XZ;0oXi52YDB)rk@aMSGBV!O%!Jzxetd?}vQ@@5X_EBUj<^l?iBdnNRNb&!?>5_3~fW_H$+{ z@F9ZoeYu}suUAeY=0#C)wqB}lD?VnlshL++Hv9qI;KuFn{in+;W)X7K8Rz}G%=zho z@h*FO*>C6vMFL8&=LNqGbnKo3`H9*-Z9e$uM~^E*@;a*NC8)0y;DJ6Qq2`IzQqW4U8Tu+_7W<_N_bVRGy)N@Go4hTm+e48AY&`zB=1 zEhzRgf37wt|3Gsq+8DM^3(i>~y#j9%(h8uaWvz19qK^}pcUED0;4U1ZT6TDB{56f! zh_Zo@1$aXnfVX%j7V}KI*T|h5#eMk8Hxc;FlbQK3Z{>DZDO~~fhq@B}1HrU?C8(h* zy5P+Te2zJ;w|M-`heg{bshrb6g_5^SdNq%WGRNz^`d9TsSOA&I+=8g$p_*5Ks7oGG9SnYQE-k=Fn~Mi3P-mCId~3N7t)(8YKMb zO1gyg4Ig0|>K^;QV(F?kv|YBd9&dT3Yc!;LO(Moyx$7*wxyB0FbvDc9;mZ|+#UXir zostKI1zua|aqGp9l#%ZN)vk*^=EY0&k$rFviMM*96?&e!aZQ$E=e#^24ld7dt`1KB zU^U3%Vl%EMd(Dl1L_dBNcJ^VdF4fy|*_$EbtZRjo$j+rY$KwI-U~l{CPAaiz-mZ1g z~C zBsgxkh1~Cn=7wW9^^JUa;;X;zTjr@eA~v?yF4j?Pp0~np_I<}|aT%Oh=x6Jm?|Ng6 z(Hvr zPitB_j;qbgoW505RY70;@y-*`Fjo_iuHvfs+yTK7rVsLu3Zr>hv7+5R~IV_iQ>ZeE%+ zi0y}E^kpbOKiBOzgf`gw#?kNBi>6bsD}AsMTEF}mNQNP z+A(g5A-gXmf0jPd($UArv5uzu;}e&9#=XqetSp<-tMmCi`%TP^*6ebO zK2v?sj&#ZOE-Bu92-BOC&JmTyBJ@hY3NF*uXDe#8$@8o276H)nyy`oRx9v&?y46>- z=2u3$ivm{H^Xer|zNdqCSo1d%^@L*UChc8rqHDvvlm4U(Bu6rZPPMLj-65}H&# zW2*P07uVxvJQm(Y`ILQcic$r(Gi3sgPE+|%@lPgu z>_=<)8CLV$4|D|!teK&Lt(0X3REi^^lp>>l;io1{veT=`7N@6CQ}zLUkSaSp_hiW?s*r*=-3`kLEDQYMbpHLiev zxQ={N&#GikhmKBR(E8=XT~X%6bD)Rnd~nAutLF%&WohSa)?ir_Oulf;>P=j~M09*= zAmUbd4t!EnzP;=`U(Z_7SwQ4RE+0#LWK^RuyL=Y8RM&qBOP6fs7;Zoj^gINsX#vu8-eZ3*R`$J?v9#^otqY zn=4fnk^YCdEQbpIfZK-tAw6GtuA@*b>&ax6HXM|Dm#zG)Ym?Js_rq*h&0b}+D}pM zb6jsGslD|j{OOwKs(^BiQ>}D>-EI+;)AFYRFY(x8rjH+%MKzzL+@IgsKYfjS4Rdfz zF6o(>TDM|;msgQhn-9N|legY#OZH@m;TdsnPH!b+?~17K%Dk5InnGOPledPxrj1Tq z@zPRJ!ccQ6`@-nCGBCpWKChj-Q_=QeHhzDY$SF=8}oJEEm zt$iv2|2^w%-4RuI$^y%&l^(}fdpK@Z5fXb(DZg3~W+yfLt*xwPy*k%~$>p`Co%pDz z@M`J)(W`+oT*m5S{*_fHEbMjSXS+oAtcC15u9tB$47lv622!1j)yl8u?Ve(9_;xZM z)WQ?JWG>yGn-_bD*dG@=Y1bO~t!2D(aXYKM+_SMb$;GLkQ&$r!KUP_(T9~#!YvA=% zWpr&B@7l37%UDRel^J_hs9Vme=bJGupP}K@bboK`bnSRE_Z(NLy7ZYDgULR$Yrae4 z^5U}NB4+2n;5jghV|`TI%d|Y`Ji6+|x#ptW+xo0@hbz#*CVTyB9<0@jh&`ipawwd2BRR(Nk;`?Z>)<*N0BByU23;&H zVFS0p#U&VE3_t;DKn1V>X=m_ox}?D6X8`|yAwdl;@3H|L7Ycu@2w$iL5L*7a9(>XA zm-J(O`7aHBAz45*mm2=kc0q#5)1Lz6%-{c2LI4RY6rh~*6(GT<1(Ykn012a1pxjyx z>?5@&0F;wP0@8BfKskI9ARV_1l&$Z89Oi#hU7p8Eok&((p+gaRP?))Fu!`W58FmTCdBE(k!}I2JH_ssbdyH3M`0 zaUdtrz66+Oc?u*sDg*PvoWMJ$6<}U&0_3Ei90Bw2C;uuz4zwJYN0t0n333W@fVpAA zf0Ym*{XGoWova5k9|i*ll~q8tY&LKlSqh#fH&_HX`|=3LyI~8Q!{GpV^@+ea*M&X# zdK|#Hu-(5(2vCyX1wos(ASC*oz&Nb{gmjD?_*xHxT+_1#IdhO>2-QnOV6Hw4LPZJU;7t#qEQ|p; zi^moaG68yEX<-jSLOcd6_xeK!_rpQXYN9#>x6JHcB?LH_(u3gay#kJ{bs#tkFM-oN zZ3xbwANZL@>RyE4`kF#eo!cRJaPtrh(mV)WfH}w^ss$kUyT=d`rLPbIjIR*VscHxT z?FW!U-{%U!A1Hv_gxrDPcP2uZ*s&n^%^@I1bO{%N7a9W*%Q1!EWkMk0cI6Pf1`CjL zi^~^+*Ae>9668D|M1~|+96-WyOCUA4IFL6_9zX^x89`38RRtX0T{FmwnHz8{d%X~E z-AFi@6!235(J5zwdtLS#BFAD2_f}O0BKWQlE@q7kVWEo9bDS|R)DbU4O~#WFu2OS{2&;PH}>iI3gQ49%|XEVN;V}N zj^=Zav!Zkg$rf%t-{?PqL^&{?@9UjF9;Jhp0%YG{z|qMyfO6jn*b`v~XaP51^P%MB zocZI<7V_nc2F{x2)7-=s&d&Bi?Cf?B5C${;R=i6$a`sf!iV z!)j(};|z6lqJ}z|h|)-?(OmM~g+P`q6x>=C7HTuc2ewc*n4>i{CmSyfcurIiM^iH)HA(58D#4m4 z%}?Xp+}zmQxY=Ni=Ioq;f`aTETz4FtOCR zgyiy6Kh7lyn&fC{?`#RPqkaJ1wR0Aw`K1K3?muh!h3p@Kw*M=^3)4_hMZk_iY7d+( z?aakEL@qASuiBq%2}kGy@a2mdAXZ}krFSX*(DT=BBJ39+{>8A%vtJ_nm&X5Kt)k-p z++JH-_8-VyTB4{ZBndNdv4z?>%Snp;xbmhj6H8Me`-`_oUfe$y5`19H4K+34Vddh6 z3bJx?LLaa`Fy=60H5TA7<>7(y@Nk&&UmEatWfyS#M=O3bg8p&gpX`4)AXuaRKaj3Y z@>?KZ!F2`KZz1qo!dKpP1=nvO@LR%H-gO1nZz1qo!dKpP1=nvO@LR%H-gO1nZz1qo z!dKpP1=nvO@LR%H-gO1nZz1qo!dKpP1=nvO@LR%H-gO1nZz1qo!dKpP1=nvO@LR%H z-gO1nZz1qo!dKpP1=nvO@LR%H-gO1nZz1qo!dKpP1=nvO@LR%H-gO1nZz1qo!dKpP z1=nvO@LR%H-gO1nZz1qo!dKpP1=nvO@LR%H-gO1nZz1qo!dKq)e;lqqA98`(fls!$ zfse3Uewi#h9Nfh(m=M5UM3jrKWko~---d*OfrfzrzHthCc@!QFCKfIhIyw#!4lX_c zAt50KHZchi0SO)fA;IOB$-;wu5D-xj5m5;+(J={rJN@`F*?h>Gzr14V>dR#RFa9#w zQ}yIP@T&*^D@UY#xA9MJ-QugM1O96O+F77U2jdsVIkp6(^h(~C8%4q~Zi7NOlqW^y! zuSz;Ux{8wlPHNtkR3h48CoZR%HP{>2a?y%TD)P134>&A|ijXRzs^L!?zgeb!eU5D; z8mc!{$9!V9q1-4c_Vu{=XuU4%HJ*oxxt?);FsZEV9;m8j%e|7%Q?q}LZH7|Gx-(O!y=lI_zPZ?>ox6F^SmGba z7H&CcN#-xuuy~^m8mbYNBxle;gZVBt@^Np$=xR`}o$s6HwPH~v8pL-D_bbN^p3KxY zDdV!a_+GOf@>`dUx~Jk@u|sVV*cACcIQ!0MxWe~aNr;3XdN)x*^d6%Q5j}bzEzucm z)X{?=dJsg9Aft?K^cHRO-g_6lGZ=FH@BMt&{r&D)>-lijI%lo(;a%t5&wlp1w?V3- z`$o;=(OPTl;$~8AeZ0zN7*>cuS{P#by+FlPV7Oz$m1SKzra)$R<{8%$QeAQgqG>{vNeI;EGeLUQ6C+9x2`^%Xgm>M;hxI3f{yHYJnDDBGKOB`#rLTKs`Aw9XsbvApcI#(*v+>P#N!YS{VzwuC z^BMbQ&{aNjsKsB-=UNaQliO_b2lH$n%`A>DVv|V&_9w>OyKUqh9z8vnKgI7n%pY%L zt&f#c3zPln5_<@7{+~RG|IhlCMx-2(U4A?B6PI$&c)FAKYZg7)Y}GgWB`jT2RYWBO z5tnRZF{-P;g&NVvzm>ZmTOzs3z)*V>?)fAYOr{BNRsa6(UDcxicyk@RUDy@CjPbk6 z_p`Z`hE=Lsbb<#5JE0X6H7?1qOW3`ySp3Da)PX-8cJP;9*B90HRB;%01~`#dEM-=_5Y;@j z$d{u7HNxUu`5UwD(7!ummTVVkx8dL<>RcP@d(xn6SqLeaq~~Y;wEfKxDTVCw@k4_1wK7F3h$6hc)Yo8hp{8 z`p7_fA$(>y?}4!WEM+-N*&FMa+G%O_j-+Q#^e z%*(k(-)wF4B)fr^q!=%o%&5cB&%`?^+Ax7U8(Jo2I=76(1-(2k%DLu9up#*Cs-V#6 z+;uz7#z*JG0xC%b$xv_d=7l2`hf_Wvm#g=D#@R)o2ffdgR&?9Agl944nVQkUO``6A z;AGATd2$GZKH7`o<`VAQW5qHvpRsOVOq3CK1Zb~zmSUVkHpA!Ov2(CzQo7BRj(g)A zk%33QARP`{X=9H+ZD+Um`rf9E1kbVQLDJ(c!g`F;-BI3hu9&CK*ZWT;&fmdC=WhkOZy+E86a#&P1SqZwCJ8&bu+7XRb)F%uTXY@qNLc+UF)1jr08M|-#huu+3!8D(C0ld3evejL11}F zL+3TI&WArAB_WURtRv){;Kw2;Qby5dSZ`fdQr8Yy*qKV})Ov zZM{TfvVEpwXF^E?$ms`l$E&>$sRP}OpzQ~o(`TiX^9m}GQcz#A_$vQ}k9R=SUYh+n zf5}H~kE?Pb^LpI59Q@64l+!Py`yNF)8%O}KwjPTv@dXj62(QbVvn1ov1Es!aRMW&P z#u^*lAHNiMz8we7m`Tw!cKkHgIH<6?coD*TXuuV+F+U7gSNVta3=so$lBmI6f1}@Q zbwJ#Z&x3kIpD1|XmzI6YY>&!%nQ>+s0bOykgFgS}m#`7m%|G(kR*IU~7~66|;c$L6otc#Q7UKiS)+8U(l+`u_c5yK3NoxkGfS+PgljSeQMNbexUT5-arymJ4v*rKE90bYZ1UockJu5nzA0n32W_1dJ6Kn52t$CaQg% zQzAuFaJ=1kLFh$z-9r~yYiGx*n)UZS&SE&A`sTXqlKKu#dKrV(BfwZMcYzuDCDoW* zS=KjxxM8H}ZbQtJf;nS;XQsXzl_LxLuYp`l7Qc#Wf?VWVFGfxI2L!2syS0oVpI$eg z*$JRWJKKor*Ma8rci}~Z%-ZOUd-7{H?)HIYFZ;{OGRM1msW(JXX4SRPNF%#1mwd+f zwAQ#mbke+lSjeA^KKa(S^5S||l@$!;AG{P{TVGSF+PY-7NdH{7{34ijp$ZGAg|B(Vm*xF~WC9_c=`X zklokxV4la~3(}84c>AL|$gBwa8D&mWvjpQ0l@88}Y5|0%6KttZ(SQ0JaHTc?K9@LQ z+e!RYB%*loAP(jV+lk_*C}WX9^qKBKDnQqSc&+CCQKWEaQ}Z5%6Sd*buje2Ez(aPB zVfS`0yXu_x9GU)std3+inU~-9BZvpt}rQruN$>a=*%Xljd>8^^gf5o!0 zKi?-sm0}nowx0*M>;Q9uEXbO9$t&Gl{y_0w(_6DD2MMl}gjM5vyd0Z%+kUj{(ZX&hGsKue0f1 zQszrJO5d1WGT;5=33%e?F?JympV-mR5hG$4T6JI2Gyj$!m5dg>-x0n|brvv|r5gn% zus_|f62(z}6?eAOnyxBvBk0PYsCOzXPlR9iX?#AXY?c?zMubvPj|M$mlC#zbMX*Ku4m;aSZic z8V0gvq@BKrd^>e8?vUX3`5r6LbPaM=e2-6XLSqC9ZJ|AmX)21}1;aDN08PCl!BoCZ z<{-R+L)?vtM9I#9(?*HtuFPRQi(a;qK~>M9(HzqvKIl?Tw9ptO717RIrpu2%+NW8Q z?~}rS2S#A}lEKaPsE=-UH~q0h{3%I{amQH-6Z&?m^=a~veSM30sq@$c2ZqXe`tlR2 z1N$EL^rN*OA~@0qb6?k|u7Sb`YP_Dbwy! z=QI+n-hN^vkQB!S&DMS}i6YTxRu6Bh+Z~0p2M{RgNmMz};b=ylAAmZ30i{if zvo@SWG4`rNO2pmK>szQrfbt$Uw+OpAE_ug^cvkW^J$Zp0{-T2JqpQ|T1)elesDfGZ zSVLe%87@`seupPs^o@B=XTD(4eK!ZzZOhEY=v|t0_tUxEn4<0YK^+Km>jA{-Tx*(+ z{?OR@^e&o0lAU$j$CA#U)7>a3ku4Y6MSxF%a`q9G&De0NcHLEZffd-8*3mL*81(FI z#y>2Q>0e3?yR*2=cR5{__IkMkTt^pFJDPp^qU%|#6~49rPaRghQGtB<#l zXR5O5ipd66wfx7fWDL!5V=b{$?yDR<2p4~7tem%3WVJ5LFm^MIM^9$@uYU`2Z}o&| zHU8|!01f&VZ2wezKEDO?Y@RW_wsj0)r{YvmeR`^ZqaDUpQCzF1Sk)KZx~H&2=k{O* zIaP2z_;zlSI&CGl;99wKKY)BEx6Q{^MJUm(JR(Oxmf4kBeKUS!dTRMtH9J;6fa30F z&bW2tA~!OME$n3F3!{ICYsHgbefkPBCR152XS>@PyOMsJ0nHAPI!R9C!;+R`3%duR z6*R3A2x@~xvdCEq0>5XrcA@NRZl2wTty$Jt#T%-W(T4jVjZwiKya(KPeaBoutgF-$ zg_eJx)5npIPci?u4IK8Tdd0E_zhE>MPg6s9cii(G;=WR$L0T@67s=iR=Lg-K7dP_6 z-2;obtgX);D1=<__q6Z>qjh}WkPs`54nTjeR!$HoQ|JBgk3Ux1wj0(NmDlwz`1}hzR2Q7yRnu+jFaKm#cDPQ)JWMuBd z$4VCWNOTpUpo}l>9JlpXI%={9+xS-Oz?B@*)CcY-4)Cq7tCVrM_U9*( zFhI~?z@?e|8Mr6@xbvfR>!Uy?*82LpqI)J4569Ql%g%pdKRB&Q_o6h9^yyQ1-Tth{ z=K?qnBnf@TP%dH)w5?4X>?~3tyX;f_^(e9*qYE&GNhc(bSrPM7agoun^X@6Itookx zZ-8ok6I6cGD4JyOD$f~w-M9h@+MK?47~!k*hheLl`=Z~F^)z`^(KKI8Mk=_@ zu6?^i&qjeT;K&uWR(+6Yzh20Y$;mWzLv28?I~4fEE$GPTt#{&=Im-Id3)L)#qF>$1 zDY)7BJWD^!+TqbJ4t9?A-W6&oUdP%u|M-6RUdE~$cU@Bj&<7keu?^6*xN0y@6|%8C z8nzFAs%1qUek?TgC3J}6WiSO!YCY z3m>AzycUfGqM{_JdX)eS7`>5sm6jBHk>rEyl!7vj2_CBkuCdRDKu_RxGwq(4f#3V% z)G6*mW*zK<*G6<9W*m@9H`|-Uc@z0%_FW)r^8mM%mPDDmU+kwaclc0^l{&Jg9C16; z)9i? z`%!lE(`|vzc9lqt?iy99z6bva>S}_-?~FA!2+!3G`Eza^q1lqFpld|4lx>2>5(z>t zl^hZjy)Bgt^-rGwLjBof7qF?1ROHA$|EKthoi-=`*Jn;1!^n#3l(_a*+}4#GaLOh8 z!13hi$Gq+oCA?aoII%|d0L|T28Y9yMhcEF|D{kP*FIf$-`6O??C-yLP+7_tIU%m#_t1;x`FwsB%q| zI@Qv#E0CjY;X)(8)CUMzQRnYHxmY$B|KdzDN@Kek=rHtE&724*4b4VR#CD_azxod= zM0;qo*H=gYb@g>+WgG3??Y~!FjRven{bi*Tqc2%kiW#@Z*)pFUQeYwUY4IwWUY1~L~1_FgO#36-JC?8 z|HC2+7ziMoVr1HyCW__+7e+b5shOI_ZZAE|2oNZ>Nt@)S*YEY;P`!D0bZ_c@F21w; z;tHG<_w#;=e^ChFJlg4^=)%Ljv3SGK3ciRV!047w=jzvTodA0hgV4~W78wwsu;bee zRcq$DsN#1DTewq=59YP1-oF-U?TFVRbw64_+g}2)PU6RMvv{rDUDd>t0LJsXd?q4& zGV4VXi7#ic($0=>mij%KJ{a;9dG8#Ve6RflbeSCjI%w5h`cR5+)QGs#<5(?1F3UfB zaznQDSnrHg33F@7g+_m>T`$TY8lGxOF`eeIu4{7Uiy$`O5nP7W+Rs)tW(GO)xy=of1Z9#)?=};WsB=B$7rvXn00xnV$0-4 z$dAp=$7yTs0B~Nn)-6I=iR5NaQBoM+=51!|9#sNOsGG>D(GQp)|_%L-c{~WvY~%(@Qyq&O@d>1 zj_)GFs>_kJoFfQkuPyugDwSWN_r+!his5hD2O-H>Mj7r-y5a9Qw?T1PM2l1tt8q9|`kXta7tR)et9NrA`z3Dn zM2D{vQ`9e&4ms1&Q8}ggtNk;|cYo10YjtbQF_u#(6RV3z0we8*yq(C93i2_H+*s(tGfM;j9hr$&Ke-*Vuc5Bfhp!9Co@kjiVb?L$|b_{fYO{lf~( zYRN780a{6`sD5ZAK6~-tD~RsIT{~Qy-~E@9G{t4l&rknCPDSqVHjjq_i7?8?|F9w{ z4@m9iN{Z!e>c97H4j`0b0vj3?+c3q4tzQAv)`h>&W49kh4iJZq=Ub;+hNoctqiEvK zoEvfIH}K9F+;y)%CLBh^5lxb7nNKv%NM$oW#4qPXlBd$W@TQh5n;9W^~4F5Psmm`Up#^34Px0(kFnb@a!C z@)pz~=I1ND$gpo-e^R*#ciOhrRZnXbv8YSv^v{%kG;DlT8X{+~zxqxeLbTf31`o7$ zswEUqGctZ1*ZhIOmYQCvGZ`XHu8#59jEJ0`#nHs3yi*6&!Noya-Sjjiw~e$KG{ zq1ubou8R(<%5t5Da5c8Q`RLLaE#+|(mDUp0N z&O~uZyn6vpzDj=&b7HTtlldbK0ass(sRl_wrRF)pY&$yTCgIL?@8JS^peP{p(~jrc z2C_igRy*FZE%WmES(4oTo{GI_@(1%hbYil5V{lX zSUTR`N_cMA!V9yIt~|jG5E#24b*fyn+k4%DikE>+vx(HByHx$IzM#BSjz^6?adK54_hC?E9b!r0g*lmL7>Z&<=6G<3=H zp0)nj%*XBQl*8NUdcT0<#`)dhw~x5gV3-)#RMPK$Z+^vT?j6FK_ISMlk`% zaN_h+V~gO+x(lcs6)U>dVuNo5Ryt3VIwEJ+Y5#-rBEMH?lfthih44${z5-Gmc3zf^ z0>Wz8ZfOQALcbD?=lel_p;>te7mZjylx!6_ONu!EL2a6Oz?fz~l}7|NP+sd>i`gr) zGXxkajc>ay?3Os7;zLm6dbiRd8g)9oe@erK$ZbF0c30<)-)m-xPp4BEUrH87teXPH zjoMmX*Vhxjk8yvLV6E90t00x3U$O{UdWp_lnLi?cegBF$$~nz5eDvW)Aghx>PJa@^ z$WV|o;9Jqdnlt7;e?Xq`u1KE$tbqBXOdmfYlhURL2!;6o>lSyIHvp6Y?F_Fgre2%y z8XX^&>W}s%h#wpUc9M_(m9P!cilI3yd2K=xP!hk zYYb}@j1_e&1T0OAZ(h&r3ztP+NikP8R8$^Mw0Hjv;z|oa$c?y?5h_xbD!I?^sY>#A zJmda!2IqaDH)QbZg87@2DXgT?AIG6Bc}u>*mk~i#BoowvwFHeod!>+lGe*~3I3Abm_aUFfZ6epzP zfmBJ(VPwu#&=8e*Gif*RVKW zHnU}Ngg3mD>BIa$mtcks9O>|zvm0+TcVwokaH`5@pfK{ zd1i~Js->26aq&70CcG<`$MLz*cf6IvJUOmyr`NtG@ptQd+roN+jTeA&&PB15&s(~7 zCefw?l6=~CMB*2?5Rs?s4%B3H34H1ss^A9(o70WX$U+Yful+M2F4Ciex=e&gef<9U z_GEw3cgbAnh1rH{AaN5^swAaa+bMzF;O6jrn_m3H7#`xsq&GqB9Z=sbcG2ZSgT_;d z3SsHLidFNOx@!#^o8l{y0-qI4Wa2Z2A9(vnd|oyw zWJsYLQiV_fyrnr&>f4yj889Ly!O?T7&=??tGQHz$m!O4rS*%%d3!w0U{criF>$?2e zZe`yQG)b@cEvkC+hWQC%kIkActbfWR{xo~0sPrTbp6^>{A0cCWJ>WsfF_`;T9i6_n zL|G^l;k(Ly<1E_}m%`x@5OkJyCvt2W+X6WL9S?sq$9<6dPVzGPzP{90$Qhh>ub^h7okE}-H!$}r zl5;}J;XiIR3Ah<|qyh8+BQz3eW?j!pQy`9>ItC&&rtQp7+;?&+5z&KvdEK(C(u@^XpJ^8$90zoy#v*-CsK zFE520o0~s0O&b2|SMX;DQdX&pk790qsSn(hd~fh{G(P_Pw=lwi&jR}n#~w$v+sE^_ zv3y<6_Fpl5;;F z|Fr!oDwLXcsq&N{*SfPbq_|eArpc4;A6Cp8ykejkt-M4xv*?j=el;f__Gjq5n~8JO zs$EsAf}1gmh$_TIBMUR-I=bsjVD4V?*8ZUF$ONYz;{S6a5;aOY*bz;$%l(Ul2O51< zva@I(%^~cs^wBafJ(%NkAGOe1)c-rf$|%mh)!DYMY2zV{Zaz&xJhEmzV5l?~Ke7x8 z3Cb`>j`7!)O%BJ^L(R}GI$m_7Gn_E?KyQ%fEKZZyPh%Fh~00fP!l4RMr7Cz6EHlE5*xfUg{_>^^IKa~Jc2-&{=^w0`0 zpM<*ARjjqX*MHo?hUTra?_>Z`aZzv>z5~83!`#O6~;F?~ObAyTME}QNoAxdisUc;GvN3Sg=`B zRD;bZ1MT-8;~Dx^@Y{z8w)b?H6KFK&y1w*Gz3xGNnKnirs~n~6M0Ia1I;c2OOKTK+ zKS|J#&BnaRTGHOiqcm(`5;?`sJcD<~kr#2ArC>VwQ-8BtO4AS=B?PU_XDun<>B;f= zTTw-N`li%WRcdXexg%tl(f5%Nr4|Rvr{Nwm)7GDr;srIUgw0ra zQevYR^FVcE-QCl!%;42${u6SB3=)Gx`L zb{XrU%s9NW9l}D0DcJfhsyoh9l6LBPpM-Z=dY7Ou?t_u7o}NnG;74rwYx zJkxOfQ$F|gkIz^PTP=a(t#<0+7M)r<(^5=9M=!EW$qf^|J~$N=j0fx>8ElLD3wM?% zk|A^*F5*^11?Q!Q-J6DFAAP0)UfwoP2=*lcj~~Z?0SV7rP#oj1p%!*Y;Rz{Za8$eR zeIFkz|Gb!ySm6nM5xt~eqkC_$K91*SAD?O6L}2NWIel}*pvA7Xg$r)vj9vJLvw8C2 z-7yL_>_?h!X35DtU2hNrl&p0iQq{^SPsw*_`xmIWa5h@VV3UbQt$Lj~^be*unZHrY zGiI1+B;ZdOM)AjTA2V{?f>cW0OUktfw+wvYkK-gEQ!p?!(%kf@meOM$HCA613?dl3 ztHrQX9W46`B{*92=zc5+Bq8t#sG>1i5>k1!SnH5ZB%`Z$>iIV!_f3}_B6S~7SsHbh zb3*YCOG|g)tzMWUde>n6`iYs*bbP?TJ$@iQn!vf#f_TwB?lPus)1v!jfGjA+=faoF zq8B?Zp<73nQ>i34@=eJQ-+!bT{y)0nN3{7cn}bI=>Ee5;rocau8~#}i9!pX?7zIG6 zZ>C!yv4kXB1ctWAz^D=hJFYTP>~FOEX+;YFcUMd1(WxQ0)os86z5wEfaLLwHl9N{> zrPcMkdcdacI^^6uC5WFh6J@)x;_^tcI3Ar2CCpzV5Z4MJEMr*g19Eud3U4fNA2+3$ z#W1X0dDC{H>W>I`X^mx`lcEBq7eVhyQ2n(s#CYj-bHB=b4=&ta4oss z?yQY=9g)4w9Q_IMGuUBTiTcmpj%+-;VCu9`t!*aRNi64(hckigJr|qm^nT}87?Wks z@Q26?0o=w7?~?sES9}XSxS2*xQm@Le z>Tc*{DvbL#%92XaNM@>oiFrKFLGJYcg zX1dqyd1hoX-!mo1(<_n~Ok~zx7X_HLS-lD>&1>czgl z{D~nZo+*Xzd&m{JHEFr=ix!ebM?0tt{H6Ckq}xS@{h=?4Xmmt)S$Ifa{m{y(bQ`PH z0$v-kC%Lp)`a?)HGIgsGwHJ()km@pNsENa;vqXMc-=j1q+NR-#86F^#u3(W7e9^=@bfZ-&A(&P6dvfiZ6RHJqyF z&&z|NS=Fd#QlD|;J$m?Lf5Bs~_L38t+xE-I7_5n!LD#5P-x0D~<_6G=C#EuM!#Kmm z5cw{N+swD88^#MpA42v|Dp@BvI<{ylWqt8(Q!ZuEf_5t)q6PHldG6-!qOR31k15^^ zYkj^O>2v{gN0KemEMf-ivz%)|XTY}FHXsqZB_^AL%-bg-ZG55JtaF#Qe zPcx-y4N-b|4fvJ)OhS_~qUrT-drkT!OAAl2$G|e1ai><#x|OXKnY(0zNi69RQ+Z|C~{dRL=K3r>-ntPaBeow=5;{;VEW9Vi=pGVp)=7~@#ah+G!_bm>h zA<}EhO_%AW`RmTN7-b4mzyV)+6{%eVlxJP+mgjDyhs!T(pXt4i8s;!aMUU z_P|Bq&3{j zkdSI0nv2{1xJ5w*SXs=y6s%r2`>VhVBZ-mW&(Qj9FRcfu=M1bUcGx0>Qg9icgavl-#`x%Wi1$Z0Gu5?D%2g>@<t|q=tzjwxIHWe4;=U4{IHmvMC zytg+*CC5^jdxqhTe0*dYdV;@R8*~54$k??#P#MvU1}xCuThQ#VJ^e!|5pBi+5PEI(2kxW76DWd^7&$Z~RgNM($ZxoT-uzE!!@MAx!? zm5^#+h4bH!jkhTdgr}OLuzjN~PRm57ReRk^!yA*Qm2Rm$W^V46pnq^9Ct^a}8t3X3 zL0W`Z!(+AFM}!O3O_1z&Yv2~AqKuHKdP(O$<**=$#>{R|DS`W%I$!j8$+H}FUgmhM z+Io96eA(?1?Ul`xFHTMUMxeKgu?K_6Obvh+b~lb)?Xr^J1q%NnetLBIOcmN}%bl@q zNRXF$uD4T6ljIMk-=%FTnm5OIYA4iBtGujtWcCOkLHig95gQ4;=+9nk5j2jA2HA*9 z`u1u|w9~gy^`FIAn6xAoFU!*tG?Iz5;q_b+GP%_Y6t6ugb+kCGc%^jLrNM>a{27A9MPL{E^`<# zJo4~)d`rKBnA_Yhr!>>Q*Lxy^y0Z+LYpMeDTE}_(#pQ{v1eub>CC8K}baPa>mdG`9uLElecySgB<0-|m?@Do0s<((;;Nsxi`~h279JK4&l#y(~&0 z!OATt0AJaMYR{)_@lD1yrEdWd_`Ma0X|>+owQLg8B1QIik@7Mia2_t`1iuRkv*@Uu z9#A-3d;JLHUD1ZwTjiWN^zhwFzjC}H5q(hBV)Ki>+OBQ(K^<_Ph~FA%#7S4AyT2`K zS^c&lc&Xk|0y~4KLMxOy98e!fBn3?mDYChou59|P$-nQqa>oa%PqEnPi9V0CatM2} zMSc~CA-!7r;Nu+Yr(N>$^5L>JDsWUfHSuBR@F9UF&X)xE$rimc5@0v~8S3>?02$4wjow zHbx({uCy41j;x+wlio&B;&7dKdF-s}ljVAvyfkiD)h>=T!FybK4Ti2)8= zYs#WmcH_5<|HX32LaZ^!L?IouDJ_b1A+=R9Z(C`6o$@+)X;yvd+e-FF@sW84{HTVV zPtvO<5$_k&3>%VJCT@6AtiueEIM)15o!)r)pMh+W^7iFchCr@g{74bPka0kaMuQ=* zGgHiyzKwP2-a&?sw!Hn9bL>GJX;9*ze`EvhQn8zV} zCX(yCe~;GiP!8c-{dlaF735rEG04)8zhg+t`>KsCpCmTfBD&sW^hS3DM8y^%qzclE zrb^x=|IX}*i%B~|IJcOY`5d4OV0}iys113CQ?36mwadBsmUl2NLk{S z|2~&B{)T|vR~ee(?!(=*TJAPzKVLB?Xl$BZ^qdm=EN%CEK8WcKb3-@rUQ18t`C^tU zNUQ|<+dFDY;Z)KrOtJ&cicny{RYMoc(@o869Og|p>V(QAPE}e@2>WHoeTk|yEePbX)y3}gBw+mpYETwM!8{%s|ZxperbvFPiE3^cetVC_67r8Y`6snHZy;0 zyOH)56F6@xeE*nh$Dv-ZZ;$_4&l`_7wec`|Vp?ErvON%CEgqNek7qLc)oGKZvk!jQ zo1Lm|ad9rZ1Huiga$lylJ%dmb`sXjDa`QN*%6y9dJR>QE+|uN%(8?vqf>ew+F^F0u zSw3t~ewDnMd+)t)E3UHloljg0_Lcz0`d^W9qm+tSdn$&9ESlIAkAAE>1U1pExMMi? zox}fOk(W3l<&QUHvJR)@9zWB;2^-CGwVt;+qoBPuBQ~s zFmg=qQxez=IERVXI-wSO*U5Jo@X;cK@oTit*G|4ScnmJ~@0`w?E?noNig-K5pZzpX zAV$%aLyB~!_WO=3&cCWNWJ4r!Hqz}=)wcRSzF5IaQJz?zEFpo7j__e4B6Xra``$se z2l3bRF&vP*aS5dtbHde;bjD8` zoDQ)c6e}&hb9fKeHoMkUsbs~;c{@Kyl46n>#G2}=QmpcB{cdgZc#^_M$)XEQ2y!Z68(IB;#V?oeeXfgRc~V zettc?wJ*QsqxOvZv0Y2g`FqMwmAqlUcAhI_OMKb!kI);V1Q7T2bassPFfa+2qyB1n7YIj$Lr~nbF;bi$O)IW%Prl z6V&cw6(`|l_Mp`!1|O=E4C3@%w^}j0J8Q%vlqU*khAalWf_+7gcZxM{)zpHm7N@dV z;@fRvdfT+V9RfUzj`*^$+!*iyPg)`wqe;H8;^JqRv7)@^f+I4YPk<6(Ajj&yy3D#YYv{nKCxC&l}&T z8oo>Zk=>YKrTV̗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 + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + App + CFBundleIdentifier + io.flutter.flutter.app + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + App + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + MinimumOSVersion + 8.0 + + diff --git a/ios/Flutter/Debug.xcconfig b/ios/Flutter/Debug.xcconfig new file mode 100644 index 00000000..592ceee8 --- /dev/null +++ b/ios/Flutter/Debug.xcconfig @@ -0,0 +1 @@ +#include "Generated.xcconfig" diff --git a/ios/Flutter/Release.xcconfig b/ios/Flutter/Release.xcconfig new file mode 100644 index 00000000..592ceee8 --- /dev/null +++ b/ios/Flutter/Release.xcconfig @@ -0,0 +1 @@ +#include "Generated.xcconfig" diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj new file mode 100644 index 00000000..541a3a63 --- /dev/null +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,471 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 9705A1C41CF9048500538489 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; + 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; + 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 97C146EB1CF9000F007C117D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 9740EEB11CF90186004384FC /* Flutter */ = { + isa = PBXGroup; + children = ( + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 9740EEB31CF90195004384FC /* Generated.xcconfig */, + ); + name = Flutter; + sourceTree = ""; + }; + 97C146E51CF9000F007C117D = { + isa = PBXGroup; + children = ( + 9740EEB11CF90186004384FC /* Flutter */, + 97C146F01CF9000F007C117D /* Runner */, + 97C146EF1CF9000F007C117D /* Products */, + ); + sourceTree = ""; + }; + 97C146EF1CF9000F007C117D /* Products */ = { + isa = PBXGroup; + children = ( + 97C146EE1CF9000F007C117D /* Runner.app */, + ); + name = Products; + sourceTree = ""; + }; + 97C146F01CF9000F007C117D /* Runner */ = { + isa = PBXGroup; + children = ( + 97C146FA1CF9000F007C117D /* Main.storyboard */, + 97C146FD1CF9000F007C117D /* Assets.xcassets */, + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, + 97C147021CF9000F007C117D /* Info.plist */, + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, + ); + path = Runner; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 97C146ED1CF9000F007C117D /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 9740EEB61CF901F6004384FC /* Run Script */, + 97C146EA1CF9000F007C117D /* Sources */, + 97C146EB1CF9000F007C117D /* Frameworks */, + 97C146EC1CF9000F007C117D /* Resources */, + 9705A1C41CF9048500538489 /* Embed Frameworks */, + 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Runner; + productName = Runner; + productReference = 97C146EE1CF9000F007C117D /* Runner.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 97C146E61CF9000F007C117D /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1020; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 97C146ED1CF9000F007C117D = { + CreatedOnToolsVersion = 7.3.1; + LastSwiftMigration = 1100; + }; + }; + }; + buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 97C146E51CF9000F007C117D; + productRefGroup = 97C146EF1CF9000F007C117D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 97C146ED1CF9000F007C117D /* Runner */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 97C146EC1CF9000F007C117D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Thin Binary"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + }; + 9740EEB61CF901F6004384FC /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 97C146EA1CF9000F007C117D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 97C146FA1CF9000F007C117D /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C146FB1CF9000F007C117D /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C147001CF9000F007C117D /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 249021D3217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Profile; + }; + 249021D4217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.example.myapp; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Profile; + }; + 97C147031CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 97C147041CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 97C147061CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.example.myapp; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 97C147071CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = com.example.myapp; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147031CF9000F007C117D /* Debug */, + 97C147041CF9000F007C117D /* Release */, + 249021D3217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147061CF9000F007C117D /* Debug */, + 97C147071CF9000F007C117D /* Release */, + 249021D4217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 97C146E61CF9000F007C117D /* Project object */; +} diff --git a/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..919434a6 --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 00000000..18d98100 --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 00000000..f9b0d7c5 --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 00000000..a28140cf --- /dev/null +++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..1d526a16 --- /dev/null +++ b/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 00000000..18d98100 --- /dev/null +++ b/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 00000000..f9b0d7c5 --- /dev/null +++ b/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/ios/Runner/AppDelegate.swift b/ios/Runner/AppDelegate.swift new file mode 100644 index 00000000..70693e4a --- /dev/null +++ b/ios/Runner/AppDelegate.swift @@ -0,0 +1,13 @@ +import UIKit +import Flutter + +@UIApplicationMain +@objc class AppDelegate: FlutterAppDelegate { + override func application( + _ application: UIApplication, + didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? + ) -> Bool { + GeneratedPluginRegistrant.register(with: self) + return super.application(application, didFinishLaunchingWithOptions: launchOptions) + } +} diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 00000000..d36b1fab --- /dev/null +++ b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,122 @@ +{ + "images" : [ + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@3x.png", + "scale" : "3x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@3x.png", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@3x.png", + "scale" : "3x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@2x.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@3x.png", + "scale" : "3x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@1x.png", + "scale" : "1x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@1x.png", + "scale" : "1x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@1x.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@2x.png", + "scale" : "2x" + }, + { + "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "Icon-App-83.5x83.5@2x.png", + "scale" : "2x" + }, + { + "size" : "1024x1024", + "idiom" : "ios-marketing", + "filename" : "Icon-App-1024x1024@1x.png", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..dc9ada4725e9b0ddb1deab583e5b5102493aa332 GIT binary patch literal 10932 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 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..f091b6b0bca859a3f474b03065bef75ba58a9e4c GIT binary patch literal 1588 zcmV-42Fv-0P)C1SqPt}wig>|5Crh^=oyX$BK<}M8eLU3e2hGT;=G|!_SP)7zNI6fqUMB=)y zRAZ>eDe#*r`yDAVgB_R*LB*MAc)8(b{g{9McCXW!lq7r(btRoB9!8B-#AI6JMb~YFBEvdsV)`mEQO^&#eRKx@b&x- z5lZm*!WfD8oCLzfHGz#u7sT0^VLMI1MqGxF^v+`4YYnVYgk*=kU?HsSz{v({E3lb9 z>+xILjBN)t6`=g~IBOelGQ(O990@BfXf(DRI5I$qN$0Gkz-FSc$3a+2fX$AedL4u{ z4V+5Ong(9LiGcIKW?_352sR;LtDPmPJXI{YtT=O8=76o9;*n%_m|xo!i>7$IrZ-{l z-x3`7M}qzHsPV@$v#>H-TpjDh2UE$9g6sysUREDy_R(a)>=eHw-WAyfIN z*qb!_hW>G)Tu8nSw9yn#3wFMiLcfc4pY0ek1}8(NqkBR@t4{~oC>ryc-h_ByH(Cg5 z>ao-}771+xE3um9lWAY1FeQFxowa1(!J(;Jg*wrg!=6FdRX+t_<%z&d&?|Bn){>zm zZQj(aA_HeBY&OC^jj*)N`8fa^ePOU72VpInJoI1?`ty#lvlNzs(&MZX+R%2xS~5Kh zX*|AU4QE#~SgPzOXe9>tRj>hjU@c1k5Y_mW*Jp3fI;)1&g3j|zDgC+}2Q_v%YfDax z!?umcN^n}KYQ|a$Lr+51Nf9dkkYFSjZZjkma$0KOj+;aQ&721~t7QUKx61J3(P4P1 zstI~7-wOACnWP4=8oGOwz%vNDqD8w&Q`qcNGGrbbf&0s9L0De{4{mRS?o0MU+nR_! zrvshUau0G^DeMhM_v{5BuLjb#Hh@r23lDAk8oF(C+P0rsBpv85EP>4CVMx#04MOfG z;P%vktHcXwTj~+IE(~px)3*MY77e}p#|c>TD?sMatC0Tu4iKKJ0(X8jxQY*gYtxsC z(zYC$g|@+I+kY;dg_dE>scBf&bP1Nc@Hz<3R)V`=AGkc;8CXqdi=B4l2k|g;2%#m& z*jfX^%b!A8#bI!j9-0Fi0bOXl(-c^AB9|nQaE`*)Hw+o&jS9@7&Gov#HbD~#d{twV zXd^Tr^mWLfFh$@Dr$e;PBEz4(-2q1FF0}c;~B5sA}+Q>TOoP+t>wf)V9Iy=5ruQa;z)y zI9C9*oUga6=hxw6QasLPnee@3^Rr*M{CdaL5=R41nLs(AHk_=Y+A9$2&H(B7!_pURs&8aNw7?`&Z&xY_Ye z)~D5Bog^td-^QbUtkTirdyK^mTHAOuptDflut!#^lnKqU md>ggs(5nOWAqO?umG&QVYK#ibz}*4>0000U6E9hRK9^#O7(mu>ETqrXGsduA8$)?`v2seloOCza43C{NQ$$gAOH**MCn0Q?+L7dl7qnbRdqZ8LSVp1ItDxhxD?t@5_yHg6A8yI zC*%Wgg22K|8E#!~cTNYR~@Y9KepMPrrB8cABapAFa=`H+UGhkXUZV1GnwR1*lPyZ;*K(i~2gp|@bzp8}og7e*#% zEnr|^CWdVV!-4*Y_7rFvlww2Ze+>j*!Z!pQ?2l->4q#nqRu9`ELo6RMS5=br47g_X zRw}P9a7RRYQ%2Vsd0Me{_(EggTnuN6j=-?uFS6j^u69elMypu?t>op*wBx<=Wx8?( ztpe^(fwM6jJX7M-l*k3kEpWOl_Vk3@(_w4oc}4YF4|Rt=2V^XU?#Yz`8(e?aZ@#li0n*=g^qOcVpd-Wbok=@b#Yw zqn8u9a)z>l(1kEaPYZ6hwubN6i<8QHgsu0oE) ziJ(p;Wxm>sf!K+cw>R-(^Y2_bahB+&KI9y^);#0qt}t-$C|Bo71lHi{_+lg#f%RFy z0um=e3$K3i6K{U_4K!EX?F&rExl^W|G8Z8;`5z-k}OGNZ0#WVb$WCpQu-_YsiqKP?BB# vzVHS-CTUF4Ozn5G+mq_~Qqto~ahA+K`|lyv3(-e}00000NkvXXu0mjfd`9t{ literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d0ef06e7edb86cdfe0d15b4b0d98334a86163658 GIT binary patch literal 1716 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 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c8f9ed8f5cee1c98386d13b17e89f719e83555b2 GIT binary patch literal 1895 zcmV-t2blPYP)FQtfgmafE#=YDCq`qUBt#QpG%*H6QHY765~R=q zZ6iudfM}q!Pz#~9JgOi8QJ|DSu?1-*(kSi1K4#~5?#|rh?sS)(-JQqX*}ciXJ56_H zdw=^s_srbAdqxlvGyrgGet#6T7_|j;95sL%MtM;q86vOxKM$f#puR)Bjv9Zvz9-di zXOTSsZkM83)E9PYBXC<$6(|>lNLVBb&&6y{NByFCp%6+^ALR@NCTse_wqvNmSWI-m z!$%KlHFH2omF!>#%1l3LTZg(s7eof$7*xB)ZQ0h?ejh?Ta9fDv59+u#MokW+1t8Zb zgHv%K(u9G^Lv`lh#f3<6!JVTL3(dCpxHbnbA;kKqQyd1~^Xe0VIaYBSWm6nsr;dFj z4;G-RyL?cYgsN1{L4ZFFNa;8)Rv0fM0C(~Tkit94 zz#~A)59?QjD&pAPSEQ)p8gP|DS{ng)j=2ux)_EzzJ773GmQ_Cic%3JJhC0t2cx>|v zJcVusIB!%F90{+}8hG3QU4KNeKmK%T>mN57NnCZ^56=0?&3@!j>a>B43pi{!u z7JyDj7`6d)qVp^R=%j>UIY6f+3`+qzIc!Y_=+uN^3BYV|o+$vGo-j-Wm<10%A=(Yk^beI{t%ld@yhKjq0iNjqN4XMGgQtbKubPM$JWBz}YA65k%dm*awtC^+f;a-x4+ddbH^7iDWGg&N0n#MW{kA|=8iMUiFYvMoDY@sPC#t$55gn6ykUTPAr`a@!(;np824>2xJthS z*ZdmT`g5-`BuJs`0LVhz+D9NNa3<=6m;cQLaF?tCv8)zcRSh66*Z|vXhG@$I%U~2l z?`Q zykI#*+rQ=z6Jm=Bui-SfpDYLA=|vzGE(dYm=OC8XM&MDo7ux4UF1~0J1+i%aCUpRe zt3L_uNyQ*cE(38Uy03H%I*)*Bh=Lb^Xj3?I^Hnbeq72(EOK^Y93CNp*uAA{5Lc=ky zx=~RKa4{iTm{_>_vSCm?$Ej=i6@=m%@VvAITnigVg{&@!7CDgs908761meDK5azA} z4?=NOH|PdvabgJ&fW2{Mo$Q0CcD8Qc84%{JPYt5EiG{MdLIAeX%T=D7NIP4%Hw}p9 zg)==!2Lbp#j{u_}hMiao9=!VSyx0gHbeCS`;q&vzeq|fs`y&^X-lso(Ls@-706qmA z7u*T5PMo_w3{se1t2`zWeO^hOvTsohG_;>J0wVqVe+n)AbQCx)yh9;w+J6?NF5Lmo zecS@ieAKL8%bVd@+-KT{yI|S}O>pYckUFs;ry9Ow$CD@ztz5K-*D$^{i(_1llhSh^ zEkL$}tsQt5>QA^;QgjgIfBDmcOgi5YDyu?t6vSnbp=1+@6D& z5MJ}B8q;bRlVoxasyhcUF1+)o`&3r0colr}QJ3hcSdLu;9;td>kf@Tcn<@9sIx&=m z;AD;SCh95=&p;$r{Xz3iWCO^MX83AGJ(yH&eTXgv|0=34#-&WAmw{)U7OU9!Wz^!7 zZ%jZFi@JR;>Mhi7S>V7wQ176|FdW2m?&`qa(ScO^CFPR80HucLHOTy%5s*HR0^8)i h0WYBP*#0Ks^FNSabJA*5${_#%002ovPDHLkV1oKhTl@e3 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..a6d6b8609df07bf62e5100a53a01510388bd2b22 GIT binary patch literal 2665 zcmV-v3YPVWP)oFh3q0MFesq&64WThn3$;G69TfjsAv=f2G9}p zgSx99+!YV6qME!>9MD13x)k(+XE7W?_O4LoLb5ND8 zaV{9+P@>42xDfRiYBMSgD$0!vssptcb;&?u9u(LLBKmkZ>RMD=kvD3h`sk6!QYtBa ztlZI#nu$8lJ^q2Z79UTgZe>BU73(Aospiq+?SdMt8lDZ;*?@tyWVZVS_Q7S&*tJaiRlJ z+aSMOmbg3@h5}v;A*c8SbqM3icg-`Cnwl;7Ts%A1RkNIp+Txl-Ckkvg4oxrqGA5ewEgYqwtECD<_3Egu)xGllKt&J8g&+=ac@Jq4-?w6M3b*>w5 z69N3O%=I^6&UL5gZ!}trC7bUj*12xLdkNs~Bz4QdJJ*UDZox2UGR}SNg@lmOvhCc~ z*f_UeXv(=#I#*7>VZx2ObEN~UoGUTl=-@)E;YtCRZ>SVp$p9yG5hEFZ!`wI!spd)n zSk+vK0Vin7FL{7f&6OB%f;SH22dtbcF<|9fi2Fp%q4kxL!b1#l^)8dUwJ zwEf{(wJj@8iYDVnKB`eSU+;ml-t2`@%_)0jDM`+a46xhDbBj2+&Ih>1A>6aky#(-SYyE{R3f#y57wfLs z6w1p~$bp;6!9DX$M+J~S@D6vJAaElETnsX4h9a5tvPhC3L@qB~bOzkL@^z0k_hS{T4PF*TDrgdXp+dzsE? z>V|VR035Pl9n5&-RePFdS{7KAr2vPOqR9=M$vXA1Yy5>w;EsF`;OK{2pkn-kpp9Pw z)r;5JfJKKaT$4qCb{TaXHjb$QA{y0EYy*+b1XI;6Ah- zw13P)xT`>~eFoJC!>{2XL(a_#upp3gaR1#5+L(Jmzp4TBnx{~WHedpJ1ch8JFk~Sw z>F+gN+i+VD?gMXwcIhn8rz`>e>J^TI3E-MW>f}6R-pL}>WMOa0k#jN+`RyUVUC;#D zg|~oS^$6%wpF{^Qr+}X>0PKcr3Fc&>Z>uv@C);pwDs@2bZWhYP!rvGx?_|q{d`t<*XEb#=aOb=N+L@CVBGqImZf&+a zCQEa3$~@#kC);pasdG=f6tuIi0PO-y&tvX%>Mv=oY3U$nD zJ#gMegnQ46pq+3r=;zmgcG+zRc9D~c>z+jo9&D+`E6$LmyFqlmCYw;-Zooma{sR@~ z)_^|YL1&&@|GXo*pivH7k!msl+$Sew3%XJnxajt0K%3M6Bd&YFNy9}tWG^aovK2eX z1aL1%7;KRDrA@eG-Wr6w+;*H_VD~qLiVI`{_;>o)k`{8xa3EJT1O_>#iy_?va0eR? zDV=N%;Zjb%Z2s$@O>w@iqt!I}tLjGk!=p`D23I}N4Be@$(|iSA zf3Ih7b<{zqpDB4WF_5X1(peKe+rASze%u8eKLn#KKXt;UZ+Adf$_TO+vTqshLLJ5c z52HucO=lrNVae5XWOLm!V@n-ObU11!b+DN<$RuU+YsrBq*lYT;?AwJpmNKniF0Q1< zJCo>Q$=v$@&y=sj6{r!Y&y&`0$-I}S!H_~pI&2H8Z1C|BX4VgZ^-! zje3-;x0PBD!M`v*J_)rL^+$<1VJhH*2Fi~aA7s&@_rUHYJ9zD=M%4AFQ`}k8OC$9s XsPq=LnkwKG00000NkvXXu0mjfhAk5^ literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a6d6b8609df07bf62e5100a53a01510388bd2b22 GIT binary patch literal 2665 zcmV-v3YPVWP)oFh3q0MFesq&64WThn3$;G69TfjsAv=f2G9}p zgSx99+!YV6qME!>9MD13x)k(+XE7W?_O4LoLb5ND8 zaV{9+P@>42xDfRiYBMSgD$0!vssptcb;&?u9u(LLBKmkZ>RMD=kvD3h`sk6!QYtBa ztlZI#nu$8lJ^q2Z79UTgZe>BU73(Aospiq+?SdMt8lDZ;*?@tyWVZVS_Q7S&*tJaiRlJ z+aSMOmbg3@h5}v;A*c8SbqM3icg-`Cnwl;7Ts%A1RkNIp+Txl-Ckkvg4oxrqGA5ewEgYqwtECD<_3Egu)xGllKt&J8g&+=ac@Jq4-?w6M3b*>w5 z69N3O%=I^6&UL5gZ!}trC7bUj*12xLdkNs~Bz4QdJJ*UDZox2UGR}SNg@lmOvhCc~ z*f_UeXv(=#I#*7>VZx2ObEN~UoGUTl=-@)E;YtCRZ>SVp$p9yG5hEFZ!`wI!spd)n zSk+vK0Vin7FL{7f&6OB%f;SH22dtbcF<|9fi2Fp%q4kxL!b1#l^)8dUwJ zwEf{(wJj@8iYDVnKB`eSU+;ml-t2`@%_)0jDM`+a46xhDbBj2+&Ih>1A>6aky#(-SYyE{R3f#y57wfLs z6w1p~$bp;6!9DX$M+J~S@D6vJAaElETnsX4h9a5tvPhC3L@qB~bOzkL@^z0k_hS{T4PF*TDrgdXp+dzsE? z>V|VR035Pl9n5&-RePFdS{7KAr2vPOqR9=M$vXA1Yy5>w;EsF`;OK{2pkn-kpp9Pw z)r;5JfJKKaT$4qCb{TaXHjb$QA{y0EYy*+b1XI;6Ah- zw13P)xT`>~eFoJC!>{2XL(a_#upp3gaR1#5+L(Jmzp4TBnx{~WHedpJ1ch8JFk~Sw z>F+gN+i+VD?gMXwcIhn8rz`>e>J^TI3E-MW>f}6R-pL}>WMOa0k#jN+`RyUVUC;#D zg|~oS^$6%wpF{^Qr+}X>0PKcr3Fc&>Z>uv@C);pwDs@2bZWhYP!rvGx?_|q{d`t<*XEb#=aOb=N+L@CVBGqImZf&+a zCQEa3$~@#kC);pasdG=f6tuIi0PO-y&tvX%>Mv=oY3U$nD zJ#gMegnQ46pq+3r=;zmgcG+zRc9D~c>z+jo9&D+`E6$LmyFqlmCYw;-Zooma{sR@~ z)_^|YL1&&@|GXo*pivH7k!msl+$Sew3%XJnxajt0K%3M6Bd&YFNy9}tWG^aovK2eX z1aL1%7;KRDrA@eG-Wr6w+;*H_VD~qLiVI`{_;>o)k`{8xa3EJT1O_>#iy_?va0eR? zDV=N%;Zjb%Z2s$@O>w@iqt!I}tLjGk!=p`D23I}N4Be@$(|iSA zf3Ih7b<{zqpDB4WF_5X1(peKe+rASze%u8eKLn#KKXt;UZ+Adf$_TO+vTqshLLJ5c z52HucO=lrNVae5XWOLm!V@n-ObU11!b+DN<$RuU+YsrBq*lYT;?AwJpmNKniF0Q1< zJCo>Q$=v$@&y=sj6{r!Y&y&`0$-I}S!H_~pI&2H8Z1C|BX4VgZ^-! zje3-;x0PBD!M`v*J_)rL^+$<1VJhH*2Fi~aA7s&@_rUHYJ9zD=M%4AFQ`}k8OC$9s XsPq=LnkwKG00000NkvXXu0mjfhAk5^ literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..75b2d164a5a98e212cca15ea7bf2ab5de5108680 GIT binary patch literal 3831 zcmVjJBgitF5mAp-i>4+KS_oR{|13AP->1TD4=w)g|)JHOx|a2Wk1Va z!k)vP$UcQ#mdj%wNQoaJ!w>jv_6&JPyutpQps?s5dmDQ>`%?Bvj>o<%kYG!YW6H-z zu`g$@mp`;qDR!51QaS}|ZToSuAGcJ7$2HF0z`ln4t!#Yg46>;vGG9N9{V@9z#}6v* zfP?}r6b{*-C*)(S>NECI_E~{QYzN5SXRmVnP<=gzP+_Sp(Aza_hKlZ{C1D&l*(7IKXxQC1Z9#6wx}YrGcn~g%;icdw>T0Rf^w0{ z$_wn1J+C0@!jCV<%Go5LA45e{5gY9PvZp8uM$=1}XDI+9m7!A95L>q>>oe0$nC->i zeexUIvq%Uk<-$>DiDb?!In)lAmtuMWxvWlk`2>4lNuhSsjAf2*2tjT`y;@d}($o)S zn(+W&hJ1p0xy@oxP%AM15->wPLp{H!k)BdBD$toBpJh+crWdsNV)qsHaqLg2_s|Ih z`8E9z{E3sA!}5aKu?T!#enD(wLw?IT?k-yWVHZ8Akz4k5(TZJN^zZgm&zM28sfTD2BYJ|Fde3Xzh;;S` z=GXTnY4Xc)8nYoz6&vF;P7{xRF-{|2Xs5>a5)@BrnQ}I(_x7Cgpx#5&Td^4Q9_FnQ zX5so*;#8-J8#c$OlA&JyPp$LKUhC~-e~Ij!L%uSMu!-VZG7Hx-L{m2DVR2i=GR(_% zCVD!4N`I)&Q5S`?P&fQZ=4#Dgt_v2-DzkT}K(9gF0L(owe-Id$Rc2qZVLqI_M_DyO z9@LC#U28_LU{;wGZ&))}0R2P4MhajKCd^K#D+JJ&JIXZ_p#@+7J9A&P<0kdRujtQ_ zOy>3=C$kgi6$0pW06KaLz!21oOryKM3ZUOWqppndxfH}QpgjEJ`j7Tzn5bk6K&@RA?vl##y z$?V~1E(!wB5rH`>3nc&@)|#<1dN2cMzzm=PGhQ|Yppne(C-Vlt450IXc`J4R0W@I7 zd1e5uW6juvO%ni(WX7BsKx3MLngO7rHO;^R5I~0^nE^9^E_eYLgiR9&KnJ)pBbfno zSVnW$0R+&6jOOsZ82}nJ126+c|%svPo;TeUku<2G7%?$oft zyaO;tVo}(W)VsTUhq^XmFi#2z%-W9a{7mXn{uzivYQ_d6b7VJG{77naW(vHt-uhnY zVN#d!JTqVh(7r-lhtXVU6o})aZbDt_;&wJVGl2FKYFBFpU-#9U)z#(A%=IVnqytR$SY-sO( z($oNE09{D^@OuYPz&w~?9>Fl5`g9u&ecFGhqX=^#fmR=we0CJw+5xna*@oHnkahk+ z9aWeE3v|An+O5%?4fA&$Fgu~H_YmqR!yIU!bFCk4!#pAj%(lI(A5n)n@Id#M)O9Yx zJU9oKy{sRAIV3=5>(s8n{8ryJ!;ho}%pn6hZKTKbqk=&m=f*UnK$zW3YQP*)pw$O* zIfLA^!-bmBl6%d_n$#tP8Zd_(XdA*z*WH|E_yILwjtI~;jK#v-6jMl^?<%Y%`gvpwv&cFb$||^v4D&V=aNy?NGo620jL3VZnA%s zH~I|qPzB~e(;p;b^gJr7Ure#7?8%F0m4vzzPy^^(q4q1OdthF}Fi*RmVZN1OwTsAP zn9CZP`FazX3^kG(KodIZ=Kty8DLTy--UKfa1$6XugS zk%6v$Kmxt6U!YMx0JQ)0qX*{CXwZZk$vEROidEc7=J-1;peNat!vS<3P-FT5po>iE z!l3R+<`#x|+_hw!HjQGV=8!q|76y8L7N8gP3$%0kfush|u0uU^?dKBaeRSBUpOZ0c z62;D&Mdn2}N}xHRFTRI?zRv=>=AjHgH}`2k4WK=#AHB)UFrR-J87GgX*x5fL^W2#d z=(%K8-oZfMO=i{aWRDg=FX}UubM4eotRDcn;OR#{3q=*?3mE3_oJ-~prjhxh%PgQT zyn)Qozaq0@o&|LEgS{Ind4Swsr;b`u185hZPOBLL<`d2%^Yp1?oL)=jnLi;Zo0ZDliTtQ^b5SmfIMe{T==zZkbvn$KTQGlbG8w}s@M3TZnde;1Am46P3juKb zl9GU&3F=q`>j!`?SyH#r@O59%@aMX^rx}Nxe<>NqpUp5=lX1ojGDIR*-D^SDuvCKF z?3$xG(gVUsBERef_YjPFl^rU9EtD{pt z0CXwpN7BN3!8>hajGaTVk-wl=9rxmfWtIhC{mheHgStLi^+Nz12a?4r(fz)?3A%at zMlvQmL<2-R)-@G1wJ0^zQK%mR=r4d{Y3fHp){nWXUL#|CqXl(+v+qDh>FkF9`eWrW zfr^D%LNfOcTNvtx0JXR35J0~Jpi2#P3Q&80w+nqNfc}&G0A~*)lGHKv=^FE+b(37|)zL;KLF>oiGfb(?&1 zV3XRu!Sw>@quKiab%g6jun#oZ%!>V#A%+lNc?q>6+VvyAn=kf_6z^(TZUa4Eelh{{ zqFX-#dY(EV@7l$NE&kv9u9BR8&Ojd#ZGJ6l8_BW}^r?DIS_rU2(XaGOK z225E@kH5Opf+CgD^{y29jD4gHbGf{1MD6ggQ&%>UG4WyPh5q_tb`{@_34B?xfSO*| zZv8!)q;^o-bz`MuxXk*G^}(6)ACb@=Lfs`Hxoh>`Y0NE8QRQ!*p|SH@{r8=%RKd4p z+#Ty^-0kb=-H-O`nAA3_6>2z(D=~Tbs(n8LHxD0`R0_ATFqp-SdY3(bZ3;VUM?J=O zKCNsxsgt@|&nKMC=*+ZqmLHhX1KHbAJs{nGVMs6~TiF%Q)P@>!koa$%oS zjXa=!5>P`vC-a}ln!uH1ooeI&v?=?v7?1n~P(wZ~0>xWxd_Aw;+}9#eULM7M8&E?Y zC-ZLhi3RoM92SXUb-5i-Lmt5_rfjE{6y^+24`y$1lywLyHO!)Boa7438K4#iLe?rh z2O~YGSgFUBH?og*6=r9rme=peP~ah`(8Zt7V)j5!V0KPFf_mebo3z95U8(up$-+EA^9dTRLq>Yl)YMBuch9%=e5B`Vnb>o zt03=kq;k2TgGe4|lGne&zJa~h(UGutjP_zr?a7~#b)@15XNA>Dj(m=gg2Q5V4-$)D|Q9}R#002ovPDHLkV1o7DH3k3x literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..c4df70d39da7941ef3f6dcb7f06a192d8dcb308d GIT binary patch literal 1888 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 iW8Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md new file mode 100644 index 00000000..89c2725b --- /dev/null +++ b/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md @@ -0,0 +1,5 @@ +# Launch Screen Assets + +You can customize the launch screen with your own desired assets by replacing the image files in this directory. + +You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. \ No newline at end of file diff --git a/ios/Runner/Base.lproj/LaunchScreen.storyboard b/ios/Runner/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 00000000..f2e259c7 --- /dev/null +++ b/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner/Base.lproj/Main.storyboard b/ios/Runner/Base.lproj/Main.storyboard new file mode 100644 index 00000000..f3c28516 --- /dev/null +++ b/ios/Runner/Base.lproj/Main.storyboard @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist new file mode 100644 index 00000000..18a831a2 --- /dev/null +++ b/ios/Runner/Info.plist @@ -0,0 +1,45 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + myapp + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + + + diff --git a/ios/Runner/Runner-Bridging-Header.h b/ios/Runner/Runner-Bridging-Header.h new file mode 100644 index 00000000..308a2a56 --- /dev/null +++ b/ios/Runner/Runner-Bridging-Header.h @@ -0,0 +1 @@ +#import "GeneratedPluginRegistrant.h" diff --git a/lib/main.dart b/lib/main.dart new file mode 100644 index 00000000..3b9e7678 --- /dev/null +++ b/lib/main.dart @@ -0,0 +1,153 @@ +import 'package:flutter/material.dart'; +import 'package:google_fonts/google_fonts.dart'; + +void main() { + runApp(MyApp()); +} + +class MyApp extends StatelessWidget { + Widget build(BuildContext context) { + return MaterialApp( + title: 'Profile', + theme: ThemeData( + primarySwatch: Colors.purple, + ), + home: MyHomePage(title: 'Profile'), + ); + } +} + +class MyHomePage extends StatefulWidget { + MyHomePage({Key? key, required this.title}) : super(key: key); + final String title; + + @override + _MyHomePageState createState() => _MyHomePageState(); +} + +class _MyHomePageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + leading: IconButton( + icon: const Icon(Icons.arrow_back_rounded), + onPressed: () {}, + color: Colors.black), + elevation: 0, + backgroundColor: Colors.deepPurple, + ), + body: Container( + height: 700, + width: double.infinity, + padding: EdgeInsets.all(22), + child: Column( + children: [ + Align( + child: Text('Edit Profile', + style: GoogleFonts.poppins( + textStyle: + TextStyle(fontSize: 26, fontWeight: FontWeight.w700), + )), + alignment: Alignment.centerLeft), + SizedBox(height: 20), + CircleAvatar( + backgroundImage: AssetImage('assets/Profile.jpg'), + radius: 70, + ), + Row( + children: [ + Text('Username', + style: GoogleFonts.balsamiqSans( + textStyle: TextStyle(fontSize: 12), + )), + Spacer(), + Text('Malavika Sreehari', + style: GoogleFonts.balsamiqSans( + textStyle: TextStyle(fontSize: 12), + )), + ], + ), + Divider( + color: Colors.black12, + thickness: 2, + ), + Spacer(), + Row( + children: [ + Text('Email', + style: GoogleFonts.balsamiqSans( + textStyle: TextStyle(fontSize: 12), + )), + Spacer(), + Text('malavikasreehari4@gmail.com', + style: GoogleFonts.balsamiqSans( + textStyle: TextStyle(fontSize: 12), + )), + ], + ), + Divider( + color: Colors.black12, + thickness: 2, + ), + Spacer(), + Row( + children: [ + Text('Phone', + style: GoogleFonts.balsamiqSans( + textStyle: TextStyle(fontSize: 12), + )), + Spacer(), + Text('+918281371775', + style: GoogleFonts.balsamiqSans( + textStyle: TextStyle(fontSize: 12), + )), + ], + ), + Divider( + color: Colors.black12, + thickness: 2, + ), + Spacer(), + Row( + children: [ + Text('Date of Birth', + style: GoogleFonts.balsamiqSans( + textStyle: TextStyle(fontSize: 12), + )), + Spacer(), + Text('17/08/2002', + style: GoogleFonts.balsamiqSans( + textStyle: TextStyle(fontSize: 12), + )), + ], + ), + Divider( + color: Colors.black12, + thickness: 2, + ), + Spacer(), + Row( + children: [ + Text('Address', + style: GoogleFonts.balsamiqSans( + textStyle: TextStyle(fontSize: 12), + )), + Spacer(), + Text('Thekkedath House, Kavil, Kodakara', + style: GoogleFonts.balsamiqSans( + textStyle: TextStyle(fontSize: 12), + )), + ], + ), + Divider( + color: Colors.black12, + thickness: 2, + ), + Spacer(), + ], + ), + ), + ); + } +} diff --git a/pubspec.lock b/pubspec.lock new file mode 100644 index 00000000..8bddb202 --- /dev/null +++ b/pubspec.lock @@ -0,0 +1,273 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + async: + dependency: transitive + description: + name: async + url: "https://pub.dartlang.org" + source: hosted + version: "2.6.1" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + characters: + dependency: transitive + description: + name: characters + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" + charcode: + dependency: transitive + description: + name: charcode + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0" + clock: + dependency: transitive + description: + name: clock + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" + collection: + dependency: transitive + description: + name: collection + url: "https://pub.dartlang.org" + source: hosted + version: "1.15.0" + crypto: + dependency: transitive + description: + name: crypto + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.1" + cupertino_icons: + dependency: "direct main" + description: + name: cupertino_icons + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.3" + fake_async: + dependency: transitive + description: + name: fake_async + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0" + ffi: + dependency: transitive + description: + name: ffi + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.2" + file: + dependency: transitive + description: + name: file + url: "https://pub.dartlang.org" + source: hosted + version: "6.1.2" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_test: + dependency: "direct dev" + description: flutter + source: sdk + version: "0.0.0" + google_fonts: + dependency: "direct main" + description: + name: google_fonts + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + http: + dependency: transitive + description: + name: http + url: "https://pub.dartlang.org" + source: hosted + version: "0.13.3" + http_parser: + dependency: transitive + description: + name: http_parser + url: "https://pub.dartlang.org" + source: hosted + version: "4.0.0" + matcher: + dependency: transitive + description: + name: matcher + url: "https://pub.dartlang.org" + source: hosted + version: "0.12.10" + meta: + dependency: transitive + description: + name: meta + url: "https://pub.dartlang.org" + source: hosted + version: "1.3.0" + path: + dependency: transitive + description: + name: path + url: "https://pub.dartlang.org" + source: hosted + version: "1.8.0" + path_provider: + dependency: transitive + description: + name: path_provider + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.4" + path_provider_linux: + dependency: transitive + description: + name: path_provider_linux + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + path_provider_macos: + dependency: transitive + description: + name: path_provider_macos + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.2" + path_provider_platform_interface: + dependency: transitive + description: + name: path_provider_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.1" + path_provider_windows: + dependency: transitive + description: + name: path_provider_windows + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.3" + pedantic: + dependency: transitive + description: + name: pedantic + url: "https://pub.dartlang.org" + source: hosted + version: "1.11.1" + platform: + dependency: transitive + description: + name: platform + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.2" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.1" + process: + dependency: transitive + description: + name: process + url: "https://pub.dartlang.org" + source: hosted + version: "4.2.3" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.99" + source_span: + dependency: transitive + description: + name: source_span + url: "https://pub.dartlang.org" + source: hosted + version: "1.8.1" + stack_trace: + dependency: transitive + description: + name: stack_trace + url: "https://pub.dartlang.org" + source: hosted + version: "1.10.0" + stream_channel: + dependency: transitive + description: + name: stream_channel + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + string_scanner: + dependency: transitive + description: + name: string_scanner + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" + term_glyph: + dependency: transitive + description: + name: term_glyph + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0" + test_api: + dependency: transitive + description: + name: test_api + url: "https://pub.dartlang.org" + source: hosted + version: "0.3.0" + typed_data: + dependency: transitive + description: + name: typed_data + url: "https://pub.dartlang.org" + source: hosted + version: "1.3.0" + vector_math: + dependency: transitive + description: + name: vector_math + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0" + win32: + dependency: transitive + description: + name: win32 + url: "https://pub.dartlang.org" + source: hosted + version: "2.2.9" + xdg_directories: + dependency: transitive + description: + name: xdg_directories + url: "https://pub.dartlang.org" + source: hosted + version: "0.2.0" +sdks: + dart: ">=2.13.0 <3.0.0" + flutter: ">=2.0.0" diff --git a/pubspec.yaml b/pubspec.yaml new file mode 100644 index 00000000..b371801c --- /dev/null +++ b/pubspec.yaml @@ -0,0 +1,77 @@ +name: myapp +description: A new Flutter project. + +# The following line prevents the package from being accidentally published to +# pub.dev using `pub publish`. This is preferred for private packages. +publish_to: 'none' # Remove this line if you wish to publish to pub.dev + +# The following defines the version and build number for your application. +# A version number is three numbers separated by dots, like 1.2.43 +# followed by an optional build number separated by a +. +# Both the version and the builder number may be overridden in flutter +# build by specifying --build-name and --build-number, respectively. +# In Android, build-name is used as versionName while build-number used as versionCode. +# Read more about Android versioning at https://developer.android.com/studio/publish/versioning +# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. +# Read more about iOS versioning at +# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html +version: 1.0.0+1 + +environment: + sdk: ">=2.12.0 <3.0.0" + +dependencies: + flutter: + sdk: flutter + + + # The following adds the Cupertino Icons font to your application. + # Use with the CupertinoIcons class for iOS style icons. + cupertino_icons: ^1.0.2 + google_fonts: ^2.1.0 + +dev_dependencies: + flutter_test: + sdk: flutter + +# For information on the generic Dart part of this file, see the +# following page: https://dart.dev/tools/pub/pubspec + +# The following section is specific to Flutter. +flutter: + + # The following line ensures that the Material Icons font is + # included with your application, so that you can use the icons in + # the material Icons class. + uses-material-design: true + + # To add assets to your application, add an assets section, like this: + assets: + - assets/Profile.jpg + # - images/a_dot_ham.jpeg + + # An image asset can refer to one or more resolution-specific "variants", see + # https://flutter.dev/assets-and-images/#resolution-aware. + + # For details regarding adding assets from package dependencies, see + # https://flutter.dev/assets-and-images/#from-packages + + # To add custom fonts to your application, add a fonts section here, + # in this "flutter" section. Each entry in this list should have a + # "family" key with the font family name, and a "fonts" key with a + # list giving the asset and other descriptors for the font. For + # example: + # fonts: + # - family: Schyler + # fonts: + # - asset: fonts/Schyler-Regular.ttf + # - asset: fonts/Schyler-Italic.ttf + # style: italic + # - family: Trajan Pro + # fonts: + # - asset: fonts/TrajanPro.ttf + # - asset: fonts/TrajanPro_Bold.ttf + # weight: 700 + # + # For details regarding fonts from package dependencies, + # see https://flutter.dev/custom-fonts/#from-packages diff --git a/test/widget_test.dart b/test/widget_test.dart new file mode 100644 index 00000000..0ebee465 --- /dev/null +++ b/test/widget_test.dart @@ -0,0 +1,30 @@ +// This is a basic Flutter widget test. +// +// To perform an interaction with a widget in your test, use the WidgetTester +// utility that Flutter provides. For example, you can send tap and scroll +// gestures. You can also use WidgetTester to find child widgets in the widget +// tree, read text, and verify that the values of widget properties are correct. + +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; + +import 'package:myapp/main.dart'; + +void main() { + testWidgets('Counter increments smoke test', (WidgetTester tester) async { + // Build our app and trigger a frame. + await tester.pumpWidget(MyApp()); + + // Verify that our counter starts at 0. + expect(find.text('0'), findsOneWidget); + expect(find.text('1'), findsNothing); + + // Tap the '+' icon and trigger a frame. + await tester.tap(find.byIcon(Icons.add)); + await tester.pump(); + + // Verify that our counter has incremented. + expect(find.text('0'), findsNothing); + expect(find.text('1'), findsOneWidget); + }); +} diff --git a/web/favicon.png b/web/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..8aaa46ac1ae21512746f852a42ba87e4165dfdd1 GIT binary patch literal 917 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|I14-?iy0X7 zltGxWVyS%@P(fs7NJL45ua8x7ey(0(N`6wRUPW#JP&EUCO@$SZnVVXYs8ErclUHn2 zVXFjIVFhG^g!Ppaz)DK8ZIvQ?0~DO|i&7O#^-S~(l1AfjnEK zjFOT9D}DX)@^Za$W4-*MbbUihOG|wNBYh(yU7!lx;>x^|#0uTKVr7USFmqf|i<65o z3raHc^AtelCMM;Vme?vOfh>Xph&xL%(-1c06+^uR^q@XSM&D4+Kp$>4P^%3{)XKjo zGZknv$b36P8?Z_gF{nK@`XI}Z90TzwSQO}0J1!f2c(B=V`5aP@1P1a|PZ!4!3&Gl8 zTYqUsf!gYFyJnXpu0!n&N*SYAX-%d(5gVjrHJWqXQshj@!Zm{!01WsQrH~9=kTxW#6SvuapgMqt>$=j#%eyGrQzr zP{L-3gsMA^$I1&gsBAEL+vxi1*Igl=8#8`5?A-T5=z-sk46WA1IUT)AIZHx1rdUrf zVJrJn<74DDw`j)Ki#gt}mIT-Q`XRa2-jQXQoI%w`nb|XblvzK${ZzlV)m-XcwC(od z71_OEC5Bt9GEXosOXaPTYOia#R4ID2TiU~`zVMl08TV_C%DnU4^+HE>9(CE4D6?Fz oujB08i7adh9xk7*FX66dWH6F5TM;?E2b5PlUHx3vIVCg!0Dx9vYXATM literal 0 HcmV?d00001 diff --git a/web/icons/Icon-192.png b/web/icons/Icon-192.png new file mode 100644 index 0000000000000000000000000000000000000000..b749bfef07473333cf1dd31e9eed89862a5d52aa GIT binary patch literal 5292 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 literal 0 HcmV?d00001 diff --git a/web/icons/Icon-512.png b/web/icons/Icon-512.png new file mode 100644 index 0000000000000000000000000000000000000000..88cfd48dff1169879ba46840804b412fe02fefd6 GIT binary patch literal 8252 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 literal 0 HcmV?d00001 diff --git a/web/index.html b/web/index.html new file mode 100644 index 00000000..ca1fc53d --- /dev/null +++ b/web/index.html @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + myapp + + + + + + + diff --git a/web/manifest.json b/web/manifest.json new file mode 100644 index 00000000..a688126c --- /dev/null +++ b/web/manifest.json @@ -0,0 +1,23 @@ +{ + "name": "myapp", + "short_name": "myapp", + "start_url": ".", + "display": "standalone", + "background_color": "#0175C2", + "theme_color": "#0175C2", + "description": "A new Flutter project.", + "orientation": "portrait-primary", + "prefer_related_applications": false, + "icons": [ + { + "src": "icons/Icon-192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "icons/Icon-512.png", + "sizes": "512x512", + "type": "image/png" + } + ] +} diff --git a/windows/.gitignore b/windows/.gitignore new file mode 100644 index 00000000..d492d0d9 --- /dev/null +++ b/windows/.gitignore @@ -0,0 +1,17 @@ +flutter/ephemeral/ + +# Visual Studio user-specific files. +*.suo +*.user +*.userosscache +*.sln.docstates + +# Visual Studio build-related files. +x64/ +x86/ + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!*.[Cc]ache/ diff --git a/windows/CMakeLists.txt b/windows/CMakeLists.txt new file mode 100644 index 00000000..fd00ea51 --- /dev/null +++ b/windows/CMakeLists.txt @@ -0,0 +1,95 @@ +cmake_minimum_required(VERSION 3.15) +project(myapp LANGUAGES CXX) + +set(BINARY_NAME "myapp") + +cmake_policy(SET CMP0063 NEW) + +set(CMAKE_INSTALL_RPATH "$ORIGIN/lib") + +# Configure build options. +get_property(IS_MULTICONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) +if(IS_MULTICONFIG) + set(CMAKE_CONFIGURATION_TYPES "Debug;Profile;Release" + CACHE STRING "" FORCE) +else() + if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) + set(CMAKE_BUILD_TYPE "Debug" CACHE + STRING "Flutter build mode" FORCE) + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS + "Debug" "Profile" "Release") + endif() +endif() + +set(CMAKE_EXE_LINKER_FLAGS_PROFILE "${CMAKE_EXE_LINKER_FLAGS_RELEASE}") +set(CMAKE_SHARED_LINKER_FLAGS_PROFILE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE}") +set(CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_RELEASE}") +set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_RELEASE}") + +# Use Unicode for all projects. +add_definitions(-DUNICODE -D_UNICODE) + +# Compilation settings that should be applied to most targets. +function(APPLY_STANDARD_SETTINGS TARGET) + target_compile_features(${TARGET} PUBLIC cxx_std_17) + target_compile_options(${TARGET} PRIVATE /W4 /WX /wd"4100") + target_compile_options(${TARGET} PRIVATE /EHsc) + target_compile_definitions(${TARGET} PRIVATE "_HAS_EXCEPTIONS=0") + target_compile_definitions(${TARGET} PRIVATE "$<$:_DEBUG>") +endfunction() + +set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter") + +# Flutter library and tool build rules. +add_subdirectory(${FLUTTER_MANAGED_DIR}) + +# Application build +add_subdirectory("runner") + +# Generated plugin build rules, which manage building the plugins and adding +# them to the application. +include(flutter/generated_plugins.cmake) + + +# === Installation === +# Support files are copied into place next to the executable, so that it can +# run in place. This is done instead of making a separate bundle (as on Linux) +# so that building and running from within Visual Studio will work. +set(BUILD_BUNDLE_DIR "$") +# Make the "install" step default, as it's required to run. +set(CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD 1) +if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE) +endif() + +set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data") +set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}") + +install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +if(PLUGIN_BUNDLED_LIBRARIES) + install(FILES "${PLUGIN_BUNDLED_LIBRARIES}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) +endif() + +# Fully re-copy the assets directory on each build to avoid having stale files +# from a previous install. +set(FLUTTER_ASSET_DIR_NAME "flutter_assets") +install(CODE " + file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\") + " COMPONENT Runtime) +install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}" + DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime) + +# Install the AOT library on non-Debug builds only. +install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" + CONFIGURATIONS Profile;Release + COMPONENT Runtime) diff --git a/windows/flutter/CMakeLists.txt b/windows/flutter/CMakeLists.txt new file mode 100644 index 00000000..b02c5485 --- /dev/null +++ b/windows/flutter/CMakeLists.txt @@ -0,0 +1,103 @@ +cmake_minimum_required(VERSION 3.15) + +set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral") + +# Configuration provided via flutter tool. +include(${EPHEMERAL_DIR}/generated_config.cmake) + +# TODO: Move the rest of this into files in ephemeral. See +# https://github.com/flutter/flutter/issues/57146. +set(WRAPPER_ROOT "${EPHEMERAL_DIR}/cpp_client_wrapper") + +# === Flutter Library === +set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/flutter_windows.dll") + +# Published to parent scope for install step. +set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE) +set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE) +set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE) +set(AOT_LIBRARY "${PROJECT_DIR}/build/windows/app.so" PARENT_SCOPE) + +list(APPEND FLUTTER_LIBRARY_HEADERS + "flutter_export.h" + "flutter_windows.h" + "flutter_messenger.h" + "flutter_plugin_registrar.h" + "flutter_texture_registrar.h" +) +list(TRANSFORM FLUTTER_LIBRARY_HEADERS PREPEND "${EPHEMERAL_DIR}/") +add_library(flutter INTERFACE) +target_include_directories(flutter INTERFACE + "${EPHEMERAL_DIR}" +) +target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}.lib") +add_dependencies(flutter flutter_assemble) + +# === Wrapper === +list(APPEND CPP_WRAPPER_SOURCES_CORE + "core_implementations.cc" + "standard_codec.cc" +) +list(TRANSFORM CPP_WRAPPER_SOURCES_CORE PREPEND "${WRAPPER_ROOT}/") +list(APPEND CPP_WRAPPER_SOURCES_PLUGIN + "plugin_registrar.cc" +) +list(TRANSFORM CPP_WRAPPER_SOURCES_PLUGIN PREPEND "${WRAPPER_ROOT}/") +list(APPEND CPP_WRAPPER_SOURCES_APP + "flutter_engine.cc" + "flutter_view_controller.cc" +) +list(TRANSFORM CPP_WRAPPER_SOURCES_APP PREPEND "${WRAPPER_ROOT}/") + +# Wrapper sources needed for a plugin. +add_library(flutter_wrapper_plugin STATIC + ${CPP_WRAPPER_SOURCES_CORE} + ${CPP_WRAPPER_SOURCES_PLUGIN} +) +apply_standard_settings(flutter_wrapper_plugin) +set_target_properties(flutter_wrapper_plugin PROPERTIES + POSITION_INDEPENDENT_CODE ON) +set_target_properties(flutter_wrapper_plugin PROPERTIES + CXX_VISIBILITY_PRESET hidden) +target_link_libraries(flutter_wrapper_plugin PUBLIC flutter) +target_include_directories(flutter_wrapper_plugin PUBLIC + "${WRAPPER_ROOT}/include" +) +add_dependencies(flutter_wrapper_plugin flutter_assemble) + +# Wrapper sources needed for the runner. +add_library(flutter_wrapper_app STATIC + ${CPP_WRAPPER_SOURCES_CORE} + ${CPP_WRAPPER_SOURCES_APP} +) +apply_standard_settings(flutter_wrapper_app) +target_link_libraries(flutter_wrapper_app PUBLIC flutter) +target_include_directories(flutter_wrapper_app PUBLIC + "${WRAPPER_ROOT}/include" +) +add_dependencies(flutter_wrapper_app flutter_assemble) + +# === Flutter tool backend === +# _phony_ is a non-existent file to force this command to run every time, +# since currently there's no way to get a full input/output list from the +# flutter tool. +set(PHONY_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/_phony_") +set_source_files_properties("${PHONY_OUTPUT}" PROPERTIES SYMBOLIC TRUE) +add_custom_command( + OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS} + ${CPP_WRAPPER_SOURCES_CORE} ${CPP_WRAPPER_SOURCES_PLUGIN} + ${CPP_WRAPPER_SOURCES_APP} + ${PHONY_OUTPUT} + COMMAND ${CMAKE_COMMAND} -E env + ${FLUTTER_TOOL_ENVIRONMENT} + "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.bat" + windows-x64 $ + VERBATIM +) +add_custom_target(flutter_assemble DEPENDS + "${FLUTTER_LIBRARY}" + ${FLUTTER_LIBRARY_HEADERS} + ${CPP_WRAPPER_SOURCES_CORE} + ${CPP_WRAPPER_SOURCES_PLUGIN} + ${CPP_WRAPPER_SOURCES_APP} +) diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc new file mode 100644 index 00000000..4bfa0f3a --- /dev/null +++ b/windows/flutter/generated_plugin_registrant.cc @@ -0,0 +1,9 @@ +// +// Generated file. Do not edit. +// + +#include "generated_plugin_registrant.h" + + +void RegisterPlugins(flutter::PluginRegistry* registry) { +} diff --git a/windows/flutter/generated_plugin_registrant.h b/windows/flutter/generated_plugin_registrant.h new file mode 100644 index 00000000..9846246b --- /dev/null +++ b/windows/flutter/generated_plugin_registrant.h @@ -0,0 +1,13 @@ +// +// Generated file. Do not edit. +// + +#ifndef GENERATED_PLUGIN_REGISTRANT_ +#define GENERATED_PLUGIN_REGISTRANT_ + +#include + +// Registers Flutter plugins. +void RegisterPlugins(flutter::PluginRegistry* registry); + +#endif // GENERATED_PLUGIN_REGISTRANT_ diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake new file mode 100644 index 00000000..4d10c251 --- /dev/null +++ b/windows/flutter/generated_plugins.cmake @@ -0,0 +1,15 @@ +# +# Generated file, do not edit. +# + +list(APPEND FLUTTER_PLUGIN_LIST +) + +set(PLUGIN_BUNDLED_LIBRARIES) + +foreach(plugin ${FLUTTER_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) + target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) + list(APPEND PLUGIN_BUNDLED_LIBRARIES $) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) +endforeach(plugin) diff --git a/windows/runner/CMakeLists.txt b/windows/runner/CMakeLists.txt new file mode 100644 index 00000000..977e38b5 --- /dev/null +++ b/windows/runner/CMakeLists.txt @@ -0,0 +1,18 @@ +cmake_minimum_required(VERSION 3.15) +project(runner LANGUAGES CXX) + +add_executable(${BINARY_NAME} WIN32 + "flutter_window.cpp" + "main.cpp" + "run_loop.cpp" + "utils.cpp" + "win32_window.cpp" + "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" + "Runner.rc" + "runner.exe.manifest" +) +apply_standard_settings(${BINARY_NAME}) +target_compile_definitions(${BINARY_NAME} PRIVATE "NOMINMAX") +target_link_libraries(${BINARY_NAME} PRIVATE flutter flutter_wrapper_app) +target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}") +add_dependencies(${BINARY_NAME} flutter_assemble) diff --git a/windows/runner/Runner.rc b/windows/runner/Runner.rc new file mode 100644 index 00000000..fa5d562f --- /dev/null +++ b/windows/runner/Runner.rc @@ -0,0 +1,121 @@ +// Microsoft Visual C++ generated resource script. +// +#pragma code_page(65001) +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "winres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (United States) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE +BEGIN + "#include ""winres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDI_APP_ICON ICON "resources\\app_icon.ico" + + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +#ifdef FLUTTER_BUILD_NUMBER +#define VERSION_AS_NUMBER FLUTTER_BUILD_NUMBER +#else +#define VERSION_AS_NUMBER 1,0,0 +#endif + +#ifdef FLUTTER_BUILD_NAME +#define VERSION_AS_STRING #FLUTTER_BUILD_NAME +#else +#define VERSION_AS_STRING "1.0.0" +#endif + +VS_VERSION_INFO VERSIONINFO + FILEVERSION VERSION_AS_NUMBER + PRODUCTVERSION VERSION_AS_NUMBER + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK +#ifdef _DEBUG + FILEFLAGS VS_FF_DEBUG +#else + FILEFLAGS 0x0L +#endif + FILEOS VOS__WINDOWS32 + FILETYPE VFT_APP + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904e4" + BEGIN + VALUE "CompanyName", "com.example" "\0" + VALUE "FileDescription", "A new Flutter project." "\0" + VALUE "FileVersion", VERSION_AS_STRING "\0" + VALUE "InternalName", "myapp" "\0" + VALUE "LegalCopyright", "Copyright (C) 2021 com.example. All rights reserved." "\0" + VALUE "OriginalFilename", "myapp.exe" "\0" + VALUE "ProductName", "myapp" "\0" + VALUE "ProductVersion", VERSION_AS_STRING "\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1252 + END +END + +#endif // English (United States) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED diff --git a/windows/runner/flutter_window.cpp b/windows/runner/flutter_window.cpp new file mode 100644 index 00000000..41bbc5e0 --- /dev/null +++ b/windows/runner/flutter_window.cpp @@ -0,0 +1,64 @@ +#include "flutter_window.h" + +#include + +#include "flutter/generated_plugin_registrant.h" + +FlutterWindow::FlutterWindow(RunLoop* run_loop, + const flutter::DartProject& project) + : run_loop_(run_loop), project_(project) {} + +FlutterWindow::~FlutterWindow() {} + +bool FlutterWindow::OnCreate() { + if (!Win32Window::OnCreate()) { + return false; + } + + RECT frame = GetClientArea(); + + // The size here must match the window dimensions to avoid unnecessary surface + // creation / destruction in the startup path. + flutter_controller_ = std::make_unique( + frame.right - frame.left, frame.bottom - frame.top, project_); + // Ensure that basic setup of the controller was successful. + if (!flutter_controller_->engine() || !flutter_controller_->view()) { + return false; + } + RegisterPlugins(flutter_controller_->engine()); + run_loop_->RegisterFlutterInstance(flutter_controller_->engine()); + SetChildContent(flutter_controller_->view()->GetNativeWindow()); + return true; +} + +void FlutterWindow::OnDestroy() { + if (flutter_controller_) { + run_loop_->UnregisterFlutterInstance(flutter_controller_->engine()); + flutter_controller_ = nullptr; + } + + Win32Window::OnDestroy(); +} + +LRESULT +FlutterWindow::MessageHandler(HWND hwnd, UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept { + // Give Flutter, including plugins, an opportunity to handle window messages. + if (flutter_controller_) { + std::optional result = + flutter_controller_->HandleTopLevelWindowProc(hwnd, message, wparam, + lparam); + if (result) { + return *result; + } + } + + switch (message) { + case WM_FONTCHANGE: + flutter_controller_->engine()->ReloadSystemFonts(); + break; + } + + return Win32Window::MessageHandler(hwnd, message, wparam, lparam); +} diff --git a/windows/runner/flutter_window.h b/windows/runner/flutter_window.h new file mode 100644 index 00000000..b663ddd5 --- /dev/null +++ b/windows/runner/flutter_window.h @@ -0,0 +1,39 @@ +#ifndef RUNNER_FLUTTER_WINDOW_H_ +#define RUNNER_FLUTTER_WINDOW_H_ + +#include +#include + +#include + +#include "run_loop.h" +#include "win32_window.h" + +// A window that does nothing but host a Flutter view. +class FlutterWindow : public Win32Window { + public: + // Creates a new FlutterWindow driven by the |run_loop|, hosting a + // Flutter view running |project|. + explicit FlutterWindow(RunLoop* run_loop, + const flutter::DartProject& project); + virtual ~FlutterWindow(); + + protected: + // Win32Window: + bool OnCreate() override; + void OnDestroy() override; + LRESULT MessageHandler(HWND window, UINT const message, WPARAM const wparam, + LPARAM const lparam) noexcept override; + + private: + // The run loop driving events for this window. + RunLoop* run_loop_; + + // The project to run. + flutter::DartProject project_; + + // The Flutter instance hosted by this window. + std::unique_ptr flutter_controller_; +}; + +#endif // RUNNER_FLUTTER_WINDOW_H_ diff --git a/windows/runner/main.cpp b/windows/runner/main.cpp new file mode 100644 index 00000000..c7bc88ef --- /dev/null +++ b/windows/runner/main.cpp @@ -0,0 +1,42 @@ +#include +#include +#include + +#include "flutter_window.h" +#include "run_loop.h" +#include "utils.h" + +int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev, + _In_ wchar_t *command_line, _In_ int show_command) { + // Attach to console when present (e.g., 'flutter run') or create a + // new console when running with a debugger. + if (!::AttachConsole(ATTACH_PARENT_PROCESS) && ::IsDebuggerPresent()) { + CreateAndAttachConsole(); + } + + // Initialize COM, so that it is available for use in the library and/or + // plugins. + ::CoInitializeEx(nullptr, COINIT_APARTMENTTHREADED); + + RunLoop run_loop; + + flutter::DartProject project(L"data"); + + std::vector command_line_arguments = + GetCommandLineArguments(); + + project.set_dart_entrypoint_arguments(std::move(command_line_arguments)); + + FlutterWindow window(&run_loop, project); + Win32Window::Point origin(10, 10); + Win32Window::Size size(1280, 720); + if (!window.CreateAndShow(L"myapp", origin, size)) { + return EXIT_FAILURE; + } + window.SetQuitOnClose(true); + + run_loop.Run(); + + ::CoUninitialize(); + return EXIT_SUCCESS; +} diff --git a/windows/runner/resource.h b/windows/runner/resource.h new file mode 100644 index 00000000..66a65d1e --- /dev/null +++ b/windows/runner/resource.h @@ -0,0 +1,16 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by Runner.rc +// +#define IDI_APP_ICON 101 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 102 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1001 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/windows/runner/resources/app_icon.ico b/windows/runner/resources/app_icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..c04e20caf6370ebb9253ad831cc31de4a9c965f6 GIT binary patch literal 33772 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 literal 0 HcmV?d00001 diff --git a/windows/runner/run_loop.cpp b/windows/runner/run_loop.cpp new file mode 100644 index 00000000..2d6636ab --- /dev/null +++ b/windows/runner/run_loop.cpp @@ -0,0 +1,66 @@ +#include "run_loop.h" + +#include + +#include + +RunLoop::RunLoop() {} + +RunLoop::~RunLoop() {} + +void RunLoop::Run() { + bool keep_running = true; + TimePoint next_flutter_event_time = TimePoint::clock::now(); + while (keep_running) { + std::chrono::nanoseconds wait_duration = + std::max(std::chrono::nanoseconds(0), + next_flutter_event_time - TimePoint::clock::now()); + ::MsgWaitForMultipleObjects( + 0, nullptr, FALSE, static_cast(wait_duration.count() / 1000), + QS_ALLINPUT); + bool processed_events = false; + MSG message; + // All pending Windows messages must be processed; MsgWaitForMultipleObjects + // won't return again for items left in the queue after PeekMessage. + while (::PeekMessage(&message, nullptr, 0, 0, PM_REMOVE)) { + processed_events = true; + if (message.message == WM_QUIT) { + keep_running = false; + break; + } + ::TranslateMessage(&message); + ::DispatchMessage(&message); + // Allow Flutter to process messages each time a Windows message is + // processed, to prevent starvation. + next_flutter_event_time = + std::min(next_flutter_event_time, ProcessFlutterMessages()); + } + // If the PeekMessage loop didn't run, process Flutter messages. + if (!processed_events) { + next_flutter_event_time = + std::min(next_flutter_event_time, ProcessFlutterMessages()); + } + } +} + +void RunLoop::RegisterFlutterInstance( + flutter::FlutterEngine* flutter_instance) { + flutter_instances_.insert(flutter_instance); +} + +void RunLoop::UnregisterFlutterInstance( + flutter::FlutterEngine* flutter_instance) { + flutter_instances_.erase(flutter_instance); +} + +RunLoop::TimePoint RunLoop::ProcessFlutterMessages() { + TimePoint next_event_time = TimePoint::max(); + for (auto instance : flutter_instances_) { + std::chrono::nanoseconds wait_duration = instance->ProcessMessages(); + if (wait_duration != std::chrono::nanoseconds::max()) { + next_event_time = + std::min(next_event_time, TimePoint::clock::now() + wait_duration); + } + } + return next_event_time; +} diff --git a/windows/runner/run_loop.h b/windows/runner/run_loop.h new file mode 100644 index 00000000..000d3624 --- /dev/null +++ b/windows/runner/run_loop.h @@ -0,0 +1,40 @@ +#ifndef RUNNER_RUN_LOOP_H_ +#define RUNNER_RUN_LOOP_H_ + +#include + +#include +#include + +// A runloop that will service events for Flutter instances as well +// as native messages. +class RunLoop { + public: + RunLoop(); + ~RunLoop(); + + // Prevent copying + RunLoop(RunLoop const&) = delete; + RunLoop& operator=(RunLoop const&) = delete; + + // Runs the run loop until the application quits. + void Run(); + + // Registers the given Flutter instance for event servicing. + void RegisterFlutterInstance( + flutter::FlutterEngine* flutter_instance); + + // Unregisters the given Flutter instance from event servicing. + void UnregisterFlutterInstance( + flutter::FlutterEngine* flutter_instance); + + private: + using TimePoint = std::chrono::steady_clock::time_point; + + // Processes all currently pending messages for registered Flutter instances. + TimePoint ProcessFlutterMessages(); + + std::set flutter_instances_; +}; + +#endif // RUNNER_RUN_LOOP_H_ diff --git a/windows/runner/runner.exe.manifest b/windows/runner/runner.exe.manifest new file mode 100644 index 00000000..c977c4a4 --- /dev/null +++ b/windows/runner/runner.exe.manifest @@ -0,0 +1,20 @@ + + + + + PerMonitorV2 + + + + + + + + + + + + + + + diff --git a/windows/runner/utils.cpp b/windows/runner/utils.cpp new file mode 100644 index 00000000..d19bdbbc --- /dev/null +++ b/windows/runner/utils.cpp @@ -0,0 +1,64 @@ +#include "utils.h" + +#include +#include +#include +#include + +#include + +void CreateAndAttachConsole() { + if (::AllocConsole()) { + FILE *unused; + if (freopen_s(&unused, "CONOUT$", "w", stdout)) { + _dup2(_fileno(stdout), 1); + } + if (freopen_s(&unused, "CONOUT$", "w", stderr)) { + _dup2(_fileno(stdout), 2); + } + std::ios::sync_with_stdio(); + FlutterDesktopResyncOutputStreams(); + } +} + +std::vector GetCommandLineArguments() { + // Convert the UTF-16 command line arguments to UTF-8 for the Engine to use. + int argc; + wchar_t** argv = ::CommandLineToArgvW(::GetCommandLineW(), &argc); + if (argv == nullptr) { + return std::vector(); + } + + std::vector command_line_arguments; + + // Skip the first argument as it's the binary name. + for (int i = 1; i < argc; i++) { + command_line_arguments.push_back(Utf8FromUtf16(argv[i])); + } + + ::LocalFree(argv); + + return command_line_arguments; +} + +std::string Utf8FromUtf16(const wchar_t* utf16_string) { + if (utf16_string == nullptr) { + return std::string(); + } + int target_length = ::WideCharToMultiByte( + CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, + -1, nullptr, 0, nullptr, nullptr); + if (target_length == 0) { + return std::string(); + } + std::string utf8_string; + utf8_string.resize(target_length); + int converted_length = ::WideCharToMultiByte( + CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, + -1, utf8_string.data(), + target_length, nullptr, nullptr); + if (converted_length == 0) { + return std::string(); + } + return utf8_string; +} diff --git a/windows/runner/utils.h b/windows/runner/utils.h new file mode 100644 index 00000000..3879d547 --- /dev/null +++ b/windows/runner/utils.h @@ -0,0 +1,19 @@ +#ifndef RUNNER_UTILS_H_ +#define RUNNER_UTILS_H_ + +#include +#include + +// Creates a console for the process, and redirects stdout and stderr to +// it for both the runner and the Flutter library. +void CreateAndAttachConsole(); + +// Takes a null-terminated wchar_t* encoded in UTF-16 and returns a std::string +// encoded in UTF-8. Returns an empty std::string on failure. +std::string Utf8FromUtf16(const wchar_t* utf16_string); + +// Gets the command line arguments passed in as a std::vector, +// encoded in UTF-8. Returns an empty std::vector on failure. +std::vector GetCommandLineArguments(); + +#endif // RUNNER_UTILS_H_ diff --git a/windows/runner/win32_window.cpp b/windows/runner/win32_window.cpp new file mode 100644 index 00000000..c10f08dc --- /dev/null +++ b/windows/runner/win32_window.cpp @@ -0,0 +1,245 @@ +#include "win32_window.h" + +#include + +#include "resource.h" + +namespace { + +constexpr const wchar_t kWindowClassName[] = L"FLUTTER_RUNNER_WIN32_WINDOW"; + +// The number of Win32Window objects that currently exist. +static int g_active_window_count = 0; + +using EnableNonClientDpiScaling = BOOL __stdcall(HWND hwnd); + +// Scale helper to convert logical scaler values to physical using passed in +// scale factor +int Scale(int source, double scale_factor) { + return static_cast(source * scale_factor); +} + +// Dynamically loads the |EnableNonClientDpiScaling| from the User32 module. +// This API is only needed for PerMonitor V1 awareness mode. +void EnableFullDpiSupportIfAvailable(HWND hwnd) { + HMODULE user32_module = LoadLibraryA("User32.dll"); + if (!user32_module) { + return; + } + auto enable_non_client_dpi_scaling = + reinterpret_cast( + GetProcAddress(user32_module, "EnableNonClientDpiScaling")); + if (enable_non_client_dpi_scaling != nullptr) { + enable_non_client_dpi_scaling(hwnd); + FreeLibrary(user32_module); + } +} + +} // namespace + +// Manages the Win32Window's window class registration. +class WindowClassRegistrar { + public: + ~WindowClassRegistrar() = default; + + // Returns the singleton registar instance. + static WindowClassRegistrar* GetInstance() { + if (!instance_) { + instance_ = new WindowClassRegistrar(); + } + return instance_; + } + + // Returns the name of the window class, registering the class if it hasn't + // previously been registered. + const wchar_t* GetWindowClass(); + + // Unregisters the window class. Should only be called if there are no + // instances of the window. + void UnregisterWindowClass(); + + private: + WindowClassRegistrar() = default; + + static WindowClassRegistrar* instance_; + + bool class_registered_ = false; +}; + +WindowClassRegistrar* WindowClassRegistrar::instance_ = nullptr; + +const wchar_t* WindowClassRegistrar::GetWindowClass() { + if (!class_registered_) { + WNDCLASS window_class{}; + window_class.hCursor = LoadCursor(nullptr, IDC_ARROW); + window_class.lpszClassName = kWindowClassName; + window_class.style = CS_HREDRAW | CS_VREDRAW; + window_class.cbClsExtra = 0; + window_class.cbWndExtra = 0; + window_class.hInstance = GetModuleHandle(nullptr); + window_class.hIcon = + LoadIcon(window_class.hInstance, MAKEINTRESOURCE(IDI_APP_ICON)); + window_class.hbrBackground = 0; + window_class.lpszMenuName = nullptr; + window_class.lpfnWndProc = Win32Window::WndProc; + RegisterClass(&window_class); + class_registered_ = true; + } + return kWindowClassName; +} + +void WindowClassRegistrar::UnregisterWindowClass() { + UnregisterClass(kWindowClassName, nullptr); + class_registered_ = false; +} + +Win32Window::Win32Window() { + ++g_active_window_count; +} + +Win32Window::~Win32Window() { + --g_active_window_count; + Destroy(); +} + +bool Win32Window::CreateAndShow(const std::wstring& title, + const Point& origin, + const Size& size) { + Destroy(); + + const wchar_t* window_class = + WindowClassRegistrar::GetInstance()->GetWindowClass(); + + const POINT target_point = {static_cast(origin.x), + static_cast(origin.y)}; + HMONITOR monitor = MonitorFromPoint(target_point, MONITOR_DEFAULTTONEAREST); + UINT dpi = FlutterDesktopGetDpiForMonitor(monitor); + double scale_factor = dpi / 96.0; + + HWND window = CreateWindow( + window_class, title.c_str(), WS_OVERLAPPEDWINDOW | WS_VISIBLE, + Scale(origin.x, scale_factor), Scale(origin.y, scale_factor), + Scale(size.width, scale_factor), Scale(size.height, scale_factor), + nullptr, nullptr, GetModuleHandle(nullptr), this); + + if (!window) { + return false; + } + + return OnCreate(); +} + +// static +LRESULT CALLBACK Win32Window::WndProc(HWND const window, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept { + if (message == WM_NCCREATE) { + auto window_struct = reinterpret_cast(lparam); + SetWindowLongPtr(window, GWLP_USERDATA, + reinterpret_cast(window_struct->lpCreateParams)); + + auto that = static_cast(window_struct->lpCreateParams); + EnableFullDpiSupportIfAvailable(window); + that->window_handle_ = window; + } else if (Win32Window* that = GetThisFromHandle(window)) { + return that->MessageHandler(window, message, wparam, lparam); + } + + return DefWindowProc(window, message, wparam, lparam); +} + +LRESULT +Win32Window::MessageHandler(HWND hwnd, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept { + switch (message) { + case WM_DESTROY: + window_handle_ = nullptr; + Destroy(); + if (quit_on_close_) { + PostQuitMessage(0); + } + return 0; + + case WM_DPICHANGED: { + auto newRectSize = reinterpret_cast(lparam); + LONG newWidth = newRectSize->right - newRectSize->left; + LONG newHeight = newRectSize->bottom - newRectSize->top; + + SetWindowPos(hwnd, nullptr, newRectSize->left, newRectSize->top, newWidth, + newHeight, SWP_NOZORDER | SWP_NOACTIVATE); + + return 0; + } + case WM_SIZE: { + RECT rect = GetClientArea(); + if (child_content_ != nullptr) { + // Size and position the child window. + MoveWindow(child_content_, rect.left, rect.top, rect.right - rect.left, + rect.bottom - rect.top, TRUE); + } + return 0; + } + + case WM_ACTIVATE: + if (child_content_ != nullptr) { + SetFocus(child_content_); + } + return 0; + } + + return DefWindowProc(window_handle_, message, wparam, lparam); +} + +void Win32Window::Destroy() { + OnDestroy(); + + if (window_handle_) { + DestroyWindow(window_handle_); + window_handle_ = nullptr; + } + if (g_active_window_count == 0) { + WindowClassRegistrar::GetInstance()->UnregisterWindowClass(); + } +} + +Win32Window* Win32Window::GetThisFromHandle(HWND const window) noexcept { + return reinterpret_cast( + GetWindowLongPtr(window, GWLP_USERDATA)); +} + +void Win32Window::SetChildContent(HWND content) { + child_content_ = content; + SetParent(content, window_handle_); + RECT frame = GetClientArea(); + + MoveWindow(content, frame.left, frame.top, frame.right - frame.left, + frame.bottom - frame.top, true); + + SetFocus(child_content_); +} + +RECT Win32Window::GetClientArea() { + RECT frame; + GetClientRect(window_handle_, &frame); + return frame; +} + +HWND Win32Window::GetHandle() { + return window_handle_; +} + +void Win32Window::SetQuitOnClose(bool quit_on_close) { + quit_on_close_ = quit_on_close; +} + +bool Win32Window::OnCreate() { + // No-op; provided for subclasses. + return true; +} + +void Win32Window::OnDestroy() { + // No-op; provided for subclasses. +} diff --git a/windows/runner/win32_window.h b/windows/runner/win32_window.h new file mode 100644 index 00000000..17ba4311 --- /dev/null +++ b/windows/runner/win32_window.h @@ -0,0 +1,98 @@ +#ifndef RUNNER_WIN32_WINDOW_H_ +#define RUNNER_WIN32_WINDOW_H_ + +#include + +#include +#include +#include + +// A class abstraction for a high DPI-aware Win32 Window. Intended to be +// inherited from by classes that wish to specialize with custom +// rendering and input handling +class Win32Window { + public: + struct Point { + unsigned int x; + unsigned int y; + Point(unsigned int x, unsigned int y) : x(x), y(y) {} + }; + + struct Size { + unsigned int width; + unsigned int height; + Size(unsigned int width, unsigned int height) + : width(width), height(height) {} + }; + + Win32Window(); + virtual ~Win32Window(); + + // Creates and shows a win32 window with |title| and position and size using + // |origin| and |size|. New windows are created on the default monitor. Window + // sizes are specified to the OS in physical pixels, hence to ensure a + // consistent size to will treat the width height passed in to this function + // as logical pixels and scale to appropriate for the default monitor. Returns + // true if the window was created successfully. + bool CreateAndShow(const std::wstring& title, + const Point& origin, + const Size& size); + + // Release OS resources associated with window. + void Destroy(); + + // Inserts |content| into the window tree. + void SetChildContent(HWND content); + + // Returns the backing Window handle to enable clients to set icon and other + // window properties. Returns nullptr if the window has been destroyed. + HWND GetHandle(); + + // If true, closing this window will quit the application. + void SetQuitOnClose(bool quit_on_close); + + // Return a RECT representing the bounds of the current client area. + RECT GetClientArea(); + + protected: + // Processes and route salient window messages for mouse handling, + // size change and DPI. Delegates handling of these to member overloads that + // inheriting classes can handle. + virtual LRESULT MessageHandler(HWND window, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept; + + // Called when CreateAndShow is called, allowing subclass window-related + // setup. Subclasses should return false if setup fails. + virtual bool OnCreate(); + + // Called when Destroy is called. + virtual void OnDestroy(); + + private: + friend class WindowClassRegistrar; + + // OS callback called by message pump. Handles the WM_NCCREATE message which + // is passed when the non-client area is being created and enables automatic + // non-client DPI scaling so that the non-client area automatically + // responsponds to changes in DPI. All other messages are handled by + // MessageHandler. + static LRESULT CALLBACK WndProc(HWND const window, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept; + + // Retrieves a class instance pointer for |window| + static Win32Window* GetThisFromHandle(HWND const window) noexcept; + + bool quit_on_close_ = false; + + // window handle for top level window. + HWND window_handle_ = nullptr; + + // window handle for hosted content. + HWND child_content_ = nullptr; +}; + +#endif // RUNNER_WIN32_WINDOW_H_ From 1ec7f3276d829b854d45c6fa5ef1d408a6e8db09 Mon Sep 17 00:00:00 2001 From: MalavikaSreehari <84339828+MalavikaSreehari@users.noreply.github.com> Date: Fri, 24 Sep 2021 22:19:10 +0530 Subject: [PATCH 2/2] Add files via upload --- Screenshot.png | Bin 0 -> 232150 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 Screenshot.png diff --git a/Screenshot.png b/Screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..0ea693d3d3b8c915d9f3f0755b9c06067e1c599a GIT binary patch literal 232150 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%0DeZh?>h=7-O+p^rP#4t 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�NU2umi>t!Im2~TU#Q*{j zX!_H8ZR?DQ=mH6G_nVh}0mPrBF7j-4aj38v;v%BL6;je8Vp@tZHS}3IZPwv-5*v;Z z8H`4*HybvQ1_0&eYlJVBrH9@D+deM{YN41k{1&d7JW84+<(@afZuzVK9@uuq>pA@yhX4By}X)#d2FDG6F}0hFEB4-B`Ad3(TF3A^KtJrI zj{71Yz;_KjoD(EJYrR~+i=&m!X5cz)lF;S{Oo!h{#n0{WblIox>s6qGdP6wFyNsbV zxty0X;<{I#@_V%@E!3``;ZMXow|>=jp9e9&9T3IEGcz+{sty79*b{O`&!*b$p~=av znrZxo*E%5vJYIxEHB8*?JHKd8ZAPaw87E)=R`M!?;# zK#g>ns@KjdvFu5P^|<7Y11-?kin^`F>nSekeJ;zJo10cXbvi_s2{P%YLEgIwl2MmV z=i?3zx=(xoI2x_RA)+z8y*E?vYnDLQW4vW%0<_ux4|`wX73CXkt&%Fzk^@MGNFyQf zqd`C=rE3W3?ov7j3F%NNk?t;u0bxM8J4U*@zGuAm`!DXS<#L>bGw+=D#NPXy^Kf(< zWjohUoxQ^eu&!qY+*QA%ZaD%bJG47pZEf%kQD6hAsq_44I~Gm)*`0rm<@C_$$jHc% za7-9@G?lR~3bqU1L|y|Z?V*mGsdJ>4!2hA=PXGd#9F!4%gtkRS^&;F4kN^Y*sUFwf z%`1H!2fj}oQx;isL#ISUL`Py11y)W@P6IRDj{WE7=iE)HfDP*g6l?O zKQ%z%@Atmz$XBY`GWGm@L}ktKi_3KF_ZO<0b;ZP;ybJcz%x1D zflr_AV?ZL63=L_36NP$g=`ILcOK(ZOI_l?*vATQHJxgt?HL=n9_{8hx$ACMVu(n}* zOG^up@56uZiv7Ia7UlfqIkSH}~NW$2aW1#hm7GMbMq@%($z=KL=~DeIbKDa#~xn zKqV{lyYYHyGud{5%o+q=I%GutO*vEMMW;Zuieef3)( z96KMbfMcej*nCh0Y!W~ss4kdOiPc#$?Q(iRSfPu1A!!dEmEnE4xGI+Z^cn-iZA9Ckz%m1eIks#`;n;KL}uQBWc_6O_;F8X2;F7^`1e_)w< zn9J!Kj;eA;^-VYn!WfzXlu(|`5eY)t%izUFQwN+e-9hJ8V!1IdIuI>|HciCXHdZMdJ$`? z%oq*eU2E-DKhfsqWZ$w&t{*;NPiSPii|7H7$>;Vc%fiK_D*Faio1IWln6mYNQqQ3s0|y7^Gs8nb zK^6gBTSw*aCb7Of5BMwL%-ustr(VV+hankKME%khC|?76H}iXrbFLGPpsa|mI9k6r zn{~!Rf!BVZHV8K)qSOQ8$S&9^>KhXDvMweE0y6tS0yZ)+0q49s&S9Wt#e8g6R9w-O1ZZo#PMZr2bfSl9-DSCN(lWrca3IPG-5OBGqt-+-^>TDa$gy1?sgYP30x8-uI^l+@y@8n0!(dPTs%dq=cZPtcY zIxW|0oJW9rLry&3JmvJB>Jxq>xVq{Hz5`IjeDbpunBl)r4hoa~*7B|y;JGCr!7+jg z^j_`?#mQ&EpT|y5_WbXzw98Gp0w9X0fG|i_uk?>&A&Er6EwObZK=DrXKK+B0_`M|F1N#?uSkAHJbg|wXRojT z*mcHV#n0LMHMPyr;^%?lf+a`@@N@gyb$hK!bA+SlUcsVksW;W#ivM-YiW@jRDsexU z)8~`x);LwIa|9^0Jq3#3+Cf}}0u6&jUs5qAoasn&+UCyC@+9%y8#+-Rf2J%iUy|=u$F3H5+@SHAua-eS+aG~ zTI}Y8TTZJ>9f9WiVsVVh5SX(a&+l{VRbwmk;&6@m(#bTFqv0qKr92RkceVHQ2q!W6@OX(@2&sOASfsKKMz4gjrQ?1k?(y} zWSn&~{_G3$I+5I%6RzCd_ZF{szsagA{CEqO{=zP;K*4Hh zQ#QWrh3nUz`-k!m|GN+Rk>LKJm?_8-p7#sh$|_O+AW&vbo?N`-2zL5!B96}Yd4q$V z#rSD=vL;I`7I|Ay=}fJ&e(h5uNJ|EH2%oaW4zj^+>)dm4$giYh&{@!$J^rdtn@cTR zfhch66|vU?uf(UUry&`w@+i}={QD#!jFeHH8fe6{N0h<~zxM2=oc{)Y6P6$sJq@0R zd6aM&m)w_2%`5&)ch}Hdu_6yY7AbxDVYOY}01=zDa`6C$^nK#?R!vBqxrDhcQ>sAR z$VeZrMBr`(l;xgY1yq{rVKs7r^L>dG9{;cW)mM90fi=cp?HMg=g*fz{#K3-BJa*X8 zY~O2KJi#Iih{L^+*={naVjYXSPiX3FBU)RF4Y;|gq;qp-zt`*np0%BcLLd~;*b}a- z#Ate0>_*CdxM}>mJ#Tp5PRZ1SvX7Nxu6VQY<Q_|aG>rvz zr+@pFK$+JK~cCyv?zs`Kjka*LBN-#p(h z(<(z);Xxqz+Em32&U8J%`r{Kfs15I8&uwU0)&$>GKpn1Ss!0*;K3c`| z8Zv7K-3i+YF&bE8U?_CvrvfB!WSrU5=WTGfuSQ%5?e+<|a5h%!BGrn!Dyjy=p{hh| zd`2+ZTbNpwJa(j*;`qrsYW4vUY{Y*7#&QQXO+i=Nb$6x9@7HSaC8dL*B~ zyBzhSs*P|u=(Clgl(~e3e^34;8+-jlr?|T#t+vd4PfS);_J?L+r=wE#kdc#B1j8Ga z#D>2+JB%eZOTx#IBDeOBg6&ogebXDZbQRG_j zD6FHVb{rqhErD;U_*ylv8aHzfT12bxq+5q6pUr0OlsJvXGXYNRpMK+g#_jYMA4;D+ zYVEqr*QKRcOl@3ji@{W~W!}uMDpjCm3W%>DtYdesv0%&!UE-b~S-dT!%oDu{S_P9R z?xI(|F96$EN_RHs1o}}JcL<9WSCvcHT3=$kGyymkvDP!od!>H{t3aN^0Ha zSUHS0Vat(QP68K3w9uBqkqGI&x zztW%15R#Sr^(Dd37-hv_6Qke-LTJDL@RP`FnQ5fFjY0p=v{<1_vi7tww;&>qT!nZ^ zkXi!&U8#)vPgkZqCUPOZ-=CI@Gd-3`Ma~xkZDua{K!auRBl0q*p#8oolqHDPn3e(O zaq%L9y&i=e_gV=DO0O@f7OA$Sv`i%=k&OD(#<_@f|HLcWtNG10@XiyC-~ct&oOjp& zYJE2-HIDjLTN?_r$}+bT3a=}#jh!7c2Zzrs^9BvS^yJhTSM-rRfI_UF6P}9>uZ0Ml-ZmnSD?(tauUk^s?mN)3?0~j$Nu)n9{f!Q z|J{Osc8(=vn&}t$9pFz*6ZVim+mx&va~9+#wPP%vQtmvZ0y%x2LYr(kE(dea)p7Qt zPIdP!8a>daIXyNvsJ3TXV=@}uDt(b0OibP3-?0ZDv$&ou3R8FIXg$u{ie(DoXS) zusvBMzjkY^O@z{wyiV!G^ptjKW&DdU%jUe|gIe4ouY)+vMeYjQxPn0bfH?SXQatvy zd`S@c>r(%6t7DD-k)R6WH+!>`5e^-<$!urK<3HPtLob*4?>35>sZtRVX)_HREl6G= ze#D^PDVJ`o9n{1L0NL5@k+=31E;dC|vm><1FPMV)lv#))a>5xS;?^s0u_n$~FQ~gD zX&*C)WHG!cA2+8r^rf+Wp%x#n^yZCfq2|WMuARO+NkE;ninRS(yii#@6*jl{)FOA; z`q{2yb&PmP{2<~-jNe&ktr&3dV*Z4gM09a{XECv{NdOWsO1S3b;gQADVH^1WvjB#B z5=`UDL~`7|H_b)5wTbh)B{tKM+=3-)> zqH!ILq7z;H3^L1liaZ%yY9 z9mid&3Jd!?I~g3)|4b}|aq*y9D_8q&R7TTCq21|tHC}mVMjF+3ceSe?p z6AcevT>{71ep~7wGOY@UjcGkFLSMG;TV}1mt?gn{KR*&T3BK9 zYhxp2RJ(KKN`7}QT>@WMCpVL_0~g{EtZ2IZ3}Q3hP7Ea+=4;m>jnA1nf1h?z)00%3 zWBJ;u!i?P!LLm2~EV1p3ySvQP=$l7C@@nM*j*k z$$zdz?d^t2!(;CktCAq|?^k+Y$1``QEfl;01KM8~JteGF!&d~8*G=&Uj~qquJ~D(H zge#nimM4W$Pj|w0UQJcH)5M5XqznylUt(Q`X9wvN!}hKOanVM5EeIHreMBNQE}`lYnWgsLm=iZwor zQX-%^g0S4$+NALChY&a|Y-Rm8!2lEhP~3xz|1&h?)YoSe8SFUHi|8uTP$3ARedV^z zfFpHziOJQiT0H*nL6+(_X>Jx2Dyp%Y>mD6tKtsFnC;{q4%)v5g7F-C~64u_%81yMi zIm7WqCUT&`@2f_0EQT^~JA6r01(qYCWqR}O;m76}>hHosMjI*3E>DQpk5f=?X7P{F zud+a{yBMm=!*VGvCq24;3hlXj$g~xie+vzUTui`L@Iz=nNBb(rCp_!Pi&aw6oN9LG zoN?ba0^*0wLQBTg?$yKics1h3Am1{9#>?)MV!a;IhxtydPj5H985Cw4QU*((D-f31 zji(bST0JS*!e{0+mJxH~SB_6%q#R%5D|{2hU2N1wCItp3zG)VI){xiA%VYYxw`U(r z0b8kh5IsL{ChgcP^!g=(0wHKHIzqVl`Gb+3#E}>wAt8TvcbOCj2f)0{qu|d41&<`~ z@k8!|p0Ijh{Puiv8kh#-=HhB2x3GDpfTLh?J~c?azL8(+e2c-k9zdFAVukI+9? ziv-7ZhPq_)Y_&+&3S?5=R2;EhsGza~#S{+_9MN5w*Ucj;iU6(mthuTv zC>YRY;c@;S?<97ClJdKZOj9tYpi0}xz`bU2A5YQDDy~i?yEH$PA>xNd-rub)3m=z+ z@Bpc{G zyIE9p>=;FjE*IA^&Ox_NoG*6#t)&a0DVZgeu3K)qjc3fWj>s5~?Qmu;tp+e9^_1w# z>tKd($Bzu*3TlDKdIkkF>q^QamWb(}l1kJnMz*QSs^y6ch{XJyaU-HKgx|B0m8Gd7 zi_q%4F-~-wLc$Km3Pvi}mQgV+?C3S#M|5ZfcbOx^3~H2(d2@pj)c(xOAlhS%7`Wy!3~J$A{1?&6FE7?t=XFd<7tEj2NCaqYGb2= zBD*}hin=}jLsxyQ{HX-Kt?wIz`Pza@!nm1Gou>~o`4NwBM}8Xh*sUv93WQDga7>*| z@u#g1e_>}YFOf1)gFwr*(pdu5kCUA0(?)anHu*um$3cTIKgMHX&JSC`UO3}sGPAM4 z;TpBlkd?y&q527V;qpaMN%_sln1-p14e>;|Zzd_mO=mr+9AI6!dkKY78Y-zj6KNaG5et;q^A?$}#)%%B3~u zz0!kio9CltS`|E)SkTIM?PP&lb#->*6AuoJI=;<^fqAE7_)GC_FfSnxW8;?)hy^IA zH5pVs>KlQa5lFOyN>brOQ3!8WQ{~si2sV!IlOI=%Y$F~gn?DV4oMT_z*H=o2_Cb`4 zw!6;Spci34hl`9lEdA`2b;TpL53ZA6A~IvP8W_4e7#?Qssjv_`mT5udhp`7;Q_{)u zRZ~oQ+wMinX0+iwd`w%i!XqRkQ7|b3$&I3>$TleC<*Q0)XH-niOzl1swW_uhu?M2W z56!%XQZZh|AvBmcUqVy+UQ1F$3yd8V0TKW9-Hkd~=%mfC*uMceY=a9k>nc5<+Xc*U_46WL5X; z(D{nh1?%Vz8^|o_zy6U#2vZ5;wy$Ya%bM9smp_8X4!pE7x4xBAOcxcHcyLEugg`WR zUFOU*r?RS5wJ?3C?9}1;$}AXwLdo_v-kX+eV^+M^J%wV^X$g5`E6c*B?I4xX;Z!nZ zD8%t!_R9^JyzrzAEhkB1(!zo;Us+40=JCGmAycxdD7AfL+ox9XJKB6KJYL)|ExN>( zW3P>3m{0c++J7Gu;)5Cr;<~xJj|w!O=UD#!&tE+FSq?tQz9@|~EzTpv%6|~EK2r#U zshgRFk&Gs*^GIa8L|?HWLD_6$ zYYVQ^*VBUyg+kTytP>*4Zg;TUx%v2d;usbG()^`o$4vJ;mA%AFT+GFcX98jdp9uH{^$DD4q~DX8BvR?Q(Lb9$m6$OFui(7`%pu?=Cc1L-`aX~WDVR~i z4R>aMTUhcGn4L+5{-tJfv`$*zH zVt9^1+>3k%ND;T7Z6BMC22*IX9D*X<99e_#BN{K4^BYG{o)wA1`^y2E;kR_YjL04O z@Q%$@rSN^b@Og_|wT}HxQXVFhy<5v?A^#oA;?>mfXOnXITvcN)FNz6Q-5a@pXGUQB z4D{1^Ks&pw?cSP`K($u}Xl?z zRf4AX_aE(tPx}OYZ^-L1BgQoLoa%^}dl2cvUALne9H6^YyAQTMxP^pdvWK2w2aLyI!5u+) zc$TbPvM4-7NO*6=27l9Ys=kQ3m<`w3wnn|n^b48X=G_qWyDBz8b5Zfga!jQf<*UJ? zc`DDZL-RhoGu=kTBjbbgU5;%>KEtD2{QO;D^avEZp&^xJ!8~=gr7N*&oi7Xu0P&c2 zMLY#8B(l7m8)SHZy8%uomLY=z)hwaU3^=i%pc87|5$q2A27{2GwnI%#gTNr=pAUS% z#3($9Bub*|W$(GH{3kuVGhuLaVmg4OhO z$Jc`x?n;{D`Qb|0=jsdwooN~LvI6SQ*|nx?(3UXzCwQmn7yIiYfeZh;!8_x#5`Dz$ zhf-kD#1T@P=v7ye_7p9L)ovzPwI}aef9AQdqh6{qf92-$_XjBTq zq{_8S9URJpWM4k^W&83dS~k$Dc>uI>!&U?fNfgvx+RrOx6O^A;jR+!VNsWt_4w!3z z#xh0mO}F5Un*Hd;#s(A4BOF}ZKOdygzro|$?yjQi&`b+72M>1|%%8?>kqsqA%VX6$x`vGB+N53)F)08EAq| z{vT9!?Rh-hUK~HlY%*@xVj=-Mvsvn1GNiOFGgag+>h%lUYvAJ7Sc{dTUW3uxB%@|L zl$4Yz+;%JlNvuxT0EU@xwdAAFmQw7YaHa^v^C$^i5##;ZBUj<&r^&kbGO5}lQ=pKi zgIcpU7K^9_obj~z;dkKY?Mn;4@msx_7{~LKi-SYwmlV-96bdFOnVETwjcF{fYNZ`N_L^~PCYDq8z&DFexj?h9NT)i2cThMINOU|e#eRcj z9cc)>_@EBxSBP9rY9Qe467zLvg=%2udQipr9jnG5wYN^p5)sg|%F~|#qxHdl^-eAJ7 zXqd~xK(`flFx#M%NJfQ(Pq0chtpN~5D|E7dK z&P3L*v6&|(Lp%%QNn99;w|WDkuDK_iErf$1HA-D%fqPh$4uk`jT8tO)bbcjFbcf!M*Uo^`vKC~1NF;)W<=-L>siOm#E*h9GbFTH^D z1A%|E)r=(5gXb3(D%BT;&d-ZsVq&rqKN#jSJ72sH1S8PA%If3rCI^!*_710!17H(i z5~une-2Bew%}DP;Vai18x`m~L*w1@5{)_kghM*Ubmn6Gi0jFf9MKN=y-w{6_UQv@n z5g1a$-lQe!cl-a*<53>Mix8IvWbtq54s-=d!HlP&&D?J)@oNIGx^o9~pN9IUd;k-T zK!Q_m#>Ih>=mC=|Hn7HI;utrNm#fI-@a$RcXLl7Wx|2&~Vz3O@5=IadN<0_o$?VyV zi1e9~1pojiqS%2BPwC^fMNTD~+>J|@qv5T|(;T~uBOkVzRwv#2i^_cfic!Wk#~c|xI*5Uj>ofBwJ^ z%oBg<=9BxL)Hn#`j-A38_ZRvs;w6~M3d;c9_ z3hSDK)>t?{kYz*$;jV4&q7Kg#mbHyPS?borohyI(3bAzzGt72rvUc9J#ByvzadX-jzSf(;Be^p@5^F)@U;=C9?_r`Ng zR22B!(1$87=hcNq4`A-Y3A)nX`@UIL)zdl=aRNtG{p{_%Fgv== zBP4n7!2a~W84k`~LFK^jI{llGB)1EXLDC~qCTIactjd=C1lKmhq~oca_^E3NZdP(! z%zFgo$AGT;)c)6`vo0gGbzlveoSd9ifsjIl{;{+OR@pfW6cHly`@vkDCgq5Gbfq6Z z@Ne}qCy+^zc@$e_@6d*DV`5p1tHzx^N)QPWY@)TIehHyYtfJ{~wP4elKI?;5)`U`D zxFQ#jSF3RG>+;vR!&Y{}Bk6oyM>m>e35NdEZe&n08k)ghA?vP!uy_qCqwp1M$bJ+1 zEIPEi%;qfWewfLSVDHvJI1wE)-)o(M24;#?hOc4FnJ~^2jj~Vfd1{YP^Ol85H{gO;LN!L(9$OmvXH&XR}=0rpgr4ze1`!k1`g{2Y<3#a!B+J z#&U-DJm;CNjNoXgWN z$|pr}{-g!b6~|*g1b!xNQb(sRa-5D1{*+b;Ypq zQIbh{&!0a$%YwA~j~NOWu_Ij0j#qH;h(hjnGet#3Ib7|yf9~eS#RU^~j4rMcsTAJ@ z^YBCJs0XowVYyG<7p=Attwh;nneTM{T*n6i7l;Zt?c<*-PjJPAy1G}$Y}%B-YEfJ5 z`=_fClBqhGewUVDI`O8}=d5u73N|T}l-|^8aNHZ{k8V~_(<3cXP*}!>2W-{nAU@M7 z6RAQEd}vBvM9D|rXYO*gICGHiMI*zKdRaCK1}2v3IUM7vWdBgNr04j0cJs>3KbX|a zmAew0JPiTFuj)Zy$8(v({}}A$rwyWGTQhl$#pt9}_(=!?@Yh4X2&p$l8GK{vcL{}XRqD&-Ur(n}Z+f1^Ojc%_4^qt?a05(-Y zX(!@fQ=^_e)Gw%Jp6`D|04t zY4MLf3P2FR0owia3>z$`Rb4c!!fi{bxyL`J20g>pA<_X3rmR%R30FE_Hc^r!W-LB3 zA7jSHq%PT76n@7-{FmblKS<_RnS6nI_p%C$i*ZrM>L_|9l1GUD4Vk&3^=9>>R>!d| zkBP?l_TL)M<>P)#%|P=u8T^%D`MxpH!#`w;THcL;vRUDQ8pes0>CH>b5T{x?PI>{y zYlb?**2Q&O6$M^i6~srM_y4?q_yR(qq7;`G74vpKyK#5<)xrgCjL0Di7Op8m`f;#> z=80tL`p7$TulK70(_AA`-<$8}E2L;FeHIVd3gA_fAgD9o75vBtWQ}`pOOBBbr;832 zY;tidb{ave6GPM?btR$vnDOTP&n{GP;f`(nL84RD+Df`d!`DJ@(DOEr#6qf6R8eG>)l|3s*fiOYKJ~TH6KU{kbXm#Fv7|@=V1i8e-B&s!O zt3z~(Ul*va7FE7HENne}emz}i2sk<6Z+(nBCgu$*Sg)&Z=}o*qXnDCOO~M7Iy~6i| zoim!nD#cKTCa9qVKqeJ`s-%GiNsPi;E%VAfkV0F}FOxtP6 z@xJ%Up(^VYp0dvU@U0p)#_5jaruXvOT{#7c+&GS}gSD@aH)2-RHpI5>wckLCaROt| zd4ug~s`6XrvX`{`qDpbWLO{h(PNQCL+rPgo+v$IfXU_mL0qq*u(XX>}H&H5`&Q}i9 zb9+VCf1oSRHOr6Mjj!Y2!@S-xn;xj)i?n|kQr%6=;d8sI?{Su{m>tsQg}wtjrj*GO zm4wd>+8Q5e(CbRzEpt~FV92@`vCxtt6)Ibqw##Lsft6!<7zL%Fc7U)pB~MM(1mHQ8 znKPj~LMn1;5!M-&i&Jj6x>Dap{{JjMk~ubyGcG&;+CvetY;?$m6aT`~v8>MXeA)Dy zjP(?jQAz<*3e{*`oh{VnNH+K4FyR_g3=|M$`8oO^x(n~m7$hW$yk9Nt%9HX>p`B4B@r)x*eEwgrR zf2AL_xxe6g8Dciwt(T|!OnvgAP2!FB#xRCZ9uN`^{tcp$1lJ{&ogty{R;xfC&yTjg zD-G1fe^uGd1hxb@0G&ZLF0@9c+1-+0$>FMCcZ`3SNJ+CXKhf^N6>wI&>_7O5X>Ex~ zsC^QGyx_g6o2sraiRb_6qW?hLzGb8OS5OlvCT?B7l3}}+gRO3G7zR8=d;3p%QvgB| zS5F{qbXib)EC`YK{hnY65ZpsCh!I9T>xPX8w(z1@i#Uejyze{l>W34#zO1knQ)4Bo zCkD>PcDM7ZUnnjdMHcA!Srwea6|dA&uCGpCM}zZ<_tb8g?Tt1U@ddt*k0$s`MO7yP zqGD)hI3AhZC|j+Xt5aMFh2s{@NxZ|>s&`@p2ir)iP{GS{n6{+iriu0XPIulqjtJPB zbdX!1NQV`s>>FM2&nf;jzI3lH&Ic6lHhI9fm(9&tb5VoQ$FDi9JP}~J@aBw2G4lVRRdD3ENoguZV~$eb)H3{(uF%f@uR@kd z8;v(5g@D{~V9Hy$Maz26nXWJ*M^N27aa@XlXIaTxx?TwtS z+V^;kNhjYnS(FA=6A1LB6bkz!t-^j1roc5u`3Ao8ygTGFd2M!8*%7Rx@M@=)?HBel zjSiT+o81&j<~gK<>LnG`6DXn-nT1|S^fPnOtE4Ui+&oE;EB`a z-E9qpN-bW(o7l89fJR0W`|@?w1cZmi(RW2x87xghnrz{UUUtt@y!a=Bf!oK zo|d&%39c4(krumG!tnXKX|*C()CTXm_;s)U>H%|!)5b8tw9?t^t#7UWppU}^S=M#6 zwa-eQ09VHHP?ilnfGpWV9%VzVH{i$`|M|TPP|TxcS8nQVbJHMV4XfdI>%&+rJFHPe zOwLmJL4*F!X!Y*a)4)2*HLL$YlD`6G!Z1rRoFeZd!dIZ(+x~6xFS;{1#f0Ibp00!! z-x4x|gAxW_J#!kU{PQ*8vol>@4__Xw^MD)yPaZog&RWHm)|J8Z5xN-(SA?2W6$kXi zW)pVy7q-EPtYU7)1+;e~N9M@7ch%!HQISgRscK>m$HKp_Lthm0j3K^9Oy>M- zIL?lZY!b4wc_Te8d8@0HCd>&_%$emyZ(AP85RLF>)NC|cG*Xd;5b%&eHyU8s*-}*@ zj>koV1A_J5zqq1KE)%vIwAg#KJ#M1y9hR0E#ZHe$*h%z7$6gt)H1DP0$^NZ#aFrn= z-19lXB`tX&{@E4?f3n#Jfqx*7fA%x-TzM>T-dU=@;(PoNFRXw(XWigGsy=+x5QO<+ zpW!8s{{gB0fLF75xn8Vf+e8tTk%36Z#ZctN*~Z?{;1{kx>7Ek--j`}TjC8CRr*dR& z?I{E-4?gwSiT_Sk&<4K_^3>Q#HHYF?eQWYUbleZ^)vB!V&p1(iRthR}Mc5=w??oc}rU9O{mP(#8H3`=BA`(3b3k(@|yyQ9QAl zaP6EPCEWUfxc%|_`0Vzg^-Pb2prIs9PCLZ->sEshr>RpwSOQ71@vCubRoDhS%>|24 z2RKlrcf&mTjK0=>;oFulE?!I+iQa_s(K^-bPV0@RG|pW|>!oXno|w=3k6X8*7ZMGE z_c(xAB58yczuX-%(Om86aDYRfKJZa1=_uR$dm=bs_hi=VgoEa8tnkcLT=mh>1D(?V zZZ&;9YMQJ=Qg9^K^}yaWE;x%vEtCoFUHdvT zz5OE3%)k^+%JS&X>u*~Dlt!;$WYBe;QAfx(*w@dI``@bq^f2{YT zbIqxj=&eZmU$m9K^Z@w=Xz`KOZmWNLbtBZ9KnDeMkz4NG`; z`wIu5cW13DTZVVSTPGw?93itJ&79QQa!!YBPW7d^Z{OpgOY;$bmXldZq6@yrumZW| zo>B9B!sc|-V;qEczPN2b5URPmuqNcq>~ z!HZsUQ3SR@j=UyOzpmbi8%mKxseEuL_#vak;U!I+W~|t6X~*;FQpdJeh){C%{5-j3 z&vBr9&Q5`KN$3>R}v+y%XCy1wM&?VXjVqrY2)SUHD&t#a^cSct{`; z)0Be9vT6J#PTH?ipSJ=$DLzdi=WJOUF|4DmR-QL*s(%%JiCOiMJxMVyxOlt)X2f8k zL_hfO5q*BF@v90gh;cQ2(Eac(A`^bCm5)KHM*46;4_S-9MY7Ln ztt7}pofCgVsxhwjFUmqMy8L!|r0yC*G-?_&RCZTT~j@Ff7F)@)2IXI*+ zSe?rTp^(MPttSHZb4(#^y$9T~x-GZWNf*BsL^|T%mpUCRWBg80bw2J3Y?Jf5C1^Ri z)Ni>kZ0(S{oq2xd?T*U8L-%xgKK#od`12m?m~Z_qAIZgt3(|%(y5XkCJlLZLN8K5& zp84(FEk8H(bi*y^uV?>^fjytq=Xq{0lRSH0ZRR(Fo08opI;X$&%BI!Ai@(1-hd?0X z1jMva^fLV{k?ywr+nQW??B`!hqsAvURm*fLbvPU~<0aczWbADV;t=5jLh0Nt867Oa zzm4$IhXk#)++_Oy&2~j6ErVYlOKN;<(u4#pv1mkpsq6zbGPk z%?yji*N|l8I*w&}-(~)$zgUrEja5S|zcY(s%2nqPFzF>9>NbilHjynD&ImBf|2Sk! zwt3Qb1iexg@Z@ZB^#a2@8*`2B;oQTnqNJP#ojUNj#(bMv-2_d&CYSL1tXnehDns{2 zn%Yi$d0G|#)S@zLa7pwK(DoSGll%*^f=zesOk z;QWTzba!oXooAN>*-r=tUIZ+Z@?#7%3Z2R+nYuCd%)6l%D=Kds9B@ba1v}eOXM{0S zd>rO^MVz-%Hcr^vRd0-*L9B!RJfIr)x#VjzbjF|my{vvH^HuGU3dQ42^y`t4^Qj}Kt z)`b0gr=J1bsos7g~u(6>$Fb0nzn1)TU_tc$bwq zty1W}mw7=X5^M4nPqJw|cI%NBXLq-EOJD`V=d?0QqDq3{ee70y3db%URo3-2zrpRD z&iOw#-W69~L?!EPUwT-$z3Uu}M3{ zt+1EL1B-#oT|v$ywAndPjmJ~V!NR9#vcKsT*yOd1h2=1tXt;-sGdd`qn2`JCxZ?(! zV^b>-m^|PaNJx)Nu>Ml4n(OlNDKesBO&nm|%DVEs^z!imdKooY`08}o_y8T8!A0p) z?tqZ$>)Go8_b~2CEp{P65r%l77VlqkD^O`3tU`_ElEw5)w0F=bo7#Lv-A-YikR7i+ z(z{#5>-@Xpta`T{g%ShbgoLl@6-VSR@E&AcBPTr8N*9)U2MuIjoir~1Z3>t-<`a_x z_*-_RrL2YDVe3Rq?BL>RCgHF-nZm?51k7z_`rpbJ_?}c}^w9;%GlghXa$U2tHD!6P z%%@KJPIRyKBJ2g7PAm~!iaOSRe$(S_sH4fqTU}b&U5}_ zbvg*;x@_|z3#X;i$(D{aVf&QHO<Q!jj|Fc?X-R42AL_V&;I?_GdwZK= zaUQ*JzUO&;@SIF-(<5JZv&raXaLjF)`!(JGvzY&viQ8RU4sqYM3jU&hCKmgH{x50x zEY4o6lc&vOW}Saw-aRYv!L#DGpkh2fMd&u|FN-^@bStZ}{SF<5DKV&#bay>{_AE8Q zgi4Jyi~k|@)pxjGJX~E$XO`NMIs>}}`>F53N+L=2i!?+CnIw7m!~1(!Q7UyM>{SHs z;>vWO(cRiT-?dVy3;ARv7PN7_BGt&B$|lN=&`_0CGgggi>q?6B`QWlz$chuHbyKvv zQcaVnFk{4w1!!tu_dKNkb3&EjyeRsBJz8Q$9y@o6A)eNZPc$`Z1QQyOmQx!7wvx`I zS?s^-y2yC+X5wSmK6yWH1qJl<#aucU;Rr*ZBW;INT{lutT>GO z+oyRQ7%uMLM(UpQ%*+ZMcCu!8e&;7%MwgKfdJ}v4>=9}xKI-fI0LIoONuF;aY^az8%MWk zC61W?N7GftHQ9J=MM|V|w2T}jqog}Wj}Rt^lz;=I8x$l4j2iPv zO7tDR&;S0g-@fkb+$XMco$FY9L8Ie#ed(}a?5nZW-!%Sv z`plf0A(cU8kWIH{J`w_*+n)Tks~)dU$0y*}z}nfNyY6uPeg4CL&EaL2_cpVWmE_>M zY`}5g;mA#`>atdW~I+Tv#rnV`Mf%4Y>W+jE!db#Nvj5?eulN(k33B3ta0-y zajVLtu6k%ux9~mS-U!#IYeSEn{*r7Xc4vRM?gLSr=$zd8e88Z5=gV0SvHWVtL|*lP zv%9g1qQtya{g!jX%hnfUiZ5FiNcA7`8$yi5qAb-vM~uCS-j}%U;0)^$h*4H5$p@pw zEg2s*JA2DP3SWpk*#C)JNQgH1y)(>4{EVkwuK=|G=&xqfwWiMG`+hHN60e*(0kkfZ zxD%%Y_SMG!1vC|K8p>OIUKFEM?=ELi>&ZW+0WHD8pn`+0k@Bmv4cv;Q$k zMNc)+fJoQFjFu-?3~m{7*DFm+syFHxEt=0@q~?rxYM*vq8NQqt(kmN}6{K)V7qsGzMTERn$stHEt$F zyAj55f#KmAl!fB`>EwN-P?rd?{2k(Cn>By;Az#UAMpcE#9JzC1D`C8-N(4^FCraWL zoH^QHl1tK&67`clKwL(R%4941;?DOK(h)?o8^XG!Qju*vpo_5_5!E5uY|X|gVLJp) zmLdmfaZX<`v<*h~ds2fLGaD{#ICNE>A7nX-$+VC9wqsf&zn18buyQ(7QlHN^LMqU5@|W+C~k<9M9R;1%F$h*)wMDSJU2i>j-zo!}z3 zuj6h*e`Fp-H`sh)&Xju$86=`@@sMf(7gol zACgS%-VqD|;+>fvK4_xE`&4yC;wBh88OiWLLIVakS@^wO91h^jA~!t3{K0U9P_k|) zh1Q3MIA6ke_9mLV6ue)xHkb2Ky< ztGi0tasHJr>vuDU>%WXUs6iq251+Eyd_KPN{rfBxO}5mh)z*`Mnocz&m<8gpK0t&K zI(c$}QD7y5J1LaY5)wd$>?~hcccjSGWOsrM;}2vTZ)i~^S3(E33>6xGdISiK_ai^Z zgP=#3_kYJd#?{<5K9^Sg$R0k5)2=60XzWQ`jGakA&KlD7%Fif+9AZ&_pNx>e#@)rx zF1iL6Me0wh{19BbOn6B-nz!QaFh}2Z!TXGdpEt#!kskV)D<2R}#!Lxj$Cb5g$T#QP zqD}=oNJjpYXd|%}RCzcDFc_l;!`$kBAYQD$SH;d~;4*yv!t!yS5+aQ&uC|&{dcn_> zfI&up%Q%+6ieSemnvdH+lH$>Vkm&CRR(N95y4x4~{PH1L#7waH^Sc zEmtXmD5W@d zNvB6Fydj-v3FysL4HJL~ZG{x5F*Mp}D#;n}`v3<>{W<7Wf$NIEE$loKShPOvM{HZ7 zNBd$+XXW8R(HC6z;etz~5uo^epBONeJm(>nn$R|mKp|zX=je_q5?tr^pbIuS8NdGH z#~t2Es?t)Kzb_&B;kDW$)|RXr?|yL-)hF#KfjRa?9?KY7qlzXh3SYFBDhdS#vivIt7EV@&c-F7@*1&^ z0wWel+|gX<8W^83zXbK%lzpfnvEl&YC8fJcesu1kDVa(cJ+N3UCMcC^GWJsUgrx|l zgZh4VlW+yx=$ z<=rJl+`mlr0Fv`GY%1_MHZ?m+H2xdy`zL9v%`NVTN9ewh5YWosX+<0X0uxcdg3N{@4h+-s3 zXtla-`Zl)R(c6&S>S}(0;j|0WF>C*aC^Cz`k$(Fje~^iPd%%wcTBdI9yUQLEdw9>_ zsWPwZ0}&6aK&Q^xJpZr^zdyH4hW&A{8Uh;wWe`q7gChKWoyT!HYcM|%XznHQCF&(g zVMs|O`Qksw$Pr-r%N_~5g#HH9IuHQ*d9mCpNmH}-g1_Ex_klpWXu}dB9_w!LzT<`d*`VW+ zxP7uo{>5kfayW3bzg<3m+A47(cmL^$<{?eDouP^vWnT*yNpDyIjuKV3B2W38yGqTT z1U1?+iIOvnx!aC7hFILV!g=m72vgJ%xU3A;wws1IzUDxP_Gjw0anmZ1>GS4hfs)+f z_JG;Qk%twLYN%j5#?hOkZ&nKGMRhG3fofM$`Fp>(tY{YP^2k$F-5-aksj!ss{?SLz z23YQi^KDP0eSa4L%Dp!ki4qyD>>X4pqpF5b`Yhzv_e9^%wx9r_l`W|)A^35wSRs{e z{r!0!9%pQABy5h(=yUd;H}bV=cxUhmuoajf|65eZXpN}w9#;huu;h}V$#_ofGC&*)SP_^)WfG~b9AJxoW)?=%d6ZC|SLs$kQDJlt8ZmYFHL0 z@8P&}8Z~<1>d;1$IBG>eo!J-Nad;fq_1KutxX|QWIdVhu@$XX3X6Qm3W(n5)D%bPh%=e`z6 zNk0pIsn6@fz)iy$dGY-B7GWk(qxhlvW1gW%hEO%@&tztQODKm+k@)c%M|Pz%V;csq z9iu_(l5x5);|glK{ANGbfmd~<72>o78Jvd{bBl{vK%3tj;3$@|6-gHC`nl5vv35Td z2pL=$qo&MI)qYL)tV%{3T`FNbl|dmC@as?e#p7nNdrUVo$`~i7#u#>VGgjJ^YUf&_ zTVN@}EleJtn61futQb@C>B-1%VgmWyOvM8K11BZby-N+q!_sUT_c&#{Sz}FELgePfML$@0x=0ZM2WPXJKc829-8g7^${^E-sk;C5 zqTw0;^+Vy7rg+*bUr)}S$a-Shq3~BQha!~mn?|X>zfarFrZjB8Fq%{qdMNU7p zxx;Rjokp+pB`>t_gMRAnS!l%BSp%?i(NRX8^TBzPX$E_qLLsEDFgI}VQ22L+;6H)e ze)DUb!1bqr0Zd7*Xu+5)UHGdD$byLR6BS9Ce3pKs}H`akdmulTl8?XLL` zH4o=uwwT>DI105 zx}2}l7fwNn`w2E{C=4i~v5U{Pw20i0q zw=3K+a{=|ibQaI0Rp6G$)1inT(V?2#h4pU*BuOG4%liZ*b8k_q4p1V?P{2W9<~K)K zn*8|!AbG5rE6=puQ+;haM_m#412R`g-A+8}o2vPs4TlRGnIfn94g$mI-y26#$Pay)3UIbOh7a6&|XBjezb}0y9b_- z)UYKqN}40xCWL8R5eA{TTeR29f!ptx-NxpP(PO-gbsoQ85ft&Rizalx7K%03jb)ub z%|QXLp=)Jj8sALS;FCy5{%~G4a|$Z1T)hEgC@-wLiD<{ z+D)vwN{QuEGAa{|*8bKSbqtSEQSA&V*6Es#zJl_{f-j1E9t-?opdZ zH2{!+gUb*akdXkC{`a0qvS<9}12;j5i4-sV&OMyIUJ_#_dg*l%7i$gDoVYIhw7oUBXDM20;Syg(MgD+DA=AqD_*` z!bQT~E5~xM-f!F7K0u?P9g1U3&DDmFaR7xm?X!7PW&HCJ@ zb#!;p-LT{mV@`$%aSs*BG&cImJ-qy^|7b+mvbUAq+7+VvT-S3PgjyVrii3imj~j|a zpiE;kX`rFvc_ciJ5KM-#%P&aTL!uuZ5!jwYC+qt3Ky*uiAH%@BRMkG$<7Vih%p z*flC^$TG`t3k%)=+o;iAx{SJ1I$skTYACsD4DWSEO#hI!znRBm39}G&MPJK)2Xk1j=zK?i#n}Vq(uY%P`;92 zjG5VcUY6hYTCrHD3=d8OxnE2__3a@@9>KNltn!}A{|HdHn@pT*(3@OS+~?WK9`=r$ zr9kZI2A895%MZnQk1yz?k@@a%N3OYKKR6%~zK$Vq>z~> z;PKC3Sc8lg5fgR%I;YG9_8b3QMw#m<5?ec$yTEkkKE%wTFf%%wyTg3g=M zgWzcPEI>t`7p9s3bn{3*s*7|bWM~k5qK zEr^RB5Yb1o%+oE_zKuj?x$3#9SeEgzrSV20-%Y7;6H}0F`A7PEz=z3GvJ4u0Fpqqn z_rQI`_`wE_c+%ITHpYmA<3J7a(sk|{F+B$|8e|PSQq;!sMA^7>9dz2BAUL;h#gyRd zba7Z^fJ0V+V?_zZ#ZUq*>cla4uEvx0KFke_0gM1*e`%0ZDglTH*3LyuWX%!)iTt#kM?c_eP z*AthOmUV)5tajhTJ*H#d*qz#nsAcOlphAQAy$Aw|n32<)WLH!KXFo8^y3XT%@K&q$rGb+tjD(;&dMg?gK1*T~3xFp2;XATSr{1SE}Pqz{V8DqUoPr z&S7ZO7003x97glh%w<_4D^M5Rg?`a?z?|gb!XI~yq{WteCFGv*+ zu>H0>E**%e_*6$QFQ0ZKMn~a}P9XY$2p_pFX6vk3)#-)$ew*gX>&YK>t>W(Zv}T~z z*qt|7`q8%WFKO}QH#ZG=p9D}ZT{*(vQSUfDEXk0uEer90)}ea>JSdl z)$T}W0TBr>v$BzgFQ4WCVM#Dpq+L#qW>KotBLze{y-raZ@d5=~kwer%e|)iKLfhze z$+*s=lZBuzsm(e#3cQt}XmRb+!k_rkwPUW)fp7a>9)#~>%qe{2m>cm>M{Xo2m#o%0 z4ym8UqRJ2vI9X$S=Ds|%JQhYOt%%t4F9?b4h%|2AQS<|*ap6GJz~pWUuLGkR!*mCA zQCuy`PglJXbGF)7>B9*Kd#TAR+F!W&dJdfLuWpPajh;4(XS?v`0 z>=V7~wWYrpliK+o{TFFhY34hROJzK-O?Z?ct#Rl8)v>c1 z)JH){_)z~Wi$Y0d#O?ZGG!xZ4uE`K&NIh;NqI(+NZ%5f33mE=XSydSu;>O5X3`d8N z?K6OTze#`iNoUI^ziGlHG?4MpSqoIV;GpIqY}XR*?y;;H+Yi_-N&-9pCksrIVqvD^ z8RYxt>F2&?rjoPZ+QSWRfO1T+?1lFuM#nqQ<3j5{&_mj1J&h#$Q;qB|-9<^r(g5bJ z0CiQzHNl)QiYvp-=Ip+A)iKKcxLLLbN~hxLp)&OQI)Em)p;EZuOggGkRgmxl9|vc- z5if>ZyBXO#OTc4e(Y_~1oct((84Phd{)TVMs{;4kH$Ee-pd2XiiFc?_Mh!?jk7?z1 zEmjU71N>4^s!ua7MuLcgT|GxmA*?33rD=fXPX@Z|A#Ma4T=TpsE;+7tn+=GZdX;`xMw&`R z%&c-;%qddNnn(t>77H9xqN;%Ju3{BSOl!4qb_QTi55>$ehMETlF+))Co zpw6w)yY7T9&B| z&)l21J}@ZL9I@5B0R|(2C^dHM7jaTv7m~6!yr6<=y8-st_(K8X(UEo)E_3m-P6q4) zA+coUa4SVbpO_^I!z?P+9EwvCfIun-chn(u?!@8}8(TjqwC8QVR2J8Hdfq#)R9*VM zG9;e=u@`u-Oh32yeGd^~(5v0F#J3Xb_F|CjJBIThM9j*`$!Xddn2Ax(JjF7)u1q?) zU8Kg*q|A>_ZhJ-|*{-cc@kD{zv%A3Wv&Bb``a*mT4^Ft~u=YUQ@}J#PE#aGO5A(Aj zsM}Mnp0F~*wwg%#G${~koP4gp!ebv_bE@Lkb|5)hc**M#>q0fQJd%R8QEa`08rUR# zuPB}`9H789&^0B_&&UY0o?BOoWdGK%&!CI;TfIQwuiPx|0mZgosg8-oU^BnEm|$~7 zuB(mQXP$A&P!%4qOCDv%n78d}>w`b$L{2xx?P>T;F^q7NjZ~FlCL>~|U2z}VvE67s zyx71`f2CjF#S#+j|6)nU*T8jT?B6|#yUy=N0ZLr*`6;?-b?yI&#kdvczbmfJqGhY$ zkkaq{?cJ%$WL)$QqfriMnH)IAnq&S!X2p)cJe zhGzFZYsEG`z%xCtP0`$T{=SkNdux>BS0|=~T}bqqI9j-=v0x8IS_n2GHAG7%CbH6~ zY72(#Jg};a2}{SzBSnh#OAFr4>x~c!K75`-6~_w1be?F^?+91w><|_lYVAalXG5U! zfX6)1!#x1cX4-*8pi@Bz6nERS^qweYkz-v~DJH|s(N`TKwAqZ$nj2^|EHNDNOQa2p->f?QKUlYt@*jSL3Dk#9{yVNuS1>#k zS6|10GvvE3v2Vs?YquRcBIg zh9Mc=hJWKjgOpHQz2l5J4ov_xd0HZz9gW;{S(QCvYoUCC40{ zW&xlL3;OWX34=&&zanLiEd6@EA{u#{9OuU)9%UB?d08MBLV7HtTM(v%^yuCbibU!u zta>ppG8}ENKJ)%QqD-8up+?4HL8`=)Joi!^K`vqI+=7p9#8W^035`0YtQeQ%FPQ0u zGBRE?CVh6~xIj>`uUnEUOx@s)%bX zI~Zz^2_pnT)Clf>6!{*7Z&hKlKUkaTck*26^bh72JBzVBt+j~fW5L5Sx+hp*J zfq*}7l3r`a#QLm-(qNWjinFfq&F07C^KYUBnQ^mze`amF`ps7vuyt~~l5|&uNxl3p zZEb(~N?U`j{`BpR%=eh`CeU8N=jZvnn2gK{A98cqg!JCw=EfJj&IX<8DFFhl$7rkP<0dsP1ge$2IU#r8@j+OlmzBb$;p778>V#z z<7jZBQObcS?Z}Q`9yB!64<`*cRe}jcF>nb%xC4>;@_4UqgHI7Yz5c5~ndTNEj{BB} zY4+5wnn*S>cl6w3OY&K_WfDyvK!sjA8KwQ9oY#U_P{$P&!~xcSyvs4d;&F5aTC4W~ zh8`MdDzDzFwbq<5-p2Q4!ww02%$QXLQ+^X(>Wm7i{c~TLrcGF>S!0-W8#7tZ?Cbv54e8@r zWJ*j2$EW~m8iqMqQ7;v0n!onHC1){i8hsf1-)qkBw8OIp!=^kBJRFEkUAFYHyf#`2 zA9D4O8+rO~OKE!}Rq1N0UDz3gvw4YpS3RnJ4xkdu4OAY9K)a`EQ&??a0zd^7NU+sO>5O+zvqz2A3=~wP z@8L4MqqaQ|`0Mbmo0TF7?YvAt=(9i9d|9t&YwoJCFaOc?Qm+PR-UQ-T)VCwkHUsLuU;99@!qFg$9dE$YliDzC~KO z_80hA+bpj5Gxn1vR1wG8KM!swi)0nytta4!FusrBs_8H(7}2qdYYh7EpdBC=H0pNUmUx z;HY(u;x@pZ+rNJ(J&^2@a{DzNMcymm?CSb?ch?Nl#9}VYg^*S^BI^iyy8?9&ydH%I zq+a%ISDlQkcAWpMyV%l7VAxLE9yj-jWsNP{a}u6-=befV5h{2UoxY$^w4ft(BjV{* z&m)wkxmeRs6R#%!o&5222~Vup?=P}nSp{obA|QqElBvFbved`;dsS1f%S74wpdev zrs69oe+J%bZaKHw5aR%Xgc(>#!z=x#QUNC+QH_?%bLETFaKgs2ovqxuXa@nRsZP^t?x=~Pe zyt1w!N1updS;<$Y1%UfX`=|?{xGILUNUrNiFkz6Gm|X~3^}4dS>@~KsEbecyBKR9& z3G+Gtl{VIEcfjN&;0SDq?6%au=Quy+!|k{i{P9hr=Y4*M>6 zy026Am%|I&+$0T~UMRYgfgtlV?b8Hi(XJcgriRY|nTGUSNU*_NwG&;Ise|1fL4|8a zSOX|k5c{iGUQ)H$8@mq@ALTF`>Sg|T=0T#Eu`1#lGj>*_TAAutV-zXY{e&aSKc`Ai zfMbWtgqD29c5n4YMy%Xx<}^*dHzMi&i3)P1;=Sv+=`R-!P6XOSHtl!~Sv6?YWCn!0 zq6+5u=E@C}qH>VkssfAe`s%8+llVl1SlH7KCM=>^TH>-e^OW_UhjOruq6MJO$6P4G zT<+yhi#w^>ojdfg@X2C zZNHUVh;LabccI(Hv3+oV&;W z_-*^f;NRokl8^vIQR%|Z7=O%ZyC0sd;`J^*#SAM(ZweeD3ItMdC++b?20mMdA%L$w zLiA}DJ^Nei?Hq`@t#}k|gjKp<&3=zj?Gb}E@o8n2b2$MfRjl?2*n4&uFoS%)Je^-@ z_FUNqKYD|`@gpeHdZdFKOe_Nb_MT>-f12Gq29iqYgAW)6u3x?_zMQr1q392~% zF}RSVkY5psne}hiQ=#pS^!kaCygr>7!QsUdd#M6@8ip>kMJE6Gh-#y2!Xap z{4g9aNBCY@QSEMfV!t(ms&2%DGdfdb0Mnr0b^JcjxV!awT$g=INM_NrM5gev0oMME zkDKK9=Iu#v=hf=lev-e%P{!xFy1GZX`TuWTX0aEyzhky#Tl|06{6@P#ag+vJHVzJA zQXR3-;`MWf3zR&(lj#r|$2-eeSD~O?7DK8);54>J#OkB-wdYsQj46ff>~K9PyC4r7 z1?9S*dC}{q^BFF%s7pJ_#VTXnAA=9JhDUJKQb4h1qT{3YpL~rwbHxU_AAiyK=cnFEl)?EqIXT}RsCunmo~@QM`_Xnj z&?I8vUyY|EBkgyPU~>PyHGHd)9f3S3v5G;T z=`%V+{kg=Z!;FZdncLSx=U%y`nes(k)`TB?Nd+0vZSPtt!G_A8lL^6Fe8Gyl){_Xm zHAN|+GgkuofRxM)GatZqpSm@*Lf^DsO0TPLh6Bgw?ejm^{6L$ludOeN&#vAv%>*0V zSAts(VWZ|sOlRo?S@J2B;tlHP-Rw%a40OeH`ZHoOG22dKWoCs&iR(deAN?xkNTu>} zM8mp$kX)i4aa-<_DKe{TNr1P`9~v1V=hice4}BGm%F~l4qs0#KSMpI7fH3j!UYG`g zb8|o`RcnM=ZFTTj)r+zFC9;^amze#Z({n!>@JYwFlWCDRe*!PQjNZNOT;A6Iv*W<( z-zyE7ztbeW=?PoSO?Xb*444y~<5!qXP|066nC<=yq8qmrC45AQ1D>~^u46LY!9HiRUxf#$Z>PsF7&Nn&hmZl;XSg96 zXAHHN{Veh8Hv5cl6>4!Jv{#$gkHwyzYo51K41*WK%gPi$&iptVl}0?6Aspt2`>EG& z=FtQn=A)axr<}ik{ypXiJd&mU2*Kp~?(j$j=YRPr=hM|@7U$|sTsofi`wQ1Nros66 zH!IbvhvNs%Pxxr(V2{xcHcqatcEAPVGKsi-!bgMn;DUL3tLnLlMxv#$^buJ4$kYsV z9w)Aj;q&yy+){Ww^%>AgQT?^%By3&0!7k$fZR;`cT`FOW9kaEVn{w4$D(Wurr}fv5 zr<|2ro+haOQ7lDCPGHi8*s6@Dz*o)Z#biYT}_| zGsY?(4+HSa>hF?waJaYZbkV=+=#SplfQ92TJZAE47pL&l151+LuG?kli;D|ei(K`F zHNYSfzCn`B>l!iU71ok+YlQyMPQjj9pX!iktfyh!vQt8TpIrt$X{O5UA7>?=e$Uoi zM|l0LUH*8mBF_f}5c~X?whtX_zkn$ouL30QW+`5+LsBswtJT=b%ba)4KrSK8!G_-W z`s>K~P3Lg10(xqQfiy_$uMBsB1bgSJtCro1KkyPcx$j6A_Wrt!?~trD6RCI1 z?0MYqc|R-MG2TF*PC>>A3RF9RcUdkc;;?g1NNj5G(yO5b6`3}yG^1qw;XMRCLY0Dj3xVQD8oT`r920S#rEg)UXt=wLCO&U_lxNV)NPLM@8 zBTmf!v=~re_-S(UN38V0m*Q=Apy=luFgXjcdUxWo#IO@qcrVLlh_zsOB|Jv4D>_T; z%)J*OGFw_HN|E$+bIT` z4*wQ0sc&yFTh9faU~~zHjl4h1UV|Yz5Fl4CBl^pb4o)R9@tnC`c0>V~CdPw!`*y~0tpcw7h zcSC75>~Q(53t5MESH)7v@<|%4y>IICk1E5Gn}(yqt8R+|GT+MH=2LfSCnps4hir~# zAX3{vt20}*2Iag7M!MW0O-g#F4YevIJc>(=G*XPWJ0}>K-qF-ddFj9^3>HlQ0g(yD-=-CA%;*cXVvsRVSGBHw@hidJyo4>Q?LW zEH>)|^V?;A3I5NC>OKECQAo;LzrkYJtD~W4FQT!CZ_f8-JcKlUr$mDwnYiCd+bx-X zbgsSnG~yXQjEfbS>PTW?k$Z%m#tE-c(0^)R*dkfgpn_6R$0qxZQU#NIjnX8FPYebw z85ND6gKZ2-z8>`CJ+@);Op;;MW;&RD^IAA4!z}kw<-E6dJ>$j2LFA%W=dZJL_U^m{ zQ+5;2nTQtkDvf9mn8PC+xZtON012_TA2Bmtat1>{fcKnz&MK64iO-FLRZ%@$xuviD z-~C*4n?EcC5=!JK=ll2h#Hy7AFkUk;ODz^uPZpqqD2pMD#rR;skCOK=-Vv}mzB*dZ z5qpvK;lqctYIu5BqoZx`o?>sYtk1}3XZ!lqHcf0h>R)hQC6j6U+r)F{Ht!~vk>%MU zvF*rJu=c|waF~=t5n1hixIzExAO4)TC@q(fTFjju5Fu2_*bcu)M?ROdFhQE7DNpI} z7`+}A55VG98R)Rxi2?9QHDhL_b;=Pc@b@JK0c9r>GGrY0x1>l4t&QwHN3-dxgac4^ zl<5FYg~wzPF3nJO612#3%OZxzt86(o>rKVR>yp&KC)`!a#o>?vX7OV=|kw(7y?G5sxr zGb9zyA=E7hq2rNfBL1yihbqgr?Bc91CzZ|s?Lb#bFB%@iq0nco5sa1Rwqsml4-<8a zn#@sVfmop+*s7l!6L$Hf?RB34A4}W@LL(3g5x60#;cwfA$b-}y;%A9%jbbTWat)k# zO|V_FUbO0(ZoDlVhlPD8u#g$$L1#mY?-?-RbD|^+*S7kzP%NYGm9|92f=Uy)IaKn} zXQ)_8?c6JOqVIo?;EiM{3P^R;P$;`JY=%BXi`1*P2gPztM#vo#$0{f*BT66QQ07^c zofAdM6--5XST)Q3B85gpQb+e-nqipYG$6Riefd6LWLX(NHJ0Q)e7ZSo2SJwcs0)>b zwZeI>H$r-RD&n*x;<4=N=Ju#WT$qMjTo7dX2V_xw_yA+RCzt)%Z~HI)e8P^QzC#%B z|H~5L@9-P1<^GOj7a!x5rhwxgpa;b%g_d`JX;OICmJKmTNyMx_Hz5Ubei)RpOYC8f z7B#jiLCWi5Gb2{?8boyXpO{po`@E!f)O$xgT)~wnv0flE#Ow=o;u`*iR4)aSQF6X` zxfh#ez&ZLgde>Vii4{C8Q?Q;%rcmblumxl<V7L{_>`-VR^{ooqh@2t z?sfzh%!uwuuUZ4Z=%++PKvDJL@2p`@k$|dI8+8e@;EV9z)k!}4JVuy?SNA9|&)DED zM#|jtKi+L-Vd2erZpR6f@lxKw< z_#4aT;JN}WOni~&ulo~6AMuOw2n+m@#*P&UYpJz<+W+0Hu1$dwl1)-*!P2P~PgyMQ z4TLEWhWNh#Q&7Y9>!hLt9*R=`N-AXB_!{E|R4BU8iS+@DC&z~01j1S+{G15xNym$k zF!e~j==A1&ArVhi49^Ufl7|+le}2WFF3XcdDR9c9oh`JToWaA$A%ZqoP9Mse_EP?+ zq#Ggk{8>3n!;udLG9a`|3Wi5Gi@BfOBJ3V;4FvYx$PvbO9J+C+UOS|8zOmhIv@=e_ zQVnMbjSj>d{dQ8#~wO2q6 zVF3FgD&lCfP!5}O)H-9eLKySR%uN|k!_U;oNU0#ZiIIwh{zUN(bwkCJG$BeTeWyX| zq%?XHCN7;VH$*8J_K-NUK)fVZXsijiCe>?u&C4aDzpf8}#z)jif51oJ!C@~7ycpls zW+O`an@`bJvPu~zA{-5>Lx+0t0ygekvWdz;r{$4D3eI^&ys_$xWZTvHdhZ|}4N0Oi z9JOV<9~WzxaS=>ZQm~+g$9{ks+fy?AeSG8T^p-t1R$8Q1Cak9_2qM>rlMo zPn8#jxqgDFi7VbyCvi*f3m<9nfdou+Tpx@8tdakFTh+`crSR&Ys>#>wQupH;~VAWNxUD!oW#;QvAK8iFw%;Vj@BppM_LRqzeGw z+TQZOQuBRLpQWB7q&y&rcn{D&+fmf$t$*W2@%d>94pRcXhM=_(ZJS1EjklEPcJ0CW z+PXChRLT7naHuguU66I5Cw@2!u;LR~EEM^s>TOX*t+IMfO;1rxc^QGmh`GzH+7Vf( zK#SZeiJSh25~d=fPh$+(@|;Wzn6O$BVDGtu_j2fgM@_*lMX^K za*WwT!M+68hQ%*G7eZf3Y?0f}#gmdo7#N0%M2-NCVg$}Yx`9U1>0wdlk>_Q(g2Q&1c7m;}tcP0!_*8A7xw+()}nGK4f`8fDuVBJbxhWFr7 zr}Krmxsb%u)rBnF%`+np(U;nLc%1#M!ofN;%f`JRUb}ll)72Mi^Lc7_p=?r z`rksy<@+|~zo7KV*vUBX^UgFoNpD84`;cu>k zJ+gbO?SZ%5H(;;s)2?UpQKf7~i&wd_HFG#QF`dmU#U}cPI4EZ;AQR1FiF_HYYi}3* z3eF?iU}5&muHV5?JwzkJkcQ>$e3(U-pN^qnxe-r!LkMZfJ{_3_0Jo*GS3G=<4*pZq zUz0j{7sgv>vIRe-caT10<$qC*vC~>jir&Bc@LcIX>lJ&SpZdw%c(EI!nm2>5h?~G+ zxnAyO;Tyi%Ph;-+yd-hkA40X()XQlOYV{4PFSs!ImQLi=C~@n}zzSQh8a7|oS+>F^ zjTH+;lC;k2WW4Jubz!b(6`AA=wTFdgv^8W?Avy+hg(6BvEICROc@N1lE`*u|W{1N3 zV_8eiFk`}(xbfA5mW& z6=mCfZ6GBvln&h;N)Jd$Gjt3MN;i_yT>}ms(%mU3jYxxZcXvui!*~0<&-454e^`sP zSi{Vj>s;sTz0W>~BspAeJP=a}n-iT`%w+erbI$^9Y_Yx=hQ;NXS=a6b6pj>C+8J8Z zZi+RI8U`9$%DdPzZs;?}g<@n=DZdcKh(e13%UqK%ZMp@5N9J&UN+YoHkc{N2SYIff zkP$o&pS0G%OgqC^V!ugmm+%imk_j9ZPtD65b2eq{ zkZo*=B_?0xVdBVBNGQ;Wb>;57-Stv7fk{*GiYA`EuL3HUSK+bQ1}Y}s%s;w)9WzkZ zlM6$2u3Gp-z;S&iW-Fi^n=GyqrzuW+z7{<}M_1-(u$nZ@NEAosYB#j*NhKqy2Fd6p zHe$*)mn0|jq@cKBfM7q3zx)6pSbVwnlcmmYMLDny?2A7kDS-bR;~_D z20gs+8Rhf=lQNhZa!lCG9*t@Ur+n+0Q62;y@v{e`v9TObgR=Qyzf1`b<^g9yX$dq=CQ}r{-j*%=77o*&&Orq?M9Y zvNbH!)J%O;6AyyuNGUPS`)j?(GUW&cq3WX|Ax6ckXpw?yU*&NNiF?8U$sAIR42^u8 zF)v@5I2C=(&nokPzOler!&p}SzHhNEwm2tA4l?-A0EXu=9lS=p28FrSFL7ycx6@yb zDN86!R>z_Tzjzj&=Q`M8md)>TR`#!W&aCwdsw=dq*t9BKZa8#Tg8>&cWhY* z{4zR|>pi}K6NGojouJB@Udx~6gJ)VOLB^q|{}kOzeI#;`V4TpWCC~Puj}45%O-uUYURHbRjdLAfdjQ{Kw?7BF0o`$UqnDI9+Jq6j z>;HG_`<{Mi``b7k6YAd|k}f}LDSt|(?2hY;nj}%hlG2-Q_PmY(=mU0y(a^lK%TR5? zcOrqIQpRt+E1H_@_(;d0=ryBUl4l2o0|n&5+q+%CQ`%}LD}8_P`V2CdzGt!gI3o$?ry%G?(3FfHMfUhZ;Mse(*8Mi~ zms&$T7H{Y-y3Ps7j$_eG`rjrczf(I;J)mbCUZ**dMt>=R#pLCB|Eht^zA>FC6*cn? z6n*Ypi%K?Ff!)8ZOT}-kn$x^JLaHhhI#mxsZP?=tcG4vmRZ%%7m5kx&0ry!&BIQFr zQi=!> zuZ7kPE*bfV+w)&V1G7;hb*#=XoNT&4r)mAcs)w`o6TORE*@ZgjAZn=_Lj&{sDKg&4s8*o1Y_St>F#jLB>)>|5yzBK_Lk0x=s4vmdlOBljuc9a zXf68E7`}HF=Mr**uOIw3pOtt)a3^d&~lb_C<7%S()_ndg~4qvswjZr&>O=rcx&Vv&uPuzE|$ zC>cRKJc@$FMw8v)rb`F&JXx81m*N=*_}pwSgquKiArT0%+~eEp>pY3Pl|V}yNHgKe zS&zO90It1nZ=>t?dHNb?ikhYVDgZL>&vya1c0Nd}Hd+VrM0&#?JXnw+w2dNs_cY}& zxdH&ZVX#X53c}!Y_WEiu8Ff&q15+=0FogFD>PP$uNljQn$zbxfVuoFVB|DQLJjp6* zK`ADpfYwkh{%A~A+AqoN&`%nFa4?0q(VK=LsLTqPJlZ?6nAnMR#2G1Lf@DgaYoFkK zGz$@wa#lafV5rZIGCy;m3zUYurK)F(P^Aj#r;(!*py4hHlyeQtjqSr^rr8u%gNHGg zI5;0QS>w{<(ibNFk;GprAc?c^)gaQ9>yHB~714|-a7?m;w|+Mp^v%9<|rN)$m?Z~V@F z$e^^lLHcc|04m$;J6yg@!eI6mdL+@nM%z%zwQj%GoNYPL#|A-AMIwiY3dGL*wD>l@P;c(AdOOHx@jSLGvt+MJ;{V1UGq zt~Xs&^gOG4Z^GP=rKgpiDO}3YW#;$ZR`9Kt;$-RAHvzI)Y#9SXu^)`_Ic|~ns5!xB4PY2H8|Ag>+ zVn~;_lcsKu9M2qnKKSDSkTbR$BQAlIzUqOX-5$Tito4f&D?rdujN1T`Sj}0x*<{ug zw)6PDek1fY@P~n&=c`r2al_(Ziinl&8ujN(DB@Na=|b}wqUyOIs`ytt@tZU10$RKW z5rX9|;@iJ**53Z|;Dike{aSznY9_vc?L>T1>@u|%$K7Yc6~L!HBk+mLgYh4X_7VMG z4AH}XTDWby=W)OcfWSY|k}X{*Bz(c!U2UNbw0l)f=qSIP>p&5hEADIDr_?aVMHeF$ z6bBd!!fdXu`Vth=^&Lj1CgSsB;9)q*pa7{*Ev~{1L^!y9))~%&VB@&)vpsKaZP`Au z%Oxf)E-$hf+@bC%S5%K4wfBIW-rQiqV2<{cCSGnYx=(Iyf&s29xV50%GP%)ovb?^2 zrpks_Ek3J=wP!uLvAn3Xi?0VP5SE*)1kDQXp0OmW!+XS`kc+RHEzVM~p^M^+k<&!# zT9EunjXF!?sNfb^8z#x^x5|+&MM2$G9bUpK*ir~?u5K#lAa0^X^50@o$AV2qz0<%XpZ6Dn z_QG@N?JQ-(DDVkoE)VIbv=hRcLNby-q9#~=-p<*+-DaB)afu;B5p^nZ>f*5U^^P>1 z$zc34wt3jT?v!O72Cd)u)V*22{IKP73;UlEZwc?eyyi>(?CYDUzainyUp;mTNx2@n z1UOe+f|o0)!>>Y~G%Pt)>HH{qPm8(sRM~hlIJ=Bxm~G1Q&u>*BH}}4}%88g5E*fNf zBAkG_U1dEjghMLSYRMRIG$VgR`oFzZ}xOp68agVb>nz!rY$>gUweh zmd=(=!BL0!niVmrsfyUUhyub^9N^}u4iX!lnd!0QTRc(cXXj=Os{g+0eIz{^%-Z92*Hr`=nrk4eTVm?J(P@0*05@F5|@yO`v;L} zm&8(ScDfhkL{|1%t2k%e?D>X0(f#O>F9*94c8G&l+#FpZ&#<-y!beMsle_7hBRWwH zW1jWWd&K5e5%@ct@mW3#XV)#)W}71Ay^UCk3@qHTPKX_2_?1M`ow#s?XSUgWzL?q@ zF0)#BcP9F|nHUJd6=h}#ZnySd{8&%w-#9(L+pAbU$q~Lj{|n=Fidza`SjCls;Ouse zj-1QC6)I$1hGJg?HTap>-bG2wnCJ5a`VtK07Xir1YG0#)9%Ctz8j?iu0luYs`@V&wC{lky9$jIbys1hZvO%VGl@e}s9p9T9h*`};?5qFEi z0Cd*o9a{UjT!u8n?_ma~nH~~(8R6{F(bYv{g|BYqFu)4nhLOVVL*w*{niW%OQ>JTF zz;$RdzlJbaEZ>$76;bQ^!Uefm430&9j{btFmLDV0DPta7(^yXTGuTY+%>2RBPPI3F)XTC}Nsx z>^2XmL=OD{J`uv9k70HeV@k@y?J6#B&@9vBmBJD$&L_a}EI-maGC}n-02dac8)0<3 zZ8m9f(7IQ)W_sijc>GN({8;_w`oZUM)aXs#Kak=hJ$n0JZ0Ce5)AGRR&8kkg32`sW z?JzXJ0Nl{hl6DLiYn@MXMy~Gim+*kzn5ch7rJVf91ca)7u5^ZrAb28~iakgn4ENcr zP!ubHGBMU-FAyAiClav@Kv~-+%u&y-#q3E_C?3I3mgG-WI~oWg>`u>dyz*Yz9NY4!r~703rL$rdJV% zgS*q1-qfU{-{RhNF^K7M`3^{JXFyUdwmng1zY&=%7eTuWdET+}7A7%XUbLS(cQUl@ zuc%HKKZRr02|9tY^GgY1INb`yPa^TIEut<}+Y-;g#AwE_pELc;Bt_o2iEe)}m!DO} z(m%1ozZU5sN-}=Q9#TX^$_~6M!=~A9i=P*qsr7h&DQ6DU#f8*XQi;M~W`W%*7nN$( z_!r%uB(LAq{KY8mMgDh+TGy}k+7?dkg}omD=x551Z-x~u;+zw38Cb>!5WLS#i+8D) zlo}EKzr^?*$4z^YLe#^cFT+vy>$Y|`6C%smW^1@>CpF8WEl8nY!OV7bZX>0Ig$4UI z;W1~@v`Z2%WG;zfx004SYE>;>wX&-|tSO8^%ezsQq?U7!>v~rfuVXVA?Q=+Ar18QVj0;bpleA1OBViIWXxg=DFqm>neQVGOU=M|&sE)Gz#dBJ7qLWw!cg{+rM(rWqX9w<&5m#fNc;OZ5fPuWH3o{CjItk zyY$f2)3f*R81QaWl&4m;l9oH>yH-sU_NH73S}9Bde>$}vteEcetAzK{-!dvvCdtmj zrDt_U`8zXFS*UVllXpiYF@)q2qWusmg-m@C*h6gGyK)PD&U7ImaQ^!=rt{ z91#bR9&@k(AZg911BY@nA&Yzz`U5FWX1kzSjyQ74yc6pWfLRcl+za)-zr1xjD92%S+R`1 zv-6uF-MMTM2Z1|2x0tqQ14{V#vbT~(H3mRc)7WTSZAsXe-eH?zWt}BV2G)yI_bRdz!RkIw45-AI^F#_Pf(kY9#lm4&X z$Mq4^_?K%yxTZhZx;Z=cRFZ?eh}3Ns4flykC=q?1?J8$a4t7PW>uyzP);ze3XZ~4d^xlifIjbRcnAe3uK{BX_Wa_B^~#)mWULTsmnIKj`r_;B*Cbd{ zOAAXN;KXSgR2hoOJ_+SYN&b^lAOKWQlU)QQb%2Jc#>QRKN)=KhGsw`>^!)cOr?^$K z3rQ2Tmk;2z6mk1}2pl{*$b`2o5O8^STJol0aq)M@uy^G4Fk8`!h|A~MT-mHb?nqIE zBif_dvZ`98uNpz@d(F>Y4NVear>N%7XiOyutCMz?om^Hhk+Pk$MR}4rE~yL zu4!k6JP27NNhFFWn9`jqdX8ufVprdkLohfwZl-B-DwzS&uf)eSbb$i6+;PUbSOA46m0Q~X2GK*Q5kdKa! zuT$PUMD$*|x>t%KXd{H2d*G5eBV-8mnsAdvwF&iV;(M(>-MIqp=E7Qar7X`S3$_!M z@BNn%ld!>xhk=xTrM4l;{~HB4emkX@(xd;=1#7@gvh43*&Es9hBcfIDxq!&DGr~xu zD8wMVKrYmRA;LhMxU0*utNP1J_4qDSFb@0|6f2LF?dSa>YunZB8^W|6t^}iHJZd1* zj`CnOEn?+l+GvY2pHSD8yWWg)vH_Y7n<=nS{XD7b^?n5^J0oK%`RJ&!PRHcuphSA} zYqE8Sor}-##RX$H#5Z6{wp;}q+Nw&irT*L|tpA3eF^X;Mt;O(8 zS2TE?CBJFA!M&5xEhRpYsm+!c>8D0w3XHF{wo3Ua6WKxXqtW`Awqemq;@jG%@yPK$ zggl$a6MwP%W3K-WS69WuO)~jINaSCZgpp;ROEokMc*T=}4-e13fB#N`6_RT3(eY34 zfB|ZO0VxGjJFo)+)jqeJshsUiLt}mB&}3$|vA1FzS0-5`DX$Ak_A~P5wW#xl33WE? z-5h^N$pssXo3zF!ScM>ajfT~;O1zk$oj*+z64`-+?m_GX(YX}Lxnc7w&&8%`9o{n$ z)o#w3c46xanEA|%lfG-TUvU)}BaZ+*(?+|`-}G)X14}*&RRZ5o1FvxLISn3aPqFo6 zXq}zA8x4>C}|3l zt%QTBJcc;A!Fk|YTqBBLoNWPi*G^Q?%rfTWeuqkJpg@9PoXYVxE@tu`^+{L4RC9#xw-0{UDME`CB z?ZaKywCA5?LAU=@6#tD@9W!{6Km2}8@C0CtcZbI+6f=Z2fo)va*I(MMWPt&JbqKD% zBJ3MBJUsO+Ke^abNv{36Rl}C-B34mxwN9dNbz=gN#%k{a{@}{(HN${19rgK_0EQ>8 zXJjKbuQpShoj%W=$coRFss?(`nB16Ut5H;_&S(e@r6~#NHlkUR3_*&d%@nN)Qj_n< zm}-Y0+d$g_!S2DJ zT%m`(@0I5fp&81R>~DVS`n6cQjOV<=mwpr4309%42m=Y!PI65mkB0Rp&hq3KQehx) z;Xi?DqI%X>yc1ph1p*z8D=tCfj>^6n#_%2=o|`!WiWQV0q==HnsWe9cMqbj7z6F$u zS}+ADTdBjkDtBi|BQd57Yu3z}eh5lWVHEU6A;Q) z8Qom3=B#`OK6SDBi*&oZ{vYLag=P5IxV3tyV&n)%Zhkusl!Zri+`5H`r*&Qd!1W%2;NIz>`zxA%OW$g~!zJUXT9YagO)x z!g&8hW$j}4`1(#!7!W>t(u2;Po93W_l$mf|bz6F$N(pb8`P>~}cfI~_a&xioME^nT zT*gcUu^S=i3+=E&C7Yj+kx}9W^vLm}n(@gnCpzV9=rLEfiqXi^XXx{#nq|{9HUZ{u z=ZtERg)_Ud{R0Z^C{bj?`s)J38$gaqc~r~_y6y@z(O5WY1iy`j;zxFyjW8Gp3g^`r z_em{Qr1BgQ=y@;lxRr@L5g02dA2-1d2JkcwaVJAWu4ee9$d4e4Tt zxTQFSG#!DVcu*o7xopH-93XJjBy(y-&cOtg^7131InN4x`-ZIuLWgkHq|2x z&9lRH>tW$)MYdCk=Y(OUPN48Hixx^r!037hZC(2Ok=*0cskPSUw9EUcIggAjz{=yG z`i4pE`7;{ygO8&Aw8)f6l*|I(I-U=c8Vr{Sx8u~Arb7fyemqwsA%TcSoCI=+Q6|$d zGSh&N-h(DJOkh0mgZs7~LrWfR--f;3yz~|ERe^A3orx_J{_?zR@i-FN*6Vy2`ri5m zOH>+%*c$aWJ|~x%;V)Y94&OK&Jd!XMe@aa|>2jqn(y-BOgr+?zWtcf3tHZOsz?HzX zIs@%DTFw!v&lpXtA?nO#KK1Fcu*zAAUx@~Ezf9i+>~{r|Bptd~OGJ?4+<6~-c(^zH z+^~8t+{%egLJd5_6gfZGIXE~@F>sTAuiu(&etFiTz5o_~88GSI)pXp_lfQ2s%!1)N z<08i6?~h^Fb*;!OJo*l3E#*=e$3Kg13Mg3Hq58h9e{Yu;AA~S{pIT7N7ut&>NNLBIczL>?|elY+=kXqoe zhe{yXK`SC48-lLN6BzO69NEn=( z=qMC=vyFL;ojS##f`mhQq$bThy~e$S;;7{$UtOgZr@&~@0uXi%Ex=s=3#t4fMRDLt z(Oht`MR3$KB2PNQJ@plPFGdxEd8b2zX!EO(ki3Z0b+?wXJhf+{x2?u-V`f7QqH;V= z2M)tJT+L(#HVS4;wpy2~e4|i6x#i{o1u9vw91O5PFlo2xfo|!$ z;kBrjDDrx|uE*Ee-zx9VrtT@XKg9Gr@T-7@jie+cCDY}*6_2BV#|$AwKJ2!7IG}j* zHl5J>&YN3zp_&a=PKlHso3LyA)0*GF`?KVsAY<2Afxg^RYaKQGXgSn~*_9o-}j`=o6x8&-s| zCUk?cWeDI}Py#D$>;|xZah!7agc#FtkqYfQ5t5aUAc**r z7vus8wQ#(w?DFSJj2r?z!RV^dYohG17*xUzt{kQfBt}U?1cacN37?B;yX_7_@>O`qHmfA2o&LHN*1mU%YtTy9H-o*X>*V zMl!&F5nKX{P}^a>>C%h2<)~UqrB3oYqlieQ_990?%SKhEee48PKrlBnAG|!gol&)& zJ9d=gGmDs;`8&g!BqiXc9hVrk5e9l`j(MB3X3ZK75!=*EuMKh|A76nxQpm4)PkzpS zy}k=D!upUbxGP5Z_qpZ+zliu>IIdf`r(3yf6};8GS-e(WYK8X?IRVaH*E%e(WC64J z2YBoJ%3BsQwmXzfEWQqNKh^dUs@X!Xk32~$EpHlLZ+`Z$Shqu02=O}L85VnsTa0x~ zK(0&3DIL0ms}KmW?sP_Fs4dOKFG>#ft~T|Wt6l;&mPwm-ChqW(Ca!*uC*i|%F0}_) zBKWVUVvNm`eFrGo@kGC1vlboiHgRttu+vFodkYGCLVS1Lk{L80eqdN>qJ*490TlarnBCV>Q~;}IFPgS6mD-=N9agTdi^X#g7hmbA%0Qc z6%uEdGK%6!S3Djssg~?eSYK4U0UAz-MlZT+mt3#8%+(2PRvy>D#up~N0wi+OCG-6- zfEu77m_U*b6-TpyJxV+k^AniB{WR|j<>`t1UKS_IAFvzwc#Enu<>~!N@ZT&2{x?e@ zMvq{MH=uMrZ%>bc4pM7sv%>x4#YMe6rcB?1%YZ-GwbJUH6e@@A#)`e4@~vMEy=topwt+ zjI`+ZMEjX~8v4Cy`1n{%%rvRq^twYnZaWOK4^bNN&gD2uXyhWgJ05+x(Y6nn{SuCz zm8??adxM*q{8ZOIz=;@Du=CXX*JxP+@U?t(9k)Viqcd8ASqw0*oj8tkPpPoRskGto znHtB?bp#*i1Cd(T5zY2RqoMzq9|!>y6JkLcw1xWh+{h@Q7>9fcA?ysySc!4&JShYz zgXqTCxe&RbGfA>Xuc$26PVcJW-DQ{V;kkcKNTl)#7&tO+!S#GPs&Iib759LGnz7cnY@yuMi4>C z`;$?A{^OjHp{87+WBrpMSY`yx$0GWqRVF`t9CD~mXn&M!H1sHNFUln5OG%eQ-z11K z7H2@3?V=>X&|Y*yjpux5wF|B%r3&k`K2IqRETwX?KpTv!SsF1j`c&8P@L(bUJ!J0G z5Qjbsa_y2X2%qe$H~8 zt%!m`$6Q@)^SYS8qWU+rySTTSIa&x|)q_p$?rfTY*)nV&v{CN5f@I;zJ}pJZG_)*2gnl5Tn7@EYZn; zysE~8-pUY=-P%BX1Ue&T#H+CR9JO>?Df&{lz%0~TdQY}&@5Eu$0Z01RdRj*e&R6Ef z3v`xI`k77y4{K93=@eSIUXx!5o!p#-eVp+(rO~d=KEMDhatOlrZtLnQaMR(1i0XH- z;IQqnJTYLL`514!I6uV&ex^C;AAj&=#<{a~`{5o%j*fMFH&7{Lte(o(u}~l4i%%>k zrtYu$bUQHhOMub5yC~b5`k|n_o~nl5x82#OU{xjYy3{gM(YJ^$^P*noh=73SdyNes zUSr~lrk1cb3T9}dgFfra6(5|shZp`idtd%Ldx;0(wL!wzV(fcS-t8-|Ry+&n;})I~ zm?xwC-CQtTzPth0)zT%cet-8qwoE~pNoP=64`pfuSyAUjaeKVMY;XBOnpD5$4+*ko z5LhZYRR{7UWO+v?DHK>fp0Lk-)`gBI#kpu=cKoD>s3ytK`zNrcsNm(%qR)?xSXEnL z_a6bVMm%1TXu!xzqj!L+l+Lv0!wzM}VpGqOHGuAwpDmmX1NkVNp_uz{h_<<6CN=G2 z+6qgR)*A*^;7YvvW=i`!0L+fl=?4kXWE*6yq%QEydr}OKlZ%j}D#&7_r3Jm8{Ado9 z@sf(r!-4dob}g<-Ks~+?PF=VnE(|5U>*pv)&yFZ@&d>K$;d*whwsZe_p}Pp&Q;Nd3 zh{#XNTT2}w3oVa)*pX!R{2A4|?+oQop{ntJh>iuu7fJK08J%H{hbO)R^77wwQ~8Qe zHPk0vj}tSG#RyU|5ehvzvs@H{oiwk ziY+Wa+@tEP{|j(DoUerATFUTbTDMO2!=an93Gb&}3RN*8sf_!!iKPkW=zn2U{H!UT znYSn^iOE~dtqH}q7kk5j9o%%pfl6lLs68iv8*I^69>sE=l0H7pIpu}T_BQQseU7oO z7XHb#=Agmnobi%OXf1aBvflBMY{0gI&Q`NL!I-^Df1xarUByH3@EKMfdiuP}(aBNB zvE#)Y_mbFZpHci^`?1>iFlLol+bWMQUmM%to|J@s%+X zMob;uo*G?}a~1 zA=wv8VN_{m|5-93de-{21>GiF{Zsa_3XRgOmq_M&$rDn|fC`f8d2#tfn`OiL@)UtQ zD$;86MJJyIhg^Jn`wtL?1+A>%j71pcELlR|Y}grf`=0gt??-l7SxJYhbA)rhdSL^H zD3MpIDCECK3%>JdmBVLyQO{sf-?ah=We~7w?!A4Y^tzC61u9xlalI!UEV#YVk z7TSC|0YUh$FVp2!?-uhM(yQb8_BrXs!&*O7X|rio0CX2pFFX#a75ck5)aY$#T=5*R zP2~+Mhx$*>c#gW*kWqXbxED=#I+p;;#m3Cn%1m9Rk6j#+TI63sy~oGPc#R9V4&%}~ zp2xUyq+3mA^h~QJ;MjUyp*`N*E^nX3QnO54eGV?;J=a^aZZN288@6-~E*?=Q&^s8g zUBL_)clk&zKxM~;_E2UfaIpY8{tcm zT2*-HpyiNdt?8ITp_!@@s{$P}A>gKPWJg3Bk@0Ko!4w|?bY_z2IFf!w#>U1QgjvbK ze{V+`OG1|MPwES|8%DM*mu&Z@UF}Ct2c1H;_1%+p+f6)Cb=w?5H9oke4+~wx6QRgK zVLy2uMM$ZFiAl)AUDWjL=j~&u0^*uZ#pFw|oU8b@DS7=kYz=6+#`?>=RG_&+=FXasgxZLyW9k^Ylx$JDos>Q+DvUrt9Mxifd zzs3!E>S^;8Cz!hb`0l;^z0dUSi|{?(!{moM0{ViN`VHRk#J8MSY#+?L)^=a@$kBOd z@-(uoisobbrG_zg1>+FY7_s^B{o>%0P*LGR-$H7CN;o@}fW=3aa7F>Qei4Do0#y(* zHx>GX-N%P#q&O`xrDuHHPfOR-WNuzK$9QNQ3FA6iYU$eUc`0;tuIiw7_J_B%&$D`C zeE6v9h-`$OcH$k2dMFFGvC(({&3jCy52M?^iU&OJ<9Xfg%if$V9^dnk`&>N*KGNUr z9kX{rU%LELP&^K5{UkF#i)L_my;hE1%d~SSCyGlY7^=W5z=HAWzTw%3@pVaG0lL1LdL%IH1hEq*CXgiuNpTJ7j{&bSCXK&g&7dNNJr?VV@HXLw+CjRy3(k_;9 zlZJ_>ro=M~>bCI`kTB>oKQM zb-xv;q(9a=W41Pv?&PW(J2wrQC>avwPzNY5X5OF=Dq*3J7bF&#bM5cpLhf*E-526Q zb}}0vb)etSJ>7Z=YdwvxP=XQo+|fT`mz4LwSik&i9-SAzM}kcJWjvKrFQ_z$b3iO#uBj$C&8 zs<`A6xqSC$c{^O=!+IC-^z~IvBt(ZzdN;d8RNQU|kX5=W>c!*u_cJPpe5XbU7+G}! zYdx(p#&w&Kd!_7aW3#8^jQ(xcy~?zTF;d-e>H3^3LjbbcUbWrL{9%o^?fSdxEw6W) zY)FXbO&>i8X$ByXH{)N=175A|TIvx#92t4F{kW#M+mw#a*>=th{QBX|BlE+s&#BMJ zUxh}g>Y8z-VWZ2BipQztt*bMSh3gHmBcJo9E=LR5DH*3*FQ*&qubIx)sc&q%jJ0D` z@{iq9OOy&ab*EfXj+OSHA(bikGE~OL?`3_9H&wo*s8Z!a1S+VzA{JaWCSo0Fu&;@E zAiB`s@aVyMhcjeYAv@0J&zCZEo>%QXo+q<{D&`G;`b%_ub_uXP3H0PyP1pN4b$U)3 zK+1LbHV!KunLa(;m+Ow5{D3Zap)rAAd34Xi&QZqSkG3 z3#jmBeQV`%b#U6W;C_ihve?>HHhgq)7ccfq6i>j*PK_t-q46z*iz0Ltyk`KjU&`Tt zcp-o4naZQ0LfTH^;f`(0vZ0Etqb=oeGEW& zbfO-UE_oC)jZ6^4W4|`Y*6!8>Np!`Z4E8*i{7sXKaLN@>b4>`z{3yDpUYhfJXCsl^ z+u^HDATW*$7)mVTCY@A_V)?co^Yd(8Gu~yfp_jZ*= zkj{SOpU>K-^6H-$qTV)0mY7hI{U|E*I!J}^T{|T*lh~JVQ3Xl4(AHxaFGYksc)f2U zb;v_7hQP1mtsG*u{b`A_)TRKt>CwV({9J605rrkabu z#YHh-Ll0(plV{ND3cbytkYhW~W6smlxbiP7)1`)NKENfxhji&wf zG?H%MDAt!?nS6A={PN!ez?_EiH1~dLC{3#4M%<7dxy_=|H1|`ZPaIkHcK08@CL^q; za!F=8d)*rhmz;GQozPTRupg-_girAZzncFoEoMLdTWdW1laT^|kglIYqmOprUH2ZH zIkzlR+}>s(v&LV`70sD-iv$F_J-#2E4tbE<|JlKjM=dpyI-u6V?*wru1ZGCep(HEe zh}v7CT7X|Otkcdr%)JSeNmltuNRbl9@tT2}nJJNJjfrfjZTJwShbG`n%WwW^eeZy; zZFex+)>Hmg+de*J7(sOlscBOaWLw6oC&%OaH9(#Egs4H|-ES^%ae8iruN;LQR4K>|?^(Cyx)ShgJDax4Fjfmjagy&YxZK&li(rNbSZGU~So6M|}DXH60!E z8doL4w;D)aYMkZg@w3`*eIY$c{yM3GLzMH5rSq{uYCS6D*qj~M`zw>9fl70#sX0Z@ z2Ee<)bJJ@NGQObVh<31$gpuxF?xvdX1c92@?tRLg8_aBP8M55WZc=+%*;e@ zB&RoWYOtyl0*z($Sro-(SmUeXspgwg=cSvQ3eF~n0L#lKwPeTIo}|)zfHkb! z_2l%`QHEE@bsAu;Geu=jIC}xz9~gF_5iPVJ(L^*~=S{m^Tx(?F31rozM}6xnx2OZj7PKN>IW#Ga-?vQ9FH>m^a22 zBMUFtPnG@o7A`L_@T+UdwJGE`@>^!AEQ=JQ7Za%poUU0pTH#Z|; z)%b-~@$G;oQIVmWxuUsK=Yw~^ZHAY~VL>6`;%usIZDz4pk$Kvb@deHPZjAl)oU^{q zI;LpehJ0V!h_{S1bE=KG|C){MJg7c1 zORYe@u)XTpx6v)jRjqe|Dbs(U1#E-w0dwEP^0|6cz_O=~G{^*-n2mkSaFS|mCQPI_MLZae8I@=*80pimC2 zdlB*}1N@2-EGyS?%X0~?%u|xbrVeA1)Tj%89e^jECY7rOcMoLoFIq8@oJ_32v(>Md zY4Z-y(ph&5w3Sb+sb9#MUG)qqI=xBxbjtjxZO~;XVrNTAj-J))d)8@s>v1m|-X5|B z?>VFWeK+^g!)67C4RND!;Q%;k((=6?pXoc+6z}j7;543)pukq9JdQ^;I){!hbl&VV zVb)VNQGWHrp%i4qszVBq6moV$)zxjnh@beYLw(=ssfFWzSG)er=(}eB zW^{+WK27DTPhvbqi!Pp(`t=uTaL3E(Dv@{U$2QH6t)i<*EeMgf&_ePLVG0?KPU3cK6Lb+g=#SU3(iChX8W|edUE|!2Xoe z0Nz-i*ef$LV>~W3HF;GINU6BLaX{AoqYmP4d<&Ui+Pcgeuu^CqiF!+MqQ#d z1qcS1{GNNVUY=!vaoksZ&(P(E$cLvXao4NZ4>1>(5*Zpb&Zjo`aCh`ny_SCRe@}w2iWiE_*kvu%FR?!6AxV8%1Iy&aFR8$ zn204|69az`9xE%AgV0xY0c*RT7^?}9d|cu$`T{_wnty_4KO;I~YqJLkC(d?8sd*NI zcdaEkuI{E#eqp`AGi}oK`E7z#u1`OK_g10+uk|7P)7TNoHxJh!a_`4CT0_G-jogMw zjpz&Y?m-pzdlkQd|1~ycSa8^(w%tK7HRGG>72lT-?47Lw>F?Pe2K(-VSK?=D@{+g$ z8>s+}LzGaLB-ICf|-a z{&N?P_x~4cftww~>o)Jhzl2seYHRuI>~hZXa)A!3(*I-YEtulmg00~o!QExh!QI{6 z-8Hxq+$9iXaCZyt?m>saH3=SE2T6hj4J7a6)H%26yZ3vl_yP3ny}Ns@?zI|V8XA7a zzO2cb3m&4nloTb`yAQb%4i!zxhcwS=UdRJ=muD@xpIi~sXx`{e=SKQN=V%>0JupO9 zO3lZ(;L>=)Xfm~QVrl00<~-0|s*qoQN1UN(GtNFvbOnTd)&5R_(^tG+y0<}kCJw{z zk^Y>9|F*mYBVTx*udx4+?7_Adf(Gn8LIZBIRs&vCE%!abhxm$euTJhLD8ruM>Vv6T zMZzY7TF3KB?Psg-F@!dE7!fDHzp;WBQD+`W@$iM^FTJ*30mT?RxH{frgfC1@Gl4>{ z`d_6al^LO04KRJN3m8dVPvg#u=Et+uFNlj$90Ty>3~y1BoU|y#2gX z3QN+Hf23u5pNPu*n5vyf%N2;|%IC@Bdtkw-lUn9G+N#es!(_f-C@7VsZhNSfxS0aRpAVyoUWtnGhS(u0gYFwT z?Hw*sr{?E(6G;_nTvLS=vJR@h{8$aSE(+d!INQsR$o$Kpq=h5=3-%B!a^7S}L^)7G zxO`{tuv1+Og@XgAFs!L+nSPxuw)19p<6VRYrTj{vw1VddV9Uu1UiM<#Vm>5E+pQ^N zg-6C&Dsu2~EkfG(xb_{SLb}RiNi3Mi2-Jc>-nNeJ|C@&WHx2(9S#|x@u>o3CVn7boJ*smd`@*D%5I2t6VZZpXHO5iM z5mkw`FqJ?W&3pKao7p7vTiI4OkJD6h9XT8@&dNEapnJd6k=RT-Fp|syvsy-9(1$tQ zY&W2l_NaL5y(nPo7lwYyM=6hpy4v-f4ag&<|EK-4Vb`}vf#7ng-=r`0kf2uEPNOgE z$7+QKnD6NH8RnDXjsQNah16OVgC^xOp1NBzfz!#qdM>rJCASkt|0^4T{Y zU%$mC$QBVfq-F-tYx&;562mli*xy}V5jQRFS!&qr#6mq28>K(VN;i!UlNZ;JP9 zv+(i>Q7gf`EzS)pytidNpwl4KVHi`&?OdY45QM7sRNN2tkm|+u-4m1lW`|_T)FvLu z5NJW;|43&o`SaEGD5{bA(AUlO*{6TR|Qj8jH zme^as9&}Gno#|#@WpT4GthsTXaiEhs6is~90?nMou2YoZ-5eZXenLv6nR!fe8LXN8X4QadC zb_q|7*kh~9z6{*grVLD%-6C=?3%tW9!@WxjzUHq536~@82)L0w*G5>RKDRMbI$)oSr=Ue6XK*# zayuqnWp*4^&iQ|-fA~Ru*PlKQK#tAn@j2zeKJM0fzo{q}Wh`3R$XW=lsH=^vMvdsI zt%;-(cnI3l@-T(QC~kF8cG~JsQb*=$lX1!^Wha!E*Imxz+l&gb`%X7p7xpmQp!$+u zVtxJUEwo;_E=t|OE3z9P4276dd3uGY9U&}MS^M+QzZGCx(7>JH>#S}>$SE08+rr4h zL^}l0PZGs_KKZCb6uT0!H4|%#YfwPQIKgsUnYtlnKtg5`nI)MF^ejqiojxv!#i zRbgfGHk(tyhf>s#nNcTMzG4dUfEXW-tZWEImK-eL&DtC4^(=U~!aIX^b!H|ad5jbqn>Jo86#cW&O z)uwvO5%ep0hH4cuOH+VFzgS0CCi0d$lYg8;BEJ@%%-cn1?!QLMAyZstH*Q|Iw9P*y zXf&1SgB+0yrWVF{`~NQRlHlRHUK9@SRQQHB=oS8w@prII;dl6dm9P$F7#H->a`3qV z`+(G8&Ft4Z7w5VznrNw^Q&4SriuhS(|5Qb0p1Q+kf8hHCN-^uj`%w~YTtEyYSAacZ z`aoZsv4*uAo;Ffe={*o3>`T!j4amDMZ3$1ni8eL%jgBWBoHu17nG8pE3g9CT=uP~6 z_?woHea;D6cet)pbc0vw=^bu#WiBVX zaK;F@W3l-&{NhWx5TQnM#B9XgUTTQTZ8Ur4}I04^_Ej$=vOU9%Q~0t$f=-c(xtkZ z_sWe?K{@Lc%r>+d(tyy_3?0RxIG+UiYys#26F5g}{pNljyvj~SfGR)h<<)vM;Bg`L z`!^Lf?PFT~Z3rDy=9LaJkVQJ{gA9*HDMRIGhntq?Pj2m17$0zN#A#^6U%An6S*tkp z@Nv8@pR4Hek00-ey3^JVCWNlrxx`%`eg(bqL=O{B!tXB zJQi7g$67mfPI1@SvCuuNUQ*(PjO(LFT5##QmZy+@|NUW8Y$i>b{&X7Be64gmm6eJoIDL(6$87-|KObk?fH2&J&1X! zfNUdCxZRAJrHXKT(9Uo@0~#j__=Rt65vOny#M4W=2|=Y2se-ItCA9@H%TwY{xszqN zOrccVR4tjU5@m977*Gn0tzK%NhW5p!ukKf+{<5Y+s}nBkjM%fyLS%k0Uiyu^OQI4f z;S{kkeHEH)Upy$w#pTnO57Vc)R-quhXp-Pa78v{}+D?S=(f$27FtELIyHR9M}(jwHlu9Z->McEji zZsW-fn=i2kU)&^~FM->^7v?hN+M4!0p_+sQbGVFlw!@D+Rn)YVXnu}raD%Ckt2H*M zUYDlGcybd1+nx*y1+z#Pav3Y~`I@&4+eodail$O-`i*lg{gb;a6>-BVMQzILK}?|t zpW9^UNG&dqBuxu78`x@zACg2&pTD=ktiQ1@n-mm#Q_M78W%}io!Z|MpC$dGTN08uX zq)5k$rz`oL^(mLi@pzXq(T2U6*h(>vkkszTW15c0pBn>|DII71WxO((Y_&v+eRv5W zwNhu6kfT---19Usy`Ls5$#~5C3=Hv%x}>i2^C~0_H$qTt3{8d%uGeE$5+7KgzD;E? z!;>a7N5XhndBilG`+5Z@@hRD)AG_0&fu?nBb7T=^u7|WGjDjFZW9sfT+N4x4A ztX{N4v8~yW%d*YOj8RA^-IFovO^|SNri0}!LRjt2fV@cR)cK~>WdAHaP(z6M5w~u) z5bH-|!m9Mo)=zWjh7cPFi!4&C;&M>}SsC#UWQa#{dgBM`CWQ>fYBdc~ub7T4$DCD^ z?E}VmtOC0_Yt3^Q$am z&s^I!c{yFwMIWtYLL>Efa<-sR=Sft0t6H&0>@iF{=Z1@6 zI6Fu1XP&zXFwORR_X7i7TZplzd9Hhg7(O%R#o9M9SG~%P&$+0MWtsDte~QrM-)X@c z46v+|reikC=o$h5fc<{x&uWVNFm73LX2OZo^qz8HR(74*d>w*-Mr02$U$pM_b}g zw;%OVMdbBB1QD_W)GU@gn1h7OT^nOM5om2&udw}}7TTG+FlkMZqmJ504dI$eu#l={ zRgO5q=VN9_$z_DHz(-c5xYYZjDEjir;#lS9B3=S&1h^@C+*gh$u%htD1y6w%p%#Fw zKr+iXkC#omj@R@3tD89zvBf)`=$T&D1H}o0dBN`xlnDc(H4(n)kL$hUwx&rR8`lZB z*#bg5Ks`KfN>M@7So*B%O#2>#;0CgJ@a3Qmn+>CWbPB3mtxWV2tzIsM4Lyl4T6}ur zp>xeNR~ZjT_>99#uLIETx?m}g+USus!=KuiSm?THi$Wp3K!O{K`hLc-&yRSf*VhLm z^MiJ<$*E52h;V5#bRwwpaQB*D4sTo3OXcVKq`4yf^!#s$`A3>VKO8F(*Z@S%O!IeG zL&+>^_?0n~>2KhHk|Y0C+0nBXjl%uCzhH@+7@k~#UZ!SB-?zAEx4#UY`3@wtdJBS$ zojvo!1|v6UYFxpODv|rWIhmThB#v|E)av8Ov;l-?C!lBs=oPnqTba!wv9AuS`;YFdlWH5pXMySB?EIw3s0DS zDe#N^`y;bD^SR+uY6(Jp={XPB)@XdPC$1UTprNhtTrS~2&eimfsV$xzPS3O%-ldVa zYv6n6zCobtSW%;to<&{a&%^6&ohmH(wcIZLY}%W}*PiVhgx%_|>v`ujl1qv5m1P$N zX8ruvHa28q@AJI(&Gtw-lS&F62X6n1`+xPa(vS*l06L7Oh30(t7a3;+NY-q4X>Wkh zT_Ebyr+aY@#HvNoYDGrZWAyABo3ju7*JtRPz4z|~mXuWJGF38ZC1J`dh1ewV;$1Xb z0#&ZOLaygO)_xmfdO={Y~2_D91 z{7Nf>vHz}ywQO2|Q_g(dr<(Fg0VUZs4v^5ZXS+6vO)FR1p^p@26A(_%wKOkJChiY! z)-h#EwBTych;OiwBj!~`CHug{s* zPDbdgfwcQvoj1Pg$8X;ef~_XMuEkqya2aSTs*SCeuji^)^XW%d$ZhaBZhUE8g{}Hr z+|em}6+ONr_bDEB)_r{178mDzB}6T6iZ5?^D*Yv4yJE-y`w8Ecr+mtFHE}abPJ8Ax zT;%X(@RLba9_|n533v-w=KRWZpC`AC`_DL@c~KT2=^idc&CQYj-s3^+rsT%W@1NOo zeo0t{LR6Q7Hho)d!ZUJ3POXmmua#|t!W=q+ePm^2AzN}lAu`zagW3eN1*`P1s0?z^ zvJs)89T?*S{utGZ6+UaO-QW5Mp}#0DEQUs1NAUwZE-0CqE0lg#vgkE3#6+T?B7|rY z%*q}B`caQna2z_jGQmUNoPICdFToba&Oi9HdHgE(YcIp&w$pDQ>9y8Z$w+{t&*f1I z>ESEmSH)#2%+f~aEulO<79Lp99}>(0oVoECZ8zen>58T>8d+jxY?q*K*Yp~&?$kz6 z_qC^5Y54>65JPAJ(n$x?S?BlYH&|!w_)&C*7<1{D#H{mU1KMb1RqPtMP2+8~WzU^) zT9=vbq&$`1Y5kx+6CuiyegCTy6Oa;Sn9O^Z-b_#PujqX zq5R{9L~EyOi4BbyNJPT-MAvBFv|Bv&G0XBD&%!>7L$zghKusSA+Kl7UAtn!9DHi^*)H@}-(1Jc>P1L(!Gz zmgBESnMCk)Yw}H3#?=*M=C3m;UFowgmURbsQ%s-R=(H$xeYC|Z7ntjbdw8X#|FNlH z@J?d4f5B2z5*MIT;8IusDvRS%%9HzWXw^bZ>1BaLzuEcY$rU?I1}3`?X4_EwkglXq ziBjh)&uXW&GXyvfX|mO63%C+qsOTRo-g)YD!h+0&cgJnit*XNuS~xf_(sT}&3s%jx zhb9JYykTqm>K?l<@t+!Th=+r_92}xrrdP*!Haqw3W%?8a`S|!Y)%haJOG``llC64@ z%?8)Pclxd%5l7VX?y!~@exe4T0X#p5lg30X4jULLl%4gUY---Vx|<{K3XL_CO;L7`td~nd*$5m#<9(ImPs{p$vg;HG(s4Xw*~?{CP78ShTsZ2Xx|) z*)}A!2-v3+8{{VI5}(~^BQqUAY67;tF^oewRop`**hkgq%;_B+@0PwFW)oJg6SZyn zv%AbdyU7pJ3Fg@Ls(qHr zw5nFJV!t2{MR%NnW^u76K&+_5HTCamC5sneZKnCzMSG_7+7~reP^XPlTi`?&bfwzwi$A9m^>R1&_JM1{yUA`jj=?_x@gu9W+WO zTGbOS@J%8M6NE*O*DU4d#$EkCZ-KeY;wt~&D0BBe{uF^C@I8A{;~0n+yilULgmhaC zYydetLVdHQkf=N=&8>&FXscYGh7%@I0{#A^pLaKdCS3ZN34Td+@$~S_9zUZ*dYfP_2gE&$&*L>55T{ZTMA|Cpwa-;5~Z8NtVZK@v_L?#z-o+t?+m zzQQK2hB_5Y`o@Y_Zz~IAmC4$}Td%<;^QI=>S47_4D)G7F0FC&0mp674u2-Kx*@{bP zHBKT`g=wBQX0|#Ng$FWzy>+uzT@wKp)fcP$dCds!VuI#9f-9A4iDniB`l}f+xSW@t z6R>-Pc06x?i&KUD#LdB`-0!0tGCBCgZ#BTsU_g%^vs1_6{IFWSfw&zK^b&fZ0K5CL z5cZCp59EK}SQ3r56Boh6VOm@;1%dkSltW)XyPR^y>E5Xh@kf--NVkJ90mCbZ#b?=jn4!vIb zfgeSKe;x^#@F?y^X+4=}1eixu8Kc2_AEI;{5Pvr2T*Q{)Vxu#nS3g7B!S9gq4p%xs zU%owSEUy4mu11t~6Oq}U2zU`be`_Y*@)(l+Vno?)+|)t1$js!Utg)P<>0C0lP&Wr% zt+A%gvpAN8=@x6*2?22V?>5-`Zezlhy$2-^zz}3JiJpbME%N<6imjmc=Y~e%+@I)Uu>ZOf)BZkOrDt=Cq;3W;%7 zKKpza4V)rRxB1KVNfgLk8~o5;>~EWQWXND}j6?Ss>b?-IE)wLBj0@x(@cL>jnP(mA zSo7(Inlc`xtip&W_%(eEk10WzsYIkYQPxJuZ%qil8r{_97ws?;``7TgO7`yeT8uTz zn~7>MHBL=N?EHN&Uwh=Nao3_2;o!0#iu8cGI%)Rq$jOe9o2yIm71UuJgDj~oN4=v2 zCk7m6zN*P|I9pKZ(+YkWTKfMIt0m1n zMkB&^HkrCEREH)MK!4l?b~5`cS9#;h49mnmrU_vPz1i}AGY(O_4}5wiox-D~JPi_o zDhJH^N8JWl^aWPe7!)#`J#2mcv5X1({IQdEVR^~1#|EY759d(Lo+UQ!<%n~)LugoB z_#@$YCW!k8%#9ebst(R^wBACF89ew9w+$W(ThQ0}f`iJ@?N>v_Y>y{3W*;d{h#JShpv`(esR%g}QI*u0H z5rWO!*$7A9n>XhJ){M(_YSPaPQ%gG7Z}+Z>;M4MnLDvin0^pRE3fO z-(f?%D-5(NF=(I?*^ql9;abTguyi@b!-G#OZ(f$=P%}F&cB1*m>35T^d|c)2p`Xv1 z8b(j_Z8cJ-fofXXhMO6El$t8isVha^H~M+Pf)u?HlxR~7gG4yc-1xx7vm&xQ%YdiQyA9C z0u{aCxdk!sWgqw}^cnt>xW)fV+MIAh1E&HO(Xg z-hH9;mM})JzqGOqHr9jmbS}Y zS4}P!@+*$>O*ZQ63brAOjtgXx$Ahn45bblRunm|HzC5|j{^k?M!?Q&bVu{8E%WZ4m zw}oI!aZVEgs;cO{$qn6t*drC9TswM|M*r7&b*>rNHZ>u#Tisrp_@3pdI-_hE_{HxY z`|UO0BV|WrQG<$POpDacU0*qSACHF^C9q*Lz?XmZu>V2dY-nB{6mr}DaQa~HI~AhW z-2~aWHf+z6QelSqm+s4DsJy*LeX^nAH8vCRh zm9cCaLA!$&gfnK3>@v`_l*<9QiFMWg*mivr!<9^8XNyOFx{&3|k z0lu6?h>P_#x6UNytG+ZtZB%#~QwwVBOA|83#4<{-m4HL45LBtPsWx4QL6+w+;|N)I z*ohvAjn$x#Fj!r@$?3|Kfw$+B&FX6Kh-=#08>nL7oQagNlPRpjt3{N@)Ku8lk*ctX z6*rKiVnM%LXb95-!JG18Z_MBCKX4s7aP7A1JZs6k5sJ~3iunF0e6Fq;u*#heQ>Gi( z+Ld{eOlOP(U{~0`AHVY&n+Xq`d0bTR`6p`-{(BCw_8x-XVGmslJnWTLX+?#p8eM1s ziY}_qzObA!%Kzl!val@moVEFY?Nfl6QY>L}zrG4+{*!m>j?N$)4rKOuG*1NOPaL#k zR?=L$UTkg{BWAp&yc{)t7;g_-bl7c2H@$QSfsvVoNrjW#%Z1s6 z=&DWzQbt{~YBZ%tIwqQOVF*)RGs%0z&iJdZhmXKpUM;okt|A6=EYXf0^XzB#owfz< z7W4D=jytFJfNGzq1;jg1XxSfW?KFqvf$VJ34E#nNI8yR=+^dV*&%M2O*{5b7@iabm z;IdN<-HMn;CDkpPn9rT>Mg4WXDSioC@Y}+zsFBzQl|Hn&TW7iqr)E`KzD1#7BdWpC zmuc={#<3lt&)AKRR;yE`hjXTem4x_LkLzxHn6a*&H*(MLc z-C1NeTKz4NOEF1PXI8ob2wa`1dhj%VDrTl}p~IV*Nu|o%su`V?C_2|I?rJ5^(EC}0 z4$y}LDQ&|WRw8UVR?2=9(9Ck}(TBoLfPcTKy(?K zKns^)M-`R$m>W3W10RvApI5+n&iT{NY9o2+I&u>z-S?`G+oD#j0HhGML4fq1 z_?|c-qkI{v+0oF|6*m3((qI*WFd4CQu+Rp{)Ort)yU4)K$8d zElUXfNU=4yqGr^Sj^R_L(X9)|{K9&JVWQk9`G&eCv5WyyC0r65r2JhxXgU-tl@-E8p(6hZmr;Vi6cktibTRs;HN9_$&csacs9sL zg}(9bf_~eF{|*nm_j^8Jq`HP#wKp*FXIg<0ZD^V8J}d*KO1pN^%<>wxes+@Pny#rm zbj?|zp%#r>RjqCbDZt5lz0@DV8K|_!vyP(V$2u5Fj&|#1()+#No%AD&{(=J3AhEFq z#pUvus?%)y&71t#sZyS5C4&Kk=4@OD_X zSOjx*NqQ@y&5j1vbX;R`Sx;u{feZrBD5F7xV|#$17r%~GR^q{46avS^md#f4+FL;k zo)Hvq1o7Mo5W{D-BFh^?8+`xsTwOvi<7`4RM;9pco9q9a(I@l!zW@)me&(B)fbt83 zf|u-7l-)R+QBkngsl;`SE&jVZCV;!)7*# zWy)(CfilV4U2eYj6-=eupk>9p4wEL#`MRd$&|zozx;?B)($`tl*hppCgOeVI7yI`O zwYg+#^9GKMyOd|7GL1BoZyiTHF`EnkW@+~ZX*;^sYP2I2SpuKj*e-o4d)HgNwkK6q z6}_F-JoE$AV-P8KiezJzcvb$w6 zlc88HOisUy6t<3R(H!`E33q=dY5=yGKT?&;sz{3hGW`t2MxjBBB&olRX*$1tOdIp% zn+W53hI73C_D{u-^o zx|$>iHn)Ki#Y)&O}sP)8eE_{z1b zpb&gzI*HMH>j1fk`QQ0Snk?)4%kBLDxunt|IE?b><1&(r)EIC6mjr5wdXly}8pBeC z>r0_z;FtSEn+oq@nDxr#*%2$2p2g z;Wf3Lj>;_EM1zbHbDECC$0;)SH)CNmz5#x@j@ki-FI>ZB3?cFE)RKmgEEQzzYQmJr zT&3vZ=H1g56ol$=->sFK7hHg=TmzaA9h+)h>qP^YwY561N$v)NSTs0Z^>X%h; zxH>>F#J?}32ZmCX?){SbH-n*Iy+z_EX&k)RdH|P(^c2N9p@LvMQcFPFMR?dB(T0w z33z?{8)}XZxPX5U4n)YWhrbUoW#l__*L$d$M9Apn?|f|_DmZw-d0>2nTq71AvP^jD z5q%!CQjaA-9;DqA3j{&pa2F?8d@3?Q%n?H4+RyBU?3z;h3=%HPdfIL~wwKWZ)^aDuL2mgEJgme2L|pJ{o?E{Nop{2!sWJ#7>>cW5)sCMU9 ziLNa8Qep&h5zP6QIU@Tn@JI)xxPTqh(W)~XUL4}fa|(wX?7-WjRkNY6DcBZIqj>$` zL`e~t%gfhy?)Lm1)~_`g0(J%ee(UXy|=XkCiYxJ zfq>;Bu1aSD9Y~c~%p?AbN$p2hW6yc@>7?h)ZtNGo+}i9}jH>$?QRmvFJfhyXI$VBS z{?E-pAv>C~gZQyzqvd!NK!Ph7T2^X3%=CTzE9nzMab||`y-bJ{9I@Al9g2jhF5O9utmd9>KTduL=xKrrfCi?A^;DeHw$@G}Zjya^rF z1Q={ke7S{T08VOoE$0R>@@M_W0uHnqi3I3Sve~0VHg$zuy4Cj&W{mZ3^QDLr`xY5X z;MuCijh5dGe{!)0T`c6T(DLOO+HmL4KM*uw*KI>6at9^$*;mpg#Y($>Ymu=p1yJbv z<@QKN$#HKwD7@1K-Ku?I6TI5EylMYmtb#!bABX1OoVjSeKn9sv1ywsmC2`o!saC4 z`H=K{?$`in?wU#o)7=eYf-2JQ;-B75^uOLNqH5>*${j)ls0mZ|YUlNIKgn zYBL)-J=OT3&7I-##Woz@PglsD{4%pShknD>^Jp7s(##c#A-M7Q;q@c>qgK2kfP>K{ zRY&FkWD=GF&ZNWAk<+0|0y+VdAaMtK!(0GvRUeMS7ZkWvRE1b?$`-XxxoKZORUlUB zvgysjNbfPCgDbXxCeufo4%&{|P1epF$AcZHO+MF;!$AYNbCt%yJHcX2hX$_03o5 zB+c8NLd9BCp7uCm(42eWjUpJXHolnVf3bb_`-$ak?S&^(C<;a^qU^ZRmng%kPt$Ru zOai#t()2VMTsOKTmB)Txl{;G-sOGwo(oeMt^r!cZq_@0|kz|;o=fHWH_E|E4hoyzW zZ$|KPk5|>sqC|RvWlmr-QnCgfhc-%q;c)%P?>$Mh)rFv+NJzhfdO&nz#$CCNI(ob` z5$`HTaqtC_*MvO!gBCnOCvD|vP#RMC_q{8dVbY1_Sl0CFcK~8wZW$REV4tjqLg#=b z@3DRSobb_4kORNAmXSJo1;<~tRlE7avkL#1vGy)qfj()pP#x5PRy3E~l-e{xr_Cw6 zoy2FE`(MJY#CWj0d4sz;7+mLbRG$#6%kVZJ$RuVK2e zFK>{J@tS^y&SJ87_f1@LJMqgg@Vra6(oR=E4+IlvnXIM59I?#oL|?x_tGEv7>O&#J zFI_WjQ-Loe)dnj2I{SVmXn#ULDcU!87tn^{UN{_qj&w})A=XhO%GLO-YiuyJbs-A` z9FdfpJV!X1+Rw4p?8-Mod7FAVddzm}=CvpMaGbXREODcmg4S#+i@7M2MCU~;+f8t5CmU zUipwoL}bc1)EE%4$5#A7ZcEd_x+2wQH~(Dk8{d|G67t`Uj`u(QIlu4!ZDepmX8b-~ zD#~=$95&CLwLmWm*zc*t_qJx5Ph=F0+>|_RNs!A(&-GJ?sVfU3S~kk-8Z=n9&CGFe zVRB{%w`o=+#?7je$7M-2kII8=cVpR*pSCHJ3+%yS=e}vNH|xbZ-&q&C7#bC5#EkSN zvLXJJ7RzVYPOX}Hw07E|&dx?^bmXdo$c|*VGq&?r0oFoxF5@JcH3}bhRY*=zeVOs) z=dHGh<&~S>E|Ud`B%W|_nNg6WtXAx0Hj<)TV6Tqe$94Y}-I6zrIZ^(111C_+Y7o{EKk+1{?h_5h|z6c31g_kCGUyqdk zdiTm(;^DJmPZL58A)A`v(VSDrV{`ddM3`hpu>U{Ek@SCc_h_eO`Vi}yOw?PQ21;k8 z%gx|tP;+>wM#z1<*5M!JB<-Yn65*Yb`_tB!^;@4Cfg@Qj9G6$tfiChG(0@u+^`g5 z!R5jQj9Bk@(b@x$3Wsy?tfyhs*4>=T;O~9(!QaP(oI7UT;#hCuZf?XEN+gc2%41zu z$UnMA?r>^4!qi%fK8IDyu_P0)HCCA?GvlyL{n5sKo5^`-rCnx%1jfG*@%P{cxh&jrku@5 zO{r+0WMLcU8rd3n<`O2T(fjjdQ0rteFK3tMljx5679*!nwTVkAvb9;<*PsmggU&w( z*aB`^gFO-Xb<}&kt?d3cByh_30GqHc>^dSD}$JReJIP$+NBhV4{ zUi;VNp(Yqp@=NQX)MMsgQ(cYS5*`H5J`6h#FrYHY;H3nVZ}_;vZG4xGGEao5uy@5q zXiEOchwPz20nE(Y3`_7PF1pIX`)y(SmfjTU))M$6SnO7%#-7xI3iGd}ZQ@t%2njkMzr@ijA(x8UZO|6=H#816pvu=vRqy;R3DkhgVx}OiipZ+{xhu`}@FG{}f zHe(~K+PKpTOI|#}Y|F1!!(Vn_B4AGr%1@DTZEn?s1}u4YQ_WFS!C4xC zdPCAePW@ZwQ@3JVBxRg)r+0a-~C|qnNzhkTX??hgYs3ml7D&z!8A(+*?c&tS&U}U z5Qr0Z(NRm$#=`ao6!o>d?4yJ4zgm>yqlLU(-lA#q`v{@h~em}naz8E zu-JWjDPwE*5Vhnnf}o_nyFOwv9v|Wku7+>-#JRCtyId&6`fXwJP|OtEx?-%bp3O4s ziQb`rS1tOx`+{?4q_$U}vwpmh+(D|TRLtm=P#IcD*j0M?pYA_`lD{5@-qg8@tTh`J zHVT-zb~jL*+y*NJkIP~$ft)KUe9TjBXqsbD_BWRX@%krnUSR>PQX5$giSU!+y`$gI zmb7QmGRw~n=a_sAnG(X87N(3pWjM0=BE)P>7oZ2M%XXtf(N-Mylw!9cng111bm&8b zC+x#Vi9G+5tP$mJIaEQlThRSyq;F5^56tTIy_Z*2cQi^Z+LjS0tr((xXQ~WFe^CerV(B$%9FlG$ub?ErFi~$}WUF8YP_4E5jl* z=J6pO57!rTLoIRP+$yVgJ+eGJdF{{Mg}{o*dfU19nUGwi6E>(2drx`Zh8dl!L^ks= zb2HxB4VPC9KXPxZb?e8&gQDdA{{G&i+N68Kj6wF^&9w7US`^-#>=z>6UwC?k zjekY%$JaTIIfZ-T@R@J-8@^4uhfRRp{`rO8wTiG3jMX=M zw;*X9+EtC6Zt7CV1=?Mh4|o8hUq;ksJEXmP+z8V9S_H+G?eqVKwWj!wwf^vWIn+P( z?F;<|g4%WL*R7zj7i8>!m-V647&EuC0jLKc6{WmS!MY4T*7S9xt`>>Ss2nP5N=DS_ zyUBQ0JEa;19hHERsp#4jpXpr>Y5{(a8W!+^Fva2zgPAy^DJph^C%rXpsKl$Ah3S3y zgp|`FZy$3-6&uQDOf~$EYZeBg!=5C@w{SbJ%`VNFRyX_pq%tmGZH8YLHd_wb3t^g> zZ5}*-D_pK~7_c~a&l!k^pu*s)L#E7ZhbN!Ftw;#QmDvSDVjC9b122Cvzug%u#g6y| zbujzk54#?&g5vY&VC301OKG_Ts5FA3Ac(TN#Z~3@O66jWIP)=&Tkyu zV>|;%_1dzkkc_q3ZFp-vf2p*a^ojPyA76f{W2>cU6F#HEw^|IGL2Ut%UH_JQJ|>LS z9C~*ivFr{Bd&%wecI`5K3WEfw6vm8xM(30W14A4%XRO#|?49m&F7Vvk{=ZG{?q>KS zKV~>!X%dZop`W_pKG>iD)9}LLfVSWyQWCLmnqN6%;@B zRr~^~#EmRLNqF)&LgYM`mM6Tri7SEUs5aS<4~v{@W?p;_VM7wYJmcl&A*{$ePOp=z zS;w&tT*EF(Ewehij&{Vlf`f|2cuJ{X4l1f$%`e`IZ?vQT5D%Nbb=nOODr4R=r}in{ z74rlL7h%;9xu8vR6$%w;N*!Nla6ND;*lCkPNV)2bIxPG&JpsF zK9nQrz-Co_Zy3+GGANHSUK&VpB|R7Vgfd9-c8!#{RJcxlil1GIOG?g}WzD61q2`@J zZ%dcOnKeX@v9_jX1payP5%Chk5`tcBx0?9wimnu}KP0!rx!$*~S;5kTmk1>ZKVhgW zrWpG~wMzW@NE#uA%#MFl6R=^$_1>Z8or(3p*=b?wcmy9tWggNvw#HW#)NstMiy&dR%ma z!PKZsJ_;v}=h0GjMWW0rtKGuta}k-uhM3W#pos)1_QNe_*!&Dk;7;wNYkfNZH`wf@Dl0| z?BHv9xc=zgdHnQ3=tP3UNQb{9b|zv_fQ2evupGmIIPOW8cl4ZAMiy7jlL*|FMxlUN z`M^j(ZU;Ho@RVPlxWvzgusQo7RyV#h0!6F|e8^t@l}{vru*CqYOa6%=>rW2hsqAK*RvjBx1fY5SBWpIx&&$73Jy(1etvvo9GUUS7$zUvk9ZFd%q_FQ~X zri)d^Hq)0W5ggV#+9|{=&N~|Av;ZNzW~>n5FtDLz_*8}>Hc2cDU=3{T8$A&=FENTP zW~2&BbQO41+ME;1uG)TZ|7_6p7aRWZA4K{3d-tIvsrxkrz3rEym6Y}b)$Pz*{vvGG zIqv?TxgT7Yn~lSGnv@cI<|0?eIVF37z1SWrf|6dErRx082I&-FbQA z%4i)M6Ld!W#W&1UH|aRJ-{|p$we&fB(LdJ26nX15tZBHme$OOOzjg3N&|o1P`4}=J z6V+(w;3RQ|2GRA@h;)6whq4Z+ATbyLC`;Y_HUI=;1T~ zMtV?`vAg~4x&G%wqnQ{U_{Wmdv(U$uVJxEcI_isswIA(&#5}7NH2*IV$SJ`); z`&v8qV}0?lXmi$>v&&ecGvcb~$u!hO*lW#@i#1W~x3wU+|wQRl! zlV}_1{yMi2#WGN?CY?bm)yg2svC?)CJ!sF=Omifkl#Q-bHL~GlF)m=Y38OPNj;hFL z6jZTSEng_Ndgoz1`5h;>jy>f>`eAK&+Ps!bY>cADeGrajV65 z8!%K`@S-m<7W^1yN8M);>>EogVfyR66i6Uo;$LY&^nay=ZynEX0({)QJP~6_QdGv> z4MM{e#Qg5VZU-J2&rkftUuFk(wjS`Q#eIjbdpaNQsh@FYd_Ma7Zv|Xq+TG4{`2=Aj z9h~$yB~8>8;C2g@E@|)fO>oIDPsb&e2h^i_!Yv{Q^){}Nd+sBB`~3&jKL%`0MSh{M z5E+=&&gG6YZ~9bNlESpOQ_pxh%=?*E+fg5p*t#;hm-!0Lgh{rILIpK#P&C)kV5Jh{ zPYh%9Vu(!264Jo0R8EVJ&cv`758D_PsfZbyjaU$NQ5r`o_f#Uo8!J)t-JL2{(>KPt zL><&BvASkpmJMYl0=jCdf$wt}M`~X(GWG~yu^?<7Ol-JN@6Jq`sY^3^9M*@d$)FgN zWA9m{U6g?H1O0%j?<~{-XJN%pBf)zYP(E?!k@-dEz@yz(z-3zT^Yy^)XJ!f8_RSR4 z%G(z`Q@0VHsQ;FHhdPHbVUo_rHBaMh!sPKb^KmZ5(qjL@SRQN}HiIV|UUM!q;hbDC+dU4P2DPAv++$A`hoRz$lQWQf& zcwlDAZeNuTC-MisXml)hDz;oAZo9;H*AaVXUdIA-(iDL+H)mAR$=Gm&LmUJwj;OeD zqi0+5-f*WEf`!b+9+mA2&Zo3C!-LwWra;+%&m1hH^3X12Isopc(XbjD#8{h+m`?=* zmfVM>k~73wavagIKYG)BH>Scgevow_@GBJ40Y*F~1uE-}{_JP|5M% z7U)9eI(XrH%MPw@pGNO64RNLpfrQN&;mn5=S_L6|6Kag|QCV}b(L_T09t|3o{RDY=qvHYT0KHVC@JnxBvuuTk~`fUr^S{v zXF8kKpkez~d0kFZz&CMFLE{a6uCk@3j7rmC8bw;#9!nm%vK#LaL)NkR5_cDL^nD76 zw@ce^1)%5mPLA)$ak=@OTEQI@{=k!Ox^wKFqRRQ|Z_OE-_zz>=fu~xj14o%}sV<-O z&Cd?9%{^YYf=0Q_2P%nIU%tyw1zv?I1mEzy@1e`XH8MZC{r~R7i^l3--CO}Sf9`ov zT2svXte!KX?)$1lz^M7-lDQ}Etdhuc^b0h&v?sVYeelQg+pQ#ppmS(rYQJ^+9~85* zz7cPWG({1s?>{g;$pp3gxy4^q`^DvlW*X9#WL@A;(~~XMu{K3G$_iNJc{D`)h{KW^ z!c+ICl%Fn=yqq(qE{{l}C-Y={50uS0aEW7TdeltJ1*JIGeFE0V<%WbYRddiWsCv=C zYk$tgIYq14^<+YdQbFanbxN|ait+e%{ZxQVjDVif8|ssTKN^0w?x%gDMem5KmYO54 zP1af{+n(|Um4_p_h9^rqOH`sIsO^Uah z?fT|&w^#g}I=j`ock+<^DLp#iV%Jj|C5Kc-B-ME|rktPiQ%vsQC-Z=fw7vH%=&W$O zE;1KY4@n{TUGq5bUohD?$@w4m(gRXWWQ?LcjjNFyV=7bY$r+}h)GP<8c*+J94yBd^ z`gJrcWJ3>i<=kVs9-H-^=snRyHvnVzQD_+noNH93<5vb=LvMhrLPsIs<3)GcwU(#$ zar1$7iz(H&+(;)&^P7-dnf04f1VLnoMzLpC3gKffBasw#@r*KECR)sbG>~pAy4U5kCzh9@cvI} z%%+3Opb3d21 za4hAmcoLL+&CF_#JKfhHtR7G?N6`6c_`%)W`d2(YD)7Z+!f-=(0RNk_Gv$yVY zKwi)$HX)>nyfjQhTc8HTkY z%6)@%hD9Y>eKCW1|Bs57_XXM`bpZcf{IzNqdfZO@x+LmWI>EQKEau?r!^eAxm)GV& zP}t{0SI2xEhjs;T`v$2BQ#;tAutcb(@In=F_W3c&y(vEtGE*())Klo`;_dOU5w_d> zDkKwCu0`j@T=6bWuS`4HRj#(_dT+9oRAzAD8R-BE1&dlOH%M4xeZ97YyD!Vlol4$- zab@Tp`ubd0lV2ed#Ez=&30Af=x}b4wu4Zu*a(r)?yQMp5(y^y|Ak#6=y(R>SX4ugC zmCH7vg@P}~gX@;Unp%$P9=BM~qRpqM%5rS5Y`bnoYsG(--iUoaP?bg>%JDyO+N3# z=0Ur@zyPa6@GNW~S4Z|O^w&M%=KG0X&y3y1JRd9^B(+BqQ&SRdCvZ1yjiW0OOlj$r z#pM$RAvdWkt2z`G!uDQqpC_;D1O~uHVzOwcn!KWrxZ#2+z34P9b4Mqa)hK5?pb2tSy7lU18%1VY~v=Ct$fr#EpM<_S?P^oUa zV(#5^Wz&r6xNcZUgPQQ8)o#sbm?5ojmSqv+B0ZNOZE`QyVf*^~xI8N~@}WamN9!2(_-L-h5{s%wVJc{$Zl6yM7MVHlW41sLMx|1F~h-9e~fC zvZ{iis2VT7W>J4AG5!9A=+Py03ui1$p)5j`IufE0#-~7*xzF9AMSoWp=B92dC%qPa zr15$wf?)(v0`tyjU4Vj0Us{K#8Z!q2P8NgMGIr#Is+whEFT7> zSs_kF^V`*y%j$izXVoLDFtV+r6wEDZ9b@rPSL8YH=3}h%n3iSCoAPelN-eM>m<60& zJP`&%hhPelF9zrL6GH8ocT6C%=h6Sh?}Tk@-~FW$VsVCFX1DUi4but_0|#2){V;`e zXZ^`7A`Bn;lJZKC`y+y!ad|Zgi?enZWy|%N3^}V-0-sToo-+s0;jP`d- z^wgq+<>t5sc_ki{?_B(`S+|uFX0ccOvN9)9vL5n_M(B*v3(IzjusyfAy=UZ8R&$^% z3j>N7g%P`Q#o5fs&g&-uc9q%bRp_uYv?eOy9_uAVy|OT5>EKwJqBdk{d2N zrf?S^zZNc~qg~QJyCLN`2SLB)wCH(Xv60mC2a=xu*qdw$GE(r@I2(2bdOq%C=#}KX zZ{{nc2}vI;s}(jD3;;bbN!->BAg#+*sH50}-M5(GIm~5?&@Ni+U}INJNZy70om8kHsy&EvS`q(V=rb_;=H>fw?``(>zFkq@r0dK0_I@PW z1N%Cmi?L3eys(1(+em;Tv5>gv;o=DWd+Oq5`Yg5?o+Tt^s(Qo&>km=o7+430atv@@ zn#~+z{<17>YKIXi1jtxQj^QN)B;kMf*cCSraO|!NDP0Kv@n^!Q|53x4C1G zh;iAdjsq!7X3fCA)`Zx}qfbU!yOx3Nv+c2Jacnc`mvt~RN5D$yn<6LGZ?hknJ|ivS zvm8Omww-uU%54b<@;)M!dnX8V$9kcTMrF21NRjKFeNOtGj#KWc3#XG|uk}R_lX|;5 z{9EtTG}vFv^MDr*o{j5ciKg6GVz|unMc*wHYW^T_GXW-9AhYsU*YuqUGWxXg=kFNf z_;6J>*wVi8pRL`V?I+Id`{mBNpXtds2ha=h zMt6`1OrblcKF1E;U+HS`i9P=)DS#>O5Y{Lxo_l^iP2PKbt`Oh_%CF)2c!(q%$SNN$6iu#XuP5NLvAZFN zM<6wJm_@h*8nzd!1jMyF(m9Cr`ur6@X@?Z96>v<9>D!)cUx&^&PW`Yu4qm3UaBewP zliLU*3$2Za5OvCaR@Nh!DZj%Eq*ukF$V8&b0Y48h2foJd4g39AfFf{oNYJMk7WLNdr z_;UF&e7pUKo`juzH`W-C3k!;`>?pZv5)AnEso|vMFm+Ftc22&hJyC8>b=X!i&lTs}5fP8DSbCgN^i6v1?N*0C7kT9Dxl$ zC8^h9-C4ZR>f3>3FlWRnC#NW4Rg}p^y^;ba%CSW<3D%C18kM4>v*Jj|OM_w%f=9|%zwqc8( z(!{YiTr8d=Rp0O_m57~q@H9p0>iP0Z%dyu~NW%02QF!8IYfFc0XmkT~XGe)Las+tW z#uP=yS3d>~F?-134P}%`hAjIO%p4XJ6ffROauafdR=OvshO#L4qKgTcUo5Z{AHEYj zd~%{bUtnwGElk>Tyk*eus1_sq?&Jd-aW_6D#Uuoq)Wyq*5*G`dC%1Wg8D00oIb8XQ zl!mnWfUOSQ+aiZam)KUm zUc9%WZJUi`+CY_9Qt2@vQmve>1x8pDEqALc(K)$5Wpy>#&k->>1g@eIcr$oT8+U*; zw}V8xAP<|ggQ_OaKp8fvca8TbqR|RoFGhRsI0>Ysya{m`;N?&=+3zYyNlAU?qOvHQ z$An80u7;GLZ9rbnAkUUCUtQ8r_?Rt9LUr9uLs?u`pgQ8ZM zw-U{qH)g%QE->~obU&TcHNZCxFpW$dG`tOM_pD6U5+N2-W>fv~26phbi~c?E_h|4b zU@4TO#0cQ}3y0I;ZIL?H$q6ZQIA!DBL94FsFOPjMFu#QBg;{-e26__wm<&aJ*`Yoo zA2>gD)?oe{7&3nP^k-mCB4|HfQM0W^>ihlE18mGbN(DSp;*uaMc^sNosD2dWRU?O8 zJmX<)Uf~gminDg?ZZ4IJ^ZG<$Z`2(2ish$IGz{0$E&8LgCDCzOi1seaqvIA*^IDjD z)|hn~kW_ou)URL2ImyN*)=}Ve<3MEKCuKuN;;!1!W5BMg_CPy>zQq zLbmMj)B2bMhwBJgc(~}R72SkT3yP-g`?$$8+`Z!?s(B5CX}z$V(Bb16&=Z)AzYPQr zL!D~zAvw)#Lst-<&i+BoEDd23Sf`=g z%5`1OlDG?Ryc8X{l-POuc>D6Z_|iP^8Wyhe4ftnU;>Ya3rCq@OvH9U_{}bg5k>`g> zodQ=}IGqGZ6*{EBT09qy%7T&vDR46@PTN7il3RescxItX$0X|3o9b73jrmd;+BLuM zdr_9JmQ#dE*x-~1tHUd#8H||Hl)=n08QL;}vgYLwU_wU%1V;lU?Gu^+#z+uI48ov{ zAFd#Wup($*e^d@epYu+FMayI5yFl` z6|ZgBo;)9zmN+h)9i~K|yB`ppjb&^EX^G41HgdHcm(P#Cb=Oy%%)$A|Kx1U>?A(MZ z0-Ju9M&`I^4Qth^d1AWrGVl{nZJbnuBr68gWs=d+rYfiI#Jp3X+awU;LWu)zxb+(} zIU312#6cK@qAxfh#(6{;Hrg4mpv>l;&Z*zO6Tsp0W>4Ry668BzaZw;Nd*Y;Xvwu${ zv(H*CoqJHQsTP zfiaA#LJM$O`PznABhRU}MGEkH(Y@%ts^#-+Spzxj(+O{W)9{#)uX*cV?eY1fGPLH)EII5mrTP7M z0W>K6o**#G>sWU9G`vb?;Wj1r!ZckrqwqKgVT?e3z8V|tflCBVxQY@QcB(xzHt|i( zAN>lq1rlR2V~vd6fc~BD&f^|k5mvHViB^NokQ7r+{TO!AWaclkhX&SK$_DI2u_bGF zV!4NRvDUup+<`DQ_s_Z`LK}bng-PfUe#^u0i&cH(!N)kCW9;pOiW~2Kym`qXfAju) z!~CfcdSL!cC<}kudx_=x4DE!%{stR-^dNY6c$kqXmyb&lNo%7i+lr`MwimYJ-Y`T; ztb}7+mMC9W`8#3_8V9wC++G_7P)7e~);&)57I$8-hkaMu@y>?kCZ6EV3J?=I* zaZD3n2B9#G$1~-t=vuroE4gfQk--pDJE2#ygkz1$TBoZa6A7RrD)3ZnSrJ-U_=?%! zBn2-&ac|Tn&q5fB3Pb5ydW2y2SRC$U?F^nzx?$AArg8|UV(aiCQOP$$B_qV;H2P9U z-l8hzgtdD^tM=}(PD!KAxKU>-ih}jWK0`{98I_(z`w!Sc#f6Js1%#xGWh^;tgew7) z-#^a7{uz{_%S+O6`=q2Kg9bfaum_52B2j7aphR^7+;!bF!rwu(0-3V)k- zxRaHjd`gIR)-ZvX&|4d^B8w?lm;uWqmguH3l!(mh4ZrWzQY{*{Y)`DK-rbC4+pzzT zf3z|hq78?P_dgJQG^IGe9m zvd86QO6krTSeHSV>#NkIDkiHzII+rEIlg;~BKCgdNy-dbAp*E~!)^)p--sjW?u|%L znBf9malxVHK|O|^kYV=}u_sX04fX=3gi-+e#>R%%3}1fXeu1@}UG(Cj4$R3>3wmag znE10bs}PSxE}C(UFVk=P4_9OVm#e`KwO{^EC_Bwlt-?#8Jk%qVxAH<^L1q7nZvUWmr-&);~wXRC{IEV zD(2Ul`ufy>gl$uv>gsmv*=&${cU`rd5aK!UZV@{Ev^sJ}lC+0r5mp2*v{8QL`c0J5 z&JNi$nJDKNk`U5NB$n)v2Sx4(MPB||vO}W)oy9smFYiPr*mzP<uCebH_;o-;$CKd2TGD^bX9kkT(*>n+I zFuW)mYL4=ZUv{co{IfrPaO z@L>Mg-{wp)O-A)Ns5Q6@M)EX*E(DMgRu1Dum4pdGx*b#tf_OhUgQbF5;)3a{->RJ? znTTfHigo~6fX1M#ll&_}0@`+u>O_mkt)jAplsdsj0<<%SoIj;rlU+E;LeaOyr4Q(4IyXXZZEflId5Kq=CbBm+`K(O ztv~Oc6~;sr_S`xz52D%zF7vYPt|LZen?Y^roYtGLc0@e*_=5txL|_(ppVTL5 z2DICCXwbn?0VH7r9pD+##Q^F!aJNe`-7&$WExx2mCxCM(7R{EWETF#hY{wWoKI(ob;oy-1ZK{>4Z?xisa($-NU|Or& zqE|r5P)$o$5k<8s@O{iMNn|@xRYaweeNPh5)boQN*ugOlB3-lU(Q3j0n8Mwk&!|6Q zbarTtlp~Eq$0C=s#6cyoi4x2Me2ckmULU33?^AFf+%Q|v51xtCm7vIE;2~$Mw$Dy| zC6$?)pe#&hRJBZgXuwYV?X8g2{0ESZrfBp>&L93c@bN>eO_`O)BC=xp=R^|<(Z5ej zVR_*>x7&T=Z=TPNf19rFs+jw|2CjMoUFfV5ct)PZ<#*maw*Q~v1298d9`%PtdII}4zDYaJwdPFxOa6bBgB#l?|9-o_xI^V z4v$0>vK^ei{nHgm|lIxY-jQhf)*7Q z7CmcwgqM4aId*E~K=b%xC@-Vpvk)Gr;xNDdMpVGwHx ze~(KvNW%fWV;rAJPR>C^-ewFWCg-4Ln8ec|Nh)KQs5w3-NXd#=g@ikb+Te8V5`RG@ zJ?Ni|ZJ{cqm7%+Y03@_GrW?{sVry_VAI>5?07XbT$|y~wr(7sgh@%v`q8#!C%&9UV z(gLz-@$#K{$3W660?w!JVPQ{GUQXmXviWI(Xf9WpQyZt-_)FwF_;(pePPAe8yLZp8sS1kbePbiyIL`3O<^c%Z4Khw@4jA1{ZG}xn9Gc3PkzBp% zS_Bjn-wx7~C3c@~w-3jNi>-Zph@HGds;IWMRo_2O)0nsN{U!QD7eL{^v=iRaL%8bv z1vroG?w;a**U%obzv;8Rzuu00H%x41&0FMgy>@u_6P$c^wWuNd_U&r|pa5*6%)Vb7 zuzmHO4iMMynLQ|_)pAln2_kXpOWqbe{Mn7wCdCrYMM>|1(y)8Bh3kWby;jtpfMjwe zb5OT4KS?i+qW}4sw=)_loGA(99L0qryUrT7G6hv~R7>Fd5gXfY|0LpvCB9>5G}IGtjtpdbX2ZF%1D5!mBu-c(G12kcs@Cb8UF$&cNlna zkY2F@l5!~E&8=I+qaB;*8pmh?88<|AI($0T){C@t8I2S?=sOy#neoVIny!?2 z=lI!XZ0%x*IZeAqLA;eN#xpav&aN7?_OPn*J)iSUS4yH5y%6|E8?d7N7mK4TKH;{G zFlINX7u_@j{FuY`e7Zf-LU9Xt3>mnK@2rO44!}aOC++$7#uJZCdT!u?uM~nuhlX%n zHk$haWBd97QR0?75aGu6QRT_oj%rm9od_F_-L~p$4Mx`c=Qga)hJP+Fs@ez}7I{AW z3?VMswtL6C^LhvsAjKkum<$Tl&FzlGVd(H^!i|U}>(B|rlBA;xXuMJ+{JAtn;qw4+Dvg(Ecw@HE_5xC=N<_34 zniE=ryCR)wTp5gIVIEY!v%AGJ7Bx*=tI>BuBO<1h*Qkn;1(8lx5OE>9f_0c+3J-@QB^jXgExV1gU zxc&RhUa3uflRm%9`RZXK86fbRXn*ul6q|m7MZ#KjQecZT<9=iG+HTs>^G}CU7*K~n zbtK-QzsWrALrp>rd_(8fgCz}ap(7*yuuOggfXD6T#WYvbe;Lt!aalb)%!~_rJQ86GA#rSFLmBi zQeH$Z5_h!-$T@_2QE9OniAncba}6<{hB?-z1X3!%Oi3m=`8ZO%^jf}YE9bthB#wC2M+ZT}$jypF#9%ptq zH?EmQC@$n>Nun{KyN_mVJ%uJx(k@?RyGdJRV^FII3&3M~>t`kDcbqI{CFcv@bzU7u zKdJfXCJw^p9Berf5*Ob0>X*zYWuE{ojqNuO$UBYt_hLH)zm`I5<7t*tKhF*|`@esix|)K_{_?oqOxe)NaYW1l}~!_QO)?-CT| z)HRt{nKJYcG+LDHwKFG2M)*cmk?W~-h!IkwfAh00eIEBU)?Bw}OA@A5u1YeBL`(gq z$tpNncNNy~-mQ@N6%l##6^#sLJrC2(XMoxqPgD9UdGZVadllzv#bkYYDIh&cXc?J~ zF1^>8(76RaNMSB6L}9cPE&fEgt)uxmVin$aMZk1rSA<%LaqpZ3ZOWdvk}Pv|cp+HU z8gpE}RsjPq@dMR$%o!a6o?@Ej4_f&BXnq z9@R$j1wDRR`SlMHjQ$r1a)Y=e{J;s(P46{AD;;uXiG>bH66HashU`B`z${Z?{}s4j@=PIV|+&c46D&+kDOJ1HA{0TZ6K$?qwqGxmT@v9w12()E62_Py}(sVq^WaYYIhgTt`#4qdUG%{ z-_DcC@2AawEO#-^&<0WG>q5%cU**gme)U!Z0$LX*O9`P1Ou~_}>j?rXCX&wsXq-?$XQmEz}E`x_fK=w?0=Nw=|BOin_x*tG3kd~=v z(pHLas=0TRmuK5=AyBNt_2X+iW4+Uv^4z+1j(sFgSH6u%72}GOLb~f zjn1Jm79c+1uVI)#W6$Ygz6YaZ8=bDO^U$Sk30BA#e?v2&0pl|>SeH;|8U^XIwnDJk z*xXzY$<-FzoHwP*1`~QX^0FhIHOBbWb=#|&*pVLlLma76Lodo=7+siTURmq+ina5p zG+-tuOx7w*GZT$iebvHK07*&XeVuy7eJuKk72&>RRiReuVOFZ8e{N-yX(CSh=(-mt zBLpjF(gHnvh&wNVR6|5>if{@B&?CBQYt{+Zy-6qsiM(9mUv(se7XyCEy6tI_G@)7V z9iA7;Xz#~?sDZ?<=m1=GGj{B@Rj{0@U$(K?Sr%m?@`h>-=&GeWkwdHRTv6RI>p9Bk z7!U(*fIZ3%Ub7Ae+7HwCVbV`|pHj+`pi;u*5-6cKv7B1`wA{vDzkT$~1|wsm$VFZ! z%`LCWo(UbE%_tZr38sFZV_n`LlhGmqRM`K*a^iS+c!1?lKAdz4!$uK|5u5KU=}TbK z8nrT|qpmcV?spv){e4D^;@dy09^T#G(+-2p!=3G*^9Duyzk7uO*L(h=ywr1)|CCxu z;@;4vFOv|JR6%E%^zM8eDhj{aG}IRZadT~LH`k8S)645i&uQ<($wsHJNcTjcsLx05 zW1>#i?NW%cUhRli6=hw!?vgzX_kAfoVhf%#nsXaWh{Y6t;>3y$i$RY2>V|i$uJ&sC zL(DN9Tv`U+9$$C1)+aX*kqeT))vPcRvr3yA9wtGBcV~hhdm)Vahh@J*#cjhLA&c{DQyY1FgaxCAdU8y%#+41jZY?0K z2&F%|JX;u6$Xw?N37Cheh9|9s5l_AR0~r<7-bi=un~1jHSnf2?@>{Jg+yScKFaF7w zROfSuW00edLC1m*d-t}}Tzyw~qN1X)Bnich>{AnvcW($ObHCpW z3H9{sOpU+EvuckTbY*@FyIG28xIo3x?B(uZhGsW~9^!YzdD}RFZ-T z?(U3CSLVGry!*-=92taEZ2<9j#zd>U5S#)pFHXJMI6SMNT3Ng?u>!7CP_yE*BFU#X zsZiS2oA|*4QbiS2;#URFCML#u%O8@9#N1|f0|t@hPT&=o?Mxo-bY`+tR1FtE$v$wp z3^St&D)BrbX>?n-I@%F90VWeTm#QYrD0w*i*_b4OG9Y&FTiMiWuVb4{sfhU4RdZgCx!)J~9gWggV6z!SmyCHA7;|jDZ z1+qEYqeW5n4YTjXjwq2b%-}_tYj;6o!9-YEnI0F}D#3_L8ngNg602lqn>plz8Q!*C zCKtQW)O!W{zm{ry@Al$<|M|1f!7+7kQF^)5m2=x{!r8ps0xQxKnS8Vw)%Rj>P_n|m zs4sHGjKos~6}eVfZ=8(uDf6+t=vbBLE-32x4g zGzK9chBmbWuuvFS3K=Is45PD8)C%oBzPr1}yis7xjtf)Cl#8{%)53+n!x_x`T5c6Z zTcDOE16OJuemyc$!WjzMmN3*XV59ItBb7sJi_;@Fn9XK!)s$V6vXm&_?MlP8vNWQ@Z;nop3gqa%sb*Mi~( z#K+KAXM~n{LxzAkW<&GoH0$181(GGL>R3! ziEi0!;CA_gL;UGVC+N5{2>tZ!z^(ra@iug(*fSuY_|4WGY5!FPmnZC{pFg8cOiZ|! zs9rb2ln#@Cla@Mere&Y4V7IhKihRqm<4Ls`pPl$&m>(%sLY58VbZzr6hw--P^D-lo z;5w?v${4MgmCH~6ecYZ0ea-#2W@34%J&W41J_Ie$w(d6obDK#-~95`RyCvdQ`?5Zn%+Xm{$$no2b$>0W_%h>sesZ zUq@_{v7N`&=p2}^MPu^Uon>BBsPV5JUsw7@ytSueti1DMI-g}!YvCBx$e~S;JzJ%1nO{u?B^36vGeMjFx-JWp zL8*xx-Yckbv2GZi`GaM=p#v{%`bG#>SIepvk71{qL}Xo9a%jO{yx(*151-GfuWhlk zx7IZ+r#mZ>Dg}QZtTm$q8!j%#_X9Tuo41<$R#+fkT}QG=sM~x`pFVq2J~|Mk_bhSyJ-jzuLfUiDDrMi+LbwV zl{?*;#mFH;pjq1+OgX-YPkww^gAJw>??jqMV`Q!09B~p_4OeVuql>jStQE>YS@1?U z+!KV;^N#0bWNu}o{`PUK{-KJ!uS6ud8O;eDC-IW9FHPPF-$jj+l{JH>xi8W{#^k3} zlP#ef92}aH+g2+iJK!0r4_)I5N=^UAkml-o*-04I3)wB~+?E0RLJx=?@}l-1CIXJ8 z%=do&r0QU|LPDR<6DXd=O&$8P)Hw2EV1#)cd@ryiG~pLMhu`^}kWPW!Q0xi4u7|aA z{3ZOP8j}Au7XY%VrWdy&tD@Adn&8?oO^_b$o5YFr=?}OTMB7(m6b0~P4tVqIoKsnQu&%TD9sE~^xVQ~_R~nckv}&~1evk;}U_mr##KOD;^jrWar};)yCP+VwYG zrM(>yP1Zn&yu<2MfvZH)a#u_e%~Z_BQKCLK4Irj034hK_1+euKEO# ztm#o(Nm)gDi6lT?X6Y=)?M8NvV*L^fIia&k>kh(PIqVb-r`-p z>C2rNz|eHXIbh^C024wYZP}j0kWLqwSt+T-&2u?6DzQ?A`DrikzHdRs`+RGQsxjdC zviEvf6!sWDemQQ`0x}{;BkO|Gp4c9G&lXhv`qIZMu6w;z0EI6zGg3}*4upifv>mlq zV)9}>SJ;e#MQy9U&ZDWGT{Mg3-oK7n`7!k$@I&{nQ9xKcFYz2~0{U9Efb9`DC1aQc zYaoyg8M6xYOoBi_Fy(o5bMwHn_<@2t=nmJ|SO+Er5O#EQoNe*s7rJ{~guq;Zezj@J zO&NxeWf2<@gWlVM!a}VTn9v+0HQQyMJ--gqD@3zzR=2mS0PG64Sjg?L8m@GxInHZg zx7LY7BXEa|RYB%AkfR@uiUafeULH?1e>+>Y#l8zcgH1Zt-6uo2qY1a7trog*LTp|= z_?$@mRMKCw6|m3yi zWUyXRcJyve+X4G}mMNGKiSvS~3ydV*g>|kiIgZT+oyYgy|04eAyN`4_@FH#wozw^Y zSUUtgLt%xPbX>gk-Rr|}&#CGD>GS4G!e*c8`)?nWw1BIWBg^mLn=FUW?CaAAoeKFb z4eFh_Ry46|g`Su9svg(>9=q;q*Y>Rc~jWyw$QxOTRk`(;tX<6*v z1%7+5rj!9b*b;>EFtMQS&DFOjAz+KWpC$cDd~}#N@i5z6GqW17CDXXe_#-VQ8Q7st zw>FPYLAy-kkI88-f*8$g*BiXg6m54X=aHnq1$#=z7mw;4>I-Pze$p7jKE(n57w)9FR z88~8Ic$$?Z@AU)x_KCP8E-^&+S?uM2_HAn6y(lGR6|zd&_f^}GB!aB=8ELW}qYpPzO(aKoF)QsLdPP6gIMy`G@h5m#3o9K)9`Txl9W;)0(h zHwMC&asQ*QWY%r!ab$1bC1c54$T!GSBi#S=z0!YsE7&TCqokZK>kOj3vuAYQ+LzPu zpIw9O_GvVDx`}{+XbH4!E^VDSQG!&~7(&>})sw70`r5E!yeGi(F-sm&rYkH?6`fT% z<$Gr&Y^qH7laRfwa~|s8N1p5tH+PxlP(my$tSpJx5wRiU5OUlKxO?8|1@dSvQ0!k623tjNK-1kj|*|s!%Ey zc)}F)uX}i>J4VLXq_oRM8QNYA6)yYPJcwultN3j!fI1u9L~f&b{#x1%+I0?gSi5&U zey`*)1yTG0+Gzj=`I3l@%TIfTSQc=}eJEc8ZrY!=+IE`*WF!5@kzD2o?vGga*S09< zs>=wJghZ^kf<_2B5mKLdzSfs5vtkk+(1$91`GgcJ@c(!^>!_&quZ>Gecc(*1%OG7! z4BaqvNC`M}m(txZq#!VKODZXy0@BhT;Ls@og76;h{oVJkVYz0x&~wiB?EO5S{cM9! zp(;Ycg(oB)Z%mTo(^J3S)idPZa3|##%E*S_<@oh|I1g*W`s+86ZB2Td`iA-41qC_i ziS%U5M+dsR)z;DYHU;jtFGp~sPpV&4$zQZEz0?%b`{tKNCWT@2xc&IKJf4l=##>!C zvH=35p<((j(Wm1+_USDDu>hiqUKu5hS%8tcyFDs#egOS>PTg=W>bP_|745#&Nk^2zwYv5}AclzSZe+KNr7g`RS!hZ%L-gWJ{GAN<3Z5_`<|FQ)~_ zAdNjySf-SZCqWt@^oj~+r(G;*iz*9UsO~I#ir^~H@94TwJwG8s2zFC>Xc1+@y$cEt z*7}OH+O^B%-mr{Y$pB3BnMvB&&dEbImqk{4Xrp{`Z zJg6Oo%g@R0eb&xdGuLf{D5bIxHqAw_*jj}?xC zYMjKM&cAxyw8#Y1dM77|^=r+FxmDEF)jzu<2`-P%Whz$ zPE`D`bqX1#mi?=0Uv3|_X?Y^-kk5o#$rcgP9;x4UxFq~}VJu!#`$eCYXLUsR+w7#_&8jkX!C{C3@6(>SBVyN>)2MG-h{4r>f7Lr&Ds?X{L zwvavUjwsSgi{G1y36mgeB?H*mp2>ZxllMecO#mg~$Dk zPOtK@A<{_6%I4xDv7!khrI@(yF_j;~Au!p-KX!a?K8o1GHuqb3E981wCD|0aHY44i zg$32^YtChcqBJas28%!Vv;*+jsCl!%(E2K%@W5QV8-JgaZInJrp7+i#x8D-@4{>mg z_xU+OpwDZ5cmLhLmQAVVm+HA_&k8e>O)+~or!INW8;nLv9q!?kjwg=Z_anE_LYsNt zV_OPO-H@*xBHFAPgoIe)>x0wn9^q@T=Lb!tiOIIy5WAn|ZW0^DzfPS-Xy$);yx8o&V*sJp`AM*JYyzqfQUespfxJShs;4H?) z2-3biiF~nDd$(6BA}U(Itr7>uiy$9Y8mnqF*vi4=8$fvazqZpYCuyqS%zi!js-S7$ zCJ0uH-D{*0#XDOvz^lM?Jaq%#0B(}&fbsV7Hmi%((_iXd-+pY_>2!w9X@^(HbZwjr zrx$`bJf4$Gs^G*1@spTU1k|Uqxc!W~K;nUt#zj@EQHE1UCNPsefP~=!pFiG8>Sp+Z zrk!^Vcx@vt%Cxjf590a-Cy>t6AoMsRnmt*w6GM!lX;J3f7-mVm;)b-ur(P7<7~P-> zT!j<24^~Vf{B=Zy=>5&={2Vd$a)vFdYA20m6`>tdK@?LQn3f*7O|l%KM?}5UA-%=0 z_fTf#O4c5Sh2}IYs;AbmJVjdlkuReXQa90ROxx6F>+SYk(fKU*f8&tvx@PB+Y?Q6Ko$l+Sr629=fv^ zm+zQU5}J`1A`H z-&nB~AP)%ssQTI(``y6VNw)VC@>~=^J|0>fDrOiAmh&R;1Mub3aq;7m?iKO_p zv%hk$wl$k?bbKGNqbfJF?p)1^PHh$s#>1Q87RY}bhzq1m5Tc$%iHM7~s?SgLj;I+(W#_rtUwC9VO8vls$O| zOrczQa3}LBZx?tM1P!;)Dwnd6k{3CpPdw>Lu|xO8G;z`sEyNSM5tkmG7@lV;sxZ!g z)0)v(w8HRw7+uZy)f_B1DpD3zIwLO$*2DyGQmZAvOuHOL2MW>$VyohyL~U_AW#SxW zk*6(eO2r^iFmBK5g=W$zL?f8Y$f~OUdrC091z%Nlwfja7ZgSUcDWz{UM_ zm1E^u>Nlry6>ll(4zhjq+3BOI@8jKl1Un!$AOXV)qH8Kiu=00^k9 ztqq_lf~*}+dG&D5ZRW;#N;8+#d8}Bs_=#W6+nrg*-9F@$UA5D&~ zem*yy3;Q|~O{R=ir)&R?cJIxl$ozTCZ1N97J=Yn$HN(`S;g9@+rv23~7ZK1TCH}8h# z$c|audsS9=?2P7r$i4)aWC|)+5kg<7tmJzhO~8KCWJqw5B2AsJJt$q5=m#5ev@htq zX7t^#U<+=zQtR&lZjLayrc_5A!!+j0o1DqAjrH}U%e6p8N4(VGu>JX3_su_^@2+|o z`Ka&=OigVZ--d7G{~)|yCuCP1op|?~An@;e;MjxL39IcGzMZRB(}EPfNal1mnz$lg%28vK0z(wEdNU~(6CsWfHR<=pa67l zF^E?JG~oARE$&El{n6G>pCae@gT|2Vi_M@u2kb`IC&SP*}xJ#yvxA*f{uu>+9=#_C~})yKzdm%Q4B3LP7?HhW*8h6a7xVd$M)( zFnTS5V?NAQSbM(>y^w|!$f4y=b>%>5jCQRrlL8`&*<%B=ZKA$bM0tETcgb-laodcU ziv6RnTM=Zc{mS}>{PtJ;YH7%DOcYB9Ge%SiMGBRKT={Z52!UN*%ralhMjkH1&!G5* zr0HszLzzr2ZCt;8%VRL_ZpD-|{eUAz7nwZ|AI7Wm%K-_SFbPc|c>{ZK>k#q9Rh$l5 zB;=phwFWdJyY425KfP!f+;vFMr^!3uzLpxd4g*IZ*u_{iYF?4kDs(1{{-)(q_MQNx zbJn%)kp1D1OJlq0`m9=qc(8#xAR}Mj<)62*d(daA67b2V7Lc*RLA}zHJ#jx_hFUtoz6tDFl+J1v5VOIVvUS{>Pq*m9Ly zr1~bUNY9A2XonczA8L6f#*u2->P3)CMlEWfPuqbNd8ppoQ~v{)2M&$KO5PF#b$JN= z+_B383LRpTu|vWa>sMDv$G1nv{AJ2N8$9P$U`?tlC+q9}%EsZtxJpY`dF%j?0*xc}$hqt;p`u|?)5|2L? z-)$56sed%t$ck(!_4dwnhubJwa5q(oN{Vi;zshT^1_R@ltZIiMVp6Z1?}LCR034ys zQBh$jA-ZvO^~f=d&Xt!%JD7K(*GMbKTH9Je3c^vBt_wv$-)lXZVX4>4YO*1U4?2$U zug1YKM!?af-q_SZA#pBZ)P)x^1u4cRaBYqg(vV95K{ED%)QCllj~FBJRdeX`+W9Qv zGANTQsNJNg#Y{A6W684t{nuAs9lx^+V!T|rJGcH*Evo`otia^0(|AcC?3blGRxu@ zH-~QS?sF0*4Xtlz7`4-M{dgI6fBfwJ`I7OHF3{bz{@m!j0nB_iAD>4fCs(JWzzN?| z97}0vZf@lqmql6O z30ZukLtdD!XinI?%vCS-Id1zn26<`QcattAg5YnQ`;l|(KsTjW@J(y;QT)K*FFG&@ z*!1v?ZLB6uToN&u_%T~b01#C5JtnlJY_Q>4m}%=T?7CQvFeUj+M9RGgRZE z2*RWp{&D{k4$a0iy11Ok;FNSasDXo)Wt==0#Hh$)89&u;K|=K$-^^Gf}i_R zue1a`mm8Vp;Tvt?uvXFVGwDRO;t}UYRZzJ);)?vf%=;!JNc$eCxyY9{*796RjfWl9 z?sjg&lsxRwv-pPwqUGWi&@*B;WGAo{&h-p1a>GZTA=LWU{{DTTEu7Hmm6M}xZ@RTS zhxx!+A%O<0(bCF29yVWlI!rGjA+{BNd>^E5);Z9$um643B;!k7=92e^JiG+pdWs9r z=l$26eR(9={ZDm2fijZ3z3Tti94mx*vtcOyI^Y909ZzX#sR8VP??-B5%As#go8n-U zJyS#=n87a-nEw<#NyhE?Jh#%X&)(6e>GE3?PSU2fx<%>6?A3OkwSEQBRQ5b%FQ_#4 zL_ZeqkMK_TCU$)wS>p*TtBwBrZQ#`?styH}DClgNJNqphwXk?#K9cTt1*Kj#RjWiw zK&>^xO7uYB-eFRmR0~w@ugzDr)z6KpPtLKd%X1)L6e<`&#H1#<36H}4FzF%(#iu66 zIPW0|weq&5wc_dBNXjs84Hk@P{Q!_{pS_P6o|%0C!gGX0KDCUVo^nJglr9IJL;+9L zoUqVm*G)0=zl-`l8{sOAof{`RL8+-adwwHxzu73gy{QrtefO({Ikf(4p zEZ?0%Zs{zJ3rWqcyvzxg9?tm*wEw9qA4nxuzMtM&T0n+-XbuN)N zQP*s;s5Qa3S1vf{^vZFGqFT_#1}G4aFjoJ9R63S^8A_I{56_cv)t07&(hVguaxiQ( zjiT#O!xM-QOyn*jM0DhOC}N8J_CT4RbTiNwrH%2y+VSK=e(DMcv)r(WEteJu+Mp=V zHnq>dm)0iRdO7t`Ab%he^Bi(zd-<12yoVVlRR+(n8x?l~m0rnZVC3b~A3KV;XA>cN zWXvf#1zT&ot}<^}xMB$Dhc}EBmYPl7W45Y>VA+T+JywXJB@UM^JjyMKbESdCvYtMi zeSXz{Etk2Pb*V4Bxq+2O7O; z6w9q|Y61ox`;9_{Vt{V|t^LUOwWHU>F`p>C`)-df!;5!uu%CDeFjaMptKr1JuVtK9 zBl?{)41*88XxHSHhv#2EqDGUR)`z~%*R(EOmuXQJSt*{sOCrx zwMg672&Y`IU_)ln2_Hw901G1QNU$+o9v231nVJTnxCtd$(*pQL(H-44LgCPt!Y$r0 zL1fK_ibtX6QjQ*#N8WC)72Mr z*85{w5*bwCeM5=3BrMs93*w0|V;Lrq*1hj^ZZLcssFrTAfi4_9%1a{7h>20#<#k;0 z`nCiu3~Ydhsc|s#bo4hU!^kK7#aW%#HTP&~W!p1K!B%CMY6Z7hgdmL-ra(>qV?uSs zFFMB@Kivbcs;a6!0%IF@cMR{}zsIWx*>DM(j0p`zQ`gY&z1;#|9<3JIOH3P%wR-{I zw21rJyTr(!m3tN$c%=|6xq3+e}@yZ!^!?Hg#~^6E0T+GXnpV&Mz!3 zzP9zpt)A5xytsxu_jEAZ?S=f)xcPRU|GiK7=f^doIbJ;9lb@hx?`$s(pKa^Q2HZO3n#IU|PU zHbOfc+S)s9tLu^ImXTYhc;tAxvZgoz|rXq;Q#~+KDD`AHkSxX0Pg>btGq=d6z zV!y(d9*U_DH2b$!xKTJo47Jb8gnBU311(htN&# z*hlM`*XrY0^=V$vchOD@>MCK^-M%#pML%4W57EG8sK$ZEh|CYI&F8-gyvGKJW|P*> zDo~@vlAj(@$epXQ1_glOCq-n#-F6tSG)rU zMn;GV$&udPfJRRas3tFe1xrI+_d^MP7fi#MWPfFDGs78|mmsNi4ZFN&Y?kB{aQc+Cr2CagJ)(3?Kxr%UJcdKhF(f7=2wWhJ7 zwzs)dR_W^7DL5=4=lBD|*^fgx4RcgWDLF^AkER#m#>PBz+;yS-O|W@@U!NY%?CnJZ zl+y(OuDNiz`91hqD8I3w0<#@p>LmPrMI{~w^v#?7#jzWsbq>fw@U?qv(in9g9r0#7 zGvCF9fk3xS$| zLdNsEn@?AFmw_+iP8MP2NB}L>c=0!^^+Vwkn>SZ82&Oj)Hi`~~@?5eODizWkX^oI9 z%+c^OX^vTr7eR7i0xJn$BzTi4f}J!m%5Y)@Q`{}$)0H(XOLvm0u)~G4BWWz3Frh~h z1h2$<)|f4CFOLwZyzHZhC=&<{AP|(_FACA(rlmbQ$w{;lMHVnSTCx!780`M=H#9`R z2RwK{9O9rq<6cbNxsLUrK6TA~QOSQu$z02sps2#E<1z_?oPgLJYHdW+cK!sV?5v4! z$_aredtPKLNYqa1#w-`G@3P?bV;hZ8u1QN+z;jx1K+rKGgP#ho3^P={MT?BWvHp#X z1*5igNH;EVk-%!KvdyBHRO@|^cp}53+^`OK5zDY>+{msT%1LT7x))!?n>?7sDi|4H z;K(}T5skG=6P%L9Av`fOftS_QFo0;Zqljv*Wc^nxj5pb3CF!6Z2idNAb1OzMr zSlF|=&d%{af5d8+Z~1|m8z-En1(-L=c=n|W_(Nc;dVUS^VItvh&$IJxZ+>BAp`aWF z$f;4qjd$%Pr>s{yFaGSl8Ox^NQ~gMMe4cW!wbXVip=&Xw$@(siFrd z)(^`MY|UORAy4+FpJ^ll?9Tdw79JMC0G_s+x!>4atS*Ro?w=_T|7&_W@SiORZy}&6B=CykMWBLnxe6~nM8Gq}=uXl#0No4pduD-Hy z494kX%}IX@7^CdqF=5|G(r%5Z)6B&5zxX^+J}F1d-7|B?-#PP~KojMZl+WuBmcioq z$~*<;{P?l6$Y1_Uz_PS2YWGr%T&ccT1R3^CF%h6yYr@;ZwL5xY=XcSQWqpz9)zxY;Q4fEM zd@s3>@Wknu^SjtVU`0qMBe29W;9}Ik7+`MMRWCpN8eM(yZt3&=I7-GB*Q2bOf`9IX z+x>5(bpI54Io-l{hR-(4!%82gZ_}YvJ6;|)JNDZb2uyG40B)VAh{)FPD#P@3j_>qY zclDA)`+ZblFR2XH!NGw`KtSAFwmVXYI#FXAmRceH+|V*^rg7lgVag}RrNg*+&-gcF zP>j&-po=DaJw3gwu@Y6bP2TliyK@=a%V<_|82NmrHQ_RyUz+Qp-4k~2q@=jHnSnN( zK{qwLiye!Xq>w}#(GVyXqMuu|Mui4a=3^rU&VIv)&sev*qP1uijPS;wu>4cUilGY> zqyXfX2qV_qhNF^}yhCyty^K@76_ezX0T0LLElIWRZ{X3xM`r@V$?0kLPbDFre(>%y zT{`5@|4Hp&#)!n6|6yG2Gd6Kdqvf)Nv)=3|?pEkzT;8SjJ5`-ri%dqY7%%Pln3P7X zY30lvB8ADuwcV(6Z^a|8tSqW~Gqsr2+*$Nz@mf5|>m>oT%g;xjp^D_)`OrF#aT%rn z3Yfdf{)|zDWqh>mB0^0XJ-dWhWyB>&h$QO$aPvad&rm|CtQmg$Q9db@D}QF+@z$3pvx%!19b=Q5_vFWMT0fX%W2OJ-REhI8SbBxuEDX@9Y(gQ%faxeP6hg8t5uQWEuCOP1bR&$t&#}IG7 z+&4l^Zq{L!3yBFUqfDH|jLVS??_p2NRzm3Z@se_g_K{wjk}}Kh!ev3dj%8?zzA{>T zR8fCJX1KL?LhOL$jJuBveTjD$<;2(_26|>LLRdPyKFUU87o{qF^F6rCRZ68nCzd+V zAcWQU{7I}A{E1MS$#wRu@OTsbuyj2wIV4z{6MDiKCrD-!Y&ZfF^;g7MqqiLyJlRlX zz>ZFx;f2tdmZWRFa8c&r*MSa7fRWJ0>b3Vd;MYu)#_#E;OQg>EiG;P z?HQMV+GwZ(VT;eZ$cn}l!D|T%Kg|YDs|&+t53RhU-z^t_TK;<$SlIY?tuP+AZw9tp zRb`yvo*KHHk1rN*+u0cpdWhKwz26Acedpxlgp%z$?c(FnxB1i`m@Ed)fsu_n9=1&m zaUir~&?*jW&j(*|Mj9`c?4q*G&(D|dUsH=mfg?6tzT3P5WMC*1s0fpf#1pl%XJ?@! z2+OyQXipaG0=!K|f1?w%h4E5Ua}JR8VGRyGjgC`_XD&x!?W;0MqR~pj!XmC8f(g_V zyCTGfbWvQ1`8eAl71B^JhT%wlZN__H%LBy(RR%jQw2$*No%EXQb z5#GZknz^X5s`9pJ1Pe6N7`akvE?YOUm5>!q?pzHFmG0uK&sg10_v5Ss`&7yLg1ial z|FDY3>^q1&8c-CEslyGA;K#*?e8;)vF4}+|W@l*h_UX&vL3Y8eUAk?~dEG3lM&c!0 zTsP(yfo4_&3}Y`E2G*^*p8Zutb@3d@ymkm-&U;aeXEeG7KS$XNy>-&6Z+;E9b^Qjt z4pO#Kc@02K@QSZTd<|m<6ZNrzLQaA$FupS4Vvx(1Hy`)Zs@>awi<-}Yt#x(w z$JbpCC3HH?2)xc~0Wf7zF|i-DcYnUPU+m#JI5~avf0r>QsLEy~G^bZLcegC+Gw1W` z4y51N@b~{c__Y5{0fK_B&jP<9QDT)1sQ93ib^EjeTu6^oQ1o4Y<0C& z4lZy%sR2SlkFj%S{{>7qQxyp8DEazY=l5@h=Ro^_$vU>1(^}I;q=7VIOI4!zjOMwb znGV%gTWFqor$xpJm`+M1FE&q3h>#Nd`!F)d@W=>`+B6HI$8(Uig|7Z)1?c^iRwL$G z8+zk_MHnUWuv7Pu_DA`FAR5}{S)bY(VK1zjip9(WL6t>wG%r|Y!gPeh%Qdwj1Vab4Rz6U>~4-u zalB2c8HvzLUliLE2|iASFCaOV88O zNJ}aM1;eFt1kbXI4a0n-)EqplrE&Dqh!(z8OD@@-b>x#8BBqb!^Xdf~kH&k?*5vM1 z=w82{g-DsYr(*tf&^Nr31YtK>*KDbDSRW2uzEa%aT~*j?g>XIlOyuSzZfD({#y*J%y~gaE^6#KBco@*QEJmJK-z%Q%3bDD zjSoZW?r*XmM&(1_0JC4ja})w&#NNlNlF!joj1=R*0F<*bLsb|JCPI`tz0ODA9fA0= zRH@=A;+cKD+wB2_h~CC9e+*$X-ICL0AqE3zC&yPF-LLra*<*OSbTNe!HDbc5s*-{Y zy*jGFy5%_f7?3Kw3gR9hy`ufROxa2;I1#12$4HJ9Fk!6l+YqqR|aa#CI$ZRymjwBXJ_Q+Q`BY@#d)WA&VRR>5TLO~5#81!25 zrR|g|D>Ff_r_>FptG_i9A%lDW#*AIy14*Nq>KeW`hZ#N>v$d}rySZwYtvzjW@6XKd zXrDeMjS~cB0?)5bfnhr`y}9OPz0`@(vzvj2u2qGnCU<}4p8NlOU^RA5UnKqyuR;dPRgho=&@E*9#_PpwxB#a1=`M$jmL|CnG)`#fQH`CkmTyo=1*Z(w zjOPk|jE$iOOAyT1k`|j60cIzsmtEy07%`8C%)n= zSNUp_Cr^!+9iAR#S(%ny%$q0<&h|(uGMvzJ;!5&G1Kma+%4j_+hv*Sedeh$#>eN)h zRDVOzwWp3O@Q9%GLF@uF#mti-99#!o)8jBeulA5gvzkN@l*OE>zLsg88-n4EGFhjW zsp}H4hH5Ai$A=YF_{{wwu0LS5aStP+L@9Yg{B_}~XwHsicpi(Pnry%b+rLRWi?f+n z)U5nd+DF~$qHN($NlDqJMFsL?^kBhacB@G-<-a^`${mC&R%y^ay$WY8*d(zoUOs*` zE*TgBpSk7@d2_zbYwJ{CT=FEo3Bxhd-9^Akgi0n# z!tW$%BwcR)2mbA^(&Lkp4J%&r&ae8NXEu8J%|HZj=h);1$L1+j{EyX@n}D-Z(+3@S z;13qep)}5@Ok^hO5wzR6mgZ*XE;F91cWrV1;vdPuobf+NNe7tYkk2q?aubq?LJ1GE zA;1jPjpPu01dsp_`_b*u4EyZ#n@h%TGu7xMQa(eyk%SL1liVt1{)d9{g(yIL!fT=T ztd)v=MzUCzgys7*tgDZ6oLL)C)s~dyBPVU@?Ih^KXvDMbeI(2d_F(bFI|+k}Ar%#6 zm}o(~%Tw18R3X;Ss8U0C97_qJ!CnQ0;XHPnfIYalBW)mWa4#1Vy9M}{fl)vGWTTHBYg$HbV-SH$HQ*X6UzyfJj;Q0R>eN+j8% zCT~>#pg|kY!4-2vM`{0;qfOAzJZvbcj7SSdE8iM7h5`oH7Tb=avTuwghO@H$U|tVn z!N!gKRxdedr)Gh#2lG&Ds#Pv%k`P+c2lH03EHE@wZHefVzSm6O{;^LaepX$f49sR6 z^U1%l?m#(Ctze;l3SNKP*OCrMIPu--Q0*D279r&VtF9gE$TJ3;Efb96M;e9%hSVQ6 zw@$)#eZJ?1xZXxyCM)q?o(S#T53<+)u>KL)10?l>}dO^;-P&HWFdY}43* zH=hC(rf;RpJAFg1TSOlyA||$&3Rxc7tamq8?O#4UC{qfF=5hZWC}eH5Rp-Nmc_%-P z52W^s1K85B6Sy1nmBG16ynvdS1hkQWbp&`F=O-JoGA0ICbMtfGXw!E+2HK802RAlA zfI~QG*Z2Fk5ZEufl}%nl%V4qDLh60-yqnK6S&OAPC64@{_V)~$+xw{t$3!kr549v;Pl==@%kbqnDU3gK!|ikR`y6Xa6-}h%;n}RSc;wquFWFC0(lgn?ZyD}BdB0S(m3}{n0fSqvPIFZ zH6LePG#~%mh~G50aV&s%YuHjkPpd$zAOh1-EH*;Bq~S=8wfCK#w_I_wPhBB8VfU!- zNNLq5-Dxyka*$pzB(12pjj|Z8h;!j6n-vw-A|o2@Fa;iJ8re#|WFYZP!4}bWQXudm zM=0og;(^q+ZGDkN(p9^&AA=!TcS1DSGEJB!`QJ#KjD+zQUu&yX@m+N-4sgP_U^#RQ z&|J0bfayAC6(8}HumP62*TUYqx^Hk5o^R9!vcdMd-|>}lZHQ(z*^vGelJi-*(z zmv^?gE4gZOb9&LlGAH!l%PKt1yxSA(jLy#MIJ1s_n~jS9O3s80n#-z;6WnC)(&u#+ zak~+JfL;I-ZGkmcU9z&W5*Wg(lz3M^LF?S!y|Dpy-1j~6Ndz(vrS7f>p0q7AT*u|L zUz2A0jRPcNGyBQ-WHWyEGq28E(jVQAl`4pgV|o^IWQkpC3b;ob&Ct)UhZ(EV(hLxKgXY&sC&o-5&BojpZ~MMl&?1)g59< zGC?9fQWZwUXNof)U6n)$`?^z z)%rWVp8W&`4x6wx^0@fy8LD#8IzofEoH_T!k;fN-waI5qQIH7jNgCOgq+;vQ&dm!^ z;c?czhlKNzL7?@modZBV@YAPLjc!0>iurB7IUkko!}YqoW4x8xr>!(;@ypsh5R`HG ztXJ=S_LiYg%-vifmM&r9-2cr($NB4O`~U9(*Nw{ebjzYP`-_VWX3CMjI6!796suvE@s zDvg29x|?s}rD4>X{qmNR${RAOy{YQGpN`>}V$hnD$13F5S`o^n##KUO14OZ?NaGxp z77Arz*{*9!gvX^K2gQLK=5TSa5iGZ6kI zJLKdr>jsatyNJ^!F^uTjmgaP(VkwzR1!Z4^a?>ZHCH1D1+n4kkGFV$)REDqX0WoUo z%)p9FKAG$Vg&hlvV7c&?$ulxAD47=mqUM8&cHMLZm_1F2@Nkjx#@oMI}%WM*!pKFo_)C`S^b2E$qH;; z5@vbwooaDTXa4N1Z=Q(p``0OFRXH5tNE_f{;A|bGidJ%&P!gfX^G2j8r5&SK5PSuhg=x!r zB&xg#a$p>?#*2;{%3`tMkj*{#Hmcs{&Y>bZ8SXW5uACstCZtP2SG0_JU4nNipVhyf z2gMV$7O12$FfeR15z!UK8Ch)Tkjf3%7wwayaU)HXj=ZeSq!fnSu}qBDh`)wK6l$9Q^b zF=Ls!VbWtK-GeGFYd4I#!f(myD!#m6HaGi%N7%V<6|iy)6z$3{V+%S*A8Xa=xNP~Y zf9J5$cB#x@qqgE6AoDp+ud?`n6Nf(=>ax_{Miicr4{ zpTwj@Rg)ZS;sGgsw#N$I4Hy7odnzy;931%QfU>H-xjEvT$N9@S#k{kLl>kk?;Bxyl zj;Ca4xp4wPBCwb3lNc~>T_vc&A^gstGa*z%qs8m`-2Qt1A3W%u|36F+X(0KcYnH({ z3-BWdvf77!!?)=Y943Yy0=)ozfQ~^~cEm@*BJeoq^a_4)Avm7vA3r?}cJ4T*cv|}O z0bvIQ;E|=y7L693p5*h*nMGJY#R!WP$P7_)BFgJ|cJAai9{Dm{Uqs^k|hIfYsYbnx`tI&6OyF#{x z-o&fEwyRDhSMa{39hLRebHoBAhdeVRGOc&g611z<>Mmv{1&KBa1)FYM81mO}1LEck}%xTRyg#tE)UKd?bhNX>jKJz3xo&7E% zEOMD+NMHzB&MasFSP;*Pvot2 zX9lDq{nv#x+&(Wh_`N%!4b1(w+k6lCk26U)q=g0i>6LW4?G6X-1gE44YkAZ8Fe1QC z*Ma2=OfS$Saef7iP(6KS#<#x!GGe6{z=zF9+ieAC>f78ubo@nYq)@tViN^;#D*!$L zn78w5T{2>jrhy8z4If>R=@y;YcL5%oa`7J)HlBTej_t}@l)EEgolYLN!S9PwPp5O7BB~;rj1_#Eifu@pl&8v(mM!p-n}*n>XO|MsydBvWL>SGd3>!vQz|(SLZe)k(e#>2a37R7t-XanV z2Fvdmr7kk{sSp1#^L{l2k?b*JlGX*MMKb7LJlF@DmnnNKEh&k6(K}zO{%f0f*Jtxq$@8qyDjeuR#-#}(o{QW z<2J2yqz}_WitK5ZPl-b}h^p}?v4#s8Nv3$p5hp+>geH4MeUGok(wxY=W$12=ITWrs zXtlSHV*x$&2XcW94vqkQ$n?QAbn3X5f)*^SiYdHDg)vG6$l>wPDYI632gk>IR?(A$ zgw_8Xy?j4V3ix0n#}0pgnwR}sBFg`#M`HvvPgJx-2^8cQz$$Yf-W#Tbo`@}20F!tV+qu)Z$Iy^#wT^+0Mkd8+$0=hcCjFgz}SSR&4Q+ft7uO!LxT@wgw-mXn@nM{B!WdN-XPYZ0qEWHEHtKbu;kn3+4?Xh zP=w->fS=dIxbb^c9LgNj0glov{I$p`eewZ=?75AO0&db^60%IyM^SGqMCG0z?>tLS zb>NyS*@`XBf#+DzSb3|08P%Au;6m4rhlNwe)8;aJxX*YL^)fsTz?d>jjQp-iJmNvt z1|DI_GQ?B1m;ss9fUJYg9Ky{EdW})8gdX)oBvEQOQcBwy`&SJ@z8Q^$J!lx z@oA1^>bO~{t}jK5J?!NsZH{xRrWQ!AXuIEk!h>Ilvm$1S>ZjT$9eX88TAf><_)}3{ zB_2dId3=K2jAJaI;oC(KCM-BG1yVY)V3r|+yI*zPtx73GMgjp;m3S2?B{dIWnb#YH z@A@8+%P(LLGe~Z3F+Cq!TY<8X4H%RU4V8`Q(T3Xm@gJUFuOj(5Pyh0duOH#zzwd@~ zK7eKLzCSR0hWPh(cw^AUx7BSNS!GTqxnKNfcr`iVvYs1YhFWWYBF)ZmVR@NFzCXas zeZP0C_y;`n!gI($ zF$r*Fay^0d2|{NkHkZX~fhZOalTY3V;z4kQCyh=zFeN02R{8neF6y%nYZjgc#8!%i zxR`}JBV_2se98yd%1?3S$5Df=rxovCruqQ@VqO$(2bmD(s3{RD=X_SlH?8+v*3#6W z960c%ENW%tWH}b9a%ucsxvg)SAS!KHB^;voYw)hOn^aU|(nrlPpJ(X>>y&$`>|x3o zq?Nkb?c7+5GF0Pfj*N|B^gZu7!)-rxlTtI%V}B-lM?zUt zi>)Xw$|RabhYMS|K!@-3ooS(5vh)bWaC*`4mE@?b+-6)~yy8s9l}xl-xC^;ebPvBT zF8)~i+jbx8+;?(CM-3xTnz5%2aawDkwmEt2KWTr-GJ{}|sHOMO8$=F2O z9BLzNNG4Z*2-$<@p4%N#Rn=&vr|Ew817?IayF(wtZH9p>1U$>Mz?Rng+S}6mUyRr1 zFYeu?00c(g%!in%s@72(DhogcDKW*}q6%8yCv;)At+TXw8JFY#RvVRt|8qHTL%7yf ze@^-oqny!=2Sl= zRU)wRyZc7Mw|;P?4Okol%o_rTb$95E&Tobn-7PN-;bb=bivwb?{r6J zej@N$j@zF(kQt6?&7Y4qPl*jW=;>@4F45JsHp^R_C)rL7YLhBE{Z{O)VH?{7$Hbsu zWx=12cxns0qR1kUuL7-bTB$1I5fR23-AeHOQPsA#cbZcZrHT!jQ}v*({y5;(c7g~p zOu`xs!|f(TBx#Cq&;&RcE6sCY&f?#2?$T)f!2?g?ckP;e9YJ&CG5nn32mveeDvf^{ z`jH4vuh(o$!cMH|#4Hw=9@ZUq$2&0l{C_;1WmuGZ*Tp3rx*N%%yHmQQ8>AZs1f&In z?jAzA8|jpgp+Sa{5R?uPkx~IA-oNKO=l$e2^}4vZ@4eSv>$irE?>5QrPVa6!0WJfS zBP5tvQrXoVp!&6FRdTc3w0k_z+SX^UYP}bm%<26ty6A zEcUS5;v!OS3Ge>>`>l!g_RmR<9}>_>+c-LA@V&f(U4K!P-RQqvx+?@8JIN)ho)Itc zo!LQE+^BN&8%{=!M6&~hmp+7ip9SuosU@i%Kk(jNUG2}@|HmguH%-^8T>kef)W@J} ze!3HG-)@W(y(KGQbUS;{7SJ<5{&^_*#Sdngt4k8}lfR+p z-s2k~Aeb(%u5OQ~vo#sFmvM7}D0kzC*WGtZ?IfLW__}FkW+s5JI)da}O$|qF4s>cp zQn~g7+Rg5~T){N0Snp^?&S*0$Olfa7uMQOpft3Hy3ni}OW?iw?PY@tgCh8~049Ndd zC2ZQrvmy1yK_I0y@r!94n#ZaTBHdF}lG58dAnW+$u~f)ieut^HaGV@zt1%{rFgq4! z6(>B)a?CZ0ZFcJAxxCk!@Z6sJt7P0r&*Po{t+AF0Z^#VMwW-7RwfhhpwBn7*+CPUIz~~vN}FN zER<3~rzgJX(Xfks=3=>vZV!XF`#o)H`>v6KJRj4)kn)k?rM+&7@r{|GIu1Esb+2pi ze){ZvAg!RixsjT#Xe@7Tg%O3>A+r9_Dq=oWwBQYv8cd7$FlDvo^J2|Bhno^?IF+46 zaoMF4rPMq!vQ3}8TzyVh_6c32=f7&YlgO&nI+!7UHFlk z;A`DX7GQnZ^ctF-Wz@2##E-_sWNg^EJc$^0m;fRta06mGnhEA=0m0f>cVPi%p^2yK zbeD)$wa)UvbB>0Ef6N*$F20cc>(wAbAZcK}*g0*v@Nk_?@CDP| zUjKDR$g$MAoqdtO{p8mVU#R8Gw7In&Q89+gGnqjwEhw)YXsy;5LL zCZXGOgs1@bXnpUn1dawKS8@tF70fmt?-x0i26l=MO>}@>FEjcRc}tY@8J$D&9LK!l z7##9uvAQPldGx2uX-lKSQd)@l;?6%?KoXlZ{aw~(O6_*H|5B&(*$r#UIMv)4D3Y! zVMNI3v#OH z18ZIU^z0}3+qV>Q?^af*>7QTzU4=o%)5{UD{wu8s&h3NwQA4AtZMJF3#3+!K-*~=K zKd`mGP8xkN`mJZy`CpCA1nYk>Eo;UdF05esg6kx#BtlIr+n5FO)O{eUX$M|@5dgfG zXabqblv4-l9Niv3)_Ve?yY@(J9kA(RuLs`Xsf42d4MwwqWbMyz@ZV#iz8K!*W--+ft>+w=0BT4Deub9Lrc`K_vN$$vku`H4VyZAoBOgcjh*KaG!_!cD z$lyj)AIM`-kJZy61{jk6aNE(1D3Eayvq@`XrWK0}urul@j9lZVC~W7yqq+=VzeBnE zzJAm3?MeOlRVDq|=8MMtF=@Oj#K|}$DRz4nKgL*~Z)MT#!GzHdn1J{cx3 z0t}@`}t2d4)|t34MT$F{xB&tbXTQwRnw z5hPA?h}^2aT|LXRe#EP-9e9n4+I)&5At}^}@f%4GDEf@(n8wp9YDHkh3l&c(91x~S z&;tBJw6K<<9+{dv6vJW+#qaOiX$IAyN|S7HJAXj(gk3t~8pB>7aaZT|s<5%SXUHK0 z6Pe1IQyru8WxH_&f3+$bM}92wB-O$-xnC+P&;v=Mz>QFkX!LejBwQeZght9KDYYq& z(fx$*orp%*aFTsvpo=}-bYH=wC@U&gTftsJwv*h4IeRoZwHD?_8b6$KvJ0enD!O$6 zzsH7nI?=&bSu*}&6@cStc#Oa$lg$c@vrwX|rhh7iGN zG}Neng)$1|ISz2|?M0q;fBzt_V-)?G>;@D>?DC3TxW@=i*@YS(5d@cx zWYrG-A&{@pl1IBpsccam4;scf9$zFr5aga~Mw~&1jDpqsj&(xf%Bf+BmOix*!3w9R z=IIU+42>hc`*~#?YvJ1ZX})syIgNcuK{AO=rpEw9(p;l9pBKXKAo$wrZoqjb2zm48 zVr&l1Jw=5Z^{Fp7`tE@5E=~4#DSgVWe5xOyzkqOy%fo4xE5SkKWO}XTXFmgKegBnz zt!4h_73j00^l*~CJaq0S2}4_<5*_qaZs@2orDJYv%`1c_w zK(`EZuC56icZecCe>W{ETZ;E^!MuPbkNmM*PK}C7q*5d~5r?U{xm~ai&LM5EPN8lF zi&-X9-smzvdwawDo}L=n8F?AjYkYmTgmXwWKT^*a+%difbom{!R;sGPx0ydV5UWS~ z+p_2naV~3DZ|s{<2iAEW;cmvt#ye=kGG1qu-=m{2!euho=)oP5hb4YdBcZQVb5%#N zOHxE@@=&h!dWi8fRPS^%5X(L&Kohy8s0GmzB&lOZGCvfs_~7S8z-Y%%mnP4$Wzmt$ zYhZ}P$`p0*d1DOOe}_th&etK;N>0QWmZXRs%Z%O|g?7fEKpv$ZDm|-F^zcIqN8w9< z0xk@iRVnv+&!;~pjBfWn7wUar3FpSx46k=BE*_3F!r6%?l!Mw^=#rZe8A=Wml$|ba z)ya>OvalFK^88FayQQ;#S#-AALg zcg?}%APb+3kuNZqa?-36DkC*CQV&kY2sTG}i5I!L0fM-FO|t@IU@BMaqv>PtwW_40 zmD#S8z2VR@IG?_|B%n%E`2v;ah!l{wRp?JY;_jM(bA>WZ?r0dm*L;52Zl!Y8rw5gj-aa z?F`PNUUUMXa9eFYUXgx^<6`LD^99OA-HxjOhyncIUCi6T$3< zE5jYZ^!-gbRmemQ7GuL&Y5K|ZFlfMBaM#l}5=!I7 zi=&4zf6RV$0mwvN!gd~h87(bBAVSsYe?(0~bNH$MW#Q>Z@sxm5$~+%ZHtqAssb>dh;@Zrae@yfSpG_CI2RWet81cedeLNVb_~9M>WU_mm)FZA zW8y^b=`g*oFQ4N!$2}l5`tdR%ecrxK;0t=55Icu!4lC~d8lQ9%et5k=JI%F?%)Lh( z<8!neP@{zuM+sOhEPEu%n9_c%8Lkw?wiXzxuii=u6+a+qA6ZRlDI$bcxo{AYj_8Yu zc!C;s+3QV$t8m%hiX+ad*Vk+>rv`Oo9h@Cw>&sCTAG~07cs9oGr79yA7sOr;C)T2b zQxrbs!~b!#uZ*GSqV3whzM`jq;aWRkN}CX?fyT$ei3wM)g7;Buc&`HG&w4%d|qzLrS-{%~gn=6SLRTT0`BX`e?V(}eTw3F2VjT#}A6_Z8qi-E2A%Od|-^HIMOXw$>0 z-d_Muwj^b)Zk|^9md`;^&*;+SXm$k*7z%1|L;0g(Vb>gRmK*_~q4@*fVj}kCo>t@c zPC_{~?^cO40xPzK3XYDNy4uE9J$uJLj&nGg%?aa~WfuE|wG|8wGJ_=_zs0!p2V;a?`yrF1ou;aaPoXQ30$MIF*vq4?=KkXqc1T6 zyV3w0&rPl9^o+ozZ4~^kCz=^1p^2m}JmW19cA^8L)JTTcI#R(J^TK>As4E1{4~z^1 zC=KE|dwl}`8^2fVMV~G$6ih}lL(QngCZ@00AUirLuv*INH z$&k3(DlIFU!g(0Li!;T+$Lv{P;wY_S(d(P*zwZ4IsfT)cZ%4XTgpj$OEUM9e4x5;z zsogfkb@2>k;iCYT>&W5?XHdcU-m2&69#A;w?~?CG4B!KTBuBjLvFY+0VQ_X4S#A0S z;mo4%F2_@gTieV;_cj*tigIh=TT5`nTQ% zE;7e=64-R;0=k%yl9^d1*;5sK7Ngb_(HF?&pqq{hsiuDq7XJU;ugHdNc3EE9`+ zm=t`LPLdDiDHZj!Pl%K7M?UN(fXHUg1*x*UMDAt}^8%F&F`5Q;PB-=<&fY1OhK8;r zZnVBHnsh{>!eR6%j!q^Xct{Wu)4s+j6&#XU_Kj@9$dM2 z0u1p9vruZpuRYd@N9~Ko)h5QBtxZVDsH0t$M%EfGAmb=7M&g^%4%zkw&mEuk;k_qi zEJ5Hz=vux|zI>f!(Q3RfWA1Ax^&^gdxg#Puz*5Co_kL>->qhxKQmfVpP^^-g&{)iZ z!D#oYYWQtnS*q!Y47&ZZhEiG8Q&R0 z455Qz`h$`FWESp~ubnFh`=kAIrCM<>qQyeFU278@bC(qA&dG@Pxyh4Bnlu*8%W$W- z*OZjiKB+Fi12@%LNS*P9eKieCKf=9i?LpG`J6uqyn z%KjT@DE}L1Y%P8-N(R%@xBU72TlRO~N^$EO8mCmq^77c&c^-JH*e7g)Mjl*DG$-ZI zHoAI}%&e?g^^uj|lK&7?5YfjkUo~X{f(o$Czv0TvRQceCB4cQj={P+IEkDB9RmTQJjldDzC?R>G*#uX)R-5ECp<)lYRdejfv~}L{V42@ zF4HdR8OSrc0W35<*G+`hsYQiKonqqV>-ZqT&xI7&cY;gGt*kp5aB?3Lx@90u@wb9Bws#f)-=8zyFF8tRyydtp2&8h z?4>g|fEM12_&r(c9*&lMNdV)yloMnpTeO_`jzIdznfs0S?C3ngH>2>7F?EoP5$WC> zY#;g@_OO-(ZqdWLhFT)eu3TZ*VO=j$Q8Rc$56c`dFkw*}V4tr38dj1mK#QlV5t*X* zWi4xTR29M~5#s;OU65t^K2#ksH%F|&2I^Ew;5Op4Y5NkOukP<4^N51auHGIrr62er z_VzFzJ$m$6e*sqlfjGI?YrpF!WZv$Gf-fYicaZRagmyY01nS+C!-w97$P+pO&IlN z7^8qDrqDpjcL+ruhwzL$Y#2hYHheSY5*+J*fsAY?7x09hu5F$Qv>I+Gnac9*MG=gD zYTmNvRe@!=++X~)%#$~%VTSv{sLCfU*Z4IN9J1NC(!DZFCGPIOR@2f+9&bi=B&t6l zevK1jTi_uY%T{GycD6yQ|EPyxp@Fjos?XABG>}g~XV?1f(J-vz$?5*f+x_cl8Y&o<1iuPbskUEXmmHF%3k9G;1!L5p48K=OlsqzDd@nA!95_U#>FZx4SRI(cd0 z$GUbN_$g-U{6Pvnu`j3I)W#ewO#{ZEbW?-oq-69qa;i3Gcz^q*EYm z3s!v4MgR&#!~=gN2&;pMm}%*ab)`Vksl!M*o6bK4@|WAm5)uz>9fKmJr`6Bl^YhHW z6poB|j|;;?RU?kQu<=M~+$K}Nh9}q-Xb91&oorb&mbA71Aw&eYC1v7flh8B1(|1)i z%XmK#)-7PWf$28Skl~O*pw?QEt;MgE_>-3t7Z)J{U2E!V9%{oe0hw6pw#DiReJ9uoxbEBjKcagMIXFUrFAWD)O#R;%dR1Y)Y6{aC(}2U z(gCLmm#nkDXIGfEF2a74OjZ)kjxgojTl&t&dC#uY)q$d<<{cw>(zpaoEH(ueHIbYC z>MMhnGM=S3JudmK=g<|xh5ZHGc-adCAvbd0kNftjC&Tep64}-GK`^t2o89t6AkT=C z7PSYBLY-_sRlElVNLic6`RI_7mcpjKt|^-JYtg%pg*Q}L{{B~!cc(8mT7m&@Nhh3a z@Np|){)6EFX=9ffqNgvcHqXY2Ow1s%8Jl+}T5#`c2G<7g%_V}4<|!v!%y8@Yjldu0XjWG*Jhcw~u1yV+|GjiD zUC3*g``x+mi$RBo2q;Vuh-zySNmD9qa{`m@U(@Bsgrj^OUh6JEk|HON2_93WfBx>z z@yow|BEW_wIg6`;mf)JL4LCX&hpLof0$M5kk2nTj(U$%L*I}>Eisr;BcuD#LBorl+)l$o{D5bC)|_-}tLYl@ZBv2KaFW`}a`)gxxyPy@Y_5^O_VOndqP$JD9m%IUPgqSgOZZXs9R z+qLQYCcG~iETg^RV=*Gt{`fFeDcXI+>Z@=3X{aUN-a0hJl@;hOs%%VFQf;=jvISs# z1c5(JgkA_xKkdAOgZva5n=0H$d7BnL-j8nIa?F58)L{@JS)Q;+&4Ip#fjT4=El?qK zJN#;P_}nc+$b(D0(|Dt|^iAzd0W(xZ7^)to5Bxb*ht%^!OFxph^*)Gx!a+tAVqNjQ zdAwBNYNry5+eMR(HDc~t5_Ekj;AqBAS7@slt{(>-2ivdnpJ|ZPfldm(>3bRp&iM1f zKm}|FfBAkr^lx}~T%j2#Sb_%412kqk>kRHyK^)V)VPo6 z<-~K`gXZhiYCS#<)lR}=O@7J(GH3>+kx=g>y#jCV;QT`q|E?DYOm7c!ahn;fcDX(3 z&VIu>mRC&oe_RqKZjW$fQC51uVlg> z2R{qrCt|DJwh{j^7DtMQizDoau)bGur1DOHW(aK!^NBnLi&oXcM2C3y$8aK;N8iU%ENx|)SKHOv6`F~qZpoaJ(~@ql8%NXeWaj-yLO{Ft+Uox0PKxvW z`?Prl{P`Il*0$Vh_hJq?Qm0 zd37pz=h!rYY& z@)mH7=hiRVRzBK!yPz_87pc!NgulGLqF`6q#H zhqjOZV9l5ruCT4}SkS&JgH_dH*Yjv#)%k74wn7{fGg&uqx95f8#wmHAlY>NWVO*a& zLqcI${#~6d6HhbKsu>nK%v*Y-l{f}K+O~q1Js#_I8WdIwH8)tmP^i{^C_vDY2NRIg zemA*TKZmzytz;6Ae(@>_zJOTC@lfVrI_jaKj%52t8T zFDl=`&O$DJNiJ+bcG8k^#M`dnsy1>AmgGDV+AZZ~))^`v9PJp2*U`mM-(mvapUU1V zd$-!SWd(`I%0H8bJQ&YkZX&LIrnppxv00THR-DPrhL!Fd{VC{9vHi*Cor!uH_v0r% zCtit&e8z~ummdPuu2F2N*FN&zw5YwqY61(I@# z{@K-b^cU#v&!zr>@M*fUt8_MCSbust$4fWq1qTD`$nE^|oC>BXV$R35G&J9E()d4_ zsTwQ@YY4r6nznh*lV>q-qNc2dM$-etTmg?9Gkj)a25(qF*Qh!8cTe^d5gaQ_zF;e_ zG*8QQkn0qmg$zlF95JY|)2Jcg{r=7CaKz8*?bFwjhg@~IBu|g@*3vi=XE+k)vMWY# zqP1BrzDsY+R?_Pg(s~EkGe@Y2vH>1NU6nxB*R!*bh zg=^kcr<>Wbo5z~G0&IxUWA)eEx~S*=B=pG(QWQz^B+Z;Bv;IOI&4I^6x5Ms<{<*&f zh4GN4=tYhYAu@fYQaiaA!h{vNVCmv2{nY)ayZzb7{E5h;hnPS&E1GOuLw@;s6!fV0v}N^ZUE+gKM^%p z%3L75>U{SRWjZNIJXfn)i^NBdRKI4Xhj{7J(5HB1oVia=+6b#w%?-EOmCn?L2=!P{ z)k_>rMPP1DT8VJZ)*^O!`-i6CB&fTJYK=Zk-l`C{d0*@Y`?Q?uv#wRq8L=wt8KYnLNqY{W{=&l@m^oSYE&OtxE=;=C_<$yw4QBg6DxHym| z*rxIH0$n4ZFya>5nVWNpy^ z?#YwoH+04vk=i80`Ngdc{M5ENIW={_zE1O$gvWbv%U!n=QZHGXc%myNVh(Y)Oy?TN zZLk7u8EZQeNM5cWgqphkfi5!DRV&juFvFnKHANVy_ulFHvf-Aw|9U+6O6TPXTG%~X zE7cW|_*N=%^+T*DMp)gbyVwpoqTeoaf? za8**`Qz8PohdV8*$r1&5pnz}@ zhZ-iZ=(l7MlOkf@qxft_qqtm&D^|ldkS}n$HQP3SI5^b3n&VhN6g}~)DT*{DE~P_| zGuAnz2NIDxL(PWnrTtCY@4Kv!m&&o|=Mt{KDe+`2R^8bq`EI|f; zCWNnUuV-%%T1M?EJg?M$FuU0^`To7-BHOAK;GQYtxy>voW% zg(tVcFXP3cW*JJkow6%RI4glH8-zB8LVfJs3SkF#&3t{s%LzFOE~I=;5k3|ILD6u z9y>O<{XP|bg09Js{!J4$pe%p1tU}uX=?SlrKAY}&1g%z5(K}1*jFEs z#;XR>f1u(eWJLAS--^J6mgut|H?2 z?Vj`7h~@(0SX@9@#x7o*oq|NZZT-M1YhM;AjO$Q*-;}O?h&+P|+!HN28z+4wK_4Tp zWuKf`X8s(y6|{V1;{*A&GsfXkf6uR~e;+j+`u}u5p`NoFp6_=K$%p;@fBr7$22btX zagTB9F~Dor-P7}LIvSi3;s?Dpw=h_@sRjpP003e_UfB$;#;B|B_0;#hDHgcCRC0`b z5Oto1iLk91^L6o0H7_b-O|_j7 zHZE#mT&1wu{Q7v^!O?H*<68F86N~Lw4&AUf50$a7>;_N~($Xy~tYr|!!UvlSt2}!y ztA$sytII{Q+@{Jib!?qpup~E0z4YcJ}w&i|OI*X9F4} zvACQ26C|_5G)F`+kqL?W-*sjSmLDNur|0o5(^6IHh}%8lip+c14pUc4=`yCK)W<}D zAdBqcRmaDd3gP!lOk-Bc6r$u|hBIbhsh2b+vgsInWnHd26Lxgv-}v*{Q1vC z*Tseq-SM#yM_AgR=_ASaRTkksc!(h{eMVQ!@Sk+4ZiYEbJ%b|E=4;2A!LUDw2_2)@&)b5L?FbSCV9a}JXDhfXRGc`B- zS8UZ6r52U;QGM8p=MSE>tISZlV$>qzkQWedfFkQ4=oA$6`oK4Cw56$O*sD<~Q_?@c zpAt_Mc$cS3RSV~bFk?QttCTD#tcE8OjIJ(5>n3w<8QdAS7kovphF1Lg;HR8Z;Sdxx z1Bzd&;;H;B!=vRhQ_DCeCm+$m9p7i)<3s0ES4)G^hWpHj^OJkRqRd7XK0oO5KF1WZ z?s~tQ&m+j}%IH(wQ~)IoMMEc0e?AqQSWG zD|tqTv;3PN3wd`h=LCo0gQus{?P}>hmeI4@HaLL3#;*6XxzFk2r{%5RKXX5Iz06v@_r zx{18mHes1|kz}7blVR(%cycY?oK(-uCA2P=xIj4SEj85vJl|BxKs{ifd`CAa8D*KxV%-`P(aYrZ-=hrhip#(2(fBhlW*``HCRgU`^ zMTg+kr_j|jkBEn>ka5O{x|oufLQ7>28_rj*72g;uM$#kS$m#d~N7 za&-CHW&yGxqMpm7>#1$DZOtq?j$BTK8cT{Kel()PkM4``@OVVr$%k%N>N;;)I@&YP zQGglF7`|!KSA~Nenf3hMek%zN<7V%uR5IZ}-~6}$d827Gw(rkIYb9Q8t5xIf*;H00 zR&n27aEd{V{T&pXAw&?y@OpWbDb#Xr^8BKj*J_C3`@E{1T2Ck6dQ>-WUcB?05Hmyf z_h{OKu(+xfIY_IqhV``V4 z^FaGkCPETApxqRcnnQ#c@;u?(b4}7zJDv;IG|2&8~0-eq;x;k*{CD z$@TPV-yVEora`Q$@WmMiXbzIyY?-DLq$^}Be-})ZK~BzLpHU8ro)XuUBtUEtn$nz6 zt$d3Ro)vd)$|yg@C+UAfqLt$$f56C6Q4P|#>Xg#;9kwcr7-L z9ydJQ-ojYKRE&yM*-Ax}wkfaxxi~LMF;16qD^ku4k8?m6{}9)#fU$fV3A}>=7c%QX zN0{LQ_nZ|qU1(OWni*xQ(6`K${=~v<`}=kc8Q3Mr-%Ot$G1k+Ci+b+hbcPM1JSFl_ z#GZY|RQBzuFnPy8%fAIntW;hO7cS%t#|Oq=V?r3-ODu! z4%zNP;#Z{SnrTlODJ-{<7E|)>Nv@AwRw(=&%)(&QGS{p9yBSOCHn2nDw-oI`XRcu$ zPGg!|c5mWNiXtI+0NE?^kzs9 zi^k@2aVr+6#+N5YxV%*^WurvELGNXZHsHjxHMLtmC?&a?iF!}Lf(&>VSgTXol&fmVdr#n)))~L^e0$QPn zWl*>C@e(dC!!&*0;bRa+4k6RE_8;WPIqo%4la0fG z4RM1dMW;aj8*8OE?{gm`>2ZcWCG0;b^-+qF)iKO#scjv4caDusltE}`^?8Mpr@%An z>Mbez=UAS)scV=_jriUoEyYs63uKzjm(z0$$&0yJl^y#>3FoKF5A@X%V1ou2*aK&C zDTB>r92ygUORt*yddGhh4RlLd&38#6g6|_s;c^G)#l+P1VLa+U4Z%G}d0Y$Y3Hm8n zxYjpyKj7Hw&-wJStW-s_R-+Xb+2VYT1S7k&0#?sS#D_e&=MofkJdr=xQ54wWF&V9k z%#DE<3LFu>;?De{5tE{ z-RT~?vdiO`!32HmdSQH7Hom%H3AMDc+C#WLgX7$TWD(XBX5LosFWC)5m{0!7d7^k) z28?-%Bw>&!$;~zstIfB^J>xL3H$s}k#L`p+N?}QyI82*%gV4AXVzMDz(@j0|aJcE= zcof>AnArFk%6zO7Kjk|YQc?zUP}Ho?l5cJ!P}X9(pEAz)R+HG4M*#~C`QtkK(YQOF zbX(Bc?vQZ$=E`wLF+`6%2>q0{^z?e#Z?s9y>-zb{436ymrqAU!;thmmpME)hP0Y&o z>`06O^{iV8JQ4Xa{V$GI+FszAE?1U%T%-s@%wNg*eo>l-le0KNx zesC|=J$O~0&oj}2W?_`#hQ*6n)BZNAUSIVUq@lKKWJ>^9(&kWQ;Jdecxz`bNL$khd zBUN}ZZ{0U~6HUNA85co_{xyd+Plc&b?g)(Ja>Obw?5 zO%}j+oc>z%Z0_w%^s%j19VB97s{}3>%y1Nq>hF^4SEuP~IdgwqQPw{Hx$35x{_J5V zugh-Dt@anxz0LR{MRCSb=LhU{O}%YXHvDq1DbP6A`E(cixbF`y=3pog1f~s@R zptDN>a19sM3K!7I+T1LuAEG3QQmwA~n!`O=we1Y?tEygv9NS$M7uC2itZ>ySY9w=L zVAj?`c&K!c;<=iCkJ!|$uPij6n+LxZSEw7-y9elB9>1;QBN%UEO)VBsP)8UXV<6r= z3MFoi-*6Wp(btGDZ0i2d;h&g%LtFa3>!rjZB;=F|>Shg0BtD!*6q zYV}~`0m4Y=58KbmxFO%#i&@yhP~|RNvQB)`6jd{m9+|5RwC~S< zV9l4>N2J6k**21v6zeBd3)!$F8i;StaK5P}C)El~NwaXBsIV(C@FL%Skn*ZlkBQLN zTq93}kzvU!iGbh)Ld>HVyK{14*0`_}WWvD{;q2;)^@{ruh-1&slSGxGC_q@#Im|Nk zGg(GQD?#!a05!pn`AnJs#)S@|CXIjgzBZh3)&Ap@3W+Sf-Qv65>i=U&uk=^*{c-tO z-Z?H^mBiRz6>>$;QPb)IN*o;(u0{SP9dw+^j7-yNy#Ti2Mc_3R@L<&k7 zN>$5&Ok@gUlrkLMdgj&89Z$7TlbnqFcz5eAc}JFNV>JWsA3H>k!iCL=5c603L+xmH zVNb)=R$_ila|)}+EWc}(^Wu&QZpUN7*@`~7>GE_$@nPBsf)JTomEqFkcgXq1*i4%- zP$N4k0O);c-gUDaeKbCi6~%3n?xsX{o)4ei^7{9B>f6&#ryWX*lL}U=f4=ohD3v%s zg7A(cs5uO)x)(OXG@XQ~52@aGGR@}=rZXq~Dk!RFT%g|Hf6cME!fQc6bj!Q7UxZ8z zWUw|vsOh-6mFa(Te{wPriDO}I&DN4x_QaGptj!i7_bOX!TyyZ9oN;i}nxff84)HN{ zntYfsF^oFmV&lPLs3vg_sb+kb(m|(_4~t2saT@m{^|S+|1wlG4#7 zjQ=INpLt!a=6<@FO}Fkc8vfH&RP;b)aNaa@5zHZ!&WefKAk7a#pGC1osjg|~1AmTv zp7|qIRyao}omx1IjQqoU2pJukXcQuq4oJ%szRqxO)(=V%6>ew%cD18fsUJ32MRv@z znb3_a?Z0vgYe4voV%st^!-^tfs+~BRfIP&B5c+#AgSe*+H_+fgAUq6EG2gO!n@D>DOu}?uaFA-vshmc8? zaRs)A)|nWGN8b^BZQTkh^0-`4qla#Bhl z@#0c~X8hHXn5v<2s7PkX8;*!=HLi--EmsLgVA#@c!+V`S>iy_$wq9|q z-!7ONT`M?+!kd{T)0EPoSfJJps;;Z?ba#SmPIwnEZ9<;?;RU|T(pEdse8GIpsv1Gu zhU=H#dQIN5n!Q-N_*3Xp^L5JlR#J2N$4;Ydr=q}{PV+c8OH4!=*XuC!a8VB;R$Oy_ z8?<&C1g5)O3g0)J_;!|A-;}{}8%jdjd$|#6a?swD-KSmN`WKoy`+R-XHQFb`5=NfS ztuHWn1D@M1qW$oH=~?Af^X%E3&O^qH=M&UwJfw+&w&K*AL~krVJ2quAqmai-#1E$t z0w%HItJ%OI@wRr;L({2!Q)eQU5vqe!zd&{@yJagq^(v;#( zRgb4=x2?*=h$z1|Q)yg+3D?y8ud699@BUfDe8Hf>2R024 z1+GB@L*}D^n8Wod35A+DJ-e81*{bjqj;UY1h*ARjli7T!Z)=^gbUUPjVLzKjF$O4$ z1&-CQ6_iDxj{>yj$k2(--s?)?SdE?Kt-Pfib0sakv9zMYUtV3?x;XOm2{}ZQ%ch)i zC>k(zt8WZvJk&h3$?!2ZL)LExnzeW(>EAb&basSg;%io9v(~0*bP1aud_dpv2Ca}$ znyPP;+Q^K$wEa1f{o3(xe-7vw89f$y4r&lu3J4bI0g?u^YX&B5ZwuA&j6WSFxPF%_ zeK|qJ7xFdPB;fNuHuBrM{~FBc?l}yy$6M#aaXaEY?=T9U5S^^GnAeNTN;$Wg>t!09 zP1Bz*G`z?FEnf*4RWglMS#ZbLw%L`f9u{AB0=$9ZL|f_C;Nmd4Ilwr=o+W0%#Ge5sA7bK^WSKi`+88zK&IAJfI8ZH3;afW-ZH+pYGLy>QPtY>wTFq&hPZpO$@q;nj`xr=X1{5+HvmkHgaB@-6D z5o7#yDmqRdqW~RxPf7d{bcS+9s5M5)oy1ZaP&beXj`0ttz)G=pq5}FaS-$rN#Q#xE z=J*^}Yd`#}h+$HA@xImPkB(N0c_vBeb$bIV-p-aj4Q~R=Xb(SyI&?DZaAICz+W91) zhWVK8kK=^vE0|@0wx6eMh@j*E5D@x8Tpm;~I%9SGx{$A$OVx7K1!h(!A^X_IQr(Ju z?QX?m?NZ1y74OfT)W4b?)9;r=|GchL<6-pcn~TTN*X_m`l@B*PYaZ8f5>uZK=YjJi zW_Z{-U~TPu`<4Lu`mCNEuz(lU^s`>X7t@xnc_12`=W{gwi8Yw%yJC3{%HYS35`2A^ z(y9dX29Ifae+PvcD-<|J5Q@u4GEUpG)SV|uE}Qm$b<=!xbec`^#(ICdp?BhtuWxJ( znSg)#nO~Y3h3$I?L2OMoSu}!gdPSB3x_MGC7C>O=ZJ01B{Yt0bk2v4Onhn@1%Y`@abmZYMS7aTOTzV!Twzb`XY3l0p=gf6 zSI(yK* zFy^Xhc3;uctD$;k)JhQ8xF}dyC=h^uDl&R;EMTnb67CR2{4R(SR_zwuprLVGefF6VQDIp2N1cK_@#_S&_oW=+un zSzR8@uCD`#6vcaaPG>2$TpJ9V&Vf^z!SBFSwG^3}ovks$peZxK(ph*4&(vEQ>vWA& z+)czLb&!uu81nV8)o2j6k!CQyd`G+d3Ts(QY`}f%>`k#%F94JS;KQ+?U*OihG$YbZCF>WfoT5jA$xK z#265D&bFzmy_h*ZLX2sOsw+%B<18IS0T_t*RE0aewzRvObM#`XoQpBq@P42#7y#pD zr(656lh-#R?STF={vqN0gbD%MHC8G$<$CUVe7YK@89+E zaUR??8*2auAlGO&F@5{B6r7gZGnNH)?46kD z>7BNfHf9fW0Ts>iYxQEO(vwSLHw~B2-b5zX04T=*h!>U;*A#;$Ns{<*$d3z-m~-zk zv$D@u&>L%*mbfJqpwz(ZbuThI&hWl{@p1)8%J-Q1)e&fhQYo_PG1RxPF`MG6pV>Z0 zh8w3PoT)~n$dZP};!<&%g+=w{BpzpNlQ^Yo*AsHv(i=;0@!_M<)sGqVdE7AYo5{Qg zZ3t|R6ltf)#b`4_#76ED{M?zFys#ltdr2EWU*f*9zvO|gNJ!z@*}xU?#HnD5H#9X# z+NdB|{Q|g++CM|E=d0>iQi&~OS?;^s)aI?0v!N!%{~^>qh`jL$zwS|?m(JX5?5P|AsvnX>nvJmrvl5t$*#^ZZ`=1Bo!mG3VMJmb7*y$6 zy+kuo2929Jucr}sSso$YYPlqg~$ zZU$BpqiugXIlqo{gCfi+c#o%eriI&bEp&dzN) zh!5?WOFj{r@8*}y0jlOjqtZ)7sm3k@QlsJ#)<)koxdSc{^bTH%yO zO_=(7oOLTdoswRGnOPj^8BH=r0}Y&D29Qp<*(4KnqmkM*h;Z*umU5>yx#P*96EZ0M ziI#tOw|gxw<1CS3$pOi|eIoF<5ZR9*dsRaz;S&%lt7YIMWfDi~Zl>b;nD1$lJDfI` zip3DIJg3)`n5=~*N<*Y<4WQJC9_-O5p9Qg_a*$+gq?M7IGg_6-c-F<^$&=w_*9`7Yd}4O#}&&vXCoD1EzG= zP?DvIq(CH_(pm99?n5&%w$C*L5hj8;>M07!v1GSAudAQGKu^Pe_XUtW_J4U+-h#M1 zo2z?WTkQ{Kq%yJ)>|D+vF;)5s{#|nJahd4JcXq}eoI|{Qa8n8_U4iQ22HIy+_fN;u z1{VYc>67^OGv#qOCPGpMNtoYvzc-M>jg0c&*X$kC7#I>Ot<+f$w}`vOE~XNOvBRJ8 zJGwi|8}PN%5#Q`GusGkwKpnwS(tfUN_P3*8Iqe3Gq^FYry515{EyKXLdaAC3tSp*g z+*fK$V(MD55|qK3dzD2)1+KY`^BTi4BRB#b*}0@HP^AOHYW#s$HO}I7dLT*!Z^Q?Z zbChmO*S;Av{%D3sUm38fjFl`$y8%O42;xJJq(``qt|vsg&Aw_80D~ z`bqYtTUpC))OzVJ5@*3?h^JUg?^plQ^IIpn#$<^gV7w=*N~Jjr#xKD~!-3Vo_q zu{d4%!n%if;g~ffs$s4d>>Yq1qtjz1NXlA?SRFU*$vx2~On5VX4;6N0$|!qo3&jn& z*rSd#Q&zJVr&D@=xa87QmLZ{sM0tRs2E$!b_70quPLnv%iuZ^0<2{Az8oVtWnH8X;l&fi!pZ?kzOm&07HxjQF>HJq!(tTTs?&0@O?7YIroH?)&OghNUW8y=7FgPX9?6vWn`aKo^0mDtNa@N>{F5~<1{P8{sEJ#Lr46vASji&AJPNh{06&EHhq-M>q-BXx>{9?mCSfNKT%v5aC8$c}C8-$x~#Qfs6 zy?>mnbmUZRw7AeMebiqGc6<(6dpXMzndo`Bd|h<-I`fZR zj7a0%@Z0|2o zeU_un&ApZ}D)$Na;1eVzDtTFVT-xC6#1LZ%+u*1`r2V;>>*lCI>09vp5|$RZ_<~5l zhq+2D!jb@$C9E1zx()joHy9D2Db`x`Bt^}%V4wsgCm-o`DN2DH_6o5c65b*)+XyGx z6}|FhpTi^fr7!B=GT5{QKS4%a2KmY?Y|% z9sY6kxlW#rXj~fGHnv{V-frWd1;IQePd`pGE1@dl3-efyWt)pXi5&FWm7?0;bkj|M z@Y;*j6Y$)cvfuZ2k(V%4_Y1wePPJZxdY&%@y(IpT1(1^byHoo8n3`@tbPXXRt{0>y zIR6OOi)9Cp-xZ;r6E=&JAOP=mns;*T%82}>(rno$dkuQa-1<|qwIA}y(A-=I$lz!^ z=4zAn>z=y|X&Cl`+}yvV=-a>WTQi6R0;pscoP8pG0;vTz1AFp_qB z!yue7H%K)JlOFMu-WdVs2~eU%-^yymicwK7^=%dP%1&EKwl9+;BsBhne=TznsM74D7=v+31|$6lib{byhN{o_=8c1=4U5I^rj1B?c25RVyU0^=;w0CU1P<&w3* zmLga2&g}j0fqU%CYgWuh=1s6&k&8tXw#gLozlRS2Jvc-<@v@GyaFh0{3e22o-zm_l zn{$@ck1Z(agUk42GACm#Hj;**e&juTVZ|1*v@T-0J5&N#HT0V@4aHgK5PiM`G`b`l z;1oAFCG?%Q#>A>D)owe_Um!$|GH1^|QyHr(V2+;quJ~&C?uSVibH&Wjqip~i(D2mp zI+IHqJEfXizG|vHOfsiR_ z^B=i|B-z~_Syxx##=^ZS!-C+2>^97YI0p2x$Q9S9>+)^L0AjT^t^_V?coH4kWN81o#8wYlk9#QvCB)njsn&H~%yr zrvJmxwmvS4v`?IG`Hm|1^B+3Nj)z$05qa3cvbktnjis_?C_nzn`_rf@;P-d=jVKz4 zC$}p?uWLd-)l64Rn2xQJ578i5OVdB%eb=~Fuy@C z0SUK#A7@jYdB$mi4~r3~QLZ>tb_Hr0n+5OWD8R`OD@zoasamB!RES9pjoebWp5ao2 z2GDc6l{U#y)5S^B^~w|ujC}iv9|Fl#M9KBP0FJaeIQ_YLuh+rRV2p{VLd%wqh1YuM zJ89=w&#(O+AAD0_2W*$bdE^{Sj8zjC4MC%u#p0K=K~)+?m;%Qm1uFHH7jIAfyr@?b zaP{Ycbv1ReLOijknG578R=vvUMCKni`C7|A>*$0=u;|JJ~c1 zr%T#;GGmDlF^oyqU=D~8t&JTvqGenuMNr|$e+ZA=51Ljj>_v=bTW|Nkd%ml?eW4W& zQ6r!ok*U_MN}av2iZS)Q9u_aAuH@Oh;BHCr^pLq3ENRIKEsvVWuy;+tp%vyD(4?`~ zGVUzA>HpD^EHlFTSv5C@Lsi`E2s2}%yn*TWhdP&wV2=x?46sT$sakG!Q59AKThPk8 z40{)!mcd1uA7Bn<*p8s+(>|wSn5e$^yYlV&s;6>84Mf!;I0uAk_81S`b|l^0TZfmJ zo*_N|3%7p|v^a;b|C?O4Fms<1U^icD;yj;dYYQ|Gq%!MF(oM6RL2Ur@YiX;iZ#$NQ zU;J)3lB>8b{r7z7i5_28@W>aCX!Hoq;+)+dS_v8t9h;3Nw2v#PmqT~H8|AxbN4Xr9 zjcf}QR1!o)@F7|S)Q;owV-J@G++{*Xj=Cz)!Y6WYkfrt9{PS;WeNDkl_bX)rbor7# zRW4Lzj!tfs2h*v_a!ZMDMmcb@bWlEAh%_DRuQ%Z@7*|0>qDS(;TF&EdZ57r$|vHeAj zHR%#_TGo;CH zB_e-aUe7g)Bimd|0hiJ_8IZK2z&7QFLZ`MHkcasJ9vYtzCDQ7i~tz~*Eu-+ z0e)a5dggT{Z+~&X<7w_wcmH%-?FOFJP1%8aEeuXAPxx0d*z@Mlf`kKSI$<*Hj+% zMBZp_N!a?E`7+vvgvsj!t^Rq};!>yA{=3zmblkB1FFLXkE=`|2kDR7y1O}zd5vXl~ zsA*)dL2DG)vcY1<@gK(1(U2kKJej6Q0kJGN4b6F$I6neP0e=gQpHq#>Fkms8*UV~GZ;j=IlQB;r;QV6)Yf zgq{z^G=&y)PA@j2UxLz_m9+M;&0YBkqqBedy*NicUdF{F0%vt{=2kz{NB#s=yO_}v z<_6Y)e8;TNG2GqTTRlSRW|&rt230z*DT^?+WQ01S!Urxdjao~|VP8a@*s~iyj(Bqi zsWx;zyfn{38FQT)twxgP#TnX**eTG^ z|N7eavi7#pqx@fZ;16)jv0u;pcvLXmaDCrYb zMMxg@{9Y>!AMsYMt58lNtn>0jcQA&j>q{af%J9Ahz;;d7QUm4D1?JDO5+p~a!dM~2 z-=D2CWjcPF45*!YPdykgt0P4e5mX4$(S~ZqHulDidfP^!@s6$kQRT9%w<)KZKS~o& zp(FrssmFs<2*@@^-l=Y(E*5L2Xv;V{mG=bK+QG@Xhn8M&H4X4l!d+fb7&UZiad6&e z9saSdS#xn{+0gRhr0zX1wak+9Oe{Y3>*QfYpd=dU$-GpYqsRWPcDd-S9`a3Tf7#wT*GgTH(1ZrZ$QQT>*0|B=>qkwTQk;@^m1h%) z&)vzfkZl*B_JfQhZ)>*k_v#e@8ZNAnX;m9n$z4YXco`5k?Xs4lheY%d0rzH_RonsKV$nm$;bZ` z-ssUYe({v8kEp22)`DB7TsrDJ%_Hm?cV2ny#r=O=fFzBD6-*A2bjzKS9W4tzj*Io@ z05OX;=QgFMV>a4bj`1X#$oGgWUE?nPhh^Ik#Z1c3q!RmNET#P47s`{D^PG#c zsR01wiuZt71jZj9gk)Y%kLcPW7uQka5vcrJF zbFm6ZSI!uE(m^UK{BB!~6~IRoT7k|7JI8WsPSmM)EP;(&CY)jok2%uX@zogbrLN?f z-#KkaCK?2L$3S#y?2Q=r_bU}ml2;j<3W%--n z6s{6zaVYB-ye?tPlcr0?2&`@u3AH6)@(UwjS5XWwl}b&_&%N2oKnR_VZBue?)2@D5 zD#9)~Gk-7AyslE}zC-D^=n^;J#x{>ovK)32Wl!ct(8sos){F(*%G#fN>jxPOdW`yG z)?UN;`0;3rv{5qIBKoSR4?llA5zdo6qb~cO&_12FZtd{A&TLs!BX-_Y^o+(pf^8gL zS!X)k{s}6Ao`cB$wUxNJe-}tw{T?V-eE;xM#(zNxj4B?sMuVP(R)_1ys?U3`X+7gz zb-pM%a57pd_JnLF09@FacYk5MwNwl~x70|;(K=A))Ge_^4DzKpYib}>A;}YD zK28HnR8OStLhQFrD=DersBJT~a!VW9^!bRyC*3e3m?$>CQYSDfxt$zL#{C|e%5+DH z1%BtOJxbDQm8XklgDWZeAj_SHiF=uI!QZT~v1(0S;R|<}7$eD$yj5;cS-E?59KLdg ztefi84GmdtSZz9qSvX0&_sA%=W_D0u4Ut`n;Fg2T&q9%96-u>Itai0D8)Z@v7~D3e zzX6yZP8MMe*(J>Moz^r_U3M0`Y>vUaF6cdAbxj3y8dX$|*uxRjWg3u_VcgYSW}n%p z3*t;8*LeA~3dO>D4k=ZT?+Jr|kC$H_%j>YnPE@PNzKj1AIwB%V!}ATsbp?-q`tn=< zRM}?Ze~m7RMp`BQVavP=y{920(QFELMYN8n$EUEHe=gs*MEGrN2+gx47`lbtt|!pgq|NRjlV@t7+~X>o~c&VA{|?lepeHs)Fb*#ZK}7~B#C@`P|u=60HUIR?dc&Dx8i3}m(w zSpS;#+fU&m=eNR~Y79*ugOa73?RlHQ@g*QRXE%U`n25dK)>$H+8!^bj-+2E1X1foz zHZQlq&7fYtrVZ-!Yu*n0@IL26pQyi>!V*Slk=ZJ1?2kB(O_N!)awNfJQKF;?{&%d1 zK_yDn%Eip56*@PrqiYDFV66%g?9es&)%vFJN+SFV&bx>jU=$7d=hsg>{RC5a(^_n3;$8IY$1 z-O~|fW~TOP>|a?PsXyxfU@Oy|5VD^BPp@e#4Mp938!T@WWPf+k+8{d3*wj|se^oJ+dV z?EA1Gm=fkTnpzs3BPWk+7mrB(2mBT-A==w9l<`G2QE&>$hN7}9Nus^stMTt*&q+PXJO95czF7sbA^%+^5e$WA))_JV1=Zl=#J1Q~jZ{fh+p#)HMT13=MFee-$MqeMNs^qz zritBdH2IJtLf^8|uY|&wyQOH!aKR#`TryOWT|raAlZ!r5lC|jxA1%U#jaGuj842pG z&S_jm5r2g6RlD`nFqOt!tFQr;<~nzsv#|XBxqD?PgovYLBs}(A5(0 z+gjl&_lKeBX<{F%jB9V*G91Htmv7X35&Y2z1B%1boWN&e#~(%>`~&(cWrobNYhSBp zj(FKva}!APjlZ`_wDhP5t%ymRPLq+|E_!T9RiTW9m~fY%+T3G2w7Y+YCv<;6+4Onh zczNo1%D6le;s3Wr@cb(umx&YMHhi6MxaoPVdP|>wd%i3h=UQtwRyC6q4z~^l=pe>% z6AW8I-Nc3|hxc*@a8T+AOE|k*P@Ba%3o31*xgWPx!N!4NbB-57rU(R^;A+5{N>jo8 zdvhEL(D+>-#4~^yFL<76e27@%)1$ryMZU8$imR$;^DqO&aj`8@Jr_-rq$n|##8p-c zJ|tgUQ?>Yg?(D*Z^kTrAkwHps3u5Xm$8Vp=F=!FZd@>>6kfTY&R+0#lrAD=_EaBoG zSaKt-)M`?NJ96p^q(rY1!yE)w$)Q&KW>N!0pe+Kqkal^-6Fqy`8aRtfacTJJKl#Yo zQPEXVikcC_sXlH)j7<%!Zukg+G$@jZg`$ZlRPt=`_c~S)=$8grZV-CT?6`K)ZoUO> zG%6J4-=Ut@M6IfnpA*GtXUB-u3Q;6!=BkRgf9d$`zM3jTeM}+@ zW)ch0F4;BE|HOu3Q{^h+xl~27xrh@K4Y3vPV=Jq28E-akzmJdm>3#ps#U~KVq`TgO zahg~FTH53wJV^djyB!9<;AZ8X72(tU_!An(bK!djdA`}_21pr)IWFoDa#IK{&Z zsfP9h$jEAee5$>2DwEy{Mz^HVzDb*qqSBN4F-E(Dugp`y$Uy2`zSB89!r0p!X6+L) znb#Ri3r6czV!amXiop7TnXa*dF>9tt&5;jZ+0QIh{f_>?UUrPfA=6Ov*b1iGj)(1Q zI>fuooE(GSOYw7X!u(!?*VhuErZXdk&rvVGdu}*X4D0^gl6U+otNYK}b}fCJ^nb{^ zQSrA&zx+$4Ic;JvDK?7|J*FzJR2bwP4Sucaa*H&J<)7?2Ik0O}Z)ngb!q2X%6W)bV z7uvYI^3!=SuUclFw=QSX4rm%&S*qnIqB}0t8`fNHUe8S(c^$4Cr6Wq|rYe?cd`v<< zxGqZHm@BvNu|93b+0BfFOIbCL{9rg&qI^`TYDqR=X+ySbNDyQRIjOH`UF?N-%V07EbsQYC3!J>YUG|wbX znILx>dBg?%p=Gw?>!feY6r#TG9gT7&m)EP6-@U_I*72E%%l|=18~=ln9#DgHp=MuU zPg}~Ycp2s=$EwWML{Z1E$5)eQKy>i5FbmLd zQbJkeP>?Cwbf_W+Z_zes62(ijaZ+$t=T?I=^`oTUFk1=0ZZdcU9E$!NT46Q|IM*Ls za~KN6tL%T-kCd5O$yU30S(DkB`YMS@3tagpvz?UvIJ#j{h*L&z9*>+Bmm-RG0Xkv)w>FCj7-U zS;uUa%86hx6LgJ)`?tiynlApq+4kJ$7=CWVcR6S+Iu@*e(dr;Pvh0`hwuFI z`WU?Ui?2O)4Cd~~AU>{*CMMKRCa7?1wG0BdQtAkMu>3Y@rgOB~8N^FH@@~#V^_`lM zQP;pKVGY`@&|b9>H-5cl=z)oxPR(pfp<&&u_0L0vcxT4qdT_DJDr&MyBJl?8uj|G! zZgN2K$cpSPzTH)^i?S~I{7Upuu5YYN>!!J%_jEq%{+_O_{V!V)^q+XhDW#t!%N~U2 zE-7U-MdO_bI~6iW`9sSP$U^A10^8br{8Xs;zzv1ZPrtpf0GwpDBK|v%ED11EUn$~m z=qda5d@Yfa?E@?uca@Z-sWB~)LsBtUZG{ZCnhfQsLlO;9&uq^avTSleX|C!-%d=7; zqX*44jDpfQ+_suB!}!BRY`1$BA-1(%-p;qmr$6#-B)^O0*MY} z*VE*+v*K;}4To;E>8hlQX6MX)fRbZZ$Z8GMnLi$Hx4%xJ)f#s7Rp>e25lm2r)vN@o z<=#$T`e$@}ehxUfrW;y3WlTL{Jd&~fLSTH(DJu6{I|(QIgZKvj`K9Eu^yXi* zL2$6BosFxhF;YH_c8vE?c~vIxvi~?e3J~6cdZeBdrY?&DW$|w7Q;YgEln=T`W(!X6 z3JK9nG)P8DMn$%KY%MQWp25F3GY(}tW3zBL=Ee73M4ud$;_8E6ljaBja*4yreJi4d z=?yD4WLs5Toy}E1`rg$#@;fH(dWLN4==VOGRKd!$44j>bp@brPjCKa#3TxMKQ)yXI zI|*NjFwuZ|DI*jBE1dHoUobG%8mFs1pow~%2BxrYUN&B7<7{Z=b9w9C?9x=|_pwmb zN*Wtxhej#&UvM6f$ocBaB%95je3{bNBx9-2m8C3qa{A{2$SQSVSSp-#mJ0JPh2k+y zt7#GQ5l%Z1dM*f5QXL+755SCQ0hAyKXXZsOp+*KG%EZ-^ZS0I!)p4u{?^DmD3oL_E zP2e3HtmwpC%W_j`Yt+BVR+e}`2Jf?gyj)F@7>Lt}u&}+nGtZZPy%m946&YkXyTWY~ zwKcq6M-r(Rhm(;8AIoC*=5aHKRK16qYpSjugQ3SMnnBIe2jzJYXzJG8pN?vv$T~o` zCN+KaX9DVn^(JBQNk(NI_TMg>4DVlAvQRh6&mY2vNj-n^Zf9Qq^bAJb8>|=a7R3pR z6Dg&dC!4RdC6@r~hxAdl=sz+`Bm;=q1~siv zRhPMBmDNxSP2kHXpo)BX0&1kwp-k(JVNi^6@P~#m4@)f0%)4))MylcLNVP>jSOZ2v z0zC6hq)Y{5kWj8uft@#5E2_Dqx$P88ndA`K>Cc%h1XjyTvh$(4@ql>AcWw`mpRD@h zAPR%|i)SU=bB(w<7Z40dNJRg<(8u@9YBrDY<&lS6YB}dnkY~a#^N`T8X6?Cv~I*YE$0yKrv3*9`llix+wWiR?Rn@N%y=yE$l1b{gJ`6E@Nzl7@N|-C_s2m}LMz1lBQD;x{yR$Y>!>FQ=LqH2j@Yxix(o zV`+5reHj#*|Mx>>`5*rJ9C}V<>UZY(qT!r7E<+Jfe(WAp1=?n0>N8n+K{fhb+brF9m@verIo~kVp z0B7nf>8#!7(ybF8S5^-2^n4R;sVrZj*&Fb6&KXfvz|+E@4+*t4=T3#sVaHRSV#w6Y zqrZ0Pla`7?v~zCa_WWY{y{rm(X-5r&i=4i_0e@3Ul)nO?L;DddZFAig4CJ9Y)RL|8 z{AtT@pyoP@b{!4-qLHa5X~JZ`F0LuZIhdpl$sH&KYL5+DQx+D%(;FzHXrd{t#mH&Z z7xEwFPAjcTRVm;4Cc)TuJcvFB&w}@=?Sh4Lza!L~6=k!)9R9+uVjw{hr_pXHFvxrZ3&i1pzT18C!-h}<$ z_~Y!RnGmwum<(6EVfi|S3hD?h3=YojK0OY!f6@J7tK>mYgr6;VI8@MYrGk_?$skQ{ zssqwKNZeWaxH9-%P}rpT;UmjS&1Z|}jQ>MUwnYAioOGK!XRy`1{p}e^^V`8o5O{;L zbG{J_tL*0wTS9?|8HiDjsS6rDr)TVj4;9m%EJTj<>iS(mCC*iK}Dyj zUXWcnK;($j1;H zMB^B3EIW2AWcav%CAJTJ2q&wB$^GCkg^$EES+w`vW6iUbBt|LaIs{pa#A@)^h(@^V zqS(+;SO!%t#;$=sl%r`Y=BSvzSh_LSfYUvCm>qVz-O|oVgh+@C;<&G0Rcm=h_>DG* zuj3hYDovoyz@Et}NPPZsDz%f-iNHWWt+QprMsmCuP_p(h1GrqsupG}_B>}!uTy9wS ztN$R_`OpTaa-_0Kv~~?rdEfp`(Fz*qwg(AsT$Q3!puG!!$YT8|%{JfCp--K%dW)Jb z)%x)5OVSXQCaMzd(e**3clThO^bdMCE}N3?eQI(MRSMD~kDneNxBd#)8l2kE{kI11 zJxBcy9QUw=61HI9{?=W$=en{-IUz-<`$yD01A`=xmW&mtk+K`Z6SZ@` zA$jGR)|4<#&}t$wqb&s*8K7y6@$%km>xlRSZ1e=Kel|{1SOCc!5P(RuXkuVQPj&2f z4W1Va)qk4FuHY5ab4ae56a~sgqF~0Tzjqp=EZ~|J82>>z@d1jbe<9GuX>tGA(7(^O znw~5>XGMgZBd>%PhK-65fQmWbcCb>N8-XSt|_M0v2lEIcKAFKuDjO47-yE_44^vaHXUcXsUjP2xy8HoCbv33hb= zgC=>@OA;(%P6k}=2X{gHjdmP7Ca&vl4G3lOI+t)wmdi)9^!##zrrG@r~iy-iY)5F7}M<=VRdflefO*|G%&A4K69@y~vHoU&5Y;+n(r`K9Sh_4%teDr!@a$~Dm zqY!DMe(r#en6E3`E#I9_ECB}jr(?lY(U%hPky} z)Pz*p1St^V`yl3~K~of`e3UD?d=*YV0e1}Oyj_H%-x5;Jn~A{{JUsLu04Lkn*A(=@ zX8k1&NxZDP)sAmPpJ7!ou@r{;l@vKv)#gNP<<0st&yl_jPg%{OCM;zRCuTyvv}6oP zK84?j>c!OPRV=5+Xqa60Ox8a3?_I6V>&Oi)Y?^i;1T{;ta1*~4Rk2WR;aCTuNy`+1-7G=GdckIAf%f8c?6G&MlG} zmQC-r#a^t#Ql1~a|J|Rz&LOQ`9#Q1(-DiuU%Ea!BV&X>I92xt9#gDU?^Rj=4G^6nd z5>0=hCz97nMo&76sGtL5W4HCQ^KlKO+O6rVc0?JrN^G7&m{If_`P8`!tV<|t^cKVq zDAY7{akQS0>4R+x$t}|OrOwpFHIc04rErMVPnUUTYL#C0Oq63fQzTO`>+E{uHKC zLT{)g-p8uL#jMwHFX3dY11^#);V3W#Jd$hEDV3tdNW)g4ppys=F8Rg946CN@yoCvV zxFFm`k|CyEq#8mvwJv?0jU1 zez7Vy;AUwznV~B5l1tKbzcsV)`!8!FGEWj)hgG888W7aL9As)S%I(n4;-Qn7Qz9e~ zGp>9@xXlH31%YTTsmd=Yu;SiiC%a{T;Ps0m_5U-X?KNMeXRUYcqo zEz*QlluoK+qjbeuoj=MYR=Wy!b>btuXXQ(bD{U7D#k-5tT-PL1sVUIU19$C|y##gQ zL)6a_^PjUphGZKy@fis6Uc1qpZ7kLvqe+bv&9EdrjmjssJ4ud!A0eo)@}p8T>MhA{+ z-Q(A)=-+9QNuiF@UI_BWP)AIIF|)>@RMXu4my5s22k#o$XZr10xA_f}>9wzz%g%w{ zTc#*Pqy`vVTPLhNa1kc9%hES_l`6Q*pI181T3@LG$&muDbf{p$pif6h-iNrYu~wEG z6UV7HBoZ~vWBoaM9=d1PNIx=o{F>QSqm&}Zq?&c$VoJ*Px@tiY3J5#}L_c=_x<7>g zixE^v?Z8QwVp6hZJZA}9vs;bHR#yA&eGI_PYTf(Pk&MlxXqZS8#xpS1`Jn*GX}7jq zMt$M(q)O*U{4PWGgQuQJU`*f~IJ?D6zCdBbs5#0b_QI(5WsWk)FOG5EO4&fER!e`2 zVYc}uninQK3Lz}GcKC=`j5tv{J864*R zvDV`7#o8j&%vTL$i`l?V&l66{@7a$p-2al;P8Y(ZUaUuG3m-_2`b*y;KmJ`L4xXV6F!hE=K#uMmLmOIEa@wu$Wh%JaYra{HU zor=Q+?`rq+bI*UixnQbqNW{<=*^jyRMCQlAW1nlfv*!?Mf}35?sy}DD|I=BtV?+8h zx}=0=Hgb9#E9snj!u&Xvor_CJ#mf8d`w$mT^HEyhFH{tM?Rw)|3wb@(X5-MqVWnBy z-P>%YwN{tirK$C;%Z7#{ztXZVR~n6vbl*KW(akw^;xxptW#@lcn+UKwk%fLcu@q6| zg=QFHe8g)xmG`NWIC>RQv|SN5b&d=P@jCpJ%F5qHO_%{=el6VOEOk0Am6-jG>J`4k zlnw=wftigh?KN9q)c4FPEQ9oO&?{TRv+VoQH*PLGSwZyB3{1NDzM`O0im9|Ns`eKed}>w|eF@aA~HvB*3Ak=;Nu)&hl3g zV@M(f&jBN)#HO$13lvd~7gGKXF1PIYjMh3X72sU!EXrD`(|GfWoVjD?kW8;Q+SB93 z6*Wou=veSfIlaiK6bW%C6ri1JXFbiS{g&7KGiTLHmmJ4d&mWs#86N%Jm^kV8LO@+ zd^=1#vrq%6#-h@2YasAZVVB-Z#`d5?K6I+_+l- zm$E;8J-)|vEI6>w_cV#x)zB-&qfjbtRNG7g_G)53-dCgux1)Gmj6-4^$F7Y+F@<<4 z3X)a{Dl<6G=QlP)vM7Lux6zrt`+JF$3dSnAjO=P7694QTR{Xb>xp6sOen&AMo-GUcPrYIPQ-Ue~DZztY!~TAJ8nmxy zZ?A`+i@I(ud2Pm03eWVioy|(cYSFs<^87{;xCj~VQ=Oznmq#tiSYr^*$LMY>f-D+` z27jYU3yh1!9l$CiGfeDHD41=af9SX@TDxp;Xjb^@O>{6vDb*3;V3~cdsMs_R%*|0y zShQ5Id$qx6l+Ju|-3FN<-!#X-RzD?P5+Ixco=3<H>ZlnaIqvk1kTW2%X=_30> z1F!|i8)>jN=cZ9dxH%TSJ+D01dCYa}Au6VkfOV7R#C6d@&HdH`y`HHCc_Ct9KGvx# z6?-eopZ7x?+OjqL?lu40(#rmGk6yKHLly1Qlg*zGmp(tUC~iJ+-6)zyOANh4bq95G zxc-4>N-_qP{%o_N`jJq;flbP$-_-G=|74D`;fN1moF8R9U_q zAx;>2q5~fsQK`{vZyMittEyoLGZmfL97Yv=e~gog-4BBl*I+5)%{BQ;$IU%DC*{4G z(9ojaG*Y_nNOQjAqoITBFgu!g)kRBg=v{llX()EweXnpV9VEh%aTI?EZDItmNJL2e zjMX-Fj$tqO8uMX=Sh$@#8W~1L2lGfiddv|;lgX-xo=0qFomCTC^jCaZ!a8G$s5&2i zV30&z%sJ9&68JVV0Y3Y7z$Y;QH`JljNJXn%DfEEr?!NABga4>1nzi(w<#ZG5p$py(lld{jgO}X( z8xDZbT`kq-`ybc%%?uI|*aaK)Uw(>}{-&w1z!o^(9e;24DKQQHwfmX3%>^%Kqa&k1 zsI(!PGE$oUr>7-%X7#0JhOy8pB9VJwqyU{sR_xgu-H4{NqZoNO3Hh=Pxgn=+yq=CC zRTC4Bb0&zeH;hHc_n>Fk@44&v+{#KWlj}hAdu`TD2z%t5z{@zLYwB2(@TOieLxF4l z|0C-ygW~F%u3<=m1$UP~aCe8`!9BRUyIXK~C%C)2ySux)y99d=x$dXFA72$y1;fml zvwL^1)!n;eb~5XEAGVv{Syy4Bd~$k%(-MYK40ndORDtyTH+VC@D<*oYA@bFh;U(j{6VFr8T;p)v*I+Bv*#o|N3D%mKp14?%D zRIFiXI55quHjoUW#vQUc22HSMS zT&%hC-6OYUVh>*W#RpfeOL9LP*GIlLMWm1DLuvOc4BdU->vHYglkk=H9q&mn_&R-l z_xp-8M{sg7W$uqF~QKNK*x-MfeDln+#nZ< zFP>p>sD`Rw1x=SW7OSz&AG9)Din=rhda{~fo1fmPdJm^1i8@F}tv&4c-KHC29{8wq?R1O#6!r8-o?ImFMR02XLKc+QHlkK)k1#9V z(qZ}7fXZZrB4J>5+``&-HZeD4Qv_awxt%UK613EGaouTbFJzCCufuw_USZEP*ReBx zP_|{Z*l}?#Kf8y&=(}a^%uY5VNh4EA85(vyzDUa&oR4sV|7rMlV`ISZ=gJ}p<%d@a z(@=^_$~tujZqNDLP<>^YhrNk{RFi8;si-D3l8mw!`s`bnaE)g=6C%7F4oidi<+6lr%tR>m2jR@Lm!jhAL2i3se1<&k?q4r9Uz|YSipXqsu|CHSc;@$ZiJsR&%zE6 zxPf4|ezzR zTS?rAc;UG4OYav06WRXQ1D@43t%HbGIe`L!z0;o+Gimk*UEnsKt*%(?<;nkkZVmsI zyFN3Dt^CoCIKaW#%%(m}1%`ZzQKC`NRu7>irBJ3iJC?K;B8y)!kGXulnJHde@LO-o zCWWl4a=&a7yLPU)2uJNMmgsm;is7biC)rnB+n;;WHd=oii8| z9L=T0*DS&dxE$mtHfqH@5r2OMq!|`hNA6PCoV3sj-ya0?Lkb|0;hIv7h^}e3l4>4+ z0u2q%77MEH;^e0ov8~q`8M(*!TZ9@KLLB&te=mZPP>_k8WL56YRi=`BC1^(rF2+r& zErm0nO|Cnfo>o)VH*f({4MUx)(5Y3Eg3>h>qRe_ELy~z_j`_ZOLnz&RpXqGyc)-J6zboUZfD00Lv&mxUWVuPJG-2p8Md`AB2NS_RSmbO!_>zM@ey6i zG_ehdhr5MlVPP;#p)SR(w108o+JS!$YLaIyXOH~n_c`d++%Wc+-KSw5|3C?&P4VGuX(y9t z-FHw`(o{bZ2dts(`+%+JqFrr_l%ituu&o0@qTl>EU23JFd&KkJ3%k^kB~zKntQaUB zX#417;Kag4yCglv;lYegrnb1OILnEuaxVNSr)oaGwZouv`AuuSPR;3D(ZokJMhADW zkjpRx<6a?`QDo_+x*C)A!btF@i^y`?Fnbfk$;}RPnP$M^?{J0%#>~bsNr4TK%Au1N zd(2gHBbha?MAa7+Bjxts*|}=korOUXAGx6T7C%fsFj)Pl5n{KdqM_;P5-2=UQOFTB zGV#wQGhxEob%_|Vs|^OtQT3K4=BT?-{=8yMN+E zZqi)RtUfgu3{7tn{$VlybfKcDnZIx{rSLV@Aj|jXXtnkH+zSy62Va1}cSV+<2Qo#g zyyBe`6pmuPJh}Mq`nlTES;{%4dlXx;X3<#U`o*Fz&cDf~s=5oI`OP%q+jAwL%L0f= z?*c2vj|yjHg3&z}yA#9&F<#rrST%={5^U0yY2pNlF6rH8sx;B#WUulfLUmJY%@WHZ zCCPh|I|Fv4dovFo+_o$^br{4$ zY<_M<+DJG&1a$Yp;by8M@u>%0-eUcUCxe*ht5_(&Kw%QvNeVpE5uXb5oiTnu1LHRc_h0p>8_-xZ9s0zbBeO zqCb+=!2y$22TBi$UjoT4RVkk6C$>P%()OlqV7;%Sn@@WUF#dS+s|e2=;Y5wICI5H` z1HD@Bau$KY2)^h7qg{fWN~)|fY(Kfgkt|JZ;hD*V_nwgIA6DybMk%9>^k>Y{a_tt} z(`&+;hxMNFmUrBaBNeW9`S(!0ai06i1ECLh7tiW{i3CM+-e=|g_D2&-&k+a{_p^t= zYm#;LVLm<;KPigj;mP66(!AcO*(mJK^Z6@}^oiYi5Zo!@V;x=yERlipXPQ*N z0!fo%E0)80?v6x6EaFwp-&Ri;W;Jja0iGT0Y3Ei5Eog(ecxaMfcDOxMO@mB#^PS>L zO-3>?iFs|u9+GP=J(HqPyL7IJp=x0qc@#PYNyd-^_~{AzVtX#l(8vgQ|9)qoa{)+; zEoz~TKv}Q>^JE>Hg-DFmme4$0PIl*s$V1xG9;f|ew^6H-$gck_Kkz=c0mSL3L@Z?i$nerqpJ91WB8PbCQysmmT1 zh=J3vbDbTaOD~II;FtBgK+8GE<;nkRhbkV*{~FbAGAXuG*S|T*R;t7XF~i7Mt18*N z2C8aSKWbqhqg+Z&zf|c4$MID~c6O2jN<8PeAF~xI&50qe%Y>mqc6h5Uul6$&@!KR{ zg46nl$HTh7L3>(K9_k_LE@Oes_8$JuQOE6cPrBZ}WEt20Qrok(%U-Tf;siTyyPH{n3CCuOaSPGk>@XF_h!a2W~R zsg@>9G|zpxWHUxZCP0d$`XYP%%BhK<+`@c*jGkfC`;{dsmQr8+)Ttus7N8=gH8YAaW3~agQvKrHgQ!7g;{L5w-}#lmzB#xeR&QV-p(2ue&pEdwx_Jpfh>%fkI2$zl zx_)`DKm3oewA2n)tt#?iI5vBu7rw7lB9&EUiCun4bHMyzM+49An63})oxO-V*tcbbOv4GZcbAJS)2{f}VT zij$Yt_nR_a5qKMq!KmJb;zt{~Gf~5ZeY2@R#nT%=1gspAEz@HUuvX~eg!qWeHo?<9 zjle3X&O0?{r}+-ceAa`8880K~EMT(oqy|{h@ND_Bi)OUxzkOi@_oS$}To%ahGP6Cq zdX3?e?aUm=g*xMXIOXlUzGgTx4Bek)a&ZG{G<35DD|3BS-#*s`H+?DtWzvV^;bV8UTU z&XkyvIZ-qZQ)YoM05m-_#ygKAXi}IN=>I)v8vja9lA7D5^o#?`3&#KOhk}VIg3`Z{ zW4qlRr9oGGq1NESCVqr8Vu`HOr*tWE&XisTODT>Fe^@#7Q-K~Sz6C#dh@4G^z?BF+ z6?QQLI~^Iyyh^R@mMcZ59NgTQ?D=vidnJCI7e1_pZh@5k{kvIR( zr{TBWx68(0Zv!<6eVRAJdl7PohOf`tE(o_BwVwUIidNIr^~8#vYv?-3a`6tq1QiqKg3 z3hU*WSuC=uHO158udy{XRVSg@?DYPowX)$P^UuZV#Bm0*xNu#>+wu7Ix7q8jrW@a?^N3Z~ zr@40s$6waqE3Y2O|M@h*zyI@TkORU8q_0{hy!`NA-oy{pU)`7z&%fkVvV3vGDoajE z&z{TZHx=4YRV9HyXMoGc!ffZ&-V$+QbeTS?O?UkSWThqJ_2Rls!bv6A;-Nufqymv5 zqpqS-(M+z(WQP4jD<8f=gGz>iw`J$foXw>A3>}5n7O?useaf3s3AndGy5KerpU)@x zk_*)gFK?!SjCR}~!RB2d0TJeiorOd&eXBWOSxzAl)>c3klClHZx*8s>;TncCOKSMy%dWr&_9+S};lG zEc7G-Csbj?U-@-rzFt_IJ<4s#JkIouqKO1QuwaPC`K@P+ccpQEg+V=mI3j|Mva1RMD>MIu7eDko#b!%;AEvQ;W@Qkn4`CHF66o}yxP<|G|bGdtCd%+Oty zf<34o420h3px#(+Ydv=!zuDAO1Xc0AAx8W+VKL*l;%?=co9OwvlTxh>D_hIimbNfn zjFr(zScc~FLb_4SuK(kD*{=@yDqEaTbyGG2SOzjN?`6(qBa82qW;=*wl2|m8Z9zvT7#h-w+n=p zAJM<`&;O$T^r%rB#;zNl8&52&ce`J#ywFMsx2_rqEx64F!870nDW&$!z^rvj}m&45zOqG2N-G5|V zuhCBIz2D7NRyb5-l_i7dAqG0q{E4TW(e2G$HCwm~w#_ zSf4Y(fGRB9md(R0J7he~lBf(s{F5dbx!|xm7QX>Q%slz6IywDiKPj%d9ayaf9mk&( zMfCArIUM3YMDw|t7?>2K@?lKrv^fxE3;wSb-~zWqBK1jC^WM$Ma6c&+f-CSNTC}bu zB&Gm<=|)bG*L)|Gaz49xT1R~k-41vUUm&TqoMT@nUoH#F=FR+GJIR#XrJo@1uqx^J zux8G^r*ON9B2}U@qI^-wp-<@yGh9Mo-utTzE?mhE2@PVrK#G)D%p`28mV{*J8qFUX zsAUNj9kg}tU`!3d_Fd>IipHvSE|Xagk2ComBTu+BEyyl;E`J7=gY2d^N|*Sl_#o@7 z82gL`>0VF~NlvYRhOCtI=XaYfH+)?|(F^K8 zUwmgN9x9(@naOn&4%n%_^)j8#AT*ylpJ3cV*tcjbBO?Rx(XWG+HOnb%d$JIuGR9iw zLkh_GNORVB-0)LPmq|DX4Ad`)bN)PS9VoOQC&X?>QSM})H=3L6qAND4^YTna>gdQ2%!u@$|^3t;wTn2F@%AmguuL;+0k z7XNWaU_Ii-O+Ip;oMx-=upnd97i+7?2cm?s>Aq4A(BFVlVF5`7rn(qCs!y76PfD` zH&yFBr!LaZndj~!zZ|bXMCiwKRK@&Cyz^-s3zXmgSJk8I5=?w-A(?nRF5|#y0IYG& z&`s*El5hV-p+w?!*pcjc+&?#p?2$cN;raG(6->{bUsgPinWUbUU<0{X{<*J& z-~Js7UgqkoB&#jmcfCjAF1$jU-bvfEwEtYf*N)TG7H@v_86|5qot#eheK^hZ+VHTx z7A-VEKJOGDQ39A+@NX~?6U8!Dr8dz&1`zzNukexdlFJU?R$5@LR zdFxFAw~lv@khPYq4WX@0->N7TpT;e2%{-`SZ;F6xaa?$oOH#{uXzIuFR=5*$bHLZr7}tkO)G)V|65PVg9kv!vmXzari#pV$Ptc ztj}R`kFG`u_6+jYMrGpSNa{%G)_AE80<6JUuTNcS6$0jCfnp=IG(2!fQ$>vYi z89eba8_e0ABexcf(z|A~JX3--OKDuNSN#)Y9c1kw}4q`K5n!qgAqQ#puys(%Y@ZDQawlzV};U_cU{Eo)7NPt zSW_UB{`LTe#!fv`+^E z7LG_?`1T{Gm46_kkw8Y)PPA0%*tQXlmZ!;O`Wem|&%aw=1vR%gEPv%pF2MjnAywol zi;|>nMRFioFwu5%(FMPGe49aipRcQ8_A|KC>@IiodHSr1+NQXoN4kgVDc%Kas6G5l%PF6HkW^ ze`X+}Hhg^e9ZKbUh_V|p!%v0Li=Q+xk23u*`0<-Joe|-^&e+RWfuT~+!s~W=c|@KP zwJsotd7e_oM3O7Tuci92wXIl=YEwHaVWjh%N_EE$>xve?Yi5x!Op)X%9Evog50;z? zgp3BP_e&=9&v#Wmkc98QxCud+?cRm-swSf&M6cp6h4?_mgx`H_DBcZkYixYWg}1+f z1m-at&SpHs-sN!iB}T#Id`>ACz8F$1d{$JwJsb488BRdyRCf`~Owwl3j+DNuBO_%A z?k`TNd zgXbn3E!Fa5u(j9o8GWqEyMlek!GkbMz*sZ%XzEFCuxS`<9E?uTV>%)7MDQcN0J_PQ z;qH4O+$fgzAy#v#!@x>v$QFxGSzNEzT#Uz5uMQ_yxRR_)EONE~3(lS8h`!}~cs7-A z(jG@MF2~}$gC6gf;32#%DR1!a3BK>H5KsAf#w!)erRI-(OP`LXNir~hR^A>n@@ zaFpvGz@pndlk$pt4y>7P)WR~-`?E^6Mp(k(et|v9X3Po+hVhf|mob%TPFm5yU3PPQ z<;knL17ku*W4(nLa|#O-#X= zj+lnWT)u)xP~o7<-#yM0H(*V(_=e+Gzind-Fyb+a+~43gEp=ZeFjkZ8ASoqPcV?gZ zcJR`fWZ9xwMK}XPxH#*O4DEoiKJ6Z5+`X=m`5%1_{O4Z~a6v|JK70orU*TRZ5!~Lk zv=&d%lGt?MO1@b!SE6j<#7Fa%hQb6;A*y)5j#B0tNjgyd)veAA+prjOk z)csw}4jwp-7nV&%t&;G$3l^bR*M0JnZn@AL4U1H>e91h=-8eqa5yV$__ES@a5NS|k z#U`<&fq{euvY_)wS5YCdU{P#wYLy){59?&MLa|@RJ9DOsQ^dh|M-HYsC&%77b21)h zi}MrcS5n@0Qx?c@jWNnxvYS(UjYVmnFGf_GqRQEIg~e5bA4;y~^{Uv+=!dsk4eB;} zI0A?M#NkzQ5i!E9c4nsvnH*9(t5=NKOt8n#XmZr-bA0`02|WK5fOHFJpU+B;rn&M^ zLb#s39k@-obd3f}hQSfz3X`{fj_fDK7fB5ZwEX_HEHm2R7Mwd|oB^A~QrFcL%Z!>m zL?RH5Vw@xHiY!Ou6GPn%(SE@9FQp5H4sE~kbH;rYx*6m)t0RcIl*%-@d3MDg5sFQ} zv9Z5cZwMUxw5^3{*fS**w2jYgYf^0*c$B{IWs9z_(<~Zfi-$xUIEI2t_-|8JE&+NR}wCKX(;7hFynUikGj!}G|DsX(`04jq|zhg?y2^GGbY?(HH-6RKETq zPPBf~`z*cD<zKrz@_kCJnNSM zl80LGa(V@_`tJLg>U?oxRDEby9nY6muK`gmy=Ss%GR%U{4XB88*{>h1YOEdvW{Wzt zFx6&98yr&kez!%qq06M0k{Kf0ipiu$t3N6t8NZv3V~T~}`-T^%wIioI0V=oQNI{M1 z6gIn36H$@)CE%{!t?{*#)Ydx5Vip&lh}TTCSTU&xK0Ck(rbga$N6pIbjw+%jnDHwx z^$Ur;+buJm&j7PcsPDCbs_IC&FPWC}XdoTpAN6>0{clT%dg+bEZAO#rZWF*yTV2r0 z53BA>#&m?i6w(B^()nbg?jUNhkR_z08IundKf9@LID;%4ZPtQY45~%3UK1oZ^B&h1 zrs7bj5^cjBW1K9H;Y>9MBE$o{MHi+07mkxnq*6%xv>!j)FSosE9NN>%e zr}LZT+br&&{X>$h{}Sy4T-~*XSgF_3)=HimxPff;6MQLWG0A0FDBt}|U70e&zm3?& z(X*Wl{*jFPrF=pb@<|?L*9FfHdhZ7^BaeHjXYdn79h77Cc{!VUIT&88G%-cb&~v1n z((FTCT=6drwQ|HbUqmR~w9=@%VXgj#gV>eq{ZR~b$$6sIihy&}3!8OV4IGmW6ED$B z<$_!Nm&aCU&?2+-$gX0%iS2VAzJ{^-8R-L~@kEx24-L9B{yzi^G3WL`R+HZN(iw4a zYUr}Tx6DW!`^PR$F3v#Ii!M_kM7Pe@0S@Scj1yk0%hl>oNM+!LASNCokiAbgsamlj zYS7weGS}7%Kf-d%6{TG1x$jr8Jo?K*Y3EsV69bXbbVp3Dtb+AChz$o`p`L+azc9<0 zZ<6M?tAJ<+3t4UcBt{N@$F)3e&X>3Zny$`(Nc#PW5suUIpMv1A|4+{cf{@dlsH~}c z=VG2M*M*!+{D&+k&DmYPS}_1~cHxX`mz^($s#6VX_!11V@=Wb9{a8w>M)l3Jd1!Qh zSlhB46fflX{Ekc$H}y^*-^xBj@IwfEa9k`C8t`D_t%fsgt47rFHz$dkj%O!?{89zX zTV_M&sR$7iPWe+P1}QqAN=(?l?INz2b?OpHU>QikbUK0y?<@L0I*zWrDD#+n;*W zLm`l0yF=MdlN^iX;QBeXdn1X0@!$jQQc2;zM-@8EV;9&BPN~dFn5XPD8sSoA2YjFg z4&SUc-QyMF{(l&9+&Eoz^X!(~Va03EG@7pmTjm)1t0Z^`mPS~k(e$lCzz7aKo2`Eh zY-ii&A?wwA4Gc8X-PR<`&~di!bKa{eXkTPqumSf}=O=A@YHP-37Q8_RdUdZ`40R1s zl>)aR*A-06nMIfDFua~Y$8Ez{&zO0YMMXI{ED4K^P8%aD5u-pWBFc~8tXuED^KhR_ zHiP%H8=OWvTF*&6N3;H3brwQvV*{TaA}DC0HM#kK2$F~XpLl@~MjrOErDI7y)A-}A z%~CN_QhtJBFjEC%o=;>eAh5*{efRSyr+&pSYO9p3z;|xCt4Hle#~~FXp9GHNDB7T` z1VQ_iK8YBu`gmqD>)wE8y{SSU08t29T5_&->Z{Y}aJuu&fw-v+I`U}P%ASeNDf z3oFNzT1N%jQw5!a!X_JSABv-yb^c9ECK$}L7N*xNQr49$iO$}7R$Mrh(!1^xgji&l z4O>E87}X5|Sj25INxi+n;ik3Tnvnw4i%J@;GW+3Fe&21?AGZ5Zi^J2d#IX;F_*m=z z&oPhSH{V)(u!2xts_~^toyHJ zSrmet5T!Q}JKpgKv9~~EBZUI7b?zR%gqkWy7@kX;r$}Pm$q|{RGb$tRcJ(|b+5^h1 z5{inRPqH3M<=K%MT~l1zzfGC?FUR0>`9DA z&xo({wCI>l)?tu{dbo!1*wmp=BhAI!X3Ls!0s((8kty-$1OzI^o|GBq9p=S94Geq7 ztcP?LfsZANvfy<@hYw7Ysz`r0q<%T@{{qr4TTr9h<)~|Lw~I)_YW(~Q_>fyv zjC3)fxX8yc3$LM`u+z`GX`)3`Uywh;sr{x#Er&T%XqB=%I(=suEyozL1k65!ugF-s1}j}(6add$ywyf ze{%i@u)tyEaWtOsKVkgSI|7`$|6T3B=l;JH{Qv(gEmvB1Qf~(kAsd# zOPEsYHtMSVj3m6t8n#tybYjQLUh7?%Ro=!0uNV=^2WtYmEt0Wf)sc2H&Ka55ew*ih zSEA*yxN>CA@iKn#0(X$%#k28uz5%ZbF=G1UuJLwSyy>zVy6I{E4}RS%m-_wL$^iDp zqp;>xh*GH=-rE)ad-Tl&Z-!I*O`5V_aRw(b(U zzwF@iPWQNseyp)!)fRd|!wHwu@pSVh}v=hcJ7COcBEw*#*?vM?s=5$cA^JzAiN z%SHR236FET$YoDFngw+`*o~Kc)}<;vhzsWd&UrRHo}1)}O1lH8_Dg?S>j7LRoGe)$ zw)U%VtIOtvwg}d?BT4tGP_13Jjb}V)Xy{dk1r7HTwT*27{J#hlZfhsbD=X{$z}-aL zTH~XZx14iWwm%tKHf{xoC^ov~KAi)Tyfa>xGOCOw@OWOf;O#yZd-RPvpX=yLL|$Ir zag*G!j+K#%%TqK)#0RMWKRAf0WxwuP$-dIG-O4$hE#F1eUqN_XLbxA^YZYs99^h47 zh0CJ|-L=jfahX25G>(prDon6it+yJM19@y!ZhRQ<$fZU+ij3D&qo+HqcZc(~hjsjx zQ|1Nro<4M~(btEKcZ{&psyxrO2=D<(T~pIy*YpE+WMpI!YowyF$w`ooDToG#YK)Yh-jc;2oeBVX3t*xIk-D=w=dJqcxW3><4(>GEgKqb?YlAJjhjBuZ0C(T zK+4#j1NXf3M(SMfw-F|-3@bDZ;Hw|azThcV*`M&-UYS#utYxhxV-s}p!af(OtJ z+nsP$+b%G4>rwgvoPUC~Y4?VYX+~n@=6;QuPfJZLO%MI|O{WjZj?H>CNPZYo>jC%0 z)-Yv7FNWQsgV$pZ{&j>?tKQgi!fB!qvTA?^+-GXgx~-hW=EEVKqJwC*#DxMGO-<%op1`V}T7a4C4_lXDjz5W{ zAI#mDl{W=QdmPILYE;Y|UDh|WS**pJK_Cfv${jmRMdrtN_wIOfx7OD7HgvpNfB-|O zT>#U6{XNnFXfq&Nnj*~&*ORiy)CfgPrCUQjx)y=*Y%UTd5!&axAUzO zv+}I~Y|BmHcb$<0YOWp3iB0wi7dTqat5Ez}A!9lW>mFFv%eD)TNWh%1^HA*U?Ebw7 zSmG6yxK7%~3)LOw6jPnnUDR#*P)}EzVmn?&I(Gk_R2;NFpYN2`jBit0xj+}BIbuP; zk-<6jkmLn z#=plUPy4JLLoY8}MrjUc=osms!c zX8-=!pOVXQc+X4URQKzl4}qA?Kfi9gznU_%==6Zov_I;80KsSY_2CYy4W75-inkCe z_Z{qyW#ib5(sMmDP3#?bo*%$HKdZeyR6!6~ui6aYsynSYtOC1mx?C6faSP~ehe7}` zRBS%(MB=O5f54NHrVH`M3a#8$R)oJ~+&%tX=orU;ox-=-@<+c8U~L73?C8(}c4yW7 zX6&B<0IS7RDLCg~U%g1sdjGrNGU2w~1Fd=asl0LfD^_@a^9Xn9&BIP1=UO;D{ITlW zt@OM7o%>4?-f(Je#6!B8Wt0C0C2^iN0^?IoY1oEliuUGyyi@yaRCE@4MiQ$9~qwP6(b(;I`V%4`O3u zUjW=8`B2-|aYl`o5tf?PKxSmW`ml z%_`awplMs9KKL5ovM_VIfe2i6x3fBR$0Y+Iu`}1xrJ6vej_0+P4^0?+ZgINU|5)Sz zz84q%>!AqyP8j2S>2q|XyC1jP{UspA6l%5lOW<$)+_$s*KbG4cj}Mq}xp3PU0krG$ zKXN!5-ndIq*rn9_LL5*W&<carix4ISULtlyOfrnX$=(Ru_w z0M<`MMWt|o%Vzx>NSDS-dtS%3Zoyh@0{EnX9c396TDqXEVv?nUH9V^ZmDQS5yH>|r-emrQMyP!Wf0Iucr>B(jNzP_QVva<65 zI5X0`Nm-y{WgP%oq-%neza3?~9SNYZ0X->H*8y+l?frDk#Tj;o9&N~baizF zNrDqHGYR|x1J%k39$P&qo~lky%}0~yKZ_^QD85WY^1cPB)EMdj9RUyLN)r1l?x+Ux zqF0SpDs?`$zg&x(Z?tP%@zxkk2m>&^b#xR=E}stq0$g~q$?m|bjAh)5uN^P@x)#-7 z4n5^a5^7(3NmuWN>)cr>2H6Un(u+D=GyDoq8cQy{_Nk&y6NK2xJlogpn^`U|B+; zXe>s}`}_O4=c`RYK|wP1<8#~F+jL%U?y&=Va0N{uBCf6+0kGJH)4_2D1_s}_xYX(I zjP{1(`_Aw^AG@{>7AtjpmETS0ii4>@n!KXo;|;1)SI6TUR4grNK17SS3i7*Hu_Rl! zFC=6y!wJ~v%paikC-ai487vl9!r@r{BZ;(sH2Q~zpb!xelYr;M;wkc+&rSY*2dM;r z-2QZNO4s@`$gc{`@bxw~B4T2po2S-e`JsW8R+k$IAMENP`2q?<~hpJ7MBnqo0_3#<>pusj+DM{`T7F@yr6!gYIxVTSTVS z&NV$fZN1eER;ty3=k{<8ri~G>b$(v{=nVp6qHec8iuizwi#t`W!8u#32<_0x6`v^YQUPLPGw?;`fh= ziuw&GA|W+3Y=h-mw>0moU%5sLg{D9n+~Mx7AD=IH7VxmPvFSRVE2+}$`w9}!)Emyl z%{`SP0Ev)LO)&CSdE#>0d685~BY_1qT%9svuhSa|_>UyfqQFEW+t z@4yK9z&5vs5M*;zRjdFQOrJWlh5Z(>UO=sGZKsEWK3=1%rw6nbchc9_-|Y5>PGYkm z%$LrH04!{)KO7qb=4|cq(i)_GAy&E0G(LMrqezbU_G|?m_<+8(7N;u1F)V;?p?_z^ z@@RL0^u-&QF|*m)+S2KCe>q)mQ{%cnZ@I{pFOVYBXl5!`Z}RC2MJFOBhx(mGZ9x^X zRI0)_1-H@cKnd8K#k39tjMCN~%g1&Ki70E5mg$z*zIQ#U;PHBfE!7xNa!fFr&G-6% zK}#Hi@m$>32vumdReHU9rt*5>fgs@HM?O9}*P6_L1MDK0#^I1&6jfTsGXw~mPJa-g zPY|xXz5Vj;t`7*Ze6U$9wQu&veo9G!gQT+Cfdh^0`adolaJ8$LA$FdK@$3Sq5}&p< z!EhY8?;lnxLK+$=9O;A;STjv-IC^quL|`Y*o$OC}^B05KRz@GmK$98REyW@TmV z3j+J0#n`#)?~cA1MHIZ>Uz*Z>$1pbB3hCxT0y zd`Y=h2aQ}XNG9;V$CsN4*)mn;zUSMM1$bmqsa^p1AUhExZyz2+!m*f{7McL#dfX1B z75uI#`RcoSb`~xgOOge^&UO_RvuURBR5k{iH33M_m9D{XoGcYKHa2B@5)BPa5~ox7 z_Q=z`npM~Ox~2qo9x7~t^mi#KDdlGSBEmLWDk>O2JPKcmQ&=oQ4iAl;ot=XQ)HO8d zjVB2}IwNp7B|hPZCr}}tdn#|-U zm$Cv_5WQYl0~r=}#-|6e6NvBmLs&TAkn3~jT5i~qJy!%xjItHsH&i%y(Egma42e8SZ zEEda|fUtouhSeO-Qsp>ycXyY7gG2QTD-JF$A~tsD@82MOClA2Jg`!b+1K0+F!N3E& z$q$fT$otR;PyF9*GeEfriHNpNPpReR+0B=MY;hwNDky2L1 z0EfdVeBwR65cVt~PU`4pmpQ*I2sd2o@X}iSg+3G~-PrN=w`2$bg_D!h&(CjjCz2N& z1XwVo)X$TJ3iPyl0JyY=Vu(q!1Us##KgcWF)Bh@zyd!ZciC%9MoOSm78Bhlu;3XlO z0nrr|71@X39BU_sQ#r~FmT8T=7RyXygE@(biH+0{7-7300{Z&7LyJOAPEL=Hk3r9p zDNKCk=A}cCztu0v=;>vvc;Eh>&3rx7iU!>>?&4 zB%Ee!qAnem@_c`NK$TA)?h22JLa6aSsQZM|)YO#3ZkOM9tzMzY-P_xnq<#c|v~Zbf zU9ZQTwV}9>@WpytNh2gG5>obHIb96r3lQ4(0&vvl(G<}8_wIz5cVxNFtncgtSvgv+ zS!RcAqXOYp+dZ)HJ#M238xau@egla8r`GJo^m(b+{%Bgc)tTN9U}xi&&z%5BR%&;B z`T`D~t=3=}LJ*Wv<`DyM_~!0V?DiYrrcSlG*u_S;boqeM1IQw@X)>0=9P%2M=t0qB zwF%f^mEHiwJ*)O0VIt$SbShhxGY@TqI5R#zeoYr_=WR>s1_RsmLV>@66Oau!Aap5B{fvDyB6A`vyxzSN+E{>02)(X zwSfI1Y>VOyP)*D1@`cEe%@Gb6pinISUaeo3F!%K<4yU7ptdjO>qm5x;NFt?@)M~rk zLB!I7tkd>?X3gW|FL~ce#hOtsQ0KZ1#sj^gVPuB)Q zf$ad6h8*m{z?Nml+sYUME=jiWcWub>-v0iSFVw$VS3ISAy1GCumTURk-MJEIwIYB` zPAOfX?RfFw@%XF#@^}@JMJ!x@FS6N;?WhP*4sL`4x;j-;7)(&3ee zMB*v8yR(A`(Df=)exh^dbNBF=s<%*!rL_<^%8vW6BlAf~BOO9_Czb4hLK_)B^K*zp4p+WvS}6vZBg)iQO+ zpT|rLKUNVD6aHvku!AuTQ^heYwKH0c1a4Xx~S zZT@>88VFhOdbtX0Oj8;l&g8l;yIV@?ik=vZ77=GmFI;PNksp14?bPS`la_`H_yyqr ziI{kj1L=z@vjrOWm#YCtczC7RPtit>F2An%D$=h<=J!fpD{z9M5`h$HQsddhg_TWd z21l8=#-5Ur9U<*htqfU5Sc0rI-m|2juHeY=6n$Pfh!vwCws6s;9kU@=vjC=)z-KIPT$HyUn zbEWt9_Gqz6FR&036yvL2I**6y)jOcKqhrp-lsh(8()UGFU~Ic@;p)=_w2|U!h6oHX z9lj9}5v5&M)i<}dC=Krb%Kk}=WkfNZE!2@yWG5wsc(~XQX>mNO1W?v|y%iI1SVVsQ z4AOo4s$DorrS!uy-FF=D&UJKjLI$^L46T))wVp=4(~?GBFtXywYicEPKz@5~R8_+- z+cUV140>svsA(%vED4~|Xy&@P1{6>59d$lL7t6)XO%L#lLUbeQ#Y9DAYllWr`&nZ+ zLyx7>n?kkvvon5Y9p=;}Bkd9VZmv--kiu0ck^}p_mA%;R@eBe2B$bdZPLh)5z+NXAO0Q06HiiXuWJB&sJBB9tOjl6lHJ(;y^d&XCOW5JKjCT)pr6 z?QgH|kNxld_Ij=LtmVn=_Pej&b)DyN9>;N>zusQXhy-qKZoM4)w;QhTp39{L%=XC3 z%Tr=|9emiL3#`{&d^Parzj^bfJp16>KbB+niw7>RVwx;(Xw&1H^S(T~M5*IX&JYaE z{8Cw|eNwG==aZXVaq4f@1syuOPC-H8du!`iNx_!pW~phdvwzoCJM)6A3Q`i{QUe+4xOdPD?T^G>)I{MSYu6hy?ggA#Co*<$F0UtDOY-r*N0y|er)2nj^5SP zwLbBzZhe88Ma=gWu2_SNxD6w}N1At{rjWnAYOM+Cpotr)Sy{T&`^tx37342WLa{9kBf^da8(E?cl`G$ zP#F6{8^0X<_3Kx0$NRf!{RxgVOFo4Z~%mXBY) zvnEqz_#(%8>Yl)O$z`>3dJ3v6eXG9*y?t%2toFI~dz!f8(1X_g>X)TYd34oc)Yw2h z=(ROc+ia(ysj2v+aeq-iRw5FG2SZpwdb+UpVONCBj%UWVY7AwLH5UdpWg*^nT{kt2 zD4Dr<>eMDa!|c6dR%@w3M6CAP0BGz%1zCbnS7J7F`Pd`g24VFgKfACWKYj?_TD&pw z2S1ThmDzhW>!pZ&K>@;Ov%|X@Mp~*T!IK`NZULxZy;=by?jf21L?>oeHoX5Qe@wGE z)GV<+T5>Af=rZbl^Q?Z7^M!Nz+UtV!ZF;ILtiv+$ryI}4oXgA1mNEaz z=xw%Qf9;w-YF1SCGSjYr@-$1jz1r*Ux3$;jZW`RtHQ0>5wYRt-+ zu?t_uHQ%11tD!#wff!35+%$#q<=BlI*%7MI4LW>hGZWY!(6F%Z*&MNMslPC!mDr?_ zW!AuaA?I3q%6VCoJZIWoiaQ?M$|AYpUrW1iqbcc}SI9ntOzT!p$Kl3@3s;MlGP|75 zE^q(=(K76~`m^v+Ow0lAz~hoGzc(OJH}D>L{LC%RVxuiBzmZ{ERYkXkba=wFdqSn} z@6-w>S*?-LQNimYdO&|`LH(c>lwX(`rD0@zfD4Ymo+v9TD+Wp=MR-Yl3Q(c^OKCS1 zqqJkUSD}ui^Z$X=`+KNi^V?HTKLm1}v0a*XWDBGAHvgXP| zVR!GYHZ(N+RDOzOTR(yZ_JP;YbbjMPpRLT|ug<)b{xvai`~Lm)p=k?bMO2OZHB(z!xVS+%eE9G|0L2T% zbI<_fH4V5&;4<&mT%aWt6%~uU=y+_w59dSwc;M%!tHSON41X51lAv~io}irszhA{7 zW6TYmIlf{lN^;S%xb(uvVQOY^t&{7U63<3AQyqyj$T$cFrPBB15Q6ZZ0M?`SC#m&o zG*T}psf3ED*Qh($+7?H@yyb;Z>~%D2cBFaVX@S17SQYu8z74vrA^KW9l>3HO1k(EZ z`wz4iNZ^RtjkimY9N1+Qd{$p0AQ@ZhGJni>i< z*VkQ#&GpXxlv!B}q}ocr4fl703-!B?{(2=6nFXLe(459qI6uTg@f@Lam+Vunx7Ji1 zuLB_qu5vrz&UzC@Q5FUUi)pE^8Bg~JUm_IWK~G~Gw^q~RZpzlSNB6xiDJkLD-ZL`d z12Xj$;$imn(cOexN=Xq&&`;Z6o%vFPJnKpL@{akLQSYh#>eZC4?rs`Z)~j|o9UUgr zERuRt(>@8)O1SdWUiC1O?254$;G zx6J5ZjhTy2uF4)qmivqwmsmAV#mJt)qm!`x8oSly?jEUy z?Il#{X=q+IZwxAcc*7`tGdnwZ>#8#5BhIH(i)|;Ymlx-}E*oW_iafY~SIQGXCKRhT zuKfAcNpJPEto2*%W7eFGg87M~*ZLl8e)x>vm?Ubdp30fDdpMXueCI6dPEv=5hd+4u z@O`#jx3J83-HZ}yLqXF|8(s{x(;d{>psubSvXn;nQ@4G}!~C=U^;Ew3;(Wc1?;0%v z{XQ;=d3&Ky@A<<}u!H~9!yTO8P^b{T67lK;YS)RL@|}Pn9}!##1O^hF=)BL`@>|Xo zv<7+Y6MkbBT)_eLh&6!l8;p&O2{VnuCkFsWt1d5s<1T!;b`21*9F|iZWU!c+7^zyv z#>QfF5_cP_6Z_E+r-BrZ>eg-rIW*v9aUPk#@q;b_@(WNJ!xA>FbM72^RYEb7lEHwlN85Ai1j3 zHgyxY#vg(^MLs}iC=;nm4rs^KA1@}Wsm6B3vTBO4Zop| z1wdl}LOyZ*x@c-@sv6=8uKhe>9^T|Q0)y>PJvX6;LHCNbZu~tt`2pYAt}MHql#}D$ zq!-e<6~UPNg>SEA>EtASV3qJg5Kg8&W&U2ThlEh~*T<-@<~kGp3H6U33@;zs+ojKB zzDxvcsY$=ADQw+B`&RiGJ;PpRCMLB47so&I^QOffRLB*_5TPq)M8c!anBH8%5syH& zh%w9&3Jnca!>#~{_YqYGIDik(#=Vih%tpSyqvuB>?aMg5cc$3i>x6`aw$sy_&qTyv zQ31gyAeXQ!P7125Eql?OidRKcM}=4E45tB%c7x;Duz9oW^iabgo7rcNet@J1cjG%9 zu_9(x?1c-$myylLT#fRh_gk?2*x4f%Zx_h?{SL&F)H<<$z2<@9EMv#sfB*9jGmpFf z{$~fjzmb&u;Q!JWCl`Ag-FBBXH{U<@vuGtk_urpYZab}|%f`qvLn{@(V^ z_4k1Kn70urzR6ca|9iHB|Nd#DE4A(a<}F!PGyV6)|IY&dcQyXs+wH%r@qfi?uyCEd z{2wpC-?RSTus}2T|C_z7+aZ@s`I`W0Dh@!wA}C_8F4}IemUD5Y^{S$h((S;&ou{7h zLAkVi1;gg0Z?CApxKBsuK2w|>!NXXeEJWzu`I~+RF8YUt`t(*jGyCYd18dZ9o3l$wG95BVFMha_%jnzg9W*rRMh2-DHZCqMrhr>#C^)#Eh|G}m-d9&|1Eqon zbn8F{p2LTCzL9@)0$Lp4RV+h+_?ceVJqRYvy*}#2qnjkzkP61N6iQ@gfB*e)*!W_D z+!p@`5(|J%qQQ9p6w&oZC?+V?Fa5|B0j&2z#U<0Q(8mDg_z*}hA5>_a<3%evl39?l z3C04fFDoy1K5nJRZ%|m#p{T5Ux2Q-4)z<9SWV^*bcKMTEc$~9!R>JRXW-x`(mqGz_ zgAI!TS`ozqNGJjY8pQ+5smW)bUHn(1P|Xj_N!|Rj9kj_>3fQp@=&rW5wm05eO|Jm- z{$o_&@^Im7=9S|>XrJ6NRgDs$cJ1ZhSmVK#w|D>kzO~8zqb@Te4?o`DwweO^f~fm1 zo`ngVU!{{|xRGLOZ~tL=X#oxk8^@flUsVW=`aSicch>|E`3Ed0NG%Vbx=pkPJn-X1 z+!VlrRfNdF)Wcxj!;V8*fE=y)?fiM9mWP*#el{8=1iZp)VQGGPCxh*gE8jgp$Sn^K zEAkr^#=nP(TiL(KCf%xOD^T&5k0SF<nIm2EWBHX9vr}i9Q0dk4fprI zJu)(~qU9l5XwowT$&??9)Q+sfLPETUVXb(S9cz^&uPcy-8w-kF#vWqpGehg3W{sJ)30Lr`iSKY#vU?Phut_%kRTiD$Du zK=M3nQMGu+&B8bm-hvM>l7Qf$P>4fdYVzm_X(zSifbmsK_O>6v5}}qC0 zfjg^Q>R!vPm&82-YkC6j{&m^d#-{Mp2pg&Imzr96+uPfr-L8Wzjp5J2!W)oS{4P%w z*`w!LTZgSKEX1h4=@=Z`$iToL7xb8u@JwHW5390d^?vvX?ELO>-F`cFc&bo++%I>6 zfsBEH-{=zU3(i=8yO1->fe4Q8xWZb3U znt1>l;+9*tZb7v(`&}N$wK6kQ<9@Pmvu#<8q?6O^%~{zY5C_;GR?=Jw_nkEWC2M6I zqkk9uS!j<^-2-Z0e(LDloeFm;y(yspKZb&}VkA(2nUrY|f*&W0v5`HEz9ZXpHi=ze z2R*$ftmFrmxp2*{Gb8U)FIL!sJ}bF~%`JE33NQIpQgcd3>;Vk{Zo{*4d>k^qU-UdL ze>}`|o39p32lZW>6#U|yG54&nO3Qhq=+C|t_HwSZ^nGM`T~;#WGsF+P%F6W1mzr*T zzuztA)>1CJBB&;I8w+!D14B`mZgA|^n{3eeJy@qOaTD$uNcqGd5!kWLBxaleS9yOM zE7<}|3$ypJkQ7oD<6OG+RZmMUTlF8d>haFt&*h)`Ghv4EsK0r5(Aqd(agOh0aZ}2vp?PaaC%AI6a&Vp-EH>Vnl)=)-JF{YsUUPIxF<2Y zt~GGU(cW|Ek^kl`%?(Jtq|3?4c^>uQuiw8vVgLAtg+01jIJd4f>#Bmiy%6g1I|y>G z@v%%tRuFhn+!n4c!fY$%zATB5zUJ!HtLfIQ^dLY*AHA!ttSo_aEVsZ0KL?2j2x@Sc z#OYgfTs|xYo%#`&P_ycADMG{!*1lDT_Ah+3y{#wi^6ArCiS-Q}YggbIX_^w1O6Nbn z*!G_eeIVg9w)fz{Q|a1>G@g)vceu^}K8};EBAw=+L+uM2waJHnHWH>1)CryS9({TF zb=OC}v(4Q0_THRdPyn82v+$Mg+i`G(^Tvu+mh-Z6S5W>E3HHX)bd!3P%{i30A(b1T zXK(e~#_9_(6vQ44&c_F^mnk?%L`#8t24utP`PuQSsmUyoH#~^)2Pz}mahRToiRqKA zC#Z*FRNy1?U;a&~8{e8+tE8kBRAbnKA#I@IOBloFAsq9ks{;2Ucx`E(lm<5p*ueajkL;cUad*`8w zb-ja9+ySlYBMev*75qgMfv@wakap9r{$#1Dsv?9Xe1B^xgyEK6{3Yw%`Wt*PxrI{kzSdtw@i4CpIp3b|+?CT^ z>bFl!jFHmO-Tg*Pe<#Z8_qdZ24Z6luloPVDBw`!pU9ap}v209uNL+M?fBO`C>s8#= zdw`k(%cDQSgm>CWtYTGR5+W}__e&DKI#7Q#$Q9a0ZFu=BMSu2?sg``~=MtLL$a^cSg#!%MeJR#uiIyL|vcIQUV2UjFmX8oAOX5ZWI+s8&-L z&7TT1?iUbRx80{zXV{%0yU<^EMy3QQRJdsr?^EKl>#$n-CH2652ssaM`d<|69)@Ib zYia(q`^xhErJWPGfHzHxw_r}(1ZeOHJ|UIxc<`C+?kjFLm*@H^M5&2@lI69sal?k~ zbpyUkM|Z%lT9dz_4TLPwaNz+t4jHZQ=r)RZRp>*wHI7Xkbq;$uy}-D8_ra>WR*ebj zp+6CAIK0w7mz2Cd|Iw4aN!A*0=?|Jn{DXqbCqohY_N#_OHWvvQq?vDth=|}VRKVI3 zYPqu6&gfI&ja|KYhDG@-o@_;*LFWnI-Q&R~Vhwr_Y_#AW;390Yy?lICBU8|U7)7r< zZzgGPh6#dRlu|&sh+_SeeTA;yZyoLzz@9(ZEslSEDf9D6_auy~c#GqDdgM1K35Gd4 zWR`vhHupn!Isz%J;)?BR0Yhz8_!g1*l5VsGQTxIi@HI?=0jo=I5#sIbz0;A3BKv5y z+5Kg_nb@^HpXQ6K2)JM-y%v%SW_DBRt{6BjeAL+T0N%GZ*kxYU@eQw=3tW%5{2n-; zd3Y@an@bi;SpIc0t{x>v%5%$b$ZF10eZ*A0Uw6K@Itvc0$_{z3+9f`$Ff@|S$o}G3 z1vvVeB6oMWQvKn>j{mEh**lo~!sqx;lwVN4_DM>%ja(6ZA&TeDJ{p-C+3bAQDDS%J z;q1rx2XGX3(aS&;CT7x(NI&eALMYXI16``%6T{6;>J zksK7y6H2h_n#&Zq{LsG(ahI5bGkwIQd{=B^5G~@+{n#;P*r>~```Jny;d?fi{IhY%5_8_6%Vv#@yF>TdZ8D^ z6du3tuqRMtADe;nM$K~q;DLC^A%Ly(VB7p&@5r%HG^^0Q55#@(;+YuAeD2~_+0X$I zp9$XUh)ZpLyABg`vKFuV{O`-utkQ-KYT)6&MW11XjdCw44EUF}H;WPbr-nvA*Wr<$ zMXXs@f6}*J{Qub6jp`LpVr_1N3jxJgrM1aO0;wH|%y2f77x_^gc@8oI8`1Exv zr5Lss0hiyGc=b|_`A_m^(LHK?eWf{-s5L-C=oYvKjoQ1r8%8K%voW_^oEqDF2$t=W zaJmAg`k?u0EvItOKhe=#lvZ<(@~W!OpC0a%6Nm+ZV6T&19tq-G{88Yl+orRP#yJ1R zyKE^~%H;%qz_bx6;dHu9_Y7zJvQ13uC~!Yb|E{y;!a*n1;v68AWcE*FVYpNtjBG6y2#tjig6Ov2 zn*hE_x5+H-&2&Ynfl8sI|GI<2NmP@oR;{8PZ%sCq;WbECq}FZEy2=V(C33@#SU<;Z zttcp|JNyc8a^TUW3;qZSMR22SPf4NL<_#N)QP_424aLpnxAlqWcK5|67w#Ayg{}w= z%4_se(o(|y>J;{E>bbX;!~uG^#^Q%7P{0}3-7{MH@$4=QN(!&>hM(>$kD$3fSb*=3 z7=hEwE7c+uX;3nDL(|0me8-+P1Yos)nBOT5oxCK%$}zuyE`OyhTiw5;9>U#81qGf| z6~u)9>EIV{aCW3F>t8c{%PnXZ8(LKbFV}MT=cq%~1n6S)#883FNHECQL`k_+!=Asgyx`@yoHbKY!G}cQtOLHo>p+74 z&8}pq!JqwDuL?z-k}j7J7bh)BUPxPiPKa98E4DpzSEKrz1P822w^%mIQ5< zgBi4rLxab?xk1K&SLoEqlNZ7k7j`i+#%!=*ESRd2=(;{P*$aQZ@$-73zCK~+JQrqp z6S*PbY}RSgloX<5zTad+IODFnZ1O=uVko`j{I!a|c5@l>h4bF0>Yhr)D zqNHRk7*O3cM|_g^oq3px-uXbsDsQ*fMk^b4?ti|;hSGRg4BTEMW1kRUot%ZiEg5C~ zpOed?*X^k~fRVcp!!qcYzk!bANh*#vUhh%nMdbmoaG6N1HF`{VdAhH@Z%3E4g-VeY2uX54!Q>r#ynT<%06F5ML2Hbo;@B14aJs3kbNv?tZ;Le*@(=jf|Kh zCGN~>5Mc=7)n~Us9Ap6((R6c5PT2WG%>yfiti;})Y(?zt5xz;#{`)Obu8pWreQ`s#v^#fr zAiqXQY3V++50L~7c4xHmaAm=3`A?RAiwm{u0ianO?YbI&{0hFHAFYpdBw9jLOs^ zIH`ws@$Kg^%Fm7%h<-~cmC4|rynFM=Nx8-t^?fhA-cvjSpNN}o`L6R^Q~Fo>=fYj( zbsxXPDuC&vA5`&p?UM2~_5zPq%-%a}L#qvzQ_p_+tMgk=jz{PCD9mO3G*p+Tc*UOU z)tUvik^9)H;q~t3d2}SMMbYkcMFW_!lKmlA1NtnueCfipM2ystzR^l*XMlRL=o%`OYHd?3~2VS6<{zW+c<-Rlk;I! zG*d^40~0t}Ce+sSt&2e2?2n)7E}Srr9fWYS*rGw$9! zV#g9-dPDX&)q$hkdj$n);FeVYpzVaqIkOyqe>(%idKnoRMDkPA!vU(#1pp+e;E+?h zX#ti@)qL!6Q$uxiwdo$Cs$Z$}9Rg0$Slh?h);8$*{oAj=zEf4&XmXMU_zW(DwGAGAHgU=791li;IO&Dcz5n^sSa6ND zs+6#(gv8m2=Q?jz0Fu1EZc=96daOA{C+pC^ZA&zdn{%#3AE*a~Y*Vu#8RpgqyKTi6 z#Qw=W6hTL8d+pjz47x)x4T|IQg*|1vwt!F5abT+NF?r(BxDMyhhec{PvHy`K*uY@c z)PMCNkj6*QSf7B_=z+HUq$?^j{8XKE*gqqg(fDO2OK;E%+H@1>+T;S*{@@hz)O+y<#kn(mt#+t{p)TVIay-3y;EOG`TXf?>l4~c9uGJov3o z*3*ScM`q-1JuZ?SmFdv`>=L{nGq>g5C4Vk5uq8gIt7 z9$K?&x+1-s84T(l-E>qtc57Rrqtmr(X(2k+)?ZW*cK!AJpFH`8P>Ck*@0e!)1Ba`* z!Wo-qmmDX1GS$`8wnK6{kLE^DKm?*w1T3nU>XVIGao!sZovd1`4J`yg>_MR@1?@!G z;#a!KM!zN}H6p)9M@E_;V6dmW1E8d46gZaNbfsYX{w8LM2O$i=ws;m46f}6q0h-XQ zXl7Vy`-}cevp55%C*#^pv>st$VI{}B@RD-D1LIDPj~GSf#13awRp;`j8%;qZqA&99 z6A~j`o9LcC4-`k3oQCSReem;k_=lXj{~s?vhY4}#cD>8`d20_r`?pDV9nsR@j{Aht zI|aT^RH18|l8sAWTrGS^49;NsQqt07;b5(SnS7)*Ya1zT;DG#9w6atkdEgz0C;P6v zx8X;XR9WWNG5X3n=Se9W%PZU1B$=MIbbEQbUt%4lbv0Awn)yxiybmynL7Vm;bZeXGfzDa=98i=kKHNXrK{D5v!DC4>tu+yQH`14540FiU4Wn7>i&{eOrq7ZyKE+iH{ zQ|#W@6r}$mLe?ObR(W7p)iyvOF_+&5(CRC^(vuL04)celXJ80LbsC)C2Z7=wRT-?H zz&?a)Ap{HQ@5b#VfOs=KF9f3^(>b6FqHm)I3>JSWLN0s%R66>Hr~_8!=8WaC0v;B_ zVy*VlXJKu7&IH=H1Atk0x?cn(N5Yo za0x0?ZB^EO2&KKOI0z4p%3%2Fzo!sP7;X3O245DbgHZ=W0$TSE&59-^Bkx0d`P7Zt zqW;QDqVa;v_AqYFvq2@i-`r}iC>Wqn>FX!twAbLvlgH)i_Bl5K(6Eon>=%&QYJtcCPA)EDCkDLw zjKe}CWpreGjlA)#ZjEM7;DfhaGKkG{!H1e(Wo}h{yr+EfY7t~z!hixm@8jXwj8E|y z)X_hnIz9mSBlvuTra~ve=hKtvJ73VN)r%%N6Etd2Jjf;EXF%^KAaweNhx=k&Nf%lJ zMT0v(8cIZgGl@By#fK6!X+Uk^&!6Y2&6)DIn5P9oAXbpRI}9AzPBFosAQk|aJnlkb zB3uoGzmH()zF|}ZnHoUoa13Mkg?BcE1EtF=!9Q1XczBq{OF>>i;SGX4ie_5kNd{Hk zjk7_zy$AG&pFKw7t=El5(K+@lc&|^TrKG_EUYrw<32HK|bki*xHW4cC#ful0^2S;+ zl)sMb*tIM6c~?4kTsU(-0?Sh<#8LvC7^_U|!v0Eun1=xYDM9buDy+jtFd|+U*&wG% zrOYf4oGX1_veo!+&{)k>t!%^48q&4$dCyf7ED?D}VvlDuPbFjNLWD2h!S%dBY$NnC zf{-m3zQyH*aYYrCPmpD458G2bPiKVsn`!0PUj#Y)aBml)B1xB6_cze{5HjV^np!y5 zwu1h})3(DtL_AIc=lsQptJ^DQbwLGw1e{4{)agj9cEXQt+%r$H4xk?Zn zE022jveHgFq>}9h-lv3V5OMW^w|81@VUWg?`s(tRB`tb}#PIyZP~A2deIxPxlho_& zLvqj)1d{@p^#Rv+7fjgCC7n}Mhq+b?<2CbprxEOFh{-3paDEfz)0MrA&xai_Md3Ai z*CG;4>(MXrf^XGjk;dLvemXR@(2q=T%DcV{U`vuY73gy??fUc(cWSlCzyVK8@0q(0 z)fx|lmc973NX5Mb1PKfmi7?$$@v_>$BJsvV*K-jodJrmHzW3;ObPhzlZHNfB+(E(l z@g!A1!cXV`a%>uhhW>?h2tkq+$kFqcbgYJ{ZiU`LgdkHy5_p@ zYTnUj@K`*&LN|9a=vk@9Tk3UlhCH)Hgas1%L7YmY(bA0=Sr9G>AZIU5x9>d#Afa&$ zv|Ff3Y9C=p!Nrq#I5$~IHyZYKU@wn$+&|yH>s8+B{twvh)sI^7XNI^e82|9*b#-E~ zFk4!2Up)Gm(Tv*6Cxd-Kbf;kIJ&v=PY5^k`kC>IyYdqkc=9XqZ!TRaGXy?8slMgvk z10QqN>IJwxce~~O^=i_%V`b>!&3CI?CC9Q}w2tOhC+{TR?cT3(#0Sy`2We3?(6YWRS zC}0MF5U(Gt=N&Y}OsW^iK#}N6iNP81UBHADD7yPFaYYqUn->^Sls)tQwqu3fW6Z%X+`0X>D1nhP{F+MK2UN?ZeN zl7`D{A^gVD=W^`jz*^Lk*ULtXPWD$P!x|Td4$9pECda%QYFDjZjRod`@$gGrJ?ox5 z@xa9cgV8S=!7aaz4tF_)V&WT$zy>(QASHdBmncEkG#Z1jL!J;-4Y9X$F70AP6pW=Y zFhzZNaU>aGmJR?3ga-L=5P`mx`R~(yXDY`mbIXuiKD-M|Yrl=AT2v>&-*O4jnGm-~ zDbI%DHlmqELq)}Bd2#B@mfgaN&^yjdNW-6W&QEIQIigcv>YLz0XGI&5&YkV-?DX>X zu6uR-Zi38MppGOrND(*;qR@xx?BWuKJY$LI4&pnxl*LsA=xr15B5XC9>1+oMC}Jga z&|Ip8XhwHH?HB}z6o9yB3~Mw3+S0+`0OozH0q|)JfMLM>slnf2;<=hlrfz|@K81{^ zi`)EE%JuqizXtws?fUh@!4~1JSJulr?{n8lkrHuu|+*$q{CaJIxX!KSH!*PHUGVqi&EaHeL4DHByKbEU$`D4b8rW*5VJC~$e|+R2W_BR$N8n9j zFxg9I0LnRwh;@q=NL4LNIFMdhyr%T99yu^<;MTQd_YPG5sMgs8wa zx3Cb8!0h|@Js&<5)P_Ldw`6qGM{Rg5)ID1RK8ajEG`4#9!W141k7Y>yDqby)(iET~ z3WdtsKP*pn6j|Zy#bUqdxxGSY@5RT)Qjy~VA+vXb?YV+wAUJN^VL0D5QB!N-Ow=O- zk=?{!@H?Pl{9$^_)o1!L-V4DB4i3M=!iqhqz5V>E?Hg>UC}nX0^4u5XC$3TSWl@sh z$UZS=OttwTzJ*ClO~dp@7{EujZ>IOHuPeR@^J!%+$=@mZ6L&XIj_LGvb{@~B+WP}U zGIY4TFhwgIHvg(Pt>);{omhPcl5@uSGi8(Nidg1J6}N`aK?r59i^7a#Y568;J->Yyk+pJlIA zk^k3qQhZ8j>B#RZm zWucY*WuF$oS)?6gVvX&NW!3D1;V6UMJxL;k3<{b zsR2$EskxrOtoj+y>VxoYYl5{3sb)ZxfFTBt;PeG^-w29`-~;4TuF6suSJ!yBuq{z% zp%tq4#*)nPpEpMCOOEgq9ju&!jnAs1_%^0nn1z(KpOM6M?HqI5Hx>mwf8Zfkc-c2I znA6@s(LM)Q=hTMzZS>OvHL?M}!3bKS`U!4OA$QHG7}HCpvAkB06>@LRrFItrx`XRf z1=*|IbZHFpAPAm=GWm>S3j_y@zv1(f!ay(h++)B_M!HlHtsk8z2h}6~X*GjE=@pzY zmry>~`0WCI#r)uap=%e-UvLb9AZ)~(C=Ml<7v{&^S6*0lOo8yW0_3xi7$Mp|MvQ1h zD*DsT7Qp2;U+umeXz3a-H8ax)LqLD3YHWrS27aREyzYEnQUp~*1C)cSxC#}3B^OT? z9wj1U0j*nPbV4^#(R~&8sk-_MW^h~!+I=su*V2|_Wrs2Wq9`VF^RJ?m9%@dD#&F8P z>?L5P#_LzET5#>twSj z6)jGBS9BA^N=mt19E!EjQqW9sKu$p+FJA@|eF1z`McN)mf~Fw*&d$}{JX7h^h=)7I zSvTHNQBm<)4qW;Ug@jvJSh%5P1Mv%^{$U=s3n0Zu^H>l3z`s$0m}ie-_=9C_q>|^$ ztDqXaV5Yi0%MR&Seeg^hRU}Mb2@;M=bsTWGm zrO8t@(Ne6ERbgZ#~$Aw34l)-OTHp(G2kEZe69 zgG?QEBbO3JBt+Qvl)c7zNi;5MpV)P+7XH3n47Y}ER>S!hN_ARWpGDl zrsu{K^!Yj-`1qt}f=`MBWR@74{q^fHCN9Fy8V5=v4!tBpb(e$w-0;$zq}zEkMDumq#q z0+%TqG!Y2IVq;Dsajv*k;*hC1xIv}Bg>a^3y;6WysqCrHLVrn>Kj3QNX zY2RiL+i!#}e)(JegCchT2T%A0#EZOr*7Fc}$Q)PV?dw(C?&{86j>f3pFiYz%;NHU( z@`kBSjno>T2`-gAW($Z!a2bS^i7a2YA&NoA<~|M>Iem*?!KQLhE9Tpwj2~FA_wV1w zO8-Q3O0<;?0IhW1nt@y6Q?J&ZJjCq!mYJz3O%#|JS6{MpkB%nZXK^{uaP6YDev+=u znL^wa|Go(nb}2(w6i+p6Px^}aM6oe3F?o}Q*v`dEBN!t74FQLfv#}WsFup9VBZ8&r zw?U;mVmhjUOpt1$?BeqzJE9C%+5oN{(U3b*w+1xEVI0m6KWo2TZS6J6F zhOOwgVgSCwQR@ioQ(xZ+MDsDl7wBqw4N~?JF34snyo zjvdvIdQsWR9rwznb)X8{BJoaa0Jz=pR!dh)&?Z#2o6U=bgS(*h4UDU$9!`5 zPfMX&9_$WpFxzz)RKh|1)X3eUS7HzsC2pN>Q&Lp?hJk|V=tug?rwR&A;%33ArUk2# z@a8Qftp{I*^9X#QA7QW^K?0of(=WPJkb&X3?sIc$5RfI{l_Dq4!miH?pY z8NFI&g`7!kD4j^JiCUXwTmbgKnE*~b=D`VoQPWOw60wiEq#Xtxo5{>Q@If$$ zd`@q=a<)ag@*z|&t4|MT0wQtJEMfda6In3YsiP3s^%*uHvWyOJa5XHY?Kx^6N!rzr zgK|R~X_%Q4fg=o<7clBKJ3-Tbm-XcAtW$H=yY;7&qMV`B#{q5}gb}j!rQFGr{}7@R zp2hOqN@?x=hu~&yfWhYKXwk&yJqTw_ctA`TRDXS*0y2<~+}>F;G9DQL%wPd3sxFj1 zO(u(NWGGYwcIhw#LVKn<(8C3I6c^z!b6>993hZ6AHLqSe9Yuint;K9KentW7>SxJJ z*K0OrN_8mCACvjhahHr^BeW!_ST}T5H3}pknrl@{FC?ICwd+O_Lg*zZrj55iv*N(= z4>OFwXdePaTD#c^pvPt8U8%;+U!%8GHL_`FX(Mq4)X5xm0Ep$Kard*sayX#+(94~^ z9)1#u4->WF2mw$Cblgs3Z6JD^u)qly)5yI-9LI|555`%o!u@L7v_QL&pFi1wZoWGB za5SM|(NCp#is|i@WOaWIHn#T$#|8I|SliOsLT5b%`0r3}p}2_-PtT}_1s71JR&a@P z@805zOP=_XdFNO}F4up+X-{m$ygNgq`pU1OoEGEza)z!t-?%Ywdp(Qo!XI3rC5A5f zYO7*G+l#T-2|&6!Ok=Vd1wAWK+4V}P)-sQW)H2w(2}`(Q^Ggm3*xiZ84x)FUT52}5 zqWjk3gaY7(RxAgOY%LW|U2?rel)av43h&|eVta(a4u--0D3 zOgVzZ<7v+4kRBP_B3a&%vr_v1v|yi%>D} zCxRC?P;9|Si8^tF8G?R`z9>0JfLSdOD!?f4{`NKZg!YPqfUMP>H!G2dlL zYu*5ad3A8z~`mRAx8Gmd*yvUi{p4R`XW z~)HQ_h(&B(M37yW0|$5JZ03Cl>!sUqYsEP`PJ! z#Psu1$g%}!RA^i#Pb2C&abpLZTo7|w?OKT@!C(021VTa`G~aX#{zPb~&UJ?_65FVe zZ+tPwW8a&P4rrN4!i~BF?;Cet4n7mX*F)F7H$OW^L=H14YuB1^+~>CjzX3!-8kgWr zoQDaLX|{FsR;MDS0H$G+R__B!Rd1ugP4qku==O5k_ygs{Fod31mTe?P#GQ?e=HjF; zWg;*i%)rlKD0w_B$ayX8vMCXt(W?LuYmHSDg~1LHoZ>NlBq)@Hz+j z;Ecm)i^#Ac?ntHHUF%v)SJZHCz7_+@!WMGs?ZP5F0gm~zGu~ZE`Aajcm|_x&=o5|H zdKnlV@ihRQPCcESuL-x0wIe$1^mEh;2Y!s^7+)CVK1d)Ikc9(AzFW0xA`a7mp@7O9 z3o9SD{Dtq$MZYw7?4QWE-|DS=(X?9>t`bfjCF*V4vV5;;Q_3(u_6iD^+zcB>G;*3r z2QOv34f@m)KfK@A<}yYIG|piBYT!`F_arQz9)vYpPZpwgd`I3yop6xKt!NRU>1)%(X{?-_h26;L#W02fs`#g;@P&G`ND^R4|&Q4R+S)y&Vm3iC^*!{4Bjq9Ip z@IeY&`C!LzRbKQ*4Vi=zW*8;E{}aX@SeW=^dA>d8t60l4qZR?Z)n)MQGofC?*tKZV zWkD9tTIGxJwZqc7!)K#EH+XR+ja_@jqFgoSRjxS*YUe_XRQW{*Mpi7^V@yDq(%5oD z;~E}0QyF}iORgA?Rf+}h9*T_)uf^q0qp@@tAN5O^L>BIT1U5rF+4rlcH0D?NrprGi zoCcs1n~bZE4_ll@iJ}6|rw*t06<$3Imn{h)KnJ~(f}~=ZKa1X^vTs6(S+&<)kHM|f zP7+*1Yy=@+JGNw9<#}|wO>uX_6&5WX%LvC{vBgNy2)ypS>E_r=msPhGF0+SqItiBtMNx|#T3+2glKR< zSg0G3pykz51IDWZNx;c@de#XK+xQ^p(vA30__k)xzwFTt?FOmlew;7H8%QSC(DR z72P_AvgW$8F9GHUHw|@n2buD?TK91sq15!uD2v!>Io8v#!zKwTn$&?pQ|Y7Uhxz?t{2K8oxY5 zWAwFuHo|@Nm$qVF!ef_WKnv}1VHHYKEq^<63)75An^6DMY3-`{Hy?FunZecPE4pHh5uOI*M<#L92Ru*y+{4>a-lX1Pbryh zZfLTR46PD045^dF^D&HF31E_28&h%c!3LXP_Vc_V< zQUQh>k33x9Wk>z${;`@}eAr-eZSGb^PO z44lCyV2=F(yC0zH!BYMvv~Y=l04!affdj`KUK%bGb)+Lj_dw8&%{w{Q3V_~iLU`14 zdr1gx%!`3Z+StaARO&*qliYg;^}B@Mj8NUr^KZC5Bkd6%-wP5pGxHf(B~bQxQcc*p z(-ckMA+JY$~>c-&b8ou&(d3_qxND!BZO9GX1Fs-Bn4P% zRM8z1@Z^SnHUb8>?*d3b2aFC;ddP6~EO8Vq*kp_<;rV3N))?^IG+`9gOTYwDV!{$C z0Kp%A8AVChG)FCCIGRBVU@`~Y&YkE_x8?`A6#U;3$cPNc9nMvtsWn2S08N~EmX2HF zBte2el^jZhBp}o;M(c>lzaZNj=e7=T-2vr1u@xb2oDyUws&5&uli8a41?I*4&m_$1qk<3g10wnacz(?2~%**SGS-eGZu_4 zlcShMH-J2@|LoGeua=qyNqG$1`q5e54e*IREdJaCP%VW}8fae_#oy)DCxVekWZ;ro;r!DjfW3n?CR27W* zcqbo^K{SIo{o$H;OL%$+A1fxG2m6T?h%S8_ng_hhwryh@e0x}3oQzY-@8@u`3ellK z6a;rH{H=}r4X9+mB>L0#TjIm4qh{=wbRJ=CuP=mM&o1Mu1|GCWh(@b{2Bc3Bv`S|6 z2kyB49P@XcdJxDUpLS-gV)X{!`b~e7A9j8~evKt-hpaoyG)rqwo>N_mmSUZkxpxOETo7yU3+EOl#~d_^VT3G z8ijv|&_%D-qZenI0u5BDUH|ys^g2~*297Ejqj93Fg1OOW0vbZJB#sY@am+k*<j-^hPtjBXPkYF|*Ux%~Fn>%Z0TU zot6?&7!jQ4OUHR`Vs^F(LX9wdf6s2;EnrasUe*GH5N>@IlHOutT$4&7T%0W2qH^&C zn9`&L8cwLK5d3Lnn1t^CVDHVtv3&Qp(MJO%iXt*qDpM393Q>jF_1`G$_I z9-`|BxF!@oToW}R3prJTuBO~$Ks?RX1KmU;x8LaqjMBb$mzC9OQK6C|)e31X@TS7a z{|uazP68~!T-^!eWPU>M2GGqGXzg_uc90b(u85KuyWTEtIrrnFJU4sIg#M04sJFdam33<3IaOo9|${+*055>kR=SNsl!>NvueaJ7Fq zuduqvoza981t2v92Zl{gj4tHYbDL7oS&wNHSpOVEN5TBF@^BT?*uIfz892Ditz1Jw55BTs(<;N&_W}rfKhFD)f3x_%`Og3TXZ`2DQ2y=C z{^xG|=WhIci~a|1-GA1`|9fl0XRZl`jA;O(=ZvHjf#BqOhAu_6Tw5}19d%wl^5V^# zBZO-q1vV@&bvj1Tg(D{d5e5$AP$P4YD3PZ}q$UnvwpP^>VGpywR=2C-gam)NFhQma z=C}a!;aI)nwJ>?|p}e;dCV}4q-^Z|DKZGEt4CE&26-hmD4UPgVEZc2uM~~MPV%mp% zHVjmuZw|+Nr`MURJ#wVAfzVeGDYOl!EBQ1v>tq%mVC@tXzxeOuNY35=uITxV>iFLj zJv-oiDzO;~`Mcmr5>F{ zcShPR3v?QU(g4^*`W>Qkzz8Tfl;fcIKYEs)xh#Te`x8*NM4Z@`z$l9B`}_%HkK#8C zz#!V=lSQ$6F!cmH>l0)RDQNnip#CSt7a2N0osv9!;nwz?uCuE9J!f+Ptfip;)`ky| z9uYrbjw|m{tB$7Zm{QcpNjG@fbbH-7e=F&1aInSaXC(IaF+Q&2k={Zaa4nLKfNLuCyn<*I85>*7hj(2beCQN+0q_lEITwn;cH^m#9|3cpf(7$Y6z!xd zQ`JGUh{Tivr?~D&6fZhJF0_HaO}^O{Rv?=U)L|BarX8wFGj-lN3*k6`eJ-QyBAz?s z`G*sB1Q__~sonn)4%N+}@gvd;OCAg?%l}n}B)N87K8(83?s5k%TGC_M?&(7pJSTca zM$%8|{FFXh>TwECR|~W=y4Dd;?gPTlgdioU)vI`-G>YJ^fEEdbTRR803Q1V1pdFO> zG>Cy;j9o@dpfxLeS%ybJpjz-vx6ill>05|Q`Umi)fO+N8+MvnsiFbSI$k+{5?S*?k zi#D4V3JT%ZtovnJy71?W+|vB-dvaG^z?fh};pt)>5Q7OwIIJ+dO&a8pA;(VZIL|+) z0__xaiZ(QDw+yK|G6Hy#%oY$Z9D2U!YD_cex1;-bUq2He16@5#D;}Zev;+@f6ISdn z5SZtgB7c&s^SKu`o!^I=7RPIMht6S&>du!k>mAiutbsa-;E0y~oH{1_3y~*{8nBo!ETq~vcbbS-U=duzD7D=Z!x%(N z1eH)Hk0X+S@woo}cTfO?K|JxpP=&nL&uy5}7% zti}9s9y(C05&Z#H>vmOOI9h3;xm7^Z{tDGlh+ru|`;RGLqbk~ye5Jw=xK(b8G(ai$cI?D zoq}W0B>G+MTtmf9;X?3Kq8wnvyQAU23 zLkC=x%&WcZ?4H4jVRW1~zLN-lunw){GaBf^b0I0PDn@s(E9LrTIrk=eBZvwhoe+d{ z3cbdD>=ctyq#-^57XUf1u!0}8~9xU4x$Zy<9TOsqkuYTKmtXyCm8S(5zHPXiK7<*bB>RXAGMEt=kEQuQdiX1qcaIG==9ZhfHbgI%oU6OT=dq6S|j~~yT-?d68*c35Vd6f1o$!e zI6|;vyiqlr=q8}91n<=!n!9`d{?y1=e+ybo6?bHUbI&xmXU$kSf z_XR9-uwL##5_G;URzz?t=nGH|$Lrg}(V{U!8#Er(7V*II&XJ3XuYV-&T_uet_KpqO zA|Ndn0fEB3KESjxb9;1RKoE;y0uHMr_pX1_D;;@K&A)xS1zPcDFWgo`p5IVPeS^v{ zoOqEFQidKz-k~$_I+k?kKSFe@;S*TVy3k|f>{_c9u#NY}Pk^KM2(JFz5YTBe=pO-9 zf*QgMAW|YlCuuN`P^_@zX!Zg|C4pyN-8~QFrU~~_64oWE0atH6^&y_UvzX$^Sb$^^ zTlKkSt7FjZfS8iB>roh9H0fkP=W-KNn)!d@;W({?hy1|oad1D zdI^7@9jZ7(p6{<${h@n!zsrxIy&bpKr$lY{TMPa@N9A<)h}8^Hw!!;fHGrlb=TvO( zwdC#9Z^j^)d_VB}J$zH!GNEPJhVPrZiNo~-4%du!_+&mXiH!NXnh)ivdIpnzewEbr z8sH7saPt4`5nnmv6%OS7ip8xiLFAXQGyrHxU%)wX=BZCX1h{5Er$g`;{sbr644fvZ zNb85 zw?MHSR72r&9K+&P@|H*L8e#{4+y$vGi~G+WC0~XD4BS!%(E}in4dYy!)Xt$F zX5Vt)K$nNh`1SQR@Tnge`vPXPCBNJ2DF9^hLWXK@#qQ($Zj+h=&NLvb#{r(7#G#k zXh|h<0>~*t-i{e>hHo=ruXuzCg)SDsHTP#n;m0-*x;f6>cx>t0olzhX`P~F6Ng19c zRLxJY=|jX9Q#-hXVrZg!X|ZKY*<#&AaQy_fJ@xuyI2o%ZMF|YEAAFf2+A`O$|FLe& zDMZKa0^zWROgC?ibIJ&1W@Af1sn*zL3q4qE-w*CzsBV+pKVak5-^NLJR_MK++Mdh0 z0pf^Z;KRc+Sf9I6jN|q>s=)Ii@6T_bgo0VruFXfRi|UAk$NJ=BdORX4YdSi*rx35$ z)SZCp*6;dt3oM85^(o(xhuKynkHWQPX0{{bdRS;EM5~v9VCi~(m^%^0S#d7Q>fG+} z7#)+;ubenFohZZnAr*>G!EwR)xw95yf3Q=RW*}f0*XXu2U zf&(g+lPA?e2@#j#xsqy$OidDUW&e{+cY8e%NbuC?`W=0i?yjpY7oa8ATiOD>FQ#Sn z15NQzhuH0n%M`vH#SW3Nh6)16HQ0?vdnR3fLZ1Oq9zV2h+L#b@Wzi%S#oURf2-YpJ zJappaMpcN6qF_sqhRU4Ke7nLhzZ-O5c4(Vb_X!QJ}->K{dy&)gHZ7Wjtm-RQd5ePxapHnZn&j<)>%CF^+O zuFMpC07v%4&FvcuR)Uy;A(IHf*VAyoJ1%k4wk78s2y?JGembIpM&b5B65I;cW@@A$}>me)}FfF?r8X&gTWw>@_J3CQA zuSatba275ahqBKCIz9}}me@SOSp!SuaB$N+2!eQ=+kuz!Me?AHg)gj*a9xa;;=413 zT3SBXfJ^{!laK&Cy^T=&GjVdRf%O=18bh1+xy)N0%yxxEhHOttNy%72+}_V5JQn~jNcM_PpID&}CT7IMKNxv3 zH`U_+{GUUk0y{}9hERHeoPgZUlf*v*8$~bXmMie)L8|Ht+ZH4=BY1|E>;bKPikM+h zTH@v7QbqWOUf83e@@!Rz)tO~QaKZL#MYG`GHZaeMJcdl&Fa zP<&7dm|`D_*=x-qzGn{&1?+JJdK?N%^L^}-88I{~C}>2^MR?NCSC`xeBhoNwfSwC+ z?AGlZKaOqFEIWfVikx=-?(0$QJ}+cT70&6sg`_K_)EjD(z!zWeMrtANIH!H-?D1Yi zy3lNsx+wC9dtO=1^<4m{k-*{~2uvZaqw{uX^OqrUTP*g*gV+K1!Q!rb!3)e=t_|j_ z_lZ(qJ#MT6?=?6t42GF+9ppWzOAfSc7X z4wNPnPcKw5Y_*uMX2*_19bL*2v^PB7@1LHh>-fE^HF^!%EdnmzpfN^^L7RBZ;q=`{ zyXd0K))P^)(qU{jVJICqf6(@R`xbz+Pe^=Ye^h$ zOo~&L>iYGu0;BetF*c|y!mFl_EN2 zVVfS04))6}~gpO6j zs7!XPG2E$w&-2wz9#hN-h)FE&g3UkPa%0pTfrI4XprN9=`Jz@sg2vTW<1pNgcThZu z;&wFn!#(~GCc$goG0zm}U(wYY@v<52dx|EEvf1Mo4QZ%ipCXnRnnx>#Tc5(?E1k8) z*c3#SU3Yy!Ex4S5+A*1Zi_Thsq3}V|V;UODE-o*4U!C9edb_0L31;?FB(y_V-+1f* z%s2mra|OFx3Vd1jRi$_G&mVte$0AUJ7@m{$Sa&-tZ|_`Es?%~^f<$z&q@PCnPToRn zlG(5+M1ba21P0;CUPC@!IV{X*r>|3g>YlrR_vpAna#8;-L5J_yYMGhSf(qReR1&or zuD6zXd;2c$=M2YzfD$oa0M#YCXGTZfp^>O_fd)5P9!A<>uMQO3ix!F4I?Do_5il&0 zfT55dFGaF1`A|HHHS?T_^9kT+uPL6)*`zuo_h zl+D1UwP!Y;J!NCF3)T8H^anQw0nGRU<$ShN=BTlcqD?%<{g0nxfQ25EwfXcUQhKa^ zCe!!YHT8{$ioPAfbq5ZD-J6vU@|O2OoygqqaYswQ z`%fEScIgW!hgsnZyC>{?vZoy}R42$$1AbR@-&aHY^vXW$>F~X8xzs)c5gAL^zz7Sh z;$GnpppL_4P85x*GItS5e8jXccXW0tM^$50K;&)qOvX=gj`yR5#ODJ0L=%N$DB{zN zN;psfOU`)}a!22}W43n-Z?{=wb=$Lnu}C$4Jn{(^Lyh4 zXN1==Q;Bb}`hB6Lc<169`f5_IUo}>kEMLBy>golbE9y|yc=q1NR@0gbcjwmT^*dG| z*lh7b1~+>&dD~)l=}I*^d18#N*B-@K#yxv2p5F{q)AZ5SMiN1nD{LNEJu%uG2?I9h&W{Rn-ut0&6770rIyYcv z71Y8ZrFt?0JGG=&mCA1Xf?A8(2h{T(S5ISSCpUnLB6g)o9F=e=HO!t`DR3!^;Lawk zh`hsA{`{gkJ(l>`G&Ca>7;6gtkgTJn6(6%z#cQ{5ao-x27i&<~XIj_-b2NdBYKOam zw&GDI+8d7M(8It|L&4Kg!SJrbT{`_ceafM>;(+`n|`zZ2}PpSuzvA9HJ z`Pex-`{m^1)RZMigkl0Fb6WUvy>=_QJ`_~jqRw6(V5KfOd%ICLSsa(TX7w$G&EYCS z6PCk!=AiI>jya{ZZu;Y=#$9o|D<)>;2-C~?<^DIPk+ z@FCpd9oiQq&*x~@Qc<6`PQ8)3gbiKjxu}z+1P8S#t0+S7O~@Do3$K4L9=z;9uV{TO z;YTg@?`Iw}4%u8xOg;duPs#P1hc-f4hHv+7P20C;T5(5(#H9&qAXOWb5xSd_Zdk0x ztiDOsO%#AVH?0(dKm*NMN5)0i40@oyiUH8z_5tbIC@+t{Ja)_+B1%r6OlEeTXinFg zDp-6wzxfUGD+oJkd))giM$m7N?4tv>i|R#Rzey4>|UnOBO@?njZYUtssB z!hIP1dk|LmG69D3Zwx1|zWQ@*@19vyLxG&HiyA+EWWCCTnGuuGARG{8Hjq`V#~Rad z%F9;)0ae)t;G?{Uu?z8iq%j!d=`{Au2pz>bdIsy5Y+1Ko#@PBl3v(`(C0BB@7G9kl zYS;#(iy|<84l^1glMQqCQsl@26xC7es`;`MEd(mgJR>Op~H+Ixp0#%{h zL4eU;!{`v9X4B~EpP?lw`PpFoU~YCcuo@7lGENaZk04m#keCn({l{F?u9Z!y7{jeX zhkgy+PXc%WH+U2MLJD3-k@FgW_mz0TZowxIRk5Jg%_#V|z9u0dTKs~7tD$)EM`|2K zX##-A^#c9XaY{iES}&tQY*+y%Nyqv>*G+HbyF35zq67!J2-F*N81_h><{7w_hB+b9 zEKuVv{B(NN)zt;(XOe&oG(8kxKo3}ggE*yGwawI)bB&ijZ*%k^+eOpC4^5JL>-+JO zs2UlVjOGCt|IBRxF&BaHK807s@`&>rh8`YB+b^U1f{rTzTP2WTzp$`%JO?~(LR0hw zzGBRym>CE*ie^L_Au-lR`A$bc$+ikSA?)g@IIPzkK76Eq)n91 ztXKVe-_a&=uTfU}AS#vux{MfzPI&b@>*cO>s$r!h&8V(h_heM&Y%Sc_f#F8mV!;IE-b z+x1W|t7ZHv54)z+y;I^SiAn4X1IH}tV!^5g(SD3@G;?z02+Z|<{Ys1dx1khvhkNFD z?%udT2ewM6=oJhTw+ac-<2)dKmG-a%COKS}>L2 zSL8QA-WZ@}vp>JF%U=g4oPdxE_obb0OQmIGO!4b%ENQ-lydV3I`n7;QIQL#+GE`>} zJekRbq}j9=f7+-9271+nHv$+A;z@jIaT7aAB z0Jp*^FX2c#YTyW?=rxFqC0^94R;^ONv31VYmNY3y3{zxgvUhf-!fh`YBtO89N6^3` zUsnNp%iAcCAT;K@2-C&hUWGnC*!(i)Y*FVb}ladSy{UQerzooMXYEqB)&*g z<{;p>)amE*GdMbT0v->*<`ZisoA6R2oKuACgL{8-` z;w9%s<3?hE$^2mHR=@!_@YG47aAsyEq8hi3bd{_@!wOS28oUOtFuecn!^Uq&2E?=3 zh9Ez{0aTQ9V>qPnDX-hx|3>wZ;vJxE$)>}B#kV?a>u6P)c;>TlmGdh{9k>A?i!3^AxgP^PhXCAiP+Pk&kK^ z6vxhv39Tm84KX!GOrbO|01pq z6|r&}V~8V3UPtNd_noAPN#-XW5+q-cbn39H5^gSn%IzlNvo5v2U<6}(9hS zbcRF%B1lWws2V-{GuSAA2I;}QA^F~<-3Bh(;eY0|6QC*;Bm}^`=qlksHzd z!ugg9+PU%TFX~-N7iX;=$b0i()Z_Pt&Mx#9=TMMOLl+oQ`V~cYC9V?rRVgjgIeDOT zwjtgM=)jBbGF@OYp#cjaq|4uL?l`oJK5Pm$bz_jcd_n(s{%jlob_`5nOq?BUu?zsr z$#s_=50p;#uHlk%XF)&BKJ$(8A;sw6>ieJVa3a9%S zXG;}t-Mwr1iF>(WYild*W+Z^isiI>7G9dED9dm}H-#}v?Fc|1)n7d=2Tg3hQR-dj6 zSUt}h_2lTc_6VO009!_gG2LW!F?W8W10$NVYoEMiZ0>ki>b{8aSWpW5Jvv$n}Ztjr$F85mF9d_uWdUq|LOCYpSNsILU{RzP3DR&r8bq;TryNo`i zcPxTl2*ov(yWznDF5j#OPI1jygIn@y2WY>(X-AC9rH|IUo(`TZO*828gK!HxF!0$+ z3_l)$2henyODFS5vWQthHq}r|R$N01Yf4DG+JUn7E5!(#0Lz`5-8TqyVPX>dy>J)Z z)z4qIT18G%s>!TrY&(`Lal9a7X`hE%O7z)Mc(-N+EmQ(Xjx)nUfkJ^}KF(lMhIS$? zpeaiSLkGXf?)5za$NFAHF-Ca5lGl!_e~&zv4Dp%IHG>TiT221p9SX4M&HeQC7Bkr4 zjbS03C+cczUqgEM%yragtOE|-zrNnLJuvqB&1pbe1ZJ3)-^X;W*8inP>{sA*^77rr zTB8tM60Y=(*{_L-N>JYKqP}R}dzs;2+}PZt=MrJQ$ekCM0uE~>Rv%L>?EEP7-bY9Z z!0qO=Gt%ESK9ADdj1t&6^ej7}j=D zZgg09p6>56em}MSf}MWRW;pnHC8SL*nLB*-dGy0~e%^!Rj8=`V29$+2eMyo=S4}R> zIC13iMFHRM05@NQI8x>MaoF1ihOh8WiF zdz=AL+0e(7b@1M!p^$W$dQf6PI_!JI#R3FsmBA_3v9U;$nte? zun(VOQl0^X7Xz`3;Dr>h*Ry*5cJls#=9-Fa?l$m6fW3)WBgBL*8@GHO)6^t#2t*On z#*N7*r{&##QLvpVf*sS*(dp^wp+NKwEjT+|+xMP1wE(5wFX$`?ChEN~$%dr4n`l21 z0O*iFj|Lg9)9`9s0|?9)8y5C{R`|yF#Kmofttj-bRt3ey_dVqCjvI~}>ZvW`^5@u! zU?GA*0fI$#7X{)h7@6{bgUc=Gy^G)yw8MS4i;AFDNZX3;HXg8s1%_H{CiNSq3mtdHaaM_I=aQWn&Kyh- z1T(qDLW;W@zXLhzXv3nLfs!*p34#sQ^j(Y?AF++tWYP6!rmhdB_y#Fwm$7Aq~ba zS+nF^N4N;HK%Og{(narAIAR!_Pz&Vr#GE#TB`OTSC&I}XaC75_Xm`ggy}0yd*lRc7 zqQE})FRxaD*`WmvMxg+21zFhEKeL);aU*by8#o1mS}$^Ob8ExXoWW#Ca}9f8 zez5`MF_3M3rp=qfpem~X#sOTp9D}0Uj4ssJ*SvlE3U}cbWOIF>n2?uv6{`nPI`t44 zBwnrQy)##oF2aAcH?LcQgAq9;p{N`Bupy9?9>@bhXI=*yg>dK(KkVnSgtBQuuU%V4 z6{y95tO5-N1}Sl2SHTNz#S(`8SFA7=`{g+}CLK9;Oiz{&dPDY=eHYSbdT{)@!DWHfRdA%cER2YkI*Zv5dd$AhVLQ~n6ZB_7RD7WlSp_>f zZCP(%&WIs01wIcC8hQl01Y(%~eb3+qFvAyqex@yAt-%c-wl{%Q?=bWI%xl3NQ7nvj z`}~0UHcUQFNil^4jqh;#IskYm*cw!x7X|`|x*}%XCP7g^+A}IOMo=A;ucOP1ikwzs z(N*AWr?BY7&@r$Z|MsNN@1cXGg+I}*jCr7L36F@FJTD{`%}nxl|0bx9z17jxWyT{# zoo52Ea}2~p(_Nco-F)ynalA8vVSPE)1}n|l&f^nEP%;L|7&zq#7X*EXP=OnXn!UNj z+ifZGz0-4MPSV+H^mF!d;u2TK&&S7$(gsL7f#H+Y@0!?o_~Iv!I8UIz%8*%y&{m+5 z+S=TTj34;+?tJlSqw~%)P0T?@7c*+j4Nn4B?KwwYc6^h7xD@#)$mt`7n_Sjln&H!xMU=4xPT$s( zh(~N_k8mw~-YKw;Jd7df-ZrvVBh|Fzo5OqVXj1!OOPvPk$y#?7K>)fJBP0(bBnNV{Irjd!cnF2sx1C0HBdW)>f+VnX4mk%2)8`oaeAB4ZqdXXCbF{^k`lmJ`=Fli33g9l)6Yg2lap(W-eH8xv85&)HM_ zPVE3FOQGM*PM}Nxs2ZVbW3geA3~r=`jC!LGCP`;CEbmak5Iq5aE_X|R&_3>L#)jZc z4?*W_WPSr_?Q-dic5hryBYf8%RcVP#-f4_WQK8rm&LqleQogjNt?29Rtw+8G*ohB4 zO9R7C3>rRJNK8Xxue^heLIfMc#SyfwE+(Yck`UzzMr=+J)@>63KYUdZD^O~rJL)H)yxf9dh|%9r<=i5igoZhN%)N83{<-!P*Xmht4&ht{5PF@rfJlpi zd^yQI!MK}|onjO++;FYROusMyu_25xq@BMVp-s~nkjI{sNF891>fFUWK4Uw)=`jY= zcJo-}e*p(qh4Y^}^?hU{6zldL;;t2-2f|M~iA4_0nnsj4o{kFcE7jC0X8$hyu2rb1 zaMjO=cm(YcZMCD|vBE4*L+!V!B3A9T3SZujVlZcDrIZ;CVpLTUi&JGwn>^opp9*;2 zb8FCS6#mTuE0D<}d8wm-S>fDcVvS6@ja(Ulxs_?OGY$3yZm#_{~t3 zp;PcwsmDINN7QkItRX=B8g}%cn{yD1uzr-iTO?}bEsRMTP!#?sLlM*tlzAoiC2bnw zndb)SGd~)DF}Or*MQ?}pNOy%Bd6RK|?-b&bUzpf{cp63u3@R(I{J#AB8G;r}Y~2i6 z3>pfC8d(Vo0iT}0soHN((YVG)+w+qD1fu1E+?9=S9^hZMo(6!$H>jAsa4G<09!6C(i?aRHzMRATWzA%O}uotndkEg+=ka%QF%7yJ024={+ zQm`v}=gGD3*VOAckuz}MM|T+_xPLI!;x4g^8dG4v7D@sNL3T_-TW*K5%C~*j9I8YX zRtNA3nABQ^$;pH6?ie5VytOor?8Yz}K!tY=v47a5uA%uSv7;3FQ6{KlIHAEcdAUcV zaBG$v8wzQENb3`DC1ex9#w2jw>=c@1@YjJ&o+l2B+F&Rkrt~9AVbHTjnIh|WWXs{U zSLuL`SqyV8*^8(>iH~){)t4wO;ekO5(Ti@nBA?VT=ery}*#+2@KQRX>F2?f6dj(^m znvjMTqlDDom=Bi%`aRqC5-4kCp zjAAWb%jx$lcB8qXP9`9jhr9sy?{mUK*C!^19V)UdXkFyzfB71{Fjm##UCu@7ci8Z3 zjT$(fi!D4JCKS_X1}H2W&$k_LdJcRdu=D~RCD{u}^y}CXA@>mLh)sfUZ`9vK@{NS> znPmn$wi%_6-pgb(8mOWLvAyz-Q0}S;!d9FY{Fk+8=XY!}feXYrJsVu6vJ=|>MRHxZ z$Y2yK6!O#wBw&9*rSxMxHa6|CiC@1I-~z@BP=~BJOeRo#P)~1zGrPgBJT`p_>1n_* zQdmAP8gML=OmWD$hd6Z}eGV~+!4f4N1*jX^=1HN?FWPRPr>?B5yg6{dbCzuE_UW9c z;vwVMii=26<}8wNM_G;HAqdkGGNveH1K*ZFmI2e65PS~gj$c4R_wF}(swZ+s=)}<# z(h!&ie|Q^zKdm0#h42a&;<%7;I*(*Y-j0g$$1XGv=PXp*Vg(0u`|F4^&Zkj2hL$o? zL_-cw@$0iDOP*Oa4Wdq{nO9(Mw7+l#mAo4<&o#V~i#w_w%75<38AbbHy%$fmZMa41n)n1gP<-a-Oe6JL;_STZ}7 z1rq@nhC?S0kajX5bOiQCLvKxlDD&It<|FGKk!tDrS)W(w8y$7uTqNUjvLlU;ky5K4 z|2Y~PNCFT)JRM<-W(JWO7)ilkAa&9Q$%sI!JEpx!)@Ea$oKZChD z0V+_Kn;1eMrHnI;_jLkRd4cEL-nBfktK#k6DRhqKOAmP2*QzS2=XFy^JZ7)^7sMvx zm0=EEPTwB<=g%ML#Sc(!c3)7{>h2P|=$=xY^gSDFm78`o&`uwPEuOEEuKjXYwxk0k;sM zXA`kL_o#Cb7@+pnWq16>$&~%cBW$MW+)RmOJZxT)(Ko{vdmeT+kbQd@0S=NJ(PDy0Rkl>14cX8wDiIq9UcF^wsx;uTG&wk zH9s|Ici4=!#1A+vg`{wZB6Y(z#0)A=5b-C3hmEdCaxh{}QqEqMaNZb=8R{%_a&ggX zigVI^B*Gn|+jSEC0m&N4sy&DelGSyq^W4yx@2cCX8It{o~02ZEj&Y$b#y+-rmEp3I%u|u>{xo8@G!Dsot zK^=&9k!veLLqkcjXN9^Pght9ezn}%u%4I}b!dj67K{=;vKEV&rwiya@(!cWh(|RG{ z(OJ|kB|ZLnXdJ1gGgaw&+O?i%A|u3ge@ewa3+^s-Owl)jJsLFbJ1)F`Q}H`IsdA+> zkfYveqIsXk(S^o_$r~64Q)CuSsFG!K*c%d-o+9j+v>Fj{mck*dJ_&Jgg*2DdS03%3 z0;*6u0|;{HW1ym$)u6WLG~dZ4Mq_Ah@cI+_mq1VN%9v(!s+SdYE+MxO71w=|(R z*#&0{YjKA0^YHK3Avod?x8M0_M>-52#L;`I+Z;xbrJZt&n>uIi&}TxFN><(|^a%Q$ z*vZ>(H3z!_5}1B-03wPn__V!lEgz!hwn)ul7R&Vcnj0ST&YUMmT1SG7I6B_M$rYDh zT*pZ-w8)>;a@_b}R}?lk&IRFp(%UZx>c4J0wO74C&Ikx4Z(>VlXQ!D|2waWg(Nvk7 zvMHzyk#@YwuA5WwujRu&%UDoQV2t_&rCfp=l-MWSuWI6)__^M6+w}A_5%$owoPBZW zlyd%-edPpPy?xgK9$FR(sgT(Zz3XER1!f0 zpforbY$$#MPnw}VoLD^Dg68f4{S0M`qAbICLef z|Akq=UN}ui%H1j|o* z;RUbVpnM{;XLxN#%)NUTpW6$cb#?B(0uCUtFZ{E^=6)I9aYHr5{@LpzQ#xZTWcT-WhV{ImmijaF59R7WbY$Y^M}%j?|?Os!3}i?WJs0{8!)~ILo^Z&tzEqUbeSdOHxQ}QoNt#`tdseO8G zX8}dvypDKflk^@urYvRQ92h6D+#(UA*bA z!IhTXm=Y0_j(Zn1_X~RIvCkdStEw7%frqEFU+*;dn&c7e6n6D7qtuLnC~MEHokPjz z|A;DQUO2VK)GzJomW+opuk`H>9f)%H<5TE7wAdA>oB!OLJ6pQn5vt|=pE2LKstSb@ zJ!~$RH)#WUgMy|0sp&Gmy9e5~gk$;yp{W{PnI5loraYo@#7Xq!*k$06To=1h*BZvi-O7Sf)~Al0Zu9y`D@?NmpijRvPf-Pf+J&bxy9KrX0*T6HLRJ=Yu{3Wt z2iZKiy|rqW5@?FRHN}r!ol2JRye*bI`-?SY%Oq@(IYlRN!=byCAz(O^+Quk~*>Tc! z8D2%f{#_&N&cla{C`t&BdN`D;0@Hw^7d~)NBH2Zj67($t8~naPoGu?qThr z1k+6gIm$gnGm3_jKMJEvCNe}546M!sMR9K-kl+$~nOrAZJz}m9#H8`)-T{hh+lkap)l|~oWj4rM#6tAz4&ivI^GQH3?Z=`vOg5DSt zmhR4`KjY&RzPRxw7qwH~`ls5M<^bV>Vt%8~tMa55x5?=2*uE1_j$cJ>)#a`cQZcsO zwyS2)8k-j5d8aphV^Eq4K7X6rUtWjG%5r=U>Jt-l zfdW5PI&@PjFarvbOZDYfAaZWMdah#UH@)qRCxgvMD|m1W9h}f?;5TterrVF%tUD)1 z(Un7}=T}lv(weq_qC&(d;^D&(;9ii{uLqu94(O~0d9p`X)igAyP&X7e5NE>9785I(o{+wo4UuCz<@w7`A-hfRDwnV3Pn(DEC-H+(Sk#W zJO=1<8zlY!C|;9yp;~QiFx(|s)@?o@(e`N&Xp}U1cb`|Buf~0%#}yjeTJ)d)OkQ^H ztN6kGzKr77-l#c+vD%u16^8GB=8TNiw=q0ey0$*DVrz;-2^6vC2en3#NPQ$kC6g+FZ|~bA>4i>ks4;#FpUeD~S=~6%gXg_dTnm$10kA_Y$E+}R z55A@TIt&?Cz+;Mr<-_nLf&D|kmEpaht1WtQTNy%ElyC~8!DX>DI*nbLz+KqiDjlIU zRW7x{l(1%Ko~hj%#wNh55u>*`s~wbeMqYaY9NNyu_v-z7(tq$}nfnVR7O|FN=5m?9 zB^LOZAC~q0)pJm6i)BljZU+)GsnZ# z3Em)%U6JsVCa30PXnm%UF3>LIbz>t9g47^LJQplGl3+8VgK{qFZ#j3_fX&fYxVpM}*jiCl*JK$NJb?mJ3k$v6 z6wVdJ%UVC3_Zh=MP(`P?0>4Mid_2D=u)b@U-8~8}JT?Sf7 zQdZyeJO(IG^jM3+2PgX_CJIU_SO#__JN$YCDS|tz`DNL)XGRoJ`L0SP+7FP)d!`ME zAceq_sC}{Xz-@r3mc-dryd8sO!r!)Y+vzE1bnYi4qC$S2)W%Hs#$d^G#!Ab(R(7?P zi_oM07Ewu@!BDQfljd$Y?= zPR5HW9^t7q!>LVMEYMZz$q7a!Q@?rPeU157=*t<-(|~k0#gXNP7`Ncel+=Mzky=%? z+U@(;i;!R`<`|KQ=_aQ|1faxX94?t7)Qq#U}Ml8Yl#5I0fN~Q?eAi>Ho7U%5kR~pU>OzhSkSPZd8HyoxpCzOKN!$0Xa2e?kq`!r; z(P-kV$4KE|4>$?H@AfC3;;LbFpa7EvB6$J|D)^@u>=sdWFVGF`{Skbk+-YZ-!|7aK z-{pkRM47Z);74>P3UqjQabdI_vX1LHIeU13uVb;9pu_FWoW@6G4i#s#Gd2BOHij~u z7q?S=t273Xz_gxt=f!86GI9kETnqy&sBbq?2sVrPoJ?Z@xvfOJW7JVw?&U>))v+k-?(uD9ga?u7@s=h_tg~qTxBv}sqhDr z9p$9EXJVqjR)x5fi0wKEz?zwZ<4JxjftJiJ(dN&vs7ji= zW;}9~JKt_}uIvq;syWWLUQ3@(*r0$3)6!Jne77Kd0OMf-bPS`BR8aY(d!dvA1+_>2 zv0~-QN0_!LxH7ei96~4{zA^5#6yEX+yLiwkT|E2B-&h+0jisme$UV#JH-1{kFa*Mx z5vNckCbJkQZd0AE+GSpzx6Mh1hcV6Ns3_k+!vl>$Hn?XZDS(g*$^+ewdPpgfdR;Rm z0n|3QNW1)C2fiEvzi~3yfE~CRg9X_bf~LMd*IBM~wOSy;;#=fqhtyQm!yap;D&FJX8z*4fi)4m0`R`ulUvsvJO9l+_uXS&xIEF|gn12^ zPWj6`T-1b;-6WNy)E;BC_ZGy$e#GgNSQ1qI#Kt1E2^)+Ye7Rnd$1f)R$RDb+Z<1d50)T- z4|rFZjI_}YweXXHMUW_jIss#KH0FEYQ}fgjG1$U4#320edBHd6@~%RcvFw@0Mw&vJ z(@ndC#!F8-n!f2U)Wa$M?x74DF@s3m*;(q@-c$YuM&SBIPH7cY>EtEXxbF{B&*j7) zz1z3w#>vIOS{E+i4mg(vjF$##bJ#mPy9uAZd%jNHJi0U2~bgm7> zE8dHfy$bAO1GdMU_H;FyVSVw4Dll{QsE=UEwG~Y>kuIXW&;o9RSs-E(gNL$VxCn=B z#mIUPheWW!=%oUln~8@f6s5#6fp-#(v`oPboi5h*O+fTf=&SYbXp;{XGspZ$Q1dg4?kaan7(yfxSXxxXrZUreuEsA3L&&6Ou4ss5T#c-%B#~u) z-_C%6lq}GE4ve|7s_OgCZUFu)+sZk6F=7P1=N$OBjf_k%AY78Q$~suoB5E37%M38M0T@}cd$By8iSl`mV19cP=-zP_BbNCd|vbN@fO5A(`1WFxt+Tw7S|YY2ukAa=mv_q_aTAWX)}VOjX*42!`Ppy4G>=W`I|=l=DP zne#z^wNP-269H;+6Fcm;PUZaT9isUX!+fw|S|RPTw7Ieo)$d<3oo*#`3#^@WA(5)c zV0wjpk)@8LADa1Rdn^u}&#IZ@uhR>MkP@QWUTk!g=nXV%ip83n?>~I_5I*1{MMXPy z>;o4&eg#>RRqi6^1 zN1>yIwm}Y!_pDODwZPTM%%wRB{=3w?%Ba4+R6j*Cv;GGuCCp3L0f6?vV`r$NaL?@2 zsO_id1@ODPP|^{K052_TPHI#7sSRLE?NCaPX)&PS#4rh>R$186T|-Hjh_yr*!umX` zlfd{t^<0SFeU=B`l4?}4AKGUW^YmzY;cP<&?+7^o!uTeB?Fw)P+f;(J3@C6yhpOQw zNE~=IGz_gfp_grq1yN1L)d0Ep;x;D$LMr9j=?*U<+dl#TwELYoIaviFKEvQBC zWF}P+H+Qd{Hoxo@0CYaB#4B*y(BfdK0?$9c8DV6-32F8$pOFHXA_&5ZETJeF) zDz}9ST)l1qCw+zo>e*7jHe4mx~DzX-p_5xs*j$V z{WH6?M3QZ)HN9s)1`OO;>PCsO8GGYg zH9h+^P8k{+%8pfT7)y~~5ajXrRWV($&daXz{WmlD8&(jKGDBr}x1eDWK9?JCG==QO z_ak?tZMwD2Yoq-9mvxC)l2z4MOY)0j&MBNqFPE;l;h|+?k``3MpGqrVU*woZiiHGIXnH<_83;(XM&QUKZ4i1i9yyzi1X)NHMVhd{GWL$0F z`YPrR$D^E_-~P8RAmwE&zidGS#cwIW8Eh@@zC}&m8zR+p6Ne%dRj|BsKO_N0l zCaC$PUNRS=2sZ&+GZvZUvE%4top*8a@<@2e#(=E`7^^C57zgZq=WgC4dBtsQZ6@d$ z#AIc;K$P4BOkYh#O-oATAduROu#YfX&*3v;c)g5VKT4d)%HaFWF$NH5LkgW7t_7^h zxaQ=j$9vGEeIy5c{&(C`a5T6A|L(A*ZuE^NZf?>SFJA0DEI->&nI`J&>^%0~)@u*B zQE^N2gG6X5wtqhd`EZ~S)p(43;PHd$c-*!C@nl7E`LW_JV@fK4^734T_uuiRoi!Q_C=2 z))k_u_!12|<2$?`I#)70Hnkbsl<^RbAy z`R(M3Xeok#Mq*$++KOKalBxx5UEK{B0vGd~op76IINXOR_Yjht3oAZm{C9hFSD%sX zDU0064Wsg{adWz3j^pP?yU7E>z)G0Ezkk5T`(2(>oj6}qQP%G*Dk|zl{#qbz%ru?{ z7kMw>h~TbsSmA<%^`%QcM$W`Ia)!VGRaNl*ld$EKj*?7~+JbhY9-RlkH8dXx{{~)M zz1wRn=oKoz|CGiJ#3t8gV#Qkg zZHwGhlBV+i&6i5*SmnweijtPGY{8|$6dzp9Ert1@)Qk)f_u%%C%vErQ$2)7&unk|M zECbWf9}SA?#6%Kl>fH3{ICByNQv-v?Q~y-XXaD$YsG&S@BeA> zZr2lv4CKKn5ihig>y}obK`5rV2;kaVGSwACECRW4NErTfR9;8%aDS{Lh(c*S%Hfuh z5}mY4IFQXe%3sd%2o==#;bGIS@9t`!Im0h>(?o|w32B#fyPa zQBnG&u|mGe)h`VV6v}E1Ri%T+8=9I}K%&olp1MNr6zW8KT)8xqSrc%&Lt}30<~F@n zV{J!>P~_21)R3DuLqpeUI+U|8Nyi_JJo@vbm*0T+S}q&4qCP?njtfOv zSXmXPmH6PtZ2%5xCX3YMY)JkHV+HXm=4LH`X>Nt8+MP3nZbT11Y>3$=RVQr~m#FG8 zy5oF)jT`meXvjodT<+wKei%T$DiUHY8F!lJLF2ibGMG&ShgtSa9Jpsceb;`P%`9 z`9Jw(A=?gzR@T?o-!WQ_!MgR*@$`3U2gs$K$Xva$Ao;iu72+9gbo<$`pl)}0NN55~ zAeca;P0Y`33&vUQvVVWncsE8Bt@+4o_baIG@h~zK0gR;1Z>bDBo3o_3Y z^^`)1JJREG4Y!Rvx5+4lPsM|=S4<#6%?5ZQvtB9_;1B^}sc7wc@n`n(tfU->DyMPP z$3lm!Y2P2#Bg90ANZ>VQVmafgh_Q{a@fHkbW(B^;(H5Y*7n&`vwf z=gIQJ42kp7SQHX~8}=@zXf3Q*TM%;Z{{2K$p-3#Y-k`nZA>6!_)YQ~+^YU2bj^h87 z@h`v^6Nj`ZK0-U}%B{78B2A!;wnt)6t+r1t=pGIb!0CYsXYd8mRzm!X&!s%MQ%<9M z2>@yXl*-)P+{$6gME{TC&NrsbDhlH-D=eWf49J9rIwGK<5D<(4+X87|RYo$qh1LxU zaT$us!e&Jmm&&9NrvX~tVT_V!+)}n>n?pym=}6306Imz99AqG5jW%?~X8ajO#BFAq zzf*<-d!F+==Ne$|cH<15K>wBL>2yBjITDqlHSzi)Q@zb5u0r9V zZf*NQY`=@Na5pVpPak}ocj9t;_I%kEqf~sCAKQPdby!dNqK9yi`@y#+Ra5jR5ny0w zs2JO=UCw<_OxW#qZ-c9|oU0hu-f0-u7@Mg(_fSbUwo7w$8K4chr*CmEnJ>o>OcA<BB}i3fFNg@1V(aM@4OXb)Zd1^WSq3*jZaNA&u9 zG&Wu;YnwprfA4KfQ!ZgLonQ(kf&nN@D$~EFk>!KZ9z!*MF1v4lUm^5JhThkUiv?Ha zVwBtQ`mJ%K&8#BX03iDO1j``6Um4)Jbn)`-A07qim!g=P(wuc9*{c|nj^sO((0vHg zW#VM~5+~EqFul-`?-`V4maeZ>?6t8; zCo3U*%1B3O!VOv|6TF|++$q#2dJw?p|9BwmmiC9U89&{+Sn$jYwjId4xAYFJwBd%R z?Jlt1=~p%93SbLr9A8*+QOnmrIvSfz#rk`8a6Oit9U2v&%1{@q5e7!l>dEdHy zdm7Pfd}1Pn@o*7H4$Kb)JeItJ^M8tYOHPh_x`pu*+X-XDy`6FUKB+mLLa@kpxYRFX zHCtRPbR<@92|06!h4aDT-`-X`6ZFPD!P4NSx=~%5s;a7{w3!0ar64hEFYDO>%3@V()@e2s~D$ zcEV9FXN~XHC5AKrOrG=SE1EBVr1N^c#H-BYWZAKhbPKY=HU=MzGi!r`+$?Jic6R7; zG0nsv?R*?`8nW!hN=A#zJ$CPoNI9_DI5Y6UR{h^d!DlBTl7<6vgyiM_Llgc>t?(1%iR*)jvm)nGAx@-&u;p(a%bmXNbEI( literal 0 HcmV?d00001