From 44f6c5aa47087459855568376da3a08961074dbd Mon Sep 17 00:00:00 2001 From: BaseChip Date: Tue, 4 Aug 2020 13:10:45 +0200 Subject: [PATCH] v 1.1.2 --- .gitignore | 44 ++ .metadata | 10 + LICENSE | 661 ++++++++++++++++++ README.md | 48 ++ android/.gitignore | 7 + android/app/build.gradle | 76 ++ android/app/key.jks | Bin 0 -> 2247 bytes android/app/src/debug/AndroidManifest.xml | 7 + android/app/src/main/AndroidManifest.xml | 53 ++ .../physik_lp_app_rewrite/MainActivity.kt | 6 + .../main/res/drawable/launch_background.xml | 12 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 1191 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 864 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 1584 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 2265 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 3059 bytes android/app/src/main/res/values/styles.xml | 18 + android/app/src/profile/AndroidManifest.xml | 7 + android/build.gradle | 31 + android/gradle.properties | 4 + .../gradle/wrapper/gradle-wrapper.properties | 6 + android/settings.gradle | 15 + assets/articel.png | Bin 0 -> 264441 bytes assets/articels.png | Bin 0 -> 156787 bytes assets/notizen.png | Bin 0 -> 265250 bytes ios/.gitignore | 32 + ios/Flutter/AppFrameworkInfo.plist | 26 + ios/Flutter/Debug.xcconfig | 1 + ios/Flutter/Release.xcconfig | 1 + ios/Runner.xcodeproj/project.pbxproj | 506 ++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 91 +++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + ios/Runner/AppDelegate.swift | 13 + .../AppIcon.appiconset/1024.png | Bin 0 -> 18804 bytes .../AppIcon.appiconset/114.png | Bin 0 -> 1844 bytes .../AppIcon.appiconset/120.png | Bin 0 -> 1901 bytes .../AppIcon.appiconset/180.png | Bin 0 -> 2849 bytes .../Assets.xcassets/AppIcon.appiconset/29.png | Bin 0 -> 637 bytes .../Assets.xcassets/AppIcon.appiconset/40.png | Bin 0 -> 765 bytes .../Assets.xcassets/AppIcon.appiconset/57.png | Bin 0 -> 980 bytes .../Assets.xcassets/AppIcon.appiconset/58.png | Bin 0 -> 981 bytes .../Assets.xcassets/AppIcon.appiconset/60.png | Bin 0 -> 966 bytes .../Assets.xcassets/AppIcon.appiconset/80.png | Bin 0 -> 1261 bytes .../Assets.xcassets/AppIcon.appiconset/87.png | Bin 0 -> 1441 bytes .../AppIcon.appiconset/Contents.json | 1 + .../Icon-App-1024x1024@1x.png | Bin 0 -> 10932 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 0 -> 564 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 0 -> 1283 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 0 -> 1588 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 0 -> 1025 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 0 -> 1716 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 0 -> 1920 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 0 -> 1283 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 0 -> 1895 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 0 -> 2665 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 0 -> 2665 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 0 -> 3831 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 0 -> 1888 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 0 -> 3294 bytes .../Icon-App-83.5x83.5@2x.png | Bin 0 -> 3612 bytes .../LaunchImage.imageset/Contents.json | 23 + .../LaunchImage.imageset/LaunchImage.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@2x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@3x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/README.md | 5 + ios/Runner/Base.lproj/LaunchScreen.storyboard | 37 + ios/Runner/Base.lproj/Main.storyboard | 26 + ios/Runner/Info.plist | 50 ++ ios/Runner/Runner-Bridging-Header.h | 1 + lib/core/error/exceptions.dart | 23 + lib/core/error/failure.dart | 27 + lib/core/platform/appinfo.dart | 18 + lib/core/platform/networkinfo.dart | 13 + lib/core/success/succes.dart | 6 + lib/core/ui/pages/settings/settings_page.dart | 113 +++ .../settings/widgets/about_app_dialog.dart | 54 ++ .../widgets/drop_down_rendering_engine.dart | 41 ++ .../widgets/drop_down_theme_chooser.dart | 29 + .../ui/pages/settings/widgets/widgets.dart | 2 + lib/core/ui/pages/tools/menu_item_card.dart | 25 + lib/core/ui/pages/tools/toolspage.dart | 35 + lib/core/ui/theme/app_themes.dart | 90 +++ lib/core/ui/theme/bloc/theme_bloc.dart | 29 + lib/core/ui/theme/bloc/theme_event.dart | 16 + lib/core/ui/theme/bloc/theme_state.dart | 13 + lib/core/ui/widgets/error_display.dart | 21 + lib/core/ui/widgets/invisible_widget.dart | 15 + lib/core/ui/widgets/success_display.dart | 19 + lib/core/usecases/usecases.dart | 11 + lib/core/util/input_converter.dart | 26 + .../util/parser/markdown_html_parser.dart | 67 ++ .../shared_prefrences/shared_prefs_auth.dart | 23 + .../shared_prefs_rendering_engine.dart | 41 ++ .../shared_prefs_slider.dart | 17 + .../shared_prefrences/shared_prefs_theme.dart | 23 + .../content/data/datasources/content_api.dart | 66 ++ .../content/data/models/articel_model.dart | 35 + .../data/models/articels_list_model.dart | 17 + .../content/data/models/articels_model.dart | 21 + .../content/data/models/topic_model.dart | 22 + .../data/models/topics_list_model.dart | 20 + .../repositories/content_repository_impl.dart | 66 ++ .../domain/entities/articel_entitie.dart | 23 + .../domain/entities/articels_entitie.dart | 20 + .../entities/articels_list_entitie.dart | 15 + .../domain/entities/topic_entitie.dart | 16 + .../domain/entities/topics_entitie.dart | 15 + .../repositories/content_repository.dart | 12 + .../domain/usecases/get_all_articels.dart | 16 + .../domain/usecases/get_all_topics.dart | 19 + .../content/domain/usecases/get_articel.dart | 16 + .../presentation/bloc/content_bloc.dart | 101 +++ .../presentation/bloc/content_event.dart | 21 + .../presentation/bloc/content_state.dart | 40 ++ .../presentation/pages/articel_page.dart | 73 ++ .../presentation/pages/articels_page.dart | 62 ++ .../presentation/pages/topics_page.dart | 64 ++ .../presentation/widgets/articel_display.dart | 20 + .../articel_renderer/articel_renderer.dart | 52 ++ .../formelsammlung_renderer.dart | 42 ++ .../articel_renderer/formelwidget.dart | 33 + .../widgets/articel_renderer/renderer.dart | 1 + .../widgets/articel_renderer/teXdocument.dart | 29 + .../presentation/widgets/articels_card.dart | 27 + .../widgets/articels_list_display.dart | 18 + .../widgets/content_error_display.dart | 15 + .../widgets/content_loading_display.dart | 24 + .../presentation/widgets/topic_card.dart | 27 + .../widgets/topics_list_display.dart | 37 + .../presentation/slider_page.dart | 64 ++ .../login/data/datasources/user_api.dart | 74 ++ .../login/data/models/auth_key_modell.dart | 13 + .../repositories/login_repository_impl.dart | 68 ++ .../domain/entities/auth_key_entitie.dart | 10 + .../domain/repositories/login_repository.dart | 11 + .../login/domain/usecases/create_user.dart | 16 + .../login/domain/usecases/delete_user.dart | 16 + lib/features/login/domain/usecases/login.dart | 16 + .../login/presentation/bloc/login_bloc.dart | 98 +++ .../login/presentation/bloc/login_event.dart | 32 + .../login/presentation/bloc/login_state.dart | 27 + .../pages/create_account_page.dart | 136 ++++ .../pages/delete_account_page.dart | 127 ++++ .../login/presentation/pages/login_page.dart | 143 ++++ .../login/presentation/widgets/button.dart | 28 + .../presentation/widgets/dialog_account.dart | 32 + .../widgets/invisible_widget.dart | 15 + .../widgets/set_initial_state.dart | 7 + .../login/presentation/widgets/textfield.dart | 45 ++ .../notes/data/datasources/note_api.dart | 134 ++++ .../notes/data/models/note_model.dart | 16 + .../notes/data/models/notes_list_model.dart | 17 + .../notes/data/models/notes_model.dart | 16 + .../repositories/note_repository_impl.dart | 113 +++ .../notes/domain/entities/note_entitie.dart | 12 + .../notes/domain/entities/notes_entitie.dart | 11 + .../domain/entities/notes_list_entitie.dart | 12 + .../domain/repositories/note_repository.dart | 14 + .../notes/domain/usecases/add_note.dart | 16 + .../notes/domain/usecases/change_note.dart | 16 + .../notes/domain/usecases/delete_note.dart | 16 + .../notes/domain/usecases/get_all_notes.dart | 16 + .../notes/domain/usecases/get_note.dart | 16 + .../notes/presentation/bloc/notes_bloc.dart | 126 ++++ .../notes/presentation/bloc/notes_event.dart | 43 ++ .../notes/presentation/bloc/notes_state.dart | 36 + .../markdown_editor/advanced_editor.dart | 236 +++++++ .../notes/presentation/pages/note_viewer.dart | 115 +++ .../presentation/pages/notes_list_page.dart | 153 ++++ .../advanced_editor_bottom_appbar_button.dart | 33 + .../advanced_editor_save_action_button.dart | 28 + .../editor_textfield.dart | 32 + .../presentation/widgets/loading_display.dart | 32 + .../presentation/widgets/notes_card.dart | 55 ++ .../presentation/widgets/notes_list_view.dart | 47 ++ .../presentation/widgets/teXdocument.dart | 22 + .../plot/data/datasources/Plot_api.dart | 34 + .../plot/data/models/plot_filename_model.dart | 18 + .../repositories/plot_repository_impl.dart | 32 + .../plot/domain/entities/plot_filename.dart | 14 + .../domain/repositories/plot_repository.dart | 9 + .../usecases/get_beugungsmuster_plot.dart | 35 + .../bloc/beugungsmuster_plot_bloc.dart | 89 +++ .../bloc/beugungsmuster_plot_event.dart | 16 + .../bloc/beugungsmuster_plot_state.dart | 24 + .../pages/beugungsmusterplot_page.dart | 65 ++ .../presentation/widgets/image_display.dart | 22 + .../presentation/widgets/loading_display.dart | 22 + .../presentation/widgets/message_display.dart | 17 + .../presentation/widgets/plot_controls.dart | 156 +++++ .../plot/presentation/widgets/widgets.dart | 4 + lib/injection_container.dart | 170 +++++ lib/main.dart | 54 ++ pubspec.lock | 390 +++++++++++ pubspec.yaml | 104 +++ 200 files changed, 7382 insertions(+) create mode 100644 .gitignore create mode 100644 .metadata create mode 100644 LICENSE create mode 100644 README.md create mode 100644 android/.gitignore create mode 100644 android/app/build.gradle create mode 100644 android/app/key.jks create mode 100644 android/app/src/debug/AndroidManifest.xml create mode 100644 android/app/src/main/AndroidManifest.xml create mode 100644 android/app/src/main/kotlin/com/example/physik_lp_app_rewrite/MainActivity.kt create mode 100644 android/app/src/main/res/drawable/launch_background.xml create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/values/styles.xml create mode 100644 android/app/src/profile/AndroidManifest.xml create mode 100644 android/build.gradle create mode 100644 android/gradle.properties create mode 100644 android/gradle/wrapper/gradle-wrapper.properties create mode 100644 android/settings.gradle create mode 100644 assets/articel.png create mode 100644 assets/articels.png create mode 100644 assets/notizen.png 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/1024.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/114.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/120.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/180.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/29.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/40.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/57.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/58.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/60.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/80.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/87.png 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/core/error/exceptions.dart create mode 100644 lib/core/error/failure.dart create mode 100644 lib/core/platform/appinfo.dart create mode 100644 lib/core/platform/networkinfo.dart create mode 100644 lib/core/success/succes.dart create mode 100644 lib/core/ui/pages/settings/settings_page.dart create mode 100644 lib/core/ui/pages/settings/widgets/about_app_dialog.dart create mode 100644 lib/core/ui/pages/settings/widgets/drop_down_rendering_engine.dart create mode 100644 lib/core/ui/pages/settings/widgets/drop_down_theme_chooser.dart create mode 100644 lib/core/ui/pages/settings/widgets/widgets.dart create mode 100644 lib/core/ui/pages/tools/menu_item_card.dart create mode 100644 lib/core/ui/pages/tools/toolspage.dart create mode 100644 lib/core/ui/theme/app_themes.dart create mode 100644 lib/core/ui/theme/bloc/theme_bloc.dart create mode 100644 lib/core/ui/theme/bloc/theme_event.dart create mode 100644 lib/core/ui/theme/bloc/theme_state.dart create mode 100644 lib/core/ui/widgets/error_display.dart create mode 100644 lib/core/ui/widgets/invisible_widget.dart create mode 100644 lib/core/ui/widgets/success_display.dart create mode 100644 lib/core/usecases/usecases.dart create mode 100644 lib/core/util/input_converter.dart create mode 100644 lib/core/util/parser/markdown_html_parser.dart create mode 100644 lib/core/util/shared_prefrences/shared_prefs_auth.dart create mode 100644 lib/core/util/shared_prefrences/shared_prefs_rendering_engine.dart create mode 100644 lib/core/util/shared_prefrences/shared_prefs_slider.dart create mode 100644 lib/core/util/shared_prefrences/shared_prefs_theme.dart create mode 100644 lib/features/content/data/datasources/content_api.dart create mode 100644 lib/features/content/data/models/articel_model.dart create mode 100644 lib/features/content/data/models/articels_list_model.dart create mode 100644 lib/features/content/data/models/articels_model.dart create mode 100644 lib/features/content/data/models/topic_model.dart create mode 100644 lib/features/content/data/models/topics_list_model.dart create mode 100644 lib/features/content/data/repositories/content_repository_impl.dart create mode 100644 lib/features/content/domain/entities/articel_entitie.dart create mode 100644 lib/features/content/domain/entities/articels_entitie.dart create mode 100644 lib/features/content/domain/entities/articels_list_entitie.dart create mode 100644 lib/features/content/domain/entities/topic_entitie.dart create mode 100644 lib/features/content/domain/entities/topics_entitie.dart create mode 100644 lib/features/content/domain/repositories/content_repository.dart create mode 100644 lib/features/content/domain/usecases/get_all_articels.dart create mode 100644 lib/features/content/domain/usecases/get_all_topics.dart create mode 100644 lib/features/content/domain/usecases/get_articel.dart create mode 100644 lib/features/content/presentation/bloc/content_bloc.dart create mode 100644 lib/features/content/presentation/bloc/content_event.dart create mode 100644 lib/features/content/presentation/bloc/content_state.dart create mode 100644 lib/features/content/presentation/pages/articel_page.dart create mode 100644 lib/features/content/presentation/pages/articels_page.dart create mode 100644 lib/features/content/presentation/pages/topics_page.dart create mode 100644 lib/features/content/presentation/widgets/articel_display.dart create mode 100644 lib/features/content/presentation/widgets/articel_renderer/articel_renderer.dart create mode 100644 lib/features/content/presentation/widgets/articel_renderer/formelsammlung_renderer.dart create mode 100644 lib/features/content/presentation/widgets/articel_renderer/formelwidget.dart create mode 100644 lib/features/content/presentation/widgets/articel_renderer/renderer.dart create mode 100644 lib/features/content/presentation/widgets/articel_renderer/teXdocument.dart create mode 100644 lib/features/content/presentation/widgets/articels_card.dart create mode 100644 lib/features/content/presentation/widgets/articels_list_display.dart create mode 100644 lib/features/content/presentation/widgets/content_error_display.dart create mode 100644 lib/features/content/presentation/widgets/content_loading_display.dart create mode 100644 lib/features/content/presentation/widgets/topic_card.dart create mode 100644 lib/features/content/presentation/widgets/topics_list_display.dart create mode 100644 lib/features/intro_slider/presentation/slider_page.dart create mode 100644 lib/features/login/data/datasources/user_api.dart create mode 100644 lib/features/login/data/models/auth_key_modell.dart create mode 100644 lib/features/login/data/repositories/login_repository_impl.dart create mode 100644 lib/features/login/domain/entities/auth_key_entitie.dart create mode 100644 lib/features/login/domain/repositories/login_repository.dart create mode 100644 lib/features/login/domain/usecases/create_user.dart create mode 100644 lib/features/login/domain/usecases/delete_user.dart create mode 100644 lib/features/login/domain/usecases/login.dart create mode 100644 lib/features/login/presentation/bloc/login_bloc.dart create mode 100644 lib/features/login/presentation/bloc/login_event.dart create mode 100644 lib/features/login/presentation/bloc/login_state.dart create mode 100644 lib/features/login/presentation/pages/create_account_page.dart create mode 100644 lib/features/login/presentation/pages/delete_account_page.dart create mode 100644 lib/features/login/presentation/pages/login_page.dart create mode 100644 lib/features/login/presentation/widgets/button.dart create mode 100644 lib/features/login/presentation/widgets/dialog_account.dart create mode 100644 lib/features/login/presentation/widgets/invisible_widget.dart create mode 100644 lib/features/login/presentation/widgets/set_initial_state.dart create mode 100644 lib/features/login/presentation/widgets/textfield.dart create mode 100644 lib/features/notes/data/datasources/note_api.dart create mode 100644 lib/features/notes/data/models/note_model.dart create mode 100644 lib/features/notes/data/models/notes_list_model.dart create mode 100644 lib/features/notes/data/models/notes_model.dart create mode 100644 lib/features/notes/data/repositories/note_repository_impl.dart create mode 100644 lib/features/notes/domain/entities/note_entitie.dart create mode 100644 lib/features/notes/domain/entities/notes_entitie.dart create mode 100644 lib/features/notes/domain/entities/notes_list_entitie.dart create mode 100644 lib/features/notes/domain/repositories/note_repository.dart create mode 100644 lib/features/notes/domain/usecases/add_note.dart create mode 100644 lib/features/notes/domain/usecases/change_note.dart create mode 100644 lib/features/notes/domain/usecases/delete_note.dart create mode 100644 lib/features/notes/domain/usecases/get_all_notes.dart create mode 100644 lib/features/notes/domain/usecases/get_note.dart create mode 100644 lib/features/notes/presentation/bloc/notes_bloc.dart create mode 100644 lib/features/notes/presentation/bloc/notes_event.dart create mode 100644 lib/features/notes/presentation/bloc/notes_state.dart create mode 100644 lib/features/notes/presentation/pages/markdown_editor/advanced_editor.dart create mode 100644 lib/features/notes/presentation/pages/note_viewer.dart create mode 100644 lib/features/notes/presentation/pages/notes_list_page.dart create mode 100644 lib/features/notes/presentation/widgets/advanced_editor_widgets/advanced_editor_bottom_appbar_button.dart create mode 100644 lib/features/notes/presentation/widgets/advanced_editor_widgets/advanced_editor_save_action_button.dart create mode 100644 lib/features/notes/presentation/widgets/advanced_editor_widgets/editor_textfield.dart create mode 100644 lib/features/notes/presentation/widgets/loading_display.dart create mode 100644 lib/features/notes/presentation/widgets/notes_card.dart create mode 100644 lib/features/notes/presentation/widgets/notes_list_view.dart create mode 100644 lib/features/notes/presentation/widgets/teXdocument.dart create mode 100644 lib/features/plot/data/datasources/Plot_api.dart create mode 100644 lib/features/plot/data/models/plot_filename_model.dart create mode 100644 lib/features/plot/data/repositories/plot_repository_impl.dart create mode 100644 lib/features/plot/domain/entities/plot_filename.dart create mode 100644 lib/features/plot/domain/repositories/plot_repository.dart create mode 100644 lib/features/plot/domain/usecases/get_beugungsmuster_plot.dart create mode 100644 lib/features/plot/presentation/bloc/beugungsmuster_plot_bloc.dart create mode 100644 lib/features/plot/presentation/bloc/beugungsmuster_plot_event.dart create mode 100644 lib/features/plot/presentation/bloc/beugungsmuster_plot_state.dart create mode 100644 lib/features/plot/presentation/pages/beugungsmusterplot_page.dart create mode 100644 lib/features/plot/presentation/widgets/image_display.dart create mode 100644 lib/features/plot/presentation/widgets/loading_display.dart create mode 100644 lib/features/plot/presentation/widgets/message_display.dart create mode 100644 lib/features/plot/presentation/widgets/plot_controls.dart create mode 100644 lib/features/plot/presentation/widgets/widgets.dart create mode 100644 lib/injection_container.dart create mode 100644 lib/main.dart create mode 100644 pubspec.lock create mode 100644 pubspec.yaml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c4c7ab6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,44 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +.dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies +.packages +.pub-cache/ +.pub/ +/build/ + +# Web related +lib/generated_plugin_registrant.dart + +# Symbolication related +app.*.symbols + +# Obfuscation related +app.*.map.json + +# Exceptions to above rules. +!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages +android/key.properties diff --git a/.metadata b/.metadata new file mode 100644 index 0000000..6ac2303 --- /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: f7a6a7906be96d2288f5d63a5a54c515a6e987fe + channel: stable + +project_type: app diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..0ad25db --- /dev/null +++ b/LICENSE @@ -0,0 +1,661 @@ + GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +our General Public Licenses are intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. + + A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. + + The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. + + An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing under +this license. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU Affero General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the +Program, your modified version must prominently offer all users +interacting with it remotely through a computer network (if your version +supports such interaction) an opportunity to receive the Corresponding +Source of your version by providing access to the Corresponding Source +from a network server at no charge, through some standard or customary +means of facilitating copying of software. This Corresponding Source +shall include the Corresponding Source for any work covered by version 3 +of the GNU General Public License that is incorporated pursuant to the +following paragraph. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the work with which it is combined will remain governed by version +3 of the GNU General Public License. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU Affero General Public License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU Affero General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU Affero General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU Affero General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If your software can interact with users remotely through a computer +network, you should also make sure that it provides a way for users to +get its source. For example, if your program is a web application, its +interface could display a "Source" link that leads users to an archive +of the code. There are many ways you could offer source, and different +solutions will be better for different programs; see section 13 for the +specific requirements. + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU AGPL, see +. diff --git a/README.md b/README.md new file mode 100644 index 0000000..be3026f --- /dev/null +++ b/README.md @@ -0,0 +1,48 @@ +# Physik LK APP +> Eine App die alle Themen für den Physik LK vom GSG Wetter nochmal zusammen fassen soll + +![stars][github-stars] +![issues][github-issues] +![License][github-license] + +## Artikel erstellen +Um zu erfahren, wie Artikel für die App erstellt werden, lies dir bitte die [Wiki][wiki] durch. Dort findest du alle Informationen zum erstellen eines Artikels und Beispiele für jeden Artikeltypen der unterstützt wird. + +## Changelog +* 1.1.2 + * Added: Intro Slider + * Added: Dark Blue Theme + * Changed: Light Theme update + * Changes: Dark Theme -> Material Dark Theme + * Fixed: Code fixes / cleanup +* 1.1.1 + * New Editor + * Markdown support +* 1.1.0 + * Added: Notizen + * Added: Login + * Added: Offline support + * Changed: Api interface changes implemented +* 1.0.0 + * Grundversion der App +## Markdown +Die App unterstützt die folgende Markdown syntax, diese kann in jedem Artikel und in allen Notizen verwendet werden: +| Aktion | Synatx | +|---------------------------------|-----------------------------------------------------| +| Text **fettgedruckt** schreiben | `**text der fettgedruckt werden soll**` | +| Text *kursiv* schreiben | `*text der kursiv geschrieben werden soll*` | +| Überschrift | `# Überschrift` | +| `Text als code` | ``` `Text der als code dargetellt werden soll` ``` | +| Unterstrich | --- | + +## Meta + +Falk Michaelis – [@BaseChip](https://twitter.com/BaseChip) – physik_app@falkmichaelis.eu + +Veröffentlicht unter der GNU General Public License 3 Lizenz. Sieh ``LICENSE`` für mehr informationen. + + +[github-stars]: https://img.shields.io/github/stars/BaseChip/App-Physik +[github-issues]: https://img.shields.io/github/issues-raw/BaseChip/App-Physik +[github-license]: https://img.shields.io/github/license/BaseChip/App-Physik +[wiki]: https://github.com/BaseChip/App-Physik/wiki diff --git a/android/.gitignore b/android/.gitignore new file mode 100644 index 0000000..bc2100d --- /dev/null +++ b/android/.gitignore @@ -0,0 +1,7 @@ +gradle-wrapper.jar +/.gradle +/captures/ +/gradlew +/gradlew.bat +/local.properties +GeneratedPluginRegistrant.java diff --git a/android/app/build.gradle b/android/app/build.gradle new file mode 100644 index 0000000..2f9f9e2 --- /dev/null +++ b/android/app/build.gradle @@ -0,0 +1,76 @@ +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" + +def keystoreProperties = new Properties() +def keystorePropertiesFile = rootProject.file('key.properties') +if (keystorePropertiesFile.exists()) { + keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) +} + +android { + compileSdkVersion 28 + + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } + + lintOptions { + disable 'InvalidPackage' + } + + defaultConfig { + applicationId "de.thebotdev.physik_lp_app" + minSdkVersion 16 + targetSdkVersion 28 + versionCode flutterVersionCode.toInteger() + versionName flutterVersionName + } + signingConfigs { + release { + keyAlias keystoreProperties['keyAlias'] + keyPassword keystoreProperties['keyPassword'] + storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null + storePassword keystoreProperties['storePassword'] + } + } + + buildTypes { + release { + // Signing with the debug keys for now, so `flutter run --release` works. + // flutter build appbundle --release --target-platform=android-arm64 + signingConfig signingConfigs.release + } + } +} + +flutter { + source '../..' +} + +dependencies { + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" +} diff --git a/android/app/key.jks b/android/app/key.jks new file mode 100644 index 0000000000000000000000000000000000000000..f7c40495683a446ff71ef78e32b6d6c602c23d83 GIT binary patch literal 2247 zcmcgt_fwOL63v$;5E6PQDqV`SFCfiOybzl7;tjpt2$ALuMXH8?D7}avUAmy4h@uj@ ziijX6MT#PVfC>Qw5ikKB-g$54{snJ#&JX9z&d$!+o!vdg9s>e_Ko0=?1Gqma55#v!1mVP367uuhV6D%(j%U zY2i1ION0K>{eVN?#rV>%tjjb+^ygi?LCnj%t+1Vvxm7jpd&kCbpMW+Y)=ukhUq3z0 z??e1lYNEUUJYl*)L8<*t4mk;6YZ1Pu6r6VoGu_C-jw2#Cdj0gx#<5k3wH?I?)Wt1R zkLkMO2Km_nil(=Q-C#Ww7sp*0$Dq4yPlx|>)R)8m-1wwZUpw9r>m?qL%_gBVOUkvi z&UPM+n;2ceg4SK3{^M?NN=na;wqe$o0nS=gn)%7ogrncUD!@L2Q=**mMJBnDxE$P& z_5`8UT(A@G5d}89AY9_`HVIsEd+wxZ#(o@~~K)SB%o-#S(FCHzFxEb`VNFQo_4(CZsw({Isr z2&W_3dhg%9x{2f*E|FTF&+Hr%UW`A*hhU{Pbt5y%w^WXt48CbmJZu>KoO*~2&i;3` zBS)Pth*e?Xzxpz()(8=(2ZS`zUG!Di9si)hg}Gy;+Ln$p=eE8@*!*y@=q{;UkS|%X zxkv7c>VikBr3Ghl^S}SF;AtjA8_{U(lqRh(3=4&HOb#;OP!*%n%!7NnhkO1->Q-7?vw zYPB61<<`fXU_WLy*Yeq4?Y1gKK>egp<*Z~`s#^3P1=-XLi9n6|{Uc3!XtS-$S zpm!t$D+-JCS?q5W(y;8(yE0V4_0YoI+}z-Ws-(&(wS~?Yk6OBvv{N_735pj27LVjy zo-D|P$2k7GX2&4eDp3=yd`(=e0tyC~}u_$ZI!;c1d$9`IFxx`3rlCPi5YTCQ& z#a`;ZOSpzM^>NQwzv=S&mwtwy&;`t@MyQ@*WwaLqs=N}=v0#2(wPJ@dv7ei7({6P> z({WyOh!B$<&=BB!gK(0w+{RhO0uy=g0T$-*xx=E^EAt}|dbXRTv2s#P?$m}X1p#cDefPjHG6v&Q*oq;3ypadfvC&=-eu<^mH z?1(rl$p4!i;zJWjp`j#-xSU;>A4ML=3v&O~Ir!Ke{744Dp#)O+|H`2Fpk@v@K~Ug# z0*nu1>=ocIZb|m>^CAV1LqKssv?>T{;=qGYS3BV>#HEVU1VIh(#D9hVcSAHl^52#m zybKr(;DUfOfCEYc07xo~l4saDYmXqoZm?5DBLAc(cCxGJSfmz4>alzdDUu1P?L)Nb zro3_VlHKOcimXWps-tE1O zBu%|Ux$wJo?pgv@8u@1<8b&UsPf4y2sWSJEe!q9|i@4MHk&QZke4xW_sVsHod%3W> zpjf*tYHLc&+KA69e<;GYwZx~yta%;HZp7^pSSeS~s(QwZ53*dD7^pscGF>Q~-8Jfr zY(dhLa**uU>+*thyTJ=TvaNefq8~Q)$Oz&0_6;oGzi{A@U|>@d*13;uPD-=`mfee0 zLi?`v4js22?A67PM|5-!*9(MhENC{Lyb2>xouy?;xs@dt@Zhb1RnZncV>OX{$&IjR ar@n;K*6pL8(=kmd(*wf9P{q_-`Tqb?;?NQR literal 0 HcmV?d00001 diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 0000000..387fef7 --- /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..15e1716 --- /dev/null +++ b/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/android/app/src/main/kotlin/com/example/physik_lp_app_rewrite/MainActivity.kt b/android/app/src/main/kotlin/com/example/physik_lp_app_rewrite/MainActivity.kt new file mode 100644 index 0000000..6282fcd --- /dev/null +++ b/android/app/src/main/kotlin/com/example/physik_lp_app_rewrite/MainActivity.kt @@ -0,0 +1,6 @@ +package com.example.physik_lp_app_rewrite + +import io.flutter.embedding.android.FlutterActivity + +class MainActivity: FlutterActivity() { +} 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..daedabde593b5309f4be91e33b2e3e363f0aae4a GIT binary patch literal 1191 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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..6c0c3f89231ccc468cb6d97297e19ddbc7e83352 GIT binary patch literal 2265 zcmb`Jdmt118po&Q5?e@^%g|C;dUK0pE@N2cHVmCyBKMP_q?lxq>+5EXKELnt`DI~U&|qm*X#fBKb~tbA zF3JUeA1Mh@T(F;O0sy4Q4z|{~_%hC9Vx&(Pv~%@rg!+j%^@X8ehJ}CZ8z|!4!?#zU zl@%v(42Q4FXEc(p&|Q@;Ih5kKItf@+(n{@ zO!ipR9taGM7~E*r%$xjr=5_f_ndw5=Lb0X0nrH9$*9QMeABLNdW~^1J>$!BGfM%d| zC=jXLMm&F4tWXLFlb5iCfii6&a#{NS%|(9_GAbDY`~;zwS#5b5%{3~${|vr1 z_JFa+60Cp^qTp%w^DII8gY2g5K|1+F4Z>eNG8A^Oy{Hye*mSzKa%UZcaV#N!xtx|v z5AT1k0PHp*lf2T?AdAJW2(P+4Yq)r{mis!MPE<-jjuoEwE$`~6pG?os6zgq2uYHJg zDVfl>P*v21WIm85!N~FEdAi^e4OM4z{6IM9Tch)e#3S(v6bSDZ zB^p%sXlz1*O|jz(=FoS8j*}h4yXL7!**`Syx=Sxpd6iVJs!4&BR1IcEW^vD55_l48 zYaHh?IB4SZVeT<{D|6|R@@X4*NG6IPfz#Smydn}+!IfKi)pD%C_}utRGiI9Thvr)QHKZyODyL&{Z#&A0EN50TEF|`F) z-XjEMiq(i*iJcxv=lU<_#5zdwxgYk@+@)Kl9%j>iQ(?jm=(Ozd*d;V+t!*LFD*1ca z5e@1`qI7MSMHzqI5z*JjnGDNR`>BFWdAyvZ(VEzm!($$7NS2E0xfqwUzmq84F)tf- z+w#=-k7{A5yY!?GWjCD%s%2X#E7>>PR4j7;MW=YbsW)2`RxYbshGuS8sT33>)5pGa z$IdVdU#^B{jH}t;QNMGSGfe!Du|nC{Z4UwBX+^eXnjWNmjfQ1qL7(=O^{O}%_z6P3 zOnMV(3MW?Q3r+3y&!DAzV{eQr1#IcicUcz#dg3hX_3fE9qG zn>-|z`k0Z6Y)Ccg$BrF)6Z-msTgXjv^$STgu6h>_o#)3BED+2t68M|EOa4Y36wR;V z>r;t)J)7FEDF-=0OV@J$iH53{`!&<92X+&sEe2#K%6dnr_%?mC{}UM3>&$wW6Rtuj4168T-hKoJUL+dC6%*DLqk|cyY7wm&Vv6zFPZGR4 zx5m$gdTCU5wi8+U?%N&?9rIZc(Zi;MCGAs6x)=-wMCl9aCbE9Y`6DV2F%Sl8aP!F! z<90g~Pcjqjq~yIWt5trO>=8qPu4o}T(Y6NYXO(`?BlnH*v-$!!BZSB)vy|0dgg$L^ ziaOEqJ!s?%4XQcOr1&#xTh0a*`1UO&0N(J~m+=a5|I;^x4kWWoZ`#-n$$>t*S$ewe zIVvFyJkWLe3i-`Rg+JJUWGAhGc#PIjes;HB0-AOvkwR>d&VVX-ER%ub>=W?W8 zQjhVtg3&AyZ$hV(8x~Gv8<5ZK$9?vO7Kn6cs+2KO``_^PpQKDbpfetT1hLH)i5r$X zrhplYx#i~Is}~SCU}<6W8i#l(@yBSHF0*%e9FXXI6j&Us%(L4n3u2aP4#nA=L%tfo4Sn8bxrH^tOC+F~ef~ZFl(u s3G^Q)H`H^T1Y&Mi|GxwmwYZk-m17abd!VZ(`mz8V>|AW?Z36E68`VHBX8-^I 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..56af229e132e6e40e3f1366ce28c81d7d2a9a240 GIT binary patch literal 3059 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 literal 0 HcmV?d00001 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..1f83a33 --- /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..387fef7 --- /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..3100ad2 --- /dev/null +++ b/android/build.gradle @@ -0,0 +1,31 @@ +buildscript { + ext.kotlin_version = '1.3.50' + repositories { + google() + jcenter() + } + + dependencies { + classpath 'com.android.tools.build:gradle:3.5.0' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + } +} + +allprojects { + repositories { + google() + jcenter() + } +} + +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..38c8d45 --- /dev/null +++ b/android/gradle.properties @@ -0,0 +1,4 @@ +org.gradle.jvmargs=-Xmx1536M +android.enableR8=true +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..296b146 --- /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-5.6.2-all.zip diff --git a/android/settings.gradle b/android/settings.gradle new file mode 100644 index 0000000..5a2f14f --- /dev/null +++ b/android/settings.gradle @@ -0,0 +1,15 @@ +include ':app' + +def flutterProjectRoot = rootProject.projectDir.parentFile.toPath() + +def plugins = new Properties() +def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins') +if (pluginsFile.exists()) { + pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) } +} + +plugins.each { name, path -> + def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile() + include ":$name" + project(":$name").projectDir = pluginDirectory +} diff --git a/assets/articel.png b/assets/articel.png new file mode 100644 index 0000000000000000000000000000000000000000..d31f9012662308484630311c85e9d9e33af57c0a GIT binary patch literal 264441 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≈GZ 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

xpQ=jE>(IupJT8<#|AM{mRj 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

O z&0b|}ju+WF=<&{rjb3@|g&`~;$J*VvFj%ayop~~J0B7G9yj_6`0;?srhGVijaiF1b zQWOv#ATbNtH?{$`IV zw{^;(R&J2Wi-97L3LF)v-P{!i#f2v@Xj`Ab2xm^7pP3S)J>|`mXaXHRmL*H)1v&`o zJ|#)1f1iY^y6*vQ4b1?2m)-C&Y4-vvvN{HAF@1*B$HDf~*Y2DJ{f-a4JJud3Qm`Ig z#bm{RB?XS`nglAC$7qMDZLIqnp3k3peR%pBwWEJ75YNe*8P9OOkQnlr=Jx+D)5E+o zzC0&nY>`|I`#s0G(kIik{ClLdGLWkIKyGE?_`UI@kMeTc-H%#xKUg`Kyq>c`CPNQa zeD+cy;*?V#Kl%hf;;v1Y*Nm}kgx033*bLs_2Yt37-wWk=ZuW4BFS!s3eEDZ8!~-=) zr)co~9T~)|2^t}n?xc<&TASD^%xrk@wUXGnoq=meRd4{%kcNpBF`0th|KD_B%}JP- zfRbp_h9@YQPabd7kyV&!!=M*jv|EGwZmb`pSD37i0Ycf7jPJ=lOy~%!n2w-lU1A+< z#mY^2rGagJ%`S{?c&DO}H^O~q{&$U&ZgM4#a7*hjyuhYVyBYoLX10|Mm0gLoyNHJY zi82|~T(ZUs>8NRI(|Og9T^>ApBL)n}sUJ-R3?1)!shrlU7dr37MZaWTo=ojhjP*v_ z9Hr3J^+K(M);<;@CF}BfW^$78f3i!lsq*O~9c)RjVKxpM-}NIoUa6iZS&998lW4-3 z{&1LA_2!CG5G+wU`VX^pc`K4|690-N7}Wn{Q~19t_@MrcnaCp-SK}JZWyRS+nVdiC z&UaHw9AvMXvigAgAQh&CpiH&^osuPW)wB6H0n6*OQM{?sj1IyQ5HcuffBDGbHvRzY zI(tPRydYp}cZTTm;Y0`{`cIJn7!7l3Ov27L%o1vMG}moLO&$yqYZ^t#6;^Lgzn?kA zAtxrb+F1;3@giKmSNctLXvGGMB6|LKKlir=&zhn`iO&5jA*?hKwRyf|}F^!lgc zgcL8r#!2^`pvpc&m|<@dl?Ud!gSpJ!%aB%Io9Gldy zW?(zR`(S0J7X8y}rKx=RXTbyaHupxD^XdsILG2hxtq_hI5dj}Q=v~dd_bl?AeB0@h zZ8tC9{9@+YBG`82{1v`_(#iJmHW6l1Rc+27=}RZpYFW+pBi>27=jSD_uOB-W&e9Jx z=G)l1Z!RC$qCH(+(tOS&!98;l?-Hq4vQQliPqrFC+cP*OBX>tvl8+m1sNtJLYhn>h z*o_A-HbyRNO>h85eRf9CVlC=g=gnBToVxE_lI0Cb7t9%i73<`>-Mqf?D@IQg%iz8; zx1UU5C*qW~z3q#rRJuJQIc4R{k~imZ&yVYhQb(FRl*5;n-{+!6Pwv}KuO%M(au3Cj z)0OnLs)_;cOkV@(zOHV9C23`4B{Gczm6{}G?`*<;)4k@nW&7sa`;C0gCniPs2|Jay z5z1m&ww^PNJa5_HB44->F8D(h%)KcU_m`uOAcQUR>=L1^l0GwoEw5^Wt(flN=TpYB zEjCq?3)??;F8gsr%12ezEW9GwI|a#X>JPi-J5avB;O^9ZnooAOY%Ly*N_KsxOQM>ZdRO`6_=-sm6pH&@EMFTL7}!zw*$Xnd$F8{P!(gpG)EgaL;cXGu zIxB9Op6}Y8bo-goR_5)BZ%8%T-8G75ka@uVuqHD+t{8yqK>V804V>i`j=06Aj+8HC zUXqH^JF+dAMGxByEwXW60A?p&WE-+6A6@voR86LqFTJ3igZfidlo}n%DP3HsXx4l?$5>;YeVe>W)tE)^D~w*o9xzMqv+7Um z1qPn>dgZgwMwwS!yh61*eS#2HqWeMXEbqecI=6gb+T^9rt7y zSKqIlb0E?#8ZaO^x&pY-d^$$toS}Y2OZdRZqp8_YD+U*uDi9Ee{*bcu`)S60~ zagClm<{Ox5J8rqz>8@yzy9q}ij^#HNNc$L}l(_Xm2lEsoN#R-C%GR!?S@ua=;(obp zimO9*mnm+2;Vf#DY=0xodJXcHaC*#zC5y7&@2dJlhXI+sp<#+8iJqRmoZQ1e5V^~P zM-&Lb_2VRAK1clbp5N3eQgXv@qnSKH90YTA+i8`Anuhlb;)OB?uBo|o?JnqJe_F8C z+vIR`s!Z*xfkk||FeT>l4H^4WJ^op=k7j3}6${Jbi@_Rq?9?w!i#Au==IkG;$F%Q%3UES=p5EUm z$}B&S(a&L}=Cw=?O~rtg$D=`J(z-N`sN`fv>b~h(`v#Uq=RfioFI`8U{ckk)6-a4l zt~`drKCfaHW}9NOpTLEX$EjH>2Qz7}ETv(1Lxi%G}jDEU$Y;W&>erWAK(taX^7rL>PZbk+-y<*84 zb(&*?X{bf?{bsLMlHGyp#7_x8qiA0^4im3Ep}k!` zCH^91?|84e6i&qmdwjwCe(=r>0p%ikANIF9_TW+^r5+vUZ3FKilEj76(E`z@)SgpU zq+r+Jg1%obXAf9<*dj06EM2s(#@HI5J6XDX5UR~1i8CFnQ__eUQ&GJ5`DwNjE>`@N zRDFyL45+z-_l!b0MMYr}Uk3f(f69C~SvHQgM(F<5yhKKJy8n#GYagSzP zZO@MvkVdStUg~6>kVgDjKaDw{uTudfhm{R;ijJn{SnF=&c* z#Nhv;INZDVTBq5irDFW_NF(+r98*<+;HiBU%|h50##f3{k%SSef1YMTSb*P&ljE)2 ztIUClPqIq>xZD+~+TT)D2%t^vx|BX%d~tm+>W}H(XmwTP=!v%9ZFte6bJL{H}HGWt+63H{A6taRBTOQE4oX~Ng$D78m)RbbksI`l!7khnN&8s1H-@_EPOir;ly^UR<-2T| zG5b(zJ~4(6@mHJGDJPdv@MAy@Q7|Th2$z#Ny%%n zL8mpQ18J(6u|0FNJo}rQp&oIGgMmZ+G*>U7qBoj#b=zRd0>7Eu6Cvo$cit~N;W~6j z2Q&!wU1rhtdd27IALgoGFu&xDAh-2kB4Hxp*J(k=Cz&FV7huwx=M^4jzx|_WeOvxosl-`b+Ak}O~n(ltTw5qjEqdo@QSOe z>y&SzgFRQ%Bm3IVD6Ehi!dZ%m@{)Pnz3YB@)ivx79VhoMOcxZouS{eeQ_a%>+OAO zkMkr6&}M%a1eelk>X@h%XuVR`z) zC)~NMGWQ;^aOKzFKr&{P!e#wbe_O?3HgHuXSpo16RJx78EbB#xsnMjR^1VT8P{nS9qOY{=6m*JfdVBukS)lu3;JOFboJ_#*X->%~Da<-NHd&q9(?&8Y*PXZ`Ybp={k-7kimL_ZIB7EN_7O%X|RE2i4x;=_ZSYn{fq9!81xK4&sW zMOmkeAEN)~=0l+X?pgO_JjRfm_srTE>!5+%@-Jc?f9al*xf9a2BhY~wrP#NAa(MHI zgnq}vnzg@*3v)oT12{$oCGHb@Wo7rhUK#1>b+Qb3e5~f(v~2DbN#9YtEBoeDWOy>% zQ2%qr!S+OzMSpkR%OIS3KKE3l=~t_XKQDmgON7g)1vOKhmw)|5=APz9Xkxj%zhd;M|7mKrV8hYM;lw6fzr z{%-fXwpj{`+6l90pO=-Sk-9S`_Z7@-k~GQv!ucN&Q9%BGM)!AxD`%NpN(!Z7ejq#| zZ4#-GyS*;~VhRMXs`Er)#jvC=KHaLxTY94L@NWT%%NI9edtgXuSeHUboSh&eVFYaW z-8*-j#^&dr-{s;O`gwSG$aDSnVtGo6WcjSKlT)e2LQ#EbK4!NgKR>_TK+OH|O0Xc| z_gQ>nk1ntH{oqq-S$p?PhU#u94VqSNCd~Dfw?NScSBf<1KO(Ox?*5#!Ezo1e8szYT z{h#2&bi2Gki@1~vIy3M-E_<4vFa0N01fG3)P3pH=UC~&wT&)?3A$>ut_ziJ~>bUKI z_cSyNJuGjf5O~QKH)U_>Td(XKOb6*P6r5=+;|n9yrNSDc$`#3_c+9r{h#u8mF4Hqo zAJWv;e$-r9Q4tjq8k$%Jmh|9a%5MG=x;iE0%i8wHbPYErrv`$|Q(iu}k^1i4yEP|8 z!}l?^6L#>TOj`|8a9Q-?(+KM*{p2KcJvHxguFurva&~aZ_Xv@}aYnO=<-KL$QiWPH zOBeoK8*=CB#cNO!+qqoSFl!dAeKt+eCVBKVDP|>q@C$i{+JC1vuv`C@2c6v+*{eSF zW*e1yWvDoH+nVNbvZ8&=P91e6|I>?}77ko^R~ZCux`pykif7TOmkU~32=`QKzvctU zVj%tAkvp}&zmK|}m_6~-JYA4_ay!FSf#FvB8&E*HI33-z4|jbbpNtsW8KKBy#pW(r zG2HAND$||R!c;eT#v{(xwJc0k5>dm4GijPPVl#OSyd3d&oho~C8|@Fg0McwejVBoW z?>weGUZ};W&W{{4^0T*oWqBu6eM+SJUo8OPPT+Udhw5~V_0FzX-;sPq{;TOhmh<7F z&#*+`xhReG5{*G_y+IKHP&Y|qTH04)>E#^c%;LDKqceu~=+Ud>`F!(O@;?4RV{MR5 zDSUXZOQ#WI+~w7-3AcFe!two0pp~bgeeG43@<-EhoU20*{#!wXApmvhBEOJgc%w)T zIM3VrgzRE8Jl9(fX?b6v(2wI&-V_fB0qQEKx;Gu!Rg-@2$t)jly_dsEet^^X69tAQ z?w6@X17e^ccWE|boO5r>JO|QT|DBqRL{sFxP$K`j0| z$!Qf!^MfTy%17>9oTSOwH5bB<=&kn9Ku+modB$!Zf+{lWo60=(%T&BXeIi&v9eBEd zKhB11wX(7j^IIGaZyx=1UerWOq;k{qEn#M*fRn2qWVk|=!7Yzfd;M}x!(7D1Bvw;m zhPvyr`~~v~LDzR#h|!&X>m#R?41h~Cb#>)4Gc(P~$8)NxMk27Ai$$M^wY=GN=kKp{x>SBT)$VAZI1^JZuFVlq6H zhnPwjpj3kSec1M%QJLJj#1TZ&7N2A15!NKdjMP^1on7jboyv|lrUlIBO$qXfDrv3o z;nKXLm{0O?`?`~<;GK*@F){LGGBQ9&KYc71U)Y?ypZU+-C^-Z3DFp@BFE&fzU0C4> zmq-p)zzvZHKkXC6Ks58Q+amqzS82RueM3XS`o_kvXj|*Q_D?y7 zAH&aCtVLhzluPtTb|bCZ^X=fOq`Gnehs+u0A+dp!1347fZfDUNE79hdGK-$u&8xv? z_Z3icS6#w=FJH3O^uAwd*ty|jXE2t25YiWRgh?G{NtuE6N#r%N%4pB>K0PcSbw-H;Dl8 zQ?D$5w&VhnrzE+FJ~fxytsF$3AI+1MW5x**-yJLI8{}#0KRjx%dj8}d9L284!b3*mXnng z2!I1E4b2$56}l{HsY+He<3Q6A@y|i^ok`nEfr?M^3_iKp^zY~P;4|!mxzV&Zjr=*% z7xWNchuTV9aCzahJPra-Lu*8&hV@(H3tn$eS2`~)YKEvNZ+O_%Sj*-hB}u%DB@t^- z$-gQs6em|P-3doZ8-l(rL-*0?Ra#nF%&$U_-zA<2Hn>&})j6`@8~b$K&EMYwhEM!C zGd$TuXmgeTE>5~KD zBjpWZDc957ph?haZP+E|UmA<*J!0Rz^91j?xmV+F21)PuVN> zuEH!rgg;I~)&K7LhKkAAtNhM!mDqb_rgh7vRUW2ykx0quS}Q$KWDdpjN|Ns3F8fd- z#1WuWUK{D_+fpy=?C#2|(O_PT>)Ux8pTZORbRpv8G(NBSlh<(q5v^T$#gr^rt<9TI0)O9;nq)QONV}^VA&K9M;90?a(U&P9(H=QD10vYqm)4L z=BkHxLtP8EX_dFqeJ`XWq1JZI4!S<=8u14!$~g)U&o`b-(pXUNljY~9n3(dQPNU4U zzQlBu^4ZIY`=2YIblDxE<;aPxvLAOTkAcrviS0dY4!>t(#s~6vwP2>r0Pp+nqc{N; z1_p+lva+(tzJ{8b*u1>FJq$Tdea!}uZ`FCWb9IjGZCLTq2!|w`7cArVJ^}vUnK-w* zfOW9N>xeKVxnJSG9&!3$-eWik^=rkB{7Wwl+N8CG@yX)->W?o$yMQBpggjt+)-oW?3KK zJalFs`rAbjkOZEwUdGK2mQ*Nci2pd@^1{)jO^D?^n^e@Dn;dWB1oO(%@D}#H3pH!) zD)?cHkc#4U@FP>jn%ji_y#;nELea+hdQMuJUr0#E*14Zz(!1;HHkf;BeKqzr=a&Du zHvZS1cqv+pFaNL=(@vpg7TseV5^Dm829~YuMUq35euRo;T{i4-<|xU5HHKa)v#6s1 zN0k&Sk0lQ*4YKPK3F^EKapRHkF<6)~rq_LP460umjZ=;a#2O>PD;N`AFD@P*o^|Df zB7q@gADDMUwHTV4-}1V)(p_cX5lom_Eg0FJ11@K;$XfWsOUU-F=T>^)X`9J=txHwL ziNi-fNKRs)nLQFI@0>)8VX>fvX*#l{sMHZT0UqJKE@rY3*9r@h?k zqLEVcegv8pP_}7N>DuxCu1Zcvj7Gb{s54!}d1aqd9L)z9^5s4&ObVr_!>>Q5LX?!z zh=dxCzf?cr#C|4(nM)`tu~W*RU|EL-O04QGr2uV&``I0E2Wn1=ptY@2#CQwMn&G0R z9fNcXqEpF7D9*vkPx1r@w1uljF=FVYNphEc@$r7`ChyOL6i@gRZh4w#C70ve@X(N| zuI|;Pl@)B=fI;zOx!5nVEe0rD|I#{y@c!qA2VvK6-Rm2bx7B>6%%b&%MXRpi$S44) zW`yq6|CQm zp8LEojz7KL1@X9ZJVP_|$-e+>D&JbKp+*J=c>^7^KtJ9S`C&K%g;(%s#g5Pn@Z# zx;O8Jl*QIRg1Dns%zhk=fCp&Dc_zw7vC{t>;2sXMjs6HQ1JujYvpGrcWseQ;&%E1wz7GCfqlEJOq`;RJPX6<&InTh=>TNxm9l z)4m@;2PiuvgWw^oa^jSvJ+bAR=bzu(rM#6g_H!+cY!xu1=Mobh$sGEPwF@wIP`C;aVsEm`;{h{Gew2 zR^a8@#=zyNg~u{l`R$PS=*!vDAwK;enj!Izvu2Fg-})#hS>!${T!?#U9SZ)Y%W5A| zHD8Hjh^SX9WYO)nRCU77!#sb_iNrzCjoo5^;A;ZDV}Y`HDlN*5G}8vlu$Emd`(}kX z^2P1^Y|A_(^ca)Duf{`3bNl zte}*qvDuWmJb^!r%aM|+>vB7;?Qimo0 zr2fqoV<_cZA+Imb`lyHPF>f{&UDqK-;Wbh?GEX;oeh-gsh+cRx%a6o1Y1lXOnTi8v z8*B^8e_03^Z%y2A5LB572nZaSe(x3(6l`-Em4k@k;_qhBMdvI$9E*#$BStAK*63-& z51Kl-8jC?xwj$Qblj02xy(#mZGn5Vh%5Z-FRz~hLv-N9^lqQ1z6IJn=t*j$Uf7lw= zg0QWDuoqkkq3iC+j{HGU>5Od!NM`R0vDK&e7s>QeP*9Aw3Xhd5$s%t}M0fl2x(w-- zUW7{Kl80i1ndoY2v0)*1BShO=RSbLOF)3y}>WWrT`F46a%G6&$R&Bk;HXYdgTIWF@ zmm?@D9X-9?cW^DmJv^|j470wJc>*9y`9cgy-wERUM{NA~%KGj`v0b*4HFeqFixC(5 z(BJ#y*hvvbt&p%xr(kOYx!yZY=>@s>W@z>tR)UQ5!AYZ>M0TN_-sC=0VsZI^)YIBJ z_a8=k@flhWiG@|J{c2i!8=#_VRpN**Z$s*SS{(9tkI(s~+!eRQRS z-r^k^D=>pwWWvWjbA!9v6U9#vvPO z5^kdWJhT_vlvcBLXw(@C3k4{Q&*dcpWrW|jzlfvrTN=fS!Mc0>O|FO_J=FMv?nPAoCyPP)jd{nM#zYDyA&=T9}Z6SIKAD#;l}k2Ou;Q-d!m zH=-@xFCb41m}nefsVXJx-oSw)p}9gfMk_15cSP||e^r4uwLaDh5`(J%_Wb^_j#QL9 zUzdb(Cn(G~-VVguFrkrn+)?vpfIzdZO$GUDZRlEnF{s=92ZoJ-G@u@{pzaZ4OcMUI zMSb3sdZnS`wbM4gtBv-o??`TU!NNG4M2zN3GZ7I3KiYQT0ZCor36uv#8B%n#w8mR^ z0eHgjQHgGCYKWk)%0XMjwvlU1bDO^VLS0$Hdr4I?3I`b|#NaxcO1B%*m)d%Or&w<<3}s!W z_DmIIdHMyUhH&syAb%WC0D~6|0Oj)8el``>;Os()Ck$R3&3=Cy)LdEq`F;94s12QF zexy(E#LEYD_V{Vp$jwfuUFLY zP{=m_0Ex!^rn^XBbT@=91IfwL=lMPpxNfWEG4eh8GV6NmycW{Ih1OhndJ>Tl1digE z0fqJY?=1Fzr8%?)caFOCr|+(m2Q7p#@ZSqQeeit4f!q7q&5#?}6~&j<9t??Aym1we zDVDcD^XBk2i`DqTQ331t`O8pP5+;VF$FGfab*-s;6%-U|TZLEihG~azQ_nGYE8`+1 zYvTZzySiC%u`OU?954&vA~v?RxdjF9KuFGA#q;KFf2TE^Ft!ec(6FsRjm*ll=du*EXj3)QTg}KNE&l;ez2sB4h_8saw=gJ)Q(om?_o6_C_RVxz%jUQ zlq4~;({nMqxH&7UjU~=~Mk`fjvfWX&)wWlCqsb#mMDQKhdfMn!mfqC;0QQ`v9VwtL z=funwD%;ySI0!n8K7?{e-`PkGLq^aS-#W6~=>@ICO9EkRZwJb6mm6d}(kHPx3o))1 zTgkJxqH;tUDzOcN(w*UT?>wztudj4dc>0W7{aa4u3 zwTG=xd!=?RgI-hFtZj-V5Kc36H=Wqq+1Y6>?5Q-dwP}5-CS8bME}hlz8mPiJhHKvS z6g?=DK!MSd+g52Cv*5jYG6o<{c)Rm>BYV$=z4e>9b*oVyle!4!z z_+)t@vht{mPN$zcleg7ih5tL0+edY{hB*|A-tM>HP&D0~0;totnp@-|Ca>n?$U$@aOs{&YeT~n%diQdtD>fIxo}} znzR2!8iTh{DZ=evU7WU0ozdKLj}8I86k|R9Go&CPwBoA=?@+VCa*U(_95LlC-gE_d ztYSQi1UMgb5wF`Y$pNKd3s<3LIyXrL^k$8!eY{(DR<{a|Id%24xs^9Dy|;?13?P4+ z>G9*Qx1T6n*cfYf2_jY=%tPUpf;>yq-l?8RQ=qNxo5T&(yIvH15NCDWOjec*oI|C0 zDgaaEv&Qwisbi19e_f@-EE5%}3|c>$hy}SI>D`c!bJ^0nJr2{AAi~}jx$%g+nYC9# zEsDN&BZYVrWZ+)oH=peKTI@DM)nD>Om<^K*Ul*m{s*u9_Dw4iS5XKT9Ea#qo(j(Yb z-jjGw-0AK#>y;jsRS!QIg3O(lPfiOY&u%=;sl=OLoTld9-2Fw3NcCL* z<5ArA0D@Q+D*w~q-87`Uk-G9~W3qYGLN132j^IiHVQB6p$@E0jqe@FR?3FlrIy!Yg zpeBRjb^b833-lyHRJxuYH@-@72cLu6S}O8~DyI~BAe$YNEU(DeZJyp>n+1Y4%DsI; zBttty-ovh`sQvE%C>`zPvzd3Z)HPoUdc}5|XWWYaX>t!JU}q@9D*G@?6igHqE>$;N zbf5Ek9ZM0OLJ)VAVi-UZJb}!!iRessB#VoRs>mb1fB!z^%j6RI{?=&jeyuDDJJF;3 z_KG|xEhwBX-#MNzu75*pGpMC11NOJWS_5jeES9p5A=z10%clfXq0Qg(y@una{W*}@ zb8K;G={nSW*uXmy?2oBi0|}r5zotU{*o0tDK~e~XAyhFOmMC>qqftosxNv7x9@Ua$ z#7svce=qoISdgBm{zXye=cl|_r4g$T9gLIS7cY5DI65I=3}Gq^O-f93^n?t!noqVQ zsp!9;PR%0tuK4cxU@4{HW@<9iIV*geI(4?o~8{oF@R~ydqC8 z1<@smIQf2~hV=$^|J%3wQ|3rf*OQC(_Om0La$QU&HNwdBEUU}Iw`UpPHaC%QX~Qe5 zVoC75fb~}n?D$491{r7xZuBXfAp_>0iYM~DQZ2_0H;r?+(HAjzo}~;8)yH`3?r2Za z;9*^8hyrSsjJo+{0s;F=9+W|_uZG9a*Y|L;W-l?6TYeAr&a*`pve&kAs**##t<%tS z+rMC37quIaMEPDN{kl4zS6?=Lw@Lb)d)!^ysv9XyRc|vATtcY6qc2z0Llo|B;1vg% zC@h`Tc_Q~|_*%BEC`$tQy;lQw2&lL&G z5tfEl_8{r)QBwWUS;!GWIYRgCx1K-PyTCmzGPOXP1HGe@`k-n#V=y!{OIPWXOzkJQ6N}F5Q-3KsQ8G=$qdq3bjU_=GLXm`-6YsA>VWXa+ zFEliC6TJDS-ynl7>(_qF9h011wW(b_<2>oso0c`OVaCauo!WfVzk`JzWvo>;?RDm3 z(0*{jz9ps!O9S}JlQp)pa=y;C= zuQ^&-t^T8xV;YL693I+P6R|-k;|(*mm=JLe+R@|T633lu zq+GvJ!1&X2$`yKLK$13%3+$n+#p=~ZH!azn!gW%pAU{NmSKUes7n0hFUw)=sBQDAS-u(*r?_$a@z71SCOiW*#0M z;8{9z6^#4;v;gLrjYtTR%82Bc#v>0x^m@=*2rXP9TmI_EsLqz?Ob{y)qA>W5BQ$g8 zdd@sp=DrC)sM+2r3=DGtoCxDFe5;NfEIH*|1l@-C*8F|QvkOxH^&b<*iIMEVDe}^F z18#p)Zhos8cl(n(;lb%j;oa`yLj!An^+t%Z`=($}K=jOOlVF({-;eHmFWRGl9ljEC>WcKv}kvWF1U>CCq_=c$#racl`+0?+|nM|BB zK4`JarLqzgs838{ZWXG>pj1U zh);OuT{P(kTjJpYzQuoM*Jx||+z|9}of7t5uI`NOr>;duObp47kkQg(Cnep5HK|f# zzny27<|Y)KX{@>*(Fjk4(VX-)5@+IbKvUyHMGzM#}bHG68RiYXxs~-&Fp*gIJ7dlKIOb? z(RZ96R+wxZ`fSK!ku}X-MN#g=V67D)vFtU2aBbPVSEDqA60Jx4t4we zk89P2N+o-dB%vb89wK}8vQ1?tWM9UZHYC{+vXh;d?Ad0X7JH0+>?+IH#$=fpX3Y5C zZ`J4f`*&SWjqCDo-uKyF=XK7x-_+k5BTZXpfs}g=4-tjC-|cjw1(i_+8>3``bV{UL z>hmMgQc`yS-aC2flx(F!y`1XWr0iLdNC1~OqWO%f#(8OEpkT)O+BNcII3Jj`(h#6x zJ}ss~8n#zEZ=vtW5u1gM)Tu80!I!VB0E}_2QTmZizE8zCW&vE^qB2tHqSVM}9`&A~ zN6)p>_S+S=hXdpB3JHzw zfZ|B5Nl@AwS{mRhM{C^6Www*7_s*r6aY6ien0L2ApdkQ34XP4=Lbh#7E_JT&FhxP2 zy13W@qsJRa8!WLAQgs89aCuF}AzMs5;3W8D?y070Z?E zNS@uK8887tIqql)nZi92lUslTCude>Wh#g?{JT|gVD=Wu=hnL;cgiuylNuU$Mr*joqPiPE{h!rsDIwYk z_ZoaA1ogcFd=s5rqqJ{BjFVPqJe|6p_x^&}Czlk+CM;flv~BU^h{{6q+66qm{6A?| z>PdYfH~Q#USwCrc;^VH>YfD~yiGovxL(f&r-adTjgk8w(3Ngn@*lj<${;T2BZ89Td zYp2G2mgT~C?{hH!(`Inln^ZFB(^yrz*R_4kjETymPsI~3HP z)vp{Q+IiGxjSYhjP{8tz{(Xo7caQ*N;NA0Okke{ z)tw^!`zau7x@84=(iO2uk^#t#nT`JeM!FF!&g@=J-jUT;Ky1)_`Pr5J!h|J>Pc6cC zH~{+P>KnbmxxQTX9L#o&gq?Db9?`r)BZQ+(ShEZn>QT zRpW`ZvGF(F{?CfWCqls8rUhVj1~7rNvGhie#^|Zz4{m?o3yzwx`cs4MjIZT@l>>HT zA;oM0JmGr#mgba*?hE?-lVJm!vy8jL%wv>{SFB z_KOdzjSb#z|0uPC#C-H8*fxP9Hvh2pKb!da-hn@>I0G^J_~ue=Hmc5UV$S_ZI_yrX zBE=&m=33k%VZY;66Z#<L?LHv3NW{Vpbew2AUEanUldm_UZfP+-PSYSRH zEaARAnkuoVS;m*zKtg{|gJg|>guYvDQ~TGD1JRpsKCi+H374mib>dmv1NT!~Kb<&~ z?wIu>{M4aHeY4!om3g*a3Dl!{(Gygldvk>rEy3LytNUL)$aWe%#F2im(T|meZ|3a4 zovR1~dprkiT7ENs>At~s={^RjOa$+il}ZK~8H`HT?ve9fbH_^gos*(8$ImtnmqpT; z`H{aoxxAKYkIAch&<~#4^z7TPaWod$9=JQ&V-&b}?r|#eN8PN*gB;Em{;)GPsFT?t5qx>G6 z#Oyj3>$TM3TbxGcD_(>@528D%v>Q7&zQtQ+&OH6ImdfUS7PEuQzI1zlg&B;WGI6Ip z0UiOs;bB!dcVmMSaL0*J@)9UiK#-m%K^cUQ2bHYp=9sn_X%+RFu-}9CqCdjevO8)Q z6QM^Df2ox|`_<}oC{;>IdJXn}HiJ#a`qW)8H8BBoI`hBX4r1>c^)YvN=%CHF5 z&ghl-Y3?hbp&R@BxEla}^wT&-@#3%+kvKVb=XQUfNOXF-jSu|YgI*gFv#1$P94^?L#nAugtJ_|XCT@q+gkj6o^~j{y47peQ-enfAM)m@xW@ z`Bt>oCZ%`9>hXMg{xB-6&1S3$y0ubS=EZqi2D9H;u7x`hRY~wiyGeju$-2@|A@m$g zCtKtnwvpgb%H7<$0-y%Mlcb%GC6rZxK_^8H9?nD+#jGpirCKs!P1pOIYk6JLSRZ0c6spIXt_=ZJVK`E z@#DvXIh@KSX2q3N5u8b>i0A*F!(;2$4@o_a=CP_n3IN;XtE>;y$_?Wi8BhopRM-6^ zdYgZNU+ZUhk^-6-;$T|G!-c4JXJKJG(j$NS2q(WjhNqD>yo6ZD5>>%|kF7O%86qdQ2-8}Zu8W$T?)#s|BoyU@k@o_GLabO=Cp`YGIL=fq0pq~W`oG~H0 zcvQ%|oTH5S?3}!x+Ife`AL8<=X-;M6P6hF&R47^A4W2b7J%X&16t+fKA+lpF*%XXS|C@ZVndN$w*mcu+sk>wj>&W4;E9Ed!KNH#5Ow&^V=!D{F#1=8$-)wl6VE* z4qputzhrHP^E$K2`?{^5f!?NmUlILyCe0i5DOdA!2G6Oz4%a_FLmKbOz{Q?i%3w2t zkhVfYNCVU^`Fz>?JJ_!!a(2r>?UM7m*Mpg3Si@$4UoR{y3}J^0psMCH&&}sy%y*JH zXZzt4p6j;TiW{Vw$ud|($|EOdXkg0>3Z->I?Lc_HEY5|FR@=ox%N_^&p|`0tuXPk> z$XT6%Z}#6K2Q+g7yYCfJV*_~=%$%72o(rn;GDrh+se{@9mG)gyCaT|PyT6K1G&$1u zAi&0wuPDvos|hq)&j&W%gkST1H_Ea77V@BVN4%LuI=~ zJICizZ)pP_QZ{&@(uin5|87sCeAbfK)RB^w*85p%vLo*KtHX8A>RXSH>`l-AJMyW` zHS|e6j@C!gDHdi~@QO6m^|QgBrECT*on>pxDlX6WhqgGjK1Q0TeA8@8@*a)PocwC` z!a7hY%GCV*eC($S?OYssaoOsI-&*f;i8B}UqV8-fCa1OYANh(#`0Sz4cL(n5a;iO9 zeis!w3&lzklMshw$;|~92WVZ)wvAn{(S72LF!=L@ulR4V>AlSS zHh1UM!NXb1Im%>Z0BsWXNp609FjNBp1-48I)PK_5JJ%Tc8WB3Xxw#3=^8>J+bKwx} z2E5)*nwy1>Px;~F7e<)q=_O8p&~E8#*<$v~d`hfWhiFRwy|J2ucL2}SpO~eYMDdK) z&V;V9l*+^TiFwrBwyzkzU`G}JZ~C_2Iq3lC9Vf62R2|}dfsgrmZy(= z2MP{0MaH+E6gAz~!hmohd=4AJ!oc=kt(qDVYn2UE9P-b)bH2lC4|m*A0x+nC9mLj_ zf5GWf@Oqbp9!Gmr+6}BC-v2p!FMkd+X)@))VFZ@+YWC^050AgSVprbx^FjAq`1)F` zB`zxBWR_p88@Zo>kkD>_|67Dp>Z*ABGaIoJ*UvtkzTz>>AsHL05hdug;ke3q<5lRs zTitiI?{I-Ab_VuHW|AK@3trLs@&R!<1Iri=o!Dvo9LtnLE5J1zyAbG)et!JdZv%Q_ zmLSI)jJ>=~wrZG_u<8nCa8dUiqw6nI&w+>fapl~(b6euQ4;wqJ?uSw@U%f%wPkFa@ z1X==^GXH3^Yxt3L{vo@&A*GFfA;rfKosz^=N5YsBD{~kao^hNP^s?2FhLa{fmX8&AQsT5ujHunh@M7jpZK&XOPr(R9zWLQ0>C%7)*C*yR5Fn87{ z{DvK2D1#1e=6Uj>+*FJ#VmK6PmntMliz9kEA0K zJbTmMixrAg3Yp||9^7uVDu(pyt-nM33rO~dCoHkmwg`6bhg@)!ZL;BqciGan+K8>S zsGGcCqme>!pJqz|J7-4ReA#Ee(k58t1Ao~XT2D@mc(7i&zkOt`M@X__sO7z+x_P-s zP`fbzmiaN7z^Z6N8)U+)hAyz$E4JWKnV$*HqyM{1tvI3bT;nwU2JxZtWg7k@`6r+t zGF<+QOX=>CHBE*`8~Pt%;XI}c=IRk>@}fJY0?9A``-}Dxe&Vjhtr|311>)-ES_TbW z((~$xmieib5tTxOqpq43syF7tE9HJ7J#d$ylr(;HCnbG+4zxWS_y#V&+Z9ZOWR;0c zUSTWl_L;8brH<^URv=tjB^+&|KmP<{(Qj)43tb2{w;ZFp;N2Cw*BKC#^5s{b$T{$W zk@J;Gcq=Ymjo|F_)k=5;sZhQHQSWJczRqKNTggAh6P2WhkAjx`$=HiaO0o|3~# zxT8ChBy+oDRlJDnu`TImKo@H(SB4ry0BO_)WFcx($0hve-2{Cx{?r^f36y;X{(^9t zqc)WW9_q?SvfJ#R3hDzWO){p$>u#nwwsrmFi&o|a#Fb-^QiFf<{IlW0!-<=CzUP}? zBt&Gvfo@CT zr<@!duEdgZ1U#jx`rerL7m`!8fx_p>!@SV_ANaE1dZCio>YS21(!K5PR*O);krKYz z#?@}c^E}WaneCr`i64Czk3g%$b&o?$=ICCZv)AUkZqdW=X$n;jME1Q1HEL?(EvvF0 zD-|=exHx;s9JG#%=HA^Mz-EbT!<`ixo*|ZdzlqJ8yp2olvLfz?DYVmM`E|NK><`n% z_f#4JY&6^!wZQ;2OEVz>4{7+?sUi@C=n!CQzww zW4O`MD9jB?48_&SYAcwOSlWUfF$c6GtG7qL_p6by$NGoBc!N^MQQsYoF#TvIuzKaQA4(2MrUOyqcg=Kbumt;zim_?XH{a>-N&a8? z^M*9NE+p#6C?fH>E{q8+(T5UaPq~Ou?(Q9d+6BZikHzP20r%#;^1bdcC(SaaI%{QK z>S6z0t_A*)sY8QVjI49FTIx>Zyf zEi#hAa-iokewXt?`n{zLhXZmuqu{`0z=AQf;|a>o@ldGk4>mo2%Xk`*Jn+=vA$p5)qeYu>c-9`P=)zSjbNO#y`!V>=`5N=*{Q-rNNr)H=|~7 zC2D_YeGvJ_1KG#m>i=N!K#f~jUNyK_hf%Uz=j#y6kL8meBM?bF`O-s&<73+fd>+w$Qp#|+aC8c!zp!A{urW6DB(^L?$Y9BU*i%P(}mQik0DXz?n=Y+{~_uL7L|;@kSw^hI1*axnER7~~wri&*y+iL|UT zFLObcjb&a0{3ZU=VY`@n+GO!%j{}v^J4Yt)!l)&`x+lIX1iwwZpv*{F6YVJGhxl14 z{pm3Uw1fA86qVY`OBpr?>USD# zJi7wHOcpRSgW%xcnydg#&4VUpW))$m?llDQIUA^`+K0>PM>AlUSodwcfUSO~#OOY- zFTS)E=Qj3+%=%}h<4!zi0Q!tIU2S!Nk`v|nU-zjH5{@XPdydZwK!+{o3^w*6PhZRG zDDnn4$FI>1TtPH3iHTLZ`^$Sfh+IZE$RIiGohy|E4o1U&{O#ygGxeCn1CBNuVs7xK zzbx+nL2xx17~$blT?2hMKt^RJC#Tm8hjyPVE-H2c4Kq7zGLC>%+T1Fl%gx9k1158A zq!Lcv8SP2}Qg;QttY?MhuL{(2nq;Hv@9wYdY@g-}Q^+dgCeH zmxWiZUlk7tZ5JfmdYc)ZAg-iTVCWksRglZj)=el_h4A3w%`%}x++%fdc%4@ITCQ8Dz_sZpwbys1m` zYbPSN+BV6H&O2jqwVGk4yl^)mR5tLZ-O_OewNpI(wFB$9`O^nF!Tt4r-VtC~=Oq%& zpsroZKkT%v1oz|PwM#m`r6fs)2d{NC5aqg3=abUY)1B&t?Bt~06y07p=yLAhL*)b7 zFAkmCYxr`vz?t%ct!UNbFF!o}=>F_DSx8{{ut3Ci{;FsL+{q@at+jV%+kznd8#mSKnyRq=w`sC3 zwl6CSAF7xo7oApH8l{HfxSiY^DOuog>I**QJuKsV^KRj-lVI2!+uO=1wF0w7neSVB z)~RB=C-a-!KlpxC3)giPj2yM|rz_YbpO0v=ZxxKjHR9_k2E=GSa+R*R80pp;S1fzd z#4Q91`*;bQr5l@}MDzh8-n&qMxh@(?l5{W*#ujhU1T2B5im1dNy6ZZ>d+Ny|Y(N!V3NL$-+{XMyjzdgO^uGx?$QLvo z)Cd&1o@!=fXvo)%X8oyjq&xh}hi8Q+zrJ({S)1ujgas<7vEhy8W}2jQ6Jnn;w^k9> z*2A<$JOuiStJ$tlm>Pq%TU?*7$=M;^7fLygXZ23j_g?A0`i2G7o}$!OL?u^c zHhR@fwCl`m5=q+|)patX*3!^W08k=eG5B1*eg@jbFA(J*fb?1DFN9l1&w%}7O>jlZ z2@Z~qS}*)`iaWZn_s(iP5gqsD&6`m^4FiMNptVk!)T{ZKPFS?Ww}+Cp>p6ur^cn;9 z{Fgu#aU~-GbOh3B4r7Lwy}r)bw*2;7Czs6I5ub;-X2pAlhw9@$3Hupi*a8P~Dv<*d zZ2Or06F$zZwY80(0p)m=|PiOF5X@YS+KfmlFCAw3{d#L~z zICQ1P9_A2l)mNhDC|(k(Gpc&Xt;vk{szEdme>{Lpb+D@5Y?9c{NK?dMwxr6kFD(tK zBsX7s+w!nIbT)-n`KH52<&k5sjgg#Ub|XKe{d2NcDHBeD#ZwV`a*3@6&&o9H*IS2sl(dVkMw7%!#Q4db339eiyDt5>5$P?Uu$d{DdUI%eLuW9a1StWDrA z(_5Qst8~g_F`Ih$#kg#3nSc*&W3K$f-p0hck3!cuuYW5hQWhJ~iuEWYpeiBTs(ygk zCpirXE|ope#h%ooyFJ2Mb_(-oc^5TOxVuDOs&Vm7gTW%}@sqgqytCBoD=azIYj5R( z-8S*(@?`BMe=Uucwx}K!HVx`Z_Sp06J|adxWn2|OI6f}1f6lhrjW-iSgIfQU_rM`0 zrKBXp#SZawJi^0u&&7e*PuYUc;di5+p zWYZ<>Zg`1>8Q{EfgQM31?m1OdQNSSk?{GB@`)Uc9!8#Tmaf!&})4$Jue`WDucE$L6+ z_@*8xG4!G(!=D5%!ZUHNBkS?-G#L;Ve)R_ikcH!j8wxH15sBZ7^HT%qWD*YJBAbux z92sd_SWGCmdIcz*M5vi;2c~{*GMHA9dc$irk7BF@Cw~Z{jQjoatnFvcR2y(2gzADP zEqAi`sSC*dd*wj;-`ilu^F&ey)oB2o_`Us+_~5%byRWn;-A=DxTZ84jr<|bsvwyH3 zWOZ;SbY3?sLg4U~D5VXKJ>KsxJF3gXet~0Pl(No_h6&@tAmX){>h*ynCX=7fsN#L5 zOB}yPr;_~2G+mcBjuR-V7R& zJFpEvHoY2HjIwy&{*5W^`(Vgnj*B}DCr{wxwchh@sQ<;aCi2R8s9cg(EqC~io}V%x zr5^=9P-f7zV2ncjNpl`ojf!@ZC^_E2xHML+DR@J+A&rXY#OmVy1g>AaNo^zCAaFGZ zO5USUpCiFB9(ryXUD6-(kOFS}n79jfn%+x-$E(A{J9@w~nO-*8u4C;vPrACzq;REb z$#xT%q#Hb(44%o4o($6YIa$TRUu%%2z!w+y&&{ZAxQx0p4&R(1A|@~{b&QcSlhs$u z5S_*2!r)8I2xB^Ak15CJc=FGwhX8G!;vr4;19JLuvpR$nd@xZc3o_F#NFseF5UI`_=h0I|7!;b8ATQCA043P(& z|NOHd2jHQnV$cV~_~&il*-4))^IOUCsQsseQaIp^wbd?IMH1XJ6RzZ5&UmaTs`tXQ zII%8d65Q+ynF>!1aBy~7TwCuat7hGdN$7841PJkm=P8D;*e{!&jz85x@%HZXM@b~D zY272;ZI7-f=RbCu8YBSsUEM^}fBDwWl%x?88tHe^>f#xE7;&CE^R%XwV}#tBbSn6! z-g=*h{tdRYNW0vUfr-N)QRg4$O@dd+j9>Wg##M?l%nyYL+1gGyG;lU ze^@pmB#TaZ9c-7$1M>6xMd`Oajj2aKd>XtV&{to8G81rr_(abhK-Ca!ji_KDU{CwF zWg3kGZZC=UlMM4GPVLx(nDVeC#bWWQ|rt+T)-nneCEFZ?LaOpU8pA(X96V61)z2~(3% zBr`)|v6!x)GeiI76l{Fh+FHY&_=518H*6x}XL*TQ;Ct-8ybgFXLZ3+*!SQZI?~;wx zw2=N_{x!mih?ydtAI6P~@?C9Bo?MIgQ%~ znVw93le-#MCDVK1V-xfNCAY!9$6J8C+WVz`=;;jfS^|#S6{XW^ib0y>0iQn3JE`N` z+&sRLQw%bjA!Qz1flksEHY3nyRAuyDP>XV+j&v9I!2{x+-B*Z#K`ceDQUSM;=m!vM`Cig>Q0Pm3c@fJyY= z_;(}MwBTP~@3v53&d>T6jXtCvi505|y83OyX;cNgRC~oaTWm-_3+F!nX{vk6O@XUV z`C;717#XoDd<4gTb>CGW;3dMfqYDJsn-UCPE3zc*16n=2h-;7cRf{9tBB>)E?Na2; z^GiQjii0eL0R}uRW@%W6qHo5L{2FCGEDsxkQ(PD*7M_gKH^G?gE5HhgB66nl7zS`G zJJXXVFSWb;@9fBFNqZeu`S&#As{B9dhjG?VOw5w(M`OZoEKokmoji%F?0vpwQEVb% z%~jJ;uwh-%!rI3#wIk&@itYZn0Rn`XNXiUR@O}nap(5vh@p0k5ELGrho~!*Lnu{Y= zK%~JFA5i_c3D+mVkNo8dH~l{V(SyM2BqtOuiqb9G^d^Px&8M6bMU+nGU@qQs!fKgP zjou7g(JPm2*3_f2ze$_0EbklD)NAPiAC1a;sfh?T>hJo5G-kd7S(5_J*xFYiYIb8Nu=F_-5N`&-~h|{OIb8jz^hUiYpv*{erHnw+SY3 z{H{*l^sAdt4$cAfpzfZPRq)6$ft^MGNNDm!Iz8??N{^kZ>n-qMhCtG~0XiUQE9ND8 zmg3@QI54QuXm0!*>foyWqE|oef`QNfOkatyk-asuQn$L2pV8JwkcGgmh1_IGKhApd z*ZAo2!Sps>p)7;pZKWG%o4)@h6U%!i;+HC|-wdowR#CuPat|CnSePVSCDVD~vQUnF zdOv#N=xHdB_J3gnb2)Uz| zlCzKGZjTq)1)p52coRPe%d6RLBwGtIF+C9O`8ihD=%l`@9sG-EJbM|+!3DagO}l~> zuLtNL#Ohl!ZZ~GMJdbyNcd-$uq5`H@>P~_?4p})1lpY;Y({6tCEcZ*83_uS`=8&ctR7_xb3#joIxx%#5OKQ|Yr$~+(1 z(v-)ZqZ60b-9~5;OiVAT)HG&y6Cx!K-HH0XZv@A^`#BVw+lhGG&t`lGcf*7?cPuHH zLH`~Gm2t`Hg5W0wFoqpS%z959A0X*2qiVc7O-zll3ZqlE=+|yCoFE9GX*_;9Gj13t z_vhe`V>Y%ygHi$K>Xr~4R^n#47;@rC!CU2hx!#@{g%&mG5Tqwkz0WKwxwlq!VFo5F z_A;GW0vR*R#XZ&FzSeCYR@^^j_J%qI^SW7%r%MQ<86(BIG8Jhm5-7d6Q@z!Vs>mPH z#Oucv)_kMyKe0}uQsA0Ms~F;_tcGnM$NyiZ*A1J!@b07FS<0@xrYyK1gZ*-E`_{cC z4psij9YrQBP!iqvKQ!haU}7rO)*-yfYV=TlTBIFHCWZcYAB6sAvlN!r7@JA5kF|S4 zWLFaBUW(Kt#c=ZS>1n{1;1Rzs0yUkGc27I%R&u%&Egc?o>~CZmGsgr(czY{C>`r8c z8({z!*p>EXN^qnD_MQdO(!)7PMkCQSH`j?MyqoC>_qj^HW~ZHVa3sF&`*#j8fW%Cs zbdWbamxer0(i5!w^!B&;-7x>MXhwHi1`tA`@!E@Bfj-Gs0t*0!=acQTHo?iL)|wlJgvmpBHdtp!RE&8j2Z4kzCI8gY=% z`D?r({sE19WS5381YMNOWV236ZZK@k2TPLLgkSLjzulGRJ1`2dGvf+@o4 z_$H_?c3{URsPqdz1|uI|O3NV54B$#d?n;0Ixl-mc)BA#zQH!(9-M(nlmp(Y50s2sW zF>l_iDnI)gU;B?@Xp2Ucy`Hyh1?pINBn zziN?sfMn*f-@X7=pEcGzR(A8FVrzcqTpn6HJm}lI32Wi?wrqsN-U3~Uyi|&VY94K?ofip26Wo*pTRtm)s!O?A6+a{j9MpYEHT}=NW z&dH|ARmqIBVt3H7!vP-XJjO=aoS#QOXJ!km+U2(~XVxoKlEP5v(#Z7=utskDk!qG= z^CTURo*-&}qpBGNNaa1f`>2^04*i?qc#&iwdl9|-UoQ`xbQA63CPBKUIot$v(p)5|FaGe23SqN;#rBU< z``zbbBweigV1m;rgZKiJh5)SPZ+X-*;=Ob!*0g?F;+}OOmS55LOKthjTDrHI+P6v5 zr7F8zcNDo%NVHRMn3w%z&5>P9Ph@~7U#ny$p@XaVpGbtr@P$1w5@aI9nSHrir5YhNq@Fz!=f;}^dtd@232)t~)K0#^)+tsB%@gf&4by!a|gzi7i3EQ#F;FSNQ^Df45;*c$&Q;Uo3Oslkd>hjsJd_hg6)c-4<-fu~NEKyJ9P4MY)>Mars{R1^`Jwg`_{`gB7b+5eM@oVbx9DK$K}oFn-nLYRJdw=7!kZ#sLF2v?YeLC zW7G2ioItG7zx;2bKxKJ*yVy!`xQgbMu@>7gL$v}b+!Jd`1N^8Ab<&UM>fEybO`7#% zB3yICzD>)8_eqH|7-M4dAV~7{PACf^aq)=<4he#sukwL&T-hxI=ea7I8t;C*Q4M9)J>P>NVGQ07&Pwqk`(g-+2O{ZZK4zEq|* zP2#y>-i21cIscyQ;%8zy@bc~3x6FWe2Cp1-oW}fN4!VwB-x1a%o5XykW_`0%zhUIH zoX2X;xm>0EU`(+a$040{&)(DnEVm`(I}WZFN&lWnT*n7kxbd-RsK-WKjPT#Clql{sb|Jy?|eMfAk_wq+CHC z$>gccQ4L2PQh+b3kl@x2i;MuD8$oZgEmQ0e}i0CYs>v^{yvip9gUKLPbKOV)U z2TWZf;U|PW1f=f!blN_#9%yFaEx?!-1iE5H>!bI5Hb1wj@el5P(2nMSjuY_vqT55J zi5)(Dv{(!0(Z$5=?bopeKK>^`7x=f*ao(;p=$JB&8%nadz+eY1L6NP$Jr)>OeI+fM ztzjglPcdWyU`)`4TFHC5Ne=|E>)ZLN!VNwcD!G)=Ks%@RV*iKAE`T^kzF$!#;SQOg zOtJ@XXJVE97i|lZux)}pWq@i7_O2htPB`&{^SX3F4&kYp^duYOX$M$^`ZX+-}j5x)iRSSjorUpLLt*s?Dr z^yiF3k2Mq!KmdgZKE)a+LSS-L0Ra9}Q?D>?ds~UTqZU!UtO=&k1DNWs1^IGUl~K+q z_OJV362_!KJyRG`jS&U4?e@=|2&Eefmudpo5EM|OP|0Nw+V|HF5Z>#P%%0n<098Ku zMz+f6n@|(ne!D{_BhG$==w#(S*@#Ce*-A{c`bw^_X_CnL*p|?)`j%_X<2QkYB?4x( z5GSA8KACU5cA~H^C*%^Bf-?OE3UJLVjw8sf!!wGhGMdQ7I|C`B+6elwO}T%eY{s+J z*Izz;`*kH}%O%sPzIsB|Epq~YLSs;U*|`|FA5f;+pZd6`73R~{jYc263;ABA-PiRn z{`jQ|im!jwm3)sw<7OdS%F*muy9ldqrARK)Z{;d4X&^iA447wRqZu!E|HE-Qo&oad z=>n@V$G{(;s@F~SlOFl>3MGwUK~d|@@8-gaAM2rCd+yv0%?TYv_XKA?;?Gg+3%J2~ z)`Qw0Pa)qjG&KA*Fgx}-q@$mRG?^#dU?0dJIyZ%PKk;=kysw|h#wBB7FK#X_$sv|# zt=e+C<9qsoOP=gW%oSBguy$hp|07u2Qmtia8W?e98~>zXUp6eEZXW65H=XpB!EWG8OjS>V2=xMuKP7 zxTf8(rq`Bw0#*3q&+oN=qUbngd?R3C-F0zky0Gu6SC1#j$7osqp=;d6vsuo)zCIqjqoz%cOx?dO2~FVtcc3tXc&KH^y;=7FNje04zl8f2$52& zuHeG}6f!GOVmndljJU9>ZO0}0u9u1NZmpGE*A;L#T-E(LsIwVuq#J4dC+) zaZ_7L${APXw$U!Gq|nXPVNTumBG;($4tiW z>{kc|`4mce?p0Un!CIp^mvW6_C9DbHdoS|xjklq2HmC)9v#}vF_u4 zVq8`na(LR?Al59!+bglO7sCR zaSfyHEYU(*2QhwZU-@An2Q6@wYR;!m8+qW0*XjO3BhS@o&G(s0;8TrN4G`aR<<~7z zmT+wJ$VCB6<0NBe2Z?}v#!@ZER5pnob0L7*~YsCZQ z(;Y6>E0JMU&h$7?``Es1oQ&j04xO?9^uy@3rD$~m(Qg*)F%_P>p4wO?)7RRv0~7xV zX*35#|HLmr!1h7S?i0{qjl=Mpme)>&7Amz^*F5|Lx=48ho(0UVIvI&c>xs9+U=N_6 zT=%r>Z6qPauY{`vJ^OMuFX%$-fPVkOYSXZWVgBL=RSYtyO!8c_I4CI1xrV2!rGrWDlAs2PM;8JJlb3Y4Ta_7lV7Mg01YlJL0V zYJB*#ED1%t?Ajs98C-v=_^L8nF8dtBPQjF>tt9ITQ8(Tz{{zxZz(sdOx3C+<)62s6 zi)koOe8g72bCU@kdssodK>LJv(lIvAmyh^8Yrd5YMoGl(ud>JLKcvyUu&Ae1UD zm_I=C$OVrTch+r+4i-$Zi}v;Zd_Ir?L;X@KaCTwd1lx@9iH~vCO7Vrk+F{VJ$jY9; z4&jQHIn>!AOLrY(n7bO7rQHF}Dk6y;q>@p>vbX@!VgShHJh(Ydx*339jixKgQi+1D z%@TIRNNeE<895Jd5nlhFsAen(!(G#&)v5e|8f4`<-qeN$)sTJGu7e@%BI_$zK5GUq{BRQj!|VPIbOn#~mBT+)x<6 zamT9v1v5wI&1yy!wAC23bu=5~>nMgF0AO6w@Rrr+fsdT}F#e)?K>>jx`Bb352Y-4n zJ?dyt@f%Y&2`-18f>XcH3UZ3l)^88oA$&(qwnpQ~M~e+=$^xZ{cFprQctb#SuZMtf zV+egqPT3DFUuo#F*d3eQd$l5;O0BJu)irMw?D28uPF4c!=&zKjw+HF)d6Zxs5@Oc4 zVom?aIX5M0R=QP#BDY+svf2I$_;7XCsiarY!%HYDBy8OWP4xjgZ>Mj2+b$1GJQAFI z`{S{7FFHLF5J3hxXCQ)rY zHza5J=ik?t7F)r|;cGKl3oiI(2qLzy<3S%L7a|KYM$3(4lB6DeT)LNLeDU z2VYkHg|YiQgv1j?J8?7{w(Y7er1_)JyYC-focMLM*IA+*OdK7vBQ7t(*qE5!-Bl^_ zDk0}_Z(h)twI(bcl!fA)!9F8W7=Q56@1I|-T}Q;MjWUtQ1`P?!2?2>3Yb`Ym!{ElE&fyWJcT~8?xtY(`P)y=*+|?v z?sR+==zyjjbAtMZP)qKM*0>wxz_Cqcf6hAf{N|2NhJt{ zo6JxQo{tO%Xp(7tChNJi>zJ5Th2Az_Kw>)b=PeR`4GplYBiDrB?>+1HOFZh20OH`Y zZhjYcO)&%hO-3JX+I)ob4F8ONEUdb-4~G2N51MH=I2RUQ-9F;cTQu#q4%? z5gIoM0acmSK?}u`v4eKAghvHqRzI0+F zDzXojVedTPNFv=japdoL?M~{LktMG9Q(v}DIuRf#cT#1O^Epc;M6mhd3M5=26gnne zW-oB;U`m%A#}ugv{J{9Fn$?(rSQywpQRI`-PmHfgNbS+32Q;_eyJXijVRe6Ixg4Spkwry(#)gJOJiMn_#C&g?BK}8;O`j@@#ILPzq zOB~zWuB5a8nz72}(zQod5T)Ckp7G=h9)O=y1uy6M2E~=_Qv+AkhD>X~>Zo-}_ zehz?j4Z>ORdIa68Mb>&b(vP=h%;-yC*5D$pIt&kUTdjjq)hUCIe;XI8MlIuR zHAZT|U?j}9IBeS-uOud|%2#HNbT8xL2lRXY$0qqg`X`VEUTS&Uig!<3$abEEhQXpT z!4OoeVQp7=;_x6}@CDz($Azg%NOW(CKV)O966-jO`$Ttq$;}OTD~Pc=G;@|P$fh)G zxW=U9Q41YSa&^9mc1G&qE`65tYrG#yum&(Qwa+L1#HzML5T*ph6N}?s?j?xcPXJc6 zZbrl0`{0`hpjjjrc{~5FSWpvS;t~+6)iM*ody@^cHgmshtp^0a6$7!wkqy_lYZfMD z+~-;%Z*IK7LRJ-=o}3q45~>QUh-T{_Y@?sABr2)S7JqnO#X8RS<24KlQdizzbtx{` zM7Q*rsxj2z+l#@@^7h-$0bfUSHs2oIDQ{DIg2AHxnHK>2v~>eP7UFjb+dqwNo%s-sBfLgonXj4k9 z6F3Aq@jJbefw|;Sg0-2s`N$nOwu3wRZV5&Lw31pZfQr;cmbfeV!Cf*39vmd3d5mz| z8;{r7I>I!%zcQuW&e|zsZ}z9N`36=cQD$ddZ$2hoT3q6m?9afY`~nfl_kqA3Z=~PU z{2J)}2Ggr}tm?HHFMfJv-OpnrwLxM{lqNh1p8toKf~)8>{&M_7_mpX>GuHB3>q|G+#_-lT>~B#e7#KDoF5NtADOqw z@zzdfVD}*_74)HY*R@+GUjNnRvSDGzjQMeAqPsOGvVfC@wIe>|^BM#^+$0}-iT{sP zdF(`^NXa7eof3SJxemfqfTabQ?&cWUuR5TruqJqvl|-AvAI>jQa{nt?=`pm@N!@Lz zV+rOyS2rmofWUd^52mvk%wRisPtNUKP<@vz(#aW`3RXMu;jdV3-)B5|SN-J?YTqiu z9y|Ac+{Uab(e8avFC$NZvH0^bbHLR>-_7KEY^@oM`cxc{fV*Dz;VDbbKUHp68BY&1 zr;|n22h%d*R#chWqHeG^RXLS*d4XZ{Oyc;1)ISDxJA05fh^jC(lGg#yvZyteVyWxE zL<<^F`&S>#ow-pfYesi?MEWzGtFQL??*u`cmG4N9hm(`j9ztWW^2S&GhueOeObWgB zNHZEpbpRLa1f>73y=(txy8Zv%pXzqsot6@}L*|(CA$N$d4iq_`rC7-!n?pHkV|Thk zDU!pIP!Tc07&(kv?idT@G&ZMh=P`2H+Gh5-raphc_m}Sv_a2WokNvXuwb%7}zYfpm z^R??_ehG*JS8y@B(*kwj4nhUy;67MfGw+l>icncwe6xr{TyNtr8S-lQ^BwcL<-3=n zL4EM4Ht-jvPv^?qH~t~so@aKRcmap8)!jS^uT;y#%bPM2OFWYKA;Ivd0pj)IgIS6_ zH1gCe%f-2voM4hpZf8B19r0)Ur0pz=B@>o8sBC^dGuQdF*#&;NIgUpG{?DdDK-=;3 zv=;)qk72D@;+6a{fbnBb-&p@7^(Ou%Wz1a$bo#4^#3gj}n=Rh@fpErFocc4P-X0}e z17V3hWzdmJyxRqxViY~1SJc)GtDSimz8`A+$zQWx$I z4$>!Rl0=CY!NV)b9Nv0tIDPP(sI~MwmvwH&^oDsgVh6BU@!YopAeakqkZk4|9?fIO z3Nmm;Su`CMxqP|BX(JpIx-Ulw;-dnC6+<4(*R-%N0t5vd$*AgP>dtTl8Vf|fUhd~u zbX;KR8pL(di6X6?>vkm|6NaH3PGdYSP?qq4gS+Z#Vsbe> z6WP?KxTg5TMA8*reN+W=hrwb<-IauqAQox6CuEv9X(v^;y#qFpexM`WyKNH%fV$fv zf+JE{A6|QJ+Hk4cPhMfs;{R`UQ_WBzYTVRk-V|aRxsLjUK_jQ!%3)X@DLx9R> zz{iJ)Sadqfj5mAJOd!6Lm6OwfyXtq@K~=Mjf!FphA|OOGJEVX)=J=)p;DKNXz+lp! zek@^|0q~ge_znY#Y@PmX2E-$FW#gE@QI>|1|5N_++`Z-47qP)*HUgD?yNh-C$Xe_D zPmd8^KuP*C9hews#rmP`d$pLwRQTH!pKQO9awu3wFgAr@57o)8=mA~a1R1LZD~74(DK7XW1fJte=fDTYhx7^pLZC1Jq~49wKjdn`&NGH(L} zW;)#6odc($tX^vBbiR}FCqO^_Siv?+i6xPx02@NtzbOy~Q1A{bxw5tab6iX|a}q>6*}uGWIRH$q z)zIS}Nb1_k{D2SvZyA7~t1-`xK^Am1eelxNgCT<7l}Fs&6$8sV*Xfs6>9y@MU~5R|I**v9irLnpo&#yprygr_A-E9k$IFcvtKu ziRFhr8In-42%9Vd`l5MGvwj+Q{ugw?U*FXz^co&xbK_Ww(h2ZfnI9Kol4A^81!f^nCuz|IJ_b0O0TKqD1{4Mce$Cms&kn z)qsQKbUCfif}?<^vA?v_&uPN-K?G!9n+&i4=f{#owVnX_=810P9jj*swm=pvpC97e ziE}I@17V!b)kTqL|0&bxm4V9M>m=oQy_@e&!lhMnIQyO?6Mr^uSc-XVT{|W~vrhCx zdGc;6@amhtzCzcjx2M2R0^o9hazI!(s~PU{&} zz0M!@A|!o4Kyf@bLGw~!dV#Ol>l=xLgjigU3d(!^V~&CSQvX;9_%?%Bp{B2h#8~Fy zC4;RE3xlX{iRhZhyhhfF=I~ZG7axRtS$d_`UbGZ_&R4@-^HQiNX=uL6XRbgh8l0y# zZ{S_+&6JcY)>_B9c%VAcj^;T-(=)JxWeFl(k|hAPq2w5&25}3uIyo?mXSWEJ)X`To zJ#@c(n&jF(^%pk5XZ+5&)!{MT>dKPw>XuT&R1O4|`92c%xGcC?O|oYBah%3I{OwlJ zOZFA^nWZX^@8QPM8-2>jiyzb!^fC9RrZk>(RLzk8q|9_a^{?_a9YpGcIVA4`{16bF zE62pAV8!B-GiQZT(%3fo781)kSuoC((^&?Z+Ng0r|DQO4BvTu3nzT`Lm!&1Eaw?TmF6 zl-c=rncCR@JRgXH$;mD0Qz_D$Kr5Y^lKt5_W+gtpyNBhvYRAgO?vmdL8SnPruerggor>xt~)(1P(d_j@NZ?0a92AH20b zr_|9cR$!6vc0f9lU=`Y#o0_v;9=fVphSdMf5R8gE*EE!e=NTzpNI8ntN{Lm3OK}{S zi!d3%y;33=nJkkr#bC_W)BwzE%y8r6(M!#N35|9B*^N!HRqF7DGXf)TW+1(ndYu7* zwfdlMGtI9HyHXeG9oAi%ZL`Lb)V23Shd*DJ(%~E^V#A-*jNY~knc3TGG|7I!vD9%E zKszeWbz5p-k>H?5xW1{Wh{^7j33uFNP%WyaebQe|4uV*Q+&h(|TUhhKS1d`RFoSs= zl((|SdVPCbpmc{n;%AxinV`Y?+%z+R0q_!fgkDK+^{uMmul4jN+!KTi0Hr;hb$vx)5C5R$u`zegERFIX_XvqlNC*Xd zH(9}NOfF036#Q5>DeZWlZwIMVTqmISgt(EcrKhy91tYNLq*l>MOcwe^jKgn?>ioDtE(iZarAH@aj<<-*?8CX}@~ zrs_3pa`Q?t{eqH4W|#4%+bHHyHMPed65V0j8VU+^2?E3Vhm=eXT7#(OJRV+T&^9VL zJJj4%4NxwFR+2c(XrFO|VQnpkaP|v@l8133k0 zG(p;T%yE@AF>{tp61mM#VPTf!5Bh~9bc^WkCd)944+){xdo_tT@?U z4%xFjMq@`z$2Mt#Zr?L8QMs`mUu1_mtr=8%8Q5F6mPQ-~I6L4Ia{=AH-)xGHSfToZ%W1u66RQhwRUROOVleOG*8R|PcGAS2=w_@#JBaDoF6u-pFJ((08YF6IAw=C<{(9s=>D86ZeO3|VdG@Tj0D z^}(l9Dn)o5z@H_)-$fZFb_Z%NMyjWV&UP0=UdNT`i+%hIKOE-Rp6OEz7c(74uRUtK zTtQ!gxw`Iig{uh`;z3@}$X(VNLr(DW$Yp{YUgb;Y>Rh?8lR1Nd=)5av2 zh@4y;AioHm9TV$yUd>HJw~H6MOCSYtWsfBF=F0b%%uPr}(^|iwU?A1 zmXq6)hVKD&qro&LlEUsc0dcIpk%<|T) z`y$x%H}JkG+FQnzkhLCg&R9R?S5VM3mR1u40}Ckr&Ua!-1e?v)6yq&dM*B}YPG=a4 z9NDHs;cbK-={to?^N2zAdXnagoF}G5NB}Wv6M@ zx1ilE@Lyi2y8KRkoMG&K(EbS3s3ajE`%{7lE!EgukI1eMK(}5AbR#(s{ll$3t<}PKlcLh_zVn^+{_;M&b$fge zRrwP3l>4AHRDL0(om4+kiC-dAIy^q*vd2?WX~FklS{$X#vgP5gK3&gcc2^yVldYN9t zq5=?TPV{&YmI=FBj+M^iC6ox5;QNV*Z+bO8jakaBmb`iD%`iq*wSScWo$bG`e=YE@ z1^$0qV1geEIUx9j(H*;Z7{*?~nF{~c*WDcup_dSeiwA$!b>Az7kKve($MRYDSDrz|7O zjO+|1>)6Iv2Qy~o_slq-?>VRCd_LFjuiy2%j_c~WWaj-W_kBOF`@UcI{k$JvzNEEf zsRZ@PQO__rQ-ee^<_Gj;_^R+g8%d@?Ho{ytR0n9v{JT|_9w4uzM#niVFk-gv&` zC6^~)#tD}4@6W#y_*Vk|O5k4!{40U~?@FNZNJ-!H0q`#bIWLnI*&pZX1Hr5~*sy+3 z(rF8U$oYBCl0GY43C})Cm|gcpg+4cIpX1Ua%TjcoXcJQ+*rrF)?RCeuNTelRl7Ka=J!B6?cR}H3w=pY=s8#kl+k{i@ z6VJ0MHtmlz`Mi>o9+`bnf_7hGMA`(tjg752!64&OpE_Z6FtUZ}QPTH*aj9)$Y;0^0 zIgcGis>iz0(HZ)Q<z0evS3LBf#p`ol>4kW)TK zVLVd|F;~6ey5kur)~D%UU8?&Ds}^8USO=Pv368Yn*`QP*mgeSCfyX;clGxeU2D`x@ zFG$4eNtE50bYj0#?}(z-BIipCba`O%X(jC7@?;B&=G>nvKQmRlUtQwlYHvyR-B3mL{F{BA1yLj3{Wn>G4CJ@Wc=DP{# zV^Jc_Gc|HLe-XuY%^rnQJxN$qcPt)Hhuot{v9W2uuj(45NA~9~dYT?qB5;i$)!l}k zD$t2p6+oY3`k0jgB?7~PvM^ra1is&{BcXbfu*wdf6J%rSx{6s59znvbCP{@UeQvE6 zm%tJg39B<}&vyD$z;Ej_G;Mq}uj*PvU!_>Vt@pFBUG_)L+XL%sEue=fgAuYM(j-xI z9vy82wu9lv4%N3Vci+Z|Dm`VKtM;!FUT|AK@n z*g0F59%f}$B2D2QZ68>RMI%$8+6v$?KZ&%-KgKzfwqOmcjroeA? z)q>Q>{vsSv=mS_EFW5r>{WuqpQC?(AD6qn^MNc-<`>0h^u$sAUQR~{0OM}F4Zf+-6lzjMnDV}F|Iy1 z)>iJHlt{CuvFjx%D-n!FkO&9XHf$rV7E2RW+riF@fHhvjtk|w?B~M3!MgfW)1`ppq zofb(SZhK>3k;j?@c@eYHE|Jy%6zdx9>eJ^_!N9C7?4AooJ=)c0l=;x7$gAZC39I9* zPb?otwz#@tuy~3xMpJiO6lhBgXpxPrvU?a=ae}Za$<*ok2v?u`n3Z*FpYThh2{$TL zxPYw)C=os^DuDeR&BYO?<6V6wSu+6isSry7;?3$Jdf)*%&3E9PrGeNyC!N5TZ@h|} zOOr@b@24oUNyh@*dxo4BUQ^$N)JUP|tHmD7vFV(rz{z?Zd9{bK7ktlz&Pm}~GgL8= zURjQ{4_h3;kcE~aDr&$iXu<}5g4`4xx!nVZftBxVjQQMqc$M) z!N=@*P6n6-|0+EV`|k{m#|zfbH5|_P)kFalSkn5#PaOM$d*Z zn~pkwsxP*GhjQ)bH5BsBA4*!+ocbMhzB$QJ9Ct#FeV^|k&F>KT-z~8`&i^|tz3kzj zWT?}|UFMq_unO!W7NK$AD5e`Zbg;z{c&U4CXwCd$BBMu+~y zn!0;{alSYGnKgA>(%|wP`I$8pcmU%(D)2LF%Kvvu%mebTmWEgdp+9-pJejDO3l zcdMx}fr|nP6J*!ST$>dy{u#6^%;%W8j=&ne445<=H@z}CkQn6!wT?sMCFf`8a!=tm z(+98(D$zTr=i+KTqwQ9srJcNys}7{6iqj$~AAem@j8q{vXTi(a*({}gzEt%Tq>2X$JY|wT z+emh%ayafWHvzk>?oem2vAvJ{nV1)Zn$_pUG3d;O4JzrxA$P-)0;D2+p9!M}eBI#>nuV3{{3k?>6rkWH})xfZc z3&Q8@KZB~UdjL^7)(@GqFaRtO$ds5Q(%(ILIM_*0hLceIkb}|afHI1nzn(40;t%@j z?_(cJiV-j+i&^inFgSgWr+7f7{`jit3bBFS(^1g@m?^EFDgM>^1(&9%C8^fsa-yg! z@813^qvEiUj*3z6z)!7AWc`91FWz``_Kp`fyZL{50jTeL+pj7KRya&rK)_ZG{A?>% zIK1P~nUcX@XpX1osaZ^>znSZ2X7zY$bAyWBORnK*g;mYCzzjzk1dwOTfADzBEcO5L ziu6Ta^YmG39NLPCd`8D&89B2%1Y+#7OP!Rwrjo6N%HQa5#Q+GPj@(}@m*b6z@=`h6 zx?E*_YI)X0Q7xr$D6c_91tl1U1^D1ve_SoIaj3OkW%Z7dAR?w}AgKPhN^;}SQY5g> zk?Kz=^=>Ow^{6Cwk5y!=&U==6eD#q|nV zAFm=C=w&69&@d_WFpUIYc>U3m&W6*ZRALOzZNCjUsQFtRz}*)T`WM>~kO%%ORYkTkn4W zQdQg52_MTu(Fq&bl6L%bgqvW5nZb=5ceM7Z*$NCZ2;x8!#&Kxg7`q4haY3kPFQ{2u zE&lNQ@&#byVD$tbwKup`&zJgKc(YM|bkz8_78gaRQ5;WsMdJ`}wB4@y<8Ww(wgd3wn2x;*!xI`R6zm9ZfFSlgDrPLNDTa@0975fD5`R|Us#o_&Ok~xNg~cVo)k>*wT1>-nIssUl zl72-r39Mg+>16?^k9DYsY<;n{b;Y{Cb=!}2Rv73yui9#;)29uBGAI`7ZF?7zCnL_jwjYpj+c7O@9(Sc z_-%gN)oNuQUt`4>1Ka6DgSB;=MIWETZEKXVJj{@+82W}r(aUz6Ryqc)vVBFF zd5c>jT^II2HCD;fl-t;SJAUdZv)GwpO9Y!N_nM-?r{W>8f`;+$m5)dkW;Rf=s9t7y z_BI}6*e9W_!5beKO-~%YO+m)(4@?r-s%~8q%(vrQ9dhE!Q}#0t`K1qRonA8WjSc49 zxjsy-+Gn)S)Df3x$9_xq_C91LZ?>pxxLA&zSDTiLe>0J75KllV7)IGxKx~S* zzN$<~wzSXQA|8uAkqYTmPQAzbypn#2Bk%Cw4dVkCw@~@SRv%$d0%B7J(G**e$fi*J z^3xhx)vx(Mt%U8a_$Jp~!t08)Z$)x?k&SqQY+=ev_{jngMy=A&oO@B*)i5}#@>Bb>H2^BsH3tVsFxeEBR`TjD!CMVz>z;MhR3 zdLZ?+m#jJO62DZnscD;B5mERf+N?i(I*eD_5|Kr_PO^zoY!x+2!v=3Zzqae)O@KEW z4mo;MZRI!ieS9gp%+l2B_@j-tpc}^qrxX_b9pB|HFYYR@y5nfhke{ILqY~tFAXA?v zwLPg2F}R$y-N8Klw`83KR z%J?^`zunp|S2iEdA1kbDDbVrYs6eP>zCDRq9K5~vSBos=9>XMjJ6(6N|7MOhw$vt@ zyz5bNxItsZV|jc`rSx`N)bzJl`b7?TolC027Wqqi!Dt^q{J`d-`4gR}aW0gboX0(- z@S%939kyUkDx5i<^Lq>}m3-q-&oeNpjwO6QrnlHXw)_e*Uet^z+}>{sMy%rj>Zsdc zd;>bSh2xaS`6y=1@3OLSY}Et4=5_K$s{OUo_(ZsQM?Y^)nE~YJ8MoULpGeUkXcpX! z+msc#c0Qg|JO_aT1Kv;D+RVP+==QDIFA5vRf_E8$jk9SGZ{Olc+1G5{)3wxjU-=Gv z-`ri-?Bl|g|K*56&Fhp6 zReR3or{g}FWS<5UyioBxyF6^ z2btJnBEWmuJ#FTQEDk=IY4U9cz$)@zHS-w z_~896OKF0~rKTwFvqR5hmT}UFLkHASaVIZWVz$|yXO_a~OeP?XBDh7L3$X?Q@5IDUVU=QuOd3c=e?4 z*M1|glxDwQKyPg7x?;Wl$%}(idq!j>{ezqz78zaIy;Ob>ExxRY&*~%M0~KSiHc!A9 z!@R#b()_$*7$1WZbv%nlT?waUYjqJ9U7!!)+D16(!6~fR`$;Zg@zHBQZ!gK^piZtK z_bZExc%Z@C7$tPByHo51b=piPOn*jTTxf~MIbDk*FO5=kFCqHF$_ug&bCA_v4su&V zptH#S!)z2T*Y-02(t{_?e}dl*aS)sn9#nJ`8ehlzML|y0TZHPO1DnQdJKkeBzm%6<)@#&j`8lhLa3+CijP62~LBJ zs{CD{HQl0V_tajMVZl6Ce&q-bef1TJ?Vd$n7xg#yQfr&Xezj_H*LiwHTR<*{_>@1^ zs=7Ph|4Cv^i{YM>vP9?o8L{w4rZ?=W5_{h&CX0HUXCLSurZn#xd0{BkcJ)#Z39t=G zJAY-pIwzBG1S>?A|9O`|uMn8#XnxtTH_jW!&zg>#@yE{p#xQ@c-r0{1-;aS_=Ab$_ zlR3GkM)O!Uj{>J2 zac*5RS@LUxP_@OoAT)Cdn)Z?r{;1zdl;Zr|C{lotm~6!DIdiA0crBy5e72`*x+Mmu z76%($g^;$ixE>*u8e2N#d}({$3*bLG6Cd@VxSfrkQa(TTzQvhy}NU5%*)gOTjuM1 z`WHy2C&FGz{DydKn$dD?Ux!jm{f8V0(C~On(>NktId=oZdd7?NxF`rss`oXgHI!?qQY=rpjeb=`A4%O7SK9e9HItTd zwZKa3eZ>yjoadGAt_kPFwY_Uo>j$FwKAJTQk>hj&0S`rny=)_MNTFskw9r=(yY~AN zrxni#KXHBckf9v|Lnu-Wokzt78<|s6T&e2`OSumc)-_1Gd)n@j15P8!t zXylv$VK+DDg6N_@FVA?d4uyI-({T!3t7Lw__}s>nRF#6$4_g$fyT1U$6?@+xCW~uB z@8NObdExpIz2$#dXw&1WO(%K_RCf|C@f*A3*3Ii{8=6n-F!so-8}Xx;U(YL9m{mke zRtFVg%+dh-e^Axsa82hN<>8+4UOX1?)s1XU%mwXW|78ogTnm*6X+qG;x9K_}lEUwV znz*cnDCJ#ht`F&SC)7RleS`-A;i9TTp3kRS&^5b7{b=!=qkEi3?G|(W7r%CAi3D8f z8QRRoHn-)!%D$<6;*&TQgWRf$G%7g)qw7#eX)^t=6PVeJU!O?~^^0eJL@3T1IFn7C z$v)0Dc@)J@4~TaeugP8O*nFX9|BEhqKf~U5PkqUB6<@3&-Q@6+GW86kLpJJ}AcuCm z6$K7zyRBzTrI0j6Z=0=SRAqLDFz@SEASpoTfSCKcn9oq6erq%LSnyZ{=fV*XFGpx- zz%^9K!(WRcD2|`ZpGNVLYi91EY${5RewaEL{&er^lQE1NQ2uO!(*%)2fFX0E%gsr|}oPtD=m;Z;kW-a_2g|8!2 zz4ChGu`zuoOYtWdseVQ&PNsN)@e}bcze zEsW4HgMvABTBd|MAbEZ)ufEMzW(@M^VfQOF>0^*$j9ETf83cF&e@ErF+pRZ@fxLRb zg2Q_UNU9&pCtWbY;cDWH+Ry4IK;I}NG?(3t!CrOwye zx*94Sx{K;IfUJV0`+SGc-!Hw8qu31r3F0K@OoWT;UoWAQCZKNSl%81C&bcQXHo{XL zx-sA(NRW&;l+8FwuE2V4nbZ8p;EEdCO2FTPxFedoIZlDJm=<%#FaW^v;D)h5UDESP zmC@7RzQi;*hAQ00s@r|bYmV?iV4&~&hfZA7#xA3@E%gnA?SuW4%&1U+%B$Zc6W?Rf zBF|Wh>h!+B2h&9%dpm>HEscy&oKog?&g$T6feS8M1kxTPF=R*77M%lk-3YHd`c+LF zWOfzb1y5;*&uWM#iN0d+H)lQzP|{Nc(YO;;+?h-dY5t(8zA#*wcZjDH1`)))DXoXi zKIFt_bYIQMeR1;Od*N-i3D<>fgL9}MWG{fCzZQhAIa3f5JDSs|nNHD_M>lfq%+oX- z-^hDLpPW@%225nA8#B1xo4v0)X!6+g*1$+&MW}q)gw^KU77#w)Nd)Z8GyT8E1aGfK z9!T2O%=Z<}J!V+>X}5vd}z-fQ>{M zZ5R^@4^V2<<|r<_3W-XRlUaC?1XBPLY?F*rN~Ys(lpimB8sHiMft%S>gd>(0_WK#9 ztEF!ZBIooFKwLV!?eC{hS3_SYk%JRuWn~RIa#m_ya4~Cay zkC$kApZJg0JUvJC=*%C08JB-7uV56*|5n~P+;5S+Q>UhTQ#<<9?-vV5>9BI3BKr4y z)57opkhgE=9`gb6(`)mU&QtaTV7rg!uuc1ABd$>SicW-z=)&AwrDUmR^@TE#3(}Vy zg$bAT6!O|$e1|0^DBb!-)t_4-D0z2$Xq@gfMs_Eujq=%l?LM22-3{E2@b~F>f(ny0 z6k+d^VWOL0^E!x~Vp6OW2vr25J8|*J ze7H^jf8C0p8%|y5hpzi-V1$_Z5$souGAR7nrF8t9(Vm zuP#0)clNLQfTK8$tGS+8#v)JT%AAz3cq{PL_R_AxriO+p2F%k;er8FPQC+ztl!3Vy z4KfD7Zf$+uK|KUzS?ir~p6>s&1dif`C-6|t(cH_&oyi{IpI_fZiLOg{Ih_j>CWMWV z$)XjE*j^M=NktsI(>eG7_Zes6VX}Zf#z>to>Tv3P)=M0tKFtq*I_Gu(W1i{5v;Vxa zH$gcc3pl|#fq&HI8;K;Y(Z&$V4>vCzW9+n620TQ&sD9SEYs5t_rcT^D3nI!U4q00+=wFIbjRbm|6;?4gF_n?_2NYJUY1;EGAcT zazZO%&%2$aTHd(DyA`gAMgdy0Y5gW(w2kZIFN8@F7vtk@x5|h0J%|8@aBE{V(x7aKnDKEac)SYV9 z*+KA>K`P7Yc6uu>4-`K5RLN$(VlI#%FZERVW&?s=MMceEnpq4(JC`g+M4i-{~JMe`NQkPdFQLJ4a?@%LdcWYv^){=ARre38e`=L#_ey2 zYPinZ(rE*lFE7;`7f~sgBINy6$@8k>;T))J0`Z#KCfbVl1eJr6-lW9IA z?VxR$eTA_Ko4qBy^*R7K)_VaKM5*-C4O{Zg*$5?9sNXQNz0{`W1U^*%M+8iVYs7%O zaI0}$TnM*Dh1~OTM-P;$m-oFbE0(Dn z{^Im{sq4Zf{w}=N{mrY+v=`;MCDwU$bIO|8u}9<_3;4i9@uf4dfQBf+`-%-1mk3SEqeGqO!-#_=c zeqYes7JE%PG@vdI5x}6Hg|{(EJq3qGtB;Xe9x7V3A^h~S3q8Lr`&h@ck zCs!bfI#rTcHtzG!Czhu888GmeHQs(vS z-FXKb<@cc-eIk8B6#A64^y&+#mzp+$*^D^eG>|@Yc3oK4Vn!*X9Gm%~ZgFg((1QA~ zZePq}ByAfF)|96@gntE_X2wPTyqHP$K4~8GR(S;sF+@IoA~&M~95DDBg?^%x`PTma zdHv1MCZ>@v%u`W;nN6KpJ6BrMMDoJ2Ka_=)CoU19T^H0{&-5mNh&sNyJ8J^{Ng(G% z`H-unGFDak!;D~f0%?-u**|pzcAnbH1l8~IX6~`Sxv>6zb3WS&W4<#d>lZMdwPg;> zg!o%4zCQCa_QfuI!4dzm;JRKNn0m=KBN$dQXXNfYn#5P6vQ@&9r>sofY!5vzGvO7c^Hqwga@ACTM3PM!8W9rh(l*@ad zvWbN zR(b-+5!A)Z!u;Gx#e-jAV{+7StwbL+3%>EUsxP6b803DJzVUS^!>2Lcnma8Hy3~e? z;-{kwswyD!hr;cG#^Iw;(L{Egu+tWNMm<_!A;VP{Cbl(G^Cs-V)iDBb?jPyYhKHDU ze^pQ_Z1#)RTDk4d085)HcpkZ8tjT8l?t`$O*=r%60u$nq1#46X$y27p9eu@Va%cF6 zXNalGU6_+XpX#OCRXsBWj>s%*sm(&)m1|m=vml3zsHsH=(S3B%d zbu>IqYpkO4xN`ey5DVYCgIGxmF;rje%vv$~PkettkY&=@+*1>mm&YcSpVya1Dyt<6 z!6=Z<{B_ixdM;|VAc9hYd2#r|46G?qnlt1-;t0vA_lzeaQvG*D>%zYJ^)|?)zKFMiO_(xiuIpRcN}}` zpsf04OKw z3uZ9lmQYNtJa=r{U?VunRRa3za^9PTC34S2}Bb3y+}S{Zl#*;5!fh%>CY+C4>*&&ALBNGPV@nG`T=SO6YT|& zaYBGl&-I|X;`V_~GuN9?(&UTQ&$ynCUo%V$omzx~)DHNm_WD~5A|$7?NGpn_36N5f z<91biCqr*l-W@K^!KOiBA+7f0U<7up`u~^orbFooU^ibz5 zDfz*U4CgxIvl&WU*FjCF$EsPpy1TC(@mRkf zMx4P`DRvcW4$nf)WhWevqm@t+5xl2L483bfsVvYhU?sypUrMdg6F}Kh&|y+}heALP z2HD3!EByuIGOtEEQt9;V*@r!6DYaW*MlZ4P*Knjn_a}7)4g>gO1oUiKVoA;>r^)e( z33x3myHm(t?Er8ygP)GgqW9W%ibBv;=}$#?rTLBThiDg_W#qNAMcw>}1q~W?Cs~oZ zohfu~-&*PY&pfO}F^JDrdQ$k5xw+e8Pb`vIa9?CQ9?7H|7e+2he*pU2b<16+k@bz={W33YUkK*V;$^j0aO4ctk%PU>G6$dSu+*kzk`v{p%ObBwyZY z>u8A3(1DD!-G798e?1jq3dKQeydFS2%~BY>v^<4Iua0aWhub_D6rjM=7;5_8)|B5(q*6b+Dj31OlOL9+R)7hbmH2eKzPePdmfD zmZ}?Fdg=t}Ox(?kRc3#q-jsToV~0>rdtevu3VsBWUW~KVrOCt=;mRz$mk3G zCnmOgQ3aw|?wT!~&f3Y};2JX9H?DUk6PR-*dLI@Xp}W~Zai^A+{rF@tmKG7CcZtUc z+W`MQ*qAvn)FL2&e69!P^be&>PbAS+mS5#rG^=@nu(xCl0qtfbq<%Q?(MnH{-gOn% zA3Z&RgGUGYnjhZ25ma2;{4ZZMcfG0Dm}Mfx?^cZ}>ld%WQRhc`64^Js+M#Vpx+WY` z{-C3}`o#l>d)tiNlIeuOmzY1o>_6tSo|U-xv-vp5GxvLCZJij#cR45^a%M7QLIKb3 zPb7-~!g6n)wRAbL&&}h3$=(j#cc034mf-N2s-w^|9FS;A;X*AlE{S+MbT-e;Y@7Y@^4O1wZtsVCm6Iww@gWopCi1)0{1MK3! z<)yAZmJNx#1S<9PGG3y^5ZQZ%n#2#vqF*C)5}`I;F5ysFb8|5{&*ya8flSQNc9wtn zr`-m!A`npgF-Pq2$YORg;NS`AEFm)~^$V5)Z_&wxv?}L;8z_g&x^b;qRGBpj#A(YG zk?QN_FA#G_w_SB)lu}|BzCfIGr6Y}oigt+Du3l!i&KTR8?~r)X!qV`|H4WdIm2mh$ z;>T%%88wX94D+HNd<9)%~N*?JqcWi$~P2 zNNM|V)A33$vlVORxPG!ef2`(&-{DI+i92{aC$FPR$_%lOP^jB}gH#3VUBof`vr3gr zwL`GkRf|I%4QG3u<3QHJptt@G`X1H*YK?|GepD^(j|QnfQ5u?9Rre*R{KR&7q_NS; zi;ur8oVi7n|JtNE5q?-YW8a|g6UBJ zE>eW-pKUie8EUF(z<_03wDnnI1WvMi)eLM_;_3G?9stoDM~Rc-omfdpa4vnz_i;DM zw4c3V+VAPAIIQZT1;xE^eqeDJbev?|EoZ>;(b4*#kkW=u(a$DcJe1({poqlB)k9K< zH-F1QrhlHxM&rJ#$L}NdAGWf<5Hv(^PaWcYcm<|P5*Ua@fxOcWAL<0*mEv)7T8R%K z;RSP4v!Q3|3(mq+D8nI;Ap}8&e(`q4Ioi?-bKy>w6|Y&)a`|%P`R@^U1_l&aro3Ig zw=2EA^R^fZ3k$PZhd&rHpdOXNw*3C^r^B z*2m|h0w44V-#xU5x9uVBX6#&pLRRZs012GfN8g>;O^F2AmR2&BKh}YErgq|PPQ%qT z^YNZ35t9vVOSz(2wz4$ve(9=HDGu^xu%ioQk+jg?q)VI~-qs@TBkt^xNqMkPlbMbd zz%pD?m~LLx<`d{p=^=n_y4$RNp^b?Gi7gwy2VphrEzl>rQFF7c%sX=NJC62a&g+LbK>*C(doNr+O-9)v#1psL3SAaPls_QnF7gsgP$9jF zCX6!cFCXHPSV|?c;;tF5S&6J43}_x0kU{o_-9bhWvz_ZG9>7_P_|Y=GHQomC_6qU9 zc%{OeOfq0OqztNGz|D0oh3W7|I0yId$e|80{+5vcboV%^k-EGJ`-v(K7OC`1mpl$ z9-kt~QJcsGaWLobPQH8?G+I2CKaYgzsvg;bHomz23@NQ({5}%Tf7j+^ z-K$NDOX}*=nQOtyn)SHPN;LgoJs^$YkeAplgIu9o<}_Jp;KNu2Nh%lb;8mhp>A_z1 zn7%#uf=lXGZ{s>bEE$pkOJZ3T#m;a*bFn_%A!mJGxz_xW{An zR6gfIXE^A#Q-oCb-0Sg^Sqx11_LONb*3#XU78h*^cMw|=w;G)~1KZ4mJNr-qHfyWW zP!NUs@^2CP?c(t- z)2}To;|X`qjMzkOcO!ccj}2@aJVm}N?60;$kn|7)rGtxfVV`f4e@$~d{$XcBg6Gq_ z8QXXSY{oC=h$k6o)u-t*%j>-0+5q|9oGSw11o1SDwtSzHZu~}72zti5wnCG+F~ioN zFoLJ)A%3?pl5M}c)yuUMX03ZzO%zJi(1-v|23kjVN zpVpV|GP(lUyd0?L8b{f+P-7RgrBt*kFh)~a@iZJi;~uZ7$)f+KSd84j(4avNvl<7w zX#X!-|BPm)turC_ou`;G>;z?EnYMM;>caf6hbpEUmkT^cKKgy~nMi(IWX^O=`F-cKVZo9k=j>~lWZ zjJQlQb~Q8V;IALMoCw&s)resNjCujr2Xwh`DBXAr-58@hZdufV9if%U@9 z7UR@Y)#%{<%BFL4mb-&nyf4P6{7)M~swxOdpHfq9o8%t*x>e%Ip5@(=#e@C#+sdgu zz^N0^a=wcGH2W8tJ?K8IHgtmiCBj=*(unY9z}oIx3yOXrD;teo;t`k)bNxXnOx^9@41`ldTszlQ+&iEgus2OEWfkLLNo zM`Lbn82hr{fY%4bNnXEr*pS#gY=nIRGEZdmz4yHDv@OHFs`Ud8s$>FNJ<#zsPvB0X zJjkl|v9fBYDOC4|ta@27Xg9d@M{Ye^mf))ft?rh2t@Wldq}R(DD0a~j1aRJWEROT8 zr|xzRLiOb%@)6pWKB;Qtt@iD45o<-z#EuCjyI}B zWvL4)$aY~*9m*z}y@f$xn(3b92C&`(9k1l~GCNRPSOww#W`0P3N}LOY;crIO+t#(W z%U7L-RP~e-QqcKjw$UIQAV~hc(TRMSI5a8GA8R;a#p@gdbP2B4vE61}1o@@%4$9`8 z9eCACUtyggUjDA3YwHYwVOtzKQBE|2+pK=-k8@`_%^q}zZFTqL;?Utio~e_NyNQxO zi&FonMLt{aGXtNyb9ffLIlO7iknHI-Pm8@_J(AO*PA089+d!x!(&gFdrEHT!P4ULrt6@bVu8AOa4gsfQl=jW^0CwVd~%E> zK&L~8TC|-8pzID}91VHXg4d~9P**`C(iE!^>6g3UBo|(;zCSv~QnC8gf_-6rL(+^yxv%UevY}Uf3TkLT)w9f|&zEStDg;et{_Gk-LRA?#8ToGcjf8 zG?JEbv-BDB-uw+^P`Ag_aQ$e9VXdJEd`6e z$Lc2h<>CR;0}|$s%(Wx9;(Au_clqoq^S%JKzI(VG`mJDwEM#`77r&T<{GEP<+LgA2 zyYV3He#o7KD9~F>oCiHmbFA{nFWn-)8?->=Zlf?$#mh`~Ov=Vk?d2*$pazw-$>)S@ zS0cG=Y_=(?KMmH{5*$fnr_645ojT9msIxjGz{aM{&#bKe@_bdt@m{Zf8o-1yAz>!p z?>u@X>b2p@y}20gp}zjNwxFBA?bai8r|UZ1&~wxWX*=TX(yRP~LyB5^5BNFDIZRRW zv0xK_^rieVm;lCObS^B4HIGb-1Nqux6Hu`&|K>UC;55)XupVODxfQDw2BKQ^*S{Yk z?llRmi4)>(=R$6a0gro(c-DET8daJBGV$j@!!xkz!Z%0e9oxJjwxeSoO7( zy09*~X@F?vHWx%3X9j`5&-T15n7deBeF+;m*S8Pre!jR=7P zs_5F9&bSOU0498x%qpiS&jiDm_?9Ch`bgr`6h?A z3t;i|RFb4rJRe{W31@>S8iktaB_1GIOW+t$3A4&}!a+wxPNQuXt)$*g=;d&de{;4O zpJem}D=MFbFyAWK#=1$j@t3phHsCYD>|uuM!_TtGh(ki{%&HsxF+c$Frq8&WwBDWE zjk9uAQx$jMbmQ~Pz*hC!?^hkcB~48ZDi`R{7n8NvY2@8$Z}ln8^@uscq$wA)p>18e zyi^WCT+mSYU2Yj)1riZgoc726^a5<(co=hZA9E46`E11x3H1t@11ROC9RpBGRtZhir9yw0Q1=R|uoE4C1(nqE?}^>U~Mjd_EOU*;w#_Vn_! z8j%(Wk&-*`Q7;V+*EH{$ngL44g6iPFQRmS+&ZDkXW%mAx5crs9N!Zy5)eg{H`f)Ar z`e`}{$ONR<{_R&lPClWBtm{vB`BH*r!2hk=lnbmo!UrDkIa+sT~p# zZeM*e9}F69c+bdAU!H%&Np|6$ays}PztdLjFbGeQeTFK_xAvH$y7SB{K#NnQz?waq zLvnAJ=omY?$M z!@f-6pxG1g#^QcvM==Y*;Id_Qi|sII<=aD5eBF!4Ziy{K0lhyv{$Dr+L{_kpDr?fS z#ky7p-($u3=Yhqou5Nqv+oz_%Mlq0#)Rh(}+=csWJ)iyrlIVRLlVtCB;;# z#cGe4_}D5Y$(Y>0CAyAY;hu7K30XlEss$ZuDj_MQdo8K%eHpS3#~>9JL|OCiz2Mc} zeS$w0ckq2{P24Q=PC~-0(^s`=TzC=;RZna07YA-j@gFE8s-TU=D!7ssR^Pd`c@bP& zRoAu5exgb@bGfUSVY;wmPbI4!k#5rF+!Gd^&rekgoD1!I`iixzz_V% zxg=a-xZr7XZ)AKNn%6TJ-SeRz^l>+Kdsg#~WJJKFM&dFWRs^J;1)vyLgnVunQRr6Q zVoB5h5;L~?9FoabVZ5@3qgY*g#9?XDkyYjl_8FS0@00?~iQ3F-w?hvQTP~KIIPvjg zao}i2``MuR_gk83UhaM2VIN|Z_~DV8JM@OSS_Veo;CqF~d47tJ*KTo)@add#W9kha zF6Ys)5MQ5ovKnwc)oU)A^f&%dwM>oLJ3qJBQusoEAxWDuT8beFDP2j|i$Bn53Qsu- zpK@MYdIT9^Tg=!LC-vZQ+m2O9OW( z(2zZSZ6EEe402PFix#H`=q?K7f{x|%Hd_pzt&hk^ixKlq zZ-<)s;yGm8PH!w`;SLGh3)B!?OBnyo(zcRjD^`fXziYr>s?RI!rp9y6y)=kFdebF{ z0y)b7eX>mH0ub48Y-F5i8?18owMI9|lpp3*S$N-Dd?&ZDWcg~GPwml_rZ<tU*NPNjiigPM!#7cnYSK_w@8jmt=WXTvKo&&}RZ%Za37lk$20 zl*yefDC)QjNwPvM?ZR~Fq|hRE5A7LfHY>;8x;;0n09Z#O&Zx`UB1zPz;9g>NT$=ln zP{ak&Hc86JyrIZdluCt-7y-bB}(;gyk#q8=iS zk(K>o7@#Y0-6Gn2OFQ6!uojz~N5h*51_fOIAcG+Cmni)&4xur1-Gl_03Z?chyl@w! zpv&06ToJ8YTDT8}E#{iM*$2VT;_lIU zV@A4$^q);S7HiT9lM+B5uXYuH{<5UO`oQU!T%;&oKi|lp_bxQIk8Nqn%H-Nax_p@F&<@J- zdTlM7%*fLZ$ukNDFBJe+^Z;}G9Q5C|(ci(6Ny2(@QpwmU5u@_Fk!ZToK`4>rtl_l4!VTxV&UZjjLW5lbAt|_xl3QR_Jk1v5V@F%kEp2<~|T z)!*8DZA#E_!SPN{)|+}#yeR<{DRKKQ0Unws^EQZ7m)v{rStST|l?;$dH;bDRz#Y(& zL~N^PwR@P*jIl>P@l}}xz&Pi%Hn2dD5B~9DhzM~kJB-*9Gct;EjMfl zYR|c%9_Zmcl8yw7;h6Gy4r=bL-rW5Mnoe>zTJguO2c)s?WlCTq`Xpei?ck1f=jw@x zIm=L^yR2ho%7TN`zn1;Jm}oE>U`q`jTWxiyx3;wnxkj%p#4JU*63kNR`yS3Rh5NDb z768X<)tOc(26&@*{#MYP7C1U6wdG(J><`Afhx@0Vu911%qxBM<$D$pSs|6@_=Bkg)0X9~hs` zs~)%QliAmGsI&Ke1jUoPRvh%Ux5$BZf?A_TQ6;Q}oaI}*JOA}!%~$7X{j;vlmo(oc zZX=LCJao%1Gvjb|=SYTTDpKErj82j2%6*C~(5ZBjN+Ym4r)Lb_Kqi;zGxfFB3mpx7 z(*NmelD*89+&ytc2@yuaa2n4J>n@VEzpG##mj=P}Hcw~*;7tdYO~(z)i>R$ z?zWfAzNC^2u6b5XKC!#23f!~%r?3<+XHBaM&Mv)1FOBf%LGuCM{^C>PusRO@E|{3C z?FGy09lIK0bSyCul|qu>8XYURT4KBPo62PQy`>IT@KCsRCjZ**5V7c6Zr6How;j>}uR5wc;Om&MQ{st865-`*qnGyTuBCEG3I*GDSBRcV z?>Y}&b8uDqX+$Oc1~R_alj?5r+=UBIlh6PJ$ZxADK?w!$j(!;syZmhWAlCG8&b7u9 z2b4${N|os%X_sITQ#GLNwv=)z?r;tHb90N7dk?F%#;65r?`i|xMsNa|k#;{cvq3>Bi8vQV3N{8dHguKv z>IK3N9uy(ocaWJ#EyqP3JX~l6>c$mPH;<(C35nz9JTQLF1D$^CS@RE9Tw|n3$ai@1 z<+&1EeFw2yl0A?eHN2x{2J;5oD@Q9c| zzQCz}Pl8tW09u_PORJV48epi2+m{me?7Gv{J@pb}gb&ZD z%CF1{j`C}pIgkE1;(P_t+w~3jGRotw!ZF_BA5rGEv?IiOaRD7kr!}mj;yvEqac_TA z{VHTYt(1=8ulbzLPGgtfZiMdXY$fgkCNe5%R#2yGVdLAW;XoFt)Y9@8?Y_W~xawS< z{vxA&c(ipW^1g$Ey07Lekv7h=42Tp`C+l}KwX)BSvp}_Z_h;K*9yaq2A)JuEj3Q!^ z{a7}q_;i5BYbY_^8w-5%$k3lAFrv6Qgh-?_gJ;KM?OU*ZZ>~cJ07PY!`-BtmKJxyh zgeFdNkHRaB3n(=g`JCewtwSt_s}5eR?6v(P9*|wtCG?U#@{U5Z0T#l$bCRHlBb2EmU$RUa-iWE`vt(!zKkl=5%2O zNdSl{r5t|ts-w*HgNH>VQ8aH69E_g?uG{y2rxzE4=T@K*gSkr1Y@p=)XT)lJP{5Q^ zVQoYp+h7J`j9j`@D;i*ofh{{@uB^eI*k7-w` zlW+*Ky_NwYsT|7#+g_iwLW5IAksC)shdcKu&p`#)%&(3-dA{ z;@3VTCInisN>}hl161b#`p93|epOCgI-hBOjk9h&YKCwsr?ecHQ%1RA>s2WCzeoio zKxQ30uec~VclZhaHS&QV!{hWK@72>1-p^Cebnr06Hs?9_Dw`hoRnF$~F$f6(W*EN# z#gX1ktRG3a;%~2y*NzbME?PqA9f%_8Dd#JrMZohG=J|91UERU)PBcAT<801h7soyN z)*fzmP#ge-M2BUNnSE!)$~&0grryJ)+#=Qi?msE?4|(y77x_axFshG;O_p$M)WA-$ zQf&J_J{TdKP(Jf>D8TTznA4RrZUjv1gjOoVIPKzGuICrH>dvvtCym@t&rpY5hQW88 zV$%AoI+$y|9q1doAFAgD9RM(-6LT;c#=xqDfZXg zb+fOo7YuDR15Hb+%eDNlmu}n#Kp4&O_R;eAv8fK}aP^w{>&ejRqfXA{_9qQS8=;`m z+F>7baQjVDW4C1t!?}pHlDnnz9>7xf84+(lVc5aqn4wTaP9%p>IWcl`6N`4cbbPxv z!7q_PUmpx=LFiVWg4)chy9ZFlU7uM8!E$@Sp;|~KxnMiWqOgdqW@dOOG9NrR-u9Fd zu;k^ISVbCqxf-Xeb~b_*04lqk3$^Kn<$Mh90N4C3FC2V1Yo@7`d{!_oMgn`|ozmc7 zw2wrI;m^xyTxI`hiOp9!G+vjx>{B~N7_6(Re$qZfO6wzm^rv)CShcuA?9z?nmpWuH zg(e6t5h*UQNVa}KH1<(XFw$){p?8g3_EGgf4zzSo4=P+M?3LD_c3LU`Q`7^&CdHJK6_$l@5p?>xivn9v^U1*piR^zIkKk zD=t_+vFJ8n$b}uLfaBm$?{yEd`6X_QV>PD6@+JwKsXf$nVZ&Y%Wium$v*7m41Mcmc za`3PM@7Z1Z(yvWOu8x3kF$-HE`pldxQ9t!jPf1u$=_mDYh=pwI@;zbQyj$>ozdEm` zXPp8XJHX|Us2zny*ujTErc3G=1^nPqT{3BSSuQ%<0jvx_=p+8 ziIHC6yxwYhyLnrdX$l(|X)-sFFG;+}XDp5N?e;P|7<|B0h%f0vy7f@p2RxYh4kS@& zuK2xAzc$szx7FNCM4MIm3Z%p>co^^WePutFD*7bHp4{EvFEd)n`N}FLl%rZLy}be_ zsARkbC5XTJT&Hce0t$IGxbo=xVFgJ<&bwOtU|`Wi|G5KN8kj3;7HFEt$dpXR z`i8n4YyD!b@Ty1Zr`lBAG88F_WZIt15tON=bVP`o97qX3)_qaIe!HJ|7Mp2j_gr-7 zLJzaGjjV*UWBEv<4l8UoN!Dt5I2gvZ?K*jVJmM+}%KVGZ!cd)c@=?W*N=EG2bP0Ga zL!I%r&%8<8TjDDdsejKpTYjBmc=$EsIteh)Y33y-)|h%Q%XbjK>H~T8sMxdE0K;vl z4D~k!4S8J%yB2~7?HTXMV`8IB>l~O%qZOd^f|dh3aD1bivj2Wa%(^@>NJ9PcQi|hY z*$~O8st+Me2kw$CZh^BaBwOr_*GnhG>4?$xN%JvAjM(}Xqmhcd-5czC1BB#+UdL#f z#6=g`&hp#0$w@GA+CpsJlSeI>_Y`@NXxcLX0uDm;U-I3G-X{)Ft@3Iqg|t#O30`35 z)W~*4HPc9wA6jLEKpP_#ANSuKCR?G$0_vo{KOmLe=V60LFEZ+9X|_KJBzfFKD(sE zwDPi`(P{2rZrL6J+LQ~IQG%~SSl34BnX#tCmM^cS^jYHPzyUM0P2xmS(h354Nhl-Y z9clp2$zv9yswqTNtF%GXY{vgEynUW&u}y2_21%<8jc%dr++rQ1v-GK-gFDX+KJHho z2eqnZ-pRTx&c=|wgAt3`+_;?p@ z_ujrYAuBgFn8^Es&@tgARG!=WZ6AKcP%hkQJb(DWC{6&Ryi_Z{F1*4Njm*;;x))AS zSOzOQXzpkEpX23y&2ntNfxM^Xv_s`|kEGR`^S@WRVP{hMxs0dEZM&<`x*xmsZ|GF; zSC~n~=$snAiBA3CBb{?tf!1LS&wLD*e5d`g5r+8k#i^BRr;yV7-*(DRIk`(p&!24| zt#!5TKJb>K$Ez;|IM=IDiz5%NB-sgtsGn>IO3+U|*Vk_F5x&Nud~bA}pUGy#Qjfp3 z;OtwRUJtYm^;-pwW%mJ_5^qEB#@teFo3dWwn=)syP&M)|i&aemNBPy4Kzn=TD)9G= z*cXzvxxTXzeD*)+ew9C?M9osld6~%d_!2jN?Lx^%UILutCNO9WEQQ_b7AX1U72yzw z3Xk>SP8bC!MwpO}j7r9v7Aj}qm+s?rxHe5*l1JM%?gg;qRj664Efi9*yBT6K&j5|o z1|3bDUEX9JIpKowy6o7qxJc6GPfG0eELiE|opYxe>!}GZ{H{=m_6`?N&GE8M#jmhC zV`Pqf^Nzr0@WH=s7)=#eb!Q5ku`T01!}2obaL~%T2un4)kC^20UEplF7l8hZj>)S? zDC`ftBi|kxMha^euM)pq)c<35tG&tNopWK~$r@6|c^PS05sZmgW~!z(_SIv=(gR@8 z&dr!9EEEzyj*gj_W8q-m?32x_fK5*!t_fzX>8CwO}F*4=kI_oyGXqr)L`ma)Og z34=N?lCUd5YyHEIGa(Ui*{7xmsB-!LSnUcDs+=8cQ5Wu|13+ZDtCFcg>Z0b8uTE6JsqYtbtgb=O2+#uii0kwRT@82-zvC&Sjqj^Na*Gp1`F;4^=ZEF;7n zIX)P74>70*zvE0j@x<$@GzLa80+FBK%{HX1qOh(Z(#w6&KHc@_0;^k~&9-Yn5kozW zZ+&~EzO*Vg_~TN_a;}lZKo6I#*AZKrcoKTq_o#G|p5bO*mLRH3hA=xp50lg-gSEtQ zOf^1Sp_Z^m9*pG4p7?3&`pY0&f2=#I?UwyW@x6VJY-9iXBKsu%vaMxlw09lPVyUCI zES#){J1hCl3-leFCC3Qvr0O@H4b0*0{f32UA;S|;STk#9a11SdUBeGYj6cJj%T6P& zOP}}|Fl*+Vx&tms|6+yTZ9&5hl`3dRid zHWgZC_VdHE!xM)NjK&`eJp8G3=+J?Y!YN0OphBT)#=!K<5zaP8PBh5#+;;&q=QbO9 zM)_Zxow|g9-^4-r9NyqVE=eJCwmM6K+73uT7FKKcN=C+2LSgYS6t^txr5LY2>%hW++w zUZLC!coGtB-`lY^#4rsa!IRcEq}adaMb;_goD+N%|s&lump5ae58RwFqqJ!ErS2dC|VZ?frH(&9j0I+yyQ^YP8C! zkslj>)Mt0L{NBa0KM%@%m98h=Or&)y56?**vC$gEJn;57_uQd(H~+LaoXrwO4&Ex7 zqx}66^+sq74ZBuFdw;CNyv+HO3w0}V11)wY6XZ11hh0)E1bBk>9Jj7`zig;aY|fY$ z|I>o?oO`}%Io&)?UbJKn8!Vb;w49VOPx zCS{K61F-t5+aA!cq1J*C&+a^+6{7LrL(-RI7J`YRe2hs0c_YDeTODcIM+vL5O-n=>>( zy8p|D4Ic&tG;#dR)f28g!;IU3H9lhdO*}S_g70mM&K$i?>#>Z}TjmMY?NEw*67M=I zMny-C4ih*p81ecgKSzH#=dJR}+7_9a@8llnRif*O#U!3}B9&+bv8l1C%MNDWdH<&= zd>fN$;d`BC=yFj*UbAp^#IATC-eaJlLL&u(xu@oXQFk6^GE!XPIK6jE3?=rAi+10ZTNZ7VNN+O4dFsnc#_Ut)qVR$PN>T_jBx^RgmM zyfgUEJ9&fWjhT#39kK&uE&=ASfcErOyhP0RI1N%G z2Ue{lr9qZLxH4wM;Ck!=m)+G27 zH&KILkGtfsb!t|WSDQGOoIX4|u;hpjMvilVzOvPeP&V857T+Df+y(wGn_Vt3ikc`g zK*Df75B zuV~+o820p~X%`d}u+wS&w_F#3mpw{J@cga|f*BpOZV&uRJ_hD`w^y8F>Fl{;k}Bbm zLSXOTp{ObB2yDB^^B>~F-M-aN+lIT*rcp?G={1vvz=3aCwzcZ?44kx>++5hq2Afm|FP(dT8m- zxRBlz#D4BkZzS0MOv01YD}0YwNU)5VZl zTr%_=Pl?1UYqSJe)wg~_b-S0(4voM+hoccRMkNE?6u?Y7-uAt8H0M$9hM{0~c}}e9 z?rbNgk*O5|26KV?wcK3hsm~O`2PBhPN#V$lgLQ#enhGxuO(#B>E*xW0i^dD{`xD@) z;#2Ds&1zSYNK+%ZJZu{~o zdiVfgElH3(jb^BQ`0x|1Ut7zqlcM)_!7Z4LD-#}IjGk>}oBKWIdFW_!huZiqLvc(&f}nteqK1 zuU!RU;+JWk0t1;*+4HwUoqHt5M+{#!GD?&S;L6G7K5lY)QKo^}<;Fb6clCAP?#G_0 zduvnAX@usZ<`T`F&p3(n7je@B6M@^k0=lHLGgMg&77KmwwLM1ngX<3zeNeG6#{ z^oRyD8>w4 z={(BTbIU%`F}gI!X8VIRVXG{V&JHNq)6*D@B(8CEc6J&p_ry)5IsE4wwtzI_`>Abm z(jzcQ;$>!ce+27T68Q*kx5ZClB7O-7d}x?dI68CMsXJS|ubtlkwSlKEVwUm}D~vxK zagS(t4GelCLFtt0!1gPY0yH|(mpu~%!p`?a!;XU2vlgv_C@l7e8I{L!T%OZIUxLKB zlzN2CJAdWn6!p8-9M@a+DPaJ1_3iC41ZTevUYQ#$TqL?&@>|BX*pqgFT=(qk=r9{u zMX`jA9#Wt#h$Wbb*AGUvn^#yzz)q{fs^3?)Wv`?lvGkk#twf@a^0TXU4nD>NtSA!ZAvs!1I*UaBDoW=+sE)pBV66I&;d~0QxOw5!L_CliG#fx)A;s!dv6%P3t3OUrzOL2Pis$7hM z?9gl~4Gb)C7oo0Z*S7l8=R0H&kh(|{6R@+~O^)(q`xqD)B;%g-Edn?|vIRBqYl*x= zjsQ{k`iF}IDWQ%EXd5&_QPtO(Zew*uR!cppp+te0T9G};azB(F@znT4tC93pEniwy&X7`s!5c+!*kseJq@p4Jeq`Bh&N^%$io<>Q4-Kty~Eor_s% zNs0b)il<8Xc|X|E8;fA{m89K){hriU;;DvNoMJFP8+ufod(9EzCtiM>JhNQP^}FM6 z&s$Tk?!vv;qAauo@`D=H^zW*lx#PrYlHbE!qi5X4ckfy~98P^()MkQ)rgXcACcP{H z3DfhlbgQDXE_5gg3Z7VGjY)` zb)*AcL>qbA=JWBZ#`$@hG5{e_5i!{uYUe$z5>`nOP00qJq6RAko|v$#H!zu;L;LLl z9NVl+;(w^QJmE&8?s7lxnxLMpF8}1k9dqUS2Fbu{>AvmZp8*0p8!^aad`uG^Y_|?i zbgi2rei0wc)srlwV^wLS{uV;Tcb54eK~VYC0G<7rD%xT%v?+Sdjn*{~bS+AIv(La9 zg@>K`E)s$BV4I<-g(%a=A1!=(wuus9;=)yQ`AbJ}B08O^V~A9EHPqbd=24!P;F+nkxN=0&RY zweJo?a4_1($->oEyCCY%ubk)7^1h22;!3hxMK^)4IRTJ~f$GrqEBV(wJ)e3A&{Jp#I3X=;Q^&%`eKNhBHS2CeTfx8Ptk|IqGtjO+IHeTM#3lwz?vciFIy_eF{uzV7OBGTOL$6GW{(M81kyO;S z)wJ>Z(eXokK@xo(l0wxI5(lITz+_i09^;`08~&ANl6YAOc=+_YiSpvg&*Xz z=snVf#j=%*$+FP$p%YVETl%Li7Unp1lw!VyNM^A2PMzz?cl_EzmGJxW<1Kr3ivE%P zksKKKfsFO~>@YHax&~4YrUXUsJ%=wJ_s$k_%T~3$<8^

X+k`Cd%lgxvXLR%(m~@zAp8ESV9oEkmGtd6+ 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 + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + App + CFBundleIdentifier + io.flutter.flutter.app + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + App + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + MinimumOSVersion + 8.0 + + diff --git a/ios/Flutter/Debug.xcconfig b/ios/Flutter/Debug.xcconfig new file mode 100644 index 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..f207cb3 --- /dev/null +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,506 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 9705A1C41CF9048500538489 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; + 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; + 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 97C146EB1CF9000F007C117D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 9740EEB11CF90186004384FC /* Flutter */ = { + isa = PBXGroup; + children = ( + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 9740EEB31CF90195004384FC /* Generated.xcconfig */, + ); + name = Flutter; + sourceTree = ""; + }; + 97C146E51CF9000F007C117D = { + isa = PBXGroup; + children = ( + 9740EEB11CF90186004384FC /* Flutter */, + 97C146F01CF9000F007C117D /* Runner */, + 97C146EF1CF9000F007C117D /* Products */, + ); + sourceTree = ""; + }; + 97C146EF1CF9000F007C117D /* Products */ = { + isa = PBXGroup; + children = ( + 97C146EE1CF9000F007C117D /* Runner.app */, + ); + name = Products; + sourceTree = ""; + }; + 97C146F01CF9000F007C117D /* Runner */ = { + isa = PBXGroup; + children = ( + 97C146FA1CF9000F007C117D /* Main.storyboard */, + 97C146FD1CF9000F007C117D /* Assets.xcassets */, + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, + 97C147021CF9000F007C117D /* Info.plist */, + 97C146F11CF9000F007C117D /* Supporting Files */, + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, + ); + path = Runner; + sourceTree = ""; + }; + 97C146F11CF9000F007C117D /* Supporting Files */ = { + isa = PBXGroup; + children = ( + ); + name = "Supporting Files"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 97C146ED1CF9000F007C117D /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 9740EEB61CF901F6004384FC /* Run Script */, + 97C146EA1CF9000F007C117D /* Sources */, + 97C146EB1CF9000F007C117D /* Frameworks */, + 97C146EC1CF9000F007C117D /* Resources */, + 9705A1C41CF9048500538489 /* Embed Frameworks */, + 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Runner; + productName = Runner; + productReference = 97C146EE1CF9000F007C117D /* Runner.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 97C146E61CF9000F007C117D /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1020; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 97C146ED1CF9000F007C117D = { + CreatedOnToolsVersion = 7.3.1; + LastSwiftMigration = 1100; + }; + }; + }; + buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 97C146E51CF9000F007C117D; + productRefGroup = 97C146EF1CF9000F007C117D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 97C146ED1CF9000F007C117D /* Runner */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 97C146EC1CF9000F007C117D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Thin Binary"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + }; + 9740EEB61CF901F6004384FC /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 97C146EA1CF9000F007C117D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 97C146FA1CF9000F007C117D /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C146FB1CF9000F007C117D /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C147001CF9000F007C117D /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 249021D3217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + 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 = 8.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; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.physikLpAppRewrite; + 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; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + 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 = 8.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 97C147041CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + 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 = 8.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 97C147061CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.physikLpAppRewrite; + 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; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/Flutter", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.physikLpAppRewrite; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147031CF9000F007C117D /* Debug */, + 97C147041CF9000F007C117D /* Release */, + 249021D3217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147061CF9000F007C117D /* Debug */, + 97C147071CF9000F007C117D /* Release */, + 249021D4217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 97C146E61CF9000F007C117D /* Project object */; +} diff --git a/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..1d526a1 --- /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..a28140c --- /dev/null +++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 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/1024.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/1024.png new file mode 100644 index 0000000000000000000000000000000000000000..25d911127bddc0b17f6a0de3bf901dfbdc529a1f GIT binary patch literal 18804 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 IPse`yKmJ?7EC2ui literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/114.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/114.png new file mode 100644 index 0000000000000000000000000000000000000000..52f226260b6d1fd3bf67dc2b014196b3948a3667 GIT binary patch literal 1844 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 Vm-;3)*vB>sK-st;tF6)Z{sDEQlRE$a literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/180.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/180.png new file mode 100644 index 0000000000000000000000000000000000000000..a937d81bcf5f399a677fac41fd2e8f968030631c GIT binary patch literal 2849 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 X_0FI6Uj(mD00000NkvXXu0mjfR~{;@ literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/40.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/40.png new file mode 100644 index 0000000000000000000000000000000000000000..f293da9d51f63e33a879cc7e83983c6d11965192 GIT binary patch literal 765 zcmV~p|!PCgyNS-M)p3JMT$q|+z>P0oK}7lk0f0AK5R48Zp2{Mg%0iU07z(C9M0ozh7AQPQX$4LJAB9BgB2%@ahJvcje2fO*4uKiWrfi(bc?+8{ZmEiIE zAy_-Anj$rv!CMS*y*Q7D3y-m|^b|{vo?&6}2`){~;mFZrAR;*3y%4L!)qDmuP5b98 zw%XkYi|ML&uErhw-Nk~%jx6HMKJe@>DX z@V^I6UoAE_aQ^NC2IP2i^8h6^52J~%m?Tbj7Xp!k%>j%`KY!f2db}_THrO5ewmtV7 v4%|WpBEty9({;sF4b-z*z!tF4)%3t0_N>jJ&sj|x00000NkvXXu0mjfU4UWE literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/57.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/57.png new file mode 100644 index 0000000000000000000000000000000000000000..d9cf5c7e000af4170a4454ab0893945206284719 GIT binary patch literal 980 zcmV;_11tQAP)Z) z_j%3{e>jfWBjtVo3uz%Oq=htPETmbYDKe-g3HNR|2x$-vvi;Ii5jm>0V zL_`Sc0M!(E_3E|T#^wJZqv()CF5k!RFe!m33($W$D z=Pz7bE?ae*@sX21%pfAf`gRdglZ0cd3B{5`x9*_H+g^0SYHRPNrEQC5>!@zXGiRsP z91*o|CnCbo@PPv4XgZ7CQBAmayRngHC)P$PkwH2)hj2Km3y>dw`h}(wP+5`waGXFi zfrv0SzmU84;xE6h+^fyxQ+8xf-G+!THFGX^@8!8aHEj+IgPb-q@@BbSo|`vkxhj!3 zT|H53He12O^T}tYDr4d)X$k4yjfk*k?;{1svCIqDYArq4;%|QQdLa`L#-qgy5 zIYlUzA{0wf@AejL2D-QS@%Xw>q6TjUPJVtG5y5761ymIt-E=OKH#<92GUHDB>Q-y~`6HFH z)w+{S^D|@Px}6S`eI!5l@FQ9`bX3mqM?Uhq?3)Cc0UwQt5| zvm+vSeci@C$SQ{X>g#V25t>^%aW%ByYG}pP(2Bch1C5@I_}cHIN9iLJOX+_8s{5un zx^*XkXo8@cEXdtDSk@I;O2(~D^7gCAD@w9f58Go7A-Z;VQZ@tUYhcYyIJML=xrYrI$^j@bMkt(XHs;F=98Um;( z(jSg5zqQKyx})4UU64kNg)~bnq*-Di%@PY~miz}~lLmg^kqFBG0000$1{9r!3 zKl9#WXjHA>{}6Kf1sIe;8I(a8)Qe%z{}M^Fpcv!N6d=RW4tqV{P_074A$DNUB7|tuj~O4A(c@e>(z}7B_bR?`o)@|&35_9RS*%9 zLj}kV^sKGWPmg@QX5hlYLhJd-lfOYkNauCihq0s3ufM6|_=y>OclvBAGvA*@{nQV* z`1_@&!q5M50Yn7FsC5pMi2gP8Q)gCS6?F{J7YA&euZ}{8gdBvd3Vmz}syP9z)QDo# zP&8@~vPBRPPSzXP`Nd&;@wdw$A{5Pu&VcrFDR4u>tIjuBuOd5af{0f1>gJvx#GHL| z)lujGmqPLx&{4GlZER|B#s0Fb*4%0#+Q-|rnQ$E{>s9n_iQ{E!s;%~oHxFUc<`C4< zq(`8dg#?#|kj}T&zW4se@OO242P$b6`uQ9OhIVI&^7!>(JXEA{3;uBX>uRLT}%>hd=+ikJ*Qh z@!-Kj%+5Y)<&T@UaOTIKu>Zh8balS~B5JJ8HUrlM`aB2ko2>lN4cx(v#o49cJk%AgF|fPQj#*$qQd@FLWQ zll9YW&~#QpGBx5IX!HLCvs}Z@-LGPL#~$q3`x?Zog1l6A9cdf1i5(Or^hOd0M-qs{ z1~v@RR%jEu^cNeqagISZav0QWVNkDyLA@3R^;-S`ivz&C{3<@200000NkvXXu0mjf Da#Z6n literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/60.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/60.png new file mode 100644 index 0000000000000000000000000000000000000000..5104915edf18c2cb5ee78de5c634be3a09072989 GIT binary patch literal 966 zcmV;%13CPOP)y~V5hfG+~q(jXPR|3Mi(EXA7teFf z^Zh=FDEb_GDYDyNzyUj82kd|yumg6$dncxYGe!Y5TfFCtPaHy@e6lmaW9ke(e*h7= zulW4?8BI^3Paf_ZaKP+W=FJHa_K($u8CuF5sZTkG)`yV1ADEbqf0WOuU zJZ!5n+7dP-lT}-uw#@Ary%-92;#U5={_}#8JodoLo3{S9Bt&FmND(nl<;C zwiJB(b_EgPk)b%jNRpx9R3pJilK#OEB7(=`ZOmC+T?OFm_dg*bXu0{$0oQ7ETrM|h zZI+BtXo;FFGBJA;kGGqL`X6pt<={}1P&7@(D0B{3L`Y?(|8;I|`YA+&ci#P=X_b$k zcny!&XX^Rf7GO17WdA@AP0u&2@JFXVLqss_2F@4-VhIg@Z=eZm#dF*iU`3xJrA)OH zF27&=0}(OxP2JYuiZ9Z`uVjV;j$$I`gFJctNipZTT*EFz>eb6Z7A!8dL!BO>hU?xDvY*pxnc z{Cx}_7~+_ zufOQRF>{-SwgGP*r$7B-qn#Wvy${~8EnTTpx8Xsxy21}X{>;LgZxekig@`bc%36lC z9K5u&+_;K$x!kzjU5#{kyiHfN!SE&}{9Iyj+zz)~}JK((nzS9WU8oao8byFQ(u|Ih05D~`g3hwsxa_-j)4Q#o5 zoxZ?;rN8L!8d%ZiNM)w!4Gc6opdNpKq%yVZNXx*AzJAA?)((=^4)XZ8HGf-ZD{#BV o0oy$e*zR$_c8>$Ld-fdoAGYar%B4X>cmMzZ07*qoM6N<$f|t+9umAu6 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/80.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/80.png new file mode 100644 index 0000000000000000000000000000000000000000..fceb0db233bc256aaf9ca7093e5399b3df9f17dc GIT binary patch literal 1261 zcmVlfpgEc*fW9sXM6|6`?XJdsP9KCs3Q=iDb39c5!|?&Q{c*TFK}_D5!p~QJ z!Np5Im7U8!Uct8$=W$}}BRqfTFueW{hzMp&Erdi$^Nv&nu-y}a!|B5RRliS7J(K1~pH0a&VJd1ah*dI>}Xe=v#gy#Of7D;>1Bcnb%fJ%}Tt$8hu|<-B-wk_n zyQ-J6rhp3zf5TufASw;5E|irLm4*=!2jT1pf{5_Kp~D4m`SHH^a$NN;)D&=TZXQI0 zVC2EF$BHF~Ktwox;zPwt+E!;ryCmFOtm;hij8W9NhG2liCgnB__Pz0>8+TiJot1^-37BCoj07Qh_xBn>uthF`3 z<%=<3Ie_W(k^-Qe0XK_3n1sQgdx_cp0-<;yoiEB8;6pRn&dQ-#ZB+LY(hJloOSP(cI#O$y5!cdhGH2FxS{r z+jOdkhY9)jZ4@DqLcC`$T06QxM7VnOnj)atVuj1E&J3(M;Oy)ihzOp}1U#K0yn(fN zIup5{akP8FXlQC%eJ(h0?m_`t{$BX>C!eW$AFMgx^^lDW-=MbxxdZts{p`P;}f~h(uY*V zs|Y|@mN!psZ&;S)f+Y(8e0t_{5D|P`k|w7VGzZ*HJ@M2tYulL`9r4f|;Md=r!;|}; z0};Wvs|pcO+w(D+&cZV@f1%b^52?2wQg1(!>(e)YWZwX!-hPCmNjO?MVBA%eo3*X* z2PM_^Jt`WIh){2LqQ0@UMB32gaHGu~LLk(Oh&Wgga1{ZVzmg_ojU-4n>S|}uv|b# zO9zyS0m}e%`(to#GRBe7u1K3Gg zJ?Ikd*Bn6?fT7sRv9$HkbLVLSxD&&G49I}G4g)eE1L`^q$bbx}>o6b#GN7)*fZNP} XPZxcRT!IvU00000NkvXXu0mjf`?Nc4 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/87.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/87.png new file mode 100644 index 0000000000000000000000000000000000000000..72cf24a0cdc6236fea7beca889fd32415a6f2a86 GIT binary patch literal 1441 zcmV;S1z!4zP)#*HN{P1A3W{1Ucuh<+M&m;*F=-l~Y6!FY_W@>Qouw%Y^3AO0Oa3n;oRDA6 zp81&XTPpX|g7e>mME?P?9L8l_V}@}V*O*~k#x-UbmvN05#${Y%hH)9!m|@&l!*xnB zTon!Tio+`l$I~6I!z&}pVna%529lRXm$ZyqkegqM62~gIeSWwq8iYd%$8~sRSeKWf zam{+HZ{CVKo0_q9T{G6MyZZ*yjI~Y8sJ?AAta&!X#oYuVLP}~ToKhW}Qk`&6VYse} zdJqw=T)B#cTBpyPh1{?PM1<6|Y`A@X;iy7!FMjqV03a9)E*SEqOP66U_kxJvs;CzZ zD-d@K0H7#J)R@6w5P?8IQ)B1DyQYA3Fd~F@?o61uba5~kgrX>6zcaJezWoPv(ZRaG zjdm$YAmYzAwrmFx37x^haRY%VoO46NkbKqHy6t{!+T4mwo9_+JmNsl`*^bRy+p+7h zefVhfVnkH69srn=Q(?(lA#6`9{DG!^v=1M9EwrsNC8ofXv{aKsb1D){W)KmG2#HB% z48D6_1FY5@9{E`4co2@Ou9K(EfQaC$xdU#WAD)$~XN}wEhr6O47V8QS5q9tGj))5Y z%WWmdvJ}E8pnG+L`}WDxbM7*yR0p@O0YrrUcLpN@A34?|Z1(C7cdiHyuZ)6XH;5=~ z?#`UOL;nsKA4T~c1984YUvr@Eg55y7)^ap!K#;5wx`5D|X->F3aBQ0u>b{3M77 zUhdrJaMjuuhDSBE-#d3f$c`cAa0dp@hH9(zht7`(`DY^LaEIO>;m%!n+^L!S?e{-u zX6_qr_Vdi053b!+10ur2#Dr$I@bt5Xc()KOuEQ%MH?I`wnK_|)Gi$fqw*v_#Gw*Yw z!FBumAR=@;xKmRX0Nmaxq-W(X`YCZt;Fe8~gvm)IG!g=Ve`?3aFF~>0x2UkX#GTt) zF*)>JVNchAux?e~FPy*dA-@&tKQ(xR?{ocd`}}Z9b;!=Ofrzl>p7w~d76AOWH^H2; zOvuF%;kYWsp%-5P5g~qwY5JrgEmSg-s^@CguKfifLYe#4MTZrRJM#?f zi?MI8t@QzPJ^2hCf8qf4bZN7DZ#VXJA4E^@3HGZgAl?-!Any{NV!g1%j zW~=ei(H`N)>$<@W1cR8IR6?WTdYM!dC`ur#TW21ze=s}>B0{ONS{SUZaObjAk^; zK7L~Aw7}`9guUDwArkBk2_<$9tocPqOiBrD$!=a|;rqGQ+voQ5o&XWSl2?MvoC0L# zERUEhiw(K?r6^n>P2XGKo8`0Os!P3bBULrRDao_PE5k7z(RhZzjpp5g-lIEQJzcwJ zTpfpT8P}L$T*ftK7?*L48OCK?V}@}V*O+14*ux#ezgJ)X0OKwM?kAsq4j}ydVsG_v z=Pn5D)vJGMI`^xuzY}tYHfC@gUKti^F*dZcW5>=%(ALq3_Kr?;KJ+M>?%D#2Ropks z4Uek=FUzzd!IX>ylX*JH$g&j16s!>3a!)N>6%Cr(i+Vj|G#u{#C5+3s#th>!t}(;7 vjBCs=F5?R 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 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..f091b6b0bca859a3f474b03065bef75ba58a9e4c GIT binary patch literal 1588 zcmV-42Fv-0P)C1SqPt}wig>|5Crh^=oyX$BK<}M8eLU3e2hGT;=G|!_SP)7zNI6fqUMB=)y zRAZ>eDe#*r`yDAVgB_R*LB*MAc)8(b{g{9McCXW!lq7r(btRoB9!8B-#AI6JMb~YFBEvdsV)`mEQO^&#eRKx@b&x- z5lZm*!WfD8oCLzfHGz#u7sT0^VLMI1MqGxF^v+`4YYnVYgk*=kU?HsSz{v({E3lb9 z>+xILjBN)t6`=g~IBOelGQ(O990@BfXf(DRI5I$qN$0Gkz-FSc$3a+2fX$AedL4u{ z4V+5Ong(9LiGcIKW?_352sR;LtDPmPJXI{YtT=O8=76o9;*n%_m|xo!i>7$IrZ-{l z-x3`7M}qzHsPV@$v#>H-TpjDh2UE$9g6sysUREDy_R(a)>=eHw-WAyfIN z*qb!_hW>G)Tu8nSw9yn#3wFMiLcfc4pY0ek1}8(NqkBR@t4{~oC>ryc-h_ByH(Cg5 z>ao-}771+xE3um9lWAY1FeQFxowa1(!J(;Jg*wrg!=6FdRX+t_<%z&d&?|Bn){>zm zZQj(aA_HeBY&OC^jj*)N`8fa^ePOU72VpInJoI1?`ty#lvlNzs(&MZX+R%2xS~5Kh zX*|AU4QE#~SgPzOXe9>tRj>hjU@c1k5Y_mW*Jp3fI;)1&g3j|zDgC+}2Q_v%YfDax z!?umcN^n}KYQ|a$Lr+51Nf9dkkYFSjZZjkma$0KOj+;aQ&721~t7QUKx61J3(P4P1 zstI~7-wOACnWP4=8oGOwz%vNDqD8w&Q`qcNGGrbbf&0s9L0De{4{mRS?o0MU+nR_! zrvshUau0G^DeMhM_v{5BuLjb#Hh@r23lDAk8oF(C+P0rsBpv85EP>4CVMx#04MOfG z;P%vktHcXwTj~+IE(~px)3*MY77e}p#|c>TD?sMatC0Tu4iKKJ0(X8jxQY*gYtxsC z(zYC$g|@+I+kY;dg_dE>scBf&bP1Nc@Hz<3R)V`=AGkc;8CXqdi=B4l2k|g;2%#m& z*jfX^%b!A8#bI!j9-0Fi0bOXl(-c^AB9|nQaE`*)Hw+o&jS9@7&Gov#HbD~#d{twV zXd^Tr^mWLfFh$@Dr$e;PBEz4(-2q1FF0}c;~B5sA}+Q>TOoP+t>wf)V9Iy=5ruQa;z)y zI9C9*oUga6=hxw6QasLPnee@3^Rr*M{CdaL5=R41nLs(AHk_=Y+A9$2&H(B7!_pURs&8aNw7?`&Z&xY_Ye z)~D5Bog^td-^QbUtkTirdyK^mTHAOuptDflut!#^lnKqU md>ggs(5nOWAqO?umG&QVYK#ibz}*4>0000U6E9hRK9^#O7(mu>ETqrXGsduA8$)?`v2seloOCza43C{NQ$$gAOH**MCn0Q?+L7dl7qnbRdqZ8LSVp1ItDxhxD?t@5_yHg6A8yI zC*%Wgg22K|8E#!~cTNYR~@Y9KepMPrrB8cABapAFa=`H+UGhkXUZV1GnwR1*lPyZ;*K(i~2gp|@bzp8}og7e*#% zEnr|^CWdVV!-4*Y_7rFvlww2Ze+>j*!Z!pQ?2l->4q#nqRu9`ELo6RMS5=br47g_X zRw}P9a7RRYQ%2Vsd0Me{_(EggTnuN6j=-?uFS6j^u69elMypu?t>op*wBx<=Wx8?( ztpe^(fwM6jJX7M-l*k3kEpWOl_Vk3@(_w4oc}4YF4|Rt=2V^XU?#Yz`8(e?aZ@#li0n*=g^qOcVpd-Wbok=@b#Yw zqn8u9a)z>l(1kEaPYZ6hwubN6i<8QHgsu0oE) ziJ(p;Wxm>sf!K+cw>R-(^Y2_bahB+&KI9y^);#0qt}t-$C|Bo71lHi{_+lg#f%RFy z0um=e3$K3i6K{U_4K!EX?F&rExl^W|G8Z8;`5z-k}OGNZ0#WVb$WCpQu-_YsiqKP?BB# vzVHS-CTUF4Ozn5G+mq_~Qqto~ahA+K`|lyv3(-e}00000NkvXXu0mjfd`9t{ literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d0ef06e7edb86cdfe0d15b4b0d98334a86163658 GIT binary patch literal 1716 zcmds$`#;kQ7{|XelZftyR5~xW7?MLxS4^|Hw3&P7^y)@A9Fj{Xm1~_CIV^XZ%SLBn zA;!r`GqGHg=7>xrB{?psZQs88ZaedDoagm^KF{a*>G|dJWRSe^I$DNW008I^+;Kjt z>9p3GNR^I;v>5_`+91i(*G;u5|L+Bu6M=(afLjtkya#yZ175|z$pU~>2#^Z_pCZ7o z1c6UNcv2B3?; zX%qdxCXQpdKRz=#b*q0P%b&o)5ZrNZt7$fiETSK_VaY=mb4GK`#~0K#~9^ zcY!`#Af+4h?UMR-gMKOmpuYeN5P*RKF!(tb`)oe0j2BH1l?=>y#S5pMqkx6i{*=V9JF%>N8`ewGhRE(|WohnD59R^$_36{4>S zDFlPC5|k?;SPsDo87!B{6*7eqmMdU|QZ84>6)Kd9wNfh90=y=TFQay-0__>=<4pk& zYDjgIhL-jQ9o>z32K)BgAH+HxamL{ZL~ozu)Qqe@a`FpH=oQRA8=L-m-1dam(Ix2V z?du;LdMO+ooBelr^_y4{|44tmgH^2hSzPFd;U^!1p>6d|o)(-01z{i&Kj@)z-yfWQ)V#3Uo!_U}q3u`(fOs`_f^ueFii1xBNUB z6MecwJN$CqV&vhc+)b(p4NzGGEgwWNs z@*lUV6LaduZH)4_g!cE<2G6#+hJrWd5(|p1Z;YJ7ifVHv+n49btR}dq?HHDjl{m$T z!jLZcGkb&XS2OG~u%&R$(X+Z`CWec%QKt>NGYvd5g20)PU(dOn^7%@6kQb}C(%=vr z{?RP(z~C9DPnL{q^@pVw@|Vx~@3v!9dCaBtbh2EdtoNHm4kGxp>i#ct)7p|$QJs+U z-a3qtcPvhihub?wnJqEt>zC@)2suY?%-96cYCm$Q8R%-8$PZYsx3~QOLMDf(piXMm zB=<63yQk1AdOz#-qsEDX>>c)EES%$owHKue;?B3)8aRd}m~_)>SL3h2(9X;|+2#7X z+#2)NpD%qJvCQ0a-uzZLmz*ms+l*N}w)3LRQ*6>|Ub-fyptY(keUxw+)jfwF5K{L9 z|Cl_w=`!l_o><384d&?)$6Nh(GAm=4p_;{qVn#hI8lqewW7~wUlyBM-4Z|)cZr?Rh z=xZ&Ol>4(CU85ea(CZ^aO@2N18K>ftl8>2MqetAR53_JA>Fal`^)1Y--Am~UDa4th zKfCYpcXky$XSFDWBMIl(q=Mxj$iMBX=|j9P)^fDmF(5(5$|?Cx}DKEJa&XZP%OyE`*GvvYQ4PV&!g2|L^Q z?YG}tx;sY@GzMmsY`7r$P+F_YLz)(e}% zyakqFB<6|x9R#TdoP{R$>o7y(-`$$p0NxJ6?2B8tH)4^yF(WhqGZlM3=9Ibs$%U1w zWzcss*_c0=v_+^bfb`kBFsI`d;ElwiU%frgRB%qBjn@!0U2zZehBn|{%uNIKBA7n= zzE`nnwTP85{g;8AkYxA68>#muXa!G>xH22D1I*SiD~7C?7Za+9y7j1SHiuSkKK*^O zsZ==KO(Ua#?YUpXl{ViynyT#Hzk=}5X$e04O@fsMQjb}EMuPWFO0e&8(2N(29$@Vd zn1h8Yd>6z(*p^E{c(L0Lg=wVdupg!z@WG;E0k|4a%s7Up5C0c)55XVK*|x9RQeZ1J@1v9MX;>n34(i>=YE@Iur`0Vah(inE3VUFZNqf~tSz{1fz3Fsn_x4F>o(Yo;kpqvBe-sbwH(*Y zu$JOl0b83zu$JMvy<#oH^Wl>aWL*?aDwnS0iEAwC?DK@aT)GHRLhnz2WCvf3Ba;o=aY7 z2{Asu5MEjGOY4O#Ggz@@J;q*0`kd2n8I3BeNuMmYZf{}pg=jTdTCrIIYuW~luKecn z+E-pHY%ohj@uS0%^ z&(OxwPFPD$+#~`H?fMvi9geVLci(`K?Kj|w{rZ9JgthFHV+=6vMbK~0)Ea<&WY-NC zy-PnZft_k2tfeQ*SuC=nUj4H%SQ&Y$gbH4#2sT0cU0SdFs=*W*4hKGpuR1{)mV;Qf5pw4? zfiQgy0w3fC*w&Bj#{&=7033qFR*<*61B4f9K%CQvxEn&bsWJ{&winp;FP!KBj=(P6 z4Z_n4L7cS;ao2)ax?Tm|I1pH|uLpDSRVghkA_UtFFuZ0b2#>!8;>-_0ELjQSD-DRd z4im;599VHDZYtnWZGAB25W-e(2VrzEh|etsv2YoP#VbIZ{aFkwPrzJ#JvCvA*mXS& z`}Q^v9(W4GiSs}#s7BaN!WA2bniM$0J(#;MR>uIJ^uvgD3GS^%*ikdW6-!VFUU?JV zZc2)4cMsX@j z5HQ^e3BUzOdm}yC-xA%SY``k$rbfk z;CHqifhU*jfGM@DkYCecD9vl*qr58l6x<8URB=&%{!Cu3RO*MrKZ4VO}V6R0a zZw3Eg^0iKWM1dcTYZ0>N899=r6?+adUiBKPciJw}L$=1f4cs^bio&cr9baLF>6#BM z(F}EXe-`F=f_@`A7+Q&|QaZ??Txp_dB#lg!NH=t3$G8&06MFhwR=Iu*Im0s_b2B@| znW>X}sy~m#EW)&6E&!*0%}8UAS)wjt+A(io#wGI@Z2S+Ms1Cxl%YVE800007ip7{`C_J2TxPmfw%h$|%acrYHt)Re^PB%O&&=~a zhS(%I#+V>J-vjIib^<+s%ludY7y^C(P8nmqn9fp!i+?vr`bziDE=bx`%2W#Xyrj|i z!XQ4v1%L`m{7KT7q+LZNB^h8Ha2e=`Wp65^0;J00)_^G=au=8Yo;1b`CV&@#=jIBo zjN^JNVfYSs)+kDdGe7`1&8!?MQYKS?DuHZf3iogk_%#9E|5S zWeHrmAo>P;ejX7mwq#*}W25m^ZI+{(Z8fI?4jM_fffY0nok=+88^|*_DwcW>mR#e+ zX$F_KMdb6sRz!~7KkyN0G(3XQ+;z3X%PZ4gh;n-%62U<*VUKNv(D&Q->Na@Xb&u5Q3`3DGf+a8O5x7c#7+R+EAYl@R5us)CIw z7sT@_y~Ao@uL#&^LIh&QceqiT^+lb0YbFZt_SHOtWA%mgPEKVNvVgCsXy{5+zl*X8 zCJe)Q@y>wH^>l4;h1l^Y*9%-23TSmE>q5nI@?mt%n;Sj4Qq`Z+ib)a*a^cJc%E9^J zB;4s+K@rARbcBLT5P=@r;IVnBMKvT*)ew*R;&8vu%?Z&S>s?8?)3*YawM0P4!q$Kv zMmKh3lgE~&w&v%wVzH3Oe=jeNT=n@Y6J6TdHWTjXfX~-=1A1Bw`EW8rn}MqeI34nh zexFeA?&C3B2(E?0{drE@DA2pu(A#ElY&6el60Rn|Qpn-FkfQ8M93AfWIr)drgDFEU zghdWK)^71EWCP(@(=c4kfH1Y(4iugD4fve6;nSUpLT%!)MUHs1!zJYy4y||C+SwQ! z)KM&$7_tyM`sljP2fz6&Z;jxRn{Wup8IOUx8D4uh&(=O zx-7$a;U><*5L^!%xRlw)vAbh;sdlR||& ze}8_8%)c2Fwy=F&H|LM+p{pZB5DKTx>Y?F1N%BlZkXf!}JeGuMZk~LPi7{cidvUGB zAJ4LVeNV%XO>LTrklB#^-;8nb;}6l;1oW&WS=Mz*Az!4cqqQzbOSFq`$Q%PfD7srM zpKgP-D_0XPTRX*hAqeq0TDkJ;5HB1%$3Np)99#16c{ zJImlNL(npL!W|Gr_kxl1GVmF5&^$^YherS7+~q$p zt}{a=*RiD2Ikv6o=IM1kgc7zqpaZ;OB)P!1zz*i3{U()Dq#jG)egvK}@uFLa`oyWZ zf~=MV)|yJn`M^$N%ul5);JuQvaU1r2wt(}J_Qgyy`qWQI`hEeRX0uC@c1(dQ2}=U$ tNIIaX+dr)NRWXcxoR{>fqI{SF_dm1Ylv~=3YHI)h002ovPDHLkV1g(pWS;;4 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c8f9ed8f5cee1c98386d13b17e89f719e83555b2 GIT binary patch literal 1895 zcmV-t2blPYP)FQtfgmafE#=YDCq`qUBt#QpG%*H6QHY765~R=q zZ6iudfM}q!Pz#~9JgOi8QJ|DSu?1-*(kSi1K4#~5?#|rh?sS)(-JQqX*}ciXJ56_H zdw=^s_srbAdqxlvGyrgGet#6T7_|j;95sL%MtM;q86vOxKM$f#puR)Bjv9Zvz9-di zXOTSsZkM83)E9PYBXC<$6(|>lNLVBb&&6y{NByFCp%6+^ALR@NCTse_wqvNmSWI-m z!$%KlHFH2omF!>#%1l3LTZg(s7eof$7*xB)ZQ0h?ejh?Ta9fDv59+u#MokW+1t8Zb zgHv%K(u9G^Lv`lh#f3<6!JVTL3(dCpxHbnbA;kKqQyd1~^Xe0VIaYBSWm6nsr;dFj z4;G-RyL?cYgsN1{L4ZFFNa;8)Rv0fM0C(~Tkit94 zz#~A)59?QjD&pAPSEQ)p8gP|DS{ng)j=2ux)_EzzJ773GmQ_Cic%3JJhC0t2cx>|v zJcVusIB!%F90{+}8hG3QU4KNeKmK%T>mN57NnCZ^56=0?&3@!j>a>B43pi{!u z7JyDj7`6d)qVp^R=%j>UIY6f+3`+qzIc!Y_=+uN^3BYV|o+$vGo-j-Wm<10%A=(Yk^beI{t%ld@yhKjq0iNjqN4XMGgQtbKubPM$JWBz}YA65k%dm*awtC^+f;a-x4+ddbH^7iDWGg&N0n#MW{kA|=8iMUiFYvMoDY@sPC#t$55gn6ykUTPAr`a@!(;np824>2xJthS z*ZdmT`g5-`BuJs`0LVhz+D9NNa3<=6m;cQLaF?tCv8)zcRSh66*Z|vXhG@$I%U~2l z?`Q zykI#*+rQ=z6Jm=Bui-SfpDYLA=|vzGE(dYm=OC8XM&MDo7ux4UF1~0J1+i%aCUpRe zt3L_uNyQ*cE(38Uy03H%I*)*Bh=Lb^Xj3?I^Hnbeq72(EOK^Y93CNp*uAA{5Lc=ky zx=~RKa4{iTm{_>_vSCm?$Ej=i6@=m%@VvAITnigVg{&@!7CDgs908761meDK5azA} z4?=NOH|PdvabgJ&fW2{Mo$Q0CcD8Qc84%{JPYt5EiG{MdLIAeX%T=D7NIP4%Hw}p9 zg)==!2Lbp#j{u_}hMiao9=!VSyx0gHbeCS`;q&vzeq|fs`y&^X-lso(Ls@-706qmA z7u*T5PMo_w3{se1t2`zWeO^hOvTsohG_;>J0wVqVe+n)AbQCx)yh9;w+J6?NF5Lmo zecS@ieAKL8%bVd@+-KT{yI|S}O>pYckUFs;ry9Ow$CD@ztz5K-*D$^{i(_1llhSh^ zEkL$}tsQt5>QA^;QgjgIfBDmcOgi5YDyu?t6vSnbp=1+@6D& z5MJ}B8q;bRlVoxasyhcUF1+)o`&3r0colr}QJ3hcSdLu;9;td>kf@Tcn<@9sIx&=m z;AD;SCh95=&p;$r{Xz3iWCO^MX83AGJ(yH&eTXgv|0=34#-&WAmw{)U7OU9!Wz^!7 zZ%jZFi@JR;>Mhi7S>V7wQ176|FdW2m?&`qa(ScO^CFPR80HucLHOTy%5s*HR0^8)i h0WYBP*#0Ks^FNSabJA*5${_#%002ovPDHLkV1oKhTl@e3 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..a6d6b8609df07bf62e5100a53a01510388bd2b22 GIT binary patch literal 2665 zcmV-v3YPVWP)oFh3q0MFesq&64WThn3$;G69TfjsAv=f2G9}p zgSx99+!YV6qME!>9MD13x)k(+XE7W?_O4LoLb5ND8 zaV{9+P@>42xDfRiYBMSgD$0!vssptcb;&?u9u(LLBKmkZ>RMD=kvD3h`sk6!QYtBa ztlZI#nu$8lJ^q2Z79UTgZe>BU73(Aospiq+?SdMt8lDZ;*?@tyWVZVS_Q7S&*tJaiRlJ z+aSMOmbg3@h5}v;A*c8SbqM3icg-`Cnwl;7Ts%A1RkNIp+Txl-Ckkvg4oxrqGA5ewEgYqwtECD<_3Egu)xGllKt&J8g&+=ac@Jq4-?w6M3b*>w5 z69N3O%=I^6&UL5gZ!}trC7bUj*12xLdkNs~Bz4QdJJ*UDZox2UGR}SNg@lmOvhCc~ z*f_UeXv(=#I#*7>VZx2ObEN~UoGUTl=-@)E;YtCRZ>SVp$p9yG5hEFZ!`wI!spd)n zSk+vK0Vin7FL{7f&6OB%f;SH22dtbcF<|9fi2Fp%q4kxL!b1#l^)8dUwJ zwEf{(wJj@8iYDVnKB`eSU+;ml-t2`@%_)0jDM`+a46xhDbBj2+&Ih>1A>6aky#(-SYyE{R3f#y57wfLs z6w1p~$bp;6!9DX$M+J~S@D6vJAaElETnsX4h9a5tvPhC3L@qB~bOzkL@^z0k_hS{T4PF*TDrgdXp+dzsE? z>V|VR035Pl9n5&-RePFdS{7KAr2vPOqR9=M$vXA1Yy5>w;EsF`;OK{2pkn-kpp9Pw z)r;5JfJKKaT$4qCb{TaXHjb$QA{y0EYy*+b1XI;6Ah- zw13P)xT`>~eFoJC!>{2XL(a_#upp3gaR1#5+L(Jmzp4TBnx{~WHedpJ1ch8JFk~Sw z>F+gN+i+VD?gMXwcIhn8rz`>e>J^TI3E-MW>f}6R-pL}>WMOa0k#jN+`RyUVUC;#D zg|~oS^$6%wpF{^Qr+}X>0PKcr3Fc&>Z>uv@C);pwDs@2bZWhYP!rvGx?_|q{d`t<*XEb#=aOb=N+L@CVBGqImZf&+a zCQEa3$~@#kC);pasdG=f6tuIi0PO-y&tvX%>Mv=oY3U$nD zJ#gMegnQ46pq+3r=;zmgcG+zRc9D~c>z+jo9&D+`E6$LmyFqlmCYw;-Zooma{sR@~ z)_^|YL1&&@|GXo*pivH7k!msl+$Sew3%XJnxajt0K%3M6Bd&YFNy9}tWG^aovK2eX z1aL1%7;KRDrA@eG-Wr6w+;*H_VD~qLiVI`{_;>o)k`{8xa3EJT1O_>#iy_?va0eR? zDV=N%;Zjb%Z2s$@O>w@iqt!I}tLjGk!=p`D23I}N4Be@$(|iSA zf3Ih7b<{zqpDB4WF_5X1(peKe+rASze%u8eKLn#KKXt;UZ+Adf$_TO+vTqshLLJ5c z52HucO=lrNVae5XWOLm!V@n-ObU11!b+DN<$RuU+YsrBq*lYT;?AwJpmNKniF0Q1< zJCo>Q$=v$@&y=sj6{r!Y&y&`0$-I}S!H_~pI&2H8Z1C|BX4VgZ^-! zje3-;x0PBD!M`v*J_)rL^+$<1VJhH*2Fi~aA7s&@_rUHYJ9zD=M%4AFQ`}k8OC$9s XsPq=LnkwKG00000NkvXXu0mjfhAk5^ literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a6d6b8609df07bf62e5100a53a01510388bd2b22 GIT binary patch literal 2665 zcmV-v3YPVWP)oFh3q0MFesq&64WThn3$;G69TfjsAv=f2G9}p zgSx99+!YV6qME!>9MD13x)k(+XE7W?_O4LoLb5ND8 zaV{9+P@>42xDfRiYBMSgD$0!vssptcb;&?u9u(LLBKmkZ>RMD=kvD3h`sk6!QYtBa ztlZI#nu$8lJ^q2Z79UTgZe>BU73(Aospiq+?SdMt8lDZ;*?@tyWVZVS_Q7S&*tJaiRlJ z+aSMOmbg3@h5}v;A*c8SbqM3icg-`Cnwl;7Ts%A1RkNIp+Txl-Ckkvg4oxrqGA5ewEgYqwtECD<_3Egu)xGllKt&J8g&+=ac@Jq4-?w6M3b*>w5 z69N3O%=I^6&UL5gZ!}trC7bUj*12xLdkNs~Bz4QdJJ*UDZox2UGR}SNg@lmOvhCc~ z*f_UeXv(=#I#*7>VZx2ObEN~UoGUTl=-@)E;YtCRZ>SVp$p9yG5hEFZ!`wI!spd)n zSk+vK0Vin7FL{7f&6OB%f;SH22dtbcF<|9fi2Fp%q4kxL!b1#l^)8dUwJ zwEf{(wJj@8iYDVnKB`eSU+;ml-t2`@%_)0jDM`+a46xhDbBj2+&Ih>1A>6aky#(-SYyE{R3f#y57wfLs z6w1p~$bp;6!9DX$M+J~S@D6vJAaElETnsX4h9a5tvPhC3L@qB~bOzkL@^z0k_hS{T4PF*TDrgdXp+dzsE? z>V|VR035Pl9n5&-RePFdS{7KAr2vPOqR9=M$vXA1Yy5>w;EsF`;OK{2pkn-kpp9Pw z)r;5JfJKKaT$4qCb{TaXHjb$QA{y0EYy*+b1XI;6Ah- zw13P)xT`>~eFoJC!>{2XL(a_#upp3gaR1#5+L(Jmzp4TBnx{~WHedpJ1ch8JFk~Sw z>F+gN+i+VD?gMXwcIhn8rz`>e>J^TI3E-MW>f}6R-pL}>WMOa0k#jN+`RyUVUC;#D zg|~oS^$6%wpF{^Qr+}X>0PKcr3Fc&>Z>uv@C);pwDs@2bZWhYP!rvGx?_|q{d`t<*XEb#=aOb=N+L@CVBGqImZf&+a zCQEa3$~@#kC);pasdG=f6tuIi0PO-y&tvX%>Mv=oY3U$nD zJ#gMegnQ46pq+3r=;zmgcG+zRc9D~c>z+jo9&D+`E6$LmyFqlmCYw;-Zooma{sR@~ z)_^|YL1&&@|GXo*pivH7k!msl+$Sew3%XJnxajt0K%3M6Bd&YFNy9}tWG^aovK2eX z1aL1%7;KRDrA@eG-Wr6w+;*H_VD~qLiVI`{_;>o)k`{8xa3EJT1O_>#iy_?va0eR? zDV=N%;Zjb%Z2s$@O>w@iqt!I}tLjGk!=p`D23I}N4Be@$(|iSA zf3Ih7b<{zqpDB4WF_5X1(peKe+rASze%u8eKLn#KKXt;UZ+Adf$_TO+vTqshLLJ5c z52HucO=lrNVae5XWOLm!V@n-ObU11!b+DN<$RuU+YsrBq*lYT;?AwJpmNKniF0Q1< zJCo>Q$=v$@&y=sj6{r!Y&y&`0$-I}S!H_~pI&2H8Z1C|BX4VgZ^-! zje3-;x0PBD!M`v*J_)rL^+$<1VJhH*2Fi~aA7s&@_rUHYJ9zD=M%4AFQ`}k8OC$9s XsPq=LnkwKG00000NkvXXu0mjfhAk5^ literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..75b2d164a5a98e212cca15ea7bf2ab5de5108680 GIT binary patch literal 3831 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 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..c4df70d39da7941ef3f6dcb7f06a192d8dcb308d GIT binary patch literal 1888 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 iW8Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md new file mode 100644 index 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..c512c82 --- /dev/null +++ b/ios/Runner/Info.plist @@ -0,0 +1,50 @@ + + + + + NSAppTransportSecurity + + NSAllowsArbitraryLoads + Example + io.flutter.embedded_views_preview + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + physik_lp_app_rewrite + 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/core/error/exceptions.dart b/lib/core/error/exceptions.dart new file mode 100644 index 0000000..d698f0f --- /dev/null +++ b/lib/core/error/exceptions.dart @@ -0,0 +1,23 @@ +class ServerException implements Exception {} + +class CacheException implements Exception {} + +/// Feature +class AuthenticationException implements Exception {} + +class UserExistsException implements Exception {} + +class UserDosntExistException implements Exception {} + +class CredentialsNotFitException implements Exception {} + +class WrongCredentialsException implements Exception {} + +/// + +/// +class NoAuthKeyGivenException implements Exception {} + +class ArgsMissingException implements Exception {} + +/// diff --git a/lib/core/error/failure.dart b/lib/core/error/failure.dart new file mode 100644 index 0000000..376b654 --- /dev/null +++ b/lib/core/error/failure.dart @@ -0,0 +1,27 @@ +import 'package:equatable/equatable.dart'; + +abstract class Failure extends Equatable { + @override + List get props => []; +} + +// Allgemeine Fehler +class ServerFailure extends Failure {} + +class CacheFailure extends Failure {} + +// Login Fehler +class OfflineFailure extends Failure {} + +class WrongCredentialsFailure extends Failure {} + +class UserExistsFailure extends Failure {} + +class CrednetialsNotFitFailure extends Failure {} + +class UserDosntExistFailure extends Failure {} + +// Note Fehler +class ArgsMissingFailure extends Failure {} + +class NoAuthKeyGivenFailure extends Failure {} diff --git a/lib/core/platform/appinfo.dart b/lib/core/platform/appinfo.dart new file mode 100644 index 0000000..5ff674b --- /dev/null +++ b/lib/core/platform/appinfo.dart @@ -0,0 +1,18 @@ +import 'package:package_info/package_info.dart'; + +abstract class AppInfo{ + String get appVersion; + String get appName; +} + +class AppInfoImpl implements AppInfo{ + final PackageInfo _packageInfo; + + AppInfoImpl(this._packageInfo); + @override + String get appName => _packageInfo.appName; + + @override + String get appVersion => _packageInfo.version; + +} \ No newline at end of file diff --git a/lib/core/platform/networkinfo.dart b/lib/core/platform/networkinfo.dart new file mode 100644 index 0000000..50b5d94 --- /dev/null +++ b/lib/core/platform/networkinfo.dart @@ -0,0 +1,13 @@ +import 'package:data_connection_checker/data_connection_checker.dart'; + +abstract class NetworkInfo{ + Future get isConnected; +} + +class NetworkInfoImpl implements NetworkInfo{ + final DataConnectionChecker connectionChecker; + NetworkInfoImpl(this.connectionChecker); + @override + Future get isConnected => connectionChecker.hasConnection; + +} \ No newline at end of file diff --git a/lib/core/success/succes.dart b/lib/core/success/succes.dart new file mode 100644 index 0000000..339d327 --- /dev/null +++ b/lib/core/success/succes.dart @@ -0,0 +1,6 @@ +import 'package:equatable/equatable.dart'; + +class Success extends Equatable { + @override + List get props => []; +} diff --git a/lib/core/ui/pages/settings/settings_page.dart b/lib/core/ui/pages/settings/settings_page.dart new file mode 100644 index 0000000..3e7d2ac --- /dev/null +++ b/lib/core/ui/pages/settings/settings_page.dart @@ -0,0 +1,113 @@ +import 'package:flutter/material.dart'; +import 'package:physik_lp_app_rewrite/features/intro_slider/presentation/slider_page.dart'; +import '../../../../features/login/presentation/pages/delete_account_page.dart'; + +import '../../../platform/appinfo.dart'; +import 'widgets/drop_down_rendering_engine.dart'; +import 'widgets/widgets.dart'; + +class SettingsPage extends StatefulWidget { + final AppInfo appInfo; + SettingsPage({@required this.appInfo}); + + @override + _SettingsPageState createState() => _SettingsPageState(appInfo: appInfo); +} + +class _SettingsPageState extends State { + final AppInfo appInfo; + _SettingsPageState({@required this.appInfo}); + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text("Einstellungen"), + ), + body: Column( + children: [ + Row( + children: [ + Expanded( + child: Padding( + padding: const EdgeInsets.all(15.0), + child: Text("Theme:", + style: Theme.of(context).primaryTextTheme.bodyText1), + )), + Expanded(child: dropDownTheme(context)) + ], + ), + Row( + children: [ + Expanded( + child: Padding( + padding: const EdgeInsets.all(15.0), + child: Text("Rendering Engine:", + style: Theme.of(context).primaryTextTheme.bodyText1), + )), + Expanded(child: dropDownRenderingEngine()) + ], + ), + Row( + children: [ + Expanded( + child: Padding( + padding: const EdgeInsets.fromLTRB(15.0, 15.0, 15.0, 0.0), + child: RaisedButton( + onPressed: () { + Navigator.of(context).push( + MaterialPageRoute(builder: (context) => SlidersPage())); + }, + color: Theme.of(context).accentColor, + child: Text( + "App Intro abspielen", + style: Theme.of(context).primaryTextTheme.button, + ), + ), + )), + ], + ), + Row( + children: [ + Expanded( + child: Padding( + padding: const EdgeInsets.fromLTRB(15.0, 0.0, 15.0, 5.0), + child: RaisedButton( + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => DeleteAccount())); + }, + color: Theme.of(context).accentColor, + child: Text( + "Account löschen", + style: Theme.of(context).primaryTextTheme.button, + ), + ), + )), + ], + ), + Row( + children: [ + Expanded( + child: Padding( + padding: const EdgeInsets.fromLTRB(15.0, 0, 15.0, 5.0), + child: RaisedButton( + onPressed: () { + aboutDialog(context, appInfo); + }, + color: Theme.of(context).accentColor, + child: Text( + "Über die App", + style: Theme.of(context).primaryTextTheme.button, + ), + ), + )), + ], + ) + ], + ), + ); + } +} diff --git a/lib/core/ui/pages/settings/widgets/about_app_dialog.dart b/lib/core/ui/pages/settings/widgets/about_app_dialog.dart new file mode 100644 index 0000000..2096be4 --- /dev/null +++ b/lib/core/ui/pages/settings/widgets/about_app_dialog.dart @@ -0,0 +1,54 @@ +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:url_launcher/url_launcher.dart'; + +import '../../../../platform/appinfo.dart'; + +/// Erzeugt einen About Dialog für die App, welcher alle wichtigen Informationen wie AppVersion / Appname, die Links zu der Datenschutzverordnung +/// und dem Impressum, so wie alle benutzen Libarys aufzählt +aboutDialog(BuildContext context, AppInfo appInfo) { + LicenseRegistry.addLicense(() async* { + yield LicenseEntryWithLineBreaks(["Images Intro Slider"], + "The Intro Slider images are created by https://www.freepik.com"); + }); + showAboutDialog( + context: context, + applicationVersion: appInfo.appVersion, + applicationName: appInfo.appName, + //applicationIcon: Image.network("http://srv2.thebotdev.de/img/playstore.png"), + children: [ + RaisedButton( + child: Text("Datenschutz"), + onPressed: _openPrivacyPolicy, + ), + RaisedButton( + child: Text("Impressum"), + onPressed: _openImprint, + ) + ], + applicationLegalese: + "Diese App ist veröffentlicht unter der GNU General Public License 3", + ); +} + +/// Leider können die beiden Funktionen nicht zu einer zusammengefügt werden, +/// da sonst Flutter die seiten direkt beim laden des AboutDialogs öffnen würde +/// Eine Funktion um die Datenschutzerklärung zu öffnen +_openPrivacyPolicy() async { + const url = 'https://falkmichaelis.eu/datenschutz.html'; + if (await canLaunch(url)) { + await launch(url); + } else { + throw 'Kann $url nicht laden'; + } +} + +/// Eine Funktion um das Impressum zu öffnen +_openImprint() async { + const url = 'https://falkmichaelis.eu/imprint.html'; + if (await canLaunch(url)) { + await launch(url); + } else { + throw 'Kann $url nicht laden'; + } +} diff --git a/lib/core/ui/pages/settings/widgets/drop_down_rendering_engine.dart b/lib/core/ui/pages/settings/widgets/drop_down_rendering_engine.dart new file mode 100644 index 0000000..309f6ee --- /dev/null +++ b/lib/core/ui/pages/settings/widgets/drop_down_rendering_engine.dart @@ -0,0 +1,41 @@ +import 'package:flutter/material.dart'; + +import '../../../../../injection_container.dart'; +import '../../../../util/shared_prefrences/shared_prefs_rendering_engine.dart'; + +/// Dieses DropDownMenü ist als StatefulWidget geschrieben, damit sich das value immer auf den gleichen Wert setzt +/// wie die gerade ausgewählte Rendering Engine. +/// Würde dies kein StatefulWidget sein müsste die seite jedes mal vom Benutzer neu geladen werden, damit die Änderungen sichtbar werden. +class dropDownRenderingEngine extends StatefulWidget { + dropDownRenderingEngine({Key key}) : super(key: key); + + @override + _dropDownRenderingEngineState createState() => _dropDownRenderingEngineState(); +} + +class _dropDownRenderingEngineState extends State { + @override + Widget build(BuildContext context) { + String _engine = sl().renderingEngine; + return DropdownButton( + items: [ "Katex", "MathJax"].map((String value) { + return new DropdownMenuItem( + value: value, + child: new Text(value), + ); + }).toList(), + value: _engine, + dropdownColor: Theme.of(context).accentColor, + style: TextStyle(color: Theme.of(context).primaryTextTheme.bodyText1.color), + onChanged: (value) { + sl().renderingEngine = value; + setState(() { + _engine = sl().renderingEngine; + }); + }, + underline: Container( + color: Colors.transparent + ), + ); + } +} diff --git a/lib/core/ui/pages/settings/widgets/drop_down_theme_chooser.dart b/lib/core/ui/pages/settings/widgets/drop_down_theme_chooser.dart new file mode 100644 index 0000000..d15a38a --- /dev/null +++ b/lib/core/ui/pages/settings/widgets/drop_down_theme_chooser.dart @@ -0,0 +1,29 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; + +import '../../../theme/app_themes.dart'; +import '../../../theme/bloc/theme_bloc.dart'; + +DropdownButton dropDownTheme(BuildContext context) { + return new DropdownButton( + items: AppTheme.values.map((AppTheme appTheme) { + return DropdownMenuItem(value: appTheme, child: Text(_mapEnumThemeToString(appTheme))); + }).toList(), + dropdownColor: Theme.of(context).accentColor, + style: TextStyle(color: Theme.of(context).primaryTextTheme.bodyText1.color), + onChanged: (value) { + BlocProvider.of(context).add(ThemeChanged(theme: value)); + }, + underline: Container( + color: Colors.transparent + ), + ); +} +/// Wandelt den gegebenen Enum vom Typ AppTheme in einen String um +/// +/// Ein Enum vom Typ AppTheme würde eigtl. z. B. AppTheme.Dark heißen, allerdings möchten wir in der Ausgabe nur Dark stehen haben, +/// weshalb erst der Enum in einen String umgewandelt wird und dann das AppTheme. durch einen leeren String ersetzt wird +/// Zudem werden alle Unterstriche durch ein Leerzeichen ersetzt +String _mapEnumThemeToString(AppTheme appTheme){ + return appTheme.toString().replaceFirst("AppTheme.", "").replaceAll("_", " "); + } \ No newline at end of file diff --git a/lib/core/ui/pages/settings/widgets/widgets.dart b/lib/core/ui/pages/settings/widgets/widgets.dart new file mode 100644 index 0000000..6a2e9e9 --- /dev/null +++ b/lib/core/ui/pages/settings/widgets/widgets.dart @@ -0,0 +1,2 @@ +export 'drop_down_theme_chooser.dart'; +export 'about_app_dialog.dart'; \ No newline at end of file diff --git a/lib/core/ui/pages/tools/menu_item_card.dart b/lib/core/ui/pages/tools/menu_item_card.dart new file mode 100644 index 0000000..85b5f12 --- /dev/null +++ b/lib/core/ui/pages/tools/menu_item_card.dart @@ -0,0 +1,25 @@ +import 'package:flutter/material.dart'; + +class MenuItem extends StatelessWidget { + final String name; + var page; + MenuItem({ + @required this.name, + @required this.page}); + + @override + Widget build(BuildContext context) { + return Container( + child: Card( + child: ListTile( + contentPadding: EdgeInsets.symmetric(horizontal: 26, vertical: 8), + title: Text(name, style: Theme.of(context).primaryTextTheme.bodyText1), + trailing: Icon( + Icons.arrow_forward_ios, + color: Theme.of(context).dividerColor, + ), + onTap: () => Navigator.push(context, MaterialPageRoute(builder: (context) =>page)), + )) + ); + } +} \ No newline at end of file diff --git a/lib/core/ui/pages/tools/toolspage.dart b/lib/core/ui/pages/tools/toolspage.dart new file mode 100644 index 0000000..60752cf --- /dev/null +++ b/lib/core/ui/pages/tools/toolspage.dart @@ -0,0 +1,35 @@ +import 'package:flutter/material.dart'; +import 'package:physik_lp_app_rewrite/features/notes/presentation/pages/markdown_editor/advanced_editor.dart'; + +import '../../../../features/login/presentation/pages/login_page.dart'; +import '../../../../features/notes/presentation/pages/notes_list_page.dart'; +import '../../../../features/plot/presentation/pages/beugungsmusterplot_page.dart'; +import '../../../../injection_container.dart'; +import '../settings/settings_page.dart'; +import 'menu_item_card.dart'; + +class ToolsMenu extends StatelessWidget { + const ToolsMenu({Key key}) : super(key: key); + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar(title: Text("Tools")), + body: Container( + child: Column( + children: [ + MenuItem( + name: "Beugungsmuster Plot", page: BeugungsmusterPlotPage()), + MenuItem(name: "Notizen", page: NotesPage()), + MenuItem(name: "Login", page: LoginPage()), + //MenuItem(name: "AdvancedEditor", page: sl()), + + /// Settingspage muss aus GetIt geladen werden, damit der Settings + /// Page die Shared Preferences übergeben werden können + MenuItem(name: "Settings", page: sl()), + ], + ), + ), + ); + } +} diff --git a/lib/core/ui/theme/app_themes.dart b/lib/core/ui/theme/app_themes.dart new file mode 100644 index 0000000..9752e18 --- /dev/null +++ b/lib/core/ui/theme/app_themes.dart @@ -0,0 +1,90 @@ +import 'package:flutter/material.dart'; + +enum AppTheme { + Dark, + Dark_Blue, + Light, + Amoled_Dark, +} + +/// TInspiriert an den Farbpaletten von https://coolors.co/palettes/trending +final appThemeData = { + ///Material Dark Theme + AppTheme.Dark: ThemeData( + scaffoldBackgroundColor: Color.fromRGBO(18, 18, 18, 1), + fontFamily: "Verdana", + appBarTheme: AppBarTheme(elevation: 0, color: Colors.transparent), + textTheme: TextTheme(bodyText2: TextStyle(color: Colors.black)), + accentColor: Color.fromRGBO(31, 27, 36, 1), + dividerColor: Colors.white, + primaryTextTheme: TextTheme( + bodyText1: TextStyle(color: Colors.white), + headline5: TextStyle(fontSize: 30, color: Colors.white), + button: TextStyle(color: Colors.white), + ), + cardTheme: CardTheme( + elevation: 5, + color: Color.fromRGBO(31, 27, 36, 1), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(8.0), + ))), + AppTheme.Light: ThemeData( + scaffoldBackgroundColor: Colors.white, + fontFamily: "Verdana", + appBarTheme: AppBarTheme(elevation: 0, color: Colors.transparent), + textTheme: TextTheme(bodyText2: TextStyle(color: Colors.white)), + accentColor: Color.fromRGBO(168, 218, 220, 1), + dividerColor: Color.fromRGBO(108, 115, 126, 1), + primaryTextTheme: TextTheme( + bodyText1: TextStyle(color: Color.fromRGBO(108, 115, 126, 1)), + headline5: + TextStyle(fontSize: 30, color: Color.fromRGBO(108, 115, 126, 1)), + headline6: TextStyle(color: Color.fromRGBO(108, 115, 126, 1)), + button: TextStyle(color: Color.fromRGBO(108, 115, 126, 1)), + ), + primaryIconTheme: IconThemeData.fallback().copyWith(color: Colors.black), + cardTheme: CardTheme( + elevation: 5, + color: Color.fromRGBO(168, 218, 220, 1), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(8.0), + ))), + AppTheme.Amoled_Dark: ThemeData( + scaffoldBackgroundColor: Color.fromRGBO(0, 0, 0, 1), + fontFamily: "Verdana", + appBarTheme: AppBarTheme(elevation: 0, color: Colors.transparent), + textTheme: TextTheme(bodyText2: TextStyle(color: Colors.black)), + accentColor: Color.fromRGBO(33, 33, 33, 1), + dividerColor: Colors.white, + primaryTextTheme: TextTheme( + bodyText1: TextStyle(color: Color.fromRGBO(232, 236, 241, 1)), + headline5: + TextStyle(fontSize: 30, color: Color.fromRGBO(232, 236, 241, 1)), + button: TextStyle(color: Color.fromRGBO(232, 236, 241, 1)), + ), + cardTheme: CardTheme( + elevation: 5, + color: Color.fromRGBO(33, 33, 33, 1), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(8.0), + ))), + AppTheme.Dark_Blue: ThemeData( + scaffoldBackgroundColor: Color.fromRGBO(38, 70, 83, 1), + fontFamily: "Verdana", + appBarTheme: AppBarTheme(elevation: 0, color: Colors.transparent), + textTheme: TextTheme(bodyText2: TextStyle(color: Colors.black)), + accentColor: Color.fromRGBO(42, 157, 143, 1), + dividerColor: Colors.white, + primaryTextTheme: TextTheme( + bodyText1: TextStyle(color: Color.fromRGBO(232, 236, 241, 1)), + headline5: + TextStyle(fontSize: 30, color: Color.fromRGBO(232, 236, 241, 1)), + button: TextStyle(color: Colors.white), + ), + cardTheme: CardTheme( + elevation: 5, + color: Color.fromRGBO(42, 157, 143, 0.9), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(8.0), + ))), +}; diff --git a/lib/core/ui/theme/bloc/theme_bloc.dart b/lib/core/ui/theme/bloc/theme_bloc.dart new file mode 100644 index 0000000..722d1ca --- /dev/null +++ b/lib/core/ui/theme/bloc/theme_bloc.dart @@ -0,0 +1,29 @@ +import 'dart:async'; + +import 'package:bloc/bloc.dart'; +import 'package:equatable/equatable.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; + +import '../../../../injection_container.dart'; +import '../../../util/shared_prefrences/shared_prefs_theme.dart'; +import '../app_themes.dart'; + +part 'theme_event.dart'; +part 'theme_state.dart'; + +class ThemeBloc extends Bloc { + @override + //ThemeState get initialState => ThemeState(themeData: appThemeData[AppTheme.Dark]); + ThemeState get initialState => sl().lastTheme; + + @override + Stream mapEventToState( + ThemeEvent event, + ) async* { + if(event is ThemeChanged){ + sl().saveTheme(event.theme); + yield ThemeState(themeData: appThemeData[event.theme]); + } + } +} diff --git a/lib/core/ui/theme/bloc/theme_event.dart b/lib/core/ui/theme/bloc/theme_event.dart new file mode 100644 index 0000000..dbdc66c --- /dev/null +++ b/lib/core/ui/theme/bloc/theme_event.dart @@ -0,0 +1,16 @@ +part of 'theme_bloc.dart'; + +abstract class ThemeEvent extends Equatable { + const ThemeEvent(); +} + +class ThemeChanged extends ThemeEvent{ + final AppTheme theme; + + ThemeChanged({ + @required this.theme + }); + + @override + List get props => [theme]; +} \ No newline at end of file diff --git a/lib/core/ui/theme/bloc/theme_state.dart b/lib/core/ui/theme/bloc/theme_state.dart new file mode 100644 index 0000000..6229489 --- /dev/null +++ b/lib/core/ui/theme/bloc/theme_state.dart @@ -0,0 +1,13 @@ +part of 'theme_bloc.dart'; + +class ThemeState extends Equatable { + final ThemeData themeData; + + ThemeState({ + @required this.themeData + }); + + + @override + List get props => [themeData]; +} diff --git a/lib/core/ui/widgets/error_display.dart b/lib/core/ui/widgets/error_display.dart new file mode 100644 index 0000000..4840807 --- /dev/null +++ b/lib/core/ui/widgets/error_display.dart @@ -0,0 +1,21 @@ +import 'dart:developer'; + +import 'package:flushbar/flushbar.dart'; +import 'package:flutter/material.dart'; + +class ErrorDisplayFlushbar { + void showErrorFlushbar(BuildContext context, String error) { + Flushbar( + title: "Fehler:", + message: error, + icon: Icon( + Icons.error, + size: 28, + color: Colors.red, + ), + duration: Duration(seconds: 5), + isDismissible: true, + leftBarIndicatorColor: Colors.red, + )..show(context); + } +} diff --git a/lib/core/ui/widgets/invisible_widget.dart b/lib/core/ui/widgets/invisible_widget.dart new file mode 100644 index 0000000..6b072a1 --- /dev/null +++ b/lib/core/ui/widgets/invisible_widget.dart @@ -0,0 +1,15 @@ +import 'package:flutter/material.dart'; + +class InvisibleWidget extends StatelessWidget { + const InvisibleWidget({Key key}) : super(key: key); + + @override + Widget build(BuildContext context) { + return Container( + child: Opacity( + child: Text("Nothing to see"), + opacity: 0.0, + ), + ); + } +} diff --git a/lib/core/ui/widgets/success_display.dart b/lib/core/ui/widgets/success_display.dart new file mode 100644 index 0000000..5f3e738 --- /dev/null +++ b/lib/core/ui/widgets/success_display.dart @@ -0,0 +1,19 @@ +import 'package:flushbar/flushbar.dart'; +import 'package:flutter/material.dart'; + +class SuccessDisplayFlushbar { + void showSuccessFlushbar(BuildContext context, String success) { + Flushbar( + title: "Erfolgreich:", + message: success, + icon: Icon( + Icons.check, + size: 28, + color: Colors.green, + ), + duration: Duration(seconds: 5), + isDismissible: true, + leftBarIndicatorColor: Colors.green, + )..show(context); + } +} diff --git a/lib/core/usecases/usecases.dart b/lib/core/usecases/usecases.dart new file mode 100644 index 0000000..1cf5d9a --- /dev/null +++ b/lib/core/usecases/usecases.dart @@ -0,0 +1,11 @@ +import 'package:dartz/dartz.dart'; +import 'package:equatable/equatable.dart'; +import '../error/failure.dart'; + +abstract class UseCases{ + Future> call(Params params); +} +class NoParams extends Equatable { + @override + List get props => []; +} \ No newline at end of file diff --git a/lib/core/util/input_converter.dart b/lib/core/util/input_converter.dart new file mode 100644 index 0000000..a0a5147 --- /dev/null +++ b/lib/core/util/input_converter.dart @@ -0,0 +1,26 @@ +import 'package:dartz/dartz.dart'; + +import '../error/failure.dart'; + +class InputConverter{ + Either stringToUnsignedInteger(String str) { + try { + final integer = int.parse(str); + if (integer < 0) throw FormatException(); + return Right(integer); + } on FormatException { + return Left(InvalidInputFailure()); + } + } + Either stringToUnsignedDouble(String str) { + try { + final doubl = double.parse(str); + if (doubl < 0.0) throw FormatException(); + return Right(doubl); + } on FormatException { + return Left(InvalidInputFailure()); + } + } + +} +class InvalidInputFailure extends Failure{} \ No newline at end of file diff --git a/lib/core/util/parser/markdown_html_parser.dart b/lib/core/util/parser/markdown_html_parser.dart new file mode 100644 index 0000000..3e2eb17 --- /dev/null +++ b/lib/core/util/parser/markdown_html_parser.dart @@ -0,0 +1,67 @@ +import 'dart:developer'; + +/// Eine Klasse die einen Übergebenen String mit normalen Markdown symbolen +/// in einen String mit umgewandelten html elementen verwandelt, da TeXView +/// html unterstützt und man so Markdown in den Artikeln und den Notizen +/// verwenden kann +/// +/// Unterstütztes Markdown: +/// - # Headline ->

Headline

+/// - ** bold text ** -> bold text +/// - *italic text* -> italic text +/// - `code` -> code +/// - --- ->
+class MarkDownParser { + /// [*] -> muss * enthalten + /// . -> jeder Buchstabe / jedes Zeichen | Ausgenommen neue Zeile + /// z{x, y} -> Zeichen z min x mal, maximal y mal, wenn kein y + /// angegeben ist y = unendlich + /// {}? -> möglichst wenig + /// (Sorgt dafür, dass möglichst wenige ausgewählt werden -> sonst wäre + /// **bold 1** **bold 2** das gleiche (match = **bold 1** **bold 2**) und + /// so sind es dann zwei verschiedene Matches (match1 = **bold 1**, match2=...)) + final RegExp bold_regex = RegExp(r"([*][*].{1,}?[*][*])+"); + + /// [^z] = schließt das Zeichen z aus + final RegExp italic_regex = RegExp(r"([*][^*].{1,}?[^*][*])+"); + final RegExp code_regex = RegExp(r"([`].{1,}?[`])+"); + + /// \S* es können null oder mehr Lehrzeichen dazwischen sein + final RegExp h1_reges = RegExp(r"([#]\S*.{1,})+"); + + String parseString(String string) { + String string_with_html_markdown = string; + for (var match in _allStringMatches(string, bold_regex)) { + String after = match.replaceFirst("**", ""); + after = after.replaceAll("**", ""); + string_with_html_markdown = + string_with_html_markdown.replaceFirst(match, after); + } + for (var match in _allStringMatches(string, italic_regex)) { + String after = match.replaceFirst("*", ""); + after = after.replaceAll("*", ""); + string_with_html_markdown = + string_with_html_markdown.replaceFirst(match, after); + } + for (var match in _allStringMatches(string, code_regex)) { + String after = match.replaceFirst("`", ""); + after = after.replaceAll("`", ""); + string_with_html_markdown = + string_with_html_markdown.replaceFirst(match, after); + } + for (var match in _allStringMatches(string, h1_reges)) { + String after = match.replaceFirst("#", "

"); + after = after + "

"; + string_with_html_markdown = + string_with_html_markdown.replaceFirst(match, after); + } + string_with_html_markdown = + string_with_html_markdown.replaceAll("\n", "
"); + string_with_html_markdown = + string_with_html_markdown.replaceAll("---", "
"); + return string_with_html_markdown; + } + + Iterable _allStringMatches(String text, RegExp regExp) => + regExp.allMatches(text).map((m) => m.group(0)); +} diff --git a/lib/core/util/shared_prefrences/shared_prefs_auth.dart b/lib/core/util/shared_prefrences/shared_prefs_auth.dart new file mode 100644 index 0000000..d3bc398 --- /dev/null +++ b/lib/core/util/shared_prefrences/shared_prefs_auth.dart @@ -0,0 +1,23 @@ +import 'package:flutter/cupertino.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +class SharedPrefsAuth { + final SharedPreferences prefs; + SharedPrefsAuth({@required this.prefs}); + + String get auth_key { + return prefs.getString("auth_key"); + } + + set auth_key(String value) { + prefs.setString("auth_key", value); + } + + bool get logedin { + return prefs.getBool("loged_in") ?? false; + } + + set logedin(bool value) { + prefs.setBool("loged_in", value); + } +} diff --git a/lib/core/util/shared_prefrences/shared_prefs_rendering_engine.dart b/lib/core/util/shared_prefrences/shared_prefs_rendering_engine.dart new file mode 100644 index 0000000..ebd585f --- /dev/null +++ b/lib/core/util/shared_prefrences/shared_prefs_rendering_engine.dart @@ -0,0 +1,41 @@ +import 'package:flutter/cupertino.dart'; +import 'package:flutter_tex/flutter_tex.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +class SharedPrefsRenderingEngine{ + // default, da sie inline equations zulässt und Katex nicht + final String _default_engine = "MathJax"; + final SharedPreferences prefs; + SharedPrefsRenderingEngine({ + @required this.prefs + }); + + /// gibt die aktuelle Rendering Engine zurück, falls keine gesetzt ist wird 'MathJax' zurück gegegben + String get renderingEngine{ + return prefs.getString("rendering_engine") ?? _default_engine; + } + + TeXViewRenderingEngine get renderingEngineAsTeXEngine{ + String _engine = prefs.getString("rendering_engine") ?? _default_engine; + switch(_engine){ + case "Katex": { + return TeXViewRenderingEngine.katex(); + } break; + case "MathJax": { + return TeXViewRenderingEngine.mathjax(); + } default: { + // Auch wenn dieser Part niemals eintreten kann, ist er vorsichtshalber da + return TeXViewRenderingEngine.mathjax(); + } + } + } + + /// Speichert die übergebene RenderingEngine (Katex / Mathjax) als neue Rendering Engine + /// + /// Katex = am schnellsten + /// MathJax = etwas bessere Qualität, dafür etwas langsamer, zudem unterstützt die MathJax engine inzwischen inline equtations, + /// weshalb diese standartmäßig ausgewählt ist + set renderingEngine(String engine){ + prefs.setString("rendering_engine", engine); + } +} \ No newline at end of file diff --git a/lib/core/util/shared_prefrences/shared_prefs_slider.dart b/lib/core/util/shared_prefrences/shared_prefs_slider.dart new file mode 100644 index 0000000..97d548c --- /dev/null +++ b/lib/core/util/shared_prefrences/shared_prefs_slider.dart @@ -0,0 +1,17 @@ +import 'package:flutter/cupertino.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +class SharedPrefsSlider { + final SharedPreferences prefs; + SharedPrefsSlider({@required this.prefs}); + + /// liest aus, ob der Nutzer das Intro schonmal hatte, falls nichts + /// gespeichert ist wird false returned + bool get introGot { + return prefs.getBool("introGot") ?? false; + } + + set introGot(bool got) { + prefs.setBool("introGot", got); + } +} diff --git a/lib/core/util/shared_prefrences/shared_prefs_theme.dart b/lib/core/util/shared_prefrences/shared_prefs_theme.dart new file mode 100644 index 0000000..f4beda2 --- /dev/null +++ b/lib/core/util/shared_prefrences/shared_prefs_theme.dart @@ -0,0 +1,23 @@ +import 'package:meta/meta.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +import '../../ui/theme/app_themes.dart'; +import '../../ui/theme/bloc/theme_bloc.dart'; + +class SharedPrefsTheme{ + final SharedPreferences prefs; + SharedPrefsTheme({ + @required this.prefs + }); + + /// Lädt aus den SharedPrefrences die nummer des zu letzt verwendeten AppThemes und sucht den zugehörigen Enum und + /// wandelt dies dann in ein ThemeState um, so das es direkt verwendet werden kann + ThemeState get lastTheme{ + return ThemeState(themeData: appThemeData[AppTheme.values[prefs.getInt("theme") ?? 0]]); + } + + /// Speichert das übergebene AppTheme als int in den SharedPreferences + void saveTheme(AppTheme theme){ + prefs.setInt("theme", theme.index); + } +} \ No newline at end of file diff --git a/lib/features/content/data/datasources/content_api.dart b/lib/features/content/data/datasources/content_api.dart new file mode 100644 index 0000000..26b3225 --- /dev/null +++ b/lib/features/content/data/datasources/content_api.dart @@ -0,0 +1,66 @@ +import 'dart:convert'; + +import 'package:flutter/cupertino.dart'; +import 'package:http/http.dart' as http; + +import '../../../../core/error/exceptions.dart'; +import '../../domain/entities/articel_entitie.dart'; +import '../../domain/entities/articels_list_entitie.dart'; +import '../../domain/entities/topics_entitie.dart'; +import '../models/articel_model.dart'; +import '../models/articels_list_model.dart'; +import '../models/topics_list_model.dart'; + +abstract class ContentApi { + /// Ruft die http://srv2.thebotdev.de/physik api auf um von dort alle Themen / alle Artikel oder einen bestimmten Artikel aufzurufen + /// + /// Wirft eine [ServerException] bei jedem Fehlercode + Future getAllTopics(); + Future getAllArticels(int id); + Future getArticel(int id); +} + +class ContentApiImpl implements ContentApi { + final http.Client client; + final String baseurl = "http://srv2.thebotdev.de"; + final String app = "physik"; + ContentApiImpl({@required this.client}); + + @override + Future getAllTopics() async { + return _getAllTopics(); + } + + Future _getAllTopics() async { + final response = await client.get("$baseurl/topics?app=$app"); + if (response.statusCode == 200) { + return TopicsListModel.fromJson(json.decode(response.body)); + } else { + throw ServerException(); + } + } + + @override + Future getAllArticels(int id) => _getAllArticels(id); + + Future _getAllArticels(int id) async { + final response = await client.get("$baseurl/articels?id=$id&app=$app"); + if (response.statusCode == 200) { + return ArticelsListModel.fromJson(json.decode(response.body)); + } else { + throw ServerException(); + } + } + + @override + Future getArticel(int id) => _getArticel(id); + + Future _getArticel(int id) async { + final response = await client.get("$baseurl/articel?id=$id&app=$app"); + if (response.statusCode == 200) { + return ArticelModel.fromJson(json.decode(response.body)); + } else { + throw ServerException(); + } + } +} diff --git a/lib/features/content/data/models/articel_model.dart b/lib/features/content/data/models/articel_model.dart new file mode 100644 index 0000000..c700724 --- /dev/null +++ b/lib/features/content/data/models/articel_model.dart @@ -0,0 +1,35 @@ +import 'package:meta/meta.dart'; + +import '../../domain/entities/articel_entitie.dart'; + +class ArticelModel extends Articel{ + ArticelModel({ + @required int id, + @required int thema_id, + @required String autor, + @required String titel, + @required String typ, + @required String content + }) : super(id: id, thema_id: thema_id, autor: autor, titel: titel, typ: typ, content: content); + + factory ArticelModel.fromJson(Map json){ + return ArticelModel( + id: json['id'], + thema_id: json['thema_id'], + autor: json['autor'], + content: json['content'], + typ: json['typ'], + titel: json['titel']); + } + + Map toJson(){ + return{ + "id": id, + "thema_id": thema_id, + "autor": autor, + "titel": titel, + "typ": typ, + "content": content + }; + } +} \ No newline at end of file diff --git a/lib/features/content/data/models/articels_list_model.dart b/lib/features/content/data/models/articels_list_model.dart new file mode 100644 index 0000000..27e4ed8 --- /dev/null +++ b/lib/features/content/data/models/articels_list_model.dart @@ -0,0 +1,17 @@ +import 'package:flutter/cupertino.dart'; + +import '../../domain/entities/articels_entitie.dart'; +import '../../domain/entities/articels_list_entitie.dart'; +import 'articels_model.dart'; + +class ArticelsListModel extends ArticelsList{ + ArticelsListModel({ + @required List articels + }) : super(articels: articels); + + factory ArticelsListModel.fromJson(List json){ + List list = []; + json.forEach((value) { list.add(ArticelsModel.fromJson(value));}); + return ArticelsListModel(articels: list); + } +} \ No newline at end of file diff --git a/lib/features/content/data/models/articels_model.dart b/lib/features/content/data/models/articels_model.dart new file mode 100644 index 0000000..81a6679 --- /dev/null +++ b/lib/features/content/data/models/articels_model.dart @@ -0,0 +1,21 @@ +import 'package:meta/meta.dart'; + +import '../../domain/entities/articels_entitie.dart'; + +class ArticelsModel extends Articels{ + ArticelsModel({ + @required int id, + @required String titel + }) : super(id: id, titel: titel); + + factory ArticelsModel.fromJson(Map json){ + return ArticelsModel(id: json['id'], titel: json['titel']); + } + + Map toJson(){ + return { + "id": id, + "titel": titel + }; + } +} \ No newline at end of file diff --git a/lib/features/content/data/models/topic_model.dart b/lib/features/content/data/models/topic_model.dart new file mode 100644 index 0000000..498c564 --- /dev/null +++ b/lib/features/content/data/models/topic_model.dart @@ -0,0 +1,22 @@ +import 'package:meta/meta.dart'; + +import '../../domain/entities/topic_entitie.dart'; + + +class TopicModel extends Topic{ + TopicModel({ + @required int id, + @required String topic + }) : super(id: id, topic: topic); + + factory TopicModel.fromJson(Map json){ + return TopicModel(id: json['id'], topic: json['topic']); + } + + Map toJson(){ + return { + "id": id, + "topic": topic + }; + } +} \ No newline at end of file diff --git a/lib/features/content/data/models/topics_list_model.dart b/lib/features/content/data/models/topics_list_model.dart new file mode 100644 index 0000000..8ac5391 --- /dev/null +++ b/lib/features/content/data/models/topics_list_model.dart @@ -0,0 +1,20 @@ +import 'package:flutter/cupertino.dart'; + +import '../../domain/entities/topic_entitie.dart'; +import '../../domain/entities/topics_entitie.dart'; +import 'topic_model.dart'; + +class TopicsListModel extends Topics{ + TopicsListModel({ + @required List topics + }) : super(topics: topics); + + factory TopicsListModel.fromJson(List json){ + List list = []; + json.forEach( + (value){ + list.add(TopicModel.fromJson(value)); + }); + return TopicsListModel(topics: list); + } +} \ No newline at end of file diff --git a/lib/features/content/data/repositories/content_repository_impl.dart b/lib/features/content/data/repositories/content_repository_impl.dart new file mode 100644 index 0000000..ec2c88c --- /dev/null +++ b/lib/features/content/data/repositories/content_repository_impl.dart @@ -0,0 +1,66 @@ +import 'dart:developer'; + +import 'package:dartz/dartz.dart'; +import 'package:flutter/cupertino.dart'; + +import '../../../../core/error/exceptions.dart'; +import '../../../../core/error/failure.dart'; +import '../../../../core/platform/networkinfo.dart'; +import '../../domain/entities/articel_entitie.dart'; +import '../../domain/entities/articels_list_entitie.dart'; +import '../../domain/entities/topics_entitie.dart'; +import '../../domain/repositories/content_repository.dart'; +import '../datasources/content_api.dart'; + +/// Ruft die übergebene [ContentApi] auf und liefert die gefragten Infos zurück. +/// Bei jedem Fehler wird ein [ServerFailure] zuürck gegeben +/// Wenn der Nutzer offline ist wird ein [CacheFailure] zurück gegben +class ContentRepositoryImpl implements ContentRepository{ + final ContentApi remoteDataSource; + final NetworkInfo networkInfo; + + ContentRepositoryImpl({ + @required this.remoteDataSource, + @required this.networkInfo + }); + + @override + Future> getAllArticels(int id) async { + if(await networkInfo.isConnected){ + try{ + return Right(await remoteDataSource.getAllArticels(id)); + } on ServerException{ + return Left(ServerFailure()); + } + }else{ + return Left(CacheFailure()); + } + } + + @override + Future> getAllTopics() async{ + if(await networkInfo.isConnected){ + try{ + return Right(await remoteDataSource.getAllTopics()); + } on ServerException{ + log("Error: Server Fehler (GetAllTopics)"); + return Left(ServerFailure()); + } + }else{ + return Left(CacheFailure()); + } + } + + @override + Future> getArticel(int id) async{ + if(await networkInfo.isConnected){ + try{ + return Right(await remoteDataSource.getArticel(id)); + } on ServerException{ + return Left(ServerFailure()); + } + }else{ + return Left(CacheFailure()); + } + } +} \ No newline at end of file diff --git a/lib/features/content/domain/entities/articel_entitie.dart b/lib/features/content/domain/entities/articel_entitie.dart new file mode 100644 index 0000000..51763dd --- /dev/null +++ b/lib/features/content/domain/entities/articel_entitie.dart @@ -0,0 +1,23 @@ +import 'package:equatable/equatable.dart'; +import 'package:meta/meta.dart'; + +class Articel extends Equatable{ + final int id; + final int thema_id; + final String autor; + final String titel; + final String typ; + final String content; + + Articel({ + @required this.id, + @required this.thema_id, + @required this.autor, + @required this.titel, + @required this.typ, + @required this.content + }); + + @override + List get props => [id, thema_id, autor, titel, typ, content]; +} \ No newline at end of file diff --git a/lib/features/content/domain/entities/articels_entitie.dart b/lib/features/content/domain/entities/articels_entitie.dart new file mode 100644 index 0000000..303afd4 --- /dev/null +++ b/lib/features/content/domain/entities/articels_entitie.dart @@ -0,0 +1,20 @@ +import 'package:equatable/equatable.dart'; +import 'package:meta/meta.dart'; + +/// Es gibt ein Entitie für die normalen Artikel, eins für die Artikel Elemente in +/// einer Liste, da wir fürs anzeigen der Artikel im Menü weniger Informationen +/// brauchen und mehr Informationen nur geladen werden, wenn der Artikel aufgerufen +/// wird +class Articels extends Equatable{ + final int id; + final String titel; + + + Articels({ + @required this.id, + @required this.titel, + }); + + @override + List get props => [id, titel]; +} \ No newline at end of file diff --git a/lib/features/content/domain/entities/articels_list_entitie.dart b/lib/features/content/domain/entities/articels_list_entitie.dart new file mode 100644 index 0000000..c577e06 --- /dev/null +++ b/lib/features/content/domain/entities/articels_list_entitie.dart @@ -0,0 +1,15 @@ +import 'package:equatable/equatable.dart'; +import 'package:flutter/cupertino.dart'; + +import 'articels_entitie.dart'; + +class ArticelsList extends Equatable{ + final List articels; + + ArticelsList({ + @required this.articels + }); + @override + List get props => [articels]; + +} \ No newline at end of file diff --git a/lib/features/content/domain/entities/topic_entitie.dart b/lib/features/content/domain/entities/topic_entitie.dart new file mode 100644 index 0000000..40c1a3f --- /dev/null +++ b/lib/features/content/domain/entities/topic_entitie.dart @@ -0,0 +1,16 @@ +import 'package:equatable/equatable.dart'; +import 'package:meta/meta.dart'; + +class Topic extends Equatable{ + final int id; + final String topic; + + + Topic({ + @required this.id, + @required this.topic, + }); + + @override + List get props => [id, topic]; +} \ No newline at end of file diff --git a/lib/features/content/domain/entities/topics_entitie.dart b/lib/features/content/domain/entities/topics_entitie.dart new file mode 100644 index 0000000..5634415 --- /dev/null +++ b/lib/features/content/domain/entities/topics_entitie.dart @@ -0,0 +1,15 @@ +import 'package:equatable/equatable.dart'; +import 'package:flutter/cupertino.dart'; + +import 'topic_entitie.dart'; + +class Topics extends Equatable{ + final List topics; + + Topics({ + @required this.topics + }); + + @override + List get props => [topics]; +} \ No newline at end of file diff --git a/lib/features/content/domain/repositories/content_repository.dart b/lib/features/content/domain/repositories/content_repository.dart new file mode 100644 index 0000000..4680b2c --- /dev/null +++ b/lib/features/content/domain/repositories/content_repository.dart @@ -0,0 +1,12 @@ +import 'package:dartz/dartz.dart'; + +import '../../../../core/error/failure.dart'; +import '../entities/articel_entitie.dart'; +import '../entities/articels_list_entitie.dart'; +import '../entities/topics_entitie.dart'; + +abstract class ContentRepository{ + Future> getAllTopics(); + Future> getAllArticels(int id); + Future> getArticel(int id); +} \ No newline at end of file diff --git a/lib/features/content/domain/usecases/get_all_articels.dart b/lib/features/content/domain/usecases/get_all_articels.dart new file mode 100644 index 0000000..f1ea174 --- /dev/null +++ b/lib/features/content/domain/usecases/get_all_articels.dart @@ -0,0 +1,16 @@ +import 'package:dartz/dartz.dart'; +import 'package:flutter/cupertino.dart'; + +import '../../../../core/error/failure.dart'; +import '../entities/articels_list_entitie.dart'; +import '../repositories/content_repository.dart'; + +class GetAllArticels { + final ContentRepository repository; + GetAllArticels({@required this.repository}); + + @override + Future> call(int id) async { + return await repository.getAllArticels(id); + } +} diff --git a/lib/features/content/domain/usecases/get_all_topics.dart b/lib/features/content/domain/usecases/get_all_topics.dart new file mode 100644 index 0000000..9629a15 --- /dev/null +++ b/lib/features/content/domain/usecases/get_all_topics.dart @@ -0,0 +1,19 @@ +import 'dart:developer'; + +import 'package:dartz/dartz.dart'; + +import '../../../../core/error/failure.dart'; +import '../../../../core/usecases/usecases.dart'; +import '../entities/topics_entitie.dart'; +import '../repositories/content_repository.dart'; + +class GetAllTopics implements UseCases{ + final ContentRepository repository; + GetAllTopics(this.repository); + + @override + Future> call(NoParams params) async { + log("Called: GetAllTopics"); + return await repository.getAllTopics(); + } +} \ No newline at end of file diff --git a/lib/features/content/domain/usecases/get_articel.dart b/lib/features/content/domain/usecases/get_articel.dart new file mode 100644 index 0000000..db9bc73 --- /dev/null +++ b/lib/features/content/domain/usecases/get_articel.dart @@ -0,0 +1,16 @@ +import 'package:dartz/dartz.dart'; +import 'package:flutter/cupertino.dart'; + +import '../../../../core/error/failure.dart'; +import '../entities/articel_entitie.dart'; +import '../repositories/content_repository.dart'; + +class GetArticel { + final ContentRepository repository; + GetArticel({@required this.repository}); + + @override + Future> call(int id) async { + return await repository.getArticel(id); + } +} diff --git a/lib/features/content/presentation/bloc/content_bloc.dart b/lib/features/content/presentation/bloc/content_bloc.dart new file mode 100644 index 0000000..33af972 --- /dev/null +++ b/lib/features/content/presentation/bloc/content_bloc.dart @@ -0,0 +1,101 @@ +import 'dart:async'; + +import 'package:bloc/bloc.dart'; +import 'package:dartz/dartz.dart'; +import 'package:equatable/equatable.dart'; +import 'package:meta/meta.dart'; + +import '../../../../core/error/failure.dart'; +import '../../../../core/usecases/usecases.dart'; +import '../../domain/entities/articel_entitie.dart'; +import '../../domain/entities/articels_list_entitie.dart'; +import '../../domain/entities/topics_entitie.dart'; +import '../../domain/usecases/get_all_articels.dart'; +import '../../domain/usecases/get_all_topics.dart'; +import '../../domain/usecases/get_articel.dart'; + +part 'content_event.dart'; +part 'content_state.dart'; + +const String SERVER_FAILURE_MESSAGE = "Server Fehler"; +const String CACHE_FAILURE_MESSAGE = "Es scheint als wärst du offline, doch für diese Funktion wird eine Internetverbindung benötigt :("; + +class ContentBloc extends Bloc { + final GetAllArticels getAllArticels; + final GetAllTopics getAllTopics; + final GetArticel getArticel; + + /// Da Dart noch keine non nullable Objekte besitzt und keine der Funktionen funktionieren kann, + /// falls eine Klasse nicht übergeben wird, überprüfe ich noch einmal, dass kein Objekt null ist + /// (und somit entweder nicht richtig übergeben wurde oder nicht instanziert) + /// Dieser Test wird nur hier benötigt, da nach der Clean Architecture nach Uncle Bob der Call Flow + /// immer nur von der Presentation Ebene kommen kann/darf und somit an keiner anderen Stelle mehr null + /// Objekte übergben werden können + ContentBloc({ + @required this.getAllArticels, + @required this.getAllTopics, + @required this.getArticel}) : assert(getArticel != null), assert(getAllTopics != null), assert(getAllArticels != null); + + @override + Stream mapEventToState( + ContentEvent event, + ) async* { + if(event is GetAllArticelsEvent){ + yield ContentLoading(); + final failureOrArticels = await getAllArticels(event.id); + yield* _eitherLoadedArticelsOrErrorState(failureOrArticels); + }else if (event is GetAllTopicsEvent){ + yield ContentLoading(); + final failureOrTopics = await getAllTopics(NoParams()); + yield* _eitherLoadedOrErrorState(failureOrTopics); + } else if(event is GetArticelEvent){ + yield ContentLoading(); + final failureOrArticel = await getArticel(event.id); + yield* _eitherLoadedArticelOrErrorState(failureOrArticel); + } + } + + Stream _eitherLoadedOrErrorState( + Either failureOrTopics, + ) async* { + yield failureOrTopics.fold( + (failure) => ContentError(error: _mapFailureToMessage(failure)), + (topic) => TopicsLoaded(topics: topic), + ); + } + + Stream _eitherLoadedArticelsOrErrorState( + Either failureOrTopics, + ) async* { + yield failureOrTopics.fold( + (failure) => ContentError(error: _mapFailureToMessage(failure)), + (articels) => ArticelsLoaded(articels: articels), + ); + } + + Stream _eitherLoadedArticelOrErrorState( + Either failureOrTopics, + ) async* { + yield failureOrTopics.fold( + (failure) => ContentError(error: _mapFailureToMessage(failure)), + (articel) => ArticelLoaded(articel: articel), + ); + } + + String _mapFailureToMessage(Failure failure) { + switch (failure.runtimeType) { + case ServerFailure: + return SERVER_FAILURE_MESSAGE; + case CacheFailure: + return CACHE_FAILURE_MESSAGE; + default: + return 'Unexpected error'; + } +} + /// Legt fest, dass der UrsprungsState [ContentInitial] ist + @override + ContentState get initialState => ContentInitial(); + + @override + List get props => []; +} diff --git a/lib/features/content/presentation/bloc/content_event.dart b/lib/features/content/presentation/bloc/content_event.dart new file mode 100644 index 0000000..48bf7dd --- /dev/null +++ b/lib/features/content/presentation/bloc/content_event.dart @@ -0,0 +1,21 @@ +part of 'content_bloc.dart'; + +@immutable +abstract class ContentEvent extends Equatable{ + @override + List get props => []; +} +class GetAllArticelsEvent extends ContentEvent{ + final int id; + + GetAllArticelsEvent({@required this.id}); + List get props => [id]; +} +// benötigt keinen body, da dafür keine Parameter benötigt sind +class GetAllTopicsEvent extends ContentEvent{} +class GetArticelEvent extends ContentEvent{ + final int id; + + GetArticelEvent({@required this.id}); + List get props => [id]; +} diff --git a/lib/features/content/presentation/bloc/content_state.dart b/lib/features/content/presentation/bloc/content_state.dart new file mode 100644 index 0000000..9450815 --- /dev/null +++ b/lib/features/content/presentation/bloc/content_state.dart @@ -0,0 +1,40 @@ +part of 'content_bloc.dart'; + +/// Eine Klasse die alle mäglichen States des UIs behandelt, welche im zusammenhang +/// zum content Feature stehen +@immutable +abstract class ContentState extends Equatable{ + @override + List get props => []; +} + +class ContentInitial extends ContentState {} +class ContentLoading extends ContentState{} +class ContentError extends ContentState{ + final String error; + ContentError({@required this.error}); + + @override + List get props => [error]; +} +class ArticelsLoaded extends ContentState{ + final ArticelsList articels; + + ArticelsLoaded({@required this.articels}); + @override + List get props => [articels]; +} +class ArticelLoaded extends ContentState{ + final Articel articel; + + ArticelLoaded({@required this.articel}); + @override + List get props => [articel]; +} +class TopicsLoaded extends ContentState{ + final Topics topics; + + TopicsLoaded({@required this.topics}); + @override + List get props => [topics]; +} diff --git a/lib/features/content/presentation/pages/articel_page.dart b/lib/features/content/presentation/pages/articel_page.dart new file mode 100644 index 0000000..66c3476 --- /dev/null +++ b/lib/features/content/presentation/pages/articel_page.dart @@ -0,0 +1,73 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/scheduler.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; + +import '../../../../injection_container.dart'; +import '../bloc/content_bloc.dart'; +import '../widgets/articel_display.dart'; +import '../widgets/content_error_display.dart'; +import '../widgets/content_loading_display.dart'; + +final String errorInitial = + "Scheint als wäre die Api nicht aufgerufen worden, bitte starte die App noch mal neu"; + +class ArticelPage extends StatefulWidget { + final int articel_id; + ArticelPage({@required this.articel_id}); + + @override + _ArticelPageState createState() => _ArticelPageState(articel_id: articel_id); +} + +class _ArticelPageState extends State { + final int articel_id; + String appbar_titel = "Loading"; + _ArticelPageState({@required this.articel_id}); + bool madearticelsscall = false; + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text(appbar_titel), + ), + body: buildbody(context), + ); + } + + _getAllArticels(BuildContext context) { + BlocProvider.of(context).add(GetArticelEvent(id: articel_id)); + } + + BlocProvider buildbody(BuildContext context) { + return BlocProvider( + create: (context) => sl(), + child: Column(children: [ + BlocBuilder( + builder: (context, state) { + if (!madearticelsscall) { + madearticelsscall = true; + _getAllArticels(context); + } + if (state is ContentError) { + return ContentErrorDisplay(error: state.error); + } else if (state is ContentInitial) { + return ContentErrorDisplay(error: errorInitial); + } else if (state is ContentLoading) { + return ContentLoadingDisplay(); + } else if (state is ArticelLoaded) { + SchedulerBinding.instance.addPostFrameCallback((_) { + setState(() { + appbar_titel = state.articel.titel; + }); + }); + return ArticelDisplay( + content: state.articel.content, typ: state.articel.typ); + } else { + return ContentErrorDisplay( + error: "Unknown State: " + state.toString()); + } + }, + ) + ])); + } +} diff --git a/lib/features/content/presentation/pages/articels_page.dart b/lib/features/content/presentation/pages/articels_page.dart new file mode 100644 index 0000000..fe12dd5 --- /dev/null +++ b/lib/features/content/presentation/pages/articels_page.dart @@ -0,0 +1,62 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; + +import '../../../../injection_container.dart'; +import '../bloc/content_bloc.dart'; +import '../widgets/articels_list_display.dart'; +import '../widgets/content_error_display.dart'; +import '../widgets/content_loading_display.dart'; + +final String errorInitial = "Scheint als wäre die Api nicht aufgerufen worden, bitte starte die App noch mal neu"; +class ArticelsPage extends StatefulWidget { + final int thema_id; + ArticelsPage({@required this.thema_id}); + + @override + _ArticelsPageState createState() => _ArticelsPageState(thema_id: thema_id); +} + +class _ArticelsPageState extends State { + final int thema_id; + _ArticelsPageState({@required this.thema_id}); + bool madearticelsscall = false; + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar(title: Text("Hauptmenü"),), + body: buildbody(context), + ); + } + + _getAllArticels(BuildContext context){ + BlocProvider.of(context).add(GetAllArticelsEvent(id: thema_id)); + } + + BlocProvider buildbody(BuildContext context){ + return BlocProvider( + create: (context) => sl(), + child: Column( + children: [ + BlocBuilder( + builder: (context, state){ + if(!madearticelsscall){ + madearticelsscall = true; + _getAllArticels(context); + } + if(state is ContentError){ + return ContentErrorDisplay(error: state.error); + } else if(state is ContentInitial){ + return ContentErrorDisplay(error: errorInitial); + } else if(state is ContentLoading){ + return ContentLoadingDisplay(); + }else if(state is ArticelsLoaded){ + return ArticelsListDisplay(state: state); + }else{ + return ContentErrorDisplay(error: "Unknown State: "+state.toString()); + } + },) + ] + ) + ); + } +} \ No newline at end of file diff --git a/lib/features/content/presentation/pages/topics_page.dart b/lib/features/content/presentation/pages/topics_page.dart new file mode 100644 index 0000000..8d8a2e4 --- /dev/null +++ b/lib/features/content/presentation/pages/topics_page.dart @@ -0,0 +1,64 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; + +import '../../../../injection_container.dart'; +import '../bloc/content_bloc.dart'; +import '../widgets/content_error_display.dart'; +import '../widgets/content_loading_display.dart'; +import '../widgets/topics_list_display.dart'; + +final String errorInitial = + "Scheint als wäre die Api nicht aufgerufen worden, bitte starte die App noch mal neu"; + +class TopicsPage extends StatefulWidget { + TopicsPage({Key key}) : super(key: key); + + @override + _TopicsPageState createState() => _TopicsPageState(); +} + +class _TopicsPageState extends State { + bool madetopicscall = false; + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text("Hauptmenü"), + ), + body: buildbody(context), + ); + } + + _getAllTopics(BuildContext context) { + BlocProvider.of(context).add(GetAllTopicsEvent()); + } + + BlocProvider buildbody(BuildContext context) { + return BlocProvider( + create: (context) => sl(), + child: Column(children: [ + BlocBuilder( + builder: (context, state) { + if (!madetopicscall) { + madetopicscall = true; + _getAllTopics(context); + } + if (state is ContentError) { + return TopicsListDisplay( + offline: true, + ); + } else if (state is ContentInitial) { + return ContentErrorDisplay(error: errorInitial); + } else if (state is ContentLoading) { + return ContentLoadingDisplay(); + } else if (state is TopicsLoaded) { + return TopicsListDisplay(state: state); + } else { + return ContentErrorDisplay( + error: "Unknown State: " + state.toString()); + } + }, + ) + ])); + } +} diff --git a/lib/features/content/presentation/widgets/articel_display.dart b/lib/features/content/presentation/widgets/articel_display.dart new file mode 100644 index 0000000..e584f09 --- /dev/null +++ b/lib/features/content/presentation/widgets/articel_display.dart @@ -0,0 +1,20 @@ +import 'package:flutter/material.dart'; + +import 'articel_renderer/formelsammlung_renderer.dart'; +import 'articel_renderer/renderer.dart'; + +class ArticelDisplay extends StatelessWidget { + final String content; + final String typ; + ArticelDisplay({@required this.content, @required this.typ}); + + @override + Widget build(BuildContext context) { + String t = typ.toLowerCase(); + if (t == "articel" || t == "artikel") { + return ArticelRenderer(content: content); + } else if (t == "formelsammlung") { + return FormelSammlungRenderer(content: content); + } + } +} diff --git a/lib/features/content/presentation/widgets/articel_renderer/articel_renderer.dart b/lib/features/content/presentation/widgets/articel_renderer/articel_renderer.dart new file mode 100644 index 0000000..d28f04b --- /dev/null +++ b/lib/features/content/presentation/widgets/articel_renderer/articel_renderer.dart @@ -0,0 +1,52 @@ +import 'dart:convert'; + +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_tex/flutter_tex.dart'; + +import '../../../../../core/util/shared_prefrences/shared_prefs_rendering_engine.dart'; +import '../../../../../injection_container.dart'; +import 'teXdocument.dart'; + +class ArticelRenderer extends StatelessWidget { + final String content; + final String image_url = "http://srv2.thebotdev.de/img/physik/"; + ArticelRenderer({@required this.content}); + @override + Widget build(BuildContext context) { + List content_list = []; + Map content_json = json.decode(content); + content_json.forEach((_key, value) { + String key = _key.toLowerCase(); + if (key.startsWith("text")) { + content_list.add(TeXDocument.text(value)); + } else if (key.startsWith("image")) { + content_list.add(TeXViewImage.network("$image_url$value")); + } else if (key.startsWith("youtube")) { + content_list.add(TeXViewVideo.youtube(value)); + } + }); + return Expanded( + child: TeXView( + renderingEngine: + sl().renderingEngineAsTeXEngine, + loadingWidgetBuilder: (context) => Center( + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + CircularProgressIndicator(), + Text("Rendering...", + style: Theme.of(context).primaryTextTheme.bodyText1) + ], + ), + ), + style: TeXViewStyle( + backgroundColor: Theme.of(context).scaffoldBackgroundColor), + child: TeXViewColumn( + children: content_list, + )), + ); + } +} diff --git a/lib/features/content/presentation/widgets/articel_renderer/formelsammlung_renderer.dart b/lib/features/content/presentation/widgets/articel_renderer/formelsammlung_renderer.dart new file mode 100644 index 0000000..f29768f --- /dev/null +++ b/lib/features/content/presentation/widgets/articel_renderer/formelsammlung_renderer.dart @@ -0,0 +1,42 @@ +import 'dart:convert'; +import 'dart:developer'; + +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_tex/flutter_tex.dart'; + +import '../../../../../core/util/shared_prefrences/shared_prefs_rendering_engine.dart'; +import '../../../../../injection_container.dart'; +import 'formelwidget.dart'; + +class FormelSammlungRenderer extends StatelessWidget{ + final String content; + FormelSammlungRenderer({@required this.content}); + @override + Widget build(BuildContext context) { + List content_list = []; + Map content_json = json.decode(content); + content_json.forEach((key, value) { + content_list.add(FormelWidget.teXViewWidget(key, value, context)); + }); + return Expanded( + child: TeXView( + loadingWidgetBuilder: (context) => Center( + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + CircularProgressIndicator(), + Text("Rendering...", style: Theme.of(context).primaryTextTheme.bodyText1) + ], + ), + ), + renderingEngine: sl().renderingEngineAsTeXEngine, + style: TeXViewStyle(backgroundColor: Theme.of(context).scaffoldBackgroundColor), + child: TeXViewColumn(children: content_list,) + ), + ); + } + +} \ No newline at end of file diff --git a/lib/features/content/presentation/widgets/articel_renderer/formelwidget.dart b/lib/features/content/presentation/widgets/articel_renderer/formelwidget.dart new file mode 100644 index 0000000..eb3f541 --- /dev/null +++ b/lib/features/content/presentation/widgets/articel_renderer/formelwidget.dart @@ -0,0 +1,33 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_tex/flutter_tex.dart'; + +import '../../../../../core/util/parser/markdown_html_parser.dart'; + +class FormelWidget { + static TeXViewWidget teXViewWidget( + String title, String body, BuildContext context) { + return TeXViewColumn( + style: TeXViewStyle( + margin: TeXViewMargin.all(10), + padding: TeXViewPadding.all(10), + //borderRadius: TeXViewBorderRadius.all(10), + backgroundColor: Colors.transparent), + children: [ + TeXViewDocument("

$title

", + style: TeXViewStyle( + padding: TeXViewPadding.all(10), + borderRadius: TeXViewBorderRadius.all(10), + textAlign: TeXViewTextAlign.Center, + width: 250, + margin: TeXViewMargin.zeroAuto(), + backgroundColor: Theme.of(context).accentColor, + contentColor: Colors.white)), + TeXViewDocument(MarkDownParser().parseString(body), + style: TeXViewStyle( + margin: TeXViewMargin.only(top: 10), + contentColor: + Theme.of(context).primaryTextTheme.bodyText1.color, + backgroundColor: Colors.transparent)) + ]); + } +} diff --git a/lib/features/content/presentation/widgets/articel_renderer/renderer.dart b/lib/features/content/presentation/widgets/articel_renderer/renderer.dart new file mode 100644 index 0000000..459acd7 --- /dev/null +++ b/lib/features/content/presentation/widgets/articel_renderer/renderer.dart @@ -0,0 +1 @@ +export 'articel_renderer.dart'; \ No newline at end of file diff --git a/lib/features/content/presentation/widgets/articel_renderer/teXdocument.dart b/lib/features/content/presentation/widgets/articel_renderer/teXdocument.dart new file mode 100644 index 0000000..51656e7 --- /dev/null +++ b/lib/features/content/presentation/widgets/articel_renderer/teXdocument.dart @@ -0,0 +1,29 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_tex/flutter_tex.dart'; + +import '../../../../../core/util/parser/markdown_html_parser.dart'; +import '../../../../../core/util/shared_prefrences/shared_prefs_theme.dart'; +import '../../../../../injection_container.dart'; + +class TeXDocument { + TeXDocument(); + static TeXViewWidget text(String body) { + return TeXViewColumn( + style: TeXViewStyle( + margin: TeXViewMargin.all(10), + padding: TeXViewPadding.all(10), + backgroundColor: Colors.transparent), + children: [ + TeXViewDocument(MarkDownParser().parseString(body), + style: TeXViewStyle( + margin: TeXViewMargin.only(top: 10), + contentColor: sl() + .lastTheme + .themeData + .primaryTextTheme + .bodyText1 + .color, + backgroundColor: Colors.transparent)) + ]); + } +} diff --git a/lib/features/content/presentation/widgets/articels_card.dart b/lib/features/content/presentation/widgets/articels_card.dart new file mode 100644 index 0000000..1f07716 --- /dev/null +++ b/lib/features/content/presentation/widgets/articels_card.dart @@ -0,0 +1,27 @@ +import 'package:flutter/material.dart'; + +import '../pages/articel_page.dart'; + +class ArticelsCard extends StatelessWidget { + final String articel_name; + final int articel_id; + ArticelsCard({ + @required this.articel_name, + @required this.articel_id}); + + @override + Widget build(BuildContext context) { + return Container( + child: Card( + child: ListTile( + contentPadding: EdgeInsets.symmetric(horizontal: 26, vertical: 8), + title: Text(articel_name, style: Theme.of(context).primaryTextTheme.bodyText1), + trailing: Icon( + Icons.arrow_forward_ios, + color: Theme.of(context).dividerColor, + ), + onTap: () => Navigator.push(context, MaterialPageRoute(builder: (context) =>ArticelPage(articel_id: articel_id)),) + )) + ); + } +} \ No newline at end of file diff --git a/lib/features/content/presentation/widgets/articels_list_display.dart b/lib/features/content/presentation/widgets/articels_list_display.dart new file mode 100644 index 0000000..f432bc9 --- /dev/null +++ b/lib/features/content/presentation/widgets/articels_list_display.dart @@ -0,0 +1,18 @@ +import 'package:flutter/material.dart'; + +import '../bloc/content_bloc.dart'; +import 'articels_card.dart'; + +class ArticelsListDisplay extends StatelessWidget{ + final ArticelsLoaded state; + ArticelsListDisplay({@required this.state}); + @override + Widget build(BuildContext context) { + List menu = []; + state.articels.articels.forEach((element) { + menu.add(ArticelsCard(articel_name: element.titel, articel_id: element.id)); + }); + return Expanded(child: ListView(children: menu,)); + } + +} \ No newline at end of file diff --git a/lib/features/content/presentation/widgets/content_error_display.dart b/lib/features/content/presentation/widgets/content_error_display.dart new file mode 100644 index 0000000..33aef47 --- /dev/null +++ b/lib/features/content/presentation/widgets/content_error_display.dart @@ -0,0 +1,15 @@ +import 'package:flutter/material.dart'; + +class ContentErrorDisplay extends StatelessWidget{ + final String error; + ContentErrorDisplay({@required this.error}); + + @override + Widget build(BuildContext context) { + return Container( + height: MediaQuery.of(context).size.height/2.5, + child: Center(child: SingleChildScrollView(child: Text(error, style: Theme.of(context).primaryTextTheme.headline5, textAlign: TextAlign.center,))), + ); + } + +} \ No newline at end of file diff --git a/lib/features/content/presentation/widgets/content_loading_display.dart b/lib/features/content/presentation/widgets/content_loading_display.dart new file mode 100644 index 0000000..d5a6a09 --- /dev/null +++ b/lib/features/content/presentation/widgets/content_loading_display.dart @@ -0,0 +1,24 @@ +import 'package:flutter/material.dart'; + +class ContentLoadingDisplay extends StatelessWidget { + const ContentLoadingDisplay({ + Key key, + }) : super(key: key); + + @override + Widget build(BuildContext context) { + return Center( + child: Container( + height: MediaQuery.of(context).size.height/2.5, + child: Center(child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + CircularProgressIndicator(strokeWidth: 2, valueColor: new AlwaysStoppedAnimation(Theme.of(context).accentColor),), + Text("Wird geladen", style: Theme.of(context).primaryTextTheme.bodyText1,) + ], + )), + ), + ); + } +} \ No newline at end of file diff --git a/lib/features/content/presentation/widgets/topic_card.dart b/lib/features/content/presentation/widgets/topic_card.dart new file mode 100644 index 0000000..885bb6e --- /dev/null +++ b/lib/features/content/presentation/widgets/topic_card.dart @@ -0,0 +1,27 @@ +import 'package:flutter/material.dart'; + +import '../pages/articels_page.dart'; + +class TopicCard extends StatelessWidget { + final String topic_name; + final int topic_id; + TopicCard({ + @required this.topic_name, + @required this.topic_id}); + + @override + Widget build(BuildContext context) { + return Container( + child: Card( + child: ListTile( + contentPadding: EdgeInsets.symmetric(horizontal: 26, vertical: 8), + title: Text(topic_name, style: Theme.of(context).primaryTextTheme.bodyText1), + trailing: Icon( + Icons.arrow_forward_ios, + color: Theme.of(context).dividerColor, + ), + onTap: () => Navigator.push(context, MaterialPageRoute(builder: (context) =>ArticelsPage(thema_id: topic_id,)),) + )) + ); + } +} \ No newline at end of file diff --git a/lib/features/content/presentation/widgets/topics_list_display.dart b/lib/features/content/presentation/widgets/topics_list_display.dart new file mode 100644 index 0000000..bf661c9 --- /dev/null +++ b/lib/features/content/presentation/widgets/topics_list_display.dart @@ -0,0 +1,37 @@ +import 'package:flutter/material.dart'; + +import '../../../../core/ui/pages/tools/menu_item_card.dart'; +import '../../../../core/ui/pages/tools/toolspage.dart'; +import '../bloc/content_bloc.dart'; +import 'topic_card.dart'; + +const String OFFLINE_MESSAGE = + "Es scheint als wärst du offline, daher konnten die Themen nicht geladen werden"; + +class TopicsListDisplay extends StatelessWidget { + final TopicsLoaded state; + bool offline; + TopicsListDisplay({this.state, this.offline = false}); + @override + Widget build(BuildContext context) { + List menu = []; + if (!offline) { + state.topics.topics.forEach((element) { + menu.add(TopicCard(topic_name: element.topic, topic_id: element.id)); + }); + } else { + menu.add(Padding( + padding: const EdgeInsets.all(10.0), + child: Text( + OFFLINE_MESSAGE, + style: Theme.of(context).primaryTextTheme.bodyText1, + ), + )); + } + menu.add(MenuItem(name: "Tools / Settings", page: ToolsMenu())); + return Expanded( + child: ListView( + children: menu, + )); + } +} diff --git a/lib/features/intro_slider/presentation/slider_page.dart b/lib/features/intro_slider/presentation/slider_page.dart new file mode 100644 index 0000000..2024fdd --- /dev/null +++ b/lib/features/intro_slider/presentation/slider_page.dart @@ -0,0 +1,64 @@ +import 'package:flutter/material.dart'; +import 'package:intro_slider/intro_slider.dart'; +import 'package:intro_slider/slide_object.dart'; + +import '../../../core/util/shared_prefrences/shared_prefs_slider.dart'; +import '../../../core/util/shared_prefrences/shared_prefs_theme.dart'; +import '../../../injection_container.dart'; + +class SlidersPage extends StatefulWidget { + SlidersPage({Key key}) : super(key: key); + + @override + _SlidersPageState createState() => _SlidersPageState(); +} + +class _SlidersPageState extends State { + List slides = new List(); + + /// da wir die Farbe im initState verwenden kann noch nicht auf Theme.of() + /// zugegriffen werden daher lesen wir das Theme aus den sharedPrefs aus um + /// es bei den slides verwenden zu können + Color bgColor = + sl().lastTheme.themeData.scaffoldBackgroundColor; + String urlReadMore = "https://github.com/BaseChip"; + + ///https://www.freepik.com/vectors/book + @override + void initState() { + super.initState(); + slides.add(new Slide( + title: "Zusammenfassungen", + description: + "Lies dir zusammenfassungen für alle Abiturrelevanten Themen durch, falls dir dabei ein Thema fehlt kannst du dies gerne ergänzen", + pathImage: "assets/articel.png", + backgroundColor: bgColor)); + slides.add(new Slide( + title: "Notizen", + description: + "Um Ideal auf die Prüfungen vorbereitet zu sein kannst du dir in der App Notizen speichern, welche du auch von deinem Computer aus öffnen kannst und die LaTex unterstützen damit du alle Mathematischen Zeichen und Formeln verwenden kannst", + pathImage: "assets/notizen.png", + backgroundColor: bgColor)); + slides.add(new Slide( + title: "Ergänze", + description: + "Dir fehlt ein Theme in der App? Kein Problem ergänz es einfach, für dich und für alle die, die App benutzen! Um zu erfahren, wie du eigene Artikel in die App hinzufügen kannst lies dir einfach $urlReadMore durch, dort findest du alle Informationen wie du ganz einfach etwas für alle zur App hinzufügst", + pathImage: "assets/articels.png", + backgroundColor: bgColor)); + } + + void onDonePressed() { + sl().introGot = true; + Navigator.pushNamedAndRemoveUntil(context, '/', (_) => false); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + body: new IntroSlider( + slides: this.slides, + onDonePress: onDonePressed, + ), + ); + } +} diff --git a/lib/features/login/data/datasources/user_api.dart b/lib/features/login/data/datasources/user_api.dart new file mode 100644 index 0000000..799fa8e --- /dev/null +++ b/lib/features/login/data/datasources/user_api.dart @@ -0,0 +1,74 @@ +import 'dart:convert'; + +import 'package:flutter/cupertino.dart'; +import 'package:http/http.dart' as http; + +import '../../../../core/error/exceptions.dart'; +import '../../../../core/success/succes.dart'; + +import '../../domain/entities/auth_key_entitie.dart'; + +import '../models/auth_key_modell.dart'; + +abstract class UserApi { + /// Ruft die http://srv2.thebotdev.de/ api auf um einen neuen User zu erstellen / löschen oder den Auth Key zu bekpmmen + /// + /// Wirft eine [WrongCredentialsException] Error, wenn die anmelde Daten nicht stimmen + /// Eine [UserExistsException] wenn der user nicht neu angelegt werden kann, da er bereits existiert + /// Eine [UserDosntExistException] wenn der User nicht existiert + /// Eine [WrongCredentialsException] wenn die Anmeldedaten des Nutzers nicht stimmen + /// Bei jedem anderen Fehler wird eine [ServerException] geworfen + Future login(String email, String pw); + Future create_user(String email, String pw); + Future delete_user(String authkey); +} + +class UserApiImpl implements UserApi { + final http.Client client; + final String baseurl = "http://srv2.thebotdev.de"; + UserApiImpl({@required this.client}); + + @override + Future create_user(String email, pw) async { + final response = + await client.get("$baseurl/createuser?email=$email&pw=$pw"); + if (response.statusCode == 200) { + return AuthKeyModell.fromJson(json.decode(response.body)); + } else if (response.statusCode == 406) { + throw UserExistsException(); + } else if (response.statusCode == 401) { + throw CredentialsNotFitException(); + } else { + throw ServerException(); + } + } + + @override + Future delete_user(String authkey) async { + final response = await client + .delete("$baseurl/delete", headers: {"x-access-token": authkey}); + if (response.statusCode == 200) { + return Success(); + } else if (response.statusCode == 409) { + throw UserDosntExistException(); + } else if (response.statusCode == 401) { + throw WrongCredentialsException(); + } else { + throw ServerException(); + } + } + + @override + Future login(String email, pw) async { + final response = await client.get("$baseurl/login?email=$email&pw=$pw"); + if (response.statusCode == 200) { + return AuthKeyModell.fromJson(json.decode(response.body)); + } else if (response.statusCode == 409) { + throw UserDosntExistException(); + } else if (response.statusCode == 401) { + throw WrongCredentialsException(); + } else { + throw ServerException(); + } + } +} diff --git a/lib/features/login/data/models/auth_key_modell.dart b/lib/features/login/data/models/auth_key_modell.dart new file mode 100644 index 0000000..f5710ee --- /dev/null +++ b/lib/features/login/data/models/auth_key_modell.dart @@ -0,0 +1,13 @@ +import 'package:meta/meta.dart'; + +import '../../domain/entities/auth_key_entitie.dart'; + +class AuthKeyModell extends AuthKey { + AuthKeyModell({ + @required String key, + }) : super(auth_key: key); + + factory AuthKeyModell.fromJson(Map json) { + return AuthKeyModell(key: json['Auth_Key']); + } +} diff --git a/lib/features/login/data/repositories/login_repository_impl.dart b/lib/features/login/data/repositories/login_repository_impl.dart new file mode 100644 index 0000000..e4f2337 --- /dev/null +++ b/lib/features/login/data/repositories/login_repository_impl.dart @@ -0,0 +1,68 @@ +import 'package:dartz/dartz.dart'; +import 'package:flutter/cupertino.dart'; + +import '../../../../core/error/exceptions.dart'; +import '../../../../core/error/failure.dart'; +import '../../../../core/platform/networkinfo.dart'; +import '../../../../core/success/succes.dart'; +import '../../domain/entities/auth_key_entitie.dart'; +import '../../domain/repositories/login_repository.dart'; +import '../datasources/user_api.dart'; + +class LoginRepositoryImpl implements LoginRepository { + final UserApi remoteDataSource; + final NetworkInfo networkInfo; + + LoginRepositoryImpl( + {@required this.remoteDataSource, @required this.networkInfo}); + @override + Future> create_user(String email, String pw) async { + if (await networkInfo.isConnected) { + try { + return Right(await remoteDataSource.create_user(email, pw)); + } on ServerException { + return Left(ServerFailure()); + } on UserExistsException { + return Left(UserExistsFailure()); + } on CredentialsNotFitException { + return Left(CrednetialsNotFitFailure()); + } + } else { + return Left(OfflineFailure()); + } + } + + @override + Future> delete_user(String auth_key) async { + if (await networkInfo.isConnected) { + try { + return Right(await remoteDataSource.delete_user(auth_key)); + } on WrongCredentialsException { + return Left(WrongCredentialsFailure()); + } on UserDosntExistException { + return Left(UserDosntExistFailure()); + } on ServerException { + return Left(ServerFailure()); + } + } else { + return Left(OfflineFailure()); + } + } + + @override + Future> login(String email, String pw) async { + if (await networkInfo.isConnected) { + try { + return Right(await remoteDataSource.login(email, pw)); + } on WrongCredentialsException { + return Left(WrongCredentialsFailure()); + } on UserDosntExistException { + return Left(UserDosntExistFailure()); + } on ServerException { + return Left(ServerFailure()); + } + } else { + return Left(OfflineFailure()); + } + } +} diff --git a/lib/features/login/domain/entities/auth_key_entitie.dart b/lib/features/login/domain/entities/auth_key_entitie.dart new file mode 100644 index 0000000..142871a --- /dev/null +++ b/lib/features/login/domain/entities/auth_key_entitie.dart @@ -0,0 +1,10 @@ +import 'package:equatable/equatable.dart'; +import 'package:flutter/cupertino.dart'; + +class AuthKey extends Equatable { + final String auth_key; + + AuthKey({@required this.auth_key}); + @override + List get props => [auth_key]; +} diff --git a/lib/features/login/domain/repositories/login_repository.dart b/lib/features/login/domain/repositories/login_repository.dart new file mode 100644 index 0000000..842f064 --- /dev/null +++ b/lib/features/login/domain/repositories/login_repository.dart @@ -0,0 +1,11 @@ +import 'package:dartz/dartz.dart'; + +import '../../../../core/error/failure.dart'; +import '../../../../core/success/succes.dart'; +import '../entities/auth_key_entitie.dart'; + +abstract class LoginRepository { + Future> login(String email, String pw); + Future> create_user(String email, String pw); + Future> delete_user(String auth_key); +} diff --git a/lib/features/login/domain/usecases/create_user.dart b/lib/features/login/domain/usecases/create_user.dart new file mode 100644 index 0000000..5bb881f --- /dev/null +++ b/lib/features/login/domain/usecases/create_user.dart @@ -0,0 +1,16 @@ +import 'package:dartz/dartz.dart'; +import 'package:flutter/cupertino.dart'; + +import '../../../../core/error/failure.dart'; +import '../entities/auth_key_entitie.dart'; +import '../repositories/login_repository.dart'; + +class CreateUser { + final LoginRepository repository; + CreateUser({@required this.repository}); + + @override + Future> call(String email, String pw) async { + return await repository.create_user(email, pw); + } +} diff --git a/lib/features/login/domain/usecases/delete_user.dart b/lib/features/login/domain/usecases/delete_user.dart new file mode 100644 index 0000000..6b5198e --- /dev/null +++ b/lib/features/login/domain/usecases/delete_user.dart @@ -0,0 +1,16 @@ +import 'package:dartz/dartz.dart'; +import 'package:flutter/cupertino.dart'; + +import '../../../../core/error/failure.dart'; +import '../../../../core/success/succes.dart'; +import '../repositories/login_repository.dart'; + +class DeleteUser { + final LoginRepository repository; + DeleteUser({@required this.repository}); + + @override + Future> call(String auth_key) async { + return await repository.delete_user(auth_key); + } +} diff --git a/lib/features/login/domain/usecases/login.dart b/lib/features/login/domain/usecases/login.dart new file mode 100644 index 0000000..b843e8b --- /dev/null +++ b/lib/features/login/domain/usecases/login.dart @@ -0,0 +1,16 @@ +import 'package:dartz/dartz.dart'; +import 'package:flutter/cupertino.dart'; + +import '../../../../core/error/failure.dart'; +import '../entities/auth_key_entitie.dart'; +import '../repositories/login_repository.dart'; + +class Login { + final LoginRepository repository; + Login({@required this.repository}); + + @override + Future> call(String email, String pw) async { + return await repository.login(email, pw); + } +} diff --git a/lib/features/login/presentation/bloc/login_bloc.dart b/lib/features/login/presentation/bloc/login_bloc.dart new file mode 100644 index 0000000..8c2eaac --- /dev/null +++ b/lib/features/login/presentation/bloc/login_bloc.dart @@ -0,0 +1,98 @@ +import 'dart:async'; + +import 'package:bloc/bloc.dart'; +import 'package:dartz/dartz.dart'; +import 'package:equatable/equatable.dart'; +import 'package:flutter/cupertino.dart'; + +import '../../../../core/error/exceptions.dart'; +import '../../../../core/error/failure.dart'; +import '../../domain/entities/auth_key_entitie.dart'; +import '../../domain/usecases/create_user.dart'; +import '../../domain/usecases/delete_user.dart'; +import '../../domain/usecases/login.dart'; + +part 'login_event.dart'; +part 'login_state.dart'; + +const String SERVER_FAILURE_MESSAGE = "Server Fehler"; +const String OFFLINE_FAILURE_MESSAGE = + "Es scheint als wärst du offline, doch für diese Funktion wird eine Internetverbindung benötigt :("; +const String WRONG_CREDENTIELS_FAILURE_MESSAGE = + "Es scheint als wären deine Anmeldedaten nicht korrekt, versuch es bitte erneut"; +const String USER_DOSNT_EXISTS_FAILURE_MESSAGE = + "Es gibt keinen Nutzer mit den eigegbenen Daten, bitte überprüf deine Eingaben"; +const String User_EXISTS_FAILURE_MESSAGE = + "Zu deiner eingegebenen Email adresse gibt es bereits einen Nutzer, deshalb kann kein neuer angelegt werden, bitte versuch dich anzumelden oder leg einen neuen Account an"; +const String CREDENTIELS_NOT_FIT_FAILURE_MESSAGE = + "Deine Email Adresse oder Password sind ungültig"; + +/// Die eingabe Email Adresse und das Password werden von der App nicht überprüft, da dies bereits vom Server erledigt wird und [CredentielsNotFitFailure] ausgegben wird +class LoginBloc extends Bloc { + final Login login; + final CreateUser createUser; + final DeleteUser deleteUser; + LoginBloc( + {@required this.login, + @required this.createUser, + @required this.deleteUser}) + : assert(login != null), + assert(createUser != null), + assert(deleteUser != null); + @override + List get props => []; + + @override + Stream mapEventToState( + LoginEvent event, + ) async* { + if (event is CreateUserEvent) { + yield LoginLoading(); + final failureOrAuthKey = await createUser(event.email, event.pw); + yield* _eitherLoadedOrErrorState(failureOrAuthKey); + } else if (event is LoginUserEvent) { + yield LoginLoading(); + final failureOrAuthKey = await login(event.email, event.pw); + yield* _eitherLoadedOrErrorState(failureOrAuthKey); + } else if (event is DeleteUserEvent) { + yield LoginLoading(); + final failureOrSuccess = await deleteUser(event.authkey); + yield failureOrSuccess.fold( + (failure) => LoginError(error: _mapFailureToMessage(failure)), + (success) => DeleteSuccess()); + } else if (event is UserInitialEvent) { + yield LoginInitial(); + } + } + + Stream _eitherLoadedOrErrorState( + Either failureOrAuthKey, + ) async* { + yield failureOrAuthKey.fold( + (failure) => LoginError(error: _mapFailureToMessage(failure)), + (key) => LoginSuccessfull(authkey: key), + ); + } + + String _mapFailureToMessage(Failure failure) { + switch (failure.runtimeType) { + case ServerFailure: + return SERVER_FAILURE_MESSAGE; + case OfflineFailure: + return OFFLINE_FAILURE_MESSAGE; + case WrongCredentialsFailure: + return WRONG_CREDENTIELS_FAILURE_MESSAGE; + case UserDosntExistFailure: + return USER_DOSNT_EXISTS_FAILURE_MESSAGE; + case UserExistsFailure: + return User_EXISTS_FAILURE_MESSAGE; + case CredentialsNotFitException: + return CREDENTIELS_NOT_FIT_FAILURE_MESSAGE; + default: + return 'Unexpected error'; + } + } + + @override + LoginState get initialState => LoginInitial(); +} diff --git a/lib/features/login/presentation/bloc/login_event.dart b/lib/features/login/presentation/bloc/login_event.dart new file mode 100644 index 0000000..ae55e53 --- /dev/null +++ b/lib/features/login/presentation/bloc/login_event.dart @@ -0,0 +1,32 @@ +part of 'login_bloc.dart'; + +abstract class LoginEvent extends Equatable { + @override + List get props => []; +} + +class UserInitialEvent extends LoginEvent {} + +class CreateUserEvent extends LoginEvent { + final String email, pw; + CreateUserEvent({@required this.email, @required this.pw}); + + @override + List get props => [email, pw]; +} + +class LoginUserEvent extends LoginEvent { + final String email, pw; + LoginUserEvent({@required this.email, @required this.pw}); + + @override + List get props => [email, pw]; +} + +class DeleteUserEvent extends LoginEvent { + final String authkey; + DeleteUserEvent({@required this.authkey}); + + @override + List get props => [authkey]; +} diff --git a/lib/features/login/presentation/bloc/login_state.dart b/lib/features/login/presentation/bloc/login_state.dart new file mode 100644 index 0000000..14c37ed --- /dev/null +++ b/lib/features/login/presentation/bloc/login_state.dart @@ -0,0 +1,27 @@ +part of 'login_bloc.dart'; + +abstract class LoginState extends Equatable { + @override + List get props => []; +} + +class LoginInitial extends LoginState {} + +class LoginError extends LoginState { + final String error; + LoginError({@required this.error}); + @override + List get props => [error]; +} + +class LoginSuccessfull extends LoginState { + final AuthKey authkey; + LoginSuccessfull({@required this.authkey}); + + @override + List get props => [authkey]; +} + +class LoginLoading extends LoginState {} + +class DeleteSuccess extends LoginState {} diff --git a/lib/features/login/presentation/pages/create_account_page.dart b/lib/features/login/presentation/pages/create_account_page.dart new file mode 100644 index 0000000..6cb2f49 --- /dev/null +++ b/lib/features/login/presentation/pages/create_account_page.dart @@ -0,0 +1,136 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; + +import '../../../../core/ui/widgets/error_display.dart'; +import '../../../../core/util/shared_prefrences/shared_prefs_auth.dart'; +import '../../../../injection_container.dart'; +import '../../../../main.dart'; +import '../bloc/login_bloc.dart'; +import '../widgets/button.dart'; +import '../widgets/dialog_account.dart'; +import '../widgets/invisible_widget.dart'; +import '../widgets/set_initial_state.dart'; +import '../widgets/textfield.dart'; +import 'login_page.dart'; + +class CreateAccountPage extends StatefulWidget { + CreateAccountPage({Key key}) : super(key: key); + + @override + _CreateAccountPageState createState() => _CreateAccountPageState(); +} + +class _CreateAccountPageState extends State { + String lEmail, lPw; + BuildContext blocContext; + + @override + Widget build(BuildContext context) { + blocContext = context; + return Scaffold( + floatingActionButton: FloatingActionButton( + onPressed: () { + showDialog( + context: context, + builder: (_) => AccountDialog(), + barrierDismissible: true); + }, + child: Icon(Icons.info), + ), + body: Center( + child: Column( + children: [ + Padding( + padding: const EdgeInsets.fromLTRB(0, 95, 0, 0), + child: Text( + "Account erstellen", + style: Theme.of(context).primaryTextTheme.headline5, + ), + ), + Padding( + padding: const EdgeInsets.fromLTRB(0, 30, 0, 15), + child: LoginTextField(text: "Email:", from: this), + ), + LoginTextField( + text: "Password:", + from: this, + obsure_text: true, + ), + Padding( + padding: const EdgeInsets.fromLTRB(0, 20, 0, 5), + child: LoginButton( + text: "Registrieren", + from: this, + ), + ), + Opacity( + child: RaisedButton( + color: Theme.of(context).scaffoldBackgroundColor, + onPressed: () { + Navigator.push(context, + MaterialPageRoute(builder: (context) => LoginPage())); + }, + child: Text( + "Ich habe bereits einen Account", + style: Theme.of(blocContext).primaryTextTheme.bodyText1, + ), + ), + opacity: 0.42, + ), + buildbloc2(context) + ], + ), + )); + } + + void ButtonAction() { + if (lEmail != null && lPw != null) { + BlocProvider.of(blocContext) + .add(CreateUserEvent(email: lEmail, pw: lPw)); + } + } + + set email(String email) { + setState(() { + lEmail = email; + }); + } + + set pw(String pw) { + setState(() { + lPw = pw; + }); + } + + BlocProvider buildbloc2(BuildContext context) { + return BlocProvider( + create: (context) => sl(), + child: Column( + children: [ + BlocBuilder(builder: (context, state) { + WidgetsBinding.instance.addPostFrameCallback((_) { + setState(() { + blocContext = context; + }); + if (state is LoginLoading) { + return CircularProgressIndicator( + strokeWidth: 2, + ); + } else if (state is LoginError) { + ErrorDisplayFlushbar().showErrorFlushbar(context, state.error); + setInitialEvent(blocContext); + } else if (state is LoginSuccessfull) { + setInitialEvent(blocContext); + sl().auth_key = state.authkey.auth_key; + sl().logedin = true; + Navigator.push( + context, MaterialPageRoute(builder: (context) => MyApp())); + } + }); + return InvisibleWidget(); + }) + ], + ), + ); + } +} diff --git a/lib/features/login/presentation/pages/delete_account_page.dart b/lib/features/login/presentation/pages/delete_account_page.dart new file mode 100644 index 0000000..f6f92a1 --- /dev/null +++ b/lib/features/login/presentation/pages/delete_account_page.dart @@ -0,0 +1,127 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; + +import '../../../../core/ui/widgets/error_display.dart'; +import '../../../../core/ui/widgets/success_display.dart'; +import '../../../../core/util/shared_prefrences/shared_prefs_auth.dart'; +import '../../../../injection_container.dart'; +import '../bloc/login_bloc.dart'; +import '../widgets/button.dart'; +import '../widgets/dialog_account.dart'; +import '../widgets/invisible_widget.dart'; +import '../widgets/set_initial_state.dart'; +import 'create_account_page.dart'; + +class DeleteAccount extends StatefulWidget { + DeleteAccount({Key key}) : super(key: key); + + @override + _DeleteAccountState createState() => _DeleteAccountState(); +} + +class _DeleteAccountState extends State { + BuildContext blocContext; + + @override + Widget build(BuildContext context) { + blocContext = context; + return Scaffold( + floatingActionButton: FloatingActionButton( + onPressed: () { + showDialog( + context: context, + builder: (_) => AccountDialog(), + barrierDismissible: true); + }, + child: Icon(Icons.info), + ), + body: Center( + child: Column( + children: [ + Padding( + padding: const EdgeInsets.fromLTRB(15, 95, 15, 0), + child: Text( + "Account / Daten löschen", + style: Theme.of(context).primaryTextTheme.headline5, + ), + ), + Padding( + padding: const EdgeInsets.fromLTRB(20, 30, 20, 15), + child: Text( + "Bist du dir sicher, dass du deinen Account löschen möchtest? Diese Aktion kann nicht rückgängig gemacht werden und alle deine Daten werden von unseren Servern unwiderruflich gelöscht", + style: Theme.of(context).primaryTextTheme.bodyText1, + ), + ), + Padding( + padding: const EdgeInsets.fromLTRB(0, 20, 0, 5), + child: LoginButton( + text: "Löschen", + from: this, + ), + ), + + /// Würde bei der Seite eigtl nicht benötigt werden, ist beim debugen für mich aber sehr nützlich + Opacity( + child: RaisedButton( + color: Theme.of(context).scaffoldBackgroundColor, + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => CreateAccountPage())); + }, + ), + opacity: 0.0, + ), + buildbloc2(context) + ], + ), + )); + } + + void ButtonAction() { + if (sl().logedin) { + BlocProvider.of(blocContext) + .add(DeleteUserEvent(authkey: sl().auth_key)); + } else { + ErrorDisplayFlushbar().showErrorFlushbar(context, + "Du bist nicht angemeldet, daher haben wir auch keine Daten von dir gespeichert. Falls du einen Account hast und den löschen möchstes, melde dich bitte erst an und versuche es dann erneut"); + } + } + + BlocProvider buildbloc2(BuildContext context) { + return BlocProvider( + create: (context) => sl(), + child: Column( + children: [ + BlocBuilder(builder: (context, state) { + WidgetsBinding.instance.addPostFrameCallback((_) { + setState(() { + blocContext = context; + }); + if (state is LoginLoading) { + return CircularProgressIndicator( + strokeWidth: 2, + ); + } else if (state is LoginError) { + ErrorDisplayFlushbar().showErrorFlushbar(context, state.error); + setInitialEvent(context); + + /// Wenn das löschen erfolgreich war, wird der auth key gelöscht + /// und der Nutzer wieder auf den HomeScreen weitergeleitet + } else if (state is DeleteSuccess) { + sl().auth_key = null; + sl().logedin = false; + SuccessDisplayFlushbar().showSuccessFlushbar( + context, "Account erfolgreich gelöscht"); + setInitialEvent(context); + Navigator.pushNamedAndRemoveUntil(context, '/', (_) => false); + } + }); + return InvisibleWidget(); + }) + ], + ), + ); + } +} diff --git a/lib/features/login/presentation/pages/login_page.dart b/lib/features/login/presentation/pages/login_page.dart new file mode 100644 index 0000000..36ef7b3 --- /dev/null +++ b/lib/features/login/presentation/pages/login_page.dart @@ -0,0 +1,143 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; + +import '../../../../core/ui/widgets/error_display.dart'; +import '../../../../core/ui/widgets/success_display.dart'; +import '../../../../core/util/shared_prefrences/shared_prefs_auth.dart'; +import '../../../../injection_container.dart'; +import '../bloc/login_bloc.dart'; +import '../widgets/button.dart'; +import '../widgets/dialog_account.dart'; +import '../widgets/invisible_widget.dart'; +import '../widgets/set_initial_state.dart'; +import '../widgets/textfield.dart'; +import 'create_account_page.dart'; + +class LoginPage extends StatefulWidget { + LoginPage({Key key}) : super(key: key); + + @override + _LoginPageState createState() => _LoginPageState(); +} + +class _LoginPageState extends State { + String lEmail, lPw; + BuildContext blocContext; + + @override + Widget build(BuildContext context) { + blocContext = context; + return Scaffold( + floatingActionButton: FloatingActionButton( + onPressed: () { + showDialog( + context: context, + builder: (_) => AccountDialog(), + barrierDismissible: true); + }, + child: Icon(Icons.info), + ), + body: Center( + child: Column( + children: [ + Padding( + padding: const EdgeInsets.fromLTRB(0, 95, 0, 0), + child: Text( + "Login", + style: Theme.of(context).primaryTextTheme.headline5, + ), + ), + Padding( + padding: const EdgeInsets.fromLTRB(0, 30, 0, 15), + child: LoginTextField(text: "Email:", from: this), + ), + LoginTextField( + text: "Password:", + from: this, + obsure_text: true, + ), + Padding( + padding: const EdgeInsets.fromLTRB(0, 20, 0, 5), + child: LoginButton( + text: "Login", + from: this, + ), + ), + Opacity( + child: RaisedButton( + color: Theme.of(context).scaffoldBackgroundColor, + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => CreateAccountPage())); + }, + child: Text( + "Ich habe noch keinen Account", + style: Theme.of(blocContext).primaryTextTheme.bodyText1, + ), + ), + opacity: 0.42, + ), + buildbloc2(context) + ], + ), + )); + } + + void ButtonAction() { + if (lEmail != null && lPw != null) { + BlocProvider.of(blocContext) + .add(LoginUserEvent(email: lEmail, pw: lPw)); + } + } + + set email(String email) { + setState(() { + lEmail = email; + }); + } + + set pw(String pw) { + setState(() { + lPw = pw; + }); + } + + BlocProvider buildbloc2(BuildContext context) { + return BlocProvider( + create: (context) => sl(), + child: Column( + children: [ + BlocBuilder(builder: (context, state) { + WidgetsBinding.instance.addPostFrameCallback((_) { + setState(() { + blocContext = context; + }); + if (state is LoginLoading) { + return CircularProgressIndicator( + strokeWidth: 2, + ); + } else if (state is LoginError) { + ErrorDisplayFlushbar().showErrorFlushbar(context, state.error); + setInitialEvent(context); + + /// Wenn das anmelden erfolgreich war, wird der neue Auth Key + /// gespeichert und der Nutzer wieder auf den HomeScreen + /// weitergeleitet + } else if (state is LoginSuccessfull) { + sl().auth_key = state.authkey.auth_key; + sl().logedin = true; + SuccessDisplayFlushbar() + .showSuccessFlushbar(context, "Erfolgreich angemeldet"); + setInitialEvent(context); + Navigator.pushNamedAndRemoveUntil(context, '/', (_) => false); + } + }); + return InvisibleWidget(); + }) + ], + ), + ); + } +} diff --git a/lib/features/login/presentation/widgets/button.dart b/lib/features/login/presentation/widgets/button.dart new file mode 100644 index 0000000..564b553 --- /dev/null +++ b/lib/features/login/presentation/widgets/button.dart @@ -0,0 +1,28 @@ +import 'package:flutter/material.dart'; + +class LoginButton extends StatelessWidget { + final String text; + final from; + const LoginButton({@required this.text, @required this.from}); + + @override + Widget build(BuildContext context) { + return Container( + child: SizedBox( + width: MediaQuery.of(context).size.width / 1.2, + height: MediaQuery.of(context).size.width / 5, + child: RaisedButton( + color: Theme.of(context).accentColor, + child: Text( + text, + style: TextStyle( + color: Theme.of(context).primaryTextTheme.button.color, + fontSize: 40), + ), + onPressed: () { + from.ButtonAction(); + }), + ), + ); + } +} diff --git a/lib/features/login/presentation/widgets/dialog_account.dart b/lib/features/login/presentation/widgets/dialog_account.dart new file mode 100644 index 0000000..1966829 --- /dev/null +++ b/lib/features/login/presentation/widgets/dialog_account.dart @@ -0,0 +1,32 @@ +import 'package:flutter/material.dart'; + +class AccountDialog extends StatelessWidget { + const AccountDialog({Key key}) : super(key: key); + + @override + Widget build(BuildContext context) { + return AlertDialog( + title: Text( + "Account", + style: TextStyle( + color: Theme.of(context).primaryTextTheme.headline3.color, + fontSize: 30), + ), + content: SizedBox( + height: MediaQuery.of(context).size.height / 1.5, + child: Column(children: [ + Divider(), + Text( + "Ein Account wird benötigt, damit z. B. deine Notizen gespeichert werden können und somit auch in der Web Version verfügbar sind.\n\nWichtig: Dein Password wird am Server verschlüsselt gespeichert! Dabei wird dein Password gehashed und mit einem zufälligen Salt String verbunden, was es beinah unmöglich macht das Passwort wieder lesbar zu machen. Nicht mal der App Entwickler kann das Passwort auslesen.", + style: TextStyle( + color: Theme.of(context).primaryTextTheme.bodyText1.color, + fontSize: 20), + ), + ]), + ), + backgroundColor: Theme.of(context).accentColor, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.all(Radius.circular(20.0))), + ); + } +} diff --git a/lib/features/login/presentation/widgets/invisible_widget.dart b/lib/features/login/presentation/widgets/invisible_widget.dart new file mode 100644 index 0000000..6b072a1 --- /dev/null +++ b/lib/features/login/presentation/widgets/invisible_widget.dart @@ -0,0 +1,15 @@ +import 'package:flutter/material.dart'; + +class InvisibleWidget extends StatelessWidget { + const InvisibleWidget({Key key}) : super(key: key); + + @override + Widget build(BuildContext context) { + return Container( + child: Opacity( + child: Text("Nothing to see"), + opacity: 0.0, + ), + ); + } +} diff --git a/lib/features/login/presentation/widgets/set_initial_state.dart b/lib/features/login/presentation/widgets/set_initial_state.dart new file mode 100644 index 0000000..373173c --- /dev/null +++ b/lib/features/login/presentation/widgets/set_initial_state.dart @@ -0,0 +1,7 @@ +import 'package:flutter/cupertino.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:physik_lp_app_rewrite/features/login/presentation/bloc/login_bloc.dart'; + +void setInitialEvent(BuildContext blocContext) { + BlocProvider.of(blocContext).add(UserInitialEvent()); +} diff --git a/lib/features/login/presentation/widgets/textfield.dart b/lib/features/login/presentation/widgets/textfield.dart new file mode 100644 index 0000000..5a52d60 --- /dev/null +++ b/lib/features/login/presentation/widgets/textfield.dart @@ -0,0 +1,45 @@ +import 'package:flutter/material.dart'; + +class LoginTextField extends StatelessWidget { + final String text; + final from; + final bool obsure_text; + const LoginTextField( + {@required this.text, @required this.from, this.obsure_text = false}); + + @override + Widget build(BuildContext context) { + return Container( + child: Container( + width: MediaQuery.of(context).size.width / 1.2, + child: TextField( + obscureText: obsure_text, + style: Theme.of(context).primaryTextTheme.button, + onChanged: (value) { + if (text == "Email:") { + from.email = value; + } else if (text == "Password:") { + from.pw = value; + } + }, + decoration: InputDecoration( + labelText: text, + filled: true, + fillColor: Theme.of(context).accentColor, + focusColor: Colors.white, + contentPadding: + const EdgeInsets.only(left: 14.0, bottom: 8.0, top: 8.0), + focusedBorder: OutlineInputBorder( + borderSide: + new BorderSide(color: Theme.of(context).dividerColor), + borderRadius: new BorderRadius.circular(25.7), + ), + enabledBorder: UnderlineInputBorder( + borderSide: new BorderSide(color: Colors.transparent), + borderRadius: new BorderRadius.circular(25.7), + ), + labelStyle: Theme.of(context).primaryTextTheme.button, + ), + ))); + } +} diff --git a/lib/features/notes/data/datasources/note_api.dart b/lib/features/notes/data/datasources/note_api.dart new file mode 100644 index 0000000..23263cb --- /dev/null +++ b/lib/features/notes/data/datasources/note_api.dart @@ -0,0 +1,134 @@ +import 'dart:convert'; +import 'dart:developer'; + +import 'package:flutter/cupertino.dart'; +import 'package:http/http.dart' as http; + +import '../../../../core/error/exceptions.dart'; +import '../../../../core/success/succes.dart'; +import '../../../../core/util/shared_prefrences/shared_prefs_auth.dart'; +import '../../../../injection_container.dart'; +import '../../domain/entities/note_entitie.dart'; +import '../../domain/entities/notes_list_entitie.dart'; +import '../models/note_model.dart'; +import '../models/notes_list_model.dart'; + +abstract class NoteApi { + Future getNote(int id); + Future getNotes(); + Future deleteNote(int id); + Future changeNote(String note, int id); + Future addNote(String title, String note); +} + +class NoteApiImpl implements NoteApi { + final http.Client client; + final String baseurl = "http://srv2.thebotdev.de"; + final String app = "physik"; + NoteApiImpl({@required this.client}); + + String get _checkforAuthKey { + if (sl().logedin) { + return sl().auth_key; + } else { + throw NoAuthKeyGivenException(); + } + } + + @override + Future addNote(String title, String note) async { + try { + final response = await client.post("$baseurl/note", + headers: {"x-access-token": _checkforAuthKey}, + body: {"note": note, "title": title, "app": app}); + if (response.statusCode == 200) { + return Success(); + } else if (response.statusCode == 500) { + throw ArgsMissingException(); + } else if (response.statusCode == 401) { + throw WrongCredentialsException(); + } else { + throw ServerException(); + } + } on NoAuthKeyGivenException { + throw NoAuthKeyGivenException(); + } + } + + @override + Future changeNote(String note, int id) async { + try { + final response = await client.post("$baseurl/changenote", + headers: {"x-access-token": _checkforAuthKey}, + body: {"note": note, "id": id.toString(), "app": app}); + if (response.statusCode == 200) { + return Success(); + } else if (response.statusCode == 500) { + throw ArgsMissingException(); + } else if (response.statusCode == 401) { + throw WrongCredentialsException(); + } else { + throw ServerException(); + } + } on NoAuthKeyGivenException { + throw NoAuthKeyGivenException(); + } + } + + @override + Future deleteNote(int id) async { + try { + final response = await client.delete("$baseurl/note?id=$id", + headers: {"x-access-token": _checkforAuthKey}); + if (response.statusCode == 200) { + return Success(); + } else if (response.statusCode == 500) { + throw ArgsMissingException(); + } else if (response.statusCode == 401) { + throw WrongCredentialsException(); + } else { + throw ServerException(); + } + } on NoAuthKeyGivenException { + throw NoAuthKeyGivenException(); + } + } + + @override + Future getNote(int id) async { + try { + final response = await client.get("$baseurl/note?id=$id", + headers: {"x-access-token": _checkforAuthKey}); + if (response.statusCode == 200) { + return NoteModel.fromJson(json.decode(response.body)); + } else if (response.statusCode == 406) { + throw ArgsMissingException(); + } else if (response.statusCode == 401) { + throw WrongCredentialsException(); + } else { + throw ServerException(); + } + } on NoAuthKeyGivenException { + throw NoAuthKeyGivenException(); + } + } + + @override + Future getNotes() async { + try { + final response = await client.get("$baseurl/notes?app=$app", + headers: {"x-access-token": _checkforAuthKey}); + if (response.statusCode == 200) { + return NotesListModel.fromJson(json.decode(response.body)); + } else if (response.statusCode == 406) { + throw ArgsMissingException(); + } else if (response.statusCode == 401) { + throw WrongCredentialsException(); + } else { + throw ServerException(); + } + } on NoAuthKeyGivenException { + throw NoAuthKeyGivenException(); + } + } +} diff --git a/lib/features/notes/data/models/note_model.dart b/lib/features/notes/data/models/note_model.dart new file mode 100644 index 0000000..8757d92 --- /dev/null +++ b/lib/features/notes/data/models/note_model.dart @@ -0,0 +1,16 @@ +import 'package:flutter/cupertino.dart'; + +import '../../domain/entities/note_entitie.dart'; + +class NoteModel extends Note { + NoteModel({@required String note, @required String title, @required int id}) + : super(note: note, title: title, id: id); + + factory NoteModel.fromJson(Map json) { + return NoteModel(note: json['note'], title: json['title'], id: json['id']); + } + + Map toJson() { + return {"id": id, "title": title, "note": note}; + } +} diff --git a/lib/features/notes/data/models/notes_list_model.dart b/lib/features/notes/data/models/notes_list_model.dart new file mode 100644 index 0000000..6cffef6 --- /dev/null +++ b/lib/features/notes/data/models/notes_list_model.dart @@ -0,0 +1,17 @@ +import 'package:flutter/cupertino.dart'; + +import '../../domain/entities/notes_entitie.dart'; +import '../../domain/entities/notes_list_entitie.dart'; +import 'notes_model.dart'; + +class NotesListModel extends NotesList { + NotesListModel({@required List notes}) : super(notes: notes); + + factory NotesListModel.fromJson(List json) { + List list = []; + json.forEach((value) { + list.add(NotesModel.fromJson(value)); + }); + return NotesListModel(notes: list); + } +} diff --git a/lib/features/notes/data/models/notes_model.dart b/lib/features/notes/data/models/notes_model.dart new file mode 100644 index 0000000..2a7452e --- /dev/null +++ b/lib/features/notes/data/models/notes_model.dart @@ -0,0 +1,16 @@ +import 'package:flutter/cupertino.dart'; + +import '../../domain/entities/notes_entitie.dart'; + +class NotesModel extends Notes { + NotesModel({@required String note, @required int id}) + : super(title: note, id: id); + + factory NotesModel.fromJson(Map json) { + return NotesModel(note: json['title'], id: json['id']); + } + + Map toJson() { + return {"id": id, "note": title}; + } +} diff --git a/lib/features/notes/data/repositories/note_repository_impl.dart b/lib/features/notes/data/repositories/note_repository_impl.dart new file mode 100644 index 0000000..b4e2dd0 --- /dev/null +++ b/lib/features/notes/data/repositories/note_repository_impl.dart @@ -0,0 +1,113 @@ +import 'package:dartz/dartz.dart'; +import 'package:flutter/cupertino.dart'; + +import '../../../../core/error/exceptions.dart'; +import '../../../../core/error/failure.dart'; +import '../../../../core/platform/networkinfo.dart'; +import '../../../../core/success/succes.dart'; +import '../../domain/entities/note_entitie.dart'; +import '../../domain/entities/notes_list_entitie.dart'; +import '../../domain/repositories/note_repository.dart'; +import '../datasources/note_api.dart'; + +class NoteRepositoryImpl implements NoteRepository { + final NoteApi remoteDataSource; + final NetworkInfo networkInfo; + + NoteRepositoryImpl( + {@required this.remoteDataSource, @required this.networkInfo}); + @override + Future> addNote(String title, String note) async { + if (await networkInfo.isConnected) { + try { + return Right(await remoteDataSource.addNote(title, note)); + } on ArgsMissingException { + return Left(ArgsMissingFailure()); + } on NoAuthKeyGivenException { + return Left(NoAuthKeyGivenFailure()); + } on WrongCredentialsException { + return Left(WrongCredentialsFailure()); + } on ServerException { + return Left(ServerFailure()); + } + } else { + return Left(OfflineFailure()); + } + } + + @override + Future> changeNote(String note, int id) async { + if (await networkInfo.isConnected) { + try { + return Right(await remoteDataSource.changeNote(note, id)); + } on ArgsMissingException { + return Left(ArgsMissingFailure()); + } on NoAuthKeyGivenException { + return Left(NoAuthKeyGivenFailure()); + } on WrongCredentialsException { + return Left(WrongCredentialsFailure()); + } on ServerException { + return Left(ServerFailure()); + } + } else { + return Left(OfflineFailure()); + } + } + + @override + Future> deleteNote(int id) async { + if (await networkInfo.isConnected) { + try { + return Right(await remoteDataSource.deleteNote(id)); + } on ArgsMissingException { + return Left(ArgsMissingFailure()); + } on NoAuthKeyGivenException { + return Left(NoAuthKeyGivenFailure()); + } on WrongCredentialsException { + return Left(WrongCredentialsFailure()); + } on ServerException { + return Left(ServerFailure()); + } + } else { + return Left(OfflineFailure()); + } + } + + @override + Future> getAllNotes() async { + if (await networkInfo.isConnected) { + try { + return Right(await remoteDataSource.getNotes()); + } on ArgsMissingException { + return Left(ArgsMissingFailure()); + } on NoAuthKeyGivenException { + return Left(NoAuthKeyGivenFailure()); + } on WrongCredentialsException { + return Left(WrongCredentialsFailure()); + } on ServerException { + return Left(ServerFailure()); + } + } else { + return Left(OfflineFailure()); + } + } + + @override + Future> getNote(int id) async { + if (await networkInfo.isConnected) { + try { + return Right(await remoteDataSource.getNote(id)); + } on ArgsMissingException { + return Left(ArgsMissingFailure()); + } on NoAuthKeyGivenException { + return Left(NoAuthKeyGivenFailure()); + } on WrongCredentialsException { + return Left(WrongCredentialsFailure()); + } on ServerException { + return Left(ServerFailure()); + } + } else { + return Left(OfflineFailure()); + } + } +} diff --git a/lib/features/notes/domain/entities/note_entitie.dart b/lib/features/notes/domain/entities/note_entitie.dart new file mode 100644 index 0000000..001c0c1 --- /dev/null +++ b/lib/features/notes/domain/entities/note_entitie.dart @@ -0,0 +1,12 @@ +import 'package:equatable/equatable.dart'; +import 'package:flutter/cupertino.dart'; + +class Note extends Equatable { + final String note; + final String title; + final int id; + + Note({@required this.note, @required this.title, @required this.id}); + @override + List get props => [note, title, id]; +} diff --git a/lib/features/notes/domain/entities/notes_entitie.dart b/lib/features/notes/domain/entities/notes_entitie.dart new file mode 100644 index 0000000..542257a --- /dev/null +++ b/lib/features/notes/domain/entities/notes_entitie.dart @@ -0,0 +1,11 @@ +import 'package:equatable/equatable.dart'; +import 'package:flutter/cupertino.dart'; + +class Notes extends Equatable { + final String title; + final int id; + + Notes({@required this.title, @required this.id}); + @override + List get props => [title, id]; +} diff --git a/lib/features/notes/domain/entities/notes_list_entitie.dart b/lib/features/notes/domain/entities/notes_list_entitie.dart new file mode 100644 index 0000000..451b07a --- /dev/null +++ b/lib/features/notes/domain/entities/notes_list_entitie.dart @@ -0,0 +1,12 @@ +import 'package:equatable/equatable.dart'; +import 'package:flutter/cupertino.dart'; + +import 'notes_entitie.dart'; + +class NotesList extends Equatable { + final List notes; + + NotesList({@required this.notes}); + @override + List get props => [notes]; +} diff --git a/lib/features/notes/domain/repositories/note_repository.dart b/lib/features/notes/domain/repositories/note_repository.dart new file mode 100644 index 0000000..768f0c2 --- /dev/null +++ b/lib/features/notes/domain/repositories/note_repository.dart @@ -0,0 +1,14 @@ +import 'package:dartz/dartz.dart'; + +import '../../../../core/error/failure.dart'; +import '../../../../core/success/succes.dart'; +import '../entities/note_entitie.dart'; +import '../entities/notes_list_entitie.dart'; + +abstract class NoteRepository { + Future> getNote(int id); + Future> getAllNotes(); + Future> deleteNote(int id); + Future> changeNote(String note, int id); + Future> addNote(String title, String note); +} diff --git a/lib/features/notes/domain/usecases/add_note.dart b/lib/features/notes/domain/usecases/add_note.dart new file mode 100644 index 0000000..bd6c848 --- /dev/null +++ b/lib/features/notes/domain/usecases/add_note.dart @@ -0,0 +1,16 @@ +import 'package:dartz/dartz.dart'; +import 'package:flutter/cupertino.dart'; + +import '../../../../core/error/failure.dart'; +import '../../../../core/success/succes.dart'; +import '../repositories/note_repository.dart'; + +class AddNote { + final NoteRepository repository; + AddNote({@required this.repository}); + + @override + Future> call(String title, String note) async { + return await repository.addNote(title, note); + } +} diff --git a/lib/features/notes/domain/usecases/change_note.dart b/lib/features/notes/domain/usecases/change_note.dart new file mode 100644 index 0000000..98b3589 --- /dev/null +++ b/lib/features/notes/domain/usecases/change_note.dart @@ -0,0 +1,16 @@ +import 'package:dartz/dartz.dart'; +import 'package:flutter/cupertino.dart'; + +import '../../../../core/error/failure.dart'; +import '../../../../core/success/succes.dart'; +import '../repositories/note_repository.dart'; + +class ChangeNote { + final NoteRepository repository; + ChangeNote({@required this.repository}); + + @override + Future> call(int id, String note) async { + return await repository.changeNote(note, id); + } +} diff --git a/lib/features/notes/domain/usecases/delete_note.dart b/lib/features/notes/domain/usecases/delete_note.dart new file mode 100644 index 0000000..8b1789c --- /dev/null +++ b/lib/features/notes/domain/usecases/delete_note.dart @@ -0,0 +1,16 @@ +import 'package:dartz/dartz.dart'; +import 'package:flutter/cupertino.dart'; + +import '../../../../core/error/failure.dart'; +import '../../../../core/success/succes.dart'; +import '../repositories/note_repository.dart'; + +class DeleteNote { + final NoteRepository repository; + DeleteNote({@required this.repository}); + + @override + Future> call(int id) async { + return await repository.deleteNote(id); + } +} diff --git a/lib/features/notes/domain/usecases/get_all_notes.dart b/lib/features/notes/domain/usecases/get_all_notes.dart new file mode 100644 index 0000000..88f1fe1 --- /dev/null +++ b/lib/features/notes/domain/usecases/get_all_notes.dart @@ -0,0 +1,16 @@ +import 'package:dartz/dartz.dart'; +import 'package:flutter/cupertino.dart'; + +import '../../../../core/error/failure.dart'; +import '../entities/notes_list_entitie.dart'; +import '../repositories/note_repository.dart'; + +class GetAllNotes { + final NoteRepository repository; + GetAllNotes({@required this.repository}); + + @override + Future> call() async { + return await repository.getAllNotes(); + } +} diff --git a/lib/features/notes/domain/usecases/get_note.dart b/lib/features/notes/domain/usecases/get_note.dart new file mode 100644 index 0000000..749a313 --- /dev/null +++ b/lib/features/notes/domain/usecases/get_note.dart @@ -0,0 +1,16 @@ +import 'package:dartz/dartz.dart'; +import 'package:flutter/cupertino.dart'; + +import '../../../../core/error/failure.dart'; +import '../entities/note_entitie.dart'; +import '../repositories/note_repository.dart'; + +class GetNote { + final NoteRepository repository; + GetNote({@required this.repository}); + + @override + Future> call(int id) async { + return await repository.getNote(id); + } +} diff --git a/lib/features/notes/presentation/bloc/notes_bloc.dart b/lib/features/notes/presentation/bloc/notes_bloc.dart new file mode 100644 index 0000000..e5a8c0b --- /dev/null +++ b/lib/features/notes/presentation/bloc/notes_bloc.dart @@ -0,0 +1,126 @@ +import 'dart:async'; + +import 'package:bloc/bloc.dart'; +import 'package:dartz/dartz.dart'; +import 'package:equatable/equatable.dart'; +import 'package:flutter/cupertino.dart'; + +import '../../../../core/error/failure.dart'; +import '../../../../core/success/succes.dart'; +import '../../domain/entities/note_entitie.dart'; +import '../../domain/entities/notes_list_entitie.dart'; +import '../../domain/usecases/add_note.dart'; +import '../../domain/usecases/change_note.dart'; +import '../../domain/usecases/delete_note.dart'; +import '../../domain/usecases/get_all_notes.dart'; +import '../../domain/usecases/get_note.dart'; + +part 'notes_event.dart'; +part 'notes_state.dart'; + +const String SERVER_FAILURE_MESSAGE = "Server Fehler"; +const String OFFLINE_FAILURE_MESSAGE = + "Es scheint als wärst du offline, doch für diese Funktion wird eine Internetverbindung benötigt :("; +const String ARGS_MISSING_FAILURE_MESSAGE = + "Internal Error - irgendwas stimmt nicht mit den Daten die wir an die Api übergeben haben, sollte dieser Fall öffter auftreten, melde dies bitte dem App Entwickler"; +const String NO_AUTH_KEY_GIVEN_FAILURE_MESSAGE = + "Es scheint als stimmt dein Auth Key nicht, bitte melde dich erneut an und versuche es erneut"; + +/// Auch wenn es komplett andere Fehler sind, ist die Nachricht für den Nutzer +/// gleich, da der Fehler auf die gleiche Sache hinausläuft die der Nutzer machen +/// kann um den Fehler zu beheben +const String WRONG_CREDENTIALS_FAILURE_MESSAGE = + NO_AUTH_KEY_GIVEN_FAILURE_MESSAGE; + +class NotesBloc extends Bloc { + final AddNote addNote; + final ChangeNote changeNote; + final DeleteNote deleteNote; + final GetAllNotes getAllNotes; + final GetNote getNote; + + NotesBloc( + {@required this.addNote, + @required this.changeNote, + @required this.deleteNote, + @required this.getAllNotes, + @required this.getNote}) + : assert(addNote != null), + assert(changeNote != null), + assert(deleteNote != null), + assert(getAllNotes != null), + assert(getNote != null); + @override + List get props => + [addNote, changeNote, deleteNote, getAllNotes, getNote]; + + @override + Stream mapEventToState( + NotesEvent event, + ) async* { + if (event is AddNoteEvent) { + yield NoteLoading(); + final failureOrSuccess = await addNote(event.title, event.note); + yield* _eitherSuccessOrErrorState(failureOrSuccess); + } else if (event is ChangeNoteEvent) { + yield NoteLoading(); + final failureOrSuccess = await changeNote(event.id, event.note); + yield* _eitherSuccessOrErrorState(failureOrSuccess); + } else if (event is DeleteNoteEvent) { + yield NoteLoading(); + final failureOrSuccess = await deleteNote(event.id); + yield* _eitherSuccessOrErrorState(failureOrSuccess); + } else if (event is GetNotesEvent) { + yield NoteLoading(); + final failureOrNotes = await getAllNotes(); + yield* _eitherNotesListOrErrorState(failureOrNotes); + } else if (event is GetNoteEvent) { + yield NoteLoading(); + final failureOrNote = await getNote(event.id); + yield* _eitherNoteOrErrorState(failureOrNote); + } else if (event is NoteInitialEvent) { + yield NotesInitial(); + } + } + + Stream _eitherSuccessOrErrorState( + Either failureOrSuccess) async* { + yield failureOrSuccess.fold( + (failure) => NoteError(error: _mapFailureToMessage(failure)), + (success) => NoteSuccessfull()); + } + + Stream _eitherNotesListOrErrorState( + Either failureOrNotes) async* { + yield failureOrNotes.fold( + (failure) => NoteError(error: _mapFailureToMessage(failure)), + (notes) => NotesGot(notes: notes)); + } + + Stream _eitherNoteOrErrorState( + Either failureOrNote) async* { + yield failureOrNote.fold( + (failure) => NoteError(error: _mapFailureToMessage(failure)), + (note) => NoteGot(note: note)); + } + + String _mapFailureToMessage(Failure failure) { + switch (failure.runtimeType) { + case ServerFailure: + return SERVER_FAILURE_MESSAGE; + case OfflineFailure: + return OFFLINE_FAILURE_MESSAGE; + case WrongCredentialsFailure: + return WRONG_CREDENTIALS_FAILURE_MESSAGE; + case NoAuthKeyGivenFailure: + return NO_AUTH_KEY_GIVEN_FAILURE_MESSAGE; + case ArgsMissingFailure: + return ARGS_MISSING_FAILURE_MESSAGE; + default: + return "Unknown error"; + } + } + + @override + NotesState get initialState => NotesInitial(); +} diff --git a/lib/features/notes/presentation/bloc/notes_event.dart b/lib/features/notes/presentation/bloc/notes_event.dart new file mode 100644 index 0000000..f77d64c --- /dev/null +++ b/lib/features/notes/presentation/bloc/notes_event.dart @@ -0,0 +1,43 @@ +part of 'notes_bloc.dart'; + +abstract class NotesEvent extends Equatable { + @override + List get props => []; +} + +class NoteInitialEvent extends NotesEvent {} + +class AddNoteEvent extends NotesEvent { + final String title, note; + AddNoteEvent({@required this.title, @required this.note}); + + @override + List get props => [title, note]; +} + +class ChangeNoteEvent extends NotesEvent { + final String note; + final int id; + ChangeNoteEvent({@required this.id, @required this.note}); + + @override + List get props => [id, note]; +} + +class DeleteNoteEvent extends NotesEvent { + final int id; + DeleteNoteEvent({@required this.id}); + + @override + List get props => [id]; +} + +class GetNoteEvent extends NotesEvent { + final int id; + GetNoteEvent({@required this.id}); + + @override + List get props => [id]; +} + +class GetNotesEvent extends NotesEvent {} diff --git a/lib/features/notes/presentation/bloc/notes_state.dart b/lib/features/notes/presentation/bloc/notes_state.dart new file mode 100644 index 0000000..d49863d --- /dev/null +++ b/lib/features/notes/presentation/bloc/notes_state.dart @@ -0,0 +1,36 @@ +part of 'notes_bloc.dart'; + +abstract class NotesState extends Equatable { + @override + List get props => []; +} + +class NotesInitial extends NotesState {} + +/// Benutzt für: Add Note, Change Note, Delete Note +class NoteSuccessfull extends NotesState {} + +class NoteLoading extends NotesState {} + +class NoteGot extends NotesState { + final Note note; + + NoteGot({@required this.note}); + @override + List get props => [note]; +} + +class NotesGot extends NotesState { + final NotesList notes; + + NotesGot({@required this.notes}); + @override + List get props => [notes]; +} + +class NoteError extends NotesState { + final String error; + NoteError({@required this.error}); + @override + List get props => [error]; +} diff --git a/lib/features/notes/presentation/pages/markdown_editor/advanced_editor.dart b/lib/features/notes/presentation/pages/markdown_editor/advanced_editor.dart new file mode 100644 index 0000000..4383535 --- /dev/null +++ b/lib/features/notes/presentation/pages/markdown_editor/advanced_editor.dart @@ -0,0 +1,236 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; + +import '../../../../../core/ui/widgets/error_display.dart'; +import '../../../../../core/ui/widgets/invisible_widget.dart'; +import '../../../../../core/ui/widgets/success_display.dart'; +import '../../../../../injection_container.dart'; +import '../../bloc/notes_bloc.dart'; +import '../../widgets/advanced_editor_widgets/advanced_editor_bottom_appbar_button.dart'; +import '../../widgets/advanced_editor_widgets/advanced_editor_save_action_button.dart'; +import '../note_viewer.dart'; +import '../notes_list_page.dart'; + +class AdvancedMarkDownEditor extends StatefulWidget { + /// Sorgt dafür, dass _AdvancedMarkDownEditor State von überall aufgerufen + /// werden kann + /// + /// Syntax: AdvancedMarkDownEditor.of(context).doSomething() + static _AdvancedMarkDownEditorState of(BuildContext context) => context + .ancestorStateOfType(const TypeMatcher<_AdvancedMarkDownEditorState>()); + _AdvancedMarkDownEditorState state = _AdvancedMarkDownEditorState(); + + AdvancedMarkDownEditor({Key key}) : super(); + + @override + _AdvancedMarkDownEditorState createState() => state; +} + +class _AdvancedMarkDownEditorState extends State { + bool new_note = false; + String title; + int noteID; + + /// da die Bloc Befehle nur aus einem BlocContext aufgerufen werden können + /// speichern wir diesen Context zwischen um ihn fpr die Befehle nutzen können + BuildContext blocContext; + static const double _border_padding_navigation = 10; + TextEditingController _txtController; + @override + void initState() { + _txtController = TextEditingController(); + super.initState(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text("Editor"), + ), + + /// untere Toolleiste + bottomNavigationBar: Transform.translate( + /// Das Offset sorgt dafür, dass die BottomAppBar mit dem Keyboard + /// nach oben geht und nicht unter der Tatstaur verschwindet + offset: Offset(0.0, -1 * MediaQuery.of(context).viewInsets.bottom), + child: buildBottomAppBar(context), + ), + floatingActionButton: SaveActionButton(), + + /// Lässt den FloatingActionButton central auf der BottomAppBar erscheinen + floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked, + + /// Editor + body: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + mainAxisAlignment: MainAxisAlignment.start, + children: [ + Expanded( + child: TextFormField( + controller: _txtController, + expands: true, + maxLines: null, + minLines: null, + style: TextStyle( + color: Theme.of(context).primaryTextTheme.bodyText1.color, + fontSize: 20), + decoration: InputDecoration( + border: InputBorder.none, + contentPadding: EdgeInsets.fromLTRB(10, 5, 10, 0)), + //onChanged: (value) {}, + ), + ), + buildbloc(context), + ], + )); + } + + /// setzt den übergebenen String ins TextFeld + set textFormFieldText(String text) { + /// Da ein \ beim einfügen in die DB verloren geht, muss es beim einfügen als + /// Text doppelt eingefügt werden, sonst würde es nach jedem speichern ein \ + /// weniger geben, was doof wäre bei den mathematischen Befehlen die ein \\ + /// benutzen (\\frac{1}{2}) + _txtController.text = text.replaceAll("\\", "\\\\"); + } + + BottomAppBar buildBottomAppBar(BuildContext context) { + return BottomAppBar( + shape: CircularNotchedRectangle(), + color: Theme.of(context).accentColor, + child: Row( + mainAxisSize: MainAxisSize.max, + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + EditorBottomAppBarButton( + replaceStringpattern: "**x**", + icon: Icons.format_bold, + tooltip: "Fettgedruckt", + ), + EditorBottomAppBarButton( + replaceStringpattern: "*x*", + icon: Icons.format_italic, + tooltip: "Kursiv", + ), + EditorBottomAppBarButton( + replaceStringpattern: "\$\$x\$\$", + icon: Icons.school, + tooltip: "Mathe", + ), + Padding( + padding: + const EdgeInsets.fromLTRB(0, 0, _border_padding_navigation, 0), + child: Tooltip( + message: "Löschen", + child: IconButton( + icon: Icon( + Icons.delete, + color: Theme.of(context).dividerColor, + ), + onPressed: () { + deleteNote(); + }, + ), + ), + ), + ], + ), + //notchMargin: 120, + ); + } + + /// ersetzt den ausgewählten Text im Textfeld mit dem übergebenen Text + /// + /// @param replace - das Muster durch welches der Text ersetzt werden soll, + /// wobei ein x verwendet wird um zu symbolisieren, dass dort der ausgewählte + /// Text eingefügt wird + void replaceSelection(String replace) { + TextSelection _sel = _txtController.selection; + String _newText = _txtController.text.replaceRange(_sel.start, _sel.end, + replace.replaceFirst("x", _sel.textInside(_txtController.text))); + + /// Setzt den neuen Text in das Textfeld + _txtController.text = _newText; + + /// Sorgt dafür, dass der Kursor wieder da ist, wo er vor dem + /// setzen des neuen Textes war und nicht am Anfang des Textes + _txtController.selection = _sel.copyWith( + baseOffset: _sel.start + replace.length, + extentOffset: _sel.start + replace.length); + } + + /// Falls eine Notiz bearbeitet wird, wird die notiz am Server überschrieben + /// und man wird beim speichern auf den NoteViewer weitergeleitet, falls es + /// allerdings eine neue Notiz ist, wird eine neue Notiz angelegt und man wird + /// auf die Seite mit allen Notizen weitergeleitet + void saveNote() async { + if (new_note) { + BlocProvider.of(blocContext) + .add(AddNoteEvent(title: title, note: _txtController.text)); + + /// Geht erst zurück auf den HomeScreen der Anwendung um die Route zurück + /// zusetzen und ruft dann die neue Seite auf, damit die in App Navigation + /// gut funktioniert + Future.delayed(Duration(milliseconds: 1), () { + Navigator.of(context) + .push(MaterialPageRoute(builder: (context) => NotesPage())); + }); + Navigator.pushNamedAndRemoveUntil(context, '/', (_) => false); + } else { + BlocProvider.of(blocContext) + .add(ChangeNoteEvent(id: noteID, note: _txtController.text)); + + /// leitet den User wieder zurück auf die NoteViewerPage und entfernt sich + /// selber aus dem Speicher + Navigator.of(context).pushReplacement(MaterialPageRoute( + builder: (context) => NoteViewerPage(note_id: noteID))); + } + } + + /// Löscht die aktuelle Notiz + void deleteNote() { + ///Falls die Notiz keine neue Notiz ist wird sie vom Server gelöscht, + ///andernfalls existiert die Notiz auch noch nicht auf dem Server + if (!new_note) { + BlocProvider.of(blocContext).add(DeleteNoteEvent(id: noteID)); + } + + /// brint den User zurück auf die Seite mit allen Notizen + Navigator.of(context) + .pushReplacement(MaterialPageRoute(builder: (context) => NotesPage())); + } + + /// setzt den Bloc State wieder auf den initial State zurück + void setBlocStateInitial() { + BlocProvider.of(blocContext).add(NoteInitialEvent()); + } + + /// Erzeugt den Bloc, der für das speichern und löschen der Notiz zustädig ist + /// und die Fehler- / Erfolgsnachricht ausgibt + BlocProvider buildbloc(BuildContext context) { + return BlocProvider( + create: (context) => sl(), + child: BlocBuilder( + builder: (context, state) { + /// Falls wir noch keinen blocContext gespeichert haben, specihern wir + /// ihn einmal + if (blocContext == null) { + blocContext = context; + } + WidgetsBinding.instance.addPostFrameCallback((timeStamp) { + if (state is NoteSuccessfull) { + SuccessDisplayFlushbar() + .showSuccessFlushbar(context, "Erfolgreich ausgeführt"); + setBlocStateInitial(); + } else if (state is NoteError) { + ErrorDisplayFlushbar().showErrorFlushbar(context, state.error); + setBlocStateInitial(); + } + }); + return InvisibleWidget(); + }, + ), + ); + } +} diff --git a/lib/features/notes/presentation/pages/note_viewer.dart b/lib/features/notes/presentation/pages/note_viewer.dart new file mode 100644 index 0000000..a671e5f --- /dev/null +++ b/lib/features/notes/presentation/pages/note_viewer.dart @@ -0,0 +1,115 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/scheduler.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:flutter_tex/flutter_tex.dart'; +import 'package:physik_lp_app_rewrite/features/notes/presentation/pages/markdown_editor/advanced_editor.dart'; + +import '../../../../core/ui/widgets/error_display.dart'; +import '../../../../core/ui/widgets/invisible_widget.dart'; +import '../../../../injection_container.dart'; +import '../bloc/notes_bloc.dart'; +import '../widgets/teXdocument.dart'; + +final String errorInitial = + "Scheint als wäre die Api nicht aufgerufen worden, bitte starte die App noch mal neu"; + +class NoteViewerPage extends StatefulWidget { + final int note_id; + NoteViewerPage({@required this.note_id}); + + @override + _NoteViewerPageState createState() => _NoteViewerPageState(note_id: note_id); +} + +class _NoteViewerPageState extends State { + final int note_id; + String appbar_titel = "Loading"; + String last_error = ""; + String note_text = ""; + _NoteViewerPageState({@required this.note_id}); + bool made_note_call = false; + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text(appbar_titel), + ), + floatingActionButton: FloatingActionButton( + onPressed: () async { + AdvancedMarkDownEditor editor = AdvancedMarkDownEditor(); + Future.delayed(Duration(milliseconds: 10), () { + editor.state.noteID = note_id; + editor.state.textFormFieldText = note_text; + }); + Navigator.pushReplacement( + context, MaterialPageRoute(builder: (context) => editor)); + }, + child: Icon( + Icons.edit, + size: 30, + ), + ), + body: buildbody(context), + ); + } + + _getNote(BuildContext context) { + BlocProvider.of(context).add(GetNoteEvent(id: note_id)); + } + + BlocProvider buildbody(BuildContext context) { + return BlocProvider( + create: (context) => sl(), + child: Column(children: [ + BlocBuilder( + builder: (context, state) { + if (!made_note_call) { + made_note_call = true; + _getNote(context); + } + if (state is NoteError) { + if (last_error != state.error) { + last_error = state.error; + WidgetsBinding.instance.addPostFrameCallback((_) { + ErrorDisplayFlushbar() + .showErrorFlushbar(context, state.error); + }); + return InvisibleWidget(); + } + } else if (state is NoteGot) { + SchedulerBinding.instance.addPostFrameCallback((_) { + setState(() { + appbar_titel = state.note.title; + note_text = state.note.note; + }); + }); + return Expanded( + child: TeXView( + renderingEngine: TeXViewRenderingEngine.mathjax(), + loadingWidgetBuilder: (context) => Center( + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + CircularProgressIndicator(), + Text("Rendering...", + style: + Theme.of(context).primaryTextTheme.bodyText1) + ], + ), + ), + style: TeXViewStyle( + backgroundColor: + Theme.of(context).scaffoldBackgroundColor), + child: TeXDocument.text(state.note.note), + ), + ); + } else { + return InvisibleWidget(); + } + }, + ) + ])); + } +} diff --git a/lib/features/notes/presentation/pages/notes_list_page.dart b/lib/features/notes/presentation/pages/notes_list_page.dart new file mode 100644 index 0000000..4645357 --- /dev/null +++ b/lib/features/notes/presentation/pages/notes_list_page.dart @@ -0,0 +1,153 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; + +import '../../../../core/ui/widgets/error_display.dart'; +import '../../../../core/ui/widgets/invisible_widget.dart'; +import '../../../../core/util/shared_prefrences/shared_prefs_auth.dart'; +import '../../../../injection_container.dart'; +import '../../../login/presentation/pages/login_page.dart'; +import '../bloc/notes_bloc.dart'; +import '../widgets/loading_display.dart'; +import '../widgets/notes_list_view.dart'; +import 'markdown_editor/advanced_editor.dart'; + +final String errorInitial = + "Scheint als wäre die Api nicht aufgerufen worden, bitte starte die App noch mal neu"; + +class NotesPage extends StatefulWidget { + NotesPage(); + + @override + _NotesPageState createState() => _NotesPageState(); +} + +class _NotesPageState extends State { + bool made_notes_call = false; + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text("Notizen"), + ), + floatingActionButton: FloatingActionButton( + onPressed: () { + if (sl().logedin) { + _titleDialog(); + } + }, + child: Icon( + Icons.add, + size: 30, + ), + ), + body: buildbody(context), + ); + } + + _getAllNotes(BuildContext context) { + BlocProvider.of(context).add(GetNotesEvent()); + } + + _titleDialog() async { + String title = "No title"; + await showDialog( + context: context, + child: new AlertDialog( + contentPadding: const EdgeInsets.all(16.0), + content: new Row( + children: [ + new Expanded( + child: new TextField( + autofocus: true, + onChanged: (value) { + title = value; + }, + decoration: new InputDecoration( + labelText: 'Titel:', hintText: 'z. B. Bernoulli-Formel'), + ), + ) + ], + ), + actions: [ + new FlatButton( + child: const Text('Abbrechen'), + onPressed: () { + /// schließt das geöffnete Fenster (in dem Fall den Dialog) + Navigator.pop(context); + }), + new FlatButton( + child: const Text('Erstellen'), + onPressed: () async { + AdvancedMarkDownEditor editor = AdvancedMarkDownEditor(); + + /// Da die Seite erst einmal geladen werden muss, bevor mit den + /// Elementen iteragiert werden kann, warten wir 10 millisekunden + /// bevor wir einen Befehl ausführen + Future.delayed(Duration(milliseconds: 10), () { + /// gibt den Variablen new_note und title die richtigen Werte + editor.state.new_note = true; + editor.state.title = title; + + /// setzt als neuen Text den Titel als Überschrift + editor.state.textFormFieldText = "#$title"; + }); + Navigator.push( + context, MaterialPageRoute(builder: (context) => editor)); + }) + ], + ), + ); + } + + //TODO cleanup -> initialState + BlocProvider buildbody(BuildContext context) { + return BlocProvider( + create: (context) => sl(), + child: Column(children: [ + BlocBuilder( + builder: (context, state) { + if (sl().logedin) { + if (!made_notes_call) { + made_notes_call = true; + _getAllNotes(context); + } + if (state is NoteError) { + ErrorDisplayFlushbar() + .showErrorFlushbar(context, state.error); + return InvisibleWidget(); + } else if (state is NotesGot) { + return NotesViewer(state: state); + } else if (state is NoteLoading) { + return NotesLoadingDisplay(); + } else { + return InvisibleWidget(); + } + } else { + return Center( + child: Padding( + padding: const EdgeInsets.all(10.0), + child: Column( + children: [ + Text( + "Du musst dich anmelden, um diese Funktion nutzen zu können", + style: Theme.of(context).primaryTextTheme.headline3, + ), + RaisedButton( + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => LoginPage())); + }, + child: Text("Anmelden"), + ) + ], + ), + ), + ); + } + }, + ) + ])); + } +} diff --git a/lib/features/notes/presentation/widgets/advanced_editor_widgets/advanced_editor_bottom_appbar_button.dart b/lib/features/notes/presentation/widgets/advanced_editor_widgets/advanced_editor_bottom_appbar_button.dart new file mode 100644 index 0000000..734806c --- /dev/null +++ b/lib/features/notes/presentation/widgets/advanced_editor_widgets/advanced_editor_bottom_appbar_button.dart @@ -0,0 +1,33 @@ +import 'package:flutter/material.dart'; + +import '../../pages/markdown_editor/advanced_editor.dart'; + +class EditorBottomAppBarButton extends StatelessWidget { + final String replaceStringpattern; + final IconData icon; + final String tooltip; + const EditorBottomAppBarButton( + {@required this.replaceStringpattern, + @required this.icon, + @required this.tooltip}) + : super(); + + @override + Widget build(BuildContext context) { + const double _border_padding_navigation = 10; + return Tooltip( + message: tooltip, + child: Padding( + padding: const EdgeInsets.fromLTRB(_border_padding_navigation, 0, 0, 0), + child: IconButton( + icon: Icon( + icon, + color: Theme.of(context).dividerColor, + ), + onPressed: () => AdvancedMarkDownEditor.of(context) + .replaceSelection(replaceStringpattern), + ), + ), + ); + } +} diff --git a/lib/features/notes/presentation/widgets/advanced_editor_widgets/advanced_editor_save_action_button.dart b/lib/features/notes/presentation/widgets/advanced_editor_widgets/advanced_editor_save_action_button.dart new file mode 100644 index 0000000..79cc0a6 --- /dev/null +++ b/lib/features/notes/presentation/widgets/advanced_editor_widgets/advanced_editor_save_action_button.dart @@ -0,0 +1,28 @@ +import 'package:flutter/material.dart'; + +import '../../pages/markdown_editor/advanced_editor.dart'; + +class SaveActionButton extends StatelessWidget { + const SaveActionButton({ + Key key, + }) : super(key: key); + + @override + Widget build(BuildContext context) { + return Transform.translate( + + ///Das offset sorgt dafür, dass der Save Button verschwindet, wenn man + ///die Tastatur öffnet + offset: Offset(0.0, 5 * MediaQuery.of(context).viewInsets.bottom), + child: FloatingActionButton( + onPressed: () { + AdvancedMarkDownEditor.of(context).saveNote(); + }, + elevation: 2.0, + child: Icon( + Icons.save, + size: 30, + ), + )); + } +} diff --git a/lib/features/notes/presentation/widgets/advanced_editor_widgets/editor_textfield.dart b/lib/features/notes/presentation/widgets/advanced_editor_widgets/editor_textfield.dart new file mode 100644 index 0000000..5fb7c54 --- /dev/null +++ b/lib/features/notes/presentation/widgets/advanced_editor_widgets/editor_textfield.dart @@ -0,0 +1,32 @@ +import 'package:flutter/material.dart'; + +class EditorTextField extends StatelessWidget { + final from; + String note = ""; + EditorTextField({@required this.from, this.note}); + + @override + Widget build(BuildContext context) { + return Container( + child: Container( + width: MediaQuery.of(context).size.width, + height: MediaQuery.of(context).size.height / 2.5, + child: TextFormField( + expands: true, + maxLines: null, + minLines: null, + initialValue: note, + onChanged: (value) { + from.input = value; + }, + style: TextStyle( + color: Theme.of(context).primaryTextTheme.bodyText1.color, + fontSize: 20), + decoration: InputDecoration( + border: InputBorder.none, + contentPadding: EdgeInsets.fromLTRB(10, 5, 10, 0)), + ), + ), + ); + } +} diff --git a/lib/features/notes/presentation/widgets/loading_display.dart b/lib/features/notes/presentation/widgets/loading_display.dart new file mode 100644 index 0000000..43a9836 --- /dev/null +++ b/lib/features/notes/presentation/widgets/loading_display.dart @@ -0,0 +1,32 @@ +import 'package:flutter/material.dart'; + +class NotesLoadingDisplay extends StatelessWidget { + const NotesLoadingDisplay({ + Key key, + }) : super(key: key); + + @override + Widget build(BuildContext context) { + return Center( + child: Container( + height: MediaQuery.of(context).size.height / 2.5, + child: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + CircularProgressIndicator( + strokeWidth: 2, + valueColor: new AlwaysStoppedAnimation( + Theme.of(context).accentColor), + ), + Text( + "Notizen werden geladen", + style: Theme.of(context).primaryTextTheme.bodyText1, + ) + ], + )), + ), + ); + } +} diff --git a/lib/features/notes/presentation/widgets/notes_card.dart b/lib/features/notes/presentation/widgets/notes_card.dart new file mode 100644 index 0000000..d90bdfc --- /dev/null +++ b/lib/features/notes/presentation/widgets/notes_card.dart @@ -0,0 +1,55 @@ +import 'package:flutter/material.dart'; + +import '../../../../injection_container.dart'; +import '../bloc/notes_bloc.dart'; +import '../pages/note_viewer.dart'; +import '../pages/notes_list_page.dart'; + +class NoteCard extends StatefulWidget { + final String note_title; + final int note_id; + NoteCard({@required this.note_title, @required this.note_id}); + + @override + _NoteCardState createState() => _NoteCardState(); +} + +class _NoteCardState extends State { + @override + Widget build(BuildContext context) { + double _opacity = 1.0; + String txt = widget.note_title; + return Container( + child: Opacity( + opacity: _opacity, + child: Card( + child: ListTile( + contentPadding: + EdgeInsets.symmetric(horizontal: 26, vertical: 8), + title: Text(txt, + style: Theme.of(context).primaryTextTheme.bodyText1), + trailing: Icon( + Icons.arrow_forward_ios, + color: Theme.of(context).dividerColor, + ), + leading: IconButton( + icon: Icon(Icons.delete, + color: Theme.of(context).dividerColor), + onPressed: () { + /// Aus irgendeinem Grund, klappt hier setState nicht, also laden wir + /// die Seite einfach neu, aber ohne sie als neue Route + /// hinzuzufügen + sl() + .add(DeleteNoteEvent(id: widget.note_id)); + Navigator.of(context).pushReplacement(MaterialPageRoute( + builder: (context) => NotesPage())); + }), + onTap: () => Navigator.push( + context, + MaterialPageRoute( + builder: (context) => + NoteViewerPage(note_id: widget.note_id)), + )), + ))); + } +} diff --git a/lib/features/notes/presentation/widgets/notes_list_view.dart b/lib/features/notes/presentation/widgets/notes_list_view.dart new file mode 100644 index 0000000..7c25247 --- /dev/null +++ b/lib/features/notes/presentation/widgets/notes_list_view.dart @@ -0,0 +1,47 @@ +import 'package:flutter/material.dart'; + +import '../bloc/notes_bloc.dart'; +import 'notes_card.dart'; + +class NotesViewer extends StatefulWidget { + final NotesGot state; + NotesViewer({@required this.state}); + + @override + _NotesViewerState createState() => _NotesViewerState(); +} + +class _NotesViewerState extends State { + @override + Widget build(BuildContext context) { + List menu = []; + widget.state.notes.notes.forEach((element) { + menu.add(NoteCard(note_title: element.title, note_id: element.id)); + }); + + /// Die Reihenfolge der Einträge wird so verändert, dass die zuletzt + /// ertsellte Notiz ganz oben in der Liste ist und die älteste ganz unten + List menu_sorted = []; + menu.reversed.forEach((element) { + menu_sorted.add(element); + }); + + /// Es wird überprüft, ob überhaupt eine Notiz existiert und falls nicht + /// wird ein Text ausgegben, der den Nutzer darüber informieren soll + if (menu_sorted.length > 0) { + return Expanded( + child: ListView( + children: menu_sorted, + )); + } else { + return Expanded( + child: Padding( + padding: const EdgeInsets.all(15.0), + child: Text( + "Noch keine Notizen vorhanden, um eine Notiz zu erstellen klick einfach das Icon unten rechts an", + style: Theme.of(context).primaryTextTheme.headline3, + ), + )); + } + } +} diff --git a/lib/features/notes/presentation/widgets/teXdocument.dart b/lib/features/notes/presentation/widgets/teXdocument.dart new file mode 100644 index 0000000..843275f --- /dev/null +++ b/lib/features/notes/presentation/widgets/teXdocument.dart @@ -0,0 +1,22 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_tex/flutter_tex.dart'; + +import '../../../../core/util/parser/markdown_html_parser.dart'; + +class TeXDocument { + TeXDocument(); + static TeXViewWidget text(String body) { + return TeXViewColumn( + style: TeXViewStyle( + margin: TeXViewMargin.all(10), + padding: TeXViewPadding.all(10), + backgroundColor: Colors.transparent), + children: [ + TeXViewDocument(MarkDownParser().parseString(body), + style: TeXViewStyle( + margin: TeXViewMargin.only(top: 10), + contentColor: Colors.white, + backgroundColor: Colors.transparent)) + ]); + } +} diff --git a/lib/features/plot/data/datasources/Plot_api.dart b/lib/features/plot/data/datasources/Plot_api.dart new file mode 100644 index 0000000..389fb8a --- /dev/null +++ b/lib/features/plot/data/datasources/Plot_api.dart @@ -0,0 +1,34 @@ +import 'dart:convert'; + +import 'package:flutter/cupertino.dart'; +import 'package:http/http.dart' as http; +import '../../../../core/error/exceptions.dart'; +import '../models/plot_filename_model.dart'; + +import '../../domain/entities/plot_filename.dart'; + +abstract class PlotApi{ + /// Ruft die http://srv2.thebotdev.de/plot/beugungsmuster api auf und erzeugt einen neuen Plot mit den übergebenen Argumenten + /// + /// Wirft eine [ServerException] bei jedem Fehlercode + Future getBeugungsmusterPlot(int spaltanzahl, double spaltabstand, double wellenlaenge, double amplitude); +} + +class PlotApiImpl implements PlotApi{ + final http.Client client; + final String baseurl = "http://srv2.thebotdev.de/"; + PlotApiImpl({@required this.client}); + + + @override + Future getBeugungsmusterPlot(int spaltanzahl, double spaltabstand, double wellenlaenge, double amplitude)=> _getPlotFromUrl("$baseurl/plot/beugungsmuster?spaltanzahl=$spaltanzahl&spaltabstand=$spaltabstand&wellenlaenge=$wellenlaenge&litude=$amplitude"); + + Future _getPlotFromUrl(String url) async{ + final response = await client.get(url); + if(response.statusCode == 200){ + return PlotFilenameModel.fromJson(json.decode(response.body)); + }else{ + throw ServerException(); + } + } +} \ No newline at end of file diff --git a/lib/features/plot/data/models/plot_filename_model.dart b/lib/features/plot/data/models/plot_filename_model.dart new file mode 100644 index 0000000..bd9babf --- /dev/null +++ b/lib/features/plot/data/models/plot_filename_model.dart @@ -0,0 +1,18 @@ +import 'package:meta/meta.dart'; + +import '../../domain/entities/plot_filename.dart'; + +class PlotFilenameModel extends PlotFileName{ + PlotFilenameModel({ + @required String filename, + }) : super (filename: filename); + + factory PlotFilenameModel.fromJson(Map json){ + return PlotFilenameModel(filename: json['filename']); + } + Map toJson(){ + return{ + 'filename': filename + }; + } +} \ No newline at end of file diff --git a/lib/features/plot/data/repositories/plot_repository_impl.dart b/lib/features/plot/data/repositories/plot_repository_impl.dart new file mode 100644 index 0000000..ea7fa38 --- /dev/null +++ b/lib/features/plot/data/repositories/plot_repository_impl.dart @@ -0,0 +1,32 @@ +import 'package:dartz/dartz.dart'; +import 'package:flutter/cupertino.dart'; + +import '../../../../core/error/exceptions.dart'; +import '../../../../core/error/failure.dart'; +import '../../../../core/platform/networkinfo.dart'; +import '../../domain/entities/plot_filename.dart'; +import '../../domain/repositories/plot_repository.dart'; +import '../datasources/Plot_api.dart'; + +class PlotRepositoryImpl implements PlotRepository{ + final PlotApi remoteDataSource; + final NetworkInfo networkInfo; + PlotRepositoryImpl({ + @required this.remoteDataSource, + @required this.networkInfo, + }); + @override + Future> getBeugungsmusterPlot(int spaltanzahl, double spaltabstand, double wellenlaenge, double amplitude) async { + if( await networkInfo.isConnected){ + try{ + return Right(await remoteDataSource.getBeugungsmusterPlot(spaltanzahl, spaltabstand, wellenlaenge, amplitude)); + } on ServerException { + return Left(ServerFailure()); + } + /// wenn der User offline ist wird aktuell ein [CacheFailure] als Fehler zurück gegeben + }else{ + return Left(CacheFailure()); + } + } + +} \ No newline at end of file diff --git a/lib/features/plot/domain/entities/plot_filename.dart b/lib/features/plot/domain/entities/plot_filename.dart new file mode 100644 index 0000000..07b277a --- /dev/null +++ b/lib/features/plot/domain/entities/plot_filename.dart @@ -0,0 +1,14 @@ + +import 'package:equatable/equatable.dart'; +import 'package:meta/meta.dart'; + +class PlotFileName extends Equatable{ + final String filename; + + PlotFileName({ + @required this.filename, + }); + + @override + List get props => [filename]; +} \ No newline at end of file diff --git a/lib/features/plot/domain/repositories/plot_repository.dart b/lib/features/plot/domain/repositories/plot_repository.dart new file mode 100644 index 0000000..a1f728e --- /dev/null +++ b/lib/features/plot/domain/repositories/plot_repository.dart @@ -0,0 +1,9 @@ +import 'package:dartz/dartz.dart'; + +import '../../../../core/error/failure.dart'; +import '../entities/plot_filename.dart'; + + +abstract class PlotRepository{ + Future> getBeugungsmusterPlot(int spaltanzahl, double spaltabstand, double wellenlaenge, double amplitude); +} \ No newline at end of file diff --git a/lib/features/plot/domain/usecases/get_beugungsmuster_plot.dart b/lib/features/plot/domain/usecases/get_beugungsmuster_plot.dart new file mode 100644 index 0000000..dad232d --- /dev/null +++ b/lib/features/plot/domain/usecases/get_beugungsmuster_plot.dart @@ -0,0 +1,35 @@ +import 'package:dartz/dartz.dart'; +import 'package:equatable/equatable.dart'; +import 'package:meta/meta.dart'; + +import '../../../../core/error/failure.dart'; +import '../entities/plot_filename.dart'; +import '../repositories/plot_repository.dart'; + +class GetBeugungsmusterPlot{ + final PlotRepository repository; + + GetBeugungsmusterPlot(this.repository); + + @override + Future> call(Params params) async { + return await repository.getBeugungsmusterPlot(params.spaltanzahl, params.spaltabstand, params.wellenlaenge, params.amplitude); + } +} + +class Params extends Equatable{ + final int spaltanzahl; + final double spaltabstand; + final double wellenlaenge; + final double amplitude; + + Params({@required this.spaltanzahl, + @required this.spaltabstand, + @required this.wellenlaenge, + @required this.amplitude}); + + + + @override + List get props => [spaltanzahl, spaltabstand, wellenlaenge, amplitude]; +} \ No newline at end of file diff --git a/lib/features/plot/presentation/bloc/beugungsmuster_plot_bloc.dart b/lib/features/plot/presentation/bloc/beugungsmuster_plot_bloc.dart new file mode 100644 index 0000000..0f9f86b --- /dev/null +++ b/lib/features/plot/presentation/bloc/beugungsmuster_plot_bloc.dart @@ -0,0 +1,89 @@ +import 'dart:async'; + +import 'package:bloc/bloc.dart'; +import 'package:dartz/dartz.dart'; +import 'package:equatable/equatable.dart'; +import 'package:meta/meta.dart'; + +import '../../../../core/error/failure.dart'; +import '../../../../core/util/input_converter.dart'; +import '../../domain/entities/plot_filename.dart'; +import '../../domain/usecases/get_beugungsmuster_plot.dart'; + +part 'beugungsmuster_plot_event.dart'; +part 'beugungsmuster_plot_state.dart'; + +const String SERVER_FAILURE_MESSAGE = "Server Fehler"; +const String CACHE_FAILURE_MESSAGE = "Es scheint als wärst du offline, doch für diese Funktion wird eine Internetverbindung benötigt :("; +const String INVALID_INPUT_FAILURE_MESSAGE = "Eingabe Fehler - bitte überprüf deine Eingaben"; + +class BeugungsmusterPlotBloc extends Bloc { + final GetBeugungsmusterPlot getBeugungsmusterPlot; + final InputConverter inputConverter; + + /// Da getBeugungsmusterPot etwas lang für einen benannten Parameter wäre habe ich es mal etwas umständlicher gemacht + /// Da der Plot und der Input Converter niemals null sein dürfen und ich das später nicht immer einzeln überprüfen + /// möchte wird direkt beim Konstruktor der Klasse überprüft, dass diese nicht null sind (dies muss über assert passieren, + /// da Dart keine non nullable Objekte besitzt) + BeugungsmusterPlotBloc({ + @required GetBeugungsmusterPlot plot, + @required this.inputConverter}) : + assert(plot != null), + assert(inputConverter != null), + getBeugungsmusterPlot = plot; + + + @override + BeugungsmusterPlotState get initialState => BeugungsmusterPlotEmpty(); + + /// Alle Parameter die zum erzeugen des Plots notwendig sind wurden aus den Textfeldern als String ausgelesen, aber + /// in unserer Api möchten wir nur mit Integern und Double Werten arbeiten, daher werden die Werte erst mit der Klasse + /// InputConverter in ein int oder double umgewandelt und anschließend wird auf mögliche geworfene Fehler, beim + /// umwandeln der Strings ([ConvertError]) geprüft und falls es Fehler gibt wird das dem Bloc mitgeteilt + /// + /// Ich weiß die Funktion ist mega hässlich verschachtelt und mega kacke zum lesen, aber leider konnte dies schlecht in eine + /// andere Methode ausgelagert werden, da Blocs Stream sonst an der ein oder anderen stelle nicht mit klar kommt und viele + /// Error im Stream erzeugt werden können, und es viel mehr aufwand wäre auf die ganzen Fegler zu überprüfen + @override + Stream mapEventToState( + BeugungsmusterPlotEvent event, + ) async* { + if(event is GetPlotForBeugungsmuster){ + final spaltanzahl = inputConverter.stringToUnsignedInteger(event.spaltanzahl); + yield* spaltanzahl.fold((failure) async *{yield BeugungsmusterPlotError(error: INVALID_INPUT_FAILURE_MESSAGE);}, (_spaltanzahl) async* { + final spaltabstand = inputConverter.stringToUnsignedDouble(event.spaltabstand); + yield* spaltabstand.fold((failure) async *{yield BeugungsmusterPlotError(error: INVALID_INPUT_FAILURE_MESSAGE);}, (_spaltabstand) async* { + final wellenlaenge = inputConverter.stringToUnsignedDouble(event.wellenleange); + yield* wellenlaenge.fold((failure) async *{yield BeugungsmusterPlotError(error: INVALID_INPUT_FAILURE_MESSAGE);}, (_wellenlaenge) async* { + final amplitude = inputConverter.stringToUnsignedDouble(event.amplitude); + yield* amplitude.fold((failure) async *{yield BeugungsmusterPlotError(error: INVALID_INPUT_FAILURE_MESSAGE);}, (_amplitude) async* { + yield BeugungsmusterPlotLoading(); + final failureOrFilename = await getBeugungsmusterPlot(Params(spaltanzahl: _spaltanzahl, spaltabstand: _spaltabstand, wellenlaenge: _wellenlaenge, amplitude: _amplitude)); + yield* _eitherLoadedOrErrorState(failureOrFilename); + }); + }); + }); + }); + }else{ + yield BeugungsmusterPlotEmpty(); + } + } + Stream _eitherLoadedOrErrorState( + Either failureOrFilename, + ) async* { + yield failureOrFilename.fold( + (failure) => BeugungsmusterPlotError(error: _mapFailureToMessage(failure)), + (filename) => BeugungsmusterPlotLoaded(filename: filename), + ); + } + String _mapFailureToMessage(Failure failure) { + switch (failure.runtimeType) { + case ServerFailure: + return SERVER_FAILURE_MESSAGE; + case CacheFailure: + return CACHE_FAILURE_MESSAGE; + default: + return 'Unexpected error'; + } + } +} diff --git a/lib/features/plot/presentation/bloc/beugungsmuster_plot_event.dart b/lib/features/plot/presentation/bloc/beugungsmuster_plot_event.dart new file mode 100644 index 0000000..8b5ecf1 --- /dev/null +++ b/lib/features/plot/presentation/bloc/beugungsmuster_plot_event.dart @@ -0,0 +1,16 @@ +part of 'beugungsmuster_plot_bloc.dart'; +@immutable +abstract class BeugungsmusterPlotEvent extends Equatable { + @override + List get props => []; +} + class GetPlotForBeugungsmuster extends BeugungsmusterPlotEvent{ + final String spaltanzahl; + final String spaltabstand; + final String wellenleange; + final String amplitude; + + GetPlotForBeugungsmuster(this.spaltanzahl, this.spaltabstand, this.wellenleange, this.amplitude); + @override + List get props => [spaltanzahl, spaltabstand, wellenleange, amplitude]; + } \ No newline at end of file diff --git a/lib/features/plot/presentation/bloc/beugungsmuster_plot_state.dart b/lib/features/plot/presentation/bloc/beugungsmuster_plot_state.dart new file mode 100644 index 0000000..4d8860d --- /dev/null +++ b/lib/features/plot/presentation/bloc/beugungsmuster_plot_state.dart @@ -0,0 +1,24 @@ +part of 'beugungsmuster_plot_bloc.dart'; + +@immutable +abstract class BeugungsmusterPlotState extends Equatable { + //const BeugungsmusterPlotState(); + @override + List get props => []; +} + +class BeugungsmusterPlotInitial extends BeugungsmusterPlotState {} +class BeugungsmusterPlotEmpty extends BeugungsmusterPlotState {} +class BeugungsmusterPlotLoading extends BeugungsmusterPlotState {} +class BeugungsmusterPlotLoaded extends BeugungsmusterPlotState { + final PlotFileName filename; + BeugungsmusterPlotLoaded({@required this.filename}); + @override + List get props => [filename]; +} +class BeugungsmusterPlotError extends BeugungsmusterPlotState { + final String error; + BeugungsmusterPlotError({@required this.error}); + @override + List get props => [error]; +} diff --git a/lib/features/plot/presentation/pages/beugungsmusterplot_page.dart b/lib/features/plot/presentation/pages/beugungsmusterplot_page.dart new file mode 100644 index 0000000..421f327 --- /dev/null +++ b/lib/features/plot/presentation/pages/beugungsmusterplot_page.dart @@ -0,0 +1,65 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; + +import '../../../../injection_container.dart'; +import '../bloc/beugungsmuster_plot_bloc.dart'; +import '../widgets/widgets.dart'; + +class BeugungsmusterPlotPage extends StatelessWidget { + const BeugungsmusterPlotPage({Key key}) : super(key: key); + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar(title: Text("Beugungsmuster"),), + body: buildbody(context), + ); + } + + BlocProvider buildbody(BuildContext context) { + return BlocProvider( + create: (context) => sl(), + child: Center( + child: Padding( + padding: const EdgeInsets.all(10.0), + child: Column(children: [ + /// TOP HALF - Plot Settings + SizedBox( + height: 10, + ), + PlotSettingControls(), + /// BOTTOM HALF - Bild und Status + // fügt einen Abstand von 10 über den Container, damit das Bild etwas platz hat + SizedBox( + height: 10, + ), + BlocBuilder( + builder: (context, state) { + //? Empty + if (state is BeugungsmusterPlotEmpty){ + return ImageDisplay(filename: "basic.png"); + //? Error + }else if (state is BeugungsmusterPlotError){ + return MessageDisplay(message: state.error); + //? Loading + } else if (state is BeugungsmusterPlotLoading){ + return LoadingDisplay(); + //? Loaded + }else if(state is BeugungsmusterPlotLoaded){ + // übergibt den von der Api zurpck gelieferten Dateinamen und zeigt den zugehörigen Plot an + return ImageDisplay(filename: state.filename.filename.toString()); + //? keine Fall ist eigetreten, der eintreten sollte + }else{ + return MessageDisplay(message: state.toString()); + } + }, + ), + SizedBox( + height: 20, + ), + ]), + ), + ), + ); + } +} \ No newline at end of file diff --git a/lib/features/plot/presentation/widgets/image_display.dart b/lib/features/plot/presentation/widgets/image_display.dart new file mode 100644 index 0000000..ea80fc0 --- /dev/null +++ b/lib/features/plot/presentation/widgets/image_display.dart @@ -0,0 +1,22 @@ +import 'package:flutter/material.dart'; + +class ImageDisplay extends StatelessWidget { + final server_url = "http://srv2.thebotdev.de"; + final String filename; + const ImageDisplay({ + Key key, + @required this.filename + }) : super(key: key); + + @override + Widget build(BuildContext context) { + return Container( + child: Expanded(child: Column( + children: [ + Image.network("$server_url/outputs/plot$filename"), + //Text(filename), + ], + )), + ); + } +} \ No newline at end of file diff --git a/lib/features/plot/presentation/widgets/loading_display.dart b/lib/features/plot/presentation/widgets/loading_display.dart new file mode 100644 index 0000000..ad8566e --- /dev/null +++ b/lib/features/plot/presentation/widgets/loading_display.dart @@ -0,0 +1,22 @@ +import 'package:flutter/material.dart'; + +class LoadingDisplay extends StatelessWidget { + const LoadingDisplay({ + Key key, + }) : super(key: key); + + @override + Widget build(BuildContext context) { + return Center( + child: Container( + height: MediaQuery.of(context).size.height/2.5, + child: Center(child: Column( + children: [ + CircularProgressIndicator(strokeWidth: 2,), + Text("Plot wird erzeugt und geladen", style: Theme.of(context).primaryTextTheme.bodyText1,) + ], + )), + ), + ); + } +} \ No newline at end of file diff --git a/lib/features/plot/presentation/widgets/message_display.dart b/lib/features/plot/presentation/widgets/message_display.dart new file mode 100644 index 0000000..e69f2e5 --- /dev/null +++ b/lib/features/plot/presentation/widgets/message_display.dart @@ -0,0 +1,17 @@ +import 'package:flutter/material.dart'; + +class MessageDisplay extends StatelessWidget { + final String message; + const MessageDisplay({ + Key key, + @required this.message + }) : super(key: key); + + @override + Widget build(BuildContext context) { + return Container( + height: MediaQuery.of(context).size.height/2.5, + child: Center(child: SingleChildScrollView(child: Text(message, style: Theme.of(context).primaryTextTheme.headline5, textAlign: TextAlign.center,))), + ); + } +} \ No newline at end of file diff --git a/lib/features/plot/presentation/widgets/plot_controls.dart b/lib/features/plot/presentation/widgets/plot_controls.dart new file mode 100644 index 0000000..5ceff32 --- /dev/null +++ b/lib/features/plot/presentation/widgets/plot_controls.dart @@ -0,0 +1,156 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; + +import '../bloc/beugungsmuster_plot_bloc.dart'; + +class PlotSettingControls extends StatefulWidget { + const PlotSettingControls({ + Key key, + }) : super(key: key); + + @override + _PlotSettingControlsState createState() => _PlotSettingControlsState(); +} + +class _PlotSettingControlsState extends State { + String inputSpaltanzahl = "2"; + String inputSpaltabstand = "1.0"; + String inputWellenlaenge = "2.0"; + String inputAmplitude = "1.0"; + + @override + Widget build(BuildContext context) { + return Column(children: [ + Row( + children: [ + Expanded( + child: Text( + "Splatanzahl:", + style: Theme.of(context).primaryTextTheme.bodyText1, + ), + ), + Expanded( + child: TextField( + onChanged: (value) { + inputSpaltanzahl = value; + }, + style: TextStyle( + color: Theme.of(context).primaryTextTheme.bodyText1.color), + decoration: InputDecoration( + hintText: "2", + hintStyle: Theme.of(context).primaryTextTheme.bodyText1, + ), + keyboardType: TextInputType.number, + ), + ) + ], + ), + SizedBox( + height: 10, + ), + Row( + children: [ + Expanded( + child: Text( + "Spaltabstand:", + style: Theme.of(context).primaryTextTheme.bodyText1, + ), + ), + Expanded( + child: TextField( + onChanged: (value) { + inputSpaltabstand = value; + }, + style: TextStyle( + color: Theme.of(context).primaryTextTheme.bodyText1.color), + decoration: InputDecoration( + hintText: "1.0", + hintStyle: Theme.of(context).primaryTextTheme.bodyText1, + ), + keyboardType: TextInputType.number, + ), + ) + ], + ), + SizedBox( + height: 10, + ), + Row( + children: [ + Expanded( + child: Text( + "Wellenlänge:", + style: Theme.of(context).primaryTextTheme.bodyText1, + ), + ), + Expanded( + child: TextField( + onChanged: (value) { + inputWellenlaenge = value; + }, + style: TextStyle( + color: Theme.of(context).primaryTextTheme.bodyText1.color), + decoration: InputDecoration( + hintText: "2.0", + hintStyle: Theme.of(context).primaryTextTheme.bodyText1, + ), + keyboardType: TextInputType.number, + ), + ) + ], + ), + SizedBox( + height: 10, + ), + Row( + children: [ + Expanded( + child: Text( + "Amplitude:", + style: Theme.of(context).primaryTextTheme.bodyText1, + ), + ), + Expanded( + child: TextField( + onChanged: (value) { + inputAmplitude = value; + }, + style: TextStyle( + color: Theme.of(context).primaryTextTheme.bodyText1.color), + decoration: InputDecoration( + hintText: "1.0", + hintStyle: Theme.of(context).primaryTextTheme.bodyText1, + ), + keyboardType: TextInputType.number, + ), + ) + ], + ), + SizedBox( + height: 10, + ), + Row( + children: [ + Expanded( + child: RaisedButton( + child: Text( + "Erzeuge Plot", + style: Theme.of(context).primaryTextTheme.button, + ), + color: Theme.of(context).accentColor, + onPressed: () { + createPlot(); + }, + ), + ), + ], + ), + ]); + } + + void createPlot() { + BlocProvider.of(context).add( + GetPlotForBeugungsmuster(inputSpaltanzahl, inputSpaltabstand, + inputWellenlaenge, inputAmplitude)); + } +} diff --git a/lib/features/plot/presentation/widgets/widgets.dart b/lib/features/plot/presentation/widgets/widgets.dart new file mode 100644 index 0000000..c705346 --- /dev/null +++ b/lib/features/plot/presentation/widgets/widgets.dart @@ -0,0 +1,4 @@ +export 'loading_display.dart'; +export 'image_display.dart'; +export 'message_display.dart'; +export 'plot_controls.dart'; \ No newline at end of file diff --git a/lib/injection_container.dart b/lib/injection_container.dart new file mode 100644 index 0000000..ce93926 --- /dev/null +++ b/lib/injection_container.dart @@ -0,0 +1,170 @@ +import 'package:data_connection_checker/data_connection_checker.dart'; +import 'package:get_it/get_it.dart'; +import 'package:http/http.dart' as http; +import 'package:package_info/package_info.dart'; +import 'package:physik_lp_app_rewrite/core/util/shared_prefrences/shared_prefs_slider.dart'; +import 'package:physik_lp_app_rewrite/features/notes/presentation/pages/markdown_editor/advanced_editor.dart'; +import 'package:physik_lp_app_rewrite/features/notes/presentation/pages/note_viewer.dart'; +import 'package:physik_lp_app_rewrite/features/notes/presentation/pages/notes_list_page.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +import 'core/platform/appinfo.dart'; +import 'core/platform/networkinfo.dart'; +import 'core/ui/pages/settings/settings_page.dart'; +import 'core/util/input_converter.dart'; +import 'core/util/shared_prefrences/shared_prefs_auth.dart'; +import 'core/util/shared_prefrences/shared_prefs_rendering_engine.dart'; +import 'core/util/shared_prefrences/shared_prefs_theme.dart'; +import 'features/content/data/datasources/content_api.dart'; +import 'features/content/data/repositories/content_repository_impl.dart'; +import 'features/content/domain/repositories/content_repository.dart'; +import 'features/content/domain/usecases/get_all_articels.dart'; +import 'features/content/domain/usecases/get_all_topics.dart'; +import 'features/content/domain/usecases/get_articel.dart'; +import 'features/content/presentation/bloc/content_bloc.dart'; +import 'features/login/data/datasources/user_api.dart'; +import 'features/login/data/repositories/login_repository_impl.dart'; +import 'features/login/domain/repositories/login_repository.dart'; +import 'features/login/domain/usecases/create_user.dart'; +import 'features/login/domain/usecases/delete_user.dart'; +import 'features/login/domain/usecases/login.dart'; +import 'features/login/presentation/bloc/login_bloc.dart'; +import 'features/notes/data/datasources/note_api.dart'; +import 'features/notes/data/repositories/note_repository_impl.dart'; +import 'features/notes/domain/repositories/note_repository.dart'; +import 'features/notes/domain/usecases/add_note.dart'; +import 'features/notes/domain/usecases/change_note.dart'; +import 'features/notes/domain/usecases/delete_note.dart'; +import 'features/notes/domain/usecases/get_all_notes.dart'; +import 'features/notes/domain/usecases/get_note.dart'; +import 'features/notes/presentation/bloc/notes_bloc.dart'; +import 'features/plot/data/datasources/Plot_api.dart'; +import 'features/plot/data/repositories/plot_repository_impl.dart'; +import 'features/plot/domain/repositories/plot_repository.dart'; +import 'features/plot/domain/usecases/get_beugungsmuster_plot.dart'; +import 'features/plot/presentation/bloc/beugungsmuster_plot_bloc.dart'; + +final sl = GetIt.instance; + +Future init() async { + //! Features + initFeatures(); + //! Core + initCore(); + //! External services + // http client + sl.registerLazySingleton(() => http.Client()); + sl.registerLazySingleton(() => DataConnectionChecker()); + // packageInfo + final _packageinfo = await PackageInfo.fromPlatform(); + sl.registerLazySingleton(() => _packageinfo); + // Shared Preferences + final sharedPreferences = await SharedPreferences.getInstance(); + sl.registerLazySingleton(() => sharedPreferences); +} + +void initCore() { + sl.registerLazySingleton(() => InputConverter()); + sl.registerLazySingleton(() => NetworkInfoImpl(sl())); + sl.registerLazySingleton(() => AppInfoImpl(sl())); +} + +//! FEATURES INITS +void initFeatures() { + //! Content + initContent(); + //! Plot + initFeaturePlot(); + //! Settings Page + initFeatureSettingsPage(); + //! Login + initLogin(); + //! Notizen + initNotes(); + //! Slider + initSlider(); +} + +void initContent() { + // Bloc + sl.registerFactory(() => + ContentBloc(getAllArticels: sl(), getAllTopics: sl(), getArticel: sl())); + // Repository + sl.registerLazySingleton( + () => ContentRepositoryImpl(remoteDataSource: sl(), networkInfo: sl())); + // Use Cases + sl.registerLazySingleton(() => GetAllTopics(sl())); + sl.registerLazySingleton(() => GetAllArticels(repository: sl())); + sl.registerLazySingleton(() => GetArticel(repository: sl())); + // Data sources + sl.registerLazySingleton(() => ContentApiImpl(client: sl())); +} + +void initFeatureSettingsPage() { + sl.registerLazySingleton(() => SettingsPage( + appInfo: sl(), + )); + sl.registerLazySingleton(() => SharedPrefsTheme(prefs: sl())); + sl.registerLazySingleton(() => SharedPrefsRenderingEngine(prefs: sl())); +} + +void initFeaturePlot() { + // Bloc + sl.registerFactory( + () => BeugungsmusterPlotBloc( + plot: sl(), + inputConverter: sl(), + ), + ); + // Use cases + sl.registerLazySingleton(() => GetBeugungsmusterPlot(sl())); + //Repository + sl.registerLazySingleton( + () => PlotRepositoryImpl(remoteDataSource: sl(), networkInfo: sl())); + // Data sources + sl.registerLazySingleton(() => PlotApiImpl(client: sl())); +} + +Future initLogin() { + // Bloc + sl.registerFactory( + () => LoginBloc(login: sl(), createUser: sl(), deleteUser: sl())); + // Repository + sl.registerLazySingleton( + () => LoginRepositoryImpl(remoteDataSource: sl(), networkInfo: sl())); + // Use Cases + sl.registerLazySingleton(() => Login(repository: sl())); + sl.registerLazySingleton(() => CreateUser(repository: sl())); + sl.registerLazySingleton(() => DeleteUser(repository: sl())); + // Data sources + sl.registerLazySingleton(() => UserApiImpl(client: sl())); + //Shared Prefs + sl.registerLazySingleton(() => SharedPrefsAuth(prefs: sl())); +} + +Future initNotes() { + // Bloc + sl.registerFactory(() => NotesBloc( + addNote: sl(), + changeNote: sl(), + deleteNote: sl(), + getAllNotes: sl(), + getNote: sl())); + // Repository + sl.registerLazySingleton( + () => NoteRepositoryImpl(remoteDataSource: sl(), networkInfo: sl())); + // Use Cases + sl.registerLazySingleton(() => AddNote(repository: sl())); + sl.registerLazySingleton(() => ChangeNote(repository: sl())); + sl.registerLazySingleton(() => DeleteNote(repository: sl())); + sl.registerLazySingleton(() => GetAllNotes(repository: sl())); + sl.registerLazySingleton(() => GetNote(repository: sl())); + // Data sources + sl.registerLazySingleton(() => NoteApiImpl(client: sl())); + // Pages + sl.registerLazySingleton(() => AdvancedMarkDownEditor()); +} + +void initSlider() { + sl.registerLazySingleton(() => SharedPrefsSlider(prefs: sl())); +} diff --git a/lib/main.dart b/lib/main.dart new file mode 100644 index 0000000..d3792f7 --- /dev/null +++ b/lib/main.dart @@ -0,0 +1,54 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; +import 'package:physik_lp_app_rewrite/core/util/shared_prefrences/shared_prefs_slider.dart'; +import 'package:physik_lp_app_rewrite/features/intro_slider/presentation/slider_page.dart'; +import 'package:physik_lp_app_rewrite/features/notes/presentation/pages/markdown_editor/advanced_editor.dart'; +import 'package:wakelock/wakelock.dart'; + +import 'core/ui/theme/bloc/theme_bloc.dart'; +import 'features/content/presentation/pages/topics_page.dart'; +import 'injection_container.dart' as ic; +import 'injection_container.dart'; + +void main() async { + WidgetsFlutterBinding.ensureInitialized(); + await ic.init(); + Wakelock.enable(); + runApp(MyApp()); +} + +class MyApp extends StatelessWidget { + @override + Widget build(BuildContext context) { + return BlocProvider( + create: (context) => ThemeBloc(), + child: BlocBuilder( + builder: (context, state) { + return MaterialApp( + title: 'Physik LK', theme: state.themeData, home: HomePage()); + }, + ), + ); + } +} + +class HomePage extends StatefulWidget { + HomePage({Key key}) : super(key: key); + + @override + _HomePageState createState() => _HomePageState(); +} + +class _HomePageState extends State { + @override + Widget build(BuildContext context) { + /// wenn der Nutzer das erste mal die App startet bekommt er eine kleine + /// Einweisung in die App + if (sl().introGot) { + return TopicsPage(); + } else { + return SlidersPage(); + } + //return AdvancedMarkDownEditor(); + } +} diff --git a/pubspec.lock b/pubspec.lock new file mode 100644 index 0000000..22b33c8 --- /dev/null +++ b/pubspec.lock @@ -0,0 +1,390 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + args: + dependency: transitive + description: + name: args + url: "https://pub.dartlang.org" + source: hosted + version: "1.6.0" + async: + dependency: transitive + description: + name: async + url: "https://pub.dartlang.org" + source: hosted + version: "2.4.2" + bloc: + dependency: "direct main" + description: + name: bloc + url: "https://pub.dartlang.org" + source: hosted + version: "4.0.0" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.0" + characters: + dependency: transitive + description: + name: characters + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0-nullsafety" + charcode: + dependency: transitive + description: + name: charcode + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.3" + clock: + dependency: transitive + description: + name: clock + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.1" + collection: + dependency: transitive + description: + name: collection + url: "https://pub.dartlang.org" + source: hosted + version: "1.15.0-nullsafety" + cupertino_icons: + dependency: "direct main" + description: + name: cupertino_icons + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.3" + dartz: + dependency: "direct main" + description: + name: dartz + url: "https://pub.dartlang.org" + source: hosted + version: "0.9.1" + data_connection_checker: + dependency: "direct main" + description: + name: data_connection_checker + url: "https://pub.dartlang.org" + source: hosted + version: "0.3.4" + equatable: + dependency: "direct main" + description: + name: equatable + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0" + fake_async: + dependency: transitive + description: + name: fake_async + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" + flushbar: + dependency: "direct main" + description: + name: flushbar + url: "https://pub.dartlang.org" + source: hosted + version: "1.10.4" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_bloc: + dependency: "direct main" + description: + name: flutter_bloc + url: "https://pub.dartlang.org" + source: hosted + version: "4.0.0" + flutter_test: + dependency: "direct dev" + description: flutter + source: sdk + version: "0.0.0" + flutter_tex: + dependency: "direct main" + description: + name: flutter_tex + url: "https://pub.dartlang.org" + source: hosted + version: "3.6.7+8" + flutter_web_plugins: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + get_it: + dependency: "direct main" + description: + name: get_it + url: "https://pub.dartlang.org" + source: hosted + version: "4.0.2" + http: + dependency: "direct main" + description: + name: http + url: "https://pub.dartlang.org" + source: hosted + version: "0.12.1" + http_parser: + dependency: transitive + description: + name: http_parser + url: "https://pub.dartlang.org" + source: hosted + version: "3.1.4" + intro_slider: + dependency: "direct main" + description: + name: intro_slider + url: "https://pub.dartlang.org" + source: hosted + version: "2.3.1" + markdown: + dependency: transitive + description: + name: markdown + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.5" + matcher: + dependency: transitive + description: + name: matcher + url: "https://pub.dartlang.org" + source: hosted + version: "0.12.8" + meta: + dependency: "direct main" + description: + name: meta + url: "https://pub.dartlang.org" + source: hosted + version: "1.3.0-nullsafety" + mime: + dependency: transitive + description: + name: mime + url: "https://pub.dartlang.org" + source: hosted + version: "0.9.6+3" + mockito: + dependency: "direct main" + description: + name: mockito + url: "https://pub.dartlang.org" + source: hosted + version: "4.1.1" + nested: + dependency: transitive + description: + name: nested + url: "https://pub.dartlang.org" + source: hosted + version: "0.0.4" + package_info: + dependency: "direct main" + description: + name: package_info + url: "https://pub.dartlang.org" + source: hosted + version: "0.4.1" + path: + dependency: transitive + description: + name: path + url: "https://pub.dartlang.org" + source: hosted + version: "1.7.0" + pedantic: + dependency: transitive + description: + name: pedantic + url: "https://pub.dartlang.org" + source: hosted + version: "1.9.0" + platform_detect: + dependency: transitive + description: + name: platform_detect + url: "https://pub.dartlang.org" + source: hosted + version: "1.4.0" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.2" + provider: + dependency: transitive + description: + name: provider + url: "https://pub.dartlang.org" + source: hosted + version: "4.1.3" + pub_semver: + dependency: transitive + description: + name: pub_semver + url: "https://pub.dartlang.org" + source: hosted + version: "1.4.4" + shared_preferences: + dependency: "direct main" + description: + name: shared_preferences + url: "https://pub.dartlang.org" + source: hosted + version: "0.5.7+3" + shared_preferences_macos: + dependency: transitive + description: + name: shared_preferences_macos + url: "https://pub.dartlang.org" + source: hosted + version: "0.0.1+10" + shared_preferences_platform_interface: + dependency: transitive + description: + name: shared_preferences_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.4" + shared_preferences_web: + dependency: transitive + description: + name: shared_preferences_web + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.2+7" + 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.7.0" + stack_trace: + dependency: transitive + description: + name: stack_trace + url: "https://pub.dartlang.org" + source: hosted + version: "1.9.5" + stream_channel: + dependency: transitive + description: + name: stream_channel + url: "https://pub.dartlang.org" + source: hosted + version: "2.0.0" + string_scanner: + dependency: transitive + description: + name: string_scanner + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.5" + term_glyph: + dependency: transitive + description: + name: term_glyph + url: "https://pub.dartlang.org" + source: hosted + version: "1.1.0" + test_api: + dependency: transitive + description: + name: test_api + url: "https://pub.dartlang.org" + source: hosted + version: "0.2.17" + typed_data: + dependency: transitive + description: + name: typed_data + url: "https://pub.dartlang.org" + source: hosted + version: "1.3.0-nullsafety" + url_launcher: + dependency: "direct main" + description: + name: url_launcher + url: "https://pub.dartlang.org" + source: hosted + version: "5.4.11" + url_launcher_macos: + dependency: transitive + description: + name: url_launcher_macos + url: "https://pub.dartlang.org" + source: hosted + version: "0.0.1+7" + url_launcher_platform_interface: + dependency: transitive + description: + name: url_launcher_platform_interface + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.7" + url_launcher_web: + dependency: transitive + description: + name: url_launcher_web + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.2" + vector_math: + dependency: transitive + description: + name: vector_math + url: "https://pub.dartlang.org" + source: hosted + version: "2.1.0-nullsafety" + wakelock: + dependency: "direct main" + description: + name: wakelock + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.4+2" + webview_flutter: + dependency: transitive + description: + name: webview_flutter + url: "https://pub.dartlang.org" + source: hosted + version: "0.3.22+1" + webview_flutter_plus: + dependency: transitive + description: + name: webview_flutter_plus + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.1+9" +sdks: + dart: ">=2.9.0-18.0 <2.9.0" + flutter: ">=1.16.0 <2.0.0" diff --git a/pubspec.yaml b/pubspec.yaml new file mode 100644 index 0000000..f5d2636 --- /dev/null +++ b/pubspec.yaml @@ -0,0 +1,104 @@ +name: physik_lp_app_rewrite +description: A new Flutter project. + +# The following line prevents the package from being accidentally published to +# pub.dev using `pub publish`. This is preferred for private packages. +publish_to: 'none' # Remove this line if you wish to publish to pub.dev + +# The following defines the version and build number for your application. +# A version number is three numbers separated by dots, like 1.2.43 +# followed by an optional build number separated by a +. +# Both the version and the builder number may be overridden in flutter +# build by specifying --build-name and --build-number, respectively. +# In Android, build-name is used as versionName while build-number used as versionCode. +# Read more about Android versioning at https://developer.android.com/studio/publish/versioning +# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. +# Read more about iOS versioning at +# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html +version: 1.1.1+4 + +environment: + sdk: ">=2.7.0 <3.0.0" + +dependencies: + flutter: + sdk: flutter + # Value equality + equatable: ^1.2.0 + meta: ^1.1.8 + # functional programming + dartz: ^0.9.1 + mockito: ^4.1.1 + # networking + data_connection_checker: ^0.3.4 + http: ^0.12.1 + url_launcher: ^5.4.11 + # dependency injection + get_it: ^4.0.2 + # local storage + shared_preferences: ^0.5.7+3 + #bloc + bloc: ^4.0.0 + flutter_bloc: ^4.0.0 + # Systeminformationen + package_info: ^0.4.1 + # um den Bildschirm aktiv zu halten, damit beim lesen eines Artikels + # der Bildschirm nicht aus geht + wakelock: ^0.1.4+2 + # Math Equations Rendering + flutter_tex: ^3.6.7+8 + # Succes / Error Flushbars + flushbar: ^1.10.4 + # App Intro Slider + intro_slider: ^2.3.1 + + + # The following adds the Cupertino Icons font to your application. + # Use with the CupertinoIcons class for iOS style icons. + cupertino_icons: ^0.1.3 + +dev_dependencies: + flutter_test: + sdk: flutter + +# For information on the generic Dart part of this file, see the +# following page: https://dart.dev/tools/pub/pubspec + +# The following section is specific to Flutter. +flutter: + + # The following line ensures that the Material Icons font is + # included with your application, so that you can use the icons in + # the material Icons class. + uses-material-design: true + + assets: + - assets/articel.png + - assets/notizen.png + - assets/articels.png + + # An image asset can refer to one or more resolution-specific "variants", see + # https://flutter.dev/assets-and-images/#resolution-aware. + + # For details regarding adding assets from package dependencies, see + # https://flutter.dev/assets-and-images/#from-packages + + # To add custom fonts to your application, add a fonts section here, + # in this "flutter" section. Each entry in this list should have a + # "family" key with the font family name, and a "fonts" key with a + # list giving the asset and other descriptors for the font. For + # example: + # fonts: + # - family: Schyler + # fonts: + # - asset: fonts/Schyler-Regular.ttf + # - asset: fonts/Schyler-Italic.ttf + # style: italic + # - family: Trajan Pro + # fonts: + # - asset: fonts/TrajanPro.ttf + # - asset: fonts/TrajanPro_Bold.ttf + # weight: 700 + # + # For details regarding fonts from package dependencies, + # see https://flutter.dev/custom-fonts/#from-packages

128bVtEkhVQczqEW}jX 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±+}$2QDa*3}+`lf=U&4>J`9fj{X8 z5|b@eT*wH%;qGbf^TOw8(?#ITx?mb|U5W3<2Bu0DVr&TVD<^Vr!HicB_`a>XKxu2rn z`a6VfEX8DAeRWm;(xT^hC~dNxpua}LI$}!MbExQ}H==bRfTS#~3Ve?#71D?WK`KvX z18>jcE>2NFsoD3pF_T@j451r_%O6!cW-mCgE)6XVM+P}%=hyt2n!`HW`%Rn&3re$Y z)9ng-qNXl+0mYsmCmdNXlW+hMP*zu;Jn1H+8DseX0*mG>}f4CyEc8k>l)3K$Fn%%2J@vz&S z3ar8i0(ig@L@mC#k>+lYuAEmcJuKXhj|MI_!vf})X?rylD7f?7Bnp1b+9~jQ3Ee6V zV4LNq{6ri0&vEtpQ33WVCnV-Tik{dpSbFcH)J*k}HWcaxD}|TZ*M0W|yp4EQ7rLE$ z7t@8Ez;FWIPpJ~ku*7{OsIKWx{GC`2!$+kyKKJ|ldD24cza;iXf4lbV8c2_9oa6-k z7u1c30bVL6f1c*607ETwe>C+TfyG6?VUi+Pd0OS%XpSU%N<(R*Wgbd~R;TzM20O8} zVfy@fu1`%yjB7K;BI+B^p+U8xDM%EEQow`fann~)I)>v;x=}AiNnqWm)`!)--`sY7 z)D2W3kGm7yp_>Qq7gkThb;GL7=yUPhzjO~1>9M{01)~f;qeQ#=X_!<|F1NCID{6Ihyl$#Z4g~9nF9~^hoL8OsVnvv?u_v!wScr<2~k9(|SQhENvHS}HuZVvP_ zG!^zAif@5Ba@(9IoxoSL4eYM)P+2JbNb7Ctr87@X&lVSy*Z>VoNfgr94>Yg?()3!# zfRPh(bsxoPi*=Jc;Z-ZWe>?If^7OQO-EaP%NNz6#+ie@9tg~{^%ebl_JSV) z-@IjuV0J88S4BL&Nk%WPq>!EU`l`;AO*KhN*8sW@K|iCs1L&d)4HU%NY3`%a;+cd< zZ!Y>r^-k-35U4;K8RQ8C7Qbq2Rk;}*x z2xf!ML;%#8m{EwZRaa6v6v(n&{B9tGAAtn9ncV)vl(8CefX2Yo>8V?K(VlvFMTP7E z0PEak4+x=u5N!``++~+oVwjr`!I5k;*ovOoxzS8#c7nwe@}PS5)$ZBa%>SJVnt^JV z7lgyRs~75J>TC~|%diLB7(O-{;raRTcY{bAZ(_v5x(z}`(iKJ0-D0imQJlc z>x;*mEEgYpd)Y_{O3ZddVBl5N59X$qzi8qpMIb%*F*G3}zw-w@f_wJxMc%$3y^$KC z1mZTC=K}9{16y48l^qi`G(mlm{ZY?(xBEz2droGv+1jA%Q;{S=M0sxGGsd)xIUoK<8cM3t=p`ki*r0h{-YZ zZF87VRBGSzvBetOE~hW_^!)1Y0!Lwwi&DMTfjDCh=HNh)bNv4$s=Zyiar1_jBhGJ7 z$;OJsK~YGee*GXOb* zMzpO^zJE_u*?E8*ap=+3MltpPbVOui_-X{Am%9X9UhRblHYl@eE@yEd9HI>>FZBoW zE52v6gy4pPhK%J=dPP#)KX5sT6K{ABYC3j`4jLky{ zuCG2(kNz=w&mKr+UU2sU7Q=Mxd4Wy zF0;oY`~HqJd8!&3((tb*5CcuDxbFs^*tGc@rWe=OQJUZjx~R7e71@qVe_Bz0WCc5c z^6vBjpJz~@F~}(4{p{>ZDyEYq)UQE2$45oP`hqMTzc`Rv_|zm1PLfiuzB*spQB3R?rQyB+V{5S@FAfAGdC^AyH)d!Ncv}j~4C%8Di@-P6xz7OahaP58T z4_UydM3N++8EK(zB`zpF+Xf7Y_sYc#Cv|@ueHrrHPn(y@8#(`1AeK$)xVg1a0!aA= zx5~~V-;GbQsod;lN`Q)^gkZYIhMt3~)lm1Z!`Wy5gmbQIIMR%+?y)S!IcJFJC{2jxfj-T2>>5ON;#vNH(}k_LrSi+jbea zM&s6~D86YjAGP>%DY0c%Q8oZj-FQOwFpPIwSX%xlp0a3M00ZVg7?&thVXz;Hn& z`|rIwS544_L$y7as)7*<-hWM}to+;>XNz5%L+PcD0@O774+x6)bpiSMSLJy< z;a0^_%3d%Bm1oOIGk=%YnyvvGD%jd6%Fb$o_-%apbm;0e1mg!&&Nk6!-7y`btgmzI zWEpPPmWf5;-(CmG1(I+q`TbeoL=-?~k^(RY1md)oKo+Tahx?sU(E%`h_@&;vI|o8? zl(MH#8I=dw&-z@MU-q3v_sK`tPCJB-L}3CQ8X6kvgTyW!|2`mMxJx1FhWJx3j?6Tv2p+ddQN|( zH}OUe)iHc~K8HETF@3BjD~^lqI+6c?!i~~v^}0B>eElq(Xo>vWX)GR7Qp!S2k&eK( zwF7?@sjRmR-WMSl|Gn>s7RPz--kN()J}f=x0WwKz@EQoT8o+$zw9ubBpzJ~v8y{n9 zq~;jsne1Y|R{E*#p9FheKdN_lSX;1OKE^-&J08t?wWg|<_qdFS=xy~tkzrLN(p1sX z)YetyPa|*Mgf7fQj6A?d8$e^Ia$pRVA0wg{t)>hO5nghA7%8e}x^@N^1i4>Xm#gJe zciC_xEcxRd(62tJcBc5z4t4^(zkBkx^I&2Tpum{aspl4XsI;Vpb>C?;m<`on*18q1 z0kBZ%@70;j5vpl#4(&cvb`fpJ8v?LR=h%dQBuYt+Ob7xY0c24VXJE-Jc{>e@Gka=>WCJK9Us-oPnFpIC}tOiiQYKrfS{UX5Io)nirAgu>2j7F|NSZGnPMs z&vBnGvS4K-3QaypoqcYhE~_vU`RRWy@E>N@*-k%dcc>HrLrezTo_e6o)6+42R8WAI zT2ivIfdORzO6-J3_S#vPz_XEjvKxCd#!%IIDyNGxMA-w(k>ewagOp54bTUXwpB~2uXff0kAquniR1hdx3ZMk;L3s4n(8>s&Klh@3rYkN9#-bZ zY}8H{LuJs>klM05bHb7o?YK-XQoT|h@8!b%znJn5gXV0Vq3Kj5TB!7=TpT5^ymVh1 zo=`G}37jB6H&XxL=LHIHGMYM|#HUeo+#}*XZ_EV5!?8h`Su6Qg*xrs=q?wI^eaq~O zRio73cK3fL$k`vBO3Z3Kt8ch_>kC!8?b>DjC9c`PnK8)mgS?)?lZRqY!SX8)52LU$ zpwjv&*c|p6S9`?_6vT?q51pmxV<)QVmGQ($)M#1U#lNlXpVT8tJd7kRSfuJG(BO7I zb=GV@R_NnsRUZyw-Sx#+cL9l5Ktih-RxKfPs1S6UG{+wM%FkHhCwrj#sB13hBgY@^ z_$A}cn&=N4-2FmzaaB39C@_rfU-AbqCFj+aZq7B#4$&I<1EjbVeUQOuykGvJLOYsp z-jaja#Bbzdm+CyaSOd$XRNY0-eTi~X^g*XO_Z+2>f13+6V14mKj0Z1l~a|s|eD8Vb)NUgal zFTV}~HxSvu#X)>#?UkK?YEe&(gfG75x$+T#`>CtX(N=_|rTH(0g?f?W%WF~~%{>WI<=(^B!+~zy1oS2F{qo0aH1Py&pfB!$3p15Omt`Je z@~-3?VW975 zfY#`%d5cM1xtMG%z?sL zWGC(K6zBiG^5MF~ub;z%8%7ziv+i|x^za(3r#~eRg8IZ^T0s&A`2egaf6_dh`|W1X zwjZylm_^E~m)?jYRhik)-_6z&AKf)$eH8Y^(>#CaH=b?5y}!h*h2qmhSvj-L(R^LF zmBIY8u<7_$BTo7QKooDxF(M6g?0^`X9oRa^TDzI$vA zt4?Ah8vWY$_U#7WM**&|mIHN1IiM{`=B~Vuf7wxSsoKtNxcZ-KBe+q}t757`SqC?oF zLGrEwyCr-BN~ZjR|B-i&Um^~6&zYbk&jezvUbvZ8#%?+(tUgIr@$Jajvyg+ zLEtWUW==d;1XiV}DgH?k2K7eJOBSqqk<~VU%wr0-jl^YZ*q^_=RvxhC%({&Jz5)=c ze?yaIUcSX>lrATOP??olPXAzd0@Tt--9m#^Of!I%tIn~$Ol1ZGhHh^w*;!zR?t59c z;ym+0zGb^jq?`rR!oBR8{WoO)zfU$czO)1F;*%<2B_CxnDUve%o2in!t^ghaa140Z zkMg@cg#hXOwKu!)xqz{|d!Ed5(Z4urKTQCdbY)esY;wR2A~v=-5Wl^k`0OuVbX-z> zq7`|=jlnkw%HcNX{FztHm@5C@!5Tf6thLKc_JMtUWNAPyei$jo__IUy`FX%mr1}E> zVE1WI!Y*4)?4MhFFf?vr6r2=xp)cpx=8yu)f)sIFpe-69BqS6RN4FaJGifcKUMtn< zLMl4iRZ^@LWXYV01&U(a3_J8G_!GTI6iZwN2y=Z}2>c*;%;fj;VFVt2 zJ}*M&Isg;YzLYO_jVhvB-e!m44Hh?RSl2O)ZvRqgc}|*m#(0Wo-qJ@0&b)pLb|Ru2 z8>dlyFK+<|`d5SR_^)VO|B~Dg5K`6rpZ%`XOJ?4vZ?uCeDjD~ zg_XaxezwplU;MYBcQu~Qe@(Fhy)gX-5}+CX{AO&yDO z)Q#LXLxD;mL$c4;xo)Bs`mZkf;^Rq`%x*wW$cAAu?In@X&=q{#7e967KPjeVYAtTp zh!c71fuo4IZJ^eX-?r`ZTUr$6dJKBa(17S^+SZ;hrFHZtLd)k#<2dC!l19(mVj>Sx zx=QJ4=WOtf|E7c3u06gbbR<$fV)y{9OoBs<6CJnEINY#`aY0Sb?)Enad55mbDI@bF z5Lc}Smn(_-Zj<|xKQotybVvuPlt$!B#ir&`Hvba(?K-2sMYmx_qVg>ITG-2GOzPnD zuw_1^hlgqyZ)$IXG~9JY_68a}*dpXl^2{J5365P}G1h4?*U!X;R`rYi0q;h`N1J?+ zBxnDlzr=jf*w``I{c*;l<~T~$hUCrEvs{^4-1I=PRm4F_05H$zk?S>|8Ke8pY(}bI zkQ6+aoomQW=-q*gV^|1|!9q2@ye5X@jeF?ONF;u`=GRgJ+-nSv7&O^_b&<@{g!l&x zfIJ5bpg924W&1?vms%ejX&sy|YT>^Be5fl}SvTYj&FL(7GFL%PfGA2zOPGt9m(1`$jmQ9yhlCymRzdZK5n;fyGmrvjN<O84*`Il~pwka-nU^tW-3J9yg$-_HH%JQWKSvMmkB*U`z2Rpa}Xewbt2g zNS{XwDi8EE`;!k3#h3Ah!n6v&ss@{=EYD_f~< z*8=_K{qTd?kF43%m+eU7nLylX{a(xm&Sc>#BV3{6G0mwWQsl46fp}lN;+@F#^Ahq1)keofR^%>y1@RLW$Z9Ja#v zxS@ZZK2B)oypF}M&2cNJKz5*#j0b}|JkD})(OK*S&>mY;*QPh~8yF)Lpf_QU(3h{r z`rJystpr|u!(u9ldN65CdllkX!|MFKA?Neb!LNADf32nn39l&j0{`a~B$Pp`Az$ep zC@}|jdxXjX%oGOIsWJqxdI3dEfjC%HNOwL4u9nEyO9Q=|&N4HU&8qBl(c!d#>`?;g zLD;^3e+A8t0TJj0LM3ih`k~Nrnj)l{0LQQxMesmBd>p*QkqUy}2I}?wsX~+YBkzZF zXJL@JA1W z*k9(G9|fgjc~*tl$$?o5i4We|j@8`p%}3#eUjO?#0xrm-b!G~YHU9Mb=C2c8$)Jpc zHlt>0YXrtoX(EFAVcFnQxTVZ~P%#mPCYvOQpT*)TP5hhnM|Ebcru6IY{re-~jW5@M z&ykJp2vGKYt=cWLW@PeMdo+FFIH=cbsWO1W8$7Q7(JwI00cD-%Of zdFED5{M@#MFyw4@nDr4XzUcea?9Iz{v8G~su9qxcSvmF9O_F|7V-nV8RIYWlfoNAU z;@jU=aSn({3gnTJ@B^?%&{MHm)Cl2J-U?s)J{yM9w3lQ|!-80~c)jG$#;B#o~X+7Bf)7!lHmYmqf^Hx zejNP$Io|0-`>a>X4|sxEIY(Q3yN|-byw@1S%7MXc$^bq$%@A2 zE1t(goxAP<5uBfLnd>DipO;yUruRO0`(#Qefrzg7#nuM)QfO@h#n;>yy!4FBT!URp zoJ=UBDsLfxxEDup?|d>2+9mZjJ|`a!k`@$#;as6IBDu-$9yE#MI@il;Nfb3u2O~Ua zmcFg|!f0jpe`ro(^C(a6oql(LUGroz=#6?rb(Mic%*75g%|IEa9gL<~!l=-6<-Rb` zKEFK8cKpv`$WaC+GMLmOEL8D|&Pjqf^j@}O+SkK!5ddMKG^-U4%T4A+}0N#38iU`#7Pj;yU+{z zv^hwU{#Ux6E(XOl{0DPiE-Wk*ssLS;1<$x2KsqE1wPoCn3%FWBP#Rp-%$hi3b!~DV zNRPII^vFz)`%TV^BUs|tqx`0X*;qBAj@x7(fZkIVO>)kqegq9rUHtDC>E-1z&9(&V ze_5guCZhMmF>&Q2T7d0pcDsXG^Ly2{PKD-?YqBxd!3ioa2ZEXzgx~v4(qEHSx~C8} zPUzpg0?3zSpJEBh{X03Klwnm8^SItAtrGjyT- zh0r#QgI~94+yKkrHP!XDwQOU@T4g%!71f)ug3gv=M7l`|gPz0`)BD%7bnz8{pG6E1 zjZV@pO?BI?K66l3>Lx6m>qS&JqoT!7!o#uuj zbSea(60@B9SjVHm;({Ut!`4{1P876T5-ghV)c(3?Vnnyo(2+$is{zn3I zlv1YvRdxapm{TCo8H>0RU@ZbrA+h2@5>QR8#4I<*ac$w#(IRR3o%FnpVexHXLkP55 zCjZ-N83D&cWMUQ#LqEpGrlKD$LePu$KLcsBj>O!3_JU=1rM>s6@24hJy31hgL#x!h z{Y^`ggm|^PV4$`yB-Yu2fzOYWDWPrMf^L(8gSl5W<4G(HT9MSfz=aO)ZdJohzZemk z)6{ukgTkIlHN(zv*edzOuK#WFECV4@e&wAahxgb zf<^)un=u9gx{X;`xXx9r4FF~KNLha`R2gVH0CLGN3U}nYh6c^|fH8qbT5)g3VRzIt z7t-nIxD%jHbCIZG*vTlrLGg|jL5b+k)4&2WY(l2jkPbEox$qtszuz(Ba-uancrio++&d z9{mPuEV#1j-4Iko=or7aGjcr9??zmaQ74_GU})^Nq;1Ovh8H*;69WMqZD_kLv<_(p zc-05BB@P&NR=X)B0i4FkhPY){xY!}0=fiabvtK{QM)&qijsRHwp#M#23)7)`rL`F3 zbwQtCBlWttnr7t*6*c(Ndr&|V_RSB6e=d{LLR1GlPdg9wH}Q@V0I!-67g2t3KtA;k zYrcH>V&a%M*;8oWT8L{f<$??vY>l%1x;2X4BCnyb@>E0*-e%EyAI`&u+3lD}YIjkR ziG_0`E`nzLX{P%Gm!|p#7`HfE(?8DqdBmmyRFINC+jlL0aiS?6`7>|McED4J<&!K%-orF^x16ycOqMn;B=e)K1eNeyl`Q0D6}5-q(T6Xza0!Az5rcSC~n_wk)6H8pDH0J2HlwWv8?p+k0JT=#&U5$f-fe0fSG3&*d<@{k zk&fXvpliPft%hJe3IQ(=si|L=L80PA^r||*b>iXNY#2V^J?#OPU3`3w#lm?IJ)k#g z^v(8czUdhX;^A5jh6CnTWo8h$N5voyE>8R6gDqZ9w;-sN;CVZM23oET$FHQEWmOKB zkETii=C#cR>!opAKMIsRr^h9~aeVIbUNEc*9v?OX)%K22)k$_H5+30@Mw0PYMG_A3wKf z^=kO3{w+|Vv<4RNI1efbecH)02eKzHETVW%E5A@^8G&|f{8&&};T&QS0#2|3Sdl_> zu0MC^(4o}X3iXHbL2pj~B+kux(aFGR8-ER|JK5NV9h8#7V?@f_E?*ux-eJow&ZD2> zrb~9!&_)EMLh;RGZM-0ln+y#lxgJLMB}T)6Y!#8{PLStYF#6;@8 zc)=(X0?!<9i$?azQM+nkhDGaviT^dZB}m}rqZz`aMq4d6f7LO2Db zY`)?N_O$M%6|k}GHi#B6h!MHdsgNS9z7rz{8e1^h1tUa>0@e)~;0$bF@wYX$fq^Ba zzjP8945JD_?IZ)82F@Zy5PH89`sRW8OSz1Zac^*XEmqUoI1^|x#v^Trb7O-jv7}W6 zLt>VrikzI>jo*-X{(XQeyTIRSYHI#b^b5Uz{^)3tQq>hXGl1Vu0LR#lrYacPM2YAP z^)kSwy-?FJGf3sYOo;h6l`9bjIAs?=bLZ&YD=B+MJ>o!2_JD>KPt&MA*qz*T8A_Qn zGz4^~meuq`=xG#^Ea!7KXeNBVbrEuDdeQx;t`+KtE6p z2QMT_a;Qg$q`nz{5;T>h>$jGeTz!L5*Wce z65NGmM1u#4&@&m=#4KUG=*2;$^+)Oi6G` z9DqAuxG~!xlAGca0|SW*a{k+Yv%=X{D%bv8P4tqx6!ggkd~U^2WZRvi9&%F(f6!T^Kb3@A7s%C z^`aF3+6qX;^YrO;diq9-I0E$oqf=?3>ZxGPfFIg4M-BVxTqrtF>|aARnU0B7=4drG zw(giL+EWEXHvqu5d#NgvJ2d%(&3%X}r0CtptXyb=+7(P=-M-pLc^ zWT%rw^x^;t12ca2>1AKW3-2H-VbFZweGg4IAk z%7X%ISkAk5?;dcFT5D0a|5Kh?+uDQsp+WT@r+B2#Sct zo%GEoCBzOLx)!x^DMW5^pn`EW1no*)n)G>*(mZ908ej&{h>V*W#S_C?d(zv>fK0o{ z%Y9;&Rh+Cr!BzV*dTGJz%81@99>%M3A~9+&p>^YdGG2#uX-xpU`EyB0ws+3%KLE_tcK z>rxv1q2bq@O{bJ$1vzmw&=E}Z^nBVi!3&zol`8nTHt@2*ZLyb-ldUn3Hq}+z+~GV? ze!hCi(3b#5q{_kvk&o403Gx+qK&fS09p)MsZDa>@S1=)PG_?yN+#MnmxIoQ83bm}G zyEknD(#DImW2> zt|K3`^5D|jVG&-907{lhKo>M8TU=Rtu8fD1WC$dqaqj9=Mdy{Yk-0=Ru=Df>Z@)(B zm2iLKL|t9ohevC7f(BpwZY?F=USsFy3Af{~T%i{&fSnCpl=Jn$wgXJe%4(0_(n9Gw zmEVJW;KZUxW?y`Exym#>P-*hPD8 zi#Fwn-Cnl|mr_YoKAe}AcVV5>L9_Ps%O+3vKYE$0XZeUs7LvB;J$+*`L4H=9k~+@x z&(~Bg^9Y)H?^kxC#RcXBmusu4S&p zAA>d-v9WPs=5f5|W$>0_D*L+Ed3Ih>NbboXj2;yZpy5W@2}KwE2C!QF?rGh;5hlFU z>CB}@tlfcN!JdN}fxq8;%Q!awq3rCC9m;oyC+vK3%% zwp5DxlYjy(MYklX%ZKf4q7^=2?nn1p6dU*r{C?^=P4u;2Z(553exGNkYR-|~8rgU3 z>QSdz5|1ywL0G!+8DnLnE{_tOTl?*X-<}I((rNe&V^$bA7k!L}3Wldkec;gc+89j4 zZt$7{k{tW}#*uTY8QY%p9&7J;b{LCyO?HB}$*UF-1?@!op1)DUmgKb|m8oZjOH%;3 zA$IGPfceis8!zwdAQ!&^|ElybFm2drpme^;wdA!sS*R|7&H9^$^nwzGtN^rLij9rq z+Iel@YBP1qB5VtqKlwCAD**AS&!F^3Od7P>>n#qV96oX5q-9c8HZKI*wfN#0dg#-{#H%(?_%r{_et z;MlRAHK8~g?wsaAn?WSHm0N9%Yi^as^rr9Gn*nbd)+-SUJ+51PHOd#^<|;kEBr3p& zVMg^Jha)PK{`D52%Y^xQ-t)`tnfA4y5p(+Uh$C&I#8~9E^}WhKyXcSI`;D60cC#?4 zdpBR^jdpcCx-u|fY#+u7l(%p3^Xk`|Ao4aBzjN--fPG6gEJ3nyTMH}$U}Hld8~}$# zhRVI3d;ESLAv5MR?2lxe{9@sMRCKU(m&0v{E5PP7p>sPv0_V0gdB?abHgF!W#m+f8 z2gU8Kgy8;GVkriNp3Nc9t~NFd=8M{tPH(*G(}jAk4s-Ut9c`97&&}LvbV5A8*BR#X z=aL!3`G&4?_vSad=fG-mQ)4dKkf9ZIDMf5H>9JtKL^n%+t3Bsm_~i#R3bm5XW(vif zsek>pUY>T|u`0KPwybMP|&8@JddW#iZ~6o#9Jc?2AV}Axu8At<2U+Na=N6 zZ@o>A(Pt6Wej5{LmA6mEYyIYIiI%z*&I7IIYxd?lBuS8Y^bA}?A^tZuq&bmp&! z@`Jzl1A`1;9^VB%-S%hiIIpT)$8miGH@}?-rQ2cMDUgNtyC)f>+Gl56 zw1?_`P8)tJEb11aRH}y_KLJ+auHon(guHd4QP7OuQQp;>0K6Ro7Y_`J$uZ#-BDkmJ zvutnYU=w^oF<4_dv%*+d8aylFkFcDvk23I{jy;GRtWw0ZH(V~bAQk0Voi3P|*QJ-o z>tuB1_&=GjNPOc&XVu5w>!tH7S;-rL%$+@ee{Lm0oO;xBtq?;hGxux88uzgx53WR%hZ0|aY=E_e=Ko^GOYx)Mh5*WHq{fY}HK3#v9D2T5LMARgWut~@0y z1&QlzY$fUV2pOoxX4IsjKSuy+Yhh3nlxdIL$z0NzAiU_%tbQ$ckn11Z*2_;f%GPV} z3^)ljkK8BKHTc8?)O^!sefoh6uqq;EF_r&72OzC?i6z4Cq%J&8?o-RD6Hs!JCk39Nfv>~Z) z_1FMi;KGhJZq?_bAd;u1L-*vI*!RI){PwM3UUQYhz1!NH1xoVYv*I6Jt!N^_qk8!3 z`eF93lZ;kMN{8VcBx6-C^Y!X7;^50yYbD3;ozRX$@r?myOWQ(Ykh-f9k9{q7w1saV z^g2gyXtRFjFrL?v+8M4o8T6IRaKsWBH(9;;s&^vz@)qGl6H9l<$SHU}us3IE=|&UJ zJI;S#;GffKQ)Uwe`;A;Q(lkZaC>Yu(w%B_ur9UopNblN&dQp36 zOnH@+eDI}z@Dq=Z0w9(iu(3{0CUbSi`^sDuY&^}YzW4x(1~zYpiB6VAo|h8`BeXF& zB7ucn_1;^b4m{3;q7FOFKt>T*Y!by0A_F|Jm8fmHA($h$ z=&=p=nXuXOscev6-H^nI<`rG1>s?`;Wsxqxk;G;>?dum!JJ0D z*U^DmaxkA;Ls}K>dhrT;FmcowB30R)V)OPP7(_~oQd|6NI*(l6i@q0xA}SeeahlhO zJ~sGicqqb8*Ux66lNC^Ax4z~C0$+t$sUWkA)FPoT3F!Te0yfDhDS2njuiF}6ts4Y? z-vkzCCJdZ<$IlQ__Zc}oR=F0(V?=sNlZ zshtMLCW%Fiu2c5!vwX&N-u#mi>|gX>;e=S}bwF^7)2P`xItUN7n5y%B%_fNFhCJau z908B!%MYm42{Lv)*mMWXcHN2@JA9Rl1JYbZmAG4+@eqpCua3f60Cbajqh*VJ$hQ*S z5s)0#9soNl+1Rju_@tKTE^&lb`5$C3c1Ru26_ky@(@IdP60c6g7 zhw}*IaxL8F3IHf~PS1xXoMGh) zv{EiK0hm89x_iI1BbL@fs_|B-S?1uYBOOTPTOr_QPU3z`zsk<4F`c)D(vIp1;O5sT z*|&@^{hZU}os2bb{e{6p|H8N`L+D1V`2BX*%n?)X_Ef!6&n1kC?*~6K3Q)sIzk#iA zr|4@>O!?ZMU?wwDC9jf2LB6qoLIrsAXc{biu%#FQsAB(~L6id+x8h$(rBd?V1C!EZ zOp((zTwW7Wez2V}wq)-A(e>r=P_OU%Nkyrol0+1hc9m>dh7|46CRwIkk$pD?rD(CF zg=860D531@OeOm=woKN^I<_HZ7&BvLe)oGionL*vPJf-(>(o5kyg71 zz&OF-?(k8?Z?LWhjp$Ww?GjtX#Ng@Hif7eo|`<|?f ztpc)97IIwF3f=0$ zd_m8BP;YKtXDyYuye{rc_hGlQ8|S_PkwvM)@WT!#tK9rlwzF2 z&suq3TrgXV7}vDZfdk@JQ)sunPNcxaU_iOcJgW4JFjcY&pTwHfoU~6p@V#NGW4PgT zP|0ZCd%GA*nL1OcJCUrfO-%_WL_c#|-#lfxyy+LZ{vW%9e+PlVCpai5TI_3e%EEzz zS{rL9&g_zDTAzoOw)E$~6^5RtVG%9@9S#Juk(jFd=Br|9_UM(p?Fs;?3z`_;_gJ4e zwsD)f-cRJ~Zb(n#&oW~^EW!^71MFb1vg106{Z9GYq#wQt40P@boN|p#0erP=U+@Ek z(@e)Qy*31l5R6CsB^YCuJr6(D!v#VOat0HU(&*6mJZk+k^6@uB67WB+NlHXk(NAO2 z?!3s;5-7TM{RR50w9D1kPEFfm-QL$*DBTT#YV6dgJG{7W$cg*T**R1rExvT1Ox966l8VhfV$maWWVQf$XlHnV`9B9CF>kjMyntwww$=7RQqgGAy5eX|(3I;3`Q)PO z!m+g6IQEj|gonYum#XyNaDL%kPC`Bh?yJE4!xW#0$*+Hx%I&zuRYjxxXf{ z;4I>kif@*H*}n9}<2@{p?T+OS6`_Urj9neFoC8$&R`%MZHj4)qTGqb5%xFjId?9rw z6dzlCV|>?6OQB0&x;)#0?o&KeZ=mPY=g2O-+}}KpeyedtE=C8Jh76)ty9R zmT6n?HZgFOYnP@h9;i@1=yNpyDNLVl(HY-a-wVoMcS z$8rKF^#v@zP{+>XqI4Z8YZI^+;#W6kH2xGHHHC7dYeUR2PC`^yU8%2(VJ*}7BYTH@ zbo_OJBAbJcX;Viphhg4LX}9$U_O`DHGWjw+n>j!B(k3VTV+f4-yPYs|JsZD3NuYfi z(_y5$K*M$Q0{YrkYk&JEhZ55J0{vAMKq|OkKH^7_a+pVy&IxS%}mUX-oa?*v2yYaKe=RC8~3}hhemLf6cl#;v6i;`k&1E3!t_m#%FWsp+(om8g0V%&m`XSzapC2DxF17b9)DP{!NUQfFQxS<89P5okW7B-$x>yicI zBTRX>$)!1nip~b4ztRdr5F2N_aXz<9DQ6Q>N3J>e3hH0LA9ojLPQK*a-hVv=DuqJ8 znn8Vw{Gp}$vbE`6$w<~>*IUY7_t?$8Wj4pY98PJ5-P9bto2PJtxbn9}z}KmM(`H-C zq1--*oD>B?TFbsxQx^`T)PU(aok11`dFKV-^H-=0$q@x8tTr2Ohwi%sd#kPFE%NFt zF!zMcBs_VQq+9zcYQ)@sb`JTJ)^Dz6eg%a_v4+LqfZtCO<@+qx*K%MiwG4lkI`D<0-`rf%x){oi zI!Kmwyp8uG+E&yp!9DI*$`AS>&Rn*4{OVS8@cA1yI)(|}=c~1=E*dodB$r0(67yH{ z3&^p&<9O}Cm?W)6tN%)nIX97+%T0vvBbqHsvIAnw%{28Rhg6Ebjx6M*`XN5~)c#at zrPv}k@`VbMX1m$aT|QDF04}tK*tQRpE6yZO=_Ie6t<*q(=1a&hoGo%`i}_X+tZd{} zxo0cFx7BlP2Uby)^>PoZ*_x{FkIRA&rag%WrllpYrTcQ6pp-GZIhMBr=w9*-Vn*w% ze#rFFeuG4nhvik^@o=w^u3WO78AVQ72efFT@6Hy)XO?tr42^QKfFWuGu%+7>iyN_F zT<6jes#t_p-wU_he4lYp$U6mJA=lg~JZM|0jF4sM{kZ9vN+cGUOQ+ z93zkrNH8|q4`4P(kkwlHwsqM5=aU!8441z9cU6Swxk?mA7!6N9h42+Q(zKmn?hWQ| zipH7;a&1~^@2~&1**~aWeo?^HLsAX>&P$JP3+T6}mH?Pt{>0{`p-w>T1C6(+d21Ki zEFE~z+T@ae+1>)KN^T3St#_=>KfgS~lAwzv?+7L34$m50rpCxVQNO^ypolbNn9ox| z{%Q6^Kzm2ZS^XaWPz1KZst;aktaRRxxi3~@lysbNK7Gfd>baiAsnQuc@3}X0B;grh zYVw1%%`ui)vknAdY&cWVcc6+aq>RM-vU3><5Mu%79VyRmehoM;;%yNOqa2KJsk>d* zkI;<;$T%rWuBX|L?K>ZA68+U*~4qulx6pA$U^JXYF^yy)|H# zz*a*fxoUcS4Se4sb2VtfoHaJ%7ugn^v4@H z?<=^KaB$;eqhRQLFWt6mc=A?%l9Tf(w`cTQ%r)iNtl*L+QK}I?uluz`gAH&EFMYL< zRO{Aw6pD7`tGUCmz<7!v5F;^du;(^^DeZ?luBQ{8*hJifq9UlVa_{Jq7Z#>$#=-RKn(@LK}^iI*|v|`u!bWu3(0iZPdB1ZSvQ{toz?AcRQtOMf|h?ScnBwlXFtDWiX(EIJyWG z#L9wUj_arf7ig}vS>*G2j;=gZ7?u9E4*fA}&ach{raP+1Ngoqsu35t8Cy){L$gAh* zV;86lyw=aMG_jfWRERY1c!WP$D{R#X**H}iM>Mx^KdwEm=8>TRdV*IgvVHLd*}A7& zA_moXR++>E0W6kQ=vbpE+#Rg(3ij!JL?8Y*ChXg6OdYaMgt}kHqH*V?+vEaz0uwoP zz$(Xe0@itq)AH8IV@H2$0SMC-N9R7e^9=~X+6v1xRGK|WH-F5O%o(~gk%*M(IT7tqIc5cYl8e13^Q zQ9?84MZLD^w104Jk9MqCH>De{l@6+$(2q#;{Xv>Pb16?HpUf#eTz z2)_xOaR!)hI}&bg4TOEX9atT;_Snkz{=PAX^3i)+DWSDS#R_#2a3;D&Pn{JTaC-D0 zQmseg)b`~0b3G^F%ceX*73lcc{L%3fFQpY?e%V;2LXt<@vR_R`9ij>XG@E__&32^8 zDETD_sy;@yhX<*}PIQCtxq~`xry>KVJk&DEM#yE&{(FKnPeRwiVbbJ)c^M~tN*YF; zCGGq{*m+@2(z50FT}A-vDkr}2N1O^mu=qV>sn8JOKBDwFg?sIKyzV@F8+MS}c>@=) zrvQo(2L+cP?shrFG>5chvl%rk%-6B1RCwXYu`(WRgCqDbezZ$bTDG05~#ojVGQ=2DLlDXot($JcL%`Z3&TRCk48ep@C*3`>ckSf=$IU6S^=&qd-HCPC#tLa*r? zzF%wrzYwd-faYq9&R9D_Bgt_F1NoR83B5>PJOCGwx(#*4QTTnBZw$aauQ3|nn|N{u z*Es?9_T>S`T8|;xef+QpHEnMUch6wn4ZJgnyh+Q2c*wA*{Gq?<8OKr;o&VdCKM5J2 zz~UEcJ`8rX78rorCXi|BEu2<{LI=6nIM)ukD|e-UTh*GWzI9>h?GwF=-{#R@voXl( zL!t9wv#nB{vB&;cyMt^a?yz$ZFcL`R)BW@K^FE1axegcfvly1b>qH9+Im0-q*{b(T zj(KMKFpCwDL<&*Vs`IR59XJJY=D~r{^PD$7m*;Kn331B~m!6xf5Sw__6W&Z?w^D8g zD_@r-)HR!qwg??BY%V&5ky({{GK^Go*mLN@>w?j6gM+m2)>JK8(rk<&ES-G^iG41* z;I{IysyqJaBC0=>W_oygP-yMOGN0AEsPPr ze&sS*-n+X`Jx};-s;6b1CU1|Hz{!VTy9C*r9`py8xP?zu$IqG$p`Wk@=_h!u$0C74 z9?WQ&YgNd&HjvtUN2Vt#8N@{LSatI^mVB~WG@yLK%IG6ovw{%X;z-0xe|>7JkJ)52 z{yHzQoTBJn(9Uk5^__H!Cf?w}>te>3PNUhd(ib2W4EY@fq?-zx?K;o7M8EGnWt-s|m5cR*bSHY95)*<6d}a^A`ToM=_kQY^O2T)ANCejvYA( zO#h2zjb2?KT#7TWy(t&V-V43w@hl?9P$0YU8&J8{nUv+5$Z8rJ!}086E%tqRPl#sc zJ@=y8!PZi=#y0=QQ5PITtb7PM6Wiu`ikGZEzM*X|8DcNepa3U>8amL;^@$Vtm=5C& z+W^fr1JdT1eSdWW?oq0eW#ZMYmc%M*IKec=N>uG7VM8nl{hxyY6J638t`qfLP-y9l z0smyB@G)wyaAV0q@2!tR&^)0nFR|&s0*&;Z=xEVsp3K~Q!$eu1iPvfMso5cUAbu&x zqP*(TAhT8t7WJA>xDN|eO4Oi-_EAj?7S5W3h!jNxFnk>)6MXdfNr;iC^qVGrh|t9K z+9A%te5+cVX}5Z8gl;x@X>L9`y2<3}s1xWEF6oes9x%fn-F>?6D0Zj##BW1J5nM05 zdBwccto2@Nc=pYOQo@73UO3o%09*zjdAPJP;1_EQgFC!50gfEH^Iw7%XWL1SjoccX z*(=bIIDUaqd6=Qzmi}qL&24i=#&VjX0<r*2ig(Qu3L;@-)rD#B@@m%5O)+@)d>@?`Uq$v3z1n0`oe&pqF~2nh@1geT0Lew#*xRubx<**vV62)+Tl;5YdUNYeMKO zk<PsY<0G)X`lPHyc5O^Bfs~@fy#AP@&M_9s_ z00wdy$McCu<^dX~0JcFDBvwZ!na_TVE7UwcO2#JK%AGK)u-w@c($|w$IO<4MH<%rZ z5GjVytsaM)1uX8&Dwlugui;Pn{i zh8912dL<-UV`Jzstz<1(6rPr17utEWb7M%3w~oersS6A&f5iyq1L?AsLM ztkg=|(rapn$#Ayt3Z9v1y|-St>)`N%V>1ipO)K$*Xo{?Azm5J0XsvY^S?>=&NCpSq zXR>A6Pqh-P3&xCjlFMwK|C*UT)cQDK-3_H*!t1fRwQUc5wfSH|bw`th)0xn&+M?^2 z4z=S5s|V+Xc}44~)_U$cTAbUXVwg)LsTP{xCrm<>apRJpOF*WV(0_pOJ+}uRs}(Qd zLaBWkCK|It)N9m>`g3j6wl$rxT9nOyL4e=$fKM25%{7+y+zqcs0mlmQxa?f9uQr-* zI7*ns=x|h5@|(E)h!IV!bC<_FXVkvYpXe#)Z*O=8`NPB~G5MPY-?l-XXAUSBQo0~LGVhD2sczZwR)ezG#HVDg zM?x{{hW85>GAYJx<+|9mwRJd;eo2q+2MVR%+Opz%dFGxhlBmQC>;C=cQ$Gxk%oN8O zjPk8#@@-;F1J^E$zhNIF#3Ej;ec3cozifYnSgDVoewt(x$6>NT#BxKTE2pZlt7 zNh@uM#vi%h{yn~))pyc8#_c4#;of|X?c)rn$V4rtUK}(ph!!OG7R6N=r*c(llh}%;uEEo zB-(t*$)jWbe~-k>5wwXf`f|JpL~mO(g< zr@duV(ALl%22=lQCV=!%R_Oc>v1DP#=CcxY0R>B~(o`$Ub;{Pv-8T=Bmkm)CQ}J)M zqziDKc_dbz9g9}XL33@H%q$TAlEQOGs7E=RQN-tPp^lI3Pnkchp-w;TuN0@mY$O*B zX||BX??fE@l3$Q%DdqZy6N!l+A2OXYXBZ%^TWk2v?E@$I=Kv6dwKQMeT%9_pFDZFr z7>b7-j}ZLz)lMgTNk@0Jmhy4|j!h!rVAxKt$i?0>W-X1&8;GSAG)W)m(Sxu9=CP~i zxB{=uJp)rbf+C#o;fRa$Mg%V^JVM?#JY_{x8TkWq%B?~^jt3V?dOSMQG8N6w|J>tg z2{Vz8b?ciEqC=4f^B6R=1TF%kgfG`eAz+2<1YZNC+}jyTjEa8ZMBH~AZ{O82QIlNz zRH03K^_}~J#il5eZvt9~fGxO<(Jf78WH!wT8-X5iphywgwl&L6Y-rolIHsOI*eH8ebb#m3 zU}iEsrF7M#L!-A1=ZSX4owC5bA)>r*zD&dFSC%NtY7Q4wN!5m;l>_KI1dLpm2Q96M zD%Jn78G`&ndAH8e=Ae%1!hF4mj@IFzJq_U&R;%hvfy-Rnb)Y$G6DKB~Z9MJs#`B~A zwmItb>#k_K=ZfCb(Gz||Ji2tBVuR>2U3Z$eHeZjTw0uK4Ec{IYx2NGWK@YniJHL=? zMO6>@ldS)`pC4U6c|z@lN1VhH`#2-mQzsl4KLmd5teMnbTaggHn(F2QiU9DFbi79l z*(uW}Hsh55ry|Q{V#dXVrJF9@Y5$fC=txBRw zvqc8*iLo2#e0wj@SEaABT+8&uLzDrYQ$v{~<${R9p_~U%xYFGfpgK@hKMJ*9|I_D- z2KMA0(>M@D6qlWXw+y5*iHEivN*K**Fb_8-k6EP`a4D@$vyTY+7b7GV*(`Ky4iz0} zDZQz$>jqu9e$V(|M7~XBAo6X#@m;%JVZ!=8pQ3$0NAwe959~d*998MmR!D2%EN|nd z9g~XXE)>K17|i)U8ZHO6Z{SO9-j~q|m+%i(S+{l{3rhI}ep!{*nRI21*0tCxLC7dC zxVuY_KSIqMpX;f!)P*HHFu1YR^7WakU@*yJE?FL&dt0b^0pfoo=RXc@xDjmkbJaki zUzAHPe4V%XwMm@~ITjg#)oKHb5R#l9fJW(9Z9}oD8TLxt4eu}Tmf2{O(p8UQ^@)>Z zee>uQ(l;W#i0p==S;Rxj4jFQYO^kw&bNT%$lcA%E$JO2%AZ^wY(Q@HC)J}UUdW4UddE#dV^YaM{ z3Ol#Kd)h6e?kfZ^aTvOMBERYzqaeTVFsA>~@7sq6+5hqJujDEN+)zE@tcpwc@zdjt z`{AEoQSx%E&b(QbjyT3P8ZZNJrl7~-_C*CcbJd4B zXBLKv%kJDU0Bd!tv3$2J7H!PiH<-$P%EFuWT&gepIPP9pS~AIydbB~)cg2PH zYUd@V(Z!Iq7cO*NXw0MQM+`gGPZotd>6j!uA7#l5;@xHH3!P`nY!Jwet&unaEK28^ z-uLmch$el02WZm!J#BQL;9`mLHR%$tcR4BU6()Juo4e|fF;&rB6snjBRcZNNzGHU= zbQH(ueGRUUiTIPG|2KKTo=NbBf{<0nKcg6n%Mhnm-ApAdK$JQ^7SbVp-?Ntk4YA^q zY=MK&|LpB_&kIqgYg2`##fBo>2%d52*$oS^*%kw7`U*dAjPN63CqEBFuChXYKi4U3 zj3ZMEjG*G(6_NwzotixIZW;~lehe!?&)nyafxv@xT9c^LWZp9O50vFC1rvl`lIq@0 zoxN#`XFn*07~;`mNZ)_uuicAWg403A=2=KR1|1>~GyrK+p6jE^FB(iG(UyO;Zbu%& zpSg@mvnRiUjCXr`T7ems_gvGSW6;OghLT5_J`ZIZlh-lQ@J6G)$#3DlB zf3aa;P>}g+u#)i(f{%|T7>af*kR|?zdfhB-N%_g^Ij~+tQ;w|n2HD;@bICfh6?Gi- z24xc+avU4{6tcD!dgwCAmey(VR03q^aSMl5pL}Va4ZV#uhtJMR|?Jz^$=8?cC2} zHvPrg{~4ZbzoA?J-IkMf|_J~K2hCm0-&FplC04JZN4sLb`yYylG%*HeaLSMr3R;7=B zDkA<(a1%_gBM^dnr0DPEWf7%1P-vi3M{E*kgAw&-m3IY-o{@6F8uI#;o)&7!Wf-sn zpGghAEjWr@s$GrtiI}nNJJsUiWE@*RV?S2p(FdgE$ZA;B;@K7jO8Ilhc%JJ95Hpl2 zHLJ;Ly)!Pm<7X2p&<|8XXMa{Ne)e;X+uVGV9h<&^?-Y_-RMTf(WqhOTI=q*6c+BP6 zqkaRHU#ArLoz{xT*Z#p09&Nm{!UAD)}OcJaXDphG#~az)DH;JgH!N& zw$JCqIm&ZvwgIrNItJv*H28GPLSl^#Zc}V{V`SQkUUC&!yX4z>>4l>cR>A!S^XQ3d zh$vnk9L=oQUPY0q=};?zhw zq9fX@aJBCm=30&Afo9bQi`~XcgU@f@M2bco%pb)l>BtQb!2_?dU|04-jgRmrd> ze*IIw@UQENh4PXiS~y@g{4_DpLX-s%*dw%FT4&84w6;-M^h<9p`6VFGIrxO9>qEr! z%)yU*=}lO)=TKPH1WUAXQi6ED)SpB=%8Ea}Z>kq*0c;3~yy z&@+PmARx#52#Zu~3hqO~scUEc5!WB@#(`@~3F6MCykE<>1@Fv!{4PrYL)W9;sG2IdEH=4nyNg%H8L9|-Q9QnJ@U z0~K^W=p-;=34|M9F!Njv1Ggktr5IW-{;2Px6iQJv?ZPIMS)1fOVXJ+jO_GDHLTqvGMWL@7T$f9Yh z6bN*wQDdw3)_v4RP7iedNTVCL_GLRaKxcknafdro^wr8b(J3>z_-(1r$es2 zLE}op2*VLKRrH%81C>8}YyWNxRA*&;^Z6ub52@ww;vqZJIGDpOZ_nH`xH=A75=g#m zZ&_sk#kmQ58NghTIjs0pfiQj8gI>A`l4asd-OsZlZ*r|`Qfv>iV{A+=BItIWvXk1& z=$!T@m+8~}gj}bfnM-;Hkt345ITkt_P(FK`;=#BHJF=OunjRG|&6j?d=ongNHe0P2 z(RlU{QTb1Apznt$Vm#>UZO=659TYdN9J9^U_r||7cby93Zk>8!(c|4#Lwc4u1}&ik zHr&AJy5ar3U?PYxNTAi>3slNQ$VQ%(UV8{ReM?%|S7*VPI%j`)bh>3JTDUhI%v2gs zH{dIfE0e#v{HXBRJfHTsEnO#HabM0U0W8_yg6UuvVzphCC}dm2G~Gxo7<|fWf$w7K zFP;CG8c9f#sZhu^!i3zq{f9{WPuIOpeIy}s&AQGh*jYyv``jHmKGrGOpDl@cTV4>3 z6yC%`1#0J2RI26c%MD2LKByHILa8;iZ8ff>#7g;0d1YTSdh8SsA3A1>-#RbUOHQ`F zQ{HqIT={M;k%o`Mj(>@t@q)ozbrcrdTn|(p#0nr5JlC5cx1H<9M&X(RT(x6*24Qvy za6G8zEy~f??ND*kSV~Cn7k{wmH7$7NMdAG(mk0$L-xL}CB}@3%sA4EftoXJ)UuVmI=a5Raw9wx$-}pbolJlJsT{p`z#7A>dpLDo+dtk@ec=v}u<=8B>9Xcu8lAX66 z4r;C{M;8Iub2@wGmqsIqVG)}MPS;? z7J}g8xW?)pBMTY+lp*>kEgqm{HCsu6yo}0QNC!D9)ROD@y48-XpwqkwpEmRGFzE8Y zW(Py*gOZud%IS2_uP|g`F&xrfJ*KE#-eDQm#Eyyb{Iv3(V(bK6)!-^GXUuc=4ebjJ zouY1QH^c^rc-Z%B)8nmSP~C8;MTR;$A@AS`pv>d&o=K4v*$sI|K@L1PdH=G&@m)@N z?E!G`uLV7`Z{m&anvyjQ!K&AT{+a1B7m^cVaBvYAI0HPvb&ddsiD4Oc5Ll&p&+qq% zwtHr1dX?FvTV9OTWM=7BbZ}fex-=p;1xILPA5-)kGst(uGm22rTc+5)l3*Vnyf@%J z*+kklcFM1dH8_hDZ=2wKN{g(q0+`gCP)J5QNJ~qnPeHA(jf9r95S~^a%!R&bN>-~s zTq9jm_yyi$K%4;W`F0H6U2~}$uohZY*B8S@5Y%{AEN&~W;-zV?af?PTLmrzxmb%38 zN1N26pa_YTMGWXKas@rx9$qGhzF6O;5}gcAujv$td%DBaBB99eTdnq7&kY;l_Kpp( zQ`ED+j}kEP9_qzFMKC~uDufvgM8kr4m~|}yF+t?o2H<4=VFI%ZsT-QHFsqeyV^AJ9 zU%tZh%bBcH95s^flv}!qTw6iwEzWk#nIQ<8>DlnxffI|9*hw}d}R(p`n(YdXN*bt z8V%2&%~?0$9z%MyHgJ418TiN-d<2Eu58-c&HXDnp8})u)w}a^!2ZtauTlI6@2duB`b|{_D?8{PmGCBhHDF%^Ch<&;6UdM?mygPEctw)EEivt^;j7os`HF3p3 zTD+WR1LuM|Df_R@-a#=(Hv7{WFpuS69tQL2r~P7_G6kW>aaf0RAu$LzmFC}^(R$#F z`u3r8`L{;d#fNxTh_*BDGkS6*BD z&zJDE@U!iQv2roa1h{;dSQb=qVhFAtuYpTj$vs)4GavLPB^6@m3GUP=(M?h6RCos9 zT>D|IOUtXvcr6{ydCdiX&z+>jpZivbQu~o8RlC%)HgxF#2!Ob_%hY{IStq1ILH5<> zd1v)V*}%+d{O5J$zA_WWRyh(`3=sd#px_49#}{J)CGu^mjJrQ>1r3j>EH1a)30E#3 zTpen;{KXO4XwZ*Ee|`0HMHvyfKN*%E!f(CR zJQ)3`oN+?iTc28yxZ#OY?ITjYF`{~RD5Dow-`GD_E>DX}{FE&u3J zZ>06*7SDy_I3GaqkX@*|s}w%l_u~`X#z79mI%90v-iGIma3-s@bT!-I%>=Nk#pH`0 z8o^Q506@NBP_?lA0(>S~+5H~Ih%ETf0AH|C{7%N?a-ZD(bIj=g?Niy`&D3%eOP9kd z3ZTdhvv0?ht!3Ok(9i*jeN*)1hK^N+2{I2AP7~lx2==*!L~!qTS96evZMBG&GG?_%sH9CUF(*m?9rN8rX|8(h|D zwXS0r!xqii2BfMTKhPe$dW4TL>`Xsfe|6b~Vc}2~zTuZwIn-Fl%Usog3j(_VMHo>Z zn|v=YR3)<~v^e|$Rjs1mQt*>YOgfr2Cq^?}Idj%Jz$Hb!{~QsR&#TCCv!tC;LH_=% zB?T;OH*3bj0w-#4k-laecprVV#sGZWt#Kdcq(z;6PmwD8@45L4CW?00CDBbf*dRu_?;Rlx|$h$hNpI4*1)2en;4hcCwC3eZc z^GDXvDsqr-d4@cvr zn^j(Sccl;BLwU7fenc#>*)L=i(O zpXu}E$HwxDWlMR6pk~|+=P5+TWH-GFn7Cu>dE`Lw?pE2(cCm$(%m68$R?nPU1O2p` zDw#U#j%|M067ao)&}Yac9JsumNs1jyLyoW+5pb-&V;>l!0ChpIW3^g?Ku2$emym|* zjg&_H4REDnLo7TvvJz3;JdUeA0q`+}1jfF$?qD$R3NZ~Kee(+~kEYafLH)=j!y^z^ zCbHJ6U2V%Il~2_K+|k@d?BuxQ4Ym@i-dYwO*V<|92af4@=fCCy&w4O2i+6KNcst7i zVfjL>s?(xy9WJZ+CRF_<7gzogYAf9pl7zs_Xc;t=Dq5gEz?ZNf(7u>G>&SmGtPn}^mU}=8oT_--+?A?6ka=>Gv^#w#hBi*$H}c` zJ4vTgnfm+w;q`2aE(~XiRj8a$`j^-9172@UVbR6VdeTlkh&*@LnnUTiHcozH9B`vu z%ns!ijIc~g_TZfd*LhW37snbOt^&?ZW~q+~XZk5GFN$(WRzT|s0JnM-07O$4Y74f* z6ntHJX-rqDuNk%9F|XCJMzs}bf0NfIp`z=N6b)nx2%lF;4puTn2jKo1-W6WvjR$L7 zU8ma7kMRL}3G#N!c$D~J1U2u`t(J+cE!kV#daH97of~9}K3G8V@X$pV)uri&DC~kt3*Ka@Ei;UMEv!O=oTsC;y64iqQTyY^Yslxi zxBoqhZ4Qb2u(*gwJ9l^82IDs%`#)RTa?Vi4Q1RP^#FQ8Foil_Nxt^{?;Wwjo$XwBM zY@^8f`+Yr_u~q1_;4r}7b3HS28O@#dNQ&lL-{wTUm3=h+!9K=wYfO}r$@Wzm38yUo zXZPP?b|Aa2e82n|a`(mcSgH!t8kSYsZJYn$wnC7AK` z9!ThY8!+)D%>hLsaj!}xMsNi5diFl$1pENN!@I9Bx&yhXsI{sG9jGxH2RBM5@>Q#u zgy-7-6BUk-?f6ka=YYj$N*sJo5{w{Y+aA&(5Tz7xKpe;}BXNZHS#l?{&WOCVJDH-lJUboStZWpdCR<-7h zeuodDcMzvLcpq(s?MN1i{>6!m5sO>P?QxvG5Y&~4Nhef6PDay72YX76N(dvX$Xv8@ z8KkUKMK8PIE8bIDhJDZFz*{X2Za~;wY`_o`#Z9?4$b? zLv3bn&HelLS4X9@xq5GAPy`|>*CVa9)xgt>uwRoAzr*e3Se6a`XV$QjHv{EEEMH2U zysRdTrFUr@n>*S_;7o=e$8$3ZWM{12#&v%R$XourUZY21vZOOjdP{23m9H0F0But)zgRJA(9A^NEh;GS&hYd zsQK$jiap!fp@noT+s<2U-p4}UNG~j1i0A4biJ`*HcpzmVHDiwJItE=) zk?9kj-Ra;zMHHCxQ*NR-jeNR+a5JQxQ8-0}agjf})&r#8Bv$*=>DeVmZjkKxDc>ZbFFH3-Tev&qQKD~T_+fr+EA+mSaBxU6fU z1CdhumsN`7eIv;%fp@KtcV`9{$2xasDUjZk^={o0uLjUXa$Q9lsK-0x~;Om~FN=Qb_`@&cqXI4pEZENs4YdqxJUJLwG(Kpjfe-^Ld$JzEoCmIu&j;dua~t)R>yi<0Wa?eSi-l{Lg^M^(#nN z@UFne6Oo~CNq3&}u7l}2M3DL;k2F0Tt{w|-slB*Go=NiDt~k({X4 zh~%{|Y?Nc1i`*Ni5f0s3(!RwgeHVrG-16hg)nHN0D>{5T_cV^cy8>P@H$Nd28-vTg z;03z}sv&+4suWFFE`V)IaACz2`jR`mCSPOrX5I=%ma{6NcFrC7P-j)^vg?sEyp{sm zuDqdrRtr{tUDxnUckcSLI`6(aoOfP1S9rP6=MV1d{rooUvk2UEJ+7e9 zdBS&|{lfeDi|Ya7diY~*@(-m}S1lTs4yZb>JSD1g z^t#FYE7kkRBxQw3?1v8ps`T+!yU(b`qSF(GP(F_r(9PoLK~r9XgH!t}LfXe-QPGYK zYChZuOXg8L3&#~|Ok`g(HXD`2j|OlFKIxl(-p6+z9OJYF-}S!4sBB_jYS`SY^2wYtvh`b>=XC3XOs}8}TRd-N`9wDVCeWjT> z-yHmKF1ECxuIy3i4@{zAQg@I9;|zx)`o%X!N~{0rx20|YYsYu{R327fD=Nsdvm^{@ zIkns{p8*5ZPsR4VTfxsz%X)wT#RYvU2AB&!NY9z}!L9G?yN0RrWn%5+F-MnIoS98jl zxn1CoNBg?{@9>^w(_rMpcgxCNxSYj?D>DR^pEYL@(lEBL{};`^Xrc3!r!T6-J`~OA zdz6UxmUXU?sb`ym$9h|-!zh5C7`EAmeskicwkPt|F4kw*rP@x z)_8a4#2`i2s3UT9?xHzc-$~ge^XRl#uen7h3svd%=i|r6MQ!eNQ<6Pb=%G^Q`hISF zh}%yTKjKr5O~%M|2%{-1sGJR2^Gmh4`gk(ysMz<9p|TX?`}3wX4v6R^BN?y(MnRYjY`b-^V)CU zzNjPgSQ(}ce|)R00U~=-dg+3!z`pgtyNA8Tn&Ma28SNmGv{XU2)^d6hhgvP@8JDX~ ze{p`ec8%MeocZCqVpZe7$~Mt^EPv|Ly8F%Ia^LSjYu+q>T+G`|C$34FzrcBpN%60^ zTVB`?HBo}Y!tM_>ooJz6g4iDtAT2g~&j-p>-i_KU=Y zNCbUmAP(Zt2yQk6PdEy)?u!Z8tnf6GuAb8Pxs3PYIoZ8HbzRE)LBTo7q0bHDD2v`G zw2G8CxwZ89#>M$0e7XpZ{P$MrS{i}|)cOQJ~n%Ftt{-k*j25x65?I&>czLz6gy4xjbi@?z zZZ%ML^xec838(m@9r6>*XgyxF@3OyRvm2zNNYA^GWOengyR+{=WN$c%9k_Dv%1@Dk zvA36XQ19T7n!%m})z?qYF`-P!I6cNOS~qq`OukQ{%FoGqRu$gt?_F3}W6yOq#qaIX zlV#Om_Vc2AAOAg&s}33oPaK$v@N?!>%-OfHN~$L`l75Xw zlpqRgA6PInLiDOkBiOQJt=PgkJNg!tH0q&FaPi$^t+Xq4sYkPaYXMG3ePKij>iI85 zOhfArFDkMtZJ-xZ=?m8fe-xkIn6Z75v&*jX!>>V)Hox|+Zm%;+ViD7rZm|-C<=&4M zle~pw3iE7m4Ha3~m9b%t_Zr4v%vO<&xGD)!Cgl-sA%`|+4J5a})2@i+c0*LGTcD^z zV9F=Oh`ik#&aP|j13d@by^V;iTRUg=yy9ECr>*l~cU|#Szos_)7`|{}fzc8&xp#RBou^c{{f}|REC}8lySMLLmtqM>w)ymUz1~ZA9duL1)=6Qv zo=m^}(pR>v9vREfpE~2z!t>@Zvt;T-O0LBT4eM_=-pt7=Iyuv6ixGEw-w`h;SZ}eJ zd-HJs4L7Ep|CNxa^ZYOCx^P*?GI#CX!cc*4699eQl~r|{M6xC+BySyp0{whPdEcTp zNjuOpX{}oO>(F^#gQx`*?VUT>_TJUraXg;y^^(6LSD~P%IL@oTq07(z=wSSXw?g!d z8Sl|P-c-dduKPe}{+7z{7~8f)cW0{1mVpp6d}gXYV=!eg<T>O_TUPdckrz4e%~^OT*9`u<}8fSHg2xWd74fV@(yw|Omj3+KSnALYQqfKAjZ6S7sk6Ql;MptW(Di+c4 zlfxv#4OU?)x4zpS7$8UPNHNVB?cF!yBYTd>ON1n1iGS>RU&O&H<%{CT=yAReU<-w- zkhsMfPfxP6A=t+I|Bmv3w*BByXeZ_=G+VpG&zgPcOPeH~(K%*Al#o559>r4+S3JS4 z8>nv!(6(Kd{Qnochw|LmqU92YH5tBK`RH(SiiSFUtOl9Y&o`gBKAj&f6+2AM_*k_H zU?KDmYM1P@K7GH(S{x5ZLOk3aw+wbY45xbSJWGJ{M46Kxv}Wn=gfQ^_S(St_0xz1U z#O~!Z#weO|ni+@3nFyrU2wszQcA#fodhq|kHIuMW%ri@qUxQemfCS`p3by_{k{h16a7FX!+ghcCgzS)=g%M)RnObW6BeWe+g3`aJ1LOzcgKZ@+}QXRhB>YQ(#)(a9lqL5SCHYnA>R$@Is-s}IQGG7j4lSp4dHr_WYc7? zV%^g*uTdCxo^3=IEE;`t(DXw`^o>=G3kJ|3`yBdDW_9Udc6f`mygADf6l`83h1c) zy<+uPV&tCf9AEE>m!7idZR16a3a{~stDL9qYFpgx!z9X_E!o(PVY^5vbC%M(jrWIC z?l8q??haSvsD&%WQO@q6@_32YIfcWx;L6E$vTPhWU27QN5* zgOJfxgR_F3D6+j#+nA1`g`}5SLe82doGnqpt~O|=cUE@DsX0kI{>EX_b%`PT?Y0=} zvEKL%`zjY>ix|?`qOMoC@R_u6g*wW7*@uH`s{mBHN_u=^Td{A<_ig%*zlt-+$_vWhdlFio6247bBj!8GV%zA*#+!|F`2?tRL=NBPclW+ zIqAM^K6X-y*PdoEU8Au-r1+VY&R8;oaCpv7*T4KZT|2g*K%&MJGWdZtg)ap2?;5-^AuDx%bzRgU!InCg(1u=fasMk3WJ;GK4=5ISugVc_eVN$Q@gX;ne-? z7cx|7U06nkEu_Mr8&$IQ|F69-jcW4h+76|~w$61HfmRt56bca#Vt^_RAqq09OmzwZ z0!omXK`dRYWvuBt?&Ky{`sE# z=~^ZC8TQ%x+Sk7Jx#Pjmw5@q}4{SGuXszkRC-TNJReHuU%bm-oUQdRNrU3_fKJwHr z=DJFORfMu3>c@khZ7_*wCb)TnbUxYS0k^W*bLL%&`|E{$Xt%G!?|fZ@v~E`KSf=dd3X9H{vD#;0YF{W)2K=Tu9GE@^roT72 zgWubA&VN|~WR}G*fMv;lUO!%!7yrsmfiyv~12=7)+Ld?*ch+q)@J8Xi^_x2lk9ok} zFYkoCFWjCgs$@%sB~~iRF0A{jUaaF7gs`&O<{v8ubk71#EO@XgI;M3z6Vo>TdFTCA z(TY13zxk@DE7*9}Ijv{Mm5y`c{Bhl^^Rq4T zkCH#H&Z_0g^1Un}1FKjAy6J;@ggu9iUavUwWH{lRln~>fQvZ7OwK_q&L9zc-dzE{| z_JNu#Nj`0MO~m`GE27HqcippHJ5ASyEy&La<0m`_8~v@`)D{(_^^b_C1MXq92EkDM z>^-kC6UFtF(ZAbNv>ZhxO5Dw?>U4&KC+`lQTa`B;TPgJdG^Y_L z;RBGw%tv0$OpJ!HFYO+#uQ@DbZYkIE_OEf6n@Ohz8!5QI+kjEt zE_+AO5lReJ*V~TAgf!hMF%3xx?~Z6Iuai@`?W|5>ZStOe_tjjMPxE)lJK&t6b=?7u z&z*R|#;)yE>D1}G12d%1w4mYP&>`95C8lW9?UkQpY+JY;g1({m#$XY*KC*Bo9p5Aj z{C$5ofJ1g>g{fF}@gf2r(+GPi5)dEFGud8zvnG}sAso&Snf~tW&mSoqa@{!Wlq+*b z-8TID#$J=&Q3UOIF*(}Vb&*_-O~kw4S88711<3H_j9Jt?f7Hnne>Zy;kQgAx+{&it zFt=u^(DBPI4Bx4xEu1&mxu_4D`|){MNujJ0w-|Nzv$UbpCU2Z!g`GkK!Nq;A_aMm~ zfHCZc#_r?bDAMwU3c>~(x7u@t8|2I?KIhi_NcM?KicxO$E%6~{6=@j=!LwW;FRmta zD#(X;mP6s^ACWkAb~UQr?c<^+-jzjM5zW%0$Xq3{?l&N`tmHr-Lh;GpO;2$j2tRfA zWu1UZh4DbIgw*qPN)2szOR?U4vq0qiV`|oWhFBSll~Kcz!gqKKC}%M zNq-ItV6Wz76KfKqeaKdD%xhP95z$7Be`tk8GRL}#<2N!PrTSL*o|D7sBO()<4 zp23`T7E6xzTmOpJ4f&!1(*pO#BcrD6Q)2*TMl)2jl8()aFLHo+r@>7Cf^mG z9ca3LVfGMe0t8s32^#!&r`#*rbe2JbgabsP_GgEQ(6K6RIc6e*42Peh!e&7GL=Q~jMC zidjkxg0>@OR<$Ba73=5ra$;$j5LI9Oc`o)fb06_ACn0s4f^e9bc4Y;)Q+BtFY?xbb z-8XlBFBHkBpGQ9T=#EI&Mzu@RY;MR0>R@u{O^2fR;L?kNq1E)+Kq$jVor@4C2z*!H zAo|AbvK&hKx%})eF9z*1=iRctV*_&=013211Hv65{OhMku!#c$xz~?K%as&_ISdsL zOfQ%?{5>kb3L;BvPPA33ihbQNuM>#i<4-rE-`ftkd;zo*HqAx%he4*m(O?^ox;{^n z3dQrT3EBx+!4p$It`fkp|8bA#2s?c+E=)^a47km3J1P$FM09BenS z{ei>#RqTT){U(PH;tcz#Nc9RRhL=#oj+hlajdWd60U`mc2CANaTMfdRO@A>tb8>D+ zGq|YU}GEEZXDjQd9x}osiKcb}^Da~8u%2FyD`(ZoW>+tsN z2S*u5vb|FIwS34~M1kZ393J!dmo$$eli@Y;E!3*XFrP2uHcG0 z3y{?E+vnloV+Kj?>4CN&n@*k5dub=8!3G1m4SK1LS<#XcX1=FR?&3=BmWtX!1f2tA zDg*+?h-b27*Q=3@(E(bCHOy^sqNwg51|^nkceSvBnAbzaY>ZCdnX%EBs?dEL=FOJd+v4`TI8(ZZ>CE0`UFfuY*Hao%<;MbAspu(La>_{{bx2d$bCUFVPB2W( zk}}YV-{xlt9Tje#K%$o+V~ju2UcqI_7mG-@MI=Rmbh4_eID+bb z_tEL+;vbKEjm8}2Xs9Y_@q>8nI5zW)_44p0mLStgiu46b zS-+rC4ZDfI1{ZNvSW3BzE`Z-8R>P@pBKKVGQ;JcgP|B{)EV>&nEY+-Vs@ogFVJTaY zM5GP;AM8mQf_VQTid1i!=JJCFMYEy?Z$I6U;!7~R*>aXlx?SBV*J;};IIqPT)I%rt zQcKKjvKV}F`6m7jw4|6K%_91ciNiHyc7lH#Lno<)PY5`?d>8#JJC?|%sq%yDXBSD% zQl_CBM1QAw&u?! z4uJS;QuAbb%KeG$c@C9>ls|4TZ zrD9r)0xe)2h6ST!cDt}=XMuvT-AwN_OoSICs$)ZYekwN)$ z#YM{aSs&SbMq|zlEh3*$!a8+g%=d|vT1QTG#fliU2}(;W!9bvMrG2{Xm)Vj+e$^!c z&iFO!#U5*6Ft2?Rn`wpNnW%Z(VOS-#R95$nU9(=Ulu}xix}&}c z0brx^Bui8(6TlToPI~#%NG^edf^TXVe|VTCpqc#8DE&idqar@&^wSuwBqD%4WTTxJ zc%?hY%3F7La!aLZ>{&ML6d}vP7|&s{nfZH@HhV-fVrWD(>rN$0J7KF6$37>lb!4q{ zNaMbN4+4dZp>Ytyc{#on%?;fe1@M-xlL3R};c*O{V!x0=S@Z}knC`KA7t zWk;)jCkLR!+i@OZBEqTH-HR7Yb!PTWyDJP#x#|`yB+qW-Z$eA%YWjZn&@h_cgWr92sSEzd6+o#Mug9#XE4 z$9wtu5-LXWCu7%POp41P@n$j zi15&2Iq40pb1GU(ta^oFl`En}q)=YF_L+5p zwCdlb*0@Szp5-;+^PaKzRYtsGHJ9w_K>JBGjhf->!bdCVrL#N7us0oss+fHuFHX2P zjGxK%4l)s5Hvjej?9;XE=m&2b-4Mu7toKb(nmKqmDoIzte|_0e!oY-BV>Ds|-;oed zqM45q+Xct^ofu2%P4CfXt%`5nTB+*W-k}rMjU`_rN$T^T0;~RXsm0e!;7S?$Zn*3$ z=2nID`lMIl>P}NgtF?nCamQ%HZr0#@GCP1xt9ULt8kpQtq#EvsB&^*y{2Zp@aiZjw zeEaD|gFJG)RsPmTmw&IQlJc{K^5Xe*Uzxh*MC5BrEWzf@MT`5O63We;>FeN=0)30O zPu=@&ss6DAedh2>2=l~lxnpbl6A6>H_O4DHx2yNcT+k8+KgvvVxnMR7=bqfMic0KO z1yIOF6tNiubsfQo-#I{pPAt zO1CgcSRz)%6Nri_R@f)I>afZ)LD{oqA>)JK)W<|0EIJd6o&HhYc;u|~ZKWbikf8HZoNX0IACQLf4Hox27rfsi zxHAwlTU%3}?AdqOG5>4Quj!c~({(V5hRPyj3H=jOKx<*@_HOu}u>j)IPZ{x8Oh5OOTY94W} zvO^dXXPzbQe=gNz7Ys%w&%w!WokF7Qr9)_OOFQg|olL|sy(jw)` zireWaN6j?WuYI<<{_;kzg+XQ!?7YshR1&ukxKlSr6t5XRsKOVrh`?k&OeIlG$;rr``qw%ACn%97|#~$&H-AJ z?2hIboNPA~-tcy&lNjM|nQ|Q~7^<-2gICVfi+|pO^-Vi+IuR-inEKXZCEf+d+GuO zyP1C_&8?xan4nm18&OTEIp2)UTV&>Ik2UROMY^6iTWXA2YORGt(jl!}c`-_Ij?qX6 zNT$@H3w&|KFO33IC^U7CQ?O}uUdlyuDKhP9JFX;+JgWx5Oe4;-5FZCh8tckzsO@A1t?y)jiH{;&snK?@m?-~A@bjPlEDFQB@-RO$$2>T373uh_MUak8dTyusCKd#5u@D2 z3&TwiUBpZ&SkT#9rm_lGh5`li$-V56cG zHUV5z!=<=d3dQ@!f=c`81J!q{jF?)g`vckgw-$`%ID5`s1u8Ml^<5?|T@Ulu+fj)s z{_NOm{&yHUIb$ww9drD$vrAO5+0k7(OZsSDIdWx5f_`whF4H!LfqYZhPdO68>zv-l zR}%W2gn$@Go(k(KdLHR|HXlg{lB}6$Idh!n)F)$PGpdcsOYDqzfti|#H%##yUGgN6 z9sa#A*aDXDbA6B?5UN%{+eK&Cv>vKtF^)#gODJTqlnn~bE*$Bhc{{D#cQmHrG zu7Y?4TyJj%*o-(!966RLUMVH*QoYgnf|g&ar62bhT%oc(MaS%x*NCQ8fG9A}TQ z!#En7DLc)kEeFe=Sr_pvv|?x9I31RA@(ch7AjyX4^a%X|+uFe|fPS*xTNLj~z#CwX z5F!>yRg<4I*&*2k^9*9ZJa#z}f&kTPPgXHsYST3k z(^xod594oLif+SkNaVOcb~w%k-nDqiA`u7`@j{C}ji(LU5u4pWP%wRWv>Yw!4`>TC zG96iifmKFzD%pPbSwuA@_*rUno31eUFbvo53uWkbb>P>uE-I$ZsM(v)j4$5FdA)Gt zS%MxsyYvL&6YD)0b1<2B2=~*VDCzL-;W3=`lBWH7$voX7wWAVq7*=EUSDkkAY$II_oLTpgp8Akm4O;O za#nH+AE0us0G(CYK^MVAsvsw>B=Cdwa)iwGXP?C->3Aei%GQaiR$7-G`{&xy`|)g} zd~!oFHO2(JrrETsEW)vGychl{*$a?NZxp%#9wuy63l??evj#Kkt&*bF&PDUz7M0_T z5O)9u6$EGvEp1Y2p2(vj<=EqJ`FST+9m(A`Lf2lwK>%8 z@=Zp(@QcJ@Gl4X8C;bXkN(-Nb$|}@)YX|Lk?F(>*xRAq~+=V0OFW&a}xBYaL8Qjsi z*6@~!dCuAmNU9{B!J<&N<3U%l5Sx-o-+Oq=Z~y6sYG(wRGr|3$ZeK&r><*k+!__iR zLPdiAeG1JL$jeT8Gfc1FRVH(TQ1K>otJU7{FH&trS(!xXsr<_h^!HmP5C;otPlbVZ zz~wf_K18K1T_})BRHey`Z1Rod7P?{=?kj8jT$Vy2>7zXX9nEW<{1%azn!FxaZK$lg z9s^uqOC2lVy8jJE=DXLu<_nko%bX`Pv#JBL>3m2SA*OI_YQVP;Er-qY!R4xzwW6%P zjp|$YFX3xV2({;ULcA^CwFh}7#0}_+E$dVvLyNf?V@*Ub=9Y0t5(a`Y$1~Hd|+V**vw@+WKZ{* z-;e#5_4LI;M6C!Z0{h$q#V0SiOSW;D_0Yd9BP8AqaU8)a6za<(gjKMB7v^@|Gp!P> z4I!p&Gkq?PWhzlHdB`k9PD*=E4|?Q#Sn~6TZ1MW_)w`3MOty7JB*JoUUu%W$%1c7M zhos08wTa!(C|hA_9tGal z`tRh3@? zlE~VSOW;JCz==SJOs~%3xOqfIwExFo8^iPW_Q$686>ud(I|RUuj$ahbb^zqPr4HOE zoI`=drc3|&lyM2T3Ub5JU9XM+3SQ#EA)Ne%@F0VM23??MZ5K}NukTuGy;lXn_6B8W z^<3EW1`94(h|m8Squ1yWAq12$csotg z;9av%A5Tt-VS%D5Z5i;ldY%ltYvHpqrI#2)RhKP%Ih?ipcK&~Uo3Y-Wo#vKN{qyX# zdY%ZrO@op3qSNb)dBv(ya}FAa#`(XjcUu{|fv>@4<^eUV$*Pe@|3p(p0WWg2Uus1)fTj+78UW5hrSUU{Z8uy4E{&g&~mizPzP`I`|mo?kn7#Qw{OcYi%-PU%|# zz_Vp9dlwx};xSjEw1chzIJ);aE5M(vbe!OJb*oFl8Rd;%v$IJi!WasXk=q zonu_V&x8!t;7K&57O7tRa4~9k4GLB%c73D#*P(h}qufmtrfNEFpm`A7z{|#w3VSX$ zFP!sRLm=*z;a?<8!Io-{}Llhv8zh`&vjU52tN^@BI59NUi&xX z$!^R`fd0ehDMK4Q+;EjRV@DhJG2A4b(jrhT zW59jJB3^qin^|XWEqn#e8zQ&_Bm{y^1xAfD9^)=f5b8ke@u`>t91TP-W)Rg}P7=^+ zE*rAzSPpv+tAPOD_6DUB@W}|bzrwTkW7RzD{n$BH9Q`Who%w3CWNNpVK^%Sr4trgw z12t?~T_vI|y!;V55p#O8#N68dCIb-x*-V|>u`IoFXy#$NXp0M_f3$AYF7A= zjYgOJZ2c^IEqKm}6qoNkcK8kV-h|2x$F3UeFY7cB1|wx9VDbM$A_8#{G_q@9YiC<} zXpN8EdcOOx6Kk&r&$G%^u0a4pM`|~YNEXP+ba?HFa~^jYuwyT;9oWJ49SMRjIyHsU z03a|OqDY-(4}DiTn!;w1DM~|B430x#GcS{8wSr%XvCunAsNr;83saeSO_)5|x2pYP zSlU&PiE>sNJcZ$_{&+ujSE$p1&SmySMW=22^3twTL*HBwpa4`MC#HyIu>i8wy?)7z z9pJ?l#xINlqZts)x#U|Eh`_v81N7($t!dId_lMiDAGY(V>w4*Xl6vq$Qle&lRj8Uv ze5nKdMrnX4CU{H4zOmNwKgGLC7focyJSa2#7}wW*t~uib^wy%)5Spho&<`WW&GoF@ zuKLFjebOo6E*v|wskTlxLP{7`T1P31s@k( zB!w@So8kZwDsA|QD=M+%dQGo0>=obopRzjnm)TRi_UWp+1`_238U1OkUgmFvASCafn^r15D z5d!@E_+wH?Hzm&6JhEU&`8~p#2Y~+~p9RyhPPFOf==8Rd+`{`#-H{(DkX{k`b_s9DeP^2uDgGER^t7&hD4M(MRaF_j;rlTKn?taK7 z3P>~hJQB2WXeSSX7D6{bRj}kVlJoW|496h23ut^9!gW{^V>cw@#-1hDgSW9HE^vu;2NOyJ15A=KJ@JN;dqdq*7Fs~w~Tn&*1a}U zo#+B)jx*=dXS{##*g8@Y!&kL#s4l^u0EKGX(MKlRr`bbNDExDswTnhKd4E`2>Y};3 z34y2C;iqHpJr#{n5f>Q|AU^38e{M1UmU0WM}rMw!O($<57(J zInKjpXp}POreP6}y8R8hATeI>l4O}5F(&>A7pPYE6ST2@4E71R%MjdbIl*SGA>T@B zX{Hh5Riz~iGCju8Y87>0c*U$i8=ND50^hH5Rk#dYvSoUCy_7IHqG)oh!kRok z{JWcT%k!%uX31oiz0jct6L<%;Y6lI$_~P9hduRg?^YHl*I+NyQRj0iPdv;kv z)|A$svST{?TuDFah;D<%BQ|l#9JC+_3jn{jETV!z%b4qUT)EkDlIN`Z;qJy0mWet) zp8UcX>E}xdiNnj$m`2tMJoK(xa-98SHB}mu73v;;FkwfDD>j zJ6J?cAqy*eFxtTTmx07#zIDVEH|s6SU}TXa#vSp+%`DOpf@y+(JU8rW$`2mVnsr;$ zA>&Yq@l>LlLod0@9dBI2dXbDYoo&gy&2;is2aZPV;4uIXpq_BAB%Kl)*FCiX@}ati zJ5=FJ=WQPipNaqp6sE0^d;HQv=ixBWJtruHHJ+)ap)Y zpc?(;Y_Q(?&YbG2r3Vvqr+1?zXU57n%{gPftUy(lBZN-9fyNOUHW9=@VT4?^%zx|fp6lBQ?17Bx&8*&*es~Z@vBqu&RiKl#1{5>^eKOGp2pAnM+^`1yac1*(C zUxJ}x*#GXzP1O`~<3@c=rgC#~#oMmuJqzclZ}N=17JGY5wCW+fuPYut|9*x#OIk7; z>#B18e|@#)kD@gfDpG!X;zSZpt;4x(EqGl!SO_)P096rcY8+>j9G4*c28}VE{&MUH z_}?HEW5$`yS@1N2>$%!eJ6k&2BWUnO%10S?@kbw=iWut9{r1Vv3l!=*Z2gyfdtuRq z9ckx+WD-?Xr^E>R)8F-Cr+lss&Hn~v`nK_lrw_0HXx~_t^M2U1I5akD%lb*ycD?a+ zI?GeWnuCwOr%?8o4=%lTR@B;ox3A53MB^@hSmax0^l`5L{^!3I_^$>2Yk~h-;Qzn^ z`>q5mL!smyaOOYR{U1#C-zolUf&X7D@Mw?rz$#nM12;}RL$-|DWoe$b{~^t zOf!}k`-B(_CXKPoF!Mb}dc9un|KR(>=XyNu$K&prxz6i2kMlU5$Mble=eU2?%2Z<0 z&P_r>LK0_A!x2J4A}xadL^pstX*!J|LPC3l&cKgf2*yqJhooG0vr*-lrL6tDHFe#( zwhr+}FA9|NB$cwW_9$(-{rLrU|Lxn-PX`YKpSzZLaN&gXap~j5@1)LM`}g>U;@fM4 z*TesroWBr=uA-Gv^4e_-E=JGu9<^6ySV?J4h6hRDDXhYn7G&U@ohM#J&pOE&UZ~aabv{jVMEUt#=n z=7Wo^oN}Vux>e)OKfv<){evBqp8v!t(Ab5mgWNQM%!mw&QcQ(8Xfvo=kb%bP2M*@s z#oSNZG8Kv<>iHE!x&Rcw73KLoFr0#8-SQI|gUoai-9%RJ-xpknuc zsqp6`p?!i&X=uItJ^Egyug+=}=2X4akDQ;#iEluEfhkNLHO8l>>(w(1RzG?5gs*3 zqmY>wn$jr>_D<6nmA^N^65Q96PE+76%q0iZZdtvpm5O6cDG%inPq17Hh>Xy{TABa( zB(_SDlu!^k^?ybgSsew>{O|3f%MpAsQe?ELqYm*^qIy7Vb&zxm_!4KQ=(mI-D*C_g ze1>DuJB{5VECrz)_}}}fh_7)(@Y|kIlEV;ni)qob#s>Ck%H=*%PeQe3UQ&6HW zdH-jmSK}ueiIPmiNJlDbb)a{R;DW=&^)^vL35g7}fzj%d5>Nte8$@cCWDJ^7mHZTo z{di=}>`G$&O`t4cuu!H-L#qB{k@#f`CXOZNPo8I1)f4s;aILNVbg-yFtD{}KaplTj z8D!@D-n)$o_?5_xu->cWGjK906O}pf-|t=7n#puHb=ILHaM=JkAAVE-Inr76b&Sf@ z*uHcREG&xbbosb5&Y%1QIUlJcz&RI53OWhl)5q>xePf{sl3M@z!H;0IU6RaBws;d` zo=cBkY@JFN!?^ynN|7E`f=#i%9<_9jNY@zviB6GiV9f^^{0;wttq^Ok{qTsB)RJ8V zG$t+7VsP>OGIyRvWQ6=Rh=2{YK7Yj@NtK$yWM)rP)zMR?jrpZSxAlKslO+tJ*Gde; z$+K9j@^MU#0CsS!pR&`2^)DE()luAy>uL4p#oqr`smk=cdiAOjy@oLIYpLa?j(+a{ z`4WFn>%&MD(W#5=1?KH@n0AZz@IRQDr3hfYh;Vc9YZZ~%JK}{xp=iBVgL&FW@+uk{ zHz*A)9*!nyfRD;2J<1~LBk4(_W`xA_AkDwodiXQUsC=Xe#}AJw>931R^(XgMrEUB( znW!XqqlUd?i#dGBM5bf}=iB+=5M}b}_EnGCC7~irdWA9M5WWC4WmuZ}P540dzftRQ zmdZZSbW;TL1;#%w!#dgMaAKK{f{t*Iq}2i5$&$W(%P@);GEf5bg|d4-4DtwMLqTO_ zrG0!gdi7hMUJ@D19kw8L43ABlR?>0xZ@$*i8C7*uozT^ZX00V8%EcWtPLSL^l8NH= z9pKc0T!`|UTTL|M7=LmIP7woN>Zx#z#Yz>urBo3kgB-$FA>q{qc%xfWm<;DVcy)FB zjWTqxnm+%V-|T9(z1z7N5_xn~PvD7R9oGT|M=H6SY6F=uA0Crf^_Av6rA*rKC`YBC z`z|R{L)QmFc;CxHS6|>9_Z4RJCRWIR?jW_{j{RGhJ$#9@ncJO=iZD*EU7hHwPXgG_ z$zFNQne>vAjcb#of7*hT$7%fsrZPUmoO*1q1I&5!TTLp682Yg${@HpOpI8yvyPntQjHiOy zSBu>rh^&8==>H_gX|>EnN$jUDnaYcd#X|g=_PIU4Qs_8-_8013L+$`~J_8@`RT}93 zu1`oTQ5wnz@REkHT=k3AEl{|#DN4*^a0<*?Q{5V_kC|PV!@Cc$SHIB(_a`$ab&V6S zkzQAms)&3wCE`x;4dws)jftv=&pSn1%t7iRrw&18N&$Xu30=)d=Ph4hk+}>Ih=#Az zc8t>Ll-;#t&-9+ZK%H(uUW_cfB~&ZE;SRU(YIIYABmJD^^k3Ft`H#}HG{iPYJ_}3@ zvrVH0szf|Mz;*oe`D@@cr6J#H0PD}iV;WEwyZG8lLo7??DriJm<^Z@UX8a1f;Opqa z1PgvKTdym!KCXZD@mF8qjk%r1Q4!YwvQ{Uz&$m*HnDbmIPfzXDZ+IyIFt{eMZcI>) zkXAH5HXZNeXjXZ}zWVPJpWMerGIWh8FgoJvj^?pN24rS@JM|3|5Uw4NNF1u}A9|RY zQjlq5uJVvIh!r#H^6H}xZQ%MZ8A9O~6709(1CrkKWb z`W{&S$C`Jii>cLU8=GPa=rYo5TnvYhzu2U|LWAdJfH-+mKIf*7Xz~jkX>6{U0tWs5mjN^gfVBJwY3ab zX8|@CK}A0^Z8Wgzq=8i|W^nR``?+t~UH z8+e~S$kA;eIP1gT4EU3szQO2z(=N)NVUff^RDc>ij7y~dL8>T;JSqd(;w*T08KfPO zQtEiJ@lJJ(m;qfsB+MGrj(8r=x4P>KCJANOG7HORaOSHrSMx;cMPl1t36U{^U<|ec z<1&2dVvHh(Wz|ASi2J~n34EQvKA<$+)usxY9LH$=iI%RL`T0Gq0l|iwTJW80F9wpl z=pw&P31D!?K1zs8XJbCdElClcQa%N`Z-rnoRY;0=ZFuFUd-#g!o z#ddWckBT@69Vv7Py^p1sHa-P~q0|5k*VmyhJ-{x2G;V8EZka#XNcAWC0_Vr{Oh1E~ zGW&e<9I5QEKL)*e_9AiAZc_`bo9!ic9PY&&Ix<^DR6xCr`9m|Y3y4_MfIfZcIgT~3 zcW&V$C>l)f0(=gk1F?DgzX-xi2xP$tr^m37Df)gl@ zf_8`h@?Lk{K_y46s)n#i19CCDDTNxi{Bt{{6&Rl$WT5=VDlgGmN2YD>rj~+yju(~X z{SS0S3F`otX`A z)t0L9Cr;i)|BIL?Ul5(Q4ltmd+6pOFu#Ey9JYm{|qrgnJEQ1*|!|2PF^J%CEzb(s} z-fFU8PU&<|2`EU4=${!eKzR4siBrsNY$7|@59Ms&HLe!I9N%4Ag!oejLhBk@^}6jh zJ!a(0^}Y~Lg0iqo%>O)GObzu&7si;4OCTu~k4`rF#wo)2Aiq9&Fn>+Yb7e+wELl#t z^AkNEGxDNwtcGfk!D>Y+3#fR!{F#4eX=0m5k9doltLyF-_QUj(gIhe1{H1>+o~GUpYxLlk7!k5gbg zCW`DkrhCZfOcZbS$Xw|z;M!6(E`JhpD<{k$kw{WO266>kAig`-kF_@~ zFJ@Oueziu}0?K3`SXxYYfQ_|Z_;?FH@!v-=wF5l`O!-<#q9@bBUF*Y{*9=1iH6?Ehw z_R>SFssfh|nXyHRjO4ylnDTIHJ_lliUQ_?xY1d~YWtF+godQp_{G#JQ$C`R613(nZ zRCvlho_D#P7P+uf^o#X&C8wT|x}<}r@T#=4wFL~ISqm=bhL`yhCnbzNEQ4y+IPnvQ z2cE{OgX^4Gr5~IWB%g>c1eq2@)w7Ss2A{f9VpRFxXUEtWnPUqJbIJf=0t~jS_^ZFW z*82~Re&mfGD=rpC;FcvFU~>yLa4_Vq0{dotf*W&(A3)QTo}0p zSjTE3poL3pbJ7YB;gnQm61=%{Q`Ld+rT3fHkX1Vam){b(Nbtxl?81jJJgqD6bi@Op z#d>p~=+zcKeaYaANRas4|1d5&D;palY6}3iF-(#co4ed}s?j<1INd_fc2~_40OxSb zuHy$pMDVmAelHkVK(8Dl&X*#ZCPO}gTvVOFtU^TBO#ub#G7jdA5b5scfl5%G_NoNX zSF}L`0^YdA6s^to0A)ww?oX9!E=L*3^e9ytYA#6Ozaet}@Qf&lgM`_SHXFud&;}>$ zL5njIeVb-23A(rd14% zRmYRT5hK(6)zt8;5G5Gh^w=(5geL$<0;AGuAARZdIpgXH%9u|9Sb7Uk+&+K{ZQ8i) zU|++X>gmW!2PGf=$K z@TIwm)pjiE^=YVO5zxDA1N+f(N<$hho1&#a6#Yx2XQZU0fOye14VRzLRWo{@xx1Sk z(Sx9}6I5MfZs2Oaeft*f3$GbDMjtH@1bsrus=A}~GOnP6*|~`keTEaH_#?9+TO8y2krrm;~QU) zi(^TFki1|2<5#60`ws@b+wc^DnYpoMLX}J+>0?L+29Z0^_WE(dq(~1>!gIG6pE3+3d_C zL9I`*3qNnn&AeBiy&1E2*6+84yj~G~}pX{q-Sq+b=5@vaO zXIa(5V+1jQW-cBVbLah!8cEjyEnVJ-=N=tZ0FT21$Eiv~@t{;c$au?1;p14!F833> z0Myr&f8(tNeip#!hNK;t3gOo{uc!LSToe8b>va}NaB?~m6=Cr&k8BV+ z*Y|d0H#%c-K|@1h-ka5h>?!x96;X|`4oX+iNGeT(SgAZzilpFBhFc*CyQw5k8+h1{ zb=<{|TJcX&b>ZYir!)+utaX)Z%Q@KCsM=XZ8Rnb2xw$dhFD5_o8h(k#%c zS2Ol3rf|yrzJbWSM6PVU>;`nRPnt}-i)OHcN`|2%pCh0oWsMJm-GK}gSt7HcShIh1 z@N{Fd@ovzm?@2}{ z$wTn&3!1dPw#BfBCx3@O^CB@PO}xdF{YB7h?c+|eF~wF;WGbSk7DXrPX)gA7+SJpG z${FvL)&-tKQro@1?Se>6JLmY0;Fz>d3%Qf%>XlUs=Hya9O_bp#ChtyNQuZovm zCZHXgIlNx5j9DP8^Kb3OKSppaY+(^qfVc#p4`1lm`Jo2?1ypO{Y5?&K3 zv2H}A;2?^8UV_r=s|>UpC(vJEz%!O})u|7I7JCma4gfV+4#M)TS3!{#ZeUgwD6MCS zZJu`GE#_u})9 zMh4{}%%FrM+iEnEchzisFOmw_-F)CO?U+z{8&Gk|%jB~XOlGOYFX~fMQxzY7L2ahp00o*0I8H%=(0~T2RQNo=RsO1oLB*uNxDx5L_=32egTiJa`P$A zprE~QfJh#w2EFF+0Ves?PLCtD}1nGMw{)k}jwtRG;H%8HZq`l%ogWBti7 zpJX!?GQoN?WIMqGUU{tv0PpZvP7;!j0(%(+%vn%Df64Mk_?d)R8#9z@JCT)g0<4c--tUG%G?`;%37PzC#@ zN#_6c(aktON!&>M-~3_1>{EnYN@{9Ia4)O)q(Bpeye?)$g>BTdH>;fSrynHXG&wxq z(%1EI9<;jf@^~yY&TtFQ7$`hI=YiKa3vT*M=s;%Pv@XKNP51xAsVF};8vV6YVEGLw z5G~Q++_{l^_wJF`3JId*a8dj&7$V-Wdi|J?Lw2HnLt-1jrB1YFDIlDX7)_RT&ZW$vkpU;Rjav!<`s@17R8x<}W@zoM+ zx4T5(S-S1qK zKu>4N@#0PSfb==|82et&MKR zp&ZGJK!6O@ObDRBB9GCRrnW32!6^fUc`i7+@aU5^Z?S2uhI3O&oaD zQwdyoFv;%&o=5Boz}XI4Q}5=`H~E(EOJnt zuc=gba|sW`tYP_@^15xg3x|S0;+6h%kE*MvxFo4y=-}$+1~3)C5_v7yghF_fP;adj z`AQ;LoPj7fR$DD- z0>@e9=jSV&fg)j}u^+ezOl87s4v4C%HW+Xj!?vrL+~NHy1Uy%dgp-K3{#{D60SZ#4 zPZHR#KQ%c0LH1%f@nj=QPDi!A^!D(PQ5=7=!id|LLbEmn+oQgyUJzF9v>9Q}&`<}u zT7Eh81i6wWbR2|LkC!GuyKkkzbaKYXufYbDC0$`%q1;47RmGjy530MU4b4F7oY=(W zFWSuge(S2$jT7|PD6$Bs5!UB5K<9z;h=1?=D?D3h8Q)Y|eSQbn4FLO@d+1?&Y{d!c z@-7fb)|R+rAUC}t>_&mg?lBu)tjlo&;C`LN%s!|*)YQ{`KuE|q)M{&%>X9Q!01rGP zMx`McA{zxs>6+(K{2p-15fE@H%XR|uo+3Ey>Q1uT=O(*Rz1dAnHm2UrrXzD?&Ok$h z6>eiA?`R2_MR-}ax0bR}#33c3-CEEY0z>-Fe`^84h#sd09p~w*0(zDw%0uT>Qm&++ zc<%KyTI==5E#Q*KOy(gJl7Tv0dy0mdX>8O?c%<-fF??1mmjMo6I3L!%yb^o@p7V_& z-*;b7U`m~u49k`S1{a5(1DxIqswF7yB28g_3)R_8#rYHWp@f2@c9e}xxdqh5a`sK= z{B%h=ZDInPC;1MV@iZZWWCW3wI;S$mzwYAD`?`r=i5)xamuZ{9+t#ZNFxzvX@6fo+ zcBP^BkaM6toe+pA*en11sRRKqDK$uAp62A`AhWeI&cRX(v+3&2H;N@FT@B|fM z3cBjNd?JI6dp=*DP&W#78R%A48cIL7a4$+Gp@fnRdbNghLscL)4(96lz?Wv-r%k~g zor3Hzcl5X51cTos*p10LoGaEMBO}v%Q>SLsO$y9@O5a(4x>|PfTrp4cO4gG5#unjA zZ$M0+H^a*guYaDIkx|PASxd2oJ_TfymDJ`2Fz!Obah_Q3z?28j=E{h7exJWfPR=Z3 zX5$(CKz7*KlnHPn9&2>@;~^2iK$>{RZi6`~CxrM8SIje$=f-+~eBGsU)A;r(XiLb5zL;pyH>LfrB)`c@PDvqX19deisV&^Lzah zSG>5R5fHplziB~!9AI=godqNYoRUywZ~@XCvWJe40M+~y@TlTBmC+xXCli~W&wF)G zntx}wi{Wvy(Y#u+*&2a2sH1}7XsS3ps6IKuO^9Yo+$DynpxB)e$8SRqv z4SX{UAjNC8l;+Mgc#PsPz*9|?wg82-4yzbDIXD~w?y4N6O9QI8{keb-9W1OO+HT8K zJ+cX`=sh6vF68G+mWMwA?z&@RGi44%hUG^9*j71jX6w}{6fV%slrk$ftYK~Gm>cFS z@y^}kJk^>9eYo{o={dva-!cwZF=n zbJ9LH$LUod_a3FYDx8yQUp^Jw^Yi;XYaA{uV)Eylm_q5u(s&GhWl#*Biy4yi+T1MB z0`dzX*v2f9UIw_C5hE>F3rwD}X?&uf<}lp2plTe%90u7|fUxN(11sPuE)$D{5~#SG z8~gn;UhqC>CY_6If3jmz7YO$E0l<&D!aaXmBfU-IPnI+fu~ zkrq}{U9ie<&O6`X#L| zYHS~px$#oQ$OeEWv4YBQ9aISFrq=!ytjnkq5Va%KlW#ni9U}LlGZj|mc@b=On~irs z2?yq z9Tvj)KFjNDn2GiPtM6-VWf^%B++lik2Mt<#*Z#O28dQ7UdHmvLP+T14pHs->O|4Hs zA>P|L*bvhUbev+g#xf}EHnlkbw?AF5DFx-1PiNm-q|>=US{x{_6q1z865s zqZ;3gIHnUmvysEOm*YlcaJmmue#=-zsZJ-k|JqQSutphsI1hzW*w;R%ke+6295Q-k*&349QWE53K=b zM9E{6^oq61PXybI!vi~nUa4nJoC9ZuLbK$jKMrdnMwW0O9i8ZqyKQf}n^w85=S5Tqpg8iz^Nr?!b3!wccB-Zu+ zSU>#ke!PuMN4kC8+2zKHdFoqig$q0^hap`H`rC(`Zh6Rcfgq5#!?b?CT0HC%Piz}N z)+9I1Prs(nv+zV5Yj9iLz*YFtqToPT1$w=Zm%e@O5&cMkr-5<&mcUE35gwfMC+GDB zUI%h#HOd`szK0?4C%PV9lw08(cSNL;9E(9QR{^MGKn7WwXjj8|Jq1W_RVQU;eyW$+ z#Sm)|c1MB=1U9`N?>iz32)Z_Gt`tSqHiyc)vy?P7G)fdBeq1nvDFdc~V?C2RF*^?? zs>7il1P5oe)a`*9ligCr-T^9R{635$*jKpPivq1c*t|M7?5mk0cn+LKblk-XnHLgj z4xAS|Qt>g#TZZ@j=l9v(eYruClZFo+`I>_CEjr&`ENk$4`5}>_?zO>koghuGgYJd8 zu~kZ5_j}0AXQ1*2+Qdl89{_ezIXifLeGb`8(x3;{0ym@zLHz>YTQqdrkLlu6LS-yp zO_zBIN*CDWDf@GPw;l}v#}%aFK1_QWw1sObUG;o84q<~mR?FEM2Z69#ZUAOP(Z$r@ zSh2~kVs+_DgV^93prj58&RtG!5bBbhR@V${D(Y1YBX>@<2U=6ceMeG7->Qato z4)hWdBMgB)nx8+K9HPC@kPr?81r@ux)8Q`)3`+Ar8-imUR2up!d3#nnfj7UUAj1WO z&;febxNM~G4;RbH$h}HKVuva7c`otnCdj$D>Hbh1rJ(qT!J%QuOpjo1be}@4l#rJr z-K*Zc8Gx#cl@Fd5HvjDRXyKPBJxQO8G+w$OoyV&w2J^1SdKG8o8%IGg{1fVeHm&pg zWrPQh%*x(tERuzS5~i~CzR(n_A~7Ml?@(S)*2zX_6&0E zSm$aXo3*W$Oz61(VOHL^AHzE-6SQo2D=uq%1x~d4UIz_|bow(%z-a)z>fJ<< zkpaY^@Hi;ohMumjqry-EJvY%Y8G#8k8(#}0CcNS}q7z{HssgP#XRgjcusz}(S_hOG!69#O@+A)2T%EQ} zsOu)VOE-`f3Q}4jT0;z_zu|oB0}Wz-BVjn>7URrMwD1~qFOyES=w^us?{VK9-1jesR z^dCN#!UJbC#Dog1?a6#zUQur@ts`)uV5ele0D7Ch$Gi2<+!iBGa11suj;9Muxw=C# z2IT$OOn<+#cSV+4t;6;w-F^p%EG+v8B+NLXk*xt&{;DI;{rmW%_*tfEqG z9a+Z6vMqHuueaezZ%~a#b4WXSf@9glzs@8z?8^IEhxB^$;A?!8c))?R;-ml@Yjj7{ z7+Cu@97f%vIGy9TeTKbl`xf=m*%-*<%_M)PXa; zC3jO{G=;p~M>8DXTo}2~R?n@PE^uo*(}A+GnFyFyrEfj0aYkfp#Q(BP>`4+lM%tw7 zX&E<@{^Vp7*oMq<`4vTI72NV2DT{so^qRq&PC3FI4N0iP^_V)AW2Oq9AP|dZi>jA%WV*s>v7(seC9T4?0{C#k;}fiHI$& zL5Qyfk9Vc`S31;>&*f}%b+mw^KS`70Pw^w(+}|mwy*1O*mFK#7x#tjkmiD4&XY}C7 z)_S9BRV%+KIIRjw@-@c8;qYUOg?n4qRkpk;V;H1d{#pO!P2o2Se7ew!dqL}0e6eZ$ zA75;XkBi$OMQOecgd-s#T~X-B%(;s2Ea@To83{8JtW&y=r`?s&kEEr@!|TQGi-8@6@4NAI)-k0(I+0;gJUo}IeY`C5h6n0d;=fms`J)U#tjG;Sc z*ZMsYZ#9fnlV9WX?n-|kqw{~&TsW{JZ#_V6p{RI8(c9}=v;1yL4}DoDvX2^I-)^<_ z1^@Z|s5yKqRc>cD9x-w1{22NG3fYZm`7=Yfr^U=7ZG%en04e4}$F zQ&Ya}!>p$suRYa~$P>(V#cxFty+Fa77u$32t9&2qqHymga``7is)}%Wv8dqd} ze5;VCTPDwbJ#Y`wpv*ZCzK4p(&^=>64%KJ{n0sxF{aBj{Q!wQ|MJTBEul%~{ZA>`s z&OBL{w-zdTesI_KpjyPI8Jf%G&V4yFF`-6FV8TX~n6c($Rc*&DAp0uEFAOerb*0Qy z?fd(7g8mWF+m|*dC^r83@x!?@AboU`8B}#s3tzLH^?V0oeSXU#`BcKvy#arw~Thfb^>=9F9wsJf}#~9cVBRlTmQz z7zi8VUO8<5$6X2s~I};)_w8v5yQ~6L@uo##1p!%xGkSwrm^Kvb81d8~| z6jPkuX3}?%P;(@?Szh^WS5bedsAAcJ4GFKeZ^*oz*yfF%LS@{)-hF>;bUd?xr0O>M z=F2Y!Xy6S!?%s{jF)?W8(R%G(k?ibjJr$%&-h~Op=jl6fJ0fL#R?arPJ@sivaA+sn z6d|2tqEi~LS`yDc(9YZ@WVhEFn57>GO3uek!-2;|6(@Z_dTQ?s^{>P^R{9fWs$4g( z#OjU9WnSH3(2<4`herMZLYTK6W3$Pj1e0H`8#0=rqoW;L$(ZBoUF-hY^wLPL0afQ2 zJi7RAC+FnUWb%s^JKr<#WDOQeV($IKKa5Qczl2+Au+H+SrC^thkGr4(X z^(;#Q5f*bfhFH>*CSCM{i5r{pP^CS1M#QXkSST7oCeVi|40+Ray40`)^UNBdt>< z;fh`tdS`Yw>kJ6z&`t;)J7KqWcH@2b?D|x-l9@DtP03FhSZ`H(9S^VIil(TdmFL`T zU{!+jkXI3V^h}2eq2{C+tj8F6@XnrKHv~J11Hw6W&FquhMV_iI0n zv{bFj85HrG))sG=N?pvaNU)WSj=%*9LaqPwzF}`)JzlwGOqO)n^C?cj(b|EK9GbPz zF|(evv;LJ@a9gt-#T!BGM|b6EP*mUo^5Lxf8$c{{gr)A#hfhLeK8D93zFMz8{)$M} zjd<(T{bupZcj29PvP1o?w}ov!S3LMD?8T)+)85aWdMst54K?^z^CR{seIv;W%1-kHchH6TFN)&1xKTzeEw-?WF!aHz8QbF zRmyxmRDOZ!rosGEl6LDu&Sla}Vkr{xq>uE-8h zNOsT;+Si~&gzuHnM_TfFg+~MkW$_`XHr*lyC%w=66Whp>Q@i1vR{$c)@d!0~jDYy^ z$1TmTU%yWK71oh&^NHbcYK0_e?IF}07!<1mgfXzFGp{t_T!$7@>h_Oz#Mixkv%;sN z!6V4*cO`0zp`;~^JA;c)08(1cez_psnx0ee6uWzuoLsNw`*5QslAUL*w??t*)=jF4 z&lSoR7vy)K!JfU4P{!Aq^~=@Qk<8+pJC>rogegw_=W9pp(;}F{YVsM|v#hsm7nhQf zTL~yP9WAY#0+m_`Ny&+h0$aJ_g3BvV))kfb`@I%&!FOZBP40G2BxK!t^son4oC`ZC z>Q|oVfB6FUW#aGHGtBbd{o7+>pTA?xOf=p9>^jPh{=h=yUFd1LfVYTFMY=j_n}54w zmbW}SP~M5@-T%U=mBbLc_d$__^PE@z=Q;ILzo7OTt6Wu`HRzrB5|Fj=3YX36Df#u| z(na01dwg`&jqwN6WaZ_DbuK^sdlo=*r3?k=!StQVye^x@&{s>p&1tBD_wdKa%SV#+ z-gevFlaBlsVJPj!E%-ub*_*y!3}Dj)9!GGQS|8N(_iZwWbXwMd^k3Vr54K%(zg~#6 zSg&DZ*BGeGhr<~zhK+Yy zaAk}U%=RPTCljHNs4oE?APAB*A&P=-;gSGCo;_2nb^W$;II#4<3XsT2n=G}z+jH}V zMyVOJelOu?1^3;XLkE+aYir1L3l}$Y@lmNIW_i3vj~-<_?z7fAYj!x!gkrC#38LdepC2V%0te`CybMZu5OhE#K3uMt@IXQj-wx2 z5UwrvuQ~8bavID<&p#VZaK$VuThyxvzsz~EcJ|Br%(Ow?)7;@AaxvjF6a?>a@#EL0m$@TlsEq{w?9jv5GnQ=s{t4fCgk4 z{ovKjyQvCSN2N-umTEVqEPi+?Z)>f83Z5*t$uZLTjcU$q?6muH`N;d8d{Wq%tyz&T zGU>@?gz(hMY2tvK>J#VI3hBmJeCjpq?WOt7OX42+)mXbBncI73c!_}qnlOvk$jIxR z?5?2YcR@={CGqpGrWWd7Bbj!+@;c?Y<@_IuEUEi!x~Nc36C}Mip6@dJZ0}uYThMZ8 zsv}=Mhn68^(J~Gyr9_hi0zug zbvX*3Eq3iW@B70*judA9w)Tl@C=rp5$0mOHrLUWGxE^S7<0@dL_`n(|S0rDumwo5j z8W~l9cle%o{s8GYZ+%X$_&cv_M+fFEQ>$qKmo{FpD@8KJlCFDS<RAB02u` zGX2>3`5!-i#DAME0VU!a$@{I>dtv; zmSgYe-i0m#O@myW9)`|)|86{purxi#K&e&fn#kVitxNt45&cQ zzD+(!rEh8dz5PUEJ(Mt)kS+E2Zfd05`nOG&lCDEq+r1_2`JdEP=M_}?K6r&GRp~`9 zC#MP$K6X5FOZ1>zY6x=EZImUv;J$nH#a;=a(^4$D!tblSGqmKuWfg>URZZ4#(Q71M zrF-C(_NDOfc1LAlcahYSvGM@T7PxCZNVWzo;nO2%w<|5RLHGRolOm_3McM>(a=1Ih z%O$5krzA1_er)XJOxoi=lPg!Aoz;2q?FysbjDW~@lP>G|q$W=5nykD3 zIlhdwAkNP4)IEm(Nlo)s721QG9Ntw^KD9vYC2ITVx~CdoXC7Rpa?M;@uQmnL->NjV z_T|67OjS@{HjH}J{uars3t^3VU*{NzkM8T=o|W8u-2gz%mCh^W{fzAl|sy}dY=7FF$d3WkG)K}AB|AqDK{DRVfuxLBxR+FXN4lR-6zw)8h(>WDVQt`S@S@CZNoTdxyX2UOq^$dcc{8&#SYB%e>g5R$N9R zsruG62@BoWQ|o(Ge^r%9`U=34mzYF{A7dKJ{eqXFnQ&a4l{%{z1UDx8iH8W{ZOk_^I zzc?%OOBFA@gvhU1M9F^ur}F8UVo8(E90Q5b?fpA}>z{IIqyDhN*RSuZ8pi;xx{v-d zm5x&U+li#CfsWkC5s5xysB`St+iyR00YCMe4KKe}mZ@+eJo(rgYu7r%FHz?}&r!1c zXdTEiy;JX1pad(Q^DUf~&!0cX=kz*CH8eEnHEum*)I#E=F3yeBz$!U@gzt#|~S6<$Y_%S#lqIT7znG z=cXCG{j;HRB>5^BXaKY&Tm1xz#-tUs@N#zYVf!*gedgTt-hw~kT6CBpGj+FY&aXkR zJihiwwW)jU-T5tT0t ziR%vac^$?=DG#S49o%`i=vQKaVX$H<-i>1*Il7^Lx4`uyed=34=T}Vyg&nLw_gv-H zzkJi;j`Yx`_B##N?n&2o+WG39%LYx;w{=}M-uebP#|x+T5?0#q4e?Cx9H*h2v-@{# z?g&tT6j{9bM%mKJwJ0y&adq+zUh9n$h#yi-d@2=S!RtfK2exh!Im*HU)7vU*5YP_1 z1^Dw5j{z-KxS}`UKYZ(qT&X`i|KU@hjS%)e$X#MjauB0H6M*9g~8?SGz9{8rj4iToHMI6+;m*Q;#JWJQdq@!nUI(IlhrS+5&$M4zMu`#0v^^%9Ltq1zwMNqJgEMyToXJh2&XQ?g) z*s-T)<_v`PM9jfjdNmmfk;mlYUwm-ndo;h%(g?ROc5|M`6qBoXtWOksQ98D4*eLPK zwX$Q&10wy+4x4~*^v1Ck!;U6Is3a{SYcZwc^$MUt_c}{ROxmn~HCbutPQ6I1Hiz;( zFO*s zyxM3G_&G~bnuje;jfHoaOb%uAt3r@u(7v#*C{>XIoDIJ;-K3y|bQ3Zi`TtgyUE@v) z$IZvs?g}{DUvMX?^310lm#$Xx4z$w`-bGn8)i-|-$uKq{l?v7B-uyh`k6}-Ah_(Qi zul)x80R*>&;H!2kEsg7ScXxM{6~Ku-LlnR5d@J!c$=%uL?ZBLS5zwWH4+^#`Hp)%( zqw_9cQtzuh#!mZ8kCjVmIHek=M{JKCbj<15stunV*5SH&d3jMWbIqiB;C!G#k9G`X zl@92RM~DbDnu9+RaC%)-`-Wpjhl52@3{UOJm>kB4l@N`tF6rM>JMP^?z1*bX*mP{* z3P)F{>Pe*lC$Agm>lflfr(x@WX4!Qs$!zcN@adf^4RqF#x1H(c&|+-^=L-k#em3Av zmc*Ro6GOLGNDsZ$VSJ{u9F@b*!1+hFK93~MDARP|0VRk7#Gs$4i@{r_PCve%`a^v; zLu{h2`1J8hj>!4?4{8pN10vT74XF$tg6XdpKAm5RjI=4Eh8B&xtZ(~R7rWujW$O7H zinZu)Cz0c!H_AvwG7shyi)3+Angx94a$We)?y4=45)vRXES@cffiqPrfn6lM?!Emz zY2_S|_ybIEoa-sV(aBftt~6f`6*bUuwB74wnXhcLuh-Jc@(uNB&6PH)t#-a0)12O0 zh>64MBCS%SGV3CCXDiA!caKgk=0v2BG3WD<-;Ot`d1kCZ)0nYY1#eEut$-E0@S;jR z#6OY#GzPz9Xyfjai{8M2hvSciBZc}uI!Fl=(9o=6yV9>Kl-X0FL0Xve&q}3qPoZaq z`nW+y;&Mb14m_0}s>66V)rBpVnPB}Na(8>a<#&<7TU2g;?Etj<+^}hF2zD&t@OKB- z(PDMh^i*MGzZz>OC4tQW+U4WaxxB=k*vxc|U_-+u693LfkMNko(Rj4+c5`d(?JX6& z1EJ4oEfbnq+^&%Kx2L?Qk>6(*MXxY0Pn~PxZ~lL5eR(|8UmNzIqQ#a9*;S+!Bl}h+ zvX?B8B?;N7v4%miR47}<9-(Yg+4n+}Z7>+y5VB4TX2v$gyocZO>v`X|=Z`)g)j!Ai zo^#*Vb=}u}pIWG07HjH*tu073RsoUOhE;$E6`Xz+7v;YIIupsB` zx7$%mZM`GrIdy?jBeXz#EB$QdJaY5NvuhKtyvSk@LAkX>{FBHitazz*>#0*<$TwULM;SflzB7t%|V*{-CPofZ<8-xx=59Phob|4Wx2usF?QIYwAa+k%JRK6h>LWI-y9lzh zVE46%7xwv@OcSCX3DlIuQ^I~<;1OLN0*>W7@*|bFBa}-}qCRpHwyX6G^c-aCvGx!c zzxGyqdKHK=oq#16oQqucPeL~2#rr)S@N4&4KLru={aiQJs>8^Gd$+iSu=;rK>kAzL zlUIs>`ZSU@4@~IjbzIVy6eqkBA6p`$!~<}UG-i7EUUU*OW}E|%s|Bz5^q;jpAMkrD z)cnbyjVCAGI)vdzW&A29v|l*1^6U&XtcVn4u<+~HzB$0XY|I>5b%5H5Jx1}5h!`8` zqI~o|)L|Y$96Z`X$sLX{a1`{@>z-5|fD$=iq{X@Pg<^o-yw-UjU=z*JGJFr=+2vEz zFQiZVe}EM5BNq*2%ENe3%P*qFH0k`l1;^=Fsi@9|K=|n7fiC)-soUuvj8+8BrA;W? z_=#)ZWf_kO!31-7lO4t-cPORfy^aXBo~OACa65hx;hO$(o$H_`1%o9c!{ZG^IbVEx zBl0Q3H8`T4kN7EVl{c!1uM0nXBZSKTDy93=^6jCY_te_m?ZIakFuRP zAH?w9499)ta($hW44$m19VT{ms0ugE;OCo;ZHt_~G8joh*bnrlvG;f_E*;*DuJU8w za-Y7uw7wa@YWC>W{M3<2TT7J6WxQW%2=Q>&Eg7>!oaR*}vG;GSL50b;u5Lq6{2|w0 zEB+vyfxg@^{m3oRAW)GhBn9BI!$OHziKLq(@`gkC6Q5KtN9cYO+x-IB;f{`RDZWgN z9g*lYL+B?RCH4T(B^U2g0L^8oDwI#R4SW9U5~uQ85hZ4EpQKpW-@sa#&q!eg*_4Z83D5 zf#r#d`)TLJrl$W&6VxJ*zPMg#9DzhRiS@9l&zvw&K+Pt zY^&)Lt}yK+-+)8(@XikVmi|ki-c#E7VshB70+9WXq?lR8{0bCEJp70@LmoOv+Vz+z z0ekto+BFkk*pLZnX zJX=qi1V5T!>~>d-oIbZQqFcra={6lKrdeU$elrJ`^5=9wz(|tvTBaOewraU(p}`#W zb=Hc49h`&LFQsmoVj4dN%hfF>sHzbJgp)L3dXm{*ex5rS%7z6tzqdDiG|5vyB?*^h zyeQN>8~5JIsSXIA4)TijcDl#CoXT`N{5?zSD!%n-Jbw1@dPrsTtXltw-3(6>s6{K^ z&kq2nM+k$@aF8!dDi|*IE}EZWJ=wa%Cp+d3fG ziGU)yG`fEy-GBE5RPJ+beF<4 zzx8h9>*Y}yMdqEtgmShX)@%sh`Xd)M;YXA5(YqX3$Jsl-6;x!-`Hk+_=!PGAYyr}c z%a$U9{2G+gV+!$~<{uyM%3V{pQc$^<&f|wDyKsJO#4mV>{;x!j1#lO}bSu$dr*g|f zY`Wir`Hq^J8tS3O-K5R2W1+Jg&>oc@XN8D4lOC^8fR~HEbX0uvIFewHZtGGi`b+wj}KOPeJ%X0{yWTc?l_~eGUYgZhb>#? zDb;YcM!iq+ssh~H5|;Y^0my)7Z<{g+6$r!`>`3O);TOEho+5c)5mfFCz#gJyl5ewW`m$@Tt{cn`nbPT2f%?Kv0% zcoXUhziu%iO`VE75MKanY>0?RcUal5a4=2$*3q718g4ze>wOT!4HgS>FHF>bl}V}R4~GAphzr1>RqA=UavrcoP#5Hv zIAR#%SR`|$haWK5j%^;ygs)M=j_Rp^uN_S=sq_Z|o%@qEzn`$r9OnZ3tB00>HFLA8 z)`bL-Viy+)`d7K=oa%6-DmqKSDIWpduX1#^C&MypDIpUNCoq^jT@o24e+e z;(Ru00ePUS10V75dMp(RuJ`3~_t8LgnA`K{aRJ?m{g79#pNkQ%H^u4oYj(k9)7 z^LU>;q%!9{`O>uFR9#$HAih!g@%H89dg)+N@L!i1|H@#;KYsV*{p_4^6N4|tu5 zRrsbc=1wKALoZKNd+EB6b zg4gqJlVcsc(jK+^DNN%{;)>tk3gCj<#!wG~#-?3rpz)_D<-I^#V#p*mXpNJY$nq`U9p1>7FplkbNs=zSfa4uqpFR7Ss_s~SI%S}x%r1tNY=(fy}+9cANK&of0 z1g4cwBzw^(;U{mfFXi_D_gpawge42kOR1~tr^MF*ia0Y0F8J-{qf7sR5ea~Gy)jU} zn6nMzV8Hn1;xnSo!cYpTx`P?IMmC^^4{T)baa1U$V3th(6Bagh4O)FC90y!ofB`Dy zHZk7OSDl)MB0Cau(Qm3$L3#=og*F3v0An2>WONX$*{rAoXHXG*Zg;p%QX2%u{eJ)aS(bEFjxIQl+;8x)W=)u%joErAb9qC zHP5pM%aklOYUskSNMf>R7Ak2W;{z9{RU3(sX-S(1r0;|0UdND|es*Ixco8`>-cOsa z)$StHDaWv3-j5EP>9JbhyWFgN_i)3-CT$OD7j-jaaEBU+ECVa&q3zkPfMg=06K`1d@L#Q1lj5DuM-I)EJaa`I8WdMxXWF5?`m)Ih9^2D9k!wa3ynfn&|R ze~MiG;Rei2(!yIwoX8H7l5bxzwf)>OF)_iHw7Cp6?FO(2Aq)3I#IGQ)QxCsnWceuM zf~ADa6LWdKDxnoRnA<;^TEUF~?%%!#he*<78j*>~0b8rwcjCZS8flMrx~jfBkCVDdo4Kk7fi z(CsJG+^W;hDPzr5pZnvL>=JTr{qAnvjFQ#*5|?e{RL2ZORP;+f1BuL0?G&&T5L98T zdYEW*X#q=4pC&NCFa&HXEWJ8Iq?@yoEcQ;^{75IAzqm0j6R-q7>_zy(T|QL=TLQ6PCiG_iA>A_o^WQE(|mO!uxOkWZqxJu84oV0DG~u^d;M*lu)xu zUd{KzLLq`o#k>BdZD}ldQ;^B-q`#hvz0zV(gdfruInS1cbi1V$5Q;1_SfC;2UI4M_ zkX_(~+%?4yWn-f-g_GBv>g3o1JfBPRrjzQM#7W3awC>u1<8y#NSy&2IfRivaQRVgyUYdND`IK$`ncr}?hiQ%uas?8)6 zIPmj2ZQYWZm2j*cULf%9DUYumNYUeMC2%!@^TY$a`e z>!}|w?hI?VoPj31`W1)?8t~H=u5NOVsK2!3r>-zk9KZFjzkbTFyoAp~6*kN9S|p2+ zV>G;}L%+Eno%Y#W8F-yQQAmbQ^2-VMcJx-JiP`t+F_)GYzEs(8t0aeL(-{jwX-Su; zvQ*FYcH(a79)p#?ci=BxtoyosTJNPbgbO%lEHnqia{P6)s`Rv~jF~(+`?~{Zl$xU+EO4_Qf3b+#UhD9H|;Y%y%bO3f7ey>6U+7vqm!oJGcB1iCqmLT;evTo5^3HorF3zL2K*x&mzt$zb-Pk+#Ni39${aP(R zJDRDxUI1gMZgaL-FNG-aBdiZKz9>e8iw>0=d?>vPZI>>a{&9NbsOYVRhr(uj*tWv} zz$F-1X>F(-qD5pILsX{*qrIQc2hp`;LO*^dRmIy$M$_2$@R8o*Hm#dmjY^$D&THn& zW`R=}#^V4U?|0l>%ISd@uWN6|r<{XlO)X;|}~IC3A`8r2NcW&WwMQ!R3Sl zYJooB=y_RXVI^nKd{$v@02Zjz;9oPeHv&=hiE|YUc@_%(JBz$7jb@ z%*NG6z#$E|xNmVkogawgY}b+k|46Y-`>rlmzhgWA0^?-9iI&{i977Km6h=rm94X*v z^3(jn2@d2z&ajD3u+scAU^&NwO(ejt0PlhQOhM#aMi23D$MzNB1>G!GyAWgpPyg}< z8vwj4;c+$*lF-$^hPGy!t z&5H(FY3w# zZH%LBCtP%%D&rV&unF2pl%>!?ZmJMZkO+42=0TsHNfpeHw}?6!w{w30yV-EGcjV$m zfv!NDYoAv@TH2k&I)*oWVRlha($YJ@y4IB#Xn@PUMTY;e!@r1|e8X3Ozq-w!O}lL1 zvSay}Ak!F+3xW1+h?V&_4V1ztS!;!_491S{`)a^ZrX#Xvsyu4PuX&E`OqNdS6)2Ir zqqfU1NZCkG7iLvVEQ@&=9lgYBkI=ae?6i?<*gh&6oHuV^oa3Gw`D8qXhXf7$kl%Sf z?@rf}N0uFrO zg}?l-#`5rxP_xyr+)XB-^g|(;D5P0Vyk2RVKnso)3PKi3f`PJvT1|S_ERnISBzK+* zAn0IZ1KWBmXg;#IaAG~WKo7HfX22yZF4h$Dw0tVGg0Zo&scGpKy?x7*MjV%38Lp5Z zetf%ACm#vsaP{dA0DRAP>B~k3$!`{^oHwkC4yHaCil#lr1dO{FC)(?Kiyu_bR`_ak zxR*c6o^>H(E%9b%jcSl3`>vLoYxPGkJ62`BL_TofrRP;P^EmV@kJ$kLwj1Kdu3;zYc&N$!vfU+_YG&cB+fZl| z&s>23jIs%M#u{O{ad46;Ugd6 zb}prsr?eo^wt^W;UxW49Kk9G<1C2(c&EwBJ1YF^~@UBupdhst=NLJU{40;v)r^7o*l zlGq`1d%q`p4_~LNwitQHm|`2YbM8824mG<8gVV7`r7V~Tn;C(I0iAqct|S9c|3nw8 z+lyvPCc9W~jcOhJhYY4`UbXVBP59X3&*#oExJ2xb_=t8W1rU3y`rt4FJ?VKrf_4X# zeOGqf8UxS&tlth$V|}6Kh_7_N!glLkevSzSfs%fmo0@By01r1) zH^0h`utFZD6;5&LFdk;J?u75!Ro)nyLcN-+!He<5APR?mGY6*I#*%s*^mH?ouvw> z4PszS87Cs=0yxMLpx%CHy5X1=>h1|BO(dV3`k{We$K-St0=d-w-Me+j3!y7 zs@*5bb5TWtrfhpuP$+c10%&zSJkWo&I>8g~;$@Qg!JMeKY?Cg~KA$(hvG=H|Y0|ZU zZSptQ!sQkvo}tqnypkoZGiAHQtIdgH`)YZ(!zR*=7SFeoS>(iXYGgPSS;1fhdv~MH zKQlB!*{zy2+Z}O+y-qG#dbhBR!8bI)-_ynQc-4)bXOW+?%|(AwpPOG)k;VH}BrVlM zOCA!jV(PkmlOr@vM=dDblbX-^rj%9}>v3Srb?fBe*#D7Goo|Stph}rH#LCzvO@JyL zBeqZ@?$>2M<-ERoU}6oTTMcPq9s_nq?Jiy6$%GQub;E0Kht|`Q-lKrRc420brWCEr z+O*u?v$mr&?~#F|*;KQh5;!HS5WPkZiM6husvY&oq~pMN)lo#E%j#z?+T$Pu zju`&l-Pv;J@>1axwF!>!jJ=c0=N0?mV0Y)**ScI(#s9VApmp&dA*Wf3ZJz+3bTUdG znS|6s*$AK>Y+!WPibM^caxQskSKj(dbgHoPbcbSN2R_9I_e_k*H}6olilvc_)#!)` zaPz)JH?X-7fOF(R5xE=&=YxViAjIo&puzP!D$qfG#CdLyCxhGhh#%2s-C%|2>_yBw zy>Sfa?7gd-;l}ZRmjD@AL80#>*S6sPX`WeUhIO&@)=zVRF(RO6iQIe35HV=G1%}P-h9KEt06mpw{M?>r7fY$a zrlJmj>=c8<<_OLeeKI^pHthE`q^I1;EgP%;ri=(hdICd_B$2%%RR-tQQJ8Hzjdsa# zfdsAHU*ED%VUf5ex%*qlZ*L>btZJlIFE&W~7TZc9FG7pGjR#g}53AjJU2VgBZB4y8 zq{GvSUGDuLNhN#K#w6Dsc=`amy7B+zsaH(bBB-ETQoHuy)#6gjDhwg1`q{HDiHXty^|J!^CbUp|yi;T&r$ zf502wnLg_w`t49cHt7!7sspLGyQbgnEhvUocYtww8mP zWn9Qk@CMqZ0o_usBeL*(C8k>b&YK=MpYWT_D{YSWyliJ(8w^)j^!k zaRqr%H%T-LD~(}+sQP`EXL#{4{E+yGwBV;?3};=Hh$0qyso%bC?S_lOP95@PMZoCn z&0G|!)r;{`2k1!4r3m8u5~d6JSli8-iu;sEbHLP{>DIkORz9{)=6uKSheBNc*WckH z1lq1dLYZ_}W&3x_lQJXxLe0ky_LC{H6x``sud2(VXVYGVeDO9*FwoE~HU-5mQ8)@n zFLEHN+i+0p8sSzFMERV)H>Cq3(q<~a$o#;95C~$oGmdge(Y9^bf4i-O6d1shz7Df{ zTVdZm+mUsKfg4LJT=a=Sx_T!UStj#AJ*;I$5X}->ljs2J=Y)ycjBc-5m1YUMr$DCu z3!%FJ%v+QbZ_*auq0V_tiX8rYw__#to~}wv&A6@vdwv%w_5P=g-ZmF>6k`Ksvxa+k z9Tq~V%X(d}_ekBp?r6`cj@ruC)j&vV^`gcBi1P7D1G$SM_XwI?rcEX&`>eiWYZV=t zS1EiO_YURug1>@xXJn-z(R152cO=Ew1sjw2VBKBiv25OUpKS&P8%W0A_GhKr3N6Q@ zbnhQ$yT|`OHrgJ5m)C`(F{32NyW|flOd(E33+E4etXGI7`BI%hQx@)l{6?A(o2AjY zgtfG{YXTybGOLCX-13pmjQ@|`V2Xsg@@pjn~Xj2)a<0gn7K70;XuLF8+ zn2#*OOaOH4I)B8ez*jLfHTB0=!KJ3PNe3X;hp!q;Z~rmZ*$Fkf9>jXu8BlSqNxq9Z zVCj60@~1O2L1z@SOkd11u<=T5$ymKe7KNGAV*`Vq3waEw78v1{#epcnvu+{Et7Nmc zU<<-e?(zw0v7hF89c9Z4UClrPw{HA_1?y$zv{h>ubA7IPW-*bjTvYCV|&*jwWXvsO=hqO&U%DZxh z@J(|7pmkQQeAEat^bHt>RW@*!?X@^xEc&NX30QiWMlYSG5|uY>V$B@6*ig?Gpax@= zByvZk102{Tg7-sQ;WPZQrL^|FiL{Ym-^rCePTh%H7#{G)(oz<;Vv=2No0X+S5$s*7 z`I#`kIE$&Dfol}nCFh;px-t=K=7K$MnppN>eucmJ@Sh$3Q{OdwwP(pR7s}yvBSJ_e zeolR6ZX!8H;((L!me%JOux1qUlB#GHI!EwyMpvwXV~pSM4Vb>DsW#Bo`KbQtr0rRb z!kim0E4!J^sC2-Lmjr>mZWLY#!IzAy++nr!+A1tTk9#!sU_xaBr!8?7l4?>CeEK8N zCdgpN>Jv=27shvXA`%T83GcDaBw2dWhqAPtCY_jdLCZgA>Q8Qe_Z%>sv=G6K)cDWc zxmVxcadWvAfjL?{ofsJ)mNTXbJD;`u=oOM+J%a}3BvnZz0To!OV?IRbNYj2XrXTjn z)&b@WF5CW%D0dqEPsaF)OJT|#6 z*R~)@$FDKjxX;&gfnyOs2w2DZqwXfUqZ~}yQR~H0N&`=Q{zq`u0?j5sj!*}*2R!-~ z#~XTpk&(0ib{w$Yg)%ln_q63k(`%h>Y&~8-_=5+8vQ|FO!-cEc;Ww0@W;ni!0!sL| zAD7aUfw1DAdoro2xx??<^W#b#+bnj0?}wP@u-rnRBoEKl{#k7>RfRI0W~TK4wbg6lSdT5D^D7vRUU$RTC`J5N z?&0I-R}WIw+^hE(!~l^;km(ZVwO>b1Mkp)aWo}Qrn36%dcQ(|=fh!F40XnyBU)TOJ zB_u*!lyMH2j}Kj2o!_>NTiiB^^%TpoRB5WW;!b0YF;*##A666dRA#r(fT=_--A#`v z=awXLbZkEn-g-o;ZPLo=ZBKSkf!uQi9Yv3I7>~F+j{7$Dcs`pwe@R76;Nzfwodalo ze&{fNuoJt_T6Ampw%*9HLRVy7nh`PJ!h~|&lixBQv*$nYH#7cy)T4n{hZVN2MRPjL zfIcTSt)CO05w%0h8(IUMz)}-mmqh^3vfI&SD0!A~9x$Ld0(s`%%!C*{sUb)3Y(^VR zocJQedG_Eztk(#fl3w{nkv*UoIZOx1O`8Es2+DC84k`w1{;>>i*|JQWs9EYwM#3je zwD{8e^<`L~oCUz-r3~GFb<;3lgETleSX@+^5V7<6UO)jjpZX=^8c0*lL(kOAK7ek{ zlS2QrY9w@o9}&lIReRry44j$7ETjk2LrT!6*neJ43f17H9k>|UZJ<}@|775LkaAol ztDpDZN%NlGsnCrkXNFtK83H$a1pRlL=)g7X3@g<7P%<*$;Mtgv(^v+s+^)5VUy3hL zlsz33FF==rR^`A{-rP7Yo4{NF@;m6W-Lv^T2s%!4pAZA*VQV;N>oatA_4nh;W?48m zADdT&3~rUm+%TKEF*7_pQsO%8bubsNQxr{811R^v;# zt%z=}zuD%DltJ6!Z0?_!OK}%-YUL-cF871DkYn&6@7pVKR=KA+9~-+w3FsbZ>>$YS zCF)PyhLzrZxfpQzs~IZ2Rt03Fo^{vA0?<6t%`^o3=Tldkc-ITu6zZ3jQ!lCDeCiha zys~YF_ypd{g}SUV+h4$eBdmt-9rRJc7e%$sBYoB3xt*c+f?{xckQ) ztO%V)*pr=UwNva#zQvuAfXz?wSVVqdnQTNd$|Y^|532pn#o8CtU(Wb*$`lGFB3Ua5)y7+$_?k?a`zS0u}pZ-PA6dQm26S6V& zgJLr?a{rLIz>BG|v7#>>bi374UV%dqP9p0JK$MSlB<{BEbeP|Gzk>mvCSLx$BN`Rw z2nKleY47?cyr>DePeZCEUx(Kj!~{-sfZ-LhsK6J2o$TQ!Q3}f0lq3ayyU*8>j&cg@ zI8wptoi~(b^DhV34$lUz)|QaJ(=1R3kN#HDem4cR%d0i>TgPI`*h@}2;u z@nSxMZ|2bdIP{7@UF?3S>gTn(>&Fw7+9(43C)ahq=)z{3xhgM#fXG;$$LS;_Yzp4A~ zU&90c*-EtyMpN=m2%9vX6|vR86NvVmLE4jIP55LMAG>XJ&>m7LJTj~G_{+T+@&uP* z1^9v~9yh0h{p{s0``xRS#{*6J^>?a;TxgFq$bYD6CO+?>_i&l=#n2PclP3aj{U2>^6<{j1SIK3>pfS|LBY zxwX-3vs=-NysFQ%@=M3M*kGaLU??iDB2UyRDErLl?VnYPu1`MQN!5TA*zB-^M@Kd;hUfD?d3=pwJQnFFcH+h5C_AoJZef(o z3^bPT19&p*bq~zKq#PaB>TFF|U+#9X^qTp^ z96mcP=RL!A{^D?POwN$dZ&gk{|Ii(x75~`Wdg_Zy4fk8Hzp)iC6m_v;0X)|huo2cy zQs@HLKcxnI1e0MfB!uYq#L98YKGOBS5dPoV(e4*;s`~&Wb*&GencBN__fT0Pzx*bS zEPMz@qBI2!U7dh2K%eVKHv!xT&}?wme(vezmeFF2oY|zxk)}GG3h=T=Zj%=^MVFB- z&F;*NV&>Q50h2vo<+L4AN>qh?OS!z|-KCYoLONXn+smyy)bz(7ib~;~q7~K#!OxaM0eCciOHw0!G-1hyv;-n#vq^LrCKtEitXTE;IC>(EOlGcCIr+ziRg!DSRzSn25-#A1lbcW6A zg;m4EO!By=C1UulT>vh8d@~U|W_3`2+BHia%1gUnD{%D6{)*2ZgTjc#|9SyHi>kBL zcwjCfeeS`ZUxX9-AGbOL2Hff#*}?OA0Emg%a!uWnxfJ?vE`}8bw+OjPREVAb#(8f> zr2?ubnq>ug>NP70ZUF^Al8CtPID7lntH2Mt_CZypLGaAPu4{ph{+)5&n&m79zsKBp z&k3Tvv?66YK(wySzec2yQ#9F>Rp|Fg72hBBPJ!6XEoK=kd3fY#feIq;b2q>r;LPx(cyroI%Tc{_N`V~<>W*znYi%V_FJ zSGvCPwB6!S1qQ`e*wI8E%V`rduJwfo%WQR2%JT+eB0Om$jzu5r+X_NO_81-=aFp^U(&V*F4BYS-<+enfjnG9 zCQ5g0Ut+)V(Z*FF^4opid2^%8)t5Whd)vWihYvSJ*)}Zn1WRu#LzoV{Hp{v}ZSmb+ zAt{5k_f|2aRuOzNw^Z1>ghf{kpvhePhBS?R@8LbekHeo+cC8!Xq zS3{Axa*a#Ss@U6zAMN>MXvKh$;*nDV^C6HCOCnjo z1d1vhU@RSAO-xK2cnscERc#>#AY9$c;1Kt0gj-UpfDS$luBcMJd~T_yJg1Ym-{P@~ zCDYrIF$u(kW&{36gTpn0n3BoFp6Gp~g*TpVgB?p5QELlbCEe$X1X9n{sl7fZnAv(A zlnbw|zX-Cty>E9m*w1}OntX;sqDDXsKA^x(I19%DBgJ37f_RS1`0QTalox9oCBg0EK*_XF=+NTzsN~hQE36r$ny%67+OdJPxPm2jsZ3%!tNV}J z>+TKw7T>Jeo%;otlz$R8dv^{`4ITM&Oqk}bT;IL?KMyrdETfJzaTUg!WyTNNakZSx z>DzcHwczb{qDj2Ca8#8~*ESpcvs1_Rsq^-|X4ndaOcVL8d}QQ9i|I41m=z#Wn6E0& z<~o3Z0%IS_q$A&_Mp(+|K8_raFIvwXsP>LsNsWA%Xw>d0fB(}RMqxjpuT|3W5*!dg z%J-_u9;?TXp4Q|r1W^Y9XV%s};ch>leR06TRd?TyqL=UZ#uTl3Q>&k~{;;enfUJ8Rz({Kqez+RO^mZMMQ1dXkT;(!T{`e?QpFdyhNQ z(FHTh3GH*@M9}v_#dJC(&qTn}Pn~$- z*=>eMo5SCq#eeOvcPt8jSfrx&$l}{?@HqO<{bp1_QMS}6)_o1fV<7ZBQ{dYM2AVsr z_!H+`=Q|U5CR0_}zVcr4NxdlVH6i0w@7qg|XH_KK(25zVcw+L}#}XGKklg;J+~NGr zmRhhKOx`P!VLHwL_z$t*cOz)@5zB{8VB0IiXS*!blfua5nY8!St$Rusn0Vh(ir&9hRaLpVch@G*=J0DjYPxlj zC7e(g=vCey+BDIXuwo`Ei;0Fe)*CD+=JeH+IbTp{z5l7&44(~dB8}}<9^6u`h}?TR z9W^S|Il?NSyp4yaW6puO;HxR8n`m9|^q7c8k?#u=XSv<_S2z8Y$6ue)2-JqXC>^lM zAzJpBsW?rWLm+N(w;McU5Q3#v^84PoEe3BT9Mo$j`dnC_HBR>cE@;sex2TjAl|+>6 z^!h8qOCy%JH-t1HesqCVZ$MA;#3ahs_~b)H6F-$kmp@VDu2QCelAobJzf8n#x3(&8 zPG9y1XT>8;vf%0^yUT9N6xiRN5jdNpWpsc2>NxmfI^?Rx33r|x!|U|u+w76B9p~hk zD3*Qj+zs2lySdfouu}2h4Ko;wBVum$gK`XCQtr@|XIQ6O@@VcC-*(htuj7=;9g@e5 z3=Oxtp4*;3f1Z*vu+_B>?T6~Wb77$CIT#0*DZiuo&`{6yRkKYHvt^%P^W|JHt1Vhn zY156_5fQyHJ!BC$ZqD@fyz_V+YXhmxDQ}zQ5oPK*-kvc7GpN<`@EH^=S20ta036MV_ctHR>Faia=WoY zc1-Ugw%q?j6UyS$TOCBbtI;vTXR!Ai5thF{@#Gf{4xXiZ%wb*-j#P^{t|l~;!4wFSkzY%c>T~ivuuZc$67uFvnt_-zdf9ILu8T4Rq;d3v(-Pg>R)`vm$BfyNxnS_Ld zw74$(%sv1upVQ&)&6M=|y4oo}jmYKbsp#i_a_3~sI{5YT*lu+!tY3Fq!{ROUmxG4$Qn8*5J9``UnLaEZ9D!IyV_;p zmbR+U+WKV8J%;Y-Mc-mwqUek8Rg7sl*>b68`p}AJY+-SI;|)Qd3weRr>b(?JSIGa2 zwJ8_JDt|}Age@>>?cy)*=k#Gk71vC(KBS+xKwLVOh^OYOfT=4FiyGjT;;HJY1NBk?NE-!@EUB zw70h-654FodVGq?959ruxZ~|$oL1!O>;dLLgS^1ymekRomMgNa-o24>ZFJLLOfXO! zmoBFuo@&}kd3eeOvsDiaq&->Y(07$zT#tHV84#6HS~nUyTl4WMzlmavxneAK20LQ1 zyj(zej>`Bg`7qrI^@EVJ&iC%BYRrq>j<_XGy1HDZ-HEm4bkK~q@x#_l>N5d3hUlxX>w91OXW=UOEdf}SaYre zi_SV(>&@rSpC9XB%&+BDwpI@Kak59Dwx~HdIkc26CvXLZ?akS4wYRm7#CK!>ZmNT+ z-7;)<45k4z=Rn(k6bu1=3hiPImEU^&bYz<0>f(S~YO8=AKFvVU>T$sA#*|=^8WTnw zZpvs`ecz~P{EBg*rOiB%WgdH5FEy^s-RGkZFqvXX;6VSVnP}>J^c%Bp_z0;Z`MvAKt&;s2kXNdpePj1Ky|DE`PKWD`lC7?oCUJ zFg9-4;E&uvf-nVhq6SCdX?L3+LxNIdQI<`Iw}XGirjFiwYbYp-8~XX7g-BScPqrsD z1^5DEi)q7rj(@Ag3m?K*T^=?1lN&9NU&$eV8ckShugK`2xN?itkA2oeP`eja!& z;gPi`V0{g%>oMh%p4umh$Pb0(V;ff&FP}fJ5FU}3vuW0;<>_U&6Fg8I6492l$yi1W z6mApBx+smJxJAB4aM3JxKU+eEx6vdq9`*MI^G~x21RRlIi2EH z5)4H;)zu~{k_U#iSJIWr0viUa@E4Z`OERXR=0_b{TGJb>6eIE`^SN!BvDT7X46D#o zzw)2nvsl(E31b?s{s&6pOJJ}2-olLbo^apzIypHRy7c1&OSrx9PSxA_OLt{?>y^`n zvU?u3-&T@lckvX@BD{AoEx2^qEqUe_+^XWi*~^z{U~ra3a{KyafY0wPn_0YSlLTp~ zY!!W31xF~T&7d3-9jJ0hHpwdo^E1ErE|~YeFIHhoU1AL#OJq6_rKamc06Zz2c#6pA zp5ay0{FE_N9O~llppahTEtM0Y@k3-XdUt-1}>t;D-qy(-qdsb_&s0HJs-Mr zO*eTp_-gqnqAh!dw%q zKwd(>ZI^%EaA3J_jY~X>OXFews1*vSZDB#&{&3BNNyfj@l3f0BFBrI zb;kd-huTsn$s>F{=an+!7vR;VV36gxoO*3iAvw;Pt7S%NR?+3-8pzmoJ3{PrllNdM z)3$A80~gPoT1_>yDuDq$c0)S0Kk*PLdEG!Fsho=V)?#uhN@7m>=eIZtNxS38qOJ4qJN{y`_-+YSooOyBb zJ0r_k`%F`(B~LON{}qpOXw%9htm2le%6j9AgK3(--wF6{2&vE}wQHAtMAbS^Gwg0G zzru8)&qIRe8OFQbY>10>_dj|*srMaN+}?^#JBVti7z+$%92aj}8!{_%J;mQp^k`|& zdJ->x3+FGko;u1#!9NS>r9kwa2Ju&Hq2JoHMn|G|2MOi&Gsy3Jz6}UE$P2~lVr0>r zJ_?J=E6bPa*`9jR;nrL-XLAO{U#1wCM!U<73gR|}U*Dj>(hDR-R0#KA4XY0xv)yWH zv$BeBb4onB8~L?iggbTSW_VE@%r@}$znQUd(Y5o{!SLSMoV7Eg(T*QK-jLS@#iZSI zqVhs%&BJBjwc+Bam&AoDwV8U{jbTnJO}* zdXoCM13>u3G~dv@^m*)0`ecRDZitaXIe1PtiPzuK!gY119lH(GG2+#J?FXHILcwR~BG*(OmzegKZh77}AFE#H!BFGrUk9w#X2Tlg zs)W`UL;7tXv%kVBuf9J>&|dw#2qc6~-4yBLtS7qz@zZ6$g0Z;oFP2POP<5ZwwjnP| z-5P3AWL(DD*2fy2=XF+tH$eoxEmo6HSn0c78LVbtZE&DR1#a9Lt3V)nQR{W1TS1Td@x*}4|8{?H<_~H|Y%MYIJY(-JD-KNs^(J8r-Gc=h%-@u$+!^Y$b z8pSkfFBt>U(89(N4hF5&dp?|ki}SKn6zyz>St}OBPu@8FC@}W1mEG4c$@zBRa^yC{ zUt!sg?cD_y`6?>x)GEJ-@{>iLR>JajSV?5AZ#eMoA#;a@Lt39mytX|D$iW$Qs)iF) zefqH#VENOAvH*S?nwf2RD-3`cs}By#1;4uGi8MzDHv8%(i}0ZdCw;1XnuFGca|lNM z_%xyq5sH2;;Qr&Z$~IPGyHWcxahRFMcmDZ5|M_d<$EbaGnZM~Q|0KTu;9alZZP+OO z)^=m%FK)m6q0`t$oB92twbbL$=mz&j^5oYMmWBY2<1xH_`rFjkuY!|JG(Dn%Z(hY! zdm_%(UGzS*k5t)@kQUnIjSAOQQDVDFSkTLBV*R(ouCutl<1eZv_{#Dw8CCUYE&K*k z%r705jz{Q{uK+GFe=`VYVr;zDox2^12-3kc=y+3lq4*mgkh3 zgAmSjh>qFfam%}w6w}tNw`%Y`HJQG1I5qiTANETTq==ISb5uuE)mY{ zSl(#y!ub))PPt722C|&ndDj;$nvqK$_Fo&av@C@qZ^)v5Fni$Cb!E$aKluDEZ$~tI zj14EXzr4%7VZqyj-*+u8r(#wwcrPl6?Wu%$|I)5k9zf=>I-kSu>8@r3vU|7$5vldz zP)^?t%-%@L^YhP5nOsV;ktO|TBs6LK{Z4HH&FyYAF=II?M()!E5Q-Y!ucb0v@Nr4k zzBe>hyiIL;>)vICPs??%d@wD)yAwHjnJYW_5O>Wf#T|dU`}XO01=KGI+(?AR;fHl; z6qcV90skA@nTHg|Se3Uq-Jb01w_N|FUQhcP?(;P^N0GWFr)byPspzwDc4-X3W;Ia7 zDC5}QRlctN^n^>L3)XVfd%4WNX)sdJWq_~t;k;zv>W9wlH3foMb*+L|{SS`Z&R>4I zW|4vXuKdb36dx&AXDnGXBi0^#-cfzujLrOt>>YuN0(5YfI(vLiCc6EvO!WQEk*2wO zT$+6?({!4*sjN+OeGN0lFsn6=TzX6 zk2!A1;##A=-M7zh9BON8>nieJLi0VJMFB2ao|g<{w=XNHCa8)1M)o9&LBVDP(e=VB zsfe06$H3oVm&{d?MENgdmPIGaCRq8*+patn>pn>%_h@XlbjkP5l(tpA6x z_l~Ff{r|^FRk@-*6mCg<(Zu@BG4r>3oM?fF5@T+H_BO?#Cbs0I;|Jd;o_HFSO`&vxfMYsZA& z+XqFSZ~SY7Mh><3&ynTU=m6Q+e*fHTb%vpBkx6r~^k^){1A+!6*^G_TOAa+- zzbErX3ZfT^U%xbVpl=nYcvx9?^|TV`-syO-ZILw6=ciaSUp`H z->^r^zR%g|6Q~6#xpoGg9DeBY)~Ku>o_`)enZEoXq97>zo+p1?|2{W$F+XSlBz9GU zfKTbBk|sa12_!x7{q>q{(_WW4tkO$rsGVEMel4(b`=B}QRWoJkO|Q0BHM?&FO!i&` zzMFZ#$1=I+brh06Asg1F4SO8+>_R*C$>|wKEb-=?494Y^piGrdSQq2Nv8l>M;}Uf~ z$M0{M#O=KZE9$bPycW9?Yf!LAUsIV-Vse(R9BsPuJR(jrQu9KyxPZMJ#xlp1KH5Bz z9vJLZkFMLbpFAr!Q4urXIQRu;F9}RzJ~8O(XDQB8trw?njMz??`A8iVv%M3J{TO^# zZt2?QNb#^%=X`~xre>gpLPy|G*8uOisPbN8dnwDZerRIV17zI4*k~HI*q)|pWrn;lae=7y*W@{=ItZfXB-pVa_=Z^8Q091 z-0J)4Fj}{)SD9bEu{R^`KBZG^@{O3(CK1#cN{_B+6l--ub}hqliB z_=1e98t7B1G^*iiHcwoBBDnG;4T@e+Xj0v*d{gmb)rV}CrQPsHNQ`tVgP2U`u~gQf zQNSy!9(>lnw6|GUg2d@uyiy6Rd0WIa`|sD0Ndj~8g!(P!N5k%GxuXOC?;P=}`5grK z7z_T$apyXgBAJ&acyjwQmiNHaN#53OJQ6EiW1f$zZJ&fQS6o)Be^;J&bAcmUK&N%9 z*YqAN(k{_hw-2MUnM6t5U2#r8H8gykBU@A7e+&S;j4^WJm6g2mMGW1K>y4ey7LM#A zMZ`T8kTN6F%nL^I2nN-y_L92!LHrlGa+s$X!yn`6_>I0bwLM+ViK~Lw49jI#o+N1F%@!_C1 zc0~B8dHSjkd6PF+TASEu%k;PsT58j`<+68`UIr-JV{h?_*cK05I}eXoT!YNtn-}2; zu-(7O;ZG=XR4_b)E!d=4G0)xghCo)r7ppfnH|z5@jln9{WB?v6vh)RStwMj}@SwwO z#6b>k^N^TjGqTU#dp8L=y6oy@7HiToI-lrL;|QxdLag|pa^6VWubbBT_1TTTU$PC@ z-WK-;!8MYlS)x%iQ$J zwEJ;2{ayZt&XPlI+V74go$bQ2ee$NH!k7D>-;yU;&^PJ&G3S0)ww2A}<>x<$Xtswy zM2aXDAl?5md|ZubwzW7T z?bJ=fEbbwRuAhfG4it-Ez;SJXNmnTj@)p`eDTK`b)h3xxnH@&|?Dy%ejN+x!L`|6cp! zz^C3+bj?Rpbj*Ixcbs}L!?pF}^2}ZewWT*=o1^mR>VR8GVc3t{wCV_<*S)e5ULU%d)$%1t{S8fDi@0u(*z)XMFo6iedXX)sU%y{}F87X4kJzaLX@Wka>1No2(npbzB zZsmyu{|hL&4#a-!QTR^o`TU7DrLYNPgXRss)x&Q zH7V|a#|(p50{jHf%-+v-T@@C~^h;Q{ncs}9;@S$1uP;rnEWISUBiuy#v#&5dg8y3s z7q3U2r_Yq91z@fIbAe83E=t!lphh&nk*fBJZXk^H9bVkF$12a&S4fWmSkj7XrmEjK z5%dr&`|K4VUb(_;QSnEs_xl*Z9{Cr1C92kIMg_FS-(la)0}q(E(+~yA2<*ZkYzl*22dmHBXNB!yc~RyBYB=% zpot|3ELC44{$dTa=xGj1xcsGT3*!~0@>JVSi2FB@Q{gtLP1flw0JIJ)-SoISFA~0p z0lC4q0DjM1frWktlxjU0{Cmh(2~ZFuFjn41eh#VBl0wy%2-e(^*0GLM+TT87 zZl2$>@v)w99!{R1>9qBKo-7Rj;>AwSyaJf!^-~NDAqIC;?xf&q;j;eT@WoR7=4pH` zj2q;oCgjLdIGqJJU?0y~qK*R@_Tkvs|JPAiiq4A!MRr% zL#<4{JGAEKNOIFeSM8A8Y3i+FLUT{FO~Okmzy)Bi>+evW6Lx>uO))bf*V-lOxLqKh z0$P~W@eHNg>W+A1;Hgr0Li&Uq0P~-RJN6hmfpXi_=iL4?uEV;fFv_Ep@J*(t3lp)O ziJI2)A`y%6Cl~g*L_5jWQbBDY58Wkb7|97ap*04wy&R9s>9Mg5q{r*F2qEH7$M@>( zntLRIW9el=hnCg5)l%_?K{Z{9aMI9LbtiN&(Vr3guWmWsIbhIIyb1^~tg*t{ zQmd?4X=bL0oC`vb9~OfazI`Vnl0NNCbd6Qeu4KnaZ17}n&xn8F?_nc|5J*Qsy?M(O zT)W{mf0^39u)MBx|42mJEmVK%jy=``wEiY%uK;Kx&sO%jCSqfLRtxMQc4pKKF2lz~ zC4GtM%-zj*J}Bf%N}W~cibGwtZXohO5JLMM%W@jYR1KuO;0UQvcJ*O(*xehWAWh5 z#Hlk|!-M+mGj1(8Rv=P8r}q#f-F8vX3R17$f6=BVD~ybp<8$tp2;~aLq?^q2dTF0E zPfVWN+rDsU`X7sv*D|qkV}~}Nx066 zt41^KIVdZ)Z2aMBGr||)A8xO%-sayq!d0_8pm|XNoO20|1z}%|g}k&(nSTsQe!vM^ z2ArEi7!JoZG8zKcz2i~O(cDl1E;Bjr{8L~^05Ol~uTJi-mY^=@%r?lg{UoNn^%1mk z#6XDvERCtGpDCgMB!mhOQ?1@ryA&(0UQu7*Q9;E$ZoE{u*6q}TJwc>5=;%$2N>WJ`G>TYlL6!0@n&=$2R&bKShw=H&J z%RUbgjSIJ;?sfqG!!c!^$#_M=c%=#=ni0Ovp8Xh7_C>U_1yq0C#uKm0%`_nG;fu2D z#tIO=2%GqRXnFs>Lh-f|1SL!@qXCJb?v{(NDem7VE#3z2Gk`mMpFvP(sAaSvCgC=P z{rg7XZOY#>ybT&(uOO&%)G%$x2E_&0?3y)x#04w@$KT!0G5ivK^-2lh?i zM&6CSXOj5Zy50#+Pp(HqLmsjL*u}RFG0tJrds(>rSwqP8Eadxjds97$k%11s1e6xu zASv~jXSJ|8qy`M37jF|AuLRl_1Codg1Vu{iuL1#&>VdmG>ihRI`}e7+dDu_U-gp_l z8BqX!Nlv+7w~JP!IWqfcI0bDt7|8=15h149Wx@^`j&ANFnZY~KoS&Ov=tE*XNqXe> z1nXy3TR&4~B7PUJvogMi9bWJpD$8@m- z&}Oj8{hmeJC2ii&A@?#}JMvrUp{H#zcuwY>Gpk?iZ8Nh&zNI-?YWDro{{6z+{GJsk ze!M~Dx$`3>`51|QV=xUNoqfqpT|Hv=G{P9P2y~I*c(h*29YZ`!;gtY}YPJqTJR{mn z*#a@SCB#i^f3jFSqGTd&2~HjfrxLF;fd=+#{N>ZJ%Y`LW2;Ju-xSl`W`_s8M+rE)A z08kdRd^MJmbJ()Mg}%u^eF(ZO*+c?$p~<>W`l|`4{lT@xT?y%gcv2v}5jxB)KTJHE zG56@v31m=80eDIH{8@~}y`A&!#boR!w3_h;D6E@=V`WJ`+#foH9Aa~SO(*tc#>-$# zkU6DvD4NNoFG`=`pmo81n_vlRT=+}#3vwK9f^zAfP#b8#sGg|^C8W2IQ+2x*U%hcK zKJh7(qIi42cty6S9V%JYZy&yRen|rFeF!e2wl7ATAbkV{1?RJ~*}=vp;mlodI9&!9 z5Rj^wa8r;EiWsbRqdfGRsLP?0*Q)oA-d&}t?t2D!1H|(Wy#}xq5hV+8OO%x}{HQJ0 zknJ3_L-8+-$3IUs`{e~E`c{i2iP1;4DPC0F6=JOvx#jPKV5#{b$${DBhbiIjo&#YO z@_;7eS!#c~mW3fvZHlm_hbej95bb6)&PVMP)>#A5jC{1@`UX-WvwR)8V2X6c zqjdursXB`{y~vUkvWm^Ukc^9hF6NurmB6NZNRI$L0>PxL0Oz+T*>|^oF=_VW?$Kx0 z(@nRFUJmofgfR$fyS*lV!J!Bd$W0UgY+|Vhn`#sz-fdEm3~=4pgE?y{Mhfc=Y_rRb zkLR%E=ev8(c=qL%@Bnod_asrQ!SUi1F;xcA+`ip4U=!wO$L|>o(CbjS0p4SM_HBBt z8sn<0OxWRyJl|yok~$60r2%SvJ6dnK_8a*f(bd7PbtSLzU|7{nH!47c?fwWT?KS)Q3mox*TH+1~+epZ@`r>GEh{(t}pp8 z2jIL#P~k{#cqZ31WPm%kw@eWHK)yNNZI$NQA`GJjXVZ?9nxCNQj>M&u#?Zr?;4Gi_L&I=N zq>PLIW&IZo0!f9qxhHXsClCjxEHp5Lr zcrg`a%a7T0AMf;C-&qJ2ziQ!~zTDug|GB+*=WEjHJmq>&3ia?snEsj{aLM+?sM0#07de91`#(<(;eu4O{X`qmNmwR$1)gdHKB5Y|EcxPq0ZN8r9sE|MY_@>kc(^Dn*zDf+7y=n zj}VD-2f_W&x2EQ`B1@ZVfKXiYk|u*7Z$4dDZmt~^yfIY5KE!uKq^Cko0V)aG0J#_) zus@y^v4@Rlt@8~NweR($Pc)%wr|c5b9t(oLf2HE@yD=a{IbY+KjWXf<=|dSCgrB+r zkk|}LL8_st`HF^GWGfjbC2H7f5RSp7a>%H$so~&F!xpJH!3pMPDiU&X=6)1OwYpCJ z2?U+SQDJyVDY_0mm%zT_@+Np?g+gh}o-<674p2-kK53brqBEXJ4_k<+FNrpsys{oV zsnmmM{BM1?1f1h%DzCS57MxQ++PoDWZuwzw2<%AR*49=Z@J$nO0R~|VFW-vtvanzS zv@j$AUU{;*^|z)YJMI=*Cxz>s_ocS0uS^k~0_>Bl-C8P*YgTH3vhO{!ynj6I_tic! zo8Bnl#hySbpckGn$B)zfTao?_F^n7+p7rZ%$gs+U^$KrMhKHB;Z|7Qnpe^1G!If{t z$MO+5N(%qBb}*gBW9>nQ3oOZ-!t2B2uPSd8dQLas=PmS{Eu@jn6!vL#nBG!c%;6x~ znbBoV=3@5A@~`tadWb|P=KxeaqX*OU-*S1)ohx?!2~u-OBK1kQhIVhqub zS^KHS8Gv|VQ?dO>d$0e6(zTC=j>t-~v=6F@e9aSHwWeWy^@?`87@0hY?;?{(cKr;bBS?h{QjOOm$#zx=uvl(=XQVwHz0u#PlYJwxxTGES( z*8Txs-H~W>fTA?P6B&lN|L2aP_3YlDPU|Q^glvl2)ZiANG`i6vf_Ik?^1WwWXe`;) z$bIx^6zk}FsO;$BV~Bi@SL^|3G_;b>ofi>oUG}{<{LDy-%K$PcUFk$==D(utM}-zg zmrcORB1bBmgbveRB3MWqpO16>56$7Ci4eW1vHd)~3B(X;fTwH1EkK1Qdkw>QAKbrr z)iZDjWc3Tc8V~2{#R?SzFQxKqTm=p2HtE?X-P6RoS=&S=UTVAYjesai17yOt+FMK} zL?0+q|Iz(Y;NGbJ^whcPwr#gd5%qF~?wkDXfvmfgDA^BZj}uz-ljEF8#urD-pgx{a zVtu5yY_)VgH8gylw%Zk)Qc(E5CLAy5EP#c>7vGPWSL59BopZ4F?}a(KUZP_$J1mo5 zMXVxJPugTy=8wky2o7CodrFr<*LeToXwgOVa(^<{9jTy1U52kt#kHo=2u1YBds|H; z+EM3S=}+r=IWF{X8L7rFD}xDxpP9CND43g)zVOV9UnWeSs{1ym>z5>oRP0T|!UF_x zshd0`Q4*PJ!qY-XNH}eNXfJZ%nH31LW*o&0)nIwOiVO_B_z!|EP`3iv;c-u58rB<}FNnc1s#pj@XF7foZpAco0O zM#$%dUgM22UsGU}rFzLO=146GeOU$pUf%f!e1>jK2@cJc`0icDcFEe9xuO~lCo66G zE+?9bh$n!Jx-E6CfYroJ+YWmfE3U*r;RKD-kqIKxcR_2Tza|I4RNDgl1Ox5ywt zN|C^f@Iwc5wIDC=z1-12b7X8Rje&-Xg+q4ZP5r0|k)Dg6UC+JO%u2rkVH29uug z110r`De-!Y5s+p81^-N~{BR(;5jA2Clrb-8SE@5JSwWd|DUByXU_Ic7U|nRaW`z8izN5X|Y{ z&a$veURD06a=+Qw$z7#6gtDKn|^Rw7MQq5{)hU72bqq2^2emN;Eyh=5QbWLW=j&@M!OR&2Xe zVEFGNduF>5WGnUdK)20Hju+v$^~lJ`jCfiuUc5M6dcQOy;8P-CtO_v`WYz*!*ekH| zIi?zL=3^Tz4OX?@J>&;{J7=e-XchUMI+%T<6McU4P=XqlKb$t41CxHc zkBEFWsqv~?tQ2zjyH1udWe{N#erhXqhS3UI-RZ-c@U9rbtXNel)3sG|IxH zUUe<-MuZ}4g*FBi4oa;P4@VK_fPepq*Wug)$ZDWFIKtJ>m?R6xds#&!i<{Rzq-$yb z&{1YSjK#l0d)Q1cK$y9D-~4E*qk|!j zIP;wuLB*oe5%a^b)a{T{ViG6=`ef!Q?1OSMdff*QGzy4W+ z2Ptu-FGg3#FFnx0DO{n*u4w4W0lMCPy@BJC<0+Sz;faM={Cq-|qTs^4yU1$Ez zcK))q@I@Ekc=A$%&2HZYFvO$o1HbiAuORO`A;~jO!aWg%+G9*qJlq_msyDI z<)^z%_qyR(6M34Im|S&3~Xae?`og{^}ACF#z5O zkr%=R%`=HFUxveDc?3tp>Cq05<#!n)&;CjP2`>*K!lRa29uL0Al5fKaaNe3K4>Brg+~B zNnT=*n$TLzZ0I@5*JAy6v!C+nOi4uvRZId^bqkz1P3W+y?7O^87D!2dwoU#r?B5T` zE3^Dk%>alFU&Djmm0RUrnQ`6f!6`^cvD6n9_ptM}*~H|Rv|jPZ^1bwGd|%ic0={ai zN6eu`HqIa;*epL_(Rc}K!FSx#{2wO09uzJ%1bg?on_HEg8i~HcuEI`zjIB3y+7(w# zOj=CeAh*gZE?G?fp%4P-JCSg*Ie(ueK$s)V8maZ~xOy)`y`2D>>5`5*eE+YnlJQ)n z{|kQj(j}Xy@+v?rD51RvQwvS z^ISYk*L3gKionv;?X>D3Gl@h-A}U5x5cnbf7&HiHb4*h1LEZ(Sh+;9D9>vvC+aaUH z;7PV6e~X{};lE`G?%?=|OaJM)#$>3v&7=lAZrq^e%e`$ca9CH^+1S|lG`Y_fbf79$ z2X9FiG<0}&%e2!--uOLjM1VEnbum z(TOe(Q$4*#4IU7)&jn8OS-H4eKC#ckC<74wBqEUs4+gPI?w{`-=V^*Q6aJGFNHx+d z6H~7R$Om}dM0R^6hM-}n2h(5xCP)4eG|PE2!FYBQeEQr^OzY2lsfM`N!(VEk{5W>r zyvcc32PE0psE9Ngo$YrRX;He+K`}8{C6Yxz6tw}<^)uk!z|G=v0L?51srkJO?Lxt+ zb;^^z8oz%aa7OX+6qfad;hqu zNPPMdJn15^f^u*T#B?x?V#UY@CE^$G{9E|gTKPD)9CYwcasjSP#~IuZ-(S%EUmr%s ze&O!IJ{T3n<-=gH+t;r@zg#LgwQboN6(*X*BxWC|+(>+y$V^<(&y0Iz*S>@%CXT9l zOsee;-{xK!dnU#$BrF#l_>=bW_ez3OzkQXGees&{1gPB@DZ*NCOL?%MK$?#<%JE-s zNo?l0(826WS$k=UfCx9XkwN#Z8aH|10=^5g|ItKQHX|W5n3=>OZX8|yllSs_AK*{- z2%cB5d1Sg$Q&12duUAxlE^wpIs?Q%06&2ND{h|!~)WmfBmUMQ*Dl(6!mqzyP^$Hge zq)%2+Ocyg3GZ&kCjk%L~1KrgQ+N0XMY&oi0Z2%Ed{J-2J1`GyIb7h&-*MUso3a`eD z>|!(7MwQ{gq-2L6;E8i(g%ARQU+`|x_3^~@WHzu+$4OtW4gSsZ+Gu{1WK~vI52nuZ zzu@0L)3`CxA@6h5dXXSyZ<+9oNK&`%7@4ZW67Npeo}0!ew@QpDHpxIVJQ9FA(q^3f zhWXm$*3!fonmlPbQ$oA-vs3A zK3L1)6wXJ$ID#0rj#TTNmEDE!ENWPIKk01wOVI2h`y~gc0M3q^n<}H}-#%V0&$jCm z6h?RE%zdz4M6K6(w4i?p4W+fP6qC3Iw2_!>S;SNO;3vKC&pcp^J(ES~Cs>pLSA}46yc$_U$K#VrcRm}5DL{OS?reaD9>Apo zk1m2{j@yqf|wbV2*xJO-15UpBzU7fkIZ8$GkiKXp!&P@ueAk-{JCs z^3bDxonNf^myfju)S4bC3o1o;wc)-ss~RJF%7eLm&}xDgv}Xf^#O)g6xr`?az~=8U|pr zz4$Lhl_NDGCh@rHkiQ7%gT>pbJyMobiW>#x>3rBy${Y&nXXT6jpEVxzKN!V%>E-dY zh~35E?P=m(iyhyi4wwlw>KjiLNMKq0#ELPgCW=1PKc})Et_BS}_SW-Lp1C zOf8ePj$vn{aKo{BFuhTpuuVIp8d2#47=F0u_xvuP{R6k^HCS&gj-(>BxKwR>ct1?8 z3nXz3kq4K)>=;qc$d;o0(q%H!&J^_aPEMKV2-UgHJ=bow5gG9?5X!>jL zBOCA|$$JMmM`|o;VdKt77#av_a{4+MhznAyL*=F3;i1C%9;mGgYT&Xid7FGxK=pra zwLG(&Sp#x;DNU5bV*YLU;q&kdYDdy;u^s7`kod&u;JOd7+TGG!IoGRD$ z=xCtk>!aHVyF~~Y&y5~+X+_1PH)j2x(kwG>1=8RHtf%Jfkfn+Zh5~_Zr~Gjz+b(vl=hIs-VIC?PP?3jwm~Km3t4=${0tVE zYs`X!C@kJmtW30jfWMVXo?svuV~3R-kG&lOFt}gVcZ7p(sO*uc@z>X@zfnYlVazr+C_ zc=^r{rq+6mav{|NJRyKaj$Lq zlJn##_mc`#oSh$r9@e`aW#Z#K7+Tvonw9-zBO&%`jS6jj5|I?5YW6^=^|Q2r(`f3C zPZG}Guk9cod7?Vt)wDD~6oQ!_ofu=hp81O4l)Gi= z(Dh7J#o%aGl1Di*o;9#o3^6$#cl(n2a8- z(E1+j6`NEn-q0k*t>(Tlo(2m&Y3as1qGA|jFwtUI8|D8{+v7n=iY`hmTi$7CGte16 z)JJj(MRjIzKInLPhF6_WPRP*w{KPdE$ux79<4=r#`Ledt|6#XXk->`dI-EH3vbo>h zMPDAG`R;6g>yO68qzH>rPYcmB*tLHu>KF)iu!IL)vM2p@^oH+XIWLmI$c%oLFZYG18mxW{AxXp9b zI=maHjmK>#ttMMO?E4)aW9`RrZPypx`PdE#4uBmjc=21BcRe}qv|z!$xn*)|rw_t1 zmHr|b%Y^nbEzXpuR0wvY;6`-f6IO$x=01tu;MXoTg2;@ zQRimdC66L7Tli{_wsh?AHU`F})4}0;i<$}GbxV3IeKS*h6mTuZ;dNS6etxcK4A-4J zsTc=K^TXTUjp@`!g9D;{yWSaG&kXzd-MAAOd?>~ME;#xSqr`VTlY`_Dt8EOYdh%b3 zi=kbV3qKeapF2L0{3!T)x_ft-V-{w6;BrT)h)+HjR(T&ar+a*`fvt!DC%c1)#e zFE6Q<<||FjUQY3C#)LNz+%(#OY{)w$*z!!LmlmEqv&i=It8wxddqqwN(S(QsqWmpN(f0oXJ^J#fc1YieAfiCV$ zQm-SZ7Ct!KyykNn<7sS;TfBYjZ<*=c}TwD_r{&sB=T5l?$tOgoIF%Q|@l^$7lbn(@H6r zS)Jtg`@>Ixdn~c(m@r_9uZxNvilQ$c3*Qj;`SQW()k-DI4}{KqmX_REP5cpn-Ga;M zZ!sRY5|0*ZijM|UbiZR7SHte3?oEi%_Lb-g^|w{C7+p1tpVLAyEp{5;ZgmC5c)ye`u=IS^+nUh9FLxbA4Xu3vioiq_cM%Uyf~jJuRHc7LVqyoq;O1{ZzRol ziMbD!97tbGrbjYtbF*51B)ST9+tb%B;Xzi%C#C{ZN9%9xD>_&VD({BUDVxLQ7iF)V zFQg5ZCDlp3kDl!ndQS(-tlg4I&}&bPULASB8|}n>-^iNIQ&8XfJZ&ujHu&5Sw(2*T z0fiA|`>CzG&2z4u(}xxWc-o+U{VVJQtk$)4}GHjU4MYrxb)LmLmrc`xmE=Z;>q_)q;)w}{oIGgpZma=$#$4Af_=d5 zc{E~BcaX+NxY89;>ms`d7#GnTQ0-a$_gAKP0C6G%yw>is$D2y(hSCZ)YSF zy;Ka}uwoIhG1Om|*KIDl+=Sce&LjHit+N~1U8Y-u70MUiV0GND2JEqROCdI##+Prb zOVk+u8gPJ?YyY8T8q|v3udb-u7kPVKW4ys-g_l_i=soG9Z8QRHcID72IS!n%*S@N7 z{E$d^m-%tK0cWk8NwLB5_fi&2l0wauk1t^aGU;M#Qr)dpac`!->+CerXRmRmw$?H6 z7J~?|d3Hn3foW%Dj1Su$KPgmm|Gv>-vy8PNA2&kjXZ*uiA8@#@NrR7_{tX_*a6ZPk znlIC1bFM7{<1TGd@=dFr7$=Ck5c&h89XLSoN;$6MZDogq4Yr>U4htJ8do5JA&pU