From d0aa3940091226593f2ddbd97b75f86c18f2304d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maty=C3=A1=C5=A1=20Caras?= Date: Mon, 4 Apr 2022 20:22:30 +0200 Subject: [PATCH] =?UTF-8?q?P=C5=99idat=20co=20m=C3=A1m?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 125 ++++- .idea/libraries/Dart_SDK.xml | 19 + .idea/libraries/KotlinJavaRuntime.xml | 15 + .idea/modules.xml | 9 + .idea/runConfigurations/main_dart.xml | 6 + .idea/workspace.xml | 36 ++ .metadata | 10 + LICENSE.md => LICENSE | 0 README.md | 13 +- analysis_options.yaml | 29 ++ android/.gitignore | 13 + android/app/build.gradle | 68 +++ android/app/src/debug/AndroidManifest.xml | 7 + android/app/src/main/AndroidManifest.xml | 35 ++ .../hernikplays/opencanteen/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 .../main/res/mipmap-hdpi/launcher_icon.png | Bin 0 -> 2006 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 442 bytes .../main/res/mipmap-mdpi/launcher_icon.png | Bin 0 -> 1151 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 721 bytes .../main/res/mipmap-xhdpi/launcher_icon.png | Bin 0 -> 3024 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 1031 bytes .../main/res/mipmap-xxhdpi/launcher_icon.png | Bin 0 -> 5582 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 1443 bytes .../main/res/mipmap-xxxhdpi/launcher_icon.png | Bin 0 -> 8417 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 | 31 ++ android/gradle.properties | 3 + .../gradle/wrapper/gradle-wrapper.properties | 6 + android/opencanteen_android.iml | 29 ++ android/settings.gradle | 11 + assets/icon.jpg | Bin 0 -> 22057 bytes ios/.gitignore | 34 ++ ios/Flutter/AppFrameworkInfo.plist | 26 + ios/Flutter/Debug.xcconfig | 1 + ios/Flutter/Release.xcconfig | 1 + ios/Runner.xcodeproj/project.pbxproj | 481 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 87 ++++ .../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 -> 109363 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 0 -> 388 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 0 -> 859 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 0 -> 1556 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 0 -> 611 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 0 -> 1524 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 0 -> 2701 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 0 -> 859 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 0 -> 2304 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 0 -> 4295 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 0 -> 4295 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 0 -> 7909 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 0 -> 2180 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 0 -> 6082 bytes .../Icon-App-83.5x83.5@2x.png | Bin 0 -> 7020 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 | 47 ++ ios/Runner/Runner-Bridging-Header.h | 1 + lib/loginmanager.dart | 20 + lib/main.dart | 210 ++++++++ lib/okna/home.dart | 131 +++++ lib/okna/jidelnicek.dart | 154 ++++++ lib/util.dart | 67 +++ opencanteen.iml | 18 + pubspec.lock | 336 ++++++++++++ pubspec.yaml | 61 +++ 82 files changed, 2469 insertions(+), 16 deletions(-) create mode 100644 .idea/libraries/Dart_SDK.xml create mode 100644 .idea/libraries/KotlinJavaRuntime.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/runConfigurations/main_dart.xml create mode 100644 .idea/workspace.xml create mode 100644 .metadata rename LICENSE.md => LICENSE (100%) create mode 100644 analysis_options.yaml 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/cz/hernikplays/opencanteen/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-hdpi/launcher_icon.png create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-mdpi/launcher_icon.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/launcher_icon.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.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/opencanteen_android.iml create mode 100644 android/settings.gradle create mode 100644 assets/icon.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/loginmanager.dart create mode 100644 lib/main.dart create mode 100644 lib/okna/home.dart create mode 100644 lib/okna/jidelnicek.dart create mode 100644 lib/util.dart create mode 100644 opencanteen.iml create mode 100644 pubspec.lock create mode 100644 pubspec.yaml diff --git a/.gitignore b/.gitignore index dbef116..d00fa56 100644 --- a/.gitignore +++ b/.gitignore @@ -1,21 +1,116 @@ -# See https://www.dartlang.org/guides/libraries/private-files -# Files and directories created by pub +# Created by https://www.toptal.com/developers/gitignore/api/flutter,visualstudiocode,windows +# Edit at https://www.toptal.com/developers/gitignore?templates=flutter,visualstudiocode,windows + +### Flutter ### +# Flutter/Dart/Pub related +**/doc/api/ .dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies +.fvm/ .packages +.pub-cache/ +.pub/ build/ -# If you're building an application, you may want to check-in your pubspec.lock -pubspec.lock +coverage/ +lib/generated_plugin_registrant.dart +# For library packages, don’t commit the pubspec.lock file. +# Regenerating the pubspec.lock file lets you test your package against the latest compatible versions of its dependencies. +# See https://dart.dev/guides/libraries/private-files#pubspeclock +#pubspec.lock -# Directory created by dartdoc -# If you don't generate documentation locally you can remove this line. -doc/api/ +# Android related +**/android/**/gradle-wrapper.jar +**/android/.gradle +**/android/captures/ +**/android/gradlew +**/android/gradlew.bat +**/android/key.properties +**/android/local.properties +**/android/**/GeneratedPluginRegistrant.java -# Avoid committing generated Javascript files: -*.dart.js -*.info.json # Produced by the --dump-info flag. -*.js # When generated by dart2js. Don't specify *.js if your - # project includes source files written in JavaScript. -*.js_ -*.js.deps -*.js.map +# iOS/XCode related +**/ios/**/*.mode1v3 +**/ios/**/*.mode2v3 +**/ios/**/*.moved-aside +**/ios/**/*.pbxuser +**/ios/**/*.perspectivev3 +**/ios/**/*sync/ +**/ios/**/.sconsign.dblite +**/ios/**/.tags* +**/ios/**/.vagrant/ +**/ios/**/DerivedData/ +**/ios/**/Icon? +**/ios/**/Pods/ +**/ios/**/.symlinks/ +**/ios/**/profile +**/ios/**/xcuserdata +**/ios/.generated/ +**/ios/Flutter/.last_build_id +**/ios/Flutter/App.framework +**/ios/Flutter/Flutter.framework +**/ios/Flutter/Flutter.podspec +**/ios/Flutter/Generated.xcconfig +**/ios/Flutter/app.flx +**/ios/Flutter/app.zip +**/ios/Flutter/flutter_assets/ +**/ios/Flutter/flutter_export_environment.sh +**/ios/ServiceDefinitions.json +**/ios/Runner/GeneratedPluginRegistrant.* + +# Exceptions to above rules. +!**/ios/**/default.mode1v3 +!**/ios/**/default.mode2v3 +!**/ios/**/default.pbxuser +!**/ios/**/default.perspectivev3 +!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages + +### VisualStudioCode ### +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +!.vscode/*.code-snippets + +# Local History for Visual Studio Code +.history/ + +# Built Visual Studio Code Extensions +*.vsix + +### VisualStudioCode Patch ### +# Ignore all local history of files +.history +.ionide + +# Support for Project snippet scope + +### Windows ### +# Windows thumbnail cache files +Thumbs.db +Thumbs.db:encryptable +ehthumbs.db +ehthumbs_vista.db + +# Dump file +*.stackdump + +# Folder config file +[Dd]esktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msix +*.msm +*.msp + +# Windows shortcuts +*.lnk + +# End of https://www.toptal.com/developers/gitignore/api/flutter,visualstudiocode,windows diff --git a/.idea/libraries/Dart_SDK.xml b/.idea/libraries/Dart_SDK.xml new file mode 100644 index 0000000..333a382 --- /dev/null +++ b/.idea/libraries/Dart_SDK.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/KotlinJavaRuntime.xml b/.idea/libraries/KotlinJavaRuntime.xml new file mode 100644 index 0000000..2b96ac4 --- /dev/null +++ b/.idea/libraries/KotlinJavaRuntime.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..02de8a3 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/.idea/runConfigurations/main_dart.xml b/.idea/runConfigurations/main_dart.xml new file mode 100644 index 0000000..aab7b5c --- /dev/null +++ b/.idea/runConfigurations/main_dart.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml new file mode 100644 index 0000000..5b3388c --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.metadata b/.metadata new file mode 100644 index 0000000..05f4d5d --- /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: 097d3313d8e2c7f901932d63e537c1acefb87800 + channel: stable + +project_type: app diff --git a/LICENSE.md b/LICENSE similarity index 100% rename from LICENSE.md rename to LICENSE diff --git a/README.md b/README.md index 2cda0e9..facc921 100644 --- a/README.md +++ b/README.md @@ -1 +1,12 @@ -opencanteen +# OpenCanteen +Open-Source **neoficiální** iCanteen klient + +[![wakatime](https://wakatime.com/badge/user/17178fab-a33c-430f-a764-7b3f26c7b966/project/e3ff9994-0026-4041-a529-1cb2041bdf4b.svg)](https://wakatime.com/badge/user/17178fab-a33c-430f-a764-7b3f26c7b966/project/e3ff9994-0026-4041-a529-1cb2041bdf4b) + +## Co umí +Aplikace vás přihlásí do instance iCanteen *pokud ji podporuje [canteenlib](https://github.com/hernikplays/canteenlib/blob/main/COMPATIBILITY.md), jinak experimentálně*, a umožní vám zobrazit, objednávat obědy, objednávat nebo přidávat jídlo na burzubeta. + +## Co se plánuje +- Offline ukládání jídelníčku a zakoupených jídel +- Burza +- Sledovač burzy \ No newline at end of file diff --git a/analysis_options.yaml b/analysis_options.yaml new file mode 100644 index 0000000..61b6c4d --- /dev/null +++ b/analysis_options.yaml @@ -0,0 +1,29 @@ +# This file configures the analyzer, which statically analyzes Dart code to +# check for errors, warnings, and lints. +# +# The issues identified by the analyzer are surfaced in the UI of Dart-enabled +# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be +# invoked from the command line by running `flutter analyze`. + +# The following line activates a set of recommended lints for Flutter apps, +# packages, and plugins designed to encourage good coding practices. +include: package:flutter_lints/flutter.yaml + +linter: + # The lint rules applied to this project can be customized in the + # section below to disable rules from the `package:flutter_lints/flutter.yaml` + # included above or to enable additional rules. A list of all available lints + # and their documentation is published at + # https://dart-lang.github.io/linter/lints/index.html. + # + # Instead of disabling a lint rule for the entire project in the + # section below, it can also be suppressed for a single line of code + # or a specific dart file by using the `// ignore: name_of_lint` and + # `// ignore_for_file: name_of_lint` syntax on the line or in the file + # producing the lint. + rules: + # avoid_print: false # Uncomment to disable the `avoid_print` rule + # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule + +# Additional information about this file can be found at +# https://dart.dev/guides/language/analysis-options diff --git a/android/.gitignore b/android/.gitignore new file mode 100644 index 0000000..6f56801 --- /dev/null +++ b/android/.gitignore @@ -0,0 +1,13 @@ +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 +**/*.keystore +**/*.jks diff --git a/android/app/build.gradle b/android/app/build.gradle new file mode 100644 index 0000000..9019aac --- /dev/null +++ b/android/app/build.gradle @@ -0,0 +1,68 @@ +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 flutter.compileSdkVersion + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + + kotlinOptions { + jvmTarget = '1.8' + } + + 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 "cz.hernikplays.opencanteen" + minSdkVersion 18 + targetSdkVersion flutter.targetSdkVersion + 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 0000000..c5bf24a --- /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 0000000..8edc3c5 --- /dev/null +++ b/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + diff --git a/android/app/src/main/kotlin/cz/hernikplays/opencanteen/MainActivity.kt b/android/app/src/main/kotlin/cz/hernikplays/opencanteen/MainActivity.kt new file mode 100644 index 0000000..4ec1b56 --- /dev/null +++ b/android/app/src/main/kotlin/cz/hernikplays/opencanteen/MainActivity.kt @@ -0,0 +1,6 @@ +package cz.hernikplays.opencanteen + +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 0000000..f74085f --- /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 0000000..304732f --- /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-hdpi/launcher_icon.png b/android/app/src/main/res/mipmap-hdpi/launcher_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a8525f77bef1bc3cf270e927b768e85e4ef6b23 GIT binary patch literal 2006 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 R!wLWZ002ovPDHLkV1ilYRe}Hj literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..09d4391482be68e9e4a07fab769b5de337d16eb1 GIT binary patch literal 721 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD3?#3*wSy!iOI#yLg7ec#$`gxH85~pclTsBt za}(23gHjVyDhp4h+5i=O3-AeX1=1l$e`s#|#^}+&7(N@w0CIr{$Oe+Uk^K-ZP~83C zcc@hG6rikF&NPT(23>y!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-xhdpi/launcher_icon.png b/android/app/src/main/res/mipmap-xhdpi/launcher_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3c051914395f8c30468bc03f66daa7477311deb4 GIT binary patch literal 3024 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 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-xxhdpi/launcher_icon.png b/android/app/src/main/res/mipmap-xxhdpi/launcher_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..9eecb845a26bc0664a94323c598cc44341f8034a GIT binary patch literal 5582 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 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/mipmap-xxxhdpi/launcher_icon.png b/android/app/src/main/res/mipmap-xxxhdpi/launcher_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3de81dcd34c4401a88e4dd9fcfda4ce3aa4c3f4f GIT binary patch literal 8417 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 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 0000000..3db14bb --- /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 0000000..d460d1e --- /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 0000000..c5bf24a --- /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 0000000..4256f91 --- /dev/null +++ b/android/build.gradle @@ -0,0 +1,31 @@ +buildscript { + ext.kotlin_version = '1.6.10' + repositories { + google() + mavenCentral() + } + + dependencies { + classpath 'com.android.tools.build:gradle:4.1.0' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + } +} + +allprojects { + repositories { + google() + mavenCentral() + } +} + +rootProject.buildDir = '../build' +subprojects { + project.buildDir = "${rootProject.buildDir}/${project.name}" +} +subprojects { + 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 0000000..94adc3a --- /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 0000000..bc6a58a --- /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/opencanteen_android.iml b/android/opencanteen_android.iml new file mode 100644 index 0000000..1899969 --- /dev/null +++ b/android/opencanteen_android.iml @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/android/settings.gradle b/android/settings.gradle new file mode 100644 index 0000000..44e62bc --- /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/icon.jpg b/assets/icon.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f8f595e4475ab6b60eab72f63e3e55c084eed7d6 GIT binary patch literal 22057 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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 + 9.0 + + diff --git a/ios/Flutter/Debug.xcconfig b/ios/Flutter/Debug.xcconfig new file mode 100644 index 0000000..592ceee --- /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 0000000..592ceee --- /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 0000000..37bc30b --- /dev/null +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,481 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + 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 = 1300; + 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 = cz.hernikplays.opencanteen; + 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_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + 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 = cz.hernikplays.opencanteen; + 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 = cz.hernikplays.opencanteen; + 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 */; +} \ No newline at end of file diff --git a/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /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 0000000..18d9810 --- /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 0000000..f9b0d7c --- /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 0000000..c87d15a --- /dev/null +++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..1d526a1 --- /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 0000000..18d9810 --- /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 0000000..f9b0d7c --- /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 0000000..70693e4 --- /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 0000000..d36b1fa --- /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..1e999b454dd17ddb215c1ea21d1303056dce2588 GIT binary patch literal 109363 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

9Qh~*& z;V}mmCdZ{buy3EQvHW1cYDZ1 zYraf&f*|3|V<7ed(nwp|8?h}8oNyWbl_vrqKP72$!c686Vwme?u)>K3>yjDULt%?& zzcoDkRk#MGL`j^GN|?xF_pHLD6KyzMTu841Jrsr82>TGSVEiU0^XuV6TCbmdloRp} zu=DCWhDdwBsCmVeL9flj+0M*TPHv*%45x=UO~NVjfo>2FT#T3xy2F~uk}ssyZ$n)L z)J{V0%YoG@2O!EoQ!C^>0<6p}q5ZVO%t-KYP)l{yhFt+26g8<1o; zk?l=-vJv~+m*`2Q7tHJ&7;C;uV8RoCoHsa`)wumBi|&VFzd%Wu)am(#uFH+m-%7|) zCHFwAS3Xvt6+9IrY?V!H{#-F1^KbAYQmm>OkDA03+Z`Ef$evz*219Bk$cq_zByHjP z5BzTd_|w)aAjv1d7CS_qrYWY*WzS@=v+_AgB*H>!q|ENjYdfj&dSVPOa>L8p<8}H> zkZ^peiDyOAA>%}z4pYQG4pl^9i9RV}fpB!4({o=?OzjLH_n-UIAF+m`XPROvt2O?_ zLL82m{pAPwyB4Av|9*s@Re}1?dZzdgS&c2|3#ulw#t8?srY4^B9eX}0faca1VwYlw zekEcT8m(7-qivbQdv1kML+|-q?j{Bpj$}}n~j8CI>c%|~6w?Bws zl>4*~NDV7Ji%W1H8>n`rgpZs&Hrl-(F315((TiZ$6;9 z#*(D7qToUKHQZ~T0pzgOm-7|^0!-l*+Ol0kYi>>m`-0B>{^*w? zIlV@JiM*OIq2=R@XZ0v5b`;QcfT;bm!+{0xGVgG`&;`}6H`*JWD$Z!xw$06~3}3{B z#E?PvU4HTX*{N*94U=nemqo<<@e|gtKh(eL0a9(mxI8B(lkI-ow!@mo=k@XSmNoM6 z9I_S5D?TE?19k8Qm=YQ*#(r0Dy4f?+r6*u?I)d1PF6b2Z@#oj(m4^dazKgg zmf-5>x|ZCl^Qh?4u_9b5dI?q+#xuf^*qd2a@jtf{{_-s9@RX-QN0^C8(V{tu)2ExD z1r?Oc>NJhVD>DGCsxFuDny<;39#6y&B_QTB!l&YX*P0mi^4yHnR_Co>rG!)6k_Psj zS-(6U>`?UkoV*HxIMuKTp?cY@pR~UDPp^lw#2HEk`cV(MPc2r5X*iElqM=ohKhM12 z7_t#Z|1x#@IgWTe+@q4yOEsl0RM8`xFF6B4!F^0`pOE}It_;HPC8LpuNxG=vW*Zf6 z#`-8Uba!37%7{6G*+p=@6@W23za*;-q##D%oUTUGn>@%|Sdta9+7t z&A99C|1XOCyupg>Bju?bCX^+SwpVJlt(5w_Tl*ics2t zpaW#OeT?iUuXcH=6in(w$)wHg!&mrle#cIp6b?IPCR_uHM%qPwIKZTKn*pa z(Y9ZchF(Ij4hDC3N5APsuV>SU`u8OUq4PBrpf_0} zU1}1+T#>lLco9uws1$ewhg`7t`YeSOPvmyc4yoST|WZ$^sUV+>gl5U za3kF;YYTCiu4p$x<3ch2b{XA2!qV_EZM=N;&4u*G3Naa}B_?82er!d_W7R3c_bQ|O zIs40;-Q`{NYciR%?nVNGXxzakAea=24vVZbAoi=DLp0j(0IsX&tAlv92qq`)D5WX8 z-C`mZr48f5ve?0!u)7ZETh!os7tAt>U+doA$2s2he;gwN5WI}~l2|`10G71=@KdO$ zkg)=y&Bc0~vvbISh(l{L-QGc+ZJwW4TS%9yOm;Ogm}%u{a)gDO!^8RZ;2;dPV$%_g zu4Sh=sJ{oL22=-r{nSc9@fp-kLv-0?U|qfscomKEj58jNEax z4>-5vm0syGl=84bs3U}VacxQtUcc8>meCS|uj8&q26K6-K_giKn}DxIXWi;fj}`5xj94uyO`j(b8oc;J5U^07gYFkpG0FhmFd?}fu$h2jgY!n3h8 z5O^g56eABTH&P}r0chdmkdu9e-~s#VXBC%^`&(xh9ljh&0~4&X`u67RS~HOLJbKbw z@g2qzAUzM{Psm7>`QWr)SPSK0oOSqAbkqi;FAm=C>HttV(@|=B6kECyQv{vVcjTAa zN{V)2p%~9~@)Vm2t8UzcD@%7=_?d=G6#V8y7dJVYtWVeDZMK}Z_h~m!Zu)<7dAR*^ z%tn)~B>xi*QF|iV2#Xm_CUJ*iL5TxHFIdxiCGGes6G8`eQ-`djN#zCE*VApJ;hEp} z`D`rx8~jtPdM+IPfJDJ`fnqqL(mh)I-ZWVjKjXc)3Ti+(ECm=$EtKoU`ak<3e&&z2 zu0U?=f@vn+bQKwnaK%xrF(mv$Eltg|)MqHGTfnyO1GyKU)np~=>D0Sdbv9k575uC zw90)mCqKUm0&T<|Ph-5c&#*J{!?t{|E4=t@`n{y9<$+0&!|0=#lBmU7G!WaOU_s#e9_e2pN0?>WQzJir2Vw<{9|{EgQFDPqlNEQX0!_RGK$|AwbZD%{K)|h9P9CAC zym07CFFMPqEH@q@@cT7_XS~MD>HT~Q2qSUw@}8+z6eu25eaTCbzGkNECw*)s8DXHK zOITexS*VhexxmB6KVAMsAw14LZ>*GRZe_JDMK`SAzK~ivgakdYqk|S6G`+I&UZ(d3 zH(kN-euvix7!*RexvoX2wbN?6LNI)cJP^gn05K9qFsa^KmF=CL#o5+^U8zV9zvZ6c zqx}8Ul)ub!(kpo}d_b>^=ibZtu7E-X4-&(qx&Mb9l>gb`$GNHPYTLux;^LwrUp1QM z;gZ)mH`{Bc$P91=$^?~+Jh3koXuOs*ZismZ-X$hH`PUYf4QO$(8sx|&dOubELF@HW zd4~ORRSO@f9Q=-&xM(jf>+8BV;rr@gP+2}L+=L!rf4_RHR#!TJh^iL)T~3a6I|UbD zF+wGOlC%z+S`&2gHfQ>KIW|jwQPC5anHgPb<7rZeXCX7Kae{mD1RqR}fYDwYxwB0!smcWD$rSoHAo;$*ZW)^ej8Qwterayx!O;y=!i0uxL1) zcKanZFTO3AOAIAI{soE&n$Zsu2ISTWpV{I)-UcH_I!MB?%eW?2T%?-!;^Njlbif^6 zDoT?_Belt&n(MCn$1U~kedDcns94YYZfln1l(M z4*rC$XOaOk^6l;I_u~DBu@*ab(f1EDFb(amYBDo_=n#C}zcR_}b^1djN){;Ncd9Go z`Um8bZ{OwJSQ^I1#l^WPfH|V=Vw2=nsjUG5q+Nk6m~_P~GR$Mua=qgEAU|RSqPp=6 zZs*Jl9{0Vv3BDG`1Ec~CzHiAhU*ZSGOnfWBY@xGQ)5oCvwP+HZ0$EvErDbD$0SxAw zP39Q@5S?qRtm{_ssbJZFptu^5;Ls}C0zUM-(h84NCA_`gFFxL@fF+5K%g|T=nxUB! z27Re9zwGM2!3!b2>KEh!Lq&D`t!Q7j^g0-58MC82JUm6VF+0c2?drn6v{W~R1?n>h z)3)X5#847sBO@Rp(yJ-0f2gp=9RU`zDzNkIQ7KSre@a4s7Zlu9=~@hws6JKU4W1Yu zt7v<1btx|vn#rb+779<+SBuXzFCBK$sXH({Lb2jhnsTin>0b0ZQEQdse?RViSm@f0 z75qgWQF)^8Vv4^7Hrx9y!uCPt_COSVYrx$`5&zvcLq$KzEDd!a{G?fW%3&#lDuOV| zte`&W8O+X17zlXW2peT3oTRj}h{tZ5m%bvb;R zHrqQ6oSnQ_zGgHIo)*-IV*czP;v#8D9_s)7=&Uj~-u&@Hel!8m|D?vRVtq&V9M)FU z#w-aoknNQbg_`gOz+=a#f(3IFBRo8s)t6z0%b7XB2iy`t5S-TxiojW5_+#h(nsx)g z^^3NL__;E8f$wyYZtbSnP+t-h7*lbutB#Fc0P*C8fZ1pcBmyp{x92;Drl{Vu2v{f^ zbRLM9%p$0iWv_Rzw4L8rn+*a^J$S{+1Do!dbie$4-tHEDGu)q_EVX%#cr8FbP)JnM zBIuR(4^ZTry?GM4$g5MR%KQ78Xen04loGHljv)mWRJl)2zTv%i z(X15`UuKpL6S`Tgc5=t636z%EJ81oX)OE9?>Wvua6^FOq$(8Djf+1X81e zy~v_Y)|&8`)ml+jtE)Dq_e9TsE>4#OW(2w_ig=@H9Ncp?D{wKdH$EHSC~bwv$JL`y zSALGiN`gxU9>ZGPB?To3Y+r)jXMPnGaEQN}cb%UaDtH$2Z07!2w|M>qd{h$WER#OA zvDQY^(47JgwdFO$edFP}ifAHA>yAi?_*{c~>rQU0C42ShAdHD+*d!CVAxx_CW4)N- z$Z?d|cBqitv%w0ewXvk_dDt+nmBj^R8-)U&_%3&Rp5*yR`nIlKv#3otSi#0)1F3Ax zHCSP(LP{ljWB&gbdV#HA4Y7_)HTu-K8ME3Rf zdw6;7)49iWS%%}!q%~>H_1hNJ%a~iQ{Bi5L1_&pcvqP2jzSPwpsa3K!Y5C@)&AyWPfG0*VlPk*#Ug z!n3pYX+mbAN8eAeparwfL_Pk!+J4xi~Q(fwm`s6UbB&@tEcA+!iX;ja;68Ajc$+2GAsG1k! zU;S>ndnug_mhE;YO>{945;hsB@#8l`=VQC~3wv>t?{iTL0HNT0V*p1v_wW*IO}$R@ zaf|%fZTZ#%A`;!ZaA{uvRJVb#pK*la^{#}>%%xN~><MXp{8gIpEX)~Uq3U@?VgTNFHh`gfG|(J4zy854J} zT@FInByjy2E?;Z)(qKrDm2*l@UI|Hc>YR0uKgoJBVSFnsaZmggX;o8(1K?gX(evPs z0~lpea#D@Ks5G+%(b?It zYe-I?-IqM?gOHG6+>!1a2{_CS=CNs^rwO6t-wd^$rJ8*<+6w8A+qef{kX=AUdyu_` zO-Lgv{jbcoGMnx~{9Teo5j24_|0r#YS_UplqKevu+NHpfxer}zg4lg3#y&Cc{I%ye z4}tq-ZA`HQy}zs1nCXP|ddvJ!o(T%cZ+Kv|MQ$OD?h2TM{|n6DFH6E<;EWJ<|4dr+ z^z;CFprd;kIxQ}9Z0cFbem`x}Zr-`KwWlx-rR->x6D!nfa#@eMRmL+T63oLCWo2e^ z#a*DJ#Kl_~{pf0~xqF*kHyGtf{im9KjHP9_x0L4P1?t;-<>M(CUP@TpQmc3KuPOnn zphD1Mxg8(fKgq=U`>RX&ZkcvT7O#ec$a5GldK0j#Ukrp0qG5X&Vg6}Pa_i#b;@~W` z*Evq*VhRaen0n+R@S%%84m3%}1_$(s3@_Ki)1MH?aN55zrDiH4#`1uC4q%hz9A{_PPmT4}J>T4?&yPDmK=z>}ZCo+BxKwKm5$ zwZlv0yf0oDY`4})7CknfwJxLL+xW34B4Us@&4DV7hSnZKo+AMGrcft*+5IV9j%rK% zza%9LiacpGqrf1}0AFl(KEZsQ9}fXIA_rEBatZF^Fi=NPHLPostfeQ-xs!#3<%QN% za=ZUVMCYR_$^gx}jPuIx;3^6g_$T*CK*~04u*V4dxIY?i<9Vo(&2m`xYA9vZ}y#DaD1eLX~}R)u6gqXA8V1D(6=%l`d+w(I&Jf)PO^LwxpQRC+g9ZV~pv z$k=$dYjF+GW8F4>NTS!$T#=CxGNq1D8rIW{q6Z(=2G1J+FZb;pDn#r#JT&uuSaT() zI|IhPXgfx~xmo#Sv7NBY;yLou zRbge6$NtcbRPgkE+)(BU|2u>m$b;9^9|KtKV6TAdZ+?b(XpB*X?t;f=XUur?nSO_; zy|7tAeyN~+7)fmUCTKNv&msx4(E2uyHw9W;0yW-N4$6!I&V+TlGe3d`sB=*~Zn3HUEKjsEZA$oll;CXt6bL&vzoik;c+XG7zshWBC_|99t zDxik!B-i9wH=m0O8p8eWu*9{;NKSoF9-%p60JyT(34IKJOX|U!WPm-QdX}5>O2A76 zV(ZMELqbeNK3;Lr+-k9!1P(!-@~>?|^)o;C-Q~99DsV8ibU|PU0s4ExiEVA3Y89H| zZuPMT!2yj3NY!+7FX3q9hsHM&;Q^~Hj;6c7&KrmGG4mjA@G{S_93=&XlT>O+KRUGB zHwc~^vDZ4kGdP1m?iOXH-tQoBn2RqGlSF<-okEQOQ6AXGIKhqLIM-hOxzqQg4nwXu z#_t67&Kf|)=&QTza!u+GkE#suoOiI{Ckdia z`W^)~vd|SPax~0Ae{ZP<4GsN9gXCdlW+8BHjpfW(!1Ra^L^Efh68{GYIFAXKv9ahq z2X`+7A>@Wk5uazsr-v2Io90Rey?O`WdYycu`(yoU8aql-R{I75C7;SsD!)nEg;guq z0QtuiAj~tohpIj#5mr$aWBtt-9@bgl9?B;u3MMU_!YYhBou(@1g9J^}`eRNHHvl5x zQkoIJLP-byH-X?Q3A%Cn)I;CjZy~`<$<>f?qY1V*8Dhflzj{3tNiy|TX0r*7g(uQ_y3YI z4{=Ck{81$XC=(DwBj#PfWZr+u_T->SrvkZI3m!ch=)C&m=t`8w?0Sbe;|`KWMvJyvUVIrmznCQv#C zC6oSI2@-et{SE6nGC3{(xY-`cH z>ELq%4rYK}8ZqBaJX2?cXi`A+e7@ZWp7!HWS$}jtEhKETgr@G3qR)IR6;O1AkizsL zY|hpqib!m87+Y*|j2BjZNoTLnUT6ZDs>t+R8_A?AB~ZsMViqSxOGVu zS^^Rj0RPGoi$RwTQzxzl1FI5fk7RH%h8Xcc{RV7*M%^byJp_u+7ShHP+`g)BTy@^P zAoYWP{Gz?nw@N}{|3wbcKqMGUHz)NWH{b(2LLa{O))RuUf;0azaiW|YH{@q5Wr`J(c;jWS+ z&*6G6S)!~+?XVl@2Uwcss0+pN#Z~*PjU8h+(&@ z+a*qx>T8>HUigW;fW8~OaZ!3-4TE1CdrXy+DJ#arzO5eme@@B!xPGQMUBB2Z7S?EcRP#HB<5|*G;3cw zA2t}cTuv7&(suwpUQPC4$Z(tnf4*?N_1aA?W&8GsAJGJ@d@Ag@4Cq-ONEW;}jR(2k zA87WIvUm!V@_woGvto#SxkUXPdNZ`W6rJ{#O9$tkvFV+LyZkg(aewZO*LwN>?adV9 z3te*Y<{wZFt-|&f35s>~|9TKYkk>@v5cC4&;yx|*hLa$GuKD_Q>~OTXnCj@T$GjFD zmIow?9D%~jP)g0MD=aNa%MzvmTHXj&2uB`E)r;ws6gRrkzxF=}M6Dm$(;v`x2DHs< zHD!)Z*B*taDqkdqafYZA7z21z@~)*fn^T@ff3Q>&JVWl9=1l4U42ip|8vtBx(P=|g zT$n_hxalVLLSzQJB))7dg%jnAM6-2rx&;;vfC{*z*}g9V!}*S)^@p1(TDe=W1BAEF z*w_rBQL((HRs}#kqNqVaN-SLtSQR8!{88>(BDpU8zpsSJwNGLWHpUR07A_)J!O$X+ z+zr$q+#tezd0xa3Nk0Wd9`%eD@&}0&x}N0M=a|`~!O`f({#e;TC`zIh7Oc2dnx;w3 zI08wu09N!ZJ|#^ZhL)0B5~wZlI9v$%*vNDm?Y3fg%R0f$w9Il=x4pRGqI(trUv5dY z)UCyvq8JoZIRr#Z$FV14u;EX9=wL>RX`Cv3?LTxpb#z9$MP%OevfJ%O-haue% z60s@nqeZOJ9dh7a*_RQoo!{=b;3@0-Xw?`Xg?x=~?>jLH6idRWrlnarZ#fdwrg@tw%ufN zYSN_1wr$(CZB4dovTL&5^UU}6_6O8;bubY~raBM_w{$L&*^%JAZ7(}#hsK*;zoejK zQ>p_z2m$QJQl%ukIDL8#aT@cN6cwLry!j>u*nwZu-5mE(W1p|r^BG?w7A=7VJp4uB8r{|pv@~N z9m_{a^~Fk~#BxQ6t1t;7`s9_#sW_27&Ot;=XAv+q+Bvyt@A_2?$qm;} zB5ZhC)Q^{xY0@>L^xC+$>!-f*PqMJ=Fp z;&So|@xHF%1IqpbFL7~q^A^nXpWr!I)Q`0!T*#@AN+a6o~XBuv_5aqObf7Sr4 zgGMXUzBjzFY;p(e7Po=*_WQ%l&hTHB6Q^-^R4tSVAcbQoxYEPJK-&ZT2GM^#)vD$h zo^P(NZf$KnKChxvD2cFAxff z!vJnF9vI=$N}6lvqC(g&DdnSA>I^*3uYl#H)|yo-G7DjzgFjMaxbeiv^3Nl=9vI&o zGTFckn-*4Zq2qvMP}k@B_M3s`=VjEZs|v#1T`jBiS+H@sdXsj8uJ(k;7obi#^!>bu z5aQ380(JLZWafy)wcoRlNRJKA50>S{bAPYtIPATjt%>o04}QJg950zNxH{Wx^LT9b%z}Nye4&65DW*$LSH^Jw zR&>M|RE$j~Z1ayAaXjL8pP?`$Y1W z1K9fkWI+NVg0W@XMb@|dHLPX>#gW&dZda9m4S_jG-%&1&aWCAGi-Lkeu+h`aNXsw1 z?X@o42M_%nuJ&RJj>exbal>Aos8m3hm!;;P5HpCxzk+X~hZQy5c->CKZCuQY6~z{l z)DRP6(ZB&06L93VYKWbF=%8Xb z)v>eonf`M!1B2v!0Y>jFJv_<7!0VpmU8*rL_HRtX%IA92F{DHy} zyjs?1n69XR6pU`Q*Yg>Y?E-u~H}{xDQoN9zcD`_PYi^9mvcHR{ytU1lP7 zQ+M5T$~FW2ZRQ6KzMCuM?ib^FcGlzQFYC}QjZJA3v*U{^4yqI5?OUedL+>%}`D-QF zK{h7hYWeXwAJ)_~i7^5%p=F5o@@8c;jRB+7*KT0!o&qs6H)z8D-H6j5B5cazW`_(8 zW&2QjW##96xCHW?hsJs0xWs}LgDu8pVx07# z?e|{0tEYHZtkZ{gE~FC`ypDcucV~%Vg%)RgwOv|Vy!oDFT=%paLag8EU<`P;Hu@hT<(70da5Bx>SVx?ranNoUJZoBCm^!RXuc1vR)6(sLeV85G~uhu== ze47*_)#!*i9c9(}nLB~`)A_;_5Sr!EN2VtpU8tD{*O~98{1_U58(^CtMr!f186aRj z?eqoMMjQB5pxlP{aD|ol|2zJI+Q=ExEq%4&212RrgypRK&8t}R{QEmRz5ljsr3lx0 zO{I$m7v!%Bif^M#S94238DeE?e8F%4d~V6#PoN_9Rlojd!mGSoDBBX&Jn6XV>}V;k zKAT_YA62saoy~`tmLT94IG6!NT4PD}*Z7tZ9v_cQ;rCjt(Se_fI}gt(jQAW;7K<9W zrW_80p&dP3_6GzwqEDugFMM=N8z8#dmD)au^RP!d%m)!mNt(jR#vekhpH~_hGsl+< z+3#E66K!=AxWDnxV0!@^2I0q_Pn}uRqJqjJTT;adE?r( zy>X#r1F;3skLrPg4ND;?FK@5L4m!b|>&QjR0TT3&cBEoX>+ANn=R8dW!Oyola<3yv2?@UG!;J?n z{!M#==>ajy;ah13pmit71X+cIHfVGB{`meIxO9t?83;h?RhNH>FF)1ZOVtKBR5xJA z{y`6Cl9F6xIoiSe|&$3>|4zbNNgbWdq%RQ4e!6Xxe@6CIx3dU za^NH3)k%dTrj3choyz4@+<6t|jA##Wsf@###*h52#K> zM$lPX91&ti0gK?H=0@(02kXfrylBD*CIcL@11U98)kc;@C#3?FEg0w2*^=`kU_0z; z(f4IY3WLmH9VrNWG+9nv)ZMcuoUCEb}qtPe7a3e=G;v!=8C^DWrrZn z1n1q@DAp=Ww|R4h(5s-`Y!{f=A>yxV@>{lL zvYjyhDoSoJ3%9vM2XRcOJ|N|xW!oDb?xbdWTe?^$#GD|k#PCYmO=*%jvAFo<_ivs` ztnVp|2HofCwNmVGCH{h$>STLOor)s()Ig0yC*1lND0yk_YF_3+c>I ze4&0^*00K+fBsMq8{;4$ArS%ITOdkkA2=nJoKP-@L){=rIF0PHMENjW@$A5No_dYs z<(<-(EG#DgA4d1<10V5Jb^l#^9(+!aKX^$g-S3~&x^oWA!B4nIY~Iy7jeEggAak(-Jv>` zD}@Z$dNVEJvs@vyFxLG9lR~jf>@9&kP99ldU|Mln zr!FWHFeEVtnY9;dofX^%@68UoC9yuHx|A!^puynz%5ZjmuG>@$%jX|De~F%4YCTSp z?F@2ggk3=wM$S&p5wuA}L;Ue3=Hv5O<;Nl;FFNf{h#UB}rJ2Ty!*Q$f7vb97t0r77 zw>;l1>Cfx@V~qjhW+$hcPweH&dh%2{T~4;bw<*>y6m?;+B~WC1F6k2XK}u>WT6qfV zwQb@p&EFkPf#jT!O9d+F)N4@Mr0`S;hT-}GUcV`*6~(uD7Q^tbpC-nk4zLljYW!^O zJq~{>9PzAHnmlAh!J8BOwu|~7OIV57h}aCgZ)eg~q}-tKeiU+rrG+=3r|UR)xbucc zFeb}j(LR3+cMWy+d6>&59@^K z(Gc0=fXISMt4@N3=q%2Go>)9wg3REwS?f00566sR!HcFSA|*CtbsATZ3k<60lfDN3 z*?VnwJw~15d7~v5)6MITl~z;sJG4&{vKX=pxsRj^k9rmeN(EH7SDPIv zL{Eb`q_0S?XwRG#sucpZ$H<;hN_i!k%w)5j67k-~2|)RcOmDW@4>ONvdZZ-lO+EOLl25R>-%On4{ znse<2xk*P6pV2@kn&?|oS?mDz5=I(Axwhw)(?^c5b@3(Pl0z(|Eafy}yQYN4kTkzG z+lPSU*yJrRo}2L^(q$)c$S1@MuUmk+hvST}lTh&HULvT_Oii(f32MQ&V$}Ql16R zVI+TzO#T%M^2n!OTf8i%P0=gPMW9?VMu#*`0J)GV)79_3@8&+*npA~@fW(PZ^)^tW zD4R^NZM)iZoPHt1j=(FeoUj?nbhmLeb{@}iV{Qic6u+|}9#9i>)zo3jKiDZ?kxlhU zOz6-hKzebM-hES9+I(Jl)T(C@4>nHD?6M8PcZ?u$ReT}jL62H?cx0;&@w_*MrC4;Zr*8Q&Kq*kcR+Ymd(~2YJ|~kJ7@@-Jo;c3$)HJ{Cg~NcIx(@r(WDgki4$vFS6YszcyF47KiA*ie|-(3E6$U(($-**?CQs4 zd2wqp$&EmAEOEbixC^!{833n_-l}rl3lPms%`WT1n+~)x$UON`a6wSX_~4Uo-seX; zC2_QM7G1K>JZhQyUd71brp&yE9luG|oGfj~{VcY+(l4-LTaP!ULS{O+ee+GK{Nf%k zF4?D{cEABn=2%|$8zjFksHfVNRAVNua~+@R2;7Hi7TU zm;1ZByXVRfx=KSs*1X))c6}Y<2~*b9H@&|F)O-WX+Ut>kDCzSSy2dYX)+rK2rbx)I z->WallR)&yOIFjLEXhbV7W7yXTSfwsntBJ9>N@Etf1fMI1^9@!KM#NdW#P?}ko+i- zUlBF1lP;tFCv+i=RBjgf@-Az*+tZ zhJuEMwyGKfmVfV~)w~|_Pea4rP}q#w41`h1)h}EOc*=fJ>CJ8i3 z=>bq9d9&-{r{h=D`89(`Z``*Ej(Crmb`Kx^R5vj!_RT*Pa=mZwq`U84Vf!f7C}Gn= zqt3%JrCNKXRMgiZUQa3~+Dx5?)(#tEz_C>l&x?)XSm{$c*xtr%Cppeu&^f_6L9nkE z7=($X9Cj@x1|<{-Qvgsd8aG$H#!uVSm3PyxD-W*`sMT>D&(?56Qg(MdXy^aSV>uTF#n zN^^#(50O_;pbH1P!!xU^mL()4?0|0h`}i1e8Us4&VEI(g1x5t6eVcbhZ{~aUO}y_z zr7hF(WUdGpC2w?B`MQr5Ab!^;JguiPV1h_mGRq`{QB|DTF+#!US^+@JU8GTTOpemN z#q{IGO)mc8;$om(Uy85d03Z_N&%NW>0stuzFk0jX+7YBuW!jbqUZP3gq#a1C3lsUg zp!%^l6mb%q{Y7UD!8Bpu6=qFP_OHPtt+otOBVVdCZA(kbzyNsh>>rwFWOKz^z6>>- zkUh(jY?R%Kf1gz+ST7w>qANYKBlbrpV59?5*cW~yAs|?Ss{WzO428kXC>wlL|Kb-9+8c@9XLO{V zlrYZ!jdI)6iNG*vaF$$5(}Koru)=Jnp!<^!1OB=yoPmi8TyMtK;>RixrAVB6er3D7 zReH1a8OVXFm!g$Q0#&k8H}z5{V;n`UKrlt`UprDmCos~26x6p~tWer8Q}1NJLU6xQ zVh|a*F+Gi+i{x;TV>Pz{!|(pN^+(uhJ(>{T z1QvDOPZ`lVp|(5_jvc%3q9M$FgJQ-toCIslWVy78XCHQQoxUvy@um}vy zEL6c}`KIYvEF4ZW!Y3;SO;dHf^_QK@8KE^yDd5UXy++(8uTjO4pajNktwjRZXTX%R zH-4baw}gVxBO&&;^Hlk~CO=P3zWpuyt^)_V^MMu7s$fx@Ov3{&rrNu&L2vI##)lgR z3LNwFzGv+lM(UeQC7KL?!DF(X0T19yXksh!eSYvWmD=gC{Y2C(q*TM)b}i^>YEn}} z&}4R4MQ}!9tdkUsqyYnd1)SIrG4dV$>pm2Q+E>)52Y{Ue7`_Rfh93?ODSq^~5y&rx zG31maPTnPT>&W>T@!g>9hntu4p-Dn@mzX@jq@|A|WwpL^Y`>C!5p*{?`)S`*+&4~l1UDO$3vTWkU3!?8;3S}%YGcArWO?RwsM$5 z4NzBBRmChq|Ng}p)}(^r>!&-5lGFHJY;GP_7uk0xC@O(jp?f_Z2OGYO=U>L2r%lWH zXZktcC|GEkI*f}$$)r}e;U7@K(PqD!cEmN=iQ0BmUZ522-R!rRilhD!Qj_D75s1M? z`*x3-H_~CwlH?LJ_EkLSHL$YGPO*gAQIwjgJl(Jq@kE=Dm)*ppQAvDHb@fpX6kO7i z)Gd`9rdxcv8_t;c@njcd{DSZcFLYMEi=c-^zwn}gx!15EIU>1eApt(>$|y{w2}qQC zNEOxpo!FgFz8%G_4}iOE!O+?HVNYCF-NyDk7*X#g@sMkJBPyuGn=FZFA7W5-Hx}|y z^qh8nem+g1L}ytphZhJKXj=!o%TreEGqQup)3MYDi4_=RVxhGnx#e{3MzAsGZOt|j ztQ_)pyxZIh;0^5+lyS_4rzT_(!I^?dw7Rn&wBT2`w=_a`*h;E~8iq62-=(o!$1HFF zV*GxCVhs`^;*^5nic;KPkvx=O{USWS0LN!~#RS`rUpvp@wTi8pu?c*+pb{wi1NN6& zT{?|N1S9rcUO<3k{A4=1iZyNTbY>!xu9;R+J`IgUy_=)?&P45cUIO{CPoC!1_?I+n zr!^nE-W`&*hVy|RPYeFDTrNnwPu~023VP6GOdk5akBKmb1^h;Wo#EgdFAft%0%*)i z|K&=hk8X6h#Asls)~KVZ^Zu(YHGIRTBWvW64(1tm`nlOo5VBf%a?&0MnruBPifO+q z`XpU_h9QE}EWhLKf*VcsKZU5)LP|5En^nYxj_jL(ZHn{w?rM^l8HmGJ7QcO+z_J|Cvn zQp6Mls2<>Ybr}*Jl~i&3cF^V7;DSVy82XQ}nYJV)%xxZfdk=wP|4J~oyl5#q5(!3{ z)OuQB5FIQXLWJkb)y8UyOrsyzjqMfjL0Es~o5oIf|EXm%E@}TV5e6rq-4<@im3339CWGC|K)9#LDJJ6r?{P9|U?oJ=pq(0u<9Wwh+%~+$8j)!_`^$IR1-|aa zQqoeKEj9gIO9U7R8N=>y+jX_-Rn{P4nwy~rzA&izh;(N+@#CFJ(p0DZO5n;FI-`hL zoqr8~8vj`v+rz?qR$T;FRJ7Sb#u%HLar2h$yva||m9NrLc|OTqXuh2>hy&fK8B z)IYU8*X0Gx+kWbEm$9A6Ca=bW8~OrkFPKN)Xn_zWSD2ZqqJ8iT&JH8(qa!@2@?ckISN>qV*V};fuW?6`^S> z8hyyR>U)v2EdHVQ+Dt&3g0Tmy-w{+MpkF5Ldje&8JebtWA?K*!;lY4%jYS{+C*%V? zo=5nV=`k6V{zCVc%3n|0B#7=v4AEH3b!QwGI1}T@zjXDPUv}9nZl2ffUS*fR4izs?j*10I-wmR_0K4N^y zg8Ci=#5e^W2x1zzygpo%*>mNp(O?KwQmeQJZFTI0qmPsN1NUtw0!}b!12W-7YMfqq z{lV1WZoo@>G2jX7exC9hmRKyvZG~RDO(Qh$i=WQ$E4lGKJc44(li|b4$^NC7&G-Cl zzC1EALM$(>ohD*vZG8@q&0RXrGi( zRhPro3T7P&ffk!owL+8iqoe-UP z>P59R^Ee5*KKgu8vC+RTJ|ds;pi)pg$qwG1E|waDtExmWq8}qu9yT52ctrBYh8z7D z4C;dB1h|pF<(2hze){CPH9kQ0jd_2R2Kz~~G?xZ%1ZhvjR?-j_BA)-%K4&6nFtfNnwhkd7zZ^P zF-!OCUeh-Il;tL3j;E)YW#`kfpnHZpMe^VaC_{ia6hz6lWr($|e7HQJNSu>n)|gI5 znBg73ClJZm*T+u1o$m+28OLxEef0#2%F<<7RMxs^)tfKZ{KeeJ`|@wu1W*h(Us`CW ztv-Uud(jAgj_F;XRvRdN*9>o5YJSo4a3`LO+3XZx!hp}~bvb|reT#_@l`>}6v)N@(tXfG3X{1H%f|rmN3HZ+g7knri-#l%xHw}J=B?Lw`4PI(&6f!4 zjTN&~L0|iiz4I?C0oB8CH^IS4TP=JaZQ5eQFgEk-fM7qGSTMW%-rZw);38OfhPWBD z8!U+gIZ{+n@pWV4^3`O-xGvSktU0jG4Z{qA_$MNrVK(_scgoe7!^tHI&d< zXv`NfW-y_@H{0pn3Mrf4aTn10rD>6kB@Q8aj`UF~C3EO4>xEELNC`KMHow0Z8Hd%&-8CL1bt_S+_mOs z%L86BcA(@BAn@4nXxk`F`aJ4+t?{WC5A>)MMH|l_KfVsTa`Pt}WBsxwuJ+Xnulh{s z^VY)_FkkR>3h~RLd#XhRh~4WhCFn6T>kCz;I2HNu^$!W4ktP|T(qgfuFzL%KkC&Ow zuQ|cG8vd08Ymt?_H^Qx^O~*Fu)IfPR)xOxQzZ{NoN@3I+H)9i1#iWgv2iKi_6cJ_? zueYY4>mL{Yug<9TH%vEc8p*1-y&ijiZ2;yHtNoh*C;sj2h)wY0CZ@wB5mr@eM<3{*TQw_9LquD;DpUI)m0I7u+6&Hc@IDSM`vr6~|J0+mDt+-lXs><|aI$8?^6+klwS_q`{iX-fFP zY=nHA)`+if(>U4L5(nVTr-+mCyuG1)+E`F&uhwBe${m#wY1ekp-P!fai>;Gc?*f)m zva+(}X68W{mubCi`v{vbeBTTV9$(IC%vsaMUYB=PQA9lPz*$UD>9*)vpZaSk`zJ*I z_dg?%Qr}q>Ni~G)WDJj|qsD~YUz|^H)-wSHqkv`mHxPCE_<31_bhT1P?kC?Zqt!V< z`yTURqIu_sb~c*tf|wjE(w9WRk~XJ_K2z(K_0-k$nqc+_?4tpsnDDVI**C9wAwyX+ zwaZ(R7)+popcW}T&6)B5t93Kw6*t`rpFKP*_JV#vBH~-wC?{>BPHW&Vr?m%dKBV<8 zPM%l|32Itp&PiIUNGiaU zRd+9cPfz7M4Ok3dKtV%G@0EG$z3VHpBkPDkfhHN-&#fkHHFenj{rxmK8F{u6ZylPi zP{xGfs*MpN2K9fHajic+FhrHy z;vP)6rN``@cG+O2sB^&bgP$N`Agsp=?8_59!^gujt{VhAL?u*5JAWyZzak7UN(lc~ zBx2Pvz0Vmd5remR=&FErEtKc;7lN9Wo7XL zn1_GcP8Cq*zO=F!om;s)*3YYm?%&vmC`oO)jC$x5RaIH(gnmZ4nnKz^fP&=eqGkJX zyUs6--_6QB(u z?tiX(97gi}a(H^UfTTB9u^cj{J%`i65K2G^jqW>8GB$OCJL?#OX&3@CVQEPV>v!Wz zEf&%GDo^Bt0?*_kL@xHE;_rY>Z$4p^)G%3-Qytb&?;UghQ4kUJIVeG~LdgYBL5aN9 ztY~JG(ere;1*G{^t+%6xaaq&QkIoT6Fh5&KNq>%z878+XPAq%`zW$VT%E&{o9UN-3 z`$mW!Iuv`I<6f(HGpzQq8*-$OMc}mQt~cW7+y+8-?{+Yv{bv`J_U=6;AL~*UcNi|) z{xiR@0>Q?8w4mF}PQ zBO&TeRMkA{Ha2+HzP%i#ELc3Wvn^NKa^0`U25*m_Hy3ijOB{xRxZ~-vzJ!D0Srxw? zznL3cPB4{)M%_CF@@tP_yfJ+o<#=D23%;((`%quV-Uw zfE!#ArMBeCQrg~49mviR$+LTF1y7#ty;N875!T|6|D7cylcajE+u!LNW4+dRb8Te3 zBw)WBuAc^1)S)WihX}5zYIM+R6p2^}Oi!!HGNu3{+S&1}Ikl@+%SVHm}G`M(alc3f%d!SU!pY&IW~UZZhz$>z+` zQk9gwjG?x>M=Z`%83uxE4-eazT_}kt;Y%+zn4hD&-Iv@!^5`mk3bYt2e*7g0mDjVg zbU?%Q8$oaC=uUj3FA|i0>>DaUr5>Xj+%pn{b2Q&!ufSgAZqeJOT0a90Y5%;awx*}S zkd7jFn$CV{G;HfRtAd{LJX=2ATrEtyPr1b9$;nz>g$F=?*yNWdi!Ud+!dihp2*XA3 zTiyy(!+l0x-h%PRaY&w_273_XbUp)?-B0~NueDuy9BKAr_T@hJt>r{S+nRA4f+9_- zS_?lTu*yp`LTtz9Sn!Y@9-N2JBj=^avY}0`>hybzgn(q^U@dlxDI9LQS`Br7-JPMS$N`?&H9*yu1_}f$!&N~Ufb8NGoou2-3F*2f~)4pUY zHLz)3mA`8gca5rdI9TDK8gVdE_E#6Tn5)&r@ags#K)qp#Uwf@P;?yk2QU!%y8~?AF zK~ilMaHH{E2Pw9|f`c5MNS-?U3M@5jtMYOwT|c$~VV>Lxe5J@c3redfTa%P46nOzP|jQQq0&mzpf4#(@2o9H2xq5H&ink z;%^07h9{Xst6K==P}n@fgG&5mD#G=Q97LD%jhXp*I$9nETmQmbJ8VL6bqW@Yg`#iX zxR`nE%T#zc-B)!mzVT9c>>yoz^CsUUfF7Ca?~}le4Ie^cES34p+2p=_*H`=@~MDk;rS@{Y1T{^7g9m=Oqu=;&HZ{tK{dy z82oGwUG+)mQ>W3DpnodwU{9s)af{84p4r;K4?TZA_SsX9LT3A+B?TMK`qf7qf*s6G z)t6)vUMM=Z#RQzS8}b-ael1#Q)l2T%8c>)MKR7RA;^pPl_wi!R{+23gV7RGQ?lVP9 zcsU-2El9KJ)u}BEXBg7~{aUTd?{ae@ z)qrY*o~ReP_0P>oOMBjnU?Q4~iHd9_b~}nKHzxLw5y$KI4{{rvjw=Y`7=#HUL?uka z@PLf{rHzAwqdC9g2Al$S<~g9f3;9}C1Vp?wf@8h5`7QK`MZvHGFJ`VXr2>z{?Gc!t7R%g|HO?FH1 zWPE8|N2D1E8o4L!r|sVIQEy8+wt51eK659HI+2;570CYz7fTVRzr>4R+>CH}C@+C@ zeic(wGi}f=HTv0>HYY!R{?wl@KjA?Y%L)ucOMxPdtLS8!zyU`F;4c)A!`RWCz%#~- z#W9*?T+2?Zoc+eZ5%nblKYh@2-566+2B#@H z=9)u9Gl^TzeW*llHWl8WHb4mjgV%`e%NGtHK6%rpv<*;u7B%_h)?L)q`d&c`WO(se zAuq@`5>O~tpWDz9EpC+`J>9lvopG1@dkqR@ZPwP2=6du(0g38;{c`tB*LMbg!04_L z*jgZBxL@dp;_-Y>6QG2PLl`;L3bT!|H>?KG7kCq-R`EHlrHT_{>A+;D!DqvcIm#n+u_++Wp%b2}?~$8X*peQm}Xd|mCiS>@}_i(^m2 zGYLA_UPJbetSqOZqqSk%z7MhDE0$qIc7+$YU+{@c-FLn0i_5 zoSpI8+mK0RS?}w-ccQ*-`E~)+pY(LR#z?YCqJO)p z3J~O^cQsaj_C-7Em>~-_aS;O#ppnjx+5W;Xsh5_T3PNe(xZNHMrLt#{jdqq2rqh;K zb{p=mP*WQ&sY??ES?76-whQ_A2AdyZ32wjR7?wmW6TY#QTv@j1veWdj{rT}1XdmyH zMhy8;AjT^pCsn?gPBq(%^vUcp_fm+5TFy5}O-qUzEOpCFZt&9^gqMDy#Rk?O4N zM&R^GF)*9lV8U888Lz$|NwcM)sS9j$@!9_KcPgUfeRfuPc?bbK*c~ z`^!BZI#xsP1P92pfHMU$rH`#GPH~f8 z75>J&&DGNB;VA@Y8YrsLR5yt~s4RV6TzuXyJFcVwA#S>G&lbOc3sFn)2(#O6%bu2*E@@RqG-^_hf~W$Bx&yQ{8zPTFyzSf zn{KaPe~(rgDwE_XN|RAO{tWZ_-1d1T{#@?i`t7NwhmAu7^ptkLQpq*jE@#V$jFbrs zzmu|p0Jj|;Sn>tm?XRtAvj*;plAfNPq9zGtnO{Og1?O?!rPWleq5pWqkk^+65&$$B z10os+Pq!ihpcLE~j&=)sy#w zCA9V>cFgn-Yd@>dgx|@qtB0w?Lkt1K#xtBsZb1RK+zk*L(fqJhOttWl(;-znhZ$J* zQA7(z)pFHgsCvhfDdTcoB1V??bES57F0EqppdT)=?Q+xv(m+Eq+3DlWjg4_}X^E3# zBzB};21UIg&B#Mk+1h3i$jQx^#uV=M>w?0+Zl%|vd`r3B=tqxd`qP`Ak)8eVb~lZ$ zgVfx#cxPKtgS{0{sXymyJf;#donf(XUC-+3z{AVi^L8ssgumN`%B4u?gY^6gLy!2s z!(4)vIHhd1Xi_$Fp*kQUVc&hI|6RA5OA!BZqp7K)f+Y=0R7Q13b=D7)E1F)$kBnXx zf0gf4d|!kZyDfgMKXiB?_Uj<*PFHyZE30fmpI4XOrd5r8m;1xt>n5u^ZzY)2b%R(D z=^4YSLJSY6SN*UYcAz(bSIGZn(Jlt_i7q|+eK8?XDPmqzZnd-NzkI}X7iUgR&d_+- zGC~-nQU$c#tbmI50_)@;k;Nl~jd$%AAy3tolpVv=6p>afBo7Zw7bZ&AhQfm0-Ka4N zX@u{Bx!L8XXC6zO>{0S^LDl%B<(i}G3+Sd}rZU^N{Ltz|*~59Yt@4Zk`>tlk?)}#9 zOL1OJO@np9CQ)^8(AM`u&HWh@=-Zfjr^G)RHf?ged34rHHC(VVFwK87>;yVNwO1Fg!?5wx-q| zJv9)f9)ADH_R6?a)NjHfs0FPp15GQTLj{st4sZ;rSk}$2gNFy_zlX?t0mDU#cOp3-PNnt=F}l&hW=P_sXIyH#L#JZ zO?me|f6gPI4!n9F12IT~FW1FtddjhdJOwQcPIf@r2VCr_bV_uq0>n9T!EYby@?q6L z({HYr0vePl4kLXd7n_g^n=L;&kO8liYyqS6WjI}X%1AnhaQ+vEJev&%UKCQ)gWs{w z5p@9~q6|r74~GOa#><<8dQF6dHLmvpAblTdqYD* zM+WJVK_vDO<~C;a323`E4F&*v0QOF{p?6o^uhDxWKX9eZto-7DtH{aEKOZ{=dKOlR z;j-itPy+83>2bp4rhr7?0z@U6+M&@Rhi4#_2WWm6dm2dtcnKSRW}4Lu!@^Pygk$Us*^kN4$hJf? zql%&A!XWX6p=zS!VvrN!T5>FS$j*<>z_=DM#`%}C^DsXBVp9e8Uo@2zCl&GcZV!i^ zZ_u&)Xd|1JUN$MTSc`@;(0E*wde* z&qH=*f~4RVt62VVL(lQSURXOt%nenh_R6lAa^7~ljeG$56R zg+M{7RXeVhOLX2}V}KwNRg;8^Ge`~I{8-q9{C#w1k=|TiAJ5b!RrHP6)3v3hh7BdQ zCjhg%olliM4t1t2d(C5}p2n_FjH-a<{Qj&{LK0XPBxvMMe%4@+lQk5S~ z?J~c6h9P&_B|l*jy3}a?7@2Ymk}Y5g>9`--?t0GcjDPxz^vB^mius>iUh1bBY;SLy zYZdKLwzd<21RpyrsCNOep0C@V0vo*>ZEXG=Q@cU6KdV06-xV1mPL7YC079~wnippq zXoFRf#9ckO0MFlP&u*cpzeV4qZ*Krm4L!Z+^=5z(1@Zy6X_kZa9mKsZqTNQx6T>q0qtZ&ps)0m&&dxTYGzZn=%kfp;=>Hxz;;A5TY%< zSQy;oa?nI=)M$u+KCucO;K$jdw5yAMt5gaN0XxM-Z-AyDvzK)NnZ(e^03Et)Tf=3R z2e%B*OCP!1HOCO#M2b@TE5QDIYwzkJj2RjE87cLxHoeEAIeeOIm!Ann^1vSwG$~Ff z7MJKGEiG+~!1~6&@Ve8A+~X~SoNhr)w)79*0tTrUtD*JAB)yFinxxC`w-4=Y+{ zpmjwZSuJ;W1Eh1%PT)tRbNV=fuyf(_p?!bx{y&<|fw8V=?bdN)+l`vWw(Z7FW81ck z290gowv)!TZ6|k~bH4i*_Fi+&7h^mlex8e%@CWLxn1c?!WFEmpyb*jt0@)jI_lAas z{wMmJB}ByYpWiQfVF(dc?fLW%er#Lq!CU-vxO82Y(uDP3Vvgt39L+radl;HW@AS}MD%$W zJ^%zfR<;;9jRSYQK0 zBD6%Vcejgkoc~aJ4d;Y$-SO{^(|2cNX9J&dH$VeBe#kxLr2o?<4@*{8d4bG1-D|3V z-rCMRySfU?1riFLvZN9fezaWvlZrCJ0C`)4La*p_cXziq+h>*kc}b;88A2=GBUQ0B zXy6x5#9LmN|J7Rhs%f_OV<2x2Bq&jXI?by$%6kz$7HqK8DII=BT3SGAYyA(QaXuy$ zSGpaKl2hv3wc%gc-K5cL3+t30&@UwQ% z+R3T?6Kx%6a*ktxeqs8gpYFG^Nf{rsGi%YN(=y>SwR`ey?reH)cike&{)=sW(KEVX zf-~13s&T-e(>#%j#3M#;p#k4XtVO;=p^d`w7QGlkri~+0vxvAqghn;F7hb4@oa&EK z+unWDuM3gQ=M5_~w5Z4fE^#FAjO_kiNdwux!%)Fh6NGI7Q(4jB--l+I(DJYCh*#D7 z54Uqh(;fClP-r=nrevB)pK{ZEa0c1`!Tb6(aAXgR)S5_&-H;?3|rX z$^o=M%JJM9>~QER>c2L)uhxe1P&+468+d?jWN9}ZP3@bvIwrYT;wjP%K55>AjvY?^ zqFnOfvU1R)6cL+jToVI*eV&6-Ak8Tf2M9rW>ig?8FpAJhPi<_>D=THnCc@!t@!_@V z&5w9z?Ckoj#Y3Yo4a;e5;qZ3F?|D5del^A?p3JGxYpLlXiCO^VOZ^$; z1-C)P)->Y#dX$e4zPt7D>Qk!BwY;ZynK0m2R(9Q~SM=}_NZA4=s)?Dg7BNGWxn>AI@J^_zo*_+>aRj7p}!DEMAvBAgbTU>uWd1wXN*B2#LV2npc8eV+XK ziv|H2#r6?#Ae;j&H{LYY?KPJb{6^^#a=&& zVNgV?*_D%a5#~yUTyZYm56uAL*R5B3cB{Q`;>!9PDUeq-%+);{AOt}>&m?9N**?2& z>ii;i=j+bbr>(J(T>86N*&Y{gy8x0b;K}o!ah;&|djoWJmBq!Tjw->!M#tkjAJwO` zbQm#e$~i7J?^}R*w@2pTj=yt{BjbF}YM6qc4|R0>sAh~42Ha5n@9_57)58Ui=VKHT z*hvhcx3G#dtL5v#H#2&`Sgx<1TU^Y$86>XP^<_g&3@Gx&#KgLucj2(*$)-i_C%#fJ zv%t1{`?VkvD$G_fF@NlG3esvxN2XJcmu}o20;a~>%eRfXiN8%qdvET)#k3THxA9?w z)zSU17cs~mXHV0;g*e(bti=>5+7i)q7p(nTO~7VYesyHe>6LNNVEs!Ta*oqi>sA%sGPi) zcQEFJCw!> zN+HvS^(iPc+<8omzGA>rfkg9XVf%7DsBl`UyJ#eksIaR&c*VjU|Lgg0Hp#83413yZ?e+)9a{*Z*uq&ZToFupR7Q zLp;t%Hcm~JY$xZHxWl^PP|)QhG%O;W6(K`?iTt{bbmQ6lNAdbWxscPF#jWCYrVH9a z$^tV)P{|~A5`w)OIev7(zy1X{vph>DGs?=UFrc9V3rVu*snrdTh8(DpEUr%b?Og=% zSP-s~jf)Bk3js!kr6qOywDyickBSSf!DqFR?DkTq4M_crt?%1^(rj~QRXv#SSy(a` zeTu|qn9X5kSZ&r@K)3Sjo{^>T+j!1H0~ie~-I*z9+>mBWp4Wk@bK_&yjYpuINc)~^ z<^Wyv_`jKJKChI~`)GM#mksPiihXO4zd*0IcWA-l-ynwthnw{|$VAn5)u(<8x->DR zr%cf{wGtZOxCaQ zm%O6og7=^9gHJ~*=lw(eQF?m%bXFC1k;SP*9U;8vPH0hYz^!8Vi^=IJks3)tDZ3v{ zbJ8mGJl%miNEOSn()(Fb*q6tqeQwhd8j_o`=SdJpN&n07pe)xae25_Njm~FBgwU-;W&R36AIjGPgStI1O!nB+@=hhV$UmIJ%kZ$u{ zw}9fD`4~F>5mLj2fN;ReKgC|t5q{idFS<*s`K`IBsr%D|zOyo^F@X}|!>3!LObtY? zv(^w^bgPg54p!c`npA=WGlm7;)85|MxRe+763ZxSG3pbulFQ&XNfKy~L}IJErQ4x- z1jmAM1)S0ifjijILBJC)&^$&8Xrz{+j5{+nW$oc0*DWnB_U$mxj{$A&%kJjsX(rLf zu^1ChEP3C3C?+l^LEj6p`eU$UwRtU>W=5Fi#tfCwTEs8Ez`FC41Ih}N9lKxRTED0o zvs)hByuH1he=1QWF`(wFYTjaWBOwtYtKVXhVS%0?(vIiGFzs`vFzjXzx&P{LbaZoT z`5t2aGc=Sudm0N`5hIb*>gU#=fd`=x4u+0qvPuGk%7SWgN^(ld*P|~VP0Dy{e;s8+ zt-8$8gB2TGUYT)Hjz&&~u;mUh{E>1QFYZO#vA3nyMZy3uzj=6is-`{K#;iVVrNfJ{ zP+m9ymlq(qe)&(M)%`MQ>jM}WS=n}6L*3!g$s*sAkazsJ{Ft$|NeN>Cjo#aJRm2MI zGek~qZ`3O|?_zMTJq8Ltup6G3Z~~Z2Oz+UQ4NigSLf&GcU<;gzcqgR z!$bJL!!o=E^epx~s#jnd!zS9xSdg2#BWD34FCPde)_2WcN3r8@sX%bl6W?)^2t!S( zGvu7ZvJ{7abt=!r3h$Dth@#uz>i|dGIRbd(Xu2xO23QBYbS=J~Cb#$3Lp8sK_Ild8 z#|bbUD4n#TbM0x%Be8Fj!a~)=Yn;l{C~$P2pT z*iSKvgr$d7BkSe`BJR;k-v$^mbUtl?LK5SDA8o-bnjOHySYwn~`|k8MpE;K=g<8Qkn+kLIA@<~HdpF3j+uFI`a^=-gz1#c; z)3q}-bT@u$uAiG--M*Y{DR#E+G<4!T-EhXe5d8>~4>~!qG*7prOmw;BjLr}a5>l&p zyGU06Ipa|#|I}15nc1CD{thdsQ~&-MN7L5*RxC~{`$6Q*f)X281?ay4KBL;hr+o7TZIjs8x#4rZ-WEJ@SQ`N_cLVtmSj_=vl>3;l9!YF9qWvbSHK@$ z)>pTCTzF=K{j;^b$8|6Bi9bSxLtqqk(V}zHo8K-sv|Qnez{eq^m*cd5A+%^;t4bje zZjwBE@r_AM&BUqp+u_6CO0rN0+$uB%RGkq+^gIGaK_Hm!Z6zL18^a?!QNmV4gULb> zkLqK=ojS=EakM(*=w$yf^WtxiT2PipB9n|K%hfjW@YM3;(sFg(@_aSg0Y*aQ)Z7OS zFDjit z1*cb!yq_MqZ*}lml$b_8W$F$0Zrqqs*Vop@j~;aw@^#qeQFVy?m?rGd|9@kx$Q+B8{4af+!QnYc z;*|VhjhM;-gta0imdPKnY>UZKaChxFP-JUh5|RNSURkP$F4~#$uQ{;2wXD>uI2^Pe zYH8bfqL`cy5YM5DB2qXz#l08_GmDeW&WN3F`b+ck6Mz_Cs0{G=!UdDSay9wE!qfG7 z8RlWAo+*O@qtfk9>%oJUS<{4TJQ>UrkNej?_LM^B46){8~<@I&SZ)TUOyj2!JC&ML;aou-Q z#7jaJVlv?M{bCQqgv=-5mevTzj!|Ck&pqPGsA{hxE|`1#Q~lcyy7AdynuQ=smT5$+ zy3cW*uu1b03r^EqP$Y-gt>b zb9M>~N7&f6{O-O{Xyd8i1%vCGGX2mI!(5CD3j_Lt-6yCJC;SUN+4(pXt)<|tC{iy5 zx!ABTJ1f3#PrlI4Y5cG5BlZ^tlA%~rcO(}&L95tX#pcZ6McdskcSt%-&o5Vpf2?N( za=vHEorOT1LJX6@fq5~)7gwyug~WMhJ1S%@HB_mJDJd~!PvaRQnB00bJumd1G%Y^% z_D+ewop8p0TNmkPlxgzqj8uLjM+_KMQCxqV3Ry!7{CY-05<=-VeARFj zM{B1Z?qUR>FQ~S!*AGC=ZaFYDH3jUXK6hNGl5h#m2(hul*k3K6m}3s~$a9Pn^xTnu zXL9JRV1DNv;IPU%z{5=h(m#olX{WFbkB)$LLr=q*6J?1^-0#8M+neA|(u+JXvYv+j ztz3_7Qyx_s)Yws}#YL<~UpNxC5f`wYQ*VDgOFm(Hx2RBSorEe45R~ z)U-IOLWsW^o*#uplIw(XBNNc<)q`PucpfD)@+ ziBE$TIr#ea_9MHZ2N}E+%SM?7b98xsdhWCu#B4g(1DCI2&&t+z3$W%4Uwy$J;wvPE zjb;e;f&O`AyMg4XzbHta+#Ev+4rnt<#5gPe~NMbz|M#D=T0 z7oLp&y?T{>D~vg&ps^{p2C2rdt-HOOW0x*IuH#^=#Hlh6LL(TI5+gplN)ml}md7FA zrLhhOD%Mp0O3Kg7HlVI9Ll~LN(;Bef)-It_;9KKhN3VCy!C3U%wI%^!;EJFh&@|tu z*{T}psBdT%VYfMOf;zNubzYqGDH6r$k~(9e>vd+8A3x>``#Z{S6BP#vuy#L^OXj1B((!FIlXj`hb&sSj^x|J#O?+;&RcdjeD$BYM8K&cKAZ1l(e4CE=Hn{Xh`XT7vOcz!*f zUv9KVNAo$cB!s#$VkZEyfgBjHuDV^U5b^d$7o^8}xb(A7nj=3x$ofCwVyMS*_@itl zznXSD4OH^*<$q*rD$x%6oBWJ9xUKVQv7O-2x;VwYAhKAL*iWal!*n4e1JaGAG%Nw< zs8bFcR6o2^`sPt(>bLYNi~^0{BC?`ykpjztIKyayz7lS>TYyLAD4>obaKFNQ6`(Ra zK0dyhtZi>^PZB+d=g-PRU^2)3a3Zm4t)8j)-JU2wm8^iNpw2@UE=l%Y8)AdJ1oe%n zyu5rovfWR(JAV3ToE)`ZR{J#Bu;;~Jz;EnhzDtEv@D|;#9O3lQerDB-J4P~MEH`zl zZq^hM7NjI4R|5F55My0{d)?`grH5Vw=MSL{DwR_0%~CMP!d}Bgw#_uNx#Da#1&ll? zXoxpAaV7O{2v zojrf}aQL@L?r@RG+&JKLTblSVtr^;3$vgn(5$%diehKHoV{7P0*o%Uu(hy;-f z#N^O!nwY{Da^vUzMqNRmjt160Jh1;3pw?i<*BmCG9;q19OoF#2z&=~3zAjx2uJs@( z`25fVO10%|PiL0$h@pn14c|5|_9?I74gcV-^oM}p>{c(nQ)zLj{DmyXc>8Vd(DRW*4oyV+Bl?;W(1u{cSga#Zk=y2bn=8%ATgp} zON`|;LD}D$)B!AauoeOGBG@cbm@Td3gthgVL_>4)58Qsf>|G?ixF};w`0;R|;Kbpf zfrsHWt=NGv2zbp7W+n~8zD0IN|6OICi z-Ph>y&v3(@MqtOvlMCS*5Ql!kRpn|0O-Y;J%re=@zz7Z0L>&}XmKNUurs9Y`^l^%t zG6EGYZiHbd>mb*W3;_|=B^L$flMCrh8DQC#ZN$VW2wh(GUC$ljF+dw61z+42<2Oem z2S-(YaQWLm&@61`P6<5rH{+@=_WQ6Zi_HnU+r4LEL#epy`igrcNcJ z%wp!xln?j!JdC<%Yued)P)lo%SEnC{vB&|bsHm{AzBFM<73zYAt1K&1-pmWPbb1Je z%SstI+_3=ZVhR)r5w-f_**Q-Ud?#q|fR(r&WCdqpR`!CtGx z!-c^hJvg0;A3uHBOQi~amu?t?^|V>2ijuq|tMjtd3AAV7u4mxq?{2i0r%F;ELb_ma zx^HDXR^BUJ6{x&D(#cj`ErNkk9*)D9XWtG08r8k#*Y6iFSr8#cec&awJF)2{j}zTPFSbh+$-EqrY3 z?0`-Th$+BKA!)E=EO6}%x`3T3|$kyr2oY1GepPyYbA&kc1-j+{KMH{WJia(dWW=Dnv^X}0fL&j zIShKzyA3!E4+~6eQKtJzw=FnXLS)~q*?bh6NW!R*r#M;|)0OY?(bF3_&b`1ILqpw^ zz!z*#t+?t#sbCM)T0VBVoxsk{T2a+`WptQuk+I z6F~ECXvvy9R3G{gu0Mof)z9cGBa3N_E?`{@eZ-s*{$|o&TCRHf3`-oCN91RUGuY&W z*G~`Wt9>fkOEq$hDzI;9Y1`&*$x`3l z*{T1mG0H~JKfmcEzWNg;aUzJgNG+de_C@lTZ`NyDQ|i($HBB4(dH3r2f|iz6$XGLI zvk&bD{J5Htr_#-uA-h<8EBJUCkj7U9^`Ai9HnHc>Za)#aA zKd`9Ftrlok2w;On;^mc9gf=V&N==Ot_4T?fp>tf|mX}CSO3TXu92k&qo2!<9yGDjS z2Pqm*8?A(Oea-vdF6P>f4$NO5SDw;>B}tVmSpptIws?+M0y3}*;O7De762JDTbl*^ za=EjIY7V*vgZmPFbdfG3p@O@DbMPUt22mx}3DC;$KQmyt!1wM%(ZbDu#QJUEfjNCa zvoSR__4I7lrbDBXC@+HPNO19J$>=%XG-Fv=oB@vDDyFTCP0SCWUSc#v;bwbQgi?MC zNXaRkp#uIL&duVPO%;@wX`0`Hf`wmyeEe)-_j2}M?KF@-fIazt3e)bs<1dF%vcY1J zirJl^8I>OhwphfB>>=%W9CJPH!Yqaz;nC^8a- zi#$F(0bT+;tqT#7@60q_xS=7=3(g=jb$WQQch`qcF7*tO0b@a1vpf2hsr>8pnUKdm zy?XLHRWsa|kw(YWI5>lZm}ph&aG%eMGYAN$v-t);E4wXH2}RqE>Eg5WYm zx{zcTqK3mytd1EcoM!X*z)Y?wuID>JvH-5DAUGR3j&#}L-`lXvDDqUBmHbDw&F?7T zCB=n`FLiwXn)yKT=>qb)%ItZmcy1o}xh6M$e=Wgn<-o6%3AM0KJWmjW#5gb?7rThr86$2GHNX#J zBKmsQL7uN7f8ViFS5=oZz-T3Llzf&w?i-Fr*UE#MPcf=wOAeb?-I&wYhG2bgY^bQ| z$EDbdyZ#QJ0U9sf!%Vy8_t_uU<_T6kPbWXcoSwdTKUWEW)~qX!R9F>ht_;Mh+FJ2D z_%>%t$V#QnB3;qn2G)2V`9@PK3h}7MnK3!*xsG#w#U9kPn*Mp~)LDxUv7_8~B-2Xx zpzCiB@R>Zy68<)h_M(Cz-(`WO@+d^er(S&P??dp+Qj*K^7j zvB1UtD?w#2RbG~SeDtHT5)TgR!gh;)q#aU&s2pDzym_0u&sSE-*7}T-hli&0wodi= z=&KnOA!aKLy4-jOt7lqg@rh9}5+<)TC@B|iIBiF_K_2(Fx=%y<36)fEew033OJ&q0 z7r)JjAZ=)s&5(QCj~Z1zOc`mWFJ&e4gH5}(KTa0El6LsMj9p1USmT1FK>6+5x^(9uyD_{Q6_%g)22^IHa*T{L1uwKZ#z5 zfa>PV8NZ?;Jr16EKoy=n3fvnu6&J=#sYmse650d#&VP>3wNG@s@){di;oW!ROX4xR zzU$AZs!rCa%#?ssaP{1k#d~)m*@+4!QObju$z$3-KwtL>rWJ@o>yzk`76LP$@2x~E zh`ogbO6@EvP6H}=?qE8cK?$)pK&W@N>!r_?p$ z2e&HDHN9^Ik|H(r?d^b|Kiv#Rih}we+1!q2IP7nY@{=aO;s?AA4ynd}e`q}6x!u!a zY%|`y@I-Zab^V<0LAD|KBo7R`2dfiLXt3x6Yq&9EY3oj}UMLkv!5h|DAxmI~_+M!T z7g$uc0KX3pv)YR)ZRus=X}Rfo4$XcGkVU}gU9!3;%S=E!7hQk8GhC)Xjm|ZgHydBZ9yuA^W*1SZOx|2$9uBX z^W6Qj{H|In2*&Cr!bubs&MkDl=Qh%M0Yl2i7)<1kbS;K|#K`C(@kvG@w@+x6oda-< z>#>GEYba;3-#{8Z^0e~bOaFZ#^MfdObB3-9_~j>?pB7yrK?s)Tf)cXO$kH>nX52lO zo6pedPFM%dmn6Fh4Uc*w1vlWU4Xd4APak1+d!Qei5p^WTU2`jE4VKQ?#m#?d<0@$Z z13Wpiu+e5;FYhnnhll)DtFD|A(Q&pgF{q_pDusZss7}+_^WTvA)$){j7mh-n8N4)d ze5o*zx)XIb9-I2S2INWxQs5cO;|}-mdf8*U}45PRw!6Aj1%y#Z}&&Q&Oa0 z?lZNkYU(=JSU6Cj4J`-fIF+3<4}&a(3w@U*S=buL(73f2<}8{F`#?-_{FRG5Cy};y z3je#y=h4P)_(v7(k147kc9L~Cp#f|FtBJsp)l2~rmDq3_P==yKQzERe$&&VKWGgy$ zUAh?HrUk0R&9F{8_=6C^`$?RhnfcPE8$Y@@s*C8oF(gS@TUiB2ZFBgbU&>11ohFbB zw=5xdieZ4@KJ_DWJ5`nyhDPR@^c6!1pGxKVj|6$542t7k2uHx)0OOv9MTiU}Z-k&v zBPN(NyuA&dZhq7U$Ut}m%Wv_E_Az4)y$8BNntjR;ulXNnB}1=7Z)o=JCoGvMgnAMO zpu1^3U*B+GT*izk(kE%@ZTyeFw#QSg*tABN3O*Q(QkG^qJme@pslgkNFG)sPG66|E zKK}ctXMWIp`6~@s&<9?1AOf3{#z4oE5fcL=V{KQOf9{@oP?Gfajx>skG`wkmX-Ane zTU=WBfYodTP;r*kQsw3kSTDM|zDO^;|!J2%-|(v58@BM$<^w zkt=l!%;6_6_j7WXZi#Os9l39wUgA!{i%Q`;m?-l@SDMJWI(OQ3syt+LZ?#`_wYRh^ z+t{rf2HJ1=ouOYI0Xl9V8=-%%|Ce-54=d=lEL{pA4o>USkw^K$E(td3RaFduA6CRN zXc!9VkWyg1L4BA5GSZ_myNV=}GVM}@#M9~I!OI$RGZ7-vboW>9*@_jLZlZD$B$x+c z-u`I`DZX*fHA(fm0_pwc+x=@IqY`~dFCUo-*(zFU3}*R|ip~|0QSj$^?VnVa@t-L_ z6l5#3Ki`pDxBb=1+0ta^n0RX}jhr;WhAZVeIdIwY{NfpwM1Kgzza6`_z#KfrWDkD^ zkG#oW-G$q>uC;@?jQD%)m6Rc$h((Egyu{naLc^`KV-a}<`8W*!YSO|?(v$oiZ!k=3 z-6(a82R(q%ma%qwu~F$mb=KEQDpnquG&d;enN5uKb#LwAg1NImxtf%p$}F!=kC zMkJHz4aRizgGFFJb#fw2?hc3O5 zUK~O%{=`eq*)*eTklK)#pDy>Ls!_0yIZ`9xw>0#S-|>u=z7;Lpf=@v7F`Seu7>Do@ z96N&9O5N~oIsYvvDY}^2&~14o}S7=7gwh!BfE zdO%cB#VI3@8$lcwNX+)7%V6-0SS$+r7lPZ6Wg1j$e^t@X=6!V012C?6)$z2+!wGnY zyCp5@{QUgkU-&q9c;gt#{R~_@sGeHbdKv|aG-F-ccQe|^jE*~T&N?%!tl6R9+`Am- z^P|n>3#X@JT-es-)at~_R4V%DU7-YES=0&Oex81N`~y74o(P0|M;G1NnbE(BY{E9i z^fXifQ%{v%fnq89CQr)v0q|GezVLX3h-;-!3M_=5WP5P7{KM3Z%YFa8&udna80g=L#MERQd*N!n? zwnRhU>G5h3ERQ#Xv{wX!RP9^){nYyL9?+>^S}9YX!Qbmm8GNN z7((8(UlJRh0lyMK)oU;rYCh9to4a*CKcBjNzvSHQ?QaHSc1uA>%a+c7B4h3hJavL$ z?WaN$cVBED4?H3wW~8V(wjF(;rT^f`99GQ#Kf`#|6-wj1!mTx;OK9sv*XtlwSH#Fp zq~#^yYfDR4Tcw*F_E*n0d#1X*p~hUKbNTTuSUXBrMj(`gLqx3K$Ahpxj?qX!hx@&# zq+9|(o_>ZeZ(DLAG_1HGQ84De>5ao&#>emX*j+A%2khZnv&q4 zRHrV#Z#SHPQZUSJ{2Oc)mgSFq6>rDQ`db)!C9t|_)G>J$_G!~#x-ChZMDi6@w_zKb z=(wA1jq*WDHMNF484Mk%AQG&sLYaWuV)VMU9e$&#N0H2&D#MozDeP-k0!Y!ljL;`y zWT-0j*BVdJhM}i9AdOzzM`B@2IsEcd!p(@z9RyXJtF%!Fb7nG|F7{RzTWg(Xc9u}+ z2zaZ0NzTVf46EtyfdPuI9@LgSC7CF>s$dwUS!8jttCO`19xJe&P4+o zXWZ+_v)ERrf5>C4a?C;qj9x3KR8hkCN*?09*}u4w<9l7G&OzPEeahMcT=v#%qQ6mD z7^ETWqx7@?=#_ebF=G9i!~1?M+RM||=|cC{TVW%)f$;6|BNmnP`E=e-eBt(ksZCvN z&5Sf`qGWlBytgH59j!H%klOX^y8aLFm9Ec*cw}(hp;f+NR|TCN_h`}~xiA7hY(@hf zR$%DD{yrT^v)yT|aZ+G}x?SDok0ilw7RYGCStvrH-&&zq%A?-F$;<0~xo}ciTHDDd zx7HY5{q02}ABl<~as=cdFs3h6%r6x4pU&FfF$s$KuC9sMQp1@3O^&VQ7N+hV6kY_t0is}%|WO;Q?@CUL^k$9X(caRKnOWPj3ry3&bOkKka7oi_m}!< zKF8b*=OGxPb>y_`~~p&pab=)z*e|%LpzM_Pp(I>UcQ~`jw+qgiI-f6Y3n|r zLR<-LL%qSKwF>}6BO@ml6ZNAOAuRw4%p|POB-bM!RM(tUs|Iz`{it2n>t=BE-)kh{ z7@EK70{)r?u&dJ54K1XzJZJ1Y<382DqbAQ>{CC1~Tb?jcbG9u@oNVk>`~Ux+7S?{s z$7wF9TfLdTk6h}jk~Ei3>clN{vz;)CbiANMW=rV{vX<_-E>|vhyGKY7gS*pThi|PJ z@lt;RqJF)C!1{K~2%{tL@57PnlPV0^wa*^-9nltKpgS~w3#Te}U8j@W5w3V^*^MqH z8A?hmd&2&BfatoylgKnGy?Xg`@u*ca3S45leYgFgNGU05XAd6c^-wi3DJ`e*kmRW& zd-Zc_@%W>=iGm|~e`JhH-Z&eG+snYxES&K4Ynk$y#U#(s4P2Y9)l^iT~R}o*lr%Upmo|p5%rUgVV7;0aUOrq~YYy@olTWvnhkATcv zI?^&)EMMDqgsYtH8pDCl=$mEM4cPZDNH4+^RMZ&ANAzmQEoO;?IEmvJ;epaFL=*GM ze{I(<593(BvU$15Ay7FkQX5P(x5uDDaxawQLj(QL@=DXD@m1oL;jg*NLU1~|KL#z+ zlU7VTJ6Eh$X|3WW3!EhvGvsadZ|c3Tw_E+c6)SG5p{WHiI8DX{Pw>AVDveuoy*puqj83xiWpjDz4z@}JuZQF$Z!+?xi(tgqEcQpT5;QY7(|``>mhck-Z}bILsB z;2)GFDE`@HfXykBKMV$2&i&AJH*X`N6JtCt+*w)8it#5Fs|VH3=O@*Nbrb1$eJu?x zZ1;WNuZp!ukVJvWMd~l(X!+l_c+T1L-p}+MCY1<(NyKr*2H*>PZfxoBI37;8Zh3s{ zkM3!d{oWbMBMw0^kSqT&%KO$OO;EqbpN%Y3-OqS@`D48XjiWZ|C~w)04ekpgBoy}I zF;%ftwNiCSRoc?hvT%}$hsJWj1;`~x)KZ2H4xLni?9pqoZm(^VdP8gd3xZT*U+Q1w zEO${x@QqlJ5uJcy*_sA5;!-HSZWhV4JI`Fxl-TE~AAT~?L3u0Z4N4B7#gXib2J(31 zMl-V~q43hQg{b!j!+t-^fQ>cw7q&uQsGp%k@!X3LZb#(OZ%@|r$;XGI+n0tar8OJm zgbR@`&+psrw3~;&tCD*~=Fn@R5k6b?eH6;S)6mmzb+x(y5w8cq769a4U!$dd7=u@r z$cYt3r}(nD`{QDNzx$Wbx(rufXUT{d8COj4m@cp1Wh3~TRrAU(pW8p7@wE|8jM`=`M#O#{Lsa8Z;6iEtJNXZm2MDEfW(vmv zZ!r&&%>BSc4DAo}RBONJOC!pZ_!*JQ_kly<&4_*&`2B7TtW<0Ou_tn%`BEqvDCP-; z_GP0pGJ@|S^ca$diOF>_{!-%AFwSyM}?DU5}i^J zv{3-Tl5;jI;XAO9tK5$4MCsHP6!^&%IkWahGI~wxLe+J%&Ci$O;l@nUkDKUvNIsr& zsGj#*3`V&dMrzC$oCV3Fr`?B+vJZwxMNjFxj1xAC#_V4>0=b-s_9=xzP=5B&*ZfRw5sBYDyz6bOAo>G#Orld z6mwy7^B?&w&pV!lJ5mZ_|KVwm<3SHrwRYRv4!_Rx$@J#Eo`y$P)woE`X-%AJ_`~mD z8yQ#26p-jago5z=zV26cfQC=+JNgdsTxi10AS;cU-$@dRTVSV6+pNB*{+E8M<1=SD zn+mfx_aC|>JdBb4VL%Ons6r~`=+;{#^OEgH?uKUVMcW*vk(G|*&clJN(x*@EcB!g@ z{6y1Sg|zDxO^25UPwH`mrwB__vls1HCdQ_yK0zV#ZhWscQz461GGzf`D9eDq*g42R z7>ePv|2`6d4W``W)LAP*vHziAp~FsJaC$Sntc*;@=g>XicHwbnvDMI%%+dHs?Z7TZ z2df`ffmiFJD*l|*PI9MQ@cYOHhGVgMZ;NA)%%#r6iFU8eySOM;1CzAMRkeBrShwFf zN?WQ+v`f-R>SG|37VC>^_etF7I6V19FC_Z_+@+%PaJggH8 zPt~KD-S3J#N%@sM;3BEGI480as1O7EBBcz8Q|!IzVqnQACNAE)e#O1p=OT;7Kq-?3 z&yxa1MA{sUX2axgZA7Me+fFy>82#m%{AYlG_VSy)n5cqYgr+Qw&5gFRzWz?1X)}=O z-c)O1(6c2}c|0RPadIpkH1znLYtVD*%J=Kd_wn?2V1Qxv)&*iJ3tL-2pb#;7>390; zO|0+x*4LWtNNhsbf%lbI4N))L3(zPXjHe98QbZ2^dGKJ)lnYS^mct>$99Ga#rRd-E z{rZSb`eNtihFjv8z?mVqyfv6>1VmT7CB8YAcl_Xa?`sVajqPCK zmQlqS9k; zNRwsy5cVLqDdyPxePSxj`xIVVS#az+GXAj}%>l`2!EjFbI=kwiRuj-MCb z_Kw?cV?ctpQo-QD!RuzedxsDC0N?m&y2E1|`yoF4OvgA<9Aumeopiz3DPYR)&+g=isXPd{X4&S>?! zFgZUv1A17f{_Tot2rfn6({^g0eJ*{yZvb4qyFNcy!#Ja1qzYnrPx0j&l9Tqj8GV6M z*12!~Ch`t4=vy9d=Z*BX{z~zZF}rn0A36Pt;4>PYv778hqjpw{CGPc=NkAJgVJrp} zitye(5?p|RUYiex&n+M!eZ6p}^mO&BGUaQ%;%|)`1Wm8QBc3~|HdY>G{!GXZk1F|} z?9%Ct(09Ft)8>D_^|0=}EPs(od(_e^osUmW!DJy|rILpKnux$OL_+2UVKf+6c3ftA zY`Gc3Ec3kSA?mqKAW^D>!^N*M?H#6RSEy9Aj9vgpoZU_i_W%-(&&Ob(iCp2931^RS zkZ%jQBiWl>&PmQ4-C?OFr##>s4KkW6c;W}!&>f>&wjBA1)-w^~@BE+TltLut&s~g+ zzu^P&wGEQL4N@C#)m3O#Do`Z>j`nSg&GaG->frT9<=|=Vke?2iVH>yKku(^1eIz_a z%G(BCk=9_ij74=I>1Zyj@p$rL8^xIv@W(jlVwu3Vul2O~{X=|!eh|&qs|>02#W7V` zY8(HEF!tEAFOK(>!3cv=YWe4y{S1V`m44!*9ZR&6BX||a_FevI+)L26kMrr9OFw%< zxgmY!zYzJ!R*|Vi^yRE@@R6WMy1?|CEyT_<}G=YK`1SbJl}+qO=7<3+iR>U{v! zlS1eR$SP8N*cy&?;EhDsy_7(pMdKQ-EA)a2iu@r~>ok$2q>QoBp;3 z5GrVFrM+!zZeF^=V|hMNSwr0?N?9WV)%dQLY(cTvXz*=&ki-SVU?A+~9N7*$amm|( z&bI;5DiqEkcve^NRm_AH})6CbT+@Q z!)u8pBX6*Bh+ZjAX>DVFanpS8pADjwU2%1dCa8Nqo7AhIfZzqOaM)E=3M=yU)HzgKE5K(;$D2%@jaVzKT*CU7HuWsHkc)~ zZ@!cUawC9x$`!PtUSiBzkqntEHqFKUHg5ayD=ai_1YrWP>zSRr*kT#{Q%y zNkB6<$Mco8z72hPAgs>cPX%*cgMS*7tpq){Qm= zSN*aOaa>crylEWoVQ0tZuibQ|VSn2^>|Yv2tj5E4doJXNSGbNVk}{WpdK_)?6d59Y zTgxs;3Wcre!8=a32ZbgnC5MB_cpb8*{iL7eYl!EWOUFV(G@ zsiXqVpiiPa?$x)t-_o-`PP^Zc?7$y2xAb%cj!V75@}ycZSg(^NAO1bio62Q#`rPi9 zWc3OCBveIi;c{Ni+H2|J=1YB#eEMB!RWmp!y7j9k7+UQe4u8g_=T>Y?tvuS*@q7>U z=!nS5%IXmT^W>`iU@I>OHur9{WL$)O|I^=#sc?asj$+!NL;imc$0L3QHiQ)lOL||M zBFmTd+Chxq(;syW>)cMoQsvbmTkN69^m0Juq9iUJOT_3u&bn-ETNM?Kr8)TI6GA(9CqbDsK^wY(vGk5L#FKr6$YVezLP{>B%U z;84~-aaQ7*gKBaS+?cH(CO(uGZeX6sF2#@V-v3CyHHD(6w$>k#2VFKA|8E8HYAWp= z{Wa#1p7b$4v`h1QHfs%?Flz5*b}O?lz}RVReQ{{*XeyCEf@y+Ws^oHp#0CO%wlTK3 zSZa>^!_y+mAdcbBo4=JIj}ePBM$aP5v05z$EA+U(1GaNuD>77kUtQ~asop22heGzJ zZ(v{<$>%yy_v2Kp&W$6<&lTKldj!95Bw9>Z+6^dj01Myf_4RaABDPZzKMxGpD|oV@ z{w%*Cuy)S;sApzp7f0Z4yEv!+=EqEPcTRG(9gy3bnOeK6bPDOCL33#vq+S`a( zx?U|AAFn-+%_MnXf+TZw;{0xyjCZR|6 zcWYhNZ18?^uuX#^P1kcPB^C$kM8bzue_hCYbqH^}E04Mf2BIgNz(Z-W@0XP%RD_k8 zu%us{sc8j%G%JR?_N>Urn};4Lp5P*^+t1w2IbZ%P6QsuhM`W18Fp6}D|Gv~{RjQ7@ zjsnYcv}RAs3>$*U)%JHBpI)p-9;Y=f;W}9>=ffnd;|}=ARq{nftq$` z)LfVs5xUUwUGBJbZ{%lwvi*82S;2Gy|ABDn&rlvCTcCgl>^QR>zMQenWT6q)w zD!VNohwCTyy0f=#;dyotc?{oKZTBq(D!HYJzi}fP)ZvPp91_xRiK;3Z=F*F`E!?IO z@9_VPhy8nj=(G3t_rh^3ph7Oz&Em4(9k@2*OH%B)S3_4wob8Yoy7jW)Bc&tw)S0?L zr6>;k?W7Ga`(mo$($$!vx0Mt^MB(&C$)HRRs~n9a#&s$;LfHe-l!*FKv&XPDbS}FM zSD9SjrAeJ6MfCL!P^Pt&D^u4I=8r{wfu5n$bli@kN-WtxAg zUB)|T5ft6uoC_2jl}ROF$AKr0hXV&h=P$Lbl~oIy8zR@=!J5#Z`2LB_P1c(Z`I%KT zVH-LynlgX}*7flFYeZtTu7+GJ!Tv&&T-FUzJ2x&EM@w719fD&DU>Wx3W&*yAAH-v%w^wgt6If3W`M%8}`9Ak+XRTl|8)c|0HU31~mB=eNsoQfC6XNnV@h~>Fu5Vba zYW~PU@CD`XMUo-1Je_eubg`InL#!b{dwUPJ5)e2Ntt0R?ztL}0oNLVR`yC{y;P4s;XI4v+8*fDi)4?MMDVUB>z*Cf;)q3XH0MKbQ)KHTPfa_^7KYF&8eLf;q@ zGk}%#7EV{=r)$;h&K?eUbK~A_O1mJu;-5qA+6!5Neo)uH)lt|2CSYgRBfcEw$BCrz zJ+aDGQU%${sYuKh3~()8EHnIZ%}w%5VY?vTv?CD>AX%9qP6mLNokZxe>%@m@nLXZX z?%{HLR>>7qdJZjX|In#`%R}U$l-ESjPEc8+>%$sGRZ7D5s;9mhZH7c4_ak*+it3@K z*`aLB^|O!)b_*zAf_%&}fiuF{)bwNppW5kYeqjM6JR=W&jV7T|c_)ew>c=~Du?`c0 zYV=MNng1P8rziKq9UK5Kn74{;2x* z4i#C|%+Q?{lT__Zl*LV-O-?8kr+K0b6BTs@9QnY{8oxq{f~^fpz3^FAMedK-#W+3+ z@Z@v2&o?ZaQk1CPwB9_a{%pqPe*L+FyhfYaJPTRl%~8rGVooj@yL%eO){bUg@JwOl zq+EunHQ1tjw?&}?;6qA!=8oOf|6(1N){6%C93D&!sTIQOtEy^pBay&-j$rJOU{GG- zE!MX;zZvx05O~{7{5W$*GGcDJiNG*z_1)&;D+B|>+HNHK1lm~s2R3p-C?lfYCmkd| zXKQPB)9sXL9mGWxmQxQlgMIxIwqHnnrXulTx1DXmPXtEc{|mU#*n2rVRfF!l@rhCv z5hisC)LQ`;IRIMF1Ja)yE@9&0;)lu>4|FBNB}5WF+xk>aX1hM*q{{A5t7wQM!O`^x zNCnlPE*@fecs_gxH-j0eIpVHWXDAn1&6$r62L=yphB~3jdMrrHwWVTXs#hdLVyHh> zi2Xn&`(8Sv?&Hh{jUR8FmbYV**8g)9`OzF2P%$X3IHpyMb+^6kx}stXv{Hkf%dCU?B5l9Eh29fgQt-C!3t486A9jTz{FB#A zPAb*F&D(*7aIZFwK=O$yMHo59z~tG`4{8NPB{Smwe%+|#HBOgAlgMtAk{_ywzrwVB z?58;KXuv=+04%eU*)(B!I`qTvB>eq1W&hQ_dg#Vo$yGB~<^NWzd~887w1+0nhTbrv zTpPFYv|oAP6uuCGD5G3zZ5HI}=l-UqA11a#BV`1~Pf-E5s6Id-+oc#)$RFs7$%fG5 z3`7Nyq`s?kIb+MPd){5!j$g?hCH<98*52nJ#dmXH_sR5erO|P#KmJ3@xBds;YwP6z z85BZ6<*tUR<?{UtY8tg@YTq4R#&xi0Zxs5;&9ifE#2 zcEy}xS^j}5R)bb{FZ1opdqv>w;H^`L@!gPdO91hi7P4o>J4@;v-VWboj}c2>Ebk(r z$YDpW>Ay5W_L0-P@b!T~wzPvay?$^c#7@$7D+q!0N1k(H zW1FgujzIG|rKETib=(%@;+A2kK(rG{l|}rJEL10R;x>`=MS-CoCWp<|x^r^G;}1O_ znXZ~$9;IP4#oqs&5lT+JF`k!AVxLx0?M)M}k{@U|tx68kNB{HdV@`W7rN0D-rTK^(mAnFb6N@_K_A2)=w1FVc^4=~LDAIKk{D z@9$U@ogRdutcrKDxG;mCk{iEnQ7cPEk3PtX!^A!0~Cd-D_p-QXHVjo-ww| zJW`@wQUza=D#Dhgr-1()nlIsHf_Fe+0R{5kQQr<3nD8x|DQ4o!YoK3C*Lm&ec%-v_ zaWfZE`jjKf_jkB8oairx$*a4;wEA6tdZodei^r=tXEL$)BkahqImhPc_JrMKe)h!6 zgAmUp0z54nlz$h$Pa%wej|y)6`ZA99H})dwh&GzqC?<5`BNxf7>t4gIzE#6-zce>2pLJNo9^KGzmj~lyiUts_0KZ z(}9TOsAqT<_2b!lq(>I&;9)7*(&)#GEtoHHgT}Cu^SAmcKS6s~t#YOlhSVR8OHlE= zH0r2FHbBqzwc+d{S!GCSJm$*U4RfEt-%JONu_ueR$`?N*Q(L;7$x8l4RUi+AlozP6 zBrh!R+SV^;3Pu5KEZfq>SzDchDt0?;6{d41>9l(ywwMT$&fkV0H*2R)*=a-)3I}9B zGWr35bOeXxXXP(MF+EJbu&u2wPOI^{l~Y@-WPWHYMXL2 zUP=Xa1O+k(WJKe$$RY#LfL=a)p!<+3ly-S(e`Dmap7h|H=p7^ile};5AXS)udto|SY6ew z-h7z-Jx&7(r5KYjK<--e%3h|Nu1G@OhN_PP>@!ovM)&GRy z^yj^EkbT%Abm~CkyDB@u(L01V@Jl*H>Smc7TLAW<6pyA0j6^jLmc38O;eM-d2!&Z( zMQCgi6MYKpMb}w!iG^k*FVFn3ZBXKHf4_9IKJ>ATSr07Ch~3I;Oi7ffMACcnbR=%a zd?8MKVlTa^>Z;7|bRnHyZX;dYNvP81ZhF#ddI_3(vl?wWjTHuM>5K$FG6>1OsAe`Q zRg}d!2e5a-YyO&B5in~@3z*^P+Hn^y2~+u%%9Ji5oJTbOB<&s$An7!@Q@%j5!j4wP zjMZbQOxgX=>+6E<1z%vuX(FLMq-^1DZ*i)WZ6NAn=jU`G%TpP=5~V=rbe|KQS7OT4 z#Z#?L6EAC%wq669f|p{wf-K-l91|s4h$^;IUpS***|;z-7raqBAKICVVMn`z#tAjp zh_`u(k_VeDXBDkZ#Ik5O|NGX%{VQoVB;vmbOfDRU&=o~3Vw_2$SK#FQgCDjLxMDfZPSrPQFm$|{X~+L-Xn*bVj(g1_dgR5UNxX8*&@LG!VR~2^mY^d7W8%M za-L`m36{yL@%UB0CkG@N`DBl&Qn98t}t=uPNOdK7^ZQ=+fAXUMeUN` zM(L8>J4Ue!h7YV-KmGPx&jMe|PscbZJ!2@;_z_%5L;;fc)i5JQvNF8wWtTwZ4TaUj zVZ#KONGEmY_Dw51J~<#7ydFs&@X&=oe(?Pr1Ko)HjJo!1YgU%Zj1-Vo&e{AX>l&p@ zY-@fl$A@cmXu|$}|6PS>zceoHPcJM;yqi=Epe}y@B!Ro4qLIY+@|ICOk)#1U)R+pP zD-95SpzMmP)M&b5Hv)$ltG3p;< zJ~AQ?pO#ntW(jn*+LV2rEmnKXL!UYJk#(!If%g2fRq|uL_0o0hP@7vLSJkVDj@o>n z(O#p+2E^O$s;l%6_|o$iU@r((Fj2fukZN}^7wv8+x(*I60i=MOh2Vr1I~GtXLV$=(6vAhOdirKxE?B_C^| z?vpah>+7QYx2~#JQ#)?ad-Fd1_rusiQH{hgOYWbN6?77gYG`vPOxWtkueV-*Yv0Yw z@XM5S*J+2}=cJ>Zi_!7v>pZGhMaXrV#hA~;t`gi`p(^`wkad&tndg%Km>xcwULF2Z zjaV5es3nr^cs}?JB1v;cNI-UWe(q>H(Cx9vBePGTt$|>=^i^I78P8t%Wv^Hok=XI5 znuhbExyDEQU0ogeuB#(CxKF>d?A4OAad*uP-a79ktPx<@$_lL0 zyK%KmB8HS17Yhmn67znU2aG!56C@ZHeGBA<$@x&YTaR@&w9DtMee4*kJAdwM-g~E8 z8E8{shF0=jqwE+S;}h-`-7Lz;ZfUY(+A$HY0Yk(hw6z zh$9){)3SM)dI_%LNUrUYWs?`?u7@OZW8?^h@2b`-(~VBBj`eheyZlw9f4>Ga{8fvL zhZKvcd!UYK;T4w?zj3I&KZ%s#8ugpKj|Fq%AnfjZk(9oWR;%hL6JM8}%|=4yV^U{e z%-ZkT4TM>8B$&9l*;C){?{QR?o*!B#)h)Xc^UFp<+comuO|<#k$z63+>)vOcMWeqE zeh#hWF2&}=6Esr!JDt}tWc6)t4WcPJ+0VWL2V6)TH%}i)LkS;9v&Ey@n zDi&;@gcQ{aIUgu4?u&>q9AJ}Px@ba-6lV{QU)6`;7cB;%C=g9CE+@-%G~Dd$icPPy z2h{|?Rc;+7umRLCztyCe%)^ljlC`(>5^6rppgqKgKcJ3tTx4W3P^+b=8Rgb+RwKIm zzYo~l6ZUZ;JX_G*;RSh+GMhCNJ_ZAc{jKwrik>kC^%_g~NXra8o%ElzNRmV@y z=G=smoJ18nNhj0u3}Wfk#|B!Suop}i>V`t-*k%vGLy}k7C#X5|r9{mo>J|Mp{Cl(8?E%;2jU5R?8X^zi zeJ7KHQ7E$@sjpt@j1TMj6*wNMrGK~AnmdMQRTo;5PVR@Gd#lL>(l))I!MWcDaSGxM zbY`PQ&ep!ejW95fi!Q>qJ9Zf%n`t`+ahjwAAD7Sas=u`Wsk3U7TK@82c1R$MaHJ+) z)Ix!POugF+D1$WOM1@5Wf|z8Ite7v3uh1Lept{>&GB zP?EVHo`@p4EU(*o@BZT`y;ONu2!#QWU>n%;6X`jCs~KGQp~l z&yxU0X$A$uz}{YGr2!$*$H`UyaVRbB(XQZ-3OvTO9igl_Evk;rp7N z@@-XLec`SzkJU;lOm3ol1>QNI{N0aNOx!Qk+DuHzVjzQ#0337uV!9qLp_`|cScJIT znM#2i`sA%UbdhRXKpJa56how{raswFAaTT^GuBmDi>6t0cwTJJI&EssqV?r!MCB*s zW=0ABj2~1Hi3R$hk*}{o@$FjJFv1;2y_W5T)7d~n{_~j9S>h1mZ8*$8RZc~ux(wRV+>BA7=a zSdO2fF>BURIuG*w)_D{-H~Vc`PGoraa4yQtM2hqanH-g_cZaAN#99#E z-SYbNN{Y)?nno4Mqjdx9)IK*-6wz1+A3+OnV5AH9i{#R=`hIE4Nt8HTo+Dl& zIkzL{yS2-vmmdH}SlDqfCYGqz?j07)hL)lSWc(x*ST#%C7&EWmcsYtolzV@opupC+ zSMsjfSbmw%Jvf3{PtoG_L{T`yUdp>SVZHJ5)v+N~dr3`5^hOj8WTRw{mzo`FlUPX# zni~|v&H!CE^1t(&kUcH=DkQ4!fq|C0$d8bTWx z#qr}vNjRJ4hwg1&?R|KMIx2(+3)QkJtfk7uPR}I|d|TPmPug@{<=rib`6_!7n`sgz zp9^@JG(N;*|0up4DjyfC%t7jX~z(sbEyQ`%M`iq2v`mJ_Z;QDQvL|*|ps*+a_ZB zp10j2e?cec432Dni_Y}_@eIQy?>R@u_Stla6V7QCRk~a=VIXdA4NVABUMqTH@35t z;1v0q$jGoP@uk3IJP&&{xz;ji(QA;>APXj+%YO=7hF8vvz(&g2*`b$|O0+E_|5FA= zhZnmxn-e6--`e7zuKLcbFd_?<>W7h{9N*()!h)$Wa?nSx800?lexKxGPZQ^s9w?!c zKsCiR_fF}d!Vq;W%4l_PUl0uv+4JnaV3Cv>@YhFv;`C38SWyOve4leSR9*J4@1^kk z(pccjgkd@8UgTv4Za{DHlV(sKkroM_ve)N zq6r(c@S{umT>ws5N0q9nL#ff6Q&0&yGb^F{}|iH6V8 zE)K(mu(qdT6qQlimwKcxpP=YoXMLD2!-AD%Ps{0RjaeTAgy+7>lMM~uaD6#Exxp&H z;A`#+fzI)Jq4$NBO1EFRdN{6r=3r(`>NcR;7fCQM+rrBlGB<|)19kENF@$=#aQ%SS zflDHw$#knX0ZAVtQSM{%>b`?9s=o{n`1pgtHvOSvZdllypcI_^nP|8&ZbKI2}XzX9s!}|E{2~EC&ny|G!K4fZ37 zd*Du*zV;r$<407h7Tsd(1>DTvzZ6{@4rq0beoMv6c{VcY$V5BBKNYS{>3z6Vw<$Z) zeQ3fs%?$#>K31$^IzvW9?7kYALKR^tzrrOwv8?@L1-XtUAr#+as8vRf!+f7SwBrur z&1*i~RuuHGLY}xCu4EG`9pN8)IeI@N3{fNeEV@QJ?;5H-HY~$a@4M&QKAZ$-^zMn* zf1GQQPK2W~HTU(St6v+^7&mXJzxkw9BEMHom&3&vFho|;Y?j`B<%@+WTy!2O;p`bp z=iTtXUt3@A2*_pa_sJ#>70waxd7@S1SoHSe4Lh2kQg5FCD? zn(qbA{Rg=d8n_yu`6_jpZ9Z!R^6NE91cSFWD%t~dImze8l&}TS2%%ubG2`S7Tu1a4 z(^8MAGo*)H6ae+)ZYQw7jqREDp%0A<%Ay30AU2oQ0;xFzPa0V5)(ZUmxaFmq*HX>9 z@df$l`Z@V>lAF+AEECOfqP=8hVv3L$Rs}4{E zr>^y5z7Ku>`}Vr=D&zU41mM!Rg?rJLctByciXXE_9QP8nOhjWwl-g+2O(;So4XV1U z7CRoa0=fNiz!)8G7eJ?a$qzpTp}u4vR6*$iWmT~6?fj<%rrynYor*fpnn6{O`8@aK z;q1&|>DR<1B*>KsFB<(F-iA>#BW=i&qVm))8y$YcJhntiu@mHfDj{*87^0U06%$e> zHX%J#>XyH5<97hkmyP4XfpQv6?}E{ffTxH0-9{eH9K?5Af0(0$pHFJ*kJ>pRA3ZBQ;||JHrT_Q7DZ2QLt>e0{+Sr2^Xk%Bt z(Vh0R%S={>W?D0|;<&p)m;c^pbTE9trZF$GRFuR!O!+4H;7$C-JAF#+wSmFSyc_3-TM+dCKR+m>d4LZtYaB z8y&Ca9v%%%y0c+_qj>hVNO8#qdz*ph3fp zJ$?BT7p_k5KmWHlW-rXwB4GpR3$qI!k?amY#+K#X%ImQit*Dguc7kN02IA#I;cDe^!!b~ASrFo0o>^=t8Cbj(DMozUkdPu$1e=%FfryKF;5b=?KLn;D;Qq{@P_EvTjCL3* zDB&+tBSO;IXE~_C7ShsjO6!5ZX;CYHO;Uh=%+-=P%9CWBILrwaW-{myz z<$7B4_}GAY)amJIDIA6`)?gSko;BSizucDrBr&;urcW>w{T6JToyxgKS1VBh3r-)5 z^)-%J+)g(dv9tjR4UrHj1S|VB@7$UHW!1oOCm~UZTB?vls?M3S0o{3LSRN0>wq9$RafT* z2&+|S83sabVGsm077G6if_nzMXovnTl2f1>@baLU5S)yrRx9TCKWz6!H99h};ijbR zdl!tVDd%ybCiKJMs7-tA;QmJh?4Y3k#y;5<>s z3@3n8T9>3H{Z7=^#8lO2Zb<97#+R`f|Fj!9NEk$S2Li3s=rHbfYgwJXc4va=6Z^!z zNG-T;QzP*e!w%2WAma!k|IclOJ{Us<-N?jM980reCS9A7G$|l- zpLPY(>Y8I>#w1W)*h)3q{j=pMJjjr1{E_l%7mSq{U$*i?V8sb(Um zx6_|Y)o`?v_gAm44=H8~PfnG)yQL0Ki4gcp#1tLL%e6zkehsHwJkBqcQ zg|gw|!z7d3tSGKYH*w7845L>Y8;85|XZTkOk?cl$Xx*tQbK!?Ug)pBoo43-{ZEb|L z?6GAR(fC;IyOh}rx}glhS!0Fc|H&*QF93k4E!J zPXxiGR##12j$7NzLb(q#XFy&fEX9)$>8i%0$(b5mAQdjrRmHeucXu0jbG50A55_7A zq~uCPHjOY@J-B5oW*vS~CaDM;ybiI$8{=tW!`svPQCiP8UgBC=6P$=t-S8f&I`rQZ zrD00;K>aNg4fD6$N9~74pjg^VcO(-HP@my4Au^_#%^-qDDVHh;9u|9JK5J}AZ-d;e z_zP40qkLNKm?U;~y@)FzucQ=eS8s>%r-OX+&OI|tUYLMSfh~gJYWSLjfOk$k7kFY# zp9_boHWVE}-F=2pOtwxNX3{q_tk5i_z9ARkBzLJj(0(ZdT-_LYMr{CW?jNC!yCw&6ndw4E#sKE zB)a@~{C4{a>__=G;zd}PNTp$MjJ+G_o^;ds%5kHQnIk>I^PR?d)L>y@>n5z7TpdlV zwzjoRSg@{grMo#*j0T>-Yg_$d9G*sO)+^dh5Tzgo&-&gn`AccV{>e5iB~Qq|77|09 zrS}*uE-tN7G~5TQaJOHN3sS%uy`CM~;e8n-j=-w5l#-1Z89-P_T!PYw?Y~}}%FhR+ z>pKJkUu!qsvPG2?6mD;C7i_q9-6KNTv7p~<5>FwkO2j3~7^t|&o@m5v7PU_RJsk)H zn@bd^zqCSzJm1vdSFkwTP?#jRVW5cj%j|&))Y<5tPA*`!rYoEBT2iD`sg%fR#OA`X zVujt}3W}@xuPuEWib_gv7m=bQWbCAo7A_GL)hUk*BgtlvH%_ zdixf^d`JRsHaXd$-y7tf)u4$`;BU&IM?cpmyiuq^cuQ%zxP(RA37G3qQ`L4`0iJ*c zyXRg`v*yhCVi$u#o<}RdV4GZ1bJ}(rhGhqP>fI{ zqhFOQVgB3;123QjF(RA5hAKwZ(^i}z5y3%e#~01B@1`0UuPS$fqN1W~ljKss#*YOj z;ff^~EE8n(3XG*Xtbtr@yPPwmKeg=IoN7aqS2t%8t>>+o=!TxDffl$IO9Zwmk3{`N3`I#6H4=~*qZ`c0XU&G43* z^~Z0M*wK;^$o(Idwx?&)9oxNc9&#*nN}~S^6Ki$}p>b}SfP>)?o*|vQVe9jj;qm03 zsx!H{v0je@ulMFkH!|KXh8K(i+xQ|~fZ;<0D&2H5u`-#3Xuj@una1$2Dgcww{pBJ4 z_0>Va%6O^I`CD6?Ih=MuDQ3<*XSgO%Div5WgqoO|x&#DNYr48;VzZHP{_8dNba9nG z+XB0wI`N>fWXvc~g(u8NtYFN`V(;d(u7Njah|=4mXvpyB-Y3=Oj(CZxT?6872U zw;Npzh!|W_W`ZN&n9Z*%YFQFI#cgh48L>fk&Iy1U5&FgErD@qyFc%5L@ZjO5 z=&+YQ_#zFACUk6aSlJ3Z=N30OQ0dGdEnE|(R=XZDc!xKaW z$MeU%p=TH&vJ2cO*DBS6am}|oDvPqXdCcqr0vRI^aBi-@R)zlK5$C8XlpCOehRWoX zg%Ba`D`Pm0k%N+PEeir&s`$!{L{!+Omih1v;u%Zzu-Q3S)h;E_-e(GV*W^>hRln+G zr*_SvWCJjv(TNGOK=>?I5}BXx{L3aUaQ;)bj}+Z?&`IFoCv}VY?(+twWih-wWVZ(# zD6eBo4(PMAq@wP@rxYZ$e#Za)E|GD@@Q#}wMgc>35u@f#^yO1hIokR8=)MsF85s#t zt0%Dka=hRW!iHw1$JvZ`Yz+I*&Z4JzxHwNSZT7oT0$&JmHIqDvRBBmWi1dNlO0nvi zND*;RhGk*XWy~O~5S5c)dBJ<{?7O@I*s{30fX1o- zVA}^NtU19LeUll!rD;I=zhicDcYkaL0J~S01LO;<;p8uy2m`TkL6cm}YDrkrsPtD; zQRIE!W&OR_kSJp<9xzMh*vyy8ytjL|Lh~aXH^@5JUUq@IqOcGzs?QYHIRmYViH|G- zUXsZZ`3`2jXXzQfvw)gMjHt@jm;~grtdzm$e6cC6{MJrR+z$gUnyR!JU5akPo~CSP zUF-txN2{uzwPj;Yc@(@*`4;(aGT}kS0%w#lOpwS4l?6r!?yu7?&-3@UUM>%)<9l2E zjx!*Q;W_~hI4~P+{_b!%=_))ivaeCrk>t~w%>d_24BK8oT+;(JYodzNY1tbZqo;z2aPUq>RLXNedVJki|#*=pN|T>rK#OZPUct4$$G zJ0Wi5V-;p^l*hQh-Dv#2A>XuU3fL!_ets-o(du>BqC&)dRiA3Yon))UvH<@~el!f) zZrRCzHDSn0gb?cgv+bse^f60Y2WG@~BW7Bah6cLr2(A5bK!R28Nubi}C(4Ctw_R%A z_Jz$()4R#y)Y}^7D@h~aV}uC+GY8%U(J)8>ZLjC6?o7Q#2Y*+0vQbnr6wG4n9TC(} zsHpXCg^dm|CGEpRN96E?WNj2AWMm=$BcdymYKh6`lAHj-${fiDDLpz;rki!xXa}mE zL2dZ?PQu9QwJD`fLYV(vG2Tt6xm#lgfgcA11wcRgKI}Kp-^@uYHJm2yZmw(xhv-Al2IJMg!A_hzMaATldYIA49dHxB;E$r2l@Aci}9+)xSm; z$$}=LpS*mAxVrq`gv~5pw>;#-y$}MIkDea!*Bju44#3i*;IjY;+yFDFphsEbL_cN@ zrtqa+`Ma=X1JIiZtFZwcEiX;80Cx|Yn}PAbc9o^he6FN_e!hQ?BzU310Qd^0hlhu| zeY)SO3Y#4Ku_2YFfxkWn0ZSsnZ!g!+cee!a2|BZEriMHTZEy3s&Lkescc)8BI%S2_ zf;~gSCFU?fmj4F+eHBiq+i%xwI(w+S7GDR|jW!18NXMg9tNT-%lv6U&v_;%YF1AO& zkr?->JohAPT!|j2LK{(LHv+cUnT7S%AUw<;x<8*#+g7Vb<@(whES_c)P}4DHZ`%s0 z^Udz2syR2_UQb*rg`hr`+I_e+SRWabcx*jLjkk%4Jpq74@Z zu{1Zr3{&QojA=>MDkqchAbn(@C9!SFE#U--n_={E6rroN-4L zMbVs1m9br$QCDnUEV64_sMwKv?3575uvmRlvI_w!7X#(d@Ac+zrn2ph=v&|j$231a z2A4q|!3nb3{9D&iDbuV_oI#6+J;2hIMv+IaIyF!J%C(qx@k&hPf%mWPz#X+&?&eP? zjs?`ArD50VTB`i%shz2xlgQ=cRbymI?jIP4%RKn02VGBe9AQmVl4D-SvnP^C{Ij4~ zAR#5d&1_^6-#zHjgAJbTY+$r17c1Xtv-9HX-g?{Cged(e@HaLlsK^bAG$!n3g#x@g zu#NGIdc?v-h<$uEjz)xhM{%aFn4g6Ww@*zY`wT-7!Chg*WrEAig}U5QV>M3Vb9y^N ztF*_3_4&5)!?VT!ltFC#yy_m^uQc*#@(E0MJATwos7;4NX4Yg@zW{gZ+;;`gFQ0@Y zY!%`{FN({HL0bRje6;8b?&9UTco8$|45bT|MwJ3lYHDg&zRiV&g|#bTR;j3h-d^S9 zTmh|`9Tmq8rO0T-Poh;BW0n}CM5Kg-`~oFoqrV;3Te;cUojsA6f}8(CqybR#)lpT% zoi4Z~ith+}*g6##3*r~a)LCFDUVz@hsuz?k}`Y&oO-CO#x*n>WvwN z$M3lBCVxI<@b1Gl-B>x|j(-qDh|CINHsvQ-r;E!+%DqLeUeA5$%AXh?Lz7n+UvKw+ z?&nnl1d+2^cHpweHyfBaBcU&xoA)9z?D>s6WU9+~s*1%^OPMlp zF|9Y#U%-XZ@Cbt8;gxY8qH#lN^J_wOzklJ#eOx|6;FB{UF;*2H72iFsnLN5#>r)bG zS7rc#vZmaK=VdsEiS4Mz8&@Y|77hQ;zk2=w0Klhdz{Pw`D?o-#WVi+ZMt|Kr0okvM zso=9Sp#{`KGecIo8OmcD@1AAOV@(>kK=X~D2r8ji|7?^l7ybsv4KbthPRz2s{*m`(o5f~Nm)a+34; zGa-2Ky(T0Izy0N@)V3Yre44QTC9Fg{A^Kf+_5d5~C**%~wrwX80HmB&aDxXX(hzD_ zX9$kH=~7E%57xrMm$k4Fa@9}D9hdNrDTb+uK9;WkJ zh+8Ryo}?EXDxLkG2C=~=rG$to#4Y^mz&+Q7dfe#Y*K=s%PR|-4jzY(Qdm36tqnUw$ zwGPM&$7QVayC^kON+?pXD+|y^M!FkAZsrCP<=+_Nyf0V z#0b(OIj!!(WMpIkccYvX5DaqCadW2I!?KK%1PYuI?)iet-Z54gBzVQ1&^RiZ^ze_8 zc;4;!u9TuCGGB|k5|uG04Jx{`;%1LmSq0ZF|S?WPA?)9R3~SC z#n)r!rwel{tNrP}Uvl@>30}@(c-J4M;*3(WC#1nPt<8ijhIf$=#X_9n+t2*;{m#ZM zOkkIgzQ;TK0Q)h^YhXGQ1qCH{_KfEWfOy$M&L9AiPruED@vfV^w;S@>mZ=>t8Y?h2 zThP=dHnmZFE?mbjvo@ACb^%vg0%vtgki0lAsvUi#nH9qTrH*h-01xQ66RU~mm-)~E zFy-W9L0VUogqcF60iKe|Hjks5%iUc?@LN87nI84rSjhH=n4^f#US2nJKwszua09R+ z;;BdLa;4Pez7|a?y56yg=6axR;$NG>4eD z52V;gU%6_xzAlmr4R0R=FjblfrY~|FOyW!!DX#n&7t!=Y%37}5yOj0Q^q0F?^^}g0 zzWOEy)t}Gw>Gw#oL!W(Lz{n&! z8%Qk9K8PkEF>xHs8z#V~r^D~E-ApC=IF$WT`Sxf;E<7v(x~0%REl)qD1POUv6afIR z{sf;fdUINOk%JL*Agi~zL~cQ-0+DDKU75V&exeg#)A*lhC~L&UDCDqc)!fQ@!vb{v&Kk!^B+b> z^th-tqNWL7lRxS0j?e&yFcHm1Uy$}8TO%{1AMD)LVqdzpxVnmJaXLM%TDkC#E6E&p zyvC8Uj&g&4dS?k6_UZY@+pLPDr-z|1)Zi;-BPtz>z~T;q4P*pu&sWb zxh?wXo8jf2WU8=F-ED0)gyUtrM+;qx`{2IEcMs&+!ie`!fc0Nf7d-yXp8Hgmy^wg| zG^?kpiyFALylj0p(%09QzQDs8;B?jni2=lIWgK6g&olX|m%o;yMOducd8U2IK9QSE z;Sap)1tS#iQ_Y3mxCa|nj-A%&W!|}@CMLK{lRHEpw`cT%zeH{2*XE^-tDW+YcrKyM zEqcv5gmr_MBtNeY5w8uIwb zwI*H@;VAfk4D{tzU!eE(7_ZUW(g#Q;TMkV1g}#ay6vCdK|x)N7U@CFO@PIG3$w-z&Bw+bY^F+dO?ki~Y8HOh z-dmI7cjJy5?cRr>9nWWs6CJNl$CUx+CsX;Sk}`!KmF@aDf8@^si6Ez%DUC);`qo*2 zvA2iu$|Pv{b+${<*4-z5$#CHXLh5|w^CkG9;PPz6id%2#6?|*GjS*lP1>S4-9G}0x zd>L!odgZvgunV}VtKG=U5V`Sz2(gw#e7RIzrc|%PYv37fGFhZ}eiVIqstkO(=XDU$ zHx%MNvFdTrwok_kyr#^vb38X!I?d``kOCaBy}qHbvDU_CbgjjcT-Y0wf6&8o$~Gix3GMvv)JS>Cr1EP*x6tX;5kt5J2`tfA4y zGh{GF*yjRaXu&t`(k521en}$35x_8nF%jpISg*|>K zb#P`kY=~|SWWCbYPGF>6-RzVS#cn^B9%^h&yqs}IKRI(u-!g&&Uj`ZjUNQC^Hr8!; z@XToEl``z_YHpt2Xs`j#bSwuPFpn;x=TLW1XaZ2S23Tak7{fh_e$&PJGwVM)VXPf~ zd%fSO)|wZYX?ug3wmq;>E}t|zo4zqW;_qpRF6<{E{63i&&J6QWkYXcxud$Kq#r7I- zbppAsgg_=<&sQ8f+UnVnI@ZfFh-0Ley43zW!2k2pRz~bCwdd-~HNP_5-3mVUE;MNex583}vBw0&Fh7%93Tkq~8^`0jE$N4tig z2I@@>xJto{F>>Fw@Im~%xSiF7qKx{7=jgNIq_z?UBB1bQ9oYv)x+@^8^Frk!EZ&2@ zcm9QJ;qJ|RO*Fyd)=B^#kLB()N5QOR18cku|0U9Im~6d(VVcz-E}QA3+U%O`XLwt<(;WxAb0GyH zq(6KCdL_i#z}5lDA!gce<@`0>{I9sV8VRIr@&j);zlZKm$THqNT}T$rgQU=~otxp` z(M=y78hX622&u{ruqq|9%x_4Y2}}evT1)88Td^zbqxZB-gbf8Qc$1MLvht<<3XPIs zA;4v0h5q(?v9O5hc~rgrrSd5Q+l&kkC zjA#LF9nUT5-XN+pZVclog(glt17|Pso9iF9A&aZ8=X4~n3mBcc1DneEC@a`V9H3A72_xGActR;M zViXz8f)T`k0$K22B~U0)(5E3$^Fu-^6f@cSq^)SpuJDAmt5@1dp&R}=$Ae^5aX+c> zCS?qslgyrs9o>G4F21l+!{!u_I@E;WF8>6-9Gu5=8kL7vNpKGDnQKE_iZ*~R*m@oc zIEWd;#tAxK9vksuoARAU_0*EO+c~+)ZQy5sSxq#buKO3|nts7g#iC_V8+xjcv4+Sq zG3%?PKmr&a5F2^Yjg}Fv=c0ZH9ph^6GE-2Y`Vcz-+_fdp}c&39x+Lnhj z<+@VUXMe7Nv+rLZD)~PdvN!^}y7fR?Ao8Hmlh?^OPyZ8?ly~;J4AI;iIFu#fV32?w zXB;t<01P`l?Hw7A_e(<0Ul3KHA&^EW{5vx}s z{b5_fkZEAu2i#G?XD*B)`kc|B)Z(Rfb8^b{J#su(joNI@HE zSjK&yBh0u?pmHs=*3Z3~W&5ihgQZu;?#i`{QhoCxp*ascq!tJATM-x#@Xj0Y1_(7 z{g^;5gkt5hh3S<(4H$q1vfDm<+7^ErunO`4whif>3T1P)uV zsI|byoAjM>WB3gmwTk1>qzeCP%|F(Cwej*DD!!z=c(HAD`DsW2<+>j;vfEoiA|PHA5{lbjq;5RAwMf3;r4H*_8ko+}=iSBzK~vMkZ$49XWp858z^Sh$wK#KmF_ zo?xcGzrV{vyq*8f^S+nk@|Dh{PP9HRiTeH?_m3k>Agj^Q;bERgLSBSZpn7U?UU-^M za*Uv$oF9~^UNLAEPowBGZQ5`cYJbTJ3F}BJeKh?!sH8CjC5aXB-VT<(Qoo0P8s~ld z;OoQ=rErhtk}jlQ10(QucSohqd$@SEeE41+UepoZiXtB8rf6@ji{3}qjCW(!YTFee z`)o>98Kt zw*QQg9zatmxDrA1Ix*?s>L7pGt|?Ck)oX)!h-i5ascIDw z{qKloN0ww@+u5p0LfoE*5lNtOvFWjPzZfSxt#tF*m6+lOLHyo-mXrjR?ZhX*Ad4QI zjMEa4dkp#S=ti+S|MCzOl#a~|Pi#U~rO1P8=R}*Y{RwM**(yV)Y@a@u_LXW>RY6i$ zRdUKL7zq4=lIe%*Tyf*4@~``$JWxY?hRuq0THPEDZ*#U9jmar?<%2%suwzgmuZtM> zt&D3+H2{*~@k_2+ld-kA(WYzXn|;7K+eH#yr{~&1Q6*Vw6%$4b;=%7Ynqa%3M?ult zu?5(0j3K`6>(g$_08ebYvP+BpMPTZyh8f5c{3d5Pk`>R~OL3;YOh1G^o%I=i5n9!W z@E0BSp5U%TjRuzIj^V(|QDy|9?mo5XsN{9Sv18LxuR<~vTV+D2BVF@w`}xV4OAd$G zyckH1B|bp9dno`Cv1FN1;5?mZ2Z(f@jG)hSB~8VR1xDdELDtd9|6$b)Ukk~mAV@CY zKFsL#d!`T@ko}}^hF!XrZ;qS4bGEMDoh%>Nl$XRtH(CNE58>p>6c(ldZoMTF)Mpe(E( zg{Tph+jhKz$6@!KlSNI6TDji_z;3r>7q;$8eXVwwO|HJSS+X$GInQy6_`8!=^obRn zwSZ_Pz5%|jux%p%|GFP2Vt)&YN;^Y=ML zUim0o7bPgbuyrZ_JO@uLn16UtUU!Z2u-KFqNtRNppX#v z|NsAQTziT|GcXu8t~>1)XnN|z?MDw@Lo5Ntf|aehyn^VV1K0lj`=_HP4-B>s@4umI z27;eIey>?^+|WcxS5NNmzyCm;OiYYtPTdg@xhQ7!PFs_RZ%#eGNZ;_%0;O`{~nnEY3y+jL00IkG5_+$H&jb&CUM&*?WSTv4Bq> izX1`PI~Xzs82|v{{)cD~)h^!v0000%TJ$NQ!xZrO0=J1%c~VpMLrBgPEBzr^tKJ-2M0Nyu@xX5IlMO z4v0b`tvT3PfByVKp~YqvD#s7s*tG8Srgdk~q_8Hg|L0EMH8xW|cK9ZR7TY;#_jhf= z8e`Z~^`4!Vk~3V69lk+HEUTzVeEIVIEhuVytsGg74fz*Gcy&G`EFWw%Ed$9%1(X8#GT*2|0d1i zAK!oXv~4V|3h3|H2+U)|*viVvTv*}v_wS#r8_#ZBd&R=~V_VDA-R0a8@q*Hpdo|9?^} z27*Tq-!xRM%rEgaw^CcN_{jTrUofoy&&tN?>1*ihs`sDa|K44fe*gNrdin9lSnFjA zkDNJqSI^nrc?t*lSkQ1-*Ow`TW`YK-U0^Vs>^`NofHcU3qm) zslx}al@~1Z@HGmJv;^7*w0raVv+mx8TQ;6uzxrfJr9U|qL%@-P*MUf0Q55I{Cl@_n z(11-hT7O`09C$!_w~-L=fJ>u_wFkP7b}`+B-h6e z@4tR{A32eu1pD8=|2mr2m(>JGND8c9bL!^xr$7ZP%uK+fPN~J1mZ5=fUw<{%tPBh_ z@12}*?##WnZ$2BFD(&5gUKr4%1p*BAH7ibR-f&h|UrtDfXX(O2m_;uQn?65({01gz lT(ZNou{Ub*sKq17VgQ^PV#OaSGob(g002ovPDHLkV1mpM!bt!C 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..8051ec4037539ecc4a366fffa1df1913cbf6b13d GIT binary patch literal 1556 zcmV+v2J88WP)%Bp5yeqZ5OvVndLTHlh<2O|}ov9va9-lEu#Kf8Hds$@g}D`@Qdd?|aWU zaN$AR|4qij4e&m~pwSWrjg~NIw1h#UB@7xZVbEv^gGNgjG+O##pkW*iLTZZ$+R53r zzD}rC!|%_eRS<4fD6y$Q#CTY#6@L)uzITUlqsEvWN(|k%JENM**TEaQ%hc33Ji?1t zEfBVJ4sNL#I`%+NWqFf8@Y2E2cEKW-`ntASp1`2Qz&n{~3`Zxs#8d09rx#PmWs+|B zKtZDs8h%{N3k;fLVS)d6q$#7IGWqyjl}c?`Xb2~lDdYEFOUaB{73vYPb}qZDp3SV! zzESe-b2UOk_sML~0DW{!fEtG7@*c>b#QlOH$BA}kc$06!Pue@!xXyA0a|s6-;o!ID z(%=&jditae#F-If1i#Z$|AKIHh?99$d{JAssO{C$(&qyiYRMj@k88I^FaC7;C){$r zp?wWO(7dmv-N`ELzZ%3+3v^efgvG3z=QE>%!#5~17)cj5Co8Mb1^FDU#@h2VHHWn| z$}i>o1F1w|xVZ@2ykwbM5uMxFE*(mqetow`MZEQ!ynPqBWM6**8O+;Y&biH+M2ftC z#4p-C-J|Nsx>md*gqTZa%A_iN5Nc3(#Qb79x2~o|KhWSVl)GgC%VsYPnw^o#FhK5u zzaUPYKGPv`^Erg!hp6@dE6c_652AK0$-mEO)wag!Dm>mKVzck{3`UEf17R1WRo){8 zk5yK`eW(AAvFU2{`vPjxw~>o%?Z$v=4A4uZ3M5^0C{53t$oVBXB4n*+>ZOPJ3KIW7 zw>e)0p7W>fAT8xL z38fMxxKt|CV3u>(jWPRz@MfmK<$8k#%FAIJ8yRiexp=J2s2iEZebtOk=rCAEf`Z*c z!aOgWrGhjX9Of};@;E>Y{wrrS#O=*Ikg%HHB>v-8sotQ0C}d`P`>P$h0zgf2`gjhg zZxAm!u#N5L?;^hj62Cb$_(A3yw?_m9Rjh{trievd$w}lw8kabCDhROLd(0R7jy@{rYFZI#Zy=|f z-?!I-GgFJ=kA{H=6bZZZ3Ek^GHI7PQ((+h<$;*cjyKjZj2uRr4DHcf-3OOE+x3V5- zZEdcQ_kgiZOvo-Rsp;DtL-c|wFW;FvV*-BoK3ySG_3lO0xJ&2q*F|_8jlTs9s<_Q! zahHp$eI7+a(KqxX1W2WV3u%?Wevi*ITC+U+|~_D1kLTxo0l^;$IGO0Lqq?E5{X&_ox7ud zkB(WI^y|iq%Y{@5OD0wJ|Mi)xy_2(D@-ec;j>CMy)c#VkKQ`TaAz{@TkI;4VxtvB( zTh~}?3&Q7)SJMjXo(VPf8vbK3usTt5*bj2crxPa3AdI)PG_S1@q@~cF@mdG!GW^i} z0$HWJtN}D6#vcl_PQswk5(bTyFle-dL8B!M8ZBYaXz4GO@OJXO3ezP30000Kr?CaC0Cefaa}SUO(c|sd;TzWWn)`QOA>Ld| zTlE=}cA^QQn|tZP!~9b3L;J4&{rjJ=k^dRAbY&jgd-dn{KjcWmVlEKu-f_t<$ZY-U zlLU=r=VXmfb!@9&iz$W0+^d%#>FLYq8!22ocb@^x8AyPMnK32PWzF*Av5EG_kKR0c z@*ehd1_z7`j4PKOO-grWWo15d@(xy`IXGBTvRrQ6c=qSdpDF#@V-oEC{`q$SDeAE2 zxBvec=FZsbA8e|t@4R8n$@lNRB5Y-1w6IbGCiYh^KknLkQA$=&&p>YJ!b64SzE>|l z{{8zeK64>plkc&V#paEcr1C!m~zkiSgfzF@Wzun8v*xp$On0*C>xThnfVv5SMfB*h(*>DEP x;NWEa@%lU002ovPDHLkV1n0%N0I;l 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..b3462557d499cb56f0ca99cfef381c376cb10d93 GIT binary patch literal 1524 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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..8ce669a93ff5ee21941ae0938f8ae25f2735c48b GIT binary patch literal 2304 zcmaKu`9Bkm1I9O*AwJ1m2|2RloKMJ^u;t#A$uS{H!c1mp!Y5ypYmp=*F_QaO?)#YL z+)O3r%$?g%6n%XEfzJ=m^Sqva;Qc(YHb_%`UU6Ok0Kji<2ETEfHvbnl$FT$PcMkvn z?vLhhBXkIGEu9B#YcKwB3M3RG>jumLwO3t?w=m+NxhpFOaXQ~FVtyf&mZ~U9<$EC{ zM4kQb8|+Ewk!ljo<~s=_Rlzx`6p96|zKl{ zE!~Y4piCP+Y0&&sotkO`$c?Nnk*KV2@n7;{R4Xl?xt|IEGDRg^VR6y`gpDv~8Omj-v?9>c{PS~vLwS;hECQ#cam3F@(bpjKO=$PTDrUOiHC=cAPMA1 zB&b2jUu2^^*!cRUHd(NS^IcG?o^iX)>T(_q>1z;n`xmZo-n> z$$_!d*`T-&eS&ea`BXG6`)>Ei#ab2nM?DXtV-t z)%gtcHJ%Dm%+A)9RaIUpEA`77y^i(XdpE(1j!NJ)`Xddsgzdn7=gHfbOifEv0PQh{ zNHe)t+v={>Z!*9O6Vf0ZIOG!~yO7e2vLlrNtqVT4^O!_%7QbgXQOd^Ql zR>$ubF`5<93Jb|>j7YNec3;*|pf4Q5M#Of-}6mnkfBl%T$F`+>|p8He!sSXKRWcTaZt7&Qh>oeCFt%x?lBJ2tsWR9JU~2zJY%U1y)-Ss z=2BX8&Pbf8*3p7izE4sfc=X0QLqxGDK!#se(6v>Vi;LYFZ@s=Q!ZCU?;g4Ho=}Zne zlMtwpgMoV9oM~P|z4Kpe; z_`gp7^fA8p_spc-n+vC+5-coCSoYxG#z7% zP+BFw|LdG}(+Jb`+ez(`7JIrnE2Odj@&myMmuwiJ&RQy>BG4^^Q!-wCMW#LU=*S!% z7dcdW1z1eu=G;*oVMEVvV!g$%!*B=kXmD0sEVOepIzvp)e-7fIqtPd`_)S z;mXqpkt4!e@MKJqi>7s?{FkS2+A%@9KH7z-VV0UNgBpE#ySH?I(RND*tR;PeP_ECe zo)_`)>K_{VOk_EH9N#WQ#PivGc7w^qRKmU8dFpe*&O`XTU7Px4lD>qn($X{+1iyzz zfUj0jT&Bm<>SojC=0BN3*_00A71yWu>I~0zGWP*^*j8y~mqg{bXWy6KXT6rD77$du zZvs#jjD3ZbL_Pg1Ec{{H-2z8%GczPDH0RW|?wiykW^IYy4tEZ6wY$rHmAkZCy!=a! zV;g_%tg(VX$_hrgBmt_mTAeM$6nES_*bkBkY$6^w9UP1~u|L_N?V=+etGXCcvPO>a z!2Ws8Q*UWSxMPV|w}a+^A)Tu?DZAG~jOkq0BPtyIFa`F`?~ILR78Vt?MSJLnzT2o1 z5{}m?@e4_GNRTC`1O!A}BUhj#Ewv>iB_t__-}8^RBym=sdy>Hv;005^EpIbZfJcXy zV`zCXpNKn*way`oEXhyi4thK`lt~p%kn*v(nzJ}uf$`)r0L2}ZbH5Q}(9iKTZjGj0 znY{9sRPowd+w-1wn$OdpA8Gvk${m*wWXb9YS W_eM7gQcgd9HUM)35?*HP7WpqHRC782 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..ca2f4b697d11cbf06d9f19352ec404d95bb67202 GIT binary patch literal 4295 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 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..ca2f4b697d11cbf06d9f19352ec404d95bb67202 GIT binary patch literal 4295 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 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..122fd012a990aceb7d02b42a647662ef51970ee8 GIT binary patch literal 7909 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 RfA%#%MnX}%TGTN3{{Wf-TrB_q 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..18b2cf969e376e652e3b834b867bbe68df4c0f23 GIT binary patch literal 2180 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 HdGP-Lb!N5v literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..43c853bf36226724b47a2ee6232321801e761fc0 GIT binary patch literal 7020 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 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 0000000..89c2725 --- /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 0000000..f2e259c --- /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 0000000..f3c2851 --- /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 0000000..ff59184 --- /dev/null +++ b/ios/Runner/Info.plist @@ -0,0 +1,47 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Opencanteen + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + opencanteen + 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 0000000..308a2a5 --- /dev/null +++ b/ios/Runner/Runner-Bridging-Header.h @@ -0,0 +1 @@ +#import "GeneratedPluginRegistrant.h" diff --git a/lib/loginmanager.dart b/lib/loginmanager.dart new file mode 100644 index 0000000..a0a3b64 --- /dev/null +++ b/lib/loginmanager.dart @@ -0,0 +1,20 @@ +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; + +class LoginManager { + static Future?> getDetails() async { + // zkontrolovat secure storage pokud je něco uložené + const storage = FlutterSecureStorage(); + var user = await storage.read(key: "oc_user"); + var pass = await storage.read(key: "oc_pass"); + var url = await storage.read(key: "oc_url"); + if (user == null || pass == null || url == null) return null; + return {"user": user, "pass": pass, "url": url}; + } + + static Future setDetails(String user, String pass, String url) async { + const storage = FlutterSecureStorage(); + await storage.write(key: "oc_user", value: user); + await storage.write(key: "oc_pass", value: pass); + await storage.write(key: "oc_url", value: url); + } +} diff --git a/lib/main.dart b/lib/main.dart new file mode 100644 index 0000000..cb1843a --- /dev/null +++ b/lib/main.dart @@ -0,0 +1,210 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; +import 'package:opencanteen/loginmanager.dart'; +import 'package:connectivity_plus/connectivity_plus.dart'; +import 'package:opencanteen/okna/home.dart'; +import 'package:canteenlib/canteenlib.dart'; + +void main() { + runApp(const MyApp()); +} + +class MyApp extends StatelessWidget { + const MyApp({Key? key}) : super(key: key); + + // This widget is the root of your application. + @override + Widget build(BuildContext context) { + return MaterialApp( + title: 'OpenCanteen', + theme: ThemeData( + primarySwatch: Colors.purple, + ), + darkTheme: ThemeData( + brightness: Brightness.dark, + primarySwatch: Colors.purple, + ), + home: const LoginPage(), + ); + } +} + +class LoginPage extends StatefulWidget { + const LoginPage({Key? key}) : super(key: key); + + @override + State createState() => _LoginPageState(); +} + +class _LoginPageState extends State { + TextEditingController userControl = TextEditingController(); + TextEditingController passControl = TextEditingController(); + TextEditingController canteenControl = TextEditingController(); + bool rememberMe = false; + + @override + void initState() { + super.initState(); + LoginManager.getDetails().then((r) async { + var connectivityResult = await (Connectivity().checkConnectivity()); + if (connectivityResult == ConnectivityResult.none) { + ScaffoldMessenger.of(context).hideCurrentSnackBar(); + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text( + "Nastala chyba při kontaktování serveru, zkontrolujte připojení"), + ), + ); + } + + if (r != null) { + var canteen = Canteen(r["url"]!); + var l = await canteen.login(r["user"]!, r["pass"]!); + if (!l) { + ScaffoldMessenger.of(context).hideCurrentSnackBar(); + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text("Přihlášení se nezdařilo, zkontrolujte údaje"), + ), + ); + return; + } + Navigator.pushReplacement( + context, + MaterialPageRoute( + builder: (context) => HomePage( + user: r["user"]!, + canteen: canteen, + )), + ); + } + }); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: const Text("Přihlášení"), + ), + body: Center( + child: Container( + width: MediaQuery.of(context).size.width - 50, + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const Text( + 'OpenCanteen', + textAlign: TextAlign.center, + style: TextStyle(fontWeight: FontWeight.bold, fontSize: 40), + ), + const Text( + 'Přihlášení', + textAlign: TextAlign.center, + ), + TextField( + controller: userControl, + autofillHints: const [AutofillHints.username], + decoration: + const InputDecoration(labelText: 'Uživatelské jméno'), + ), + TextField( + autofillHints: const [AutofillHints.password], + decoration: const InputDecoration(labelText: 'Heslo'), + controller: passControl, + obscureText: true, + ), + TextField( + autofillHints: const [AutofillHints.url], + decoration: const InputDecoration(labelText: 'iCanteen URL'), + keyboardType: TextInputType.url, + controller: canteenControl, + ), + Switch( + value: rememberMe, + onChanged: (value) { + setState(() { + rememberMe = value; + }); + }), + TextButton( + onPressed: () async { + if (canteenControl.text.contains("http://")) { + // kontrolujeme šifrované spojení + var d = await showDialog( + context: context, + builder: (c) => AlertDialog( + title: const Text("Varování!"), + content: const SingleChildScrollView( + child: Text( + "Snažíte se přihlásit přes nešifrované spojení HTTP, jste si jisti, že tak chcete učinit?")), + actions: [ + TextButton( + onPressed: () => Navigator.pop(c, true), + child: const Text("Ano")), + TextButton( + onPressed: () => Navigator.pop(c, false), + child: const Text("Ne, změnit")) + ], + )); + if (!d!) return; + } + + // souhlas + const storage = FlutterSecureStorage(); + var odsouhlasil = await storage.read(key: "oc_souhlas"); + if (odsouhlasil == null || odsouhlasil != "ano") { + var d = await showDialog( + context: context, + builder: (c) => AlertDialog( + title: const Text("Pozor"), + content: const SingleChildScrollView( + child: Text( + "Toto není oficiální aplikace k ovládání iCanteen. Autor neručí za ztráty nebo nefunkčnost v souvislosti s používáním této aplikace. Tato zpráva se znovu neukáže.")), + actions: [ + TextButton( + onPressed: () => Navigator.pop(c, true), + child: const Text("Souhlasím")), + TextButton( + onPressed: () => Navigator.pop(c, false), + child: const Text("Nesouhlasím")) + ], + )); + if (!d!) return; + await storage.write(key: "oc_souhlas", value: "ano"); + } + + var canteen = Canteen(canteenControl.text); + var l = + await canteen.login(userControl.text, passControl.text); + if (!l) { + ScaffoldMessenger.of(context).hideCurrentSnackBar(); + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text( + "Přihlášení se nezdařilo, zkontrolujte údaje"), + ), + ); + return; + } + if (rememberMe) { + LoginManager.setDetails(userControl.text, + passControl.text, canteenControl.text); + } + Navigator.pushReplacement( + context, + MaterialPageRoute( + builder: (context) => HomePage( + user: userControl.text, + canteen: canteen, + )), + ); + }, + child: const Text("Přihlásit se")), + ], + ), + ), + ), + ); + } +} diff --git a/lib/okna/home.dart b/lib/okna/home.dart new file mode 100644 index 0000000..8a1a109 --- /dev/null +++ b/lib/okna/home.dart @@ -0,0 +1,131 @@ +import 'package:canteenlib/canteenlib.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; +import 'package:opencanteen/main.dart'; +import 'package:opencanteen/util.dart'; + +class HomePage extends StatefulWidget { + const HomePage({Key? key, required this.user, required this.canteen}) + : super(key: key); + + final String user; + final Canteen canteen; + + @override + State createState() => _HomePageState(); +} + +class _HomePageState extends State { + double kredit = 0.0; + Jidelnicek? dnes; + Jidlo? jidloDnes; + List obsah = []; + + Future nactiJidlo() async { + obsah = []; + widget.canteen.ziskejUzivatele().then((kr) { + widget.canteen.jidelnicekDen().then((jd) { + setState(() { + kredit = kr.kredit; + dnes = jd; + for (var j in jd.jidla) { + if (j.objednano) jidloDnes = j; + obsah.add( + Padding( + padding: const EdgeInsets.only(top: 15), + child: Row( + children: [ + Text(j.varianta), + const SizedBox(width: 10), + Flexible( + child: Text( + j.nazev, + ), + ), + Text("${j.cena} Kč"), + Checkbox( + value: j.objednano, + fillColor: (j.lzeObjednat) + ? MaterialStateProperty.all(Colors.blue) + : MaterialStateProperty.all(Colors.grey), + onChanged: (v) => setState(() { + // TODO exception handling + if (!j.lzeObjednat) return; + widget.canteen.objednat(j); + nactiJidlo(); + })) + ], + ), + ), + ); + } + }); + }); + }).catchError((o) { + if (!widget.canteen.prihlasen) { + Navigator.pushReplacement( + context, MaterialPageRoute(builder: (c) => const LoginPage())); + } + }); + } + + @override + void initState() { + super.initState(); + nactiJidlo(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + drawer: drawerGenerator(context, widget.canteen, widget.user, 1), + appBar: AppBar( + title: const Text("Domů"), + actions: [ + IconButton( + onPressed: (() { + const storage = FlutterSecureStorage(); + storage.deleteAll(); + Navigator.pushReplacement(context, + MaterialPageRoute(builder: (c) => const LoginPage())); + }), + icon: const Icon(Icons.logout)) + ], + ), + body: RefreshIndicator( + onRefresh: nactiJidlo, + child: SingleChildScrollView( + physics: const AlwaysScrollableScrollPhysics(), + child: Center( + child: SizedBox( + child: Column( + children: [ + const SizedBox( + height: 5, + ), + Text( + "${widget.user} - $kredit kč", + style: const TextStyle(fontSize: 13), + ), + const SizedBox( + height: 10, + ), + Text( + "Dnes je ${DateTime.now().day}. ${DateTime.now().month}.", + style: const TextStyle( + fontSize: 20, fontWeight: FontWeight.bold), + ), + Padding( + padding: const EdgeInsets.only(top: 20), + child: Column(children: obsah), + ), + ], + ), + width: MediaQuery.of(context).size.width - 50, + ), + ), + ), + ), + ); + } +} diff --git a/lib/okna/jidelnicek.dart b/lib/okna/jidelnicek.dart new file mode 100644 index 0000000..3a160e7 --- /dev/null +++ b/lib/okna/jidelnicek.dart @@ -0,0 +1,154 @@ +import 'package:canteenlib/canteenlib.dart'; +import 'package:flutter/material.dart'; +import 'package:opencanteen/util.dart'; +import 'package:flutter_holo_date_picker/flutter_holo_date_picker.dart'; + +import '../main.dart'; + +class JidelnicekPage extends StatefulWidget { + const JidelnicekPage({Key? key, required this.canteen, required this.user}) + : super(key: key); + final Canteen canteen; + final String user; + @override + State createState() => _JidelnicekPageState(); +} + +class _JidelnicekPageState extends State { + List obsah = []; + DateTime den = DateTime.now(); + String denTydne = ""; + double kredit = 0.0; + Future nactiJidlo() async { + obsah = []; + widget.canteen.ziskejUzivatele().then((kr) { + kredit = kr.kredit; + widget.canteen.jidelnicekDen(den: den).then((jd) { + setState(() { + for (var j in jd.jidla) { + obsah.add( + Padding( + padding: const EdgeInsets.only(top: 15), + child: Row( + children: [ + Text(j.varianta), + const SizedBox(width: 10), + Flexible( + child: Text( + j.nazev, + ), + ), + Text("${j.cena} Kč"), + Checkbox( + value: j.objednano, + fillColor: (j.lzeObjednat) + ? MaterialStateProperty.all(Colors.blue) + : MaterialStateProperty.all(Colors.grey), + onChanged: (v) async { + if (!j.lzeObjednat) return; + + widget.canteen + .objednat(j) + .then((value) => nactiJidlo); + }) + ], + ), + ), + ); + } + }); + }); + }).catchError((o) { + if (!widget.canteen.prihlasen) { + Navigator.pushReplacement( + context, MaterialPageRoute(builder: (c) => const LoginPage())); + } + }); + } + + @override + void initState() { + super.initState(); + switch (den.weekday) { + case 2: + denTydne = "Úterý"; + break; + case 3: + denTydne = "Středa"; + break; + case 4: + denTydne = "Čtvrtek"; + break; + case 5: + denTydne = "Pátek"; + break; + case 6: + denTydne = "Sobota"; + break; + case 7: + denTydne = "Neděle"; + break; + default: + denTydne = "Pondělí"; + } + nactiJidlo(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + drawer: drawerGenerator(context, widget.canteen, widget.user, 2), + appBar: AppBar( + title: const Text('Jídelníček'), + ), + body: Center( + child: Column( + children: [ + const SizedBox(height: 10), + Text("Kredit: $kredit"), + TextButton( + onPressed: () async { + var datePicked = await DatePicker.showSimpleDatePicker( + context, + initialDate: den, + dateFormat: "dd-MMMM-yyyy", + locale: DateTimePickerLocale.en_us, + looping: true, + ); + if (datePicked == null) return; + setState(() { + den = datePicked; + switch (den.weekday) { + case 2: + denTydne = "Úterý"; + break; + case 3: + denTydne = "Středa"; + break; + case 4: + denTydne = "Čtvrtek"; + break; + case 5: + denTydne = "Pátek"; + break; + case 6: + denTydne = "Sobota"; + break; + case 7: + denTydne = "Neděle"; + break; + default: + denTydne = "Pondělí"; + } + nactiJidlo(); + }); + }, + child: + Text("${den.day}. ${den.month}. ${den.year} - $denTydne")), + ...obsah + ], + ), + ), + ); + } +} diff --git a/lib/util.dart b/lib/util.dart new file mode 100644 index 0000000..3300f9c --- /dev/null +++ b/lib/util.dart @@ -0,0 +1,67 @@ +import 'package:canteenlib/canteenlib.dart'; +import 'package:flutter/material.dart'; + +import 'okna/home.dart'; +import 'okna/jidelnicek.dart'; + +Drawer drawerGenerator( + BuildContext context, Canteen canteen, String user, int p) { + Drawer drawer = const Drawer(); + switch (p) { + case 1: + // Home page + drawer = Drawer( + child: ListView( + children: [ + const DrawerHeader( + child: Text("OpenCanteen"), + ), + ListTile( + selected: true, + leading: const Icon(Icons.home), + onTap: () => Navigator.pop(context), + ), + ListTile( + leading: const Icon(Icons.restaurant), + title: const Text('Jídelníček'), + onTap: () => Navigator.push( + context, + MaterialPageRoute( + builder: (context) => + JidelnicekPage(canteen: canteen, user: user), + ), + ), + ), + ], + ), + ); + + break; + case 2: + // Jidelnicek page + drawer = Drawer( + child: ListView( + children: [ + const DrawerHeader( + child: Text("OpenCanteen"), + ), + ListTile( + leading: const Icon(Icons.home), + onTap: () => Navigator.push( + context, + MaterialPageRoute( + builder: (c) => HomePage(canteen: canteen, user: user))), + ), + ListTile( + leading: const Icon(Icons.restaurant), + selected: true, + title: const Text('Jídelníček'), + onTap: () => Navigator.pop(context), + ), + ], + ), + ); + break; + } + return drawer; +} diff --git a/opencanteen.iml b/opencanteen.iml new file mode 100644 index 0000000..e5c8371 --- /dev/null +++ b/opencanteen.iml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pubspec.lock b/pubspec.lock new file mode 100644 index 0000000..c3082f5 --- /dev/null +++ b/pubspec.lock @@ -0,0 +1,336 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + archive: + dependency: transitive + description: + name: archive + url: "https://pub.dartlang.org" + source: hosted + version: "3.3.0" + args: + dependency: transitive + description: + name: args + url: "https://pub.dartlang.org" + source: hosted + version: "2.3.0" + async: + dependency: transitive + description: + name: async + url: "https://pub.dartlang.org" + source: hosted + version: "2.8.2" + auto_size_text: + dependency: transitive + description: + name: auto_size_text + url: "https://pub.dartlang.org" + source: hosted + version: "3.0.0" + canteenlib: + dependency: "direct main" + description: + name: canteenlib + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.0-alpha.7" + characters: + dependency: transitive + description: + name: characters + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0" + charcode: + dependency: transitive + description: + name: charcode + url: "https://pub.dartlang.org" + source: hosted + version: "1.3.1" + collection: + dependency: transitive + description: + name: collection + url: "https://pub.dartlang.org" + source: hosted + version: "1.15.0" + connectivity_plus: + dependency: "direct main" + description: + name: connectivity_plus + url: "https://pub.dartlang.org" + source: hosted + version: "2.2.1" + connectivity_plus_linux: + dependency: transitive + description: + name: connectivity_plus_linux + url: "https://pub.dartlang.org" + source: hosted + version: "1.3.0" + connectivity_plus_macos: + dependency: transitive + description: + name: connectivity_plus_macos + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.1" + connectivity_plus_platform_interface: + dependency: transitive + description: + name: connectivity_plus_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0" + connectivity_plus_web: + dependency: transitive + description: + name: connectivity_plus_web + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0" + connectivity_plus_windows: + dependency: transitive + description: + name: connectivity_plus_windows + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.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.4" + dbus: + dependency: transitive + description: + name: dbus + url: "https://pub.dartlang.org" + source: hosted + version: "0.7.2" + ffi: + dependency: transitive + description: + name: ffi + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.2" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_holo_date_picker: + dependency: "direct main" + description: + name: flutter_holo_date_picker + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.3" + flutter_launcher_icons: + dependency: "direct dev" + description: + name: flutter_launcher_icons + url: "https://pub.dartlang.org" + source: hosted + version: "0.9.2" + flutter_lints: + dependency: "direct dev" + description: + name: flutter_lints + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.4" + flutter_secure_storage: + dependency: "direct main" + description: + name: flutter_secure_storage + url: "https://pub.dartlang.org" + source: hosted + version: "5.0.2" + flutter_secure_storage_linux: + dependency: transitive + description: + name: flutter_secure_storage_linux + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" + flutter_secure_storage_macos: + dependency: transitive + description: + name: flutter_secure_storage_macos + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" + flutter_secure_storage_platform_interface: + dependency: transitive + description: + name: flutter_secure_storage_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.0" + flutter_secure_storage_web: + dependency: transitive + description: + name: flutter_secure_storage_web + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.2" + flutter_secure_storage_windows: + dependency: transitive + description: + name: flutter_secure_storage_windows + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.2" + flutter_web_plugins: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + http: + dependency: transitive + description: + name: http + url: "https://pub.dartlang.org" + source: hosted + version: "0.13.4" + http_parser: + dependency: transitive + description: + name: http_parser + url: "https://pub.dartlang.org" + source: hosted + version: "4.0.0" + image: + dependency: transitive + description: + name: image + url: "https://pub.dartlang.org" + source: hosted + version: "3.1.3" + js: + dependency: transitive + description: + name: js + url: "https://pub.dartlang.org" + source: hosted + version: "0.6.3" + lints: + dependency: transitive + description: + name: lints + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.1" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.3" + meta: + dependency: transitive + description: + name: meta + url: "https://pub.dartlang.org" + source: hosted + version: "1.7.0" + nm: + dependency: transitive + description: + name: nm + url: "https://pub.dartlang.org" + source: hosted + version: "0.5.0" + path: + dependency: transitive + description: + name: path + url: "https://pub.dartlang.org" + source: hosted + version: "1.8.0" + petitparser: + dependency: transitive + description: + name: petitparser + url: "https://pub.dartlang.org" + source: hosted + version: "4.4.0" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.2" + 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" + 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" + 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.1" + xml: + dependency: transitive + description: + name: xml + url: "https://pub.dartlang.org" + source: hosted + version: "5.3.1" + yaml: + dependency: transitive + description: + name: yaml + url: "https://pub.dartlang.org" + source: hosted + version: "3.1.0" +sdks: + dart: ">=2.16.1 <3.0.0" + flutter: ">=2.0.0" diff --git a/pubspec.yaml b/pubspec.yaml new file mode 100644 index 0000000..cbc84e9 --- /dev/null +++ b/pubspec.yaml @@ -0,0 +1,61 @@ +name: opencanteen +description: Open-source mobilní aplikace pro přístup do iCanteen + +publish_to: 'none' + +# 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 +. +version: 1.0.0+1 + +environment: + sdk: ">=2.16.1 <3.0.0" + +dependencies: + flutter: + sdk: flutter + canteenlib: ^0.1.0-alpha.7 + cupertino_icons: ^1.0.2 + connectivity_plus: ^2.2.1 + flutter_secure_storage: ^5.0.2 + flutter_holo_date_picker: ^1.0.3 + +dev_dependencies: + flutter_lints: ^1.0.0 + flutter_launcher_icons: "^0.9.2" + +flutter_icons: + android: "launcher_icon" + ios: true + image_path: "assets/icon.jpg" + +flutter: + uses-material-design: true + + # To add assets to your application, add an assets section, like this: + # assets: + # - images/a_dot_burr.jpeg + # - 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. + + # 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