From 758615813f874ddd8f94bc2cf0ce1ab96cd2859c Mon Sep 17 00:00:00 2001 From: cogwheel0 <172976095+cogwheel0@users.noreply.github.com> Date: Sun, 10 Aug 2025 01:20:45 +0530 Subject: [PATCH] chore: initial release --- .github/FUNDING.yml | 15 + .github/workflows/release.yml | 68 + .gitignore | 142 + .metadata | 33 + LICENSE | 674 + PRIVACY_POLICY.md | 51 + README.md | 133 + analysis_options.yaml | 32 + android/.gitignore | 14 + android/app/build.gradle.kts | 70 + android/app/proguard-rules.pro | 21 + android/app/src/debug/AndroidManifest.xml | 7 + android/app/src/main/AndroidManifest.xml | 44 + .../app/cogwheel/conduit/MainActivity.kt | 6 + .../app/src/main/res/drawable-hdpi/splash.png | Bin 0 -> 6191 bytes .../app/src/main/res/drawable-mdpi/splash.png | Bin 0 -> 3910 bytes .../src/main/res/drawable-v21/background.png | Bin 0 -> 69 bytes .../res/drawable-v21/launch_background.xml | 9 + .../src/main/res/drawable-xhdpi/splash.png | Bin 0 -> 8681 bytes .../src/main/res/drawable-xxhdpi/splash.png | Bin 0 -> 14316 bytes .../src/main/res/drawable-xxxhdpi/splash.png | Bin 0 -> 20395 bytes .../app/src/main/res/drawable/background.png | Bin 0 -> 69 bytes .../main/res/drawable/launch_background.xml | 9 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 6 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 5846 bytes .../mipmap-hdpi/ic_launcher_background.png | Bin 0 -> 845 bytes .../mipmap-hdpi/ic_launcher_foreground.png | Bin 0 -> 3850 bytes .../mipmap-hdpi/ic_launcher_monochrome.png | Bin 0 -> 3668 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 3357 bytes .../mipmap-mdpi/ic_launcher_background.png | Bin 0 -> 451 bytes .../mipmap-mdpi/ic_launcher_foreground.png | Bin 0 -> 2103 bytes .../mipmap-mdpi/ic_launcher_monochrome.png | Bin 0 -> 1974 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 7644 bytes .../mipmap-xhdpi/ic_launcher_background.png | Bin 0 -> 1308 bytes .../mipmap-xhdpi/ic_launcher_foreground.png | Bin 0 -> 4962 bytes .../mipmap-xhdpi/ic_launcher_monochrome.png | Bin 0 -> 4630 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 13252 bytes .../mipmap-xxhdpi/ic_launcher_background.png | Bin 0 -> 2941 bytes .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin 0 -> 9308 bytes .../mipmap-xxhdpi/ic_launcher_monochrome.png | Bin 0 -> 8856 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 17684 bytes .../mipmap-xxxhdpi/ic_launcher_background.png | Bin 0 -> 4224 bytes .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin 0 -> 11780 bytes .../mipmap-xxxhdpi/ic_launcher_monochrome.png | Bin 0 -> 11099 bytes .../src/main/res/values-night-v31/styles.xml | 20 + .../app/src/main/res/values-night/styles.xml | 22 + .../app/src/main/res/values-v31/styles.xml | 20 + android/app/src/main/res/values/styles.xml | 22 + android/app/src/profile/AndroidManifest.xml | 7 + android/build.gradle.kts | 21 + android/gradle.properties | 3 + .../gradle/wrapper/gradle-wrapper.properties | 5 + android/settings.gradle.kts | 25 + assets/icons/icon.png | Bin 0 -> 25959 bytes assets/openapi.json | 22618 ++++++++++++++++ .../android/en-US/full_description.txt | 35 + .../metadata/android/en-US/images/icon.png | Bin 0 -> 25959 bytes .../images/phoneScreenshots/flutter_01.png | Bin 0 -> 170783 bytes .../images/phoneScreenshots/flutter_02.png | Bin 0 -> 159420 bytes .../images/phoneScreenshots/flutter_03.png | Bin 0 -> 90478 bytes .../images/phoneScreenshots/flutter_04.png | Bin 0 -> 92614 bytes .../images/phoneScreenshots/flutter_05.png | Bin 0 -> 169420 bytes .../images/phoneScreenshots/flutter_06.png | Bin 0 -> 89337 bytes .../images/phoneScreenshots/flutter_07.png | Bin 0 -> 115525 bytes .../android/en-US/short_description.txt | 2 + fastlane/metadata/android/en-US/title.txt | 2 + fastlane/metadata/en-US/description.txt | 24 + fastlane/metadata/en-US/images/icon.png | Bin 0 -> 39911 bytes .../images/phoneScreenshots/flutter_01.png | Bin 0 -> 382187 bytes .../images/phoneScreenshots/flutter_02.png | Bin 0 -> 1000469 bytes .../images/phoneScreenshots/flutter_03.png | Bin 0 -> 333122 bytes .../images/phoneScreenshots/flutter_04.png | Bin 0 -> 349252 bytes .../images/phoneScreenshots/flutter_05.png | Bin 0 -> 263172 bytes .../images/phoneScreenshots/flutter_06.png | Bin 0 -> 261849 bytes .../images/phoneScreenshots/flutter_07.png | Bin 0 -> 227853 bytes fastlane/metadata/en-US/name.txt | 2 + fastlane/metadata/en-US/subtitle.txt | 2 + ios/.gitignore | 34 + ios/Flutter/AppFrameworkInfo.plist | 26 + ios/Flutter/Debug.xcconfig | 1 + ios/Flutter/Release.xcconfig | 1 + ios/Runner.xcodeproj/project.pbxproj | 616 + .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 101 + .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + ios/Runner/AppDelegate.swift | 13 + .../AppIcon.appiconset/AppIcon-20@2x.png | Bin 0 -> 1103 bytes .../AppIcon.appiconset/AppIcon-20@2x~ipad.png | Bin 0 -> 1103 bytes .../AppIcon.appiconset/AppIcon-20@3x.png | Bin 0 -> 2035 bytes .../AppIcon.appiconset/AppIcon-20~ipad.png | Bin 0 -> 608 bytes .../AppIcon.appiconset/AppIcon-29.png | Bin 0 -> 974 bytes .../AppIcon.appiconset/AppIcon-29@2x.png | Bin 0 -> 2101 bytes .../AppIcon.appiconset/AppIcon-29@2x~ipad.png | Bin 0 -> 2101 bytes .../AppIcon.appiconset/AppIcon-29@3x.png | Bin 0 -> 2901 bytes .../AppIcon.appiconset/AppIcon-29~ipad.png | Bin 0 -> 974 bytes .../AppIcon.appiconset/AppIcon-40@2x.png | Bin 0 -> 2332 bytes .../AppIcon.appiconset/AppIcon-40@2x~ipad.png | Bin 0 -> 2332 bytes .../AppIcon.appiconset/AppIcon-40@3x.png | Bin 0 -> 3956 bytes .../AppIcon.appiconset/AppIcon-40~ipad.png | Bin 0 -> 1103 bytes .../AppIcon.appiconset/AppIcon-60@2x~car.png | Bin 0 -> 3956 bytes .../AppIcon.appiconset/AppIcon-60@3x~car.png | Bin 0 -> 6139 bytes .../AppIcon-83.5@2x~ipad.png | Bin 0 -> 5722 bytes .../AppIcon.appiconset/AppIcon@2x.png | Bin 0 -> 3956 bytes .../AppIcon.appiconset/AppIcon@2x~ipad.png | Bin 0 -> 4917 bytes .../AppIcon.appiconset/AppIcon@3x.png | Bin 0 -> 6139 bytes .../AppIcon~ios-marketing.png | Bin 0 -> 64558 bytes .../AppIcon.appiconset/AppIcon~ipad.png | Bin 0 -> 2445 bytes .../AppIcon.appiconset/Contents.json | 134 + .../LaunchBackground.imageset/Contents.json | 21 + .../LaunchBackground.imageset/background.png | Bin 0 -> 69 bytes .../LaunchImage.imageset/Contents.json | 23 + .../LaunchImage.imageset/LaunchImage.png | Bin 0 -> 3910 bytes .../LaunchImage.imageset/LaunchImage@2x.png | Bin 0 -> 8681 bytes .../LaunchImage.imageset/LaunchImage@3x.png | Bin 0 -> 14316 bytes .../LaunchImage.imageset/README.md | 5 + ios/Runner/Base.lproj/LaunchScreen.storyboard | 44 + ios/Runner/Base.lproj/Main.storyboard | 26 + ios/Runner/Info.plist | 68 + ios/Runner/Runner-Bridging-Header.h | 1 + ios/RunnerTests/RunnerTests.swift | 12 + lib/core/auth/api_auth_interceptor.dart | 146 + lib/core/auth/auth_cache_manager.dart | 194 + lib/core/auth/auth_state_manager.dart | 562 + lib/core/auth/token_validator.dart | 259 + lib/core/error/api_error.dart | 397 + lib/core/error/api_error_handler.dart | 408 + lib/core/error/api_error_interceptor.dart | 239 + lib/core/error/enhanced_error_service.dart | 467 + lib/core/error/error_parser.dart | 405 + lib/core/models/chat_message.dart | 23 + lib/core/models/conversation.dart | 27 + lib/core/models/file_info.dart | 23 + lib/core/models/folder.dart | 41 + lib/core/models/knowledge_base.dart | 35 + lib/core/models/model.dart | 93 + lib/core/models/server_config.dart | 19 + lib/core/models/user.dart | 33 + lib/core/models/user_settings.dart | 40 + lib/core/providers/app_providers.dart | 750 + lib/core/services/animation_service.dart | 278 + lib/core/services/api_service.dart | 3522 +++ .../services/attachment_upload_queue.dart | 347 + lib/core/services/connectivity_service.dart | 118 + lib/core/services/deep_link_service.dart | 67 + .../enhanced_accessibility_service.dart | 396 + lib/core/services/error_handling_service.dart | 241 + lib/core/services/error_recovery_service.dart | 373 + .../services/focus_management_service.dart | 408 + .../services/input_validation_service.dart | 457 + lib/core/services/navigation_service.dart | 250 + .../services/navigation_state_service.dart | 427 + .../services/optimized_storage_service.dart | 375 + lib/core/services/platform_service.dart | 408 + .../services/secure_credential_storage.dart | 326 + lib/core/services/settings_service.dart | 275 + lib/core/services/storage_service.dart | 372 + .../services/user_friendly_error_handler.dart | 563 + lib/core/utils/reasoning_parser.dart | 158 + lib/core/utils/stream_chunker.dart | 105 + lib/core/validation/api_validator.dart | 416 + lib/core/validation/field_mapper.dart | 267 + lib/core/validation/schema_registry.dart | 368 + .../validation/validation_interceptor.dart | 217 + lib/core/validation/validation_result.dart | 100 + lib/core/widgets/error_boundary.dart | 308 + .../providers/unified_auth_providers.dart | 107 + .../auth/views/connect_signin_page.dart | 659 + .../chat/providers/chat_providers.dart | 1425 + .../services/conversation_search_service.dart | 397 + .../services/file_attachment_service.dart | 433 + .../chat/services/message_batch_service.dart | 538 + .../chat/services/voice_input_service.dart | 220 + lib/features/chat/views/chat_page.dart | 2474 ++ .../chat/views/chat_page_helpers.dart | 68 + .../chat/views/conversation_search_page.dart | 370 + .../chat/views/model_selector_page.dart | 465 + .../chat/widgets/conversation_components.dart | 956 + .../widgets/conversation_search_widget.dart | 738 + .../widgets/documentation_message_widget.dart | 688 + .../chat/widgets/file_attachment_widget.dart | 249 + .../chat/widgets/file_viewer_dialog.dart | 242 + .../widgets/folder_management_dialog.dart | 708 + .../chat/widgets/message_batch_widget.dart | 1056 + .../chat/widgets/modern_chat_input.dart | 792 + .../chat/widgets/modern_message_bubble.dart | 811 + .../chat/widgets/tag_management_dialog.dart | 259 + lib/features/files/views/files_page.dart | 439 + .../navigation/views/chats_list_page.dart | 1362 + .../views/splash_launcher_page.dart | 25 + .../onboarding/views/onboarding_sheet.dart | 288 + lib/features/profile/views/profile_page.dart | 468 + .../server/providers/server_providers.dart | 56 + .../views/accessibility_settings_page.dart | 278 + .../views/searchable_settings_page.dart | 810 + lib/main.dart | 313 + lib/shared/services/brand_service.dart | 281 + lib/shared/theme/app_theme.dart | 414 + lib/shared/theme/theme_extensions.dart | 1808 ++ lib/shared/utils/keyboard_utils.dart | 435 + lib/shared/utils/platform_utils.dart | 487 + lib/shared/utils/ui_utils.dart | 221 + lib/shared/widgets/cached_image.dart | 143 + lib/shared/widgets/conduit_components.dart | 958 + lib/shared/widgets/empty_states.dart | 448 + lib/shared/widgets/error_widgets.dart | 397 + .../widgets/improved_loading_states.dart | 666 + lib/shared/widgets/loading_states.dart | 429 + lib/shared/widgets/offline_indicator.dart | 231 + lib/shared/widgets/optimized_list.dart | 414 + lib/shared/widgets/skeleton_loader.dart | 361 + lib/shared/widgets/themed_dialogs.dart | 99 + pubspec.lock | 1418 + pubspec.yaml | 88 + scripts/release.sh | 112 + 218 files changed, 67743 insertions(+) create mode 100644 .github/FUNDING.yml create mode 100644 .github/workflows/release.yml create mode 100644 .gitignore create mode 100644 .metadata create mode 100644 LICENSE create mode 100644 PRIVACY_POLICY.md create mode 100644 README.md create mode 100644 analysis_options.yaml create mode 100644 android/.gitignore create mode 100644 android/app/build.gradle.kts create mode 100644 android/app/proguard-rules.pro 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/app/cogwheel/conduit/MainActivity.kt create mode 100644 android/app/src/main/res/drawable-hdpi/splash.png create mode 100644 android/app/src/main/res/drawable-mdpi/splash.png create mode 100644 android/app/src/main/res/drawable-v21/background.png create mode 100644 android/app/src/main/res/drawable-v21/launch_background.xml create mode 100644 android/app/src/main/res/drawable-xhdpi/splash.png create mode 100644 android/app/src/main/res/drawable-xxhdpi/splash.png create mode 100644 android/app/src/main/res/drawable-xxxhdpi/splash.png create mode 100644 android/app/src/main/res/drawable/background.png create mode 100644 android/app/src/main/res/drawable/launch_background.xml create mode 100644 android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher_background.png create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher_monochrome.png create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher_background.png create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher_monochrome.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher_background.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.png create mode 100644 android/app/src/main/res/values-night-v31/styles.xml create mode 100644 android/app/src/main/res/values-night/styles.xml create mode 100644 android/app/src/main/res/values-v31/styles.xml create mode 100644 android/app/src/main/res/values/styles.xml create mode 100644 android/app/src/profile/AndroidManifest.xml create mode 100644 android/build.gradle.kts create mode 100644 android/gradle.properties create mode 100644 android/gradle/wrapper/gradle-wrapper.properties create mode 100644 android/settings.gradle.kts create mode 100644 assets/icons/icon.png create mode 100644 assets/openapi.json create mode 100644 fastlane/metadata/android/en-US/full_description.txt create mode 100644 fastlane/metadata/android/en-US/images/icon.png create mode 100644 fastlane/metadata/android/en-US/images/phoneScreenshots/flutter_01.png create mode 100644 fastlane/metadata/android/en-US/images/phoneScreenshots/flutter_02.png create mode 100644 fastlane/metadata/android/en-US/images/phoneScreenshots/flutter_03.png create mode 100644 fastlane/metadata/android/en-US/images/phoneScreenshots/flutter_04.png create mode 100644 fastlane/metadata/android/en-US/images/phoneScreenshots/flutter_05.png create mode 100644 fastlane/metadata/android/en-US/images/phoneScreenshots/flutter_06.png create mode 100644 fastlane/metadata/android/en-US/images/phoneScreenshots/flutter_07.png create mode 100644 fastlane/metadata/android/en-US/short_description.txt create mode 100644 fastlane/metadata/android/en-US/title.txt create mode 100644 fastlane/metadata/en-US/description.txt create mode 100644 fastlane/metadata/en-US/images/icon.png create mode 100644 fastlane/metadata/en-US/images/phoneScreenshots/flutter_01.png create mode 100644 fastlane/metadata/en-US/images/phoneScreenshots/flutter_02.png create mode 100644 fastlane/metadata/en-US/images/phoneScreenshots/flutter_03.png create mode 100644 fastlane/metadata/en-US/images/phoneScreenshots/flutter_04.png create mode 100644 fastlane/metadata/en-US/images/phoneScreenshots/flutter_05.png create mode 100644 fastlane/metadata/en-US/images/phoneScreenshots/flutter_06.png create mode 100644 fastlane/metadata/en-US/images/phoneScreenshots/flutter_07.png create mode 100644 fastlane/metadata/en-US/name.txt create mode 100644 fastlane/metadata/en-US/subtitle.txt 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/AppIcon-20@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-20@2x~ipad.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-20@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-20~ipad.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-29.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-29@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-29@2x~ipad.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-29@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-29~ipad.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-40@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-40@2x~ipad.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-40@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-40~ipad.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-60@2x~car.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-60@3x~car.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-83.5@2x~ipad.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon@2x~ipad.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon~ios-marketing.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon~ipad.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 ios/Runner/Assets.xcassets/LaunchBackground.imageset/Contents.json create mode 100644 ios/Runner/Assets.xcassets/LaunchBackground.imageset/background.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 ios/RunnerTests/RunnerTests.swift create mode 100644 lib/core/auth/api_auth_interceptor.dart create mode 100644 lib/core/auth/auth_cache_manager.dart create mode 100644 lib/core/auth/auth_state_manager.dart create mode 100644 lib/core/auth/token_validator.dart create mode 100644 lib/core/error/api_error.dart create mode 100644 lib/core/error/api_error_handler.dart create mode 100644 lib/core/error/api_error_interceptor.dart create mode 100644 lib/core/error/enhanced_error_service.dart create mode 100644 lib/core/error/error_parser.dart create mode 100644 lib/core/models/chat_message.dart create mode 100644 lib/core/models/conversation.dart create mode 100644 lib/core/models/file_info.dart create mode 100644 lib/core/models/folder.dart create mode 100644 lib/core/models/knowledge_base.dart create mode 100644 lib/core/models/model.dart create mode 100644 lib/core/models/server_config.dart create mode 100644 lib/core/models/user.dart create mode 100644 lib/core/models/user_settings.dart create mode 100644 lib/core/providers/app_providers.dart create mode 100644 lib/core/services/animation_service.dart create mode 100644 lib/core/services/api_service.dart create mode 100644 lib/core/services/attachment_upload_queue.dart create mode 100644 lib/core/services/connectivity_service.dart create mode 100644 lib/core/services/deep_link_service.dart create mode 100644 lib/core/services/enhanced_accessibility_service.dart create mode 100644 lib/core/services/error_handling_service.dart create mode 100644 lib/core/services/error_recovery_service.dart create mode 100644 lib/core/services/focus_management_service.dart create mode 100644 lib/core/services/input_validation_service.dart create mode 100644 lib/core/services/navigation_service.dart create mode 100644 lib/core/services/navigation_state_service.dart create mode 100644 lib/core/services/optimized_storage_service.dart create mode 100644 lib/core/services/platform_service.dart create mode 100644 lib/core/services/secure_credential_storage.dart create mode 100644 lib/core/services/settings_service.dart create mode 100644 lib/core/services/storage_service.dart create mode 100644 lib/core/services/user_friendly_error_handler.dart create mode 100644 lib/core/utils/reasoning_parser.dart create mode 100644 lib/core/utils/stream_chunker.dart create mode 100644 lib/core/validation/api_validator.dart create mode 100644 lib/core/validation/field_mapper.dart create mode 100644 lib/core/validation/schema_registry.dart create mode 100644 lib/core/validation/validation_interceptor.dart create mode 100644 lib/core/validation/validation_result.dart create mode 100644 lib/core/widgets/error_boundary.dart create mode 100644 lib/features/auth/providers/unified_auth_providers.dart create mode 100644 lib/features/auth/views/connect_signin_page.dart create mode 100644 lib/features/chat/providers/chat_providers.dart create mode 100644 lib/features/chat/services/conversation_search_service.dart create mode 100644 lib/features/chat/services/file_attachment_service.dart create mode 100644 lib/features/chat/services/message_batch_service.dart create mode 100644 lib/features/chat/services/voice_input_service.dart create mode 100644 lib/features/chat/views/chat_page.dart create mode 100644 lib/features/chat/views/chat_page_helpers.dart create mode 100644 lib/features/chat/views/conversation_search_page.dart create mode 100644 lib/features/chat/views/model_selector_page.dart create mode 100644 lib/features/chat/widgets/conversation_components.dart create mode 100644 lib/features/chat/widgets/conversation_search_widget.dart create mode 100644 lib/features/chat/widgets/documentation_message_widget.dart create mode 100644 lib/features/chat/widgets/file_attachment_widget.dart create mode 100644 lib/features/chat/widgets/file_viewer_dialog.dart create mode 100644 lib/features/chat/widgets/folder_management_dialog.dart create mode 100644 lib/features/chat/widgets/message_batch_widget.dart create mode 100644 lib/features/chat/widgets/modern_chat_input.dart create mode 100644 lib/features/chat/widgets/modern_message_bubble.dart create mode 100644 lib/features/chat/widgets/tag_management_dialog.dart create mode 100644 lib/features/files/views/files_page.dart create mode 100644 lib/features/navigation/views/chats_list_page.dart create mode 100644 lib/features/navigation/views/splash_launcher_page.dart create mode 100644 lib/features/onboarding/views/onboarding_sheet.dart create mode 100644 lib/features/profile/views/profile_page.dart create mode 100644 lib/features/server/providers/server_providers.dart create mode 100644 lib/features/settings/views/accessibility_settings_page.dart create mode 100644 lib/features/settings/views/searchable_settings_page.dart create mode 100644 lib/main.dart create mode 100644 lib/shared/services/brand_service.dart create mode 100644 lib/shared/theme/app_theme.dart create mode 100644 lib/shared/theme/theme_extensions.dart create mode 100644 lib/shared/utils/keyboard_utils.dart create mode 100644 lib/shared/utils/platform_utils.dart create mode 100644 lib/shared/utils/ui_utils.dart create mode 100644 lib/shared/widgets/cached_image.dart create mode 100644 lib/shared/widgets/conduit_components.dart create mode 100644 lib/shared/widgets/empty_states.dart create mode 100644 lib/shared/widgets/error_widgets.dart create mode 100644 lib/shared/widgets/improved_loading_states.dart create mode 100644 lib/shared/widgets/loading_states.dart create mode 100644 lib/shared/widgets/offline_indicator.dart create mode 100644 lib/shared/widgets/optimized_list.dart create mode 100644 lib/shared/widgets/skeleton_loader.dart create mode 100644 lib/shared/widgets/themed_dialogs.dart create mode 100644 pubspec.lock create mode 100644 pubspec.yaml create mode 100755 scripts/release.sh diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..6430202 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,15 @@ +# These are supported funding model platforms + +github: cogwheel0 +# patreon: # Replace with a single Patreon username +# open_collective: # Replace with a single Open Collective username +# ko_fi: # Replace with a single Ko-fi username +# tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel +# community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +# liberapay: # Replace with a single Liberapay username +# issuehunt: # Replace with a single IssueHunt username +# lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry +# polar: # Replace with a single Polar username +# buy_me_a_coffee: # Replace with a single Buy Me a Coffee username +# thanks_dev: # Replace with a single thanks.dev username +# custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..eee83bf --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,68 @@ +name: Release + +on: + push: + tags: + - 'v*' + +jobs: + build-android: + name: Build Android + runs-on: ubuntu-latest + + steps: + #1 Checkout Repository + - name: Checkout Repository + uses: actions/checkout@v3 + + #2 Setup Java + - name: Set Up Java + uses: actions/setup-java@v3 + with: + distribution: 'zulu' + java-version: '21' + + #3 Setup Flutter + - name: Set Up Flutter + uses: subosito/flutter-action@v2 + with: + flutter-version: '3.32.5' + channel: 'stable' + + #4 Install Dependencies + - name: Install Dependencies + run: flutter pub get + + - name: Generate Freezed Classes + run: flutter pub run build_runner build --delete-conflicting-outputs + + #5 Setup Keystore + - name: Create Keystore + run: | + echo "${{ secrets.ANDROID_KEYSTORE_BASE64 }}" | base64 --decode > app/conduit-keystore.jks + echo "${{ secrets.ANDROID_KEY_PROPERTIES_BASE64 }}" | base64 --decode > key.properties + env: + ANDROID_KEYSTORE_BASE64: ${{ secrets.ANDROID_KEYSTORE_BASE64 }} + ANDROID_KEY_PROPERTIES_BASE64: ${{ secrets.ANDROID_KEY_PROPERTIES_BASE64 }} + working-directory: android + + - name: Build APK + run: flutter build apk --release + + - name: Build appBundle + run: flutter build appbundle --release + + - name: Upload Artifacts + uses: actions/upload-artifact@v4 + with: + name: Releases + path: | + build/app/outputs/flutter-apk/app-release.apk + build/app/outputs/bundle/release/app-release.aab + + - name: Create Release + uses: ncipollo/release-action@v1 + with: + artifacts: "build/app/outputs/flutter-apk/app-release.apk,build/app/outputs/bundle/release/app-release.aab" + tag: ${{ github.ref_name }} + token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7f0c7b7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,142 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.build/ +.buildlog/ +.history +.svn/ +.swiftpm/ +migrate_working_dir/ +.github/copilot-instructions.md + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +**/ios/Flutter/.last_build_id +.dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies +.pub-cache/ +.pub/ +/build/ + +# Symbolication related +app.*.symbols + +# Obfuscation related +app.*.map.json + +# Android Studio will place build artifacts here +/android/app/debug +/android/app/profile +/android/app/release + +# iOS related +**/ios/**/*.mode1v3 +**/ios/**/*.mode2v3 +**/ios/**/*.moved-aside +**/ios/**/*.pbxuser +**/ios/**/*.perspectivev3 +**/ios/**/*sync/ +**/ios/**/.sconsign.dblite +**/ios/**/.tags* +**/ios/**/.vagrant/ +**/ios/**/DerivedData/ +**/ios/**/Icon? +**/ios/**/Pods/ +**/ios/**/.symlinks/ +**/ios/**/profile +**/ios/**/xcuserdata +**/ios/.generated/ +**/ios/Flutter/App.framework +**/ios/Flutter/Flutter.framework +**/ios/Flutter/Flutter.podspec +**/ios/Flutter/Generated.xcconfig +**/ios/Flutter/app.flx +**/ios/Flutter/app.zip +**/ios/Flutter/flutter_assets/ +**/ios/Flutter/flutter_export_environment.sh +**/ios/ServiceDefinitions.json +**/ios/Runner/GeneratedPluginRegistrant.* + +# macOS +**/macos/Flutter/GeneratedPluginRegistrant.swift +**/macos/Flutter/ephemeral + +# Coverage +coverage/ + +# Temporary files +*.tmp +*.temp +*.bak +*.orig + +# Environment files +.env +.env.local +.env.production + +# Generated files +*.g.dart +*.freezed.dart + +# FVM (Flutter Version Management) +.fvm/ + +# Fastlane +**/fastlane/report.xml +**/fastlane/Preview.html +**/fastlane/screenshots +**/fastlane/test_output + +# Firebase +google-services.json +GoogleService-Info.plist + +# Keystore files +*.keystore +*.jks + +# Gradle files +.gradle/ +**/android/gradle-wrapper.jar +**/android/.gradle +**/android/captures/ +**/android/gradlew +**/android/gradlew.bat +**/android/local.properties +**/android/**/GeneratedPluginRegistrant.java +**/android/key.properties +*.hprof + +# CMake +**/android/CMakeLists.txt + +# NDK +**/android/.cxx/ +**/android/local.properties + +# Generated files +**/android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java + +# Exceptions to above rules +!**/ios/**/default.mode1v3 +!**/ios/**/default.mode2v3 +!**/ios/**/default.pbxuser +!**/ios/**/default.perspectivev3 +!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages \ No newline at end of file diff --git a/.metadata b/.metadata new file mode 100644 index 0000000..bbb2321 --- /dev/null +++ b/.metadata @@ -0,0 +1,33 @@ +# 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: "edada7c56edf4a183c1735310e123c7f923584f1" + channel: "stable" + +project_type: app + +# Tracks metadata for the flutter migrate command +migration: + platforms: + - platform: root + create_revision: edada7c56edf4a183c1735310e123c7f923584f1 + base_revision: edada7c56edf4a183c1735310e123c7f923584f1 + - platform: android + create_revision: edada7c56edf4a183c1735310e123c7f923584f1 + base_revision: edada7c56edf4a183c1735310e123c7f923584f1 + - platform: ios + create_revision: edada7c56edf4a183c1735310e123c7f923584f1 + base_revision: edada7c56edf4a183c1735310e123c7f923584f1 + + # User provided section + + # List of Local paths (relative to this file) that should be + # ignored by the migrate tool. + # + # Files that are not part of the templates will be ignored by default. + unmanaged_files: + - 'lib/main.dart' + - 'ios/Runner.xcodeproj/project.pbxproj' diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..f288702 --- /dev/null +++ b/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 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 General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is 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. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + 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. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + 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 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. Use with the GNU Affero General Public License. + + 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 Affero 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 special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU 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 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 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 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 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 General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + 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 GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/PRIVACY_POLICY.md b/PRIVACY_POLICY.md new file mode 100644 index 0000000..f82a7a2 --- /dev/null +++ b/PRIVACY_POLICY.md @@ -0,0 +1,51 @@ +# Conduit Privacy Policy + +Effective date: 2025-08-09 + +Conduit is an open‑source mobile client for Open‑WebUI. This app acts as a client to a server you choose and configure. This policy describes how the app itself handles data on your device. Your configured server may collect, process, and store data under its own policies; please review your server's privacy terms separately. + +## Information We Collect +- Device-stored data: minimal settings and preferences (e.g., theme, UI options) saved locally on your device. +- Authentication tokens: stored securely on your device using platform secure storage when you sign in to your chosen server. +- User-provided content: messages, files, and voice input you choose to send are transmitted directly from your device to your configured server. The app does not operate its own backend. +- Diagnostic information: transient error logs in memory for troubleshooting within a session. The app does not include third‑party analytics. + +## How We Use Information +- Operate core features such as chat, file uploads, and voice input. +- Remember your preferences and sign‑in state on this device. +- Improve reliability (e.g., displaying error information to you). + +## Data Storage and Transfer +- Local storage: preferences and credentials are stored on your device. Access tokens are stored using secure storage where available. +- Network transfer: when you interact with the app, your data is sent to the server you configured. The app does not send your data to any developer‑controlled servers. + +## Permissions +Depending on how you use Conduit, the app may request: +- Microphone: to capture voice input when you opt in. +- Photos/Files: to let you pick and upload attachments. +- Network access: to connect to your configured server. + +## Third‑Party Services +The app does not include third‑party analytics or advertising SDKs. Your configured server or extensions you use may rely on third‑party services subject to their own terms. + +## Security +We use platform‑provided secure storage for sensitive credentials where supported. No security can be guaranteed; protect access to your device and server credentials. + +## Data Retention +- On device: preferences and cached media may persist until you clear app data or uninstall. You can revoke sign‑in by logging out. +- On server: retention is determined by the server you use; consult that server’s policy. + +## Your Choices +- You can change servers, log out, or clear app data in your device settings. +- You can choose not to grant optional permissions; some features may not work without them. + +## Children’s Privacy +Conduit is not directed to children under 13 (or the minimum age required in your jurisdiction). Do not use the app if you do not meet the applicable age requirements. + +## Changes to This Policy +We may update this policy to reflect improvements or legal requirements. Material changes will be reflected in the app bundle and version notes. + +## Contact +For questions or requests about this policy, please contact the app maintainer(s) through the project repository. + + diff --git a/README.md b/README.md new file mode 100644 index 0000000..b66daf3 --- /dev/null +++ b/README.md @@ -0,0 +1,133 @@ +# Conduit - Open-WebUI Mobile Client + +Conduit is an open-source, cross-platform mobile application for Open-WebUI, providing a native mobile experience for interacting with your self-hosted AI infrastructure. + +## Features + +### Core Features +- ✅ **Real-time Chat**: Stream responses from AI models in real-time +- ✅ **Model Selection**: Choose from available models on your server +- ✅ **Conversation Management**: Create, search, and manage chat histories +- ✅ **Markdown Rendering**: Full markdown support with syntax highlighting +- ✅ **Theme Support**: Light, Dark, and System themes + +### Advanced Features +- ✅ **Voice Input**: Use speech-to-text for hands-free interaction +- ✅ **File Uploads**: Support for images and documents (RAG) +- ✅ **Multi-modal Support**: Work with vision models +- ✅ **Secure Storage**: Credentials stored securely using platform keychains + +## Requirements + +- Flutter SDK 3.0.0 or higher +- Android 6.0 (API 23) or higher +- iOS 12.0 or higher +- A running Open-WebUI instance + +## Installation + +1. Clone the repository: +```bash +git clone https://github.com/yourusername/conduit.git +cd conduit +``` + +2. Install dependencies: +```bash +flutter pub get +``` + +3. Generate code: +```bash +flutter pub run build_runner build --delete-conflicting-outputs +``` + +4. Run the app: +```bash +# For iOS +flutter run -d ios + +# For Android +flutter run -d android +``` + +## Building for Release + +### Android +```bash +flutter build apk --release +# or for App Bundle +flutter build appbundle --release +``` + +### iOS +```bash +flutter build ios --release +``` + +## Configuration + +### Android +The app requires the following permissions: +- Internet access +- Microphone (for voice input) +- Camera (for taking photos) +- Storage (for file selection) + +### iOS +The app will request permissions for: +- Microphone access (voice input) +- Speech recognition +- Camera access +- Photo library access + +## Architecture + +The app follows a clean architecture pattern with: +- **Riverpod** for state management +- **Dio** for HTTP networking +- **WebSocket** for real-time streaming +- **Flutter Secure Storage** for credential management + +### Project Structure +``` +lib/ +├── core/ +│ ├── models/ # Data models +│ ├── services/ # API and storage services +│ ├── providers/ # Global state providers +│ └── utils/ # Utility functions +├── features/ +│ ├── auth/ # Authentication feature +│ ├── chat/ # Chat interface feature +│ ├── server/ # Server connection feature +│ └── settings/ # Settings feature +└── shared/ + ├── theme/ # App theming + ├── widgets/ # Shared widgets + └── utils/ # Shared utilities +``` + +## Contributing + +Contributions are welcome! Please feel free to submit a Pull Request. + +1. Fork the project +2. Create your feature branch (`git checkout -b feature/AmazingFeature`) +3. Commit your changes (`git commit -m 'Add some AmazingFeature'`) +4. Push to the branch (`git push origin feature/AmazingFeature`) +5. Open a Pull Request + +## License + +This project is licensed under the GPL3 License - see the LICENSE file for details. + +## Acknowledgments + +- Open-WebUI team for creating an amazing self-hosted AI interface +- Flutter team for the excellent mobile framework +- All contributors and users of Conduit + +## Support + +For issues and feature requests, please use the [GitHub Issues](https://github.com/cogwheel0/conduit/issues) page. \ No newline at end of file diff --git a/analysis_options.yaml b/analysis_options.yaml new file mode 100644 index 0000000..98bce5f --- /dev/null +++ b/analysis_options.yaml @@ -0,0 +1,32 @@ +# This file configures the analyzer, which statically analyzes Dart code to +# check for errors, warnings, and lints. +# +# The issues identified by the analyzer are surfaced in the UI of Dart-enabled +# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be +# invoked from the command line by running `flutter analyze`. + +# The following line activates a set of recommended lints for Flutter apps, +# packages, and plugins designed to encourage good coding practices. +include: package:flutter_lints/flutter.yaml + +linter: + # The lint rules applied to this project can be customized in the + # section below to disable rules from the `package:flutter_lints/flutter.yaml` + # included above or to enable additional rules. A list of all available lints + # and their documentation is published at https://dart.dev/lints. + # + # Instead of disabling a lint rule for the entire project in the + # section below, it can also be suppressed for a single line of code + # or a specific dart file by using the `// ignore: name_of_lint` and + # `// ignore_for_file: name_of_lint` syntax on the line or in the file + # producing the lint. + rules: + # avoid_print: false # Uncomment to disable the `avoid_print` rule + # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule + + # Production-ready rules + avoid_print: true # Avoid print statements in production + # avoid_web_libraries_in_flutter: true # Avoid web-only libraries + +# Additional information about this file can be found at +# https://dart.dev/guides/language/analysis-options diff --git a/android/.gitignore b/android/.gitignore new file mode 100644 index 0000000..be3943c --- /dev/null +++ b/android/.gitignore @@ -0,0 +1,14 @@ +gradle-wrapper.jar +/.gradle +/captures/ +/gradlew +/gradlew.bat +/local.properties +GeneratedPluginRegistrant.java +.cxx/ + +# Remember to never publicly share your keystore. +# See https://flutter.dev/to/reference-keystore +key.properties +**/*.keystore +**/*.jks diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts new file mode 100644 index 0000000..c746461 --- /dev/null +++ b/android/app/build.gradle.kts @@ -0,0 +1,70 @@ +import java.util.Properties +import java.io.FileInputStream + +plugins { + id("com.android.application") + id("kotlin-android") + // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. + id("dev.flutter.flutter-gradle-plugin") +} + +val keystoreProperties = Properties() +val keystorePropertiesFile = rootProject.file("key.properties") +if (keystorePropertiesFile.exists()) { + keystoreProperties.load(FileInputStream(keystorePropertiesFile)) +} + +android { + namespace = "app.cogwheel.conduit" + compileSdk = flutter.compileSdkVersion + ndkVersion = "27.0.12077973" + + defaultConfig { + applicationId = "app.cogwheel.conduit" + minSdk = 23 + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + } + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_11.toString() + } + + signingConfigs { + if (keystorePropertiesFile.exists()) { + create("release") { + storeFile = file(keystoreProperties["storeFile"] as String) + storePassword = keystoreProperties["storePassword"] as String + keyAlias = keystoreProperties["keyAlias"] as String + keyPassword = keystoreProperties["keyPassword"] as String + } + } + } + + buildTypes { + getByName("release") { + if (keystorePropertiesFile.exists()) { + signingConfig = signingConfigs.getByName("release") + } + isMinifyEnabled = true + isShrinkResources = true + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) + } + getByName("debug") { + // signingConfig = signingConfigs.getByName("debug") + } + } +} + +flutter { + source = "../.." +} diff --git a/android/app/proguard-rules.pro b/android/app/proguard-rules.pro new file mode 100644 index 0000000..6553110 --- /dev/null +++ b/android/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Flutter ProGuard rules +-keep class io.flutter.app.** { *; } +-keep class io.flutter.plugin.** { *; } +-keep class io.flutter.util.** { *; } +-keep class io.flutter.view.** { *; } +-keep class io.flutter.** { *; } +-keep class io.flutter.plugins.** { *; } +-dontwarn io.flutter.embedding.** + +# Keep your app's classes +-keep class app.cogwheel.conduit.** { *; } + +# Keep Gson and JSON serialization +-keepattributes Signature +-keepattributes *Annotation* +-keep class sun.misc.Unsafe { *; } +-keep class com.google.gson.stream.** { *; } + +# Keep WebSocket functionality +-keep class org.java_websocket.** { *; } +-dontwarn org.java_websocket.** \ No newline at end of file diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /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..b0cf869 --- /dev/null +++ b/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/android/app/src/main/kotlin/app/cogwheel/conduit/MainActivity.kt b/android/app/src/main/kotlin/app/cogwheel/conduit/MainActivity.kt new file mode 100644 index 0000000..96845da --- /dev/null +++ b/android/app/src/main/kotlin/app/cogwheel/conduit/MainActivity.kt @@ -0,0 +1,6 @@ +package app.cogwheel.conduit + +import io.flutter.embedding.android.FlutterActivity + +class MainActivity : FlutterActivity() { +} \ No newline at end of file diff --git a/android/app/src/main/res/drawable-hdpi/splash.png b/android/app/src/main/res/drawable-hdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..c75419657a8295911675364433b9fde6771d9c83 GIT binary patch literal 6191 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 Z5#)v|EKNN3T_R~0C@-wuO>>s&j1o%^ z$7+-}??myyE7IrsW!@$F6vk{-Lg(}apt-=%V5^3+msaHX1?z8z!6uaaonK|SEF
  • <;@yEeQ+U+<0m&z@AFnmBalt%7;+ewK zrKEsn9!cGZj9_^$F&2zl(6xA@&{Y_^lzry+;x-sV^hiq9M1>Z^$2W zTC*U7)+8ED(xd-5NW=1fDY&JhR8FMznZZ@J@ZZ+in=d&mp|yr1{2v;48B1UEhP!W; zvuUfEpdT-q#0hcOc09WUf~BnvoP)iL9@irEUtJE_*#1(s3xR-SbRv+mrVd}1f9 z+Wp~Ke~CS;hO>dox9K+Khd@l?)jMx9f|oEP)l_7$flxm_QFQt;|Lvo>btA-RbTGip z3!)*zdvmE4Tg6uUAMcHULQVLZ0i!h0biJX$?iK3XZx#v?_vEhHddD1gnqF!hpUzct zCM_ybG7y)d>EQtGJ4JMHX4Qx9gj(cPw~7e*{~eKR?R3w!qg`Q92YbVJ%w6G+Eb#<* zx&#Givq*WzLNaE2+@E__JT!TZXfU9`BE^>}|AIYz(Ukr$Y4Vpwp<%Ke=T($@qC&;`?G?(+M$1qarfLREzykKF%+ zW23M!AglTnaj*K6fz59GD{k6sf>vzGr0ui^i=WRK}>*7yH{cEJLA1jj>qpXXncQ;RQuvli&!;g{_f#@yE#kxd)xGbvM zUxj8SrJ|I>@F6U#df_uOSxUrTJKMmzx?8zBUUNsZY*i`5?Je&#BO{3)=h)cso#p;S zH+hs;0QD8LC*7*mY1ueGL~b$?OZ*W|O)XJS&a9muu6r!AGvx9;V5|Z`AIpjblcyb@ zy0U_m53TPIhi{fF_VHwc4f$_MH2J}^8cUTog=yc&Wz3DQtmk2Kr!ZzvFK=@lfI@u$ p#flRT2U;)42^gOFe*m6AZjidK1{2O6$d3Sks-l)cjht1;{{X9AjB@}0 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-mdpi/splash.png b/android/app/src/main/res/drawable-mdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..a1f6a1985cd7b0ca7aa74aa182290438e328a377 GIT binary patch literal 3910 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 C{XNA1 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-v21/background.png b/android/app/src/main/res/drawable-v21/background.png new file mode 100644 index 0000000000000000000000000000000000000000..e815fd621f1968ac104bc8b687d1d19a818d00a8 GIT binary patch literal 69 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1SBVv2j2ryJf1F&Ar*6y6B81EJP`)gU+UiV PKo*0itDnm{r-UW|n)?mj literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-v21/launch_background.xml b/android/app/src/main/res/drawable-v21/launch_background.xml new file mode 100644 index 0000000..3cc4948 --- /dev/null +++ b/android/app/src/main/res/drawable-v21/launch_background.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/android/app/src/main/res/drawable-xhdpi/splash.png b/android/app/src/main/res/drawable-xhdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..578245c7d8fbb2f469b29fcca53683a5e3460ab7 GIT binary patch literal 8681 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 R@(TwbC#59$UEDbM{{U>BAK(B0 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-xxhdpi/splash.png b/android/app/src/main/res/drawable-xxhdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..f32c57bea28556665db9ccf1ad1c04c1fcfe1d30 GIT binary patch literal 14316 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 CmmC}b literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/drawable-xxxhdpi/splash.png b/android/app/src/main/res/drawable-xxxhdpi/splash.png new file mode 100644 index 0000000000000000000000000000000000000000..b7926e8173378f53304d0b6e99446a75c46044c5 GIT binary patch literal 20395 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 + + + + + + + + diff --git a/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..345888d --- /dev/null +++ b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file 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..540e42bb977e0bb9bfd3be23f6ebb79122d835d1 GIT binary patch literal 5846 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 B+$R74 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..558b310422b4826baff36ec497e7fa63547ff221 GIT binary patch literal 3850 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher_background.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher_background.png new file mode 100644 index 0000000000000000000000000000000000000000..35bcb6f41da889b3b6ed3da4334b24737746f5fc GIT binary patch literal 451 zcmeAS@N?(olHy`uVBq!ia0vp^IUvlz1|<8_!p|}=Fm`#mIEGZjy}cU9$)F%|G(h+H z`oGLGoDYhze-rBIJw3a6uC>*%13D6yUp0%Jc@=7~Cj21RGRXrKzY|#x^CaxhU6U|_ zk!O3WD35W&!)+Uy64?yyh=m!PVQ9O3h^tNVKtXiGK?7!qJZ^1?G={^uqndCBgxwQ6 W?hdu3k%_>_VeoYIb6Mw<&;$UceWiW? literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..36cd22c7a7dcbd8a2a894cf3b4e34ccff97351ad GIT binary patch literal 2103 zcmchZ`#%#31I9Omxtu7{#B456sJWJFY{oXy%yR8w4sz?{v_@967#(GrVkB9%rq?Ac zrb45$&YRJi%T$_}lw0oda++|wf5iL#@I24w^Zh)Z=jSI67wD(0VWd+T2P!DgYFO)rm$MBK9Dotw1%ERaPiRyq$_uNlRP1%b|3^{19oSZS@mLLJ4;Z zZ=M)xT^UZ=+zdZ6FIaJXT+1>DR=;qk;XQqJf(C8{mBTH?yOmyx$=gZ7d{~tD#OnVD z)VZr9Hp%ubw`n#wvG4w_-B43on{+lkWNeVcT7-*a;CKjX1*5(b-)_o+KJ=1(_<;xw zOv=cDi^{YvZ-+%XUtK)d#?nZ*S)xqJ6qH$NHKZyP6pP}(yq|C8&7iZ5KS!+FETlAV z=FFzvM+Y5OT{o@14bA??F|CZx%Un>-}zV=Le_Ly(ghveD{2wihc^h0=`b0o?yObVpc8|A z{Hvpg(&rkUah*qVM7il5bBDnuEIcg{Ohj-7yJ(Im_Et()V&8wno;?lK1iGYNX{ykX zMZWAPq8T@tb>BF^=XeZ15kW+*Uy(6(v+LlYumXLog%(Z{Yx4n?ZTNb5`xSYP7yvz~ zR+0+hwCy@bV%%T=wT-WI%Nw6eNusjPhuF~JRNbIZvjk_G(bZ17G_o5lC@okaJz?3M z7{Zs8UprbdCPv{%Tpd;T7v3B><_p03Ah0}Ad3pKpC!pX`q2kwt*n0A=6=YOK`cDsF ziw495+iHlcmha z8&*hUhqlj%!p(sZ(g^QTsC71vSh{q;9xhy31bp}9ctYPG4NN;!_!gu58CGCqgikUq zK1uKN3xl4(lPK%%Abyi6J8-ZjR>#?}wq#`#l#uQ6OH{>FJwtrx^x{xKq19#DMjQR} zKABtT{8(Nk>d?zDS+A7M!>bZoZp*#-wC%Q(pJLzf4+3Q>Yh?a5Vo!Weq?g;7Z>@j% zcaPwEZ^3kDJN-L)Bx|~4S%_^m@6WJDe$ij>o-uHZ<;(&b-#8i}o^3Y&e4C3_uUSj@ z0d$0c%(8$69}37RwpW)v$UI`t-A@tT>R=SC=o950%Kqs>^O$pA zZDO8DqU6W+rF_@*sA2gvr1a+fXQ6bRcq;V_m>GJ+Lq?qIY1nAi>(l#Os$!*tBhizM zZ=Rs?UDKRol{sSf7|{CUIPM4~Ao103a)ExcU*+cS9WOBn&mDz3QuzFKBNsbZ;G5-l zq8lRd@VFYlgD!`3g6h6ceVKdxbQ1Y}nl94)qi=F~U~NZwggn>}RKqR8gQh)4&2vAP z!12-=(%udC*M3-)8NMm=#Ilv;~8&ZoGvAB1Pv(ySLA(KiYi;05EhwjGSl{tabHJ3Mv6BAbN^{372M7l;OgNwkgMqZnC zMfKUWL#`T_xpsvH9mecadG=_N6LNcQ1HGO<6Ioxfv^Ll|Fa1GKI=W8y0j!@e#fIZ3 zS50@n`KFi!3|6-ko7?0$e7g|#UD_} zr0L{ZB55!L25^6|!dUWs9!5($UO8q`;?-s^p7$~Nv*x&2z)fhZJeT?IVyUDyOOrNb z@+iJS%Qk6>V;Aej|80)4)#zl~-TholtuE2e^4C1|BG=RLSqPgzhg&?ITz27$fnsZ9 zF;|V)HPPcN56oS$|TVXY%zl5Oa*Y##%3Yc95tQMYJ~LFaiD=Y2Z^Hq!QO)dvJ$g2y@-53ArT z{<2bj4yj12_E$9DyFLMXJA6MqN4~rgH`87m-&xUvEjA0twcK~Mjd)okz`q1J^2Ua)ZEAa(L zxU@U|biyl;!|Mk-$7x{X%hKjKVqmGAO8%W`$o~VZ9ogV1-*EZFjM+K_01PV7rydcN F^$#T5^I-r0 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher_monochrome.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher_monochrome.png new file mode 100644 index 0000000000000000000000000000000000000000..54e5739347b9b14a027f82e810c1ca51207a1f80 GIT binary patch literal 1974 zcmcK5YdjMQ0|s#AXtTM^5MnWoTP_n7D!I&TT1aeWxh%51$EL(G*QAYx;3+Ic)y$v&+~kHzW&+1-k!=JU67odoH7QD^xIwP ze*@gN+j)`r*K%@z6b#bUpAoWL4iJ4ns`aie1-p7INj*+3r7LJ^fHyMkrN`sA@T~Uo zEQLcyeNP;)$WlP^!uA}0_&~bSWu0ZFwbZ_S?N+BJ19P?T#qEk-rLFIur^+V9l2e7^ z6>q`I!t>aKu&3rxlTwU#2`{@-F;a3;N#-0?GBf?>b$VSf+Xrx%aNBjl&|D15}s^Z5@Ha3><%eLDF z$rf7!4FUR<$>ngW9wJ+Lri|+ zTAZgT3?M8nuyIzCHGFy*x|w1%)1I3=cKX<;;vd`b%#pqA0A2%l=cfhJ2ay%r?;i$2 z;q7hA^$s?*FsF?!6z%KCTbF?bO=IoNM-_?wAv@NCYlpn1sXdem#8Y7vT#@Lt8H#$2 zK}|Z5Vnv0gz;vApD<7xn+F@zbJ)-ZVDwLOwo2C^xQu&_(i1BRQC!9!6u zThJXCZfi}c!!%QAg9JQn(_{&#{9f<6 zf6~3Jdet$YDOj%;O%$R-tTl3>GOO}$hfQv3A741m7XFEx%xWyZYec!V>v)mt24ZCLnX3%P5t>b{WpJHl%c!G=}9t3>o z3#~UkjczhbS-jEsZ@A?fT;+%_SVP%cK4#~-kdiQ!Y-y=K&ms(l`j}b!(CSxjcKOci zm7?E8+a6}e1mRIJ0Rqc>VJ4{g;L|1@H<*6>BBSb!3MkRo1VEmK)BzMZ#oRCI7E)gI z$3)5v>-9|oDnUnL#VhH{%*kX;eN~XT*KVC*&9z{qsCQbyII!QysWoI}#d)kzp)>H` z)u}ZIdPI$$gpJ;L>Eam_{RTj4$$OlFlj7??{anE1b8|1>1}-*Hd7!4EYl!9ApDDloV_DyEk@6*WIZeP2gcwjw zeNnx%RihcfQWD5NsX(Au=0K^W#VXP-js&Y;xA%EigIK?IE4a|bO+__g9*PsdRzXswC<5wb!5az&ys?W3=2U-`E|4Lmj#cJ7wDzkYfA>#%uRbX0`}UzGw+u*oQ;RMOI?t<; zddvQ*DzLG6*6QYGnlr1Ec@ohIA}aIZQ8z8cG}C&n0hAR=Ipr&8ufMNC`+S45^;wdSajKyd%SYEt4(5FBWPnxXHNu*Cd_JO zbZ?ucD#y27lQYJi8>3C!=W7M=z_U|En8hu5kO49HyP zaUyr!gmvzKyw2YdQFDZ^ad&w*majQTQN(r_GtSNH9{mq?9J zeHT{CF0VrkvD!YJGiF-7~x&-5d@VuA!GM%I(@k7mxg{dvIN zXa3mpOBZ$?BhMwJkJq8KGs4H%Li_6pP=ao=^Whh#nT)%${r3LHsk6ZM=L0h>tPuZryaC+$g7YIqcp0MdI$ zAb?Z>LqbTh$@bmfJ+ph4+1Z($nau|L<2RqrWOuW7=HC1Lo^tQG=gunN|BnZXfZ~DH z{{NN3Kb-*DKJKd+bzXk~?yJ~!_x<~S8UffIdLkJ3Udj5O5Fr$3yawO1PmljI_q+QJ zHeZGR1OnKgBiIyhWtT29;*(<<)Y9tXYXTS^S17dAy&hGf0+cZTYBPW;+1Dv|j@Rq5 z0C);P;lASqN0u9`f4Ho9r|%RUKAn;A?p;3#NCqW@OUwfyf3!$rG$hh`l^&k&%52) zG#3He?E-K)$twY!9$pSKK{kgA8|Sl<)TUM|$mx4ksvTKQPwvv3yL*1h$QXG8Rft2# zeIw$25x@ps)xG=J*p$RRy;R=B=K;*k98RyoZVLvSvEr|;1a-wQ=|4WWN0XxZlPZ*sAiO!MwAu-)W)N! zQTOZiZMmc}&0be{lZH6#$^;uqJ4d#{5fD!L#mE!8mNJiKN^c-qq4ngs6}dm=W^bLd zX4B|fEF$R0Dyr&G8U#?ONB5^5l)kos*;M;0d$GQ@ok%=&oN{cq7>GgN%P?JB)x-NB z5yUis-e@~vu^xM4=`TGFk#fWMrdkCq7iE*N0wjnW04%w-Oy| zz@c)QF30>Z5+CmR5)wdfjSkyrR(h0*?0J`Ne)WE4=6?$OBv7;Tk0O9=>ow`U7pEn} zKefPSHPk`p$~ExOwBaQpk8?4frs?$xFdA*g@8oYCvNGePa~u*%>>Hw?0c?|_88&3k z0FCmIPc21YVx*qi$$mdq@~9@z z$(ttIlK;xElXD!!Wd<GSArn&PNgXt4s)zCw)u14)xp~6{ z2lv_F@Bw?kszlTLFsd)8>KeY9|S<4^pWAZv6ahX5w5fZz{#VM|Xn)LLLI7Mb+~Ypzd| zdDS7j>8amH2d|Gw0IgP9bKN9XJ?D$Nu={r#*LwIWk|X^h!hv6-Pf#dN5B+IH`xP7# zM8!o~k9?yr1YgswyYr$NYWH~w;30&4JGBO2`lrc|`Ve^|<3PVK z_VwE&tj*Jo5)crgE&leKV%_;SbLTyknK}6iX(o=2B+Zzm5J2s|CN(wH*tz|-OiPiu zE{*B%i?l@WB}i9;#yS}NZbFF77vlnb!t7ajuy-eM%-q5(6iZ@$*aC%SGA7QlbIZ=Q z-L7B1ZYAHLQx+W=Ng)7D4~m~|*q}ob9rlW2Tr{pz63LeUJ{B4JN-VT{#w3O}@Atd5 z7sHpI!Q&{fu4whYO`}ix zO%ZjL`J~bKO8V|9E*Tb zlzxgXj*iVSg?ktM{OEJ!f1;)+907FHqZ>S6+fZ=U_#$9>I9v*a1S18Xtw{ri#6ZU` zBmp9VW6Q5a@ckT&BJ)c_wCq2(X=sYn`ZJ@J{L*ed`3`5wbdna*3n2pV|2XE?)~WMc zLZdogAF&o`Q@B@$i^WC*e5|j=V_KN>QDQ_+c^9 zp~270`m*ut_@yh`&h=|Sh%ew0Ku110G-EFfxUj=&H9jUJb76rO0AJ21id(jNni>WS ziG#F9HN3&Ni|3uNXkG!F{lhQ$e4;Bw^TgJbB}hNT%w#G)vv^hYmgF<$9MKta;0}BQ zV8}t=x!tTf2}$WY*^B7{0u{=SKm$txzE6^URi!gN|(=e$2u8A&Nl~IyG4;19r zmuP`c@4jqp`JjsWcDWfgJs)v3yMnoE_u5fNBBLBsKv7 z=S%)?8ruKTKATlng&$6y|N48PA@tRKQV$rzsZvb~@$pJVYVPE^$;iY(7EbJN=CmDf zP9bTXfF=3tTDb)DAq0dRGHkz!h~8s0wb1w}13dnO7Lt-wObX-OJP%wr?|=h)ZE%Pz z_yjFH@xj1jz6>V&pUYNPX-bNt8Nzu%U`Wa(0L_n~ZObV&Dx|!0fSnvGNCc}w6}kHD z35oDT9dsc=n&5@sHWkDC?^zQhe^EJehvgZ;8W2K&2>4uHUl5S?dWyV23l{3s7@ zXNShv_{kZ|1vPJI`b|P6(QQV#gD(y@-)P>_0I$Cl&+H|T zdTh@mQPx?w=i}ZH4ty-7Gi0y-d2PKR_uZ{~o~)UZlY^Pp)C_sq1Ypcx z-@g6ydMUAkw+9wnMB0TFcj#h-fn}0eHqoM2&3PT9%qUJ3OFzTIzNSaN2SU#*_?$(Uh6H}KRD_qfSHt0 z0s{8GSJx#ywaQjMgliR-?YG9olTnW$qK<6dSOoLF^E+ft!*MyX2U(2&S0|G!?Lu2! zSm=d}RTfxBPN6u~fWfiQtyg4`*8O{|Fk@<-WCF0D3w|5Ee)C{lHxBp#N&pl2B&V@| zkInCRy|vz9qbWA_oiZZ{s-@xO@{j#{t?>B_Voy2Xqr`M4;CJtBX0{bYa^MD#Ws3_L z60i?k!F=_NcxdyCF_K$D)>#LP8=b>%;spGqLVaY~nhl-5BozjRqih1u0h{{wIxyGc zO6?)1RpTd-p=Vv;p=Y>zS&Kcecb65`uPcVXuHMUGZ}+SLh76CBU8rHz&K(`02BWqr@4Rc ztlb```4OSc@)4X!<^W%PpAvQw6DfHA#OrVfJ?w?QAvY&@pOu)YR% zO#pgPb9(pl2fbcX1=?|u;eP<1H^#)1A)<6gjGef8*+oV+Dw60bEzTcpGBBm`+Epi1 zsj87BJeY?%eKIa|-8;m<$C3(F(Tz15(;Abvs5)p90~){#LCG1D-sAEyk4Nj@fiAtv z=RTC_4ke4>)spCxv^^j2}rgBK8V zjPLCF-3lAm6@i0%o-ieeEPYCw!55J^%X?#U;Mx_|o-0y~6ath=d+zE@RqC+_2xtHj zfZ`jI-u>D|k5?sWNW-l(^&vI9HaZ?ER}s!)!y)2{V|Ms~ESBfob_W`ciLMnNQjvI! z8J>Dtx+cjX} z9~jd1H9_D0lEYAvn}-Gex5fesekhPNd16;k67cap3WepynqO<+xnG396>xQ$1)U(6jT#VE9F$>D=TKk`1mVZUI|~$O(~U;(74gJ;ruz)g1v+`(q5NT z`WZan#-WVO4Kd0@bx#E;N$%Zir0+Xwrk{S z76FU~;6Vv6J@wSv^-`1H{FOXcN>*ceJ5T}^Q_87e^7Le8OkR=$Gv%g`sO5#Md$wPy z@I=e>_}cG*8#yyO96a*n5%PgI9L=l;#KpzMwr_s$s8VT;Xo*XLNfq_Z*zro0)$kz+ zZJ5j@ixXiw%*1gyaPu$UB6_6Y%ej_MVBBPhXv>beb!|2qj(~6y76?aU`M`=8c^}jD zUpp7*G*w$ml{`tHOXvXw$4D04ClW_omE;vgL{k(9$aQSD>@~BY#WAhJ8)tCkCP6PV5JW%V`BVi8`-@5{Wtkc@GaaCZM#qFvRF4v$lUqzB0m9) z1LhKd#+F%>Y5L@wbyF*h*#wI4ofVY`8Nkzf;o?r;{xL!GfDIXB21}loq#;X_X(Vdd zrkxRLk>s!V1fO}zzw3e11oW-H6~mcR4idld!t(=Tpl82(F(o8n<#G!wSs1#A5>8Ge zbU^|PF1UPSa@!N9=l?+pqx}!biol!Dbzw~IiRs$$*jBA7rLySVxdlX8j43Q_+8Y6% z_fUaIvylYvoJ1M3|0bhkGFoZT+8D6=2-@CVHu(CpJaAAS$`WAanV{srTp(_>T4KFM zkTu_@TNwheessu~wo-O*Vd$kR*xq{6(UpxWt%AVnum(gi}pqW8uHR<<7pm zKC@ms@)7MnJ3TQdF^l>ECM?~d&C2m+Q`1*OE0rN4)yPJRiPMrmFL43p(w|PocIW5& zK@qSXLQTNH+Iy3e;L*pW`4YR0jF{fP1Ah=LlF=C1`=5E>1``>;7*cT)joY;N@EyGJNr+>`&L`Wn_uTqY?d2VLW`x-9PhcVki&7uFVn2MvR zBw6)-LQ)UWk3{3}dYy3f*33@FPR_yfbaqk}BUOUg(WnL8o;|oxqp6SoO1z0iTkrJ*m%`!0T|;?A4*6Yrc`-;B?){+OV}@ zCm!>|h!uCP&mNANpKZBtM2xxhdkTd#;DkVVrlS#FB$;jDGLQK>cldw}W=_AuJnw;h zNCh8##2X}G7#CUO9t(-nU;PV43?e_gUNZVG-um&j-GjgLOMg&eE*}9jN0b>2rKUbn zrhcveZq=&G2(A%Ju}JSvO@uo2RuRaOBk#@aTP}Jv&fJP*%1P4#zBc~2 zq#VSO(U05%O~GVB0EUpINMImuvd4E{ve|?8vk0Mj{_h=ifO8PYrB;`}S#+{y_ATybnqy;*0mvOgUz+7&&8F zHUDNnV$8p$DwW}5^g@G`h0DuDlmdupg%jV+A@c){6CjNe10QjE=wUU?{7Rk!ruY_< zIYWAn$TYy?b--QAhKW1(j$F)={-CW%v>u^=dyp0&37y(+U1HFt)o1%{sUeBUB(77d zw)_PaZXgXCEd_YmIrIS^%}R!{<>b%kaXZrZw{j%PJG&TJdbgiH`rGfV)BWHJN}&1x!Ktd9nOakjtI#yz;qlnXZlB%XY}+^R3zq2#*&EEhP;AW)hdwk)YBHP6u`L>{Szs{KAlcKLQH_W_ zdZLb&*+D7gc@O9SF=!U)IGjsZN52MYG-BPw*pLTiOv_^uvE&^du-VTY+Tew*%{)P;Kj}cJJ zN|SR4X$n5S=UKAL=7kqy$s;C(yNt7MzO`d1ZE(7B3eR19uj|Dt>o0Rm5Az6fp?ioC zz-x+{H=flkDek#hYPGZ!LN+jEQdE#WD290sP-3ErF%2m37*f7|%>}D|E`$?DWg?F~ zln|(UoILWTceTCAR8(AVmzQi+og4bZV6a-}{}fWuwqb{9jjSx!_A4zseMvv0|b@|3n|P${f+SJ)E?Oktp_k zG&R8Gwh)_tc;WWF>9hR6<3tN>enh{h5eWfwmK;Jt>t>5boAh;G)MzlJD3V(TLnQ{R z*!R%{9!HW+S3cPW)x0jK-sxf{2BnRe>jx5xb8qobuJhdyvgbfP6zbxAdVeSbtY@DnHGJ(~!9%O*bz zH5h6SRw-j+arPW;q5nYuPkxb`%!G@{5VN4bVmtKB?)@W|`vIrG({w^M_+t2qejiN& z*d~ejwGDF8p(<*GJ|*SRxEfVP^)l*eJ+D?LlvgP+Ywg}b&4U0QL&$EAl>nc6t=M{U zY1W0W)@I*1i(4ttxgzM)*0X;VBWk}h9Bl%)et}H{A{{uJH28Oi7*pL|Dn+?^DwP3L zN0$#WaXZ$#j0vXHgKIZ5<$selcG+m+NW}I zVw3s?T_vIwWoj!GF%KaLN^;^W`VEBwImPEmP=2u*4*}KZ5AhXKLKx7=iLYL-zZ-mtFRQj=)pE@jX2$@bvkf5e+e=uvOXw&^AyK__Tr&g0ENM;gM=OO-fajDz*{{BF8C|S|fNhB%rN{#|p?C^)4u!MP84CiC~j~qb53XLg2aY z>G$|b$@8f|=qw(=!jldSsm;b$JgHREU&p4e>~ieuqt)jJYJ!9+rvUP42K5^heEOLZ zK(E1jQw^q)N&%!2%q0Q;&;B1<(kX%W1^5T00eqcflR?4d5<{h)E&W{cNdaVQ0tJ|A z1s~w0Zf3$UdcS;tRH>rv;gZ7s%$9sU4e+@I;gfzZwN0g3?*9M)M0PxmaJ@4C0000< KMNUMnLSTZrA*V9{ literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher_background.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_background.png new file mode 100644 index 0000000000000000000000000000000000000000..fdbaff99aa73cd19647b07e96258c6144947932c GIT binary patch literal 1308 zcmeAS@N?(olHy`uVBq!ia0vp^H$a$!4M=t>=)PrOV0rB6;uum9_x7?OFN1;ri=%;i zcRk~a1{VI?XSsJIeX{;;Rc^t=BGjn4;mB2uMtuc?eg_2+fryUmSq%sNFf;}@Bq*-S zWMcZv%;Ln@*t%mGC&w9n0S;Ccu}8Di6b$S~6_19-XxbRfDFay)*mQpt=a*nQ(+Mo~ O7(8A5T-G@yGywn}xt-1c literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..220465838409276981ac7f381e294f0975965c78 GIT binary patch literal 4962 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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..29f93b2bfe4cfe649a1d0b8b929f8bcb8ceae15e GIT binary patch literal 13252 zcmV;#Gds+QP)AP7kBO*$w=k@xg3*5}jrdp`6%^>1&_XIDg;^deQH ziPEG9(xe730s%tWCfk4KO!lsKCo?-UyR#|p=l!ssgzU`R_MPuJ_uO;N)sR2RA0rUM z2xwxs_m5lu7yR|yQ^t%v%{wqQC-v%HdFt9-3|IP=I-0`4bV1LT_odWW|2264XOzsgB>{5_tybUMAJEtI!<72Ge&Y85VBmLuAVA&10_e?{`_6ne%rKl<%Xwo@R31K(Vu*PRar1qH2?{T zApBbhFq6lvz140@Yp>H;+iQrqEzy`Vy`F%^?LlA!h%X2jfD1=86g2cF&LsXWC1U_T zTnRM@{-8xLA&>x2dOaZqgC;;U?nA_1a?lqj-0v*N-v8yYK}Q%c2?44~fvKthNC-Fx z8tyZ3*y2V>HE!vp)7kIx`K&#BK8+oL;`IVxyvQ)6K%t+IXkt;r$Sa{givo)GMF?0y zmO>!u^re8(=>i2BP4PAo$lG!)_tdvbR*g9mWG5kpsuDn|>;R%7iN5S1(Ddr{jH5~V zsNP1sqgNnc>*@9CGCZCDak~*H;eZjrNhzXuMeJI+0HO>=AB%vZAN<8=Bt&mOK>5$> zwMAQ9uIpP)|GI4Rwr#KGF<@eusZs-}vI0m9IJ%6C9>)H6y)?+EPkX}aHG+5|1cBoP z@r1gJAbW_-eyjizd2S>SBA8IrAuEB1BL)z8dV}|r*LV4?joThsc;UiM7a#`svy9$U zDS=ek03@_}Le|ku8oR7nqNDi;oz_0Y=P|Y^E(Xwmh+;*P0-OjVEvWyLp{1bGQkJfS zt`vQAm|hiPCU}G%z+|=nD;YgM!QyVs&4QCFzFI!&L=Z$QnE2)c;RclBUn>iM#DOzz zWoDA2*)R=B80v8wnz@l}+`?>AnE@0@1X5Pw7|Dptp>tPBjMv%+fv+tB33~~0!WB; z5Ip+n_xv!_YE7NwaU~3Jm4u5bvGuhg_7Opf+6pu~=yCwWUXNfxW!sEEG8e5c@%=V$ z?%b}c;Tl+1hUrKZD%L6rKtime8$Wt+n;I!?Ci%RMiLMe&q6=83?9y9A?+|%KlrT_b z0T68mWh9ds7|9sO(;4#T=jR=pw{XSCpLk-e!q})H0K|faQ;?B$?iurShs30IpSs<; z1}y8yR$SvGzBsZH0;dA;73(t)NIG4qSTkAz*)G?KS#uZl+)x?Vs5}A0iY#i+(GTqP zdRpT~17-$Dwfl<-Ndjm5Ln*Ih(o|rdiq?O^#GL>*k(F@yk1Mu>gg~K2bK~PP=Qe)u z?as$9F}e{|vPChgwz5=S0HXEKEeDQuCQn%3Jt?8-OpiNZND1gVKCtDK5m_=6iOQn? z#1(|Jlc*a38{x9wWG+}!Sa|w_1L6J4{zMrP)NVOSmm!T!< zI%otGn}E_U6p@mkK`~MVl}-QQ_m2v=1$=uej zL7iZm=T>QSxlecg)s|k|^Wq603LdKO=(={DRikZ-nNRwB)gCG;1Xl{))`R$pNxbis zU3{qqLLt2fXqg%zZ8j}2ny$aM@9_Jt9z6ISx{%;GLE_DK7SxQIti&Q$@sAx#&N<_lR>z2^JJ-RsfN~cyms6_BXGt|MubY3=;`$&Z@#l z@c>X6@QfNZ_tsi9J3ZlbC*F5xqzi@Wexel>twkI_<5a1}^@r#BCdb_8mpwDQEVS$~IDUz%5-z%cDEkF^OO~$C+IC{iIwrnaUCy%>HLB3zqWT0gAB?f-E;w#kVV5O*B zbK=Z&bI$&wZ$EeF&<9r;5K*N%<|V!w0Ah`V+%mmx-DZ}N1C~GM_M|-M1lm`Nc_eV9 z*!GiLO-H)*w2(gitsDbUcT_1}$4R{b476#zlYF9+1BsAVPdG|EEF5@MqGhkM%Fh?o6B29o0Eg3;f_2^|K zgNNHl^%_ALL-u7~_)6ha_Lo}koTu$J@YMQn%lJS%5q$%h= za>bU|=whFKIpHSr=N6EYNAcw@ElLMXSN@WB!bcqE8PvErQGz(B^|YbUMSn4+R=v6~Jba*_FS3ds4hp11-?srX{Y9@*9m zFOboAk`+XFX_op`D9-k;w4EyzSd;X{(c6AgeuZm95d z)1U7@@=|eOjR!EeFH*&&O#D=xJ674>1}k7SJCkz}|Ca+7{FdV-y^|KN&5&4Me>HOmXhR|^D0 zSQHE))V5d@Xd$u2E$!_En+_a(>CZp^`~~JdVwd*Za7&Gm+)-o|X9Kd&jC=OX^7+zd zSy44pkBe{`=a@UyF8QvBHet^X z#pH`m3(9V+Rw4k24HcK%!F=(}dCPA97xW3UgUD8> z2p*Zh;ea870HS3cG2r16w%lCsNeRwrs zp?jx0$ZfZqxnR9m3a&o)?Jgm6KFP1t>>~vrE;EQB>*WP2I=`ZXh2#Jzv|Z7+=kra{ z>rMW=*lE6%n>&S|QH6C_xgj$1kys0xjB>x#ttK*Iik&oQ7@ID1_Kb%tfTjD9pIqU? zQH9tChY`obn&3K;b#dO*oqL`=C6|RF0f@iyGEJNG{Vcz?(LXSjOKFjNhon*-1M{$L zzyZT;jnU&1NUhq@ZEIZq%}c%l#rcOF0^1i=3_v)nXxh*j&p*F#S(mrvvXB&jsNDxL z`w{c~_ng~YTx4!7Ymya;D=CWoT~vxgQL0@+ceZVBCgUe3kb3nEvW<&qG`x7h11=ne zRcbgaeUumygYz{JR%CX6&bqB#GOt~`hz2covsJKXVgO>FxrL0tr;GzA%zWW2a?q9xc)G{6m2`Vj-02H!1Bl}FBc<4=6N$R9n zCQ9g?k$N6?PaMI+&Jiy0+ujDc5o~wxeTBfo65KWNfpJ{qnurf{XvzA87Lu-*BizM6naZ4kn5U6Zm$OIyzx6AN&FSp`L;Dp`S5smtZg-e-fks z7_og3zKjH*Xr8GQJf-RFO2>rDm53r0UuhJhkOBwuMdFyS&U;Gh5G4Yr15@j1^+%pw zvZ~+5K^77DU*p;^YBgMzR2S6W^2c#bB9i5a>t!!0Fgf8wgR%zX^0B_c4IO5 z`LK(N$&#}5M8vnmWPkXDum}?ckP6_zNyFH*)|p1qXMmM7ftMX3YVoWdReP_oM!=o?fyx(Q}5C23lhT9v0t{!{tO}3+><$ktk{pciTKKAkR)6q`Da8WR;`LI9#$7bvnU z)5f3KSmLs_jx^PB8jE{Q^)vL~N?|8$+C?o5xn^K}n>RSgg1Pym1mfdj zkb-B50SHCKWB^ZJ*x-#8JoMRUVwnF$J{K7x+sQ9@v(Ow`EG35*t!mUi2q3ykAC_x~ z4?Ny>RS8;6}k$gSKpcbPrFAg_iRyFz|N@Aa3ho!kBe4G`_Yk zM5F((jYsxra*Kh?{C`Q@s!OeM`WH8Oads}j7<|zZ0bNva#aOX=>3Wh@Ur%a5`x-Pd zl+n#l*EoCH!|7fZFL+7TS@=Mj7qkz_5eF2g?6sIa=I{SZhOvoGoD22&@^3!!&g;44 z%p#;_hCkg%=dPgL96jO58@szGi;`AW0YTwopZKF=o`*EvINl5>yPH74uT zZx*j?I~l%5J&3NxLXjJM24eLe>y&XP*0@}W?WGzZ{`Qy7V0BOur_OK?+_+S;AS<9Q zguXasX+XFpExaC$8X3v$T}-5X2Q#S&CIp&^OljLtj3SWs?kWL~#1f8~lo<4;J>US{ zNBt0^ANQ7!kKfB9SFea=Z2!HdQmTm2n7@C?*Ug780AhWn!x$(`|EZbSzFPl&D|dN3 z`WlJ`R-i?7>*>i8@TRFLzPPs?-h&fhOndHcc#sWKM3@KP^jkAcq&Fm!x}}9lwb*#n zH*hJ9cB&J{U7W!$67$gSo_{%oGzS(`JH!aZ*o*(T&H-AgNCC)T@a1g(Zg`iR`~x@O zS-3YwtY*`ePQm|?YYdlsWUdq(&i;vfjY+Qmr^9Ne@S(g|2Hle&36WDPuhr=F_s>_W z$Lu~TG#D68^U!@)xnnQI3ZA6grk$CL9Bm^F8ylk*SyCWF-RRg6H(9Z?kTdGxP>HT^ zz*zYH=V22XqIYU$uVl ze}W7YrbzPv#Myt~V;MJk=Svz-!zs}WBL5yV(?9Z5GD(BMi$_6a8dJ>S9vLdN$B!bI zTqFm?n;nv9_8)A8ZGwcj09dF$g|H&SIQflhOIJcQK}?~p)1sA;pgxFuUdh$8aRc*3 z0PZXQx7pxb-i}j+5hT1EwNd5lL+c(Kh$WtU1 zcCHja8g0%GD>r10VE}}B5N8Xb018{e!xy%RBaeRV_b0cBG*EIIf^S^CbOV|3po27O zqMp@NY7+l1et+tuoBZdkJg|~OrZj6EC1WkPp!nqd zJT7;&TI_>u(&`F+S+TxZZw5egOQQ?}aeH70pz$Nld>`;z>c!eAdOzKF8VcFL`t*-& z=NZBL=?D4bdx(xeuf~=TB-pXDiTkO>M5xtgq30m*(N44*oWSrWMtOAWVIlXUc#i=? zI3}2{dO0Ne#Kh-nu@Ck^qbt6+a(&~jK>&r>f>;LP^8N$?WScND>ww>9NKs=jDU;#= z;ff5G)SW>mie|uYU{->iWeNDc_=AfKwDTB1*Kk0}7F3vT?_%aQZ_8Wn5gRMihtSM` z<_1)(^I*m30pDiM*a-bW7v8ZG9AqSnOSEIM6JDmp^9#6DsG8v67)a~6zG6cLZfRle znlb?5dm-Xd$vS@cg%g2*KI&zYm{|`8s79)e33Tjj{nG>6622trcW` zhfWqU2=W!yO*0TYrU+ZYzJc6ezz3cA(SdvcfCqh}aSu#NCu;{x^vGY5RNp?4JLvQ} zTnWDZ|8vQHV4kodFktBRf&m7TraCxJ0jV)T=la#li#TS(xHYjNHCEDnau=`K)Bpj5 zN;K=8C=Q@8!%pwl604{PQwkWdMxx^u9*e{0$sGuMGy>@Hzb40R-%D<azq%e!cgzAjUIYrl~$7y(U2$$M^S$4=#Lo>C3362iYz%GhTnVhCOHC2_K1h*MG35k%n`%bv(NPha(-I#P3Ev51C>#t z@me;K0=Ejgd+@$RI$hn)Q4M~K4UYvlw7uzI`Nmv`t=q;H0TNaJnVZl@=(CUV;JD1_ zT`QD~M=Xpb+E>k$U8^>>8_$TakWUcb5*=EFjTrFVTSjA}5wZp_M!-bd=}6TkLvnC~FMiG8nXn(XbU!E`d)n?oDC- zM4?g@z=Q2BbnSTY+wJ2&U;q^Ii)I0YdQixnqt_j84X&Ot25(ZWL<1V`jZ)GA=Hdjf zG4+QSd<>;lGjv8ybI_L@_oi0D={+|D5>iza@L*qa3zp2>vFnkqgCdO0BOT^cj}B$j zBhh+W=3|)+>pi+wqlqmLFj~+k29C%Ln8*R0+0e3Eo(0`m=Y0kl&Gwg+3GkB|6RGdT z`VsAYk;Wwu@R19bUmJAj$UBGNI7E&v*xYT%{OY6GTMH~a6<(OZp68m_)1=oJqJE&)F;Tepbis;fx zm+~Bd;A0y;VDD0sA+2qBAzn@3ux&=4QzU@^6xAoa$@^1Wiv(8^@qh;KV?1N0q$ zM_t z+4}t>7JvxdD|7CJt5t9_P8ja)H);Z5J&;g56O4*V+()A6H}1Zpv)GEo1!0k)@c<7e zy%mf{H2ujd-0@9?LKf; z5@I!UE5!qNw{0#as8kCwvBJKw&xkkkU|lZvuSYj*>xjD%sQ*v}IxOWc%Ru-$wFPnM zT@XM6du@0z!P!tB0uSImzB#c#GhcS0}tUvXR=rmV3s#{u)ZSKp~aiG4|+NX9yYxT zJtAB%KM=AI1(5ZwJKvvFJ#i=;MD{z@HXl>{000wzNklECXPQCw zjY(4zNF#`a=QB($_$03c9c9P15~7FRrqs|uT3tQo4Okx%P1Q^-O*c%Bg2GsHblkdn zr8KG38Axn(4${bBjz%;XcJB#hf-!cI%!_l!`_LioOUT#5PxurqgG76uya@=uDz|XW z-*@~lb6${v1hdxj8Hg2QoE}uKR)^ZRWzO5BH`rsdD2nw!A!sm!2cs`=!ZA4|+IjF1 z7(#pne1gxO_L5@AScV76wFRFbzIZ_;cLSVjx^9g#EL|{$9bptHMtNXPW{g?KC{ipK z?TQS7xvL8yioywX(Xbg*(vu7@df@20Xh5X#V4-jx`nvN2Ny2hOhs0RVE$`bB zxVRv7ibBv}rN{`qAg@mcII0rgbewRUV9abEfKkPS3OLD_SilDn4_tC?-ee*pV8rG! z2z|-sMK1^)EkOOVLz5=bZZ6sclBACsYv)3A_=ngbXff0p+ltxR5S$oEqJbN+tq4$T zH!|ZM@NeF{(W%$~sm{dw{*>?5fE;MIHpQ9US><_@m0_3HM~lq5&L zXSLcG4rhx3G_*S{TA9e*<854wIeHjI6Z(SBLLcJA3kt|72(h7gk3`R;;LnIe`w=uv zAywX3(79Seuwyg@fr?CuhuAHF9+PlbSVZ_{3*MV@>%!(lG#r9sG`+&14LmvRt>GAtwLk3t$yq0@mSuyGz4s zu*d?BjDFC`MRAGQ_p!a0(k9x1;KqoHMe_W$J*Bb>Lm=UbNXV(W$6xkuk_h29pjLX0pHcK07G3@(+U(st3=P zSPe_+^`Q4~&iZn-bs7EQPcDilJbP>yo=p#8H`;$O9&Hj#S{*XZ zdQhB~EG&XhV(G+_L3)y$Ga+U`)`!jZSMqO)p%eX-!2qwA8&j$8nfQnZO+UZ_U=z;wb3bwkp`X}8a$T!p+^$A| zA_F{;K#xXAG+YiE7F+TNwryD75fEW-zjm|ivEnM@$?tcO+`MhC@7yD2-i+(s~nPptC|I06mW^b!-@>x z$N@hdATt4+*HCv;vtZuG`Ot36MiS3b?8-WEF8j@gPn}wV$A0s}m_y0M*)~K15Pxrs z6Jx!*efe;rz1u@tt+0n*G=Sj`%4pCbFwub8d4Dh^@R#5v_ye4;5h^Ny2cL&YGw+%1 z086&IHdk~J!Q-58RTi(}_q$16;m&{W*gg4OsDo9WX*M!N0HQ2J^CpJ!2DNH_Z_5U0 z558kErZtRLXC8on!0x>)svJPVwh<#EFiHZmd&pjh$p9FAY5EVc!KzXHC=m23!gJCv zbzQuQ%XR7O`Rw;*oj5i3XpntS_u(IHP-Zm57>E^PWp?O$cK!14YK|T=V)d712ZLp< zho4L$-5?}KE&YeqgO=zoKFK3ruf!Kjy2xQu_8RnhoO-|dc_6Wl9gubGO*j`MJ_WMe z7Ht1$`>u&^FzmyovJ+$<3KFq4A-Gt}GzxZZMV6Y{F15q0pRPBXQj=ookk|x0{6rGz z3IO773B*zt-iyoPxd#;NboI>xK*m1_A)ZYIfka4S|mUdh3<=0Lbmhai7V0 zWyCLM7vS-hDBtPQUG%hO+Qvu>B*a1?!(z8ipFEI~*!?lR-X?oqVb@jlhZ2UbA$p5JBu~wK+>QjhtJqG7*s98Mj>jl^IzkYVlfoIkQ!NbOV zg&iy>Rw;`&`8(%t+db|@20TKC>qcCM$^j6c zg^-^q3t4Jb%S`Q%`O#{VsZNTRD3j`((B>w(nW8wr^EF~!jiC~X=Xosx_Bjn{R^$Q# z+pXkUyuL|O0~rS_lnDpB#JUK;y79~}G(DjEtXc&{SBd*d@tI36j68E@#c4)#v74r% zD=)SkN&rMzh`PLnL|K>H-W*pgxz}GzhU#c+lvSj5#Le(F4`FNxNBh<*6;IcXbK-9H| zHR{s^F**Xz58b?>h&$0oPKg#g^x5c1(7T_FJ0%DYS&62gxcY9ZlPvoR()Y?Zx>9Z( zxa!I;-1GT&dnUgQ_n^q4iZg38l*K+26msjP*YnTS;6RjKw{QKXjb{BV!P@dJO)Q>^ zyw;!y!!y;O ziQB#{CL7ikfn%BUv6WK&qTl0oMUnH^mNQvzzmWCori%>w&~RnSK6r}^8@#YPhZJM6 z3N=j!!-1%6o4?*sD`m)EE#~wl${#IIZLkY?Xm2O*OzZ~XGkE%;l%Wo{EKb0&*W0%^ zIo(H!dDH|BH}b)DBNL%6)E(N5If|qbU7?{9-C1`)xY2Gnv`!A_<$?$C;4H~Hb?wHg zmk<8@%J&R-sLe-_=%V#15n=2-LZS>k7cE^nyfY!$(c?*zDJ8lsX%XDx;N!`In5G2} zZ^P4n=%H;mVd%JyVK(TxdK~f+B7jf=p(M&#I!mo6DuDf#cx4pW1|HBIzu|<7-*prxLF;6T25)x%} zvy}tUot-{^$YJj|(`b;n)1jcr=JFJyH{( zHgH(x5t?Lt0jh&OgwY}i38kS!T8N58<=6>fNH+mQS3%4=#e9{bMGoBO@!TZ&1$#c+ z`Qx;I!++^k1-n_QSahiYAa+$o6H{^aA%h_)p-cOJKkl%%pJXsN%644=U?Pnhf`ASF zlQYKU4IHsHDQ&l$z6o99@#d4fqW$ys9(d>t01~=2vU^?p?Fz*+6O9NH5@qbto&!;h z8tqbBH2%vYiT1W5^*Z%3rA7;YXz!DnxOhERs$MzYd%cCEz8x;m1>=PRbg!)hjMAhugsX^+e702Ga=u6Afy^3N$IiZZUv~E9OK=ae4*k%BQs`b6J~Ars zsKG$=87vc_J`@I`CQa^bk(N62z65iN{(?GDa8%To7&V>|4?xSAcr~s;ou{z)=*H~J zt3Nq?j`J==;85pyK6nr~QG-V<0P#V@y1}yIEIqy6kQf{&3J(=ZQpESb=Ux6E= zpe&!xFF3e(@1e(*Fswr@%&gACX4QyE?};~nBI!h|a&69R`Dmx4#O~v4mL@$7dIy;H ze|Ouch)Jx7I->y(`tzW&>?}UD^~TNZi;kRlb2mH(^&HAN)USuH^Qgu=tjLL`4|49| zGZ9T0LqWu`QN7wd>()=3INok;J=$cdZH?9`O-_Rg9A0M_vW>$tsn#rZ{h-UVl{MGSBdJp7eb+`&U9I9~I^f|Ruru`4tLPl%D4 zW=w98n%Zla&D?yD-jHn9>*R+FDd|L20uJ^IbseuKx1gx__}VKun^&JYKkpb1JjgnH zWtnvfQ=NIri-GtcVmDyvcnAz&t-bs$OLoKF8UE#17*f3S+q@Ah;9Bzf>Er3Lv zr+4NR99(ng=s!0Hfx{g0ZM1`-XD>S}H69N(kss;`2Zd@z5 zcW;X&y}QX+=N6+O8J7KJ9oDNNa7vfud9b>=_)AGi*0#&Jn>U|3xAY8;aVUr=aA@Qx ze_JB%VoQh-)PaSvr?4QRF0zOSs$|p156ViMs7py~QLS;qnM3WiR+IGl#A-U76&MK; zF=*6{VpY}^mcJ$!(h3J zEPhWbih=k#7~f_@H)JUzv0&nWl$6xWkx^$%mjvrA9Zlxi9S!=FIy#*N4o|_fFtNpv zDTjl+JCJF7egsW1FwXVtl9KFwMb2OLoX=kT!_Au~@`C`OKw*C(+fc?~#T8|na%G*$ z!azdpz?tVS`4K!Ukf_p)Ke_MH(}t#}R=cy4*;>D&(NOy~z0P6NY0VJ5fnbU*E=wLH zq_1K@$KHr91XQvYh4ZKOIocSzyyGTAV`e{A=VU{d@)c7u@AkLeGUbu z*qE^l!T!!?AXb0je<$<|K2Vi&bp_l}l^959c!XF<2vjWFu%Kao=ZmmN0HUId0)fv& zd|-)zu1bQ29hj;PAhEs(=}jy^_#k6hM`}#?x(Oc~d~gYgK312i0NzlqN~yt8ucq>S z62D(UOvM*f>^)-R!e2rQfr+nZvpug=OK>%& literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png new file mode 100644 index 0000000000000000000000000000000000000000..b88d0be6a1c928c28949799313a832fb714b0eb9 GIT binary patch literal 2941 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 a#OG!ck93YqR)8-~hzxY@YS(Bw$Nm?*BG(lF 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..6e6be1094438acfb19fa358ca7ad4e7aae39e0dd GIT binary patch literal 17684 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..717f3b5d0e000b3f1aef7d0c1c9837f6396b09f9 GIT binary patch literal 11780 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.png new file mode 100644 index 0000000000000000000000000000000000000000..66dad69080ef1fc9b393e4ba1470b80879bfdbab GIT binary patch literal 11099 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 aw^CHrW;WN@V}M7qBo9?|l*{j1z5Fi + + + + + + diff --git a/android/app/src/main/res/values-night/styles.xml b/android/app/src/main/res/values-night/styles.xml new file mode 100644 index 0000000..dbc9ea9 --- /dev/null +++ b/android/app/src/main/res/values-night/styles.xml @@ -0,0 +1,22 @@ + + + + + + + diff --git a/android/app/src/main/res/values-v31/styles.xml b/android/app/src/main/res/values-v31/styles.xml new file mode 100644 index 0000000..a6497f8 --- /dev/null +++ b/android/app/src/main/res/values-v31/styles.xml @@ -0,0 +1,20 @@ + + + + + + + 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..0d1fa8f --- /dev/null +++ b/android/app/src/main/res/values/styles.xml @@ -0,0 +1,22 @@ + + + + + + + diff --git a/android/app/src/profile/AndroidManifest.xml b/android/app/src/profile/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/android/app/src/profile/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/android/build.gradle.kts b/android/build.gradle.kts new file mode 100644 index 0000000..89176ef --- /dev/null +++ b/android/build.gradle.kts @@ -0,0 +1,21 @@ +allprojects { + repositories { + google() + mavenCentral() + } +} + +val newBuildDir: Directory = rootProject.layout.buildDirectory.dir("../../build").get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} diff --git a/android/gradle.properties b/android/gradle.properties new file mode 100644 index 0000000..f018a61 --- /dev/null +++ b/android/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError +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..ac3b479 --- /dev/null +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-all.zip diff --git a/android/settings.gradle.kts b/android/settings.gradle.kts new file mode 100644 index 0000000..ab39a10 --- /dev/null +++ b/android/settings.gradle.kts @@ -0,0 +1,25 @@ +pluginManagement { + val flutterSdkPath = run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + flutterSdkPath + } + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + id("com.android.application") version "8.7.3" apply false + id("org.jetbrains.kotlin.android") version "2.1.0" apply false +} + +include(":app") diff --git a/assets/icons/icon.png b/assets/icons/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3f1eeb9807f911f0a86745947ee78c34132342c0 GIT binary patch literal 25959 zcmeFZ^;eY9yEZ;EjFQR#QVP-{jesCMfV6UY>zwsH?|<-J>-~wChrRc6?>n#iy7~HARsJ5qLjn*8bWc&?r8)=%0ltNR@a_U% zj=V-LKp=XM;!7z_FXQdhI}Ju{qt!aa^|EEKs0bKy4b&6Q@%Jp7dS(ufL*}-;t#W2% zTaE%71@rG&t{Nyl3F9aDRo!&;*r!L*__eDu6{oeADc&omD|eFoSGK&zQW~-R71;xU zzWtjI9zy9sU_3YoVob935wzDmM??XEAwf|31w49C0^Wap3j!14(}TnWL}We#9{`U7 zpWytzPyU|_{+}NF|G*X$WFXYkjKa14%&d9g7S^Ych4zt!y%JH0Y*CSa z*B-2I4I(zsmDM4YRh~))1q$!pUG>Y6bOIhNFXHpiUQyu2D0#GNta2d~&TH<*HgsH5IBFBrTx{juxQCA1mR)YK%i zu_==CtK5i!%RWAcaLV##+(F%Fl)>GdR^4Ej;rsX0q5Q1CyI{O*K`<0#p$V`A{sOJ0gt=c>`{*3yY0LdA4^})F zj@0X1Vm#(_5QP4`_goH-`6b493rD9Xrs}SB*Oy3PJ~Pd*LVf{d0yp>c(6NkqXoVH3 zYlMx9&)+Vj_qtrg6MrhF=(|Ip#onqYJ?sH+oY&0jxDW=i&YsOh&`xq;ODn;d;%! z8-uC!B`&QtvpkIfC&fm5f1fn8V_uJgSp0RctEtGNq_P|+u(DFZ*W_0^khlWu&&6++ z={ST&-;C*!a%ckn{q?C`MOSg(dj`Df8ZB@$bAS7*rQzSc@h>SD9q*!a0(%yBH7a}{ z1Cq1!ryGuNBd-2HiOIAwxnMw>L{JN=VvMF~H^H=e%=O!Pu=9zV(q1!RoHPxRy#+5u zXtUWXG)$Kq3s8T4me;Qb3FpV*DeL)9$ z`8@AB0y#>^n}@+a9j#@Q7Qlnk8v>GZJ|7Z=8oH#@dUSafV9Q<5sW)}W_qAea9Vr(^ zDIc{(-Tgxk3fu!u-E6Kr0COh4`n=(dOHsql9a6l9$7`98Iwf$7#JE#=!u?1;kBLTJr$1 z4|~el9g%)jsfn6pn5VrnXvS)4fGt4}t%X52&FKNhAtG5Cp^F%0FR2(%HYmv}&TuJ#8N!Us&?0XV?4i z_{sUD342ae>=$IE0Pn{QEkJa}Z3FRn9Dxj*7Cq$SM=kq2QaH&n3+Jnxal#e)WLsau zWk3+DG6;No?Re0DgJHf&*YpoCpOccFyvGIckBW;=oEAc<0FML*eIiQOxn_E;nZhtW z#|Ky1zanlui=$af8KzL@;)Nx-K>~MgQ?`3ByaY^t{c_I$_fz5;9d!L=$2@zLzUhy7 z7?n5_@&pOOqk1|kwUDLEZgE)Td_(B+q~X#d+R$fTJq!Hdlak3Cu$PzQ9T1Ee+;fZ= z{f?t>MaHbT-9w6#>e((`wg>`}Nf;3zU|yQ_JCHC;!uFxz8J#WSV=9c|o^x9|M_V(* z7KViLLSdla&e@cBFCcj-dK(8f1`kd3ouQnxd*;NWT}47;&~Y|#DU2&{u>-827UD3Z zCHAr>_S$0UCyhGxZt&=_MSh?pwoo>}^~UT91hG=~yaC+9**jmk$Gm|<YH%PuAd3$f3Usj75Yz#7n=b!~a?FBP9;1vvYv!uj z;%{=SQ3Ba8@T!)McON|oOcl7nhE^!&WWaEdyf1`CJUhRSYey5)6V)88vj8zM-pYFL zE$qd=1T*2YJ;tt{A16*!e#uE9md$4(wYxi0ymfhMcwX`#@Iq=AwX-f%b$k@N<4dWa zdLKeh)Xv3~da$K&&!u7qG6>j8E1>?Q)(XThXK28AvgIW3RB8x{!^Iqc|F0)* z_TroPe4-6qK%WHYI4Lnp#7WDd zE;o|!IVA{CaD@~=!QX#A0)gchz7<^d0HIY8@?glX)B?_*Th&?8F9Z7YDZx>k30SFj zfk;RU5(l+e+uPb}LZ(@+glfkVeF1_svnmK2@j}K2iDYs<*SfYi!y5txKc}4l~{e!ND>9D>ibqAAX|OI|?mLY`e;$O6yBH&Q!%fd(LK zO(wngvp~(#_HRIRjq{v{E3P-7x6g7-(7@GQl?(m27l|neFyJnCFF#i-5>>3kZMsUVK7&0@^y4m;w%#HMK6fYjX_xd6(+`+h5?%EwRSe zKy2O{KM55xh1{kD=yRE%n3yO6Uen6r`lOBfwMVDQmK!l~|F;Sd5L|SQ3K2&%UGueE z5R_aR0V>)r?4BvG@#cTsOW-opkQ@13;qHT@m{MkVx~gN`yb&DFbkKf%zyx?pgu_6m z488NvI!ihBx2z_VD8a$EzVip!=F&;>JIGGr4*dcTprL4#^%4VY!faFQ939fb!V#i? zq~F)Sk3`>;sn7Y>vvoSI6GDt{joTsME}cMN)<2?E+}FloOr{a`92}xchT_@ryx!kQP_`2MLL*n zAV?JS3K#DaeBn$(sZ||kn3R=QN&`Fho^THPH98v?&ksoMZtWR{SNQyeGWVsmCA9FgK3<%EOLw)?%&_qY$!X>o2Xb^);I57tWIfKA&|ny&5H*RDl1 zsmqyV)L6;JKDnt~%3|Sjy<32-!MuM4{RfEW3l2s6ZPJLkmOMd93!i)?>-iG|f*El7Pbg~yoW@-Rj1jfs}m zjVEphIvD-|corYBv2lzoanpd#_HtO)?1UnyUpbN+Wl~#aX<>b%Otv!!V^sMhWVp*&xcUb1guK( zD=HJ#l7^9|D&M`X`Pt|rH~~eqh+Ofd-{T658X}tXMN3oHBQg`5kOO@wH)$iT*u2Lj z@kw_5*ZygQq2lMjJ9Jt13rWK-jt63{@3Y6up0Y<|nMumRjU0l-PTf9=iIf?~aazr% zr{94_sQ^CD{+}Nmw28%(aRDO}Vj)BhZW<*lg-Q-=_F(_wZd&X!8sA(!r5}6*tlTJ- zy88)J4Q0Qu>i)g>&7#DgfSGkXd=C@1qUwF|^==}N=y4h~_oUO|Kz%|$kc{fi!$z3y zZ&p)cE-H&Z;5dP&smZa&&z-Q=RfELVH|zGc?QsOa!uh5wJI}W9mo_#Kn+}IdTj}v% zuYE-Xm5*F!B@32{gp#uLJpW5mc7XtS#Eod81$5QoC(lCX8)26@o*s*;(P564d&wo! zOD6F;U6lg{**Mk+D{&~J6p+p1^E;El&ccwf_a*i#)h7d3d#ENlV#!t8tb+WfrbU;l z;*$YSQ=qt;{7r5tZ8!t@$1{m;$MJ0Dhr`j}#QrzD?D9A#AB6In+6bp_ z>#?O}%7>P}(vFj z^e_={0V}W1up!{sIi$~v(KqNEzVnY(WnwqC&iWYeJnHkGLqWi$6X~%U+<41iUw^sU z>Xqg5)qeNXf0zwQAK`bq82{=c2G~R3R5mv2R1jMrTZ!;^VhNW3g2I`-fBXHwGa&T- zTWlMJeGvej%I<6FlcHA#6flwxR|qGt75J2Nu_KRRfeeT@YGYP~wraob>n-e!hz@H|aOQH}lm9PLq0$ z?kt4J*8DM+i({O9XbiPAZ<~L+=!M{`cD$|Hh}h$8{+2Y7XJY&!TZx(L>D!5KEz`WM zm|N8U2H-;I4VyBL93^KO#IB>~JII6B*!v@-3M}m=CpcAb3$R8p3_%wiH~j=%3A}5A zbPgf8b`FjkZeI-ngd!WItx;#!HFiEQEdCirMPkgNQ4x`lUWwSTq{%D z#t)m*Xyc?@2JMoh^_5j9HxFCVDB~2^b+Fv>8YvP*J2ksdt45|ahPJd_1(rz{YbMj;R;;;V2cxFqvk?PsOw^v5Ttb(x1 zX9Iuyb}E`|ViPY`IaH4Ijb^#4*oht<dM#rY51178;ogboe8 z($mn8ojx?9y{@Z0~1P}m$yMRwUGk#!T*v8U#JI_xkXG+Gxh1EhrAtNODJaW^&S^E#C{?)8iX zW!*uX4N5Q!*7;z&oj_LWs3&67%^e-aO&H^qgSLB{qRl9PR{NUeYhy5qd) zVUzW4`5FB-5u1AhX37N1e$x^GW*TE;Zu(a;x1x@3~}~U|T)!`Zjlk-QS|# zpX}%}yOVA2xv=T&fESpCAv)*BLq>o*h8r8t#`Q&&1&8SN?*4GC{AExa6UTzmq8vE& z^ejpRt703pB;GLW?aOoVnd^rnz%yk3Q~4{jr%q&mdPuV++)~ z`rLJT>C{{YUGja!-&^N7=!y-_k^Km$!9x#)b|c;MRR>gGbRViS)_uI^y(;>R!@Xl#N1=t(>ZGM> z&m_xz#@Qzs$0C3c@+4zWJ8}gs^8u@V)QyT^G4a-QubVV&R;a~f!|xg+Y89U}&aE{B z+BO1px75IM1%~5h4%4Xbg0gEJkPr=W=R&FKBMMe z=|JOv2ScuKf4RDpP~zAWc) z2xli#+ZJ;F5qrzJ8FfI^#OLUpHi(lG7K{^gFJf=Ona3y9Q~yjK89m)jXZA&sOCO0jTnYk0cGcpoBo|}}rmQ%!~>$PZHV4?ps0}aKub?Ll=!VnW_V@=Hb2Z;CQJ~jR(b4`p*p9IU{rqk zQu#3;=mTBR-I>`_?ud^^%O=0@MbwuIB_F?3oh)b>;NTJHZoS+z#AD#{zTMwEHPnf3 zb>U+Nc~@BdigIS!ao&aM-|mD&CwS}=Vjo>uB-dlksV{N=@!%eb)my=S3z93-vr`w79XD!DryNGur;J0c5+jL+UpM~q5=t;Jj=jYXT6%~#3jwKBE3Zzc} znc+vsToJ?*y*fOhb2a;FU-ayz3B^iR6ff#j;vV*)@;@lg=0DdC02sriGk)-|I$Lg> zM|}S2;_(X%!RJykSXv*DCzjo-xAr|Z2$GoQno%6M@^=CXt?0|$eD_gh+rL0w_^D;o z`*J!CTgDpeRTWhIYZ1w+IV$PwS@Z-)YBX428xMzw(4O>yi)SFBC5$`H|KxP@r?b{T zD0WVtNli>$%?++_NDPKSbPGnR7rD<}rY3WWnOPmE!LA3jt6}=yTbVvO@+lNzU=JWE zPYQiJ`{8ef^y(3%RnCA#C`;#Vsrr(Tkp@?Z-3r_#1ghwvXMzX#NxQgWL*c_2KI)&A zzWy!?U+?6kuFw9IT+=bO4_$UC{u&JkNY#|2b_R8&Hh$;hInkdcCex0fIJUjd1;3VB zPLrj`cmYkq!25j1wQnBTNu|#{oqx3FEWO@8guJ;fi9Kj@8@h{oj|vPE__KHUD3`@= z09`s03%W(#Sg0xpvV}|xwzIz4{06cgXvdK7^&~|a%jMfm#HeWz`@|@sBOD3uO*c{p z;NgIqO_xdg9x=usGYix|%Q%^(H?wz2IRlr-*1;HZi4P!!(DcwD-2Hvl_|B(B*TX(? zrhh+p}Pk_bfF@?30t^p3~N6(4QKvr+pD#Uzr<^+;$dd;EO5wzf8s3X0^h zuC8NBt!900yCuk$jtKpGUv#zS{Y5VoZ^S5~@Nf%J;#v<%Vj29zTC@u2in#S^|Bn5# zQzk-K*y3uFP3iECmy9xQG7nstun80=*4_VwE6HMYmavk>KCOo&on0|U-z`W`*7Gi> z{pJtiBqJ$GGJ+8#tc*6r6=D2j`d0#znu1z76{BDWC-Yw9SNAi>5e-u!h|F}g-zZ$P zR#$NT8`a#)7gN@&y>_wFj>VD0^M^vy@r^Y0zFt36Tr4U5_nj)=t9Azm_hEC5+KhfQ z9Ql3ZG#+92evj6e5Zps*_eXlAL`pdnQ|~0yg>WizAGohSfLDq$$nWS#=uw|~u&n96 z#KzTfhz_QTNA$7>h~GG;7T`DrfSUviMhzfr98h!X=D3%3dsFMDE~PKIOEyUc2nPgf z_6CxY?w4%YA5LmtX|Fq>KYmkqK!G7{Pzw2$h*L&OTV6lHpMi%=d+*9~EffAU3g>?2 zh!Zi%&4PLE8rI+FyX%v~Oue~NAWiL#n_lYbuP66<^Y~i|zzp~g7eKTbl#oAk1QYo5&`1eoU8NS#Xk3$73o7J~ntkB9V$aZC9l23F16*9eVejJ9|)F zI`5L*(RcQl7*Nv3p9ND8feBR_&+F_GpM5t+rom)EN5~`xtW%>y+R7fcr!}h56i-)S zK!$jv>)LZX$8ufGw~Lr2hUJk{9LEa2grWH5_RRda6$ch*{<#rWE6#aWbfqo}KF`S` z`zcIB7vL62gsP2(z2RvltWc`Gpp9r`moIoEFoweaAEt33SHNhXO!xY2%D9JtkP@w?U;F z;Z7F`u&aextJS{_{h9fkkXLw9ljtDO#nKjadYf-R6*=i;4_$m64dc3p+lVWBnLjBQ z_9$;zClU9Q+xI~y^=eG}xgvLXEanypI;*$KsbhaWaK!m>eqW!)uJXxISp@Q#E3dyyR!Jrmc28t!4^ zGJ(?G_Z0VE>=uml;FkWD6W*XJ=NwKhy0ZC7QVMyg99P-X@{smmqUD&amdunPy(3MN z(Hzxb{j_XyZ!tX$fKw*u2w8z15P)Kca(L#Dn?1vYH+U~XDLaJn|^TAggu1Q}NQ*_r=R~yWQ%Aw7#8W zL#D}h|Aay3M!a^Di}O|UBTBvt^^FoCm$1aHP5!@F@=Gp!b2ta5$SNm*qTS4Tx!6#n z0%hd>7 zxMlk@cM z3btXc8)ez>H;yao=mBuhEtsq>=cP0B%F=j#w{dohR89|1cSIJM1CltLQDxb=3k;9h!@$r{0T3$zC6SfaV|CV%~e;o9QN4EK+52Sx^Fp`fhB4?kI zElt+pz%3NKTyu>4vD`15NG3sxFGE3J$N&pR8;z!i8ozf5IX&3C(PJ49qvise-bbwb z@gKo&Q^gy~lF9%8xJdltNFtnRSNp)LC2Pw+$k<%ZK+sy^TN2QF7X#~wawbs!;Xf$l z>hc>hP+a$T7$Qu(tTpzKWrRod<7dBG%kO??zeQLd_I(vlx(9|eJ-26FYc}DG(@PSL zq7VhV+g9OBtjt(foTSklW%%5S+BVl4!>Mgw`R--J+P2FYVy&hG|Py|fyT2DQpigJHy6jUIbb zdI$B&7vDxtbAboU8v5#ecTxm_OfbZ+SPx9Ofzu>J(^z=ZBDJySIhZMHCIPBkBQ2#w zE=QbQ4O5gk{Iw7w3&E+RX!S|Dc53wzE{~Jo>D9^3;u#3xbtrR|sy95SXW=_lZU!y> z1wyDQ%K0og?!Caa5Yki139|yR^W(PVnB#jb&WdZp>@C*^Gi`P6VkUl-_TZ1WTsRdW?h&uzRzTH5x1UXKG=RNWVCa*Yz}S99^6fW9KC^mJ3I*txIk zUaC_ShY@uW6n+nLs@R@In@rE2`wgncW3tDS3?mcL1bn-kYE{y@_?mTcnNF4gzbYE5+F3n%$$%!|43K<2OV85MwO-w53m6h(E{ECj$h*eiSJ*7#J3?N z)l3k=XO*dt5WX{$XQr8Hh${|qI^VX}U_}0;N7~dymI=@K?>7J*&80oBeR7hF;<|D0 z?DRaQeK9~h0b}qGI&ZP6eNzyuFOH}02PED5`z|^L>*GKYImTDYe7Xj1GRA&sJX*DB zIGc`6T8{4O>yI4tAmHrAgn6k-)@#yY4}>pw-IedS;#iHdJ}!>0ztJeD1&gG{Hx+I5 z1v<6-slE6&J}9oTCmUE|>cv_gFaKnu>*L~PYq`|WKLGap5*}YKq7fcc)P6eo@KL|a z4_pw_QKX3fzFP7SJ6*#xGk;~2ZeqJ@x}O!B)(xY@4|>P8a;W}?3?FyWN5u@O$&Qh% zOmddWBnDSf3)@u^uX;@i{yZ+pN2?_;q&Es;BG6ReK^e>nt|^NI*K=O3WBdv2GVkxz z>)dAO8|v&!760e}C+G^HX(R)x#k`hw;-4BZ&Oq8E`?!hL_Q8k2e*m=nB|Y)-llaT9 z7r6<3An~P+j$5iKvl3<_C=^{Fn6F1i*0}oA|1q%7yNPEQ?t1dhuX(YrseT3%ol^m{ z*1$B<(wC;yvzkmijf0pI1Tn*H3f(UucuSo@DB=GB;qxy2xTU@NNSl^hfv&@!fG*5L z$U(l%0}>xWYiz>TDJ&tvuQ^(2{k%xd(PRsq@(jQUT4gYdqECLVqGds!^az>Le3jbX zk$~{^`&_^@dG(;p4aeIC7qDzID=)x4n|ZHXRB&Hu6QJ9{2PSLP^c|2)VQf)lmz1QW z3G~Vm_W`zUhA4#M;&kc9@y3;o{0?@<)cx=j5BU;oC-_YHiOUsRTlr3B3ee zm&p34t}%|#>{i#lYrN9YizJ!8GvN^|Mgys5uwoM{k~Vm+_}RYRKdqp?>EfXtcM6|q za?<8Al^5Jf)Q~4$1_q)=zw=90tGWQ!(eAz2kaUa}ZqrBscf@CX6)_PgNJ!{tvJ%1=egNl_{)sV?a&J88})v*A%Zf6T!g zsLJ(~TGa;=k>6rXQK{gE&@5Gq_5}bib4xZhZb^ETOp+Jm|JlBwdj}vT%!>g2)gZQV z_ARvTo7-%F>-T~)dBQj#TIr@03yBWgq7gI##b16R$fx?Y|KotlZ%4L~v3IignPE5RD;(q+aXB1fr1x z(VY0^)s(*eM!~*a2;urZhkeAeAF?ZJ=xXM*6srL|vTAM9UXMmU$CJ=fF2wYONgXrF z=s~*ovD+3<%twXnyRJ+IY$>+!SzY=$nW%c)c+bzen~m0Q`3d~ADtO}hK%k?iYP<{R zZ(H6{Y*ML8xwIZaKQNlA`ko9`ce~#9b^y{>s!WpbSzG;-$*6c@de54QtC7!pG8_rP zMd9@-x%1tks=E3Q!zKx?Kt=P!XnWdN{T*?aHf}oOJx>jig-KOp(HY&yFC)Mg(;U_! z)LxlMfGw93eK;dn-W8?h*d|t3in}w@WMj84ca+t<4iYWPE)I|H9Muv`tZN(xN#^x6 zM*L!*ZtK5lv3p`HG|i}U|4j#cekf$RtozZ$0osI;$knR)E_-ovxeog&fOma3-nt_I zG%JPoN~PTo*!G$O`!pL;zp85DrV$@+%{O49NA1Zi-{9bkymc=9R&r0ifb6ea?GECH z6yUv9eq+}=`fj3+uZ ztX4kp)106+zcHr#iMu1r^D{xun|bP-vG`=EPggDRolU z@*+OYvZgbTWYe-I*I=p3XG1~vHHIXxL$ZU8s1aauNa)};5zjfO|DD&BaIi>aVlqyBl{mkWQs9v>Vn9&?Mk$B6Yi z2)*kZ2 zJlm_=lk~)QInB~5wMKe)1Uf&SjtLLUKKAeL^Mvrl_l@Wp|NXpn4OSYRCLue-Fw9Q$D z`w6QPhE0m8E?b3sR1?q}0*bpj&aZC_IkWlZb$4mOFpm6);)=@ZTlOwci_xF#=C5p- zcZuW%jIj$D8!Z3J`Z32@vEYs7jQ%dz|NWxK1)<0cwBh==$NdTuFQdHPNuIIy_`Yu! zwyZ;Ts@5`_qZ*yqBGVDMQb5bbF?K!DH@b{x{yXRkGG{vn{nZLv?%D)cT`kjxpM+p# zAG4fSeLdJj)`x~;#hNy^Y;bJ-&*o*KjN7-d|GtUcq~ox>5&A<}<}skBFYODkGz{zB zbL2a8m1WIrwK*AF0jBDDBSqIV->Zj!5`6|XBB^uyoibw2Y8qa4r}&}q+qXxbkU@uf zG)F)f3Q0}QZT@B}OJ=~_-WIQ2Q&}K@=SHH-i#EDBn`SwvN>j{Jub|~Rw4QW%MCjTV zYWR#HUbrkk?|G|ry1g?8_NlO5Zd6fAjSdt}rAf9m+<)pZTG3S0zSM=3(o_9=YQ>ja zOt(+UVS8a4(lg*NIoSN_a}<3u-F1y6{?+jEbtgWIV&TE|cnX$V3{mD6`(fFN3qNk# zMsGIqSg13yi9}ayBC%;3#ywI;=hXOznMY!r$`&$m?`=;FQIuZGa84bQBsTHB13TFy127qw5>h>5W?)RdUi9lYf@Fbq_An7d!n;0{ux z`r@R%bXIzrt<=1%cr_@o#)y*Wq`~Iht{acH_Q|@?J_%^uT0^dq0D>a-NfZIA6MeBQ zX9WA!UQ7FfIO%|#x(R4gotfFTuLEWH0?Wg@Hu9{u_E$>2!!w|~{S;J)ALs>OZU0!> zkJ(f(DXa*9cuL7A3+PQ?ok$B}v(29Z}js zJWdcp)H&r$%Sa}NJd1flb}gJ&f{&Vb{DDIajiW;CS)iOJ-ZO7xi;)Dk_GFC6d2{3M zfA4%Fk@Ua$$?x{i+peT#yBhhsVy)1 zcZ77(vBQt2V;}>qhEbX@_SUnU(t@=10~|!43=x&S@}D9pCH)Ds{GJBWX{30Vo5T0X zyxyrt&v=-BkE^o8N(T7&F~;7~m?nK@e8cf9tiIZ#HJVZ`L&_aDGfvkC&t5B$c&!DB zBs!aHqW(i1f1}7$uYMG91nVMP03=I{(q=S zJ@|$BmVx1twJ(7|6kPIfd``U?ZXKgHEYXto?cl*h?}g1l5>S)=+~Ipla?4JsVDhfF zN#qeLJb_)n07a3{jij%30UAbCTMcYImo&EVc;_5>$ z<&0MxIFB;m7M{$7zIMt*W)U{JA$QHI234&nc3;3<%F=617sl3-=k~sX=LW-Yna?r0T{ab685xfFZ9?K zIsrD7_EO1s{R12((WHAaRgKJsKkoYk42Ud;8N6%F0_dK5vA~`>J^VY%P>(4t6Iu9I zBAV=~54N^ym?&(+-m8x@?!MnO|6Qk_oLC_x0sI}awU>smE3ocT%!}`gGgwumV~6Hl z`{~wY8|^e!Xs7v;?qVy21aS-jGChc_)fYm2F(kP+$S7=M7#S0n1sd{}cC$mx6VJUH z`zJXHAb{Vn*%d|92B(0uXZimT5aSV1CvjP)Xs`nm?8Ph`n{~yEVwB9|L|q=B7uI&p zBd*f>^S^1exjcb|g%U1D_-*CYA~+Ne$_XQiYXfLqzpGVt{MvF8I=pikSKgEnC& zq>MNbqP6d)`Tz|4;C*Il%q9W*?wk0?N>YmunIPSG-)*^Z=`Sf0!Ud06fRqwGS*qQ{B^&u?}60xB%x4CZ^%@iVU)P zUH-~rvJqs0e1NhB%B8DwV&&!Ga07L(2Qwnj=G*OqIT~}pf#nB8=M|6dB$(549phDQ zzQ?v+ZY-(xovVEWK?8ud!W1Gg?0BJ*+-m(}Gay<0=Mi!G&|JSMM(l32@_$Ih0JmEh z6j+02vGEW4NkhqE>n12F^}8h8aL;G|A3*3??(Si?>}IvUKFy*&+xS9eicA0R?!ObC zbohKgqRWbRPI-{X-Ka+yr`vyKX(wv2vz{Z}z~og(>`e~90_6bUB2z1P#v@2#;=gau z)RSoS_$LVzMi2*w)Z*S*C~1fcpoTtb>Xm%9QL*L2UOokjn9z_0?3D=c6o{-zBPTq z%JxZc)Thg{j`fIRi()_f9DuSvG}d&?0Z`DI_=%q@0qiMPPsIFHrnFpG^E%I+-et!> z<=9y-l~};tFtH#t+H7X5OMnPcuK2PhK}SjkwT>gGmnfT$dARIUk3l_q5| zEua`++yEF?EtK^xl zVhS`-T>h=+07E@AUEPdJJXJ-tTRXrk(Q+id`@!J-rr_rP<^tdxzr36MQHol|6j0E> z%Ij~jM4~vwNqJIpihL_EI2YphiM#bXk3%bm% z0KVv$EvJ)0ZFi+j=g~VM%6tv3f|U;EQ%Uy|GZ}oy{rN3AMJ5#!4Y>MJ9dQ?o`yMD* zz||uTSxA6{;!ElKnyNkgLg5$6VPYs<)SMuXE%^;FMC_Sw$BG!_1cm^j0D9hFX^U9b z=nRfTrIkOvnom(zYR3RJS4GaL?iEt6s?DPE^Jjo;U*?l|22UN)jOKnp-FqHp1MuQs z4s*|Fk>bU~SatpmCa?V@8F$7?-FGmoR#T#y=Jis1=vdaGgV_6=+UyUm?~Vrj^ln0W zrLSVUm(JCF1Ap|1(hsr2mmmFv^Hh=^iW(-QSsKo)0&^Qnds*4bMn8);A})7|V}X(` zB93A*rB&@9n(pnGKm9>Xj-Th~blxHAmON83@~E-iD$4?x<4JM- zw-+hABSYqiT8BPH^ zHD*qoGhUTE{mN&(a}OeQ%MFu?lu-YSY=n<%2UlqHb4CKyyh^wKbPr;MvWWZ9th~<- zom!8kfBB030ZK#DXr-vsRRq^N7`bqNhzx^N19g0B%+2hGe z1+_&(bB$x?#;1=8ctvkwNU23QMQs@u0D`}f1#(uDF+=p-;pzHIz_wM#EI138O?j}u zh}H5J^KZZuSXcg@HBZc)!|CNfU%O@D*&DU&Np55g>)dM%@?@{Fh&DfQ$pHh9~aLOgsxemlaJLxdXuN)oU>AAkEs?)e|*#0vUpfNvC-fz}kUwx!{kCH`%GG(@@d}gDx8-;Jb1@{^rGJKe!|Fcbc6b$~e*afu0^9H> z*?0H4;;MozYK^{+9=&KGeV9n)oCT+Sq#|Hp`^m`4Dm}p@*JFNrJ9Q|xz-PK!sKnoQ zvOc~kZt_}gpnuhdYB6QffzQ*UKy#fM5y7LP{M&CLQnvpYuO35`VDa>^*Gk*!!x=9i zQ49o^FD*Jay|zHe$P91nXgPsApT$2)e!-9G+oqhlM&iY6~t6rCQgXvJ=C7|s2?+3C>Ex}71urJ@y-B#Pys zPe;~wS2llH{uXL93F>dvGB$2Mpo~5zb|V)pk5{XoGm9Uzv)lM`xg`XvU+ z?oFBsu^zCGeTRL+GMtzH&rs3TRj*A^R`zrMqUGWEifa%-i5Yp^iKkKX7(O>yaXmz{HCowcgZOZO!94C8I(`cM8ry$vUpv9Le&zFY`oM%*y{l4Ae1IEcYIETTJXNSr7;que5r#JlE<8 zG8i{B)>th~9(ZTf4NvXBaesU|yd)b`S080_u_h<}K{xwwB1~rmF}vc&)|6IlFH!O$ zUSl?G22lwF!z|1281$p*q3Xjml8XgndAg~S!AeTB!}^np2t#rj1Fp&Y7@@i;RPZY2 zab0@xTbnrd-2^gs4)5x#?6NBI*<&589)K&tvMoA%9)g+>QR^2e8QG>{`7sHMCQn+P zKjaksTlesDZI~R(3zC9*QdBoFKh1D!5iQ#9hcu>ji<3NhSW_WsK4|;#;D7%w2l3qw z?W0HbF&wwlv=(`b`l1ukS<-ulIcWB!l|F|8)@id@i$giiD&QA_uq z;Y69kKf<#BE&WP*bam)~Y5*nyxP!KD+469iYQHX9EIPN^_2}|>iIS6Okr2^|l8A2fA-Xt3?=gBw8NG!J1~c>SIpNy07aqotv2kc+h%se=B2}TktWuN^ba^Q?54h%jYia=5e!>82tt*HVrLj%j7Y{ zyLR5>JJf1ypZ-E8yEkU#XGeOO{s+ZemPTsW2Tm+@L{P|IE>2+ZV7* z{Qkk~{ptHS%?pya?4YLCz?JR+qYqL5%gm#m`{(zT8h7(lzG3~%VBB#ou(hrdZ|cz; zP*=Sfu9Xn)VADo^kIxd?__;&++FQig5J3sOLpDRa>ffak{@k~C3hRFs4QoP8i?!w% z#@5N+So~N`OsZR^@3VMoFFRl@_K=P@yFwNkJRmD7%k!FG?l#r;L65_jlvKo7)b(WR z=ULljisc4EGkfUN%;u;3m%an-5k@51u0g}6Eph}!yz}$NKAUZ`mJL;nT#untnFyCH zB9-?GIjT&V0%0DTW(weC=Q>)jTzyOXgspqtx*XV{Pjhw@LuinM$q2xmfa2yl|YO)(I>}DPu==l~%?X)(>4olDV zFKOvz(WFZiNLDnljImG!Tqbi`$ zMrYouqEeq+%&kalItOB7gJaFo_GSD7Az^hMB_7)EaF<@$7Chk$|769Hh2T%!PlK^T zQ@I1%pT{|XXo%$nhuNbG(@#1Uf*l-jcQo{ew$?zZ-9|(PTJKWxL6P5?{t&3))h|zS zgKQTkMcbaj zyOFRQU=~?>1&3|l%%NIbF(cinO*cWy63D~Ur#RkIBGbFJ0Z-%*m=k|T^2$(EbZNlo z_do}xONqd0vy$(I6b-WtUZwXZ*GHyQmC7>D8^6GQqu%)GF?668r}QizZPoEC`c9h3 zV}aZJXL)i|N?xAA&5*I&{`X5ap6Eu z(@n%O<1{y%?Ccmw&pR7ra^y~<=(zk@ktpV&Nf$8tn%og6(3lX{JOV64(zPn4d%l~y~R z9wXe``;w?2PL?;zQUf<+K1BwVWaBvB$Ce!`7yntV!6+;RU6~^TIq*P^?4~szI|C2a z-pI=EW;lp@|D3)8_d45rMkoqh{H|J3+`4!!@a9v8b3+zL{OyP3>MQ+$zl=@%db1m* zdVTaHy{}vY#t7N&5z$_~ zXI}`|cOwFUuX{4YMgfC?1Ul_r*F)3u*kgRe3!5oTS6h*23BXz{rGUx za`X%+Go?$NNwmP0kw%hw%C~_*=P%k`#{wY`T*f`y4sz#Y*Qq%2PpND&NUB@Ocv3ON-xm|zYFaS8N!F_kWOFo}^ zRgwVCkNxFiGq&Ql3Y>$9xKW-sOT6`g>w8{Zo0`;%ZMZM2{&kntGsG2vB>d%3>{7AO zi9AR~tt&%T+q;k=o3{<@* zgyWyu`HPpJTpKXjHR7P=hDInpYvPeH3|<&fr3C~t3&N2gAh$fce2$6=ofRhZYeZ@e zJJ4v>A!vO-n)vIcjbkOJQ4uDDWFBYlDyG4+L&7|C1pflXinfQT?}Cj>5W;l8ZSgpCY=g3cdRL#53sEz+ z1&p6M&6Hs##sb@cI_U-$sujQUzKNtSiKJOKJ$k%M%_uROawu&vLJ&Q+jJ$X~Mif5U z;p!^)Q&|uq1T0qs&_#?deGyUHc&~o7(V!$yo7&Thj^b=W4NeX)^%Zd_Ebii*52pNU z!%j&j2Ay)0m{iulmeiIUu{K>ZGYv0h=ywgjSV&B=Y-b}29Pi2y5wamd_Szbo5b#Ae zETUA*0x9?RPkKEA&s6-a{`2%ejI?GbIcj~(>UDyWKK?5G-aXE3~G zS@l4hX0#J96Nqq;U4CP_2pGe&lO~47Z<#JZxb81rZ4p*H_kqmDV)!C}r+LeY%PHGr zqmu%->5C_#S0a_IU;TI_6PR|?l*(amc{mbg@MjE!hR!d}_UTTd&k!0hIohK>%fu5 zt1wQC0Min$)lL&pjNtA%oetfF%AOWEjz_B*IwuRWjEW9h{o(UipIJFBK;1~nY5Pi4XOM3xYWl;kMK1Xs5Wh_WO={FUGi2tIvNL_X4QdW2{V)_a~^Lno) zUI%hU$PC+h9N9b5wT0t@NK`Wmw~{M(uFb=@c}JhiDf1F!uJFBSv*rNQde2Z1I?5;r z%1@|da)~%;y?^T*8>_=pi0b_tjqyy7#Jie%(sdK$kxiqc!Ji$C$UWaQ9KvwnW;-5h zhkv<+w7uz1FcXPuKWpVwL#ck89~~8twlLzYWTax`#ya}~&p{NsYHQq`IV1;!{#>1q z3pp}yM&fNZ*V0_}+7sEG)S|F{ij2Hy_F4gA``!vnKRhrBkR&U9GPEY2?9CTUrTL{K z1)Mj!V<+pb<$d?>3Js>}A=9|uyq z0D%L;HlSFS-6dt}qNrq4LCJ7CysGjj_~2Pc?kTrq>$%D+_u7`sJ}p8ozDZd z@D|b$oB1vNT>Z<7X@QFeWa+v!0P_+L9UadCciYzO&4*3`5tn3JG(h{7PAPbEdhUCn zXtP5}%aMQ5bo&IT{YD|FB|*KgP<^T(VbzZL_cstn>$;d1ryCy&sP5eOza6NV1(ejh z0Ixx*c`?ZQATHQkf!r-jq!L5a+}?Eu!6<%6xr7)<(o6=w@at)J)i}o{gy}s5o{n2rq5?BXl}4^?A(PsDmXZ}*&8r`otOE1 zJAIK`6FhvHwUpt8FzHaT4Rf0T|2beMC;?m>ZYO9Lr!|?eL6Yt;gS-;J>d`vR>v#7Z z%T>1hz?raSLlArPPNquNIVhH&r}(`Buo{Q?F*R@Cl~1N(7+nD=aPJ}IQY=cERhD$= z&1PwnxN?Mh{Xkl6xUT;ISE975+5m7$k)yOp7~^5mbB7y~ZHy3ov^LEVdLbU~Js8_< zH}e(bz^W)!q>-39(Lx_0=f$z<;5*6@6JZ8|JnD&zx1{VAtZ}#&sm9GivuaC7CMRfd z!=`6mj}PnWjnz&F%gEDrZDcoT1Usl^E6B9PACpvKzAS1YO{3!6WC0~+{eEoR^k>v} zt*55Y&*=u);FRvSh+S|i6gd;V>P31ECSz}$Bf6Yl#wFDslccTOuhQjy;7w48(zTu& zlUx6Nxmw{`T^G&QDZgI(%)$OM(^&!MjO&9}Pb8pRk*}D$Q1Od@O!4XiQ>SypgP=A? zmWi*nE+Wj3D{3?OBj(6ud&$4C#`ZDi*O)*YQX=GW*}V7t*H6!w05hmYyI_O|V$f$s zG4EQzMhDJ*xA+bPvf59bwQS(@+9jJg zwRJC)E8D)_k_OS>6&j5LkYexPG#BM8L8ZH0i+EeADBXri-uYDUuu!iXU%7hq3h5`1 zQY^#b$kJ!aUA+)8qDH>Ih7}_5FT|?hhP$pVC%&7MG5|AQ)iQ=PLw@N#D=gFvS_`93 zYf3v951gS2ZN;Ns$=4tlSWW&23L3-);%9dz$+4M~aMT|-&z8OM$_op3d zEv~8S$W0!vWvr5bT!}r*a`_p@QcnDle{Fd3?U@p7Qiq z$%*vj13Yek34*l!a!hUe-f)%p0Za{L#!MTRVl#!h{UO>HN5Ktm$Z?KB=D3Qx+WT|e zG!3FA*TmW_8C*u}M0%oxwkuR2AG0;>IY%>H9s44~i@jo>#T4x1WVxrc9qHDdoi@2t zr(6-1qjclne57-+4xh^A+HJ>tr84z+RWuwSXg$QcBMN)G9!L-6Vn?y|qz}f;zAKhd zwv?=^pk4`=+}a(QdXoCm{w44BI4F70yNcW!{h~5|h8T>U{D5%&U;3N0Hyz#C3>8-V zafn@si6pbo)^179hUFTk-*`Sg|IR9gC*gK#>(Rsm6Dk?XihivmE7!N-MAX}=c4uAe z#|3667qU42R1MhNKJN-T>@m7fmJe#x<4B)FhD3BTQKYqD`{ujyv@(_l7H&J-Y4 zOTZAeZ;9B239obV_TFJ2gESIJFtAjFEdzl{F4V@$FEuDqqtEQmFRo=jC;EgF8+fE| ziLiD&=rDW!%N@Uj|Ff}f;lhk2oBc0CeQ>2Ke8yvgha66^ZmK(@B3ho->opff1`(FL z?a?j!sysR40{iB7qA}V2LsJeW1rMmoZE6d@=(2>HpcLd1w^9VeQ|`CxP^zrO7_QO@ zy>J0LjJQ7udYQ6hMo7EAKR+}7>MF71Zo;-W{LS#(VDHa}_mZ zsMPb9O!=Vo3s!0o>X&pwRFq0ZNzt6;*L>3L(8;q&GydqoYFx*CI>&Hk3Z-qAj5nb_ z&<}%_7v%s_wQRcLKgx!&RtHBijKf)pVs0mWw;NWPouuR&-l|aHL^Mii0sgrnTkgDa z1;az5+=%C2n1jD9*@>P?TjBk&l^H|?zG%RW!JiEn$%6`wJP((*rj!l8ARWkjMfsjm zU-#D=H$!uSHIz>so_~F^lAHQi1OR9h4@KVmogk2UCK2y@Cwek1XDW@ffUXH-Qk4?s z_fdJS3ZbMF&u$hla4Nn3n{ARK=a5mSsEMLpr^!LHnVeX?{c3z(J2KZdXCM{ttxnIR zpsJ>_)RuwtYjNx`@k3KFS#ChNuE!&n;;V}{il^@BiW(Y!~5`!A60 z*cjHZ#%zTh?tR3=JG`m3KEc}#p0J2Z%rW<9rC`t-;XfuHl7SAY#)jQqOig-}Dlc9o zYBkt}L2h_v-VS*s{Dx^0E93O}*6I0aQ&LOi?9U&4Lm~n%-3b$1qiQyminL%|pfehq zH09NW7{-{rmDFrpmd_HvV7;3tWw&Ok=(pIp02*?=;$In9%JQv^>qE>{lj#Zo+$-;` z+F^C(FD0jAeVio0H(PpwUS8|DXm#NknE_XO5U@)m@r+>Ny zgRVT7Y_Kkrzg#6e>8HNZJA1#TYuGgDiGt1Tk6Jp*cS8zM$L0=E6(>a-Qb>1tQ6gfi zM{>$ z_OEK5;1}aTfXT#~2X1W6V~EjTEd|!w=98^^$|~*!?ScBygV_^;ciWvOlZ)JU%EQ|{ zPP6{zbjsHrd_a@#CE3$)FPP1yjpDh{CDL zdSL2c_T6*OrDn2^Wks!+(#@o!{?Tm-&StesAjT))S}b;5?3Q7|1#!z9|I^c! z7NxRz-m2)_pslG5sW9wY2GgoMOW2^N&!rw-K?uM$O9q5TH%C!B7W3iieXg8?otRlA z-gI=#7&oDch@F4-{CC3e=6)NCLAlRNh3RB`+Rz9%s003R#PR(@vObt|%o)b2$yEXm zxkCwY_wcCvur=F5lSKx~C6JDPD*`pnQnY5L-j2*IT1N=CdesyArbzXc=Z=>0RqnS`;sC=ccywygS~aa9IzzaYO!NwpbV+LX@$0@Uo7;yKm#Pb5EuCRkNDw z?e!#|{{?|i(UQL-z~%#nn32u%Hf5%VH^bYlVy?t=Support & Source Code: + +LuCI Mobile is an open-source project. For support, to report issues, or to view the source code, please visit our GitHub repository: + +https://github.com/cogwheel0/conduit + +Email: cogwheel@cogwheel.app + +----- + +Disclaimer: This is an independent, third-party application licensed under the GNU General Public License v3.0 (GPLv3) and is not officially affiliated with the Open WebUI project. + diff --git a/fastlane/metadata/android/en-US/images/icon.png b/fastlane/metadata/android/en-US/images/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3f1eeb9807f911f0a86745947ee78c34132342c0 GIT binary patch literal 25959 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 F+xF86VwSv^alV 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 literal 0 HcmV?d00001 diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/flutter_02.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/flutter_02.png new file mode 100644 index 0000000000000000000000000000000000000000..0a99fc19032b2204c10aa8bc3f7537806e010103 GIT binary patch literal 159420 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

    9b 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%0DR77VrXCjLfPw_xp0c812H0XBzAluk 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 V<}rFUk^mnXoV%b`eAeOizX9#x5QqQ( literal 0 HcmV?d00001 diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/flutter_04.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/flutter_04.png new file mode 100644 index 0000000000000000000000000000000000000000..a03cdd8b84812c74e34b963925855b523e60b435 GIT binary patch literal 92614 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 W-q?XH`R{?BursG^PZgYWyYpWK24ax_ literal 0 HcmV?d00001 diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/flutter_05.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/flutter_05.png new file mode 100644 index 0000000000000000000000000000000000000000..1a3cd422b6b368e9369a31a89fdf62b6253c5b88 GIT binary patch literal 169420 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 Uok$Pit>orhDMA55opsOcp@MS|M2G32k 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 S)Qb8=R1`J;E|!1%;(r0M`eSMU literal 0 HcmV?d00001 diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/flutter_06.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/flutter_06.png new file mode 100644 index 0000000000000000000000000000000000000000..3e6a21c4abe653b8e3ca1c0d6bf177121cfc70e8 GIT binary patch literal 89337 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¶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%0Dqh@$bw>J}VzK_*Q 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⁢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μJAC(V0+xFHM+bEM_$Iy>z(gA#m* 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%0AgYVO7;r+7i#5p$hh8Uhd|RL%X2F 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

    !PCLSd%Lb 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

    Rv!wCGJ@1%bEVhojrGYaG9L{|5d(niWxHiRK3_ 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%0DaGz_# zJI0#9jU8zr1tV^E#nx7c#|A|>urnq8!YN>gr^3cdYpj2oPq!w7q|}xpn5VWi_g=4e zk|~0^w)yIw*x!L`JJXRu)j^PCPdKF277Pyzq`@bwS%7;-3+7X}taO&F;CBw6^&wVz z4SohZz?zV^03n|=MRT`-_`tT(9f6C1AI3;xezONu;dFm4Ljl`%c;ZFG)FpnCk7kK# zKa-5iW#)oQgxSnmN0zgj1MmLs3D5JDp$EMtLO^D%jYy^1};PA&f>?CANV8A!~^JjA%lu*wv!c;zT$x}&1Umd2WuZ-Wlo~-x~-I6 zKJ7c{nE{mdQga18Jscr9R^xB07ySRo5>}w=5yD$_vua*<;>Hrjub_iDEX|}kLsaM( zyO{BqR;Nj&uE0e%_&?Lxiw;2k5O`t9_&-45FxJvV+i@r$7QVXvk@oh`1|a-&v|kc+ zpE)qyHlj$c>>Y=AtCB*dqRYCj#Srn)fBO^M%SwpA$2G$q0ikS*ozQnof}2Wl2^Q_U z2(AC^hEzNDt9o@x{j5rMHnp}QKgjkQ@_~qJo5dnGi(-hn!*R%AOHtELAYbU$vRa{h z-Z~=b+t}J2d9-F@DY|hO#W%Moo}o%Ebrbk_#@wv0(7_%=IN5(4qI`LQc+?xCIaOB7 z$kEtjx?}f|1pplSpJ&sDk$bSCQ&J=Ow+Tf3dTO2Ykcd0%ikcR2I6;1I2iBe38TJs9 zRZSo-12B%ThEYC!5B5qcv2yYA5;%X#lnuZ5DuG<#Ru?x1$7z=4LL+NpXA|s}M<+#( ziRC7*L1rX%F%KVpk2sl>ZqTpS!Joe40)h3}!J2i0tcpZEZn##|alF=95p&rDv`M6j zoEf9SnwzgbXGZlx8f zK1Obd>fkp81O|6I1E3x>>5u3ef!Tx7hTe%mJn-W{D-L`L<(hB#BeBgt2_CRD!-~wF zGiahL0yD{F+(vGASwr83Sl69sj0~lilk>eM&e}ZpnOLA7sh2&3a)Fo&^Q9fpgJ2#m z&kQXE0$Vu2YicluFDnH&WSVo?)Da@I%DM*`%&TO@82pRRU z%1=o6fwXu0TEb73%SuB)%T*lDeyszpB6MHWR5rrDqyc)R(KEzDM9a3}LGbG+>_k+L z$+d+qI96BAb78NK| zlxt2d=;6L-ZA$3K(H&9Be>~n!I@{0o1-0=F)HX_cPdG~*RzHzy?o}1+qR6-6BW4W@ z*Qs$9r(gQ99rAU}zOi&KQ7Hg< zHd{HnMF9+td0!K(6$9E$6B6_O^K7t!t9vA*A9Hmz#hIv^G1}srmwe$3jd^A%K0zCe zExL!O=B?FwUV{!t<#AZSgpiAz>C0oQ9^TlV{Cji2x~Vk-)Mq@M6GP*&6`D?$ z0r$e%zXD|^wRe$iduGK9h)TiLmkc#iz+(b*)m23rN~0fql=$N~+uEOA?I&`rz``LH z83AF_6O10WX(->*_-h-7*~Z!ojIDzGdS2D9HZL8sl6cYliL@&Sv&Dent3D^RZPbvUk%m#%6!LTYzHVBkrkOb6K6ZoFn9@%D7_3K-=mpv6jDE>J z=>my0GX}~OJW$Pye{ER%o%2>&h$zC1;_m0jqD&iIx#>j%N8bcB_D5OMP&F2*)Es6o zv!Q|G@gv8Qf-0C^bXz>5}5%>m511nl(!07uJdfG|n8WS*8c`FD#tw z+l#j9zb1AG?Gj~5>IkrRFN4SblZA)5|H;C&16oJ@uN>Sf!@3ePYtI(D;HflV_Km1d z0c!{I&FCjOo0F!}&s32c;mE%8}lMo!ETjdoM{DU)f3zA|f z^5cSHM2|@@lvE~}^*e}L9lPtu-B^5_oYH!G>h?V|n`7!U+=8(?y7)B0Ic{w<`aq$q z#3X+SHZ6c~k=2yVUuzHGx|gOkm|kOWI($aKsDswlL2Zd28CH(t&@#A!xWK@e))h9g zK^E>Byxg2PBL{y1O zVny%cMM3oD#Hp=O0`fD-Zu)r7x=;A2qDkV%Waem5me9ChJ-GHcj2_sh^j;V1dmTFF zjK1ar!2{2sQvj>vx#v2xwtCtIw0&hcWyO-&J z_81NgdS}Wp-6ZR%SKTm0dS`nN0w6?z^$vcjA=NSAzs)7=6m>jw&zu^%0tZ}&W3Oj) zPLGB4?qx$Q5ZE!Y`km%2vc=|yMnkh&&of}r0_d1I6E{T&V4&o%ixo9_`dVv2batl7 z1&t{&{Qj*7AFz>4qYfVW&vIx_h`sRR5b4}tQ8axd$aui>OR#S5hZw?Y*9q^rvA$Dy zS@Wd9CZBXUpIqkUlU8xaQ##gK2ZUjm*ydGVAze9aJo1^JH6IA>L1W^3)t+53$X74b zR^j!NGI=W57<(e*@Na|NZd=|99?#;3VZsC*>IdKQLg(XRMqHCP=6kugY?oCVARhp4)rjZBRk$+(}p`C`A?IIZ-z;JsTI*&?#uH6af z!eFp)S5Gu2KeNWr)bD{j09K7TS;9|lhovpXbw(QQnYn!=q&pE*B|e`pdk(f%$`g$p zIw9i=b%kP9xYA9V%WBF=0ZTv5>e`Hpk>0Zk)j|uV-p&SQ=H=lKan&swXw}c`FByiq z*+wIlyiGP5LSBM?U4nQ8%5POJqk6>$^g$sBpe}*j*%Exc11vYgI=V#zgU(og)Kt;z zPz`LTJqI?_QmD@=4{LO9D9cvz&k0v*qpUTB>n1~eb?0pWvTygppY25!*w&r^4|#{n zGBG2YTvruP)F@3Ys$Cl**bb@efrJP1q*;7~^|cf%-zu^Qj*xw+4X9+W_qO*l*$?Ko zgXm7hKwH@3`H$-}Zhm`4M`}KO$GZQN|3`DqeD>+(fGdCuZ+t_V#Cy`u(&Bf9sFt$L zt0~gVUTG&q-B0TUdt}zDZO9FCl;#-xo7_SY!nmo|+NLf>H$_FkBQd;WcfGh+bw*-E zH}Z_3$Xdv84QmvGY#e;exEMRp#pCy~zoo2;(CxADHGh&{^|!`ZcI?&dvW4(;2d&N+ zv(I&KO)}|DTux_ACl^>2m>kTWE)>(_dYm=|@u%zUyTAgjYfiREU!fE>-O)QZ+1z=i zIy&p2;>J>HnlSnmViQjW^*LQLMzcIw6`_Ql#EoRzZarIVvMNn+$d>iV^)z)S&bU!! znoPOl5z)tHke4H?_e30*r}P>W*@*{06YC-!jC9*j{hFkDP;jWlerXiBT2wijZGSE} z@?uN4>CVtubgysm$9-mC_cW;w*O;}pUu}Li5>MT;7*UNqv{9aXd7X(Y0xQIFdi3_Z zMnjrdm1?K^ruN$Mulx=&4O5^;yXAu*OeFDoZ~qfTdt!l5`FY0!g6cTuCruwBiF_dq z^VNg@D(7Ik;-R@ipE%NBURe7W>fwm|lHW&%q@|EC*?cy%3ZgCZBK{k0Z{ zKi+_u$GQ_bjH7n%dsZZRYosR~Lo+n3*0{GO9PyY5n%Xpy;IyYUKVm7xWJm23-&GV# z_DVCQ{}PR{yIqnUZ6WaBxs$A~F%Psot*9$zSuuA3-lNe zxKC|~NWN68uY7xVL{QUTJ%N8Oht+XVZjZ<1U54h|8N6qj1Rq6Dq*Eyp^iBNEgUqV6 zqcKOeNZ-IY50I%*J?TD1Mo7EvL;4H8ZKE#oe2-rB)a-j6HRfAP%LJf0 z{yeA577@`mfu!;_@us9_!q_d+t1A8P_5x+O>-vc9_0svz^moYNdPy0xN2*KQ5}__8 zNes#>@Vo+qL>R`%u+Ry#DLKRT^X6>=bx#5vxv05ntk(0dQvS@Tg$OLUd-4y2-xA*# zZu%+F_whCyt$Q9s6_3Um#l|<`@*+(j)%6+eg{0iq{G%z~x^X)zMYM_4hvm=ZB^TJL zH);fpp{xtFgFd$XqqT!8U5je^%k`ac^6+{~JYz3>)3pV0p%GWLA}?M2eubQ3{FXu& z=GmI`feb^<@1}!V1MSyBA!?PNKixY;T{PZY$cwr-WZ|xOhz@xL2>qwe_d2lsu(ITk z#+>8biSwiYHpMK*hc5Y8Ai%oX$qwA?8gas}7>#Yz#z%-P$BXg)arj&?6s&gaZ_G}< zi>KVnna2=>Zga8rF3uT0nI*B($1N{}_;Gso)=_v|wg@ehP&nqx$=%7}bixZgCF2)p zN3Hi$Ze7O%+#R93|8qNe1=(bWVemT5NuCie6-d%|ro;p7 z!u~1k3*nf;y-W2xX8=7L$_!-rvrjQeLw=TOdH-2KM>Uf4poNV-;slVFc?Wz%9kE53 zcSFPd0jDbzQI`?nfe={(Hy63}`n!A6VoM^t!&8ecsLA-&>@HI@pCH1|P&bApDD6Rk zO&cStqruLH@EJ?^t5L1|XPip80RcI~aJZ&%tIa39|MTsr{9>Ebgy27Ia%v1D#Lp#O zP{-(f!ei#P_6ARZIE0`;DPI+ZlcSM$P@n1&XcgrDSC+t3P>~dODgu zUZ9W#9_)v%*k_8KO;YM7X!#q>yL$t9R-s9A`xF@PgMYSQsEyK?qi?}9?x291JDdxY z0F@&AGUCyf5EwKUx;n5&_e-}^9K^}1KCuNdekbukOx3-A?DQ{iCBU$I%P+faRI?V3_8=k4|0`pZ{b55$g z{-N!A-(G1n0~|qqXfuadL{LL4>v@D(C9mZz;gOvw%HPtkd;1kLPE1|pL-=BW9+06t za8V2)0&a!>gF~+{NH=w{`QaZ--}lQ+-0KxIU#lS9-u}0N^%G`{+>Nq5~vfGZnLspf}m~K8owk~pExy69gp*+?qa+X-z=C$ zzd%+<$TtPf?7jT3TK^ht`>)bhQcf2^nG~!Leqd?*C5(9<%Ab^s7nDl}7r%L+5?AzC zAM@Q!gP0ZQlSsW?_`4nxoA8I-OIPNK+vqsE4=eRRpAs7d#!erD6q!lg4~17kYd?#a zMz;+*)e&NK8X#93lw(YPAQ$Cbu6uPKLnR}>)KD@u{JH_Ui)|NkYQ|gFLr)3Gr7ao6 zBkyxT>=HR?!yFkhvBlMdw7fz@R`*~%h3HbX_qpdA7y2#YT&na7r8n0AOYOm z>^jhC+d@z{XabAz;qEombvEw&WrBWMk9!fA%RMjuD#8|&>Ds~=F6TjW$jsf^4%41% zG)iN>-6H}bPc?IOHQAxiL#RPpqj6*yto7EH&^VugAAslFRrX2&{m2rUizn?zy7=`6 zh^1{f?S6TnCD4c@eXbWC@m&Fn>3Z@*zUik-;&m*fhJ{i^%G6)P74k@;yCu>3l63|) zo*j%rNNA$wt-a|P>pRie^P$W=Xl%`FxL8E;+ryA^OrGDOY2faI*$v@{&GyjX0;rVF zcq5A^beETb{kd${fd&N)_~!!&db8zQjK+!H>FH%^GSo7_UZc8L!Znnmf_@`u+anCj zIhHo3V&wi*sVlg5?uw8DXA$IiDS6qmY9bHw#@V#%=kdZLl&R5zUX|{=>33=$G2sP< zm;9j&L&M|1>1eLdWHewWq&)0F(a=8CH#Lo9C4WqY>WotA-M7u7leap`nonS*zSa*# zuXk;`RD^~ewEs{m;hIzJ{SE34aQNFyutydio*LWb%W5f4L)v)9(j(wKU)oE%sEw8j z#%b!F3fblEy*IDrzg&sX}>&wZ@zwXTnABVt%B=JqMW zN*?2Y?}HL_W5mRMnc-NCx!Ml*re|0IKetoC*C;nJ#j$ef91&RNi_wz=_n`L;l4KCe-3hG5~L-pFxYaEkT?j2kF;AvqFb)^?Hg}0+B zsfb=9ldqP^7(~8(Lnmnr1&mS_3nW! z-Txo(zT2!Dvy7s1S+fo8D1stPk~1qhqcSV1NpAE7#P|36J)dcQZcpP{maFd8&yQ zB+=7jEK_^Qh2#@~>c1oaNC*BekY4P_K_XiW>i)4<2K|Hur#Z zZkw;Pooi-4i;iiM|NK*<3+ zb){i{-J?HJgJ}Udf?m6)WOh}1ycoK)-a#`uzBgW_-Oifns@G-Ph^G}-4G~F&(>SgE zf00f4-gb9898Vh5@t;&CxS_+;MS}-w%qjg&vM!8C8jtw7lhu4SwZgT=kUSWNvSn$w zT1uNKhS$j7FA`sXu83Zn7F*_9*P2;rhCzj8bGzaBOgP=fYGx@QlqLgk6dBXLAEOY* zn8UHn8?1HK!sc-BNisUy%67QdG_krvD#2j#JkBjX`m%2c&v*X~?4nTr?^`sC`ZYdD z{5DX5&qv?bB4Sq0S`^=XV{CymhFKoL#e3WT!c)anO8Qy1@aI#k#qqXH8JYd#m5Q?E zj4I*#qkBgys*791SGeAJ!zV^*kL12!YPXM(*ubn3(7}2=*4P#MC+qA(o<&^)9^3f# zC%dm>v8O7O_Mc8=nNi{K1nFadxaAeM+T21-4*U^uuK|b~AZ5c&+DdMI)tkhgR1KT) z9LYw%ml_0j5#1at6tMBIgr zB6I}+i_JMU55p2F8M24(O^?gX)iQf?6iW5cA2A2=G7$v5Y0+=qS&$t{*Blji?N?Pr z(B=SG9N7?27pk4(HgxCN0a7X3+YqvyWS(aE7DPOF0O~eW8LVra<4;>};p;`5TJASI zpCEizhW~6Vc9N6%nAx?MXXM7axAuqk5;#*S)@t@-<1}70JOYkndTO|bn{C4a{4LN) z+zjCfE8Ar&ZU^2(tM8JzdoQ1>%2J&%?jYCQqM@8EVp3~?vaK47BQ}4}fx;zRF?;Yt z>ibV47kS=&y|IG=2lE58Bh}S*tlz;r&hy>H`PEa7%fS0G)=oYQENo2c--qqL{wW3s zJn8ox&ar49m(1wR=>>gP+VC!WdH$QiQs)coH9rg+4fjCf>Dq8@wsSVpGW((EJU)Me z<&v|{^Kp*Uyd!Qh=#dO@KV;3c?z@oXxzg%KYp%!M*mU5{gdF}dg(uCrC_Pv`Joyze zB7y(@7IKHahB%-c%_>Uh+@(x(^_rWb6@)9y(p+pB(Q%La%6ifoPF;(Y+WWKbA=+$H zs1aWDwEM=H%=Pz8#FX7+zBBf^8D+g|SuuD6^)byFKAveL(Jwqr`=$D0B*x{nDGIEc z{4?#S-BU|m`OG?%*3FuaoV7bQdYC4DFiT@6=NI^C-YWo_y-$3>M%UT`q`No%f_H0f z4XvjwsOv>e6E~plwU^0D3Q`^3X}dVOnQRuPp17slVi`Zltg!XdOT+P2l{-;04WD(H z+%uQxS)|CJpGU7qU74J3Z9$^GR6!rr|DN9hqSCK7aZv!W+hYqjdzv{kNbXQ>hTD^xl&;?(NNIp_0R$*UKEBtK-(A}O`v1f!d%^;`$Nsost zaU=U&zy-xm>^^}LcFp3KmVe^Qw&KS6^uPl;L^;rUUE)?Ub zleW2cO0Pq^;aj44qK(MnB(0Dm?g?#C*Wy!_YHzkl?%yM7>aZ`>mVX_au0j4Y+>fkl z+;MXPuXqEviY}KkD%>mbd}I%mE3`iumiWOSGUia%MM4YfS=)6#^yybQveWob5G(qn zB2@HusB}I*DhWJc;fn;g21_*B9(7x13yGS=2J*;`+hPF0Wz+t0Bd3(krJm8D+|sb4 zGqH|Cg#)hby3&BR2q@+5(^FhC&HHd6JkhyJVh*7{2;?@INuAYj*EMtd$?DWQXn@LE z+NH+S^*_lw8YD}kt{iaUQIp2|w{0kOQGTUdG{n-hHwU2;5%6=7l4$qTQgJK?~pa7GNXBqcVju_Bt&X?{2$b2jgd2*SIUZl`Je{BpJw7#uKxAjl9UNt`z zDvdAgt4Zxb>ETA$Vp)eX;E%OzAkC4 zVmL3n-|zu@plWFbX2702dx>L`!1J@^t`oT$+A8+kbCqS{$FnRm&7D60-LHkH$fxeT z$Lw!j#iXjP@MoG(*8WQFTYf=Av?e(@n>B}qeXCw0ZLcARP@!nv1Ljt3{2AsO@uN_F z8m+*%i1B~GoTagH^3b4K&Z%yp|8Zz1Qr6-x>- zhw1{G?8xPY-W55jU3>RW3M}QA7F~z&iPW9=AA`(|LGH^_2%6oA2}pKD*yn*YB2rYf(Ik_aj{j$`ta15 z><5)3?ZbcTc9XxVhxWwIQ19sp0h_P^xXS!ywviwsyRsxB5oH^tM^yce zv^rwCy*qaCeVdYtoFUqz9nP`t#b){{-WPOiS5GjWjzt*dG=K3cn$Ab8m&u=@d3~D= z^sSP(^f(rgSL|e$5M=RcXte6!Ofaa)S|2$)p&xtKV&-$2D9R5ZP897Ti|K1rA0Vu z#Tx{*p-rh)IQX@7I2^lBo5^MN$Ycg_OFC97<}Rwqm-*Y3QJ_ucPu3&+gZk$|)h_PA z{n{mtFI9WSdJ6jmQ%^m0Ql&0;>60s${jk>H^-+X9XSx4rb1iiPK!XRh5I=Q$riyC4 zKb%N8W$+cKM-j9soYw1*OaziQ*qw?WJe~h8WYLz9icL>(4$h|>V1oyn(Is>aG9Tf- z(!f;Sg|7MapQSVFW4flgDCt=y~A zl~JEHrz>1{^*&o0g_gj}@N>{HCIz~hb(5#9>ngFtUN^vZ z8J)v)*lmD>rd_n&_N?I_50MPOmlBiTn}2W0uV}}9Q6H@}MsvGBqy`o~+r@BZN_A*D zn&NtG>yAU17PL_{d^!GB{s{c@eeE<%!|csh6=AS7z#y^XS|aogwsRhvoLHJdM0aK;!XcScM|zF}!yTGVbDf zq`{n$S~*#F?S#Z6K3T+X5-}g4l8Woig?(w>Bj2;o?xQ9>BdZHG9nupo33lWCw$$+w zcir$N&${GSkRx%Be5Y!o8lY|FCD!^?4LPrw>P?IuIA3&(-|Y!O=F(Prj?j`|w{F~C zi2XE3JP-EgxxYr=T9uxY+`q8t(sM-Y>MA~-m01T;ylyOBeTbw{q}>$iCn=pD$RA=c z-gn}_(sH_IqC%%Q+J>*CvA&o=Ly@W=C6%YPom_7==^<{5U8P`{*=lr}Itffgf;#KaFDuudVT zZ_yG8%<7tas150AWkDhV`xbHe7Q`*qO=}+d2r># zlRUH*xe4d}>nuJ`Kwqdp*m5?rg&=aOD|GDONxF1M$W{|_VCFC4c^N_s-z-4b8iY{bpOdf zzdsg8cCP=u{4=-uCCJ){q;FOOFoLF4VQfcbh-`=Fwm4imbuKwI*uCH%LuwA&O193o zwVzZ9S01?UOyM7giDmgvVrMk|O6Wo=bzDNUqAHU2JB^{phoX$RdWlw<(&Mfu(+f9inC|Rnmx;#*w8fV)t(i%EPYcBp0VG!+or27ar6bcch{wZR62YpowWx9k55_L zbr2+buCo!$7YG-Q<9lX(mdVVBXd^bN7p#!@R0>ZSr0R3yH2WUH7n+4P9{FkD$p-6c zZUbIk;pq^5=~84=K>DZrVTa`J-&wfL*aDhmbsu0%QbF*B90YIBtiN_G!RZ<*lJw<8 zY1+3~CVn1Axh~%+eCjJWKY2Vk~$-ebZPmU|uUDFu{xXPu@V ztO#4xFH0a9K0tKt^1MZ)FS*zlhG!lAxa$IIv5nq!46ThYSJif#d)A1!cU%z^cXhnV zDoY35$nMv6rSIYM;;m|EoGsikOBXWuUI7^GEN8t=KU<}#Lo2UogN<7#J-(sTfN^jz z@r!{HS79^Fc@(k4$@97W5v};oMBQENPeZnHD-kyI9-x>~t$t`Jvn?mELqP$-ruC{X z2ddV^{w-&K2=3$wnw8?6zNQwr@sq`uiDDNl> zM>2}XhO-K7-Qxb0Z6tPav&AqB=}|DW>(I}1Vu(GenMcXlGtv5t3#Q zMS#Mf_50S~@rECWAeS_q`{9OP8d{14st1Kv%4ZF!hgcu1w*=0)2=d(hVlMLvo&uZj zzqy0gRJy8Hd5!h8sxo9gO&&jw7sJ~|-P2P-u6da?39>9Shq5lMl@NyfzZ{IRUyx)- zI70&zV~w!yro(DnkCpC5t9>@(>LUV*dLC8a`R+Yazq{g@zk$zR1FzodJ8^`4KkXz# zX|fg@e-Q%-!)l9|`^v$1S!^I2LkoO5=OY;mHL~l6L4|82&-*8)q`QiqTR4}TH=P@{ zG_fv-AM$h9-?M_60Okfem?CVx$onaYde9r%fYM2 zbB4sz>8ax;4eg=sbf524UU6xJSKte#6we;ZZ`h=6yk-SUw03=9&Azt;u`;AFyxqtm|RYY*t%etYiX_Iu0y) zqOSn8yoJtljTUiYhC@cXKv9+xcOPaBnwryxiSLVzY2?zQv5SQxp_Vw+1b98tYm&Ha*a_s zP9joz)Md%&GIu0A-n*zMj&2OMvTo(}!Zl3roR}Xg?QD^r`;g#Uo6ycm4bApI@xEitWq&YpLhDpzntmZ&wtc70(# zo@>-9Q={|KY~R*|{p<6jg6yHbaR0WI?#9<$CdZFvbv-C2$-nwRm!q?G#AAR(|G@r} z*q?SU*Oav-Xz3nNoJ~*KL{gfb5p!ktC7u*b(m$YUjbk;ZoVMTGV0O;5&hJRt8joB0 zmi6X(QhJhHE6ow+b#qd0^bbs+%kQgq;Q9Bpi?F#O@C^y4dB=H(YYy2-J7a_6w(guk0Z{Ls0AE7hb%09}4 zmRBW61Jii{=IykNhEDi(s1rH9Xpthb>Pen6p@n|dkL7X;gXnjDqH*f48N>O9_A3;> zLk#>@#SVs^_w#FE>I-DD6gpby--he%=NW693)T4XGd;~Wcth`2DSGiEiD&v^=eScL z-$7Peo9nzDx@ZsEZVE^#kNF4+_xWx(or+a+9+2PhLRB1X zLQG8O%KN&=^2As%2dXX<-=u9J4F=&eH`ovKrs81zehuUe1K=Ln=9m0x@gBkeh4tOz zd9V6}H*JOvpi?1&x8HIJ%S|dO9;L&wu%&?91+eF?|2UibD}yqBftZi1+Qq3u(hkeA zxGYv4T$KZ#r-J_!M>{U+g0N}G9m5@a%52U;bKh#z4%*Mw8k!ut49X>aopt&6(c91lq@Un%LoIwf2c~~^lcm?~D*kIU^ z;lI{)UY&7Qv=M9Zxccma66qH0-JRgGagiNin}}Q`K2id%U|Le1IubvUi^W63!%4x( ze<_Dr8A%{l_;Xy0JDDqGtmHz&r?7BG)DH{OUT1EbOrhl@71=w)sjIs1@|aM{;Dz#e z_o+9OU2)6QCi`l+-J2y{z&cd${_kJZ>WrOu@z%te(Lb_OKM~)G$1-$v&+wKQY7XRV zW{>zBET(+?tUC`!wy{L)&Aud4CMxnwRlS0zS28_uG)KNiT-qPrKh{|7^j^-S=O};O z2i6t2U0?hGAoXWZE&IJ-{oZ@IXsI<^KMn6lu>8HA`M^J-Vj?d_#`9bN`~KgO_3#(T zU30*#*XU_yLjx*N)pt-;IB#yWiF?h%syIU!Pqcm3o9~%uiZgL%Y5F*ot|Y$IdCQYx zs3SLyP)ZW}=}%SNWapldf(9I3l-6@&U-09)HZYcF+9Kh;67`__ZyNn{w!i^hQVK`z znQocVUTMHbK0A%y!`@9=tI3iotIpb{8d&lQMP)6&TvN}s#*MLs<-oq_>@DyM;ezwr zcVkqqssfrl&Bo7iapGxnZ>sfMIE%eB*{B$uFw(qov2+jZnBBwTY|%BU3Iv`PNCBZU5+Bd9Nijq3LFt(%YQaU4 zt)2KMBA+a|dii9TG2~8{A$&_~Up>Ex1 zHL_yfWq~!0R>107Lg6&FGv7jvU3C8StZqNBXSza*#S-;yL&B>Zat1UeS$+v#>AK)7 zIv>cqj(U+h{QpDl`4s0CbG(b~_YGRjJ!Qql@_>N!y6a;G6mKBB*KTboC?m0tU+SZL;z$!CGsW?wS!gRRr#+ zhk)n*j9Z_19a0K%EMa=<695-eno<1>3FnrLZbqiyfAFd^<3UEqBJ~k!UcQYpnq>2I zKb*P@SSA#&u(B$}p>h)aRp~fp&HGK_H5Bs53Gg7&tq`9j!0OlSA=&A_Lx}%@x8F#x z51mvzALE3d(>#UwzN4(>FtnXJ0zW_tl0s|kENv0Ho#UM;yXI#kQq5LhxSrqteu7wE z7t))`IFe{;h}n+UvrQA>M&$TrEf|UZLsGi{$6@I@jJ*Zt}!8fKBuZak!~Pf$0_teXagtAmb!-GyaN_U zK@2ccDINc@c8`7`KcfH4a6?8X@u`LHnwjkPh_(JUh*?LfD(Uj7JRNB3o zD*)#M85ZcJ*|Sob2I=Npl9&e8Vh-#_a~v%Lz@%L3`id0CC}pkSgdKp9`P^TLLs_1w zVk3M?$^MhsAROh(V|Lxu8`VE&Wa?U16uhfl%M}fd)2Eupox;cgv9>D)OyOuxGFN5( zr0IKNH>|v`9`i_;@gFt5E#WMd-2K`T-pYc*RzEKR!z?jeOu4 zP|sV1KUwtjNU^Iyc*!CV%64)s_3WkGF8mAmKu8^A)vaWk&O7q(Q;F0JXDvHDf(Xup zE}|%cztHA-xLFKZsOrQQ)oW<1xd$oQ#io&{#pbW{H&2|Q54&{Cmcv$)0hy9g!52_(v?yqGi9q6 zh#AZQD1qqWUQlv>9t6ts)w0QOnRpXy*>lRy)!GA1=~&<#>lN&zEK6$WYm(#g3+8lg z1kJdbWoY378F+Hvsv5?0BM7=0)i0&YZd+IhdrIwEJO zyq@XIpKZ(oa`mz`VvB^`o8{bL>{ovcwoHzSSPh=~8FmA)J zH?4hSBfr9KdxWRt8o6D@#hN9&KS>F$8$f9k+`)ON=%`iwz_9mC@&e6{mx*1IUB9F& zN2xLuAP~{fe!sWywU;5kgZB@^rUL=_Q)aEHdGyt0!+a69+H(fmG~o_STyZC2Cmldn zpDJ3Ip)2fy2YV6$6`{n6OY~9Rn2~C3xyBYAL(;sqd`3p)08D1!y`C9Ne{^X3PH~}9uv=CgSS=C%ecz+$o==~p3FvFTFPf5% zb29f`Xf`%r->TA&3+L})$iMDWEba8lv|#Gvor$BSfF759D%F&Os%5e+^Q|BD9DmEO zFuR1*o-*++q&yLEMyS?y7=-SU6E>DM4|zqd)Atsa+iiO^n%>+=tYdWQS@srIWr?ii zQM+*Nakr4X8^3#zd)ouf^ex6@d9XW$Z7XRYRE}`Jf=9%{1)g?iP!zF|K(Oe+Ob{ zOR6z-tEBjY6OM(n4w4 zDu+v~x6Ro`=&N`_)EV(syp&G4#CU&^fGQsLGMhp=1%O4*(nX?mUq=5B! zC{lfmo)@>7ze-LT1@){ms50gw{+qb!Mi25G^JZYOy=pG;B}=fVovtshYl{Ry4m5DV%qKCf70S%oM z+_%VBnl-l{(kMjDi*4tT;ci8?ByPJ{SX3r$)&#j566V0#Ok*RU8i}kRW!TNvSs1Y_ zRQguDrp4U;X`fjS`_As8V}|ZlNu8v;fnXc%ZspJR@}1`;wg?xoCymvJkLGX1V?4ER zdSZ$5v}dCx63k}N@L$O};Bc<_j(2ZxDxL4=qNB0NCZVkjp8eYMp>pvfd?|W|y0=&2 zM7DvLV{@=)E4L};e6If;EY!IH&xW>=%p<|7QBSsoO7_cRS*F;ag+L*0IsoL4!@_ZJ z76s8=ndoG7X>L+svxvNlj|zW_hbN15QICiUa*vC|Nw+_&RC+TJ?B}DQrPk8Z^tqLuJAU*q^dl9Oxg@wFJvF|Mg$^L6k!@=7r?%i8fV#t#^WcO0!@yKuhzF^z z6f37NS^`DLv1X_At0*?BF#?c>>v^v{Q;1XeQ9v*qs>dg+LO1+qQ>*v$1HI~w;vPqy zdV?TDI`eDJH8f~dvZ!h()wYOfdVj)3srAf<*R#I|(&OF=aW+coERx4LOF3iAby$as zJlqQM`x+N!_ia0yxoPz;r3CyyVWx3I8dLPh&-lJ9`D}t`Kp9r~qw3+UL6$SROfDwR z*RtMHFdk)Ld>rKA?7pX6zi(>NMn|H#!53)bMn*}&Z!LV8j)o5PAFe{_9XI9=6rr!GXyvR2GVjCb2E!q~&hm5usx>GhWI6gL=-EBWiLy z3Z=GrF2N0xH#lnT1RyucdD7GV)|^t2qc?OXZ0V|EXG>B5QTdQ*yhLn+gGuJ?d=PUY z(O1V6rP5ShiFk=3SFh||yn$`GqlGl@RU=T4SQ0g;Mvq@NrRDhhrs5s7e&)ENSU$4S z7RY*W3DzggtBgY%p{@t7@@3Ck@v+ENi9_t1ZoB(0PG2kA=Mg zUG2b_syx|CgA6U?c{MSg7IXEU&E1RP^FBmyH7?+-KD#KgcbmOa)BEz%tqDTHit?2J zye~06yuQQO+r3GH53x=O(xnmsys7;0yQMbWq5_y3U(NX%ev2*lm&MQkZ&0Kv!i$aL z?hSBudi*`U#Ks&Zc&esbv3U%%^<j`f-iO0-b47Jb}_dR4HfsD zZ}x2L0Wk5jy<>^8X532~cU}L%-mC(mbKiWi^XY8);@1vGNU}n(Svs|Fq&*xTB_702 zxmuK=D0Ff@^Ms%68&jfgvh%Dis-dh=+N%SAJe2ac>^7dy{vO1;4t5(>U!(ylR@s+ZeghSg%A?09S~?#2&puw z{!d3qmfe=ldV7@TWz$zcft`gIa4Y?}YasR;+;r>C5ZwvfK$qWT9H`%_DN=X4XUnBY zU%@O*h&q5wVu;5f0k6DjE-Xjf;!CrdvxXWb8s9iKAB#j@$xUSsnzMG_$$$!p*2D{O z_%hO4e`}arKE6<$hjbJh8^jg4vg(yQFyPKqm!RMCV)>C^BLNoQi!(w5{bFaVF%m_q23sQ3C zU>OATdqtdljO{$}G!IRdrCYaQ*$5b|iMCf*_e9&cy*TfWs!-&OW;1}<3sl#6rVz(2 zBr^^K3IUx=v?q*97DvM7W-*gOOIOo>k@Li#6w0^gpd)nZG%vI7f6+B8oZhjO+g;qY zvOwCg2~KbBmi~Aj=mEOITUpk)v@az3Jmq|bZc%$EcB;1#bRRd=Z06o1WH62EWcBjy zYVmD@_Y%8de&2Gow&@n{((OD*{1SiSp8Ud#vfD#0;g{FC{|{vcT@-%V6-vqWVoqp- zrE{e=oeS;(2IR-rF4HVScL9zte%BY92N! zUZE?`hW!kLDAnSNc*#(Xz-sOrKxOWc&xuLSMGXmk<2NE_2v7ZAjSvll54pJP`HaSi zcMUULouv}8EawL&%UFnK zBasu`)wBNxVFzN%;U2?_XH4M8WW6We7Vo0d+C6RjSk4@0*t^p2&>CZf+$25{jD*l5 z2_E1jo|e?;UUJc@2a1ikK=A`j3Z>1V+3E^G*=}5#0S?(UMj&5nJ4Za8Bmd~K$m}0w z`_L7M?4DjElWYlwyB~a;K7GnxOU}{^WyH?m-3{*OE z%v<>hN>Uq^@ZbY!!I{UzhoVrnFIk6$E8Fm_t?wnT(3xG?PUHaohD$lZ+lp`EC(!UE z?{sr?0>*aQPQEI`=!4Hg&J&NX6Vwh(L&KBRM`x}%fv-X)6E8SewUVtL)qwG6LAho% zI?aw?Nz2ei*Je!-n(BoTVfp~_nSEy!E9L~=Orx8U9?l4~wgB@8GUpn)C=&F)r1#yr zJ^^BVvx|43_anOgFjf72TWzJl_yJ^~6bb92xz@NKn@6u+8!ZPxtK2a2x0SS%p(4{Yw=x$dGUBDKad@usqqwO#B|ze;f5y=bkrb(c7cZ@>*B^bziShJQJz z{2+i8)DC&8nLA@JPEH!qJ870cH|tGKkm~Ci&lzJL(^0-aj5+t6Qd)^OnGB{x#8mdL zg#Ew8y5L^=b~sgjmFY`uZxORK%JVI{bs9FvFML){Ly#v5a*f zfoPbw_$kj((^bFvUb!&JrZ`JlRCIX{DAtXU(lw1>S|Q$Xc>?@f@ZHka zeWmqQ5Ze~u-$1aQbItpMx$BeW#h_N;zh+GD(&bv$0cZ^MCLU@$v|WrX<<6?QE-5tn z^B>|FZ;6U#phb~?)S^77{ET`HAInWHoZ6LRBT{1FH(cS?s17V?eUjziIZV>}|8ZYV z>;Uq!Rz_d0%{KHw$_p@F$656eSCqp0$BHY2+?S422<)JmH4Mp+55uaRA+hmiKK^92 zHqG^udbO#{y3(`8J$5w@#6|L=<=rLYcPh&=iZh#yv7q+H9Jb{F(#C9ur#&9}rqK_4 z7piLww*1Gyw0EEH{cAXuAQj)B?`e86K24ZPiT4qA$WF|YxAX;QzGX%JWh20(zOdcn z`l=kS-CR#Q1kGz_vA+ywKwyu`p4c2WG+MpK#IzV#t{Q9&JuXQUIz*mh-Dw^`k14tMw+wXA z$zWm((%@7n3gxw-RT8#kXdcm>a$0O#tg?QOpYthUSXtwCBwI4L(n~-Mo@gt)tvne@ zBAcUGO#NnXBnjf^iDu%+l`mQOZ^%`sj8 zS~5Rl1G870L7>b2iE>}Z^b(v$9Fg3rwhKQbeUVHx^hKuKgmnL5f;Sq74C7yCGA7Ts z03;rgp$P(?s_Miu1d=8uxA#IB6xi3Mepu4eT!ze~WeUHDB+9<}B{@9l34CITD};6v z==Y_0C%N_5Sc!A@d$75{+u2=NV6&1uw4eG1ZySvtFP*C%fkQx-%^95dmCiVzB;D~# zH5S6Ihj_C54f}F=|6=D-e&kaCFlN!ryse%U*a(SpyQLf-PvksjgAXp=(dBIZw9ta? zTq^}p*Fg4ty6Yh2{_9lZYV$_WGFYtEUhAkAfBd*EY>KkxbFmS;4I0UtDi19h{sEfD z9Mi`+q%)+>@+$9TJ|x{lW1MU*{^2e0E>R)y^-OhL$97eu=t?}NUYKrV3BO#NcW_Nd z_Z<4kAl1o7NUOLtQSK&pu=+NyedgTv@D&#s))#h6nJZv*0J0N0Ix{UzU4UHP1rJv* z$i~7#)5O4G?KwwJ=9^f7?v)hQz4wa3>Y1mQD(MEwMzqZp=Bnb%MYf_K2xXAf4NSxp zVPm-3%v!tGS78Er+p+Gj3w?7ymSLRTv>Tp2Cj(xX1ss=i}XSLTq6 z+{5sI@>8`zod?w+J;@)lP54Rk#nxtb^C=`dm%j~ug?W+lM@uG1ZosBz(9Xh+GIpYQ zk-w9u(_uv(pAiDpIy6o?m2@jvuF6n)*o-&YlyZMY~6z@j{FjP;rj$k(0 zGvd(eSd$}ztiK5ZGtm0)dlO179h}S=Eu9!OYF_fYO?Oc5nITo&+Nb~ar0|E7ktJU` zINtCNW@&l4W7Pk|pp4@=-f|{GA}i$I*e!zbLH-<|ja+!&MQQdja?d!RPXleZx2|udq zHg+0>pEQb}18-(yaVSK++m_2i8XbQ-wqwU=XT*=+LC)_`!;3qKT7ik6x-Hma4#z^M|yqy=N~6=I%=bo~RI~V7NUlQhEqTFEn-|se?Bu>zW)t;b7ZSpJ1)k6G0xTB=mOglT zEOk1*QQjUxlRj2*?z1-(a)TGP3u(Jsp&Hv}xLMuGE-e&WxN3&8WUm(P9)Zo_o7Nlj zNee8Vc@o>|uBp5afV?!cu{QFLF-Frp)!dOH2hvSd$4gv%Z`_G1C)JU>H~`uX-LZUw z|G}`#F}DsDll>A+{UP&3UgKp=tdWDMOft*K3dLY)w2HQ?uXfBe@wF_fG z=!p)yxwhBWl^9Hy5H8jweb9cGsn?u&#|lI1BK4hA0#%~Bwg6i$^@_4r^5Efui7i`25&P4 z6!a;7%JZ&Do2o#*4AIlSxqfnEZu-8a&p1D8W*Sl9{8xxC&|z*=Ze#*)Exxh9on9c( zI&Y!Ma>d*2NqB=%K1qk&F#bW)2AZL+1HjQ2w83mvb{F@WiDlWWGsKMuK(fe8XdOHc zy5LaXW?drQQ4f>2fc>Ve5J`|z9nbo7SklmD=QW+st^SMWPWr?t2S-kPboY;Qv57ii zU$%)nd{JxnjXL_q&0|Kl|M*9;IbhEhrfpB3Ok4P(I8*V07MSnIv8gNEieF12A30_? z#blr4Bo@m^a;M7Zn)!eUT{GxxRnIF_wM>Rfr%D3tkNKHGQ;Bm4dF&!QUEdS-@7++h z;;WCkIab9zRxczh?^e8cvVv1V=FM>B(!8@DIGTk!rS;r~hV;vLMUoPk?uH2Ke%xO-QEN-Llhu*4J3OyVw!1#Nus!4sxDR0#}1$@$gJ0z}VdW zQJOrofDk3AK$~32{MD|ikV6P@3Q>O$es-zZxP0q-0$_MRf5r$jm;aDzT>`R7d~@jW zOji*6osec_HO=w2%|&*3_=prpzo)y$DmewFhs-(1Ak!$9uV1(>+0-{fK+A(#yp~Hp z-3q)++UC0ojj)}EPNv1#1g=k6U5jNkp2yC4ysvpHlYQpsGM#}oyGbRt)7^#gjAG!q zEX1yphT8a3M1zL8G%KAyH5RSQDY4d6nYky8!T9>w#)7s!m+UPO&-!~Jn921>SG##j zfsdw6Y<)5zTu^A-fZrx~DHG68{XckHxguH3`b`i^ajqW%6_h8>RQ9<%Se@} zAz!SHrvAh8d}AKPsy`RYip4{ctcgGcbWKU`I*h7;ej8BP_(v)m{ga-@{77X}yJHjn zOJ&R3h?|JhY4+f{a2GsAjSNgMuE6iT@B(h^|7XOk(FS=YZim-HS5VunUsK(jaB3xS z5D+k`l&V3W$5OXxv-NjZjwHvzM8nBH=-=zdRwYCXgHlP!o>Kef+3 zQo1-nT$x97$4U5di@LT7yQ+zUTcKFnu~1@l z+-}%Q+!?N=IwFkyJ+UI!SMEYANcxyG$GX)PfX|)0x3?yYqDx19;aB+Lm2UGr2QVhf zvPc$Rd@fQ((_HgOG%gY;!2af2=LFq*Pt=>7L6SbNZ#htC(eELM>;yT-MGXV(+Z zn&D01z$$r)^Pgbp3d-)! z6>a7QSeK(f@7Kdwi@Nq-wt{Y%#q7^-Q@1VST9cx`D&~^f+L`pGaJP4blRC#bk#o-V zk_%5}9Vi+=3vyo@zJ6R@<4BWdk_^3t{(c@|H!^gIxxCnM-W}0R&?sCI@YF61N5_vB zFi64Bc3!MAc@$kf+kZpf;*4fa@!X0RGTlmyRa+UsMjW5Pn`oNsBHKs z*Zpm{nl)xZJ0379uh4V>&$@ZH- zJZqqVYz>61+rGzbrdFDVUK@6-Iov+++eFieji-s%>s60}@c^kKN>xzKJ#O6Z8v@+7 zRd#H;cmtY_jTO758n2>(ra0Agj5s!0|uhoU{%=n@K9*gwqp ziPuHMUw;b!MlMVHjn@WJt!~|bMsN{0m$nptjQ{O+|D@L2Bg})TwSBX1@n`t!doOuL zUUsbost{tOFTM@DR6A(ZIIrLOnxaE6uid{Oceud-he|UnhUq(KppEC zwz5bZU?jnd{y-a7=0aoB?ADjI1|JtZ>i^;D?cK$C&0Nrx+NG?lLbmKT{CmDgHeig>0CUfS4ix`3BzwCP|CUb=vwoS~az!-Le>^ zU?Hr}%oq=ln;L9;RC$?fRy_lqjMVaGQV0E@YoKjOAD}aQ5r}na=NbnSgef>(yNj_% zGg4$i3kos~I|Xu*J@$MKBM%?Xq6evN#kGZK{njxyVJD*TmKsp{!FbMsvR|&BiFGCR zSKsr>!Vud~ztLkSX&$9)5;4>)O>X0#>1@<+$}Yj>=^sq5iL1$shnh<&e>@mboN~hn z_rJD}>~y zu-o2pqveSuom1gD4|#?9AIA2h6LDZ(Npl)z8&zb_vp7^Ok||V>;MJK>O8G{3)H-GU^N8HCI1pr3ZbwrUtaFBkK2|=_vdZR@SNLxt7I6-U0I@iW*)bD)527ghoKqk6L9e99PDSYg z{$J=Me4)ymTx5Q(hM2wSgDx(en~=r2BI46O5K|1V#PBfvE3gPnQqqxS z1{VHJgYQ5tmTfPPuEsO5O#6BcUDhs|$X_Me2}GMuWUq5>ab1zZvA*yaPm4a7G)zSdH_S9WgCv4{E$e!Y7FGtWCOH34;l*J=v5$Gw@v!`=OLZoi23 zv{UlMantAqsNUiqXOe9Fd?LVNvqn1>W65KAF*#nY4;M~ww$x!Hwa*4GX)J5JAj5}cA zRFU#=;at7`s@a`+;Z}rlx_O~+x&(O!?-%3c!IMpYurLD}LkGW#<>nfFA~Pp`IQRa) z48!Lfo^pAubs=6g^j>UOt<%;*V9cBa*Rc~k*Hlq?R!J??N37S_)O!U@Fv#Ii(aDzW z@ZZ?%T1Tk$q~&TL0EZT;_A9}LNEcQt#?~%0Fb!nDEQyh$VF3B?)AnIyYoTk0s)Yqk zNDC29Q;v!Typ|)PMW7!NnixWE2s)Fbtd&c6P1%#-&TuinnJ`bncIG=QxKb&|ha$zU zbrPkGc zovI6bAVWBv&YnpCp;j=)kLcr$I|{!#OZ)QRq3Y^uQr+aYF;Sw?GD`D=T{TLpY4vtd z5?TYHRe<5P2*jO)FH6A{;Key-Iw z-;l(7z)X~cN zu4gA)k9OP3fHi!ylT$*zCf23A=!s!e`Dj;y{iFG_DA9vJR#_e$sc*GG@#nBGdo_l^SuXy*O|Zk1~>;3DXLAt zq*|h;{otmn6ac!)!T-`#POJVex(cT^D3avNVy*@Z*7~Oa!Ma40WM5B?!m8m@OjoGz zne{BEp{5B3K4rJmevc$I?cn;6(Y(R3e2>jl%qJ{qrnNr+g#Qn_fV8YgE_pR?DU*a+ zJ=XuDtt+8Uy}|@Q!~;#yu>iNy?x?Ir@(FkF6aVYIp^HpyD`r@u>w8Z|EApEU2~= zh2;K!X&L)74Cm;qYt5-CYR$BhGk%PhzrprZf zl<^})Tg%f)AV4dAK?V7!osJuZOf;kyNKjV(z>jN*TJjy)%cMfE3fWF9kOMeNN!2bbV_~WnyyC0Okiy3tJddihnM$qmo~zR@FCO=3Ier&srPns%-txAd7i>V zbW`1KaZS_CL$Tf#2tZcC4-(f-eSoZ(K3vpeCj%Udqvffg?s6KD z?9xR|#2z3f`|pLT=nX{nMI_hZj#lmY21$ba5~jq%lZLTteaET_t8jg=ZVLY%7^X@W zI0KewA{EV?673>US|FJEAJA@0myTx%g20HLuPu-vk9mvmF`_+01+&OD)&_0{YyG2D z3$^1J7G~Q%;M)pjn5(s7@3IjT40Qqf@(_s11br$orFq#{fwA1s_@uZ1TPZqv9b!LbEGSjB2}&Fb-c;wifgHTm(!B5R%JD6-quC!XYiZpTl=2D(Ys zN`u-gP*q>(p9^?IQB(&N7M*bVeX}SiPuPA-EJ9Kq9 z%QeHd3glhF5msG+dcG6xMN9fq=MyZ^1j`0I@F-0|iiCV!}=v(a2sAF|c> z)^Xr73ZLdJ<7=0EAa09uvyWTpkqwq~KI8&!MEm!!jRNPhgwdga1iGP)nl-xCA=|YO+p!wOF zfk@z?C~NV0v|{87$*CtFy!E{O5&>D31;2>ndT*pt-sPY}ln-M+HtmpUR;4*Lm`jpd zW1iln0U`^oxA&d}3sU5kvTyi9=#v)ymX{m-iYVz&p!eN3Z;>0B2SK9e73B`lHI)1{K`R9qQ|fSxX|D6 zD-tG}nC7@Wkn3IKTKPA(B`g6@rmHkD-|&C2QhEIgEz1Ga!#xh&9q@%G1*$R!GwmmO zV4xHED#3&&MQ#nu0XYcuFsD1kp~gpW8kwlzd=4Ikg#qC2YdpD#SierW-MDBTlGoME z{}s-sZFZ>Jyy&L9Heb#=SL%xMP9L@4Gbsr~Z9k;Ng06ZGM#HA^>?YMOHXSz}X z^zK+EMN1I{DXEQICNWb5NjHdmnh^SJl6$s){oCbrV7#M!RQ&n>3uL)W4+B7!nMb4z z5u#wt{`={%^~V#?*^8jqV3xJ453<{GmvQ;?2nX8nfkl22xk=Zjcgcqu;)*lz6va&M z!3@Z27IE7Y7B8pDDJhxInkF<-`Bi5lxrk$WGfzY(o7O?E60J~X<0qK9Da9>xr=oV2Oh|MVG1#5oebgsm%s|w*_PFa@ro(5!0#wOr* zd!4%AJ?0vh1^d?GyTGzt@rrKP&?@J3*1P)jDUhe=9jzi1IL)840c5$i!c$EYA%zkhInQnTN0!$hg zU2|PKF;fY`c}eMMzq+o)M>Wh$4S*VeffA^cK-~)d29<8+^>Zgu!J=W5Cy}Xu;2GKg zZrLMzN_=NHBIj)-4ayX~AK|H;g=`;94D1ixQ*CSdWF8&8Vx7SAO=*~7zG7`4@lu9z!iKKhkU`<3NwAToa@D^kRB(=wST>B*;GN zoPHUlk#S4|@I2*Dn;y1GT8R%h7t2jHQ1ZFDcJLCfp+rZnH{G=C8_WuaNz}j zR#i1Hhg~yRN|TKkM`{m7Z>Pyf)#J=AJrLz8?`&?~ca!-mv`@e=j%D^S z|FrEYVI@d6IXTCRR7c!_Zx87msN6VPZq=N;Hg5v?e^>wqK2A5T)CEcB9eN#cd1L>Y zZ0X^pvTE8WZ2MZLTdQ$<~Hn%Mi9Ak!{lM8x+mY!6gCmQ^Mw zO<%v#ym?@sr<@dlYSlS#c(YX(pauC0Pov{+e8da>)bc#$UJ&7=GNd`G`RsJskx}{1 zIi_tYK%NMwRD-L9YjiND$OKD8=2>gEz2!V01{L6*QWPw6pODlx{;+1bOMEOH9+gCO}AM4 zn61#q(G0=oY6l4X_c<~Jz0JQfnj)~Pns8&B1#Iuj94UAQ5c0!@qNFY_=N|4ST8P*t z_%Pjzhk_iNQj>(8A2nI$Ggo3;bXaiHTJlb1$0W4@R<1#gbJg{Uyy27l_S3l~;R$B7 z%YaY@y%g;U2-W8hJvXj02~f$R0ij?#XaRTrHv*a?{mS&#G74bA=6=`D9Gt4lmH(#R z;P@8*Mcl}%4ir(of*$94Oibti|31(0)RSC9($wrrXyO=rq3mC@=R1NHQr>|$!>sR} zOncAu3q0?%B>#qp_s&BP(zRL2BycIYu2wWxG1-5HX*a4KXqDkVsjfq+JrAJ^r-Y0- zAQ!q2gb$`vGE9HNdLqYCPVG{TgBhCVOx`6fyx2ROTH$&RLg#mQp|XYK4@r!ig5=a- zFv^3GFxN8m#1g_s)5}z+50LV!#=APAw~9TeO-uu=hEfkc>ga87h*+B~!ME^p;i5!oqsLe!yL6G!aT?G=SO?E$y zgY%4f7Zz*%Ie*)LV^9kA%pTE-Y^epfop&u{6+aqTa6RkI;qqz-I`@bdG8U^ze@(N9 z4)J@q6Au0wL_fN7d8-s5ev!Ifr^mV6VCV=Kj~eYXb|N|s_9%n4!58$8i6v9|+kf{= z?f_(fDImA;+`5B_oG>vi=diQH4y`>#<>#$DgT{1&`go-o*uX(Wi$u~MFPDc6X5-II zOU>z$d=b50BG{BLf_X2R2KrUskN}1T20Rzj|L|PosdPg)qUJxAwzzeHkQPggtGiB9 zjkB=B3L~{u^oh2=8?1rtZ;Z9@Oy_e>S~W40WO~W!|48`Hxt^;f{&1yZp~y`_S6yrF z=QMd(6>u{cJUS1aZ#EToS_O@LxoK*Pmvyta{HomZO{)aq?1hJ>9QRBZ?NC$}iq0@c zEg3>`NZ2%KS&5ZGJt z>G2F^E(_$Z8>nd3MF0e9v!5lZ-B1_cLh~8edLoMx$pN%!$8``^@rU;~AJ;N1uR0qc z;w?CQot%%yz;dXv2ANtL=J*2w`u@9IZT&^T+~MPbNP1`bvi>;>4arhPhtsG{$KP63 z>%}cQg@8QcUF$kUz}nf1Df_=0tUp(-IB@ZLEBJ||3Xn=3rJg0vs@+IyM@#fG8(FLtKO!fbSB zTNh9Pf_KqvN-nqZ^5sx`>N{-OHy|WtDA-g3=q~U(+8E^eiY`wqljkLj`3%4WW^IN% zhf)gMg%)3}(1L*w{<11~+j91sZ$cG@U?{!P@tT30;#Iq$i|ZI0!8vB^06)qkRfLaN zip4nolg58xof02&_gC^gFDwIq8S!v5&$WHO^FYGSY1nzwYt0&O<=uff#)mf0q4dCE zyV)a=dM(nPHUUVN+20`pONgJ&u%oap7BD9R(xS$EWIHSy!u45oIa;cxguTv6sxtl6 zP6S=d987TTAo=Gxe2F>BEDMLn5hfN|E8ETN+NAc_K79K_gtSKnV1jY`1jQ8M<<7h+ zHYpe051r$@ZWbv3;sxg`k7%QZXoIW$XQiRX{bWCi7ZIz#*|ClI!phr-g_G=ny?E_^ zP%qTsQ!a`$dLjRp))0~3EV4Ve$8F^R7EeSY+Z}qoGe8slz}ziEcUdewkwvtw(f+?A zH27fhCk;KdK*>&LwQ`VE0KwNV#R_nZY`s>e@F_57k>tEQu50T6{0q@0wZDdzrSWUE zvvpV30xEzj*5bZUV#3$OT#w{%dDxUtl}xEl2p zU~@n8sk8i|+zQXrZiE(pI6p`Hp2L|>49Bxknog}lf2(YEnOuNvhClP1ArnXV!v_yXF;SuE32JWbhw2}SVoKD5a`z}LIA{<1& zR%nkJLE8X0Pn?ro`l}D%Cn4HRV1nU zX368lOkhd_#nXw490#}!VOhZBkq#i}-F4fBAukqVV;49Q{NOyPWc#>b86#Cs3Pqa; z5PO6o)HiyPP6ukE1p}GxQSxW--qw0Kd*hmR7C~o;1bYnhSOsEK(IP*UJzJ3M54%|| zNz8Dv9%fSIruN%a&d?prX!o$+R-e+{2GgeOUos^vy}osgel?wx@rK?$q)$o?wcE}S z2jLW_<&w7(Q(c2xzFjw1Z)C-LQXH2|-!h=oX4Jd6|!EA3UYWaA0Ep(r8%j;Fn z{103hL~BrAVkkQs+2RD{Hac%BT zGO}?IJEBz;f>^rb@l50jCF9V!Wh+N6QDK$eANh5~DK#i1@2g<0@8_5&TtC;N+srx{ z$;h6kEOr4;Dz|Rn6QV_bZ(!h5b(X%t1r8C=MvyprWoX zyOiEStX%tmjQmp>?K~CO*(>8wSpK0H6KMWJVc5Q9tBRGa$BRklDaDdd}Gkr&S+xFmMr;F=@LmQ?Gi;h#2Ne-@@Px?&ijnax|8^YI4|3- z_EHPQ{B`6m2*L{O0`jKm8H?+h5 z9B1BVehoE+VJyb*(N6&-<_E`Gy2(p8ozukQ8j&!Bm9WoIdQEIk^zWZ^nT~Gk<>=!+ zP+~km?M7GFMf8H8JYk%gS1v{>@lEbrq?_q@0$)HjuW?eobJzs!;+WU+TG>Q-m6F{- zrW-~uYCM?(xk6rNsl-e8H?ZL+_#^6wRuvGe=}3@j<}A*StXlv$U|(tA3fkcY2KviT zeo`BNLMC$>$x{0*;m|CVmOGsRO4Ng}E8Sqs#cuu$kKDZ`YJKk-Cs2znk*caDv_6^q zj(y7bf%RC8I_y;`q1;(9-GlmX4fBCojRpPAk&S@#`m#^T?B$83B?R*dakeDJKeMyB zDgp&))WMW4llf-r*wRL5A)KEhag!OPjnVcX0to-c1tM$J1zGWBCUVO(@eeOUb_=J4 zJd}hTqp@C?b$RcpEplERb&%QR(U3%4_kuRyZ`WDw&p&UtcQ@>WANjQ1Z8-?d$M-Q{ z-TbUvn%UR650hM7<5GQ~tZyY=$^}y9GjS8GNsMfCZel2F#V7dHu9t$(6_p?t3wlyDm{{yi-J^0qMuDRVUp*v}(oSN|ScHr*01s4i5yZU(zG_-BIIJ&>;V=YnHST3?jehG9qMH^au zxtd$Ruy+n;%cRf_=0c?OY_xwK9!_fUbb^~m+(d~64fqNR2b9N>x@hywarR&*1*jJ9 z#1)WPzxf^6v6k>Xm~iU4cbL@+NwP-^uMEhn&sc@c&M;FJ0Xp0Lq>eOepxwv$32xwZ z)N(D{YLz)3Z04F6X5)V6Z^kE5bJ)9vmFBSieSSvtwUMP0x9)R5W3xT_#4Vr$*g*r1 zhfB%|W9&+_)@xvm`#f+B+oP!jxw;nLp>?EiVmI@24%-i^z`-W@SZ>$?{EsBlS>s;n zJ@fHc?3Mh3)u=oNME|~sz=QD{W6(%TpN)Gbu+oPBG$HxBPaJ>Y;S8HP%+EPO#xF|e zg0k@|eSr;LR*J$9TM?)#bGl}6y}uheAbiTc%e;tq6yhBnxo`!J3%G+$@F=4W40ad! zZ#H;Bq4Bw_Cb!$GZN~n)gZ0N9Gg}VTx^UagzgU0UAh7o*#>Q~R{!Gt;nb)o8S&9+R zAdLbp%gN+TRs;Fp&mGJ9QCOgPPO4&`yelqV8IQdH9c_=QJEIm=0Y(aQnfZ$Sl^kh}1f|0Z9N37D;;C8uxeK-@rJ zd90tD?+m=B5Bap^tDuygI`mI^794tQvy;k3)z$&Gd@A}8fDX;cW9aK}D)clSGaO0&~SJ$j}A??n9 zJ;Y6^BTtZU>iW?cnT8QI&*2V=*YvP?15ReKJFgn>Y{_IP#Da}K!rV_wYDq;P)( z?^*m>Y?}fAG)uNwtH8HNJNr*aR`-7?_|xV%jrT5@=arE0P?F z9YLI@aMm)0d5c-}XuO>FoO8UiCu|^_8&2&M12wys)J1yAroOcRyir5Q5@3LE>>Wf^ z9sE4NHEotpTWr| z!`fzh1#%i-O<))-`rlL;E)EZ<@d+QOubsip4G(W~&5>Z6D;=bDu&IaX{a+@8z57jl z%iRRJ;Uc<2eK3J>+7;fJ)DJu*dPkG>7`V-kQNE&}V&%j5l;CbFuVvP@N2oD)dPMI@ zQ;&O>_3;~c(xaoE_bQ=*;MKYSjpEK*`sZ@T!qVl_wbO~|)3|WBLWw`nc+(qYq*H-V zVLo~m`4-(5Q$ij2fdZ+|;c*u zl{7=C*fST5%Ufma)m zrQftcKav`}mx1Ifa4!QR+5%Dk9CWLxp=LM3yc1ZAGttkAO|J|$Xuh$G2NdE9n7f!LZ|3= zuO>m7=@r@RYg(_dWD8|Q=)At2diA#;V-Dal8;rG?0DJ!%0lW!fGjO13PUNyGfrV%l zcE{AfYIF-dkIOyJFgqrZ(JiJ&stF_lUplJC@-kF7yMGF_SyrA;Mm7)UFnR$fk04qT zN|sa|oY-fTh={E#@3$X)O?iI(d4}Mb6L2A$2Iqyf zHI}Yym8^Pt@bw$nnH6Pq_g@X(^p*x>1h~YGS=^<}fqN50-)NlygDVpQRn;e%_X4{> z3(O#}{>YlT5|smO(f2sx@o7YLoYzY==%4*hW>s**I($8Quo|C?ImW{+%paN9Wap5F z8F-U5jVj-JR1IT3{!Xn(u6LmZg`?}+CP6Tfq$rJV1cx=%PxvnEFIJ~4FTSX!%xh3~ z;oEf4G}BEet)D1#e2ysvezRp&n}~U`(M~^RhL`Y}8hbb1SlJ%kN!0}jZz;lY5ua#8 z6eA@G5;!^9!5o-Wm#4V1xhq9k3-aIUl`DwmZLu$}OK(xlgELq{8+N152l^5JPV;eq zFwZs0PujC^cpg>|_vDjsoA5>LGR>Y2tKUK2&yrt{9ZBXHV9--}d&t%PQ%A>UJ zHF|3jL+g63J4%KgNr$+d;A^}lr2tC5inez?b*)xGmhF2$JfGF+FWSNF7pFUxFsiCR z!O}(9W}dv~X!>^sfJJfwN=H~E6v0|tW{t|Z1NGH?;<^KxVDx<+8Tb`NTRP%x=9mVf zmYJ!|f&QyS8!Z-n-%T`^HR!nxzEfE!JJ4B*Keu1zym>I#9V@V}1c6(Fg%-IH(mRue z_Nq6$G2dyYnmo*l$aT!6`;QiargZ)&;oN^Yk`0-?EYzJPVchfPIeNAV`hBzq{6USC z_v0t^^4qANrd!!dVo!5J8?RUcRLH07S;CZJAT zHWeXOZO%j%{qbBVSw`muDlUo{t{jWJa})U@|I?kMhdLj!&AeQ7kt8#n5nZ!>(O-Sv*PG zS_)#tb2&TAk=vjJejt_$y&@~fAXu^QVS;M2uCyoVTr)PqRmU?Y@~`4A%yYP0tjgX) z8+9P=-sbLrS(IG*;THvw5mU&NA`%r(D1?S*bqoYQeTTli+0$b}e=E z+)T75V@7@5Nz(74hU*?KTYiZOn1cIi3F@XHvD7~}ULgQLb+kXR%R7nf56Z|H` zwS?WAFt!KJL8f6>1mW$_3v-t71b({Nb-zz;%h^mdM_IynQ;81S0J$6h;m5)o6#c-8 zd|AhIbSz;WHC?DFzAWpRIDXRvtLG^0be}&cseA5?ybxvw~{-UiuQ; z%ap}D;Yt!?GhG3SMZ|RNVrg`IMxZE4mEs>}ngsO+IYO!p_B-}%*aa<7;Dvc~cWFy1 zn4MSfug>`EYS`>5V+A3~et9&{Jfm^_S_&oa6HsfG0iK3pjv#$jQ;zv)*Rtv=O{)uF z2+fMaeo4a1>ta3sw))DOBaR6)FDto2Q0>>(=tGd2bNMsBTgfntdT z^{kNH+(Vz@OQnKHa3OE_pP{1Q$! zHu*`o*4NMkSaw+8RQ+d`s^b*N>_;3mx3Wf|+3^`3O`^yAla{mE+wL=gAJ_^vvB0O# z9MvUT%g$p3E#^&SVRubi)XN!W?qa!l5&kRD0*&V&9^hs7j}iH$3FcOfRy$%{qhuy> zBY7Q%nANuq|3S)|PRd6fWo0^Q?I&RC4zqjk-*PrQrdaGTlNH(pSVj92YSndHu7b(G zix|~p*HtHsftRqm{q6q9yAkox{`hL4#(v9VD{K`nVOPm2XFcwc(K64HT56^Zg-a!K zfy&M94a3W7xW{*iHiI(X)5Kw@{RuE{x%7@^$4g``k-HgKqtzU5W@(2=yVh5@5!|A1rOn{?4tGbm?@RvopvE@@{d3q&ZRWD7I2 zH{IxaESDgb<$|3+Ol|d^8}45k_Kp}<{5+)I@BbnWzDhf-PCt+V8oYD~2^aLx*G7? zW2Qb@J{t3j2Q7Vjrn84VyWtUqvQ5^x(8Tt-$UKjj3G>;QBz3svSNydAnoWuyh6`P+W?BzW~c}{Jf6QW-peV zRd={QnDXK52P_?^ZUV=Jfk@b3o6=oP8jzXVj2_!NwT6ArB8u(<>*gvM4Z>c?k~kod zAo_(9WG+6FLk7PL;N57}#)AmEC#J3}ag|Q$BA$B#;!Ur|Gg)02+Yt!9F&HJ~=fKNj z)THv}1=vojV$iv>!s05($TT(hn6)R8Nsj1;z2xPhTz9b^6LMh%!m0Qm-v-|Pn8G)qz=OwS}q&nN@jq;D?l z*7XeNXD^-PzJ)%FuXhNBy0N0hxU({Tx*ly8gRRQFrcBMaxx~JL_tfHoYLW2I5`9$o zwnG}?X6k!d_CoB6=&m_k?5K8;h;Q_pG@lI|i-b@=^bYFsIH(mTGl6^XU;xhZ=PdC~ zC@>bg=&!X7qu&Zba&P7+yyWmjtMQq5CO*XyWEm_o#;a7fWxI(}9_MO}Be{>HXiW0& z{b*0Rf!HQwxvt{NlZ~h0Cff{L$YeeOsiZb)*bvy>osk5rpA}6h+Na>YzVK(apl2{R zpVjqNdNg)ROO7?BV(@C@b|tU`Zg=^2Av!kq85gB;BqB(O(-LIksZK!6@wbem12EgenN|wb*%+niB4b6$>T&op^ej0!Rdz;OX6(}f!nn`D zUe-GNCxt1n+Q2JoaNl#YCqjCG`Rzb>KVaW~E#Uvz_P zxzt|CyTYQ!x+>A~PvXON$c?Mf_rxu#yo#n6jgTT^I9KF?9i3DpUC{eUI{YO~CSPKJld^*CjkwZ-F33q*mVMLM0Xh1;h96luB+JUZp0pDC7F{1lYfI9 zv#vH7Cj(e)7tOMjk?_vtOntH}S)IPxKkMxiiDwNu&3H)T6`4|-9vw6JB`9y&^~dt$ z5v0!Ldzz3J>&>Gv?Na98m&D98WG4Ha&=aBg-!_$)L}QKUJnK!-`u;HcH(Ye}*>(lEXr5Ic+#1g4zj_|js3v%Zh>JB=$)bDS|AHo^*~=`AP2BBj zNr>)kohPvts;DQiEDh22L?p+R#%W_6R@e&hy5lodTIOASpFE$k5RI`~olEH0sC-Mb z;#qr*!9F(7KUAPkY%P39tb(R2k=duQkT8KYLhS`yX4CrU(K`1cHa;!IBW)XD}bwtRpU z4;E*Lw0t>@$zkq&?UIoF8YFAi1Nu(B?Ll1>OVZv>xOyuyT zX2;Ui!^UFrI6<3bkD|?Q)IL`$^)Kiz_!`k|8{;II11zf#Ru-nfOu3)?Z^>KnMmxkb zJ;y?e)M?YTUw=d$@`fLT*)JIP2}-oD#b+~- zUwgISGJblIUx*abRzFie4%d#5q1bjhE*}U1G#%nTWBq$(zDI)Xx!N>AUM)#{1<#d= zinGMPQBjEcD$>X&ikNxA=Uv=kFtOk0Cp^&F%pGnhW>28jIGqh{KW*nR zC_|1Nm`KIs%~}<6yr8WxJsPXEx%R48W;=4K3kxu(YU4InCYp**lneCD+knWcbF*|# z0hUgC!SIyfvJWhs=0x(3r&Q<3$hl<$ZX9K;tPJ}Mi|8(7RIYq4gZ!Xck;oHy#+6!; zhjwg{%dg%Gi!utpVf+`l59))BfO7nG;s&Z+REy<6L+ex z%a^?@HuDNxz763@6<#=}Ym+8X++E^TF6HwowFc@SsUJAq!K51eM-NN0|0hNy_P)cS zZ|`0WcTWrB{_`v68JO!2dERnnE-xNTvV%}y7c^(7ZJ>=f;`)Hw5xpfVRSpxdL)Zp# z*uBH`t@yh=1tm~K=Wb%^u?WU(|6^K>x(N2iEYZYlN064u*2{*&M%!47ld$oLQhCRF z6%1%QE#xB663)`0`OpK+$L+Al++D{jVovQN>wO8jR^4xz3|=c0ph)3j@+x7ZXdmM{ zQ}NjzUN@;@WxxAKbLh|%itO^d*h5?1(X-}#cmOx=OnA1R%l;FJGK^%iu9;{QBmtZ^ z&F~i`!H>0yWXXS!Bn$BO>{Fz{Upj+-SbR*QX`s@!=EwP}>%LDTLB}%U-VmR4j)jM( z1j}{GopjUP0rwSJznOdJ8eTwienj)9+5vHA0Yhh~OMebV$^s)5|9V5~Q{4S`AX$iv zb&?&2a5lTLUhNwX;PEe9MaY(kmb%XexX8{`JNlK>h^0tYiQG z+~dxYPh|No5-m#;ToXl^GwtuuZ!OdMk* zX*&b*m3NWph_*|d0AAmBXbO>O$Ll6{Ym+I+9Hf?ipW&8QiZQLx5F0Np21;(C2^yTA6J)%u%-qe<3*S`b7xRCk6+%hBX)% z^=vNz+~>iT0B2lTG!eoWx&k=9P_rOm=m>Tf@)m>f^5Bxxf`3R%m@3TBEcW0JF$C%q3k=2=y_e()j9Wu-i+H1W>Em!xwBRa zW|Z;JRjT2LkKEb|W*f;=akH-q-m}qZjyi=OqbuWA)RfY-e+J{aDCgb*)PU}Hv`bds z7Q5IT?e^oWcy338aEH8?qRJ2gxa9)TxEHP^&X`v1d?t4FbLS?gDX^t5S)5cUV*ZR) zh>k7+naA7MH{ic?OZ+;HUFOi#<|#mBQ$%kFz5v8Y^wIc5B_^u2zoMIN=|DCXJj|6r z+|RnftFt?CPemF9$YR4eYuzz)^(l&lWSPrafN-kA@Y$8J<BQYu>Bl?`{> z6PI;yYPB^^o|g42`U*>6Gv`A~p&R6d>>gQJI<|E!@mgoSYZP+y%`wv=fn0M1V+I))B;2}uUR);Vff!>t{OnS|`Ku9>c zG93bAoG{V#(G)F2elBQvToO>S1JBnSfkzVAV*3ouvk(sEy3s?je?vBxZDFkt`N`3f zM7H!9Im6?Hy~5rK?%J%ZHw{zvw|E`+2m9LvDi)*1MJe-{EL8;=KGBRY>=bRXu}i!V zf9cprNcF*g(3Zzsi!#TV_o@eGJsY=JI9&CYjP_RhxIN>ywmd86#8b{Ba%{el%J+2U z@W66|E_*RNC2oc@<9WS6M3Y;GAHE%z#N13$IDoAO@#ocw{zjXB*NUg(ecYfwLdnCU z-+_my>lGcnhS)#?OP5&@5N-~I4tTAzqtPnFjM<;WO0GY@9IGp-UUaNir zMT67$zI)5M;T?iMasngqB! zKf%i)i0B?|6ZM%q5y?eX39n<6?tT8ZRdoVgTqUhZVo8W|`<9OUp;Y2caGgrzKQvsw7Y7347f`Lv1B}WGus;Q%@o|=1v4G}m$JeP6Pvmem z{X5RHDiiQabSV8REV;V*xLWWqnWAdRarlbPk>B#O0H23!Xsr#T=b5t9)5yYM85rlI z4HCtqRg9k$5+T*$W1TJ*eY~Dw7E)zhDd^B7ZXqc2Y#WZp|6~jovWH?Aof}?wv5~W^ z+N2z5k|jpm{nHTnwt-KK`qi=*@&!n!`8B73(WyM5 za(JaljE{eMOi6?1Ts0SW}IX4kk zh2#tWM@^D5NyMW*_%&3R-uoRJl$V+wriznJ){@p&4qkoEKd5@76Ts33RDDly=t8(N ze)kV>Fc&@JV(H#4oFsn&%><7F#T$6ukQACsaLclcs|DJ!633Sb8wuYxX8+EEcK!RC z=u@+gL-uIjawdTG?5jii9WS;8(H$$zeMViq+sxPsJ(;!#el?$5z_A?2$aF~RIPZ=C zU#Vkp)#bNLhbRl3W6J6VKU<&ktl7R3?9?q=jQwhESEI(CcNNM|$GsvK52c_pu@k%~ z{7OfHQ0HOx6)b}mb3QIr;qgCqGkFordS0aHXXsm1gdL#Vkot;d(vd^Zb?>F-NyLvh z7zqwkyi*U84cl=E&s9oMVWL~8Wt0s$&8Uo~FIF9MPkrq}AoAU}x`TVXwfdTN;NY*N zU>TNFFmulhS^6-m%L2B@Z-yuaZA}l)KmIG!s9R$`n*PqZI;2lKW1X{{z5X_}XZa)f zaNLJC)m}b9UF`_vt?$f3WzS^s=^L91$0zug5_zU@qn@i>HALwG#P{x-k+Yz$VVnNv zDuB);&lMUw#CX*98cK@xwW}EBsg#|i*f~)p&q^5zXS)wjk^$BnF7RSf^>9iRoZ=`2 zke(_xq-U-eKabqoPK3WJN|BtOV4`|}t z+x}0F^-ycuRIQ>?NnN9&Mx`39A#>`+p)M(+M&&>RmsG9BrIr9mrj}ZYEKwsOB1sh$ z5inX*S_v81ccX%Upcx_T0Yeh9%w(4Lj(wir`~LC!UsMP)_kDf8*Y&wha}@#vU0``@ z{#-+nGp=Cct$R#FTAwP)SOGKz#8QL2lMpRVG z*Ph^+L_BiFF&A`fB(WUa2-%D6tDc#$iN;jDbk*a+-UC*Cj}iTb8mDW?w)t(8fu*wk zmZ0kf@n%8>gi~dNTGbpJEdg&<5VXSXE4TMOVl&p`=+sB#G;p6-ITsv_RC)|7T9XSMzw4a>f*i>$R*_cWCElOEM zu5$fY&~GY$w}jXC&PmM32h(MG%&SL-x&q5b!ROfNkSMyp*B=v>JMHJGF(7{|3}^TZ z>?AezJDz+bFh$({vs>K47ZEAc6|z{_D;!{v^!v;2DWRIDBd4{6PVtb4Pk-+&?omdL zMX$s8manKqdE`^KsIKZRfaZ$_)o<7Pb>#`|z2n6xde8}URv(9P!K~&FdW2lBW=~TO z@MGQaDe!P4f(0pHl%qvl|CUjIO{Lr9cekp;^YaXcW@{57w;pJ12e|3)12ol7e zX9*7ntZ{g!7XDm}YGZ6a%YP|W|C|8@sOza4=$G}q%IRf0Dsh;QI(={2a&HF0Br9iP)XZaMscLu%5gvl!$Q{nJ1$;9+75 z6!cT*bM}jDwcx4Zq9g~s$PCt`GkuoWR|lA+-3((ja!_6gIMRBc9*W?yy3N7)>nHJd ziCFgI<73C5?R$a_JizoicA0L>BNAi<1n>~J80Y_q1pQ{eE{Dp8=S&6tHnE0jC7V>% z&sT4DZB|=BRCpOdyLx@;y}Ce3iMT+3`W**oe?T64>hb0RE8@uvjJ3&CCeH*;m{LHy zL6y>3h%27O2F{>31Gpc}2Y?#xOxrk z#Cjsf(jvFCSYYt`Y^|%A1Hkh3UZQo^xq&6Co`=8qj)ybdWgFp=UKgV)RCXD;XvnLTnj|P=hr&9@ zs%ej585xnCp*74Wp_F^gczmn8nV%<0Wjiz%;BjU*AGU=L1?Gu9(~$q|W`X@c>tLpK z=bzxj@>^l!bZ!dRqp-#wYvM11Y*m9p&JC4{o`k^JNT-EgP-U7qSfLwZ7N0kF&!ked z_4?b0_zEAiSDgcsb*obTAGzl|3|~xMZGo<-XD~3A&lODUxKE9vQU$1TG$@qsk@YMoU_Y2j_hO_g&!}|c+Li~uADTp-<&V4%=>~|XVc#9EA+Y=Vhx;UuPXn>Tm&l)7n~4Ktm|J9p z#&GkHT=|gskhVDlLN7k!v7KHMo`Spws1xXh_t3<#-W=+d<@4la%&pXS;oYYS!s~wu zqDK1y>klCRkf1(^tGNX&{D(*ab~m;|(&>76j@2*EQs!I9>nn4EAO8e|DmBF!zmjF_G)g9rEAtI{x`Nm%n^TuHxwP{|n7kZ{1 z{iWkNw{!H5I#~H0XqpA?1yhiFxpgJ4Ib%f+Ym!PyqotyN_0p5F&?VTn$!K{j{9DE+ z#Mmb>%<|j-V8gM^nQP?_xhLx$^5NZ$nvEBB*7HNvsWltJdrZkvM4c;t;H@G%kH6CoBX!g{ZA(1HS%Q5=E-|g?Y1F*! z3{kiClHXZ-Ou$3EpK1BGFZoe@3;<8nxV*{NrmSv|jK1U8uRDB!PuxS)sJtMN_%M3d zH8#)2w~ga><#Ic7xMc4l;D%7FqYpXQBL!FZ)OK4(7Ozeob6zi9EQ=Zuz5v4Y92~*7 zzBS*0I}~H|;u%h~a5Zp?t{_4is(c6XFC%GA3%37OZ+wS?jPpo}hb!b)>D_E>`x6#@ z&2Ua_6nM4-@#LG=T5uV<0hEPhYK;?#xMh8T#Jlc5^*teU2VjP#Plh*;s_q<3z1KMg zp9J6^E+`!WvM@WvYXal$0C0(s>w9xyku+G}S|uSuBRhrF8^G7x)LxUfNCu*U8-93S&2fX(kY4(L?juiAKwdn}Q$K-@ASG(a z1b#P@(D=R*B2CP6a|QmkXB)a5u#TiB0%h^gQ+TaB7de}4i|V+;6wx!o0lg{@m(K*Q zy_TqdwO5{_K8By8HQB3x89l8>nU3P#4s#E`2N{Sx>Xa@!3SEU7tRbD8^ML-n`_y6m zn$x_&M%NzwfpAm6V2}(27`)IW?)OXz+ye(9<0N6P>1wZ$!xdA^JCG-y(WMvDB%F%W ztFH<3Eb}#0q-}ep&=hDhexb&`tp{XKZNBRoj^x1~rNDTo(MJM~FKQ~q=Fd3n6yhJJ zyymj5rfM18D{GpSQOy8aZaMx(G7)9D@+E&HaGX;-evZB&p~AKuJP+T%RU!8$xc`j4 ziv3|bZxR0{pc@v7j!o! zD7q=C%ZH2vYyF!=N250x3i{D5;c?Gbaq|FQtKGRb{26>x~EUM~$ad@R*X zc~)F=N_J4cVG!HrSX7%OkJC%{09yR(;WM?dSoes`=`BXp zrQ!Mr2Hp?vRB(ow_n=?}-~q{@$4nQ?q?wGQf_W64Yw7ahTD}>?t|ITX)&S)PfC=7r zHIN%FQDf~43)`{%l6wxH>>aeaoNdle`(4BR;9%B$l(aO{;1<$ZRxC{^j5+Au2J#Dj zzVroYusKN|!;mH1phU*gRZzX&WgcW4vRUYjx|fYAx(p5lW~7^{VaU2Yx~{6m_N(y- zvQ|~AIa=u)z*(U1qcx67(loWt7~$?z*gdQ7xNJ&BSXL1c zXiZz%2Llyjt4;B)`S6%jcgk^!PS#wSBh+ApWPh<9c!D3|u$q ztN_hAWNUQRT}R6+{%XWpxMxVzp?Jl=D2aL~!%18d(ZC8rfYY51X>TzPk_Q78SRA_p zWryIJm_*#OVG8I&U#l}^BbnHFW=1#cV27Qs(x z!GyoQ!w3DEaVk?=TLeqf87_pNi5au>-uR{`>`Ek2pYdn4_<;ZmY2_RUr8_fDk0|4` zPSe9N{=&s1*RC1<3bX-8w&EaPtZ(_)&9n-7m2?l}7YB>~b!Yc$Mu@OA8}!uThxhTV z!4PN`4@J8+v4^LE!S`ZvuDwnIz(OKjdU2vVaAd<^*bw@a{L^OYisKh4=-z7653}%8 z{vh_u3AjPc1tUFPnA#SVl5NPvY8hq0VsI^Eg({o{+aVp|wVeu^OlQHI6#2JL*peaE zN~qEgo_NzRAFCBto-=p5X3IM;c5fZt^`bs3{lmZL%r+0;D)0NL#WLUaos%5iSeII(7_vj5YaSM<>of{jgeQ zEeLf03E8@s(HN? zyf4kmKWChZwoSs$;{uoC+rtTK!9eYzxL(*Le8nAbd3oCpr5v#PSW0LGQt9$DT^-hd z%GzbjMMW>&52a1y`XSFNSeVjp&PPKbJvEd3zqw-V+dw~84ZVb1Yz!SK;~O6^!5$OH zI{7CR+rOW5XNjH$;m-p+BfGh%oIS$Qv)w3d_|kt+FA}+1+N2HM(*T+%G3GZ(vQ^+NdeVrKn0zx56YXkDYl?=b0v$@A{Y+7Kg3~fmA|=9mn~sEOD&F#22waBBYq3| zp@wC1jfzgxF6%$jVu|Vik%1$=+oLs1P2oX#Q_I}&p{vw602TU0%4Jd;WBd8%6nRlA z#N<)yO{GV?#?`|GQT-g=+a8dO;dQ@cPe$*y9Lf`&E9BUkB?>{T@=J%$G(Oi4D~oOy z64S@X=0m1ECTho^U>-d~B`q}+EhdZl3y5z?4^HT&yp(P-|6+E;dsa3_d!nxX%@P`M z)?_@t%7{)E?$iL(Pdm?8N#@{h1a`rHHzW0JC#Br^=%tg8$YK z{`f@O218X8d2Eibd(2Jf3wW;l8M>6NS5X*bS0cl|9!`JB7TLfU>pbQHiDG-hVr-&A z+*yRrhNJ;Q8=T)jkzA@hDU0rt3}g^HjVGk787r&-_lBE*yco$LJ}h)yqJ>t9HF~4Y z$rv0hl5(uBg3Ch7R7R#+3&gcgg(x5%38QXudVhlj2x%LSB}(&q3&7Ra$hY8X%fWi(~m6RBOmKQ1=rSdRyobjgB z(sG@ub_%eL(;JKXB>7cqw6m9Tf(tNR|DW>qg~*ha56%Iemt0-`4)=y;#ll-~_->iNc2FOe=JvC!7-ViZI|==o z3>~^khZjS8p+so|(PST8={s151x61sT@%0%Ket$1PVN4hE5c@5d`q180%<<)sW2iR zng$?y(Za+W#=vYM(=_FAp=1)MPr*wTz^m!)o+;{I;nszN`@n+Mo&JPbT2wGtFd|*t z=&YnHwY+>$nBJpMUI<0*_}W;Xhof~dx~H7eFX*&khwLJe4QNOehB4;Km)SzT735zg zL=S`L1J{uauWu2+z8!kKK&_PQdbe1Yc2(8=`73tJ%T^vA*4>R|L<1XUMBHl7Yiu8#hN| zhURJBgoV>ApRMx9oT!nq5XBqtjI@J#j%9MTf(Cc*jt8m}T36IDxl{X3@QOGVOwTia z!I$mh2HL&u#mD51%w}Slk{h~nRg%up;YJJ7c#_AZ(kzTW_zE}3uF-1i#rB-Tr{&9B2LMD&*)B9 z!Bh0JX*+Owlt5&H)O~}hj+xgCLR9#}&YiN#m`k43_~wX1>mOd}mJ)~Dxp$&IYbMwZ z1`b(v!*6;{zArxfmyE#v)2-C=e(zm|EVl%Tb+2`)_?B4T|2An>R;m#&oUnau6Lf-v z0K~8YGhnklf&o^pyXe377a*F$Bs;ooYREhTxuhXkVBXEJaO;$eYSTUM53Q-t73eaX zVR)@*li$Ej+(kYWcD}4ahN8x)g9urHO}|Bc7EKPXR>yH2`^eu2(4JB-F_*pJL6bfKnIR{ismSD1#P>XaMZYI4&w zRs~w>zSfqp<4V^bsuh2MWroXRN8S80*z0*q{lq~Pn<_U#EN7~$B)2$$GfaJZ!8nuJ zy}7jHAewCf^pV@LWOMT>qp|1O72$BX=6tqxkN8oNu(P3lNZZnqYYB#L=#sgddHHHP ze#=~4I2hHz9^R`X=hOr5Y+x!?C(*F=kWB!eP+!8^t0(9W%9}@7*Lp@9nWZY>ezw@L zSzd4!?{_(T=Dhh>n(JK|NZr)+6()FDM)Y}6&oo5$rI=*Cg=DXMltj>7q zeiiY;mQE+3rLiQ~6BEN#!JhY38-E)_PKZv2o(q*uX;`1$1Ht>NS<<*5zr?LJRi3hg%flskZQxj|N$*AQouvzrmc{cWl3CwR^`uA6jo+Gc; z6K5=0k^#+m&l@v9#Z{{Z`FUPg(<;C$B7UQm8jI!OBi>-}Yq>3)))&~CC~fu%H=dLN zV(Ilh_9Dcdc1tv}L~W1L0|63YL+Z>XrfdpYB7MQUtLfYcOn$LbmHc%`wTtnVaRiPH zpAN-f9$JyNG>HZ1YSS3|WiDoPuC&YioM;w*7+w|UuN%i0%#ln(rkLbwh@6&dzUTO| z?@O}50s3idXL9M=n`e}3H%#?0dHn^k5`hn5PX67f1TjmqBphV+(f>+;1R<~54|fk2 zB%nLZ9)QseyANZcDEi2?KhwX7=H738+fRN1b{o;4r5?LVO$9S3b_Fw7c(Ju0V`MnH zO%O3e&j({$`UyG1q$U!mASlcT4jEf}+GKr89~&qQF_`1dZq3}IcFc}mOB3TbFEt@l znxn4RafsIsx|7REXF@h)Xriyddy9Ad^FBUZ4gq$Hu$VoHyPP z>_;^jA9X4`V_#r=I@NMHk9F+TtXbhJrkMF{32dYNx(>k(if@M>wW9RD5(kj6N;;JX zAW-3S2bwM&AZH;zhFm8A*)$=M$cFbIR#0`a*Rn%eFg%NoY<90zSyMux4`MI69&(U$ zmM^f2=#P#Z>QMt1{rZhaJ^m$K1eespAKpX?V|Lt)Ds^X+hC019g>vW&UWct(LTZ3H zJ^M|4V5s@I{3aLsne-2LlV5Cv@j<-JmG5)7 z*zl;A4wswIV8sU9O)0fWdZ|)g;X0>vXPu9yJ3yR))hz|d2>j)E)LHZRDedK|mF5rfq&;PR2K0xpj-B*1Vig_-UN>9qmn?J9MFpXOHOL!a3pA2DX^W!liW_g_ExQ~Ch_ ziNyR!)CPTDz}kFSQ@#D1|%tZ3U&a z8!1Ey6R4Dialm#{a*p5g+jh7ECfuII##!~N>p65Py)_RjjkznpAWyTwY5u@rkJazJ zx6a(-un7-=RFuXObOsG84F7Ov)7U{tOyG3?l( zt_29B`}C!2*~m%p%{S_5ug*PBiKYO(AN?zl&Q&MM8<=_x4}JGnY;so=;ruCLt6Exk ziVb=~=}CF^x|n-H?CTvyc=lTp`H);^>sE9$T9Swi8g!;+ZciTC>;A&ADGQ#Es64!R z7fU-^R%6<fVbzqc85DLNXw%8N(O-=>e{VucO+f*c)rJ}3 zbz3YT1?I@`bHcOP;)h-Pf3oCiTl9WdQ|xS*rEz>qrxp*t`hKeo`Zb%mj%pZ0&M0Df z<}4;p>3-H*n3YP#-!3R!ghmjGAS<=iu~2A7f^ZqgliASD2Y)h6)GUj-A&mlbBxD`x zp&rdwQtWmOe!zlHOIHSQ4xbFA?#D~Ltd3q9U9FHlLe6jWWbQ(u$y?M5=Scy?xBzeIpdj{PVr3(8w>HH3LM60ca&{%Krtrge} z>K|%j0@FBC=*P3gS(bVtQov}cc-bzGTQL|xh5N$Wfgo@dy)=>!OTutHgAin9?<%@M=M)KoaC*p8pULdEhp`Y*vJxZ_AMU~SVa?+jH}}1)M#{|_)UQ- zLF^iZ%{Cj0dZ!I!O;u}qLkgKo<)!WNODhK76G=DHx9}tSRnx&-wL*!@?;$hc<-CF3 zCh=zuj;(u>PL<^KWA=``wyI>}SB#8#L3#0wn9Fzx%In=3M&x?2Kdo}vzBDtAEkYmV zlDV=uR>tt6xh6qRZt>9cKN`U{Yr=Sw05iW4!;MB37qS5CkI-5Yf8Rx(40kBg;pNuL zihlIn_3B|{7~IUjW>9}#7R35$U%|`JANOoH8w8z|9HO^jg5f|%d;=NKTnAbtRssxC zzj+IDzW5@dHozwX#HDS>e#{&D1_F%>KqZ1*MywEo^^ zSb@naiW=vK^M77BMx8lwVv8RR9g~M@_JtHhCo8u%s~vZS!`~+}Vj7qi-v{pza@LBG zkBuu6ykkRjz(Bk5Hstyoy40eK4WqLyT^#CL_tca*PYqia9{J>!q5=!!eqw71y+Qv2 zif#<*F~!{S9@I#VEaxSN?Vkc|@?)p=uPgun`NfR;;pbbZH365kj-KlEyzYrM@EbTy zwv;|%us_(u9SkNzkJWKZRWDrifsLXvYr`0@1}q3)t*+Hb@a_W!XZ#Z;2s+<```%5t z{s)7E88mM43V81JOA%pNBl0*8Y!UVpv$40FQz|Bj2MZ z2%F<&U}qT$IIAL85RA4$+k}p~uWex}jlzDLC|3zp%yJl*{LK{&GnTvWz`~QfZbnHc#%H>l{C#Xf@|6Ifny*QTg^{LZL;E-Or9|e zm=;YgUnjZRK0zaw(ml_@ed!te-ZCToS~}vFDU8s>Q_*8(Qy4iOo0Xs@z9pudI-e$A zmf^u7MFs$J>g-7>Nm8eUY2Erxt?V~%0rr#S2r9l$CE{y^c<6w60blkP5kw{iGzCI( z3xCpoBMa7@~uYzfmx+7t&_CQKZ=gmZdg%*ULu`9scV0%(=tNw2(^U0opG|Dp=p6Tle zSA6m~(H=a=>`MC!v3ohZtV4jtIY7k`AT9kI^XFN;q61xWP&v)G*gJ9H#pnJxsPdBQ z95WprkAk2?I~c;exIIria#S(R)g{jo6stQ8ZpgLT6XwbnXrvnAD--O zDS^O4$XM@d^{3V^7%DuZt##*4raRe0BD5W=7Hw#8Xa{ZX-opdl;oT*NWO`6wq}-b5 z=$bQGI!?n%zw*Ng;79SSR5DpN9;zxhMUgT=LyI!(LGO0M`P)tUpkmj|p|QMUE`Q6v z49cZdz>v-Aj?%M)I~4i$Gm;T1Wl9=Lg2Te3M!vS{WGBGTZNx{tf|76P}@%&m)FjOW>VF_U<;_F z#1y7!onf2~WuK&iuV9BA3u^=_$?xLIK*XnEg5n!BFozFDb&2yhHl@6vd=qa+@V-f=)Y89}$V;qe4=mz`)a&VnkYtrfP_YjnW2+YS`TsEEFxFZgu5b%hl2k;h758>_w7+QL=21q5s|z zr&lXCY!kkTGc*-Ft7OB^^o`R($rdww4IMnA&HsRBadDzTe; zU)A8MSM;%})fG|T7A;h)Oz7^4<)p9^z@DA#nYsBZku|RO`U!^l>v|=>D?VTzzZ(V) zv@AM#R+z?mSlNGMf0`@Ya9DcmcqT581mv)E^=iu^_T}eYHy05(Mg&|TQc3WW`BB-m z=~L1liv#D$AJ7h|J7XG%S)cIV@e;sR>o-l{z)e1`56t$7wto6ep8n?+i~5W|S`S_9 zDX`Cn%I=|eb&X&;^jkt;vnbCi&$IuC%~kaEk{N*$bncI#L3Z>@<}D=67>hOW@2PKb z@tIbz2H~xTwz&aJ=`LIuTFiIEeLWf8j$c6D52Zk~y3OqIiFx0oe-}@75Ka>5Q>61j zj_G~mp86^uSV=|_59+K%$416>>3jUlEAX(`aE5_=i3{UXk$;Am%l&OgAFKqJ?CCZT zRDBG#DH*rZHN#6)F{bXYXYg6i`7&zI=tdXUO9G)LOHp)g+C^rE;wABOl{$%eIw!De z_8jPzxDzZ|{?Q}78lbL`0;bZP(kc8#v^|d39T+h%Cb|%WYlCE+@Lg-%F`<}rmOO|F z>nb9{q6cm~&nD(>445wFq)0B<64ILXq%hNXv;@2|XFkgUi^e(CxAKd*^9|g!05jryxtg5`88-=w4zy+H^)8v6b{%>lBpa4u8+40auXU0F zj9-x#Z|}}n4o`>jUJ&;)PIIRGKnKHvV1t;p2VX^kwA<#l%*%=_%N7c9>sJSSN5Lzp z3-bR#D^V|~EF3(B@6bwv@L$Z`@Q9{C>nP&vY0!AlS`0+eU4~zv2lQU~S$fE{L%?(e zVq)-*QdKcK71p@nFpFMNiH~4Gn3tlTk!|$Bs%-X+zE}=6Ujn}2EALkYMXK_q9$|IY zRt3#s^(OURkNxpHY?rQ_vJPSm1soAyE}jf-_rVMM8^LQ@h$$+LDZgziEIn~v*r2w| z(IdYs1w7olRaM5FH7t32v_>tkX6e4cN^^^w*tQpjd@hIif>3ny2gZpX?V=0*{TG6x z@0Y_PRoXFI$!BmXpNQaMTV7^!-J}1`Ru}!^jJZHAId%`aW9bTPW>^!+Z@QCJ8teK9 z{KRZFmP($IpEu?x`l|dr!J%|CQ?~{nT*iXD0kJGLtqW}s$$t&#t3q?Z#%UeY4DzK1 z<>l~xh84`C*n>eEsdSx=X7+4T?H)kRYlz?^=!Cp$mFr6;xv+a$c^iML;X7T8jpPk( z!@8>WQ+uJ+LPuG?^-Ey_o16nSb{Mck>JZx^^c9PLY?@(fTOIIpn}{sw zHgh$Sn5}!7cFDC989;vlP*kHQN@`(Fj(rRc^9P;&x{>%>RiDG3hQQTg%DJZcY+-d2 zQld+3!96alIaG(bUh&Tm=1L*H&Z^>5BsCEwe`Q%OsVzmhx;@C9k=%gY%~6x%={l@D z9$#=2G-~+1pV7{{b6wk?rVOkL&TvjB=U;x8n%2EbO%vJS+Mn>46%Fn=Z|vV?pOeYP zL7!w6T0s&3u3+oN_&B;7PCMc`7FVFSbWw$`)P3JIf!)j|myvcsw7u%<@87y}6p<9L zM75vs7w!wFM=}I5M)+G~r+FQfZ=Lie2>H!r6c6d=n?E#graJsn`MmjRa={=Q+rf5E zw4MOBC2z4h0U1_<-+@BX8X6s@&$#=S2FsA#q{}=mCxF`b9xMy*VRpECr)2_g!OHKp z@SD7`AJ1p&a-urp=ua$@CgZ1ppT-zX0mIZDh9k3ko4OWin7~YKNsAaz##DgE&?D#~ zN3Jqs|Nr?&%G&n&L%R00D0)KoHn8;FfELIFFO$Hno7NkYn>nj(m$l)8&6i=2$+-9Z zL5>e_9{%w$z@>iBF8*o6*l?^GY($CuUvMTC^}2)b)!HrKVfn+idqP#r_$s2j)LkPf zn&%BK4(C5PDN|SWHf+ud96Ge(^1owkjm^kN#{BXV$8@i|uJp_lZt&#SS*Czy=NU1l z?3}Q*OnPMXZ4gz@QN$>SZL#FddQQSYso{F@B{f`hw0{0nu0Y($Yq}={2F&@yU6Rh&ukWNLkiS?C>d#@Mde$?n zYXbhpQZ=9Lc+!J(dgF(lC?u>o%u=Mw^nwebo*-C#FK{qRxD~_#x|IFG0XUrvY<$`T z7B5d=7pyQIG93oInWZX_DW}Fm(S{Vs5~j?>?-f?$@)p}asPsKr6UciD5Kv2iZdmyT zjLE@`Uw#^}4?=bKCG9ap^tas;^!c`Dz4lis_By%V3CAw93b3;R``E$57N>n}Kz*e* z8LnCG`yCOBE0`DG$<#F&+HolXQ?B_6*t5u3;l zS)QdVeX`fi~+dpvhia$6ET%%Uoo$%U_+3P}9KRV|jJreQY!FM6{W@*T4H z05B3vQtsMZx-#c5Rbnqatr$+=;(`HBT4pX#0ysH+THa6y#9Hkt^jaJ)Vozim21F4A&75U*E5R5DBphVk8A5 zv2+OuVh(I2yT0I)`=~QSh*W@93!--q0AUNDtLXgy0W6uD|37UIUdOaS+7vyp)ZLz8 z=we8&QlYxA`Vh1gRID+hEIImt62_+S6U2DxaFd^rW30|Tt{rx;2d#}fJ><@ z=h*KsPI$R$n@VyT1`$7C-Qp)fNdfR9d~5U+^j0BQpo%M8SyNG0t7ei3vZ}H93fBrm z1oNY}2vfl&P1Y^`tfwaCiuCxFnxI|~kO`1r4gVrYS8pt76gWWTePc|ezTxL(D}9=I z`D5PS4sx_NQ#n4749;{>bn%p+=&K+-5y*SPY+#JtSeNEc@E<)O-1%h1E1LlyPaf0* zGvZbCV(^F9&JaGPL*%QPsX>#a@+=lHrqk3QZ}0O4F?v8`Dhe3lpq|gf(nsZ3sksk_ zH{qtDyN;rI`YzBY<~{|Pku<>1N0)_H9-?Es!-qJ#(EWV_wlu61LJlBPihYN?=L^B@ z$1%#xJPhL>TZ-<=ZJU_P}3J5$uFfgtpOTg;ejIi!v7b>^w~QY(>ZpgmYpob z8|I7@p8zbTl#Gua#7l1thR9d+^eh<6s9~0$IB|{~C5t<9b1N0LLfpv}lAO8w0)Q>( z8CnaRitwbRvE(Kn9J)k(xE;`#EVl*^V}^WTl_=m6e0WEtcXUxSiV~Y*x(=6@@43nD z@q@h`^5!GUXVM^cJ+f+G$r9|KtzACJUXb2mVcl~GfhUV!lCF6ucOY^kSmoMHC$-3- z4~+V7bPMtepd~E9cG^YOW1~>|*U97(+iP&V11cc5JHF!)TEX ze1i`ttoT@~$d(GdR8%_$<5}Io=IRr#sJ;KREZaz53J|-g9e^#I5j_QzJ<(y4;Vk&q zMCzOoM6IKz+fGx@?LI@^q!Yc({6hR0zjy|F2{z7NTx;^gFSY>{^Px!F5U$b_ZWh3C zdBnv317oU}gwS76z-03@YI2}_I~eS$#Fo?;@LdEhq4rQmKDUQF5$0%;K+^swK@(;= z{T3hJw0grpLV)lmcSih!jQVBae4V&rrr5V@@8va+;rrn-DWBU6ni*gs4)KMxdSNbn@6#@$7)QwN46+~_7Ri09H4g3s(2e!r*B8iF;aJ2DcW|rP>dDDv z+@1X)SyBoOq30MI2u_cnQeY(Cgt}j6k~d$`3tIfqWz;SNM8fD<(z`kmYr9A`GJYUg zmN1LJJ@XBXzg}mmlVge9!ZtcfZjD}HU8rUpxvimB)bw^;QHH^N2RIw9G);XgzRflY z!K3|LtUIu-y*=CUDq&vf>{#op9Yg}~dQHsO1As#(j$UX{#=LVW?qpPKDm!2h?_U7t z+Jk{Fv#`phuzV#PdR=?M7TkbjM9Jje{Y2)_*D~&0RA1H5n;thY?Et;kf;Rc7{{*l* z6_GOnN*PLA!ISCj)?aN+ia{|LW1(g2K|YArag@SASk#-V3*O-z)f`87s=}LMff#4+ zHUn8wFSbs{KL(JUX2l$FZGyHQT}^#wFdo|rKSs-y_B}%DGdRj-ps%a>cvjqSbyDP4H*ehcL_T0vMsO4I(u=9d>PoNmGi9LG=SNA z>}B?S@?T_u(VeHXe)n3O*N8je9l5yBSVJEKt{%_p_QX;EuoF=WnhKo-No?SM?Q8!^ zzMT$ccqZ9m=pw#((B>^^4kV-?Pjg)w+0WR;uigVJBw*8@7#b@xV)bX~l#UYMU&yu-Gw7xmbp zF2z(*s~q|t3l4nfmYzh|!Qp_0*vPd!lgOq#Jo?cP8+eS7Kj5`I5$^zj)`vh%jl0N; z(lqnM#Ra`%hn#(D5a5r|VeQf(H9`=tT3WiKGx$GyUh3na(`^1~``%aETaIjAabTiB z`4}Z~yIxmTHJrj%*{g!=V5`efas3T^iY4aNNRRw$vH}6MYbVBszib&yp3`n1?%RRX z97{FZPw{Q%6xAWI1%~-l>E%e~$6RWX}XL^4=^VQ;C6R2qKG_kzdd ztz8GAq_%YEswNF}`n}M{xGg&7PyWL1i-$J-=NuTy15#yKn08>4C!GCW8W)6#XZLzb zYePG73P0!TPU~K4`x>!{`vYc+v8UF$E+^pQq%(Y?M-BvJYp+4y_mqXFLS?R1R&tRF zuO}vu!%eI|lg;?c89;qCsQ6*UGugfI$b|TS-JPSG!6M3f+HR5#9{~KS^MTq2)NyT- zvMr>6A6+4pSf}J!m)pXq1usOEhxW)K8F+%XBw0)qNcRMM#njdY%C;N*eIHUk_5oLJ zmMOG5|4m+6UvH}qs56KEh2C!5i+w$;Z}=(yW<=CAvZ^h}%o+x;rhD*@;}@EWldIIN z*{qj7SQdw|FepHERmgu1QvTA}ssY4{-QtfqHxNquw|M}R@gTd(ASvMO2^a<}a(|8E z^U5Z(w;4K&e7+CCjkBJRn@q+x)EfEaKbwV)T9*1S{yjB|KK*WiKZg246%{PPR^kaI0CJF9p2WFsi>YI0l()y}Y{={su`@3Rh9$H{WmNV&2 zF~KkXPWx~eEc~%7>*KyPJjdtV+YG`A7X$7T63--X>wW$zhW|C#P(yqGHV5c-ByPYA zZQiwVWxevh=mp}saPy>&_L~n%*{=tkfTlZU;5@5z&X}~;?B$~@*R2Ikj=CDcbXgz2(PgKNzVxK1uEf?K6Z4Dum_xkD~x>YHPt0xixHl| zrZ6R7aqrWuh$Mm=#9C+Lt*BQ@>41fBas zc6(cUm3J!3bS3FSz%<}`5I1NCBlny-BW?yL=>CfOa`}7t;fD(?cxFv|NpC}xkX|Ab zub(8|rG-B;o}|=em!WZ*5m0nhMQ_Q&27NB{t|GT#QQ(I?F7_VkY>{(Kr{H08E5ub9 zE=8-JyB@N~JOQ-Diz`+d8gHrLe-=s?^dQB;LvSoEYBw)aUmUIjyjF}2EhHch3TW&h zBrE(WSSfHERkwQc(BH&3XqU7Gnv&%cZJNHo=4SaPD>);D|5e}dl3s@;OI~Kf2FY*} zv&RsGd`r)TCq9u^GqULZ?qZ8(FTKs?WH0I(7>(krEHh zy4NWJ^ryAELZIV+V2h#;PZ;KiKXhk0Gj8R-^ElO<{48259$;^NSZF=O>aAV%79Mph zL8z@63&XV%EAod3%*6P6Hd77g(5CaZpux=7gW5L%;r_9!c^n`A=+PP@dYat-gp>Xa zY2kRBuGD`;RR{w-TWEwC z@t2jDs1Dq1sYOp0(B6(&Z1QvWC*Vaf>n0kZF!Eo*MD%wxx(W_m%_=~;0#LtjXWXBpe zgTY{TZ78Au23yY=Hn7{AseRty?l*?k`GlBdaQg_ck+&Aax6#LLTgX6~Wn`2qDxx!v znz9HFOab*4y`!z`szUg~g?sdT1wR;_V$PR##ny(FG;IK(irk}>?So-l7{Kjg_uDur zRY*NE<%Yonbn>=;Bj2J49bRZ>VnMP9<|X`*kC8cIt_+5{iBx=sVVf+oy9VwOxL^t- zSGUn~&JR8O*uCa78E+VDIFhnp9?J&0oP!?Ri2@&rxPsjDvua}?*LE}Fl=I)?g;}A* zJ(O9xi?>#u2dDuhA#?!sXB7zBokv`7f*H*VrZOd4)LZmXva% zpnN0*Lq2Lm`+K`77FO=Mf_O5J2{`M%iCNzS?}~J958#oqR6x8yV5cGcfl{oAgtmy56&C zn0r5g4$cY|t5)=%WG#4|1b}3xlhv<&kk5UhG?f0G*ACrs5%25)M1964P)>q{e@12` zg2af3*B;}x@79CEdQ`M)toFwV*T9r4)tT|JP`FH;p(wPyWs4uh*iJ5U5F^r*jFNP@ zHR_ZZUHcqMNW=s{yxbFvDB)Cj_g^a`J(HS4j)lcJORf}>mCQ4Dh20`5J|M#-`A?ry zb3r&L7T88YoBcm*MCM1=1QySkLxcE5%l>e1$^*He_GGpN?=stAuY}*r={a9e|27z~ z@*8@(#K@Se?MJHVN2pj=bZ9wAxFF z?4E|Cw@AzACO>lO0%@iAQw4NS=z(L3yH85XUOP`u;Y(*S{Z#l2bxNeQ00d}7QfmEG z)qi8gx3#rZWlF$BouR^=p8WQXhKEX-^~Ho%n>WBgWz9QkTdYKsg4nj3UH1KShh1Qa zJ~7?2j|#N>I6KYp3%sc6IkF$8W|(UZs&&38yZQBX1Ac=(v*GPfCh=p)s}7x^&)ek{ zdzJ%?zYO03=BG#k>GP|Ivkiqm26Zt>%}Guy@gqcCdeN~*u)KIj>f zbW4*9+g5?E2UojcL64{dDbNnMAGCh{%F0sFU+VCi9pUmHKq4PZszc%9#v!9A)6VK= zi?G3Xm!QjI3-vOtQlov|A`?AGwBw_(lfmS{;$Y}6-9&PiV!jyE!(>{L?LE?WY@qDo zxB+1|xu5$;9t*}C2^uoL3W}e5OuV^6H(A6Xd$f}a`h z*>2;0Lnm~uO&9jV!z;swgdO&-&*|yrc8OKm|Q7zWT(qJ`V~8w;+{rdKq`Lu2XX+e zWL9T@I+1F$?j8O~djq(Zf``)?AeuhPahp1$?g}gn?_u%5{&Kl(9bJ!&R=^2SDIAi_ zSe4~!Vp)rQ+tV)h@f(;P0Mr+Xn18YO^2>yd&bQ3dTmq#ElQ4m0le(ARw+5Iy%sn%G z0iti4ut$R(vS5H92)_(KyQAf6rI&;e11C9p`2ifKF5n;X0PeggG=+t(MvsJ#^nlRnPO@i23pa#$8N`lS^tN!Hw|m*+}pl)>uzaFEv;0k6RCAbEoxM%aY(Xux3$y( zvz00$m8huHG0udLWbKL;5inJxh-g+71rab%L{yS2l}W~^3}KK&nF0wIGOUo5tl_K6&DX8@XJ+uwFe}eZ+qNjiY9}V6kpV4`T0?=pt z2Lg+pFDc$4CYrMESU$d2o{3IJsC7JbhL(_HBhFx(z*QIj)F(58z65pOq~2~GD(qL6 z_6^EjjMUcg6AW`;R#zajQd7x@{Q|zE6NkdG$x7#&$KIrQ*e-B*A?PK+3+PN#pW#D| zE=cwz`XnAS8Z!&bW=~EHJbX`<1$GX?5Ci*4ly1`~urWuG?Sr7pnz1!8^X^3nqZ8hX~sq8f-y&2)HfXS=-*m_MH)$O*!N zPmu=UNxByI5zi2E7s2Mkhsd_cryBtx*57`^HkPw)AG+X`JMuZ1acU2P9k{8!1W-pp z-ODusA7)$gD#s?-&<0{JmBmeJC(1|4t_Wqt8gS`VG4AHX#f?l zH!z6aSA`{t#a;&ev1{mN&Mcwk-+m&)w=W`IhijD92-ayLFYP;3&GMuNtL|d=GQKHN zlJBp7m4}|x67>9tk;z1(DZ2wH5d4QERF;x!IYl+GFGZ2SK=Bd4qk~kr6|*5x*YfA+GxSv;eHI)mPR>+JVLKyqm0U*1 z-Bm=yTa=pgG80T@zhw2M2*P6~BKT)^!|A|?-GbPZ3$A}p*R--HD^-zNKuW`SCj}DT z3`UuuDX3EG(m+>wbF`z*Eb4+`GhLVMU#%@K)R*^k{OT5J1A3|&aIij!$ES_LT4S$h zX-e|7%?jXEn|QWWKz%Y1ZnQZ4E6dqH67qYHY~(&ID=0VOajl>)DPG)_1R#n0tntd?qo-LN&a-1mH(Y3V=EgxY|1@D45#TPrR76%44 z8tO+f>MO%jp5ZSgbv+dlV8S*A|9m(lOBHFjSO8*G+#SDnh?GzU`m`#zVSYr*|Uu)ZGa~7#S;4>5kX%7?5MtIQl(BP{mge%Qy0B`D5^DH z*6W+Xa&$kn^ms*@)Ic>de+u?fb*<#A?6fo~l-j!4bFIUuEo#jqJ`PgVTHoWNUm{?& zceDUpbD-;XjOlx8yl~Cbm{|(e0q9$JjyflZ`xU+VrGj7K?|5w)m%?8FFOI;IFNwcm zfD~!-T8%LZ82A86#J!>~C0|#5cLiiXYVoh+;(@9X3p9<7m$llJX0QGg0KPjI&JjFw zGfr6IZ-&`BWzejuG1%Nj0w0TzOLB_%GCwv zm+)eNDS?=VDl40O+^eVH#p!8Q+K$puYX;zyXBQk91;UdDm9S)**!M5cOq6s{v*x#? zxFda^W|X`KcvAHYY8x;9cVA5-*m6uq>ORZ&e?q$~RxOvRmaqsV!R%foUCrIc!|Mf5 z1TJ{%zzF`217j(0$jF2w$J6+PdIc!@RbdgfP~q+I`!sh(o1YO!2Vi*^-t-0F=i=p&sxukaQNL1`4$YQcvbld9X{ro-ff3UP$@w*oxDY|j=rvsBwCks%OCs}}y zcQv_BdN9XA#r$9tmQT|16VSf0I5`$~)3v4j?%2O9Xqd3?7lXhzh-{+^X#nl7OGK3T%LFkRu<4FjabJ3}8!@Jj*7w=V9aApzGQPi2A)7|A$2Ti*pOz zjQi>hGvru-W+Sgl0LG3O1^8~?OGbkq9N9p{mr%`j&&1yYXQ$|~BR+z@LASd;`+~j+ zhFv|vE-s@W$T-|2)!G@S!))Ts2&?g^mQy$~tJGwj4h7%WHY4~(ENZoSI z)Re*rnmVY+;E6mPPPDj0NB0iY_a~tPfGQUo z*1xf=Tcs)VQ=J&9&E?Fe#^h2H`CulXf(~?X(JvU-UB4o#&gXo#q%sH~1cUH=ESZ?X zC#(nni!jlnJp6{e&FA}w2Epqq2*gOC3-uS|M7-AUbzREJrL&t;8ol`Z3k*03i*Mf6@%_^v%rZ-} zJPfIqe`VY~Fh}XEJNVm9?r@B+Z9w7*7*czOHx@;JrS>Z1{)g^GcKGFj2h}#Zxh0$W zrl2pk0rs-|nx)?epC;F=MHtKIgQMu$Nys&-fKre@+G*x?TYXKKY_bJgc$-#MBfY|G zv{MpKrlXII?uS-|rHJhQnuTS$cU#@RQRc@5T7^tBBJ$SpsT_I?5TE;R?#{qNT^0~Q zp_!y~Ab@=0ZhZI9Z`o8lrbJFXmEHP(QK+^sX5Akei4w6+cqB*Q%|#aG&$J@#7%^%X zkFusx$4^;CR$PUFXLe1j(+zy8X%N5-WyGaoY-XSP@0zH+Rr%} z?Eh&DKz0y2iA3rR_S{z8gSpcY{D?1KlIAEe41R?^@gFP`Y`Y3yX1ST}Gf_LbR-gfW zjmQsR&j50Ot_-u>)132Viv{+M;SF@H8nnzE)w4(DR z>2jjUx~=P-O=OU(+P(qwVa@P2j3oN;QV1{<%htnyHf%cZIb!=KyhAPkL@NJ4s(g*9 zuxCKG&>zs~lDMy?6SeMnreN$Q8c9sjx(n0r9`o0{-c{-xo~>{aA}KGrVz6q^X-Wi& z(ag~A7QBh?r1I=wj8-xEG=11~=r}dd9WttgY9u@}sizWF%hCTh%gGAy zCHfOhGcx-iw#mizv<2wJ$6$q$D~mO2c`@_1D2P6H#}yv0guz%QD#+( z95AcaqkWeG$zQ3(wV=KEQPUeWO)&J%KBCb0Eg*$b#Nvpd&a>0~+mRaMa;I;PpB=-) zdgXo9UiI=toMq@wAglmmB}et~pF=I8R9!a}6JS40%razx5;&0Y(SO<+KP>hhrEOq& z%3is$(M6hHM|UsEE)6xy7+B7>>1u>l&zioV;ctBO<-vW(Z9z(^?OscoS>Tc#y2rb7 zSt$Ixratxxr*Bo?I@yUMX8ZJ~WX8$a0!MwHpyKEeLA6D6_QVc&80=5RzindhP~n9m zwmJ}yl(~feupWu%`DWB2$M3%7)51{&M7^m(h7ZKhH>ntUj{vghR?NXm6OACx?tw^i;+Q{{DaRuwPD~)44Ym^LnH~H};cqd&0Xv&Y^){=~D{ZnOs^wUW7 zwp94@SlKTN3JN^z?@5 zO~uWAws*5B0L#5~381T>Ok^9srlY!qu#3Lp_xbW&b?6uHWwul=SdBmSH8k;g6C{-| zlMmn>;0_1_vSa|2jX&j2MMMCLk|5g28^_2%Z=!#)?0bfZq^Q=wvh@IK2?k)>0BP~8 zCQemjK1{1l^T2||R5fDo0YQ*@Qw~i1QwDg77vzAS=w1xZ<*^nhh`*UdudN_HPqP62 zTuw*X>J?5x=x(>K+g2Q8480_NO!r4hs$;pa=vcb0Z@FQ}GQ7sl>0`*c$A_Xpl=~X5_dpP46no(e8|Cf zq*z{obw9E*vZLxW&tGnq=ly7|J#4+KjKv;vu;NwNX{nx4l=L@GUx z|EQXKb)+{C`%eAKfALo6b0ZrRc>vtiNv^Vc!3DBjhHAFq&7j|q=Z78(5~KMFs@4^| zn}J@bB@heZf{eN#^)6n8`25JAkB-C2Mw{t4>wxRR*@jy1@>#n z2pFvL?~Q78kM!(bW(xrO7pcmK;##WMJ?mpE%X7W~0K(>z5B_3~O5xo#)*gl@x51Dw z0M8bHED?~6*F3njosr5!fO#XuFbznch;L%RN@l<-9VwJK0+3dFrlqPU@;P)K`M(HO z0zk0J?vKised1vE=OSJq=EAUAlJ)#Z1+5nW?Z`oFK z`52lvx@ZaWIZvD5UI?@xKc6UyI=cm$N8F@hm){GH{tLcEg2#cbJ^aQ;BWQ&tYOi|Y z`yxA_hvfE3v+V9kgg~Wj2BNHK+{8E!%g~ z;awi%#9sD}WMlS!Nmr8$ol8u$H914tB77y;>pEHDAlfXJ9*=lExrNmLLRY|v-M#Y# zyVtq9{m+ya`8L~(`_D$VLnW{8$BYI(iZ=j$Ov%&maiL(R=$*n()oj%BpUkbU#jjkf zs*k?|@ms)}9Rvr64$k8#eBdngYqa)oQy_bMp!7YY8v-DLZ|Pt?F*c9r3QpDqbRUqC z!dG+7jbzN9Xu;d`Gvp?nID=K+|9&dD;FjIS=Wfgva}S zX&8CGRb*X1^YQf=HBjf9DKm=C{{6c@|5kk??WnJk;&?Zr?cyw-uE*|b3kSNToFcT! zM2)wdCk~mG+w#q`1v_+>b+AAZGD*4;3W8F}HV(dxTMU*m*~u1XE%Ba#-2HsM1uv%l zl^g_x#<=C~L}{;YJe=@6)S+yaINYExy4H{l73hB={zTUc^MX{519)!T*NFQsm&5RK zH?8eDt{#7m=+b^_P@`Fzv(&qM4!^q}T86lPfMO-*(x`IcEMNLP6bU6kbwTQ%?9Kl7 zd#e!kVwCRt6hMCyn2J>LEK^aca%NO7F)!*GvQBjOO>y^|N?<_^5v{s8(~y0~)-;`p z3q)VYS1XLdBtgBQ%QG@@$S3X+8AVN3Z0p^~DiWEzJqgvqL0BF{FNL#Z%@GYjtQ3$DrjpF54Dqcj2 z=s$TicpO$mScIQfRu6S$Or7^l;ypldKKdDKMMa`*_gC5ehFKRR&s*2Uw|1_=_iFrp zRSNkX`GjkQ>jNbPmI~So?=}#Y{+nEM1JXX(0`(+f^dzN+o3K%y>;9Chug`@tH+yE2 zr*LiGaWzZ-MtM8CtaaQ=g`XqtS%5VQZZKI)hV`EQ1z4C%U|XOd3pCE|GL_S(D*;9- zb5T|~wc|TpsQW{8LyrgBBu>G=e}*Un#{aFB$OYhR06i?^>-t0cgop9fDNqXpM0)G% z#CdY44yxG)tgRuU=oZSYos5hoYHuVFkXu~P=LN!8_F8teE*|bD|B24dv!bU0eO3(BAsFI2Ki=ZjNC%DT}CU+)uoljP7yRQ zE5Rjeg4UgDqt60xqOqg?M0{*)%sAO;wtAyEQx~Rk=Q@E7Ob+r#Gw$5-an{Q2C;ScR zdysP;YoxxkbgL6y%NzJpJnv*Hy8FI2LRYh?CycG|=WKP1^b*&j#Ogo8@EQKnSNxV0 zd82x;T9u_F(aW4IO$e$myR!TemFKdd>)E090U!5Yq>~g);!8I=qg{i#enX`k_+F?$ z2(#V5dqQOyzn&Y6q=Nc{5w9zG27Xw|C>QCJd5YV zClH(HCxWd$YdMdWX?jb|f(*$BU8$-nQh;bCoB};}yG%v6gtejA!3Yd1A`_mCj4@h$!nGzA0F@!jR6G zh`t)a-G`_+qq4(7*DoN-0PU;AVhCLwF*qPOWY;-9s*I3iK9jv$zH%V3{Y#HBhnap* zTgNC7GBaYv-LaP$xNprNa*@y9o!l>_k~6yO;c|$dRnn!a3ddOoai-xiZ8%xve^vrz z=&&CO`=$$@B>h7E=melF>gOjdiFM=w?hiB-sCpAUVS@Bit%S!rZ%}=hgcbSk<{%F< zzHc@*yZ;p{07R_!cIQILl>ykF?w{0a!N+WUp69`BkM{j^l{Cv%WL3T)!G_ys&DYfNIa&Ss6<{pt}0vFy9aW^|C5K^7c0V zpti4BKXXvL7{+%CVf#g_%{s(B^Qg)13u)YQ$hC^2P0Nc86W|@zSN8W{YrHGdFp6kT7KN={W!spe`|qsqY^1j}McU!Z%viB(|BLBmwe?st9R z7QVE?6~^%>NB^-Aaz6_YKzYIGeDWm7<5*e6+@wEDYxdly$3AL`G|1m~dz)|SKWT`9 zn;UGqA-JQ8lCzzeaRbf~6!+40bFzQv;jm|MIt3vVcL-31v6ae(`^?aMye%`r% z#R2r*zZ!LZ!m1VKHQkFqx-8>taYV!h!K}gNU~zc}35*=!#o2@(ooq~X8dEiy$ZoXL z3^1_cWQmmJaUoi7Om>!>r`(ZmsuT_M^v#})l_T5WM%jt?ON8%!FFQ_^F!W76nb1yY zh@f8(^Ej6(E;GBrmXLC+NZ_O#81Dsxu#dAR#8(;<8BV^ppu1QR6*=UyR{)0M&za&) z+;5Dzn1-XXkjp6Z)gQ|1=q}z#)EoU4o|Q-Y z^Hwdw?is#LNZAC>9zqBHbe;pFjym9ydnI63_3gd}e07bN#9h1N#P14vu&kNp zz`+2^eJsvP61y0z)79x{IQ2F9_gv~0I(9h32=3|+Py}%Kf;sQ9!gCZbSIMA zA&g zK%EeFNgUReBK}Ql1v)xU^#lw0j=ixDnH(tSvpf}EzUjY1)xfA2ECED>V{@?I z$lLybbPL+<`KOVkb34P^y7`>Rv-X%PA#GS)kN==H1Q#WIl#I} zI%M@Sv9RGkBRt~g)-crH@`i*rYI`zof%&s4Nok75w6?)`Jfn576QOY^ljvEtZa0>- z-KX?xiH3eKZ7NzZ!Zg&NABX?#C9R4{ByT{=Iq^v^n?3`waGPwyzV8#^)+o(6y6c&a z9l>w*cK7sc22%IZ9r+Ar99lz9oI)=5pe?%fKq&d{OGsH`4A-F^s{?M%;4v2CZ}5UH zEaq<9M(tic&Z4GjC%Y%(PO8)KAk(kXOa!zte&#?;)B$lL73n=!Uo!gKmAra324C>Y zVUymN3jZpbU@`usF;!vB=3ty9TL)ej>uoBeFWjtqpEu~U3?xdnShh){pl5j8W;@IT zFswaVzvfy-S(<$!mSQRU46PHa7w|x_@Ct5+L3(MKuzZWpLxoLvGRQt6SjQu$4H`b? zoMkA8%j&uMyW5sV$b7B6OAdb2WGG**Qq-Aci(`D3Izi-Qtc**gN^S6ECV= zJ%maF!z-Z-J{b=^lvOkuHc1W#2C2S)Vm0j<2_9prn@=~mduELvJq|>tEDE1ia8@5S zWndKyfWQ(<9mIT@HRI<(f9D24iW>qS=@eEkS0Ov&IU_VoIZwWV@V^P$;3bevD=AKM zCxfTJktw6P43c4qo6Ubd<_qb`kx^l75TV7AEuO13hgT(1;mH^eHGqg_O*X01e_SYr3Hz+o|2*tRet-Jo^d@OBMea0WzevaliqqwC#}-E2Z1e zuAKNV5GzdZZim|70*wY;{{<6`Xv$JMjn~Qi)^D3W*@N#+65cmhcIj8{wRX?iyNmw2 zCE>AvcQ;Z%PVKeN*xL1&2p#6rS@Fy&Y72FsJD5I?q*C-UC(Iq}Eb(_U-r4M0Aj4WW4etx0+TAi`d{z+dvl zi#z$XMHq#5c(jS`Ut8#nqe!g1mX8gN3D)QM_=sKsxH%x*r}flTu{YT#zW2J+9IK_S z15d3fQQRa;QJJ=ye94`%(^}E@lFdFIpl)G%*3;An4I)1ex5g|Q{st=4heZsfwoYhm z9GR_1;ji1&`ShY;%H5PTe#iG1@Z=1`&ycG;j;UQLi{dfyr4fVZ=+cF{4Udigv7No* z06oN>@D-B8WNa&rPB#MjBmH-SZ2FgjQ`PCu$@xHv8Qm2Qp0^ih+@*}ud#RHn?$15d zM?;RD=f^f>w(T=;uIV2=$<`ZAMZ@hYmJ#de9}YKWaKF86%?S$E{+566NR+*Y0XG5V zlInh4IBbho+(Dc`^Q=4LMa@Q^+{yk>%h)QHrDNl%LXGWQ2RrAP{IyfE(z0zd;E^29 z@a!Uk_2|+G=Bd3$Iqni{F~X`Wk?_t#cF8lM5OQ2m4H`c}`z_~%#c8B%l}c&Ecc2et zI~=R2dQ=151Yqh0W-#HrY-hk))oNZBH!+Ia6{IPI{gmck)q0gb z*wJM9Kdw&U53ph-?E!rwM4%_s#B?@-d-{sO!QU11CNP{$Jc%(X9&hd(ty!moHs z(OcTmn64rG=O)y(Lh9&d)AjF2d3&T@O6Q~U$#vpanH+0wU!)H=4k%CArlWu~UY8v) z&wdAaV=t?bZG>&aBZh;oYF2RN=RZ0gxcYCld4(Hd zKjtvN-U+4+;Dfp9^^#R^)-F@B zXoE1v@@%=}PB!`Y16Z%VXc@_*u2x)zyM9%taI7=+6AcAWhSG5nKTEv!>5j7RwIr4p zpfeEuqx6)1w|%b&ZtE9KMhx(>>$w6FP@krm8s!M_NzFt)tRzCHbuaZ> zZ^^G3y{RrAtJeKs2{aU@aSKh6Xjce*%?}e+RLKgXf3qNI%jh{-&?b8-laVB_K8L}} zo4JLLmjYt1W3s270IDpJE}WM96Rtzg6w^7dPYkSSckAgRsB1d;8Lx`b6Nuz7?Wugg z1D>Yo(C*db>-2&Gz`&{^nnIJ1iblpao}!pyuPk8r9HXd=*EhdqU{U${E$~a=x}URF z@=a_oL#p;8f5rFuNY@KrO#$c&D$4pWq7Mr#YS@NeAjfOU%~kmuM8PMbI~ z&ULVX4TJH(2`~!)O^^Fi4-k1&OTc*HISkwYjhBpZIAqJn%!vmqu7sdPvNSfgc*NZA zr7<{T(2&u}))y`6`BuklS`6zLR3FJqJ{lDe(=ry(!YS}wd4E!_<7 zAV83Ore;c&i;5W;?PD}^FK3+weGK-c^l-FYP+s;ecC_eI;@IHz;_rK^AKYOlK;jL` zZkn@6dW`Lxfqnagz8G0c3-g2W{R~GKtX{+TeKK3$T4$!m)3r+jhjTQBlU93Pl|ZT?)R3q z(()+}g{GB~VvVw^>FD;+zGj6b2X?ICT||b}Wr6wL>QtgP*3Mxx=%7sg-hox)2dcMkKQ&C4^9G808h?4fyptTu%lLxcAx z`e#RWy--|9+@^2%PiF)bIs>jMiFZ5VAH8>idkM`q{OLDe{7wMtl6Y_kk3UubG-_SX zJA~+WyQqgyy6{j>qBTB7ig@QaZ?Ojrz~DZ}oP{*8@i77LyCas+egw-YDLve0AS~o| zX>ZhaXCk+XKjhPsBAy9v>t#kdcsKQ>#?tmo*#z_P?o{M-4s&p7<#{;}v|SL_0dX7m z8d`M8eXEbj5U-v>&Dx|dG*%Hp>=$qYKN&HOZvr1zV6*|laq$;@$0e`c+T;h`WE>OQ ztqYhs>x&d-W-K%NiTy=+{h!YvW?|O*a_!j??8-KkO+fgfLdiWWFoZ$Y|5dr%Jk1m- z2eFbT7e$DDuM^5AEqi6{^*^B3pq1zgVlQL>2@LU(QrR93aK{k;;x<&?Hhx+@f=B+^ zCg$x^@y63Ql?y)BQt)0Qr-r^m$PAgBc1tX-=@u{Li;nD;sJ<25^qS#Z$Ddm521Y+a zZNa>z(z7>X~*T>H@vK>)J?j9d{Hm3{0S0J}_(Pdj$CImDi zq1F}`{|Vi>ylo?OU;*>miE;Z2_go)BXFpgro4tO7!^E4ZO{)Bom=r%VXfa#)l~OpB zyRLz6zjD#fGx_0%Rv}d(!9tC>XeI~G>qEyf*q;q(=M1`wXAN3Su0bX=T)Jr^D?pmlMhi5bp6YNp;dIe;OqTd%kLQ~JO_b1L|2t5Y`-a+g|Um-X9MBqtX3Z|QY|mK4FADoxa{AoC5u4awVk|8 zXN6Z}(%_Tre@S%G>ZR&hp&XCkHvueKVfVr}s$-?N(R>N5MqKQKXAr*8187~T68)f~-H=3>o^`JUy;)2UvGZG|+VygyC+9sDX&0>an( zkeghsd^OJj)nrChrY&(StSN#kqj+U#t)$5_0*>bo*~c&a(SaoL&^@-@sy+7;E(t5| zm#NV-{OfTCSBE-%Y#^!i>1IhGea1jUQ;{TRRhnoU-6k=uBujl`j|?h%4U6@TTJdco z+OUtaZilx;jYU7xxC76IDF5=ek5)kfNu&MgI90!&1BBkXnPgi(Vr5(Vla1+j1lBT= z3ugQUh@D~8#CXEX11gmce1ODuLUpdSmzDUY(L<4ab`hN;aC~L`;7P7T@en|U-UFp%gAcRwII`RP$gz= z?yeGpEeY6{7AzG-ksDY!x~D;JqN1drwb&3_rZTn7avO86fRc6x*X8izRs-Z&WgM9c z!+(!bC6fNV$2p=@M)e37Dx|ee5#_p{FxKs`_dLHn4GyV(pW8!bL@oyStB)0PVn2N$ z8=1W3p#}lMk<|+#2F=xY3qi5ZN7Nfv9T^NFg-b4US=)L_MTW|we>GI!bJYf~eW0le zVkGInh_W6wLW4(-MAXBJ5pxcFlI$^Le7`6{`2HEcZa$r{}TKbafE{>xU`oM^LVhrk)7wbKcUyz`)9k~0XvdU5PVLbwy)ZU z${|0BqV_`>B+ItG!SG5=O_VFfr66YvMIyJC`PUrg@O-&uKP`o;@%Iq(&~Q4xP)mdm zKhU=Zwm?e1HaIJ@`Jp54Y{<&D6;J_3!8nY1q$)s*ziN@I;WNF{0re&lO&N~^dLE=sZ{oq zAvD1!ez-PdHO^>!m@{;f{Q3{p1!gZ3A8kZJIl;-;0rwM>-<=@TPg&Wx8-9qesOk}6 zBHyHbN|#zq+OIc}3Qb$!3MsUM%yb?n_Dlh(l1qs-u>ihHMwC-8nvKiN0yiXnm=Pp& z6WhtNe9+V!qt41@|5j%LlVg{T13hK9f0VA4jnnR(c7q?qx!294q&C)cG(muOE!b{L$8c`{_-p~_(`H3^Y&e4%B4we21 z=RTn9Gb!F>gF9>igaJf~HPf||`~#uSc$tyAeBz8Ti6{{+^K*ywLbj{;GXm*p1`hg3 zmU`myAB0lL>PmHg5HW;Fa!a22iBBS%4EQNyt_}uwwD~ICOD7DPFJ&? zf$({4CIK&#bEP8V-E6`%;v{};x6>HI>iGZl>C=FKLz8EFAa`^38O2L0!8a+XV!Shy$J4L zuX-lj=AP^fktdbl`Tma-j70VvL-5p4=vgv2C>Va|iSLke=$GxBnpQ`AF$gKk9}IG^-h3#7bHNjF~}$2VPNq zTXfmbRg;$DfQEl)4O}ie2R$vKftWc59TuLkIEyYb$jh!|TaI!E6{c|K_5m}nyHe9W zCd9C9DwOOa%~hAzcsCG@=!wxX*B7aYXiTeML{w!{b+j|M?mSg!70y~O4~U&iMw$)# zU*G{hH?hsv((;T?t3EKegSSINQ+sm7l@ZnPiXUQ}Y2CXtwsd;5%ed1QAJH&8^sj4| zK$E@&aTV3BkzQwkk9Q8U5~-v(1E!FnUDS2n2>6Rf+YF8M@U6RH=z2z7XlzdvK3zL< zH?&Dm4aC@CEY}zoR&-le&7rz|#JsbCn)Uo;aK#!l6reSv6R~>TqVzYo_#^FtDq!OW#n8P>xL)miZ-IB6-c-Cge7{>F=;OLtwH@-YCV`%0Z6>*aUf&zWsRUaR*c>#tmrn(KQ->X;b6B+WPQW&MH3;blDY zG$))s5?_;GXnLKsx0l}|L*#ud zt(=O#4$dZI59*+TPy`hNSRPo%RamaTWqkLFfpVdmY@aL zPxYZ-MTx(0r@_=tE@&pYPOHO*e*hE74e~rb_j+3CeC$`Uafu_mK8WTTY_)ctX>3Fl zQc*6);}>Y-Z!><8@+O8bq~t-FCczkYj-RL6=GX!N-xIR@3re1>hsspvbnfK|z>i{` zd|I}_yiPCPu*}}~9nt$tp26#sgO(vh*o7rmnY*4JoIw6wX9CO|_J>mqa^TA;G_4VS z1R`cyBd*WM*L2nscMewW?>@l6^_PYBUMOt9hHw9|J5^F1fU&e*qdSjHU^w+ivBVTQ zL{8%7^3c|gJlS6cxuZ=-|G^)U&gse(FFU&tUM9fz0KnEDb7*u5%iQh@09!9;JLeJo ztZV|E;I1L|YETg_L6`b#2id)LOE#D4-#U^=<-~I%s!(5Em?3e5+exn^@(56&5N`WT zUEJG=S*GaaC}nF-_*^(ZtqPIip5wjpeoK(7Q`C!`5!NFgR(awz+S#%j%JY=nz)86G zyaX@<1~E^j4%$|4g{)G}VbxSv=vSTXJ^qbH00x^fwfU8Oy+8 zjM(JN0+g+xXlwAC0&BkP(KQwjcK73=r^UjEe&Ue>Z6-2ATZI#{ppDK8LG(Sy|E!eG zmK{}9*rzF-?;kPFsn4jJlwiPJCN9E@v|e2)?vG(BE5`KtYYUz#(}1Zg zy;t27o~NW7#Ca+hiUj?^c${08Y23jhXXsL_HQ*@=6;HrwvIrHNGC8N+!<>80bcHc&UP@66G_ef+S)^lWcge z&lNn!9ak^37=XGUchD^6zJV+QlCCmW*^(|n0~0E@fAs^}Xig(8!{OLz{btDiSvNQx z1YOToXh*chIs`Ap>xZsu3exbYR~gP$hCO-#ehxPnzV4aP*|e*04;=BWzUR#&XVNb| zAFivEK9;F#C7e_D(<9oTr@2tDW5O4MfYY`1sVtq|q?(FnL!TiXg{Inf8y%Hy0TpQG zJ2bbU*P&S8(|z!DWSiv^O=r?+crTr3iHW!+b7cK1#vMT72mRGIsq1i|tRf0TfwaL# zBz63Vp{cK>cBf9EMAfLt-nDYG{i@Xm29s70;ES%7UiV7SZltsh$b0y@;#-9u=xNpv z>pkQ3L(pxcpVb<|&2wke>9AvjCMDh#=du(|k z`KfUDm?GtPBHbd?90KniKwS&2f~b`v2drBpDPInvs>#IcYs{eja8w_8N;nV&e_ zY6LUPd1eLV#omKF-3m*e;i)~?6N#evRD*1@a1r7@i={Fun~XQ8J5-k9{h<_y&;h=z zYLf8uEqh7{>0Z+|TaQfw@)c!nsc&RL2 zEAazueGal&Spv{p!0$wK$l5&#b$s>50PAKf3lRe0BM@=?y^?XLI^JJyTdKL_!&m>> zjFhSJvh4wDIji-K7mi&{wx{ts1$Ngzj9$o~Zjs~XnZmI(-1^Ii^DOo{M{vlr!W5l0 zVhkVQmAURR$i;=NOh%C?S=sJYB$#iGi^gxo@8#g5&iM`ehY^dQq4D=Zou!8W(8w(JhGH zhsfv!9hT8gk3JEYzN?Dj+=S;x#MrK>Dn}g~_u`&sn7Sd_7o>qqiclOYy~X{-`R!eL zFFZCp`hX~YB>tA%ID^NZ6-i}V%i~ivVRT{|PUTylia(VW8KS$J5&zg}QNZe0ghan? zMj9^xbn-d!rWys}U{;rEPow*c2&|3O!aVdDI-KL>VT5bZ@!+j#()*!(F&BVRceM=9 zigU^{0X1N=T`NwD$rpy78F{eD=RJf{O;%EMPcFj>zgDQ)@SL_~@SV`Jc+<+meMPk} ztr^|K3RInjZ{bi+tzNR#M|xS6KXt!~ah>)h=8`MPi4{z92|)yLHq$qxU3~SMUg0Sr zIgJSG^@P(y_(-1YhSgAq?5U>R?lQC~2z;NYJy@dN8vQwvC+{%5U0=io!kxnR-&pth ztktCRp(VAs>P#0JbL1DF)6U?;L}v4qoktgbc;fkp6H3;mbf1yC;R&$>cTcm#76@hv zwU<&(9E@1D9tbdPbyRq|viJboVE*?ofox!)D_@$RC>o)t66@tOgtTq#T0-MxF3 z8GX2?Z3|k2V4(nslEV%cT7z|u907yZ(DHut5`sB*DqNe)fK)n57KVJrYKaB&fH0oh zDEH_b4Dr9{eyEuk&sSe#6{BUj>aZnP0JTkkH}S!uqTRxL-Lz)=Xpi%smcj!xyL4E- zT=Qy7nmy6#h;)zLtb^*oIRi4VqCI2%BzK~JkD}|MrNtvxHwzO>zU`@}=7F=P+j}js z!H~!3PSq0Y`ihW0S%vU##+$I6Ew7VxM{>a;5j>;*eOoQmwcCF&us@yS0$5AzLZ@1Q zepCdt2(~vic4hSS=$u8E(D{?SSbtOvHddjr>GUmmIw-)NPy-B;V52sP7326EE1ASn zIlUY}wj79VFf8?#exRi`*&~UGvRqyvXfFm?c9uC!1u*=8N8CW90EK*?kKN$`5u`qP z5cT`R=s52u`(#G^Pl>XBl8xHOp9w)yELec*$IFUjWeii$Q0B;ZK5qp*yp;M33gs5%i41<;UN9XOS0jgr*$^EA0cRL(wh@S+ppxM5;85&`__#7O$xgJOW~ zQX%``4zoN~)$XZqU88;yvYxcdZ~3KkUpGu9cH~AUhbCkyie!sqVG@^hUi4n)4a25AywE3Ob zW$+m2Cbg0E8XXhSy6U)LD-lxufc)*q@fT>N8ZWhSDT$%CQdZAL!c)cl0j?l|MN36<5$K zS=W&NQ}M+uf9UK}92a-tH`#?}hoH;Uj7I@r^FLs-DR{*IF>-NLF&kt-}!0rZ?aatgf}iWxAb z#S}+>)+is=SxY(aWlbGYZ}bv-D_liL(@|}y{_!$!y-DrF?I(JShv`;SDXipVv&y9~KoA5W}Z#W=$ zu@_wQSqpt<0QUFgW}oh7N0-X}Ju(6WAl*4ZuF&l^u<88SA)kU)L|eT3-?F>-RS~oT z@xo9YV}h!~tdHLyZ1syUZ>$2Jf(A*5w#OHA=2Tvv&$%eH4gvhGP0kXR7j~AHqx+1w z=msl7fy*mPqexEhF*7RHvw9^tOj`yf36xV|%JNM<6t%3bR%DuP^l9+}Sh=rfDUt-Q zZz0LV7YdEWECIm}Y?SIwxOIuG-W3%8!}$iHqYv*G%mHSQpZz^sBj5gKdD!c;D^n|^2A*kh%1*+K6Y+sG6lHL_l2VA3(GU+ zdJE0MT>K$ealjwM5QLU-{h^^}r7#Hs)0L@tVlvQuFPZK&dXb5eedIUvH^f5eUV6QH zzjc!ey@Rf#f0X_L1&D?Oz!ku_R+TQc|1(NjtaQ7(j4DXX`+xX)*RUqewf%dwwx!m# zX{CyrO4?dYE!wE4Q6ZUStx}hp6se$6iGrHqE>+tSLXxSXBBG{>77$FTC=mf80-}Xv z6hUNXK=z=C>_SMu5RyqUlg!L}$Mrn#@qT#!|8Mp-%T0Q-%Q&o$W=8ajb(Q5 zPK*eOq}fu3F!Dg|;QvS=+=@%GFwCZfdQ@Fz(7dvoY(*X3K_%&=-X2^zyY~Fxmx~T; z9oso+Upca9lMVfnHyA*DoyF+8L-*XT2O;^_CsS`oURuO0zeec<=F)0%xTT> z_m_pcb1kF%ld`1MaM4p~VF)!&4_5C*w;c(NM4~@iIx!o0g*BNzD6a+|ZWdmp0k_7Y zv-nMeQo4^I<7>Q2;v3+w?1)TBbMioI`AF%DPpYM(aGDbga14W4Xg_>WE1isONHC^I zPx?OqYk7bN=E8B_ZB8c)HpTyp`7C;GoyVC6F6{ zeY=I*0aw!0&Uaz}0xT ziZ9KeqZj+=FEu1U6+Prwxu06O>&R$z6V?(Yfb#(4D;Q&NHgcB(mMYf6TpHh+*+t`2 zPf%dK@D%t0L(?iQ@!3sn2P)<4SN40oHE=8a3C&u5vWbD7(mV*kKIM}2$Q8WEIzr5U ztdyoR#Rh?lrk*b+js(JB=Txs9FSTKF(IXNE=o5QVy~#fT3^1ot_j1p-ZgktO-n!ko zFX7}bsi1qpnuh)SUe-@w0_bm5wAK_4`*67bKu1ag?%P?thl9e^n_pg%Zl;)H--Nr( z=AQQ*|JH@`dh~PMdAMn~G_&`^GR_ng@izPld}82QcJl3R3YUI@X@$*nqhCcc%tv9A zHE9PD(+11XqEnW<_HphyG^$=@iu6o1tkn0fH82q4jI_FD4fX7){^wJ|kB|5j|f{b5Bw*n*O4GZ~lfAD5#1of2KIeJ$`@cz54Ek zV}7%&l~G-aN~QYVmhV4x_)buW26y*OEoT*O=C(seGs%=pMTB#Qqa&%CjR zobMfDHba9x(5WGramxrhQ;RkRX=mEspDZWC8+g`e%U8%0>Tj4Y=@89C=A5KDxaxJ6 zxY7XkB&0EF+C69O{?k}3A5d9_PiWOCZBBRm>&-16@Gs$R~^oS$-=GFA<{p)7Si!wpTK9qV$CPy>;pXXDz0KRoUDk zy_4=p#U^vw0}PJCh^_RObyp+vuH zx0!*=a+BT`R2!%Pv0nf8vii+6ARw2LY8DPvz=?IKu>**U!TD=*UWs_l6BlvbWo)?h z$}&k@HZ{d%!ezfSC-kos;1TE?$7{1zA^TV+Czl^s+-Mf`?^pfB=^jKf@i}0HySc-e zwot|p)#AdB6?huD30ht1dP(gdqa{WW?^999zvr3`zxm3&%M>s6z%#3$&WIsS@4x=6|c z%`XYoCh?Ff(DS+EXW~0e7?**yL@xMmXvAdww?x2^&2C_tArJc!>}?s13Pfn8Zap0k z8BSRfz>$~-R*=F1Q;>b{p{`-ST-nQ3|MHq$py2!ISca+zA45l=`;cb`S=Oq+!?vG^ zd&PVVc74H1`}R|h-0Ka@QJ`)@)6-txT=HKN_2(=CX)6*u^{>p6d!Rh5b$!)Y_J-dB z5^A~CS;a|IfIC&lUc*PSc7k`^Px9evkoR>}2`Vbrzhhkk=XVzi9KV-Ci@x?wJfDHm`7BW@a(2@gNKQaq+zj@~D!?&{yzL4FyheH&K zQT;w8vaSz!Ze|g3;cfXX*l&X*j_Br1^v){9ZNcbK^_q0oOYLQ$k){4Z0Ww}!6eHFJ znk<#$t-Wv^*d}mo#^yFN5_{e;+cr#h+Y>8|49~LqOk};P)$=l0UqP;>z+Yn$5I09= zeJXh(Hi3262}?U5a_5jt+ctKw6YSabJR#JGPRt%OGL~~tUr*jIh5-9N6`_c$w9YMT zr#qrKZmxR6OO~FNf;NsrbIGiMW`F!P8iLcTxrQ*+=%Xp@Rgzl<@Sgcwe#Qd#?VHRM zhe3CA;FEVQ)l&p9-!V>wE~~e+1d2AgC%v9=d>+$mS4#JY4XV6S()Mt&UZ*Ux&P*pF z94A3Q4+OU4-oTdG`SB~cs$PqKskmav6F;7i5Y3CXpN6v2UEzHZ!T6szn38;Sk4pt# zoS;Cy^6iA|rRH5q=|Z@WSM~bUbZCR=gS)Ao(0y!tuwQ?w_D~b~Q%k+RSF&BVuTK1W z;BhiQ{gZl}xUAET5$jjhgJCz-_7gzOcoYxT&$z-&m@W`~&bg_`19Qsu=j|y;qXnh_ zPiGzn*JkPYpHIHyV=vv@#pwgi#52eq~;bQhj$ zx;~^uuUjYNd-87M7V=Vkw?3PQWlIW;4<8xvzoX{pR4P#_rSiQm(~QBv;#g(XtzGNoitD|TIpO9wTlbp#$d8wdhsv|ERKt@zO{vzh z$L5BAkwu_xT|&u(Nbd7~b#jMiyQ(6IywYuA7Ty{11 z{L@3Ij>E(Hea|0OCX__g11(@akw3=3E)TA3OB{(aVpko%0}fb-zWi@qkEQHoPSP#K zO&DzBcvQm{kG?-B0mMNfK!)kH{>k5gZ!!gX_#h&j?S~h%3KE9?8Q)AlB-z5nVwai< z?kI_OsVOS&HC}2il`}n|(&IDrAcL*+Zwh-F0@;iFVoX!vq=QDacYGnL&}RrOM>^NP zfH$6p(%O&;r@sG(gbZYqe>~fN3k*WpZ_oBOTEAJRzBOFNVeYt)(z2e!9mkC zW1ZS=K2y#Fmb0`Dv<)2x$gqoGiDc}E8f>n`7a7tH#o1C*Ah|x%!6~j>{R?^j(%9m}=GKPjvhiQL z9Ow7j?oZukE6WV=zGgI)=IOHb%9*G?-Y))%dMXSB5aXLnB;E+7&b_zQpKOUdHA0%X z_YrVPr3O0a)BGVkzAYqGt6h2BdbMmIb!7E8s{(ZSDLOe{ftvGP+OZO4Fa#W|1kH7khkBvXC@(0d(6u}5>ZH?9FTqzR2A;tHV$SvzY5RKqTBLawg= zp0T|X3DUjeF*f;h^URj53RR^E}NZ?jpCdO;3#9rd(bc!Ohju7>1`2Y z^C;py+dd8Myt|&M!9HfBOw!gEjZ)ULS?mduC7CPWp0%`zQqmY=UH zXItFp)%S=(qtOQ;6IY#497z`3N&*|Kk1V1G^vi+{Mf+$jbJ&OLd7Vu; zO}zsQXXCWO?Wl2wlf{5Gjt(8>hOBbn!)SO0QR8rLBT+v9TlzB&IBZ zq1{e8|qOS>{ zCWC>ZAoTI`gT!K)56%lkev6OP-PCUxk~gRV3rn z6w$vStl>Sk&%CH5NN1U@}csHFdH%VvmB7iIUhC^{;|F{TK7?OJpTLzw(Cx9itMK_;` zRruQ$>jGU#XaP#DU4TBc{fHhs!FqT=Dm9st(c4I^%Gd+u3jNR~r&1(Yrb0CUanPGV zf;^2jB!28*iH0Or?|2?8^zB|At4(e7v&P@~DPLQ|AArR2V-bwJ-FmKLs>;zN_LbD| zg73GcZbRch+4s+#wAVm`>rha7=8-*~`Ml@F1D-YFu9VETZ=3H=Qje5Mn)f8KG6q=l zIt38CTwjoePA1Pp+c%xzvb#aTa4JB&(K2c^cpYvp>y9@C_7-l1Ty~#fQK5K9h))v5 zFIJF$$JrEvb-lZPPqYX`osgrLx}z`hRLITOg&ZNVm_12s0`YjPN-vej1XZug)H9>g zuqOagL;y1)LNZ-vf*%0ywcf96ZJKsF^v@CVpS7?afuyD?5^uQJ|JS%Gzt0 zPX`#D?PG7Wq1w?jd}XNCl>}9mR`w&e)2y7$`ukBG$|x(tI$4iSF9<>T=`_iZaK6Z= zkM4S(x~)mUo6(bLw`k#V*H{0Oz5f7y*);QB|0>>TEjB~{bmbFeffjqxOKcR{(;W^M zxZ;-6pF3hiZ<}4GOFPX3Kq^*-#M^}#?V|37#&hDAOptUr91Nmpgl&Ro#sEdEzA|H* z=!d2E_a{v`u`Ibhb$w(dY1MvSy;FMd&ya7JR%GT1xik>O^`Lp%*Egcc?gG(^jknL4>f1BdW z1wAeL&`+^OvU2@DkM$?0VD4>Ry%PD8SpsE-(DFgi<6Luq%3W5Qr)F~65!^G61Ajs! zdL{}kQ|}5u2V{0!;B!QERiB@;)dN1IqeJF8YnreJYaf9m(t-DKwbhhP_1x*4iYASzd? zB&pvR1ZSZ71a=A=_rnw3(XIqu&f8Kv#%jh|VB-d7PP9C;5Eb8FdYtGYKlv5w;t()O$!_oI6!an zccKbMQ%DORl3G2%Pr@kUoCWv;c|JGzaQWDY5R(GiL|A~DiDgimVK88YJNn{(1*fd- zU`-L=SgW(OB7*P8QNM)cNJWOe%naGDo59v@qo63hH>@B;x;nn3T5JzKZs7>>hu5;d zalNv=LH+<4KVN`dkq7IRo~m{-+`)K zv-7vx6<7*kw{_dnK`^Z{Ly@j>X^GXJv);~2O$hipWxw0@*{1T=eeT9{jK088-woul z@y-vvIWWze?048>-Lzqbb;*1r-mBWdN1ZP__2K1>b&E8OFs)PfC0*A`G=K>Y%5B!sY0&$~$Vey(O0 z@fsVuZS#SGf!u}nwJOK6oOzy|`RH0AR935ad|tar0-F!s@JBICQZAh+UpQSEg<`h% zpR={$)<#h%d;wnACK|&JfBv&1e{7d8f&FDG(Y&=++9Dqd7+!y0lDcZc#O^hF-rAos zc&+FXHK$zO0<<9H?Z}PE?X?_+t#ys{Gi{BqNU!p%x>*ZqSep&1$9}+x^Ed#Su~xl9AzDd` z+hMwXM+FSSTIC)N`Zh3xBDLO69gQZ=W0~a=&YGy|pjRAZr*x)&Twjmqx_&h~mbfA- zX7uIZJ3L$DE+Dd6z$3BEnxUE@Ckh_#m27xyRP$gnmWG`i^zA#WX-nH~-*P4*>L9s# zhkRWZHNT)3q70q(%;UFJW{LH%X3L%Bx#Xz$Z|;GLU*TFLAe<7gCzy}($X69N>7E_z0p#8d zpD`82Nlu2aMjRkY^0Bigwx`AU=;2?1*w~=oF4?O&8{IHiX7_1*QAQD%0N4rLpHT=qIl69$s8}91mGGPwlbuj%_=E$6P zH;T&qqtZFtP|=#1Tx4q!EaqVinbUli*jVuhc1pOZyc#_HTWHBk9{cJ;Y;OI!M)d5{ zIHHvFC5@hZT2GA^!Som3_KyxkxN-~l_-FEbh4}e}Svi_7$QIktIQ1s)XPRrNkdMv! zop@z;R1ld4^Os(;Msj6@4`j@s&Nw+S0cusx8bt=>S&ff5b~t zU{V3VfdyjZ{Ll{xaa zPQVAR78m8Hcly6ekskdDMw%B6R0KV|41Z@M%T}7ZJuE(6Kn|MwPfN&FSmW_XtyvhA?G}E_~BlU zYOD+eKr%GYz2b3MhsC=m?bw-$0qYY7DOKW|Uv5z4LJsq8PkGg`yDl-z(7UtEPzBTz z=~@d|QO|k9gI@{iSnieRu9&IF$vCHGi*>p5ID5`W&gs<72cl=`jIy`2HH$%vK>lTf ztt|B!xqI8lL2w(=Z6F7+Z5d^%DX5QtmnQEfPJxjrC4x=^K{j}_pDlQ^x1Z+>tUny~ zg?Z4kLRXy-`VsfCVyWkCrF=ixoB8z-#nUjP3O8|&XZou-^>U)!wEHU*_j1Z)AOvO4 zs{^WwAFYk+ZsAvE_x>hs&a8^4ZniY`qY+o3?PwKzm>;fxhHjBvlLRg5Qco*;IHXIC)sR&aebw@~4D2Q*qR z4NCvnW0AxJU}v0f1w7UfUS>I*+S=P>@yo*Bm!suT63-=gf`XYNc!9dY@305i$YAY`mxdFD;w@P>E z_1u~yhYxt~69e+2>?zf8q}Pwu!F3AXdP7)ee~V%sQ3X10LG8{^rx^OUACJq}H=_ZJuQy z*u>IpI8a!<_66WCxl1220GsH^x}Psm-e>DqZJyxr`?k!?4yJ>zjYvovm6c^;Jvm>R zUrgR=pI}l*M~BK^@h1cPbh&4xy4qL0Q}Xf%Qehi#?kBIB;+U z4me&I_a?Gp9kq2RY>WkLynvJDy~{4O^zW?h6a8lbChqCu#2el$@}j+f`1xXX=XT5@ntoc84C0iM#FTx%kbnr z8uo>MN7*@jJ)+X9c^?VJR*G@lAM;%4d)V=aW8T)|mS#JsiMo1$G1)ay0G?rE*b)CT zMuoOEj}43y8zf=0j_FmbHZEOuT7j3AXlBi>4$$|k#ZtrJj!-uwwE(ckJU`&?k?iQNQM(RCvXqH7&^Y7rV{fP_Z zon~+aqcNCKaAdanXhxcJL(opm)VT?%+-W^kjn ziKIoR<$!C&N1mbi^1C>LbtRW>vox`k&oo^@Cx>_!)c|=0d68$qKqCrJ;HhMl=TSLU zW~_dDHVoX}Ug#Nd<&JmB!FHq>{GF5~tz~c*$FyQ(7Wl&w$@8LO{8uUrV)fOhVeL8} zkXiui-03jgS^yheSD|ZOSj2bw58^B#0h$|B7JOc*X^I5VRQFy>W;8N_*wXM_Wb8U= zHW}eK#;5W@3nv!ha%iF*YX4^WU|e=ostg4EOQa9Y!rN^O$M5lDldNlqcf;M2R_nnH zOn-bu1@tMViF!}-qy7rDM=~}}VO2uk6F&j0+*cp6|JJMVe`U}*8 z_-X4@&^mf5gj?mQr+E@_6Ntp9Z}W!d@OBjVTvm9%CLUP#P6a}V7B!$xzy;0GodNRk3_uc!$Gtcr3Q8GG zzGWN$60WKf>@Kj!B*%(Am;P6y`XOJ0zM0_l7kuYwQH17W5eYyp`W;v+;pJ^)zB^QU zo#pmPAtk<9Zr0*U{Vxf>wqmS2c_eyM((20iL$dwy*n zX7RFW+IU@p-IePf|1Tvi8DPt>xQBLqxYl1_jeF>3)t%;v13&tdwZA6F!EczUDJ@-$ z^bH9>sz?8}(!Vd~L(0mH?**0QGQO=#+o~BWeR)e)s2~>MQ>`~$pUTLqfKpqt7A~)i zAX3l`HlV+WWzsu${LoESpc&N(2P~C3+Sl$%IywI=8TvHBU-CU%3lM3d_39dM)1cu% z->) zI>t0%U&(ZCbh3h#EeE>jn{nv|1N6bp7G>Uanh0b0-1uNhFF1GZ^wkVqo$RMBrB zEsqjKBj#1r+0cWm(!rMNLy1=8T_fOX93j{SQlxLIiK> z&Xz<~@_MgZ6BcW-kQ=i4h$H&nDAid?hhx|RdvR@q5rVUS;7-&=Lp6?Tn{2jgWlP7u z7$9aF&JiH^*6z)aWCa5jjP2Ui4JR_FC7x@U1<$oN*n7M9(&jw}i+*{@dfRHbg&D7a z8QRcrW_%`=DK6EY3gKBQ_!8I3EPJYUqlr)icFHBOL30z6|@S%ng;n{W!5* zk@=b3Yy}dbVrg$`dgc-X_c0i^G-I>wdLXg%Z-oi7?&P3T$-f2KH0T&`BxKI)6+qNP zuH+ceLK9BpBBl{1vH7?3$iE1CqO{50@vr%7I%Wh3O3b!}SdaotsoH3X~d z2Q!J!T(K!;A}~WAG*o+Dcp6rys>yhNGMYE&tL+R%yW4EiwbBaYZR&66rKQu_;%DWT00=JdC4zTaAe~$kYfu}d~LSj1pNcYWZ`VJV7)GTBw zZyVEm+4ERh$OHc#cko)tkA10e#INLh=|lPraInS#snsTc(*&;7Em>Ahq&AcX;=2qq zL?ad_D83S!j(`o{IPpbp!WCs@4==i>X>cxQBwkuJIMd-*4mUf$lg!guK71O2^gHLa z;h_m$7oYSL{($#5J7T`*%>a0EHrG(3ue?GHdE*j$XyY|gV@3zR)VJ*FI-Ak~GptFN z@ZEzO|G5MojjJ9_qxE#O6Q{@G7fyFaxK%H^S?9js+$S%0q{hJC{L?DBlEg&vWv7!K z^FPXqYSk6RZxejtUi+tWf(Mj^z>RkM&L{%w-6hSbdi2&Equ+VK2x3e`Eibp7^rm_( z*q_8VAoT*um0nP9NSpN6Ilr=dFItNpl!#)8xJ(sU{%)l35~qg$nCZy?=2`Ies^Wnt zNGq7lCNyS~MfmQO#?L_;1%mpT)*H01c&|fBPoyWPjl2kuQj@tdu|HjV)SBrzoZJZ1 zOJWPRGfI5gTs>MqQG0P}eMc^<0oniZ6|O4+)-kJ6rLD4cyjxw9r<))bZ!6HNv8e(_ zHc5P(W&OsH;N7qmD3qPB~FWtO%f5uD4GExL?|7M3kQoDtmL(J$jJ4DP&p2^=USzF#;LW_o3O*mg{J zr}X7|W@QR`elTZs8e)}L85j{+-_ZZxabtJUeNZ|!(n=ss2JV1 zS?76Pl}go0s}46G%y3FusuBsM1mEPHxq<l#w?vu;7eSBrQUZ5; zBh_hngh`t>=Y!#k63UI>K}!r%fDCrqz8`+X*D$QFzq>}XCISKjT2rXpwF3l~_ObzMV5)T+7-Euu z0;WnLB>~lbM9 zr->>Q#XitxXgQsIUJH<@Yb7_yOqhsI1~i|>#HT*|;9VfgP7v-h75Cz6QiohWq%*EO z?S?0UgWSkW_JjmBbu{IToJZJ3tiaWq91=y&#J;XzTfsD^6xv z8M-3uKimxM6L2t*0-;Ic8jL@W(byluV+UC(^A*Vc1a}?wQ-~Txi=#`CtOAO(bzQ?X zB~UtYi3tqsz_0Fqnmx=X7ke=iuR(0HqAJsb!(*ZJ+3jM;q%Y0o3QK&T0!>L&$U%GA zbI84e1Wy>%gJ~dr_*l{7hnY<^)9H?;367?^k2R%A8~nj)$T+9BhHQk;6`rSK{e60{ zZCZPmIuUYkV&{g14K?RwnP;=b@(Yt~Ad*d7Yd`fFSK4=NSz*>&sy2H6vW(W$zScEy z9X6}n9wLUDi*M_R)ekbTk=X$5_LR<31$WA@ODtDf!MRH9-gFKzXojL<9geE&6OGb@l1w<#0o0^Q*CZ7oo;aJ{Dgs;cBK;K}9)v0NBUX+E<_vjKmbxdA zC)G*i5U7n!P&8r22-m0ZpIUJ=*E?aQSXYWm6|Le(?Xy4K1wz~xycP{W*0t1<`=UmU zlqgCsPABYYdRUwwlM+%HeWy$3I`*avT{fH#ZDiBau!o(8~Uli^!CRl?rA9)m4@ zp~89=Z9Lo-*P`{`4TC_K1uG>hUGp>$_h(=V9g(n2a|V6dL{oYaykeJenR}Np!#aU{ zD3D&2fr-t>y-`-1mhPF1W>^)KVZ3HI`_I&M+)G#&DQ=#$q`~w2(@*-q#jvf|z>}As zf)*9z1v84WvXtu0udxb&d#}^iu50$Qh7qSnp|O1!uk*hQYH^)}{WW!Kvn`d?eTV)+ z@5i(e-Mv?cEl#E9KY9mkGC|GGCp@zVePRq;K!)Hk&W6ne2=lDq%~ioeAs=rq`>D$i zfu~~pc+k?J^7vJ|$DyM}Ob0iwsSZJ&;JUtD;YXG~5|gQ)y?k%I$)ySN3OgRjhgO3wdBk zvF)JgOy;|tK&9J9?66LsvP7Th?`{yi@Alf2KATO?L!-UigdzTVeejoMf&)x|MJQ=3 z8UZ=MPX8qJdCN#Blkl8vmtIDJzUq~xQpokeRxZ{;BmCL=)5(Li3h*UG-X1!R7IMLj z^)XP~CgtdFlZ%G&S9oVF2Up=rs|5a)K$oJc;qqjyXOiP0bUGWp4Q`Er8Gb~pEmOWg zfv=ZzNuzZ7pXdg?!Clx|*T&ilbk?J})lzYS=CSwwOO6xhk@0Un6|aStHrT`|!u(;s zU=)mC_l6l)5D+b*z0~mjhTF1ruO4T>wo+#j3K(piOovgymWNW;*|{N}A@jjd{c`e) z9O-7u#8-059+_xMhXsgM6L`0@H|U-%odG8BatlT;UI!1Fgh$`sDXz57pRZJLHjIeVM*bN7;^2d*ZlzoKrX(-sfQ z1kzsB81i0s!HJ8MVST^J@SXbzyJ4#)WYFxQRg1!|S^vYq14MUzDG@5bacot-NZQJZ zyaAzuU@O`p3O*So^FyCa5S!G zgNYGCfXMqdY+7L}@F;tI&=-i7Pncb)UYHwBe~K8~DYRDifM+#(z)*X74>&i^3U-tSp6L*_^ag?(o6$ z?;Cc0l3(ub`y!z-a^Hux_&fU@rC{rAvDyXiYzbEC#GT!5IB@-x&&c?V^H@F!p5n~$ zPRj$q#EFVM5_@2+R&)QMzja(6%{AF;Yv?@i&$ryoK zWWNMQ&j~n9ybeLMo$qjy@TG`^qeCnpplYLgGi)m@FYC%X_gW_0MH&PjzCV_skM``- zbOu%f09FV+Qk+l|0{1ZchUnZ!HzRCH82S!8ueubgbUhUSG6cD-Zt1{ z>%_>+k?q=2nDd4&?@^|{IJhQ^HkAV1Ip%hoQyC(5PEP`F)2FTo^b_9D8=AN@k55x0>n>ZJ2!m;Q^W1=8!>UO;uPk)~TS7U?UT*+_*ByqnKN zH^3%8^+{@`n9^iB;1BNpi)mWZ_uDz8W{7@M8&*E+g!GCnpkAm0^(fX$+Pv~xN(a++ zb?_oV>nYJh;P0|Gs=&E*detP$9D;((K!!@~nr_&nUD5<; z2Rtup{LBxPh;a>YkOle=^9c9MrJxzd37T;p=6Sx?czYx&4G$t))9}DQ)IS*cozN;O z#I;)xBc(LOk?=UoJaQ3hlG?xNSk=cMvW^*Qu$t7S7ucaYWm~DwROX=?%S_GXAG=9E z{k2o5?Haz`We*{IhZ)p26?@8c?|;O6%oGN6otLE=^E}b&ajfH_qN}9$69vS#h}Xoo zpPql&V5ngNBEhLaL+?UhzmaZ%Mrhy+slLI+n~GdNaRt8vYo*{&CwW&Ic2v3zM3oLO z{VODh7Q3S}h*jEAFz>g){*t13=nrh(Rror4i^V7&O99Ct>m?Wj16?V^=hAG%;8{Z~ z9yzCf0*ZEAGNe=1G_x-SaI}T^sN3amNnCG*Do$>6x^#AkRlsXR}bXlv&L!k0M^X8G9iu};Bvb!!2KD4$Q32)=$N z#~-)OgJ`ZQcZ4wm>!=fM=eb;9K+wZ|v@3hLoNufzScA9q=3JE7z~4SYKnWx1j6q<_i+Y?U{8_V+eoh9g zUMpennhm2H6{2_9rvbBOlC6{KaeCoktMvDI1_bELm8mXYdPDoWdQGga8(`pfvxoa= zuPt+`XaJ^8W?FwPZ~cox707v-q#{q4;{b_Fk9bI?f?2`wMRF{Pz~SqR!f^$XkY~s=Nn%PmJVi2_0OdNXQORQ zsd=RHf~(_OQlGwec;PZH)uDqc+8^QFFfktT<2US%U}#_S;qn;H(gs$^H`45i4Z7}z zqAFSDpEJc};|nX5NHqLg*r7m``SRoEU#5fX-aqd=#pk+OoS9Z~W0R(4GK*cAB-#kv z;GR32NA%ZBhgIT1m6 z({(%IX$ZHY`vK8Va*Hcb{9oyCOoD%bE16`|j&*VyWgSRmnRF%u^5-Ky%caxkcz8nc zMZYXeCcPkfKi{*>JL*JAwt9Mg3r5STi;z~=8FGGKruiR#QH`jT`~+YAs8kwO&rR^b zZpsTI#*Ec%Ma8?IdTRxrGX=~#VdVw99=Z(8Qcr$F3Ia@DA zt;Umlnn|h6-P%gTB0nU6llfvq2jPNSUs0hhFIlcpG^MiH#Fituvdwh&C18Q=i7r9} z5;91zbeimRoRf@sgK&~lt*wLB(DGVEegh>4zEc7Rbvaa5*z%jnus zUsLjYUB4%=oK%nm0jK``ui z_sVDR;c7=8ZH8xDv-ZYde?kN}!}BE%{Ed!-(u4yKNzb2n1A5JW3sfBd0bpEy+_XrI z2iw%3l#4WK)vFeUm(P$RpWmfSN}bkh(!w7B8+fkv4R$=DSRCaxH`{ZG@6m%` zL995o{wurBTIvp*pbGuKD0%^vDB(Leb1Ym6Mv-drGkjzCiL{&F2I%~CMq zOf$_P=Gc#@;yRoD!Zu*MWt?fPnZr;Q33=L8C)g#xAT<_0v4Bx^@R?_yuKjT6OZb+T zN0hVrKy7zJncNekCy+Fhw6oCo<_Bv^G3VJ}d=0z{{{KP8&BuL`G^0#&-eBM7?QmE~ zHBftAl;2`aI2`z6=URW@^O))#P{wt*LrS7d)7j~2sb@YN-FAjcOm^^Xd4HqE}Y7ant}w;)!Qv!&L;E7X^!21W{vPZafHFs!N4Q)42tdB`x4~BXu)y=@huR0 ziklUUyt6dwVFnBy^mLl-l{VYi9za|-(@n5R379_B(kBtUYl5wh6+wmV&K!vhZV3=a zk3mnesXg8Uv@E*!KFGXl!sye{{mlp5tk`hCiu*&i1S2WQCU=Tf|FV;g{pOBDCjb{8 zd^&`xsTRH55rtlJBzkj9mhHq%c)3Ct;fUyKfOK43dl>xJLTdhOq)-P+1wNPiS+7Qw z^G>S0bZca{s@2yzAqzWF3eXF`{0Wv8wp5z>%e!EUz0Brk_L8nWeCtN2gW*4GwtgX< zDx#wLoBgqw(thTA^8$Z$B4Euyz*W#gvjX=4Ll35YmrR{41QU>B-InLynb++0y}qob z!4CKbz-Xvo`Svnx`ctJdDSI`&Ycc|in1PWw#Qs~(fi!Cq7ll`)w%!aYyJ&G{tq49=Gk7o&WzVbv>yV2lirExM0&mrD_- ziFcj8u6eq3da++`wA6l>NaqQP@YAC$pRs;^#i7)0v;I?iyd+X3o1)^0zr=aBgMr+;_@`TT>XCWj!F_oAPZ z$)JWq+EuRd_`m&QAb`mlVzheBI+H4ErK9=n{^wt?Cj1&qd~Mzvqj8pP0Sq|Zezgvi zR{@~4Y38uX02;(Kl`Z_|#Xa=CFeZ>+fPeV90IlFiE^9vd$6Bw9%asgv@4*Z-z1-SMXH>>Xc!zkYV;jc;$trrEN;UAwNJ z{LhLe>dKFKtKZ{%^$8sO(Ip9=34*JUtX#oc3pY$=4ERui|uF4btYpzIPfWN zryiocum)T;z2IW}f0#P+s3y+7{kOF(wQ5sEMMX(ltJI>6iW(J?d0MMHK1fqV4TvTx z73xM*sw5#~s?;K~q!tx4np9B`S%RXX6%tVvktHHaP>=wD1QReMlgTp4%=~VizVG?H z|8b6T4ri8ozRPueuJZG2w{MzwGtGaOHAEE(Aa|1fqs&sh+;t4urd_eIwR}X;zNX3` z?3tx7t@^l7d6ht#?CWI2x6E+v3vS1#tI6L@8A`THYZe`I@$f~XEx-tA`2}tjU1ydU zp>5EWl(yDSh_l31Q{-uShq(un`*Q6mbHM+-GD9H*KBO384Q0RJF1dM$Wu7bxJ*a+< z^t~jn=MMRD@GI0nYI>}a;rR*wrkLK5oHXq37>iCA!#mglaL1LKHSqSf^4eY6-M0G(*#5mjFB}C*{04bYTc!~GJcR*?l!h7PGwtA`Wn|$CJWi1z1hx3L)aP_Fs z{M81s$g_Z@ETw{ui1PTA`lxu2Qdc5TYS$_|VdE2f7r8FHKBY(R%*Ap`XzrP&X*kO= z61Ey!?yjes0t9xosDuVx1DSA3xJF8FofHb~@*zInAX-N};keo~RU*5$Z5~lRIvbOU zo48M2@Hzpuo;DiOgAP*v{7Gq}VxhB5p+yzFZ4#FQc~-XA9ZgKm#9lS*hyD%skw1g0 z?qx*&Ee?fukq`WAYv5DZafLClIyZk`#po;Qa~iThj(tRi3i_d0H1zK8@|&#Ma?dw6 zw0Hc8$#Q@+%EC_ibM_zB%SAb)oo4FTZQGQt_B?u+q~V>_0@@N_XUilv66};8lHOMk zy)EuD;PzfkIi+Z3B@GBm{o#$&(Y>la{h7cI-x6pKUE(er4iOEFPaFjP5iQ{yS= z$>k8Z`>LtAszwU>t@zOy@`d4@fNzwG>CSY=OZP6CZlPsL5uG*M#NmUNA@ z>k`cq0PASV@%>;_h~_HkE#sOXda{}K??}`tmKWKLr@>OpfK#WwJ;_m0`J=~HOPJT?Y&;V^8;o72nyYPD`(Mk*1RBU(&; z6q2Oqe~7#%thWTYKOk;snmW-T(5VNZx6e|N@>Mf8RBpCElb;OK-s`F7ZJmZT3D@a- zUU_qCsepR7j>sRQ-u2wj%ya$;sCS#VMU)Lm+X3|sQPggP2AvnMFSJ{dMh06TBJ=?I zyg7FxcW&a~2jSE=@UEm?3SIW@{$%{45PTuX5;mFNued?P82ynwru{^l_`_Unu8D^1 zLdrwK`X_W?FHgOMkU6RTkan{AMz)*&@uG**(==ap!F;=P&tUb?LQVj z$I`*G-uc4R57iao4{MHnwGY#Ut*`cXl%1q=?K7`b&V0_hCt5a4nIw^u0`GQwo;mx| z+I-@PI8Z^v9MT6`-StCJs3*0rEovyb1TMt4IQL=|?kE#?7M#^kDlZV9CeRH@u5~%& zTizKJ{ka)KK68D`W0`4DMirzmIm^=*O`b`fL@yg=7L(JQ#bcPep(VPq-LRN&Zw8#d zeV()O>b$k!b0L{a2$-_ICXus3xIY5DW(p_1C~|e4g-DOLX$#DFYYH2I+OZbCq9)Yz zWT|Z%*CM+3coFmg@6BsA_hu}bU(u_!nBgkV*S66er)cyB*ZeC{Tr%v-LGOnoLHFDrFQLynM>2E_Z9Csqc2?`o z%bUd#(R8||amX7_0o=fb5xM;cqOA=%lPC_+J&}1hH6~HWE{r`0z@c+2wf|f^qtsQy zaW&=8FY8t9QH{WWqggw)+HZ9QFx|U`wrJ!co4Q?OV|U~d&+9l$cjQ12zT-7~lv!oV z+HRhx7&|jriMG8+7)m#KyI1sJzWnN3AJ4Q-q)VUpi24#bs%&F7%CT`Fo&w3~SaL4Y zmgl*^9~EW03Rt#topuv-(-iJ&l}H&!w8gdqEAmejg~S@-lYa1vtXnb}&rtOMFgfNy z>Cnfqm9KJ7nv_56l! ztmr5=35=pYT{M0%3v9g$dv+^lQ$>LJ4YS)5+Wbws#CD2I*RJe)i#!IP+9z-g8~t5; z-kL15sPi|G`(1bZ;kF5uiRsK+YVpHA*zPHzsu*}L^d#1E5E>DG1~}azo&jW)@iHE$ zd^{9@EYN8{;U(@QUt!*fw$o(UAwA9Zy(foPokbfC8aA{%W9sJEr>#@Xl{sJWRqBg_ zHAJXtmTKeB7q{<9dK!nC3`2Us+nC$ENS>Q9YX8qS8s9MVm)WkT&Zu4n^FyDc?!?lDF?@#r1L*957a>jfCAQ^5N*7h?~Ln^QEZX@P7^-L))=P#rS(nCPQU6 zpCJxbXfzvjEm2062apWeS~(7NJi)Tq@bOreq!VIXu$PxZvQ-?U*u=QVhI{{)Z^z*n z5;gohav44q_gB+=1;CZD_=RL1e+&6>B6bo}94d3v15r685m2{YKPywFYg_P8ymHrp zcU8llb*j!NGO?~u_QR7+l%XI)BG|k9$cm(_%UM_}=kBRo#k5^^wOeYVr2FCQHivIX zd54;^UE6|oxf?|L#K0r;MjIqR*}GeGt)@^-VDeq@5!@Tqp)2cRl|NO~N`$e*WGD-| zOWs(in`wFK3>ESHnk-Itqx4^i@qY9N-Cwflx1PlZrsA7qQq4Y(w13gl2eSKni%WZk zy(z;$sXe$wly7Wpp>f#M(5%y>eQpjuI;KA$R+)) zh4wWQ{V^T7=&vdY!P&tUo~WE#>rZpN+aT@%8^tUtNImwPK~74 zb1hd%Q2FQbkl4MxsHxEbUR8g6w7CD>7`zv_nU3Q>SB!!v=>R<3{Vp+6b-{u1nKy~w zl~3h;N>ypk3T0v48At}E(miBBBt!Im}fwddWd@kQb++5YImimPLMpbU?q8 z{zJc`R@5ghmbvZ$`rUPO5a}Wt@LPVhs=ENVF*QPW**(DxdY|OL9y_&yx`%jAG1yMz z?zSDA>^mgKO9tyhYN@!LNLuRl6^SP{3XW74DywB^p7IAhq|-0u#XY!?E`1rvi8~Qu z_p)?%9|^x`nnXT>CS=pyhr`K<;!)}1>56&0PXH!J^Y?pZ2~in zI%|t9j2LV>TS7C<9gY>h4Qev<}n{n8MW12*trSL}Hxh*I3WB8rEsApUI5s5d@=iL%q->hd+5 zwnS{MYO;2p$X+;2=XU)fI$1!z4#qOXzp89hQGX}Ad+>vN<|l9IjjA?S-_W5^rmhDq z1=o`?d@f-a%d%`Uhm2+!*4SoP@|a8ES_i(1#=_Y|fDF$TwfP65E7DrRmvi`b3E2n` zz^DD0bIB{^;I242p=I<+m+MDQIJKbex@c&99k1pBY@Ljr0FJSt2e;Lpqi840%<1nE z{9VR95h&XT7kQBvez=wJ*w&4O(_?8)4226rY4_=u)=XuJ9SY!}KEvrtm;m{>mqq9ytgKOQ!3tWk;srVQVL6N zxM1`BH;TmgLibBs%uR$oi;73Mk=Y&M>-J|{0Lyz>TimGPXFUYN2+HZZWQHx4JP9d= zRQrJPT0CT`M@|*9T)wnnx!*bo6`kU0c7|D|^M~)M2BhxMe9wjZZ$9sM_&2mSsSb;W zo@t$TRW~{BN3H%4fASaUlkLcAi!U-f=`Fy9-F;KF?L1=?s{C|6qYxUTj{)<-izqO4 zzMQu~K9iS0RymvWyqjXb_Uu>kbfBGhc$-+p-2{aK^SK~&M0Oc}1_gf8k(7*wRM~byM_m@dw(tXSx4AqMV^_8X3y_ySJT)jL=Rj6?f!T zMAJ@(c-qKWN6H*|yLA47xDrW!4VB)qiUft5y4ugYPi$>RDw8@ubV>Js)Nh!L41ug| z-Na`4q?46a-UpJNYt>jJ*V@7TP%HWuH%6-*e;-`AnZx+ci&Zl%Gnib7#B0837^h-?LVMAPjtDH`p0frU78y9eKYS$+L_I_PZ}*d4A|A zGVm}N_Q_=$7+}xoyAjesZzxOxnRqt-^gK=ou|rO2W));#B|<9fS)eT%z#5fF;#AjJ zZTb#)2egyv*~5$$gNe;XRiXeS3#aG`uyi#%61=P?0ZrrF$iAB+ET|1o&CK;dkbcXq$wb5<+qt(->%#Gk3A&hGzlvcq5c9A8cnH z+Cm*j43NkQE%oX)7Kq=D{kR<2T9wPy2Ynn{kt<8}0e@dd>vxS}OZluiB&06a045Bx z?az2M4&GE_lcOq!uIsLj4>YgsThAsI>Fjwc`k#m+XzpEbv%~%jo^c@Mi_qu;0*c z&lUu*C+f$u)D4)z9?)c-%DcONu+^B*Mr|i5dxyLVDE~#~J+r*vKG#NK7hkYo=0>7c zW1}}Yq^&6(hLB?Ns<;devmCqHA}X%o0rwG34JX502en1pK#CDDd>9e>WnvA6wRP^Q zyKmGPBMJ!W`b7-`D9u&Vg_|@j1rKqhjlT8lReoHAo_9@39OQY{CjH%ktI-miuI5&i zi&mI+B`p^JBq2t%?Oj*U>%#M{=4OYJ{_%rUTHG;2|EF}gfBpq&WZVxA#w$g^^jk%A zd$uWPg7hmd?JqA}6T}wjN&j@m7X=+5;zT7m$#?L<%Ua^Av4pM^q$2W;C|#Lq;&BQn zeNo;Q`k(Z;?9%zGi7z>tTtt4-ix;h?uP+&F7k`*9P8)lmim9k} z`!1C;6n_QA4Yk7N{(3+s@H1DN50UIouq~^#ABB)R8KDBBFFxSBApWf~ zQ+v8V-KJ<%fSpnZ^!MLzy{JGH!8#cw_6VYNUG#z)CX(;|Tus+Gs4!_KCL6aLHsik^}< z7*6p*B0&yQ^?*iif~cE=u`rHjkzU}}=`6sSMAJoj$7f2H2}=d#zdpd&?jVP_B{!1v zs+*3d61Cj$ZXswc`2BZ%!l84j6cL-2&T>EZ$w8A_ydz9|GC@0)!s$)*S&1YZ!Iw~l zJK^}1rb5k=YM0bm2+aXWOP|VrP=})zT)6~D8Vwgy^iztHWam+kQc-zO<&9Q(<|blP z%doMSA(_C`1q5SrEY+If;tf_&qwp!5$xf^q%D>GPdwfq$zE&Yv6!#4>A1_93$+w%g zbl%?kYA^iF?G}&x3vyPb{g0b*`q$TLLUrDqFEsp~FAMNMK5Ln&#T8KG)>zn}0?D{8 zp1`I5kfYUX6Y86z(D|S#$7szvsY#hC>@Yg3(2idmL^VH4+ zAXm92Oj^x*cV?S=VjlBUY>D<1AyS_8r#>|8pARQ{I=_RyZst$NqrsSLX9m?(;#krlvNH9#>rsh+Lw1RV`X8L`BWp4UpC=Zn zwHqe&H2yF;LRWOEXVVBXKfH^;2$?;|)wbrpL+ax% zX*u}uRDb@TW;iR*p3D%gPv?AR23azGH4jzwyc2)rKlMjIWameIpceEO0GP|3Of_&5 zjJ5^jpvT$B3))f9$#AH~xkzM6>0{OH_pGq&fM)>zX(smVz&Lk$d7GId!)|(>gtK;b zOz^Y3P)tXzaPN9$QA(RtC#jdRuQDwP%NBBHzgM#*5Y1#*HWcBX+x}JgMwHHN$j8r; zCEA}EMp2poJKE-p1j_iyl3r>@!bZ4JEnM2O3mR*ZBpgY9tGvzEbTUNJ`)9Vn%f3pS z$7FDmk$J9rpxQrFg9IVmbRhM6Gp$irHIo;~t?{M~MylgDrh^~m(ydkE2=zARNPTSE zT;Yz!EbZ=KVku{WDaBQ28RiNySoN*kXhxBurd6)l!dP2zHiS12O;Zq$h9)oY>JUt`PKL%NZ3N02AX*z+GbNOe*DQPB z&xk)MMyV5Z9mO}#NUYW3yP_(mKpC+oms3|W5pG+G)kx_X*nKppg}lo=aHR}AsC*&M z1a==L_0kRy^1Gkm6QN@~lY?a+8{XNj?!h+0=2;G5I=_r+oE6N{+69{mQ}1zmu`>S^dNP|Gj~&w|E-r@U;GkGFP{r{7rkfUAb7z~c zJy2v+&48zCFFtSMP2WVh=clG1`IX2<+cR@5M?GE911lr1aA>`PkCr8^BX0XuO{RiA z6gr*X^H}?ItkMjDKFb|6L(gppmpEH3fh*lxmWTr-%!5R|_~D-pCkRF=Q$B_)dn#>d)hm=qSyK~j z}hLkq%u?>~R_2`23RQW4VPG*r; z;h)3>+N(qkT*z=2)_RlI|7pK|bBJ0geDT7n*M@Pmxnv{x7?b+SEm!?C9lW7zbR*?- zs(H5`V`+!ka_IiiQJ~o2YxKx)y(A9;ZH60sK^_b-pLL6&Ff#Dtg+s zd6!m}r~K}}h}S%U$&0yc)-L=0k1WbC@oLM#szTiV_@ZNk!QwYUw;rCMAbJ+8a80yb zw0x_2T!=?i5m(fv4AdY^iBMVTezm6D+T6SKCFE6#9SFeHcJ4&X0Tg^&n6%x@L0a7= zZmuiexizCja*q7I)VTMWYKZkpQBvEMTw<;bLJLt}S2LewIaZphyaNqN6X$va`JTue zbTMfpuAzRWI&SS6UA)fjDd^9|2RC#xdEYbdKwC_KNQwzYJe!j+!vtHArz*nq(o{2n zYvR!}@ru8xZZ)oSh?u+ZMckpadNqH)hf>RG;yQxMMkwy%9SyS;c7I(Bn(sPoh{|Mh zO7(`UH;Rkqa}lPx-&OXIRInvm)ZrPdWHR~++TmLR;T>1KwRch3;_ zck9^7M<#6tyP$+!yjl0O^}Ojv;w#TMqyt-R={}8N@y%mrR@ot=repu@2Inom!H`Z$ z*lRj^3_1K!gR31rj)Xn_jx!=ZDL}%Tg-@cSQy zR0fLA)37y}H0MpC1=%VS&dHD$z_x2TZBedUGznOt5+)-2FX!d z>|m>Ry=N3ev89wP7MgK)%H~q5^wwa5nr!DAy@;3Si(1abz8+OF72P3GmDQQT0ptvL=Ddqi=tyP%fdgLtFG_6v%cGCX7WE|UTndvf?T z@ie7Lb;>8vb^&P`-KUxs%RHd0M}%!&M2LMYeuJT&P^+lD0?(0%1EG^dU%Pk#7*;FB zy0D9XFQhBJC?o&k-8-fN&}CqyT7Q4q#&T$f#44Y7FXdkiaK-rN9!cEWx$sOX=)U@@ zq~jA2y~U*M_BWGvKUi&A(2xIN)(*UJo?D4bb3H`Ki;^=vbD6Ugj?>}1D?YCkp#RFR z)$D7!r!}%1u%o=+#i|%G+@u=(v2eTU9KPP&vaJYf0klH^-J7r>i1M?NzI()f8w_@R z%e5_^4iDnb5Xmc*PmwDsLVHnhHv(~O#gdJEwO!b8eZulgY{{xm)OEqoY3x7l6Xksh zwL3tN=ogbTk4Ng8?sZR$FRO2IzR@Ky{FZg(j`dyt{_wwjmrS}X zF4MctS?wbkGqyfs^#n(KF$1c1OKA;tz4YSuABy!(qA3eo1H72~1sVl?kLQiEt$Yv! z^sNEAIxsr=j!=MAM&W30Q`(zk{!$p&g6Pl?HMr(s&)1xh*h9vLqrkqfLsjAEGK{e3|(9KQrJa*`DlUw z3mN3Ps)t&U*LdEp`iGSu(rpfu{03~Crb0u!0&Wynt35*8@Hu2$FdU+5@g_dLs_=`wog1y{Z#>r-;2Lu;7*H*{(Jiv}g+n zih#_^aGBkURw54pgsGO@$jkNuBv6cU+TtaRFAU=DVz;>sU$f1xI zRLQl4s_QF}yLZJcYnF42645Q@Vod&IsQfm!;bD?Jxr8$+C-RJnayHY(&GeB8A1SM^ z`0)GBtu)SE;!1Tb)%KnY#zyMO)s!W2>$G)bwGZ40ChR?So$1|NS}AC~HmSkH;)47J zh06+(gwv{F|7QL%V!m8bRmhluACH7<)wOQqr}O^Q&I#+}tF)UqHZZ?qk8&}+;rw?K zZucC}hb10H1T)Q)y;0oeglYE&zz#9A}iflS0Sl>idZtiDkcQIHj6xdNR9QtW0t2e947-1ia3BT3|y4nK}A)D*vqZ zsb(t&XH4q)u(`zCPW%tC&z|+JxxZ8;Ru0VLI+Ha{^I)tg%7iEHHtKF*V1c~i6heJ&{Z?2EXM8kj5<#7(C81PHg!{8&ul~3-PE0sK9TX(Xu>k? zYg?J}wAPdNnQ;NYp7vJ}9|D8im(vvXFy48}UB~&n*=kpw z$L%^R`WgN-(Rk%$f{>cwFYgEQZ{H%Y3$FHpSNm=7RP6(?Lx!5!3S!3pv|`fc6lEZ^ z8|rn#FTYhbiVsoWk%6CA)ncP^*H^U?=a8bEKink_Q|!E}=KBz5{l(7Y5J{Rdj*$xl zyW_;);uDAQ;O`l0nR@4)Y-}r@>jP@*|8n>sRzXs&=`$IasSqtuPhJb>3m{6Z@J|W< z%S?RUH+)+jNDLYq{^W*$;SZ?4Bv&YdRWn%yk_5mB!<&YN<_E`h2wKqtV7wj*HkqQI zcj3SlP$;;}^Lg8|0f_%%*B(@7isCJOg4gDaoz$h%pQg)ex(_Q;@BhI=w>3&+8Gc2y z|Ed5>PnmnVGivL^7kJ>Z(WfUB$X4vOt{GDS5}Dw1zdjaoJ41B=u=zs3kmH{oZMVIF z$b|-^tr?znoWi)loSnG4r5q$PuBlkYq{pd!`im_imUD)N^+`F)ID<>BP>SVG6O6HQ z?XBFXu{GLzS@i^-NA7)JHZ0~|xw z$*_TRhsVZ~-G6Cz5%dXoOpmmAZqGjQh|Eb#ivP==5^W6Y`R!A#txkA>oG45Az7^ud z-JmSS{8hDy;c9eYUy!?q>S-8LfN@XXmEWe;w#uh;38ms_a&C{i*yNrJwa5*_;glA2 zJI4iZw+9F0o>t0Sd9^?K@GKh+Sc3a&0(5j_Nb7M)6FvE=a{$3t8^D4diRltqG&Gm2 z%7UDYWK}TAc0oWp!0@w`U&d4MUO5(qf3M0JtQ7m%e9&xc<$dZcv8N0g1$B0TVu&Yk z9#f_ZW0fopOVP%3asR zY1mJo`g>>$0;>oX(VNQd&o!~}MKznCTp}Pa>^76=8ta%Zufs{ z?c5D$v?rsMcSj?>Mx28_NIW#Gb_7`!!smvTsig63yWA@OXe(onD4KjGPwkR6J~h9l z4ptmG@0UyciLnu62vqDGp;hdym0M$X>7$8yqD|xelX!kP0d*zm_F%zfT&G|bsAO4r z@V^=R$UMJ0%*@Bz)Mx%^F{~-BTYn(UUp}`7Yw2};iZ*yIlD@P;b;p$AKW_N6v-G+F zjvb*tF8LrRVVe zrH8|VYsxvJ01y^qy1Y$dojaWUvAxOHUM^+B6PCDoo4zXnImYDHQfL_>E$KibAd~MX z(X?~8#b+h9#+r#oBB#uFScaL8Z5(8|%1?w#?x_mMyWGK4$V9cYz!Lo%cDv}A{KO8} zD!QV&Qn!jZ(!#aTYyBl+N`FCuhx&V^xM<0F;;Iq|KfZ^jB@U{`Fnr{Imv}kA@MZpk z;j`@GqP{kGDvQA;&T`Y&Xs=fSW<>eyu?}%#4xdfTf?A+b7LXs}&x?t5q84f!6>WBw zm3AaF`=gDXy^0E*Qoh0RTJSMrE2vhTKzG#85wz0$!B!?Zddk7;QI8J8FW>~`akl$) zgmDtQg%Lv(!*`M2Gr6fPiI7}FiEyRdFI2ZUZ@~Xw0R+O0CbO-51@M?qP8bHMLcd>=&S!i_o9{v zdAe9*-TBJ~!o)`^T%#JKmXLkn1U6^GKw>&j-xT_15q`~_t8ib}j1*_Roj za>{FL;RS5l2C@3_&?K_(P=4$j3Dc5oF?f72G05Hf`N6Z$Q!Ua3;R$Mk^!=SSfg8d;nU9C77=1hjbRP z^Ah%rK3rMNQSE?$mjz}AkMNWDT*bf*)pO2@ju|d;|tYDg%!~G zCXiL$@#_S*18Iw5Fg13$IDl2rC9Ke{6Gdvrq*nGAbYpwx41<#@QwlAv)@4anA%MVDW_nkBo)i z!b9DtGD7HNB2cw6iW{VUTirGRDX!hf9po24)N3c7Yg%mOA7liL7_)c~r-dNhetBJ;@DXUlhO#Zy zG|;&T{a(@r3WblfoBS#>hEo;Ab?B;w!ph#ZK%iP5&>JPk_CsPqnMdoUL>{ zxZe2ZS?z|=FOIf!w$>0Vchoa35hl?LPSP}Bi=;SEJjlORSUOKF5-sW(stJE?n?jU; zHtc#Q<=aZ;|Mp}QBt9Z|VO2Oji5yu|F+Q1oaBfnabFRQ=H;^0Vh76X;*E4Pt1MS@2 zMV`Mv1$YDMzhKb`9(#BPD@qLOBaq9MG<0?o=vpHXDK?Se2YyUQTl7eRsfVPKW~o2W zML}13ehS9>ZV=ZAVYg#~K3U@#8DyCumeFe)nRu(C9P4^ak#VokN4!plxUz|RV1^%l zYkUwo-QDDx-e$Ot(o9!~8}t!60P|&xBDbvtK7E0HL%aOtmKf-7CF}jziZmc-YWE9% z#%(M=$A;(K8{b?aX(!x54Z0-)nTzF9W60M}vna-w-4(SgJ+C6{_sUv1x_QhR(nzF+ z=tFE;q#aRQhKJy#99@cP1*|BaA-BhrZc}yKr%Pg)aqAwe*Xu7xYnF@L^S|#-*E`Qe z@KzjUjO$sk(R$dsGMn01-XHcMy%lKP1#-pmGsgL= zN-zaK?nMH!@we452JDaXsitu8Z-UmTy1vTw8^l?u9>2!&yaDamuRI3fZ~5|tdQkSB z&Fh)k${MAES@=!ooe;7@kjk&h_xol*%G}MoOsyQkPSq_0hx}~S398NUly2I?u#K}F zSz$(8Yf3LdnlWH{vG(^2<;#-{bYcwD`)3HN9~y~uHpVU?ewKMknJ5>;1zIPYbNTvQ zC7@TU$J{=^AE-ZJ>ym**+F3MDd=pqG3bHU24 z>Dt|3%M*EKiodwfHIx7VtsE9ENOL`815;OxZN@DDv*A8K9;D`4c`X4 z*pApy&!kn_ndAPK1#mkS$)!i$R-QJzNJg`HZ$E}ZBy3oEE434e zezTw61-yw#`zqc#-U*JR)<{pLlR&umaFlB)@N!d%WqUlQBtWsYsDgFY@)g$5)IcBi z1vJZCoa1RRFY5_GjJyRM_$?0Tvcei(fvIqZYSlh`3PZV8sg;!Q0%BCdkP*^eiW|WH zXv5Zn2f~l>llY}%ELA~RVX?W^AV&pci*S79HRccf;gpkPil+lBPySD><1dVP7qV&F z{=nuj_oKP?ou0|^M%CnG!?(SwIC#>{9Oo2Te`s)wKt>(9J4v+Y9rF1lHOTD+%EdaX z^CS_e-p4T=U9c6u?N`ffGKoIu;FmPZ2Seo~Zn)l~^6iHZZ(U2nETtn~2TcTgzxDkm zl^K3Ozo-~=i%>MyDnO~GT}%%PFh+`iRg{RJx!6D?^0zD_LU+zYfya7g69KhKp9CCA z^rq2Ay0OvnfNq{aXuJZ4ky7Z_qkxV0^nP)G?$O%wRoKlm_Xqi70CMnafY?jnsDtoa!i(x zrvwB`(F`j37cnJ(wi02H7yH`5bYAo|97av5^ud$CWHMh`w|5}j73A$A`qh( z3-m7l&(lWN{eP%m8N3+#0Hhx7cnNiaEcGZJaGrGlQ(X*PK(TPGo8;+i_w^Y`(Pn20 zJt=?K&BM-D0KA_HNH5DSS}vGDqj{rNZO!v%zK_t@uM8WpWT16M5;rH+0mSoDxW=2S z^Ovi=keTKj-e&FH>L5f;;4* z3T|?jJgr;W_=xnX%B#Nz^}KHqpMwh{5TNT)Sm{KL(C>}r{az65DP84Pc}@INaLQ)S zoRfFC1pwkzZWJB&);$gN5V-qjH_Jl?vX*yn#DT<~g?s5}d z4`BzLGe=93LGLBJ|MsKq$@k}u9{*x=kOn&%97$S7rD$Y7_-}3{>BSK{Q^>w-s@o#x zy9(r35)C%<+y`6L;R5kiHIm!xGZMUOi5dxOl)wy1VWpMMIVNuAn_LS@t%--+F|xt? zmlJBpR_h+$S(p5ylOFgDYG>pzt;jo;a{x|0gB!t#3JV)K7`W~e(xFvrL zYPeJNUOc}ej3peP>YunP1#zK<$0S8 zc@!R71MH#VmTc9if$VOec`{UlwNPb+wb{QNTYR7V=h_|$>5X3Zi2ECUnqeY-XCQk9tyviuzMu|e>nBf73OSfzsm&C+{4RR(bJGXcjBpnzWOg3OQO zWkIuIgAX#2dB=e1xwC`r48AHl-V%V_2hN$b#FRu2LkTKh!M|MRX5c#WSC?G3&^zkn zTO5ysZ%xL(OP5&^R%Y@GVOzRi^JA$gg`Yx1QiOEM|d#HaDQC4X#cEeywBu zjpewPg8cM*aX1j#`k+%Ri8RZ4#t%aV9ziAD4Qh{#Ds%l)u>Dj~NYw+NL zi<|jq&T-c2_vA0b9T#Lo^=;VsM zB!>xA6INu)us=lmid+YDh9~`O$en)25l*wG@|RaxJjxwz`tuYw_SNAHpS6~1mr1|shDqOXtK{IE|Di^DVil9OHO->#PvtEi zYoJ6^=Znv&!ubKK_2Faz)WA;ku9Z$-%-i}Xp7-J79x7HMKSO5mFPpzA;>7{GY?cK3 z_iQ(-0#vA%SE5bQ`G_Gqr-h7VIuUpEG=;G4pYJYX@*Mb5Mc%u zq5*q(aqKO_6G(n4sbhkxt3F>9L0yT&5>b_PLO&}ZpbsDQY`tVDcX>IM>}(yEy&*$; zilw0S`(ksN@;wvRDRMEZ(>*U2_($^p79M8o5zlv485Eg3%LiH7M;EB27CdPdwudpT zL-;RRC;Ub#?}Dd&affVGzG*Eje*4Spy5se(g*Oh0%O1EidCN}$&iLmmCYAH8dG+DX z4dgzKA?h?JeEFr+|CSDPKfR%pA92D9{}<{T%+s&Km^mT50?5L(xb*%V3f-7t%EzJ< zxP8G^X%l4RouwuD4bLXE9t}CzKqpSZZwEn~O8Y&f=3LMJJ%kU1{Q8kIQeRGVsK9N* z-H_YrMZAIY7&Jum1PPX@?J&pn)^&iaaY|2BNnMYq;Et$8QLdNB+VUO(IaSv?w=X^6 zmUhgI5#q`c0V9U8`rfZqf^Z~ZxdK`AsF<@1q8JOcG_*?4gLZks(y5;L*G6Y?Juj{P zrYcvDJd^x4e<^g8*N@I3Xm44ksG^h0Is3R)*@vd`m*!>Me^zanTH1a;wN1JfOkLl6 z+n;y%v_smmwqnuWv#IpfM3;5`IjOmS{&{KtK2Li^bNRG#Q4|oy4E232^DLD&gUIS@ zW_{%if2AOY@UiZbV-m|~&-WNTaM-bsX;@=k3fCBYis`pQm+YfWzGr9g%rx;wN zF6GRj$Oc!jjIQsS^Up!e50gZ%3|nTZatxwHDLFzjQ?>HKK!xY(&pVa6zzh|d? zoS#JoL$p`oSM)i$;2Sxpk$*_9n5A|d`CNhYQ5ntFrP`lGqi@uuTHdF$yZOwH(I$Bv zTb%VAqFsmjT6oq0dI!CR4iBh@6Uollick7eL8t5dcjZ!YA=Q#|+e{8#u?{Uq7N7;9 z-Tk4S@8!-X0LhZ&4=wd`r)&Oi|3DdLlk0Z%oLv__yK?W+quYuQX{uU(v@-OT&jtVE zs7duwc~Rq95xxI}jM~++6Mkb3*Bw;_9airB6#vv*=xR$Gh%$hxGZ|0Wss@E;9nhtN za|s;Mdynr$3$fK7WkJ{+Tq2rXLk^ieec9xQ4o`-189W72EjH+mm_dQ7$V4M!8ho=B&8{!3xFgk_<+61Iyr2Sw z3El2-;NMu!Ay*`P?-dtWu2FUdImjitM*iycI^{NxeeC|XY|F{~RZfLn*>FK+gs&)Y z?;AmNtvlrxS)EYaC;Iy=D4Zi8+7hbHmzw>47P<5!GSDW-bvHo{4IKCl9?xW)X2U0t z;Cj*MVZSX*OI5JD4wh*TFy^P#Yd7y#U6?Nt`}K-e)-|}c)aCm<1`Cc8k+iV|=a|7q zUB0DqtvJ*@lL-tyjpF~1PTI&nBskC`g{xk^A$;1ifs?4Z48%aJ@?+>|mh+f}m?2z8 z-DxYImBq4!1-}=|>}vwyuT`sL!ktMwJ19L3b-)w;=GX^&AE^Fqyq9_m-Xu8oGAQsDy0RTC5WQw`)g+L;L?P=~r_{v5d#?Q{_e{ z($!40c$$#JVC@JwvDvMBrnoN+0ZWiGl3>;E z@F4BUP#SWrB*aDky?~No7^+Y$YmML&DAt2(gN6L`%MW2CMa{QW|Nzl@WZRbWrM z)!mjEw+R%u%i_ekyqS$*bUqqZ=1lD1TX!^RHxq0paG|GZN`&jlVUT&6tGdpKCL5s|iWo_u?-^PSu2D5)x9-rQJM5hm|G$>k`oPGOme^zNr+tgx3T*zCgpi&zV zHCjog)+Mz{^C&7RmAF)?qDD(wLr5}JM5HXKQi~W(s#qujMv96{k`ZMQ0VA@5CYnGJ z5-?<$kY$$N9s54ddEP%cIh->mnVI{$T-WES&9{X$d)Q3cC8d4rN~>vLb`B9uy#b_H zkmnd!K}3QT0{C0{)8HyWjX>I$1=s}B^6sd)!;;@?t1rt6`AeY<%9-NCO0XWGoM!Nk zYk%3y1vIzoJd`^j@4yp@cgQx8e&Hd6OXl5RwynFu?y8zlz5i^Ot3ebZ$1-cY#UJYm zeSP#qV6=NR{@*XZqBq^qscwY7kD8=QEmvErPp}!BS|hOa z_j~k8f%LJUUSxM1wFm3s9MvNVx77J^^j+>QVB9-Y%=}w)O*(N$zMfD!!mkZ+%xv_f zfGfwQ)ObC!MuWjrFLI;OW2^wNsrF=>Sv#{?@@3g^*OYOJStlgs*R9%1XP*av zhshu?WH81;mec4g#B1omP||?>LkNiV69N>AH`TFDu2F@YppW(Lo{r0E{cr%yI~#~o zvb44;@YWyOO`YArU#B(IV5lqG^Ox))6W!p3&K}13ZQnA$EPI;eh_R*R6D}}h#a@`o z0fP4Z+GFjWA~L5lh*-znHieBCB&REg92pk-&LFpZ^e@5}hm4LYv3`h134+bAk2_(@seN;X<#Qh1UUk2#`~+}zJB{#q0YcY){@^g>46yT5j+t$oeHXP%p+Ej!|}E1eEjqf-1sgjXU-@$E`3IVxo1rgwn_z# zW6q9*yG4#$MAQ4v$QOz$N#lxOb68h|m-8@RjK$o=zGun?lI-yYeR@ZHeVnere}q%& zsh$XJl_ErugeT#91k1=2!DgsP^5vb>eMr;{dhXNZhS;R1^9%G8U5aWGTQ?%x#8bZ2 ziTcNS2~qSK|6JUz=KnzaVhk73xtYbK+PQ1UY1S2Yy}t!ihqnszHw>S*B7^*eGRK9( zAQuB|*?>T*Rh@9vCzdea;fv#pmAhu-5$nLzQzGY3T`b3|GPAbK*7@6y0=vEV7gTLu zK{ngQ%J7ltpkSrOK#wCg@vOnn$QWqEUIpveDuKQPHVkAE1pIs;O=V0=RAB?w1IShr z^%OQTKx*;B|8%bY!<@PI4Q#Pd9YfB!2WBvbtGVMvcmQk~pb!_h3M`B4XZKdwEyFRj z4oKbC;rT*J7C9Qf0^dBgY`!`rL}qMSEOjIUCRmZ9+?}4}r-H>8Hz$av>3e4^C1aWA z+3NH(k2Bbj?ht%ukzj%#<1EmV0eDMId2loDV0|1G@7J4KdRkaSoA#Yf?_;zaX!&$6 zWURZUY0cidVN$Hui+`{hgjvzd%kW(>6dia8>mf^oc_*+^=`Ii;j6>iJQ`NGaO@i*C zq=WW;R{c(y?K3}8Ooo~SfJC5M+mocaBz-Kg7injn!;7;Sk3R|aNZ=xgGd*=HTP*yj zSw{ae3c+QaPVL)rOHYozxEo^LdC<-A`r3KVtY4qwPG1hy`asrpsOP1TYU2D;mC92D zK+XIgKmAE@m2Mef%Iu})0l}T$;xU^bF+}7UP!oluYk)@niMZ`uM6VjbDiD;;0Yewn z9_@S#8=#By!A0uR4^7*Q99bA;<6w27r}bY+3Z^emSkH$tVWG zDUdZ|{l>4J>w_&ocYFfvdr*bQRWP{}%NrQ|`$Hl*ho_j{pn zNgbB#xjCx^H@PWC;bn%wAXkfUBpZ(aA>$M_M7V7&zcnuf2Wp;Hf&V9oyQM5`X^s&J~>vxc!LD!mI%(3H=#I0IWOQuP9%Bub0 zRt^^Xy|e5j{R2FeVV+^9XAW!S&&if=)!_+{{l=mKJlIB z3&gZxlwQ}DF1Qg2b4-aT=aKw!9yf? zjp{Ob15W4Kj>Y>hx_2Tax=Fk3%d{nLyekR|bFQ`T)ovG$ey4ig$WjBxGABc6!X$Ye zg2o2!#E(~UfO)M9|N0!V=Y7i|%mn8ic&LGk((!4HbYTy_7%NFkXA6IB4eLhx`2ms0 zm^8&o%UkdUxRwA^kYdNQ4yY9#q$m?&wvZFoAb-^Z5b;XujZiDMSw?K7ZPaG%#Gkh( zhoe7!LE4Bf zg;mI(XRvL+%`Go;zf}C3_`RYXim}~#N0O+du2nb7x;+7?jQSS=UM!=c@y=mmW%jre^> z7YJwjnTShR}V2?6X!RcPnoLZ+2)0h>7dKAe7Ev~i>t`5s#XJ;6ec z2*aA?#Ci^0bp=6bytDz?wJ&QMkX|lPM-O!^)I7?L97$+~ z4cz;p&X;6ZUou{-`hxn9y#souk3*)ev83ct2N#3TVp;C>#2*+BImZ@ICHAgol)sQr zt=f2nyz;<$p9oP)Zh5~1jJT)vwig@4NA};UVA8wtU&ez3&aV&3tu7D3*t9RDQZ!Jl zt0olQHQX;8#ZRQ7Vaa-1co=tj%~%;Bz3a<7yH|AJ>jHZ+S6a{u;2Fe0re^tE85pO1 z`wyBcj!v%q7?*&gvWvG*b$Rmcc@4*TFQ8P-r4@?9V81%9L{-QcI<3tq0v_#Bngr5P5GV@Ql2rz{+-hQ6sLeDM9_zwxctS^5F4lP(`k|wQxH}#;7wLM)6BOkvI6O2) zyGvva63)1Rdq4Wb)`2$}Ee5vmD`dNHB*c1|{1r*(fqx7FR$d|;(KQATkM3=jhjKaW z+5pCEpyOGt1gqzg#5`Sx7F@wN7oqTD>NboNLOf|i;6dN7aos^M7No5;AXMaZ5}d=H zN(5yxKL}*wGiboR(2?JnHe#ln1G>tcjD%F()?DDC17-&htyTNXm@%GBly=?n&fwG@ zo>9zvPtLI?TPo)@6Zwu=H1w2bmtv$40XV6n%1({}5EW&fp1W+O>`&2%TJ&L+${&2* zRH7Vi=nD9WL3xxOBv>L_5wn>Msf=abO*^!Zyq)QYj-xh1e~Z1_kPp?w^T>1jPH)(& zl79d^Z!Ml$RsRYSIN8Bk($p|&oc0PIY5Obmgd7kwLO3s4)q6EYi#grqE`y66kL&4n zbuHh`b{sEy>vkKZ0Xa~;z|%_nfKaXm9G9dX?$HIiCaRA6YoWnIX>A`_GP>MXWmRBJ zP`?hQIJ+%ubWzqEn`igOc9~5Sdr*|Jw4r(#Vv&hH0xo9&@=_ClTACvs+XmmzUK86I zfqF(^NaxKZ7G!N7donBrm&-ie9o^QZ2Nz zMk9odaw77nS3KN8j>B{CRpca8ep=zWb5e97DT*B8ZB{=Zr|9N9FF3C?1*chHtGmg5 zMD#cg@Vwx8a&%EVGK0#0gw>1M5L>$A`bda4-ORy--wJ*JWFR1RqQN$y{Mef4l=F)(MmubuCFd4%{9tzKIu~9^nTy$IjNXUocix zhN8&0I}aj#iqc%k;q%tLQtWSyNEE!aE+t(y27cFd0Rg3N^U#s7tH8@$GpQ6Df&Zv0Lft|y6&6-SsB1V z=Uobz{7DR!V~`@8fXiFRKcK%8u~zoo#v=A0oFec>)`OVJI&!l>BDah-t3|-z^9j{6 zvmsDUJPy>qsFFa5iY8(%|5YoH1 zHNa+Z$}@?rsA&#hp6zm%!gGCN{S2=mTdkBAo+k+Zogd=qdr$-$*i#+p*Av@CQB?1G zU+sm4T2qb7XpFQUngB#AW9p%sb!j_5EUo8~^wZ1Qb7H{?L2CedM8l8qv?(Gc>|cOiP%HQV%Tx04z+xPKmL#*>J+Aj&pOGla-IQIlpB7;O86%X)Dkb z0OEC-J=X!qQ){7=7=U7!EIY*l6HkZH{hY;HAsi~DIeVP_qwi)At$m-cMH9h2w@VS6 z7a`q+AJas5UOL*ri>)%$W#!pLtAI8<#}gvfJdezgKKFZGvG8nFNT{;(M%(WL^T^yA zj^UO~f-fK2J~TW&4l5gl0D+toeIxT~gZf?vbA2W093Ah8zomE?KUy6ys(mAy#~)wH z^zk??VB{q%Zl5JV-JphlvwMswc=U(72awQFFDq92v5OdvpOjSv^M}XHA3d zZGkFP?OiLG=*ApvvtKNS-n^*lOEp}w4R~f6+5|0w%ZAgQb|o9)ohL}8z)(FxmW~K9 zeA%bAU1TBboM{7IL1Gtn3MJ+iK7qKdc}y3+4PPZIhk_7U52jo%2H{jN1t2*@Db zaT#7@eZ%z`(c_LjF!|Q4sn7O(Uxhv24dCZ45Xdn00vufvyQ?wNLHz z(T3PB%EfL#HDz*-`WLLXHp|XIzo=lxA1=w&1xpP(W9TnTo>wlTQ(9j1!AWf4Mk2{w z-mn8WiqL7k8B}*di$#*3e$c$aJI%5Lz#H__@gj*N4!bBHpV*-Xks3D z-ZS(-L>wGN9?*0q@1LnXmWKtf;mQBNy*9prd#&)pz2H}Huc8bvcAZsBMEdGtyg9^C z1P~?v4fir}>a89QRRh#1A3DSb`-8z5-FJr=$z<*zOS{In8y(w$&`s@DL06>}F(@Y& z7|Y}AYh@$teV?pkcko_-3yDUeh?!D%4%Wx-MX)UI=7->i@n!b@qyiK;cbE5@=1h@) zS?Y46?YpAYE%_d$2wl8rf~d&$_49fxBuFP`d1da%ia))c_#$QDO#BDF0jS z4hF8K5OSn}r)zb;bf721{O!udOlA;E@ByvAm1bErRUec|);?5kb3Sx~+WIWnXe_WF zkAUE)M0c}z#FX-`OnpBKj1k<)HUgZ5`MrrhfBH6I8o5tEbSgqrEQUT2k@Zg-od|_`qHCea*yjMiH4dpncmF4pNsU^LOCov{cQ6 z6Zq~#yk#34G-8qjD`stDaK~2jZmag=IQRIGIC)JFnJF-G=WD#H%P82KT4(h`8L*st zgZbYI{dgkh7szQ*7IID7*hT@4ZtC%(&`7wn#1vn_ye%rjs^)r3#?fW-HhIS92?|_e z*~sU9?$=}M*Y%0k5@+>e2tS60OLbIdu(O3{w!Qrn&R=G1!d4(twoAFIQ?JwJ+CCR2 zZLhGNQ=>f{(T);)4RE74@e50|&9?T{khb0LC37Gpf`^UUJuGRSAV%S^rGhkWhOhyeU{{Hy47N2XU&vqfuWds-Gb<8xWo5!QBB zoCk<&!!$Xv{yChK82(CH{C4vZ&sS5uoBa&1yM6}PWehODE&$i7eJ>OTnT{Acw&Vc+ z(klp9SLYHp_VmS18uLL*^^sPZf8(KPm1j`^3al%E!w!t{HE8z^@$*)fx>~-~?RQig zr{N1a+w2{X{8H$H2y|{{YZ6!cXc>U2tv*!mR|B#=6=(1$;3VM{=ubyL8PZ0GpLmqo z(NLg5E#Va}=>ZPIg5@bQZj@;;dN04qA{ohWaYOlO1JFA+%qZ6F3IHsG3czwq-wA&= zUzmmskr$}CLWP;3Q~uMy?IABz#1EYY3`@#*Wb^~-up9s^5!d~)%KGTZPlC}2mJZZf z-z%GsJcQSm+Xhnaib{Bv!`u~|IIqpP7%-Ck#4sHjYUOVrJ}LL?X2ig;nkF^0TLO$D zdhKlKWlot`PzBYE8bbzxceEH28WG@M&miW^6(yGIqEB=3V*7TYNvX$ds$cdo)^&o*Wb8iU+m72 z@YVyL_93=B$>!j}Rz+~^0*GG3fOtUWumJy)txJeYu!U2Fm8uHfh@sy3Cvl3U9nUrNfulR*oOidVGF}v2%xs3s zK(Pmx%CmX)wIFiPS#~2)E(WSl>c}%L^AkfUCA+Ji{^5JNLDp?eI~AYE_<5&j+ACuD z(LqQ_E+rTE!d}6|lH9U^7R|#L-wZSxX%8Z5L#6KYA29%mn)2cSWZ7KnbIjKjcz?l< z`Y8{xQmS*RC5{PVSkdwL&-ioh0vf)qA^zq-gN)t^{XjHpm&SO2g9>CD0u6=&By<6p zC?^c=N6fT1>=!Q^)VSO7N*U;43yf;pe%d6Y*Vy&-(-L z5MnjfT9d>b4Y@zkb~HU;I_r3yl$Gpl<}oo1Wx}jww2>jokaq~#QzkGZ?GpY?w7So* zJ#Q!D&nckC=*_38&izF(Oz8MNlVowx$?0I;%g*?UTH&!r+scl870)58bbUXmLUkSo=9C+6=~$13vRan`JDjL+Z< zG&Um-0ZX3)pP(B|pxl46FS4P$>v2lGZ^K+USLE~Nc~VcDoK> z(Rk9oD3d`TSh@Ce3<_@|`5!KKtp;lS7OJI26bLrUjUjmBj$v5+l9Fa95tYV2Q~$#k zYjRvaL9+x1O`;R1ba+#cpfAu;xjxJdMcX9usnPc%e24HO8si+@)lh`gy zR>J?vAxblqXc_QobOkwT0H=(`|C7#_)%;^;ZKkh{gvm}r_R<*q`E398Xa$*U;{lX2jWE%l z_qQf>u!DgG`7Y$xr3xg0s-6P!X>K!ho?or#6kiP!-DBIUtzFK2{vfG0K#uRASqZ!3 zk3%!fKKUaM7Em)(@*<1KkMaIS%xf?T>Ucc!c(B1KOC2l#E{Rgv4s4Gy~ znup@K9vZew5e6bM%!g*lTv6~2HM@&@E%Zl5w&!s{Z+dI=8T9As5sKx`U(k7)KEwrD zx$VjvmYii9WSfEBfH~XOzk<{4j|=U^hOzP93Z8j;6u8+yru)CW?M;9KDs|5ihaPqS zlML)FdfJRKY zf}w#9>LkX|LdrMx{-g^;2d6&mh5H71B{W3M2P?2OF*PYM#N+Hd?ZYx?F8}ptPW@^p zqk&80-cy8JC%5%tI?2K#vKrqP&X)V(*zNN_>Y&w|mOCH*%bFESwg7%^Akm^>lkL{HpOYCWbPe%Nr7By5ouOgr&$7u7x8cu=m#xCyZd-nif+^aRTC5 zt%e&1O-b#PbL)SE%RnN}Iz^=_MHrDw^Rb${jNB|{d+0epc^;>^H_Crvql<0YFZULB~ zft?kxRi7ySfa2T_Xk=AdfSq{YE+d2@Su>%~jL6VnS6CwYp`LCzY~^iLuiB)~0&Ihm zY~8Q`^)v?N+Pd{r7}RWV74IupBwL|+o57RS{R3_ zEGr)S)RLAl9uX5o-cES@Roa0aJK@xzW>FGPd8@;gWUF{9R^SkO8vQ7;fre{sXU`br z#=|>P%88qA8HaOx+3>)9nU5++`SGJpVui4ZXo>OujmEnA zfQ6z7eZbQN`dt)<9Sdcn)c^orOEa>>V`bii#w27ZG>-rYH)yw|qG6c+%YH^2eiYxq zhF$~d)0>Bb0DesNfMu3o-R`9%|AXD6>BnPt_+0H95oD#NUHi^%^0ePs1X_5=agu8; zt+vYKAc}wm2l^f?Hugo$RgmSdp(l_n7%A|GZ7f?Y+z&ag`BiS65snsnv34nW zaG&vYs@5C34F#dXT%eb40n=GP^~QD)N1?!E#voRUoaF$whnS$exMQ?D05^d6jyeFK zFB;vna^#jRgl3L1XLxq|>uq02;uE-A%yX_EDWtkDiq25dbOAtu6q-YTRN@Fw?iNzb zs{xhAkjX0)`UIb4#EMS~>wyaR_lVHu2A-=Auq(ot=I!$}_GdCRcyfbcyjvcY2*Iz? zss`CCtJe^Z>9#j>RFh=3mpmygoy^VcmVvhnZ4(|Tvt38uQ-!?u9cm%dlFwx|8PMX&>Uh-?^&{ZkF#xypxH z-XytrGUd}%j+QKQ-y1r9CJSuL2H5v{#lTY_vlr|vmA7JX3VM*w;%h89zJYxk29cW3 zUOZVrYuJL^_<1Q~jm`DT8SiA2RteIWn)!=p6))Lw_;#IyS72m0Y>!4x<45JkuNims z=X;=iUmydYl!Wew zhb5nk2ZRL7)WT8}&KjnG(zFOY1`o*Z^-_USEm8)Scgh&=6!fQw#hOSGG=Z>wNr`FC#zuvgz8T(N8H z@BVHJ^Bs*4omSfYtY@d=Kzjs#QDD)i23|sKz#ekzf2WZ{8*)pe&&Bs@<@OSPL{Im< z5U4Rhbt*os;h8bmnXVGw#f@QT_07b_!vO8qWP2ER#hhtNNOi^Kaur69dF!FEOx9?D z9L5dnm$2(ZjR;V^nUqv$Gwg>%{EffI)Q$rPB$+#o0Pc%yQ7kqB>53A6OM=0bl|^|@ z^H(6?2?_(7pI=&OdhxvwYa%IBeka^l8zP&8OwJ75%!O24DfWvT`_{pr%4km?r*ya}zP0dCRXChYt>|FxVWBsOnpL z@l)E?=DAwIE#=O7wk<$a_(0GLe`h)E`3RWckRND@b3b&bgB3H%F(Mt#jguE$(062g)^Yzer_P1ux*@rS9w3aoRQ7ycsuwS;4_yI;M>n0nW;I+5sF^cZQ=C5E7-}tCRVjtooOl^`{Z-eGEYVK zQzetU&3E2Y8`DSjLfJc&g*3DTTT-LGOsyz6oXZ)&EzKq? zkA5w>l$fGAS`s=BuI(F&?ewH3(I8X6R^?m>JWJW0K5trD1yowy%6m~tHAEgVjg{gN z@8J=kG1EM#BHCF)!R4SGgKQlD)&&ydY9pLC&#*XkJm)WdB3fHT(n!nK_8_oW2VKS^ zZNDQ5fPspjxsH5wT@1)A+oF7XrFf7FgtW~fd+Lo-NgywQ5gsm$0x(a{7Ut;)Sxpdt zaSAe692OXMmwR`qVihvu5@EIa{__X0{b&{$3|vzsfm0H+mt-xHEq&ObphvOAH8&dn z?B4NY=vL`JNa=OuzFiQ=i~$XxASZEy%oCo?55lV{uWy{GSo{P~r%h4l9x{V|UJx|F zLi1crg36%=?!a}~`|Qq9{{kVXlD^lz_=&9F_ofP*sdSU|!%m`>U+L%XSSQ9&+gH~v z8BKXjYu^kwW`hA?crEsdV`db!CX^Qd0{C#!XTJMcN7yU*ZThM%?6dgxtgK}q4MYJ8#a zA@LuKnG0ad#KQ>eSb=;QieIGM-`H8i6>SGI4%s~Bu)p7X>{$mK&vRb!%)pL>k^a9t zv-PidW+lw@B-Kw}npHi8u6~-%_Z@bYScTlvu3N*%8)_|Z7C1R0FS&nkLS&9rjA+o$ zy{%~igZeXqjV@qz&xEE?*o^&PWI6^bCC7hi26sw-sl3^^7GK)AOu4}^gX&!~)$)2i zW$r6;d^|A6Gl4lCl#KQY^fZy})ifDFgw0%ZZ4YpsTe~CJ%s;hvgSb~gvR)7s8|2Nk z1(XR5k<#E-dj&oN04vsUKcjjN*qqo2{O3`4FzS8@!!zIKiY@19rq*YJyoY8$Hw}=V zqA+L!JrD@@VSK8)gXYw)7QX8qi$-4s7MHL4cYc7zL?|K!0i)f6kN7H>E=4E=4x~AuqJHnl}gRr?wN# z9FV@SjOU8a1sWs9B<0VAVxD}UlEvAErLzS6cQDZME$*Q2dNmdK^r^D&G5rW1gqEa6 zPH*~AGhYnAo8o1k*NY{dkp@Xeq}vrs-5`DE-r)P5 z@AsVdH^#l=jyuL3I3#T zhLX5x9s8B@ZL1RQgXM1Lr13|gv-P2r%xfJuj~{#7fkhJOjBKJazZ~&8He4Hxhcg-2cx*dI&sD`nQ?i+?p)* zkC!YEpB_dB!TblF06t+*FFyOB-v1<1@LgZ(KVIU1f9TZJ`tPEKG7N|m{~zY>^v{=k?+6E-KKwV`x|y4&5Fgw> z%s=QKFU?_Stum9q{YRa|AeC#=|A+anzWT>Ygs}H{m$m;vsPM?A_y1x3y#IK~L)asw z_5XoVVzl3dy;Zw0F;Y%W<(ElZlq)?+VFxR{Qu6YlYLym(jOw-2QH<&=Zj74s^h$)+ zVEGEzpy-6qhdwt}^z-vO-Jnust6I;=rEosp41K2mvOVHi)M9s(?0aqP)JGpiZdbd& z=R2NF*vJ|;v|)_Hf=7$>d(9T~XY1?sTdywnSCZ~6?#?$`9j;<>x?NOKQ2h9^Ob&Tk z5#DOC?J)uhZfKJ?id6sCpJ@(zzpRdi)6;BXSmeu1IJ4h=3*AdS6~7fO#wn~aR#-uw zF6sUbIRjLQic%U28_dFvHrzvG9 znSPIs18*fMVCkF;sca&Te4z%M;ZW8$RV28OYH!Hk{7LXEmQ8qu&ruza3?c z31Z{0ZvI0Q_Wb?ZA%;^swkzhD)N*f9XYGe~4nbL1u!z5@k`Er1o6o-DvR$WFH(R6i zM#kAMykqr;z%~RhnfPdw8v$vl3*eEQZr7OWt`E^*Raki+J!tm>%jiY0Kv+h1nra2{ zK;5}%%P(ro*S0yIq3cWFH3|l`|N5lV0(359B6C0d9waZbruIJVR6GG|hm3j4iID9PfX#Mq$_RNadp4ge7m*KB+paLWXqYo@T%^ANdl=o2fI$RAl)At-fDDn5CnEM(rKOku<;636cC);A zUS~E~Re=ahaAgi@u_r~M|ha=S*;XgG(c_5%<=*;vM3hR4h~CKg1J&-&F=iIM zuFPVy>4`ZUNeKu6*oZ@gvjS%)?s8|x8zcz%DM&X0d=UwByscVu2p2LKX%oWn<~Re% zrG1*q#U8c9%a?(>BXX{gE3B~JzJ1%@ZH8M65xXb(^K*odHKwG z|9+IldNYH?p=) zcVNFiAeDQ_BP9vtd{I?nW|9kqFcBSL81(flq5?@(XPcCNtf2*<_-<>6JoKUo<5T02 z`}lk=S@E3KEz4M}BtRl<95AlS>m^D_-zjdW!w_!(>UH=?9%`~Zx)In+C#Xr>o~i*Y zGqpyFg|JjAzJ;OdSLVc%4%gWAMy>iSE`T+c|OJbJzL47bD^}*l*aZNx=tFg z`}9lrQf~!CItMr#oC++Yo44Wg>6h~5{xx(GWa!$qfLn59;@CRa!=8-&A(tt+*T_}xuaT?4 z-5ZLFFQ98%pgxX887$b(H;jx1j8sV)|HH^4#^7!zMJqChs*!4$!(66X1KWEnntTM| zIy?~4d0?WwWSP;Zh+KX)Eo=&2U&MD?;$B{7J1HTd5AnR#qCN4v+0 z?7SDHky>9>YyFK>J`}f6?CgpG2_fA}UG)Wt<=@iu@!>MV;OZ0;(mtW1# z0jqhxo`w=S`4`!ZT`_}8qnZ^Wh8qSDNn^Oeo^_4rvwJqJ)>M?XRX3(fMd@6gY3eL> zEEQY*v>LB<4BMQn7{!FI(WwfKj($j^S{^@?^-3X@&6p8zI121pTpwOCM|L7s_*2Oy z+EiZ9*Vyk^!NZX=!y3FA`ee@46d$OS$?+jEit)3Wcr~ehZ(_tkYoOoeWiBBqnPSfC zc1z8|sEgABRr+|7e(GRKW(j_VKb+rvg5iEqX|pjS;`X*=LX|BLx(+_Z2sA%>)IPMM zCz;aZ-JGZQ`krSWk^xhd8+{j-ieij>llx0&v>>4+$n8*A3uUi#oPt`M&4mQhDnv{gndwdC3$vK(`x0$0u{^0pvJLp*J0c{ z>qLAwU!Nd;6c@nT#pks8C~bYeW|Y_(Kce)W%BUHy&RnD5yUU88yV7`!@l0n3MaBbn zl=;NC56yp0Rarf9SJ1INjP6=rHOy=!ytbuSa95K>Jvf<&>ti;W*yE2P;zefSb_!kZ zJ1AM{A%Iy_2<-K%N&eB<+Chztd{tMl-Qk(gg* zqMM>hsX@e=t!077T_mtm(Q;iUThqQOPQ#p{UmI&_(O7b6!z~O8V`}^EbuZw}FLciG z9*Gs^+M^LOc$9=!CcCk3f=n&KwuWA8^^X?oD&X_{Mhy~dI&>i9b$T&TVXS-c771&; z>~J!MCJ^Vutg=3X=l7he)qIop;p@lLD|&X^fkeCn;dXL}u=tckx}ACplPmt!#G`@` zOMzJ6aZEa(&k3gf0OG}z8d`_h7|c!}Vi{3+cS$?BqAD7>mTIUpScp%=yhwuU5d`WV zNKV8(L(e`t^)uSNKTuGpj(x%`!CjtcNLalqO=CU7jp7_clcl|NfoG9{z%4SAYX}5R zrm*-#&V#yjeuoJZrr@;c+E!Oi#qH_?yVP8JQeF6kcngEper>P~S~Ag)FTfwFI>Aoi zuXIO146zo<>NB;ZB?|bjA_BfWd{@6yt+bmr0uUs-?xfT_PQxG9J2+DzQRhhS4`6?I zWWzqhPQH7`FD4iwRlAQ9tkuMp|X6 zhOTPQHrzR7;_;K9iEHww`aSg7%DFi%XYFD%)}1jh)$Ufh+jJ#-6Ussx*+;`p`l16> z1h(^7&kTb&iHNt%Xmfx~?JRmHym&lWEqUowmTt55UcNH8M>$%?YPpS;vsmA+k|e)k zL~}A_tKZJ>yfk4#V>FF%ePOCZ?vll-M{1O7k53yo)OvaBN+`u1cE$}e%xU&5{)U2# zr%AsKNvgI3BVN|o#*O}bW;9wr?z+82WzV5_Sv~SiGW;}uhM)5Cz$i!CYCbcG_^>zd zz5~w7tz@xxcc&~EF#$e=drMY#uG=k(<(!twmC$97oal9HjBNdy$rHMW>r z^eOH4+mvm0kJ&#*uw3xY<|U0NZR8(~+Ue-1G+eE`e#u~F6!SzpIyjj0WOi1`Xe5h_ z>1u;BhSR#5SwHDml+XD%k2ybLJkmeU`DsD=(MZ*K8PNo>`mX3?=GM@$QBB!pkA#=^ zy3P{@VIqlR46S@)=c$z}qzbDGcjw zp&O^UUpwor^blnq$C>jzy7c3@*uB$<62Dq8XWnp`VKP%Ify}L#44m_T+OvrUO5iW* zg=kdF51{3z)jW=`vR;XVfg?VdxJ!5M(Q_jc%14eEMf61@%n9G;n|r3{2$2ohGSw`cLJQgll2bHG-Qbz&81UiJz z*Wr|_tg2kNb*sZ^6h=mA*7ynpCGs0$Z04~>=UXN#u4&cH>y+KjO@m^(*;MPIG%t6g z{8X!iGGvk%-sHTNF|6Urj;d;G-=3}s=#>FJox=Vu85hFaBMz<|tMp_8`n<^N9QLbW;;qD11!A*>xsg1JobQPvF-$p$>SMj8$8SwwS`nvAS8aL*Hrhi zTAoECfZw!|Qd;X@urr(}t-{1ERSTACQOJCW@5!g0XSwWe_;u$wr)KXGc7=IieRX(O zG^di$P}bV9Ly_I~^mz@vN+oG}W%<^`BNY2+?oulC1<@lDdka6h^ zwnJUdk2{(W4isi83?~_7?!|t2d$y`wY&Y$c ztx+dh9d~^i-B0ZG@lCE`*nG2?(|xSLL~KqzXVikDE>H@e==RX7(W%NMzi zUS};>W49H4eSTuxQ!`bM=4%&?GiaWVMQCaz^Yb%~{q#>~_$Hyb6-_tfFHUkdKI0+E zuC#2!V@jR8#{DI!blY6LNUx7)C&5opu|{&0G_OvEUyN5=7y08Kq^H6Ouh<|Um8qd} z8F8v4M&>SU*mfnSIl6XlFc|hJOr~$4=vr-ae6^)pTYbC|pXj)Z^x>nsmqC!^k;TjP zB^TKQ-h_iau4)iZh>l*C+8TexV|qNO-xcz1$DNeZY7z1CPwt(IR&CBCx3elt#KY+M z9k}YDi@ERS&Rxq}1Wp4WaUpY>(WCzO3m%hI1@|zY`Dj}fpz(7MKO$UPQ-Wb?bj6VHpzDWth7atl^gzu$Gt)RIvkfp%X;4-MRH+f6x>Q1Rt zT^=V2o=>(7OJ6S!>>qJC@zxdKKeg%J*sfy?OxZ$N!e#>gr*xG~{lzII+i_0#377ub z52OW!nFFEw=qpuf!&1{-i<^eq+K*g82#~syI8iK8!BIVMeR1$a+crZB#sJS57}BouUJE_Os#UiG%6 zjSgah#}0vzP!?#ZC0~ zBI-`>@oIHa{}jRHqxavND1U9B*lzvI`~qt>Rw+|$w?&NMcemeubBvKcPubK2?(*yF z!os7zv)}9LZ@<2fh-uLJri~df1v5O}A>kL;P}UXBt+c-JI~KNsr`JqX2~QnnT)HQ* z+I+G+|5rBoCr7l&Hb~&>c;ZiR%^=qxD6Gxc)`NYu@s3PZ2s_eJ7@Y4wNG z&77r?4~m*~cbRBW-=NFPgz~SN>}R^GMVOJk56!Lae|H~c-f^xeXGk}S_$*%}z(}K! z=P{I{{Kl+0``fqSlWNT%W4`Xf6=ex73gwN|qy3>6;mK4%AyZ9ih5et4;lH%CwG}ir zP}KWl!WA2bmuNHRCwdZ{G8m1Xxm|FiE=aw9|9+xr>_G@54&5&wuNh!wX5Jr=D(ncQ zq)V4i?|A&Z(qjHY-rH|orsHSbQHAD5Qwa{P(~qXM*p3}HjxzE2e$O=wTwmQ&NYE@^ z9B%pCKI4S#qsm$7H$&`Q&SYoYQ%s9X5gO?nk>}8?z`*0i5?&&Q_*fcPus=Ni zU?lPd_gR5C+FCxa(8?vtRN9u9nmDRe@2h}8CYP_0SI*WfEU!K5_|hUoc6NP_Xnv7# z&5gGJCD6c)SGIT5s+31l0*|-g~9w#&(wn^in(3)!~XW-Y0zU%U8cTJ@A*D`9Y2 zDQp3wGLgG`T>JRol>KrSeyhGt%z{QC)(7tlNgZ<}Y|-P(65Xv?_iJItrD66L&V$~x zrqk6TJqg?^DPLQHC2b~bWmUX7Ykqb@MYE3} zglFjI@<;_E1D3!7#g@zMBDz&-Rp^Q56W-Bj{+?=N3n8J}=vgc$TFsyelkthcdDiph zZ$x6eU9a9=>~JEpn@y2kpX`k4EO)ILPC(-S@hWTIZ`TLRsp&%ApZEKkgE|^Ly@Uuj zUMgVPjR}#`&`8*n2||-S0yapiCF)6gkeIx{r$06eFH57&M|)_HK)Kw;Z}q(&*N;(! z0R&V{_buI+=f*xEBF+b=vCsMxl(&zK9f9>{apSVD7twInE&`$Vpt>T>+oI&Im=d`s zE|(EgLtoQh=e=z=t(V)hF)JBQ?XN|vo0aw(0wzJ9UB7oo-_M}8Y1Vy`d{lGCks@J( zvld;}(_N@}UYXy>TOb3Gkb9X^?rrUhx!eOM?$OETa3Z^k85PyPs}n1%>(muGZP^ds zHlz=bt`4MsNmm~9G4uMky?z+CK=KtY(Y@u{gsl`T*S5!46r<+@Dl7^Rw38!OT|OHA`nTv8a3HlgYCw z)~E^d;p5fk5J+C{6Cq6EUWj#JR<po(lNX|cU|H!&)|kJZz&(eIg&%1{j3{7$mIKF zYX2!`v2I~%iz%s{dY3gsY$tAZY+hub%iB)a8r3!uhpp0OM#GWETigV6Y3k0VIGpxZ z@tc!1qYp=(Iv-01p){<@Es7D>Yqq#w1}I~z!o%W<9~QxCH6mD%LB%?Txa*G|rz$A& zfz)DuQ38}vG&->P6}>(ZjFp6r8u69Ts}Binl<0Q8Y)|5M$50W+3?U0srd zf$rgl=EvvA9KFqRIa*h6tJSj|&gLslH5n1b(@T30)vKiIbWDOO-%8Cc8)3D0|JVH; z_L=bd%d;;B>nh7-J8OeVkPJT2LOt%1Y&36gGv<{U8?UEg^Y-8M2xpr zCF*$$<%QWv?;ck8#k2;hj-ovZ43d`YAe$lg{^@$b5G9Yn)TH9UiQIg4ELYWqMZNh} ztyw{`7e0Tche3YK+G0RK-DL~C!j91P8GlOoWBctX7TXE>BtfB)I#8*5`r$LBl!ocH zWLW~UcI?OZ)b=@FcAu;xsJTmgKD#?80Q9<16qaYf)TYFAU`R9|uC3ItBw#jo`nj@~ zPCy*1E&N$zd*1lLQXsdJGBTEtGN>)G?r%6c)kiK6*gPxDZWx6q{CqI0oWYY(E@xHF z2_8TN)Y8c+#nlGhu|yEdM3Y~H6ud5+#ZiPv<;JA?wujal@j7?y3MyvYJ=vJ2CSHLJ zP`R3wvAcKuIX^xx!lhy6U6dr3b^MA<3QEfM(DX0U#M)G_iU?MVU53x;PNCaAnY4$# z%g5=bImQynh9%1_Q9B@JmW<#B)z$sA%%sj=Kj~f^q*1M%sssX?#zj?E;C7lcW6Tj1 zGc&48Sa-MEW~oCLIH28Yzrxp(17<6$Ib?_DHrJ$WBDBq#RLVBmY)92sYU4&RX&d_% z5bG>obC<%-IQ=5JIOz3Y+TNOK^5!{tfB*2q{0JJ6Px3)BJl#=!O;GLb#j{@*K~c(V zbont@CU7_wmz3OnRvhS%x&rA1JW&2w-W1XAmQJA>|~}ELyicI-3uF|DLe<3)9t`R4Ke`Wu8|j z;qG@LAu6Z=ST(-`NQg{d#Mm%#B_ zZ6Md${&z1!uZr`NEtE9z9zjwOQo`k7iR}AKP?3C~ZG6U;6_1Up2g{&Z9$96L*A7W= z?+MBhG%)#o{Y>DZR<|s6s`cYM@D$S=)yUUFYnYu)H4h}BwXmb&$(!2ss8$<$l;dBM~#HE7s!c(!s$e&!4U9>Jt8o{3>THh=}c9mq163= zf9E4Z`pah)$D7KjZu-5KWzXqy52%fvMue+0+Pbw{uk@trSR|ASI!A)bw5S3RI}3J``FcfXKxGel}}k44!+`sd#~{a_%_$Y;ovr0dh@a5o=s=_ndr0kHa4uo|fx53+Mm2`l zIb#y5;qv$qq`F$s%Cj|O&6BQ}KjFYdp;~Sdxi*+t&0Ao7P$Us)== z!Sb%j!Lnk%q##}~RaB_s5P z#Uq=|F=mNRLH6)5p%ka@i`A-JL~Q!u)YVm#z7G?}&n)+_8Dr-!MQ@?_=DW2QB%ofb zNmN*`pjBnsGo9)Uz@NHoUi*hA&G+Hb*|ve2PTNd_RU((8d?-<~fwp!biyiRyB%G!l zEBvpG;v>GAgsk+`IAyBn$kz>ZOZ#M=`j`$O1N%3jD%CtdH^<;`0xIQh2*|PtT$Hmi zF`MO*T&KpMfKtVq!R^`|_s#L(Nzlr=C&)F8=uSmx2h5|MO>mak9cIPz>U$nAN);;6 zYeuq!Hy*)XAzI+fyOP2dSeL@f-(7)jP9Gs*?c5AH>h_vTf5Ab6x}{4>zNS%<4Lp7i z#|MS#UnU`BTtPACfZ$4V)8$PWkO_^8WoM~}?+&H>qR9*Yyx}h1(Z#T_+vjMFDv-C4 z{XRk*!c{wQy7Td5<`HA=FU1b?hAoM9{ZTv|+SlQag=b`kU5>1_CDu1%XvxjLN&8A)eiuq3x-9o0yO>^lr>xcH2S^^%?^;mOrBxQNlzHPPIPaM#E(CoxT>n=;U zaq0j>Y`kh%R<_fiX>b^SIE8#7#&^2du#L`fJd*Qfa)B9*RO?N${8EQvN$8C=6@qst zzjq>PC@VBdnzDhz$O-GiwNhRIXmc>O7A4`fBoi#PPkyp87Zl+XeR|}=KqVjg@_8_& zab);#p-m^@ zT;eFzuM$|nrhmw+?y&fUsr4QYQ&Nv+=87?ANT?0pfMmqg>93RERNtwjduVAn^?VN$ zLBbDY4XCu@UL%P1J*vx`Ff(n~D0!7I)F~Z7`{r|WVwzsU_+5xU^pw4)*iT@`dHd+0 z#YBmI1rOWqyDCuT7eh^eTLhlA-vNA4PmJ?nrFucb)!h|!Lk&;fn03H{cGWOC82)bCVKqgpJIVx8 zJj&y4{L!`7-&rv(%_nzHG}hxkDuxzn_yTHi;{3Z(-QE2!f6+C-y(f?xI5@lzm$F?~ zW10|bmX?ZQka#vBBDn-3~{3^ekkS**Kh-p!pqX{D5zMBZ=cEraxarSA1n*hi0Y1g&OTcl zU6NPYy!p5uE8ZOz+XT{tQ?T;YvZ?CdO+@w|Qq zYM~%?tMVdWrEICwQq!5b`(ztboa$V6!a#+?5T0jxSjE{W)^i*P>>)4Xg9i@+JT~ky z-KVA#;>g9&VmJ&xV^G*+HrERv6cjqcc{T~`L0u-qXE3fAVISy{4-)6 zX7je_M?Bt{qdL-!Zk=_+O>-rzE-1rLm~py-6T>GfVlirG=~dn4f+J4S)G$@w=O5S0@rE zk0lK5MIEUw0zWF!QZw*KUVF#4pr)XjnL?FniSjW9GE4${iRHo*7Tfi3Ic(V&D9QK~ z$-P!kb(BjM5ae8V+qe@Nq~Q(x#9gO(1BO=P)aFI4hVyOq58gq%$Dc5t4tR|DlDJV+ z^G}4{MX9l=dZSpVLCI}zB8x*hs5RdHfXY9~z_@~ctN+}+yX=kse9Ixlp%|mnzMe}| z#_G3JN;Yij*IB`kT3MdIs5wM^S0#6f?~aHvhnxtUo@mKDiy?IGphYCM)+DrSQvno>UF}u8|+Vb`YoK^ zu?!@O`(qDxo~cKtwwhK*Eg2VJY98o|=6V^|*d)pwty)eJ`Jf95DLp=~)gRVApE6b< zfQ3Yq_7%wx<+?=RVu-lo@%@fL_!{3limyAdc&}O_p?PCoz@<(fH=lxdN!Cb|c$enw;ag~gLWl}+mWIDc`hKlRlJORN`I zbz{QGAWOmGe)S%dvV3?6r0FmP8jA%0oQIic0K^7Fbx5)uF(vx`j`zcuo^U&B5Wu*g{^I`N$;_-w34#;mYb^*w$ldcoKJTq1&8x3zdle?pZxYsZJ^+{* zaHm6|x)DOvS2)YdGQUwsR`_e^A!I`r*sjg3@FzOwr+`LBAlQb$u3hg~La*L|!7*5g z?uxm=V8p=kG?O3HzcPkedVdJGb8lG<6Y3YhB1}~5P@|fgV0%8#>;P}`s6#j$&+oPP zgI)WLODeZI`H2uZ5k&FFtvXu(-hgmZV?%t{1+}u)k7e~oZRXrm7#@bvu2h1 zI$s4975ZXC%s%~czM4NbYsr9{pHo@g;N7(H%BS;H(Ql|Bdm)fCKAfYD_qZ%Q_U6Sp z^?)H=4flqiATH7m@YN@k3H)5-t8TB}z+)5@dfY`kijjfh{s4e-1JnreRYM*?NW24+ zty~g0)qn8vX7DC8fu!NHu0J?C4_mOnNAlaC&^Zr}$9=h@>I0P$3an7RHoX=|>Oaf- z>t=T_@Z|v+`%St=K1E1m&DEadcHsZxy*`b+u4f(7bx64TmJo<%lZ-%8_nH4+BVR*C zW?z8j17YAP*w_@eH|!f;XUpTlK12rCoI7Iu%= z<>CLh{|~n@q5=OJr#MhOd5Y<*;X) z!}>*hU;a!hm=AD&?O?$KDk%8-o;?ZXAykPDD!`U|Aws8i7l7`RlIqUx|6!HD86Z4k zHW=$h^Pj>KyR2e5p2e*6L!q;6q)^P}-CYfeMh}5E*`hDD}|kjFd@qpQpsVFNEjqi z-oi??5Enb6WHp>lpMUUnAqG?Q#6X0E_TSF({sx{R02fic3Tujt2K7cB@UQ0%*9P}{ zCe1sXck1A7D93d1TO9^VB=%t7~!qA0x2j&aVQwE`sn|XU4BL53AI&9`E zG}j+ILfMA9Q#Qf5?sdL{vO+$fbYBUMgso||<>ilGBkR`6~*$BoKf;6$_N7DK{wfcEd4 zRcMDmfM0kEWWG#T+MaPu6APM5{mRRFBRfxV9H5NZ_JK}NxcrNVM!yGCI=_DGu^0}( zE7#F7=1hocLna^#8$iGwlE}Lg4zfs*AY0_n(c*UVLJXkbu-^Fa-MWw)0UOD7Azd3a zJM|IS3Yp?l9XN_FAEQHfU5W}T2$`dz?>4)9h z+hehAVb$i?2ZcRKP+I*uDZB(2?n%gLC4PQPB;t#2UzMHwiw=aeTuO|3<)h3Pv;Uyw9pMxk`nhB<^Z-`aSV}(Ps*;0I|LTi9C*J8g+LEvR-K$ zPNikD8V*Q9BCDX5LCKqWkwL)FA7=$}pcr^9O;1ht=_ebb*JN>QX2D=X|5AT_c{00+ zBGic~K&k-W5miVE!J(`V8;f_Vl%>B+sBSrz&c2WLrx(BmtZ!*N5-R8fNiq0fxq{{s zd20faAlMg@^OG-(fuOeYjuX^P3HjaBu&{o`>^yZb!+$PFx`|+;@%;k=iUfchrW^FX zm#=lO)ZPmj(CrW(FJ4M}|5LIh=%&90vgZCuW#0;xJ~%#}K2tU!)Ow}2{q$gk5)>L4 z)hbD&7&XEHG8La6(jh<>cpVH_T#ZmHj@uslJQrY4FOI?(;?!)1--H4PU3<*4%*Bov zsr}_nD$wxIk1DuvGrRz)2;dVk!cBVh_Pg6f4%tx!6wlcbB5#O>mL~q?!vnN9^o46d zGhzSoH6$kS@CX3rY2x?tpv|qCK(+L*4{4w?8SqdL`Hcen%Uvb_liJt9o|N$)->L;N zU96O2P!o3JVf_7SEp0F?Tm303(Z3A}p-cg|8Z_Ub9U*^F_-96sAPTtGow;_qzW*K+ z@>evl7&1uZ|MA+`TQF>ZIiC#Foc$T^4?T_8q;dw5MYme?Kd05$0){npIWXjca16?} zfBnb+@Jodc4FB;O8}P>r7UE5cmSca;J@{CAb!26F#3yudd6e`$D!R&sX!oCWZgf&TBl3f=4eyRSk#jsM@d zN~CcClP~{rT0HOLRaz~5&Qq^ZEH|5^y@yU5K9DXYl^h-v`b1X^M#_#SH%sMV95qAW(io}!2YEPhitDx~E#rP-$=YN1|Qp|$lc z-xD}uB2s|JleP9I`m>tAUa#{J5(djH-*$eJ1~bB-A{O|o(txhENMT>J_L(~8rOYJv z(8a|?)+NOPHD%g2c@)*AQvb&yPXQf53H866$%(QyjGmvr5YNWNb6a+{dd=jwyUM3d>lt!M=` zgSFT1j?h6e@f+*;IJ8Cf#=8{ALRfwE(CA&qA6K;j-bQ?Hle1(gu6?X=*#Cne!P(Ssobrf{gmal z+ZE!G&iUTqMZRn#qq`mK<4djHMBe>T1eAeowDdAMc1fX@hLgJH&o{kkKozNUw^y8*G#09R~Bq`ThinoH1=mvLOB2 zfHD2F$zMM5TsIwnvkgM-8~^&?jk4(S%MpL?3Q-#~L{76(G=N~>bh(Gc_?SK@YTemf zlSZN1zjc9dS5{!9ipOC$*`4Z7!zu`wzJUzvzc}^tq(vsDENk|f4fj#8Vz)HDz4xxY zSnm{N61E1_!|`I>u$3fdjrGyOontHz8;3$PRk>Kl(m6iiZw@1VQ~?Kqq~KqL1vT5DAljDr1`dD_46zj*JT8Hz3U4E=8pO0qt{Fy#%s)~JHiYG3N**3I z*x9trti9Op45ia&Y}k18-~svN&IXf&gv9<#--%1&^&S<8lU?l6M<7?r7qc?`tTSJ2-b>p`o3+q+cL43-bib-y z>`0K>U+UH`4G=ND7^dLAT`&J;&&VwHeu>2JSvvvLC6k$nLn^?f=Z1ocsQGv;@t{YS zFghOv|K(vAy>j&r;~8G(!p>D{rT-sRh<2a@pp9qf5Tq+UK0u zt`9L6tkf#N8Sr0Ulyt@NO1Ygb;fCdbDBwmT;-lz{ zWRxm%K8Wnjo^f_M=w39ZFpeyRGd(;5^_+bhmDtNYq`hLp!6yqPgs1J+>_|lD&^`EcgqZl29sXrDl)7&ipd%d=R|~4YcwS( zKn-GNB!fmT{?R=38aOgRGBJWq>GScFzbZ~taqlR~7ETU7rBvi$^c$~$iYccrtqY!n z(HGr1+4jP`NtxTz6-q6EM0A>g=L7m0_V|Yf1DUcU09~xqDEQufsrW|Of!W(tBHdET zyowa~lROk?MEAr2b^nfOupjp01bRi7RbJig*D$Id@CkV2qKg!_P;GUXX8xpIhQTcK zyE)o1w|Exnc%@}(?cu)EK$VpK>DBp;@CX~x-F(}+l^N#?fZguc+NxFC6gx)q3fn&o{YsAPgNJumg9=t=!gl#=w~( z*)NmcnT}cR)Hq8OtymflW(3Hdf}V@^s)H4m<<8CfDy{Z2uBsZpM^OZ`JN6b@m#*&Z zusfYoQc>MYmtGMPb!X#Jw;d*qaXmW@;lKLbTs0=`oG&PZT2#-ysE!mldUmvtZr)J8 z-*6q!S!!qb?$+)URR9;mdDdM8nltne@IhYP?NhI@JFV4Q>WBaxEjfG#r*ZQ>kIbGf z`wnvc;<yxQ3%+ z)iuVKUNI9jPfNlWUw##A0(R?T8f{_SUbPGN(qwSBOv)dV589`3pY3HdGvCe(F~?(g zMr&)b4Bf#K)f}h(805-Z%lMr-v5s49D))*`eA}BuP=pmnck0hy4oTv9N|%&Jq)kN2AQO4~=j2lVXfcpX`Jx(J_#~A}Q>0);7TFSYxI}s)bEtpZg`XMh|0-TIWOReL9&JSPm7ruQ?Qs!4H zGN-=|m?+$@E@p}yc{5OKD>Jyw8iYa1JC&o=iXA-W$s;>`!`h8fbTKB#9mo|>zF zQk5CB2mz^n5}$QGCpa2NOqm%dH5^Qn-Qhc=J@onUw~WC$NVbxHcx$8_9&k8qW>qxP zwC;lgXZB<9t`S|1PxT>Qio0E+=l&d70=(J1& zaSx}L2NS9*TWU`a(pHFgd6)NA8Ue`WcxzI23SkcHYflKGfu+&UZi52=FJ$aUY7H_O zUTcs>r;&4*G_6qHPN=jVeVKIh=RL_@U_Tq*Zk5E7Td#GjXCXjvV=9Lq<4829af!%dG8`6OxpxD z*v~k%Iz~;7KGW|G2U}q!?{aTX&33I+qT`uzg`f~aCaAmYx3?yVuf%by(jGU0*48By zyC-yC_E=3PhE{aTqVxeA>AXvS$%zl;G2AWhNVQ&ptgHxi@vUbma0bshb_l%1GkVB= z5b11xN>Bfp<)Y~L9ykr?c;f4%d5!u+x#7n1po8ysQ3=|BYcW?#*S%3$$ua)TS}gYR zYIAicJFND1As!_g+sKCD#G?Tv*Dl!OEh+A_aUR^9d^aE9@t?fsaI{iIu`%uy+RD$~ zIzB7`9=hCfU#ma4*#CK^5DdJ~V+#OuN@~_Ss-~36NWf#nKJqJN!DCQaEa|8?s+1|# zJK7oLrsMq$B9FC$i5V82ja7*(&!=?Riuo#EVPrKWd};M<1~fb(XipRQ2a`^5Z8d&& zKVo;jINhGyVX2N$`?Cv}(9g}9hqC#6{gdJj=JU)gsP2%50ijZPc<;-YKq79vyzq_u zZUD**1F?ov=da^vw9|aByH9E__ka>^G}Glwx$)%7jwq&`QODGI8vuYW_c! z@I47Du&7`D!T;^$#XwMjgR50fZzOb#1v&Z)Yn>LuC{7zJJzdX|Dw6iaA@Wa}+%N(}{ z1r^qFp}Ga14f7%!ztI^7b+c`k5`V(y@@{9RnbJr`Dmm0Ke-$;TU=(@nn&v2Pb>yRB zvh*5Di)8gofz`!t%l>yA)$bYBm^>dKQMt%VpXr6J^7wdCnA4FMJ5~?uLtM1r;VfHX zK6i!wuOgScl+F7UM&lj(Wj1E5AkfTMGzS~|P`-jvLEW)RDxUs0i|$V&*~xGrhrc4Q zk8+^af@n!Ya2txqqpa?}rIYX_c|d(3MmztaiQl}ob{}W=z$&L#7(lHNspSl8-=VJ{ z8|(~P$Z+{CTlex&?Vvf1?$ClhzPF&U#~TGNGLVQ%vd-x!O)nr8KoJo79WnmY)jb6C zke(iLlq^<3;pHHEg-tD=_9@htATXu zC>u=~=U%txS9FfQ+NsiPCr3cP8@eB(N*D+|w~J|RonUZ0#tT3ZsZl%x5(Dw9V36Jt z`BcAa_VMTl8VL*Z6-?f}s5@%G|m346}YWXphpr)nHC@J6(+^aKO=}8FtDRqT^wzdXat>ulz zj2aaVPJFY-Mn3wjDzIYgvi39T1wUPCtAC`X+bN|18~@c|>eR%MqNDrjIXLZNG&w>_ z@UIs_uwC^ZIsVi`1RrF*O7%%EF4Z3f2Nsn|!-+_+K z-CSN~TT6d|f%?nyAEQ;u#Vq!Tx%oX*zzYyF1g(t*7S7ujRV>!a(!j#lbrbZRQzf|# zAiiZc8GD+1!1)Ji0Gu;msT$rd-p1sf9tfg$U2Pl!)#&kKuPep)FvxYg*ZR{*=|h8_@F&nFMCO+SP%{Zap&%Z?YZKmPMzzk%WX9La~o>A!o<24csrk3Y(VfQ z)!e<(okRt&2>X&23jyqBY7blJlR<`U;AEzr<*cNCnXzK>_eY0{^YI(}6PO!30CBx5 z5~2CCd$=I8nvbY$gVnS>XRK)C@{Z^*_;jzYl?(>GohEjZ{FAlqk%W&a2O)iJR&kVN25$M;S5Z0 z)!BM3FHTsodut%k{?+b@!c2|x-cXoqyEdF_Vc!46-djdR)wXTGiiDI!H!1>xgrp2D zQqsZ@(n>edF(4qKq)K;0!|ZLU50 zy3Xs&<2+8=6l+sc3{Q4X+~nln2Y8pvXvI;^<00)|Ds={bWvhn;S9IR#Nzra?#7)nc z>y(_@H4;F@e9oH{u?|$syK?#xe}wrq-E})`)OCJ*on2l_dyL*-KEZkOnIW8xe{TOk z*ggaisO0Py3upi@;yciwgDYX*G#a!W6%ezq>6eVPfUXtmIkh^|0yr|&Qjhss0p+xK zifKBGuU4eO3KaX?`CFzWZ>XFV1XA3+3*9cT*M>x=&rT_qtIAVH6LxCV%z?0;}r;f`Hx33ao)yDM1ckxoTL#9}m#9Xk8yF~;3i+tjkEznW^>WiSgfsp%3+DcNGZnbSR;ADGnv;yAZHyEA; zQ%;6-2z5x{%9e}0Jlt;8GvxLM#H`ox?qck>tY`UZ@b|Yr2n-<7_F8X>K4S3QDXZ;4 zyKaAJdm~#SoHZZ{$VD5eXg?CRCH+fPF?%L=ry zIn1{Gf=2!nBt{b;1tuk<(EQh#%_&HD)f2lrzXiD3I#=`;*?n2VBPhk5zML7oM=Fg6 zS4;+)z0FgiUBrtc0bly)k?;2RwhVDUX1HK7$dzDkPf=WDnRT>H8UX0eS8)DJbh`yL zB(kA?*fZx6kghcYAfwK2@+6A@PiOv4UE`3)V?ziU5rv!z(Db4?Nu>9llg#WWY+C-+ zxBM&gx&Dlir-}YXR`%bv*Z3iT8NN!jvw6$otgM5#!ROLv0hPf{C;MVpTF}7bIQo-T zt?VIvyXZEbv(OK+>%%y9o6b(3o}U!NeR=S_y9Z!_aEtfD#)k>!aw<#xPiEvfaNsiX zPIP}6hb`7mK=SCdBZ>Z`_A()n%dpT5@yiV-00D_nHDqI2T>pOWr7t?0Jb1KFhxa~Z zzLU6&=h|#heWmp@XI|eRCuXyH2H06zJPD8(C6~u<;Ds!GF9OsBiYl*%tqT zLIJl|3J4MZz`ibzZ|DmN!2S4|IFtP1cLBDf2(g{KJ$Q8q;4eHk8;D0cflVqrr)ZRe7G2jy z<$=U6D>OiTYPZ}t;C;Et>K&@{NsFQA@PNV^ z#a;En>4mKdSP7FhYm47=5T(lGz^Rsbm02{>)26;Tyar9!EZ$sANkMuXpeEuW2eA;> zRP*`*{rx>fEf*oZt5|A*ve%j3Nj#nPWBT+iQVO?LD7DjTC*=uMJeB45+0YM%eg&bS zp+vjEoxLCIy$6HU4p|9d0ze}d=2VyOOz==#6E{k=`UMC1SV z>L0T6f3op^vhja<<3AVT|DSik?C}~UDC6O}76D~~M7saG2kg@1WQ>)*0+EAa@6~TV zezfP;*8V3`Y4VIQ^j6Fm*ioEJbc)e_Hv?OfYYA{WmDhd5f1Qd3lb3un1EWVt_o_YMi`#^%?o(IEMUVWoU}_KpBM%OB4n znJF#dTXqJcu^XntcsR{dQ~>;w56%MpT3(d2XQvriPP`+?%ztObY(m1kWp?L}ei=wHjio@9J!dWrvVl+U znjiKwQF;X%Pw7*sr*`QH`~00Fy#MjV{`oJE1S2(LCA-G+M;rL$Rt^3^*K9nE^XnW3 z64`kP(1q^*0Ac){VFkRoLV}6Vr$tSDtfO0ReU@|{%9f6<%Re-li1g3<$oj{FV*JE# zRZt?Y=*7w0l|W*zo$Csjt@!oRtXUalihuqK6Wui0YmcPy*#(#jJvSnV3+UXM(nYTM z-b?wDAOhYeGtSIfhwC-miK~Z??VcXG{4XcOXoy8d73loxO9@@?*nc0uU%&ho%Nz@# zrU~f@$+y0Dj{nQ&aQXQhPtjK4{&P3~&g)|*08aKqC^hCk&0YW4x}T3Tngg-CQ>G|J&c@t?bvt$8V*~l05+uy)|D)a#iqLCk(H_W&ZG6hVM{5aWFC&yM`OpqDXBY zbf07^YXPTDIR)g~xG-M+l|4@)jpi29745kIzkhWTFuum}8Fbj1Yo?m^e^tck*K%VT zWoPs$%_s;>tNCwvdr4l}EOk1uLliGL4a5mmVdckE51+Vy|MrpFsr0yZOZnfM!RUo0 z&@(7zW>2_N(T+`UYGHVXcH_P~`M>)+=-AVY?#91|RC`?~Jt!Bw+G2of{_m6fB!3l$ zxQk~4sV|#WO3{FS;{b~%&|>xTUSJ-aY)z^LG~J?}KEGx^lI3 z&kZ20Ck@5FmGidy(I3>oeTlE!@KzvVO00f@EgTQOD6*>_2ax* z_7ub{%W|3Iv^UNN#{PA`B@VDZEb~I}-nQ(Rg^jTJHY)IX@A?TaQ9F^|1nx^dRm(YRK#d)98sYq7d;iu`Ae}T;@Fyn*R;I+#NO7}5nm=4sV!wOe;sA>I z1#J_Ke_y<-*e9xK*L4DGZ;+DT9i9$Ky-EISWXa!d)vv=Nea?s}W5x;$1SL&s|6@yj z|0X{(oShVK+_Z%8?EQv5`oV@j$b>|iho4AC(sfb+U%fwR_$z+?_^buoB@bf#T0~@B zcRd-)_5ZNNn%MnGLXpv6TMJQqQh{%6-~Ro~6)b6rPU|l(H?aae!dA%7uXX;XbMwFD zF!|o6ab=}96s)~YqT9;H+@KV{vKuwVctr+Weew^xxYHcr3a2KR7HofF~NzNy@@UI)7N@ ziXXjS16aIYDUI7cKSeZ%R_fpDT)|3a`;;4}VF!GA$ein1^ML0+;LCr%b?^F*hs@E5 z62>VR)uKVve_rU(?}dVAU3Z!X>i+kILL}}c$L-N35&iLzVhMwC0=zv=8U<_3pX1P) zXCbHlbi%IKhLC+1hn2zfxt@|nf&&bSLC zLp&Al%hO67ZSV(*f1LDRr|)Ni<*_ozwCmSWc<6rCT~LA}eu=q+uibV#)OW*)5Z!U$ z?lrk7@RC#lVtgFZJTf4ryI*vN_10k6~)fY*KG2|({bw%q}5dk*O4Sd@+s(CO>*xfyNV^0yZ>`0i`0p$`=> z&93UKUqL2}0QbfmPZiOx2L{cqHX2V8O?7Vkl;l#|=9)uRId|YQ+u@^wHO0lnbL{|x z6cKWY<9k|>3T`<3g#W7H;AFk|{!LMhZR-0kDO6>JgKje51Gj@JNyL#yq>GBrU6qoR zTEN+YyE|#cfRewn>V_+N z3Osfc;k!+-jfY$tHyb^XT(l7DoTl)YXtM^%6Ranbw=^Ko4Ib_HhJyj z2TzKf_g3UYMy+GP0_80ACBTir2j_{ zRaNFP_tyh}X8LFrfcRF1+od~dXV>bQmr{M(dS71%fHI3^i5Ioj^mt;IW_WqQe4XzR zrInpszB;UjtEpju*JH!AZkqR}^6B50+{~*YX16$KPqdd=5;W=jG&iPe_c7FZ@gom( zLx~05)D_8$cQ^ylN?Xj*sRRHi_BY2MN5)&Qe0=o+#bh3Sk<@r#s0X)=#e&k(Xo6tL zZxkU0-$YC`4q*_1GOQPH

    K;#Ag^G2P5A!arkmfqCLS*h*TXP5;cC91I5jl{LJn&x|GpTj=DVNaSYt>UR+m1dtLKGi)T$88~zn z`%m4b<+Jz%N$AdmzI~+AP;*Z;FEIZ(k6%msB$=~5+|%Vpm{pJEWKs2dMABLR^WvKC z!8?_pV_&4ny*dgiP?@F+1B^!gKLIi$$4}HKTg`g7Ftp!5uthoEU>b}#wvLp~o4RGi z*-CEOdO08AOVoIIv=DzCdo^bTrVv}jUmBySnaV$wi82X2o!V3pvz$I)oja`0O(7yZ zbLs)$&{#+dO^FHd+_DjUr~Q^Wk_t{=KDzzdW>cJ-u}w!WwgB^zJDZZBPeK2ewN2x{ z3Z<`J8Xv81I$>*kyfRraY-uuW*hR&gbDG(*Y?x>z6xEKcu_%WYu9FV)xa=ZP!RA$3 z*g+`gq4%`nWab%s_tc!Q8VAD(7*LO?g6mi_|8ornwXjZzM~HhBxZr#Z+xr0+QTkbI zr*T>EXOyQ`wlFj^=v?taQ}bYJ{(g>A+Id;3zayMrJ3We9b!KXNwmt7CQ zDCTmaS)nJ1u4+LKx@Rg)oBfZQ(LHt*Dggm_H?dQz)7L7n@}?r}YB#5>1Axx4#`GHp zKsbMU#uo)|&afu0tst1yJ^$rv+*@$}9X%!k+#sbl4|-w^+srqK=>!V3#$*t$7J{d0 z)A^Vkepv9;fXojzN<~|MA)D_Ij?UYQF#$P!a(_8N$;_plX9i(3!kpzVtpx59F6JF0 zHC>RJAs|Xe-t(8qhOonWaH7lW?dK!jUGMN0?nf3t7BqvQ)IgKP^kp4%DLY<6#pPq$iS%-i;U?=T)#rP>7Eik+A9=6Af@8L@Qz7#^%q$Kce-BPB(t z$pcZ5cETh0vA*+A+cpU^rLgsqqWa>phR5^dqyje8BBeuEX%Y89qg_#P9uZfB zfNiGqbQ;7a1oY~Su;Sq3w8b^2l7SR4%oL_OM{`*T7LyOjT7v@aFn`Cu{MPBKt+~5P zM^w~$cHtg$muR+=i=!5At}fYikAsa`2O*HbzHr_`^l;7Bz@!m|Pzf`=>Cb1^$ux2*@o=vXxqS~%o1^IG+ zJV~d)vLn>L;WQFCzcFrq^rUj!x-Saub@)D2{t&JZ^T>`(&SE)zAa3fL=FQ0}o0*!2 zHTz46t+u5Lp!w~*V>^dw(}uw#f!#!muf5f@OnkT*HGWmjadP%E9EjWW_mV`SQP-+Q zE|*#N=C6dkZYLj%-W?;q$O`+axHM*B%phD0qMna_CV`Iv;8VTj4ypG<{7M|5R;zA#vqJvi)j;csh~7o1CWQAl7r^!cOAD$;o`eM(28t

    hmh`#Q7;<_5r9}(=PC5Lt9NB5Qkx*fn|0@m=>{VouVg>Iy6nyFor&et zN3LJVS-&4+hN5p&VaZSRKC#^Toc|IS1h`Lh4QCVJ&b(#7N-S_S-z-G=2_n9yI~o&5 z(l`YU<`hIf=B%;u;dWXIeXpEw7|%FYF(9gC(5Blf-TqxVq$N@xd{-B47ADjcYUbLX zD9ojnHs}dC+m;!*wtuk0^Bs3I?i9Sc6dzLYkwaf^%A-fQ2jYur?3?#k8^o8DWl{!Vny;wud!O!5FX&efCWeV9mjMoYOgL zG_MQ>eY9)eWaHl(?f*X97gEsM7-#QK8HRn^`Rcy-#q#ANE*;S}v4hV0^G^H0b!$j4 zI93#JOab@Zo=@;PTjI!|^a>CNY29#$q8Jn%EHS(+wOW5cl4Y@Ys4CgdkrOlxWAMHu z#C*2c$D6uZ%S@t&QYpd?J3A(yuk}aSP5RDBj0jfG9A`cDUd>Zz*{A_y8fp3sQWLop z`L&ZH_;m&1tF9t5(zNTZ1^O&4{E&}qm0r^ZdyNRF0;&9Mz;ilKN(3SFv%j^bde^b= z6g9RY-oGi3hCLcPx%eKD8gNbU{%)E9af>z!vaQ(B1wi^So9B|!@CON9#xyc~6;g1UmPsJN| zp1a@Cu=gN%m6zM?vMxrn2|rAkD<8^Shi89xLGF)9$9h^QzZl(3zi{20qME6)(NS=- zCe!oWEvi=fgg$2q2~U>M2`FjUd5OG|4%r2orLLVnwEiJ8Vy4cnqe7qxO^EfU-0u!z zfRJiN)}I#Fx6re!E2WOD6Zo%UAEKj&)+`-+PA$%5m!6$vmeLjB5H5|242??zlajOo zDOg<%x)oo{HGIyf-`&Is2L-M5%|UrcN7JRgynbQpf}Vv7YgcWIl~NnupUz(_6r>O; ziJu)ty7oZ(7Cv>6YRL?Y*-i%t+czQg_V^emhj_&JuLdp~xQo3)bLmRP>DPy)HWmk1H+?{VIkA zC%|+4y*cj&P{O+DTe0D_A8#R`ny0*4WrKWWPKH|zj8843TIbCSe{KWJ$9~4Wxs$Rs zTPHLhV{7J>fKO_bYRg9zV;3*r5`0>@YHUizrn=-Kc&N!M99CG#6CeH9miO7=2DoZP zFvqp!L0E75nWiswyw6x+JiqVd#y1F{M4i%OFSk0<4E9~ntz=wHHjUG6c-1qb+PX8Y z!jWe_7B5|VDh~7Eem))cO}08xg0&mvXR^qw;S+XNy^<9-i~R(|JgU!3myFNm!4v4> zL%HK&f@5&gM?-tK`%gx&6(v6(crAAf_)g8y_anl&l7hYWGj`Qh;$M7RCF)}nJC5_M zQgxm0!MgOa*z$%GrBC+`2Sg3|w`0goG@~NqwrmnAP=!(ezd@H{y z$!cLd@#{MVCR&%SJZO)I_mRU^%g*9_@{!f9qSsjmji4qrzRNhIH?9m!ao%lRf{SUa zuG?HTPFQ_7!!f;P;#M~@Wh}mHc2c<_f_AnPg|4OgD!xA*)tl*v4ltx8isABoTKJJutyy2k>88nz+qsgMhut@rp2Y}^TzD_&ZY3JCvq(Ah#G1-&7q2=T@f zt7%Z}2VI%jcK!rg#Q1axk(TNE>5N3Gx_N}+Ht(RhGv2qvcrDmrUceo}b<5)XHPJy! zo@ah9-D|F7 zhf^A&l@B zNUX9En0&tb!Z5RlS(QX<%HtKK;H5~oI?WqUtz!X_Oz!Z-KVWx77&YkKt5L`41tD^ed;|mX%AyH0{0GS`a^uEIsEFj^B`(Azw_Yq(BJ#S6wNrReq@ zymy`*?#8T=K$&%yn!SDWag}oZ9G1PI3icYuf%8Ofh=IAEBD!aF;h;B?IXMJk+&XYU zq`OoG;)P7EAwoOeq5IyjPnj*KODfgH^!`JyA@XB3l0&~!Ohx7$aVr{UMQB13G=M{Z zid-vhptMS@=X5Di${5ihIP0A$qJqOv*`SkC>o=~1n-vWG-j~APa};{xur~Y{U~>sV zvD7iDtIm)^RPqw0N!8Ip@@nAMZpWSxF@mVGVk>=gVA|N>Tr*ebK)b|M2i+*0CoSHw z`4pbdAy=Dh)o@=;h z(e8V^4bG2FP3w*~>X)6ZJfA6<@V&4hPliPJM-=hNzgmujb;vIX_SveaT`j|5o)%s8 zNW!YG3Winb!)^juYR$;>lBSBW1Sd(zO{ku|)$=^0GR~W5og&5zpPrj>5<9v%@q~v@ zK8N{)d@(Cs6IrWWHq5JOcIiWmze{ZjQN(J)K`u+2=&_xu(4oAo!k1kbiV3IXMb43{ z2{8x*4clv%OP~97N@_ig-7oU0qW7osQTNXKA10nlIZ0_Ztyit!mifmCy2Ihq)Ac^CGYDx zr)Lu;$P}DRR&7@%1GzXuN{7;2#httbRNt_w=1joN8AHdGg8lKfVX`F^#FtT-#QM}| zA<&4kL?qt_<8dW~js~fXx|g_}3ps~6OXi8!QTk(Jej%J#n<1VOUKS`k`SbR0FxfoY zO8t7VFs88P!>Cw8C#|lPn|(sp5A~d+=`KGYd}NL$9-Tm!MF=FeqFpLJuXTXR#@hlp zwECi1omLa;B_) z)-jq|^kU-mJWh~s@_U!&^noC(Pg-$|8|nih>M73<56JXvDxW8V=7&*>3!FCrtIuV( z6cm%o)^|c9=B>STM#vQvn;TAPV@^cU*Y+8D|5WmNQOJc%I3<N4pr^;>}Jx8B3#2C zQ#8s4ut64ihOqZX?Q)?%3T%#!7PuXdou2HJxr|L5yS;rWGPCw5t#!3#In#&J88lyB zcgXmT>?in2J!`tX+v_2Fe|^Cm9R7F`EdA)@#+X}_DA$Yq*GRn~H_I=tQ0BSdTh*GY z?=Xc3|4SiINlIe=s!Ov<@ zBdT8|0%W&;n&w0dxmf~a^#(yxG)kM5@@wdo_NvSJw1b-%`0{438Aqkfx#oIKPXFQT z;~v+6Ce8TesadnB%}QV#>3Fi+%+QMw{^F}Y(|ZyLSQ?_r>eby1(el}mx0~`nxrTH@ zsX2&c&_hjxO4Ev64HhV>9cNT`8^J6wMw4v=CE!ZbxPgjr)AP0V;5|F-s3Z9q6H?Lopu>HVJBQWn6|6VZ0Ue8hbXc%hmo5m zBTYbF4%ePvh>*^x)<4-48|FJzJcU5iMr%$*-B9|se{7FSUzIW~tX(haf4PTLFIdU= z$`Pg^elQ)Fz#|0Wa%;3CE|^M~vVC5u0$(dx<7hBY8 zUVPNksaT)7;#8z;Fp3+kOWK<~O8&$)A$(#iIo>>1V+%GC;!oXur$Sl~F2+kGD<2Xr zEl3E~iHdB%6ld*1`ICVJ)}&=!{H;S|#@F{eBep{ac@>{zf<5(JdW@U`N6MNli?4Sa=0tt}s7qhF(&F6>X_NSUXW0;^O8)UEIju&Zl zqm$VH{y@6PuM}xH>?8U4j^0s&3N5cxuP3Jol&6k(ezUH87?sp5r3)twwDw`JvP$db@ zyGnvAn{m$&&h~pyk&~+wz8;=F)3!bSmkUj2u{(ytp&M88 zc>e~r@B6RFeGj!lTXGyb~n z)bnNQc*0wUVXHubXNDLEy@37fi(PD8a0fVWfL!-{LagKdudWZ>~?Dw+gN8-n?%2Ole-qZKt%dF9gR zf#b^b1)Z<;5+bnAz3*c}~huN+DaV~%S)Od&JhK8iL;PLaFZie%!}P(!=V&LqUUChsKk zzdi|_pg}sGs`0bW2t4Kw13k^xa!p*)oXJS!-L!|FCWsgATJtYtzV*(OKD7mCiauBC z+xrNvgYl~E2g}K5U1Ez8SHp0>^NS;&!26sHG=B`lxGVxQ7s>&i{L+YnXrH6+!J7t+ zMo{zvp~oM+e2W}Q65dZCh37Xb`>N{a`!hRR32t?6mB}&?Glxc`Se$S|ebNadwG1F_ z*f)HsfI)$m4+?|bJ1rA?d{t(g=mo_6pnX&pjOu!9Jp9D zVY965T-VWM=?Mc|s?5@%jJJiePPywlW8AAuk!!#I04?wbO-fyeQX zI;xRG)0A3PjVs)ijsbn1DqjW~tGaxa_9$cZHEfRwl4_;V6awm;bP&so>Nc=7eR8S! z{ycN%1_e%lH5pjcEd=XCo(p$h44ixrAqx8}olmM-ZgQPHub2gLbkB~3&1Xs5zN=gG zC-hoc4CiVoZ4?}J4&a zt_@7Ph?B2VsO6x239E91#sO|4{&c?*Fd% z9$+{=;Q(z>kjmK6_Q0v-59})9r-hb1=;WH%1o~VVzsruM^Lq#9KMRrSez6nrWZqfI zH-K?JLvvm^Xl^h>;f{!^OKr81)DTeAO$|bPK&HuZ^m8e?NLLq$;y6WhA>`EBr#5s% ziEG(IWLUH;qpx1exS9myWceFdacHT9x+)1(`OOdC8G==<^t~q!k0a*w_g6;(sF1#4 z2?YyZWV%1ymAW5!N_YL4f#PZxlarpHRk6{S^Xnfmp5U{y!gwY`#Cc&36T%VcV%6cW zaLSiJ_j$=&d0OkZR)PLmshCyI?j800C-SvhE!}CWdGFBPt1|C=E3#+9Dv-*VyDyvY zm7GnS0%Kijb3cYOGYRM<$y{{P4u=7a!k4F|yXH2XPqnUIuf9fd9$tU-j+=pFt9h>yU-jNP+d;OUzqwt$ z*12|HSB>C2*#uaY4E8+N+x%Ft$f~Hqz{&n%)dOzhp6pheoM`FM=WTX|G3Tf^*tS1l z%}ZrkN2QibnLGCYv~|ebkMFqzl3}UpQv++VA&Fa;YKIJce)Ffup4-!R(?VU zdOsSAt3xnT2`nGvMM#;>;^PhVh9Z`1dt%z)-)fj~qE<8C23=^hY1pc)nOI(4T+0b+ z)Bn7|;(ObwLZ&&YUh#FuzVh4|Nu^o&M&+3TSD3*HpDx`5DyC+6$+KdS$E0&EXK6mA z&|T)uxTGr7bKyMPaZSnIaGdyd_4AdXOc?K^^PvIV z703)SCB4W;ujp{$MZGEw`nzH-g?jHYvkrH`S&je^5&h`Ib5T@>+0WhWgUo zo2Ik;y3`)_zL@t<;ihZ#2#!8J1@7Vct~Wqardv!cou++?xm9K2Y4WP2Gs^tb>cS3b z3Tl2)r5qES&^&0L16om2>$q!`TQp|hqCE0B7TPk+(^1=H)&V=oODhC1IVyayN&xz; zd2IC#oi%dlR}kAzzhv~6*(`G=T#UNG3Qkz!&0})a-skwE*5>u4Z5^R?HZY?iPlU^K zq=r{JA_v9^=;Fmo^2z;zgD2l+^jsC-ySFbJ6c9gXy53j!4EH@j7QPXFR#pP`+8Yr3 zp71U2z`(7+S4sy()g3jeRFsuHlb=%YVR@q+jP2Jr|VS|%~_<`Ac^`!yt1LajG^YXN_jSMq@zv!j8^;oeiBzMhi zm}9MI2Y?4T%OdD5`U%7HI6yeI3FnRZ^TiFgnQ7Ac_b!8y64uL4dgPnR%l{6JdqsxH4>vIt zv&-g8%*nB1>M(h>fx86*l1(9Y+W|?N*0A@{Wd&1`n^j35mtkyzAcUvx9_$Cl-ZNAO zFL2^OE}6Q%Znc%HZ#^S69(Rk3&vU+w;NAb20%$|iJ9Ue@=c#zsvxe3O17Vvh zouv${qai+nTs!aIsVFBYjx~Sq_tRCP`8e&i!7VwEjK4hV7I|zS4-Gs-PPvYK;j-b0 z?Db7e)xT98-Muu}_AXfy5wWlHk(~@t4bT-t=-L^EtABl(Otvvm#%t42_?alAQ4doY zLq{=s)M?TMduhYM=B=Xf94ac}a>WT|S+Ah;Rfl8kLr>p}sRmO8ghaaC^A+Y4j&5#i zzRp)D-Sr{Nhi86`TqFW`Z~X8bCNnTNIHhL5Y*0_r594ajcm-+KIqqAR6i`vou#VQT zf1uUskwSzc510^93h*Vl;JxHU-0>e1&xIkts4QN;r+p7}wx?BWm8L4^eW$HJfL@03YS|e)>3vQ9f@+bCRLC#U7XE6R;ti`ODqQ3*VfVNRtuWomV64 z6MLn${Q8RPL6}M*HMM0E{kV&3kQg$4g6q;NBrDbWvgA+UV2JS@wNVxkP1Y3=1aSDitwcf@i;VG z%UT$+z=W9EPtH+H{Z(hFd%6D_2P&ALOlA}Bi#W@vAlncDovTfDcGJ#QaZIH@%`I_D zSYP%np00g_V;Z8m#;^O>;p^8@t8H$l^kP@GXcsNC+d~BdP*B~{T0xKCL{yhI`pW}J zJ#{>v4r8mj45TznVx~~K&v5;RnYLiLVlrMoA3SWlCwTvGaU7UO()sF*P!R~Nsv98i zBx|kXM1P0FB@;C}dgmL^0Keu*x+<)|uP~Eg(`OdqyHGak9c79kzx4hFDVp74EJ5l+ zG#~zqO=p2xiR)MTF}kYMi{sQlFcC@@UbjY_4~1ULWROfrEqyPG-zh+yF}pAH2?lVg znqIRb0%4i@%xH%|Mp*9V5qR z-2f^hx&1LuL=q{JH!%GA^>nbB?(@1`C>uS&(K}z}QSsLHt`zn*@Avw&@lQ`HBb)WIry!{zc7NhflrgNRF~2MRdLK{=1Wgt~-YXlU7n4 zp;Xq?0}ONrH$41~8&>_FrwW-;uJYzxSqP3b>`(qEAUC}nYu1RzfAg}wG@4MsHyN~F z>$#wjSR>8Bt7z2G_YGxd*Sm(BtouCva=km#Sv|vGOxxo-F7D{Fx1f8LT55P4Flg`8 zVkj*Y8e1tox_b7F(}sCZBMT;i;5xKOl7>|ySLcL&U)cGLa0-n|o z#ep<4@^*Z62lr)&ZZ;n6gzT`2Tj==QZGMZ2@tzS=0EoSmYb^DPO8{?K zu=Pp>{5~>9Cg2^^u2AtQ4n9~6W7nz6l1G4RL3f>;8DWoct}yE((k%95d6TYMpd{E7 zNeCkY7X_Quk7*#}NPC?Ngu|QOcx&S*C0CDH`(pC&U7uYG)JMOB)$MN6M2cBX#icWm zs2-&Fwxs?@_8}|CLX$j9ltQUP{Y&m>ox2~hh@zk7+j5%v{($8PeH27_3g2PUC_xff z(KBs2JY>A9W5#HTu}*X^PB!t@pJ+!9pjtVTg2+nckE z2`adxa1X7aB`N>H&}POG)puxbUC&V1tLhczY>-hskK|wv#Blcgc@-|gH4D%sLc8rs zqRE!}rU{)NPQ`ZgzvpzVyN#tu4pqI<6~b8YeGqfDsMNtu?%-43J1wY^Lh^Jnx&QLP z8h|E{jWp3hVU3@#Qs#Qh&fIv@x$Q{2zhh!n?{ycw3;}$XT#fj50&*6)ms^<;{;B7! z;&&cZGQ!XD&UpaHlw4Y=rmo~gTN4V`kh-9Rkg7T%3|c7aa0!w8f;$2eTkgfzG9+uN zHop8;QZmL)*dzLCYS@N3Kt{*Gjw-3N!^(w^8yNQfCT+09M-S@SkS}7bpSCE(o%I?h z_HZns!Sz;$NGG>Xl@uL~XEV`SpzN!3?A>|JG_~TEAl2^O?N4`1@0u5&^!HtDt_5~~ zJ#`*Pk$_h~^B#s1=e)k9%PE)~xmtph7Q_+f>kF${oX2CZsS(0S9)|;9(8bB0_yZeM zou>J-lXK03r0M)VmYgMtdaOV%#kYNM%Pb>Z_?)T7wG#)4CXeC}!}BAjlBqJD`N*hy z5cA{Ze3bWy9x-b&O5o)KpOwM8pOKDP^%U!!o!BZ-N-MLpH&H>4C0mwpgnDf@ve(#7mcJROpE3aphO-lpU!03ysBfiStcico zp~U+Us=oC-bAJ=(TTLmky!n^+cwpN>4xh2K(wce$@` z<%3n}alObVa(U8PW^xAxbAu%>iq^mj!i6O3!9E)~Y6}f7P$Dvo6*6<2odLnMz zxY2JvH51uYFq?wN*Q0L3ytRAoCi6NIaO#(Ia;}k7Z_H2u7P8SSsD#!xyQ?K^Hcz9& zy(nqKVwRzB-EvxOz$JiJ0W}U?oHuKG=umh^Q+Rel9qqoEG)au}DP$)(8^wmBW~&Bs zZ4!ut6pbx#l4RLd9`$`@mDBO4sJqZZ?h-4B@-L(Bj#C&D01({ZD^!7Wjk!PJ?lp&- z^#NX+bv-7EwA_;U`poAS1#^S*_l>D91cMs!W#Vqg$%Hqssye8l(TXX2k9!635yx*q zoI@YOd9E)6`v+=Bg-5PZQpA=P4^b{VGwQ^5l5-&G7Wi>}JUXNd4P&|j)au?vg3otI3kso6( zvdl>oZtlj0Eh61egkD>UFT;LJRCoB3`5sB7RZ)YTvAp+N0$p8eAv5+oFP!gAcOs8m z7-X7sftt*W!@emUO1JL~_$LNJpd-!d4MSpD0|%5kX3xDE(>3+F$!BQ5>Aq-6L3e87 zz^+~tNA}u8m1kTd-g12JXBn(J-K101ZieylqGup1XlL+Q)O`Lpc-p4&Ez;aYo=GGEEnim;^ty>M>oF@KM1kbjMcy`o+`aqU@wV6 z)y*#uFUj;S5<@VtC>z|p#FBvw-94J`sj@XCZd0ZG#G~^AYn$P?)%K{{2R?;HvC~8$ zQxI7@&MBb28Ej0gd?8ICH2u@wlR?M5W;_PI78>P(*Pc1GlNJG6Cy+t@f&Fp) zSa*Y|feV-6XsuC9Df2c~+^wJ303#q%L)YLm10IPef<~>B&`Hz9yd7=ED8+txO{NP%+SE!r{>ksokd6pX)WIt4!-)7@ls;_(E}X-$7nG)iHu zpGQYyq5`5BiVPW2-uCe{M>0uE0?1VNbdh|2fJ0fcB*Ag0jRMEd>9rP%n*7w`lVKA+ zm!~BKk<2Q5;5FGefZ%G{W9>Eujg6L{+nW$-R7rez|XYQfnJxVIMywbeiF zhi=Jy%f>IC)F8fqBQUGBi#+D8<*&=naCy@R4FoAm);e01RNmXc7Cw?t*Go7pr$)~k zFZp+Hoc0pqfW?coa9&)s)jv9o|GL?*!(I5b8vt_M>zGNjZ=w@%KtVp+q*+Zvji5<0 zYpE!&vu&$LUa=soOd0( zIgz9zhi}W5*OA{eZmFQRYEuJZH4C|~9yu91JhIb4w66-z?T@2AG!(kx|Ac>0#Rjr~ z2Fm?fkf|Ft?6qrU2zUgC3*T4O%As_+!y!H14Ab|7kqtjx?)BLp>J?OLKT0MuoQwfq zLu6J5#hdUvfmM>F#cjE&=K8?(RmqySuvt-jC-w&nfx+0q&SsKc~`EowsVm!iz@eJ z&ncLCrZON{O$%~x!DguW9SA39O5xWPm!aVsY|^N z1Jfi$NPYb}Jbx|MGYaiThI1zMxHR{*U3$8@7M8;HO^afg3Ld1fd7SnV#{sDXh{`fd zoxxrCx;=gKQMHQalyI0&(J0rWSv_x&d4v>=g76&>ZvX8wll|b7cH;n|S+!AvNzqUo zhNlzz-ExfdLf*Q+yJc#1Jl4_>*a5@>Et7|*`LT)j!-&Vo61Ww8^pf+IxzjkS5>$M6 zBj8ytq`P_CO)Xn|)4IUyb|2vx3NAVo;~JgB&9O4gIA=;usQWU-0+J)D-D2D~yRbL@ zgn0a;kU1bW#Vn+JU2kJDP#m>%IupOz)iTtWA60v=SCvRQ|oeV$+LAq zlI90ZPxqb+O*WM)%a#_ViE-5)p=FXQ&caJjcWKXig=+KZB#U|?Ymr=zPMZiEgj)qD zeUri6%5m=14xG@;+4H+AKdEDu*2ehlaGOoSj!eu<`O{(I+qU8>EOGN?FJ~ z0CNYZcn|u>vIfbvZ!25f^{+DweO+xG{hV&@*wbm*aKF<%pViove^6~PO_n0#_UpV? zJJr}p;|Hpsr2Q~6xmEsJ$2f^7n1SSP+VH6DgOd|dIrA39FF2lqidM|AsVo#sa9A`f z#{-f`vG;Zv`z>lM;RiyVKy>X+_f}WAczWgASd_yRmC~BxYE8M#EnCUn-o73ERm`R~ z{qzuiRx{6)c7}T=*SM%kg4=>y|_wsTW&rda{i+NFfhCUHdZ}qpn zFyoEqC)2xsU}|PWk0;Q9R9e5?1F`KaBs{kKs{L zY+Y0d<|zxS-c~hd_egi0+>zATacfyQoQ`=A%&ptr)l$|h9V|1T6jb+=_)H61l4j8e zM8cDPblp*R;>l_s1Rwyk6H{Kk{9F2_YsJahMR^2rY7^M@7cv{5TMQk69MJV(bBypS|a7S#1<(weCNCMv+k~x7%A~z z2k|F|(*f~xD(~_?tY>49ne1*`Oa|om_|`7O?v#W?C}|!WTjnoZuy|w`yYBBKSrocj z7l#}L4hwgOyw?oBVrm=#pSV&g34P1VR{sPDO^fS|OAIOd^ySLLhFrsnA)P8DA~v?l z*JJv(JD zLy|I!wRlAc8kUuLzZ(?0E8iEQ84ym`$w74eWixMZJj!tyAN75A&}4PfeK!JUHg!jC zf?=$us`5a~`FOhj2%}l9riEotDsNbQSj#)a1?&9Nj35aAa=smBtSpAWvU0wX9rH2N z>Wd~2B#1RMY&Um1w-)A}x^+Inc>-NTN5P#p&h?~9Q@B#puBwIMUYF1~g%P5qok(D8 z(BksQS)>c*V(jNpW=~iCD<__~=Bxaq(A%P#-~}T~GN)3Uxd@(LV)eMUkPQ~)P3DTT z>QIx4&5I4HCB}=_3y$RJZgpDFIPlEY#4-r<@{_^=%mr+#5T_TAP47GZR$Y zaL6U&z`U&7FA^8>%C+T|pX$)$w?ZHPL0psU zJy0=<^ST5=or!>)>5yd-BwnLhRuu=YliF3s(PbS-0g}VGooZMoAW|Ju4&h!A4fiiV%JWcWh768?-?;lQ%;WaA8O6TKTYT5zZA2nFb?T%(dXqkh$1FBB;G4+i4dzYTRp3{{!<{u|9on z3IoV_L_?O6R?}&IHH!EGM(#vvu)HXTj%bUth2AT$x#J_guM5?CmerL}CJJ?SvuY{k zT+e%1-#mAhZx`07V)DRwAJ&n&;B!SrjS-U&AD1S~W>PsL6a%Iqb<}YpB?(x1Sy)UHX$ZrBYeg$IaxYm3C{Y4250KrLGJuiKmOlPcuveS!An6egh#oi(X;) zU12m777O)j`AqaN)o3O6J=4e&Hx&0_6D$vsR}xEHPsUCF`O-ZKVHN}LW92q&MTbBk z(FalX85WjeYR*EN=3zV3=xTF@obyA()&)_M?UCve>Ak%waaam?yh2k5am{Ie39P z(Qy@$q*~NL14n7U>BE(=A+O}=bU^XuOb&e?m9Mmdmt9B0&Qp!fw4$fGe9JErISdV~ zrQ^o>nSp&AOObf_ZtB#B&{exlgmwQ;k(lv)#rwuD z9`m_}`)R2rExiuAmHh<(1(Pze)@nIujFirqOK(pWO%o&Th^>2z5lV3xQcBEOR_{HK zdZ%aPI)e7e#R{Zo5?eBM*eo-*Lva>);!O@UESp`%rW<@{VHc{4Yy(#wMk)_ilp-G7 zxG&BGbuO_vM8ixc724FqRb}iA+(qk(;29;)mP{>F51TEEjH~31uX_xJjhzRz73^&d zP;V6!BS&&hKH%B3TpSdw-};&C0IBbl-ED^^aeI5?dbxuR1%j9cLWPC`6E-nF03gA3 zdsR9`sT%?*W+Y-CaBjJRYEVc|8x6C9EoL3S00~Yjcx02R9RjqHyc-9sD!dP|P9QbD zHJ&ftKsJ0|XKnFR>UR%2D5STz@NZe>z#*XgkJtCZ4YIKE&m}^`6>7>h4S!ICr!hqI zbrnK#?8~xFIHca?>ud|=aub=SEjYbpatdOn3-IS3WvPAN`2860TSrb>Z`yYraaPH7 z-rPba#V9Il4o=ioOXoZ!$NtE4_vm)hN@j`h9rhsLuoFvPDqCoa8#B;d_Ur2IOS~mOI5Ej7|)S^t7Wz)_b9`l;13Pv?M63&{&aP#uo z9!GGqc3iFI#^TztG+7l;cp1W)7cU4rE@Hw*6RHjua3V}#H~qJVhC&+qe1a_X!@%==lDAAvgDI)- z+%#pzQSsNrgJJPaRju5QzSTrqx@Bk_ol+{7!w;YF3ii}TpV`#43tM z@$sth@vr@$@8dsxZePjRW7j>VB&^~Fi@QfZoQa0DtTO5{?m#Ig>lyn1%CQdA)M~2^ zaT#$K0-`Em@knF+e@$=NqPVy_+`2P&HMYah+x(RL;SfjPwzofhof$$WrA}6yayT|{ zc~KNWZ5kY{0g{4q(Ja6)7>qKLOv1Z-^zknsg>a(1&#bOzogWmVre7;I(z13V;bMPEB9CdfOcEx9bKknno7C;Vt~?yxQG<{elNm% zQI2*5GF=eCro30HA{JRLcZ+%G&*uQamXyjmnpoHiB=|D5*y6LaytfQC3w2q>VGcNo zhK7}X5aMh3w7}GH6iXUh1ZrVk>{h*wG(5sJ{dpNv=LYdhS2}%Jk_Z({pM^jq zU{}}N$^I5I*aaU89?s$22^?g8+!ngNe5l^^ZAbg0MoV+npH@0q0ND6<@NXy|ejy$l zGnRK}I6JjXD>0jLK8@71>_7O=Tm;t+ipmg6)f!pq&pP2;^{i>YycZrXqL2ha@ zA{GA{Bz?`-$S{pG3Ck+-)FELnvB%Ay$F~2jGI;+iTVm@3>VxMyIB5H z+#+8F8{H|V^rF~nq;z|D-pzf9Hh7ezMdgk>q%^PmT7MJYim%^-CqOx60v1w^R+I8i zE%#sD^1cEOM%Ej2Pme6_yy7AJ38=XL`W$#k>BEQO=ynH{@K=Vw$5NwQgk;WCfJ$`dHy)iS9;DzSm5R32M!x!Vqn%t zd^{I={7w<;&$jkHdS~`T!^V8cCy`X~7hdeZyM@v7|KHvNfn4y==!^mK`Ft7S{Ks3~ zU{Ho@R{9u!PCdZUCBS!10tD+3twIgaY=obH8Djpc7|OpFU0*gmAILu(qMRBppzgo& zNgf!bdjATWS2lGzICD>Uurk1iHWi-R(n*YeV)oA?>@UUnSDOI&TE0SfiI@(UKPctH zNF5YN#D9ML*H#25vVzbc_%p!#AKvT{Qkt|}W_p5@KmGYdFK~1m+0gvGoHK6$yf?Ve z!Y|mbd`(8*8z^gn<$O7`D3v}YGuH6w-szub#(zyTz`BUHa&rXmTrFdQ!?_~D2D~!A z#L$#t%2W8^n>X~{0;2xf8NMBae@bMe9tc3O#~II;@l~LF3~c=smiS0!;49~xv3xqA za2=i4=pwHWU9lq*iYdEOpi&m=3YM3{!e{-tklvxN0KH(#=3lIuH>AxjS9{}YKsW{8 zzZdb}&-7)q*V?^-lziX)`s|Tb5*cNv{#G}DB$LncRe?EzrsT`#1#*E3@n=84=B=fR zL-*+axek1R(8#04W}@&$W*55B=2@fqn3#_rwGaR3Zu%vJQAGK*1W8^Ts zTb++TIQ-(90h(79j~u+8*bJ0*hgKiGH=TtexE2lvL(k<8CBT=?4O%Tchc7zpAKH1N z5@1W*R6d;k^A!;fLXp8-KU?q8)6|i#0w^q!z878cfCkumIlZD=j0C()dL`4z+~B-B z{bYuvMB2+$*k7X`yMjh0JgN{g4dT;Ltz2<~!FD0!dPSk50$=+K#2S49NQz*X_RXNN z$-nFVj`{n`9{PK4Qx?AI=xCk41PC^Ixqq{^T0LCt^LY!trr7w9fnQ$C0=QIG9|9%n zIs_i)K#IDl|FtClp7a)CKC5!21TdcME+hYD^OUs-yDnegJl)wiQ5P zt#gx(PnGgJ65RGi_$aYnB>)^r?;G}?Y6p)xJv|-Py905Vf5ilaGXHzP(BE7DSA3Nh zQwZ-&=4eeGBVXGKWZGa}&%ez1WHtvduk1Nq0N&G)RncOiKZO)fHU)5367DcG|2<*< znm-OrU?TcXi4}i4%>MQ6-_HOJRA}^E%b%!!zwuvR+H?BtUuz3d=6~f+f1B2XG6}7W z5`VP%yOH$G-w{r~=yW0e5TM^Z71IK`_0UW6uL9ry*@$;I(DK}QQxL{01{H8)b_cq( zk5dKyYOnrp!2h+D|F^>bx26AoD8t%(ePuczie~_mAHY$|)7aSbS6(+Ig4?WLE4q?(G1x^`erM2VtP1OoC zUWPsC!?skVvg*1JJ{`EuXa4;W>XVv!>s;B&g1DpB7@a@H!k3N>sw0-o$sikyrC2MM zPnb?1cMj%za`iYVE!)r+VN#72%!^Wo^j1^Z| zaP$#|GIs;=1zp_EwsdLs=*s1)&lESO7RdWu;E7Vo>S&#iIH|u|Pkp03dg!1|CBDMU zQ~5FVkLh~@3V~AI(LTtR0qPN)GPjnIoBxxOhOwc8AIH+V4+Fevf0$H8IdBAD{zN~@ zT52a9kHB4CrkqK*mWB7j^D&+GYr|CrWlPO03D?J>_8b#}G*2(5u);>bI{1NOTmd5B z*y^BOp&w&O>)rWI@x(iOU}@K3&OH>diP-^3&XMac>bCz`f*SD7{NVdONF+%PMaQ*r zbV~U%dU*WAA9G_mcg>Lt;A}kqfa^9IN-0iAD_yNt&~^ z;3AhQLeKi5EW=D~03WBzn3JB_i^dQdQ-lj}vM+Yy+qoPdE$-%kl~MSXU(E~xH6^r* zaaUU?@&8vuexIqRuybA+?sl6jCp1f+yJQ1&q&F0)+RD)*t4|$wzXmSfV_4S%HxB@b zO|eXi$9MJdanXFJl2hb4NZ)8Lw9|qAQ%1(jF3Q&tvHW(Oy-^r4-WFENcsX1DP3iRHP>MNY|@Lb5R{EhZ}Y=* z=LTp1d92(QGc(c4iY^Q^3~eC*-XVUkI4;3v)?I!>_VHqiOQqBlYX;mznRrMV){ z=+ljC2IE(%gvWbBjwZatYA*u@cw&V ze}ImqZ$UTk8vC9ZYM_B3e~BK~GS3kSn=|}15XXB2vmAuCBqt2&`;0OOe;Aiil!o$_ zwhj@f|A{v;;(NY1cdxyBb_Hfc-vI8Y%?W-vmlJ$>2d-DHs=z?$*Lv-ju%l+wVe~YX z=lw0@YzHaikNR7cPOG|Hv@|77!2C}@kP$ig1#k$bvcwCNHd8f@@d>&0-o9cgBljnI zfx16bSreADrKWvQ@n`eM-qqm}n{?=lWRc2&?&ws%9n^8GT>jxw`eMg71&bPo6nw_8 z_A0k?Gc+Z#k+0_hdD6$7-r!Ch;V5(oCePaXE(i5gd|Mn!JICbZ0vE2YHsW2oI^}0( z_4LOe85A5cOTJ{%oJr=dVKMokFLQHa4Ypsq!lj5Avq2%?Y*nt6IVa;7DCb%PkIRQC zSptQrQmS2bef$)|UYUHtRZzAsKYOFlY2<(I6&C~-|7@%$-(R|&Tj!$Mrjs#pEOm%R zfNzWdhq<)7tEByNYw=xzvdw+n`~-`5(;Xg+Me|c(TCYjY-pQ{^$52Pw{UQ}ll3eGK zfN157el3i*ZZt$6z=Qa0Mxbd?Sh2IAgxAOybnS^LSzk-G09uNH>(DU2Bqbt48DeULbK4V z^@TvfV=J3fjdjN@DaYXWPRJfz_QubtoC5gw*eZ(4$@4sQ-_xV$qxpDv-Ydg^CR~H9 zXC&!Kc(^^)g2il9@n1ftxOMjk9dxIC-!;CcqBz50$i2Ll9$@Yz6OsFNFhPV$&+xU% z1i*m^H@6Z2@ue_BHJDWeyUw_2g5_RJY{*U|BW!9x^f;UFevrfwKl<4hVjnto0|>tES#&j{xlQGK(cg{xihMSHWwi}Mm0Q+)OY{$ zTIAh|Rqic-<4bMuHkI-HjKMQ=PE!>c!h$ht@&5AeyZGyfQBE_*@L_U00B@`~ z8A15k&im&k1=Qgbveo7%Fepvs(jJpd84ow{Dx1FP1pB_0*!jXf#ffFA-4tMv9HCPBunX3=x=_3ELKt86%0b`50>TqxT#}FXApFh>gFDq{Z?ptv9N5V zkn&{6;yu#&qcLfn7t;$QSPBVati8}6I*q%8Z$iFT1I{E0q5$J9`tFMk@axyCQQAK0#Rbk^iOJQ)H0 zdF-M_Q&0y}*oJ0TVl_EIA$dERF3Gn2I(|IzNG|=0t8QoI8;k z{|`Dd_5rwk&sp6R(XV%91Ff7hx4{|XUBQ@hcyxU0?`AwfInwd!lyWsBqHHp z^qR&6tYMQakkeuDilo$Sd-+r>SOh+VkCP!XO_qlEIMXx6AU|7{VqP5q z@Frh1^qhYuv2d_)ga8R9^|TB(c@=DBj)CyufHSAm610E2HY&eQU8i}2gDz1pCaqyq zC4JmXvx2aX8TiYIWp zYu!AqF`0?B9bun6e~0twKYyV;1e_549TNY?3OsHHd05jtw(U7ZN}ig+dQ{jj(Tq>f z`x2->h=AhUbv*PAth4{I>U^zeViFQDvzng6*7!<5kraUplDBOCxv#q6K(gfUI0N3S z6i+#yXDc`>QnCaWuY7GZK0pevo@Z(Q{*@>UT#WDrJa;sKZq?(qWYrg_Kaw*#%JYcZ z;%U|IE8FVk+{VKN$X~zI8!d^u#Nb+1<0YZemYoG7q@nZwnJZ9eQVNQqE2keD+PQ`~ zO9=M#Mr!_3C?la*nMyr^qpuowZ5(S(DwLQ82s-W-=|Nq3yWd(@cyVCvvJqyBFZ;VXs4UPtof%kn9GLz_`ZYD;Csjf$#kQnyK-zTir(QjL?q{8U$Han>4_c68ixy2`B>K z={q!k%j-t3R%>S6FlhLSe2L+L_JqWjgA0(L@6?2&n!BW;!-l=Vt`8(WWG2Jh;I&Up zRwrHf414872p_?7%$~5%Xrwa=#pG1Ge28otGPNdb#05>#GP^?HL&UA@F60r?E@uVs zCpv_3k^iY$y#2`1Aq1MRbaL}i^R0i_mU*AKg$sax-);+7>rR)rkwP;Q~ zk*cEH(-&lh%vNTsr}IaZ;ahZ%NAd5}1GVOhzZR@6F7MI|mK*J5frLu4**QK?Qsl&T zHOpqQ<)*ZEjah<7&rN%8{3S_&5B~Lt3qsIBbB5LFN=v2fF5>+6L~1Gwxonf^LXIo0 z#ccI=Kr|N#4x5>bLg7S?dc#F@bTl!bh-~-qoSC1;=NfGDjuz{b%pbP^)^XWF`A<|D zjn%QVYEt2xC-wbM*K>H7_Ke=%aw0!h;MSQJ}kdSNZ+` z*#aI(0NOJuv4LW&30YTPL_{^atH=JO#&kAFjcikqR_&9EYGRhm-Q+0mkU!SdP!!+g zj+$k^=gZS>|M7laY6W;K1RQ36K4TU@8p(Tp2*(1B%V(~($8{LzFKy2gdC~+08b!6MHCEDREeEGbX@1Xf8(=vr#2t=Ov~hT%rb{Kzjr1Lujx*_*#@w5#YGc*k4wk zubWh!nw3gSFlY&7S?s)ebKOYZgu(La2~;sHVBF+VbuJX%U*P*A;>}cz#s@ZW%L_ut zva*`JeS5Yvh`iN8q}-<_bBq9gkEkgb;+%_Uj^~ z`PaeFJUH2-`^NyI+dDmJu~W?!FnS1Xt!kqTx3hI9CWocD^e0eyf%N9f@FsAxFQF6( z{P2giJNq4tLT<;&wjy66JvUiZfFob|X&i=l9mq?g2cvK6RE?1N;CVld zReH#E5I8=O|AoX`+ii5s6+F{{5{GL~v*B0eP?v{C{<)3qQ;Oqi6qc4thjmchs*9-9 zu+Cn^rWakMacEZRe``)p5NwXR-^i~%C zz1VEtoz%R;!QYFh5M5k`(-HLp}@?MYA(LzbeT-feh;}_j- zh|}i@DY~(eNc{e6XeL+NGOU{p&&R7y_!`$-cVZre8P|(k_wW^t06u8TCLdjIVxpBr zCy1Q@knY|-&Ii}*b*M2P*;(++r~0&BcH*Ojnj#C)1bVJs^3Ms8C98mc- zTx*1?>k;pw-d%7AkZRPL{Xo?@k$=f273L61y$wviJaIi8#IbC}Kd(ZTdiVu5I@Bo~ zqTlZ>Xcy$v?F+tC?lhp=aPwd)KX-ZJ^?oF;E7emfj!unwl>0Gx`^Ui&^SK(45%0rY zma0+MmHF4g!5v`HD!4vw@iS_vMTP4;Y(D;E9_7KSRfdTIR+s)eJ7toLM}dL&?OdZW$ya>HDI zD_UeR-ezfOQd-+I52LgMJ!V0-7QHNOqadraRdBb&@6v4-X>be8cpgWm4%@tsZtPu1 zXXVB2J1lmtaZS0S_LH+8s-PSZ!6)Dn#1gXon)rO%u@EMm;h2j^lg`th1!-uYZ%*6Z z>+k%08(wB|OM2iS?%2np*B3VK{DMorQ*M2^BU!4cY$4d`io9ZII#V2#m+CQCl4Sab zCXG0q8dHkLL{BL6c*AKq8U={%v41x;v&^@6c*sk0Cw5%5RSFjpxb(`Ah&S<`ICjn4@8br}t0Ndf7VGT; z)_Ea;ARn^#Y3X&FQ?1HB3PG*M%qr5T(!>B;f)3=;KDbQH?Cu?%TvZMFdo|WYWMsJW zK+tzETNEH^soP~*`*V7%1)m3oa-E%}XD^av_L>u5%MtRWN$pMs6bV4i#D~N}b;+WN z3u24{LCMFND8^ANx*qNRP&zQj;rwH?>v~QEFFpFm3)v&$rEO)3eW$M34THARAXew$7qnJ0#2YJL!nAK zRj|)Q{p0Uei#7@4SLZ55*l%2J_6)X_+J7C+meEtPyrIwGdz5pwU^Sm$DQEB7&98(P z+Ih$N!p%v=r{=V@1sNL ztr3)jb^N}+S5h4{btdyXS=cqXpt1(fq7h~*}2qJ}E_s^3}UwI2x(_lm#X zr+J?LaEZ{u>w8-7Bgpn0w0B&Gz~azEnl=iyh?Q5cu1GyzsEJ8rH5ml*yX+G7zNUHZ zaDdO?_$!~WQyblk_YpK;&Vqz^JkdpaVBJjmyU9f1VDy~7b-#VOmG{Qq6`+6~7B1}& z8-8Y;Y*a9PVqI=_hNC4UL4SEXZA0^mZ<@~@h}rseIpWwvlW+9=8955sSdr^W51>vlev^hY2e{ch1<%yoq*{^cW&QK_voAQhaTQW?ExY(9~Ez`-D9 z2HHD$c9uG9<8*6yXrNTAPKIzW8?z}MTfX4L2U%?0Z|%JeQynqjKvbGp5Aec`t} z|4y1@6$zNs9}hZ;BoQ>A5GthAglB{Y;F$E9#FsBWPCuS}qe$JG4Oe$THc9sD9M=;a zQc%*stNa+a>O~|~+H}LwuzTWKy=K^`Y4r>-A)-)==eDXnxm6!1b~mzkDqfX4Tzr_{ z>pIXAKNus8fU(7E#{^A!CgNAVr*EMUw(frKM;#O$y`cpTvN2=aA}#lQvG7yd^N7HF zr@y$9JqoO~Cut9^Oomf;5Q>!C>?g-B)nv*U0qZ17MS+edQ!1KH&kzc~$a>zjDOcz| z;BMeG&+@!%*d8W6t(DZR#n5a=?C8^OV91&(qDmW9Ey(4!+weVV_%e zn#WCnI^&r*KYwa6Hnnn=vY57aC15s^jUqgzVV)%S3S&Qx1QIB0*g@nCEuhUEKVl1Y zI!pvej6#y!F!9j%uoKOTv z{h)pW7rx2MS;0wJoB#(vmhOqZ5CM2~aYp8sp_&mTeQyoB7>- z^SYH23e-dpBE%B)8rc<(UGvFU^A}!)?oK+?L`2~b%xTb}*aA6-j9#g@#KZ$?^i;gtH?)uD|A>!a;{?=V)Rbm zb0BwdfE-o#Gql%-Rkx5LnIN7fS;q!ge@eP7!!xh$*|enVrZZxdR$YI-YI`QPh-{fX zp#XEz$XoDaApyU)lK|!eOAbPd8Hd7Neyvrs2Gia7V1Fn^b$tmJ2Cgeim|FAWfA zxQRRL#1>=vIoGjtG39bzFz5T5GakVXC<@N3(I1V$R%Y!5BC2?qSjr-wIZ&1HZf`5_m z^oF9b49kK?&iQ@gTcJT8L+EMyD(`qCJM^{VCnE4hcg;9jEtAuCH|Om`kQ^S;j9^oR zDiU-pTTHfz=52jB8?1ge-(tuO4qT}Lr9DW=FcX?-_ zHx1BHAwRLXV5m^vy<3Xm>mc_!g}6)AreW|bFy2iCzlif1Fa615nTA<1zS*C}(Aq9y z>MalkM!jEX1T!p3NV1vmu+0`CS`|#4Z6|EEzsG1UmN!<8myZV(%gZGoPd##@~$xCNNslK?JrMn7_kXU*3 z^7pd17bzB)AXXgz-zNvTY7dU-={G>?am5Y{* zFReu3rvX-%$;u_FH3BP&c~a)HJWzgnl!dua@0xRF zpX=DNW$>K{Mgg4EM)b{!UoR!Yfcwz!ND1!LJ_ zk$l-Bj&0Z`gtynqKg=%&Pz8LAZ^vuizBXrL{NC-}o4^%>Vd|K@vDJK$%^9$Jdj`-@ z*>~~35OpC33CtTR(DV+6mpL>qlC|AXD-_LGsAmCNwHBb?Cx(on7#34tDCbugb7jGA%TbR({;nvhi9xQCG zUu8RP+Rd{C=<^63=h5=7@GgWX5p1?*q!d2^_=Lvy)0XO~fIDN07UWl_Wtqii>CWcu z;qgy|nlOY~#)+_k0qd^4-o8*OOQf1uF_+MvS-?QLn9|b_QtwGk-vH9If03cT0lou=9Dx3n*m$XwkDj1 z(w5Q}#&^@|yFXKkE}1vxN>t6ZvH~6ZG6Vy+3cjXB3x_1X_u^&0`ou5x^&=*Yk}dlz_pR01qhvo!W4GlReKbo&{@){0 zJD#uNEFa)Na>Oga$+VNn5(z68p^gHx+`=nVtx8hh<>B(ixrMrv6Ao)Ziw z0w4R0NwA4@ zjyKMBfmM7Pvy7oJd{M}CxNz&=(0j{MkAK4}v%2{C3=1mT8$;g!`=!ojFn8Uld|ThG zY{|FT$Fk)q?sEzU*=jC0Qjz0|yPC&?aq=c^z!I;J%sxA=FGaQ*Hpc~hZnhuA%(_b0 zJ62d?^jz`!%r74=!*6-GU9Qlb7KJBoj;wDfh4Sq@lr@8I&*bf^3a15j5m|3%;E4?Z zJj=Mz8n9_1`@lg3!zFVjxjbkBDL_zzdY+1UyVZ32$0p zNJM&Z#M0Z*$^!{EU7`IuL0_T>y$HcOUrOlu37gS5L6Kq5K2ESw6B1!UCdRa5%~4D_ zzd&MrJ&f*e!zK=#uUmCbI!?)&W-z|!HbU5Lu#QY(#EnAE6r3cN%vq#bw!5Bt52=YV z?dUCKSO*hBHFTI*TDckf z>S@!Ndd-koxbM_C^-}IbakQngp!8;Q^^Cwiq*p3Uw*Lt@sl1y>v~S6~>7SwBXGi^Z zcTs}gY3h{un2lP$JJ8gm@b(cQ{KcDv#lnQ|rWNeBP7B)^5hK5?*9H*37aH z4rw~pi9IUL}|?s2tf2XLz)(Am9?6N zw*e+ZU`=YmWHoPI15d7*$|($8e)O`?w?_5~E9!$C{iUTPG@7=(W@pc$SlB+|Qm&Mw z`>pF144OyQGm6;5P(zr533aNSo=v83!Zr#?ww4V#`lM zvsIby_vRyOS6(?;qr@8O>zl4xvccFOBSwMy(hLroA!pGkbVClF_bujPW)n$w{HV=P z0zj(H>-{RUJf3>4H8h>?6^uP~U1tyL*GP{bS~}K=gU7h;r(|Z`e54WG#lLAv;-0`S zqtm1 zR*dAj0Eb0ub9^Z5y=Y(A%m-@yS^IRwedY)_LIpa0FDe7{Tvx>Y7i>rd2dZ*#O7z}= ziLRtbOdb$F0svZwJ|fUS8b<r`O=-M0O{;hh-<-H}#ge+m7ft<)PIvsLED!8vO^Jg9riWltR# ze*({oC>rH*K3Bqxs=#ifIYHz$0I9+28;R&eJ4jo5P-cGNJ6&nVskL0)QDtwI%@LO^ zQgr&>1=hFC4s6;xaL}&suC^HN-`+?*yFySuf;_yNrw$NZ9V!fC!QX%y1z*NkS|G(J zwoP)Cfwv4a96H?i4jc)7dXGRd{lfYssI-F+ozw zu-fXk1b3$Kod*D7yA0gCrP!~@D-?4jjBPX3#&X8vnf{opU<5qI7o<-toUi zJaJhEPnSGwfQv1xjnl-x{Fu#>gauAoSyAH!ju=_k!)K%haAb?Rf!&?U9?v zUOwsp%0}RVc^1gv6>p^lZBM4K%pv$myIrO3o*a*GOMr6G;l~zX{SC8u5lu!6wlkmW z)HW+yWDUOZ1L>P@eZ5$2Y(Fm2w@DBQCv9pFY_ru2!kB|Q@k5_NSNmZH*VCRpf}vGB%K(KBk=4a+_og>9L|^loE!rC zz?JvQ8+o-~mA^Lg32?{T<%*rFcEV?USRv6!0souYnAVza*kO+;tLc>_P_t-Wf9a$S*m#JBaak8s5Pt0Y!n?C~oLJNx zJgec@ve`nJZ#$n8KY*ph;p(*FKB}S0#d*49JN$0RNFYy7zJdcVME;73;9EgWmr1B|vt{KF47c?kJvH1^fv#Xc?Lh7% zyucIqNkz$3Vgc)=NAXEYYU#hMGpvVWR*9$+b*V^CPV60g5e!Ia> z>m$15CG>?{-TcVX3|ZE+uKLtcD0#@{lgXFS?dsIA;(6-6(K9#`PCp=m8e|LVaGFN? z{c9)y82{z+M0N)Zv#e1T6B1%7F4{)$Q0;{5XJQRy^SLf7_$pWUOnM;!?B>j9Sd35% z7{!`8ThZHJcJE?`Uc?JYJHDpb*ZzhZ!?_KACeUGN&W)a{HnTd&hA!D;tZS?dZ|!tU zXNgL)XLdS}&>Dey>s=7U=mo%PA=NF}h5Y=%+*eZ%M(%siFxOe}c#1>ZL46*;4EZP| z^`?QDD0SH?t7(^AOJH7rOOOg6ksLq0@ItEvYw@oz-JKCFUWD5ybAkQv#TEVIV*(WG-EKe(=9e^-e+ddFps1fb9%7zL!|5UdbE4 zN^_6Os^Ocy_?mW~29M98EW^@$2#K`IPrckx{(^vpD{2yk^C7M*Fk(z|%pdNuFJJ7w zg7|->YUpb zvt&D?p3oev5A~gr6l+%{7M9j&VL6hO3J%6p90Dpwaj5JyV0wiN)fP)ToQ@!q zK6(vr_b&i;ka`^ukB3}F6LUX%Q{&L=LnxCudWpo`yz$kehVX;E{6F*M?^y!}52Pqh z)!wqSqY#~%_H}m;chG`e_}I{A6;Jx)QWiets7%}(G)r9c`DjUI$tq4Lb?o?E&X>2W zGDpn5JX~s5L^Eq-{t;WpqIya(#la-YTBwp=j&Z`H>L)C)L-raOHq!Z;)C5>5J>*`$ zP5>MTnTx}<6SZ7NeD93xR(IuB$Obz=e!#ML?SblCHbA&hlEkN%RaA|!nk?Dr$)XeV z3(Vx_E9{+n4givS;ojxUDoRkVM>n;vWn>Nt)iUDE_Q?UyYYsQL**=z6`a?=_u`&7m z`YB3_a9Y%N`Ov3ueSo?)!CR&!0nVAlc(&RuVRe;SDMz||fq{YHXE$k1tDkMq;)8); z&xX_IRKh3&vL0_T%@+bCgM(WVk%G?@f70Mi6mnuubcgS~^~JIrFUsZT801KC0^v{1 zR9SAZrK~s>P2q}?%UVBb-ESjqpk5i^E~hL){}*+H^6R}nnCJ$3v9q+CU2Z-u`QdKQ zL$lVWzG&vl>t?6M&4e7i6FiIgkHI{JZVm4l)o5)sMf=$p@ncq8V+9<3tp|VH_`L(X z~Yy}jiq-fFx?`=L_cPZ z2vPk`_Ama}f4D=`bS;kFu{eEgw+AGyUgy#&UfhOJb0>%VQPhT%Pmw}@gnQcC3C(b| zQ`{qX|KpOc1TG7 z$A|p&bw=WEL59`>Azrc#?s(*{<&rSFUJae<jD8-1( z6(4^Kh+vy}7E~YLb0A|EtaOuYJLhq$aJ@`j;65 z11UWR<55YyOiaLha%U?2`mD-QZY3B!S0WVWTPm6q;K>2eHX{~bwjKr_R?21$Udy^yVbV>t;v#;wHLB(fuKW z!slcFsnM{79N4oS02l-YL&j$x(;-=Gyo3;km@mlv$-Husx95#2>Utju(|!HMKI;i@ zdo~VpEo|&P3Ql{73`qyZ1hWX7_VS69k+$n@kK`a8dyi`?v^BqUG#R71JoH~P0mr|E zE1_?F@8W2!Vp+duFP>rT=X0^Q?GxGBZp4rSx{*9p7A6(OV~UF-XC*EYubW_W#~)uf zq&%qbF;$xN8eKCN(HLLmgy@7drggp z!^2%Bv!^?C!fb4>A1}Hm>1Uc}h`!aUGIfaxE_$yd)0@b&;$~O0v3F*lA%N4e!9Jni zb#d^jE6L0_0~_!x&CJ^8{7M!J4x=)XNzCeFS& z$ziGo!^&(X7F1$ZDPjbK6Z`oX_-G#kh-GM56qj#!0e)XMOqKK|quzFl-2%+rFvswN z)SQT$JklLy#bI2)?Dx9bO#v?zMV=5Xa;381wKxBc9-JeMEw&tIsahyQcOv&JEU^W= z`X&_zmCt5@wohd_{zjGzrHc}5RDW?vy1MD7F0IJxlcjY8$K||Mpehywdgmiai-3z% z2;@j)E*wSH<2>RIi{#KwLS1{m_bl4-HYPVEYbP=* z!I3#}1yN6;5*QWd%Cvn37ac&4zHotQd0@JFVL|fLP;6%FDFWpGXaO)0&@Y6iss~7!3rqA{{0Lp{q)Q1OGt`tY7r#Gq$p$|DlYA_xZ9Uy*X{1uI)mG1yjwEN>8Uw?U`jvVZs&IFX{8yYv2Ej2Q|Q8|wyfrwXs~m5MaDKC#!@%E`-5j7KQ|$!ece z9>onQ3A!cGHZrbBiORf4(yPXa0$wZUL8)d*7k_w~JCiW-Ze;hRB{8vEF{FG_K3lvZ z^^ZVKcBVAng67U_n&bBH3PI4Loe*BP)K=GGJmexG}oYdO|0|YuDFD&mPi_ ziz&=%TB7KYV-}pR{weAsQ3&>fq(Y$}Eck~u2P1T9qdyxxtcKdEpQ0wP>U|wkWNg>y zT&mK%Ip4NO=|72nai;@5AUPdwJnKjY6YU-GZ()^QMKPOMu(rdbB|!b5i5kEzPe0+& zd2KVeJEBBTG>7$-kw~C5YG4zo^W!}}{p%8?#^r=h!$!SIcgvV_?<-cSQ~4QF8X2RG z$Ko*BuR0EGk_a(7>IwGDZRaYkz1~xnh`7yxu=sr?-!N$>iP#1B%jCgY` zL4bVVzh5A9@?LorIP_w8uipN^sCIwu=(z00*J;CKjl_DqA?T2?zkphJFZ04tD>~zJ z_Y!god!(j4Iml3Wz1Di6o$f9QFGv|PX+-rBM#d`ZKM#U(wi576lqwgQm!s8|M@M8F zMtgBy4!tAy-I-?Snby@t`R}jF!sRqFEWo*9C$%plD4km%{!ZC2YdY|OCSGMw=o37t z{MlFAZ%TD6VnyQht|LV<%AeTl(Bao&0F0%Wgf}-0hh$(*$4>e!s=-m{c_56*S3aJm z0HwU~NB8YRM1%`e!_OFV(yDSIUaRj;)|(YFirVLAuXn}F4+CZ5i$q!vMYYla8c8i} zjQago=&--?pOX)w&m>g3xuQ5zYcR*I{cQH!A|EA=63xA}dHN`QO251VdEBMjFOPnn1S!(L4+)?n8!fFZnyAbxT%M#)H`cmOOwiE>wG>i+8D zT@FhoZfhn<&-LWmJ3G-U4j=IQA)kD40#;w%)6zK#=tj50h39bV9==Y+P9iXs4_c|R1UV$K3jTXC|0s(As zm~=2P*NU&uel@b(bQD9gc|57IR&wo7>66w=3&lH#h0dn}QJueXA-`-54*3nX=*gVh zi%aRyz}rU;D?B7z5un(!xi^U2=<52#ZSgduRAnCOg<7gJUv1f(HU>sHz8bB`zJS^< z#}!=%?pUkFJx_yV5uiAXQjd4B;~AkD3)i`v@vJzk_$EFIFNfs}G(0?mVB$4F-7`fi z+ky99(BIM+1oj$M3&OW%VsO^;U-A}ETDA`He|IaeGEp)kfHluT%`(dx9%Mf?U#G+( zCuH&4ioFVvzVSH85_Hyy44U)PeU|vH zLnr2uCWOk!$>FX(GJo_+XSR{a6d!T>hXyjrj%L%Q4{0yY?6dH*v?hTSgMq=%O!DCd~yD{P2q}4bud;kUkQFEfA6T^&VEg} zn{R!x{~Pr(@pb*UfBo20ddJcfEWr8!|aJrfN?Au`m#>%v4k_-o>ij1$W zc?ZWyZ5PU9XwNB{l2i1tA5p~RAuzR-Y(kxMS^ME zFZlZ}Bt((Qe(-~L_EU_ybkS>^V^&1ghYkPk z$XePjcP$St9NQ-kPpWCE7}C52AYJG+Uov$HP(HjD+7-B>Bd^CY&vrz?P-oqlILV36 zkzMOOrEgvVA}N`^^?|j_Ak>=~?W%6Q>-N%z3euDm$V6rP(}r#SgZ|WpV4+8w)BtOt zY7VMTK)s+$5gDIrRgJI{kwufPJqAE_(US?`0Ck}v%tQ|5t7!f09DAM7Vb(aQ$)*2z zowTe0g%ifI<5AT7;rWS~71v1R#u*^VX6G}yboA#aWW6?k7L;F&Y?b!u`wqE~kx*6c z+oy6_CC<5Q6^}GnaCiAw_frq&C}tPM_h-jHcNv^8wG$2cxvMMRLyyO2o9xYct$_o$5EWYTp=*IV+qwD#_cxx zEi%~Rpe0U1%r3lFyI-eL%O}06-Jz&Yevgtu1QMje?fF}VEa8TFC&Z0K&ADB(=l6Vh8iEu-Ae5!8sm5h={;|)MKs)r@mDTClR4N+) zPd$A)LMJS&OSjqKsuD&1di3i3`yw)&b5n}w#1cn54@3N=eEvhXJNw`nRhI5_!n5}P zZo7^;LubX;*Vo3-Ju~q9CS$QwO1oBmjiuj?r6`RVm1c8sd#P)&xC)K7S8UDKvGg|MIV<^#8xWRN= zTFD{qV~?E&k%Y`>&j%hjb)+55Hc%d}^FI{H{38~mbVY!_cQMM0hZz2%&4^L97}1k! znm|%U#0F`?vDbNo)}N5A7ft`GM;4H$j<9B;S8f^weE-5i{H_6B0_WYN=n!0nMYrk? z-q}iHg(ig_R404?rN(i`6cdOIJ-<1maXS2;)&aU|=^7Sua$!p~9|9xR-&{h#UL@k- zf?(z&uUg8;z3rUgn^c|k^1<-S4*G=)0hQVO@Myw={KwN2 z{rfB1uNtP}fDDMjANi^{Vh>?ms*J zj~HH>@);0gN`@GZNpk50bsbV^QUz7-Cvts*MYVZao&JqB|3<3*dNpZh;H6HNP?X;t zE@i!u4>jys&?Oy=_`@E4H9+YGJbgV%KV#0O0p;k8Jw^%(Jf4G7P&EJltmcO#-{b7; z7>}6t*w7l08>{Klu>WVr9|QS}2=czqQ4*!F&)@q`41&h|!3_hvk{JI{GN$e(1j_%`$aKMUK2{N8%sYCe_ z5vaP3>5n_L>xR|FzQGVKMgUnB)MWCR*8Q1ZHUxICZwpWIsw z!U(3x8Y9{n`6&%RWdqVEX+;nm)YNvbT;S(Ut6r49dpq!D3%Ll<1p4-0h8*_x#xvw5 z8Z!_8_G4ZGKO{gMqM*Y!Eg#ol!x4`%ewi}#Tgbz2AL%`_rqUN;V=-KDf1p6j&mM_v zA$~1Xr`R&V-qw%;hcO1Qi_UN5-1>&r1mRR&Wy}4aey{SPISAX$bKKVgN*>z^@Q+e~ zwjUqi5^N8_FNz2N&~fVpWS1Fc_;V-Gtq&B-xi{tb=J(v`X7f{`i>?3)`=}aG*vNzc z<3$3s?7n_yi}oA?K0FCU2zY|SIktgAe1j$rUWB0@tiiBP@%IKzNrLe7Y1Bm!#jJ2( z7MDmD@Bryo0Cxsol|@~?KWSAvR`mV7`QdbHUS07rd0mkn@hH~FC@WxZxs|nleHN3kV(2Wa+1Eb%5-Vg{k04r}-9L?`} zEvknjDu!Dxg(Vb3k+?QHZGHtx%#uR_#pG#Ypcwq{tiiqf`=YPO)^}fmhs^0I5Z!P8v64E|q zDA(98+`fL(74@XtqM|g6BxAf%2KNe2oIGGJE?3SZe}>O)ni{B(n%o0d+v?_PHrB1< zA=_O&j3yUmW>GJWQ?-5~=a6`6nnWz47ASw3F-OJc%^+?*5l zA<;UI<<*=BgRXbehKY|nzx5pBx%D!)RH9oP+(oHw}MW}C;ct! z<;g}xBFPz~YLIu_Eb(s-5{vu+1Yu{kS>LYaA*jV6K>=yc^nP_?SA-Nv}*qcpTN3j1xY=?spzFWteS5A}xif;4VexK1VAQ10rsXAJ&&5VM17KVg z_qA5{3)GT49B8?B+^Ptpr$bhewbJ}vb7iSz!uQcnB`w_W)&~VA1w}zz5G5la*eWe;+0s@mqzA`+c`eCgaIV(p36(~x zF-J0xtrA`Ey0WTxg!oBoDW>|C4{I2tyBe->3f{0UbtUFxC0l& z&5H^ep6nQxs$>MGCRFPmnGR$zw~&Eh8~fNat3UxMZhx1C=32g+WTwbE&kvvJ!?nZq zcm+#4Y0oZt*~$P0%62f(`RhzB@yxcXr|%IdcfIf0FxLQhW)f8Dy$uK=^Z}guB6_4& z1N~Yhx_sqN@?*ELu(J)I`lM%cNQ5Po&!#*hB%tE*G*ZL*h_uBOCvu}mvqCahi}gD^vBHVUXn9*4U@b4jWdNs=-D=D7!+Pxoc5kkg$t&{~6~Jm}D>>@-8pVhKEq9w)I@^yd?Lv8)IQxa<$QM0}E2tFG^>OTc#OEx*Y~bvhD` zC>>A#x(e&vkYj;S&=;o&Ol-%*L-Tg;=ogpfQ$}wDil##Dy)2xBx5zYeMM|kHOTq|# zA2p^6;&O!0EPxsKC>-uEfg0a$J|2sj%IEGrM-V9WmONcVWE*sv7f%*7ANydw+v0wxba>bem{w&-M6hfQ=aR}$%2b&_HT zZpK^{zuubA%F%4}sM^KYD~XqXCbMD3eKvc>qE<9~B(5zh8#d>=*EmvcB6kzrjBU%g zvB|ta3bWuMgsh9L`gIwl&s6QSy>v!9z*uk_5;;p7u$n016lD_ZpM|l+hscZFf5I-ZY@(V6{xTklr0K z4Jt+!8EV~TIN^PRpk1^aARdf#C=Yx1IJm0C3}3G@{kaPcB$;|~jgL-`Phc4#y_p*z z?*6?AEz!L7<#;HJ8oj$1N)h^Kxf>8E@$(mh3zEawy;fM#wT_^MQnh;P;Y!m+!x{$m zGbdSE51t^mXk+*j4P?TFB@V|AXUZ%Q2NqIc3g0!~-3h)Nx4w4g#}rY+&v-DzeAo%fpml=T369neC-}_!xn0-TynI zD+f#_{*F`JWcDr_LC_e>+4E%kXD>NO6`=jE<_x9}u=&@njnOj>4NH;x>P+PCYieYU zDkMpbZRBf?<|V?VjF#=3z1$K6PUTLBUGymo2^J04NtA4_c!Al4m0a3*X<6t#r|{yZ zP@S51%L7o9l+RhZZ4kt3W$tNO z5QgDCpR*_CK7TMZ*D_JVv%7vggPpSwr_#ou^?sc|q=BIGaNd3)&G&OdV@^9aMpmqOy&X65~=`^vRJjMu2~@uE{S zhMOeC9A+$VeD?j;3^+jVf&eKV0Di6p3QIKa$U#Ca!S<_0CI!L#M4mtwLQ>u$b9K`0 z7e z&6ZFpQqnFV2hkssJlP>nZOwR~$UE26+PTbo z9~m%qBY@AplwY>Za8>cUqoQNh8<@|$GJkqROhP>u|Mme z`>3T`5C{|m%?SD32qgA^%H;2j<52_;9;_C6Dg{MRqdom(Dumb{#af1T*Aj;AsKL^>0+m9ZQ#eI?`<9_#OOn^mL3)Z+^~^iLq0_6hJT|rS6s7H& z#^EX=ZGc!(it=QmE+=Z&(SXgzJmz+yN1D_pAQ#f1Vqub@>3X+P{db;hsoa54g&|toNN)-ujxSKf6?!W4sll3x8quO?$NYtDcLGW#L z=KMrK78xU6oVIrA2M)}Y)w~$w-95bEAHhDYXo5tMs>Lbzw}D`z{h2I26@j+cp2)^ zxg_ifMy~UtTG(ggQKR8LCWq~DG~Y63dLIO-qIDg&Hq|k|bIR*g5B>f$?`h4=vwr}7 zpeGl>=J` z4!q7Q_|?g4TspE3@PE7A%=wk$Oj~CbH z+19h`S0-?(0Riq4FQ56yU+qoTch%u{$Pg6nFD2=@zXXbsY^xB-S-}YrW$0j42M!hd z9C2iso%ia?U^*Knb2=cwpYtV@EnYLHm!Ccy%AA0Fq>} zx^RgE@|M8ZgQ+&u;lL>hr4@wRj~+`c53GnF7Fp86;T(-QlQVT#_HTLJ_X05AgfdSA zfCSg9{XIq1GyYaeT#b8+jn0J@DEyppoFYVHA6Aa3)`ZoL+5p!B4kyHHjfH%z-ae|QYY$M?+vf?Yrn;HIE=adILU zKWj*MBQ3_M9io8wgqf!4Lei53gm-P+``-EtsLu!eTrAa>KH!>-bXYJTJd%~5#QR=F zbxRB#W)~o#y|SU^mpB?qAf!StEVANPMJ9o+VikY0J4xX!H~&Wcfzu(YX+F?z(Pyjp zk?m`=7ynF@e}D(jIpn$C$Pjg2jZ4QrEIwvUdSof85c~}eB2+H3UM}=Wj zg<2*plha3fbSo?`tV%DRQFOFQHMw-e(ZuLB=bDOfQ0W_)S9opv8RKgEi{Ue}icID} zKP(*$+k(BpTdS`GOPm-m8#~oUVED!+d$t$WD|wL<#`-=xyqcdJ8L0_Z?&cxci)1Wn zpD6*x|3t^r1TLUwg*PsHVZA7Z*xC|<cBQ&m zqLLpsmai;T=e9-v`SM=-WUC1aHMP**32FCUDejNU4?+z$4(pklNxxjT(f-`AJ z@xF!0jeR2J5ZC_}5Bfg4F*FN!`aM6U;J4F*z zgWqM9_YNT139fQVd_$ko^u9ttkOZ_CdDItx=uee#uh8Sw^WhWO#ZW3@*FY?4CxLP}|00d(<%Xn$SQ~ z7#6C6@`8yZW8gcUrL1tW@b-SS1W2UxyO?n3Epxm~l_S)?30o8K6jCR)}i|1w)=QWPV!al2M}8b2MB`%sE9;?=+q0+sY3yUfK`Zg`(L{%PU zkEZ`H{h4cJ-D4JeW0&v$B`W;Z42eu6P4#5ToWd{usBU4|CK?1DcSqdOKpz2JCd~md zjv9nOPlB*39u@_!xe%SJRH*pv2yuWBD3LOzKSdu4?(m5D;aKml7km`j0{6GsroNvt zEAlwmT<2UR&mu-(2ZA~F#&aXTq%6Xt9aYr@FIQClb`qEcAQSgyy-4%Y^^+0DRsvy4 z{+o#5H>+f5UBj3O(TY^WXQj&I(UC%UB~J#QOU!&~xV$FT&O(U{yxK!VurM}Qr^SO= zjoJE9*WPF?aUCiQCJQR_r}i%Uc|+v?opxDz0)MUxBjRD!$8e^3m)tn;6J0AQWZ znc6j6oOjqz$B$DkH(&hJ&_Xl^J3syY0^4PmtR7qh(8(tX_zbJ;7#2L0^5 z9z$&+=h&>5x*la8{+(87>HAAhtp?_>9-H*ZdSJi_1ii>*vC0%we?85BMY8l`Wotv+ zwhvD+R)Zzd4uvn?cx0^{doz! zY}q|8GaIrkRwPcBMGe#{@mES_!Z+^7#$h@9rs@mogjc=WH97 z1p!%>Qe-k=4;4M|qn8<8>lTgE;=BREo->)gT1m0>obRXHB#;d$3VNG-@Ol27Wz+JA5aPP=_7EQmm7%h@Z zc;96v_Jv>|Rl78_UsjkhmD3E*>W&@%hw zX8fIy6TQaf#IWs5;@m=q=PfB>(Gv`N2<1dgP%|FSx7$0S4@9xT6vj9S*PAdG0-)$_ zRQUZd%MyfSL8tZ29RTpfWNKkmAJ=WZytER20_k9E}gN)0t>0_4R z5Uk_#Gq;ui*{wh)g3N+98~!OX6=I5R z4a_rH$Ib5se(2Ls@-jc-mB48e67;3XCV+H%I*mn_H5CG>^u^fQC&X~Pq% z5X~Q*b)ks&;pZP07oEZ6$EEh*#k1qYpG$eV^9`lwmt5hfP%vr$Nzo;RJl4F;QlYR= zxH<5v1**5Qb)EG)lgPNM0Nm|-^X%n=$jL>IzC)j_Plu?9>a}R|Xp8TpypAFxh@Y#u z`3(o4bTtK**}4VU-n||;>P)pu)V6EZ6}deg9p+!nlA7hSajr5%^J|FMZ<#YHJh!GG zq3YsjJPac$3niA?*<<&#vpzLD3Ok@q;AzL=EtD5&(%Lh zkE^=K1MLvkbMDflp<062)Gl?#a|8>v_A_!wE!k!kb2vaC{cq`M*RDu4&$) zG(J=*X_-`w#hwCm+)9qN(sNKuDbJQ1=w!R2(x1QS88JC*JpB4}0&uAOs&zO?ixEKe zZcjjN`d$}n2G!@fTjSXwmC6}!Tm$$C8=6K&Mx2kLvn6|eT9P9j44?)KJ9o77J#q@+ zUzS}H=3i|^T+5M9&$Sq(2auymKUX|+u?5LhJ090jbbh3;)|%;;VOOT(z7yNib$x)2 zEK|ieSHVx}7e--+{<9@Q3{>E(nNn=ZZ^U}mHH$qy>d;zKa;%2+LLHA&ct-iN)f{v| zxFlBH0=ppfRXlueL$PRw1;^$+E*kc;-W+s(EBHM=C`I#>Kap~*sZ1$8(?UkK^U_n!afmj%Bdkbs{ zELVXbRsvxzH11s)N?)X76@Rhw>jQbFDG(@zc_P9E%m`FHiV zmoe}-5;NMibuymLQBU~gF&|;~vP%d?E}lhjt5PNV_+O+0Xp5w3zyzjnS7<& zp%9Ivq{j*>keuDwYK4vZz>jCKhr3P{q~jzl#(ZRLQ`Pg1;rC=JmRGkxCIKNeRo8o5 zbwoXAgGDj}oFwpI8p)TW^w}BW-g8V=bAOS00PdP@xWq== z{d-y0o0{IXkSv-`V<1=t=(atz8);Eka&0IwkivITPhK3K$fnhM5q4*u zfQj|erq1;zPBB!s>%q!%+xpiVtk;r3M$gwG5VDU3h1E&;EmxmKjRvi}mxheq-DFm( z>Z1Z;KDgEjs?dH7K&)h<^(XPYD)FBd^G^6dy%ZHQd7EO3OzBfC0#hPPEma`rlW>)e zH~`m0PU+rO_Dd%2E#%S~s)!EQvqJKInP9%k64(+5V|P&z z3!n2C_Y+3R+E$)Zj6r}A2_eQxjpQ?idF%NBXIeceZyI{67ryRZlz}T?=EaA77*W;2 zg_78kT9Ma#M^u30wxr>=abAt)&(?&&m+vCatfPTCGOi-vQ$uaPl>F}^CO`s6_(8Vn za!CZ*0gL)fBM{K67tckcUOrP+q&voHbbqfy*%!&9xfOfegV?Q41!$4SN zwuL2joXWX_>K1O?to~+^-#_WZKQ@hD8%P*j+N+4xRQqOGllMBbn&CmyK_D8O&JeK1 zR73LFSyPRzoVO~pBM6mdTL8D_S@2{(RNP%Tbo9zgK>T0B^LwcL8ff9{K=nUC^s@1X z?r5NFrOO018@+}#rU+E%@Eg)GYN!@^4#jb3pe2>{J}S#MPF~(|tBb3c{n^41AQ=MPC=p!u(RAuphhBTC6D& zEvZ6Q_o+~`ybp>b$$#@9{&pvR{S^&FfOp9gu2-&NH)%ljCP^46c*@JN^D{34`?C%4 z01K?EE2rKp2=u8MQJUh_BDrB#)39+`D%P7d)f%f$E}l!&T7>_P9u}m8+sThn&1ole zw036p-C@@ALiWb`F3ZTXmG?+|N5&i!J>Y+C1jD2dw65C>>zP3QZ^!PplSc`Hx0k4R zo}J5V2U6~tDu5bh8F2F!B2g@d?gFQukSM@f8l!F|Hj5P~+u^DB$X>p7oo+zc88;Ua zOOO9OLjN_fNa0;$u~Oo{eLNOXP8}f+mSlCF>T2ur&|*BUwY)Sw#zl=(hiYMY{@^08 zsFr24XkKjkcuRBmKN(7Yxuj{x2$r(LX&;3zLdeYsczb}OM11fCvUCek8rFlH0KrMW zx35&HaZI>z#ZzL8w+Ggb*xQY4roIf4P}?gOquz5&{*Mb0emH(R1*ZWyQuJMnakkX7 zmHBzthx5nWT8VAL8P;K>P%ul$2iw%T&y{PipSY+M1Pna@ghWXp1Zjb{)7L1B{crc_ z*G!5#tsi)3I_^aq#m1gXodW_DFJrb#RrVYrb za!Pq-hDvdEW!tqV4^<6@ir^VQ|8mWKKYNJ@-tXB6R2;F&Ddk&Q#N*ty7}WtZ-(u!^ z4rqMmT0Ws#{6Pbl2&o@Y_h0f?BEKoiP|{8Uj1@hKx&>6yd^FYK3BG82Tj8&B#o!N)tC<;mH>I>1_W=< z_E3uFi8+mrqfI`$>c~CIBh+|AE(h#g$AzS&Fo=@dio?L4wYz`Lj(ujoZR%ydT&kV8 z)zvpoEUkexEDP$O(nd~gsAdZ)=9q3kZoF)=Jqlw1LV`f%H&e+9bIx%TgJFJP}%SopxWtwTE%T<;}Kj;!LzgTuJU)X zWy4|!V$YEH@bIlET_YQXw6pREt&EJeN#f17QzRlS=qb*%hL2A*dpDuzWZn)!{gz z_HjEX-0uY?+yf+0IC!kLa0tI{MW?ZmaFJEHmE=G!2H&HeSZ(XtnK?6f&Izn{)0ztZ zK=xmN8Z%(j)g*r;0E!9&w?58l@b~iArxr;?r>3lQhBhRrIl%@@1F%s8czVSD>*@Cm z`5jU&9aEouwUqg+6^oA;*||!HtozLN^$%QB)p*Bf(n5`uEIbtaCfmGl{H8qJqTZ5; zE!{vvBdDIeIVNW+UxrisKxg@v#+|(rxd=1Vi--UIfPcQ_;~S)$ut2#8$v3RXD{6u3 zwlK&{1*=LdSfR9&4MiLQ)GVSJ@g+=&@i@Shbg7qTFN(5|?1v^EJu9kk(6H<~wO7`b z&o)CouG!4ewS#U9oL7+l)la{=ELZ$vULO5VlSDRNYQz3GPM^7&@_cM`Tq8p;t;&uJ z@8_j>9(!!lFg3=pNc#!jUfrVuje!?7@@yy_?}AbeM#@x_^w~x+K>@g^yu}nzv-ShH zzXs!1Blk^*#fuJyffr#MI0cWOCyv{!$dMXTJd^~T#mJGTt2{KHWCWR88(27kYs`Z{ zL4`{$@w(f+I@XPpq#eU3VVlFW>_l}HU1iU94E*s?2a*R{Llc8SW3}Y}9R1%7GGf4s z#e%DH+>h3~gV9MNh<-d_b1hqp8%`AD=u#s?BScCU`0@Sw$GEy)pw8~56nF03s&U(? zB&h6}VN3b&i{QMIL0E3*YNdAdZu!Xsn>DYIVGNG@|Igll7QyET{_xNe2p|l8*g<%- zo!}%-HYQ;Eny8Yt5@ht<7Brrw5_0$=NP)T@pP&)^ITeR))gqmNsLr^HnTVuzcoaPz z$wC|b(yU4b5S10O(wt&}QfIuFaKuMG$^L9^)IiyF9rq(Wh-(yNV-)c1t?o!z zppvf5k)>{p?L5h}Wg)>xlXnOtmC^9&!dryj^Xhlcz7@^JvJcj~?E%Dbj1gdT&S#|rdhF*JbvbVxJeXB-yF&C-eylpqDYlGFsD zE#fvjQth)%Gy-+hHa{ zqa~wuKg~wh$B*wUEsuYcb@Coay=+NIu{0L?;aO0STTsWWr z`Cd;I<-fQ9zQ3=YsC}nG-}AXMSyDq0ot@b^#IicKJR(4={F((UpET#+9ygylmD{nF0Rz(C9GB4|e-1_5@H zT`kD^IM%TK{R~B~++*!6=6x^7S`%;F%Qo;Gm>tErI<0Z0F6%ocqHC@dHI64v;H>Cj zcXB>BJg|aE)1)kR^y7z_%|XR4hG)67^)UnOq^vJJ(n1n?KS(q~{gh0n?Q?aRexq7y zZ#2?FpAbFDK}O*7=76K)#MiG4OpD6&}cp1HMR&AlelgF&~Hepq@lU>O67m+`@g3m0E6P! zywla}m%FO@D5Ri%&#Ev-9-|nz<%JbdJbtsXFZ%Hc$u^cnPouff(nEk+>!75^IvBna zrjhl!>&*yGm2be9c|cUFwev{8&>W+dBrpQ#xG~7Vg7pmU zr5zXy{{fU*ZTPX@%$I309?q5USoHF{GUO!sslAu!m3!}^7F1llrn(mvsCT4^?m720 z%<+hb&l!QA31Qj)J1*jN{&ZL{0+_`@cP}ht>~~nds5NN(XPCRXq3j6XB>&WrCbL%8 z1Y&4vOnJ|HtvVZgTvYAUy1C|Tj~69E0|zY!KjY4sn*KHdm$5FTo(`iwh_AeMBV%*` zMo{)p(a=kWC)Q0)x=a$UmMpS{q|V29Ad-_fi=u&SwDp&KYmHLGFo2_Z&HiP)6^~4ES6w^g1IN_B_o#& zgV0OKlg0wd>c|cEW8y+ctKGNBF=Q?*z_2qv%QcRC6SD31PQ<6(o$-4M}ExsYHn zHD-%R`7B`?)~Ww^?UI|Ju{T9P{pP7CGI>`B&|_ASwAQjwUXkB46e(m&=*tE+t*~)s zrxarFwPPo1L6H%`tiLCjah5nWx+cPs=#*MilY?#{75)H?_y5)C@$aGJ(Pq>yukhsy z!VtbR@Q|b2*AvjAr1m?;vg~+&IK`?<479?xAc0I8$un@Y$hVb`dnycE2(HZ_jM9h; zPr*_W41J`Td76%j!a&l^z`VY4E}D!nsr6;JKgSE05Wv32t5zs~Ltmz#VK_Zjqwt_D z4Wb|^Q8(q!lxI;6*$Es-Om(`69ax%&nDBw3f+x zLrq0_VLWUEK~z3Y&K(MsSQaXr5>Bvt?*b-jxhohQzMZX};|d`}?tNq*U!`uuj&X#8 zHIgo7@C$+y$qs_&vF)FRj}zxFzZA~o%vRqC3!+2j1B4z_>@ltwc5@jd4oPMzm*hM~ z?P}|+P?s9R=M2F{T1Wtq#2UW^E^uOu(qhTk* zJa=uu?`Ol_K$iIq>i>G1uV6j}iqw!KIFqbo#6@_m1TaL{mw#;N7X;5MB_pg z(j^`n`rr2MpWeGq?gw=bk8D4wHQysELF627>_ovTx`{l`jIZ1W8Dg<6598%{%R|(q zj&w0iq~MnGlh+PvKB@C{>J_A+g$vD2@@LbiLkPZ^8WzD_e;l`i8jVkBYOD|Y_zEyl zT;JN+;acNEy?8=jLlutxF)kdoIPw#Knn>t_0oh_=qCD9?S#IxLL>KSqo)zk9^7flD zW3|Z6qjn>>o@`FE6<|7nZxt<@y=1xveG4k9Y3kew2&6&v95YJT2x%qxU|Y-xTYYxx zHW~G7S3Mg@Z>j<-+6%{z#t<4ILoQg@N0GVVQ{(|_!N>tyYJ+RTk6N6_ZNUJAWl!5W z<+d1?C!6zZm8%$FpL?@V1?e zf=JDRU!Kgxl&_B47X)=$(2qptm$_{s^5tZS!ba z{B)$@Cdr+IJ7E5S%!Ouy6=X;x{tg`%o&rYfX+q`Cv>V;MM>iM~#u$`M+xQ*aU+wrE zrdy+(nyjTcM)eCK92|G)_*qD!(t*@!qF3}bZ0nbp07iaTXyu=Fac!vQ$We-8FdiBU&^!~ z^cJ7Gg>Q1gItdL*7h*yWnr61sO~&hy2AY1uzP)f{vlkFx65^8^zQ4cN=l48LN7)P# z(~g_rV$HNZq{dR)sie*z^H)eVh-KXtDhv8$E~L30x=$)1tSG;8iDiErXOV`6is{om zgi)XO!nyDlp~W~u@;`a{Vu~P3DWf6-A6(Jd|19+EG&Ko>hM2qfVXg^vlo`*;SiQp1 zi%1i*I@>kuW=uzoK0{=W*}45I`AZR`2O4~M;7R$Dr*un=&4CW#h65ml-#RsP*M3C^ z=o5zrmDAr%B0!Kcp#YW(_?k{Z%NL^p0+=$!>_W5xA8_^UvPxDuf@#Z z8{S%i&|mzXHnaux-J)ku_oIVcOD7ADDIYrPLZZNn|0@ptH6W_96h1hr6V6h+7g~cv z`u|#}zit=JYiMlKv*@;WFD>);E8hZMfec|qR9=dj0o|ER1W$$q@aA7ezjWw<2Mmh5 z0<*j(D|u;GfaMiXfIS^HO!AO;N#4Ltn*2RVP-wINW_iFhfe+rU8g8TbH!r}3CPFjv z>Z{eiSw8+XuzOAmrfcXgX-Ggq_`v&_z52lUZwo~|*3<==IA_MQo{wjyy z-z>ikh^LCkEyX?PCDVZBF9Hj^AO0)FxBq5&CqO(JD6J#>pnuXe|MZdU@B1P97rh+l z_>1rY;$aBY-68%r`}6;{|Nm|O|F7Gh%_b%|>p@lp%;VGpGf z)Wtf1w7DQWobV@zf}yLSsZpM21rJod8$%I_?0}Cki7bEIsvtY~tadsL?zMILqjJ*|!ZTm!(omwK7?Vr`*Uy7+} z);{|_EepSX*)ZzCq-W;XXPD>~-2{HbcL5oKcw`chICs^x(na=2=Mxfe7mwC)z$|a+ zA)$Grj~+=k13xVxKc2^D^yOaGjby}7r6tM2>7Ok|s*SqA)L12d%=^UHzs8~1t{r}J zfzhld?CrK#f)6IQN&mH5vf**b>hV3x-DQDZKF@eP>ktPYPI%BjsD=Xj1-Xj+4Ik@q z*IR=VEL}l7S1JVc95z$E{HbMye1aL`hcZj`^XcZ_@wj1}J(R`2qKnX6`5<b z{+Jk&8En|?FkH)g1tT@TE}SX-FhD=xvWOIXvgwd^dZCw&_J;FRu)@@;j1-$xjSlzI zi{4fRJkPPXap64702f${Vfj=!wNG+93Dp5aL=B z%36~~asHWZ$nJ&E05wkTxi`Ra`>do=QP>IeHqF+j5Ca|j7Z>ywF~oHEl2tLaFS-`4 ziZ;`oignoSgo6ZRO|Jalxyqppk6urDN0G2MJ_lYvPN^k&!syvnF{q3^Xd=HbvN|03Kt+SC-Kkuaz z0%ZB4{1JWbd59(FEAK}8OD6UuQX4(LHAGoTY88Nqdb_{h4E^R>v@O`VhFk?oQe*TB zBR=52oZ0dhDMnKup9u52mm6~!sl;BaE0HXrOc{9Nx0H~eq*DU|`)#fiSm_wse6n2& z51w^nUWEhWKPfztO4HhM0khy=+S+d=5FXp2f`TPJKB=j1Ly`;(KXV6KQkXOpSsK7h z#|((0=D$3G2twiR~Y zF=3xr-x<>SbhIJ8q*aUfp{Q?o1*Q7Bg4|SmjSQuT1>Mq0vO;CGhr4?{E_y#2OKIGa zl6$`7rv*%rXB&Yrk*~`Iq(S5RVOCOOuSV}hna+&|DJif*!h$?sEv`y^mDJ!9{?Uf; z($fbi18jOhrL6mTlngkDkqUc4DAaf*l6zR|qpZvWE&I=x+g&j~qC}Bjl%Ikg%on~` zE6EZ@%~DX7Dflw-H%F0DjtT|{yo~2Zv@W@-;Ea%OS8{2PONh7fsI;WA_U1)@Hv0zV zi>IQgDf{UdD3|fBo~jczzqZNy*qot^M4TB5mK${WJV4BAx5Tk%A7Ll(Vpak$`@Yb= zqmrBjKz|gFyIC(`DG&jYdhDV4%b8q}r&iqS&CaDUYh?mhOL1Gpy?8C$!~XY3AyznaYIm-L`|82E|K@JK zf_a2_B>1j{UD992>jty9FJI9^{ z!iVlJ&#;3uQWe+6>@`ccV@Pa#$+O6eskC+I{pQ**#(FZ6(wps@EtV^FAX z4ikBHx_Y-aucju&`qRtz;#Ghr<{46OiJ*rN+e}Usm7VI|eA$7ZAqBDmAZe$INM6jj zAi4Kf{4A4h&$2WB_B^|ie=B3>JP!+ALpLFwwp4S)@2q~nic;8<;d~k@Gnd+n*RH22 zW8Liqmiw7DzfhDy`l6(>lM(*ZQ<We<+ZVpvy!?W55s@y@QLhWo)H#^Yhv>iPgtrlF}d&o-@YgJga&sJJDYu1u(i(9tYzGgeM-Y& ze*a>A6$pzx(ax;ptW=9W+93E0;Wv6LsR|ZY##g*y#tNaWkOPVwE3ykT`lxX)s!O)_ zzi^Q_iLbng^3AdNO1|JC5{n@5n2B4AavNI~E``|oA4>nb9o0bxb`&7{Ys3kbW8f$O zr%>&@;jJ*;w%Q3HE(Cr*FcoZv4pdpohb+~* z5-dH)Lvs`sh*k`Aa&y4vZaRvS9AkLa-8_gGFYo8u4?ikJ0i~U*s98Q_zqKRHJ;CP0 zXJaZSF+6Rc#u7fxncsJK?{6NCzVeg zDqT;0t@;JBSvXogf54$XMd65vv?R#?=T`wHL}3Yrj-Gz>`ZKE|OMxc7v)IE_i7h89 z?I6};Aynzdh%FOh!=%kq2Xb?i2%no1yLJ3yNZeHGAx zX0hJkv&GHjHOIjFP*!{FXHtv*01TV|KCkb`m~RO*P}SlfUf=e_$qSNa`P^s@@n|_j zYoh+EA*Er4misf^s224JvX-p{3TCBKDgSWU5GA#%{V>5f%Y_xJu-6{nXAPyzN)4-r ztqt;p-$R+Pxe>As?3^QCpceXIBSWmv_u)2BdGginohlI!l^_ImB{^)%rXA1;=nK!z zaw_TS65D9a-E9vi{iJ|+y{CAMZ3ZN|jB-R_0)*NhBx}t^O@Kl0w2TFEX><{|%!xp^ zcfrgXB(*XPbUF;HR&_lOO(w|ocFnAs_M6uHEnG%DELw~P>v=i1wPy8CS^YFkhbR2o zlLOz&eOCFNpBv%w0MG{0|GL&&-~10$OME!WC5iZ>e+HZ36uNCWbi?A6(6o^pdeK{) zO8sc~V)$CbP%_3J(c@l)ki4>_AWS7~;8;wIb?SWft2`-xVTyL2l&*x&m+-*RR8<1{ z?r_Oi7Ax=L+CH4o?+j?UONr8VK?s;Np0m`M-reE6nw$mbFwihs^;VRj#BQInIbt)| z-R0iJQE?jgM-DF81D&mAW9j&srv`=8UT$k%yoZcc+I3 z0`)M*s_N`L)cEj_78Goh3~^)Ixm>j%E02S+H`deh>uPVrAdaSfy3P6eZ+W}%`wSlc zI4Y{fi;+vr56C}f$0ZqKy^XgFwHnLDm> zMzVzUTilLQl_a2G*wFV(Po5&~8?I1BfX?0m!Hd#c%Z{g;g}P}0bD~Qf*V);r7S+Q+ zH@@*?R{M~-+mlu87WY$}|D$~LU@+c+I~uL9i#^53F=;Wt6R!^u01tyf?pN>yE6t=4 z7JSd2VhcPhv-nUdL5)a;J;0i#qE%->>p8AR{!9^4b9aBZ zy`yP3M_se(wwz-AP?qk=@xJxfLW_GYDn28`_iVk3PP5gm-21$5cdAtVG@ehLMR4>f zs3NNW;OFO<)!Q>%%6wOn_Hh;lB9~vH{ZdNZ5uO@p28$)LrCVtU>w|#DY4UV`o#+M3 zqs@0coU0k-T82r(HR&iQ&{8YcV!W?yxJXNw8qqnQXu0Ncd%C+n>3q7;zI^M)I6T^@ zqpND$xoO+DI`_PS{hkBo4HP^UOaSLjC+XqH>Dp}ReD8d&DUbokW%3~# zP+tW5w07$-lztJB!IQyjDh|ol5YR2fBTD_N3}HY>a~NFyvSoC(wPttNufm^7=jCfv zV7hGMw|Q8b21pIuw&K!42Z zC*jVBM21*7Vtx%M^vNoYn`V_Y5GS42{cNFbu@YF*XGSu2LQD}p7$xV8HJjcMLU2Vi zk08{gU}Blbo}cp*7ahIw>HD%$$-REHY6p=ts2iRddS!Z6Y^33R_zSPo(DiG#y*;sf zVE!qa$zTPFyi%Ej@T{2aIEi4~Q0>nmw5ucM@enRmutJXnsSgd%|K1o$`~Xy+vCXcU zuN$ChaUvFLxT-_LKZh>0d9nz{_u;rW&5azz~>t}qrJAuS? z1Rz_}MG?HJ8ssc?NSFP*?!64mkCZc+#_!)?p}RVqXD%5^WY(&aB;oinr+@k+z2sJ* z)TiUaq4T**-06U}P)k}&oiq}cSr6+j19mwCA-?sv!K+Hs;yFQGKNhe9s%8a_2OE3` z<8AyGK3&XA@ze7Bg63+zaYC8zarK>I+oyhv;zmLqCj35R0nAkrzBkiZ-1po>I;6n9 zkqN`ljXZI%n~#eVjiB0@1&FL6FzD1Rj1}h?N?f|5!}PS-Lt%bItCEPx;IUXLl2eoc z!v}SfDUNzs*{}xKjno6M($?up*7?}V=CokM;QGe*$Q9~+{iU}A$tq=#*L5v?#YHCU z_roWE7l`W9`MW1{`2uh?hPvQLZOWqbq%CjPyiRAOXk_qd6j&B{>UcKG*x3*bDweY# z7v`E(4qzR}JM3#5rmMYeS#AjHO!(C3ZjA8bnHcXwdhOQVk%+Hvgn#JI8dzc%SF}G9 zcwEme@g^uDjkZSpDUopZdq^A3ciuf>WOaUGTWvX}@kGrgK}87(!=#3d*zl<5Qx4!s z%kEwQxDWDW)40H+xeP3`TJ_3>V_=^;h4Kd`z>-YVOSoOAKJF)`ndYF|+23!DTK0kT zlhUcLlkb5uK<~cdA(7GFu{|gJGi}Fr0N@5w)>2zUt`I(5e_G>>O^obf1r){W9gT~5 zr_HzA8}&l)p#m_U(*3niOFpCF(4{rT7ic$NMd?}`NVl>X{nd={D)v_u2u0z2vxIYB zrCYHN#`(X1b47LF0pQ!jbmezIg9h8GC0ltWJi>a6Yhuc>Tfd8D>{60Tw)O-t#2-c; zoREA$*Csl0?+lf%Z7|^J&bHqzcp*iFn)oS{f`A)DKEkHQH z(d<}xNee)((!8@&T8o3Q+A`B}dO^>WMCYv1A|x847eZVw$6bKvuny_EyI6ZT&9_dB zYYC3P8S+>cZk&4u_H%N@b2_=(4M&WQ!oGSIZii!Gh|FSHL-aOuWfw|AS7R8%;M6Fd z3o{fw{S|S4bGz)mUd7aKOD6;b-Q0(h?qI z$5em+bZzg;c+ajqe^%~D(;!c3uPu0hH%(>Dvn5=32gts$hsYSt|_#L~TR!{3^Ib?Xlf>-wm2$%-wncpfs&g^633q9CgNYJR#|o(fm7qAVJ4W7p(9I6qw;nLN-z zYOnVgB@Yb!z?H>sZ)dSu2(WG_3Av1eZz_hWS|K?n?CI9gqY}ZQfo=%pN^0)wKI%o( z4t{X1I^Rc$Lp>qeL8w%JT6ZX)RxZbf{{{ur&ikj|T2DG^$BcE&VWhET4>9amB?@NQ zz5~%+JQox;oXX!$${iRGHctA2!V=bJe)xD)DD1aAFk;w9!kGene2jFY1Z|dJbV&^? zPpw31I8Q&EC9S|i+N0b7R#O&ow1W#`4OMepzCT*q8O)8j{m-i?T398LMT!2+h+`!V zKW=_Xd~@dX1xM%R3^i@=XR=vLkRf2|uKDZ|1MD+?dpxeRMBKhQ zZOefBxm_iO%IO~G@-1rJF231$cSsm=Jzh5#0$j${BX%3oLt0KDg+zpUlgm(LIU(`; zn`84Bc4plcl{L06ALE-!o~|uv^pJgq_w(X2Ip6R~jzOcU(suG^n3cTTHnvFq;|?Zee& zxUZdZ4Xv1?Z{$OmG_Lpa`sF*>`l_cpZl^^<;sw4hUeJfx8vr@2jcXg;57UD zxIJvB=ZR`Dr?uHpz|-}0-+arIhEclUd2&0(i6R{$wcKD^j#fC(p5^zOcaq}S@V7qX zIVs)7SIzTyg}#i>Hs#qk5Z1Ln=QiiW?nG_HFqHVi?o1YSI~*Gw5CbL1q_By*tqZn3 z;N|v%fk1;s2ii~~YIaF77>KR@M&arCzx!1qOg6d0lvx1#5vwQYH8`hjtGe{+bL$t1 zUkr%t!IUoa2~}n6ai4R3CEDStOn?lb&7m_dW1j-$8Eu%m)*-?NaIz*~fXLE1E7EW7Q<- zs5&^^B8i-@s->Q+;`WytD~tZrIFDzr*4uCMSKK}8(5pfT<%fm;D3(kd?%Y{SNdO)eEGx{XND%;qO%K9GnEmoM zdjnkLTh!Oj{K)7?!{!jAbJ^T0`h+^fJLuYXyq@VT+h2o=WrmK0x>caRJLv=AmvVRN zY$*dz!J4wh!Ea(?OKcnTW`~I*( z9v$K7cxLIiA26W$Sn{QxIe9OFh9LCP=$rlr%~-tITzAX`c8F<{O@b27j@ z6m#0n+*Wp*s^D=re0zKf@XHf`_?&^UVkdl}b#^NpV*^j5V6^ZI z6VsiWeG(JzHhM;r_Kpa@zrKaDJwJ!L#&I33clzb=B#kZ6x_svdKKQV` zfy69l{ks51eqP7fc8i8Cq)e-xu0}|=@9q5RH?^zDj=#QUBmpm-Q!-0w<6yt0S{t#U zVgYD4R)Q$OF<#JZUF_z9*!0?caQpdgV3bPG!r+gOztx*R+e!LVZ_lL$pMoSv98FfH zT^|4r+8?h`WDauiu{EE5msa9@2(Nez7ZMS*)T!U;dy`y6f_)=wWt&9nvOh&x^Rq;C z{lnaLjZrFZ2#MKjk#iB{cIHmSfQ)D*B|H*e1qp72Ezk2G%(7Y27GDV>UlWsSHfPFL zKn{$C5&9n2uRUVq4K}O_8QEU|34C~P*Ml@UOu!?W!%{-TCA+ncd2!k4tGh#e9fQlh zzVM)aON1^81!En72jWy@3w99`GrRo-Rv$5dpR0eq{a2jl{4bf!a~_5w!{tiK|{9*`+aQO^B!TRURs6030 zHBV{Z`?#!>b&9plTyfq{iq!9YJk4>QzQc~Q#f^z7bv%pi)u#LwzPv}gCpI;f5_I_W z%Hw)_9<HrVv3QC!-Pvr)4c<;jC*OkpH`*7!1*bMeabeiS@@Pj zfaju5B_072@mjJ>%l3_U+F-zx%8|v%^e`7PevNgJLeZ0Yc}2T8m``+(Za5-#TJtNT zMitqz`e4cG0cR$S%%$^|%g(Tvx5B6iIcT0n8KmMs+8Xsvg6fHlf zS%p+R&(6+XjB>AQjL#p=RmNQ(&ZS-P9cG;F2(MzzQC6A)WWQh2nF&iJkIQZo4z6LE z5d|YJ<7L3ArD{22o-<$tmYFSS)3)>{j{8hJgM!mWp%j9l2&5_+Z^g<3Jm+nRc@!zXWs}E5fVKt_@)4q_J4p zS*=>21JJGuXOU$%++MA~FNwag<=t>>cUtkQ+PTM=vP4Gh5J2Mr^PApcB2wcI%itD_ zOSWfK0bCw)!&TO~)xd*3O^;S<@8)ezf1?;#a(8zYXyp<;%~i3M5wxn1bD8dGyGjsk6nHB4;uzB%Yohx?twPi(orG0 z0ePXj_iwhl`j-?KR~|)U3`xxxupoDpe)kdLx0Y9XV&(Pg*8Pa=49EbqUkz!gQ}C>@ zjFGoz$11YMbXbY;Vuer3roCQzhnwm3fa2YoAsaLrJ?Jiqfw5`J^A2=+08~xz-TyiI z%nLNPPENekXgx@aPY5k83xGl48!KT4C}UgIY|9>$PH0EKs^IYGE`=eSVEcAXsy{8~ zZQDIdzHcbgoT2VrB3OYmYku|QbKv6)78?(y(fQ98*aQACHd1nFK3yH_P`}M;`N~5 zRrh55Z#7A+J*zbvqpt<*kP7RYIIZU9>P*i zNcVv{#W2gqf>nP@waX!ln6$}q=NNpiNhZQAa-A~6W(>%Aqmq& zeAdP&M~01b&p*qy&8E(NT$PsXxDHq3x!bW2!S8IRWs9|uUl+8xPq2x2$R5A`%oZ)q zj8}C?XLpYt;X+aB?(Tvkj-Q)uxbfIsb>Au!egF_1@im!(Ua64kr7k|FN&9nQh!0D? zYzNX(y)_|k{_~3K0p2mk`~SqCIf?wRmo4%;pEv#wgi;Fp-YKH1=N3`go=-62p<@f} zwD*h{P~;`U!kIh)7}^>&Js+Da#pB*rE5sm|PTUTT91-!tm``;W&IKKO%U02fCYSS4qe*jE+~wmlrqF}e+gUELO;lm|Z>xe{Yjc4XY` zx0soq5`cd*OQkOBaIe(6*!6nGP)ktNY^i^Mn|Ofg3F@}&pB$PaM=?VY`eOjF8|nNx zSZS_3G9@~N5fqS5!KEaiuYL3VE-Cv_! z#0>Q$0VhBofy)X)8qB{y}R7;n%DT=uFfXw`-%bk?+!;brd(n0qTwY^9p zGKE+_b7*o7`9gWZavE$F9v%WNQ^LUky@{mpd zqCLgOqpWvWLf2QyH75HQ^9-~nK=i02lstK=m5~?}ysmRY$a^_b+g-9@s=8yITixTf zY>V3*ROxh7%6=9P`5_n}zv@=rS8!y@M9C}$Y1vLOO9%0ft zoBHjWAe5kQnUP`bPyZvW@s5=Oa8=5&=D4?q@sAe4mA@3!4NZ)nA^$Tpn!s7@Jm z(hE9ppp%o7Vft2PH$eL^6j`c1TA7@O0hu+?#R?&rDUW~0cZ7AI;Lz$&DCN=8B<+69 zTvInL1KTBrW6ZO=?NcbD2JedJGGqVmX|q$-sH1z?=NkPdEk3tiX-horApj#_0o`Rh zFv(c_7hL)6lmF&Gu?$Us2wuR(^Rm$bVS)j^MD$@pF&&l_;N)rT5K{;(h6kr+)p&=0 zWXq1CUJBAgTY}w*QNl&I7NnNJBi;A^y(|0>{J0k??8F23b~--gL=PFpBdlX7w6>}r z+J52Uerk1dz2v)TIhTA$>UcpR48Zcwp`bBHsK_>VpU&WKTKFTva=*n~UBM=naoiCj<)Z}74%OxpOtk5&z!ynoS~SI@s6eK@)Z5Ae&klkJTv1 zgzvdDz30oCc*?%e5HRj#5Q$lU6yN|eZK)Kjb?9X?_#raciV0*iGT2V1`d&n>r@WU{dW;nhG5MNsuEmFYHZrYs2!RMU?OWmGsais0k!-@pJV+uwA z56D-x-49LhF{;RqyndH%^TBN>$7o#eCi3dyad_C5mfdVbl0TfUruix*VtOvzicdEY?nIOGEk3KiLrWB2L zv)1Cq>e%Dd=k`UDPaJxKMq>(Cvo{^BM7$LcSW^t7 z+7!{4;eGuL>AR-t%_@MI*yCWIT9=E~Zn_`}dBi|Geug|z@i!e^+x=3hqN-++zQb?k ztr~sECzmq75$Lw!QlS5abQTQFrDUa?d^u^?X_KKD+BMb* zky0QlJrv`2Zyd(wnO2^SgU7YID02(bf^f?cEnkBmc1x5h%f1iLZS}hyN5O3tIrO}p z5A{@@%WAc*Z2frBM!$scX(qYr!bKwYv=t)M3}mD=&vjy8{hs@FW4i$+yeMQ8;_=dY zV7#gx!{$It9KpJyS^Zb<{q3Z!DQRYO?5Un^^4yQ1*vhbf!6*~~RQ;O7{{>wD0*oJ% zn<3lUm6N)p3s!=Ze)ZCIq5iKro|ZQII`uDQ`W>Yvf*d)Mx#5QrFfKSTAm+)<;P+PW|ml|Nvg z;rtEA>1oAM>pmD{gjbk9uBUWuq;HQ49TIs!o^DOsct4ULx7gLAsM!B_y1!|}anScZ z4=x(KJEtavOB=W>%xB&Pw?MH(60wy1zr!^xE?%9ZATu)gnCYYG; z@eh6C71!dPGTc@FKm0Cg~2-c%Xywey>qr;izwk)0#~Sp49rpLS|q< zSm+OAQ&hndlm2!PPSq*nD?-LBhUWwyXCEF&H1ubni{zR zDXxy5v2ATvJw1gv8*}GHO;0Qa>hM&LLsc%xvB1G#?w7vv$A^AeN!@NicZep?@Av%N zT;y1fB*19&g~$aF_LTwfpv9L^K6*F{PicI|dXr%@`Me)Zyt?7epXg z?Y)4>47t;}IBp>^b5??<{IBPSLSe3oxuE^B!^gwpx$-n*0**ob`0pfKHX5HaHAD-e zGd^_2xQLd!0rykQYoI{?NQIh_I^Dsjr2_v@<#Ek*ewD3ZxS;DNb=EsL5(k5&0?$+M z8gA-70aSaM!YTKt%YgCH&!Ye7t-2=r1(AS-xWZoJeXl^H;r)AkTk@@BE#z7;2)_DX zhL?e|h3H5QHZKUQ32|MRF?iLrJkN12JHM&x`A}Z;!J>|N3u~+Fw%9#ck z%m z=)OwP?q%-&-YprO!M^i2x=f(6AY(zLq{?}b*^kmZGxiC6V_nZTxLue{sIf*0{HcUHR)uoimnZ!f zNGkwrYszKuE33^cCW0w0GsIF5vsSfWqGOnCMV!r%KShc}d^qM7D4{ELs()6V-0H*C zhqr}1H{Iq*#E^hpQxH-4_6!z#cw{`bVnYGY5$RiO;%lJ}WqBdlt3O4aMq{c9=-b?# z9V_sTp+DCl=l(&&t8@G-0JAsIp?HIG$it>nJrjfnpb(DNes+oQw!diZ|2<6qH(3$9 zhP!`XRK)MJCCU5Tw27od=5nZVLn#l7wzey$PR?%VHF$7Lu2fr=eP6+VKuT&!`s zHQW~r=O(1*6Kr^TL>m8DT3Nt%qR4ua?mSkF<8@u{@Rmuh^A4TjqXsqqW`8^L0gE_s z@}E=iOeJ($`*f8 z?Ca#;(c-XN$|FJ{#~sttbvX~d_*)WZvRI1W|L8CI+&sTdsPFew4?uhr=E}9{ZI>I^ z<+V4fa#iOB6jn`0W$z{BcsXZ(2F^i#-}=D|Mi=Yp1C?l#%)YhDYH46$Wrr3SJuu%7n_hh|99uuFI#qMB+V#-3EEne~h2pQi z1c3B0)be4d^DWlLW&NAPQotWgLIN_8Kh($p;_X=#JT+&AwQ|($%xfO^%7fh?o1g%268#HHZ6<~>9w`e zyGmt5?e7;T_tI*Nf37SetF{xhm%J8cXvM*>*bZ0wi@D}trt0_e`H30#9BvAZRTa=+ z?N*YE)1~@Spa0!PqVV`PWbi{pI(R#0zw%yrhv8d{xesk^rw)~KhnCg+e6BSA{$zeR z@_v0F^4_FogVkDD_MC27Ur};|s-f-INt}Pddi|qUIKb#{Z>d46%7~my!Kn88TfyrF znUq$R;Db>14m2MUpC>W=DrIWk+vKM_{oDS=GAT_9oHrWSW>8^NFQ8Sihy%8U+r#bd z^6P&Y3A(kNFVo$vTVrm2(T3pCVZgde1%I$D^{KOG4H@-(PW~_R^)IOYPhWvp5X#n! zRSVOOL(bF}Qkk^%Y`#{`DRrFd;~Hs%)WlBPKy3UH{@&yrp#H)XG7lnDKYO0H(_Wku zIv>bLJsjZm;T)ZB8fkMJ2LH>m{<9Ot65c_=kbvi|jIKYo%o&#<&Wps49&7rHoPU_a zr}Zbwabx|pK9eRbsSHG?UoJIaN^fAnbeE|{dAEVq^}qe?e|?*+P~bIudCb%E7Z?z^ zRaJ-AGkuu1+qG=l^V9u~e4QppeDW;CyA4zYiDQVC)I)Agnf!b%Y&F~M#FX@j55rGM zm`3T+s1k6UU{43`7BePuQ4`v4miS$2sALIlDh2_1^5Ob<9bCTKG5%Xb#zM6J-rKD} z5m(pxi~`H)jl1>nyI;Wy$Zx zDstelvJfVO{9b3K=A5i{88NyDvbilYbS-)RaXXb4ufkMxo1CF?L6vHiX_~i2W)}nsCKaWA_`8=gfj>4V0av)Ln9XWr>A2ZHe33* z3>(~C#i~q2TLm3Win|cR_Y?2EHS}o=DRYd_b&w0IS~j)sF3%!ZI;rdd2h?Mv z??=vJ@)nK8<*&O^B_{56uz;cccwK_!H0CJvNnBD?W4Ve|tVIdtpSpVjzLQlgu9#i| z#%#Egvgn%4sIdMi>{E2&x;93Pg>FZ_sO62FoBGJWJFME z*2CQ{0jCBq9!hsA)rx)6)~`tl1y4wzSh{0Ai-R`>3%auHCe^#$yE*-HH-bkkhT8d^ z9{{~rZnUJxMG@jLmBosO1-kI376#fn#Rs^`O)t{lNL`NU*MK}-M^8>LZ3&V2%vfPh zXc_u-jYt1mb!I!ld$(G~37l2>4Xxfj*Q+5}%$21SZGH!;z*78|NiMEhIieZq44g(? zKxAzi;^2W2Ak&kZqj3SnAbd=Ry+AzniCoME4X%dL<-0X?(Kd6ndWpKgeTCO zwAu>p7^b_(_~A`dW(iwQ^Sd3>LEJBBFHS>AYvw!)GaZaRrGc1eZmx0JmX|7I#ew;N z&D3j*q(G}00x28h$8TsOFomKPK#xLkYF?tNN5M=p{Qt4{RRLA)+t-Sqq|za!gmg%E zH&ROXrePD(4H8?WJETF7+H`k!cY}0;bi=ne=N^yeT<_EO`hVLGu-5wJoO8@M#@uu? zNxmfRI(WC%^|0o&-$^c2{i)fEE<8T-LYTc{79r&PD=O@r;hl^cZRmg-5SGTMZ@Rkx}om4;}b973#|X51fJ!;0<`F_U_d%bwa5 zBC+SCUtQ+wE%#SnE_LM(SQF(r4!(vgX+32Vj~Y=kaabtQsI}n3xYQzaT?so$DlP&_ z0wFPt4}ihey%qL{fJjo~af$}RDD!X~RWizwon7&H^>`{Lo>Cpn-Av*--_CWtRnm%h zn`x+?Y2hu{(S15;Q)s2X9tMx^`Xu&m(h??{*K4bgs3XtI<d%5V<{%)!5b`U?WK+!!`gkA{{AfUL!fcU^cRsu5sE8+nhVU+$68fIx>!Tq()r~Mu2LJA*>D>0{NKMdZQ`m<;U!(jgw1Nh> z7Fv&yBe!pVT#?amBre7Ec+yzramE$ve%u_YtI1-1N&(|xv`3}*k`ectY%(^(b6%Us zGM-wBwJd|Jz|B;l)ZkTbbqj~h1Q(fz+`FrWJG!j{^_JC`+u{x1W<8yTnNNB_XH1UK zYr?e9Ac-t6NhJ3DT{%5a+t89hQRvJL&yS z(P04borrpwdDKDKNoOt>l|oM$;N+`6tL+!Ec3r-4s&WL(KO=Z8bbIjK=hU4-E|I!}*cK{tb$9;$?NWYI z)1xPN0nNTRo07?Hw4Vs<3LC0qJb5lgoTh$&uHvqGMvg+*Up@5VLNzfdLJcc?8vj;L z3l&k?T=?jQtFIy}vZtR*F$wR=Z}zUYrY!E(ReYCJ9AyD$4f_v9gH+-N3?!B3Mf=AQ zaz#r@qujY1S>qPV6ta=*eTmMXr)ik?^gZ@|HWrZ45!FEsm=})j%-eb(?5>xoao?bL`#QqW3>tqfj}RDR>)Z zBac^iuY(bi+)lr!GswV+Qcx4Qt|-_{OH$x9D{bZ{FdktN26QT`Be+X;zzm z;rw_F*_r)ne63_0N7_n_ZH8+|`{X36oKKw4p_1pQ`Kb6k&*XY&4v z6o1~d$UNf|<&kz#scq-&+) z9Zeb%?e<5-9-r*cy4N^jV&VLYs^k5^W#DG}(KFmI#wn0)n&|FZYL+cq;M;pH))VwY zC?+g@ht1})^~I+wI#Dm)50hQ#0rhLL=!g_@(z9}vH3QOzgS@AOLa7dMdei3+A;K1j z&nbUO3LgL6aKPbaWb13wialNEerm84JVfq=%Kh{&?%VUJe3p-un>J*OLHr=>;#ek! zS4&^;tLTtd0;>E#^~CIXO(m(ENQj3w#k0Z5Mfc8kB*Kr_J<_fsb>4o%8_^#^(C*GCc-)2gafgZH z9mW>YX94#%A(3X7>0TH$L?MuuIc(1#vEt8D*&We1vtLKkPI$F`k%zc_%QT-GEfCr4zT%MPR)$Nf?( z-h3I~^3o^Jc}7F-8y^Gjh26JTqcI#_)&9Wxliz|y4^B`Kx8dnk=0;yCQ_a5HSTC}E z7X?+TP+*xq&vVofx79bDtX0b>ot>UN0xi8oxR$|)D9k(TtLsn*5+7-OGj?9j(hw!Ezv;@@Dw5FpI zoMN#bME!I@fr#b@+93Dht!^9iF(Mxl$IUROgPeigdg;I&bnvr5}MSk|> zgwfG!0W`-ZKdvp?N9SphCc76+a?v_pEvpreu7EKVC5{99W-2USUhPl!aB*!~5TupP zl^a@o{7UyL)6+kx@uiqaPW9#Us-13{otgye?(D-B05rpyEb+5vlR5 z-}Q%@GNUVhu0bIRe^nfOq6b5NHB!N~yOZ}y3W#$`c9YH=*5V}p zVcTqkzHhXIbaruYeMSrd!raP)AQkFIn_Awx)8$baJ<(lHh&^yC=ts|H+$Xe1b!<2G zT-8(M@p-P6kPf(!?0M{+ggywoM9a!m1@tf^Y9=|r*;o7uto<(1mg7QLUlcLjTy`jI zPRs5>JsUXatpL)1k39-kMZVxfI78}i!{dLbEK!odm|1h&l`<98 z&*hZi_m<4JFF@58X!@9~7HypMmyp#OhK>RgEQ@Q1@k!sU(?{+T))kb}6mlc)5`EL) zvH$gOW>I*RZI5?(5;?09dF&{F5!Q)i^Oj}#Zecn5IG9X}PR4JkhtXgiSRE1h3{)>$ zez>280qD?GK=|-n^&VvnG67}so1_FqJ}3E{qlom!1}_Fb!zQRYEfe3xI$(YFH9d$_ zA{PRwSvao6D533NK1qt%OlFXsQB4d+#xIRPp3E*e(FDp9st1kYvD4%j6C8Uz#`O;) ztB_Xe#K4>M6fogN#DKj#*^KCHeG7Qmv>ClRDMa6%OnRS^>bn1_o0U@cuWGw##wMSr~bBL|ti{l#10Ax^|f_GzEdl*j(eAUq5v(c-VeRaGspM#}7Ht5PUGQ ze`M)z6L7`!<6+wcRgVk7Ly8?Cjoz$(flYuv%!2HtAI$MKzv{XI@5uz)bad#K4_q#I z^#k<>9|^hbLbbWi{MWytoB3_<&-0p_oG+-QUA}wj)lT-kRjA^zh>*DVq+CkZ$DsH= za%TtzTSxTQB3A&wN(b1OIk~xgqIH+%;WF_#=CkD%OHUDQ40Qrir)L#Z;cHT&T|(-U z+!9hXI(AoaG6`sJsvXTSOGnn|!ZnCpWcYNB?T4=^2ukAgWzco|l)>;y)8 z?d}->V*Me8fnfidT7K)fx8Ot$_|-3yDUhNGFQNu4RCEtcqpQ#hc38z1B4oWNJ#Pu% zQVSnAl%bX`o7wV%2F>J#Fugx57P4-r+xG<#A_}fpm_P1)_R|r15y}rE2*d!4o;zO< z000(HT5S9x>9td=9;f$0P$MoEdOar^^3_wPN7| zqM`PMM>Q~IZ$@emk?3eO>vM);6yd?}KJrdASmoV2-LrEkQ)S<<{JP4T6ghH!T zNVR389|SfeQ2#I%0`x#t*;=>}La_a6-9Y4bjn%cNxX4fp4BzHiH;lkPb(J#i>kmuM zVk&(81BEwon8OKyQ02E-f{U@+wGC?g-xgE$o+g?;`FosyMPve-=s?K*;Zzwyaea9YG)Y?Dc|)GnuGb!{3&?q7`X}-p}pNKl<~h*EL3C8slB>NdKhjd`P?! zTa>ZorNVR>mU>41m;ZY3AO91I4?wF`i?JmN2}+A=VwF(TMYC^GA^ z_?7urZ{$C3fO`W>iU9i)!JHp#kHO8&GZ@OhV!HpCbb&npG+he@L_V5x7&AGxc~vn= zUVg4PY43dSUvmMFqZxr6Bs8D!D(L%A`Uhv0wPD3d@?UrS{g(1^G2PBG|^)N%rh9b%YxFk^4_ zGycnHdf;DS7BpaU+817&rW~Ao!20`jw{Hj7fh8D?5x~NRoQO)?G2JJbzQ;qAAsj;{ zwKCrB%SFaUKLf@;R|`e-gQuGbWpSX!&V8Co_sLkAOrk03q4WpRj*Hbk^Pi)BLFfgT zx3*k%j}pqHSNGa8FEn7r@X;MHjb=VMpi;5}t1Mc)EMsjRewMh@X+0mt{I~o^r~ik$ zb6sUZllv)eME!BM_v3E)(fhyWLXI`>d-0f?1-f|fk!YOr&s_oZ3s5gNd3jm+K^Q~a z8=whxer#-4LXchofLenQ2pcM;^!7l9NQu;~2 z8RN%Y|96k(!&_{pt7BlaBS%z~>by?_$~0OmkVrr+MTQ1HXGdNKhEBtrkXR@LRZj`G zLl6+Dkr2MGG411UNO+8`WGDx0CwTsc3Gpnw-?Ce9_sGq0%L5UAo?RQkly641!w32e z5PAA`V`QLkmj&V6Q^n4Fp`Jx2yuw=`_CYl%FC@DBa)`G`|AeP=mI_1(xAdHH1v(A$`AsNL z*J2>`TW#LIblLmW^~VK{&ZO05&&5$6A8pb0)?{kk@y1Y#hje0Jh5Ceia@m-@?B#tX z1gJeTLn}4fRlfpSoS+ukUnNRkL^-nqYxop4haKv7Htea}7{?gw0}D%nz%o@hbiJGP z!TZ)w#;1KRJ3BiJ=#G-jMk1;d#TO4KwNT?%Sj1QAq@=cefN72_j@;^#K`w~YLmWnZ z?}$!P^3BU22e=x@?=JQ|S2I+!{n)R^$YVOSU3akt#L0mWe5EZ$r~F2V(hre(BhhVG za=1b+IqMbGDn7eqq;ZnFG7$?{8b^%S=5vDk+7}d(H=DJ@ZxSdy0oI(FnTQmMR*gf{ zj8#?Jw~`BCxLS%N7pZxV^~BCKAOje6{o`sO2B=t=(BurA!^v%6Um#|ey}kO;qU;p- zTyx@zl-U6g&G{NPnycAX@#OZ_@!~u}ZfW`YBEJTT`kbLtFpcjhYcO|V2;Zvyiv#(( z`@XBqWa=lQx+j)}m(aeyMDem=6)6*V9kpxIik+ofn>kPb$)!es<04W(@gDS}@gcn= zvR4AeV1s8>q4^YgHq_h*nTgs$Q*CPWdAp(_OPLt$r6bpwNwWD}@Orz|25vy}$5#oN z2PYfmWiPOe0^+$5N=RAlr&+4bZm$dh*m%nRN11wsW#aYfyz6RSk-mF|o`-_6y5M_2 zdka@T)hmp`#)YF~SA@Q)#g*O?@cx0RNe$>0Gt_ z+p9~1alFN&BA~k~ptX?J-_m=&!(6rZ5r60M+UJ-#ZO$8lw2H6)FiTK$oPW+Gw+xYI zvlT-W(gKuM!S8#1e>mj$>?5G6Bzv#W!;oYJU8k?Pwz=30@uUSRs|5OQNi*(J-E4bf z?~M0(9_&(fv+-21zeJUK0f#OmL757fhk=LPq#Kn_&wc@eNHQ#PO_wq$FCfB|c03<& zJfHjW!;8dFUqy*ev#xi}#sdieB(}%7e)=xy;;ye(c4o@>RJ$vFKYl>d>7ebD*dE&` zd1451$|pV^Z+x@(%qVS@@LLeu?4Vkfe~8?rS}5zzr283N4@`L-_-KIq58vF&0A?P} zIs8OfKK#WC(1V_41MN|vlqC38(Pp$!qSR7N-_U zX?kv8U9XQOP`;U4P|tKW>soLzF{XmEA3ID9)>SKpkSxx-?i#Yqn~*ZQoxdOHK-5BS zGLShNWgdtXCvqR{JI>_4n@Tu|U%*8$G?lc~ao;Ud3zKi2P*8@|v~PtU8Hhe9c#Yn? zvUYtIKyNePJk2Mpw@5{iXmEMF8Np^hbwaGVc#KHX3h_3W@?j=q?I6BA&V))-ZoZ0- zbw8WxKrY#vtaCkcz#e^Y~(Ip36Z-^Vb*sQe#T# z*F*DV8E>TjltyobcVcg@RGqBZe=%Z0hb#&B6z*t)&KX?(FG|TGC9)bkLjg;A2yeI7 zq_vvorA;Uy02AxW_?GFRNV5SwC{HAUUt>az0lnL0_k1~+xn{3edNR*MZLiXC!B(z( z;HB~;*YS6sxheNs&vbHCi^8VIYgwcrEHf507Ulb^Dw<)uR+JienDg#uTDA)}XEkvT zA3cs8k>wq$5M&J6DkONyOLbD-=`?sDZhOpPP|(KR6aM%yXn#GOh>c_ z;TwAZ3`Bee^nAU6v#UNl<5-|Fu-tgsyNK{00k|*66H&6eR&PC;4?4KR)JamqMU4G& z^&J-G2rTAG+`}uW`%SY+$D`TUPyX3TA`*6O-ees8ps(*@MLO0J!`k*Y+enGfzL8b6#Ml8_w{?yCK*XD_9gnZ#n{Ze z%H@%V<0y`;Ik}fJ-kSNH=!Xs(s^;x?UuGYm3?!(yZ9xb zUe;M0N|zAA^oQRODgJ^U+bk05Uw^&A3fppsI*bIPBrTxqYs32VEB>~jvKrN)LC!Re z{vzteE0{_mM~w4+4=4^&yhUh)i=$|?C258ETT_^kZ*l`k0qd}Q+w`;38>Kd5$0V^y zl^IwMqzU_Tj05LgXh?BD3`+27-(j?}QYH^y*&*9_Tqhek3Q7duK5|*fMlO{8g z_Zx3USDMedaNRIdj-~l~I z*@QnLQ-R|E!5hOX$g#kV zrH{l)o#&ntEH^7Jkj9yA@bo;w-{#6Gxtor2OVAKSS)V^!1wMWBxJoA9f>?BL! z>$Qa$(PKk|w!+beR48CI9DO(gstzG0L;vC&?j=t2!jPM$XWcGI`z&+nvzMjKh+QyF z;?O>RpFhRgrey`jMXFzEY&VlN4Gz>c;&cMk-JDk`wo)g|a)3nc^nFBdgPd#h*h-61 znieebE&{=;(0!(Qi#oT|3WnPyOuMew*6r5WWiZG*^NrxR2Pj-4i@$;qYGrW&BuTrT z;t{FR8PRAcOhS=|@<#2re1<6Cx_?OKw=S_xY5Pm?EQpPdeQ_>!7^&}^t4v7m9DYuU zvy_?SF>P-3sI3)l;yn@Esysh=5IC1SyImT0&wo^Dz^@^I#Po`VW0G4Zv$kd&JKyWi zgSrCm>kWFgZH8V=w(g<;e11;Y1N!!{N-(tQIlN+>{P~y)60}DZlf3l#2gkGLq(y_V zMqsdtv@s3|s>4}Kl&gmhzQP2BD9}R+9Ia;4MeeR-Mif$hwTh#Yeo9v%r~qk!Z}j(_ zoip7UHJu`-%qhAL4g%Bg7Vh>vjc1y@``htLt}Klrf}{&PvooTZ#HYVAHeAf@YbqMT z;c)h=_vaaFc^igpM$A?MR-e_j34&uZkfA7#7es-D9y+!Pa2NNUD{EM=mV85D6#he^ z*lX+Mce?O8xA+Z9n(G8ySS))c$32GJUNl zI}Hs}6JnuzSgICA6iA5pYPrqKc>?DHx%o`~26RL6>!_BMO^^Footur5Im6zc?rhZJ zBu1U@0!k@1kXKlLNPkxCU2d14JehXiFhAScX`%ch@)!7o@gptuRrGs_zf_uEhyz_= zI@0K+Q*|jHjOiJE7ErB91}F2m_sVkb=;k*Zh*flYULPf|twhK&2}kSj*$)BWAM;)H zHl<32~UpS>Dt1xuzy2xb#x1++Z%t?{V z7|!d9o>u6>-S|W!)bO9(wlo!--`%vZq7WR3&h!W*U%JbF; zIqX3En*DmCyCQvQ{}8xG+v!5lF)Gtms^0nGFe#DvGS#xE2XQ}<2OuEJ0>d!9&CXDq zPgTJ>Xg38>*_@P>b87kVq9bd(8Tg2e51UStta)2PVm&C9Q35t6lb5{sUY)vLzHt4G zdtWwWT+PS$Zk1t87{8VDmU((~)Ihs@ugm!Qw8AK7yhVy=EI+tw80VTe90MB>Q&$phBs^KD9LzDj`WMA&>ol6eJ zvnpTy^FiUgvQ-z$M*wVjlN&GWnehJlKnzAMBONH==h=?VE3>=^vWnFY z=IZW5XQn#Yo0}mpRbyjiHy-GWFicVXmf^ZzGob0vhBdWDSU%GqScq&eMulb*7c@_E zw(PijMC^7BI@-_=soL%&4Sv65;Gmm`LsSTp3gw8xM9}m;8g9Z%un+z;@eBM9*b_b2 z!vV@;>W>5Zi8ROM-M-BPq6iXFB|FYKH&?dh5+Yyq?=Y8$#%%`3T}Nio1^3@94({i+ zcK2dC?nuAZh(VidO!|~*dwAbF-_>?>XTaYnxvcm4L#3k%bon&N@~{^;(9;yTlghI<&;(XFvKtL7s}1a%DP zn4;|Jm%I2c{KAm9{{^WEP{C-=P>vO#&(Nq-M#@KqWf$+j*2H-k>!c$hq3;({eO(ew z1KDAeR$E%L-=w>bNHB;Qee31(7CONgjF+@`H7eX?AhJysHnX*lQltZhk?biM5)$Vi-~SxMa=DW&BT3JuuLI!sF0>!1qr z!CHamm4-uo^4*THENZWEE22$m)JzF<#p56Y;`Mu5Da zbQ&@2{5F9ws%?lIkcy;nN?FM9eoVdP_W`y^%W-~cr*=75?4guhS6_K@8T1`v2%}7? zUa}nE{v5Q0SBWqqXcki{a&0s|3W8$N9Go@10Qcd1v(bW*Cj|1_OK4o8npu1Leo_uY=z3J6jVeu1ZfMwm6yz?cF@8)L?U_ETEg01UbLmKs+Sh7lJtJe(~Dy`w+*dS3sjYNH_Fvbb1 zChv#prXf}egO4- zB&pZnBbDSV9pBmrwb#4=chwIT5MI{kK`GH&N)hyt;STEqVVS%A^Zo`s|AeJYVTD>k7#gmdO%=5> zZD3L(a?>%5(whU_qDE?&uuPwAe7y9>Kt#f8P2J>MNMj77#;|<5s5uIl#6+3z+XW2{ z>oqrPj>dReT-=2T$H&YA1~ozRF5BUH3o6R+HO*qD?rT%Va~xIAdsZupie7Wekz*?t z(vN`(QT-sRWTL^Rra!(n8429o-m=BhOqa^Z@t#DgRlZMcpo;?!B$YOCyFE7{y&iuT z&Ote0Pi(LT#MQP#S=)XO_y2}~?>CJd!9%O>YZeH$%pI)xn$j7OIY7~Ss*M@6F6gi` zPM+F)!zEBYc3BhwW=>FG{WTQe8ms{#Kh_g@6>~;XH=6ZF{oHHS_?GW`qB3ULX3XE& zZOX{VtmT07UjylYtnG?>t0VlBD{GEq(av>z5f-dA{zbB(1aoteqOKwYad&&^B9iJ| zFTjXO$Ww+j5ETl}R8mnR*T^_?>VF(YMZtSDYwHY#Uq|TZAy?U}>g($R*?)>DYuInN ztG}5`;)btmArAi{pTE7X^Inkc`PqFKZqDptXUrSy{Eq|T^_&FtR!c?9{1OmlWqNGc zKbm(~)>KQFjR>eM`#go-2(usVo&K<(?;!yoYI#mrOvwq23f}V{Eo zw46ZWmljZ7o%eXI(IE9aJP$0p9$cZkjv;%ta0^Mm7t@&C5?aTp^cD&w7ja zFT<)1b?&HnQwVw4W_2IoSg5|+&=eD$Oe7F-dzu;DbHKTt7=u+DUD709Ug{Pxj7S63 zJp~{x^N6*&3qba4Fteb<9wd0ezF-p&zc2xId;0>JwEP=>|08wgHI5$2whC#M zuL=JcHBzR|4W2k-;6Z8Fo{(?HAhjO!32FqZ)+>Sb=L4c&;{df#Uj469;Om}DmcZN@ z`20xD>MRqY*@WR_%ReM|J zRW>81GnN{tDMHcUifMZ%l{xOc+L0ZDiI+GF{St^G_wX!kp4PbUzS?%xh%En{dC}CG zQC`_NOAkXsZLZ1(?8KR@BYbzRwW|fkCf#dyo`nIMWP_^)Ky^2NGY(w9$}oKx2hKOO z<6C-wZ{d#kt=P@Qv`59!>x<L=#p*FD^_oIV)5UyaD<=KY`3SOpQJE#sjnPQJrX+W!G-Cy}MksH*4ub zmtNub1OgND7TSzY8=lNWuGa^(!6n86^fOu-kL+K)`j^A-p@OV;pe@4%R;VEWivbg{ z80VHi+co(aUvx8Vj8%~oX2YN^*(muk}L#tmtZ$`sxHX_p(2Zo|q z_17$%#xL0I4Hch{xQOMKDQmlm&p~VYtBtIB?(%E)*$~Z2#-cSGMn`+^TPXaM)&+j1 zw7~mfL;Rhf%Z1^`)CGo{O=BraC$SBUaSKYihmBF&!;2TycAa%K<}3pRyJhbeC-$!C zs=`k8`3GsMO$?Ma*a1ECAacPJdW6n875buNHOFC2+qKx+aX1G&SCk?>HP->09m+0c6$b&o82i(6jcg$h7L{q3j-#@BS$-P|iVb)F zg9<~nzTV^o&M=OfCjw9ZIpP0#hkP<@?Gvb{D^6#t*;^*%02b<89k`A)r5R3$63~cb zgu@uLe!m zieZ^5=+MO`!{JzJmxsfI z#tC-(r3LUayZO&4QI~v?&+LBD_9j!>8Qd)KwOCzAti&eT@)Xb7q6e&<=jIk;SD>28 zxVa0*xe#d-qA>F{{-fLifU8I|x_ShP;E5Zb_P{OS$z2kb}p@=OeEORIc>%Y_` z{&G?jalGWoBG*<}DPxRFsfxOz6i+%nV+r9%Dw(kj`+(v(BUQI5LwC9FkHOk={vMT5cN$|s|Ni) z4jE|oNX1r@>m%cmwJ&;3P`gK;AJ}Zb%EvkQKm$B`X_RiCc|0sos#$J3!G9JpHia3 z=h4TbA(2W8S%{Eful4eObydTXIygbd6_WG*XM=~oHtUNZfvlI38sY6LT0w~%v9Fbp z>a^;#vG6dIL&#H&<*|fPRW#lA`q)X&s{~&8JIzi~<~9RvB4R-|bKafPhW8sxgNB=x z-%o`#OsWG5pe>(CC#m19hLK|)G+MhDS3=nf%VM419wxC-Mw{G`{Lb_Y*lF#l&b(~s zh@|}Q)v%575FQm33dS43wIE>d^&KHRQ(8Q~p8frP8>R57G)mX48jenAH^_re^ol!v zr4d|8=_v+UaiKNSuE}BZRwBi8SshzNFvfJ5ScW2GwKfNerWRbSM1&MyeU%BZaw`w} z{XP+xL;JifYQuS2{dPQ!kre&X#q{k^6!+IbWdoG)+HXoIjJaZzfi1_~=77hPzQ)Ee zvD|s1YF2=OoM%F*b7(s9%_!5~%Hw}+Ljf(|@gl>am}C>%QuAqya*j6Zn2%vn$=6tO z&3q?Hp5xG27m`09_Jg1!7?R_z9%5LTn%XJ*(DjvTTLjTr`UDZqHQWiDZO!Kt#*NOI z%`%Vwwi6O{lt8KkN1K@h^P7Pr-o)IZidTUm!d6+|G=TyQbD>NIxN+a8%X-u89BRNd z_8m8z%#@e~TYpQS<~~~{qQh&F$A-{3Fl)TA)h{s({b0fX$xq^Quf{?R!ee|;G+09R zPr&3q$LvJn1wFcKB6ZmN>dkCh1jE;qD*Db)BVJYJ6FB;g@wmaQcOd_TPZm+C`P8ZM z58zbsH*E3j%%0gTq_A1&u3a~E0{29E1?};P1JOk+%}Z=9!2$!JjlZf_3 z)LohjjuP*fQJd?k!Z(KbqDm(f7fElbD5by|Q`1d-@pa3$nPYd7GfFN{H5HieR3Z&eW&cxQkWF14;JC} zsoQC9=T*nHeB=-HQoAqTUw_{ zn$!IQMqdP(SkC`?9U<%zNor~OGk&)PplQp3zgHNzXh2w6NM${ZP@KMFIF4mp=XTe= zV8vEP$HG|&3G#C1Tx_KVMLZ{E1VKLcF^B5RUnq`4B0y_k^$AlB0COGxlW$)d>Y=*36$^R=X*){9I9p_{fgf2 zh$Z+9(pVcgm~ksWmW)M4W>0$@V!PhY7C={C2?Qsr#qPttUFJ{zhgq8wYQ%SeJWFOa zF2{oBXFpoQs(#K576NuTurI?xuo}s#p{lXgoKN!*SQ~JjxD)Y}JnvzBiTUw+iC!vo z-iHk~YW!KU9XuM1JbCx8cLCip%8Zc(m$RIE$MVkMzfnGT; zLdj623NF6ioIwRRCe)v?t@M+Ys)r#dF0~2*H+_Hjpg4at<3_7sJoj9usW@7&`lz={ zuMVonQI@}joQ{FX=6d((*s*6{pF*U*8qTFOiLR|}1S=78K19X{G}3IYRWi-eeiGD9 zO>JYMg`3~*$p|7e{D=Ge^JDs7hLSzKq;S8zFu)m`3~-mdj`*?OPY~EDh*L=>M;i!* zH#CeTj6p-df6laKIL}CTl%kG~43?rCy=`q1x@$V0MS>{MhZSyqjLu+8_XRy56={f4U1zBVsU zmy)@Y8BviE4MC@TTlhE#b=I*1H@0Azt87kyQ!&O>#8`}L4#1ZGZiaY=NjT>)Z+I$6hRg6((lX#|juK+ zfSj_4v5*Y8J4_;W&kV|$XBS;YeVm(Xs9z9=jacSoT{NgX`Qw#BT`M00wwPXW1+5|x z21*I`r};z1t!=oLS)MS}$#8^}VdI0gzNG+$#d>mI;ZI)tzxx0IHCUs8q}@wN%miN7 z=r7#jODS0Un5rVtp0Z@UtJ-A8%D#}Qe(J#1Cdv>fJSn(!mS+#o#RlaGz2x+VI2^>2 z;kMRh`R_+*IvzCm<>tA? zl4t)0KmXW&^3PyvQL`M&;u54IC}ix|ZOPD$e7VXv5BlefVR@rgsdr`}wuZ!|t$x0E zNX;zUg6wR|Mo^nmyf1K@^O=P^+h%kHNU8Gi%0PwOmW@yn)-iM}1?T#(t+}&#aLgIU z;6$eKnjlVPck%iy?A)E`tDyek*EzN{r2&dbeQEf&e+zs4avWGCUeGjEd1GB32czG) zSt9NA`}vedcGaa!q_{F*zFL`IuJ&nQ;?+ljNbx0EHt;f{F zh?r~9U`*6Hxx1or?-4PCuhIzIJw3a_K=YK1C7wtIMOM+=MhFyPaYmv~Mr70`R3=Rj zsHII1IR4e40a4@g?Se|^?>tklI5JcOZ>GK`TFyE~52=5=tZ zu(6g2Tys{x|A$oFjkO3yTrHP;4QVls-gyf8&r-j;UF9`kYuPYNeJ|1yr<-Yt9|vxc z0L67FILLJps!qgk)I*gLs>tidh6+lYZw{^s^OSq+DKO1QZ^S-%r*_wCSK%C`X%a`Y z)=^G~1BVnHNr@N-;VV~AAL2(mYevuc&UICLDLzN`d=ibc|Gwt{R|x>~>WN}9J2v1l zdeXJR1aSR4hK+0CaS=b&)AvTK9StBJIjNnUL~gyMJjUOF6P(K>kjn|@h{ZS~NgYJ` zNJpnlt7zHQ1Pv%6dD(NqL4murCa<+O%v>k1VOtR_!5zrp=la`m-@wA)wS$>J`8J1! zthi;)VS`b1NH$~yW(hcGNb9K8CYCD2?k(xJCkb2Xl%wre&l&^ls#Q31COXil9O|_# zfGd7gg4V8CcU+4TXP3i9v>(A|$kyge-N&<@3^M4%DO4BE5DTV2FL z_)t$zikc%Q#({kG(a`$%EGc`>9kHiApXjI>2l3|Hw$Bft#5)eV0vlQSKtAfRs~&7< zq)CT*fRN+2)H1S2rz~|p-=Ja^J9nlkd~kAH-U#9-_UfJ-6afOT3;t`!0w@@rn|A28 z$7u?Ck+_?$%lkK(sB73%(A1EO_DH<|7lH42B;i*CmRztcWT%eC;8vcS3Q%>zbwjvq z2`$WwtW)8%%@$n0@rZe*u<% z`op8R4;hv&Cc+ytZDPe&C6W=~1PZ2n?IFvvnwC;`P|5*5G_S$0oonzAHOwj@+fNKgwHQ7!y$l_s^OA?4R4S^N8GiM;WbhY`fk>2~jHL$fDS?tHF z5)8dKw`r$=jIo+0KOJpHXSb+d>IL^grpQmaVN36nEi#ph* z!UE!Vnz+cKO@&YjDv$!M^>?}7yu&O+V76M$Dt1VnBxBHwPC+Y@9O+ZO_~`5BiBz9X zsIOMa2tDPJfO;UtWbr1g^M}q484LP@Kl3fm$}>C{yRjijAx^duHR&+SL$b9MAqOg= z(f0n4O!<%d=>TI*PX0A-#m~*9BP)3VRQrBI{qS;a?Z{nNNYWm}y-EPkK?nlE$?rg` zu>4nDkBN;qy!eJB)`0SspstfXzfV=KCGD$}fkfng$0aG)2);1)wnC}I z1v~^8%mZ=SJ`wE3-LWULrA`$L}Jn3;)h#40-6NJ zR)kx0ZCl-@NA8^w05j^9EmbbtwY)8fE(?qKJDGZ*6_fi5)Nj=ULYB^vzC&#mYO(~=YByh5Of_x;=r zjJKV7BzmT5neoYxXUNObhsnJ#6qLdb*B9v$lp_VmeD5eL;v5c!~G>8fB>*q z$R7;-7Eb_@LN51Ao@X_^+`seJfpMhVQ;N_(nEW$W^3%l;;05Yap`WzY2!A(O_h-f% zsK!GOVENs8+&`WO;Hr$b&>sc=j{#5$0<~|jFXH~!cb7wi2znIm1S-Uxl7?UH(QD}JcmzqAS3!F1hS4P1se#awgxephg6Iq^#nV~`8Ko3BlFk4chYw6 zswL{@wIy9WV)qZi{a5~+@~4h77xqR@fdTfL1iyz-0N?&XslQY^qAswT*3 zgX<@8SRwXZs|gQc!DseiQc1Z3t_19V-7>#glN4Ear`Lt@l#$;lc3T5JZ7G;I;(`#{ z1PdyB?d@So`U?Dj`!4Y=tJ%`o-fK0bU|@h85j(C^>FyGS zM!Fe6LRz{@q`MhXTDrRhhR$JVhTrBr=RN2B{Jx(5ytpp+-m~}fto5vW-S@q85rATz z(3rqidY5qd#xZFtu`{G|=N}=nq_4;Y1Ghwu1h_*v*8Rt$U>`GYkdu64AzVy z!`e;0@Y())O0I73IHH_PtR} z`omK-6+`$;1(Mist@I?mGGqQ9D0lpOiWe8n%lM^i<8FHC&whtm2>4>d;hVCay~BEP z`sjgcsDB3fW6O@IPD!$&a+Za0?+^dl%F5C~bI0nn7KXSiIAI;ghjHV=e7wtq8Lh(| zb1U{40W6{MIYw=z@Kx1m^MEh)kb;`sXLu|4vi*|(uLZ#)zkb?P6p_;LJ+ZM+8nmJ+ z$gjqVjP8y`T#Qbf_IMgxb79;i-hrXnkRZOzch?p_ZjN(K;eUO!M@aFC6q7FE5zkg^?f>5ClfiaT+rHRb+V7Kvuf zqe*X1Y`RdC8eXtW14I8lG`e|yzcznMJ;gBfRZD9^neUeNW@xenp-BFoBbxn2xnbnX zU!g0Ym=63BAj*c=NpD`$Dj^ZL*VfE6|F2~FKMMuXY{YtPHWW%rv`wujQAAZ)L8~8Cn=H(y%wC<{y3c}f z0D7JrYtB!F=V|rV*OgU=?k>SmP9?(}XFmB!KiW(?(V1HRT~DHQh{_Opps!P{jKRxi zPVYN(uDv~o{5JGnVi z`#E-r=X302b2Af8hbwK1V6(lHr9KO_m!s{ke)E5wu>Lm{1D``jk)n(U zzCXvrUp;Cimp%Q$O35>{&HfIb$@={iX5dN0sE@lx;(AZdZ3D}^`(Ht9;40!s+2+&{ zg#gzP4^yJJBOLJ}GR#`dShqF~HdSq-+Hkln={cj-`m?fn6 z>w^g4x8D-n<0*nk#}-WmincF*s@FwT9r*e@ighA>lq`bVY*@^{Yef91sWKrk2XPEdfO-Y?%4E%3ZkKZBPYM^+z zn50G!<^gcHzprM%-+wQ;qG<-lIa1eTDJ){aK;cuQs3FO|G1pICr8%ia2S8&jy1xbK zFQONCXec5_cKhKIoWyE+iMz{Fb@w~!3@@zk)wMJ~?S@(x>CBiaaxTUt{Mu~D&K`4f@MtLXz*_uE`guUf zC<4E{rD3~eNQA!ds3LR|Q%ElRQCvLygMBgSo6Uw@i6`W>S7imD^L-jBtu?kn5%zCK zk$+?}0{LG}q}I{V&`;eGuS#UX`t_zGM_VMaUDe0R6Y3j^@Gyid?w^iH1#G>r`kI3I z<2BHOn|mj2A>^@eC=1hRxAf24oX z+5X&s+kZ)h|KIE?+Jqh;o?VkqFBQa$ky@=0m~B3Fi0ayj47}w~)lY-T)wE}n#xH-p zzw3~n6#9F-e0Y}c&Iu8!X*+D@KBMJzD4i=?9G7%he71%pxv0S1tGN#klbJ}_Au zYH#3{1HJnDGM@TKF`3e=Zv06($xeNnyVT142)K$wl0hwy1eB5MKX5nHyiduXfpm< zIa+0kS|lZyt8eFum#bejkMF1jD!mjBM-~qgz#pW}pXW(6Xd&!##o}ermH9ie@CfOE z0@q5RiZSlFu0rN%k8QN;RAjI7z-TBDM(hhsHaw`~FztRqd2sMw_YgldZfGE5FBN(I zj&^)x(VswZoYBX_TF?1mLm%gg>tsk)dt?4DOdtm>K-{?8panQ65Mh>DS&+wu_@_-( z@$dGf3n)&Z1$M0B_`k3Z6R@5yjL`ZNy{xUWW^TsB@PDlOtgq++hrJ5S&ME3=xaDRp z$5aBgjTz}YPN*N#KG763?oYjr_c|+JY^i?on;qr9Hel8rviVSonK0s#%B#not@=-B z=irYp)_H_X@;}~|i?rx`+(hwDb?%Lt;s%b?>#jXUbWKUjKr%IeLMkb)Yd75z;kr1Q z5l?SmztUg4Z=E)ai28`lqgsCXzAYytabs* z55FkCnNe{>FidV-b>4ET%aieq zQUvm0^UZLVnPS@8F~RdoQ)rewY1*s;%|Bw{cZFYjYAh`Llx$0P?|gy|?F#|UT@7uG zYnryIf?*wZSy}hBZ!B<+NSeG-1lur)jzzMR26pFRdbrr?<4&1N2!D*WP&HBo&y-F8!+cQ zp)4~rIYr^8vNB3X4z_V!GMj16?5s1gu(RXTG<1sh*o@ay2`+CQ?=Q54&sX%MSf^|m zx(lDcHT4`UOoZb9^NRzPeUI603ndSG#tD8hXhoUk$Ga;lS$&-m!vGbgr7&U;G5>sJ zreUJ+wE4D0MqffyV03c4Qy-9AXFxtpCeOt*3$_-ylSfSCdc4g{ofuw8gZx<+_+zjl zS8gD*l>GSG_&hOlVTG56r$IQ3dAxW@JSej%!wJGkc6}f*l-$PGIhe{@o}qkv_zH<1 z^Hk*Cqh(33r{zRSIl5vAr(g{Iyc%T3IPM@=S_{=N4?b`U*CbjT@Q0-?_;8(guC}9M zT&w;kU;%)gtCHd&RE&H5zXR1_*8rUi`abXVKAQVfMOkCu^@#SLETX4(!p_qJ7QSp0 zK^@uC;~CVL;^+Z*k7%CO(ON$9H@5zkd(m>8Qap5Yf9VB-&lu*r{m8XLd*MXHO4N}P zC9Gnnd5wZB6|Oa;=QG7^z8=9dJbh@wA~+(nrB{76E(h8h$6z`CWiBbF(D=e8{6BZQ zpC@(2_Kz?#6mhl}u62>)V`)s|@L9|+CwieaaR4c!l68NsdX(}<&YP(TZ-v)29Y%3( z_o+?f^emlaGJU%~=cg-v#f(?MC1^C~wY*n+FI-Y5U6E!C!RgwdgIYeWvI8`0^9?w! zo_(uZSF|}GjkTH(7)s$DSahF=uq7U#Fr7BE_n{+HNapO;R=TJLh5fUa?sxwDGm`Po zqWAb_HOx~3pBXahk1R<=8YzLogj=GL9k2Y91;fYdU6A7*`nOU&-)bG3z5MN%=h3ys zICL*}{c_)Ts!*<7?$|fDL}l_UZ&KYvg`fIbHwhw8O|m&w7NM!;_jl(}IUI&Q@c3kt z5uV%QPMrN@2Th`yU;<5jpZGbSdJgk3Ng}LbhM8A>Y^|3aC_{6Wz3KC3P<~VU`5H^$ zM`V5bf{-wqGfPDI=UHl03d!Jh;-9n&@RmZ{T(G8?&rWTmAYaQZ_J9J4teamyM1jj&FQ)?i))cRik?H7sze zJpS?o+u0<0D>{zcb=w$vi-|}eKHE5`U*Q3!sqvE7)+mpE-rfE7%jaSRG|%{A`Tpo; z@7s&=f2w)Zo;)tslnl~}j#S6mJGU;u%Vq~S3gX3@1;VRj-fmlznplJZo1ZaCpS1)U zr${F;;`WeHKUSWJI5M#B?s$TUED;jO!U88D;0r2VbpB@mt_P_N0kWxyP2NQu zLncu;Q@wbbd%j|(9l%8}E1xrO_b(sBlVi3^&~ucTs6QG9cv8Zf3R7?HUSyd;0d~1f zz1bizZEyOG)ARr}AXF~rTe~DD@!={3jI>W>ig1@wJo*pzF5IufU*%aE$7*{f=Pqgc z%CS~{DjpGHxk#3|YrQ>{14&*1K0_}d7&tn1--RSxqJNfgtLAgb0|akN^T8xL=wQ0_ zHS5$&rJ?6eD^HBx49eRH-Yo9z+7LTbl0wNIU{EBRLgzDg00|h#P~Qb; zhi7r3Geb7;^12bZBU?I~jsw^wgWXk(XrG)JLjt0W3iPy^ebwit19U9a(E^{ZKGXUz z``m5R3tn{4MzK>Wz_~L~LI8YmN&js4rQ2E$k<7bTCBgtagih*hQiDr&*Ka5^ur$5Q z?)u_rWo5s1%b-wvZBnB#d^d3)aGkL-a6dtTZNw@j0iz8WqH`%BhaBcO)pG?ygS@Sk zxnunNRDi+j@S@v&3lx}9?R;2`coj`F_6< zfIr}h8Q*k4Vjs?wBthVH0I8p|sUE^xV9Y)}q03+oCgpEdm-9F+q|=#dV@ap`m}HdU z{>Q=ThP0kU(o#WofK8-pzxqPhe8Jv#qQvr|H9PwjrbHuncO7m>BX6x?=z|4YI`W>W z<>uv0CNgjz1GGM+b}Va;e2!LT|B#r&hIs2gAiY+qlP(kGyjQ6FE%@h{D%?LkU?*PF zpmIxW`Fm-Kpoe4KYqsru8A*Pe30bC6o5*W~va$MD74jG;!($$hR4qXPgO-o`O_zVd z9x^G1z(Gy*oJD7Z4$WfxfWelL@a^wTD6JQv`K7>zk=D&T-67yIaSc3-fb9X`>G06YpFuoqtpXV4X5@aX-VzNV-eMO% z!(cEDxq()4p*CR2p|bD?t4g-{HgsSJNc{Nrj17tKF_!w}KV{hx!71eAVE?%}40Itc z*THfD6yM9OHiRW>3$ymB7p#;wf)(9O;IJZxZ>K9(rF1i>^xa@M*s0lLE8PuaS%QGL z4RC3qsSAw1ep=pgNDN!{ItrYct3vLTRlxg$eLXE^b~M%zh&cp=jb+R7x3=?Yu$i`W z`xox{YATZ}ZTg>Eo9b#h&J-0cLtgQ5UU>bOy)-A`yR2KVm)mz7t;cqSV-hm6gN5z| zo#r+ZY0f7uSd|rKsG@|e6ojsTamON^I#LOqu9v^&oXqpjac&B4ftg=D#c4@8O36yu z7gMkD67@VQ$6h6LkH5Z2^bLt=lq%uxczx4pnr@*r%t5_bk@+C?-JFb#814wC6Y?^~ zzgK#()ggq;7$N#qC=|4ZtC*gN)z-FKa#iiwNE(Tb%E(TDZM4)_6oY8s^CaCSgMbC_plo%DE7ocP-O~1 zM>HSTf5^Su6y|yQBlX!;#heaA~TYlF>dK?lkUiO1Y zFM5}8;jUryj8PBF8XI>)GX4?qmm(zpct(ibt4sm)1}x&dSPG9pA3u zM6zhboHs5~4?x`cuM2X9LPRVxH#ab+9rtxn$!BS!N6SC>pZ85;9Q1a2h22on}2@`IzXhKB)JStbD%z?hikOo z+$SwK!pyknG#IR{`$dPlrm$r>EKWSsJ9QuX{?Io{BFMKRg}!z!J0SPM?7h@wA5;R- z?^*?5dJ3^D0rdAe>aD&65K6hdPz@-YIn!;+bA6=jT{e5`uV)?7!9$PYDfiZBFY+}C z2zf3F1QcX`q$4FctI6V#Zu)*?q&@})`Xz_4K^iLBr_&JCnTgMSWf{=`h7tQ+C&szM zXt4{%h0eneaHSYUUczp|yzf{yQStz5)7#n>t*^`^oBZi9ZdMXlxC~{&m=(*MRyj0+||Hn)=xY2Mj4Y0ELamc^%K=E%0|gWNKns^dLM;L$GNx zrp}~alqn-xO{nNkZAr?6{$!P6=yus~{DEhh@)MY3JDNQ;;kBdNTJhl4bZW6f1Excm zct}7M@_xZaDMn{ChJe+fPV$E>&n4iPq%xu=a1#YemFJzS+1L}l-li%%tXZ(FPv^VL zk{J9Bt>X%%Za8U?u#o@+T0iTZ>coC*gbW6xIHsc9w z-W=@rRJumo-QfJ*Geqa5`cSs{F5qbY!oFVLjj8c{I+#eL$?hu_k27Hrp8I^vS-Jbx z0vGzkaOh;(3gX;N?{fx0P>InC(GA!L9SI6Dr0Z!;^zWoNYC;3ooy~_cxU3bc4qc*4 z=8G2~z%tUD)H<-Z8cr>^=Pd@Y$)`a#<6p1J83#mlNA+em?((?G{_Qcphe>Pe(!}Fz!WnL-`?YT2;n@Sr}6f|d)$M(uEg_!bnWfmOUKUM{n zY02+pDvya9V}lO6yHtr7l0}8W0{Y$;99STIAa{x**uiE^a!sjy_f%6@SjKU;eEFbi4bE%jnmyig|jB!hq=ZuTN7eZ;n!Dp!Rxdt2`KizS!wk7Za*r zD_~UJR17*2zGi2|u2_rzf*1mO)(73+&)M-S-{-Jy~(07L=xEv`6 zv^kJ4*{GRVSy;UFn*TO?BGh`(>NQx_w6CM~1#*PA!7#8?ypgZ%tqw{_RRu+3Z2hZ8`Zy%;bX-MN}tvS zkzSPi{9T+KukkK#vFgWMhG#zmz<=*y3WYiJB7URiMv0ub|B1Vpqrl3~@Gc6`)$H@p zIc%s>3IqJs8z*l6Y_&<(%F1ExzVRzqT%|Yxxpv=a=-O!?Ck2;uZ{3hL+iPfh#QXE8 z|29#5wr*KmS{JEVyK9h8U@7y*Rge1FO&M?*C@4Su&>tEAZ!Iwrv?ai}nDZjPkta=j z830N)OW+WB2MuOztOsi($x)|S=^xOfX*zly)Xt;@ei|p90m@tw?%NH)X!ia5l_zbN zZH7rpt}EOn!wL3~O>?JPhh92Fv$+5P12uY=v77dj2VCip?mIPJ|4qT4lHazKb9kKmGm(3a89!XUtem$B`EAxdt-(ZrZeR6@8QRbE`1ouBoWVH! z+l+_h*MNe+L0W^kdL)=j`#3@7#xzPO;hn;tX<$Tm`m6?ed={2l zF2lRZXs7C!nb+U7-AFgvh{J8!<%3FWvB2>c``o&#r;wh0p?3^2x3F3dCK)E|Fr}`+9SpuW?h?k63rk-~ zen+ob=%f~g-qqbR4)nd9Ngt<67F7TCj-h!&nVm0&?RQO^wSsb;zN&hAt752#?Ke!b zTFaE_b~wRrbIWp*#SwL_rfNHlPj zF2xBxYjA|+w1U-AS!!>& zTo)bkk-{2uOPLPdppvUle3u!WfOwzO#HQy6?MPVXCOPNjLgR9`DvUd271%iR#7xIa z1Zc3W%cg04xAwO;BF?z;8hF&V3GUwwDu_N%)Sswvhi z+)|HLnk98-yib<@77*Vi!`;xKoJts~W2n7Hit>&=VFSBl?@t&jM{Yog39P`j-5rW z#()9XpIr@gC{WX98peW1y7T**GKEbWA*Y%5zl*JhB1&53Q#XiNFvmh-Y0dLhC_(^l zE{Nz$p9A;|29oCXV6(C$^7Q^sNenK~@JHMDJ!{AZ%x9#HCcA>6t4s4WfN?UP+qug6 z)7fAAmWAW@&rQ$w=R!aN*B9D$kW(bwX9m6=B0niIfl5+|k#M)o zk*+bpFPC1*b=WQAlHvGa&}6}6iF9~B(cBFu3D}dh%QFIUY>mwaT4Gv@1zdK+?jxgu zC;TlHuEOiI z?;zrAVhl+L92$~8+;4lZ9}D*~O=C*LqroR%jO-^Es9=Uo;E?i95@DVuOZto2*pE1U z#KVA>k%LbwLv)i`KB3h9q)uF}dp|FqQp~kSZ4pT-FfI8SI}-)~TLfrUGK^B(45u3f+DPaY0Wnxlo zVeLD$FTo;+wJ26%huaos*I5S<{^{SIC2Hdk{|{tvpXwX3rc^`3E)f)(YR_m1(Xtw@ ztEq>+Zhj-7A?@>?V~^88E==X7hs1tkh#?FZ72-}&KD=VnGG$>{a;Yb#_h;vtq|9wg z=h{>Iu8=jOPUa=ak?O9m`SXj#>HVuLv4LD+tNzJp%)m_@&OG574B}AqKmdF3oU>>D zy!yz?)uPHQcd@_idbhZ0OQlzmNWVn=ZU>;GI1BkT3{*xr&%>G4LV#DpjXQeu?YOz) z*iD+dB$Hb_s~BJqyKH-THGh)FOAz ztaz1+Q}C7mO8`CQ*^6^9|MZTwaB(t@^(;T6P6l?i8&Br^v+#EY-H&nZS7z@&%d!GpB9$t_;7>OmCP)dkx@t2PB*;_t*CAo+I?<<1D zR7?b-z9xIlGlb8&6p|3#v})jWsQwni##M;~Bh&ZVaxO>s#zx#~1)=ebIiYUOJhcl7 z7Wv#3ZC$T;|LUTV4Z3MEYT&lmj4p7M2Xw9XD|^XM6qU0Gz&*=Cb*~lqN0dz$QWFjr zcwItAgm0K@S(e%R8W-|&0dwFy?kN|amE7^UwhM%pS#|Wyq4L`VIk*dA42 z#DyA}-zc6m_#{#H;W+dK0FbWrpX(3=fzlF)3a& zsYI?Tg^HELS0auG8`%=LihF27BIM>W^1 zIHKn<9=}_-_gQdXgC~PB&{M0;P}=F~N_k8I#ynzefe`$4(%jF*hQ&J|T3a4IbTg|+!pPhW{GOn~w;)%H03NNt_)86v@ z*o~A>Qq|AcO7gG*sF0z9sk&759o9gLbV)|^ep?iI<8bkDhJGKg1eiSBOswVDwYS^t)qPY!vuX4VNeVh54DXuU9hq^AFPS>ExOD z0+H+m5nZN*cN#i{&eQ4pE*6~>tF_{#+Ls)HNimmq7Gc92;LG(R z%w4y6hkXCWI*pQsKcVKUzdp^Z0v+1YUsYT?eEd%o#~LQazo~1=TNm|R(+=dMP0r3* zoLByE*I}e>2sTAr7@Qtq!nIQig5EIp;}&=#In=Kgf!`Pae2r}tqy};~20Jp1Ze&l5 zlleXKorc%-w#6+I3e`&F!&cnIQm^l5`Q~O-s z>!9{3zCC>rDN(PA9jzUe+#B}{$a;Kx2W>~UGe09nh9<9Ln0o-f-+HJbSWo~y$c17A zxB<4k)JD+IK*q|d&-rEKJzVz6nli@btWKO}fL5xqwHbGJ^YwhO$KBl!Z{1}On}&WX z;F-?P)NZmRu$%kIr(k=OG#)TnU+*dkW0P_1Y~4E)7;*zF!+u10tpySd0&5|979`Y^ zh%u|8D3kDIGtahuX?W3dp)_O(u!Z6$+LrQ*9tS*ORfpp5n>kD8B3GDeBcA@7Yq1+8 z3IJ(IftZv78xR;YnTF7?89{N}gG(<)ao5%=_v|NR4{gXJcw#lERei;5<1$3$|!1Kb)_N`>J!k|IP8 z)uSs~Ks#zj7IG~ts2LqVbLNmcR!G;BpQhjGL4!rPp99l@I@~Z5*U#<01H2Dr%z<=$ z%I_s;smiuPU<9mDTX@r^39zTN%#%;I60Y(SDQmno9KJ4nxxVDKAXMqGjnM}NVAEA# zAZ#q(;q1EJFB}oA1aBa5ioh1CeN8jKYaWJ63=m3=HoI5!jmNlN3I-CUUz2URe|R0W zjV#)in^@+jyRuHF&E!2I-@1c0H}fw^H^|C*h0k$KjdK)&X{IB{TIBx-1Y0llobPPc zvc;%e$u8>i|) za++!BH)d-Unmb|Ny@UEepg*F0Movl1_)sg(Q;v2%Eq*ZG{#QGF6as`uNRCQS;S-kjAc{b%5?r6^sW!&T8uOW4> zM1&oq*m&yaL$$l(iFFwctjj9%=De$ihJaB7sSQ7sr#Ia5QW{W+_kSj zH$zQWt&P#cWp?a|((Il8)rDR*tK!6&w_JML0XOQF7Rf`sBm@ew@Wzw zhfGMS2t?#a(7Z8Mo%8I+j~nRH>}dkvY{1|#)=4G-_oWW{wb$k@*UAM|Quv42H<0($ zAqP9ZXVDZE{VAH=NJ!Y*{66%b+-qYdf3v>_<1oa3p+?koc6I05FTN z@Jhi~VTK8>S;D4z$-pH)r5iFM{xqk$2$W4xU$}=jkVZQz>;V3ar5kGYt?<0CbA14V z`Gx2-^|kOkTg`Nn70>-|`g+zdTEP8pTr!Xn=%u?p+6x+h_5VWgg1bLu)KfE>KjceP zDDxYo#4ZVafS`VT`LpHs(v{9>9qzl0Rf$11#8IMT4(uEN57MsoR+3tMZt8ZQW4w0g zDIaDpE={m0oGt1zNq3=L7y+NdCea|3hjY3uowGkNjy_ z%QZij$<*_M6oq@G&j^n#Iw@8AnXYI5DR&S}f2g-cBe35VVdxv*v4p`W7wWh0TFP#F zMTSNc@7t=7MI}R9j{U>ZnvD4rH6|CUhp+XE1DhS8=RQF={L!|8Pvy>U|7kcg`3_}pgp_=|c~mUoPuR2fU;J~on<4ECAX7qTJJUdB z;)^AaAuytyH~wxZFe)Yqxby8;n)f&ZDcNTlZ-v~rL~Zj|!0#RAd?>(!nJsf7csLXF zJv~ylVy6xbhY?{;iih7(IDjDdz?J;3t-JgE5$J`+Y95ue`fA=R4PUYNUSANG?#W%W zRuxcjH2r$=LEFN~IvUep@Wnb{H5f0t)fW!6STOjS%dps1yWUUC#J(6?> zTDc!(6-7?gjeAuQhI?-#N_o6&UH2ekZ~6W(ZD&db&Uh;KKRQtes`x7VfYh34sh)FO?Z z?ah>1tms%zUbq22j(a`o-MHZOY|i=M=*VC`K5Y{3^2@{sB_MQ#6 z3*~S6oLyFa;0MFh7dHA;rHxeev@o!y;uS-Y%7yX=1Mc%*=n#SP50A~LMF-P3CI*uQ zdY@H1H$%nNo7Sdt-O~PqVZqTSC6vKo8WbHk_2uysy=CRLsKYv>9iY8OO>ni7pT2Ai z>dqDZIZOgj6%Hxgt)ucslI#e5?`rXpYgh1|qRv?~FI{12{5jtS*KZA_f}DjxUdXo( z27NNIIhkxHnL=K5PE3Se`hbCa#uZaEsWqUe9!GCR^jzAkt4Pd@B>am;Xo2O&Certc zyrlm8_w=(|He?m_?KZGa3P0Rwq8h|@v(h1?zg!KFMqR`4rRmcumWrx8eU3I`vZnL4=mRG5&+m zvVZx|<%I}W`Tdb9Y&lCs*P)~VNB8>KjO$peS( z{o(gUCXWj>5jT}%E-s9kYpjQVv2zA1+MA=iwXnLFpd>WbAL zO{zj2{eN$xjP}9&fudG??0jFnKE$=YY|kYbG4*;XA??PYmIZL| zMD|;9T^a&R;Xy9aS>I9~b;$kCUi$A?BO3g?Ksa**+Y8>GB3)K8l^}d+Qv^Alro&5Y znYu1ciI{n5uA${>IfK~Q;u?~(2Y<@&J^-WKarZVBV{?#2@L2Y<oWKF$;URJeK0Ulk251&f?z;iHBf-~R|b)TIH7u({^raXDy^t{qR5;E8*1vtJ2LdDD)Rn`MV>J((@`tXs*P^LoSq zxOyuRZTEXHhs+#uhSwU36O6Pz`OP$jb6d*=2h+1xD(ADZ+gb;E<;X!LkCEaP0PQi7 zYe9c=Bxz;eL>n{3)|12+Z>iO&;qob5#`OP?c@&@{v79rfY8rx<^jz*-pwYeLdy{T4 zj|#09#ukz!aBdUkj9TCyqsVgaquW%8rX*v*{Ko#tZ4~@eEx~Y99Wwv{7QU(u!5>=m zaMEuBszju|8grY3tF}B_W&mF9gvd~59hDV>Bb(NfL)a9}@`34}`)_MD z759f5ncBQ0&ur{i<9Kypn2d$?<7osZRg#2j=Vii(n<6xnlz)HN2SJUT=wbKFqI(Wx z3vr_(P@{iGBfUFsyQM$aesg3mRR+;$f))q0M+sjA@ZB^!Rm=HoWZZnb_r0sSIPnko zJ~46$@N;Wt^kTcFoP6(t-Rqlg0E9i+2S=D*_hMke*Zh3WbY#B;1F#7m3=L?!U(Jb% zbJ0l=aI;%Z(Sc>b5bgllR$O`-ULzG3%sFPYfhs!v^l_1G`-JrRCD<4*`fcXog!-3B#F40RDg2&Qp@tk7mJd%s z8hhR5TI-J7Ck^C2d>D@=BNe!WU+nDJgJm>F@n}%^l1;k(Wn$@)acov&AsVk4X=Sn| zw|?TcT1WEjT2#L$Kvf}0#+4AczFcn>&wek$h8LO}FjWrnwoTCGG0BK1?|C-CZ(UAm z(0JM}5tKxQBQ&_^zQ;1Gb9DR_+iol`jfv3*u{l^*>l7>PzNxO+y~HoUd`7v(a*p#_ z_zj^a-c&r*3)d6hx|)H#Kj;Kkm+?<)ZayA5MYxfeeD zET)FXERy_gEX}t+N^f$*pOmqp9iRjlQ`fLoQI?LQl1Dm$xS=}zNtNU^4e<6^2XmM_ zudVVC(=yKW?@jl3X{vel z`maFgN?01SlHzQOEkwLzd3(sD1N7&-?5fJ_q*!nn24Zq8`rs- zO~a9no~RbiJV^@tr4b(U*>b&s`A)kfM)gw`&7wif|IrWthO!RiKA(nLF2(8oZ0gQI zQ*ErUMJ{oxmm8^IIu&Ll5@NC%ulNUj&X=6nU=x|QUCmeL0<2kmm~3rvrD4UfW@}v| zv?+!eaIWeetKv-?%|c#J_`c=&tV<2#263~9x9okx;-+9)25&Y#qKoaC@fKezE^i}q zo9k<2+^QaZU3WU#U<)EVGdQT9F*xx3q&d{KgkSFeIEFIYP~}5t;M{xhd%Z4k#UG81 z9s24szOM6D8z#-m#7wpB%klTV{es7f0_F~;s$pJ56GF8zv=Qnh3yxLxnub)*UE$cr z-v6!|D3q3wGd!V|uqAQ?MY%M6u~_<7x9%fWH&ExMlM{<;EwRMbpykJiQqYDhUdP)H zL$$;cL3{SNYYw3xyPtLQga!<=JkpDaE?`%PVxwb zz3}a&sreXhH0D`Raf!*afpzJz>s%s}55f%R-3W5xt1R^`<)3NB-KgPXSI2uBhqlH^`|ODea9AMfL4D@c3627f+=W5oYSrdx5d}?^-i>F^Ga|nk zU3ymg9CEh${i;L3&M6K3ZWN)NX_kAwZ3zvXK0VL1KTcUschf z@q+CToOfws`exYcDEZ07(nx$KTX{>gu=VGb=slgV4(As;yvv>w`;F@g#!i~Pu=M)% zM%%jC{tUy6Oz>h767oD?Bi=3kzJtd`Hr_>yzN8B4V1M&W>qmRq-NDjei((s)H;$Z2 zJ#QVn>@Cli&Ev*i0&wJi17^UPQBB}68{u$;$;$I!GH6$^o^`@I`n|eD1D`2D%aOqW zLL(~O75EIPSzW#VY#xd2r)h1k_jR;o3P_uC`RT?Q2A1Enr!gXY?f3-L+OaAj%kRb4 zCPsv;TPu~ncV~#SrGd=r5n?we;sb)5MGrT$NVvk<` zZg`G@Rue1wAtdlyz`cJS zZt(VDGmp}E)SxK>U01K)V7_F?@5lY(5y!H%)ql$z?qL7B;6jmOaFTr8WFaH@jTht(IWu*!XLB zm*oFIcK^y|-)Xb9A>gZCkrL^oSM2OdKU`?gBd)#ozDo?b0fRgsboF)tyH+h7Sz_j$ z@EP9nmXjde*@h_Leq4+d4-p^XH7T*U4SC+>S@gi&voc$Jj6mYfeA4=b){<8u$D?1N z2W}H~Gwa*b00IKf7vVN>+-QOf-wK1x}$lM z^}BJ)z+2e{ODjf9^{ceI_Xvhwo8X>J^?Xrrg5!25u^b51uH`DBQt5IziNpLt-!)?9 z_|E`a@1~1X32EYoNNH3d4>){=YnW$JJ6KpoiFxbn4-*@S4@NHhL#bu~`o+LEQLl&P z%{f2FnT#QBoNR+U@gG__;Gb5pzqm$3K)w#kkRDWehWFVcoC8VR2Ui}lro9ndT%aMw z$!_%Ty_w!Id`CoWZ*}c~p5OV@ywL{#juT0y&zgr*5f;6wrY0y)KGP0yvCm~Ur)yUS z(KcSqdf8qPugOCdgi{ZaisZP^EpDz>6j?&a)^2vM90Q&=V$g~9r@g9;?^a9TzavdVAbot9|d_}E`*_wFW24W$Jk)q8P88h@u!)&zjoJ?3`Ha+2Y z6g^dN!eqO8JUq8qa{;;+MPsO@y~z>0i=*Dxb0G86M8ig3Jo}jnFV&(NcL!5J*TSCL zcDFWA-HQ2weF!BHk9hyn zcnTMHH2HI)-sfz-^|VZs+8%VpUa~ve>e!a@EaJJCMax8OPfNG+jNui5j*JhNvw+;v z+P+~qU~8+eJR=)4<)~AqNY3S%pFSiJCA7=#ZP6``9%$coV;62V`P*f^imgP%Dvm9s ze#L7BJ&@e@R#`89l}?To^2u92GVt*oY7)1mVax0Mo;2C_S==VsWFgX8l*j5kfZ<%c ztp$h~v>VQ6zMpT{_=RSq`6@fvq+B0=_qu#+|m^GnK^OOG*Ym?`Ce=u z!=V#C&Bic~-|7_3w|m?v$4~op>Z#v!XdtA(NG2)lBYcMHg~mNu;-^47)J*V}DeTlM zGbwR7RVjw!j$#5d#O)>w54tI^n|R(iNJ|xz!Xi}`YO(z$`ahJ!YC@0Ez4sQ_s!_DpY4qLXi z$9O`|e4v|}hTIRal&$&9B;4GVi8_IkL7WR6$(BYbTr0`m=6#2^bJ0DSxH0_5p-JPN z$2>D^d%$#%C92tmke8>{y2M04?%U*6ia;h$@Ih6`oJZ`MxzdVR=)v;N!9GXqKT=&> zz%OC1eeD>Bx8DMKzFvrAeOgx^5apMv0Jr&?_fHl=0oGVpDQ0bJ1kWtR7ANnL1wODr z+I?^kyu#H=>kO;t=t!IIvr0{X)-B(G$;@Ex0rVW#E7<%`S3H#)uG`AMW zNjs5%JoPhPEvM0HZq%XN>VW>w*#EG(Q&K?wP;Ir6xGqQO)m)KA#WOceZCmgl{`D2_Py)FQo(6hyma9EGw|Qj@BBx#92j@+U$nbWsI)^l=5tuQiA_lLeGOxqI` z#?FDZ&!O?AnPIKUXxb_VVl)!GA3yO?!dV9kE3;*Yg|JvP9m|T{xI(ItJR(NC5aH~B zIao~X4?UzV#@^y_SaLE8A{2#rdvuMe{?1s}t5D1vk@UxG%ERHblUf~x6}Ch z7R{o8^`$~6*+AFC9H!9n4_1v3jI#_R?_x5L`2EYj^OCA$^RK8iDzckoYOw{tr`IF` zw|~8<(OELDSllt%LU5N!zWH3 zm-QJYxm|Y6P1oDVzltRUpj#L|TzlzAkRYv~aG&_Ee0sW5(M_XXIlX>!nKcwP zjC>_29eftlYC8?9wzF{PoDHa_U|-_v*VU0~ZqsRWf>*abJsamWJVt!+JiMzHPxorU zoQo+c(-V1vxJr}TNfN)gSOT9>osW~9Ru5xw$~`oTvsxE`@lg+#TNkz1An`a1#ON3A z1>a4!v#->jicMxG-UiY)Z()mbkVN}=*;A)x%ii>|u-LONG_cn;g29X9Q&V$kZ!X7i zUh046-^sA$%<5H~?Dc;Kzw!3DkV2#qm5zs%P~gM|rxuHPX_9dR5|HWhp3FMa!9NVu zID)rk4B$Le9X%G zLB9_OxV(Shx0Y&dL-cO{db);B?-TDH$n!`B@!1s!eY7$OYz2KeiqGx3pMb9&spn_{ z3yzIHVNN9||NYc?&ys*Fjo~IX=t@oH9(fN(68u$B@qUX6Ks=HTP~k&VJez6|RFo1( z9SYJ3$l!dlT*$Fu|FSLli9njn;efv2A4rt1Pt0M3Twa7Z;1(CImtl1brYF!K1Zpww z{gw{==VPumv?_Yc$fBe(QHT|eg?LKdxKh027hjQ-fep-Galt?CW184KWaNk#x5^|F zPflsji|7HxeA-z?A>Elqb?JZ7+W)0OTZfh|j4- zoT)AG3I_ISYn8?jemA`Tk+Lbd7sLi=~zm%t1gsw{!Ev8GG0r8&=n#KzJlyd*s z=dp*XyAHG;x&b}yx^ZK#JWh(Vf!{Q2u7Ok3Y7yKOoH~GF{^!geL0`We;s(}M8T(a_ z24OBR?3VQ&*|VQrP1zS_WUF50qx)3ZX3zgfhAZHa=Z7td@*s_EU@O$`o*Is1zr)QO zB=zdE**w}X`Ss%juf4q=Uv|}C4JP6LwTTxLF#@X}PjGxY&cH8WOoIXK_T6>n^_Jms z&#~s*w_oFV@#|>OMG5R*)8s!6zSn0}=;fi1AEC%!feOPY@TFrkz0Ha`UAhIyRT8!M zPM9Vs|0P@tARcZ|q0b1FgJC%&x#u+3gQH1`t`^bO9sa6U571w+N&tKOSe<-~z-?Rs zd@cSU&)?VW{+lXe1b+7M?spYsy>WvZXY>AH{A3et@~q+O&M^Sl+dq`EyWjf~)2t?B z4pXExM8B{5*KX6AU|i34aF7YHgbES#@d5rVZyp#SGa=TtJq~0V%LyJpmk>U{!dZ?o zCT4pvCP_^*n&V*n+HcfH0R;s+zbl*fgo*)&IFEsu8d+f10fLX8C~gv|VZca=0LvC3 z;C91?WhX?n-Oddph0>Soiu_gM@e+800!Qm@pcGe$zLUGjL;gaNMtngBMn&0rP?Ma|uS>S0u8c_Nm+P*^$%^j3gcKPo*9_$qK&D&#r4!i(q!aK(<;N<-3Y#1`IzAd6 zx_kCxGk1EBd0u2)>{blT<0`8eVlW&0c-NK3+SvA#PQ9}G!^vUShW=GNqg{49vs=h^ zlf4y?l;$&1;%+_zyPfar#zw?$4y7J!e1AHb0*v=Z+?E@-xTR$9{#+ZATWC0$Y4>-0 z-E4b|%VO=N<}jhO&`_D~t}+)<`P7xa3Yposp8-gr2A&JhR1UptdTJ5R?tZUMQOrHs@KC%@3$+Ioj4Xi*iuK~XCIh)g{_R&UR^6aa&@i^BTh;HtH+#835guv^ zZ}<7{fpzloMp)Ft^$zviG2=x8F&i3nT23yYU(!B_LdnKdFfrdZa;eJACPIetBqL-p zdnJB0S*TXg-(uN3!*kM2Y|~aT$kApFRA&wyid$DY0tY@J^Y30twf97mY`t{tCN%n~ zZnkbZn(hIFEgOqh`^@Y!b?Z_YP74zsHn%dkMdC*7bX-oAj$>PH2Bgb~vPQ!Qh5KLA zx6DTeUJyYY3<8vgLp)dJgBwz`RZ*OWZcEG>R#nlwwrREO%KYp)&WECQ$3-<<%ZyXs z6AmOCcbD5fZ<>w*%raJYwfkJh8yZ#}tD5c|7_xA|)RLh0Lv|!5JG`zdJ>aJi?P$L|BNTnuPb1b$q8 zLTyXo(8VvljL!frny-x|d@NikUvo~yidO^IUQlpC-Q2E^jpyma`}yrpVyAsufA;Kj zkRiLccoC;;%ZckwK2^`N>v+}4Ui+-i3hB-Hglqt|?)xhOTfif=?`^L3~v3o_pcNK64f_)}q( zKF8Uc$q2LZsx!R0L9XmKp|5cE=Ij`U5K?RA9TPA5bnZ-9UZ-BFO7Z$jbddOqZ>D%Q zSFj<@l~{;!tAQnulu%m$tetOKeV657r}3A!d$VTuEj?R4i`KiqOw1sSYAHc+#0#3U z$Cu~qsD+ZJc8dI|q>Wn6haEE+4xq)ck1_|{#+(q^-#%4Y2=r_<+AKQ2(46Lvjm z)M%rlK6{BM4LbEd?q0kEdK>$1ka@oQWM9)(EKMLwsFmLwZ0D>#xjLvxopH_xPQsoT zLm*`?!YeG?PI1}iJpPF$SL+z7=@?%(j9`qaXG1#y{@!Z&7b@`^$`O(#TT>HRp%z9q8H6HIbh@MNZ zjbpa}7$WTS3v>37GX369@!$EWJDI~Ll&7Vb(k_s^(DrP5R(z#(KEK*tK-_#|k=^+Kl=` z55nn4*DJGQ><)YL1G_co5~p^=ct{Ao$#ec)26AP{HFcAjjylTKx{5aAlzM?UsejvX z(J&SD#0QDV;=9`0%i12@Nj=9;r&CTbQTNa&Zf{yDEq|h#oXXc<#Ax&fP#1oud9xbw zH{B!wJ=B31$IPv?Qp9N(%*R*mPvTw8bj1Pp#x&4tka|KM222VT5xTh*1pX_4*h^H` zCW$ILdP3a1+_D>kd37+Ef=E|)5mlzReghY1K1HtYEcdwl=1*SF4DZmH_LeYEsBZOk z0l|dtrHL;sJZZW5@uW3Zh9xX@fH+ThDZ9tD^VElr7{k@`wo=5@-sUFrwKkR>^;0D} z{C1P^#tHHnVs)O^H#&MOo8QjN`Rm3^>B{>fzY_;`=n8)}!mG~Z@^?aYpu63(T2TAA zQyHBMsR`v7y&h8cp~TRar=YHFQFmHLR^S2VKCSFV&s(f6=T5r=WF$OoB2-DKd*mU- zc!7E4NAotH_hjhZ=ru0K>o0Ey)x9q>n;p5Aq2L*<=O1XNeL)=yMBASsvrwYEqb1} zOU8tjuS5|PIY~%tI#||SY*?0PiLL}Tf2OP5B2p#p z@Dbj}q%UOz?qm)WvNX^gcj50+P+f9R!>W>C7~hgX!P0(zLGwN77Qh!R%Q+(jH)pt+45VGm zQ9?8705k$4T4B!%h)&n$;U1f7Ld;$5vIT#m*aE^`q0R$TXs@Evt8m)j#hu~ zWxLj+_tYm6(kGNWb|X_4^9M!6=kxAP72#Ex1JNW&2fA}VGtcjUc=$)`->8!y5-2rH zzwodL8D-H5vSwY9S3ox-(8)tUEu@C}c_g@Mc0w7)k5u>6lA9VL01X%}g85?n*+5?z zwr+`{1|q4Na1FLR25*zG9PS#$DtqYEDv?N7MY9N+b0M&SnHhM4_Qp0i!`QrLk8My? z)dKyI;haTv4^;{!Q>k3QtOi99X5~n{7b+9t0Qpp$zJ+JjL=lI}JY!cS)lW%|?3zi% zWS>kuY$^Ll*o26}XLd!x*X{_uv^uf0u}X7xlu&HDsYMpe^*wnNaE89*hbnH<%9Af| z@RJd9A5lmq9E3p|TjnQgMq=n{m;?k@CsPNPVSeVbXgus}j$@9kN-q>!lJu_(kd^r> zwDG>5@u_W1gEBf&QRvU?+4e*xeYHjGwDzhG$@J#y2@sL=hIlzKPPPlN>udG(s`4X8 z-M6$)0zS7nZ$-ckirVl*vFeus8;H)7_v5FyqE69S8XBYa5HSE%CvY8FQyLey7Dg)U z3P4{O=sjy}X6QkXc0hF?xxqxpO>cg@>-yns7;@ds8GlIYSE9we>hGUyS;9D63NhpZQ5J2H<`=8AEw)TrL6fNS74@JQeZ%KUhRJau3sX4gxOzF8byQ` z^y}xPo~mZmb^JBMPS0S4bvCskIfsVP2tNy4poCFuMT&gugtb%u^68eZxHAQY6K3|l z*=cW=D%+S=9jiA01nGR-;82n`SirqhAF^{@Urh$v`$Hnev?IXw=IZo(L6dJpEJFst zm#an2c)yBlpt3bd&NhqAk*`@UPU>176n3WC<9^gbei#x;q?fky*t%Ll7-3o1h&}ki=t^1vo8n*jE;1tnTvM!A7S!i2D@P^k zV1Fq2Jv$x<=*3W*(Xj8WxBd}8jX4o2_E%68mgrUJe{wOZj%9>~$O83} zH|@X$NIDIB0FmjQu_`06Gek&D4|daBx&Jyao&s8zG0L_^4Jhi^F3}tfqMr4$rlQAz zr%B9O7~aQAMKU3E!3+&IRG@ zsrvbjFJFgny1}4fQoALN3r+FHabEW`$9FliE->$3;eRE`3k1J~!UBn{i1~6>0Lxu~ z6yZBoieI709D#@VFV5inazlZbK2GF~%Z#;ka!UefWdVdoDA* zeK3W0j;85k6vv`mtNSB^bOm%@ducPPp{T;`x#umK(+uDltk|kxWXmRF^1G(p^yL8a zMPvOh9aHYz!w>W{Tjq^T=d)wxu)MCF6yUJV6 zm&|pyt7tkXeW1%4#4s_JEQI2baB zW2_E*|&?Z}cu}CYYUHY-M zz4A&;C|7ScM#6Z+*T#$Efq|NN)FqDoePOeO0t}cAje)_cgKEv;C6@!<8h%vk^I3gl zECC80eI^eA*uQTuB@{ibDG2`aul(fSxd_v8bOb+W5T&vooX`4IJup^27PM%HW!Gm> zQzvn|dI=f8$w^H)pRcO1sGP#HY-H4z=c*~<-Cln4it&8jDHTr-m|PK)|I|k~5EstZ zCcodVa<@(|OA;ks<6q^hNMa1@9j~Vq#{Y_cvGME@vN18GZKu#O!KBqI_GQs2)g6IO zbXCiF(PaYw=5m@0K!v?KKN+LFd}%;C{hV_v?c<7mUTaeS8S#lf-^0n(07kdHB3#xk1=l-q^hq&&~LnZK!nNL$|E;o%JwO!8jb zM-9hC6O)2$FZ|>>M8KyOkr#a>jk_=$6MgCs1H4CBn)7JQaVMfY3rly~az^RA!t%z9 zwxGw>bS;fId>?9O^v@RnnI;=Kmh-sR@B88PPy3u^wQSni#FRQruugG= z4^J8Q9sE3R(c-R>+n1|8t5PI?Wee}QHu7eneBJg#W|g#s977^W3oyShqv>)wvC({W z0ML>SNG)#Q{z}RG9?hCk4(I4O#E zUDq46Zm!PRm$+}8$sd_c0)P(;IqKic23RMpq3EAXS6mp-<}f2+*bAGK@SfXyXQw*jk^XqRbJZ`7YEYs90qobwV(^_xo+=aQ?& z1fTJ6dy1vdJnmppas3V;k9jtn&Hg;2U)*zaVJ>1|6~+(RIQCT16w<=cUYRU&Dd!V4 z^u~cAERt7BUmDcHg4G&E;L8P#)8roX0q&apc(pk*}~B{|nr zYc;I!n=?LWO1^?PQ&U_jNukpt+~0TWxZcFNMyOyOKnUeZd`6rvsdlHbr|&z z7J#fY&&J#mTY2SGZ%W^$f|-^txm=1l9S{JoekWbxynJ6#fU(?5OA0#-L@t=D9hu^! z1z!!`K8oYNy%@4N1%|RJFo|?OjA5<`QP*tR4f1gp-+sc#H(h`|b8w?uGgP)#j)2t9 zx2!wPqe#%5*)pDQ%1SD>KvLYeR^)@=e>-ac)PTX;7jaBJwCODTLuRyKFIRMpC^&bP zIXx;XvSn+-qerW9EAeN{U?kQ0jQrtObX(M6%Xa0@J<1*h5vQ6{=uq$<-FB-JXDp_) zf}x|fh}kvNq$%Ux#F43$4ds0M^z=&an`U}E44oP}l{=)gEvOK^?{M>5+W1VchkQr9 zsuah9`IyW=AbrzXy%FNsQ9SR#@EfKWv!mIwq&B^XS<0g_B9ekT5wpWu<)`ra9sN1f zb3r)Fotk<><0spN%!3RWlUh?cj^f4VikqOtWK=lA0SYkp#mxvIvN7nN4ElYxP9RMS zrnO=*OWxsNaUo#lVobZhfeUE;0lUy7iHLq$vF?*P%Wu!O*bMOFa;W%xA5I@$Fmy4?PPXK&Q5j zR#HBcvPTJN^Hf~H<3zA4>PV9-x0fP=4LUSA9$=$R@IKQE9AH1!()u3%Gu;ot*1e@) zJ*)Sbh6K^FSn`@5ZLC#l^X;V>GjCu=Zj0QX^mS3}-r^MjKGe|)Sw|`MrjE3pW4kLR zkXSb>9PIVMT!t)EF=+79;_7hh7la2ZdB@Jc&R@cykGE^|^~kskrwPKoNi>E{HoLu4 zIljcRs;z#y+tR|>p0W@t<3q!tO3n(W^#x;Cbbpdh$iA8KJ|TOb)v$@=bH8ji)VWXl z(kJ*XWfm2!_VW1pB93}m!*}(JW#wDC>wapu1{h2ga%3GKTzlgR14hc`78VhrD^h1k z;#pOnOAPN35YzpJTb#HQMgyY)Ex!Km#ao0CY6}IxSh<3GA&RmD_O{Vctx<|`5hdwt z`Laq;BTRj=6y`l*!*8Kj=Vi2v)zPW)gPvch91&$Sdzs?Z8cM^a&x0{qi>sgrQrvD`rsRq{Z8?ieN*|xrJ4<;RPPt_oz`HcRz(5) zzYYsewcq?in<8JkU)#{2=2vK*{Ygn9V2JwV zq(!`?S5xo;{!{#M1tUcS#`=f7aaHbn;$HZyX20StaDv95nXcuFTxDpkP~Ele@Qn!- z9lO-Kd6yitAIC*byVGSGK*H5Q#(=Ws=4@`$%n}!Pmievfdw9;;(TbBl3gTZBSz(ZN zui>fgr=)81m4`@Q#%GCl@tG{}QB{^mZ75_*GuABFywNOz>%I*ow#lL`Y@Rhe%$hs| zz|K3TE)a%Veh78qx7xINlsiVcSt=+fsA?URpPlPdC;2{wioGVxgIce@&7m&-l3{cA zy&Wx>2&IPgS@lS;`}bE(Q&x=^M&H1di`FHMc)VPYTTJ{fPkt3w?prhka!}z|DR9cR z&w0-!aB4a8O0TQFAsJy1qI2mEdspe$6CPM1FKv|55CJvFbzy;U`zD9E`!^5(df!i4 z%0Wmw+$<<&TAX;RY~43gfn-N|L(sf;Ha7rZBp)Oc*7s7;{SdZ)XI`xB3wd32e7z_^ z9v>;k*`evw_RN>NGNZ!}&-{D(Gc&m4zFfElohK-%ZD7EcxOjd00#U7;Z+`Y@AVyi; zgtTHv+pVL9W&h>fMQC`(yXwqK?%NwH_U4w7+ZpH{@e{7old%E0-OZ`ZWaG871r&+a z1$vKDYP(q=K{d9E;|(S?%uCJL8U$z;s$766?}cI4bH_!K97kR;=;FcdlkICndKP5f zqc3PR?pkrwZ>#1vZ>|d6z+w2+S%0!3MbSfk4RZ*L$nrIb#*gP;+hAQq#FeQ2J zT8i>BchTx&A%fe9>S#$Iz!9(|1RXH!mdi{1V~DN$%P7B9<4AHzP1dtGaK%%%*@|hP zCD3T`^|9b?cAg`ui2-da{el^6>u|knaRZk|@pR>J2zNCch_J8fPSr`CUYY80_dPdq z-A_l62<{&MxYPE0h@lKc%~-_{XP0^11*TE^m#Tq)Nh+CBgyD2MJO_^qIdYHl20HAZ z7TJxb8vBtJR{+5A%tHOP&K(o|+|jIAiG@9%9zULiYkpNyl)%O9)j=0@CazU^51H6a zMHbN1$dvNgr;5EOOB4GMsYYt`c+=&q*;y0zDsZ$%CJ-TB^XbxRr0AMZkx^h4<>0U` z&h+|w8*<_h-yM%t%a09Uk%r3MwlNz(l4!Zs_3&WFteBBrwP0Y`tZ4mASoRTk`ug4(xU7RCt zj4FrShBWg#0TOi63dMVF-TIKPvdUqR1h%I-w<{vy0CxJqRwQ-L!ZDB?W0j&Q6DcMu zzP%Wa_tDK5wqPzCQXV9;l&ID4s9V=R*MN;4&LJN2x_#U~G{iSo*ChEuF>~(f?#k=R zz^#}_)bq{we>xZb?y>HT^J3TQ>t|i=MSX1)MJc_uhvuQX;t43 z9P~1{eD6ISS-!a38g@EYYn-MjPwfcAsynV(6Pv8D@~l{k2v-6xB{6B@Dtr`>K@D>& z(bQ`x-Ose!t21{mLfo}I%lMAG$E#DSC~(Rwre{Q0(D{~^9{&yh6bXq;3eOC@Ew9@d z3&Jjw`4(tQyMU`qMF2hdbB-4Y>T5$zih?$CLHSk}(mnv#`HSZu*+KMCeMO2wFXtwn zl-rN!g->;prZ(QReK*=yT<^YmIX+$PIoI6(v*#m={CgEuFppj5)R|Ke=l;3+jpf|% z@Pd7fw%O^WY6iOd&d$y}`FMV>5=$XAxU_Bt(U-D}fe@WeyK>r6sOcul40Qbj2<-nb z{=X&*Ur=B`;l%$WF%!apVX?Qe*3*>&4+r`CZ5Y^g8!CEpYOdE+iw>uM*EFzf`g|*Um~-P(={} zpMQ5G0x!VV*}nn)`SQpk8RMC8f86qUZyik+*57rHzqR`>7xF(Jho3`(K^$%MFQo#H z#4NNk0$2*7L?}@D$Vx1#R!5RYtIU0ctUhiZMPYA!an>F7O{~WB1=>ffFzLR0^G(E3 zdHdfcjX&fdKn+jgkgdjS%%Rn*fhL9 z0#FfdnmNA>TX;F~p5dWh_|RV)fvp0rY@|OzKhO;WJk%O+-7jca#1eIj;EAP#OytAG zx3of=40Sb9#wOgUgeXp8e0t_BycDbeu5LV%C2LsL3$9Wsq>K@JR_m1CTKj%mDM$@Q zC>)d!IhCfFGMb&_3+88{m(qr(rZWRGFirHg#{tuE1wsvkU`QF8Nj5KtY4^3|`;9M} zf2!s$Q4(-_XJ(TONX#l^L&_>C&D7#X^BX;)@fpYSBhGu5>kEBbNeB)mEb4Ne`<>8r z_1=(|(~TRs-(Ivke_6}!WT*I#=KOx-_p2p9gxZz>X9L07Hy6$?nuOU6U(Wkun{?Hn-LgrJ-zSc`1Mr^G>h@`UizS(4Z z_@IJO#dpLJG5ei5O|R?;iOh&jnt8)b+G0@9wXT%q4dl?gD4SKPUnz<~O!37lZ-@3UP2pWKWNbg4mH?FI_ceT2wgsK@H2 z64{i@#M|cY&WARz=D-N6p|i~mn6t^8%4Ewzr{7T6p8{|sMPBcvTRgt_rjS0!wwEh< z-x#o?=z_brCkjQ;Rwz#M2V&9lN zk(|_ELlx#fk)A2BO&lyqNtI)#qDH7gB}*Y~JK$9kT>k8utnajTu^um{B%{0^K5_2} zF(#Rb?Xw5poljm#s_GWx+ILq&k{$OG{oxxCIi zx|uJy;79!ZPaPSW;PMZq_-QeBd`CKg+T26?$^Q)WuqkxvWy_Wk>Gno2II>&j)}-sI z(?|#SjHYA?lJes`R{1X4f#5p}XLUoqUmtQDg;*Z>xaiS)*msErT3ZRZQ6nl}nn;+KLKRi+Rg}6a^wx87c$7SkIbV-*a=84To$$PI{kYu9vyoEB)?9~`-nUY9gcMs zfXz*i<4^t`l61V1b~K&9U?Q>Q(|$7JGn&*0+B!ZWm!C(X)}|QuTSGmvr$4rsHg$uqWcxFV`JYqFC4=s%fU9D|`Ak`F zV?g=7qXk3|)b~sf6uAN`R6?u7)CSbFV0G{aQRw@X=)*zuqRFg?7P1|rHYuIqCg6lx zgJ)vyBmO?wWg}XB_124xoB+nWYdnCQ*=b=5A8GR#XvO*^%ilg~34O(L^+itQb_&6O zYhgOxtg&Zxob=%eyw^(N*VJATCuMrNz3Uv6WaB@z@lRZS_Dj;J0Gxs!Lpy|&)S*T! z6!GUt%;PCEia-__ccSZJ)Y!c$?u+v-vXZ;0qBJMahE}*ZSn>s#B}^4;H6`W9Or(q z7~<_29vzC_8$D^s&Zg)sD@43`L-Y=4(r0~z#21J+u+rIKqZPTI7ixxgs-(C!T+fgc z?5W$z^&l7aBj}gH1c@A5sV6|vrare*d)ICy)ra3{;~mNK`mdxodb$Rp6x40CI+7%X z1yb>`E^U?LpYkOb3aP-Lt4MUj8^l#RdUUZmk=ATgY;zm<7sxMooe#xfWRX*pLx;yeikzYRK$kd?dib4a9S21C$VGvlOc|f^L(BPPiEYgw+T6RphqSJTmc-HN8PaEb_1mkR(W4^~q zQS?``D0*JWe~-XLhwrE{^%bI}`v6u9DIPP%+~FFNWUv)IGsZGfMazZ}*1zQ6?+NYr;+H^vj|KaGH9w65I-G-JrXK6fN?K5fkoT|#s+jUeRHVmJt!eoFK6P5b ztl80ndIduK4W?{o`KExR*Y}faa21qN8YW}cvAmfKM19TbaUwC$rhUG%z>SIQHdkI05Lx`7X-&g~b0!3tRV5@z z>By$6(QQbQNW(kSZ?hE9!rTShUr&4*g#NV5fl1acy-5vqZwWByrnyH zM2$_%!P3t$qIZ?1{yX(U^2rr~E`!-bP~IBDCB40v$DEHwdul-$?Iu_vJEcw0AK@0e zDvo51liNO#)A>XHiYMV?qJO~tOfhI(2RHwN`{7aLh&IiM;W~~4eKf}LwG{+FVy zdK}sGf%(0lo^Q$!Ngura0R`wLw`MZ#4H%9v2QznV|K-(rCR3zdu(5XZ?L%zb2 zDucBDr}$MdzOH*Ik1LEB0(DAOCey=iMC1ZO|{b5?gPa^qNf%S8oIOwKW z@Z1$L$i+BlN#&9G3blOGelcFv+mlJ<|H;IL9u=YK-Sqr!htRq*eh|=)1Fu%xW%7-I z*KcR^HSZXr51-TVm&&%asM-gE7=YY8Ot+B?ZG+1APW74Cd87DN?;hp=Az%R62 zFY4c$tCU-`Wu8?fnW|HacV1zA4YaRU=FFe!L!oqR);=E<0{4ciZuxwh*5Z7*$6+ff zi}-28ZgeW)lV|mi(tYmo|C*O7fv;xFy88||>&xV*kKDB+2^15ftg)+~^{s4`@G59s zp~tvu(QdHPqhHEQAujuJ-PvxbuUBefH!0?yzt$*yo4#j8i?9&yHyHt10h^MdPWFus zS4pfFm$;j1=HP5;M>UkFq9Htfz_fZ(k%dielU$pC<@ckow;8Jkx0$FKfHY`1rnJ@@ zXz;9<#W>}D1{6zv!zRLE6?JCw79S;%7YMr%{($s#S{948;&Ny1g0$}%aY z;F1dyNH2uKh}@aezq&Mg@Bsxi!8CH@VqDs0Vi_TLj@(2s#F_4%;;rk>)F>6N9f+#X zmbmlQF~a$}EJ8PlYp*FV-|302yps&BK1GFTt8SL_&}Be}Z7Wa7^byr<_bz$hp;CP9 zo#~LO95<>?lr?NhE3Xx0i1l16Fjse+Tj@DO>8!_$`!<0m5*Xtl3&m7fMqGpa8pJh6 z>>50#)$|^_N-EH+*)tmhyoaTMmEH9Pm_3sqddTGkZNo%JN=j<i{e-JJ9DDWC8?r_2FR^Rv~^X)ds+X@AbBusJifL7fDMG3jJF7s%CHsPjml_bA6U zOFf_yKqm{3WqNc1k($h6jW$o$Q>Qq&iT>=~>e^ce{M8Mk$m0;t5utCOVE3lp!Ix^j zila^TZdP;!iP{86kPq|^%N`FVVkJ$-A-86&fO;dvN;oAM5P~C}=!74=sX9zhz2CWF zq=`KC^Ve`boLXURXMc=4|MMaXIJ~f~_6iq@a}tzDCY`Arz5!D9758ICgIN<*Jy_*o z*4TUmmS!!C<#>I5MgNmT{`x0`m{rJ0SH)dk+cgt7R1YfI8nlQWWPRfzq|2GH-< z_vl5C?5B8A_-h+Pa zBj~Do@nSm0vpy7Y{r|`R{~!PV*V`{3?0q%A4+A|gFp&HM{nhV8+rOOU-dKSe%Y|Mi zTUI7!0OfP`efw8g=mGr)>{YHf^hG6_Nc-T-Tc6hFD@h0IvV7&N7Lo1`Cxs^j2vV`* z#$}JHik@I;y$W;Y?>BdGjCG&3`QF{XO(nC;X0-{kBy+6RVmh2SoJl zt%3x?r{$ZqCUsr400$!UYHz)tN4^WpJ7|;MIOpX7pWyrmr5?&Oj6Z>*e<9|oyJofx z5fMm`q_~xkMB-&?b8BuoGHBWnzqo%AHzRG>6?OwHeH~`{OrRLtm!?FiTMwFU|5dXVK2}{4AIDXUD=naYUfkltSeW5=3YQS>13L(br^|L4j^uDYw$un*o1n zY65d+MI{gv_gU#DQJ$LfUY~A?+ViK+b;e3lm>x8|0({W2N@Y5Y&hH1x-nQzJpi5rc zt$<&)OMTww+6i0!NVE5(jDg+4r1Ex68kZj?P}l@x)~B2^2dwn1iGj&=j@Kjh5$Pg~pbUVwpams9s)h24gZGv~s%)GB8Y7B4AlT z28`GyjN!Stt}t!pYwDAP=-F{UV`XD|%3DIT8!KUT$E&i$v73TuAqt^He^%lD`TM{` z0v3|{s~wi*7vL;i1Kl{b`G8$SV!_dKqd2&DIn9R^StHamaBIxJ*_w+)M|!l zN~$ApA_5WUdjG#qM4BQ@<5~JVgte!vC}?$`6jssM2JykP1<+q4LV$kWxQI4DKkB5JjMRPf zp4$Vd>U7;!UH{EsR<=*;57-@u)P2ORn)*S_rL(J(f2EhB#K^%mcP6Q;S`rK&a&P_UyKxY2s*@VvZuBp03iH^&g45>OtNMB#N}OlQp}p?|Yp|NS`p_U>>N1SD_~?IXa16Je^V(ZyY} z(y2)lakC(uGfdyJsxSQ#3c)DwysQsO9<%_{2#%Wy2hx+wrj^Cr<%NBYBwEv5u?7Bb zC*XZO?5ZTRv61XVT1{Qu)gDaDy$9e2&s=yVR^F*|=ku18=4*!DWbd3>8yc&{osr8~ zvBdaT++n7ZKV;%^UqRnf$K)!B#`wq&qnSu7J{sr{EVgA|%SS<|@b|G5I5S2iLRB7O zXP^d96#lUR|GmUnBml_N77H0~Wk5$O@H;ns%do=!KH7&CvZ9=m*`IIMdt$$a{!6(R zqyZDb70yCpA~l%LP)c(W&e-@wNhT^EsP*HaZ5)c33hxm{%__eBCWaR`e{DLe_-}{c z3N6u;3kJK{8-XWcgo-G~(@xMm7cR+TR6>CoL?j*<@?%vi1Oj1Rt$x4yFL(0=9K26L zI7{~B<)t_cQW1i}rNT6Qp1kilRaR17ic)W3ML#q8Q>8O#u&o=CVT>?k1(FcP0}=t; z-2t>8BcZTFN1)(JGGsEISvpgNmrqPEEabPM)l<#%nP7$EeQ|THFN2YkbpImAe(;41 z18U(t`5;^cyI$BCh+K2iRQ88`2sLeqYG5mgbBiEdjk3>TdYBzN^WMjNyD7iR~9M<*1w`j?7ynXRtT^ zY~=oDal=(GLf?iO@VHkiqn<>MXVp7a?|Hh40%bWE($uT+C44Ix>;RwHX=}TMM;{(k z7CUvnffEprguA4$uY-#pU4sS&#C2D~FL4yV7Jq7D;);w8nVog@3D!fq z0^+f5L4kw_tlKCly8s@w;|79F?Bc=#>cMn|`M59UYnFwsb@*;&rC`D$Zz9x~Q||7y z|EsvbTGY^fSau~CWOAw?4@yuy z99T{Nt$C&gMyRMq149hcx2_1GDO(91Qj85|@Y#-51FA-oJ_C7eBxAH~15#6OA57^1 z625{1(44sCluM*sk|i@-_wwE4wyqa}1`F5qiOtr%Ww#0CNuTX20F33fpdIa@*F@kH z4er^Ptr~`F-msYxAH5S7@Y{Ybh`onbWMP>l3aVwY-Ofo@vX`?vqW|Bzsy0XpgmB8T zPARSCF-=tVoTX#!Y2CmKi7Pvzt@eX6K3Yd-KmP3M2ae<3%z-|^2$g}>4c1mQU6t!H zsNBHAkL|q_lzj$20NlCx7S+#wxc|#LNC2V&+PS8i+>njsw>pFhaA&(R(+RrNmGe^O z%T^VGKom%~1mcI)wfbYS7VW4~CtoCd6EXh1m&YI8XTM99#y&ym9#eNhD|}w=Xjp{iyz|(4fH^1M*}@ej?qc+JAIr=KCK(eWXELwer&Tg zT3YV?*k-NRuz!!O{ny0*eFwdt6TL764dxG}x$90R6<@T|L;^e82*k=*8_*c9! zL9bCQ-)c%g0XY{=D0hC3!wxK?*-8_mS^KMawh8HYrU{y=@rdk$BliK@K3e0;^VjbH z#=}#jf~5#KA1Fc)H1yJk<6yVc9Ds9WaWhXLJFWx(S#iHSDLXg@I1>zGnW>*^j}-D4 ztfTS-6aHZqyiG~IJLGQ|&8%mI4i=CUJOQL@L+Ipad!`$DQy_C)YPE*XtigR*)>L^ zMTDI!j%}qEFlnR*>idnb5PYd1Vrss6`u|DVf_V*hwQt{TJJuDtwX17}E zuUhm}6Hnw-?;e3ZM{xkV(Yz`hfUU1KI_q@>eX{8|Tm1?Y_?XFhu<-&eJE{16hnmYW z_s|Dswbfh#m#clf5tbu3n>H{gmBMRWGfW?e|7dTXZIsibSOt2AW9&jPj6!C{PcQ)! zIImTmy(S789;Z(ANcs4$MVSC`u%Tav;5E@HfF~NWxt|%2wPlS@m>ETSX^4 zdyNbAyH`cs1T-@29Hyu0^|-N=&@40D1I_UEJC~CZ%q9Tqfe`0^jSi0)BD5dS3##8J z=nxMaD7`;8Xa)|tLKd5Nb}y{6A}iUGII|Cr-URhYZzBWu^Gj=Wa%a z(_huhh@6U#;x68SC6k1eT2Lj4A2~BU7I@(WNxke zxYa%TCJ9u}u6`J7wn_mZqZ$95a3^Gu_kKWSz}MwQmsuSXW%5~_LNSrjD6ER8*%DU` z2`Z{rWjb0#J_INR`CZ<4qAlx%Q#G4Np1IgKpZcBHLJjXs8G@TFKEn0JNg}FxhrH&4 z9@V@PHtCi}k$8g#87gfp!1ZRmC`wNPSUkzF{Ocr2x&U03R%NU1cKtR_u$^Q-*kL&= zu)BGKbOwi28^tABRbEij)5G;kg1mw<$)edlz7#!p(12T)v~a@NW-kcG<^TW+-MD&B zRrDiH)7*(+u>t;j#dtFwAdQPh*iq0?uMUZ*uy zwMhW<@(JN_Ok5jKW` zAg;Y%cnQU|3v4wq2v{Z|0R8Jy15LV~{zwYO$^g0Md9v6L*TZ45bT8z8RnsyAU#1k8 zIAL(d@wEf26U)FAi#2zgRq{)q2rFize4tbUMxOxJ>bQaQH*&R(W-DmFZjViQAD#p? zGxAS6$S|-lzWrb9-1;yB^w8k0;1x{dw&+?PC$Jq)!Sn}WDCQ$rB2NpbO6Y+)d8e5N ztsLt5k=8ZWi#88D=t718hi4EigZ2>;hF!PDP!i|hpVV9oy=jnN0OHIk8HqYI{Y1U* z>0E9>IJxRamx|d&levj|nvxE^#JfWc0B}(Wzx(ciGC)f5S#!}~IF)(yQaLwV*?u12 znFxRA%~OXp5;Q2cH%a4Krk=K;sN8r@)o_!A#&4@KX^`$RgYB~Pg*CnQ4}!ErR>#w| z6tlp2b4u-Qj%Y5l3!f>5%@87VU8B#WPb9~LbdhNKJ`DiAd7TrNT~0KM+sIZvS!9vVQbWP-YNkc&DSQ>fr$Ke!B*bH8 z6d}Gm?j5%>oG5Crqk8cq{SaFgeBIhD+s^1pFmQ#px7;X9s6|qgjlH833Z4lvemVL) z4Dg0DMaB17lV(ywTVOc^TWHuGKM)tgk_a(MIzcM^mQGhI`P zhDqCSs%_%VIm&T26S12(rId7JA%z58GbPMD=da;SYYB#jySjKz&yK2cvP z(>7x*iKZo;;KY>)^lnL$&u$9p-)%p1hm@0tNLP{1%~ocO;G33vD#+Pd=+8p<3saH4PzpMq2B?{xYF{&A>t(c59r<6^opzHw#y({Ih6R&I2*UxTN zeRj$H00)xhloV)j7OYPm(tLInpKH!Pmz3Zf#&(}uA34vL3h-EVjlR38Zyi}UOlv&0 z8#f~4_youJ?yMJ=%Wyw4R@FwWFIS+ zeahatrq!yf-aB7?8Buc^o>p#5wcQZi5zc#LIcP4EiR>b&TX|`F(z0u>@U6vr*_EqI zM)SK;9N_yswz7{?e;4Pm?F#BV8-4YtwjzbQL7%@hx!kS?44=H*KA>wm%}MIPgtb1m z+AO<7HYx7jSI=rNw7zt1?{vp&P){+o&;d(na-?eG%HK-8rQ^V&$sC@Y*K1I{+z;z*xQo|0*ivcskcKP9&)KJyCe?z)x4TTjmg2GP<8s-y6&<1}j#n>Q8MIb9L zPJjCrh!J)z#6|or|YgtptsKq@iGVJ8(EQ-at zc(r>~h8>?TJGCEQm}-UwXK0I1!h>mBK9>&K&v8)?790uZJ@@t9pFOOye?hnFU@E3r zb(&4xDXR2Pk*lR^xm|iZjfq~Kk2XVE4{{cX4ApQsnoc3i1V1}m?74t&z-o4p$UKcz ztWbsYmyL_f_SJuCFRT_F?<0BMbJ>`}d#Rf~F6jp?J10NQ$MJuXtZCk=5F0`kqt*)J zx?en=X}(!D8F@6)I#UYWE-2wfS99B*)(^n3{|=verQ#79d-dZBxSjQzpUwezRtfc| zkFdkf4|r0SHyYO19#3bzc#HY-t5o+7D>t$l65OpFPSXB>c8|Eqpbo3Z@dx;XpQ4&W zt<(2?DoTlxkgB-o0DL(m7M+S?l} zRo7VjUU&iU`E207I?paI-FdKLZPkBqy|uKtlorM+?~k+X`B8$;9nSrnz`EU=r+Y9{ zz@|JyIdLmJ(@|P%biO4jAz&fyp^RW&yKH~F8V5_;l<`$vebHu=d$h<*z0U4hE7NxQ zYBn+0!$vw&-|6J#5X8;EQ2fyH+&7+P+uLekadp$2rU*>cLZ$mXACRfvvi=fBK9?7;e7BeVw9O}kt60?9tm%A!>O3tm{|vQGH-VGraJY75h`nja;AYXn z!^M0Z-Dz>V!Kqyk#D3GMc5^W;HaBlODSnZLmwz?TT~Qnt-48lY1K4Bd%EXVW-KmwW z2QZ7OMYRjmx+Nd_jf#&{Dz1?OY)DcG=4XC+OuaT!sxGS=+^OF;iosq-Uzzc{`9#_o zwh({Z<+NX2PK8V=RWEUAy`830rEwpw2Dz#`&*w1B4Rk2nOmpa3-6x=lh2PE~)#q;S zZ@*U)AzlK2jfR7$N(@IGUFSoSP1;@zPB`BDBClY6o>LdFR-=!K#1@G1%z$|NPN2(i z$8u%wjyV;SC?PE=`0AgrLVeDJhW3W&=d~Vja=4pSgc2Ij#x)GLsC5pccUFU>^={1J_X~Ikf zn+_(zlg#V=^gb-tx_9Oot?6=wpPbCddq!jtNHDQhZ+aagWv`fq;3;Zb61=B%i_Fg% zaPJ`bA}UWezJ>GMFjFknV6s#Ax}fqA`;z^r7#c48tnBuXlWun~;{u;!lNSZKeR|09 ztsT#12fB-sng7(&q@+ct%&$sxlhj#kYo*ymZ)Yg+eCcA;`Q7s^k6E_39C??$&?j$F z{2zih$IDlh>yWn(A*)x3-sU=jxZn!krB$^M4r~$>(W-~fiJVTJZa4<5j#rfpo&{BE z&2udr2KPOG-N@B(BzVjS(`(3`Lr z^Gj<{`D6GkV}$Ws1a|UUVb}f7OQ)T(@=~2u9HrH6HhWcZ;~mM?NgPkx&8p*x!``+j zr)uoL5yqsam%h;QL{5YQ#N)eru}SlbESt084a!zI?NEbmd4xpJp>sZ*Pg} zcu%WT#^Wvpre!(gnY?T_>#?1fmoDBHjOrEL@j=`CM8j=r=K1~p$vSD`{bI~1nNfg!8V7G=s79$}K^3Ldz-rx*A`ZHCEYhI&?*FQ4Djt3;iz zxx>;O)B7W%$;@|!0<%o>4GiDj@!I7QKf&1%9bLk#lSzQEyQ_hT;H#t*X!+`3Rx`bG z$L<;%9Mf_Bc)76}e@i}$CU^GfLX%)I5R1`}ymKlq{#>qUKdF$jIc>%Hfu{Z{PPMrq zERlQd6wLahdEd3Sz^fV83%yg4LsUaAQbHNIFLB#^VQ%v-fEzIia!fdt?T%oy+l9-vPYOrSc`HAfe_&`BNPh_+qrM;S1svx5W-c3RYw>t`zSKP^ z-rI$PlIn{kWJH*B*9{7*pfNXjUjPW1o!`7wr)uqypZVda_V)r7Qb$&D`zE5@lIdJ| z=T`cx#z*UG(k#AOlUa!}66{uL$F1=Iq9loAE^%Q5Vck=K4{3uh(jMWKa6U*j;+m(p zaLnB99)97GH^dPz5FLVi&Pe(l1=jGyQm)`TAK#8Jz)_&1rxU3XhkM4mLlzH?y8E>N z<;OG#-5nxq^Y*w}#9-qfNVW?DGs};ODRx20Lh0)uRP0r+3^hnkTHGk-H%w(->O zb_8#g_u?@q6U-X&9Rk2>mxgf z&i0tX?WZUKun^mpK4mzx$ZQAr^ejz3$R6q26N@L!!Mq76opiB19$~ES^j^kRg4g9g zkN5?nJHIpIeQK2V#LW{iy!ZTpApOvLw#nJdh7`FVM*g^eKqsz9pa@;SykaRED6(7R zNwXfW=KAy6Uhqwt<%1AR#LxGBfje$5FUR4x+rCczvW8!s+#jClH#cG-=zjt`M(MYC z;rAp$5WtZs1qZG|E!R4`Qg82ta|)rYHMleUE9f4QIuv3ch=uf|*RsDv_vd<4E}xB=IvhaVw( zDZ|O=G7;Man+^l;T5l+$E@D18ta(8>$7N^84=S+z=mc!`M`;AyuxL{8nCx&a(kyC) z9$@z)#iBvf%1U66r151g#HGIHe*;U`S#STl4CsI$dz_mwTc~^QcPiuCcTye7yzn+$ zdOSJ1Sur&WoB53eUkcK$-fhe7e0BgETbtWM?X1Ia`rva60Lj&04~sCPq|Gcapw){@ zX3n=ROzC|tuc(p3$*7KpNMbX@sly@2SE>()>l~BpLKI&e2H)~0jG8BFTXY1WRznGC zuQ+%=iRTG;o>HCV8FG+czu?fy2H}q?Dx1(k=>e*oNT~#kAA`nvyd+pYaR5&CrIrCt zG<>zZ@5*lZo2G{Ip; zK)LZwZVnr+0(2(0dK@E6p;*lJEB?RYsg-3+GZC{4mD9&nFjqAR@E!TVF?imr`1X(^ zVg6L8A(iFFk%LDN(5(s8pwfMHF>htSP>Knm#!}3^n+NJj38GOKkAKNhX|=rv=0M} z(KyT+bvt}DJ1NcimwW3p$-unM;4iXp2BzyxU$E~_^bsp%%mTF^lGz3kyx=XF7A*$E zMoeIJs>+?67z9mxDi*4ZdkeA#rANidFOA{KCkM;azb;%$88jNMgowp;p(~}hCE9Xm zOZvTsO4x6y=exbGnD-b`@Nj@tAKkeyjy`ndz(b12%NJQ-kmEuA)eP=P{4k%}YN%n7 z8#apu0*mt(yx?(L?*@rIilj)YsCBZY_Ls?dc#!D8ANoK%^0n1(f8u)+3L)YNu>`$U zKm>D&Q*IE9CWQz>v){|NPaOw-!2u&hekrhd0{)KHN;BOJQcz~ybL=QLTP2;c)-+*n zB_pAJosb~u-xs7C@~yW+;bGq> zU0fXGLw8oIH=}@t60?aqHsESEfRLB38;k$UM6pl-NZ1W0*LHE7&>BOLkayL4hjX9R zh2XvDz&Q60RNlxjpNiRWDBS7bRCOgKsY50bqlgcy znk4I;HN+9nV9qF{e4%C{_>C|uoZ+df1oPs4m1JNJ;FsjKpp8YfKwpfi$!a+kernry zjP3kU>+&oGS4K#iG$BZjL|MF;x&p8oZ%*=HM_TdMmDfTzN^Q;&UE7XQ*i$qe?zm}# z4-%n=q)N>>ml2x!0RZ^vx`n$;nJe-Y3)qh|AufTZao#sk$zRPDsE=ue%#S8%5L9)5 z9ZD8xd!Rq*kxtv}a$`>wM1^orq2qGuN^L;o=%tX4NO8*buvB@zs}s&r*pQ1v4B^Ft zDDYObwNSp0l&<+P%4GTbU{T@Dp&lsRp+!+zfQtiV`Q8{w*fK3}1bL`0?xYmrtPBH& zSfFiBJP_}(yf{J#oR|l^9D1!0oHzXawURK!dQ%5wEXEu$I&+)>8Q6P2qpD+6m`zn` zQ|^&rijRco9fgQ|tEv|$i#0(t<}1D|fn1YC0PKF6?7dURsCQuIc$dIvPr+Jy0B(c> zz?xS*0CnQ_i2xOF

    q;x3p&O`#3H_805PaHz5dhQrYZ?ADgOyp5K8N^*!9ftf~>k z3vAO6aA;l)CaVoP87V1zC#Uk(ie_J>%MS$8;r8>ZbhD~iC>W~C4J){1yB2NhZ#n!r ztTuZF>Om<7l)K%Sup?YYqtO5;nHZ35 zwj0YhbwEAP!~_#pgNo@GQjs13Yrf4AtFlb$Snqz?HNAfh!g@~?1u$kGN`Va;0)irz zk^#TXc}s*JA49lkKRo0yqWfIatA zrA12jPqWNkJclL&oKkO#RvZu|a@KPj*jsg?tqo<3>$SHCqT&3_g3eV`M>O>sI#dU) z%%j>2{@n3TiA;Q2Ol}^DSL?A51Kw>lW^v4jY2B4DgWfFZyx@uaZ#4Qwp!*UT7)E>{ zqQpE6P)XwreqX(_;8S^oD0}*(tyRZ+=>nR&sdgX`;GyH6FK!kdEN&KZ3Hn0_xTo5f zY?tJ8jLr|6C#^5X%E$7jK&r$M4PYndSF7z33dVHZ_}R(%zyR4=C{m#jXE>!(`ur^k z!J-d|EcEnHzkebpO>e{-680mD1^)z2<>wBpri(DnojFAKkz}%TS3V|-mBXQ+M1Kd6 ziAB?na;Xi7wnPsWy{>e4t=&f_$k%b_Hod3uI@u_3&iY7CELPa2K?!)@oWUf^ls!p& z*F~%Q(Le@#Fl2HuaQ%mJC(;_cNk9t|!i;5qj{13GUAN6rP6C{P-ZhDEE-eVT77Q)0 z$U1PDbW*z=Nj3V|$*aaT!=?EqQX(g@_MV^K-+Y)I1dghHH6w^)l~Q>dxaN-py70l! zYs{3EHVV%-*d3@Px4lJ5H>`2FF~0+FxwGWY)aN6G;iF!US?ts-n$8-oFNgYnx~7Z! ze88F+gr#fwVNO)i>`dy8t0`b$6k`>G+`@g~_;H6Wfv)xuq>sUQZ~t3i+U21(@wi02 zaSFpH93U!`6<6r0ejo@C*dow5+vqO2v)kWl++k+`jU*q;uPD=@OdKuNMoXl!^@m_Y z^1alZv`n}5v7ENO)se6}UaF_8laD-9d|~j{L}big#otJHE1NcCQsd@95{>gf2!;#@ z4Bu;lFv8`>X-Y@x{;D0oj#VX6xoS(g_Jm@UNn_AA@!=yc29O1 z^1n>tOVV&d_{q{7?@QXDawO4EScX|?*Sy5Xg9{JyIxrywFM^8-K{yEV+*JUZw5 z+4<$|&7l7Wtfi#Eh<1J;jYe9cmzc(?H2jo6uHpB?WpbEVl+oh*XO$M$dNrr%m){Nt z6q33u24!{!OeNcQcFT}Jp!?HdVUWpuDSy?V^!)qaXn%j~raumdjVADgoA+-*UnQg&kAEir3IwQ4uripoVa{&x%feKsb?!>4 z!wNy|G80=zq1Dy?^!Y7Hct4i3Ks8VvsHYr?`4yravngxi8C3Jq=S%_-hRrH-(W7)` z{`>`m;I!`dF$S~)mDb69w-uSDm#E>1kFTh4=5bybl+mm=h(5dLp6N^CIwIXJz9y~8 z+*hyDPkC%Xb&H9Gt#I$dMIR6uCPG<3^DNghaHg1_-l2N@MM>oKa+et_a*LN&pClEQMj{b4j}E`pg)j_6|3#on&|!`k zvK8nh?7RKWqS5XEy$MF_iEUev)qd`a^#)9*9qP_0Y@oU8VIA6jzO^ywFxn)PUa2+iGXKW^SU$t{7)KksV3#mJ(DxLYCu0)^=VF6;hQ{$}!1uW373oYsdI_r29CcI-m)-1u}xS6|bWD&?Lf zX3{;`=DnWe?O*F;f=9Iur7LL$Cz%8_p{@4|g(Yrlj|0sv*Sg|7C_F4XyE;{d&j4s= z1HE#!b8OS)L~x0odE!lIz2ri*2}nVX(&_cpDe>niU?SeUeuyJIFXG`wHsPXfq3s31 zjU)jxc5e%_E}n0XI`QqN=g*)f7mLibN*f2S=L8qEP?11_A2bzqtZP57Ct&GdA@X$R z6Ae-*URs{t{g%q)8=|GFzb$186dno+dp`&6eB*Hv1$Y*$*8I_k9#6*5Tc-V4yOSzIdy zY*n2ZJB8h>Eb`Us^u=G|ST~gjsdfw$p>3SAF9)m6!{69S+09$|!&o-@qU>c4uV3HQ zRKyf;QU3m{QGuhrcdN#3Z->C1_s001lfuK4{&Bv>Ox0)M9r=`679@8 z>f=K@(i@KbU_I|6%2Am%CS^aS8lmc};k~>72vznokk>=Yhfjc&3Sd^~2SKR=j^Xz6 z!!y~(G>^=X2m7KQu(^tII;Wl)F6V)f^gr6(7&%K#S_(8dAnwkUXLH;f+R(e*+unVL z{PNQQmWl(~YGk?1>uq%}C3p_%EIv5*%M$GQcrPB{?znF_myl+8Z8m*#^ux7m1M7AZ z5Sk9Sp&KDQT0ODE;C>cHs{(cAtCpF}mJ~Nf2#2!Cmo2kTuXF;Uh?S-zAmjgMa+L)# zmX0}}7uJHH(>|*W=jG>%Kt=OR&3l8pUiY`SLEfw6NvONjmx)uL6lIXB=8(UX;@TJL zZz}tlQ&qY>*e7zj#1*Nw0`7<=8SuDiuuqf<1;l`NAX2PSUHwrGB#|0@Jni4tgT-VX zQLI`^xn5on7N*u{Ph&Up>&7X-+(x9f35VUjZ~tqdUUU$3D8kH}EW_cXuUAmoMm53T zewI+I{Pu(WsC07CV3))|_dhuVdHI?1+r^7|hP#R}R~ooTpaB}WH}eHa2J#`n#0sIlqOeRWj4qQ*e{ z=;UlulbRb7x4VX)xt|9p8DZh}X!Qy8{qVQ@tt6w!uu!<8&CRu-=JR^ihsv44vbnN3 zKwtj#i4ySS(~9D$z(Ve`26kBGBP4mwo>71t(a@*SK=ZQLU*d*Lcjyt1g&)T1^CP>CwjbUXo)Qaya}=d4j?nPi zD^tQI`q%FHLk0dJoh1nRO{vzpyn~aVJ&2ww<@)k4xfBzWB2WV^|FWET3 zy}DStvw^GgTNmy+?fup2SnP$G-;5=y{PA>}jmqw+m2&PWHTYRv_q$64k&G5fWLY5? z|0u@4HRK-`di=n2&Rd4v#n@huFDXiqkGjzlXluw*;gEksI3W|pbuQc5fxuBf+Hj&&-20cDD{NB8T=84mG zVFcwatXr-uv2L?|h!Ju{SQEitLIm6!5nM0zM*IF0rwiTwbTPfjT=5ENw;3}fIx2;d z7>vrIO&2!1UHlJNj4=(b`#R}sPVPM;d;ae#vq>RJg`$L}_A;_RJ@_JgU`C(@Q^Ll> z3~1Gmc+J-c%plU0{Mn*oKHn}+IT6T@8?eFned4%OH})eK?8Exk#CjnkDplGS58dn3 zd{3emYc3w@d34d(*IVv8j#|$?d}*- zf_PS|q{w<-g9h5_iW`=Kvg`EYtK}lX-Kc~!=f0lzwq*Hd?jrmlf`Wo{CrVofl22NQ zHr;QzC>T6%)(JP+e?5Ry|M=#W{V-0DpbJApcHaw5;c zIk$fyP1H$e*Dc;>YBz+hBEYe}Lq27HUD8UKjEiG65HQm zb9kTbuQ`zyYb>I%gjXpKW=d!8AR!^Gk6zRs0D5prp-`Sn#I9D4Jm<>8V z5+Hy=slb{X^qy{5&_-=jIT*x3fvl+vKbA-DeNp3W;X{_bwDhkgl{Cm3?q?G@bumdtOZ5!8-@Bd0d~TMg-agzQ7|G0RA~>;F z5JJ0h+83EFmGMeouvQE;`4VuoK8>);6xy3%&>Kp1B_u>*0FJDF4_n+F_5N%LDZ|HN zIH%)^>f~Q`(YGU9yvvsS>3fD8d7p69>#pET##@Xbn`Fw zrp4GC4#~xnu~8>Ypt<|#)UWd%xomR3C$LC!z1$Zj;N4+pKK6&Z%-ImwYRzxF;{< z6T#PlS*i4W0=*o!$(rGIfOtTsR|ky>cUOfbcGCez3SHkn*jK2IO1ykboS2c11la#B zFche{j^Z~blA~^gII2t`_yKFg%Zs?g{LVtp*F(xqhov@z;E5Sa#gYc>t-0m?+XFd; zTL+2-*dPBfPrB${cd#D^%p8_~3pN=t94u$&rMM4}?@j#Hkwajro-e#k0 zbE~1SBx;XAf8Ud|^?TaZi~y*;(sKS>&-$YEnWk8^=CUZh1TvONK1wG5mjuuK{%2ap zB}VIk4QBHWgLrHJRu^#OxgN9XUYQIhqZ*s-WXJ?4RrOkG6vtA3JO{O(c!>pP@s4X4 zW4v`DhPiS{+L_5BhG}Ad&S$5(-i&kHylGi?o!CJS(x}Vf^2v5(y1_SIEolLab18qe zb^n%)zB?G7PJZWDqHA2rLFyKc*J`&An!zBrJwtH+ z(`a#Z7Z?bEZT^XFRMsNd$mOO1N&dNB|<950Ztcp&oa2gOoB z9-x^6xpw$|V-L&S$`n7%P%Ns4YZcWDRYnWiBY3Vk<--SCK>go%X2X^JWZOK~oYkOm z2*ub`rbeN zcc}-bksOLCggdD_py{}c#@l5w7y8mfd*s_;i`S|gVB35xV-OeTr=)}(iKvsMhYnb_ z#OgFXuH?-JyEqJ3#V(rn{s?7?0s7uteK>yhjJM4YNtDE)rhbI^1v-Y|^$#tsJzL84Pc@jexuVbzF ztFt0&uu~5?XKAunEo*?04^f`B+$a`cf3#e%%K;rTtLavZJyrK}N{TNVBiX^@;8?gVh-UI+@~Q8$OnCZn!PH>*@uH|G&db4eW6jVFg} z<0D>GR9|?(Nrm8ZJbj`-P|T&^Vj5jL(65YO zzy?vZ`ivFed)eL`<&KswR2Rcv<5A?BQRCJi5z^$M>a2 z9};3D-lp<6rW8YzB)`}-R{_3TqI#aZCJTF+=1He%rsZ`CtMyPs<~25{M4D+HdzFPj z9(xVKJI=)OMGFE0tc@am9YoY8QxuO>>f5f0lGMhof(~muB=X-%B9UXl!F$n}z)5dE zpXH~28*t!yUi8PKZ~Aubc3p={g;Ocu|s^A&a`MWia8O{W#D{kzHL zaqe#L!OGmSRJMnR9JOb8nxuWPlo{V8B*IMR>ZILojhfP~wVIv9e4MY$Aco=DL>6kz z3P(axh|(!bn+{6rg`hGi$jK2?>(PUQQF1r%U9i^l=nU z@w_&I{1Vz1Pnw7<@-L*a=UYpf6~>rpT%dL1w4*r>c9IkM;MA(Ln};-O6cmaUi$+OO zxICPu&g`UlB`r0yvL7)g8bsBN#`7h5eg;T`l|}p~n#YE)Bwb2iKaMf6xUD5ptU9#? z$b9?o<-;;C&Haz6rVA9N4Nle{n;E8^e05r1B+^{=1g+B218V+wVTEjGJ67YdA9vP= z%$S|vB>b z7R2HO^n4-t$z#>U#}P%S71d^-#Ekl$!IXDUo9%$vBHqcPWE@PaM^Y32V9L!3jxS60 zdy#x`1>Ek83KW}BHh9+5Z|NMC<#O78W)D!Vzc{@zzZp{2T`|=^$0c8>JzFpAS?~FM z6x|+(4gSgu9n=fY`R(215m`9*MOD*d&q2eJhy1GJJMmw_H^((nfzXoyH%EmvII60F z2eXAB%3Q4jtGn}UJ6|1BWv-K=);>HNAC15O+r1>Ys*kBIX^-2NlhF%g?1S*&-Dt4Q z`D4*z!QXd4vgAXLUnK_M2;e0W>P1LLH7KL?=|sP!=SGLBI`loPN>1W!U740(X@Z=AtGznl7@tUazr(`P;G$) zCr58IP|B9^bH0SraSf?tC0TyT{zOX{Cnrn9gD^Vpd*rLmq>Cn9FkGM@_>$-kJq*;v z#_(`xYgM&SAPZ$j-{}D|_XrhZ?3~7`8DNeE^Vl@J#PQ;~KD zvxB9wc?&Ck37R+N%N%+0l`aT0s97Ckny%*Q%7M>_r@lhq?t~Hfuc}9~Fd?a&_?fC; zDuj76ZC^1GCTmR?Fs7g|cWI3~ZSBOLz9W!5pH59fz;r06GACHy<%<550(;ftZITdc zR&}P`)^|=DboV}t=Z0q}ENh-`FYCi|yNM*Zw4%J*zG%#3x{aZX&+GHFKC8rB8TYy( zi=crKq4zwv2Kk;v4IDbZdX)EZRJEFZoY(PcfecXTPrGDy=KD=`yK+TR8ezNcW$;om z+1~_zmvBu};^lLp07NURS1G zhQt7A5*MQ3Hv{CV6m{y%OIhbHjpc@sq6phbQYcYS7|!-hA_M<ZAT`#5z}cJpU2ki+A|*`guk>ly zSh1A))^|~m?0OO@+JHub0!5#ChF7NJAi)JXzL428Qk9NPBRGzv*{wJLn%5 z065b~Zu^d=ck?Wa8>#7$yua|ZW~`(0C|)#rYhaKzI_!wOZbnBxf~V030e%HS#?9sC zXP=Eee#d2-dw?*spV^|o^|om*Bh0TP9_n(SIIlplPjfU+Dq-X5G`i2XxOtRZl8-JD zQF~4FZR58W+TveEJ_}LV&-}_V{OPHxUnkOKq3|fhV&m7tDWlFGR>f_u7`x^^_fSc2 z%A8x*+qC?8oKO3gCTx3wK&RC>q(Ej9Mj$}4qd;Z*U6+^4Xigod%i%JD-3Zd%qyss zHdDOnDyHDjmlH2#E%x2_SNoy|3dKh*r4SrQsf&#dm$om7-G!V$HDfG9h>~FsPvls{ z+O+6v68>SD!0EaC$!mShm`hMlP)1IU+|SQ%KSSf6O#CSvjO%<}Hd+D0`=_$^r&BHl zYPv`#Y!?oe|sq}(;iqu2IUeMsG@#2*i4YorgX7?y$5>s&a z*b`CwZyI9Df%@ui8X8U%np~2a7w6U_%*=|AoE>DsmLXnu86PIxD=y_`9tA$b=$!eC z$^D8M=&y_y7~0ubf089d*8Yr0{>9(2Q|XKTe>20nuwZnfd_lhR=kF}jh$8^LG-$wI z56~mM<^vLoh5JxPbyBI4pN^}c7~KOuA2PiQLDP|_zT@2z|N53I{a-62;}F_681OL$ z!#L9gUe)wGk7xUL*NTBt#vGp%NpzwSt=l1XmJ#X7e-D7C0mU+nfA@RdLlcYppDE2L zlnkka`>$g}o(7mBl$XiH3uRxo`OiB)E#coy!Y#OBAffuqv6qiecJrN z;2-(jKRon&&tl&-1n^UdO$7yyBEhEYKH~5WN6?V-zgOVj*NI}DxIjW(690g_(1@*iUO`!D~zQ0DXG%M3?XvCz9(XZ7Ra+e*&VRjJZ>@7Ll~&4T!^ z?Cf7&tq2B~Ij021eIJy~gB39f_l|B7b0!{!&G-N7#(#d*lLUsNH_EY(B8&D^=c-ZS z>Uy%86*g?)_le=Z@%ujxJwEH}X>x$hg!2~-zXw@MB?7LEk4^f^KDmAepVrh4c6l;n=!wntW-`JSGs{dYye+Fkf_sHZ+mCLxU z(*^Q}j3|Iid4Y2xA8Ob5EX7RjI0)6SJ@MV}>NWDerB@N}c@f|YLU@=L^JO3ds*qs3 zo&;@&C}6m2hSgqAaa(Fo^JQ9j)O@B&!G!;g*LlDnGt*9hhw_NRppIpi{eqt7f&~P1 zc}Lh;7{SXZQ!ApI&UWoe|9^`#1|97AJhQ5=V%3(6C-d_M1w>pk=v-bZRq!QiwVI~8 zzso1UkOPG>G?rZ(9Y^D)?UP_$msVgr&-(EihTmC@7AJBa6EM6<-EJFE*}rA_N0|-x60qK__R6_nbeX|G4(~?EhK?P)D#Im!Gap;77OHN0CFjQ2l?o|h zYR;O&#DCVvw{IEWw!hhboZ}NI<->w{okVG9mSz~~(8aLqHf`yd*B$R)`oG; z-wSiG#w>a@S3LR-7QGKBw1B*!QLTyb0YXa5ucqWswMIns_4QUaprSh9tTvI!t$|vp zPHLt^m5d#T=$rww3h>(Jn8edgeB&e|%d_<$tI+Cvr(C@dl;v+wZ81B-+Ld5*`lK_0 zotVu9#BPy5PX2(E(PBj{iP88MD_TJ9g%?mJ8x3@L^b=mqH|YhNuGXj*$Q2WQEl`X{ zFYqYh2ZD%H@u;+wYLj?epS@2e)gLHR;g3?`s zbVx|U00NRCsf2V(NrQArOE;2L94|vyity!+kIJ5VjYoC1{=W*S;Q<`8f z<80%%rY<(34Mpo^<3IqHoiNiVeI2|>(}vyupU!)DIQmv+a1FOZ1~^rHqAh zgtx3HXCSq974*|LY7NvMQgERD0`ak&cK9+y)?4GH2h&^SeQ%8X9JH<`swd>i4I8(; z$|c0a0=$2WX?+qxB4P{5cH1me9XVMDYAlji*_*1A7QR`*^U#Q5O(o-TE=>12nR-jD zu=w$_QVO-Q&|zeW8Z})BfN?t*x<1`<7W5Ns_PTAuwzyIj@z5;SuE+tV`RPW=pBuTX zhx^)A-Zy!1Y)8jd-teNk`>$^N4pDr3d~t^MK3B$hwqk?G za>|YTrCdzw2)(}4wb_M*Atwk2jqURu4Yk8blNE zv)kOpwfZrBzP$1B0Ja_)V{<{@UZ;BkENMbjOlhxp(%)&G$_Y|G!OECzEdpjBTrj*R zLDIGEei-cnAHpKF$yO5U6|Y3}D0!^`N2|iU z%K^aSy}$|qknjV!qj2)K`zRp{X==2BHfN3kRbFm3<0UETPa%X7?CxKqZqKcVPj_lR z6>yw>V{n`EtrulHZrV1{XPXJ98x!ApXJ96fL8O(0~(sw(I;pnCB(?Ngj zvq8JEIJrb74;M1G8&jYnQV`5vKuPSjEGl{AbehajBQsekjV<8O4zek#G1Dqk5%W?h z*V0R6xH^bvI2)1wG=@sylLsB*8sw+hT%Pm3+yTcqo}n?wlxGUPZJOpZG;k0=xg4`C zJ^~W!o>xW6lWo0y*n>Y}b+I6(4PcF@B;nQ*mlzQW7^oy5S65;{b{HB1 z^h?k9-zu`o!{uskR2u_Z`g9{5YCTl0AxvQBdALxDy2seK;6&KR53^*(o4- z)pnwS#7-l!RCBgqfKOzL9)QXXott$=uaPudK*?ER9TU^nfmK&he|_r(3rK!sS@1 zptsL__a~9pgKpLJd=|f3Z|}V^WD1HF-hoK9(N_qi{@lr``N-*uCdddWHHhu zFUkK}X*jfmbpJGM?QB5|DgwKyg2m`pV6F5lU}G?YA3VQ0b7 z<)w$8$8$WSZqL@^t##!*_eCJ3L_3QVJ@9>TIMx2ahaZfwD5RAam~MWlX}-ZbnWPw@ z2$!iUMLUX+HT_6`cB3j3&Q5||up;ZAF2aSMIg?{y{|2auK0p!`Xz=sX`hgi25JhGC zoW<^YVGtKQ)pk2cj8@j6x|cTdYKwb|$NGKdv+&BnK?L%+?gy^@98Me|8%gDYj3%Jj z6&~z;z7R@|AKJBL2EY!C11CSKT*h@u8&pj+iqwaf*v8pa#|M1dzWyy8bzt=__mFXQ z!_>cn$$(KDf9=U^Ujv;+*NhTfva3BRneVyrYoV>}urB*SdUf$LB?aI#b(B|v2!0w zJwBu^00ZB_gMTH?K>l1N{kb*EoFA#!Bo_+y;A^7xp2Nh@)Iu%OhC!vym#>Grul z4TRR$N{0sJr|U)CLo<}6bOM5BJgYantd+y{V8h_#+D}8_VsLs4&p#h)woLhjrT&nS z@NzHeVD4R==)v|_`LNnY6AZC8>PYeGs9=>#<_akt{Sn<&LjKL8 z>iX@%0V{>IBz@;?%vcV2$1G0zr zE0|yNQI`!s$}H8FoHS7gCOt{j8huH0TcXv%+1?)YG1Ybx)8Dnx+%E<0tv6Ar$jCa_ zP!^(G*sSgAD&)=2IfXu}xac5`>;yw6iE40zCPS!UC5#oi_-769&sXxhzSu*FZQ=f+-r5z(f<24OzdFAv@&TFPk%+dz0a)GD^;EG zx#8kTzye38brkd8sVh)o;74wIVOt#bQvStMRG>1Dn=;-*m^IZWQ3qhsp?Qreb#8m) z0t@~Nnol0tIwK@$7Y;m9Z*om>cBMjY-PkfrdOJo20p(CUpQ%wSdW?i$UeO#hWTRJW z?=(lB&^hHa0BQ~mPPf(j>>DJ6B*7EnF!^2#{N*fy?Q>OMdYBT~linX)_u|Q4b&`wJ zd^XGrY@=knx8_%Q0B*c`?ic^aR{s50FPxb=zcgM&a-S=wOMN+{#KjXGhV#kqWKRP1 zOp1zFXG6EI7P~0=054B4Omr0^vdb@UvXLvlQvG0X~(T&=bO`=4Y`9vbLHIR0j|(*gp?Y~g9$s`_#m}o z6b}(XJ)=c5D+EE7r{vDyccxPS4WD=szfd&&idCHkS`GKb_^i~oQ>MWGdMMEt>1L}WVjqEYJ)WLaN zJ8uq*;dpL5XUe~?5xjw?%ultZJ~W?^E8VB}{BvpJeJb>u{pA>(9jQ$350NASocU)& z!?DDv&6=wmcH1XU_C}YsV#R_+b;*lz)Ys)b?vtX-)UUH?XV<#7EjxZZ$ZYiLC;BK} zs*Kom^71S8oreDW`YsNq#FS!gLyPYTeG6JMbCSa~r;I14se8$x_Zo+;&ib=REuA=N zyX_mZ*w;&so~KNR9E8%W%( z7e&eeiO?l-l+D>wx^ekHurP#O<7JqSkj-DqLMftA^I}Zyau{3i>OG5^72^_1=V!wg zvfV^>6Ge1@EGCL=Mz$1Wc}R8oUY0&PZIx$}t#{qY10YAPB8zC=gf|>k(cWCHCEl0c z+!i~iPWKuv%jPZwwZrswMi0}s@Seu;l_Av#Ano)raUN@E=~Eeu=|m|-gL^KIc3EGY z?y6?Tf)q4oj9M-2lFs}kK-}j zSqM1n)26+!d*33aIFgS)8J~T!sBycF&wGi%-nN>-OA2q9(*Th&^;X3P6b?Uvlg(=^ z%t`=^U!r`X3`kjluUG{ZsGp}zKybguP0kzI!o{Adas~j@`?v;$tlUtsYsbUkk(fcT z57hnd*^6YBXWqJqDgjyD-NXv{@HnN9?T{D=~KA=%K-ZhjG5c*W-J?^ao3 z)Q_kczAn)?cG?v5Jha{7t%*xp;2zeku^xt?ko(pFQ(E~oNz!;exyK!x|Ei1n;j&MM zh)5Iqr~|YaRQSl|OkM>383WBbVRQkX>J^#{*tm2;1Va9JYY_pG!xrYI7OzydYQ$HPbd*h~#&1WCeQL|3M^z=B2 zZ@y$ksIW#{ zfzV=(PgVl$x{!y!8H{lK89{?Qp|tz0=!9q-)<`Gp1my)}NR`rwsI%!GU%IGC>0C!ymx6=qUZO={xnx-r?eHO_Wnq)@E$#H!@`T>iVk1#hcJ5J(iVvS9v)r z(Vd);sEWK!V2b42;%b*pOw`9~KS{}D_2omcM!DfPrL=Z{rb6NA$@V=@y_pnMTrXEt zzs03(2D$hWHr@JXrNBfOUn*kzUT(sKz2HfKIQaQwwwR!z_N#v?lXuZU^DCtEXbQdB zXTv0k!|$>Uh_9Jq*$EA>zgBEs*qJurq0{^jMRLyceRZi41CdB!ZWL6K&K&W9*9drbaoCmy+bkwMQ$`H!QuVidB9- zzKPwgn6OS;d7eNhJ9jkOz(>TZ6$6Jma zy@{$>1|tw}E2@zSj{X@5D6hxj1i)+6qqo;!W<`VW;e0hT;~nk*C2?{W8&jx)An)QE zBS`1McGnbnTpUiyr^3SSl#C=2K_=&Q^ul>NU2=(Un&?97&AeO&vZy{svkzMp^#jzM;N-$*b|1 z=Y4>X78O@n&*_5~Cm*wq7i(-^Js;&~JD-_f`QUdYZs`8~?c_ZDSUoS10km-A{`T7Ncf(yFp#>X8wC5#d+Z6_KeEZnSXZFD z&2XC^yH4}2a>JlS*K?@$TLmyZH{XzinX)UTDON;FOI7x!oS9U;Lg+< z5spy}@Qf6?ZN)eU@SMo70;h87uNS*rmvNYF`*T^(6q<-z-TxJ};Eyzt09W;p2LEw2 zv$eLELEmk>d{AkZzjas;N(u5@FJA;)c`N#TcgBWWBY|l42Ovtw-n-3`W@+_UoXNiO zhMd8PCkn{@%~L^%OqvPz9`FG;m9<{Ly&KaI3tGoE>pe>KDM5l1xRKTD-W3URc+eg` z@Lq|-G1TAJ_fn2(3r(c(J&GfJ+Zn*x^wwk&%lpJ=U}PqGQL#?NW6;2_?cNLRJ>iii zpC>kj?KCSiq8I}X?dMUQj~dTR$uK)-Ul}Q@&T183#M3K}O9E^HsS29kU3aF@2Bb@J za}>+9GULIFw`a@Pdj1ltG~;PsJpW3$7LijFsODE3&;4(0k`O_ z(;C9$qGY~KGAaLpsQ9Zlq4XS}j^Ra>gy<1DqX)wm)N&`=rh=d$d1~yK&xAs>>wv-G zcX|`J=oQ-Cxj>&HFS?nMuA8d&E`+87EaRJb-%CZm1}SdG=D*52tNw^s`$aj23`hgC z&YIzF5v7#da7tCX9@XZU&@*J4E-7fuQqaZ!LvXG*8Aez>SFms zAF1zbOOjCb%_D=^@EyU>D!u3xs?>rA;=q1%STJfH~r ztfT+mtHFiP8OC}PE}Iu4Y8`uN$cSW4b7j-8DU9FX64SWQso?W+kQqqFY(dTkEQ{7>Ui+m-``pw|Y%#bDk8wR}}>6ZI=PYVXQ^sV;@6)API?G+RBXvZG^KffK?Y0 zQK>j*ZO2O<-i67Ho+tS3b&{1dG5nC{F(F+PonK)-m)2u=kG5vtRi@{i`2of1i>uE! z*B5lNS~|S#t_ON!N#AS7bY2^_x&WoYqw@smLN0zYv?U7xSK)|Xy-fBQQaU*_)ID%P#Lzy>;9X7p?qr3y^sCZ$H7!e#HLo+-l3B9Pq63ms&~Z@b?e-h= z8$GKDR=|vi0S2i&4oq~%MTlNV5>sV$G?ZxV((YJGq_VZyjKl7`bB!}MnNgbMc@`GO z>93=|mR>VehcE+^h&fzy3?*i)$7Rccil3!dUDL1+|JTy{`v8JQREqvlkN5dg5j%$o zk%=X%nTCdgr-nPaeI3#QZx?_*My`lbX>WOs$utOhdHMjxPDv1g21UL^AEjO?+UYvp z8Eb?5MFjBQUg0lSpwvNHFgL}V3w|<+BjK@nSfx$$5T7KDouU2RmvV>+$wQm*re}IS z8oQ|i0+X(!aAhO=sZ)*h&eTq+g#Len7JhA7-?gp-wrP!Bn^UK@MCs+?11nSCsy@8# zb+R}7l%bYP0D(=lluAOXaVJL{!h&t7NcUeRSl4+RT2^X$_I>baL;A(j{HG)Tcb@I< zuf{lAQbQ&l!KvgRmHUCa*k1yKBcC!{Be%c7X|t&Z8>%zjv=hY~m55|7Y*S>8X=N{O zZS-=TSxAqtvf}(#0Q*z&+Cd90<8t`+L1*h}XWGz6VS?uUp^~bCG*79z8Vl}nQ{g6s zqDxIi=QJTvUG`FD{l`&yR*o1S4wz=EhM$o)g}TDu^=yCtiiLx>R$kqvq~j;R)=hk? z2DR1tz9ergCc_LHDoG>2JVr<^?Xnar5nA**+2zpqcs)tq@~1@*rAAr^U2~S2DQQ4s zRfbrrCdpXWkUtn~mB@_W@{;f$Kcw-pZ&N70WppL_oj z0{;y%`0IHcQ7_=5!32o!$r&L|C!DZzORs&@|7y|+q$;dhUsNKgOkqEm)G?N3JtHNj zbFdPeYup}LTgNo~%Le^(Mu6F9F%_4a!CD!n7Xwp#IN0j1X>nA%PoANx;hsXV>%)p4 zg2-9_>HcYRORQxdN7g0y%01=7Y zBlR5ESjzAR{ZA(rnt&qcI^C;t*vuXYsL}~tSX!Bm2xjdDQo*X0Cxqhz=7GN&j-M36 z6g*ky6l9O(j;D(N8_o_~$0xa#tFNU+Y@8@-F61AtwBk z@|5bI>_u6s1kozMN!motw^h4~8la8|qDJ()`t47*`LhZ)fcSZ6t>uT3`!&s2u~5>- z((4VP3@rrk@?#iaCb59Nsp@|jt9!1y9~7Vf{=v^jXb4T>qrx}L<14;i9$@W`475+m z`lBj4A}H-xPm~$x>IHVj)PdCMI{aX2EVzV@q|Asw>d+A;}=lN3mB_Sl&lAi zEh^83B9nuS>RKekZi}Okc!%j5C_hTYIzh|FMId(w2(k@CsR&R6(G}-DSjg`jx8%HH zYcS~kqvDL?fF>f|1M(tQBW)r|%Y8nSSE9Th2}v}0QbMfAOlAz6oCxbHV%t_J-Fv#P%zpeowY%QviI$c{ti#wXPMPp7Prra#;T=u69W@! ze84z$-fsSKs#E{(4a$NRLLBwt>$FNV5+ZYLKF|UGtuZtg|?}%c* zfHH$Y#-=r7%eG|C3!E7mzwv{+C2UlO^7aFykSj-8iU$AB-Vm`9efN0I@4a#_7~ypV9H z6eBlD;&(Q(a+`e#g8=|zb@TP70D#6rLuI1C@P|rDEJ6K=E5J4l{FW_F|Bk%>cfmV&5YR}1s?i3c!lGZ;3!)`zCqJMk zn4Sxk^Wsd68_vT_-1myl!kPds2T!++#qJIQjwr#8a3S)#AI#&n=Nk3G0>;NpU%GhWZVHm^OisVR zEJbtp($!CX%Knn){JX279k85Fys03y_w4Fb z`~&wu#S$&Va)tv*oQ@Es0WBj`g)l?}L&Fo`Nt~`^7jb+>)!W~fXu}4-CiQ#w8K6K7 z_9dWNLs@5+;HwctPCQ%32kkg#(iF;G0Zu7tB*kPJ1L_|G^$%Tdpr)XvG7KkOCHN!) zej~BRU89eoDw+0zh)0$cSIz|1^vZ2$Vs!Now-i_Vw}-k1*!THExte4Nh( zVRR0x?SPmw!K<<*kj=L1aIutDK}M@@tlnZI8izJ+K5^R~eQMeip>2)StKdP^TDYI| z`#Ts3^iLB7HCq12fyz->#5MK|z*M@w-JoNlDEFGk3yNY>DO^fX`8I;|w1k0G9=1Xa#dt z4ZD=qgobY)J#vojY+xS{{CCd&zXg$d<)6lHomu6&Lqaw-8S0~Z6|`S4NLtk{Mpj2F z!BW)#TC}jP#Rv@+5P(1BTuvr%SD{A>A*RDO^=a*Z9JVGG23XEf_z`AvLf-&D^xo0Fj!++S{?UV{R^nt#ncFx zI0<@u>8MSge0XC_bTeW;-DkGe1*C(2#nu1%H-SFDx|K3Bf(tZJqC*3ay~e%>*lAU& zP>u-Ve>nt%rv#{pp@n^rM$qsaC}^NK#fpAYkoY0KX^Sb~+s;|`MBOo4<=Hm`tQ*j( z8BFR_tZQhBFD?=1pml5O6JG~Qw91=2j0DS{vAx#Iv_fV1MZy1Pr~@!*7DivNSMPh( zexF8w9gwpWAVhEMv|JPoP-5D1g)FSo;fHvVmK&a@~yY-%0GqJlqLfR~avKK6X{BobRiyE;1L~>xkg3CUK5=namNy@}O@-QEfO$!fH#=r5}ZwF{xG5RGRNQu2aT9gqZZ zQp`&try&yT-Y<;mtrwqr?r_4t3(GlQ`_q9;ZIgt}dbr`mRIE@t#0oTXJH#}m2+$B) zq#g6KPe_BUvM=~+3G_^1BR<=ou=d1`R?oC!uxzDpE^wI43oW8lLXX>8J;R{+{h^-j zWa0a-x4ZfR-$CXU8H2 z8~W5G^Y3oLe?m%tI5!epU`}KKKaBOzTr^FUVp+)gEfo?3zp7nW4=ETi`EVJGT~sRXIeOWDNUD`s)fYQ}(#He?V}y6`1*Uu8=o6B#C7mF(V<5&2g=ed&=NUpmgW)Rx z_Wp4KGkL+$Ilzop9VCD@@G)Kdz$m5InZ;eWV5}Xl33!h9KP+8@|F9)X6uWwrc*>!f z2coV=k_^aX2oxek8`)5ckeHo8$MX1++eSrl`YzV|prB}#p%Mz^#@NBfjN?78BjFhQ zv}6%jXJzmM7s6iE4q15>5v)l*JsoHwN{YENG5s=9F!|%=gA9{`KZNoD{gmLMF6ahF zGNm(dc?=y`H;3Ygmth?7b&o}o z;H(c25U4hhg2k;2tVl?|G@68anGIC+^mW>eV?Zs3e?W*}0}Z5g(vKMlb=mG8e37P0 zNGP0Uih=m#!wzVJ-9rIB+q-!z5B2HHR>mIlXJNAyT2zqK)Q+%A(FO;T@)oDe7H5Wu2L{S6YXI1#^s%*htr+Tt#+&cKKIM1;A}UIiz~q5*1KL`L z|9jNRy*MmymB7<3ds$xUEF7%U;!4a?K|0d4>`Xdvs-UyOF$F&AH%W*cW)atKZvY^f zB7&z`O0f}J5TEv_9!U~j#)pftT<(vsFSr~rNVU?@x(vey-9x{WgAGaHC`=;2UKxiH z-fN}U6g#R67N-HB1dAq?(~0XNUI&AM1766Bau4z@!9K44$w0jE$3f)~kFPmuRaqQl z!UhEe^h$kh8B5`Hae}6BZaq4fTRCKcz}S2B{0VzPy$dZ3S>#DE3x}B~0<$a2Z14<- zoWlbLxHFM*rC}Wbet!c|{^d=~$paksg!|dEtF`4|Bf2GmTT72fH%T-li(M#p`lY9n zhh6)H%3;7zO2|QI-AjND6b`dTjkRQge{wW5M6)p)WIg@L6Q{_v#?9nCHnU^}dpcx{3E}?XA}ePi8q&?zv7cIQ6bu-sY6YzXzWxn}G0pFfxQ~A|%Dm;y zkwLa_zuH__{)beW@waSuBKzeeLKchgKUjr0e>FJnLySQTTc&3@rYelwJ5DY&PHS8{ ziU2s7@4+DMVU7T@xH|7SkmGjCAYodxTyz=`K&2?1*HSe9gVXuf^2Ca|fbEy9ZKE{_tyky8eTwz&@;Y0L4pjjb`MPGkulYVuEl z5V=4WAIrP1YOgLHd+Y&IAFwBHOxHs`$5sT3uOn`M+GGo-d=weXB{;!(%f1S^VB)IDM4?3RcP>VK!m8;f$ zX(>FMwylGo=OO?5S-@j)#=&(okCrn*TSv>q)NzJU+m^wRoG&R?)j~gYX!?-zsxK+^ly%%kv_=2&-;gV(j1*iwkZ6b>mx}|DHwYU zN~)H3kEgbgr zGS5v&!q^FegPzOTX}GR$k4VS{>E{f|MPL5*`tKm3PZTWBXoMTtoiiYz{w=9;@7b+| zD7+tOXm>6>eu%&3pL4ucNq{YbeSn3@Z^exDl)dW1%1@kP|F}+3TQEBUOquQIOEtF* zC7fah(~X#1)j)SuCf9kzJtb+9FBx!9h?_9H6=H|*{6o9cYu_5UWS_abbM=GmBmXt` z|5ZtTJ$MLd4h?`osE|ag8KeXyqE$YNQ_vUlTOSeF>4rD=|FC$`0c#{$N>WQ+=7K7#0HE-k-`Kq8hlHPR{<}mqD$l=a6qNU zsa2!Y56;J)GCG@BG{(h#@w7iFooV*5>lmLIO&#$0x5oX~RP!O|YN+0FEx}%N_2Odr zK&aY9SjmgzBAp9ke2@|HDaGqy+8YXK5ZJv3G-oMlH)bwe=d>d8qb5e4C%)s?R^bBA zf}VFTm~{mT{y`XJWtz(ywadOdx>ryM70;4GRBl5+_EwAMDE?YdxsX21ckZgY5PvtirJrkVshUq5*J5c?)+<*T`Xz#D#I#$`pkn*C9e?bmz3q=EA zvTg=il!-*Su7|AnscCSC&rVA9w)I4i(eWh){4Wvt5blYFcdo=d||o$e=eZ-XIQ_e@VJsxP&lQ**)9 z2|V3F;g}d;{hb*BSU}L>a~FxeFx1c68i>0%N(h9e2wFx6PD&Hon~eKp#ID@R6T`rW zcKzFC5B630Wb+9UF*cp!=RMn!xu5;kvI5K4px6xZ-FQ13hCsoSt=_6pm9M5fgUkzF#Qa`lWGIJ0q8n{p z8=@N`(J_qWkX(vI?JcqHw6|1L_ma>}O`b}xvIp6t;B}p0^985LY~&&U?;e94v)c%IA7T$OJG z!fqoa{rG72c>eGpC_kbRNps}Vh_M7)CcyHk+bRd1$v(CtuFO(Mc&)_99TXwP*_!Pl zAIF~Z%*gO3hOK|>Ivm!Q=mHS9-+Z0A5l|CkXnwEeXxtto6gdB_?!0t$R9HLVR40!E8k@}gz#GCUv%5I{Nq%B=kpf+) zt!0Lis?G=(s&eSCAl(R6;6rW5#5in3jkRoteM@vS1A!f%N% z0Oup)fk1!3A$n$6cu_@<*!ig{gH8Dbe;!?xG)&d@3jrb?BT*}>dewm)%19A9K$-I= zt(9q(Yc8T{DF%~#jVpQBE#=2~9>r@>LoYO3gSMqgggJ*9JIBNZSyt_KLBrcgGWYxa zi70Q;h+sq3D#C1SZAE6tqkg>~0yB&!Ryu?a^kU+Y7?Xy`q5h;mRW6{}iC$QzMLuwX zULhgCMCA9U^G7;(Dpgs6U?IfBpLZ_4lX=fOPQtP5Is)6+4vx)mZTYQdBz~0UJKHKH3Bo z>t^e2f{t+pBI=O}woqA5PpbIDKb;3i&UxUARX{sEgfxic&=lWtNU>$&7Rn(kFc=@b zr3Zi$?SS|QrL6^vKbw7jq!-eZtgMQI<~*MghTo|a50|}|fXuy70>OqD%Plcx zQJPd878R3yGS#9FZ!}FKes7y&uaHWjZIle5QcT>siBp~#N)QlKGgLT0WpM!A@^$I7 zr5p?bz1ArWT2o%Z`n^p9EbL04zsAczEvod%562IeXV<=#y%<(#!aoK=pn^I8wCB}V zjdr-YYm)niy9h)oF{L^QqM>;5UB^&*)dMyJH|k&60II&U90z{K4oY*v>K{6@fQ|rR z6B9lGle&Z#K1qejyO5%k62@*{R%T7suG-9C9Q1$|79_Me^xFAqJVezxM;wudTgK;j zAAj0M;$OGLL2sPlThak3)j22O(AA7gi_~+;BtYM3K#E(tHNQB)z~4WzXm{Ax{%t-3 zcvR6FJb&J|$3-lqz1CVSLgJs^uu|dkBJ#PXp$)4@K6#|g{$((EF4z};_Gc#hpOrKe z555@XZ6kW3)Z1#N;`lTR5v6aTHr3xbN?Bu=z6P2kK_cK)QXR;v`z?VLI7n^2xxQQ- zn=q_!sIiPn9jROws98_`n}80MZLab1I_&PYLj~ZyDfob? zj5{h6hnX>}8O^B=7RC6?n(Do8nAt4)k`lx3Gs^~{93wXP=I(Saw!KfICww>OvN%UoWQ8EuUCYlH9KYy8(J1PD?aI~UPNvj^~beQ%H$DH3GH zCy~^AUOCHsTxYq%JbUwT-h+G2J_Jcd6lb#Dtz03ESL5dN`>lEJpjs=ZKut%*NFzY> z;Ppa}j)WI8EsOZhqEd>W+0Qo_0OLkfeuPbDrh$GGPlP;=F!^i9@zu9R5*``IeP(>9 zmtVsDY(yfJ`x&)lgyrXGceHuu#B>@R^PIPjfPHYB5v6cGGvA+`^3?_0o=$$ z?x_jHhfJM1c*Ygj11UQD82L^<5a!~B*+Fu`Ra?8Sj^n2-eo`JQD9HjW*|Sbxd__a} z$?;jVMc@1Sa~vY`AXM+&Jhj6pyo_9<@qgI7*K`@(kSqLv&moeiZ`R`_GKKbM=F6UD zcrAH==Y{6cVC0p<$@wpQs=4bRhE8lTIfL{5v| zWb@ zjvR!*Nl_k#?$uxsz|(veb0i)uU@cbK7FXalN)L2O9>jJ6Q^Rmje8{?QKFcc0i?exG z_yRYFEJCU_1xz2Y&`5t{n^(RN)*>?WTXs43*c{|M8i&1@wkcRIdPD%!Yh_pv?r`w( zY@bJKz6yCA#ZvLjn|eJO#`|Hq`mRE`mk^JkJJd_MTb7|(_DJ6J_Ggbv3KA_3Jc-j} z@2gb7pb{2h*4uGp+>SHP!d;3RsB=NI_sO!K)Ma;OZh!fa+W6TjCfy3z01GAYrdcPI z*8O^XscXljHfdn*>Ja|0rj<@gECQy4vIY>w>@`pVr5!v zVojHp+x~9me(Um}m`xG47I+*FA;xVX$F>e%hp@+~6h_ zuJ?=#cbMcA$MfX-cd9Qcj57(41I-F-V~I6m|J;2NeStfK0CRQgeTrJC-fA4xN9q+7 zxW2wa;wU`S^zoagQ2?)AxtL=64N(C5*3I!Y-C4sujL;Y0QG#cloWVjMZ>1XJdSy7h z_YMIABPHHk^ELV}XQ=bb)RV*0Q&OnRvWSawNoHERHd3-i4e1Rwpt~H zA5ws`VF$yluz-T60%6Au6DE3>n~B#FIG`X8G4|k=HgFCs!+3)p7eaaEIEDJbSTD9< zmeZ*5OE2FWOF5Q?Lb2yYfvdOgs0ozP`G;M^ZkIYD`rbczC0oli_!^f^P8)RYI{4kA z?C5jRXG{vG@@4fW?qdyyyE8BLgxbV=xdQIex&|pY)mdec#(2A0lp_ktd7s;iS85l-Gmi+aL&=Ixl+lW(gut*%lqtEXO-vC^d%wgLBEZN*ir)ZP zN`?ePI)J^<6cl>qU1#5bi*XqYWEvPTq_T5`-M3eVF@n5n6_iX`e2HrE(8-PEe z=WtMn4O{Tc-~0GjYwEuC30U%@RyjtVO?-aR=LM%VXI-S_4iKlpUH zeko4Y#m=*zI;(802KLEN^E;uKEH5us?|JG(OruY;y9yBgY}g68?~Bm&6HYiRHFf$B z*tMNn0dy#y+gRlMg)?n^{($Z4eA}pfD)M=&?eu7S*J|qriBs0Ke5}Xe+W9=wde!GT z?Aqt^`NB^|XKaQ~eWyOG=4n@$3Y2o%3kc4*?#{yYpzbwzH8eWJLs?{-mqzc6Q=4w6 zCBr3jN3#a?zq%gxf8kH3vgl13o?m@UC%5L=gX>4b`vlnTePj@PbUW{Jndkg&dL63@!xu)$d0Z0yEJo=A_gPY?|jM zMTCi$qt}&IgNA;IGIx_h?(w2Mujy7oFNUpZHY`@1{nZ9(8x zqbkc@BrigUb8o-G0P>mN`7t5j-Xmy=y1E2$G-^yz|dUiwwg$=Z|Xt3EY_s& z@tD>}0`wm=78jAk2j2^_rj zd0MRL;Pb4d75M;|^X^&SM2zd01RPtRL+zX;7Fq4>^=Vdrs*pVJCB2mWj`irRH!ho_ zvS?tTJcAimxhs|(?W}KMGUdo3XHA+pkC5~w?5cGyPYQaWa-%yVtC+{)yv}kWWr)|e zyY+jJ@hleg!q}r7uL|d_X~k%f8+W^E)xC24k5B0pZw&8<#m+DH#%fjv1uN5z1nUdZ zy$^agaB7<^HmlxU%%uu>)i|WxXVy%}6!MgtiJ$33V@M}Td~aI{_M5r6I#d?&aVZMN zz3D0uDJi(VG!8$RE@b?)Go6vs;dtA_=*CWVqQzrDup{v8&>H)z#Y~kAO~J+qQ(X;0 zoJZ9vw9S{!UVu0UM&tKBs=+S-ojx(yZ+-Cb7K;-uI?fO>wOiHFId63dVkhdLK*8lw zuqH#d$9e_>nbHnp9m7krI>Pm99%Xu^D~M38C2EOQ1fk@YRNnjE6ALyedO^l+x80Za z#Wtgb6-V_SvV>7h><+NwS94>8F^&BRwc{RH1neCSiYN~cIutB$YAY>Y9S*z!cHLA= zEhN-&9Tc1y_(Tg)ztp()$v9h;=z=q;!}1>dwSJOqIn(l@!){@t;fqt3+?>_(<{`yzJ!Nr5KGL_LRIlc z4GYvRM(Gc$ZO73IpM1uqM7pW;h)@Cd@5LEk0>uh=noYgWpMgDPl8Q8#?BL^aOpX+E zsC|*LRTt+~gk9LZ>|XB&PHbr|G>bV;=;gzT9+^ZaTha^Gaw2cFE(UFczQU%!ZHQvk zdUW|pj^zetofWrY>mG`ZH1^4?b=NM5q9Swz16^3N@12Zw>GBP4?vb;(ovu{KUQ<;* zUE9sV1C$t{4SjF3dA8-Wa)l zob{OyLKsY~P!^#pZ@fu$5VoTp7xy+E4GN_Ay13nVID=YscQ5u4&Tdp3i~VddxuK2kjOO;!RkDxMU2VC?LRK;^*Be6je#Ev4C^TRD z^}gG&mlp?L?gz!#4^Gh;zWCk&Z<^GD$YH&9Btnf9i;T0AsAUvKXyhq&JJU6~TmyX{ zv5sV@z0!V&-%`>k$RX8qzGhczc_hHX6|l!W{tg;DUwWBRWAR=eFc!o~Is7-l%iBsl z9X@PvIBn9P-FGv4L`8<^inU+(enhYVn@6G4tjB_2$H0_h+>hmXw|+A>gw``w@n>T*1zj)elD1Hd$|c)m8ozR^l0ot^SasiP-)8vu zU3o?O&6KQ${C{-4by!vVy8bPQ(lF_gF6oevM!J#iF6r))?oLTT>F(|Z$q5sryStm; zaIbUrUTeSSy)OP3Tufl(cRX=FpL>~GnX&DX^~Dv$w0TOlOLKLD&4javgKSlE<7w5c*F3d-y$pNEh?V0BMrvtI^@P>m#isB`s1yFPs;S zn^89zaEJJJt+kWpy9Jy2{8F6yxR0tib+2B+-xOxjf)CB)z#V{UD}{ zz2xy2HZXHVoJe5X$g-}R>wB~4*g&t9RTujukdoAeWcUymjhR6`CdfsXA(@YA^bK5n zj)agHUp6(yEb<-NG(Dcvk_KuG#C}a`(v)LBL-iXDj&dH@S7kLUgs3erG%OXj z;vDf&91W+kCAMir4J+rYKZqX$lJeUK{&@KhSQzSMUp69Ky-&10L0k`o7$K9ib zrnlktCHPN0H+U-tU##buz_lOmCIB08)U7^(QGwmF24vqK8ObYl2Z&j&oXAa*t6e@v z?0{7nPXp`PnD=SUeM4jqV&!V}4`Sjnz1>u^Ih^5|%WEDR)G<@f$P|zp*KPL&)1Y}l zrcFBaa@Z+R;6Pkv9u5tuxu`T;eg72w169!uxqW1~}--e!w0F_3Uyv~vGY*HhVlPsL#`5cq>9ZE5fTvIv66J8 z8VwY#*G7YBS5MV#`26P6r&tW5+p1Sp%pbxM=f3&=VoSlP4&nr8VxvM+{T-5tAOCIUPU51*j@oA1$VpUVhbe3&RLRI~v|X`BosDvl?{oaM2ty zy_V0$0??%goz03|>~3E=PP-cmVQAf2oex}+v;6PpcEx|tM)(Mk@SXKyY;AH-ha6o4 z&ghJ<%a4hj2_WGtsvvD5?@g8`mvN6V8{%A{73urUV%h13)gDwS^SW(Z|A)rks1~$a zQJmt88Qe2(Vkq65b@E%kE+SddZ!1&OLJ%i$ZKcs--{YV4YKm7MS7>#NUH8G23c?Vvxy5eOKCj-7vhc>AwY9JMBg!huGzb*Y z%-T%;T*6P!34ADdtDRJG@*!(MIEizEgZ&616X0Tru~WIsl%+H27P&CPCC8V2#=068 zLL9YwXQBo>#ZmOI7e-C&%59yFa?*uD$i3?;&3`))Q18BoF3!&^CBHN_y7Io^{%DL# zmL>ST`p?=ETT0PSJPtDCP$%fjD;hOPitX)0i*1r9$McvI_80zNmxG|x-C_q|yqZ zL=XF1o`p1F!^`%Zesn)CqK2`Q-(piA0S4FcCKC<7`M;x8z+YKraF;o_s$vA5-C(%yKLZ!)6D-qWE92 zeVJgsP2}%qHw-uX7$9!rq3NMsA+?BV=6sM3p)XxkrxdZ^leVc$LtODb(cwBMJ#M<5a6Ytx&gzT^1PDv>^*e6cPO6pwjYa0d>wd4QoD3uXYXiW? zK`AU6lC$j0%>?4Q-7P#Kuhp)~<$U$-F7u;tJ8z$-sM#Jy9Z)$+%f*KzxVr)RofLH! z6B&Ho1u?#lw5BU&yacCH^oyD$xE%%k{CnI!`7v=;ESb2{cmQZNFV47O)bS*AO+nUM zjB?&n+r4rltG>L;a^b5iS)f@djr&kv%3Ma2cYG!eFg5xFEqs`65(N|w?nJ&z6w&(2 zSL%OhMI@Lmp%d?88C2uf;YgPSLGwQ$3`fe349_cx=cEOVZRWhVYrX%a__pSaQ0&E8 zAHF4}lcD8-rQZbVmiZq`6ITJefg@uw`mJ6+3$8d;`Yk5#Q3? z3Yb%zXuV_cU{G??1J2Hi@mg*WmGmICK&c}w=JWM~E$P*o_&XoLby%|2S!M>#Icx^a zP3|K^OMQd3ij5c^IdKHB+6AEISF%cG%fsjsBS>2|ljhboc7nC2Eiz!L^9jx-Q|^TR z4<*^#!r~0DRZ_N#XHvdgzpB3y{8=marazIl^hv!$l|iGyrVRUtd31E>wC5(7v_Y!Q zV#caw6)z^}F0<91IrHf)yEopi(S=5K%h^F*c0%m#uS+qSZnuOL&@lSmlGFinYnbl= zA|i{kA9`!mX90+h@TP{$q}N_j3Sl3o+p+;lC($Gg&n z6=uIn)59kCiur6YP$Fz^=C<7Tr-*M&eG&NH&Bi&H$IN>ywN<^OPB;W^f%*rw@xRMy~rA)tvlFa-kP9U&Q#@=i%74Lg`u z4PD*^!bfj}9ICgROi42;F@g3=2G=RC9F6M{3}H^p3ic*{5aAZ}c5f(yzGb*yrUXJ{fY@EEZ^IUT79Qb;frAhb@tBdgae3t3Hle)i6rQ57&DoS$cj4 z;tzCDlhK(HaHv9|aDYI-Z*_HdSpojgg|a@z=i@U zWWkwhA&=Ld;_p9|XDsc7PLZH2=lZKom#8uI1|a$yR7Sl_aJ_%)(<{KgefHIZ1p2FI ziE3GG3PCQ~!tX|$td!&761oD*zRX;RjHlr*45-OOv{6hY3RpdXIR$z)@2*7M$GNfk z1n12Ws;KlqZ}O87Ih6T;!Bq;(^?|m8FMguWXlS#V*oLINJYFFB_2#bGH+58+n?gUw zbE1NSGlZdAA3)muL!ds7uW3TInWl(cFvKE$gdPLdtnTNVvFo;NPsxH-0fXpPa=8?| z$s})83PHF{*t0Id;k-I^QYuZWWS;hJ&t7%qxdER;_e#a4;g3i9ydQ!?0|x_$Z$S(! zeQu3u9K=?@WFgqEztm6Jj!84%t-+HLb;-|OSWDdkue(eXruDcV$EbV#pRmpdn5a7m zg~~EX{TU%ckrakpkPXl4yPd=0N%Pxw()*?vyX=hl_T1(dOQ{#XCuiT%ovN4Ma67~k z`Gb!d7hZQWA_oS8{E*_7wR?h}%0q&FNH-j0+P>!<@XqxFk69<% zda+7O^6|c-;sL}%-rd2)O{-TKQT?K6pMH zLTva2kt|WGcGUBPkcb35H z9x#nav+7JgK6Sw1#th^YQqu8eX`FxLxE83}40ybAIQK`?T?thuer$k8Uc;+3+(K|) z>%*~H5G8}L;IZxR4nnkCb1e2SSl#rCc2?M+{3GKKS1CSmBmARVi(Q1NRWDpNJ6dR6 zBtC^PG-%_l%L}}3z>k7C4;Lh}R6Wal4Z1*ME)O&%xOj_REj006A~jZcr%CSQ$+hAK zClWUzX|JWrx3uOUVj4Ns8Zp_X#)^x1iPY+3i~zH~jUU9WnD9sYz5e%dZ<%5|oDaA% zA$xFe;EENMXm_71?!L2(g|M+qo)YsiaUN6i()@xZ4WP8eofTXdytgV>FD_eFUlSRL zWS`az*M&l+0R&1vGYz?3|TU5hT~pX+C=l;24!MSpJB z9#i+`)wJBeX(6|MkXIZ*oBPd#Vj0e;tmK-RKfmtoI=*x>A0C*G45xOp#m4b#z+)odtV(q7>2H*rT>d|f7QWnGN$dwm7AOrDp8Vu|9T`+V93*Akgs7`*mZ z?o~;NIOYO2jcAzoh*w!}+^BH1sx0bOzkMS2Yo*k$rK=fTfH=-;Lc3#9Vb5itNYrlC zN~HRKlFs-@dS5wHQmJugN;Z<=utTpiYfh6UV`*Y)YOGmK@5DK$Mb0L^TrjN+KJ3;w zny-6TbGXnj{^!ET(c(fu^dtIBi}uvyAl+*NU+jEjww$Zs^$Ka~8kUZC&$g8rGeGKP z^OGKFbor%k34Goe$_jBh@|;}eTVJh|5WY^(*C~@g60lm+G1>W6=k=R)Z!X73kR5~# z((fCy%d`>5Ei*Z81@dk~3)!A_4Qa-Ye4GP&<~axYrn6=*t~H8z!@o8BuXVllMEz2B zxQ0innlvkzGrprK^Nypi@Oh1AwQ*UXW*MgDXRC4CpG`K?gnGG=+NpFrms>8Z*@lDX z13_ElgbCZD=_5|*DHy)AwwydQTCfwF2lg(gpO`c4-l7`AU7mVG)HQ`EyI8N`88!q{ zpRa2!W=ZGsdzqnSE)7YeTdux!^b?G6Hp(oO#Mm)wtcy$#4CAfYc`V}6x)86{lV^xq zGd(qQVJ(H-+k9g_+{v>vw0>nv>4t&-L*k3XAF-1@9Do<`z+V5RkSk~Jn5Kn3Xas%z z!ZE%fCo-)K4IhN2BR^~+)i>Br!#U{g)&)$*PYb}TR_U9a!iB27t0|#YH7{`Hm4!`! zQ`0-ew}m`%J)IeHI*)5sEIm`zeQ8Y~JX)VLW7uFD#dEJbUR-YT%rhQ}hmaZESO%hL zt%<5N%a~VTAgnRq$~D?)ovsu)+9<_W5s~vQkg@Q@fwt;x5RvC=%wpPH$)Z%07IO3^rbqFQr;0auuQ&xg684;b!rYUSwKz1NNVlViHelWql?bPeTu z7P6cVq7j(vEu>nd@OWc}cZ-O#*kc>89Wy+kS%Gn%jfl`C_@Ln|oYZB7gV(388ZSTCpxzU_?8vgw@)ho>h6hEXab{7TNI8?-baXQTWf~`mSPoLQ9 zJ`!zTlM~N=TyI}%vVa_iTpurufhWibv$dV2u*6=y6S>IB6RGS_)<-%d2MLxUE6rsF z3W2c$*H+otS@`fRXGlX)bBzj`JlN9G;>{45DjJr(7OwqC+CP1qzZ|F10B~86-X5i8 zoCj)pzInQXn8^<_Y&tw$p0jd04*Wx*uoV6-OXOqagF5bSOY>=R?r1XaA&|9c zlyYgAxw@U}YSKl`49Ijq-oyUCl!$F=o(##}-~w;(Rr zqktXNAcU=>@Zb4=0Hz#-VJ$9Po^QCY&sX6&C&{pv>LNN@JR54n4Tj=>TQ2tIdbe;_ zmaleNmM7PEW|j4k$OJ@(NQBm}DO~k#$j>|Xup|2^F(+LEWj?8nlJZ2!1ZwjWwpk$> z2lR1rxArv?#C(p9yL*CYu&_Y(={H_3NLEL>J|SJ=>1Sk)hMks$m7rA*GH*W&?XjcA zFO!43p=HjEe8RbVMoF||N>>e5$X7Bh7zj&QOOSS>4#Pf#dmjY30hWB_mjW{Dg6cQ& zTpV$7O5flsG68t!w^vzckSm0;anOz;uP}7c9}ghtXz%=U3Mb83Iw&UUe4Vk+%idi? zKK&)k*vP-bqPvdzax))Ge;D>jMUS?Kin!4CVx)al(udEW*DNhedy8|oF=t)YV%$WG zO33|gmS<sMcJ`@w4z)xZtn*+a7rsrCUcs z^%tAdtAI^XEDd}#M{_?I5XqO`HgaeT265Z=yWlx^NXWG2x3hYr^s6tZC9j0!RNwPC zRBYHC%yHGB9XPdEvRR9O#oc_lHG)UgO$twH60m5rd;dJx&s2%;*IFY37giEuhvS+3 zmIEa}7PeBLhkk%6*{Qn1L*Fsg;De{2@Ed&DN{LNL@yZOANEP{@v%x9|LM(%loq&UB zM_bt5DQ=6vzl5hbxfZ6NaP+5WWH3cR`|+ak$4=y8Gf9wB-L;?{4-7_Bp)mB@mDsc$m#rF# zcbB(R9$Y>ZhGQdRl`dv=900Q>QIR(Dy%4#_+N|-CC)T{oj&XwND-nxyj=TKg-&+k@ zFOVayY9Iz|v9JQKuI<(K)B3ZCatHmcKZlX8^?+Ur5y;2-m%|{*J1AbdRTa0}@3u6Q zrE2OzZ%Y33S_1(SJlx^l8X8P^asqrA0XaH#5<&VvHPXO#)Rd^0()jP%?=5#^Q`gr0 z(3C~H-;s6yNO-zmsPH&q;AELBqMsVze@gTM(jcoEuj`KS1OU(=I$NSOuKK>0>k&6f zO=~t-Yj#uT+q?q!gJG`!G*`h@7Q54RR#9M1Ado-Ohgl*4-c-j6T zlh)!~h1A3_Zk6hDxzY{Hah!zJ=sbIzafByPgBctdnYaa<;)d~U^xO1>TiNXA7LsP} z_J*}zdwKZ7GbKAjZ6CFl!hD`ro*vMj(C2)CayBZcQyNxG@VZm55;2Pc^sGmlb?9Q@ z5)Qm>Vt9JH$%4Sp2)H>+_*I}T>Ca;}*4@Uypf+=;M(BQ+d63KXvFFL)lIxO@>oB|Z z@9Mm0G6VZ7jtaoQqI@f1%{Zx8g^=kr6bJyV9=a`Oe63uinD5-6*Wg8vZgG3v)xtz1 zl%oa0b@T7;85lhnj#OY$V$eLx5GYGnAp>`D`ooy55p$JjNrxXvRmj# zj(_R@1`+09|LFw$!UbXW?vLcfKv<}=-kC$K$eg>Ws44V=8|d1mVl%LAcKeo&W6Rd{ zK~-#x9jC(bQ=1KwE;f@Urajn2cQwCKCsD7#499=a>UT94*~zacMrfdYKXyQs)=qih zGES7u2`Z1X#Gty605S%WYnas_tEjK<9_B#|_n7j{TyZeD+^3EBYwpknQ1sE6|8M{tW z+^+la=-@)oX6Mjq8&+78d-vs`d-VBFWXwVGB5;Je#Y}Nt!QA{6a;_sUk`Nu_$gx_2 zFK^lH!nx_HUTZU1D`YTM%O*K}W+$JNbBO1p9Ye7W%yteWEg@L&Yv0(8Qp`!6`?;Z@ zfv3=VGY6J9Ii~@|xpdh&Jl`m%6vMrWQLmA|_uz3oPx@U+y%q-cvMEqBG|}3gUGbSD zGOwq0{HDIJWimRhRA71k<%W0fc*trnT3 zpPueX3qTsTK>r$5k`un<<$2+-*(RmJPS-Hk9YOp6Da+*$;V(rEN$A&aK34H8PpN?I z6iAAMk1dQwm%Ni^fQtZ)91~j#b*9IAIjGH~>-w(w{LKRPu64~hKk2|&z{DkVR^SjV zdYUEDPMPEEQjhWBTtVGU4$VewA8Oe+wHG5(>#e^MHhUebeQUrwCNh5vkXFWFRKs%Y z#dM5xOOaJRlD}^2&2!5(vvE53J0>ZXJIPw%kLW4GuqE%;q=tZU?2jm_`x&-zh=m>hv6_f5<16|oJ#gCY7NjLERe;!hM|vHdaqFm0n!-fX`>bn1y?!ir+a5E zhW$N<4=<@SdR{DDRWWkl@Aky=4B$$DR@-$s<8mZtUkc9n3Np>-&^mcyyJGDc^K5dj z*@muK9FukiRA#K(VJxiY?Qzhgzs5knpW+6H?6uX#%Vl`Mr$~PKH|x?&^Bfm_z3>iO zSWi~t-+J+erCs)?vqud&u`TmB%%>R zF4#)m;^?t~g5m?lU-~&{xSv>~x&?MC&rjL~%wJJZB|61Pls}Q;jiaq5Ze*as_X?5Y z&d=nMlO0?kdOj537Box1$)&#a+9B*YjNPj>8A%zEL9tzL$4TTqlo?Z?Z2uGpXft!)%ZQ6oqmULPK57blmQM zqV&T|r2)C+&81JD6qfK*>?;H?YZDe}BPb#NHUVQw0 zqMw7l3wT~z4Lq;u`bw3R92lErIw${tZCJSVzBuAM?}8mWpd|OdO_1l?+dZ4hbHrIl zc_;TIQ}0xAgX)j|FS;v#F-}G%YlIpx`Zh(E6>N@oZ*o10EIw}Ej9)1b7_#K zSM7a<05z@wq9}=VlcNeuIefh2>x3PnD;Kp#$4i zqR))C`m3EKN`~`QO~;619i4~4Rs$u(F+JjobP?0{8mcFyQRy7CXlLelSDk~gtW;}h zB^Ay(2_u`*KN&Ucwms5fR?s@ z$tAH7H%l&N&&B|5zs1%5%=xZS%&;`mf+thv(v#JK^G8eN3WH+!IUzOzK2s-&7t%pN zie?R2ld-V(uPZvQ3+6n3tnu)j`zb_2QbFX3PEtmSM#&k5kixbHuBiTo_p+*K0Yd!lxs7<%*8knp>WcYhYYTA3rl%(SZw1*Qp4VL5dJSW^Rvz@R4 z8E9VQvZ5zJjcn3kIH%lB)qbyGo5R5YZ<#c_n6E%e;y6qihq$BjmuuA{ zjI#&6X+|}C8ewO0hW8H}D@rS6wp%jnCQZc%fi?CUVwBI1>mJtmx(y7x@g%$pzfozs z&rH;`scvEY4kA7Gw8gt9rz;oC+avgLZ7M`_{V$U}- zqCxfo^_Boa$Mb@4I~26Z(cmTblplkZ!=#2>ya8((7G~r8H<7F0T1llM)v`2nADn$k zti$s(w#OspPr)*p#nxrZ0_v8LfB828Vswxv@Sq!wvzfAQd({=BI+O0vvicjOd64UT z_O1*vAbx8wfqO1Q5x53xqv?0(NF`rwo6c^@$kcuspVf_h9HLZ9&)9rQ)^wD-@NTvx zyuMvzD8|$L)H&ddu7LW@$WUc{mR7B-C6^3_Ys8%8X!@6j)8`hTAntI(=gQ;qlpxRV z!i(dz-cMiyi1o(c7rFo5p%B?|!G*i|x%I9PL7XA}&vpG%q)* zjo)5fqSt=rGW>36>lkCFH@Ln$r<{R*o$^>mXh;eYWDChbms~nt@Ei^9rQ&|GWjnBu z%nhSh<9+Q%G-ic3)W;Ok+e02Zb>Cks^xS8*=$a4JYg2)i6@>< zJ%9WK9!C(VT*Phdp2$yF<6+)^hRwBsU5fb>+4XdbPhYv)_gtigKJHG#z*bb)a?N`(DQ8{ii zYs^|tN^eGQqt8#{6gnVx=j%TXp^}$lZ$|%|fFb*?Jjw(PaY)gO-vBZv38sNL}&+^AT*0dwa9T!IB zqyIu)5KQx}0i{XwUor%x_nGsZ%@MY(*J8?EB$Y@_ci3IEzm!?w#!gMW#h2s@>IK+~ zr3IdEH@2{@7JFU!HA^(}iWfN_`SA*}R<=geLK{CGSK$n_VOD{nPUe8j20JuTm(5M; zn!6*#>$XcA&3C+X7V2bdfXG|MJKHu!!m2LWdZswZ_HpdcR5se}W!|zpiMpRRr+`{q zI~4D4Ds&tevX{QZ2r+dwZs;O<2~lxcTSv-~TLpZ) z=B^Td!F{sZn+9O|KKFZy#l|!V8RuH1Awe|XcS?vW0oReZm!}hqS(-1Wb6ttn^tmgg z8sN}2&G5q`{u3!$ z0bg7{RUqa$7BKotlqwZG9pb7i)V^8U`}JWw5oH*R>qY*}#%ef?;n+xKsP%Aa@p#~O{D$kKHETbSqfB=q|vc$Z zT0yZ&=nV}Z*}rzPu$Mvf5SoLkl?-@Q_enH*xeBn7J_NM-Qib~HfIMU-dpL>qz$iVJ z=3A}xUjt)@b4|i8yK>Uf7|g}mP1Wr;Ks4|spf43ji+>A@SMEFA6HAV!aES_S@dhl^E8&r3HI#W*W@QXU=-6yW?aXVI1p?*|t`dXtl7Uz71= zK8Mv#CgIG?kzZl3l9vkA8%?5*y!IfSClY(yT5J%-OHL`f&9A z4SR36vD&?C+2zu?2&{m-OVVg&{UUzIv&s!@V0T1o=!{ zzZKvAg0K6SELkrxAQl|lnM|LodMYvOfkicfd(Qpu=_2$$R=&LiAFfkjS|tF6297x8 z*+Zg?5NQDs_4Cti5#5~cX)L{Z)2D4lJ!(3LbyCtn!|wA;nX1CRY6%GgfpUteb4;?K zD1v+O%B0g@XY)6y@l)9ED8as?;cMo zz1ZB7k=*ymwc?ml-vx?nisB{8its?^#r`|)078$yeMyP{`xNr_16mtAYVmj0nD(c# z*89E+g#;12L{Y*p)8V53-{1U$91#!xpb%7G>!U@|@m$9`fT@7(Op&&?HxLFfzfSqT zfehMkc2Pn&AKl$)(F&@|=POnEpH9rQWRA2TDH!;(@%u@`yB7x>Cy4^sFAPdM^r%BI z+?vxBRL;@mActu9zwi6sx7~$-+V-*?%7Rp`J0=l#25E)tBg1C16p@N@IsXkN*HfTa zyejj80ajczPlFA8Svn*+g+HCj^O_LueMEDxo^vv$lsuxu%{kN$Vo!IcInMtbu>=O~ zY@qS*@b00(Q|LP@<3oI8t=xZpD1q`PQDcox9Zr*|_gcdK)@0`_ky63)qRfCEobeeR zgwj%LliLu}cA+DPJsrf2L4#gR^r4>(z%&s3ow?8({bw}QxLE!ut?s9NPq1RCdexkBF#BKZfuAr? z2th=++ai%JyuN++AP2%2+xNGDA2z?`1a@VcG9eF!b7M%p7um@1wg2^klvk6Hxn9CaVyH2a|&Pi-5KYvj(lOQLOUcEGmL56Gj+dwhA1j&aFN~Vuz zAzr6L1Lr;CN`?+^PWioFexP2#VrBVQ!0s&_K%0Aa!|$&g{+5R6`^ln;&f>RX_A53< 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%0AJuDsbjl}RJ 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℞OsH?HC0_I~kn#pZeg)cx*?Cps!$r}Vl#?DC$bhhLf#&HWnNs& zyFGtWaw)`L36iaj8%SAvbdmYdmcY(yf=n6oPM32Sg6Z~$`TeDi&@T%Yue$qY(4o4X z0Y31;{rtjH?8{nS6rL1K1kHQ|}%E)&q!Rht&H$Avq zjl{BA!d}GA(YWiI-Y2hDwjazhf{$N<+cV>8<{clN zEQMV8$o0mUOI58;`t4;?c2SK;vD1wTeem^_Ww6Otz+)V_I?5A9o#)S1>okyJd$MNYCoaZRl3@p}C1`g7lJ@2rx7DkDX|$WvsA_NL0S+8-S$MSqUdF$V3`$=(dDF}$E|m+ENR1hK$FH(Gv{6wJ#nvl-(KVkfdb-*@jlX;3}RMS;@x`?2b6 zDOzpz>0c(71cnj}?lLsIj`nqx=uxl>Tf4&MO!mP;-CMCZYQV|r zz><#A_5(=Sw?i_cora|)n@fv4SNcnDEqf?BfQAJZJe3~Eft@P3&5J)Du4J+UzAMAz zjvezq*YbA=Fh3}edv<_s%E9@Ce7K0Q$_dW+ja+G<3nG`*tOCTpqlA!rq`7(Su%@~9 zip^DV25KG}uOYoXpxKD3s7b`v?KjPHUU(wioGKJghbTUD^`$9}Ous}Ls|l|$a5^R4 zjVS*bys~I~|CLOW_JZeC@2|0>TJ7DaJ08G-NzbT_u~ZOsx0!1~!NpOM08(i!_YTQN zfJfCYVo~UQ zpxD!$){yO^XAR=}MQSGRd>hY6_h)RTO3SoL?s<@;c7A^M%u$gcCKd!+2#=YnVoP_a znTdOm4MmBm`^0?9ZaBteg0eJqBL*UtUMCkE3wO63Tz@3rLl}7qwVfBW0mC zfry^!7oJ`Z9k#@QQMn8x_XOzMV;+U%M%Cl5caWNo8HLD{W+~AYO-Lq_{Fatxm4C+Je7CbD>GI?pTM# z#mm#b@{Yb-5Vb*ew~!!hPhXM4I_dG39hu52|BYW1FU)^mt5a3eG??m22AfvBB8f2) z7pVvdzB^xer$7v%vRbAGV`pl(V~kqs+c8T6;r2#SAYhG?U*SA_Za(d1VZ>}yM

    0Dx-fsSIn(4F*?uRA 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 literal 0 HcmV?d00001 diff --git a/fastlane/metadata/en-US/images/phoneScreenshots/flutter_04.png b/fastlane/metadata/en-US/images/phoneScreenshots/flutter_04.png new file mode 100644 index 0000000000000000000000000000000000000000..497eae2de50ee9e8b50b0f66b4f2c134785752ea GIT binary patch literal 349252 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

    Q?^ilK;Kt?Y^{jxtb4LUtV zvVNQ@l+$mbzY}}WAKg9oBthiz6XYzHF}@$;SRN{BItTHy*V$yt`-4k>SI- z_?s+I><=suU_T_*TE0K5(ehIu|KM(g zWK#*|$hu_h^X#x^U8JZRk-Kgj!4H1SD!|+9k7PqyWYReAo{5X#Q0*ln{$%^+*D4Ts zU!qvOd_jfQ9Y`|#IA$oc5g2TjA~C@k$TxECMVC+cO7<&Om1{quf(xCK*&W{-cLNzhC%a0#Apt;=u0y_9WuzdzePJZAUDk_`QIC8w^nfNS0F4 zYfcDE1w~{F`fb(znA-oq-cT(d29b1~%e~a35h1CH50Vt-xGGgVZ472O!AUNs_Xr)Z z-U@%WjsJO)C<-(NJUUFJC_fex6@IkFQThx8N~nNZSXDFe-~8<#cgu+{&&Isih%xGoSp35{zkD42rL;nXxb8A@K&F%F zQ?$gt#u~wkjaqi^)M9caM<}eYrU)!{hF5FoE=$HTwG$lKGA^(X&BySfrtk_-ZP*dg zR`isM&tb?p{#1g;x%Gx2)xA6R*oT-OrotpXdGs$q>d=#M$dhqsa;|NS3}{v)fN;Z! z@|*F;i~Fz|s`tW?$zAyTR=^=cQG>Z$<*GQqGM0dj6mPwjCy_7pK6wqL1I*58jH=h{ z*cVz}qPwl%mEee93Y%xZoK-IR_Cj-9S>Bxm+ zyGDMApGINqL%QkpYh6*SpzCZlKu)Q95szZ=-g}rV1OhM0%fT0W}OV<0roy+I=xpU4}@ zpvP*9@kuS%F@Bzi*WZI%azg7r|?XS{8sWKqi^^TFOp~s5Ah^3@uIeBf4T) zBC#=nfWEH?+h=)$gg6E#x0!dp-rmp0i|ICA+dsYbDPA;8hVK)25;Yy>EQt=1*Q3_P z&X~uKQ^!5-V~5n$zU<{M+N&ASrq{3i+oFAik^R`JZnnHqo}8Y9)bkpU8Chtj(KN(G zzsWch7oIq>2vtC<5h^*P${CJW{7Cec6DmZ0y$c8n8YsLt#0N9Ejewu9JesK1XHd7v zdS|ZKLnYf$$e7!=z*r2j?Dvg?Q~sdySaAx8Qtc5PmS+j zaNZdrI)ukY24vja=NL6tp|~t-N8k<{;WKyb&}eFVlSgP|Z8%j&K1UMg!jEC`sdTP% zYAnz-MGUg`gS>R*E3F2z81#h-&;IqM3icHFUJ=KZgL&=c<4UliS|PCoi1yC=Nk`NsY&}lan1*!uNDFSJE!s7G z!zD|&DBI0Xo`>F$gm*@pC5d46?VmZ(i%l*wDfj35b4CFC3Yj}>=?4-z{GtA@RMGQt zRR!-q&8v!kr370I3_b5G$?lK+;p6|p=q>=!TKY$(V0CxsE3p&TgUE4lPK4O2e$dHm zrDJK^*3^>6mv@71&L`qmko9b}u^jm_-8R;qrhV3e&Js)-mA;DgexsW(e565QVdnZ> zy8N62f%U!^V6*2kTQnh;gJh0m0!i*r67z;^x!be48Y79oD;WK!B=hY;UktY)Mjsrt zQV&RGDveocxQg*ut#~)+Rf%jjhGJfb_u5w1+wX{e`7oFT%=1uSqeUvGv;0e1Z8OfA z27Sx>j}sKxa$@DUVs>a8sKG)`e znZcw=O8mPWuuIHfh`c8#c{uK{8(KxLJ*nd7toSOnr(<%>JouQGb8aJTS|IeEuAHArkh!W}%q3Gx6+X z7y>k7Irzr9XL)nf@pHo)7J;5U@TmoJ7$Faxj{8X{u}9q}{eytAvGx317y=D%W>0KA zx=Rj=zVDyjTK^;~RgeJkJ-hv%LMBrMMiPSUOQ9{p2?q1No?n-D2V3(68XTf%ROl?F z+}XoSHLF~zLT;8G*8CvU6O$Wlu-SK+;X8v~Z-#*s03g%GvYl+OonHJ9A zW~rOvN$HJpa@zd@+O%b{DO))7)zCuiLIA^M+jMz_;}Um``Kh-sBCdGg`98Vr#()b} z+@Chi11(62etjsl-|n%0z-OvJ zGM`#*BRM$Xvnlq~qN~1$uE3H4F)#I~BrYc_IA6KeN^kYc5Y)s)EUktly?_;ep7}$w zyP|5Xv7FS!w)y9y1;Q9C@F~u_My9hH)|71euf4`1LAFfToOef>pJyNS=9_vjUTmvj69#hz z!ek^q5o+IRZfRtHc=XAsdLyoBsvnUVh4@{QM&Rp?UsE13J1Kt>pd{mL-+RUHT}%Sj z>ffl6dj3X zIOaxfw3&j5s$U#z0t-I@Zp>mC55KlbRC5}D6_VHz`*^6`s$sIc+?FF6q)+4vi-h6# zY>p{ND%t{0ofVdCD#ZixgO!9htZm{|-6FgFmX}lq_ruByw){?UM~A&jMg>2=5eVc9 zJ$sPfv-j|tg`*ATB@|t9CiW+UFnP>%= z;l=VVn7EM#*vfe&k_oNjE(3M+q^XKH72%+ zEGMaW-A)ciMhAUa>1px69_;sdxBA3nRSbxZINSVpz8i`&_-*3tzlH+k26%}RRfCe0 zV;o>QqV7cDkxMCKgUUCs2s|v?9M|JB0=L)J`g=(Nu5G1>rZ+cd|3_y`a6eGCJb+=SB2A za?0JA(}=fW!;C6ItYaO8{WFatvH~hh?GhkN$>Qg2DEd%>PyGmgK8E~pPwqojhuIrJ z_OGDbtDGWb%Qe;F!jS3_9|JMC`LG)CA{dgRdYoXllN`qJ>5D+D6d8sf92qL>(sFnu zsn|CO!}!E;Da;^e2S_0wYknFG7ybdKhI1z0o;A}w9C^}5n*2^$%jczC1xf|j{z@a0 z(KQ)0&Cp$-)qw{CZ#KMkA4VC=0R1-|fk;d?SQ)f1G%5j_;j>me#dv6+vCKHEnOXUN$}{8C z@!XFaKNf*;Qra4AZAMU(YsgSA`&>&F3(#WMA@JeTMqb`*JD{rUWeTKKTDEXEO(-vjzmj(s z^d6CPo)tc$C4gCuJX=GTnSL3oiD*4Qvc`v9Zp!#_n0M_9hudYDL|cx0wzzy}uZWWX zd=EzTL{rtQ^>Zw?YcqSBLOCMrWFUOGUvwLLht~CGBv-4FwDH40{OBGM_&ab`<~u(M z+uTIV!cBE$tc$&j$AzF^;T+#I4(o;+)DVLM+%A}1l__i~kDT8vC zQHcal-r{m;-9b-o;bphnb;urXaz8nnI?E|051#xOi9+1xOiNH+&8|!OXN)}ub9CW| zdIs6tDqjuI-EzxNdOzOt-72r9jtmM7qyt?7!>3Z|&l?m6`>24!Ko#C)1N~eCJz7`P zd*q>qG1;a(P}L`!C#NH96t*#APhC3qDD_VKjotc;QiUK~gVwkG^MeJ`5{-_C!DMC? z=&p}Il(Z2Xmxh|xwE+w0y;+KiR2=xo`p`ae{%mFCg!=rt zUQ=qVu0)GmquQ(lX=V|Y7>5nRow1N8%+x-{b|mh;$h_G3J?hHdknOk&($t^H$1Uj- z?n`u&lTqvh(S1VADSdI1e$9E#?^;sSN7SXiM&@&o1~Yo3b!WE|WJ zdeeldwX+`5%Ra!c+B#1kgzAk#Ms#W3q6AuPZS(cG%p#7Xd-4%>kDMoJbjssj}JsiA5;3?F88A@Ftwyrn6 z@ny4!yJrDycy~a<|0BwC#9_%lSr5GJs3QbIY(Us7C=lXyoGO8o{sWE$H%t(k422RJ zMAMuOiEcklwKbK?tdh5@_@7BL#-n1sD8ZeTcrmclF28vq%S0tYn6B>hA~dO2eE}LaC^n3zKgPhaT9NfNx$0 zU+yWVp}FiJWPXw*BR=Mq=$$Ln`AnJHo!$W2@d z_Tux+k}1`eud^`-5|;|Ux{@;k|GGpKPyrgIVx<>z(hYIveKsyv6u05+z4gIbZc4+@CbEA(dN#g+LG-jD2dz0|{*F;05> zo$-zOQktW7++uzU;(|5;^SMdN1F$Jin~CT708Ztu3M>LcBi*6JylTC}HVF{Bz6atU zUd9NY0_wM%Pjz;dbco2>h_H7?R15+WANCh&WVo+R6}D#@0CsZFyyLQYRXF#Rpti@E z(v?9Qv_RT-f>m}%!y<~Grzx^h(D#KD=hsBeTue(qr=C}y%CnApALm(2^@tV%B>w*H zfce6Na={1)b_?qE=Z+VIvkAyYbb8f}M$L)So|e)v7#Rw_Y5|eSihb5P3b}^tmWIw) zUf)sc;}|N$w$%XNoqWgxuNBD5dLgs5Yw{&rNo5u9O}S( zvUs8rpIZhKGOJeH3?Xsb`AiYg=skHiX}^ZIHJoA%5la_S4Q&3Zc>6w#v<5tP z*ho5STc+<1|Fh_mLdOeK5@MJI06f8AgJ+>Zb%Z!B;k47*yh>5Lnd3ZqQlGv+!eDvt zmcZ&1TDsiBd<(%Z9egxV~O({AYI(3U%({8dJuIU;fwd1DAbrbvhah|Vok6G+0iQT z!n7x|2t3=4kH?N{$hm(2oL(R$h=> zQQQAWIf?aCl-yC4MKU|mKKgDq1d}FYQ&q>)lYBasT1nip+w>D=331ZuQ>YsLE67{p zMb3^)l#3OEGtQQiNev5ui&Z98nSa97-T;xKRA=(I_DKqwDzviR@YYPm!2(3Ujw3BQ ze~y_GV7JTi)hPams`#+4-r;K%*oO-m&gbvTgui(~6Im99mT4z%<)rvYVsp(t_o6|g zoo4sMdeyLsdKO9`rG`$1#~j3PFa$T@VI0mM&EXX!s`sQSB<|n|7BXrfb{XeAq4S?->uj5QK$$>(4=5_%`qAbMrs*t+m zl4uwgo{h+EY)38|b~@K)=Mzl?eX90Z{q14PLkPpB&=)LRb8zx>lLm`|*Xb-DG>a7- zKlHFfgYq;9b&5QJaf#X7`ToWM$JZxYQe@+y5;XK|LGd8Cp3Mk&ooX8W9qx=zaABlN zo=c5nYa>NUl{t0zMVNpX_LiIw-@Eq-=-PWdg00H=mOUrvIp1yn!L|BD$T3 z5e-^-y~|?8piZiY9pkw_4a`aCtxL<@eZweTdSWl(Cf=fHZmFNi({S-ZHCrb2iw1QO zBw_QC_DZl?o!OPmf?&klND1*RCU|yM7JXc8B-e9RNwzbgIO;3C-zQhL>;ktBJy0rEm$q z4?E)DkCI%QjghU%Q=Iq6U|=f^e`HXjEE$9$gfnskkdV_Tm%LBxu05*vi%Xv{ki&9d zl!27loNmdf-E5|Q__9|pBBoy%O(D~l$7o>qaDUgG&65w|c+7j93|jA6xjKv|if>OGEx22Yml18vI^h@`eG*91PyPw%BMvuc0xi6;akk1?c!`Bb*wz{SZqv ztNK1ZFKsn(oCoh?sMUUqbi41u66R3c+XuRyL~*$~lx{kkcxeWrOacu!*7MbP!zM~S zIYR7j{oo)#12yM8EaI+5Kyc>yL`Hueb#KYukjvS?!m{Du-A4i|^|mUFF7=><<()p1 z=M8+$UMmE!W6O;7G|ZEew@(?7LFEQK*P_)+eaDxoxzax~)ZVq!(`nRycjhi|nRBjY zKsLQ}@`XWgW~S)J{HF~6S-t_W01V#^`LH0P7Hvs z9W-2M+XfML1i-bIYT*dBTR+^Swuuv3E)>LQNF(k{#YrZ-#gRhBV+9z+o(r|G*P5H_ zpOi3+2Byp38to{ajQAF7Gz^@8z$FdTJB*@dGlepQY(SpnES;vpeYf{+`=b3tH*0ju z9rMTn$El;(=M+NE>--`Gr7%5vld0I7i972UnK7^+J?^9TrnbtQ;ZwrNsARc4E(8R<#joXODF8&pIkEKZqbLzPT-r~%_CPSX(@G~CP62;J z%!Dq9XdZmDHx2g0&kyN*pvVHSR&!uK- zK?aZ@O569l^BcVN8C5CE=WcLNJL$~kWXhp%^ulYHerZz`LND^=^P`AQlV$bFKzz?c zf+S}NWJ!qq-Z;i8t<$*yrq$WB7o}qt*%{s%Sv=;=CpY*!yw9M|LQ1RC3k^V8sxF&7 z!*wBw&H}EMh<(EdApkH`WQ_&SmWKRJSDuoK8aCU36QImN7q7wqk>M}9=Z7nwEIR-y z0tr)}q}w~-4|=$y61zWn2am~c-`BR80Qnm<*r5#V#qs7-?R220dJKTa_qF*38rHDi z=R)30TtExC6Zx!qJmL+1`%g3u1g8PlNLFr-MIfLv&sU&Gf#WaS{BSI?O1*J+9JstX zMBu)L>K&KFf?R^n;mD4$%j?;^1{QDy#SG zemzwDsn&%5r=dl9e6J3zWjs+Let>HqBTjVRW@>UBf@ATl04Q2ur}vR7F``+L=rPE( z&K-`l(zR5>q0c|XC=4>0LDGMs=0XLNnh(iRtrSw&ZBIo>2uZO`lX z{@b>yKNhbMMbzdh_)C_)wlu_US}E*p)9?h^4Ia-_3>1oYqR68M#6|sB@cmwU?hhoq^Fa=dOml*34+q!59*Tvme@TxJ`}Y2m8ymT{Iit+& z-Tv{yil5by0yWE;kUc$$1JdCSpoNrZ*dAN^&aeP930U@*D+Ig^N(@X9s(DWs zKBLFdGRx4Q%-bqS{R4?8n49RlC77DH%ci|sD9SsIS?5pwdEsi0^q6#@0KpmecNzXm zq>1FvgI=dc&^dj+mfPt1o%s5zhWoe=K?*>RuE_rO+25%IAb);tn70-#@QiFd#U8rriJfQx;&)4E*o&|LJP~nydevpZ~|@ zhc_ykZy9cHwu#~>`FG;OUlQ`iMKtedJL3ks3bX)#RqC>`pW1*|gaXYi{;Of&twq<} zvaVes9t!_21`Mb~dGU6-0#q>Tj!rvZf0ixRR~r8pmsMW5n~j8pNe0L;mwNz+yV-I zq&WTCLINL>BmqDRsKq;p`@haUj1O=NudE^AKgamj`~W<0U>n~h;@asiiqJp)9uW#~ z%k%#gmA_BR|BA}L$mRbpQHkJe-yHt0noP#veYX1$1?)%taj;MhS(+&H2v2$QNuCNr zLA5}ska(hS>ZpOo0fh%pvell@|H7^1%^+iNh6v(t@9n2)-qa5BL|P1=N6=~2Kg;%X z*hzRI5YBZ1misSS?yUiHfA6X=BFK+;wHnSH5knKVD@BJM0q7Ep-(dQ`y!WGxih{d6 zo0^45xc|mfhz{W0E23WMJz<=+LjT2jE(f%x3&7%sgGz3~O$Rw*!>Kc&j2dw7+XO?^je-PjF)rhwBiypu(vCb-qHb!?dyEY5_H<%;U~Q ztwk>xkHbOp$oCe2dLCIwRI+JaiUo>lz?N(Zp!-JET=tZMNEluuz!2+A;c{KOJT|ad z+d}>Ejl6J8(V!b6IC5vAKq8&rzwsP>;5mg%%6nGTp5A1N@U%-lxBbq~=oRYDZ}8b{ zRFMF5;AVnC0ockzDuP5MpOvRrtUghD4|EvlbOZ&S+}~a3%v2bC=`3hR2Kp1nj^)Zo zK-Q?pBw`14qLuo-(vbptePek;HyLUNLwR|InFH-VzT9F<;_=j8PN)XhA#4Gg8ViSC zspQ2E=AFsHT>=0hc%6;u>X|~m`%JUmPK?=Xng|w&fZ^acq0*Slz5XoSuwYG>mujtcWRWmqKiZkeyt zF@>yqC)LMGo)13&>fc%e(Cb1fk=eyeTUF_q`$j?u(3}`uEScKFhwS-ulW|Q5?nNDN za>C%M6RXoO*WlVr$*_32eph2PqM~)azof0w;gt$USGKKH6>H8 zI4FLvX()`0n1ko6u}?q9gD}*X{yTI#Dy}TwJEUs5|Kf7 z*)$*zD!fK_cBShJP&}y@{*}=iqiMB$d-< z@~%Oh#HGM>_~5O>z;s%$zqdz5RnTqPy8c z_5D>`YWBm6yGE^?{#EqXVR4=hO(gU!r{X@Y5%ozCV?zL?x4%1dH{0Vbfcnn+A-zj_ z!S20N4rd&oAZs zdzsGrBZ<}iwS7W<Eu?eI*i*+$Lz3^9}xjU-NOvnN%SXJ}V~AVvhS1x`AN zlNiuHChbWLf#?VIi#WhWYX%_V(*X$CDSLJ(bx$H12wh=d>2e0SZqCblFl9K*pF@iJs{X6ovh0aEYH zCD7fx`xx8Y-jk-Ssry8W$P+5&%SmmUOF7yt@ub?mr;Z2lV?p`@_55NY*s+`@5=Fa) z$z)vdqArcNEScTC@A6%h^qun^q>vuJUP#rY&SpJ36rK&4B9Q@X>g>42U?4tGIDwFx zZ%xPd8pTbBsuv4oa6#tIx}d*CL^Le8WjX=|%kwk%#Z$ADtk3eYcS7Uk0=a1hYGp^^ ztOi7G;K=H5vLIO;W2=K-VK5LLdlRAZN;fbX^z@GBE8q!xrA?)IJoVmGbu$C-G@lX0 z!t~*C1Mc^N9J?MtxR>K4N^>Z$W&H$j`6CWx>xO1)OiLZ>w4~)*aFX`-S(aiaiwUi! zL+!+XJGDffzb3>sPPsgIXoMd{$TDASR0}{PG{L|wKi5d-e@4DygykgLJ=J`D-Osu* zn&u74v{*g5d3O5+gO0>rsia;#_^g%hDV`trLJ6CZKSHjtEt&ZHP2%xVC)<483Hr~w znFA!foL)vXZUtwmQa_TlLf6&eDWlO0p^ZAwyTG1T@?6jQe9ky;-nQrt>J23=tsf40 za!6(?^z>wfLr}iMZ&T{~$n3M*hq$txcOc^pC9qoi5Q7?Q=0_2&Q(NvgXn+nLOKz*Q zpC@iAn@0yCFg`?5!p`zz%0($sCEep?VI(UDL^;w?gd^Qa(=uLwIi`1pUqW z@USt5WbKRed;=g?xvOj2xhc%)K%IZ_{@K`2GKX=qR-s%|fE+5qDtPeqqU_(HV_unTUhIdi+VYz3)porL#7}_!aP|8#W{Op6uf}ucapMhZ6<`C zkn$-vUr@UJOD0$(?5*QhZw-5iED=0NrBS2lTdq@my*?yMxJ|~r(IPP?@L&iN1yKaa za9@w-HR7duSR>iov$?{aZ!Id!Qp@l=j;ey_14PtHQ^NEq{Th@Cm0gnHJ;I4|Gbct= zmKNRd1^IWai%8wvdgl(Y39=>)hM=p?;!AhiTvFT|Dl?~~pMpF;Z z{K*Lal5iAt&mX1O<==Q77eEdRwxL*I3kRgMUqPI*NHf1;ri1Xsipxy`?9(zIam9Le?E5xc z$RtYTl>dvSO~v=Pw*G%h?%I=Dfe=Pfb&D=g?cAd|960!xvgPN&?bT+gHD~Je*}kPy zAsfPm{?ioM(kAv+FsPu2PPMjGFZJYkunjA~M|5OA46Z~hKN@lg6M7kmv^{-nU_IOI z*fW|bf-fyZa4vTk9vi3a_9OEmr9;euxmkHpUD+4q24Kvo13D78WpG#QAMgTe>HN~x zo+P-8Rb!$4%xs-`0Eh~|n~nYi+kuof>609%v6e!0xrUnuC{%5yTP!`37(7^~oFMR> zjl@9Is75nHj&~*>ZwMf}NSm#=N77hbqWG^CX7gkh<+ge()@Ts13UfB<3WsjY2KZ6xo65{Lzaf27j4U;xL)_u{N57}LGV{Pq&! zpY{r~S#o_KQUS6)OrNd9RDP-Wtv#;TlTL?On7{eO{EON&QqR>%^SQOGK62lh$ic*# z2u(KIy7A0jotC;%ZJ5rAYGb}|SWJ`a#bYar5PCI`+K)J% zRO@{QbjDq^m3urkx9Ne*DE{@10Uh46IF?j!{o#RBGI#24t|`b6np~-u2wt5?a9qdN z_**5D+4P7r&_DTYc0ab>u(Gw)?Du>dpoY@G)uR^F>gd!UBnxzE!^&M6%ay(&kL}(* znndz5K35=6xm?^S<@+vRuU1&)o>#1a{LYl4XqBa%Wl1sucgM9%tHJ45KPktk@9XEv z;RPf=W*H#z1T*}U0oMo<(MA9f%_e3q8&P;}C8k0P>AvdcDDu_!93CVVo|D2iSeY|fw+<34Z+^vz8EHHEEn46Ls%>w^ zVz{q~_7L4q`^JP_?m&gwx~MSN2DHEnz3Fn+*dkXIcDHSu3UAZi8lh03TD}4q8X@+f z9#Jk-%Z$}XN6{f8Dho?J3XLqAc1h7boWFwG9x3r9?%sA!iLKT4qeM`_ywY@+YpbLE z>NF$b&$Ar*9bbSTiDk*9qgaB|rl;|ArC&Z@pPXZ%9PwAUFNguy; z>$s59xt5M1`@DP;r$pI#@oDXCkE5}Qvij#Qy{XST`px|qGYL6j7ljVKzfpVI(az2t z{EmcBCrz8zQqCDUxwyHHX8Q|{Ue?ZfiB5M`BGvWp5i0pwzu{p+FH8f_7fS( zf9hVKR=f(sLH%=|GF_*kXQZe*ZJEKBfFNUu{S3J!@P&R8i@htJ>j(YK<0;Ce9m87U#2=sjMFhHKqOga27~u zX(5%OTRHjVH-0V>XV;0otBO&!+?)OM4;1~evc}4kzYP)-zdw*_I1h(!p10o`88y&GGUd_y z1(A7My?zq;@v;o{XQSGQS91{00Y>!~5TefD^@4Qj7lu!c{KW9-ol{9%M5sdvEHaCi z4p^ILDN59o<)*`SW$QxN?#%Nk9v}yd(2NX*iWq zZA?=btRWF@Ng1}oQ*4J=z+vo%6wkq!B9RBjp}4IWz@BpiS8io`1t-DB7B7_zrJLS5 zQ!5pG?P!*@xILdUtFzm#Ha7Ep?kE=fq=^h}-QL>F708rkS250ui*(SA!lMdVNba@$ zz%dsmQkMLuN=?Ful@ho9noa8VZ5oobKO8+v0?lQrVyJP-l*o$Y>w>>4V9qUfBTkuv zQZ;HUFcnkymo8u6mRvZP`>+pFqmh)Z_)_Q7QVZsaB@0Va)Az>EsN@AJ>GaPDELO~! zCpo-}$t4$GzzU;!gQz$y`U&%!PuT`dTq(AtX|fD&#X_8pvsf%$16A`%BXFvmL>D|} z_Qz3upr;0(648g~0i|>_(bf>F4FD$S?SzXS#}%5gtU3DNv{jbwQ-+RxAhE=K2a}GZ zHi4@HiayE{r27Gf-h)dJLf<&9^WovPaBiOdNYamj7~#Q-Pf`f8R7W zJxeivcsd%qjb+XyL|pu5MtC*C`)oBA#<<|4cgBnNTA|G-Tyaut`hH&q;~Ax5^PvT1 zsZ|QZ(`7qEVSt7{ayHSCgnSwR24WtFvSqvXrY5gI`Z2lqR$bo`BS1+zUw<5n$xm#S zP!Q$U*|La`5tB zy;=Su24uTgt{0mjBL{aoU;1n5yK%&l2ftJlElY&Ggd^T@za6DOvTb9%xjb;vL9&SMO!zW?Qa?LIR{X0tdE3)hAg2yFkz6x{#Rp}6StG%sDRoKh| z>#^5Tt7{@W+0BWb>CKy~EdCP_=wlYW6=$3!a}>+BiKxaTw_HHSnRAZv88o&7Vj{~K zn}#yk+_3Qc6?U1KJ?}wLqRU61JJotb#7hLP5&S*9LV>~T7--v7$CCV#kk}0I6>Bda*|@s_T$|O17vB!ybeP4-f!dsb`ybhf0d_$QF-2;F z=W;(yBpMs7w#$`JW>e`yM_f=O>0(uk#&aF$s=NSeAVwb8$9jUnhXXn1fGEaMgpPnM zyFF?5V|ub_R4(ssE)vHA;&-We;9q&!KX}l`v*Em}rQ-H&r$(XBL%}AVtbaEEmlEcL z4)5DzxTBcAz_jV{3*8hQhk?)EdTFeYRj}L5w@P2AIwMDlCR{z-&>=J-< z1eP4x5Iz%WU(j6N5$;58cNL-XM!6bo!huPKdaCn|#O?Zg+jO^q``Qm{W!G0nMF`H8 zO^~GtveWN_>>-mLKfpuH4~tob%C}|)Kn?F9!5oL14$GirwM*SS*bPhJg%eV9!ihp| z`bbZ!!rD&dwLFmkfj+wZ-G|6Pa8%1>BiYXAOr@nX6Z}7=okN&|Jmod@nM$q4okru*4DM2W-G*CYjrNi4lD0 zwqmQ@;DDcPzstOl-$tov=r9yhMylIlr!XzWbxmQnF`&lgc%Yet42dh!Xpx345(z>?t(25#TvJ#8=%<;%p<}yO)(R zBVYcM&5!wiP=T)QNfFU}#MhHiO38u;&@Nyqah0e)u=f?uF~8Y>F&5=*?%|K}G~qhX z!p&jjyY6X{Cjt^7UH#(sa}xRtA3oZSok965{q78<9n@VkpYWvOaAJln=jvxmIL5W8 zA@#22EV=0W4}WN7++^@s#NubXBKKd(NFJMXVAYD6UGDLGL(Cmos&wJ4=JdhK=oC(; z(sJE~EAUwBa{+4;dOEiRBTBW^@1&{@#AezdTo#;Zu5N8=KIp=3MiqBh)&)ieS51ntx@8=W<)M7+(+ zC#2mSv<(k zzRC!(y((asX*tDH>PFme&Q-{$hGQd$3HMGdOlZ*WcVFf(p6o7MQ`NYB6EC)-YAXT3wDJR=7$=))3p|MJ=^ zi#g{etP)gFC zQf(b2ToEpmBcZ6r0M49j*%>L~b=1vx1Sk4HNX7uL2D4*V$lu`zVpUqdce|zm+2!pJ z(cRf*nK()_QSwDmEG~bZ^1?+5BC~$w(}W)a;xwt(I6vOq9U){ld1elu)6pVj5d|f% z8on-4OSRpTdrxzCf7us9p{qDWyZxC}dX-s@J4E06uK_g*Kbzifa_r!B$@P-Sg!nh> zDkqOz2jZJ3YJe4tIIHwbl-0dVxAE&<;-W0W=;>rxbzBezHkVmAH{9n+Hx?F$4C`Ni zgy9HJv-_df%Rs-UCi6S>wS70$rvr8>qid`1CVRvS+dg}!L+i{F->0wTFZfy=^uEt|I)5>PIspO6Z4GnNF!ykiT@u z{h-v*#-KBg4h5YK>yL56V&jue5XE5b|I+IJ>2$0!s1BmHnEJt6{h=R^m6> zMMZozS&3=5+-_s!k4eiWmYG^PWR`y12sh)Glbj>CXA$ciAU1@~BBFLFlGp}nz&RbzVvpG5t8@cDpJDQahRIVBepC+@9Y>1?rna>+uR_ z3nl|{FgI)Us6%B9t^wnXFAPtJ+DnKWL$JG8%N0L9|HE5`MY5`(@uEwWf9JuLLGi^` zFDIS&;w;n|&F_cQP~AH47V~T9K#oqPryg&)Y|MQ(|3+T7?=ze(Z7;(|=4wmQGG%?Q zu{G0oXH(Nv^+JTyy~<6+Qro!`Iq+022>a6$`|DP`jLinnk>Zyy%?gokbeUr}Zgk;m zk`|kYaHG&!46y6bpf*~X&Zk_WKK0rhk!}Rd*#@zhRCC}$HOvivXjIaK4`JK=Fc>#javw9Og-$#>nmK5pF)u7tA3jH;|@c4Ea>pLyM< zd7||b(RR6K{17N+I=6i1{fk@qP6t2U1TM3zVj60&pC6NE{izK87}~S3 z+b0j^oyirSS-cX`N{kVI7{U*iI3?*#=E)8^K2WgLeqWlT7v`a?>-Y6O7_WqLE??ib zuH<>Z>mD=?{pGOSFN%jh?DX@GoNz)oH@!%sFj!#;%3Bs4tL52|4WhmC{@Y*K-!;Z! z-_<;M+97Cc>`Ltt$E@lI-|{K-^#2}C;tGnR`aS*Pt=9!bxD}gEnKHfZ>#UPF&%JS2 zrs4+=d*gGj(-=NUAMIJG0=1<$;U;X8)(0WsubI`?4cf~R-92KXA)FJx;t7}&4HxbM( zdKr?ZktsSH@dOE>s|pM0D3Ws;<5`g0QhMP--Htha+oL434;>m zgR^}7?z@>Q#L}+(#tkQ51p{aE^G4P#cc(&0b%k*R`;=eEayq{`wv*}3sq(wmx$U>| zFM?JzMt+yu@%W#Y7GsJ4>)0^9Llr2ud^#XhT-IV8DDZfc)6)aEPki=?Bt=pZkv$Sy zbaxKsjXi%_NU}^VhJUo$n-8F|dvh(_yERhutdMzHr{Ok0?3uVS92}Y=^`#Ui&Hd(f z(8Ea@mdx~E{-|kjz!*P>u&XKdo2)ggzo`#J*B33xxKPe$jL1gPJ+nN?4R>$1KYzjUUVDY4 zNyzn=t(PeGKZ#Gv3g2HzKFNEtbN}|lv*k7K_N!n_QO#$9uNvkWXC7;qvSu;Qlh4gA zcKFoAnS;8HO!cn{Kk2kH6tPk_m!*rJXgYlFVv)Xda4wl8IO88V$(w;&L*_55WSJChuyb*sb43o`>N z=j(&u?pIlVKp$N7&G~mjKI`?aKb{Xs=KdJU95fx0+whrfQ?$4ay^MJCfUc!qHc#%g z{_uzCp02(>B$ux~AbO*`2T?5xX{101G$5AUUimGC3ow7lov9s=>*zc7{0f)5lx4`} ze@oX8IwU%VV55>hr@y;=QJEDunBK78THC%G)~8mNS<(Lc;@Mo@>;$6D6Ze+;=DP(Pp9tpST+* z`iIDJnqeOP<-{M&eAZtGul#O05WdB4m~9_kzO>Y?q$LhI4~_z61yuuXF5K=f`}AuS z!U>{&cHiWovuK?2L0aH_+wX(%!dHewDWVe}G@mmwc@Eoe_K~b~5uo6pqX5<>|9U}^ zWXY@3PKFhM{97IDNKi{==0}#R>SQ;#nEYQiZjnm?FQ0U!I^USi+{e=5PPXjqeu?*s zs|4cqpOGau*?ys9op{blgWb%kC&Rx}MJpuc@$^RlHSuOgR-ll8YPx`6pW)sodDX3k zh^m&kqpQk@ay9q{1Ndv^>}p8@zm#jUO|OoE(#8Y;eiev}iH~5e-`+g-8{6Fgq622!Yh^OeWwWxj<%;Ocg#{9Ws$5cfvd(=>t+6rm8KgJ3kP&^YXNw zhH1tPCEn{)C>T&3TTf^NoUa&pX-~?Re$tD23ve0NS5w9c2za9=1c}H)Y>vzZTERu5 zD&y>;dj{QJdsDA!ix;H_NncbNGg>l)oaS1X22V>^9zEQ%Ia=>glIciv!!~bZsix7l z=vOI+eYdN=cP;bp$!mu4cs)xWN@@TIrtU4>)<_=r^nor}3p1HWV^$*6(5hvL4^w*XuxsJICppgNOYX zOp`1D=XRK29FJ#Wgq9WEW;eCaZcok%ygJM2yF5V-1D{T!zTW#6 z0mt6!_^xeX5BV8*`xMci4rv^<)V#ZT?Hp#j7J~HD=h$xDrYd@OR?MR}GB8M5#FI7_ zWWnaY@7~Q|7kLEP{#q2B}`V zM+G^*bgC2?ZO;!$XfR1Fho7Fxk16nu+kfaefpsB(CSN!WQq!Zw(42BG}Gj)(xJK7rzsDvYGlKS=9zP88{VZ*{Huf z6lEQ>I;!ybD(_RkN7Cx0z4w zmwEv364sA>kac|1RB~$auT0fZ*)Z_{Qq zRdj^c8hh9GT8h$CLPvfQyn^KuoZsBFX94HQ3;yn}?EWPlj@*Y#7+QXRryNe;e%%bG z-Lpv(G8OL)zs}g>csFs75hFeG?E2N0=VNU{5~!V?ONTj|lbK6^5)*Yn@8#H{eYyQ@ zk7Kw%^1aD=K4^nTk}+tEz~4{fUW_yk$L+nDDE}XD%xdmE_2wWj6nedWA(b2A)CfX! z-Gv3ksTO;CM2&ihNbH)odt%UHCPNY}GQ7&Ze*SVn6+_JWX8wuI7l+F6644(16~I8? z7lBhl3JHfak2MUg*70k)6?QZT^o^h*Pivv6ff93-5t2<(xp;bjGn>Hn8Vxtm*xbt{ z=KRa6e$pt+(HnbH)o;0EL-fki7=v!U%eIFnGG`&4$XzH?SWa1>wJ5GC!ml1Q&b`^O zIUG^Aabze!)#8-wIe3NJbrlF&9ctO*JdkcVQWGVt%%NSb?qy~=x*ZX#ey1XGYB6g& z=yxL?S9K@nMeanci*uk8yM4J-E_d7*_1f!EJ|UNhp93KlKI8)!O1pjl+o%cN(WO)6OQ17Ry6{mqJ(KLaV zaJMezm8c#zsvzoK1ngoE-$DpCeLIXBq4^L?>QHT*9Tc z$-hEaFGu-@hXjeT&TJ+&QG?M(X15{bsGTP3krt0N*Y<~NE#uC;!;)B&rwXm@nTPL- z(=)NZdznO~Rbbv)%>+aoKloTRe9vt81pybC@sXJAGHpABI*cCj)+-k8n8Y&0>#oki4|p>96Uybx%HU~W5^+t^WHIwFF=)#fOu0y-a{=&h0^ zz_jHqM0OnN83HACCN^g|+8uKZSCmXBFof@4%trNHe%Qc=G$vCVEnI3pZt{Nc8RbV0Phb52*r6PgLqH++xMF0z$u3zXypLAx%B-^ z-}yUQ69pBVk?I%q7sWj@ZMZ#L&)S(;Q+(#c{`uGZFsV|ySB1fjx9uC_ACfkE*uT9( z@7JJc{Yy-J-|bEpSq_Dy3cH%=u_eq3nTq%}#54GKk}1z_8(mww){;Vh012B_Lgd_a z=1NvS1|;{A0M5L|G$H$S&F~nf`ijX^gbnIi7&B%rWRqQlOW^>WmjgUw+q!_}in{)x z76Q+kO_`N-F304-7|sdC!X_YG-$$Hre$vn9;m3R$H<$Pn7Sl(U*ZxUwVx}1gvbVs^ zB0~5ip1Y;9U(fR&zxxaC_P<^dRHeTBxWt_Zx1bwa9tQo&p~zPro17nZ@s-E%D*>>& z>6}flTKqO!aYKX%&SqE~F{|-fl{GIxHkk~@`IT`_vQY;MxaV6C95Y%Rh1h|2V0sLE z%e0=^yEjAv1~v^gbh~pW)HkwyL*kCqw%%za=7hi7?RY?{Q>t(6f9sC73H8zgt+Um@ zW)YPV=(d`-?+fehISs2f;G)ZHBt{Gwcsf8N%#O<26X&NF8K$ZEEA+=xiRM;;e;@8Y zH+jh^9__CCj{}yJOpw{8yU^7Bz^vUEgIDs9>CQPz67J_?2Qv2K0^09{WU!~VLtqxU zhe!1OKfmS*_G5D+!sora=X~;hrV6>9t@c<>?R})$OsLcPE3xRS30tyAMsUolg0BO&Jf6h8yW-v$g}Fw@$r%CBeJRm{UQ6k=&Jyn*{SzoR0H<8%6LtTr)SncY;@Of# zXU0_(3!K$e41Q6m3FWf=TN8fKd#jzXVs9COcSdFRE=vZ16Ln4Ml{H4f7CVzXGnTPhTllv96+PtN9TPH{mql%Y7ns$z5SHOZjV_9))0OfhN(Y=@s$t*!{^BUr{ zOdVMH+R3Bq<8hC=HdT&79pg0K62RfW!47Gr-Mx#(MlynV!PAJPK6yG_<q}v%;XcfiwgzAnq?v;+nGR+}P!-0!@zCd_B7^jo$Uo>XlQfJ+ z5U=vQ+}V|bDM`1iU@dWHV`1@Cln183 zMq>b}R?;+qr(&z+C?X{Lzn}V~EX8k#-4!0$X+dADC+go%VRxz`r3bi*gFDcL8&Nbn z8=Vz^qtcisw`8u~yjv%UYO$KB>QT5c?cj5@(k8rB){3T$h-d$uSN-GfFIoKa?jp;_ z&j0IOslP(~fcHOd{F?bY?)-ld=wClk6$0lvPpq<)^`GbZzt>~=4*7qc{ddUz&v*4d zcJ_bv#y?KffA+?I_Qro=?B56CKWE|pud^VPm=~n`e_q|8t#?`vx}0q1qj^%)B`<$o zps%m025_aVzm04ojT(S4e7KY%RV*-B-H1(fPSbgr%LV=ox~JaK(1w5t7zeaps7 z)T6%C92{F`NTHZ|rO--YEFxWFEQGh}gEyjNc(wGN$P4NZz?Hr@NzEGJmie2y6Ms!nhHG6GgoFCD}KUzlbhb2cEUBz2W}$y z%6<8kCw8KxUkCK3h;+B^PAnw_uMje(Sf8JuQ9Mes?M=8}MamnHsP0+moTq=#n8-Re zMYNgiuVD@qCftJjWLau?gqiO8??ip`z{y#U{=tsXYn!VVERTG{945=WOU=HN_c!#k z?axL_qYO&fkA%+08#7uD*6D12a|V|#tccg0yL_QdPg{u*9eQLX`58O!gq~DSSb<;9 zVi}KCo*);~*ijByLkj`7aM`09Wg*!R_^pY%pnf`1iEU6+C$| zrr*7gsZk%a5E2}g^?rKiWKeiPV0ZZCoJq*^W6ukq=I?V#96r9iouT!$4=~3A$(v=* z(ltM&XY3A>N{~9caQZTHBxyelmb|D+74>x?|Cq*a*QjX$sjva`*V4g6d!>8SC;g@M zOk&Q~R~P<;mFzW{Z6<-!e{F5;sw+QyKGC-@4Ow!$H=f+n@T}@i06jB1TcoIC<^&Cl z_?sHsu59!dKK?%g$?uBq%S_RO%^Ti>B5yVsceT~U9k};K=SbDBX3R4V+9DukB01pS z(m&ijAYx%dpBeaP>{GmI5}Kr6V__I$RBb7?vD z!fnL~0`C&TUU(`FJ27sv8C02x*IoJ`(*cS0)NIhg)Pi{Sw0E}fHEiXi0K=l*Jn7ti zc~UgU2Kts%9GDYa4j2ls%{dBrk2kKb#;d8dsKHpWgSJa^>g265@8Yy2ew1Xr7e&|C zZB3Ncl>%)aM1A|50OwhMRhvN7v>Kna>x1+XGv8xmLmItdv1Q}*ef;U=lh+eMS7!)+ z(e)JTx;Yywc$yHxio0(mRy>W$ZQe4HKFkpl*i7CBTr(~Zx>rwMP86x0aJ`pVf8hBX zXvitVxtERd&JLZ(==yIdX=l|}S~s(AiEnEB*mq3%b)71PdjgB1O<^p)W8LE%(UH0+r{0naJm&zuU7@e`CiHjA_U`{e43f5o%B$KOZIKIjA)16?xiXQd@EuvUkkM7PbJ4|jH&y3g z-h*r5+(+3$(0P&GMzkEI#ssfuHsPVs~G7vrbT(|R6TH)>8oU+<%{fakb z+GqD7&0YyO82XEAw4I_9Otb4-LV|I0UwAp+ODzF6Rl;owX83J}i)VoISZjour$cx! zu#wWwhQU{vb@_T|Y5j})Rc;(<#w_EN0r;@TxkhfxYE69h2hl_nWe`>2xrt*Ga@a&X zNY+Y=GWZ^wrh8j7vu?BNOmK(G@rTBhm~slTa_Vg^oPzW}Qn1iNn$t_{g7U?>X52o3 zXou`eAUb5)&P}2}x$!zKf1&&$uVusTnH^m8lU?78uRu0##9UGQugOmJ%x4#WrUu=D zqb_VTv1k}-$U+`eD5>?A!=L5>z3&x=A)RpL%5V+&`V8$gz3fR-$u@AUW5p=5b5+rsq`k65;kD0Wp{ zl8MZ9eujV>p_BUd=C1&KgBQ(R$HKAa{1CAtmEP!E*hkQR?`|po z+x9)#z#vEaZ&i7ZtY#ulbVonMD9YUF&$pMP9(}ysfD-=cy8x!a8Htxcy!sQg)ksh- zZ=7M?o|hQ`C-9>^QN_t^s1m?zjZcyjpK>g(9Qb~t7miDy0Tg{%F-GDJ)7{xY-;VwI zxu61=ZG^H>(spP7SA=p=kbm06sJF>J^b)%J;2R3tb|^moV(UIwxTw>Ro+4B5Th=Kq zRNm;UgPUt_u3WuuJ|=`d5IxtE;k|Bnm1nWO?R7m=Usdw3C_9kbpVd#Ra6UXc#Ar|a zMPXVGb7`2CgrEC-v|@)D#%FS%D>Wi9*~8Z#m>GLXFL}_V7}Y)~#Pdpomq)Z{jOYm< zQ}vJ_Nt@P>Ph~}Pg(crl0fcM6M8c*Ui5oc-7~J2MQs7{_*?RgGg8=5cj>bsSnN#3 zJqUmshIDA`2ecrFxs{GT%#~UffB#uYxuIwNuB!b2Hp&Tt@lIPEaSaFwW%szW>?KXo zI28r2!LG0i;Nc6Hhwh>gSM;BRvWZpastYT5`d#fs-2`h+V1c-TAhaa)WIv&5E&Mvf zB8k)N(Q~eOukpb!o-J|gRNX|@dFb(4vN?gjg@kz%?}Hz?JhPz2Ip*rgnqO?NeWSOr zo=Y^uAhId-ff?Ph6wvO-S5V`8*XHtz^hZMOC*82Wcg@>pIrE~!5~7HK1~70yEVWju z!&G>93@ozz4i%5galw_3Tp+Bhd7AeJovUc(99I?mlM+vi zRv*$0jH18`X5p>|!b(j`nXGaO*Q%NpnCyVc?nqG8nk96rDWwe5uLNDKGjR3a;;v}RG-t@ zRj{z<`e#{|JM{68Gcw6m-M&ukcc(So`qyS-pNf%BM*H9?psip<#_{qECdKk%oUm@M zj*<~VyjsODaV?kOgW!(a<{>vxbu6toy8~1_@K|7b*XRwVn$h9J`!6vt?<3vz zLs@okbl)+q2uU27Ij~<|^&$;_h6lG-XWl2Zq;DQfU4h23W1zYgXn}M(d6`-5HIoAb zA{agoFqNkZ#-4rShFxH&Ec9G;@K0;m`V9HsZYHkh$4Y!MF_mFTkStirB6*f=_vG(( zP4j(?Dv33xwzH)4_>dkPPScU*a_*`M8EzRjw_EU+J4<)qaxcq3N=?3Y2w_?1(Ul>V z5DfIMo44HE)jjLsLS(O5sKrlyhBQ}r_V&0qH{0=40zG^5nf9BqF_l1? zoo5&iRJtkCcbdt^bQqZLAZ}-^bPO3kxaB>ZZnr+&p6=4dm-1PoQ+#Dz8o`j4dtz^;9h z7AB9Oy~?Y{QokD)%v^}p$d5`8RzvUV$ZZ%od^8!wbbbHAL$-XPGvN|5 z8!Wiq?J%N0r10f9U=ywB3dve0q~F;qg6onQwEy%UK1C+3T>(}J@$)jYuYBzXNCj-B zC6Q0#h(mYUFrGCm+qZ84^em9t%cY+dC(rONff)~uJ{53lJrQ-W16eD$^^RP+Z4x`k zADaoKz=>X9Wz+#)~JH1m_K&8c5OY7Uyj!7Oip~+C?Izx-uEI}zY!PI zF{HNMw-gE4J8J@Lewu$tL$NPIUz@JR(t%~7xG$rKcIjVvi(ZTIFOG%Q1e&b3gj~N& zqxo3WpwCe;aDE6%FKz_@2Hrwwg=QzJ^cT3)0?QXD^PT$`*LwRKS#v7qQ)uVYRe9Lf zuJ%F>4I240Ju|sZBESrp_U_>A`w7e7;elZ0n#61c4O3LC`1(uF&ZZh^UinV&QLw6T7{z6g*JCu2wamBza+7~Z~>-I{0is9c6k3vcW zcb)^rHXnYSqbeC!uTx!(6DBDwrgUZIxa-;meJ}T`<>X$eJ*B#w;Ek$yY23$C<6 zm&m?_r#u8S+$Q!S-g_yVH=ao18wgU#cP2>I(p12Dev{p9P+{jOk|#6aU!F;Tt9iQz zVLp~qUaNVT2{>B3E%+SD9lD*m8TNi# zuH0fb)F%m+Cg_xA9&*X_V7X8V5>iphT2dOl0}QQfW^ei%DSTXvN3^)r!ZsTyFRGaX z!U7ih%qNlSh(_VKwtTA9{eGL|@}t`R+bwPGD_tizxGi}Q?t2lP=BG#P zB^?l;T`H|E0d5AH->8ue=fTq8fAQl-XIqM7jk7uUpN5_!v%e{M_buQX8&gjUx;6fd zdcKq{J>9#n<{5cGZu&?xR!92Bd1G!1FmO*gfI`>_5~eDmkQOE6qKQ_~k45TH3f9*n z6jLL-)uHXwd13Df8KwqyEURh+L}a{&Ger@)^s{Azvu8A3{JsmX1Xp-LrmhYX5r<13 zq64JadN4S2`?RL~Ff%4@4A%FIOV|tf&ezhrOTCBdG^a1!3U@zd8o_qTct^D_R1(9ji=OckXPtZuA#iB7KO{13v1Jbc zJKbM8DbBuEk*13NrQ&@)jGFoZzXN1h!7i^sRZq@BH0>x%BU|zobQouj@y%y6TXoM|rYEji5OFqZ1)rUk4u@NU&(Y5?&wqd93(oq3GfJ;? zuM3GM1VA0VGRNE!3pW=!0YculvdvMrf|<4h(=KQCAJYa)Gry~5*~&mcXW1OyT+IvL z+f!>a)GBW zIA1EaZ>6z8FkNcNcOf{r#Hu*cM`^a|qwjp3Oq!|i`AV#)gad13+vkL9`Ow$Y&35Bj z*S*Er&l?yV(xsEh)M(4{iC^Ql(#{ZHpV(zEa2TYZ&o7S(fLd}lf~1+|rAOQEQ)ig}@WX9*>0<5dsor-J2d|jLq8^bQ@xp57pvb4Oi0)d2vmv z6DmLwpUG<(r1f1xMk_Jh1%Qz~b)V01*TCB^=9Tso1(}OD`ryKR0*|y%s1~SaG55)g zWxK4pJbpvM^;wK4`Zg^+?gX6<+3wkx(AXP0J>|$)*bVZ$aA$dr|9fKm$P$^q4ntKD zN1QnNxz18x&esaW{I>8u%($$2Bbay95aPfX$rmXDog`~I0U&&h=s`<++^VT7P1BV7S(F^`xczmSUax{EaP zceRW6U;E+u0VG5|=D@`xtER9kbz@IO`fxw=6cdrn(QmDqw?z}&^)_BP;@PI;sI{&d0c3;-3gWIh9n zuPuo+%sCWQ(i51aEf#GD?B^1Ot4Tr3yx+VWy82!4SmPs}6ZNt*%{gEBWDm(JjeVYR zFEosIEHa&g%ec|YSJ}JVEUb?*FE8g4IJCsZ@yw&yplI66Ao{gAg%OKM61TCqmuLQ$ zW$2?1sQ!%=J5YHE2a(=~=!L%1@8O=GxzqR)4eM-~xZ@^oO1(PLGCj37XpA8G#dZc+ zki36+`+@(i_rvh_GwakiGY^_sqA;^pes8qmMym8_E<3AWA~kO)5u3|=WvBdR94RQm zJC_)Yi~?6onx!##+xwobm-HTU@92ldL*_zuSc;~r!Xy+*vYl+}bExB8_vmj7l_lq| z*oe_{ImyND7zU@41=nke8w{AoRLON zp=hC(e<;921Wsokmk_r|3b@~F{+>DQXlYAo}x=F7cDKl zZpgWV+{AK$%{dqE*>5)KSS9THh+IZ@9VgG(JKeMxqD(K;^YLMVaxxcxw>X0D*+FtL z0j>}DxmWysyf=>Yy4Pa;{w5dK!=KF^a2|y$I2i8Eh!UtfFt5fVGZIco7Jrj15Qr;) z$XbZG#Uvf9iuMDVgIWhrt$6{MhsDF+`w2~xUc4#693%by;7oFJJa;1|oeVSb7HF^H ztU-ZG_%unSp6VHwb=-K(_YF7@)LP~~c!bD@^|QZX!`{K-lywCv^v%`S(;OW8(~OIZ z1k2a9nKt`woLF(192Zt9iktWYDAC+p0yO%XRLt>%qfn@~9GBx4{TNc}GhvsBrk}an z%RTtylK~YEZ;VqnL`c3hjx*7Wr`nwhQ__b80d?zJiiCy})vto|zgS7}&80JT(@tg<#ogXsVg7-dzxo>@n zAo1Cn6?CA+K*qgwbTr8_I>HH9AfSerfIW`tRLH=WO^2ds>B*AhGFFR#8u}p`QrkkK z1+MGwW}f!RwN^XK14nl&2~X!&Q)W+7={oEj3L4`F1jW?-OYY^VtnlBuGlz$Bb)6|a5m?qqi+}uw zq3qWX77#S!U^kVZl1~Yqgj;UlV_v_U(z?TY+@#}dv+$;a1Y@FQ<F_c18uJ|6SF)`JG>v-@|xovr=kQO@Az zavLfcrF?oiLBD`+mzZpWFwKvgu@^PvJvA@Ttn6Mow<+a`-Tz?W2R|&4Y#kP--Faw6 zb!M<(BI9XVs#~7al76Bm`Dm6r!FN7bcxPjE9iiGwq9BYO3#}w?DeM*5RKhxHdfs z+;Lx$`x-l$j~=_a`7KMEM*x5OkAh*a4IHB>rPe7-w>LRb;N(2MQ{d@r_O`u*&>ZH( z4Ta!==$*eix_yq4FstkM_L4wfzQsAcAFLb zWv4T;8~5=Z@4QP`3#@TM!^1bT>H}>^lf_FoLWjY|VeDVQhY4-e09L<{;B+UUVCv#JOb2Wo{(@`AVL%O1ir1~jFPah)<( zzhNO6SFs^+d92Ove^?ncnIM6(N1j<0!$k4Lu@lYGSKDW$Ccz<}ZV66sj09eK=hx1F ztyuWbL08juipEV~vhFETe2|)p^%2C?`sRpnisY`!f=Cg~2K+%QbGt%`S@@WseF+#g z%nN;n|2h%YOC6jPN#{B1`N1pj`;BrDU#c-a&x&Ts#~LZ3{ZoPsBCX!!tP>Hj5-0X= zb2R+#7tMS6YG5T)u{CGhv|aPD?V%of&3Sri?Zt`45M$FGd+?EY8sptNqt!{KKJ&lK znYP*vMVj)Wdp;QfFkIK@yC;Q__?_JMjC z`(vhskt;e4ULi3P_S&beONuO+3Ad@(g*W5X#qZsn9L1UV3y!Z59hNO|{|z|V+#m5R zQl494N0wW5Cd3Cdd(T$3L2G;OT=tdscJN_n`+ZIfFci+N3bjAkV2!;e=YOy(l>(4E zZpu4(0+HrI?~4*2s*7U0kWCjRT0E~!X|fT!vyZ!5KA%Y=ig(knlbx!U2}Fi@v&+QXd88u zaIH;w$%PK7$d$U=PTw<6ySugvUFfS1SoT*nD3Qb;6eLnXq&U?!Me)w@ZTj}*KC~6_ zL9w^{Hhl&F7OSt!zFU53-348D;0O%bJey7w-Rj9(8pCL!FJ;*7PYo!(MsYLf*4*F{ zY|a?9y+HOtT;7v|ZT!;KLn0G%uh9>R$g=z&02_qi^9v>43J)T63y;wcG&YY+lOSqY zGXHAQn}plthJ+Kyi(>_Xv>8|JGX3?U9>*KuOq>RySTYQrnyY4XBKB=Dq+W6~23sDV zc7W?ZI!6OlPG|s=TCz>AWO!OTYnGt%GtWedh`c#3HAowN)#s#38emf9tyt+$H65+Y zG!et@_{4_^IqzpAi6q7ZARdxLxeefo>73@LZ7fez6F~wdPEk5Scqlm_~m+)RDJF z^*2YygKH78dl4{6%!F8r=DE+TTWZ-~N*fig#~DeeNr04FEmZbqO&!a855r_EpNIsQH$jFdn zSM99%y{}-cSKa*hB^Wy2fla=Sn)A%Z>tej3DSmu&C>@DFN$Pm{YkDhiK9!9BUUReJ z7IWIvcPulVtJYnfFNnAg0EWXEci8aB=mk~lNMv-|{)DQr|EP(kQ&M`Sfw|h?4tZQ{ z0vV`(*K?j~gT}j^7qx9Wknzwf7XU~M^Sibm_DGPKCfLH`#i~y85b0Vi0MtDp^ZZ9- zp5c-fAR-MCcR&29gKRSL6aE@|WC~tYt220Dw<%w?9dfp|p`(s3{_>C9?lkQ8eozB> zi=LwCtYgv}VeNtli3~u15#MVrV{kGbh+cecP{)qzynBr1JQ*Y=SNk^R4oLG)$`hX?CI zl^^9F+oxC*9Y)gIZqm}t!CLlUlnjJ$# z#eH2<0QWGAI5I4PG_3MVa$oapgudRDlNm)fT@K~s3OgG3^giR0kB>63vLn@3*H{a{ zD#I?kjMV)J1;-oAPa0nl{Skq%4d-PcZqtyA>c9Fy3TN<}epm3$mQnQ9`FgsGB69la z)Jw8!?HPu4`@BBqKuSkZl59Q5m>Ze+TA$d;Xa4b`0uP*SoKA-k_%)NM69ASdDEf2H zo!h`C?eoENAqshEfF&wnX(R>l*z71yrCETdCCI{x>oRb}4Mp#3A{eE-9Mz6yEleJJ zcm~*mLu|IERuBzEX!Xp1V*ie4`hk>#KhR#VR-gMdKnS}h>Zm`s^OKYauZ#|kN0TNi zdqXx+cp>Q7XnvI`vXLo(PJS}k#qcGKBFwvUIQX!)d)+&IflIeM#Y4O4uxYS#YK}Qr z4}0`UD{MZ&Oxb*PMeC^rQ{k7i)lSAA`>DI3DImjIKX<)yAeF8leQL$D7IV;Fkyh-He2PHpk*06|@lv z2GJHAc+`PoyhRh|+KMUipCD!N2z}Fl*KT=z`K8uhN8pI>Z{|p-36U%&X!-|f?tl%j z8?%*`u@@eKF5lCD7zbXsV|=ZeVK z-@)f%t-1BO4kYD`c-ma%3mAPcmG$|&j{OrY;!rCmzJ-q>(*GFl1pyBrDAh_8uuzmLqJng!cM&O}gc^`g zq9C9mBGP;B1dvW3M2hs#LI^EHKw1KX7D__k-QIKWbMNy$XN>pL`|XawhcGrQ$l80& zwKC`b|C{()grS7I*2oO!ycN$2?y`GY28HrpiSrYHJG*_*A<}9YhssET;zmr6#&mkZ z!l8L>_+0fe=Bu;(aMG}9u$t5a;a-r}np#H)lJALKFJUc_r)*<{PlWnUG|84N zF+Q>WnU}Qutc@f7Fs-h?=2Zi<*R$lx*Ugvp*-c!48pE&tgFl_vl7IP24y%-#%RrWB zk7y1@0Oty%HwTP5AeI#VxEVj+c*rW(=c#<(`m@gTLyrpknbKU4K+1QmE6*FPn@8U0|*sju8dwVLcIJE}5xpKvSd_HQ8%57m$ zI($)U;Rcx|X?9Xg9cP0LNUD+VO?NE4sWAo+A-C7f8pWqa?#Em%R-IjITur|}Qpo2` z%D?29wi*ObP3%RCi&94#g;JjJvz{^hD7PjPWA9@`9&~ecD|1T-at^OBlAfF#e_dCr zEK5&#yZxgk|?smf7R%JslUjHG?KZCkZs#PiQgQaE^fgdr5hioq1`mKEw#wJ<)P8`6 z#L{!k!BRAG9ZY*SCaQ;h8-X#H9d6u7F|7BLrF$mhy1ozKWl zM9O>qs%g1}ok$QMlf0f~JZG8@LVx}PvkpR~x^j=v|0q7PK+uwZU7xz=(JMAbQUB~z z@jhAThY~Y7RndFw!d8!H`N;^Zet8M+aLGV*00*`_y(7pe+n|%$Qz9YA`!Q^9cO?l= z9*tUYV?=$*xIKNiX07lF0gwb+PTo3{b)F51;0RCbh&0w&H-+RBJI~%8TjXMWFQe_w z#QW+S*{Eu?ruKu5;adHc^;65#j38=Jd#}-S>u{||gZhC@GTfXu8WM;w@w%sf3Q1fT z@G^|AH~P08wjk|CLoLPG0a5*H6D;}`oc3xvI`&ud&yK&3jdIOPHW2DHt-pYZrB~s zdcQM|pVbNO^CV_m_b;JsSKdQ|^jRInZpFZ7wVjo4S^BdB8BHTfL2H}^ zzt^p&75$m!8VZ)*Kqfb_GMKHTysX8$uvqdB_AJiyG)sSTNgW=hdH$9I>Vt~|B9dQD zU%a^;*t-zan_uYMV4n$jaxYE_JT<0p3j_B=H^iHwf32`|b{TvN!=!ryyf|$7E-L~N z$}kIQ+t9JUN|j7DmiT%xX^ z3YA?w;vama1TK+nv(h4c0itja#14T11fB_FirN(-+PZpj#l{ljkCb}mOq!^~;%Tj$ z%(9(~t(`^P%yEx|5}xdrOSN`M0J4ORS*bXf}7WpriyF#G2rPfFAsu&(v~rM6==Rj%OH;cbBt<&l~POKmDR zDRnVzJ@R*VkF?vZy_CI(Q0v&UV@~@e<;eV$YCEEWzE)KTv*v-Y(yNihm&NLe5ohDw z5FlcveKGV4M{KS8j8~t|d zV-$MnP7a&IGZoPsgo~h2*KB{lBy@%Kyr@hTwD5;;vRdoB^Xqo)y-bM}cjp44{zHv> z10o4o;?3+$56B1Ld>HCbS;J@~Ay%>J;#tJbg!9+0^H%PMp?O@2TogolZRec&mp3vC z;pk&$cpSms!~#VC=@klu+ZkcCBuJe@11X4Ln|h~s~qS5L;>QI5VZepL;KWi`&7_yHRywUB*W>FAKTwL`58xD zgLJ*BaD@H)^uTgEe~~qyDM`|8k4F_I#~kL>KBzO7Ms&%oS>O$imU5!*U}c2IHw$b8 zz^{)crQetAl81IuLnG{;j9iESl7D;nYl*s#WrYi(@0J+wl{Zt1 zK>%5#LnL-~ej*xoV^p8`X+!3dj=Ya=wm_CYaamA{h8b`#$!#*Us$pJCP1^?Kv`78DYqNI}as(!|Y_ZmhQ@Z+iU`93h#Gl~BIEZ3F-GdtL5Ios>>F{oGO_G^E4H zV!+PSX$yofxLr2=TSZaTFaHmiP{r!hPnjFe^WJYCB?&De_<0O+nx7B0Uk>8Io-HGd z89Zs>n6JaQ38Ea|yX`gY4}_CNe-=iA0O{=q;QT_3c!@VIC+rl|)hSSoV6{S*e4QFG zmFhCNu!5>4p8bja1)t%3gQ~M6KePd_VK($iI1VGEfO34Crf5tG=Q?))IiRh{d^FF$ z0s=wf5UY%IpmU3oS`W^o(I+jpzI|tBH`e;8g+d=Jv5HpXL{6+i6bktRUYv3Bd5Biv zhdNhG$9WX=^>9$n=FFN1bnNu5gUt95qqrK_Hd0GSmJMjT}N6O>iB&NVR z<7cqCHI#u*I5YR^K=K`JidZFl9N3*cAlLomK+=_#F04O$T|Ph1x*Hu)3BV}16B`Bf z3`bmyJ_zbhjeA8Ygy2dT9|w*%fy@uu8uUi)W&R5_WLBLn4(@k^<-10fa0e_4!)E5B z)$(({Z`QwDkIUDZ)PKGr<>%2%(wR1IQswPe>};|(-yiu{6fy243%N}^=kFfDVP9wI zd(Uae(s7I0mwr#sX(Vcc%V{A38g&LZlCV(^tg|j~0wGkw%N0*{=X6 zV~G$OE^y*|;>y%FuL~7El={h#WM203WM6n`a`f7{lmXqh>S>IYCeCLuUIPlweB1V& zYgp3PuGG{rtAE8x_#3X5ZGf}IO}cT#Gpz^^5bPDT+e$Tso;ZF+$~pe^G%Bb2Vyhnm zCC554lUk;2I1-}8loF&jU0rAs2NaE>ywkSwnVdk5C7vz?2rKVNo`Ch1XMk+ZXXO4Q z?d$YSE<3z5f<6##^?Eyo$M(6hM(n7OUVJo{+7vQlGBaRdOC_I%_fiFhV9{Frl)iX zbuka7W&OUQ{M?oBG!4;09N{L?|E8<&XS8VHPrKSDyehE*-4YIIAb+-rZd%XtZ5o<| z9l&f1AETqCu9q=QTNe?H7T*uqs&XR*>DkPj#G&M3AxDv@Nia(6+eg__9*_27Ny`tR zfBJ4WUbk4Qi4=iQS=1N+cgE0MlF#Fer&so$bS4w;kyol@$L3akmZwwb;+AsUO8oho zi@rephqT)3`~&zXeox|c&a!>q>+eDdjiNo)OR{VYcKh|Nzlll)8flkLim)`ftp7Yu zirvD%#wD(-4x_Mi!zg1sq7yd$M;~#tM8sS*JV(BmF|jqYGKWI!zUQ6L0+}6*^aAx#>r|zQ%gfsL4<7@$ zY_qb7+{t7g={rm+M%r<19D!`|1xCvAYx)|IM8BSe7Xfq%F68H@$-TX~&oXV{Om%P{ z2tNBR!Kpq>W2q#9H88U?Fk|T@IFw1V!4wsnq5MF*^$BtS5LflegZ$NsPid(*#_5_U z2td-)YdSaM(w0p)(Lf=10&s`r(^*ql4RR#Cl& zi`_S+jTu+Q?#Qq|e(tu*)$kAfkI=1Sr{La}C1KLWBSJ-2Yp7+P5LWuP7k}GtfIXAo z%6jtc2u4JtzL2bRDuS;%(ydJB!BHu@NT$sGf2PVU>lI%-kQvN_m+!+ zT$^*Zj4yhsVvXoLky|umZ7}rsD#M%QiNTAO<>-jEM-ATEmECVvC^(3uYMW>~A5L>L{$qv9o1Y5Z1rbYo|bL^7q#Jy~2)iUzVZ@^VY3fQ~x zESR?2II<)wWjI7JFAz`r1f5*g!CA?TKQkYuj9@6#upQrY!kZFjXG+=B(9Z2mL7Ep0 zixRY4WV#H^(>s9_Ww2kGFh5!tj$2)Ee{I=FZFyzMU98;nmUp#sIX@+T%7Tq3jO>>o zlu}pcj10{3Yh5QA!lUbm2AQAFagTRjBjTK2ARuyt-#!!5BYV9sL3>!^n-nOv#w9Ak zKlcEC+3(7qjK8U4vw_)!dtCO2qhn_hnXcJO;AncFcmbVesiLQ8;crh!XwZ@}x2D?< zxu*elW5|^>fw9XkPSiMUcNuJ7zI3P=NJj1k|LN~P-n6Bc5nZhR;3_?-7$0R1%-Px39cwqLDw_C<`h_l}$3we5>x_q-Mr zc@NgKN)y}Uelxbjnj{?`l**C~>6^U+&lann=hZxls`6)9en^>qk6_|Bq$|~ZMwQ;$ zEs3?WtwqD%KqeY(N#lyNcL-mDCF@7Kqx z3qrJX!_Qhrv!kvh58+mg!5;8-ww z-E!zc&?zFfjMGc|Nqz|iD=M5KtAt1_tD~(+OU!o*n_s}JhAjRQgL2(He)U04`pq)m zrdq7;5~D=(h4cIRb45W@L2lfsgt|x%{d`SvJ^H?M;ZFgI$VRSZCK->>ky8-1PVtn< zm|D1z!!ASRGrau*NCdV-8C!;j2{Jqw);381-@Q-qY}&~GHGQ9Npo?6`UENapP*=JptywroqP4-w?k-ce?6EB9zob@Db1i?dEzbk$LSovj-+&Rj~& ziNfMz=Tn&%Pm-lh5iIo1oUtVFyTN_Ng8ZxAx;D{AcZv^MPgg(`EvMb;n#*SHQJ9;g z*l!Ql#(>k9b<(tIY077S=XE-(B^ zL_+29?quG8FfGQPvL^Mi-g4VLS#Q%&w}{O_fDgYJA~!7+B4<-5uyyU zK`*yh_?)=K|6#G1E`}ZKtFF6QznyWHcqz}+6Woafha zwo>V6uc}Wn&c*h_p(PpVJNF6srnl*yh?=l2Xx?onMk@RX|H#a2{1d#B=_VmV`WoEs z5WZFpJt&~7B8i8^c7Ov~c0GD7k+N}0G)5?tMI{vD7;A5L2}G+%zCjC4#mss^;+8v@Evp@lqg9y?i6qJ*Hv zcE?TDnkBG}#4mk{6S~$4$w@h(4BzUBixnPAbVZhi|5Z_`Jw`SLkGeBsgDpeE`D2}`UNk^e zgrh2YeN%nrQ5gn0Kb*^&r7zi&&UE#YectN*l(ZaD3$;Q*;}h|ccxg7lDaR0TQZh5I z+zt3nyRA+>8k^4-KXXpXpk*6$@9xf*=gr@<+QQ-!Q?D)m@mzjvd}oyV9@M2Hi!foq z2f!#ZMqVdpPq0Qv{n}HX)aAkU4#7)Fbth7Q3mQ5DpcKxGjD(E|6I?8i>zykbbZIU- z)U4y`;PZVPeVFzx{J6t}&Yqu?V-%m10J%kgGEMRXJIHxDTg_e=NwV$vHR;JAWbh-I zsoo9MtQ^(f{`uvU9v_X-HRqwJ{nQxqNCnAG?0KCRL<+g^y|HY*45)K zQu1vra{;{yjdK~OPPkV_HqvEjI_9%yng6FS*D!6x%PZuxO&uJ3v8zu~II%1$SrXq_ zikhY_JW0tH&oYiuL)lC!7VmP`E3EUOTpPKad2+A~|X-6#k5p71ke; zntv-@kRO&U5*a0X<&`4Ni`q$3|A^(Bt*XJ41cCRve@q6J3X-YM=6^1wm=4M;z*q^N3nPXHfpF z>Nfki{?BFU?-qS(idsbkb^eHTvd%N*UMnxTQ8)AyD>8A_ zXlYJ(JFD{~gXs2TM99A>S3*9=PUSKKLcSc+kGPr`mZq)#$!H1F4~J57g`PgbuP+u{ z)h0R3er|JFyElK$h$Un<(Dr@~ z{j#Z4yKrK49r~(IVcL>yAooZBJrZY${b0_Nx9WC63EwYAsK2bM!6sx7$^aFzRL3La zl5YA`2lx7|_~dV0b(rs;cE|_}{*iZ%UF1xL=V?S%KLe}NT{)(b-u$K1Wd)BhoA7Z9 zP|C!^O~DVT1BW{d9geT-gY~%>io^Eq=KN5OLWFgL5=m z1?=s0Zjq88$ZKbPz}T&iKCQ;iv$ds!piH^0n$?_0v64q`OjgN&HRW8vc9-vU5|$ z6}pQ$pv&=MwEkRY_Cb`dl#`HJ;fKdw_=f8NQ=zOv=lNx#=FYK0GrweYZuHAIU;j62 zw=={eDr z#U%dwgu$SNMyp}!!6D#rX62!RJ%kIl{WgJ?G&j=CJ9pk2XV#ji-(gY^&^5V5R<}Cy zzkr4RxC6RR-~M^M?C!26@}6Grr^_sfWIvZj}7bG*qqk*=J}mdXW5PVwp#W6lfClKpPm;VY}J0{`4Rmrx%}?nf&tvl z%m2AZ{=>MBekMHso4xqg!}QRPQHTs81f4(w+)y_wKfAX@l{>`2=*_XU-=IAe&j!Yt zhcVN80}Ti7pxXOql}Ld&$H#f;=(^;#YclTe4&2#zj+6uPly;^ z`}fZHKd*inzIkZF_u83U5y)6RnL4ZndF#i1B{|)lMIH#^Z%&d5!eeul4 zf5)AFzj}BGpo|v=;*HB zzk1m6o0XKP|Ksi7y{{`@lz^f4tMcssc4UU9z}s#~6=7!o+o*Z~080BZ#H9Y?Eb%`x zc18C#pzC2=F!0FyU+d{#|Jg4cVCX}aqRW3fa`2x(yuMxV@x3xECp6{ripqKf}!gP1*gaIiJ7FbyNb zRCoVYeE5v}CFI)43kk0SfVSjGaK_i|_Gy2ayG*+-iPfLZoW1hJ4A^X(xYLziL^2)# zXf6Q7*L(-)HZKjdUNf8PY&&*E*X*rbZ+sE~c7%7S!5Zbkv->6u-`NUnMPwfTy*0iK zW*_t&1oX`@p93{$X(oQ~VWxGnZ!bgrmH`fATa=mW*=sY4n>6D?MI`*))r zNtdzPXGIK)zD{QN16+D3Mk}iq9Aeatfc^P|1x8w(M~##H7Fvd7XA(e^=>u>!Q|mh7 z#Lr1Ll$NJ3DFi^kB?8ELB|E9!=BmY6+%K9;7s|=#B#AA82?V!kGtY5wdMr0`tqfuwPb6D z6-}xgqmyJ{>H8~H11q!_AAa*Oi}a9TnC04wt;(;u_+l$&PW>s= zM_Ft?q7#mic9mWee)m#Z06YYBFhY`u;ixpW#O-CV+jIO%v%i9ViIG^9k+4$u%d|^I z;zDnyg1p#AG!|d{SvYo_j5`l-Hlgfr$MEzZ;Xhxq#U5SGN> zM2#aF;YbtJOh+d{BFI%D_i zcp>rWVfLrpi`5POM7*+FmFBV96FW-Zz2ysH#)0fmCG%9C?3B|Eu?9@<5Zsj!quilZvoA5(!hr4 zv@^h2>sEM7Ab`AlitjXpS`T;D)~=c```dBuv+EAp^rwzLnEY{y)54KB&cTa1Q1V|q zc11(4Y*qFQ`{N7UXR}YT3C$YDemV>Nv-?4a(C@EBp19msH-r)|A~UaL9&-M9?rSX1 zO`b0|+$pK3>Ec5~i9d9BZDp-*O@Fb^fSK-1)*P6$Hl)uYtWQSkf|QPa4B+F7t7D6(P__dDems$@x zhx`^Z7Dvr}6=b&h0EWZZ1?TOyOJVoDi-RXXN;2Q9-|(kD*ueQ8a_vp~OuF*kLC_`YI}8fLKh)S>qjh!%6Ku<;fL|sIjvQxf zDvy;OXu2+g%o-Vbqx#B7Db}lM*ui*H2es=FajUZH4ck)rjI%m6T=BrBAcdoWC2%Q3 z``W4_BIr_^BcDXzUz0V)Ru9yar|xv}rYUXnuDzGU`;sJB(ATW9`y-}VH!@GKc;4&3 zZELKuY;>c#LkjCr04HJih&C&LbIz_Ub-kG{KizNia*!4(BDwNQT#|jL zL0bQYl|Om8Ux_@qrow-qE7d4{Sd~E^S%rNMs_|2I8BL%n?R^PpjrBxVb4irpGT4&s znlJm$`=A+z#OWK&-=e3uX*QOS$8Cb!~vp1MJKr%P%X~K721ODI;3J=n&ss zYqF1XX>(YLZ@Qo0@XYRt2}yH_1oqjUFHBj#r=!#>hTI-jAZ3K5PI}OI@u^;Yf0ivW zNsqZ}<`3?+U8?7}^2f2W4__Rx4NkmGPWPYQU)))F0Z=8M`2zV~>FR=Up%j*p^>}j8ZZr$*)lY||$o9o|@h8U?Ni@m#?|LQbnrP%BE2&b7kaLU7 zbU>TJ#va=mndJ~2*sIf4mlQQiTbw*v>A$~q-gi4%RrF)Z_mdYG1lPM42g9{r1WNdn z;##-q0NT*Ux!iopdul&nRR3{)3K$XA;)qWEX3`6{xpE>kGc*Ec>Yp}oeK4VD6ljke zpE3n1$lyqiB}Qy!sxW(V1}$Ez`+l5pWc2zs|Kl$kaOwWO*5AUVs5a*nczQ(R}9oVFe z>ee4I%AI5Fy;bFM;q&v28KA^;PX7ymzUEsHexY^Z*UJ00C>J%dr1CXm5q5Q#Vb8nh zRQpqT;EgD;wa>D%g_5Awch-KCi@rM#2qL`YWd#@=1-w}EUZ=(~YaYd{mCVz$IPD+X z-U>J?G5CNjwAPOo&P$C1V_7vS~J0_mntRAl5}`sx7XS#!9KjG*MIGs zgRtwDYu70cvZNmKLzh}u8Q|B8D7=LIe&6_EPBZtbb*&7d^*0j^s)3_Iphkv-(z-J@ z_}e%Kc<2eI820MjZ)eZDrocb^c%Kvc@We4KyAh`67~JH?6hT9!wzu#~kTE3sz^% zj4ilV2$rDx+30wdw92!z$E|ES_luNoX!bgW1Ouvs9OWzZfULFhoq_((+Dmp#2YIOQzpEN$wR4^DyCff|@MMa!GMa`Das0b3UyPEY3d6jDB;nt(?3?k)QKCYS(x6{`t>YxbWto;7Q4O8Ax)oUvgdFgd2fw zk#^J4tk!T3hZ5I88jREF2v}vi^P=QUKUCnZ#6?Wlsa+*^m@r)2^IP4BMp}NDlYXpr zs&wiX-6RCJn}`mJ_Es2I{F`Jm`JQB5{afY@##X`v!m@m1C?=n;5)rFpv4Zmu9YPV}2$Qy~UiWNH?cS@JejXn&u}9$4{_xQ>9C)z) z+f`j@f3B1}gU&2x<>}j)8I2=TSj@G1o?32$oCH>W>+E^`8Y4>-Wz<}IRdIhLCWtqr z6K{T~;@5JD)0@1N;?f70^t3VrYMu1`CO|7goqUj}y@Cip%50W6TSQ?Uu`dzigHK@Z z5Fj{98&sMgnfvEJo# zW%cq$2VOG*lt8jS%G&MKkXb(wK#8p}I`^sFz_7C_NR31;>H3@)bIWa0@PVHJ4VQF$If63cok zEv9-QPEDID!5c51Fg%zf9CG;R228_(`fj(Kx3SFKUrbSQQN(m>=@!_&?v~gAV;b#) z7W-O=26Sha3D-?vuFlDbSD~d-QpgHh;S?*`{criw#o9Ws8nq@c7o|Z8_yeJ73yPc3 zQNLh02t5Q4U>;$+V+5+U{4QSe_`O&I)qXN&90gByD!p;p3B;klK-}VGU7Kr7&@8lS zO)e`?Ufi(bS!agraC6N8EVBJ*k8)bSZX=A_x5;@^ZhC{+xBF&71IY5@2@q_xmCF{w ztA=I;?V8Wde|$2ta!3oPP7OL?xmYkXy|XwuWle6LR9GWpy>*(}SvB5)kR^f38v6!iI}7d1 z#tLg=9KvU-7YfSA8Ar2=c@z<;e2IV=6n@c&Y7ulK6T2e^$Mg<-5Ine(rynZirH(Tc z)JFLlS@~T|P>fYeU@ml4krO$h*3IX!?~J)dtzXWPx*&Ct-Z>p?z^$o1hK==6sNbuG z!5cb~Ycg&|?UD2_1%Uo-y28AX2x8I;T!15pocNv$^KtYNjBV~|_#cmEmfZQiS#2x( z{)jWKXB0oscI8JX|0Y!9pK^oQeLfV68N>)xEyZZd4uLusWD7vaznjWU4whqa-JBmM z206PtI{9(lfgFLEycL9FUc%M{&*N>i$+;SRbzD0T)Pz z`Xoz+@Um(!F8yp8vys$EydtF{I%NNwErY6NzaGrdNQ;@*K)M5#K#7(ihF2@M#9eVz z4HAoBQ!_A+Pkc*{f^E*NQ)^(lS^f@e zP{0hx7TUU0{SW z(Z9#fXJ}m>`50P!!>83&p=FH)T&Wtgik7_k*YCohlRIHyays8=PiEJlWPh^~&!VKJp8{IH? zkY;N-9!NVNzbkMKr{XV^Z(%+pKRD+aBdD{uL+@yAxmIr45KTSrIBH$uedqpG>AjSX z?}|%6v#e4Q&Ff#?G2_L^tY6D#LVdPM*v?_o%aUxPl$MYpn4E)wmdq~e(9IK zwkH8O+X(U$4gfx(Ht_mPD87%)*wWGQxbOxz(heS-ykT$Qu^-24zTxfpxU#QEu|4jI ze_a`sH=pLIb;f0<@h7uVq$H$wU+ZRZt8TK=gpESs??tbU58CgYtgaC-2u-jSXN0sR zaaeIZjCud~lItbFrnfo;$PN~L2)1< zrYze~DBPZkN^SY(1w{=28}}hx&BT?oWc!(+>RIiy6Uk|`V)pvRgFB_i_Ip_5*B>gT zbWE6KhX^kjjRxTB`29xy)b8c3_N;UqCCoH9WN@BOdbK{hR+lqDo8ConN}l;piiBRk zIHj^Fuw=PEEPvC<=ilerh&SFUcz$;t%hL0M(^~%h0~l|x@sD9TBR zzG~{#5+#=^?UC?xaXB&(j#1>v&+K2{xg1;w0PySHNjRKia7c%Qxw&~(EP=wFV}wza ztI~e8w+^IDU?KPOusV7Ez(=RnSYxrLw}!TeCFPzGx0)(2vjgZUj}@2DHO&O`u7g{k?3K%5RarOLEw?ixMJ`bhTuyNNi{ z{E53cu<`QFYZ}5IUJKmneQD76>Di4D{V}vOzE2D>_Hu?gRBia7SCD$w6VU=N5-|87 zRbI^3XmIc_3)J*;U=O*hpx}Ku)p9{Hbdy7Z*fpzryce(|FN-%XeO=FOv}?=xQnWn2 zJi!OQHS&~5mQc{7E2y2E1a+p#XAHbUDQf|)o;5lAoz9M}E8m{W^xQ*B>hE#m9KJgp zc30%z?3Fxm((d4A6twWL&Q`Y&F+z`D7JkG|A+g|+&f&qNpm2S&<@jH!|f`oWT zO6mLIG_)Hm#@abbk?L3>5})THkrwZHA25R9kG2>qNL9M}*4uTPB&!)RR*Rwv#9DV#+wh^wZ5JXTnLDg#W50o1Y@cpFuoh3V<16>IYw!yNyJ z%;(eInA$TTLpzcYyQ8rRrgMogKeQ!M^Y^jmLMwNu6t|vH68|RZ)bm{+WqC%lUhrUr zGw=+lS+AF`TU}G*rJH~%K<`Qh+JDtJ_~U)utkEg_{jh$O+gFUo|B9w?515>{WP~ zrvE&FI5ueJXNG&sA>o-|0WF$*HK&zQwzw0*e{dxhlj5T>=@HJWk-tD)$7=AOx1JVI ztZ4uYk;ue)8_e=B&caJeoK=1B!F;T~#%OS|eQ8Q8*2o;aiXe%%e6kpgW3{d>+5L$ZwRhy>VKqL=MOeJ*w<$ zx4Sd8(xDUVLiIMz-sTG8@*{F=J^E#4#h%oy1UY(}0TuS8E*CU-4Lm5%DfkXDM>1=C zmn`7!w;zqUPT6$`OetR$R^|1JHFv{P#Dov%AY}9|%B|&qOwNvwVAwAyt^6oQ?Xp#e zg;P_8BjHCOjQTBx>*X+HW0CIt=NZRr-l)8mTb!y2(G`gnxBUE&^!Z~5pHLTr>6#p8 zK<6_a9A!$>L8iqaHORirn^}yMX(>oKvDO+Pe%{iF+N@~1N-mRSrl0tE&;4I4fXLiO z)LLu&=xWX4bl!jp{ALjv;yvArz#DH0PhxA|tNbI4xhI%elms11W(b8YiQFm2fKtqo zbNdYoewtl|N1E5X3_w|DOr_?Fk)~I7P*dP%OwD}i;M(N{@M_H{n3^`GThw;)T+Fg> zQE~U#Ed0c~(Evk7EV3*}5Tt5_epGB$ZmJMSa6@$42jLbYHFnM7trwLxezDnbIZNqS zND~4g)^8K~bLus8hfX|6G1Z0RBsLhu>oaeRI9afcJZ-f+QbIW;T5jz#Kbi5CzYC6z zft2RsNi$WZ-Nfm`(IdLG@4<)8Gjm_7(?4lLh1v66qaY^E_Iz{v?q zHS*-9EuhJY)!>=j6J3|`#@&XiZ_Q+}Ia-{9ExGD>#h#s7$bcTS4{RjFWO}sQsK!5T z^}cl1T&J!A)peAK4Yx_dV6t3Mh_sAs|0Wu6HU(cehmjR6tq8VOat{5HTLjoW58RV2 z8IG1~&9~}rO|3BA(dj#0`B8p=@hK5@MnXW^{JQqC;2w*omk7Z{+5Uq9(0azDIVkDf zU?;uf*4+5-j3bzgY&P<@t^FCyNKL7QsE4Ca)^*_MCp~frrf(q!u_r%hc~ZaNV&?4E zf?uV5EMKM9oQ@tOE~^9*%E_d7Yw-S;8ymk^UBgXxj-&2BVh4LNB#uve4BLd&1W-NL88&R5O3?e zGw5)t-N$WOcETEwoPfJEikM0>V{_t>c->1MdG;dq{SDD(`)gS}8l`a+Sw$^oi)Czr zqyiBgye(hQ*q=cP-#5)-%r@;W9#w2eq6GFGHRaY`9RL`Q3~S#B`wY|O#{)!&lV96L z&E;9)0*;qoCx&JF@u}o$*y>U#g!KpR@uPWX-bZ+ybm(RgXyd}+_yCOK{7tUAr*9}< z+XKn~H(|?H>pz{}&J2vKF_QT3jw)70K%3#b3)k2ObmQL@)l`=H++5+UIC@)yCd!~& z&hYY-UG*OmM?MTYM%bguaD4*0tQVW=*GJz3a`u%0s<{yQpiBYf{wsyC9?;xbHj1R- zh8xS2wYh~HOYek+#5w5d)XPIqRs$y;T#B}!Drey<%pOEyI$j(%tT|Y#fCW+Ph4Yx%Q@NR>%MXawa)!-&I2!FLmIME~-KqSe?u zi4Y?UaPJ$PmzT>MQryZ=A8HP=sAeqM#~tt*wuf68Zj2b^QGz>i>XEVa*Nme_Tg#$A za5PqUYI;J34QsfgKmBqvwKP1%^kH#dz}7%QglT0dUG;8g_rw<^AO?c?@$ZaHY<`%v zOim1<-5iQbTZ#;4F z)mO?iebLJ&;B10dTc)g?eePB@fe*G-%=Dk9Ja7#GYg=~!;QIGZ!hzO=O5JyH%b1d* zP5qN-{KAi{jTK3$rnne22kl3XMShtPdFE+_-bWDM*4TczFT`E2o~S`(b4MuApnQJpDGG@6?7Cs`Tj=xjZSZAX3V*PafGU zrbMZc8-oSTqBe772*pZKes7siqy?S!9Hf&SB6q%rX6fnw;G&ZZ4xI z<<+0~!qzG$0R&BX(Nv1oS|jn~W4K_xzlc}zgG~(oQ6GK3b`noPAzJW0q>MHJKL{xd zNUWo_9!>2VK}-%W2Epe?p1mfGB36ca$Y03TTlB%)QO4%&+1{ygx4p>5{d_{B92j+v zC*{^)@$U6X@sX8$qusLIJ%V|yO-`iW?_7psTAR+TjSsh7CyA7ha!~OZ-hdY&*!j0- zct*A;1PCfOl2CoFGp6z(+`?o+WM8YSlC^`=tdK%K^hZAN!h%*+rn*=YgI=W+P^{R#Y?h;+^^L!5 z<#1a#y6#8ZdlXUR0ijSHs}>^MytL&9v(h;lfok$op z5i5*LK_{RL7jE7 z31*h0mdN%=?WsqM;$zS5^Z*$}pd5SuX687r_0a?l57=WJJ(d<}p?^qh;~@!=4fg$)+>d57xg^1%>%%EFID|vE zJ|VB;Y%?HNZoMNo>5cAjyvO3YgIzumRFXj5rCrubunsa!{?*)sO=zqX$9x0XKOuUv zyap;$jd4IOaC!HAy+-?BzAdyK*+^i&1NU!ZlG)Q@D|bVT^dp1rg%z9EM_&0Fe^i*U zkpp3)wJaYRU$cSix@hTZIq*?lmYQADAbA&XqlzrG+_W9uLnaeGU63rTJy5=FO?Rrk5ujq*2*+$9eWOUu7)`_nJq9s;ji-2w_#MaF4T^8ylj{ zt_&HLd;?r0CFm2E32og*qAPFDk1VkG!t*Crr@GsY>`PCMA9EA;j;Z+!3tLt?`~*5{ zOzn@FoUbWSCL(D5c-Rr9C-z=24*smrbjPDzY+g{f$Ot^jhcxs>{aa`NexRL)m|F#Zfq1+ifOkDO6 zUVQj8V+j3&h?I9-2KE(sDh7iPgIYm1BhN(`2g_-`vKJ2yTSdjfP;KfAoq>>dNjepU zQb_AgqiI}F)u$8D#`1G)?oHG&jSfya{N1u4-_1ybx zuWr^uve!LQ=xeQhCJQh*xRT`Mh^yq~7o5XSqpK2CQ2UcNVqEfOMg+het3VnW|2*uK zybMhhGk(2^KDc+{&GtC?$oGo;A~0PPCc7zIQafp|)3R$!Qz8y$ir^bM8s3xUI5wqT zUAUaorz9AkeaO2obu|32Mf>~jT>H-Trs=21K;p1?WcI)tAA7FX1vk#kUxLVm-riOC zh9o2S$d;V(YSQOv9l4gMbb+zY!2s$QIW-3gFv)q&kg)aT{AnCH<>E9Wl*vrRZuICl z)v@8}tDdnPOlSI=Yq?)eqPEan$$KJXUBVnkfc6uWtOADePN*Df+KD8i#B$cg2>p?- zcTgGW@7ll0c0Yn1EmH@*A^jSWg&~9U^K{xrt?tFg{h5WUS1CoQGvU_moW{PwLyj-q z6B8y*ziyZs;WH3u7z$38Ys))5Ik5h8#t_gX-?q?Ou0i=CiRfp zEmQL*+|8mTq6gtyp%aVGDR%N{xu_gai|pBdW;!K-nL8X8VPu(0+MBr4`Y7vU_Kt79 zeto!<_H)-dpYpW}Q~FztcR9zd3C0c$dF06jqw?2Rkz0>9N{+vrWBq)^zg!$AD94jO z!e!r_9n7@-EdUz)oZ_zpcRQMm0?{^p;|j6i)6#&`<~ofjIfLrq^RhiBU#Mh@dxqC4 zOXO z1F;IgV~5Nw1`2pwos16ByUzZ|8E$c1O;+lg<*6s1Qbyg$i-adk?56|q?ns?9XfOnQ zv?T+h=+H2otgU&$Z24zSl=J$kkBm6gMlEC3f{^HTjjNvbprYb*8!*8|q*1q4x#uT#jw_k%N^JR9{&miIF%XUGE(P3Ehr5nEZ29g` z=uysOxLox3f~n*l*}%v&DG8yRV46gsZJJNjt+Rz-Rz$NA7*J z&l<+W4zs1N$+^Cl)a{%vzOlYOTLU~by2EEy_i*$n@^C6Nyk}|bSK@UQVnM&Quce)Y z9P(0F1`R+364@^GTY*;~8SR?6p!?xx1;=rvB&wQs2iFxW=5{~{T&9v{Z(5?@4$6WDqIJng zYgTs$Af(zC>v(Z!|J#syO~u45h&py`41Kfg_z9)KlJCQg_k?Eu_LW7;Du4WS@{3?6 zB_ZEjKqp^S9$hT*nXyOv=3Y#?J-JHad+nb&28Ye1KGk=ja2{XW0V313I)QG#Gr0iZ zzz_xh>zJ{ewmED?_tjHu4`;3(ZR0w-Rn@|oLCcdF>vF-byw_`zHw}w^Gl?w%ixGUo z(^V$b%Jyle{-(v>Oy95US?erYwXLuKt+1SqlgS^#KB|d~2 z5U-@UjyNw|57#OE9_pbh_l$nrXH>%U#-NbvStou}6dnF|YVTk0v0_`iZ)LRh&*-pe z+@rt#O9y8?$Xdq|@Mp8{gNLLzDtB2;_W75sNs_gn*g9jfU3AOVYh} zuhGxTp~nMzpPq=ndr19ul=Agu<)ZnZp1w-%GA-60B#h;AsixTeDkh)Wrd^fiY&j_Q zjqe+yxl9JXDd zFM9lCyA730+o`}Z7GEQf_%)qA16xjD&t#a;-;8Y(H_V+(Pf$92zjlZn67&EDYX>#0 z&f0ymH8mRg9R#|9>P6uE5lwP2?e^E#p0yKgdfs#A`G%q!>K0!Grif1`i;nKL1&%C* z3mIVLVRKe?F)0pMG4BRLDH|H!Y}aJK1P*_Ov6a`@?CAmzv`-XJWc#)uq*JlLl|WU3 ze)W1CJoixYSBHkSehuXLimI`@SXKL2%6s>+sQqZ@WzOt^-Nbp7So6ulDV^Bo{Lr)4 zT$r2qdFemrq2+kE=E(!1>V`8%eD4`tQwBv z?d#B+?v@`lj5NqfRu#lTt}LU)H=qZ|%tn^^E)$1E7>Tp#!WwyPlNQACLuuW4)x{_3 zYutWC&n5t4@~zRXd~@|URpJtfDG|nIYS&<2yE5qz^mu+}_~zsc{u`XqJJ|^&;fuFT?cy@DK8y&(sE)1lI$x511 zbbd4dib0klIbYBDeC~z4aM3dW`Gv(|pmZ z2&4?2{@VB)E{i6nAhlb&bZt1_RIS?VC|XI&0RBF8J;kvsA}58U{ILctz>_lcd> zeo=eY&3hL&ttX^*x>W^V^(a%Hj|P7OK}k+m5)C=^ph^X0)&1#c5yEnR^l=DkP4j@N z=#CbCp&PZ&9__;h@zZa`=C0TiV^~?4mq$!H6`yc8%r9$5D38G{1o^=QzhSpc01EbS z$y=)2*tfP2c3Fhzv__uSDCH}o%Q_8 z6Fbz5ZTfGK3CK!H?`c}>x$V}kJLa#K9r7BA-&^C%#J>grPmL|DA72K9yghmkeQnv6 zXUTP;;Y-k0deY6+pv2jbTN9LrdT~MRNn><4J5xWrUf0?$el!|@*m7@a*Q-O7F2sHB zta1nL^iHi@&;qzJPtujoe1BxRKx`c+AR_xc;-%t+Oog-QBagT;|A>(h-O)udaGm(% zI)pMLIAtDI=Xoy*?%COftFcD>^gEG(UUiI=SB3f7oSN5tzaTl%47?#Ixw5+dOOvZn zC*AtX+v!C675W(4y6o03r zdEp22sJ4uX?uvDjXXAtyYH#4z_rl+{w=Af|-%OD^25#OAH|^N|O2e(WKi~9D=*P4N zXn)y^99`Lac}TEHihmN4tZ_=;KDO}|5pSw_MdqQXaGf+7UB8o=w>(iX45*k zq56%sy|v3x<@2fQin^1OGko;pD|qncTqA&z?^F0*nM^k~DY<;a*Ftl07FFE$!D-Fd zgEd|fa4hGF#EmSC66{5Hnq`vKwKfVqg>=o_yHsXS`QorfpH21lXNPLGQN9CE@bdb1 zki-xQTT#?@d*seF%9g+0lV}Wul&4@;x1^xMB(G-F=7dhJyhqM$83=7%qq`G-=@oLR z*gFWUe8rGFnYP>sH#L~Z?r7T@8<=CVoBYK^w4wf@K9c~b_^90n&uu{?KUcT8e=Pob zCT6esKykK!-`)2bxouzjkV74jY`E&yB5&rfVgfz0synJuiVsV3@6q>psyTYZiT%4T zK6abeag$JM-r;qwnEe<%LhV4O9>yhJe6C@b=c?_ql3Xnojx&`Bt;Ytp`J%}aZX&qz zxFkb8y^m)hNKB5rZ%X-0nNI}fO`=@sY7yi}uhk5u=AH}Z)AQYOYR||YFQp_Y7Hpyy z%bIrF3?9mk$|<%_i*t zropnR$VwM?K>wKNzLi4#`^?huQ2Bxr{(G{bXH-5%>N~xF^(@M?_=D~1+wPW=bGz-Z z4>*1gP&Ui!T5skA>O_}I_>@j#u8rYyGbPCMSt8k;B!3eejUF-kymjzK@ zw6#r5onWMIKJS0JAR?qEAw(XT=Zpvs_dTg*6JS#m`4h8HzJuaDT6TO_vT^!(fZnui zugSJv5jIOrNxxI#!j}gDiKgeqj_5}+zvC|Bs?-9P=THC|cHCJdiQm`g+}5=I8iB2) z^%_W`YC#+Y8}(vJ%sZBlldc}fNqEUoMiy0$61Y;w2z(m`K2S<-uU&zX_-sg zkrJbJ`efAj8Lv4Jyh1U=Gat1kcgoib^RwyoMq|YbX*N3@=ml{^balOd)v%S=$iO+ zi=S?}Lf0BiVbp$t6H1atQIgls9KJvJ`Ib-X_XmxBV_YS>I2YFB&SRN9*?o zD?NaSS6P#jV!bqSY(5KWx@oBmyIZ?i{E?BdbW zG579+`8T`HvwE+>Ub18WLBpsD$P$I?;JU<4bfMvw>X{^Wt}Lr`6Cm{IG;E#fBY2wO zwSe@PTCv`K|H#h+6^IW#KK&7^)|hB|oqv&^*~7-OHwR^5_K{$(83jE#c>2Xbd0D_$ zOhsIdnW9{mrT6|HU()CK_l}3uM|R4T+M*K*n?(}95D{$4$+B1`&-YIC#I)Ghv453c z{9z5?&!a#fI*l2@LcwMYac>>#FLxs#_&Odqq#VKU7Zw&v@UDGx?%X3ak+a-{huP~i zv&T+=727qI#lXT#`yY#Oe?(Q@9b}{m zehRg5si6M@Jo^2t|9V|4dOtaAHY&O5qe{uo62utAPUj>R?zvt6$rb+=(^Zq8RU%)i_K|W-|q8HtNE&T5T0nUxgugXKfcJ5Jijye&BsEn3wkvo}Y zbg&l@nDW-Q&0<3-tTfP1wJo(IN*|ABb0M-d%{GG8SN{GvRZ*OVxtmM(p< zfl@OdwH>c(GW^IyQCq7xjt09JTnkbxv(x6SI=9?C&IeCNgnx<8Y{?etBVqyo8%Ndp znz^?VSSpJI)y0qdO9`kc3@3)106toR(zG~Uqw0au@7mD>Nv`?_7W$bcWt&UvAtvYt z3_8tA(NWP?B2%O+7NziYgLM)=*C*EFAig4=Q0%>4P2GYTp@2|trKMRHS}vcFp}U5S zq1BL*J3HbdRJ~HLX(}{_jZpA$3uW~gtMwvE0%$_Fp+nc??B!EG(*LH#ze(&ZPgBcS z;`p)1RMwrXl_Vu`WA!}IYEnqpw$PHEkodWyR7!t7+(unOYEVk`AbuJDJ&!3d%(3;X zr=TO}$v@J0C2`1x!&XbW_<&bizYjliwhN7uEzRx)ZEYn?&-2AXuRL=JRoo+qRt)Ay zsW_4YWC=S*Mu@`BN}_%KV?lvJ4aP_R-r|2ABDWh#p#c0D2$_?zsqO9~YtCkChViwy zZ0l#-Y~E z#7Qs^xgHxE;d!GLhO$q)mk07FQZrA^Mtoc2o@*k6)ad_{pZ;TMKU#eG+WhH2!lEi` zE3$-xf!T!aoSpbbaOT9k$>63h-!}|xl(!qe)6=j=t^4hk4Xf)31jVexnuItIqBid1 zv>$+HI(=2|AodsT=5L$}JSmGDrI5$KYql~Gjc=XxSVq_lmye??Y2Aoc&pW&UK_CCI zev{70e|I%^CTZ_> zsX{Xv_KrVaE1(EjpxlPhnpl;+%CN1-(X01V>qsv@nW*6jIhhZfTXGgf@lH;G@5;<# zeKl`KxcN#juf9%HKH2Hx5wSzJjC9tvf0jWtG%>b{TrEcymVHHx@eo~D4+6C~;h~F9 zF|#fUGRgeD+#t0NpfkWrVs?IE<#94tN~r>PJS=OPt`maT7mBu;qBL#$J#7b6NP<)* z{J#r~|2beOY(Fif5Au3;D$FX123jX0M;vEkwYe|!ryIfE4Myx%XO=6`4Pep^Eu6Lo zFPM`Mm{q@KlqQf)lW8AJybGuAK2_@ZW2pWI!~AP$UDO(;pqji7O2-B4>_hz~(iI2q zvn zs!Nkb;OoKd3qx1Q^gc(nbcOMVh3#5CA)KT#D~d0YV#ErnVi{!@=c3AO*E4YkiN}YQ zOG*9^IR$Eh11Gmiy_YyBsc)6LcTl*_S$bip+CNpKU-!E)6FkUq1Z7Rj4zZG8#^aL> z7!KaiUDiJ!_4J`7#BgXiT*tozSs!5+Sg2zutG>gqRv|j8Oq>0Z9jlqw3|=5A{D)Uc zk+Rid#8v>AkLKm7%@pHi`afbQE%LlC+s~(U7DM?dy9l+o*mEhx&Qbxcjuw>!)_eU9 zVvx5sL6zMx#ODKg@z~r@xKrC?d7wU+Ouuy&iLTn+d4%%$;>qpuiyMxXOQz0=?~T&1 zqZOheYmlvwtjd5laFeK2&`(RTKsOvS1tL|d*5DXYl`~FR!JeY#fmdv|KkIHf`cB7; z=+za&gX_s-YA+dnPfduny5Dw*u|~hyJB#egIOsf_cn?ED zV(aipJ&KL`)L4HjSwTiU$tAk)-O36-LG;^5Yet7BFAIXmjz#p(YJz{c*!S@>vRTf? zAF(K5TA_3?UlYx0$CvOI+s;k{eTtb0$H!T8-toe@7>T_k#L+_Wiln*5;xbx5+Tpzf zLRMjtXCW{akIq}41j3Dx(j!7g5Xo||*gj|cwQ{ae#&_SH)kb$L$D)B=1yyDyX>H*i z68zE6VbD&VDj*P#2;+X?#u)#AO89-V{UKeBz?SK#B}LUSqTvC3Xu)GO4V{k#nsK^? zS%kV>okw(qQJKQGD)n|Vf&yDfm;}9j;b@e9RQx7bHX|{PUVvy;Gr(ok$SM(4B-$U{1;?Z;V2UBU4&e7tXgULxGkZ z)V94#*B!4LMdM?Cg+sL4jUy~ZzoOMAD)O`7BHA-~mW(yojzU_lgy>FqO)0aNtfY;4 z(bV^nG~TL9y-N5G8wO=b14{SF=q%-d@Vr;e0tK&8n5#$8c+V#)mi8HXB(%DGo_J*# zR6lBV)QkawLuJjr#=>67V)6f1N&a?F+G+3$h|sT;k$uStFB;W%E&>KWsq{ZGs2wnaWh!2Zfd+Zqqrp@FZy$BL6 zA;HK$JAlhgLQ8fH`^Qp4VPxU)+N8G|socV-MYC~o*FZv}-uG(LRQ>S1pw{6*XzjX= z;D!b(L2XWwgNVlaGM5w94LNAoK=-MOL4<&s(%~CCDrbQ9H20sVqu$To`C%oG@(aYx zzX<-WxyYUI4DSSf8K|1UKcjMdb3kCmM0Yr`gUR&^@_9sjbN=-D{+u#j3mCO`-u~Y}uTwHxv z706eRY zA=uB3sg6k^@@Pi{roNrs+3IBNU(>&pNdZ4HGS7^1V-h>22-nM^Ui(2|6T2o8Q%#FQV$$l6f^rm<>ZqKS0(kI7Gq*)2u) zX-_=R#;z|i^!$)%y7NMkR23|yP(;2A51t0gYl_wEZU(OUD3e5KS?d$)+?TQA(ptv8 zl~7q+Xj%fy*c-J#a9L!e+GNd3d@4x!$wm)Xsg>SXTCUJpl>ZLlaee`Ja=%tq=#{?M zzz9DpViKb24w(dTU8&nUQM z`4h^@!06GeZ+xap(22(TD%??tPFNRf>Z#zf>?)$esLu$nd={NhCeB|t1_=uk1%<7u z<`s@eT;K@RWrm4OeLMWIj`5>63+i;6;Jbs818V0_ZXC`y6dA5I8DR-`AB$L0B8!0y zjmUQJb78-^uaFWOpGf#a6C@T$h!Z*%QY7*|K0F6|g%!bGy5lML#C|*wL}^nTyT+pE zJP`eqqr8Oon;xfWG1wo@MX09CPQLN;S&#sF3vZIWg~gKDolNu~6Uw6%Wy*GkBUj7oY`{tT@~3HY@6dC+dBBqnMG_t=1j{Zc~PYpJ~RH7V(1>c{jEYI z$Nt~7zIJt$p!+OoaXp&tOHS(+7`E1d_46efl6qHGB%9e-mEwdi-!3-YRI}o_3v^80 zY-^uxNnS6S9HN*LuJQT}g+J#pInlHOK|qjXv5c@F1z`?Dk_1j7)AjxCYYy4tAFLnX zR?*3l>ybhPe68xFa&w_7NcOaIo)Sopb4vNrzJS0l&3xj0(u@sRDFmW5zEll!+iTIu zcFf~TSuOPgnv3qY>=-{6zPXNUt|u>0{qgj$*ENQG<|N} z7;^?O@csdTrbuWkwi00E>=ENkp-OkNQ*aTZyCZpdxPvUAtSGE4oF-^N$mS&BiNsKQ zSziMMcJ|pl80hH@)s=D$);cW*P%N01`ZB{SZp$Y$Son5x)C4bN={ukK;f&dPk}fIz zHAJTw;c^^t*GHqzY|okv-h)xHN$^F9&@|!TtDjc>=A`Ng*8Z9Cc$nl(&Xv5xI96}3 zzPJI_+{U|{JES;sorR{@Y$niT<^ng&H~S-9?W#VtUulSY1jDZ}7B#}melfwg0|^$^ znh(?Yf)k^#7QuwKUXv_7l=4d>tHIY;aDz zHD1hCP(7bCc;$!}&W&xDa#=+L?{-z^si6(;9_;51C%Mv>l%^c)&3mUo_7>4|)9=Qo zB$notKzh$y|MGF99XrRswxE2oj*f_uu{ zAk3*VcYouj97K;a{kSoLS?%b|Ce#i=sf?^TU7a)!tUI%gIqqks}APl7*UB!s^Vl1dtHS|1;Or2RNm>@GW!fZ47 z69gNbIqqRx!Yd;Se=}UHp~i}({K){pp?VY2SDeZ{@L8VtD}J@b@kkh0n6Zg!Q;MOi z)TgM}l}YO^JQH8;>0$mVe^lu?F|ti%{SA z#Ia8UB%0L7yuv4$30_51Mr2dwY*eTnxHec;HXv8H-%@FTdM@6dW=MZ`5U-xo6p>Ci zuN1~hg)l;7ztvFg7W1G(_4D|%UG(-(xCqegI51oX+B;J!Vg-w>w(8@lf{jl&+J@^y z+`XP83o?SttMB0liriHfL-h3_tmxLzo~~|)vpVC?SVW-*_QxtfV$fUe{Op$IBFnRY zPvI*;q)EqTgRV{4NP6?<^I#I&;^Fk#mdQ!qKjBlgSm#jrouEVElaIe4n0HF48scMC4=H!L zS=PqdYgjaqCeEIS_j-3$tazVjwKQg{2y!F7&Gdmm+~jf6aK^{a2S8k?dD-8!9A!ye1Ss{h%`l5Qxg~D$ zAiaxvMRah^JDIBwseFv(pBJ+DRl~pJ}$;SPHKI{PG&)> zLh*vsR2ls-$AU!@M|gzIY7z!)2$&V&a#tP9P~-KoM;8G{|xf|%Smm2hx<7`68E#EG>Aul$+}w%`3_@YOa*n^&#=D5ln85JU+#TH z1*7t7{u9fXkI20+CfYnh;qygts%OLzz3+dV$T|(eIzKQc(I_CpD`*r&!lBB#2}n zjYy*t#iBP0stlq>40fwfH{(V_4gC~EMklL?7YR{UVhiR_Aq!8tw4EOFr^bxWBT78* zx$5)>+sooruwv*ePY8y2k|xL{L>G@1gz>B)s+KG2&ukq_=8`aB=_t6Y=vMxW>ScQq z{$rg@7|ifcwk}Y-kRP~-mQ8}=l|#143!fwv(UZrB!d_mv!AbT(tyX43>t)^!?ua_; z66dW}%vy3z8uyZ$R=Hn}&Xgc!O=dQ{03L%t^gp$Ie{-Mwpma3mxj*{RX?2vb2p^jG1Ud?5;ob^*=Xto{0C!@YNOF4=WT*?9S0EkcY5V****hK|Iyz zYicpRs)#?bJiRJ1w71s4#}uH7Y~r_${6ZbQt7%7GWI@^z)+0|fCG1o6dNB)Bz-jOT z_n)Mtt{{k}C(MkP3t!RSP&vWr<%)%{imu6pu9tnMUTcz$kse-ADP2qDoN{5`1>x?& zFN?4b%Skd~=xh$E+ou7Wz~*UCa|tTJ*@o=YM|JHYA@(1p$AfsUQbU8`PM=bN14vu# z?i@@ReU2FpTIm+RR^jL0FHh$haxq9UDUqVXEvkFQfAj@6dPXRI$2EH@<1IwobLnX>or?9aa+(Y#K-RpRLoFWGY^#Tur(16M4C^|Qa z^T^)ZX7;!)ox0 zDrOriQM`wxB|(mh!Y9*-i06{cFDIviNs-sC7wWS?yjWZzZA!=v(08 zEdP`V!;teEWl9*UekFFBLi z>y^#7wQKHzri^h~{KDxX2pcb{6*ddHtfk2E7nTH>5dW+*cMCYD-hghthq8OCv0{I9 z#fA-y!Pkm7VqVW%1H%E&X>2GO>WOouMR`R_tf)mFHuIhd{yfjB@42>P4SmOQ^g;x;WyUPzB%B*BeP4%qgU`xE0NJ=_lZX@xGNSEdX z^XU1?8%}+6TZ(R_(p=|-gzJ|&u#N7Xxk0r7W{R})3huvh%m0z*`~4@W6N+?3AF7~e zoKf38IZoR<%~H@$ zC4%5IDOox&{eC2Re;2<}`LVmj+o$QHRhrH0-Gw1x38piiaisl95$u=&vtR}lOc30+ zdKs;C7JD+%R`SHIwI@D^!-TSO?5_qp|56YCBf!kS=<-bp#$N_`{!eX-%&y-vq1z##1{o1O~|X2Lsn zi!ok4$cxJ-*p?OQb4W1RWRpy&vQ}*6EEXnu8c2xAH4&QNhkvj|)SG}2pnj^<{b@Rr zQf5!vbbG^BmV4Z+q@>ej!c%$W*7PS9=iPO|LZxNm6Wi!OB87KfMmD~*sAc(zVj!t-#S#3i2W)9*|5>^digEAdKE&=N-&2##AH)x~RC zrpk^LmZthK?&+@5;J|Qx3Re?&u)oJeo%9GIeZRy2&)Nc>+xD#yO!7VyW-AdS!^|3b zwmVn;mnxuivpG504&?poy%4alTgsCHtctQ-dNBakAP(1^ia7g;oM$NXSs z@|?u4tMTV%;Dh6#3;dt`Ydr@RjT>E6_-HvHFCm4bq_aA0aO!wIY4sfK1x6Ha(;J_L zm{>$`4fh7vNB{(7CoJlUpo_=7EtW(og<_KVrQnkx1ysIo3E{*ztCxcQ>dR@NzDyV! z#emgfOdd)Y2}D*b53$c((ws5Ux6#c@E3}L3@6o#18OY;|;!z1*v|f*7=;cK00tCjB zC-|nJ1?)W(f4fRVy&#;)v@vZs^{g@-%xhmoOR@Pg@XcK?uZhi*@U_W+R-Bc>U1hU~ z<)NPKCUg||+Z(mvD5eM|B_*T`JO(`8hrCT9-SNBogy#6!jixT~NOn-pTctXY1}-?` zNc4*3jID5Zumn+*GjGj{9F!%YuX%=gU1%%O43n#<57{8nE1Cu=^ZI&ExOvJOs1;!yaxL6c zy7KZHhGNI1L;R)GpYEBfGdrQ!qL>opb_^f7OaB7#P;sHbET4wj(+VAy3MkciF7}Si zG@TCGf~QQAyxH-%1MO!k&$$An32rn@&s-F%op5m{R1)%I?pv=6nSyy{h_2GLV4G{dJ#*>sNfU z^0pETqc7%uELr7i9eqERu+7N0;{mL45dr&{?W@T+ZgJ~Q;vIF61DPt zq3!uT7a`Z0EWBKTgSf8M@B%VpThCcmGmia1zQ7qL4O}3dT9EIQZuj|A(U7({IYif? zccbQ{)PY=bw_N{e2cauR{ zVMA)NVoICiTpKC4Hc(PG#&g+Yu71CnH%C>U3YCw<|FG5nf}Ra8>qFT`FURO7_L;3I$Hr2FXG!6l7<@> zHM`=a%n*MYdrBBoQ4t`2iLNT9fQveJ=|VHmmX?-+;3%WXgU+n!vKcP%C;~7t-(ub^ z&+ssY3UEZ$;UvmR5?qFPuUvZQ1nRVr`p}XHt`Z^8ZZ*B6X=2trXTUk{UM>sTwKsYa zK8Qye9Vu-lev*|ejG1Dm@Mgi`$7122#%FchK49y<5EO9;1mST$Yg}#K?AJn$c`}(N z-)F2c=~Jx0J=0j^ju1?GM0{LT<3uskYx*P3j(9!rR*j%Xz>L~x{eUT&+hfSPlIDr&oGf7j&sjnDZtwZ+<#@lXX=OJj<=RVTVi zmxO4C?Len9$jO-pVXstGJfdEN?mY`(BEs}B`DLo0X$a>jCP|gIkdWpi43nO}4Ot*X zO@PKKr_j$V+xb~@apVyKsE6Rs%Ou>6I~;SXP3Q@C${-M}atO%$sM{}3mma4OcIx9~ zq)(Vv^A$aa)zFX;5397rw!uY==-hVpl})*k#0j32lxa<*one-WPt|RYY_}m`#&n&S z$BZm9DwC$y>dtnuVI#t)bPbq?MF~;}ei4-*>u5_v%h=@4AK7^-O7BlKc5-hu-54U2_9)w82mjy6fX%U_S(M7DI0$~BH1~s}v zBd+1YhaY83VvlOT?pTodtl-{SunkjwA*s#%=7k#NQZqf>)_IKz^`m08m-ko*yO?7);7lM?#l>hxxE-#g&K=` zS>yk#G19Q22_TSTuBk>E6jW>22LgR*xF_xBp)FZSN2LCd#38cipj+0JG84mN=5N-q zfJfC!v?aeIQ6z~JqOsE{H>g0mOn3*7WjcZ2=>@C)8S%`Q308(7L6xu*6xt=Tj+EO> z1%gQz?pwp>fREb!m(BhXv30~fWUK+seULLSZz+>V`E7AdZo+Xf0=iJATeUX0i@z#q7V(H%E!O@{ zeQBmqMVZGNm66X>nDP!18v&kv0IuFT z^52ZNnJ(cPyY2GdK{X(duT7a`=(Cpt;H8g~Ime1g=sL|w_Ly%4mjy{>74>4l(TlWz zQdymMM|1|S;dE3d{_OUDbE>9KG32(!SJl3yYv&fs4;~s@>{lk zo*>1xo$L5eeE2~Sc={nzoMfPcFgh^L^8fJVT{LAUlvt);`>wxk`Rvb5-T^&fKU@9H znfhNAry+E~zGcUMeP8eY_hAMA{cgazO^f_FzCcjft$Os&%HjW?58DZns4y(m%w}sK zmXc_|M7LWg)DzR5s}S2$@w$;1XyK&Z_z3sjb9DZ>TV8}a2Gsz<6cUo-s)&d2JjAs) zylK`-$g0@=c6Q&F%8Dn|n@}}~r^I3J*&xNmc=N2)yF(|{K9Rcrg5|R^sO-a&TQH05 zK(36D{H11;A%scWyu#pPilm8GmTF}q@`+nJ8=k)MV4K4L;?ooKUN!=zL=#4M?b{ucYJ zy^F>S#e5ud*+@x=;4Xx<@D~#cPx|}hRei6s2{*)|0nl{g)lhz%A@PNUPKpjSCu%$0 z!dSMVNp51}6O`L%&4_lF;2t>)gbp23RTk3=#Zdvth&D(|4P+n4-8|G0 z-HMRVl`KS}PpE$+V^w8~){W|$+bu{&;=4#qw{eC|&M&Y1bor$B#wlRSvXZIlBLzdES?MN13HVn?fb$xfs&P^ho8 z*imGX8|hLd2!c^nL*CW7T7!pSH=XqTrM}lUQ)TsoaLr&#Z@l3$$>PcJa+8<|Ph{AO zTi6E>Tk$0cNuLhYBpX%2~08oAx z7A>xJu?+M;;zUQTzL{$cWdjJ-M(6U9-477PZ9WCApU7O-n1*;>l+HK+zAJ*;@Q~If zF|)E#c2q1Oqd7W&p;qwNu+8T%c!E$ zH+Bri?B^`fcz}1?f_MDz7|a?Y)`cd9H&A7`R``XH9^+9katxJsfeMbzEH4NK)^qcR zmps(9uk=2?C7OXHeU$mDRQK=F#%v2fw5fR!s$=qs=Wi6h(xxft8Q6{-nGURGuECVc zM|KvLJ9(<4r_4M`xDT3071K|E-5R021H{E+!rtVacJ0ghFy;2WD}jBqv@a-uU96Kn zcVQ<`WLDl{<@~;Mrf4?&U05F0A`8Le?!X4Y^MT!t^HScP1 zL}$?xQ%>yQK<8^g^FUC#o-1*JsrOm<3tQZHreHU=OcU;eAe_H1^+%?UE}$y!A(>Th z!k#416m%70Pr?ZF+0$@A=H9e{6{wwCDC%#E@*Y3@QUQ)ymL*tTm$h2|2W@brMl<2A z5h?#9v12-Su#wx?R`n!sEUKhzLtpQ>ry|La8sS zoaiCVoQ=uQqSu4$Th;qJQ~age$d0LzL3yfIYSTY+b7@s*DxHi}#V7mtNuG6V1sY7V zV_aF`4JlN2h6KuC-}$Ta($}q{H#X?)Tn-(pC&1YLu|c2A zopc@&xV(O_a_c7AN70j}UwVJ&>HvwRcv>vhr+B|&(oTGi_HdxnLc+^AyON&bJQG*o zHhZM~7cEWYD5?ylb`5<*YKFWL@4cD|oCD#^ATfu)PLcOuf*5-h(6i3{!-s?KZxvi7 z_&=YqW0A#*Q1$|k#>3cN;_d*`!C6|7RmM^7W5~0WiSYK>_S;cNNqVRNUWcC^qSR5u zUCCaP&Z8VarWV%&1I$v!<3oZ%f(;V*xI!)ED>sy4CSS31t*HCAnI}?NZ&0*bY|hsg zh^N?(W;Kcg5M*)Qm7b^KC%Tb9K~OOhX#dDcGb%r|tl2SKRqX%Kb(KMNZOJ+zxE>sW zyE_DT2@b*CHMqM5hv2S(Ai>?;-GjTkyT6^8c{6uj-B-2h)c$d5)!s{5zW%x!@oy)2 z2S(+m#1h-by5cx3TFF>TJ#t-8qoe#&@(PknOJy9=_&3{@bgy8b3}O6PQg(@Yd{sVj z?B5>?a-R1~FKUFF@H4;Iu#+9lo7GG_v2qb=M6;=CcaM7FA%s%`n|?emhDs~zOZ`6- zEnfjifNE`|O!?hh;}gWfH3f~$V*EoQpV@1N2AWFe5)5oxJuz#z&@35lja2N#-#QeP z6naA0=JJz6=WE`2anJl`RimC{jQKD_f3hc`TY%1OiePSpqli{GG z2(tUTxd6Y6&QIyQ`k=3qgKqjqQPc1FNay=jq+I!5afGIAfhXI^Z2HtFhduce?5rI) zf2V{1BUJ+=ev@0@Y8B*(QG6h;>?J9aXHJ)T+Fat7;ciJf9mh8L__e;`3; z4D$OwM*6>GmjEi*RJ`(3M9AMkMu7DQA1F}7;6~E@LomTb&^p~-Yo;n_>db5wn=*T%1AHLV00%<& z#1WUBDaHG-Uj578;-!D4NfQ7XMtOvJ7!BmuezjIk{;JY_Y774nOFUaXJ%`CuU&f4B zzsWCjD39Wc-M@-Z{m0Dy*9{F4`cc9nBiYl%0ikY{YQh$O+ut+_>Uk*}oN#;H1%E zfv~DBeAfA_5P`hO|6pnWDk$45I5+&2?+ zZYH|oe(gv#2QNCbS#=m{Iv<(u8xnDkkBnl++mnCmuKRY(qeg#1zb=w4WyNRqdyF~Dap6rC&8CCK z#tcnAG)dO)Yl*ui-3k5k|4h`0wJk+C-W?!$7UHf8?ah6|4M=kxZ+2-h6k`YK+cYeg zq>YXO)ZkN~O1;3~Vg25RY(eO2-wvQo9(vgxm12It(Zj=DrUOIUb!?i`toq9hPqW8e zv#G)ZzkqU8W zLugPn2f~IO`^c_0GpZ}2>}%U)FP*igeQPW8bz5Y7Z2_8IH#7ezHzC@MR7)oZ2u*T7 zfK=G`^2pBKP+ZnFwBoYnW!0?XwxhgU^wwIW>0X$((sDJnRL2AHzpCW^?KlI<6Rj7& z|Bdv0?j7P(u1hpIAt9a!GP07TTGoqtMG^%i#&PSNf0%Y9Az>IXp^Q6J;gp9=SK6A^ zZk0>D2VIiU*(v*3_37#H$nl5^{oMe=n-CbO02paBF8I{cl#*);tsNtff&rGO!&6fV zb_nYNLbz$=YOX}%@FcaErBBOHrtD#hl)iT_CLtjao|>MX;nZefP$_B1iIefeI7-?k_{&8I>^=UB!OA!#htZbP8t*yo<;&I6fZD z3u|;}A8Gga6PO(-+Q*m)5;POa?DJ%a*}jkrG(#TZJM`~YSs_^nnW7t$)ebGU35B{odJ`&J1y98 zr9~6~n*^y<==m+X&EZuU?1Y&$JzXETe^qU~Nz}~qeu3n>X(4)#Lim> zeo&@gD#qJ{M7y^12Fq3jsz13Kju z*}L>*OA)_A=*xP8;*=S+s*FOHz0Ovu%qF|!m(VA#D6(87A+HHQUkE;t`=z7YU-T1f zk2Rku`5bUZPiMEh6f2bxm$y6@v6=}~PQV3X{y7@|9?_)WB|=0kx=46jlx;%#Ka`0k zwnefAWNOOLV81^Va0-+5IFW-3ow%o$X-7rjNhRfohMN})eOM^{;oyL3$oZ*9a7!{> zcT=z8hB9g+gbqPp6dHmbgKVLv>*i=~xZ*14Fo3LbeUHDdxV(kDV!(jNuZ57&c*y8s zob7EeL3M_^Ftg?S8BU?vq*Mz#>s#z!_xc@7L!58ByzBY;dn&bw27H=fA>c z`b&hf@tCzn%2A-uhvm7P302Afga9u=u)vLTMwn3qW+xL@l2of^ z+K{Z?te==yC(d4mXRk`;X5o~7kQl?n#ALwAWto1>^QsmP(gsf}bo`@ZqEe}b47ExL z<>x5em=o#`mp~(8B3-YSy!wn4h|LzS+k-uYW@oGB{t^9=(JnzKPG*+h07A4T=XEKm&|!T}Ec)_9ls)N8pc!>2W;TR+d7%Q zz<#?%vEDu@N)QV4OMlPHg!|qiY|uSC`B#-~pSKs)F+S4@%cZ(e#832b zCk_^5w2eSL6v3497jTQ(@f*x6AFA&-Y`2AQcP3|TtyQLX_zUem?O_mh;$di1If28m zWKxoa3VB_4RnHNl6?` z<;{GNe9MxH#6S@=t(dh~ZBz_Hqa#)>R+`BQhYlL3&ToIaXx4IHfbPGmwVYG{u~ci+ zevPym`PM6iF$`!2GL9wm2EwSPeZ$We%Vkl8->@1LFGSuMd1gl8au)Sbk&{Wr%V+IO zQU4bEGR>+w{&ahycr{Pd{Cls&v++`)(cW0|;~iOUv_GuN+|q9$SZVv z3weLN`dF^Dy{sDNL%%dVAq$>M?oywWTVjwmDdZo)uknYxU9lQVR-sz7Y!-zk-5yVNJBVg80^mZ1# zMQzI55(~G`LmB|FK|#}(va6pZL*R2H6cUq?a-biDDu+N+!Vwyv){h#+kDVwUQnwR7 zaekisIsV~B@WJ?y;TJ3=D!FusIHgvzbE))`SL#UeMZq)cMS<^ywCJ7n$_|i@nGlI5 z8#>U64a1QC%-jpV<pH0>z@`2Zmx zn*VpE=hI4kWJ-bl2Iu*;-&BE|uK9G6Oi$NHI72Jp+w)b_$?ra%>k9V7zA*IR8=h6y zD+DVQo0EwqCkyk^RRo$ZA$itR^Ku0WWm=qWp2w*Ap#fMQ{BN(uTM0jm^Q?R#f@P-K z+AEMdq3xc5VOSmm+2exvOJ#)M7lOTN{W z_sgTlR-rYZmw|?v+z&?21y$B78a5t11p9BOb2g?@`Xl-VvRzl`aMN z|6ssejS=7hG3K=0?74(Ly0|6`CDizePcq^=Gr8?Te}{eRy9-fUFjWi;D79v=)Bm!M zlLfNwub>P#x?rNxtZPYPqJwRv1f&1m&r)Upf}|z%5A!#tqVA5ixr{Xv6*{sY*k{ye zCeb`XnSpp%JSvaL@_AioQaZai_#iviC7DY;h3b<@Ij8MY>VkVDT5U4AJss5_T+^{s zWgL#O!xs(olk8pOEjdcFX%ZddzT>fSLo4bICh#Ieig53!TbR@J{#m^wq||79@K-sQ)xB_Ep>iAU-$SU!31%0ee}d?W2W?h!bHudjgS6YAKq~C_%UC{g;vH>SUzWZ z?^2~OIf(trU)=+heO|RsLn+tvIP%vX$zWF<;~nQ)?lFwwBR9=t5@(D$vTm4V>YT13 z8^+U(QC-uGL|y-YA}$0*HMC;XTf~M26=!?axV=pxuih(JpqK3VbefNj6D~AjzBhKl zC6ZZ5eeKHAC%3yb(XPME?Ix}@>;JT+juABLuEUKi5R0O=L?(5C2~%lph@OlJ3Bn;T zJF}4a=HpvbkpiQ<&J4(TgY2Zp23G0|sLHkInjZQTa1nO3J>?>$!5Fd;Oso&lucJs z{6ya9a+gT{zB`g~LWx3*Jf8BU5A}GdAnT|6{haQtir*|%_YkrW%j-J2x!@=J5TE;$ zhJ*IE@AJSp@gnfaXT!Q0f(NcjXKgh@G>AQCx1aHv!&8zt>Pb6$w_nDcBqLphUu z-(VtY5chf5aG9;+L11xpoP5J+mXk&@+%6*C=FQ{9Z{30+VMF}*;CNe5Bw6B0GRRp+ z-nuD9?Oq?(D2mTvJ!L9S3bR??>kve82^4V)*Fa3dfnA2vp zMV-(YxJq89*ar(g3nJ|>&DYdw-)`#HaDxx0o695L_T~u(z6BxR42fdukm?z#f($39 z2FJGtu8~dM@uU``4ZmJnz zdf?tuU>b(_2THlMxlqFP4O`o1lCBf!d7F%?SH14~7@c8oR+)w)kzYZ9X<$C;ZOGuG zo|`GRJtiQV{21?e!Ls^6k?epk$FzT>MS-?BuJT?5sS1Jt$@ZzP1mgYq&;UHzC`tyR z2=^P99fL|QkT)@DfKCjVp?EM`s;M*^VA4`Oj!(=%Ol523dC`mM-zVMUDz2p<)eD{W zcK7_FyW7io;zza8a#y6_5+^UvS{|zQDSP@#?*`<&SZjgF>P2)euyw zQ5!kbIvW8YC9C#LRD&?TOZho5%_g+QVq{Sm*O@wm2-~Xjt#Hk2ju+YGGi`f+mM4!9 zzuH=UUOr5T@Hg}ZfxELgxqdK&*|CF#*1I*#%6lh)-UoM}b(nHh0txb6FOQxbmqch@ z_c*~RE1foy>bg9!eskSP?$?b@;n-m+=mD8Ac}M@}=c5KSzZhvTbpC+XkfPfaIJ zG*b`Nyf8gD@40D&NI>ooL9Uu;ds1Me>*7Cb2Z#K-bs1S_18)vzV{(Sn`~tx*zxjS{ z_h;Uktg0&et^LC!8>exf{}cnZI=<7=546qWYL_pX{X#*tp!K~J?U@di2&D^!@gFO! zV%Th)Znad$Et}_7oldr6i_0G?{BvQ%)g}Qc^J1;`{qOn*JzdY!dtAFWdMxkk-^DJmRcbWZ)zf2N1{py|h)ie4L;Fyl&0}&U;%9%DjD~!l z+p5Wwv^1w8OJHoa+k$+!nbZA79`DEDKG=)-na*gTlwz67$RvnzN9iM*<@Pn@++l%q z3T?4UX%$}k=O}zho@N2KRY1_r()WUPqH%WuF|(5L4oy4T*B?aC<*t|Y_a6CSkGvOI zqk75s;wn%qCw^qt#fose>p66!o+TARr&gNahXdutoOtA+uwSSnVRXHt9}dAjMAO7d zNh0t%{!%b!5p%H_&Tv8g*)Q*GD1l~2H30;v4|zO962(JX-hL~lq>?M1zO75R>uk36 zrSTS1g+I92Xl!}mRi?*kP4_*j5d;h==skA~2qOT5tOocOfLjr#*I+R7HCrut-s5a` z20L76{5c|M2N_;p=2z+Zbs)Fu`qykm9MexcAwg|j`nN1PZYYVQiabK6ZpSc$KMNEE zA-7uS!!hWpyvPE$NU_Woy5^|iFQ%hgeyEgcR7o@jE{2+d@IObn%fp4&eGC32BDOZC z<0TX7bmOIwnZ3E(P{b^Ncao5| zIalxi@qu zY8-GsrtCKS(2u9cKLAf$)B10)?`)Z6=7vIyYhVV68 zJB8aNvQ8|Z!c0}qF65K5vB2AV`=x;;F9RE58poev-@)lO?hQMy7~x=KZ@73G_K9o(916m929&8VMr7v%3qrpEm}GuuYokD}biqU087;^j>FKIvWJ z{k9e!Mqf2*=2KD>M{1X~OyQ7iOIe~M_kqjsBdGqq@eg0xBx4kn2ANmlumsJ?w9d{*{@z!NraR? zVuX7;{7eUK=2m``V!ov5WfrTH+ehQbJ(?7fosD>@Yov@7mx>3^t0`ET}O0FqnWWF5k(r5zZ3XhgHhRfUbM6 zG*xam>cQlio=}D=Bu&&*R;mK#Yshhkb=G*pR{ZHp)))h06B8p16%1GG?;vCj$<-Oc z$q2|*&2ph17wxN#H4odbRW&vG`wMQHX2c_ltC8g;@ zk$7Wv43kjSIRF~qa)@8k=61C!iS|)%iJXOG0{u6uG!540x4R^^gBrpt)1H&>`Gjqz z6<|`I3#OFS$GOxSQu!*D9jRs4GD4#EmA*oyMAgdO9L|*1^UYbzm3>#E44_P%W72Tg zdK!iTw-G0N58aVEffg1J1pddI4DxMP3ptC}ti4)2?;Hukw9j3A(|CT#k0*%N zdX^0fpkGbrNY@yQCA(&LmA$ypd#}{wXs%jHD;z2~P!`^U4uymlFARlLc=YY?F`5Ti z%y~f^Q?WqSY_dco6ve-Xz&S^6*Up2<`R(;ZkOfW^mY7dtPM$0z4;Q6OMDgn^50g>7 zyoydIq(Bv793z<;ce5$`s_jqh+A+k;i^qp5l;H`U!?X^IQA7D>}2 z{g3zsHz8d4ga_ zGGvYvB@1Y6Xd03s3vpW1xh!1z z;;+t9rj4VaR~czs){X1|i%D;k+Pn+Du~bN_Q>FHDY%<@s>u`vAl8{_%b=aVe~Kl~ zmPprSI{PMQ@P!*=(Iuo}R+m)dZVM5^02%Qlb+>}i9tHMiWl!i#7htZ^RQ&pQchR7R za8P9D4-<&+krmpb44pb&6+38nL4$%`yGhA3Koq`yK=Kq?C}x!Ca+XXg5q8o1?v$5k zYXt(25DE!d^*k?0H`aXGd$^M_birxqcD?M7Q`?Dk&5#ql3-#rRrof}?l@vtv-Y3a0 z?tpd5Zax!SoRAZGox3X)278Stfm%g8vezMj6a?WHPx)9O#fPf5iL!?u6}ARM~0 zJDR-i4}mZ=hEq$4V6~7zg)j`dB2mSH8+zTg<%2I}Gu>h53wxOf8<^>GF%y1Oiu)ge zcac?1jdDLPQ&8Z=ZamRY0JXWnbBF{iy3Br6BEgWdzc1dYyx}HoEVR8L)syqZ2)xzO z(u9j)^yATX2xRFIvJgUTA;nM$6h6wpVO)y<4f2C=^$3bqY(rFdHv#pWb95jKwmEwT zg)iSXbGU@)x&RgO18-zWO@1j=#^OWG8WDJ33#z>=PyA8>9n~urs|NCls!4Ua50?Ed zQKzxQG--alP=T78m(AdUV_sQIc<>odLd4^m=Y=gse6rW`arUIOpiuL}pvR>=Z@bvV zx$Fub*GyZ~A(4Pa@god{)M}SXq@_A*yDPI=5-BeEHG8Z?k7rjn{nOW7jePODGDXBT z&--tp>M^uyx?eW+*-=8md}mTY?f2cK(Eu#z3oeA*;Q|qhpGR;Jpdi%Jwb`3IPm0FQ zCnpPr2D@dpMuieouWrjPD?_zTg3(n35?Z66$#KvW)#bJj0?(1FnX0qW>?eC+dO;HG zo6s}JF*LndPch9(9Oru*sT)kn@EZ%Jg{UT)O>*>-}n*aB=JCH=x$$>2?uS zKU=2F{ct98J4kO&)0VnrB+TOr+Ey|dxmN^&XJmAA*Q#}Kpzunf+@?w`my?@CGOpA{ z<&u5N_u&^!nTs=DDARe|Vzulq$m;xcel-&6>?yxBPJKco(`xrg;bGH*hHi-Bzi<`c zrJgYDAtT9kD4_oX^=7aRys?D6jDHUxuR|T`AF2}E^wn|eRo37b?LP>7IW&5Fg~frz zi4}l{#+8Q|{&OY82@Al_KSP-aj8Tc+$|-?m`y5ICPUzogGLyi1&FAc;?tzX82^7}> z^P8amq))7Y>Mys#<&@{ue9LUO3%?8*kHqJxd)juC>H8>;PNPEWf(8>_*uFahe7|0Z zy3eS+^r`J#hRd)hrZ(Zh)C^ETHgUHQ=oZTKiIpw{JGj6+yV3vwHpdvt^ol_al#bJ4FeznpsEr63H6~vu-a>H+LI)t!_IB zNyc}lE3-w>a}}r0w#&hhC#mc<`cIZSl25G%3)QCLF`%>b+b7l~JJeDX`Z-zSj4HFp zq*&=S-HR%Ubkk?la~JN&H*`A)Kp(qFbTkm8xpciG0~doZ`W+qYhm?l0Ao~7Et59TE zxO|Ai4Se=Z{VKCPA>R8OyzuKriAM6wYI|j8>Izb6rI?8l&iKGNZI?AFplD`E9UrS# z`j~j;MM4xX@Xpg21-Qj#lW9T5tT5l(ro)ok zcbvPJx@&0(m}j0eL~duxr1~|trDe$UrTTC_eBBN`JEh6bFl(r|d~h@>WzkP>E?E)y zFF)dGH;!Me5uM#|_(0v6sZ&`-to=d$1UMcl zt_T4meGJ>v75-U^wAJG#aauWoUF|^Wm%NU1QAxA7tABF9bb%aZj~|>$S;MBJX1(Ec zAr@)=YBCej;IA(~Ka_l|w_G4*XnoF!fFmw~NR#vCqtR}vAyogSsIvU_{V~f@RcJk$ zNSM`T1U+jM0AB`{Y}!j{+1nk{Ul&Y~>^u|qk)px3^Kss2e15?%dfXmYYM&xWs&&~_ zN?L=3FNUF07X=XK8C~tt0VW?cnKT0+^Iz3JSuL6^5hQ@zg0p=5wyr+ToCIp9eT?+- zEYb2=x#21d#eQcnABIk|lg)(0)d$aJg?h4FY-;0nQ>$tfXhZ5qrQH;f?z8%!kRt+< zm3OvMugdqhPvUl2Na1-nIttO9uOIa3e`^6SObkYicv)x00nin@y1gX|BRK3YBd33? z_&j2G&?ogL3J~n!?qN6{yp>aIxLt7{E@gHNaaiUN z5c3bxllbWQsp|}KP`t_I=u|b$YpF=N_!y_XxZUK9>;>vNj%6Gxx0;cF&r{rFBpF#D z`5LFsslGz|TOjtVscNRr250AF!xzIsmC{sNjTVkyu7OM)*f5`B8v(U1WsT#Ow(K>& zBFNP8Q>)%iL{Tito$=RfH@FRG;`Zug9WXHsyGMM)h9OXYFVz zPHZ^7CGk|pD?0WCdIF*K&jenSt?qZTIS-xRpyGcu3FW_Wu6%(PYw#yB%`)WHu~s7A zx>L2b-A*ReBh#yW6)a)G_+LJS-#qFMc`T27CLAX2B88D4=|{f^z2u@-;*1=`^e?vG z4QjDOG(!R?#m{3j2p^n*oR0jotDeP#p}~rN37dH& z^yq3JPIL+yE@)vuWhGo}@jD$J4!Ns|cb<3v$jY}dn~T_9e-fomd>xOQ+D8`LBC8yJ zev1jcg;tCD2rmQ6ktFvs-n&8dZ)31r*1@-UxQ1uhB+Gq3nDN6B6R7=iKZZmiZUP+i zcym%9dKJb0FrPRGFk*Iq5OAfJiRweoJVox8pJL8Y_IdQ!?d|puq)=r4q>uPvp;Wxa zbbcHo3@TrjCk5SsWBr`S(}cDV+W9gND+MmCvfcfe1-!qr`{0rBjsqtKq}ZWDdgR=J zaV+7AR7JtRiLQXd+8`5wI#_+F zNk>Grdoy}|4Z}j={wuwwA?#hCkgC<^TcaxYg(@1?gfsA1P93A}AcUPiQIcvXsCs+2 zS_u%&n(GOI-;Ht%v8WK++&GavFV8OWL2*fV7nO3c%JimMvC3_VX*YH^f)$YTLsCwo zvQf6=GxpYa$bY%LCHM8t=*@J{JBoGy)Xwd^pG<;gi~72G#h_f$vZ1eO*_CsWhp97L zwzbjHqP^tIY%8qMt0vs(Iysk>&_t&uVZB?-b}LAw!2~R-cqSxXT2(FYJn82L ziU+ghhUm(R5s~Qg+|N;&_KW5P5`!pYGEVcRJv85z2>Spsg9}$-fRAaz!*?tup?+Fv zG`J=JMIBa@KZu{f;vwA6mW`H27yRmm-LN>*)?a~GIC@@Izt*v-E?}|4mZxQf9j^u^C4{Y#6L}eIR1LXC?RLL z-Q!$ErcW)hJ6bQ= z(ZJz&cu3i3Mh)(G4h(Mzr&9l!cbEDPG8PENuk~opEv?>cvBzT+4rKu5{WH!?{K-)arTjVp(uR|BP zwbT(<7=O7`0uj*ilo80{h{9kJvVcyB^?7G+{t!xvCU(k_ASKUfX#nDI+)k#|XqDJ4 zUnVU6WSKOBQ-2URQ>Y?%s6@j+cch#|?o=ch(*?2R+zE0pSH`Me>JN?kZ=%*eFEIz` zhy4CK^7f)F&d|ZwTFvd7^8CRZwzLoDqw2R&>sb75k*tNC!1{#_6*_i6i+uy)!LQy^~+SUkg<0Eff|P z(YzL1bEWOiMyvX(DEZH`02ngxS~;T;pDnsbs0&Aap1n}ocwT+(A)SQsViIdXmmA7( zO=J5LF8Vhw?k^8x;FM@w)q~R%7t}m2j9xL%m3mIUOC~T4do(9c`!7D3k0t#V(dnPB z4gC6p^dhayI8 ze!2NZI3>i>cH_eVmxoEyMr)njd|phmUP-q}{^o^zH`Z1MISZ!Jl1?^$MV|;7LfpsT(ZmwfK~ zJX03K$A9}O$0x&x(HBu5J>Wi`Jl$hT;3oW^$w@)nV1EdqdBaJ=i$1f1W!lX~1zdF} z^Yl3ER3Z8JT)XA$8x#-8JG#UIWvuUH8Vg$CF5D__&SCU5d_@~RDzw8eo6!_~( zlQIUKIxUOocp`yM=C9sPy>3B9)|~8GJdtibUJr?-S*u+0tv-c91JNTxoqwHlU%L0O zfpuzX*kK*~Z>O+kVD+2v@e@_pi$6-+<;~blI;6Bz1n&%!te^}2^3_1D9}A13$?Hv$ z=ktPV%Jb3hXd5Cd#y|`uI`;d2Bm+1X~+QdB<8Vvx*MK_!Q1IFj=&fxJ&dcKqW;{h zwRBop3GrXF5TRcHp{-VLRSLIHTMPRsNea(Rl9o0qxHxWs(+N3drblMY*GVB*H0YPl zuUZ*O_y}$KTVkA^J*XtDzL!u%ngy~0>^6%n>WKJUzn0J$RJ5p7i_mJ2ZtZ7MXI4M; zhGE1}C(r<$kt%K8_!>>GKU7&gIcsNSX3~?qdBn-3sjUk5>a;q`C<&`j>IzCG&>l>) zm+zfj*{{x{bnMZW`$S%CWz>b68kYgrG}*$en?S9<39h}7M#IDeawsjvQ*fcS7H1kg z9Dy08)n)MFte6n(KIE@kssLuo@VXu+x7|$87FA;rxhNdn!}P<3ADhqd7pwVij?Y`Y z!g~O{iaLt_s>Y=#uKh^|0921!@7jGq_IJPD2GiZHu1P|Q<#;cD`LJX?jcV2nEOd|G z&93Y7ROTy6F~ zqAye>X_==mJJMw|;lb#mis;wgO8<{QB=mvC<#m=`bwAT~yQozqNfqeyhkyu`Dgwy8 z=)V~b#5Mf=Nhy}%)hgVEP1N&IvT)@$3 zh1@+frWd=tOllwxpe-U(DQ6X~)$M8eINr)4EYIg-w1%(`Qlpl8UUK-)bkR)v4& zA500Km8@5}5$>Z3*dbhe#B64ISvm(`*T0DR&4hQGkbJMlEc%+rw?{LYTy-`KqiLTK zQrTqT&DjEUx93XVKELWT$mfqI6RpWTQ;||bCmzj~Cu!O=d@+?lTp&Wk`CYCmM_7Ze zNK7|Wl|bWIB36(`tKCMsK3TOxlPlcp{Qf52AT$q2E7D@F$O``xCRRKL<$3QzrO%hGr7igDbqtZ<&_YxP=Sr10 z8UA7q(Sp&al*WFEikKwUsYq}#Taq2)HvLs&Hp}`8B5egrTtT7Pgw89SbKSA=WjD?E z)jyCcdoZioWYKBTse)FkUB7kNrC(d2+*-Te`Qq`1+GNgDy9>d?VYAH*$}YpbX1}?k z#yHQ-a=U;h0y)}PCimP@Ua-9~qDi*;QBUe>otvBA_{@)Kx$z5{D~ngoOjj^?AY7YD zwv(@BMuC!gr|^&c9C1_)t<7?)``Cb0|4Ws3-HXBdlQQ{prTi2N^M}lA#PNx~cD)kY zmBg2)-8){guIJVFZCU@>+GQEN!N#EG+Xnr=yKc9%w+w(GuktL}c_B#PcIGa7m2K54JbgwEO8ewtOv zAy$(ujoK`;F#?g$C8~+-V#z>uiviIll+b**G7LFNs*9d%GLF>wM`LX@#ji@24V2|?E=eOgO|moPH|93h zfGRWkFCM?22uX#Gb3<8bHl^70NW`!l#4=4?e9n?|`UXz&W)zAa0^@c*K_vJr2we#1Ka}GnAN5-I z?{dmpkZosGe9z{Wq@2#bx4^UuoUP1%|M0u1JSyMvdM$&(HS%XuiWue=i;Vx=7wKe) zE;Za`DpkA>`$Qby<2J%bDfaDn2>;ER4Ic$DnRWiWv>`} zzOj*3t(M91%Y={rN!o9eh|d4>>e3z1wqmrn%x2NgcZ)~4A{Qt`NeD@*q*Q)8i)Aa# zPLMi=*=j1r{Pc=VHIb%j^|DqO*SP|I>vj_sO6BxXQP?DM?dL5KZ%zY z&ipq@ZhPO5uH7-|b!bhqIK_1}-&jm_oJ%?}WYVa@y8tx$>NS(0RqjaNs;qpEL2JGA zXsR+UOcy`By`G6doDdeQkq$$FG{Qg;r35ap3w&v!MMri+$lQLf*J~$j?KP3T?SUj` zPWRI}8uol%qaOUffsKDCY;i|0G1}$Qp0dKAYUfx3>lc3N&iUy=ya)QDq^N1|kMEY^<}MrU4TQeobg*r3D2lyDs%1vq{7<;h%U z>hYjdoH3EwJ8sp9RX&wu;UU>B-JT2~JP>de%4(k}s8V7YgalHy#_ten)!M-y&*`>3 zc>7zfR*9;VtJBTe&6a4B^vAE8Nq&3086g`djV=Z^__GruGbdriom6OjGtP}3RiIZf zT~7JLvXz|W81})%QEsDd6}gGsL-b+sQtF*t^_8Nj3Ke6&hJpV+YoyUK?-m?%y^iR} zP#($QN34+-&;!J9_mJ?&RU@&oSK>%;h$=Ny3$@fW>Mf}pc1Ne-G%LR*M9DYUN;rFV zeM+PqJdx#7hYQ@V5wER;4aDk>pKfw?VB3P>e6FL?ms~x8wIy`?K^w zRNakJ7&g#Nf*WQP;(dkj%g0A?{~i0#|MF2ls9*yn+=ns2t+T#N*sK;H=&1074yQFd z7fB$HW5DUC^*wOjFM~UM6CD?tofi2 zCo@=ZQT8NkpHURtY{}tWIw7_V2TbIFLN)Q23DLBJ*g_z{J1A!R@xNX{0Ble~Z}FOc zdv)?>4=E*#XtvT|tb%UuxUhPgLE!O1GrJNdoq&$_3LEp|>Qk;mzoJl`+;2#kG^2j2 zXMhxAA16r}7aL2=?R*-q>ywqA6f>a#ITn;8i+ zAjSq!i6~?Kk(4~w9QD*~WGia$w|VA6z~R+al5X(Vu00r8LXFC3Vts!f#vCpDz%I(p z-Xa_n12Um>A(|+X{wd?PP7?pCn4g)hc!3Fd`ha3kX!#X(l|2@!l>D1E#yQU7KXTu% zg~C>eYy_Gdg_ufW{B#9kkVCdeQ#Dknw>8Bn=GtiO^`%Oov4i;2#<*fW<=wm`4g1m8 zbHo;!lyEj3k`fMft5w>WV&yo%?QyGgJl#KXh9j!l ztymOv*P?)e1Ep2;&eXaz}VEyp>l5y{2X_eiQHC~eKYZ!vy-kcB_uV72pS9D3K z){p3UvbC2m6!?%39l`&#m3li0aS+ zrrecIT6p4UTAGx4g=-83tZJFgPO0!^+#gbq$5~%EfX7R|#L3!k{pKjZLJkq3?V+JU z>4Wz4M-a|t?EJ*akXY??=dJ!a-p-{zSo1(*oYoYTD+Cj$D zqLc!PhY{6TPcrA5l{Xj#Xt}PsG2z91BZKl2?-in;t|4_Kj=R4>gGKd;GOQ8``8JJN zmZ%;+H#pL3VaS}1ZM3)g;j;I)+oOPXb6;())mG|Mr8!<$5G2YUw#~l>jNCggg3VPt zPJ0oG5#M2p8VInh(YZB3Hf2v<5_~akm7E)kWk&8VgCh$*2La@L+Rdi*r**Swy$Q{C zzIsbQCamzg~($bfTORp`Lm&qy9OtyK9qE&b_X7wpLJyaJoWlo;G2C(|qS?88Wtx8DI*Vx)xInY> z6Qnf{Lkt5RQXYMx_w2|aDzv%c`}x`nq70c4JkA@|+O=3xFjACi3mwc>IpD9fj?4_+jpsAxxG)wosts^5^NT z2UVR48JF)AN#T=}4C;Zjc)l|mKd^q~ zMMIatz!1*+zPa{c28YC8(E{-e|EX4)4;epl9WRI#B=N|?Gk!!8D+py&Hnl<_7H>uK zoh|r?I~NO6}bhgrHnI*nN}DWUMZ zl6Dvt9r_>5*4a2KWb zjilI5JIzT<_sLi;RWhdu{DefPvZ*TLa@xm|H!T$iIL2u-mrlWEd6i`?R6l=U#>@OF9H5_K}M|{Q?OMYTiAEp{$qxc-p?;%W`@%scezN*-p10 zl*vS)?1Zovr|*X|5GfIW4n4GbXVEF&yXJl#e~XuE5D1&ybioO;&HbL@kIHGY`F=z$ zkk<>LiSnV9j=VUz((Jo*dSj1s$%fbBV490ADdx=)VQq0@RH*p=8!>bg7S35m^SNxZ zKc_*NHKp|eH+#i8?q9uQ`{0h053)&L?v`=vZEFNI6DPo<_w$CSGFlL5REtP&WQ+D% zU7CE!a%Nha4Y{Az)YBiUGr=$8fNdVdr9}CN!lMZTWO{Emz{c)n+Vfa&aioy|kQ6fu z3n>8hK^*qlNk`&I&Fx+8R2zz~5A)$m1%-Xt57PF{TfHA_JB4SXNlJLjToV2`Qd+m6#&Ool-w?>3^zK7s!LY6p8gsYpoC zP(r}vA2?`e6y@gU7v+BDPypBeANJnDtE#m99~L|+r5rk?OS(()(A^Ev4bt7+-Khse zx?3q}>2B$gMoP)wX6Bh0XI}ja-tSs0)=ivy?|tv9<8vVm`0+J3D}~7!56XZH8L>Fv zWYQ!HGizO~+bn35Ut}Pe4fZmKHr0?GU`0qr1O{B{V z_txdhbI(5-)X5&gP_Wp2rtcU_d~8oY8_Afz!o0i8XgX-}Gd~~8w&8}1xIaJKUA_L3 z;=a8BqPf>g4|yM|zb96O&i8FT_c-yAe4QHb9CWdt{Droon59y%!*WpdfBVE{f)+4^ zsJLAGirGO_VBq!s8K3No2R2e4lWwa#@Y&A*X{%TzD--#}rvkD6K~w+SKcnGf?Dw&! z=2q?Je|6ORO3p~a9S}X(W&Kd~!H}UnON2xNJ@}(Z9qCW}`*%J|TpPBA%5iiN;%Y#k zi)AeyTlkJFRZ<)=j3{GJ?B@sl>t@M-*!c&u+*+Dq#5ME}aB-IJbKg#@{gIYEK3f6Q!aG}3jsAsC7a9ql^75(S0Kk5HUQUNHVGp!*vYAJ$YI7?3e zhCCkRn7s#^>+hrcdEpyzUyFINiQXF$NkP9E_eLqew*Nma4X``76~r99cOly%9Jab> z`3g8OBOtk+I@s={RzvOBliaqEIu&>@gE-{>S5Sw@4PM=+u>Q8{O_OkgJt~o3CYUo@ zq9Zf&$Z)BXTmU+<;UVQmea8{%5qsy+hV#=q@G0Cf{j(r#%v>Q=DRA!%=$HRs(21hh6fP8UDaBlv{n4pOOcc{9;e{4ko zbx_GcfWDI+>HR&(gG!d3Px14Cp8*Mwd#;(K)%HnBZ`Uh!tCavMGHAv;k^kZ$;5uS& zT`LXzJJ2aunaJ)NW8p&D;+kiZdsV2_5b_b{V+9mZfvN?u`61UJw`vXG^LRs^e^k@{ zc|yXHZI}JLUt&n}dd|sW7l3QyM9QTuym?f{#|d2f(~pLO7Yq94`^g^jkT}MR8GECD z&Z+l>-)dL5dx$S0aVbJGr>h|FUIXvTB?q^i@j;k`&l`K+UyL~~w zU*R8xM}!GtW{J6KAk?A@G+^TE0iIr58g}Y1ybpthVw0qi8Z{IJ*n$Z*ZMuV~5uSy( zCz@NGSzmh3)t>C9+n|G0l_FBdxYR<}nDXGF2ae4X_2@3T!aJmME1c63wO0qAb%zw2 zvS``e`k9qHaqO4L_+ft$mM_RY;Q?y8I-S4X3t_DF1+t+^2_kQJ0kU^&`qu}9rrG?U zv2R6TBsD?hY85p*x2@tOPPF(q<#Lf-LNP6bJ1k6aV@v=;VkLZ#eT{vdAQV9#k_aXxP({o z6?%e}DXF@I+>YYIpO7MXxmE(v2CN5$DqZDR4X=yOtuik0MKys`1r5-Z6;^{c|EH*@ zf~|m?^I7)gdjNt6jD}OjJ-w&I@8Dj}rX`OUe#VjXk%$1S`_{L%71ABR{l>U%kMytR z0#rUZ3yTnQqIg_(^ja$Z%jB}*jegS}tX^xTHjz}=_wja3zN;AWgW*IVX=zAbi6Bv- z*gduYGXJHxcP8iP{84lqX&!K_iyrwAr>BlTR`TCC`oJ;DKJs6zfC}a52RxRQf!zVH z3rLncuSz}NZeo_4e*L0F-?*Kljq?6zvDIWaSxwhRr|v}@Y97#~{%uc5?(44Y?L(MD zz&eOGZ@oL1X%deku|HE$lh~5YQttIT;;a0=cjcp8=v*k`laL_K%M6EtqrVKBani6lE+xU5!M)b-VAbln|gUD+!Rhj->Q9iv5#lR z@BF7WI|BR4H&_g6GDO$3cfG)LH$MV|-172NlK&CteGQO_*Zw9A%S7qB)G9sO;#K@E z4@3Dej`?L~a&pmALq$c!S`59Pk9WkEXntqV@JXBTsb#%Qzhqghj8pUK%1o6dhN;K$7pc zw_WP;p>0Nv{~~iBovl9~K2S8$=J}Nvx$=RUYOor$!h567@qGIZ_73v!Z{B#_HhSK6 zVJRS2Tm7(ivmLbbOB5cAIMpF0exnDAcoQI!o5u zzs&>6AF3>;>21y~&vrM4JPzV^%bQh!!ZFP1yM*>Tg-;9u@&WB!5^#J8;#!j3?1%4Z0R-cX!%tunx~ehHpp) z5|z`hW!BLG)Kd$ADM(1sN`g&U~HyIgk=kYBa>6*H+h(w^5@X9KX9(T6DY6`Lf$z-Z}-@J~|mj zzWe}yxlD+W;X8KYjJ4>zEG*IPmU@w5Sh19&op+bXrPQKmn8TA_a(&bS6$%DDf0-Hb z(fM#n^&P)lI=bvh!F=Z`ZzZ;&OY#u{$0{OZFUqM><*Tz**C)$+X$q9O+mW7PAtI&} z(H8c#-`BenHNp|SdI3REr-LU(UA;gCLdJeaKv4%$jM75QH#j|X#4Pqm5-3{Q-sNCl z{Ju50^x#0%RKOW-$uUur%=g=?y;$@mnAnX0UjLBDGk0U3vda5MM4hrwvC=8 zP{>W~FS(w`{8+lVKr8|6^#N6m>sN%{BQbp`4CP&|?vz>UzNQ!vP`+sQq#94QW0L`4{dNBR7vV=OLpi(!p1kOuvhJ}0D3oikCYBqpkDAI6hQ zD-h-3Tw|zp)pdW;4;|(z9rCm1!uq0K;zy|Oa=Xg>VT;8&z&ab~f2g7jR99~>+Q@A6 zB?aiZ^AXHlCwVHXNPEK!x9phly^&%iWWe-1Jm?%fu7<2>`}O%v0@OJV^&znP8}0Bo z^nuy!f5q!zQGdu^)nM=%=n+gv483fsl4gBmRlyEdXA2*r64vEm!1Q=3VECm0UXE~v zt*FbU&z}~py>Oc@ZKqxZb-UmvMlrM5G?2Dj+fX<-p-gLj?eqHOBU^v6WoFpQtHD8I zM5*(y0(B?*p7d+zIpvO0N)->{EBf(yr(a=~3LKq5n zapbLyz(g2*0xvJSKh~wnBV?kd6kE%oTxe+?km?I|h79(Y4{Q|i_eu2mA6KD}l1R1~ zJa>R3i;(R+KHbH_Gz@)>k@$!l0hNQR^x?IPV0@~rWN|WG7hKTP?aFCw-E2;YfDr}k&mRPF0#ST!h@&a0VgA3k)jAqpI_^UtF86&cLSXc@ig=wrL{hY zENU6$lPf$nr~`@-=}Po1rb@nAKM{Pr)*Uq$KdMzozkGnWE2`ckcv(si9APC=OQ00H z{_u6H?QT@v>F&7N&~tXyoldHcD%X5#Q%^rtYE+x(%RIUpf$zaZJ$@{4A9eid(8;&~O-i|026#lI+G4)hYU!3<3RhZybYh{G`vYzJ>1~TlP%OcG9tu zsy`A^3X%Ry6=@2fKuE(LkUmftK@auE3AuO@8nDTw6ZI56TY|_PFxPTTu{d}WMn8a6 z1J&!fD}@CflqDeZ9r+TS>(+FsljZQ!PPSugP$!lzpY)yKv4h}(Y;{Ejn#KDF$OqD3 z)pl&R3@_D(x2QQZ$sT zjjjaj!b7J5MD;5T#MKsJ1##K_4<+w#vGbF=ESS>mUIr3>2*Sl;!j=)lG*DWWM0#~s z^bjWur5Z&-LvJO_%kQHd=cBZ|(I@nsqnErp!go5T(+VA1y0<=+NiNH<;y5kQ`Va@ z9xVw24}u5UHps+N=AwWP?QE8JJ>5omp-eSD8J&Tf=_^L7T#1-eszcI6|4sngbLr%p z`HKj!|6UK!8=8QM3DadxUqMup-0X3#Zj<{#bdS^Wv7QlR=nx36JUc{>oy0Z zLCMf`8qYyb9^W_OH6_V+dgk|Vwv3TH5s`!WrOz2)czp?khspZnv-~w*>aNAh!KfCG zk@0_3Z4gw(WKmnG;3Q&%zz)Ek^cW_7qW=(3Yo5egza8vzJpss-t3n>%3A^Z zieem+9|X0#F8N-k`{Xo`DiIBo%f+5}tXv{UaV9M5*H*m^5XUGgQLk*z51Ul%-x5sa zs2I8WR$N|V8$jQSi$73BKcMfhUnZ= z5Ap5NT0=LNy4{yVH87%8VOL%rHd9h0u&sjYUQbGXr05uXO0sf$LlB2piOSG&1o5L` zl`;YyA-;bRl8CX5$k0kl@inTD!!)#7*Yii-z~wGOqik6H)17IKn0vPn(C@uMu%fJ; zG{pG-gv|eRx=CJ?m-rJu=!{4regwJj)&>9xsJ-0J;_cpe=1~3stk_(1+q$o`iMx`H1(a3`DjVQ3q>Hm#GTmJV3V1hWNCCpW&b?dLnK2BFN~KSEaITd}1=J`94=HhFqIMSxh^L@$RkUvxgT4 z7&K}YST^eTujQwzW1^qaAQ#>g8rbo3tO0`NA6NZeEb)W%-o=ZPM+ZXkYtU!UW->F$ zaKzt5MLE)SljCUkv&4KHr^8t#a{l-rAyN24v)kfr&A}JrzKKF^SptKne7EZfK!^VH zF1Gd5o6*Qfq_lk6c>;wT_>$6KB!UtVI%!VISr^kAHYr3~>?a4=(}f@^)s#mQTWYg4 zZV4BY_x5#(8WTE7#61Mi21}2G!;;$$CKZk2n5DU6i&kkyh@v ztVE?|8yb#KAgl=*Z#<3Jgv@X+C2@iaUkbIE8r#f+aOLg9_u(AisVi$9qyj z@bIot0-obcXMGi(>2rgzVHtq#7hjwt4kso3QL({RzY$V7&^wT*oA^B(w!cjevJ!aM znlioQIsOu#c46nmV{i$Pz=1qG`?7Zvq}j(HITcRuIJ}=e;r8az?dq6>)lVn6WR64I zC5u&+q)bVWIct7m_)~`@?Lv#!$AL^XDb+Gf3`d5nZUf$bA}aSDhVK>J_iidy>R_&q zHZ9I9;Ve)_4|s5_{CT0P?nWO|U1*4?)g5AI#p1Zgm$or5IY*FCbvc-(x=y_{;Vz6H zwp5vir}MLiLYLKilUwzxHhYW^aEK2VV2bYFeh`HZe;=6epsR+>)Vlfmgpxhbg{Jd} zrdf&GnKeeoE?EA_w2~6gi1n2UHJu%d=t1N1niQQxp}WFis8R+s;Jb?`8Epuh%KKWGb?qb|&Ip112*@ z=N9$!H@zI2ib|l}>gV|3J?36y-OAAHqc=&#K@d0*4dx^l4BzL&ZOw>b9f)h$CHdKT zt8T(V!%=syeti5ozmMmR%fxKi%SqPp0sz>`Yzh&LivP-D(ksV*Lk9jPE!Yl#+oi*6 zzZ!jJTpZqSD*3LgU8~M24(K+U%V=5$AgSUPB?BF_j@jq+sotCO_3{x;M@x!oZ@|%*oQNbc7{biu zcu7NDPb)guaZ&GxB{SecEs3s-F-r>|yVi5suiKtKEe8%jTjD_u5$!Zld>cZ)E?MWh zxS5VbTe^Ls)aJLe%gOXw?>~|R9L`d|2*(qFNLM)T&zXdAcT}F;DK{bG(?6q%5LAkN z*VS60Q$M6N3H7?Fz|mufwdz3M<$NE#HG?96N~jdumHzMahB#3roGU9$jBU_vNpXX^ z(XvhY4<74ldmGw^yrvu8NN-eSW=X-g%VxVM4|#e|+;%(xjuUtWM^qSAnOt1h*$G6> zLh$$Bh8JJ-S(bm+PU6BbKGHD#ERXSVST+!eOPzqN;sclzinvgU!osLLTWJ_Vt6kGO zU!q*7xM=B6X|u%V@IoxwL`%zqCO{jXEA!?F)-I>u2eO;o()qf+&M6mP%L^2XrOIM3URGa__W!%WMN?XgFpz35D>&i_jC=nXBh49r|3aWLc^u z?GY!=xG2Nx+Y}A7_(;DgyZSVVP2W>kSh#4n;Hse0s7$H>$IO>2K#L?sCA?{-R77Q0 z=-Ft$IprZ*XRh=fK#CShG|tP~fSMZ)%~UUW-+ft-45C^+aC=EPDspVl)hr=Vv6mpn zr(v4(EJ!b@&(SJ;^6BgZ0KoEZ#kT}%g4Iu^(?7RZu-V3>EbAe7rx~S^l3m@C4&EuA zJew)nG_e8QlhC*D2dhl1)^o}x!`Znp!>!*Th~GagwtD`szYm5vp{e%)xWsho4t~3v z9)zAm3Gbyx_b)GYDX}tryrV_hv#6(5x@9u_TVCcPA7=$g_q^BpLP1kgc*1WpUnj$d z!@sB%h19zlL%JyGq%RZi=X6~d-y5j({_aQqFn-CJ`V}b)GqaMZiHT;hp?B1cPP2RM zRApDb*PCbFnxxfPJaFsoFr`xSOKr71edz65IXex{J73u1~C3)vlnBvEeNZGGj z@?&Tpa#-(ddRvc#xM;%#X<|?4P5RhA6q#yMGgZf|1jK$r$OGoDxVv>>fR@G5_1gIE z5Dvl}Zas~Em!H4;s12bkGTeAu`AFm%fKloL6m)*ZM4^sW?8*!p<5Z#A_T`&Np7IZy zxQz$FcH^(p@d>`gllXw&Dwp)T#KzKK6>h7r&bL$*tM6|i+xLayp%}s#KtGRrh zh4+Yw^04{NyK$p#emyykw97&w4ezl3YwC@14uR65`<3+%MX#w+Cb&VCOtpgHOH#ug zceJ6mHnl}6r857EMEsrT0q29>%HTjpigW}!`lf0ZS{pcRc^?bMaGJHbw|VRgQnVFS z*y=wHa=8d!u9o}3xc{VF4wgG z+w<=^hzuhDMkj@KUdh%$)75LPJRvc_J&RLTSw-22d;7=^52bZ95kPiUqzquXxZQF< zzo09+8PKRc%|+(BmNzNf1%kZrtE9QkG=85JIau_Me4`VC*(_pS^vOGA72(%1jq=k#UsgKw+dJecDP6Bgm2YD-<=Yp{ zCyO4MV5`NFv`sI6N!2P@@-&V2=igj5C~T?}Nyk~WH#7kL`T1)#0mzBi4rhOvC4s78 z*B}IHh}zgyOmLzgJe4TcOWk)zss#SZt5}&MM%8Hoy@$Ugx`R8F_s6foZ@u0r20SKb z03)l6FVkeA)KabSdQ2)$9tx3_alAP#Ne!G5UHLGR6T|kg9Oq%X4$!>Pd{8fv7#l{) zA=QO|v621qFmdaZt01EPN9XL(h^Q`puD{dSu(3Xoi)hSuzRTGV22@vME!g znp>RRZ=Dvz%in;QEc8>2pI3D1isk_ah9IPW#rF@lBp_QOq`S3c6o14$r z1tWkZktjRGVe8}1lmM(rDD?o{(QO#mQ8iv1nHmuy~ zL?Y`lyRjlM+EGA1{aMcz)^dJ+SEpH$thVK+p ze?}7hPDe3Oj|Z8MZ|^4i=@fnb@V6aauB?2WyFm+N4(o*i5mV3XiWuWb)91&mU$T?t zU-OpyCqaKiu2(}naWLB~byHTWd-p10$$ESYK~iv|HaT1fCvRC?LSi&TrP#jM44VV8 za=a!=HGqnE6WD%g_|*bUG3m2Yij*dtbq-SJ+Py&x!02VfXG+v{Q zO$EU0Gj{b943+|k*%#&nt*^^3iw4+~6qlVdA8G4!SZp4xEPU=X=X>zK8ijkK{@-6@ zlrU>Bz*J7OG%6W{ZVQ4a$**e36>i6v`Hb{|khM>xB9K}%+pp)Lffl5+M@ori4IUS- ztJUU=XFWO)|6@1&^J6azOtE}}R^xM_2xd`h(cEulsv4-o!n7)pbx8qgTM}y12tnN- zr8m``0y3R&0o-3|s;Ew@sd?PjE3h)1PMVUM{>%~m;=3Ol{P$gHkBhyj4~dl&r)J8M z#eHKXHF+8CA+2@BtmSaJZzu4_+g5IwQ)!w(btmdfk~ce-K@4_(7`aQo?s6vRw{AP#`j$Lnu5TTEE;T7^)t zCI{Y{Hp6H(pTPyr5Pc6OE&NO$p#o*YlktAIb@dxW0-XaF?=rEQ#~@Id@7sKlUqW&Fk2LyQ{RzOHgRa@g z&16TiJ#}KBGB5huX-oUI)ow{OYpL%{UpKha%5Nk0x;oJuX!sFF^)n4^9;ss)RI|U< zK78KpqtuLipZ)%6yPwxUSrMfM8@W0ft{<4bM>M8tb41=Aiu#l{0Ee#M#7s@KD@wiq zW16;FCQF%ncg{-qeDj?<2RwZ*(6o5!U;nzKKK|dM6Mnu9*uM=x-7s=VW`l|mvEnK_ zXF_sy&Cxilzdjyi^j?Qd0|V_C6}CLEE!)v02CHbLWzMXU*;Jve2>1qfKT?17&HyeX zk^qQJJOr6=tlM1Fff+Z^S!fC;#_NpQ$I2Nu#V6ys1rXi9fslf!b=ak7Pt{QkNO=tO z>we^K5vT^qd&)pnpv0e8{>ya#<3V3EnBriNH9T&D9oy8ZUUFsn(EF38OOV*3%>O~Dn|YzpYDGY z7(+Rlj##$0awIPo(N7jP+kr~BMekt;6}4Mdn6Q?*`r>dvp#0Lg1DBc@?h^~>`+p2J zm@9rHM2_2@;@K0uzX-kNSi184E&WJ{wCPg%2M3ZhimEYV2JwAJh*mN~fx}?R)#xH^ zs&UO^?fkTcc|=eNCLt~X@tS@QBjnF6Dt#PdTI9|n#aqUqu6$^}LA{-aSKRKZ=(1)v z%xU_MIQ&_R+0yt4#Mx$y#X3u9YNk80u>%5ObOgI-1u2g4B|CH~g?1|NwNCkX)2bxZ z1T54ZhrNsR;Q93X%!a9ho=4H9@WB;SJZ0=B4My)xBoRQuPDD;;0Ocq7QYp6ZbU`}e ze{)@NQP^9OmGgZtyo)66Dr&m{xUBm~{mi|>Wb#P^K8+L`ADbksxMvnE zL{%U1PBT&hPnl`}<(FCfU;ppF6<4f)J($rwPJ@mX9*SXZCvPqd;C5U# z;wIrR5DeSBK!@dFAJ2qYw0b-w?|h733Af(~0dY<|8z_pRZ2W9ztf8)O_$FWX-1S5J z-9J4Ce^;LUu@J|G^&?qP%|m%11u4gXhRbX>pQ~d+$O12lrgIqk<44RCeGSV7xfXr9 z^5o5e_K*oKx*y@#zwOCkoUaY>O;?AiYb9Q>{FiR|Ev zOiV6mO|ICZ-M>VQD<+wx(qUdk1de3C75qWS_poP0W&t5+2F~#2$w9+KcC~hF zEq(z=fc!x*>@MUBNR7`+Ap#i`j)G_xg&aL=yYTy3JW3cJ8c0by&>rY7Z_34<94JXE zeTIhEJQXPE!JHm9`VI->&O?b1c?%fX2!pj;`FYc7XF$VLP*v1VQyv&5Qm$8kE<}op zdnWHRW&p(1;r@^Iz-#Z)vd_;M*z=M`yl2Hwj>!=#xKo*NzyRwU8*-b*wXt z=?9ANPT4{1wcE>X*F$4w4Y@s?ZSI$SpcDmTqFW> zJmv-FrP6;q-oM32!yDgLflwSmPFsQ7AEu?xxJ)|*Gl9puO%Bu)ABdKL8~h9xw7KVv zx-!Uk5CpLbO^6LKCHOSb@LY&d*D|!dGBD z>wlHo{=@*{pld@E18c@-Le7RUd2dngN?@TE+=KBGWS)K_W>Uuk_tyewUZAr&TLC!^ zOc;)CjOorp!w`1PdY+1z6Gq>sH=%72C(q1$%3FenOt5g@fu8_W1-Q*~!Y3>~{)K_` zo!?^%hDc;EcqQg#`dD5BT&QEGKM5x2(VhXr4Bq8D4Yl*9#mb9U6&LjEB~;W1p(I_9 zaz&Abwc(7}Jrh%w>W?lSE?SG%cbsW864^iz)S>t1KMe(Wa!@2R#p?uvCYi?1HoHVK zsbNB03(bI`J(L`J?1}V*ViDTe-WzW?pAH5pd`2?&JvI$^7y==9p31bsIjG<>VUeti z8FDYXJdB)@3x0-IIUu1D72QUIykyi2?oJ4){AT~dmE3lzU(3v1cvyNru>0Vtxl)oq zgCc-y-E~f?tQqI5oYN&(Ev7#ZKjO+C%vjJR=rr{qZYr7w|3|?il`EIpjX_e%_q+`W zb$M^1i=it%d3o6>hU!@94@vaQ&BK@pYNBh&tLlubSxeE~3Ud41omMbr>*#Ad3<1E^A9uqZ05z9f~@GC2%YGD493HNOFGkI+pra8K%O$KeWGua#sq35 zf-)|SfzKvkddMG9q59h_0=<5jHv+^5Iz8vKolZ?jZ|l)#_jIsLWw23@WYTpQD6m%v z^5)vXFZth-;O4wR`t@}MU<*->IzMq)xK&axDOcx4*a4()Ec`&)MXYat*BN@mb4>lZ}VZt+Yj(T1^;4|B1lh3)63 zL+u_CC1X_$3^UzR*$xX>oUJA~EkQBd-}YD@a@%X@WP@>IKsOlCH-OR|;fyle;-ewm zOa*2qpxKnSkA*tr)W4gpeiisV^t_pL4B1I1|MiywS9P^66-CzN^xu#mf}bx6ER$;9 z=dX+|Lsnjuuq67z1wz@Fho?@$BSQF6L1*?W>I4JS+a1`%w`tYk+cb2~iqzMwK+PoDz>GIL zcByDyCdN^PFxi+I{W*5ia>Ngmp*tSC;@Nlk?%6R6+&t1XD2OunTMfP;l3{L}(6)za zMba8lQiIUWPdSQ(s*3MKx=`uRlM6gancY|Q0rAGyDY&HHDOk=A%+r=fIlKc#5dKMM5#Kj^$h|#Aql3!ygbkHT*aqW^gngvf*?-lEAj@!C66L% zH(WklPu7-VD91)6%C=;@-*>xFEzjyWi=5g7b09Egakig zGNE7cq?t2NAk;s51`7j5|A7f%GSzmT2X4$4%(?Lkri zD^!$cxzj_>nBsmd@4f+0-zGd!jIU~hvb|iVd|#zgqC&7){h=uEXyv?OcO^cwllFb-s2l&`i?4Jpwf9ZGxB+}{i!#H-or1wo&-?Ke{E4Q*c7OJkoN zpnVi29B3ZIG5?LklZOLEvKzjMq7SI{a)o^>5djxSg$BSzS2^S357z33TcYhXNYHdT zd_oK|89Nrhh7R%IH;D33V7Vh>j159bBqf!dl0=}3ayYk zTp1zc*sZKHA9EQvq+eg(O`7QaxZw8=f#zyegSR~etfl=#WhajQrgYei=O9SpS>Id5 znrFBI#oTgYIn&&zKajuS@BjrzrIep|u)*ixoas=pXY0#9n55#PdQAg6oGciG7-Zl> zM5wml11X-$cn_9t)n6W!+8t{He zem%C(|5EHw+;8Mkn(@lc%eDyUt& zg_0=U1Mhf5`{Y0AsK2iGL#iz_02>tm^qRE>G*~(W-eZt0fFkj>-jj1CxDgI7o zLsjLuv_?iO&ESwJ&wZaxq{vvRTZMuD8+W79C*!Xl#1v4TxP^1)w)!FsG(hV4^@zzvP^E+H>p<02*(QOwdvd30MK{*H4IUcoiKfPDaF_ zx|rHeG7cB$oL<=Vn~(|mW0+P>Gg0eZI(_rP^)zOlkM~_X4iYaWz2yx_-l|Ow2}w4I zK)*DRgCEli*7dXegs|{4^ZpPNn1^*o(BJmG=8kB!t@8A7d-cDqUQXT#P@p~A#}n=^ zLJpo+pQ0b+{EaFjglVlqWp8)v3$E>Gas_C6&CO`9@2*X>OQ7fZwefS2RG>KRFY5Vu z@kq*dPGUovH>kaD1;5@0dY7zElG93C{_7|r5h1)hQpu%8p1k^*1DKk`MDSwf(XS7k z$PboCUipFHI{4RH{o%yM1K41xAaM0>|K%+hD4nJa)Y!!S?Y|Jg1N|-%512B3tq%Za z62T8>B7>wFNB>4;0RQrTH}c=p`@a+UzZ3cY8Q1vjNPJ7vfd>HtF4W*%R_OkYL;Y(( zb?6pDMiR3qZel~LG8@)HH3U0-L*dqb2HKpzj&s|Sfj!GOSLAC4T==l{u;EX zDV6XTc0}3g7+Eo=nPhy3Wy9_~pEQa%6OhQZe0Gh;25(Y~^BdQgU>K8a#(0u=k_lX1 z-uJft;!D5}%xIvOBM zD)4)Lm(XNr+%o`tocJ|7a}8d2(5IRg=-e~dpN5S@$|pP4CA=5M^ci?DV|aYtYc9{; z30#&xq+t&DuMGN=62HX?D0@_PZ%PU|OLLwoDhAcMq|fqu~NKaZMcrhE!v6CM6BfkqHP}gz2S!6UqkLex;xooHEp| z;fZ=&MTGl}_AxJAHyTEq?57bCdZs9deqfl}w(ZxL49mk$5gK536*LjZp}w?q%tAQj z?`#5ecc_uXojTEX)Hu?6tu;-GQCU$I!Z`PA zj_EiM@+ek*e`!)cRUIbb^%Dnc0_wY28oWF7v?rslLw*|tEF#sjI z)8|=_A69{_dusfuD6(Y?OL|+-6XnhLi72A0cPj`+M=ceU#N|YWOypQC{MOrNgVDW!G4exgQ#vcWNsgfdOXe zjN6qTllgC}1dKRfNWViyH^E48DKHe7mpIY00mb!^qz9?6b*&sW{_s=o1 z)l=1^Vg}!>9*@{rYhY{15oDNYq9)&vcBcQW>;AQf9D#A+zE*a@%887}xi@1JJ>&ND!W@V(E|f~)}`cg^IWZkFKDx8K4PU%>^L80x)S@!6 z5N^=?EUy@)q9Y>KZtC<_aem2a_rGkT(6baBNez#P;H?~~qmJB`bLMRoHQw5g@ZqF{wl<*@15evdqsViH=@{$hbVZb zhqx>iwx8Hgh`&j~fL2niw*)qxi&wS&>m~oajrLCkc2tXhQb~_fX?(`8%c&5tp^_|Dx34fz(0AL4Vy+Sfd}dFD7Uu3o9m@U zPj&tAN3>Nbw=zYbyi5cdHjPYUmFqL1L6gNjtn%T38aGH)4!_6= z6+sX)x$GDub@XJ>QUvS4q6Ll;|Ht-jUW&p?T6s>NJiiK&EHq86}!k<%)ZW&8Kf#TFAy{J&Fj^k@~e z6ox9>8t9L;FmPpPu)4EYAke4dRMnzXrzP;yBJ2r~Ni~!V$$i+r+2R3wVvK;DUFECK z7LG4+m7prQI!TAml5}5E210V1(phZrzKhldvFX#kk&33dQ&@feYdJ!62R{>RE~pwL zO3kX7#AW(2D-(=h9hxmrU@MlH)~P(NSg4R|Qd7WdJ}NBwTh4!r53(ABR}Eq`i1@11 z-7q*_)@PSNU6_6bflAr2k?8LYG{YCKe_fIJ^-a75CixiwmUxZi}g0fOmegz@-MiHTTivhk(UOarIIIEXD}5(4d) z1e=fMPDH2`Cr@@1RD3q<_%#~{z^ceSm`j{0Cech9ExYCwa%T_8l%GM;zH3C!fqrw= zR#wJ0mbPrCLip{8QiuAM3Yr%~@)XQV``GQPS1~4{BH6Wgb4yhe4K*1fscKRm|+C(Q?46$cZ#dJ{|X0%bbZ1F%YQzGP9Mz_Yz`}w&0 zCa^4*FJDWXPZh+Js2t<&E0IK#{Vwub*Qc zb=M8`lb2Fk20?OrcN{vUm4+?J%524^z17A%|L{!1+rDk|Z=4MG^!ArG(Z2CMH&>*{ zxR}vCpR;6`_5Qe@WH!TO?uPk?FeoCcFdHRlJioNe)p1>mn$EQoKA$y}U#Rs`cz2#> zKJvEZ7Wz)1Lv*ZB3hV1wW5h(+^DDt|`r)75A%R}(^&6*_bu;p5^IuYOrxH*;naG({GEb85gqm^H~6Ytf`ML?fk&60 zoIKB;Avy>js1Bg)5Yr|n^!zT^$jEa!llyHpb=YXzO~`mF%jJcdRtb;?0A`_?3}wC$ zBk+1xJsxmAD>lS+rEU7EjB+(3X;*W(P0vy`M#^zyp|Vl@Y%1 z2$JL=O}JyA27V4jo=Ym8mz+$B8*S=o#aT4A6&-f4iovT!xKy!5VR$!7sbYyR?g5^} z;+5DwGeS{M&QspWW@6bKh7EY|6QFUmtOPCsR;2yyxkA3lAg&!|sG#u)(@l!5cidgp zWvhKeVDR8Xp^}q_P4i8%#44b}-U`40ASp`w*6FT#3;-gN>qVB`6wbG`?}R5_1^9&j zh;ejUzq#7!2;2s@94I9|WVbgdHVFbnd2nM|s%Tz?zGvKp+pPvh zA|EfD3`v;BbVM$tKK+A2Fi^e&BjVO`^sx}|y%~QthSw=!=)e{Z`Jvp{3h+0$DUCzy z2pX-gr+rTZJS;ytY5TEnSp}p=+%UoFum2dFBX*q%o)pG`+ljSuV-Dnn^AyxyC6RlO z(O{cHKUQkTao8m2Vu~@YN=z$4Pe&IQ=Mp{fDk_VSBn)V;Pr136*JWR*NMf~|lD^ey z*2JVj?$z}?&TBfqEY?@q$aEM6;7?sO=4vgmG^5k*C2TAm=%D#(F|cgeW^2q?%J>|B zpq^CI?VGXbp-5zc2gbLh#PHpUpU-*_CUpMnG6+0FtGJ+Iu{H|aO%o9|Nn1NO2P(ygga%Ix=HuVsN^2M~eZkRX zS+BKrFeVcg6ynG^Aysj!MP;y(Vbg;10qT>*?PN3~(qR2HKSI<3M}_FWM+F>GZKHf^nj zs_8`Ul*U!!KXhnh9&d=2-_F&IU2h;OPOK@MvmE&2BsP9Y`W2utw^IXHcYVm9Y zroM@vXv*zB87oles&1c2rq#%aQMoG{TPxBn_YN9B=?*n@`|-`#y`)&}ER>Z_wq@#<5xvqm*P8}(!&tKhk)=?Ccfx*yes~|>nVG&XlcW%tET<+7G)iftl_ss z+EcfyT-r5eP;Sg(-Fy-Lt0-J+qTSN^R~i}8n#hNBvXO76x$DrTX}>(6tj<}(G*TiWSjt?~t}WMP}t&=QSm(N>|6JD?98fcScP z>V?N{^|oiNK#^FYKbdZPc+}ub)^e;Ntj25wY(PuPSe*6?s zJyH)_gCMQzojru=^nqBLMLR+T_Zp&d6mHT*7gxj<(?;1wg1|N*D@e$AptzZ0+L4wc z_z`hnt7AanT0MQ>wz6jW8@wZ*;|(lkpWABz<@yCrOU1Ym<<})GuJ=P^s}#LZF4zAb zU2ho`N4IwE2G^hgf=h532ofX&jgSO)cL?sTjWm)#kl?{BxVyVH?h+b@AWh>gUuD1N z-FrXhd}j<8qy98hRj*oguXWFP%_#+0r{CA``W3Ev#V~HRl?ZB%@|Kft&V#34Qf!$q z4#Amc2yqGSn8D+ew3q>}G4?lFx42tu3jBxaF|(=hN>(^tWGM@k%$>ha@m zVBt3J(H#(UI@o~d9|S(cQr>>7z4~Bwe|xEc+#^=ieIdenTrFwnT^6C*AIR;4U{xYR z=4z>3%u>im+cad_!=q{_zF|md$fezocm)2?J>;I{FNYuqgO@r<%M3Il)G$YzVfq=$noBCxpa>Du!v*8_+v+DEv%M}sCLXD*gdCeHz z-(tcH7#p8tG;1k)R_bW|t|Yk)sB>B%V8KHX5fKUumEYy{C)v&2cp_FjZ+<3!L4_K% ztIB+FY|k{Ox$JgYfVFxZ2WO@ZFA10(0@K4wz3n)G=c)Z{xiDij8KlrreKj>EJ_yW3SumxQ zez-|4qI(BW=$?EJk! ziRn7$vN|r!JFw=hG4V&2i}gk8vhc_a;02Q~7teCYlJ4=Q%m#qWn0cQIZqMgL#UCy& zFIBAehbxVVa%A}3Say9206G!SP7Lbo^zh}pkv`k?#j-sd%mC+|5i;yRHBn+<`IM{B z5q5L2<38HrIa&4InUhYLUp9lyT9pdPLiI{8E+4ONlo?C>=!L|?111~7JBsE`^h$2_--O&|`BP}%Cn7k9x!OW+k;agkX}AO*^pfKio9i-Y39nut8uVy9&j`(hMF?-{^+neyIumzI*MMYa zbpzdUCsObG89`Li*qn4q5?1u22Vu%E#PCs_aXcCds1}}7e2#UG;!#Fk~B?P z)${lv&5Cl0)M3cio<9Th7_3i^GkI7Q2a%Gj(FV6UCU~EIug~rNMV;#T5i;)8 zujf8gpfrY_;AkfC9KdWi=jjO6J8T!3>@Uy5B%$DVWqUH0E6nI<~+@+3?ti0Flf z6l&+242nQLYFwGEo8G%$EGUhkKG;_8KNYnvpz_>Qni!+=i|)pktS@e_zjCApNjS9Z z4XyDybaYf0lca0pUgRh9y1wr1#AX?xjFy-ow#a%wS9)1;7BT>z3G?9%qR8Sh? z))o#<@#dfjKffgWqkh$F_fVHoU6}H8XS!WZRm=WTu6S#hZ&bE1@y|+LqCSI)Uz82wPh+_->LXqevmyIEoJ(>`EM@|D zS;HQ7=V`K?f3)NLTIe8CH&;wflo)f~o=5s9rI-E?75oE_JSJ*VxHG_g84FKCeCsZP z|2`d4nGLtY`J_P|8`6|maQ$4|uZ47fN-M!`ap02gp|U}d^Ql{~n8?K^Ek=lt!1~X% zEQHyd=#j~u=q2n$>5h?;y&rejq-v3-*87ewdG>Z+Kkq$H)T}(&vE@za86*|3g$iz%-uZA zIiVx)9?X(KL~_uz#|ZU4^gOpu_NVQ*bG2{UV!jWG^bBpy0?BYU93g{wc3$~GI--Iu zmz^^XT28q}c}dbR_a!x{8l}#)UGo~;^g0(H#vFE&e`!4fc*sn}iTjZy-&18C^thPq zyu!vr@UTNdFvry7I`{@p&x)_w=s254u&d=+Yf7<@rh=>)`eMG0PRxdc@t_j3Dlr(v z897w846+FvMwb#wu0r39-;%PkusS#yBe#JhK%kKqOczUtwpZOULft=qS zp?bpJ#OsQ)vRvu5d+v|VdM-q0XKWpRlIwQ38j(Sl|~Ee$WM2(TCMT}-)>Wo4qoZfx{P-+ zv*qk4O#j$_X+LQsNLdWI-B5Vbrki2jQXk50-4|@NP^yJa?WVA4)NatyJX!hNz1Fkb zOMIi>f4{t$KJPNI_-XEl(%4jK{W4J;TsHLFaHY-nyq&4M@q)rUxuR!HBWhfx9(pRs zUgE2vKTc#47FbK+0p?)CZW`eEj#`!Ie?9!OdiwIF$!nKN>wYY?Au@#)(?aigXfRp4 zY{yjX`Z>poVTp{+6O*{k_KcCnAI;CbnoEeWms{2R)jr4`o%lCHc}Y+^igWp!)%Lz6 zv4y!kJi%a2#^x&S@>wb-NYIeXGHCbPB0^cML6!c6e4*Ua=4gghp%}C?0W82gF?yEEr_XK%r5opb>%G=UMIy<|Z3%nlvuSQ7T{d(YT*Q`t2V#HVw z8eZx-;MAMQ$Sddh06LZ>HH^_|ZSYbq{`>~t`>--}vAW`uVJtymHwX(~-FWO*iXA&8 z>&|lrQj|&o3q)6bhNt$$Z|8C+oj>Sq0vLQpZ@YjL^tA(Fm@vw;e&HZ;f+x(ee?Tz? zOQys7><|58QQn}WcgMPzO1}Ke5}&T~`KwQ*a+Sev$6*QA9VQ`On@Okd6c77)vC?|u8(Trba{}aRS`B3=BeWqIthEB!gdI9 zULZ-#uRSCGZn5uZ)){HO2n(9?M3H8Im>;lt_N++@Iq_v|Rx$7+8>t!&+}SPw+hP(V zgavBt!K+6&A$?61Z*S#H@3CD@)ZTY*+d4!1^9>}Ek84Uk%IYy$kv1uk-m^3ZcZKmj zC&rWEI8$z+;y`auc4ptsa=-$J<;fuv7UO?QE_?uXA69T^&>PQ0|KMg z5VOXIBPe$}gzL78MsprvUCdcOogTObcN>aZiFb}+K@n^ZeG#v3rO<+cFEkErjw>5! z3nch`gW#2@n>WVMDoh}K@_O5J?A)#~x9nmR1*LfH^B*bR#UmIX2Gj}J28ZkpSq z&yIR8e>;!Hs+VdDhp$pceZLMWajZza$F21tA08=p1V5bT-{mHBOFeh+EesA`Q6G|g za*>FOO&}6T^*$31^b1cpP*7m6A7+2_CYB^-E>VmJ>w!+h7ea#!*YK ztyUltGzg!v1ZHr2D=keqqS(U(`0WT7kO4h_gdZ^`5pKS08uK%pQ}4rSSC@2klBqIT z@hscUpNcx2yJ3TaWzIl83wrT)Ttml~4Oq{rKK^0uns&kJFnXtmS*?g&q(Z(s-@Xgf z9-ps>ko!3_NpHUq@#rEMY?A4@1ru!wIGE+fp*tSwZq;N1tUoMLT>{*Dqv_L5d7dMt zhlCXSuhtk0PZ}-{7F2W^J1HwUetWNoRwY*LvG40UiWG@X*|lEJ3fT`Gefh@pBR|bg zJ5$r*CXlK1s)`zC$#N`F@3ngjN2me0%tbF9FDh2>l@l$awqY#Tqo;OX3Iy>8MHyv~ z7luDuS$-F;dvqpTGc^u*!`RV;KWY|;+@hILkTAXkwV_X1^(ULpB1`Aak&cotc<6~$ z!0ZtS13eHhe(o~HGFFUbK2Ephsnd(!*-hZo9+C`g=v~7io^JbwBt@T4O`+7klGu%b zFHeA_gl=#|uWkJGc*|;`Mcn7%dS`JW3H}jnEE~>`d7FVA{N=Mx1r$BLc+W+X5TDjj zjqSa7(f_glqy*JDqE@aPk$=-qHzB|IW1KOp`X<3dysi1LacL$(zI*2>Yz*$dW124} zH*?xvnfh`Qb(vO#_P9STR7VrMcxsyHxephFLm@&JMIsw#e7SzD9s#&x0&jHN&rW2p zTzS*{$5y$T&k|=TYvl=a;c`8W1_ujR{nV03-gq~qzt=`+@HFZctMcy<)3IsB^yw&? zgJ}2TkZYVJFsTlTu1Dv4M`)N%-EYMU<^H->uU%WDw(D(c^ZMhQZZ!=?v7pheNPw{} zq_nD7G;l+YGq#gam5{qY|_$0+~JH5!oe@keV6aa;` z<$Fz~+yyQyK<{zd?cW+o-`jPNUhRX>i}pkN#E}BWuGVJ7^|oLoWu9cKxyK~NT7}x& z_1ms@eJwNI`usNK!514kV@Rsjmss*OHZXanlyd1zM5pQLewm7bFsCHryGObw>0W!5 z0aElsApNR_VJZ5aS3VQCi#ihz3?bf<5bV=B&jqu@{;!Y%6Xc5k5d+W69++nt(-;Ap z-`%nF?s9W|;g1vY?4_A*X(2RRP;#rsd~X0vu_LiZUj!MJNxhh?R?KR0U~dcuNWW!1 zzGSNH=0?Vx22!gfdAW?6&lq+BI*P%~sCs@&9sZLKZ zL7q0Z_>S7^tlXpW9+#c0JacOKYa*^>*yVD}~tiKABCd(L@lgs9%a$)pVTo+m35 zU$^2Wq~Ggth50uoBC~Mn*O2e!%1#S65xrt_2|3`QEesyx*~18;!*MwX*H!|WmyEjY z3%>$34AK8JJB=G>-H2LmwXEdeDbSJD+0Uu(6@iO+fZhw?fZ0fq@!S(rAM^;eEMfCI zbm0X$3q{7^!9r-0JhwsRn{f*Cv|xfCwri}lE;t6tfn9y2f(hLi7>Mr>CTpP9DrwmI zrGxxlN+V@nQJl47DCeFT9#rM}nyQP+{r7QznHc4%rJ=rNpFa}Hbk*!rlyDby=v0?f zhL{N2m$$0jPDhy)vYe%E!9RWwVQF_^cH%K;RXqv+sL|onMaR)r;R`cF+q?<1T|tpD zjJCMhw~vKqPY8hs>94NwHF247s9(Fekak|(&8qz}EYnjhT8lJ7HAot_(E2Em>k++0N!}zoa`WWFy4t}`G5+-@0&$0^A{Bf zLcOkV=RqAZO;|~(TTzX~_n7N0{5-!xq+uYpNYe}_^g@hC)sc1bja#Sa|0;y=J@^7g zwnUS1Qqg&(gWUV%kunh*$TdhZQr{qEd4pbz(FUkTTpc2vkisc*Oc*&Xqhcd!gqzuD zy!T}lj58F3?Tlli#lpDkrOgPE$Y+vFUG<%>V?UT}NEwLB1iB4#w%Tf^mgU2fKa{Oa zzbduYelY$zq_CjLSuI1lSZ7PDX}UEOAK+<3ejm?=e9)O75Ab>o(1K}@3_jd%RmKUj zwmgJrD|$kgcVWaEVHGW~L+SpUK;4EFLYD<)$(3?jE4 zyLYeFs@|?-Xq&&s|IJ--@>@eo*iGY>gqfJ%XNCh#1Vo{7>gfNv?Nr8vo^f#ec7e*> zs1sZt1$7+vrx7&OQ$PGdh09?oiOmS_!djbsHm)4kG0foG*k!&?x9dzOkhdApEHl7f&gf^e$>`CSduXr8g}t$eOv<_}=_A4rHl{S!b! z1nLpVv1@+KoMKK?V2XSQPSJ2;QEt-1!wP2mp1+Dsl5M^bn6mkq%HjUz{EQ4q6V!kV zLY^e)*M*z1+wS;@Sep|KE}kNeza(<+Cz8!giZ<(M_(U%9i?P}~H=Zz`!_wZ4;GK83 zyFS@cF4q@r{ygci&uGk1@`r-ohK?(XU^Z|N5?=B2G3Yf}9V7WIPgfOZ{3;Qal6_~_ zyL?e-LSreVlApw50NV;Nbf34e2M_iExX0`q@#afv95crVc6cLF!LZI%IL`-H`nR~C(I z>>I6K2;WQgwHthLp1VDX{WqEm=y3Y$m_;)DNM&U#hi_}xvGK7CEthvPe=7O;S!=B8 zKPjq9y)IefrKS+H1Etvf@S=5itTEwP-CiNb&>eJrBY^ioQ!?PzIMvW8JMm;xFtu}0{x zl2dC%&Wj8qzq))TN>2uJ?jX#U2Fy%eEmcMQ36y*g;tu`5WeWGPq#Xc{k5C9}?*7JO zfQ(9iAbz&tQQwQz_QXtO-XiC_^4_S|P@&W>Ag2=-gHz@0N*Ag`GlF2iP;2AF>YLO2 zOEJBy3NOcn$7jz9^Lj}LyV^EQA~bY8Jsa)zZ?aomERT54RCn@q)0E@ao?yUQ`q>B% z%(tGSI0_*TxO5O*&}EJP#_6g6E69PO`t)5L)=?1iy;-E+f92f?cMt7bH!oqg2^9fOKot*daP-XZ4U4{-=x?7}C8{;B zR&;=ulB<%ALU^ff4yOfO!m;M=yZmfE){*5e>vL=su(E<&?p9Y%>g@JRQUXlHOOmQM zrBHjx`F^DsTc$xzJ>}Fi<%-{Kfo!;iLkK$l)%4>+?zOt+fe{uzCg)UF8mw(EH#dIc z{SIJwq%y-8fq0rrMwhXrpS5{dNWAt zXIJRA&eI4cH?$W&J>U@9+>A9vNP1iIU_vuFq!@czjg(yXIqMsn2!EpYvuS?z2DbjT z8aATh@uk59rBhNIBp;b!(iJ}4QJk8K0L?oJjSJrwey*`q7i0He6zKX(u}f-(whM+Z z0+Zdrb8k>0+x6#N;fsY@1WUG%*0+G{^?0bNlb)+)6TLc^l{ZJ;$zC@OX$puwj~y;U~*^t`5A z0}qcSM~_Qs*4Gb597x0ZO4;~M`thFEF{8*P$8zdRKt29x7?tK%@}CmXCRnDk`sH=n z=!rM`LN?{iKAtplC0aUJ3Zr|E>MS(|6bv^Qoc#(Gxwu#r3@sa@A~lJNW8$Q*EDmGjX^rm5pM9osR?8L}lgv^d(U#Q0+Pz9q zthYN7ATk205K%z8QMHM;*K(acGAeeW+CWWisg*nH%}yDkV^NhK6Ak3?xF26Xjd>ZR z-lRT&DhaBg{<+Fba8;%$l%;zqlG|;Bb>7_;#`tVB22wFHOmCd(aEE0^gO%Xjl;D#s zsp-*S{iO{Z#M5&kI!E(G^9L?Roa!a`PR~>EDfYZMFRfG#fi#ci1JH38iwnUD&-gM_ z_*Hz`>7aKe(+>q)`RClFHm)Wc`Qk_OZF=($0enZ4QRLNJH17Z-L_bTq4})cE1@aM% z@7VI?(502Fp{Q}F`J(-)ca&_Jz|2ep-&4|bN$--bPbx(+Non7AJhE-EAlwg{>I46J z8V4~~^^l6YYKvP-<0=e{^tMVO0oyoT3^2mpF>9p&F<7;QohKXX*;bB#?;M-{OjO)V z)$04z=d3d5&kDvK;*g*)aOhJ1?E zTxQl)zCC=S)5{S-1DuxP4d)aP>U}|o7knwyn_GU?t!$@UvzB)*wBrFF8<`>@-Tjfk zAJBS9cp#-t^znf^zU08o$n9GKq;O26r%U@)_y+s)EN<#bf>9a8v06bRF>PYx=RF{g z^PVax4Ue1Te1IX%?P?bMOD_3DC-bAG^!?AdGQH;Uo9pO>Y%^$wQ3sL~!0bRdl|zRF z(@mh0nqM0$&C~TzV9xrI&_4?i4hUdk1^IN9lnqnmIr}{ZU800XwcO(^eAzc#qag`O z5AOI7Yub@Tn5wk;XRbbj>#6-XF^l}OgW}5*4sMLPqmlW_c;;t^758`n_XBki@f?Bg zpLz&ggucwe@}5#t#jIYJ>-X%d;V;={w*pxR9)uF>@=3Rh{Eo`2@I-x}4r6n8C4lpXgdf32 zUzL)(=k}wK$g>dKLgJ2-4Z412?!)VEbzBh4=g*?u)ewYEGj%TjNs~_vGb+9&2;Q`B zCuwn}+z&Kk*%-D8mU@UjaDV`5jpJ~KhIx^O9K%Bym}lMSd?@=-!- zET=wjSGt}*&31l|idi~e&&`@^#dbcw5jEtwlfki*?jD)ye7N9L_j>g84hRsw)!EIC^P2pUTn$ChJG8$ zxLYa@kZZnx1lKMEU{L)jIo;AQun6Zj{~}Dh6mq9|x{$=9&8pyr^9IF4to+KHS4%v) z{kV@3qwTF9)ng7wRi-)??EnR{crkO_XiAQ_YE|pX{~rJ2M?oyUhpTP?THdbk6lR?5 zjpV(5#w~&uJRtj5nR7(=5*j7Pn?TD4=%W~k3euB$;%r`YF!h_I5WaXeTaaE5>OC7A zI@I%?*kyy5On!RD?z<>`znP?k7m`eu4++-D^H{BYU7x|1}uSW^nUm(|8 zyVno!gT1kf^yN#KN92m=obm#>al;gD5`SqGV(&~UJ9 zzTCC%w^Y~JC=HHcIaOTMhu3@Pcu;R|^xUq^WXr) z3vom7PREXbTbXDz?j4C@pi`*3j8sbRYBxIcV#(H?rMH*9i^}=;gwyPT z`H(lFokcSeH^yi^_p7#Sqwl7z(;Zg-U`~`Mg~k||$8_KmTIIof#BC-D9`6L?l=Xb; z_=JNi)?oTUtIl;6(9*_-d4xtZczH-s$2y#Rdc;|dg~mbi_}*={iJZH-k;~Zq?am=l zf;-GfWR?|#&%vYIOGi{Kz8y5~4irv6*WfB8LLcb#v^?ux??)Y;0TvCLA(Zyf7&Ip*r>0Nj{Wo^Ke2m=h1=AKAk!IbAnv>D>KWzjsxaOP?1So@C5opRyFm93^BF78 zmp3_*S$a!Hz8@;hb(4tE?=p`%LurBVhEcv%dVzz`uuMNy)0?Y|KI?}hlt&(;F4SvT ztqdbt>ESU#X&Nq-e01+d(Y=8jWHj1}*IVFxq0m5D60Qb|0>8OM1eS`&?*>PwMe=+! zE}0eQC{a1!p4c@rYqu^2mo;8k37?km)i{%aR)WXTkMF?wcM8JA6qaNo->yh?Y}iB& z=ld7PJbsGb4^P!>{i=NZL9#`>uOM%BC)K^~F0&<|85z`mi&%e{z}Vsevpf}EP*cm- z6TbW0cv>d10W(N~0u3c)FbWsh9V_88yf-he>^~}|`Ft+_l{&-oZyBm8C}59d>5UFI z{@>>mzxAr=1E`1BbWVBmYO=Ce*=+RdJ>KzF%lLz(cC(wU@MFvAmVZ#-r8Y8~kO`*q z06|XjbCH`rCX5*gQ0B;&Jb4D~X=odM>tFkc`P7Dr%Ug@00J)J25aejKJ)C?4&8c=^ zB!qp865XD!U=U6Y&8v7Ds-MYOtvl=LP!@nyN>=e27yE4pE*43? zg6NiNKq!I^M^JNcy<_q%h&t_Ve^bJK_7}c1wQCLRaY{Gk)a`QwKG9SL^?AgNO)E=t zF%y(C{zWQKBXb<@gpXGyyLFFNd<;A~z@}xx@0X@_j-zr}4fttEUHi;)Eiib9_#{J{ z5!bjXlqjQap20^;;N9o2cFA>eNd8oOhgs;c_}#PD8g2_i-|!dhGn`hi@wo9sH^;}_ zDnO*_OD65qDT;XVa)#tf?O-q{Z$@T9ZpM_z3Hz9cc)`fG&;25s**IKr_wm7H)}LM_n454srE*xWg?a4{;tzETzw4=Zd5|5B z@?KvBp9X3~jtf=RXxKj#L6e^2(#rz`k)N;9a_dzc;$K-_Eg7ZaCf7)bEX|6~TSxpG zvqX0aq}Y8)x9rmf-P$RT?@Pg6nWADlhcHWK3G-H#N`KinmH=S(;K<8jT*mJ37 z-zeE5sb9a@rmWZK-u<{DeCvk{H`c+840r4Eq@6LL(+EDZak1N**p0GEaXN^9tUL`- z;$b@`vFSmTd77vCDlDY69?l6!6O!-ls+WwAA-JGR7qo+*iwy0e^s=|apa8Mk5@%HP z_A>t+-h+j+xqv^fHX+0_-u%}LXqrw<7qHX%WW-$kvXf4MVd!x;+`Ntn5%?-gJGe_x5;a0&6a2_QNX7A}SB&rc zy_yhf0&VzxmOMrYS-Qu;r_RJUSu_y5#bcfcFoBfHzDibs8)_}4y+BOQN^I>4B{+%! zS|V)=b_J0I{Y!~j-PG`AgacyNQOq58DK{F1ypc59kTBv0q7C`5gs> zDm#5Z{;=Hao@kyy!&IP={&ySLX^TX|>X=7M1TJXF9rfnUqQHbngVKYPtL=)YP@_Jb zqxtjH5njOD;R(8r-O&rFBG}gPiw-^oQJurb_9o7_c6kdW<=h&A zmdAO|+%`LIFtcg&^SM2?;^%_iZSV=4T!^4Dm-E`{PR17?KTK_b()^U4sP@webQiYcfwKEU=h*SmTYW{fd zbuQ=BnNdkgn&3~9+1BBAvzvc%0_6_ok__s_ORzB^zPDR$`eifogFCabec5?TjC;lJ zwp5=2E1ysjiN>UIXFgLh2o;Z_V&{t%assDVQO`>u+bf4N46h8aIeqhAwwU$J@TQc% zeJMCcL)IsGuaG4F+m?sE{gVWzp1}K?JEV=!4)lEnOy8}i1aQ39M~39%;LHx<{iHE* zoU@EjYrL!%R6VR$ZrSe#~V~7bU-9uaR!q})PGs} z3oMXl9`w@maCE<8h^LMqm4`YoBSlqP&#i0bT#RZJj{)(l;k-k=+|MRPbz*Asg4y3| z5mfPiD-FPQESCZ_Pyi+gH&06d=FHF`?PaUeVY%X=#0OIT>N0kADBt0~NI~LH0YvAaf&pf9TIBFr) zK-D-S2A?{LM-a+Xad?&NRt^3-0krqAo_oSQK5Lq#4Qq||z>c}!g%MKXpg%ZtZK1!} zZz8+b3k%f4joH-rM!^t+d(vZv3-B+@7P-Gfm27c#w9A4Ve|t`w$~TfM!g52?xuOE% z5I}fgo{*diLpPn3NNm4nyyWp(x+(3ZW_^#t`!B1u7_!Xcw|lx~&r7>DUHu;t3z(}b zGRz>&mkOn(Mf9(%ROfc~X2Q?eU)(9;FJnKpy~Nm4?P(X3H5hXGrKm}2MWV^F@`jp{ zoB~;=4YHo?ie{~r#O*xb`0tWylLlZ*H42&^@L-v~01g*~I2u>-eTc9d&x9^B`b#J} zi)O4%*8vR5!)3eK-U^QC;_!77IHksl9r$I?ahdEHeF-kmMWO9jG1C-ZE> zAx@3aKo(sd$z;(>GUjmK|Erh!WAc+$n*4~Ob)4-Y;@FwT(s;5DQL)Z;;7&H8n?cEs z@3f{RmvwRXGoSJP`=bAGAVEV2EIr=GCWp^LisMz1DbsxvX#6&yHJ`Ha_Oie0;tUl; z|GRYgH)Y{p2S6ZFa2F_fRF@iOim!>@BJ*K zqj0!HS9j>O?<{iT<P2tp77}FdGd#;2tMjCdug^KCa%ExT`bJ*T zHFfN-pO&XFS9j7;oB^$hf9#uiuaijIo zegjLzoH=^GUQN0)29!Ch$%N~7a&PbWe&P!kR`8!UXL?q_j#K|U4<~{o5&Lx6JF_1V z)PnM`+anZCypUHIo#SC4Zo*+9%}<}RF4@eeG`YjsM^au@SCjuQbB6_ZcH}{_vL9B* z8pDad8EQEyDLF0Rnkmk5KWkc)ZTOVH5c9bR-Z>9IcV8$hr}A2roV4CAooQb%(Lpua{9?mshHMZ;&B5Jv@vTN# zJre@~_P3cXQX6uu&N3{!6sLS%h0hob|JOah-I^~lk+V6>&coV_*!Tg#l@2T}DVCE~ zWB$(<``0$APoSB9QFU!}=i%uzU41fNIOXC5r#vMahng0LzjcPV zNR8 z_{}z7qvs}kqRj7XR%Fs6=xO%c112O|Cd7bk0IzCyjO1wNQAc!iRWjl-c)7O}7LT9CqXV`Q>iA)|r)e=dn3paUaE z8k!x9vjx=eMf@B_VPo7aSJ^h>4VAbDE8plDf+Zu`o5qK(6mPmf>FsJmu331( zq^j?y&?zERA>rimp1=j?FVOO#<3VgDygVX0#dRUqflp4qm850lX8hVh4#jv}_G&D% zr0Cy?zaR?4g3R>FkjmtQ&^VK^)L4ev={3zKzHW2epLN>I3LR7#`#w4A6@>pwBx^J%?(y)tWpytX1edM0 zed@Fororap)xN^DC9oZ`mtwz}h7VKth8?&?3%+OC$?#0L_?cQGg-7~lJ}XGVLNDi? zHpBp&k$q`}OEI*$;wLw7b6(Fj*{o3xafv+&SHqBrT&lG-uUa3~wDLJZ!uZ&Y{&Z%7 zj;lPI`?dQ4qg=fEfohl6{)`)G@z8^ah^qfrK*@yZPQpgo^iJx9sxoM}Jv3U%h-7TH z$+fZ3uGahZDe*w3@Taj+N@$1v*Y@;=l@*PH06xln*`9&c{B8}G7#L34W%u;uhBXY^(tn%;cKT;6*Ai>B);13Y=lkN$l} zIv#;fV9*WeaumNKD4jImRKu$tw`q1vu~-<2SZ!RiN3=qHp+$S(Mv-)kr&sT#_;SBJ z!_foO-`u@YZyDN0UEJdhPPHs^I*B$$L~P<5+P(E}RACQJfhC-5aszKEP89oS$JL9V z3HPqWH$RDt)W)756#g>^UdQV6`%!D zV?o43w_1cHqaqhFmd9r6{jP4kENrVl{)SSV@sI`2NHsPv|N zUc0EZQcWaAhtrwEPIPs5)r#i^sK>yd71`9X5}c)v``a+0t@drM1jpD%#a+Jjp%k2& zV1a+aaOhSrLDxI9omD0p^95=gtqQCDej+lZ+O@jxhtkx6KtDL#BNVnY7@FZzaw!dA zF$7D{PR#k>>WR2VQqI=*MLPNSgOVhxkNz6HmN}_ zb`X3}n2$D&L-k>%GVXA=k2CivH$ zd&6<>CBYc=@LBb7^#9k%^C7+HAg?^iyuXO82E1K+Go^_x^O`5vEKC);IxVJOFFLG2 z&jb}=QIxN23NHC<+CPcF&vLbEk9@~<>}z6v`@n0RZkOE$!^_)>5E)|(^yrwy0LNnS z6Ak#rQWS<2%RCrxdzim*0d9NbsheBfUKUg#4d&sV6o25?cU#VD*VFCqSGW@XIcwfb zJ^iq?c9#=OP9MNaP+(CR&0s{%%rsU6Tun7r>A~7`k(OQvb#-$K&o+za)pzcxrhBYg z8}8e)U3!b4e-@!90K5t(k+l*L_7;C?U2Qyx9DY`vRL5C2Pw9$cL%=4s6e8B!Q@KmS>UICpgy%o|1KGktLdq z$`xRG!pDB zWgcm&-C<~d&nUIYEz+n#g#_o@2Ni+kTwj+0m1!d5uwYD-_$|5wtBrZ{DABF&?y!Uf z=k0---Kics^P7m>st;I^%r1NLo$oxE1F)H*E&qNO!SWjNujI2{=Ktbo7QtDw@A-5) zuu1Mb?X;=IYjPoV?VVn4dHP|5;?q*XceCmX%FjD>oT%#z{~U195)n^YcEpbUP2KXzObtN>qDW|H^Qx?C&eznR*Y#eXI(T92dji{1LTN10zuXW#<#>5 zH7$&ni(b~8&$1`qsr8X!PlRAKpTQGnB3Aqmde@%DHpw-+^^Xyb9mh}KUJwt&X?~1( zdArlZ>-{mSg4dF)qm}N7-9%-r7`9;p6<{U#cMT78*C9{d?BlgRG!?uu{6O)YA9>C3 z2T=o8yG2qBP{qj#q^Z~%Av&nN?P*D{S>)0|-nhSCy$-Q&yBDB9%+|{A!&;9JNw9;pcnJ>x_@_cxPD@Ql!-r8u^evB|u_A`7IGo+*WR!bCkT5xaWd z$&+jCOz-;nw(kZ$_wlJYR71~5NCvy!hi_JMi_LYz{FY#oRi5FjfpwJjAYdj{_x>QC zP#>oTt2iB-led^H)8m-mABP;$drSS~Ele+Oz5Z~0=3Fj5xYu&Iw?FvprT7?DoEk8S zlXmbwkcUcVRYa`vsy)T4JTc0UO6lKwWo>pnG!uBb_t3^6}1wP1+Y@y^v4D_i#aOXYE1Nb84mg+Sa)Rqg(^@K#V>UBA2d0mzH2oua z$+}Ejbm z`?FArZp3F0MDgmh=c^J(w8@_Id&&T*s8>?K-5bknQfzRBz^k9=J1hW5C{o|tBv)(d z%cSF!Ty>@Ofl3Hw?hDfOglAZMsA6M3vlNreiM7eQwJJ;-?=E(9;T4;w$L&xb*ED(m zXp8W#l+)!eeCrP~snc9k@sxh@m!!x$gJk|wmH=y8VFg1CCjQb^s|MWWbtln;96U-; zeyY&Bz3IZ(*?BtF!^VBPN%v6dEm$Z`9E-GQ@xDR+VxQ>qcXhi9eC*GohyY4bJA|eRZS2c)#4c5m#L|4XsG0l~m8pzJ$*o;>IPh(7ax!Q6p zx!Ar~a$SLBX9fI|e*z=+?+EopsF&-PQhzZVwAMmF?Qt|_!zfwOh{kQr8u1ld`sr-yiA2e#Af0)c_EwfA5+B z-(v!I`?WT07=ZP4MSf*HJAEtmlfr!&obeT#svkAjPR}GE%q^`=fQ_?|gWuJ$Zi;@PKfCXP`8B&%b|iT<*--z6U%Xne=-7afVDnC%g4yKR zf>T!}b*^Os+^AsZWy$IAKVnz|oQO0lo$}tC-Z`KAmf^ON5o#9J?576y6r38IOqI>= z&*7jx6il1Ki)U1Mnu}Ru7fUigob5qwgGb6NrA*Y}@>V_;@%p6T3TWc`lP;1z;7cTW zX}oqWxcqDp=Nlx;1Dico%1Bbq{iIW>r+Is#-t2_-|FHL#VNq>;-67pDC?QC9j7WFa5YpY9N;kp~((m@1`*_ZIZthR-*Z&u;ea*F5d#zvh zauCO8-RyEos*JMU$orDc*8$>V~T-_@Dk2SNUU94mU8DuXoSNd7f_Z>PJJl84C;wot-r7?BUN& zW1Fvca)>oF2o;M{Ofevin8I$TmXj{W{|2dB3=^b7g{BD7R~bzjCL`x1igEtZ@~VSi zr}?yBKAIG7ki5ps#iue_OguE|`+JKv7@Os1StD6ShEHF4Gxk0jG7eYJ-drBKtKCc4 z(_+N)$@d@wb!NlUQS51WA5}2VRan(hCFXmn}?bi3QttVq#h1 zBQZCuNJ-nD<7f9iF!Z*ode>&%uo58`7MpRp!Me+98Tl|`$omOuxap(Q<_23O^CAYJTLR%13D0To;sm_3}d40oj1J*yU}wMt$h)zW zqM@UsGtbZ^w|Lv1Sb0A8MaB{b4Zh>>EILORy&OWMpL@C_b3v0_Fbj8wu#MgTjg;K?P~T%FP~VyF2>>z>GRIpy zUnDtD%HB01#d&>x+Ii90dEfffdKFQTl;FIRa>}*; zc-kg4K`M{Z1?MFeq+;%`MSpxAI+6P(WfRvTQ%K zSz`WL=!-i@xITA~sqWlG6-!q|ed|g@gICq_sM!IOE`UsnOM|EO-iRyA53KPZUkhi( z?!9mt$7Ur1_c1Pn&k7q@U~W+jhsMU6>)ZA3W$qw(N>M!p);W3XzK8s4T|!jczAuVu znyFcQUE|#bulYU-Ah3&UC%FCp^JQQYrjAJ8`2!%0!)YOB;=eW}c7rd*xO2l}%k{}5 zae%4d`Gsvys8`x6;XZ0C&{d(@3=1YgAp6&wf9!`9bO%-vMl@q(RM_f(zKyCpFP}O6`7u!3*Pq`m@!#)XN%|Ca zUIjM(?64GNGkz6L*T1Hq5gwX=|0mY|wYI0yo$!`M6WznGE5a+6p=KwC?foWgd+TGh zTzN5;XPA*b)HJk6nfwj9-^*{s z1MjA=Vf($lV#QntIIgDeL;VXCf4}a#^-zqlfTA}qEI=KiYIovRa@Xkvu8sT0h`av{ zH(a1?5fyq2=eu`K{aNNQVq-8@rl$S>zL#!?=Gd1+sN@A)fN7VCiA?p0!3VJ4l%4tE z=-Y-e6{{pRE$12-#&`d-Rk3Y6)TXibdMDa(s7ly(QI7(})EUC~8@@{|0%QQzSholf z8^6J5BRjew&{ZiWf7?XEb3n@|BHCUULv>b`V+oO zfB1`_6B*+O!$Q`I1h9IKRdAi~q~D-)wZ?|ef%rE_hIEj=$GKNg zI>%A$QV-1_w=9w-D^1PpBPr=60{>+*%VC&7w0l;_n^XpkZpiH5Ce| z!d+4&S*8LyHKVC;-SG2BXT#*0Kj*EYQ4#QdV-~ZGnqf&q>ab;lSWR&<{brY(`@RDM zMSi=Tu=ik|4iiiOE&ON!P0Sr(q@&3=-6}8AWdV5QBbODwSGL8cp;iyC)4=1%auXs& z`%RK#!D1U|w8br7vcZLWy)^(74S{;`FjVjN+-vyHEKtW{fg@O*O*lHj7xUf|N0hj+ z{PVvfeUK6ZC|(>A7+~15266Eslg0T+fZ%A4oUh_tZ*WPbM5|Ye#;MZ3(FX_24d;?i zs31v1u_+bh=l8tuXIJM3a)AOCG(F8A$H1*FSm=6!bQ%zHr!%V z)t&)k65yJ~o0L4?E8T0;>#1D8V6(t8(-B%O_X(Erl}NcnBcPkM zplQL)Sk*nPs%qvMXh3|b()S+!GoyLkq?SbysbZ<6u7{r2Dj_2H3Yg0?3_o3P-y>Di zGNUV>Aod5oK!S?#{Yz>(7$89q+coZ(mTW&nS*&2w$6~bN>uQ?r7{Emd%6g-u= zbq16iwe^3+Dc~XHeEXrPKx-!H!W3)aZ1HBU{%E0of9BoKu6~Q1NW;D!=Hi`&%*@^T z8J+y`n)#FmyT1s5`_Wxj^-(84wSEgBaq4U0=V$TSt)RM`%8!_{@oQZM$sm+jaDZaf$QI#5)* zj@Cr*+>R-(E*dXn2UdRAc#ZBVXh@j2DNl#`)s6_J&9{TpjYVlXcT3sco*xhSpZmc8r_D)(ftWroo{T1U#`(J z`^j(|@!Eb9TeoA_7qtOK-mNdV_aCZNMB1tjaGxZsCmZg;w~PF;@W?u~Y&vaso)=_) zM+OGPoYdGE|M>P5W!K%|StoiLFafZzc4b8FI4 zl?aLYegH_`FVZzLOw4gtg4|Ih)=K@B}#V;J8KNBNd{e!@fEV!g7_ECq+zWV+W|A~@6TeP!B_;eu-<7vUJ<<$*;t zmxa}fyy}++;cHN0y@DF0GFZpY{(Z0YwahvN-i4{1`auz6l={coepx~}4BAT1(E_~d zwwNZbvb3%3md0P`oypqQ_-$KUUpqU*9j_c!O{TghDmxmh4=W%_v*ImZhl^P2Ms63 zm6}|b2^Ox=3<{x%9BRC=gA$Ge7Usw=rNH;Su4WhO%8|#-n?j|Q1lZf8)i2VgQELza9X9w zs~)w|^^3<>%anrQ!uzh8Sm7<^bL)*4`{50*DzC1jM1T6?qg~ZAs2zGl6K5lvHOO(M zOxCs=Cy^GuOB^?!t8iDo|A&dwadpbMsmbSk^7<-f%2bdO__gBxT@<#nw_7)%@Q?;- zJU6^AmGndM6wpfH?@bfTUw`Hzudp(_z+|RPPp5OiBjS|Nm8m(OKIly9bXai1i}bRp zHuAEbwd((5J8S(#nxVel;>z!c!jI`^}y<@YIjNkMl@WiZHeQEOkMuCSbPro6jFs} zdD%c`e^zT6vK@!Rm;RQ67)1)L0d>FrM${|k^HI}RA}zE!!Mzf3dUrI4;BHOEv;m@j z*^aw9bw+rC>nM&Pt3}_R7(lYI>_@h=BQj@AwRzQ2o1=48 z=Br*;IwGYVOKe*^YPs&YK9pa!G!hW1 zn0#qpLDxPe9xgyRfK~#zkv$KzqF))Hi6%~M(<_81X}({kM~v4DI@Swo-37l*+_wkf z*{=ny6x0H&rfDBp3HF=wSkE*t{^6qff{^eq;>ZL$ z-Dx94rW*Q$d`V=eATnoMV6odXynio~1o+Vtu<_?jCcwfpICT?*7}Mr+SCj9$>EgJ9 z_n4HbQ>R|Li=;odVx1uRCTj`Rmn%W8Jzex(WU(3C#!y($Vv5RnvRVB`jPUreVOnRB zpNHwJjk|k2`<7GPEL(lzJ)EgUmYLSwTD(YjXBKkjyPc{fS$Xf_X{RKs9$u__Rj<$E zGB`>;EIMhQNRndFDpHug9Fq;G4y9&d+S~Q4c+G{zs_NiJ|Kba;=~iOwfr`WwBM6K@B&jwGb1!QRNU=x$MrQ_q~$ zBKS78r_Fa{K7rEL0prK9MM-$xVOT!B}))lmKnNz~|@v|Pxu(qJ1k33?pbzX2~pm-G# zf0Ynm2Vv)u)3%$K4LK2NRd_x>re~Z50mp(ddv`u5m&VQ;6!@^rAA|Zy*vf0jP9uCg zSDc%YT*E7Zb0?N3X3KiBFuqliO)ka}{BcC4CsZ~xp7dJ#E!gH!H-SX_RmY|#v{?>?K!ic{^(mlf6ZFf}}CKG8KDN_Pnjw||Jb?1x9{ zdI8O{f}s}-Yr8Wz>!x;WDp27cFBTvTE9}Z94Co*6I$3&ML{;I1OiElRODxs$mK7nH zcD1T(f8OngiKmgv53j-%{W&CVEVa!ONARZAj^I*a_wClCiqfm&IF32u3H4JMkr14< zjKfU7O1Y}-y?2EjyL&>WIKP}rQnUcS?|16QY3Cy6LI-=fUZlsMmbBNzs3n=~${}H~ z69A>mLXRH5v(@9Y*l>So0DG1)FM|2)s!A-VN`lHa@B}2%9hVz zt$@!eYkgIdYDgZrW!W(hhjI-mI>4y^s6a?=8UK^y_{PK!5F~?L%)7ryv+Btc+>^;i z(Vlu%o-qu`5(3jn6aI=cs{D^cy*yq-X_lK1zi~bVQMf&y_b5-`etOQCp7S+RXuD3( zOKEm6p8v^S-ZxtI>D{kDi)2+o@(uB@y*+P$N2K^%;emtU^Va-Ne z@3A_$=_HJ7Hs6BBT1c7mkBG`A+2)YIylC5BHpHJl{1KiQj;sZ95co(QZ~~}XoP4)2 z1T&6HapL@C%qFc+-W)MF>^$p?H;UC2a2Nr`Bg1RA2EEyG(w;qG&mnyM+Qsfv^v2A( zc9(b3t#&n*E12vJ4zH)%HKvpmL*quIT(UG{gtg)JL5}nQIucj6^$RaVVRhf=ppapz z+qv2EV+)p1s8zrQ`(CZdwA8RmcA9-~?a98k^FlBl$_=9V-pi|#S!ccS8?TEPLdp<< zDrsLK_Tq~D5@ekOr1aNh3UvgZwLWTZrH=h|sy|~9;|x>`F~(&**bR9h3)XW{m<1*pz z{y3r^vfU?Y*Atz0NrMGK4j4Kgo1DxU;;fH9w{Jr&?;x{?pLd?^CwD&@Hh$1MIvb;| zW27tRqIWKk7F-@sh{4`C6%^1Y#M-cTzO5rzsZ^w-b)m+Dk7I>)v)**QN};VC)?_ZM z;*Q@Zc@Hp7)U+O@68?@R0JME9LnR09W-4yVHsuHh;Y?&7Kd2xzUTMJ0NN2bw?|onN zAk}}VC-3>dERWlfsY4s&J^x*Bx!1*Rb$@u_x5{(#{8}Gk!<}i5!`M;MK=eB5*=0o9 zb378dzAiU6wFQgf2IK0()a8yLO3~}@IP(eib}vLth&10uxM)|c)s4q$C+?Hm1w=3y zCt^_uO_5t`IypLZn5=YjfmzCT!n`kA-#E1s+8qOFMSZn$nmD)s9Z0cs*uC<~1>SHY zx?kIQ33!)t>%W}KpeVaeqQN;U6p*W34*}X6Kg7~k(q!Rwm3%vQ0m}3LgL7)IizH0_ znTJ-2`65Scj<%UfIjh^o zJsBmpxsV=BA$~Y2E}#(WycN0pA?~c_+LGzox(k@5HM_+&nlFa6>F$C(w9^Fk+qniE z7lN2BstCVTO?f!z=@91z)Sdb@vjUcrVV3j;152r`Nqx%fgVCC+Fu}gNdgrgqKg9zE zKPM3yFt8lr@CEB_(Mx?Z&rAM(4p3$25ZJtL00qBlJ{ z4Z{U`OflST3e}cRoOF-g|BjjcV&XihW{XGTk4pC?^DJOskg{S{a1g4~lY8NmU+!|@ z?Hlywxkzuw@xbe@~DUbQ&n(~}?Gm4;~Y*ekv zT(JJ3^nl@-LA=u;Ltly}Zxp=vqNO$Y1B3=f`*I5Cf8T zWsin=XCF?KD}EIMT?_?#F2rgYlcupI$#O?E(}jbk)v<+!y5veJyeUH~7d&99b?sU$ zn^{Sg1{Cg>c9X)aQ@!pdaB<3R4ehAOigj`|1M}>z&frf4*ZW%GorAAmkmRo{98atP zBS)V#m7AEmU2K+i3cQ%rJLN7MuMtkcx%yYM7&sT|pj(_IkLeJVUrY%@LBCUFPB&LG&0eVUR3`Que-s-xy{dUIlG8`LFvJS1Fcy7YAV1#N2- zX8N$lg1nVF8hoAT0>pZ5xvp!|COQWq?)z3J)h4HzL7yN^*M0A`KM)Sl%~|W1>#AhQ zKLg4<4CdaJwiAUQM7SK*!P^Mgwc* z*em0)u83<+MMA5YS$`Z6Qz90PZ|rheTICNce_-2WSOqMqaR&L%)b08A{qo+NhjZL} z({JN_bGc^08dtrR%lSw$^~Nk+dn_t~HD!LD30+CE6$M5@-Z{5WaQym9Y^19fV(ZTe z8ct@`a)FW1X^*Vo!_gPDKtbT-AHhEb^;G*bK;p_OHe_V9UM}ig8|*vHb{}=P$Qf#6Nl;AW?tbGw|IV(IhKd=_end^jD5gew z@E`|^MkPr2a3cf70ksqD!a}a7YS_uiDX?92(86=k1EFwHFYJwLJ8l#C2&_FhD139t zM|OJJhswW{7d-UVEyVup@8f0Eo^>4kCBfW>#KZCU&7dr=Oy4n@|-#aKi?Oi^J& zX#Us*SK`Do^Sj??U#GqVJSMOxGJ(vbd-W9})x8ghA}60Y)E2Y z$3kK^i4Q8hZ|ZA-27jHX70;4W@fcef+Z!+zQ>%ZTB zbY$lBhRFD}*ZlEh{efrgc{WO9MEu3FVc0XN=|P$7WP^&`dLnw?-J29!KmPNY<-XyQ z(B`42vYFE);9i2-Z=XZ@ywkiFunL`(lxy5AD#@y=5ubruJO4_%0Fn|ch%}M~2a}kq zkCYtNsqOCR6-I<8wH8lwsXk`Fdmuc83bzJtsPeh|_>{L0^A(V+sSm*c3-@+3eb=X{ zo|N5OAkyZ~+_a~BNCn(&H(D@~o~mTW$LYC_&$)~$94OF^bZHkw&zqyP4Am=YJHM-X zlUcQVGE0n-^J#qs%Zb7(f3LrK&cLY@F+{Ye6^|6*ab=;$lUNT&TP#^{5WQ$;?;}dG zvYybgP$)kdk*l{yF&(b`D9|)K>)d$EN{rc|$1uvSxrc9g(V6DbqI$Jj?9HPzb(v^U zWacQc#Q4a{t?W2CTI>vHp6o>WLS_R$=#ab`-C4NU3t6Xz?AETQGNbxLPGmC}DG6Uy zc(Uu->8ui-`OJeFmV%j2-sVJl(njjKovj|!#+!Sr&pRibE_gS+Z7Mn3*1Jg5WU`Aj z{^hF5{pqUy1=tO5B-r!sos>$0ApxZvBx$|&P2oXBW&|5K&C=tiu!CGKC2mShYQg?+q8;{ zu(I|0UKc-F``xw++au~K%11ZbXO*^$J7YO=?c=Se-4p z&00ym0NyvxH^=Jd`>4og>CsK9!h|ZKu6R$SpP!59UvglG3>mJL znSJGQ&V8X{5qqJVzh8Cl0XC=qPEnQLe5%XDk9j^q@05t1iOnywS@27ot|9y!v$bkH7)k^}`fQ6v4dQsYh*@vPHht~TOt z{FSi%hl2n8=&Os13T@eRnk}th+#g%x$&)VckqN*nEpWBUC$8R$DtgCE;6^MTx7H>m z)rR5EHdk@XDDOh(C17KX$@T_b^9e}b|3kd~{a7bMmCM!t)1_`S6aF0XMOm|uDO;0Y z>A8FOm#S5sV(W!QrNqfXaQw*;66x2_SGA6A)dQDAZ?{$XtjyHO zgpXt|fsrztrESyF6$RFMO^bJ4*tt+%!f?8|FM>r);HK2_c8jPvw>m;B2W4cz7KJB) z$b~R)*!27n-|4>{jK82@%7O%wX6)~_0JHU*sSLCZQ6|Ji^0welR)R@t&4~pwGAq-k82@HRUKa%EZ)(dx`agK%kvxy=v1>cKy(c`Y>daf<3Z|%KNZ8 znZ%=}#E$xZ;U}7!o6w?FRmS$oN4n5dj?Nh0b;58Q9M(fykG15BtGHpp}P2`uoW%_Y%enXS6b zFic)U(oga)4t1`}`C%XFp+}$3|-1S@J{7Vp35cqykq{WhXVc$@+ zB8-mV$l$C9p~BTN&@DHYaJl!$ZUpZ^J<^W|4aNwtuAg$A=aP=j?tn!}{%CA|QA00l zNoj*r82K*6ygMOpWZmosi;m=fImUlk#0_|iL}(0}SZ0Z&e75Pc<~t2&PlksC^Pa{4 z7q%x2ZOZvRhct-TOu)%x86A;e^PD@Zc&ByA%-M(57Y9B?$@+}pEo}AiI$7lnqZKk@ z6_n7TRDpMSgt#9`dC*IT%4wnhg4%yzStw2Q6i+dgCBin3G{*sL^;r(!@syJ7>-WbH zTk%&d1gNE7&mN$1%U1n=(DCPtq$e#482R*s_>~rJa|$Js{gc5J`^`=R{;zZ z)!5+p@!&QhFy%)wqk(Zham8cu30ib2;1*aI*aB{Av19ubH2(RE%;uAivP7$hTxQEp zqGXDU^7gDg#n3XWOB#!9yZU+SaveK`z`uvSv zXQJFTRJ$oh&r3+Xi}H3xR}fFvpuOxemzap+IH9R9!S6WhDhKknPQ@Jn`6+>lWzfO~ zFDiz8cz`Q2L5hBpm5Y8X{2YgjeeOh(=&&ftE@}cXM$BZ$GVz;9z?=G80semcRi@C>)TVVik2eE`UpcS61@H{D&ab@bZ&|5$?Yek3pG5^qdn|98bR>#;i@pK3+7~K>P zBT((x(Px-Cjuis~(abYXAN-F|^pbhx|0w1B%S8AUu*XD_i2!Sj%-S@Wtqr7Dv^Set zlq!iUfz;PNKbF!C%jC%|zWJFwS=pD}2p=8^BtjRT>V`7T@sj8IDKf~r5Cs}C7IR@R zXvU2as%Z>kKCb(aFUcbRYKiPNQ)f)n_lsB#>0qkx?B%|~Wd>zaH5 z&epK4%ieKIcHdO2TTj?8LFGyWOH~+v1Y484qH7(n6QC|%HdE!utRlfCW62UAtr$?h zV(6z2#92&n(m8RT`|F@it4onJDIF0OutdIc>yNtN{}OFufnte#8~aDY zQusQr4cSll50qNc1RXf=9_W0FL@MO~lGJgKId%rTs>;>5Ubvywo@75Q32zKI=U65f zdJR3uB}UJ9O#?Au!E{2Vff3`54}=7#R9TtCA-A$+lw-)D1t!XIH88qS+-hHs-Md?i z_|pFp>3cH2Ljm!3%W5Ny)PNb#PP?eH2!x7AV6f$?U#Nfqg*SvK-uPet;v1pn_R%NpbrG@tXCk7!OuWj>WlbUW0tS%a*QlT+^@Yal)pt15umkK zn?XUsZ+?QFQtGS^vW&fh#pzcNPN(T;d{ckVrM7WqDUEN1v7}M(U6&^{tx+O zgiK>+>o>1U9^`M|h>ilL?C-QAU;Qu zpZ9K~{MQot69t+@DH30SyXO=6%jvMS4itS~uAHq)w0La21ns}nNZu-FktPov=?dXE zl2qa})J}Y||1v0? zO!RzZ4N^=@%F9B8^L`r68mw@;EH_0#(nTFB*HRdmZbPH23z^14a{#4mCA+K_Irya> z&M@s%VXPxWOoQ;z94G=b7yOHCtdmL)4}|UUM=Gm1_Indqtrl)YYnOS_;eny)oALL{at|GELf(+2m>9lZGd5+&xyn7+{VrmZONW3i5Bvov= zlqcqAjS?@zeHE@f4wlVe4H_E=Sqyph7(&FQ9E`YVw64s_={%h9!K^^PPZ%!)lM^4T zq;9K~3 zaR9DxfViL+cN`Gw)3M09m9l@CG#|=2Lo1U_vy;)k^iPGKQiLAjA<>~r8tAbg_1tB- zMEunV{HoF<&%y?>5Lan1a|nXzIX2+x<{;SL7sU+r zLWkut?Qcp+ndxR4Co+ao%uI#R=qU04jaDy&rIYk#>wKoZ!zj^r>+{%E&~q3EP|oN>1~^2i@Fd$ z){wXZ<8Z;h455Z75$Q3fUF1mahc8C%ycA(4cbYE8%;01uugcY-#XaZ5di*hs_`&GQ z7E^2|j$4%|H|bsWrL)e+=4_96$usFRG!(Jo=>Vhlt2qs8Y42jjkNY3QHk8|*f*_$Z zX+bD0m|wx{i2 zI@CZb&$N*ieMa;^*Lj&hDM*{I=q(G2k8 zW)D*?!b*A+Xw=AZ$j#yQP)5+`kMR_!$iSo^d>&M|#?~*eXQOV7YW2TpK0}g3hjc%X z-D2tPSlx=+tyTP06*G`Io7qiVmTXJ1KxJ*=%`uW<)H<1Nf%MYOgC41VC7+1;L%uT@eh^7WQo9^TO zk9Zg^V2PkY3rl*0p8Ssk^x%pyvfTS%{y&zlKmrh;reT!&@HQO;K*$IY`|a@l5_P_u!1;Rbe7@Cb1ePxp1HeP5mSA$LNdshuNP+Vi-BG?( zRRGJYQ2`}_==ptIpnrwkec_u4((rG1J?KTE%z6r*04h5;)f4v1nm;(M*7 zqm@uPLM25IxN=))V2BAhx%IUoNzhTtk^?#&5pMhHWjV5l<>UtmFYfYaIKI zE;#iEHcO5i;e&^m;<2}>i(jTWRp?QRX>ley{#`RB*iVM1&*maXC(ce}qgI((Wr5~Q zmj3MYD)3H7UQ5}Lhwh!e$%`^+y1_W&xv)Q)cm6M6hG>xCBpNIPvOl7nmfFQD8BYX5 zIiO4FliDq1M84C@of3>J{sT>~A?1E$%??9x#94SKAv$j}4nS9e@O!SeAcbm33mKmJ zIh*YVTl7u3>iq_AJTW%LDo6(^8$yiQYUinG5m9()_7GjJ1YM7o2cy_iL>>e2z4^NZ zS?uk47MJm5b1u^f4m*XGa{-`K(V%!Y$u6c34n|=0VFCn}FJhhiHR2T>!8o8Fi7!1= zJ*@Pyqz^-?u%%YdJoc^-^PHnA7zyx!9ch%?)PgApsq_R-NLwo*577eoGSW3_+w5a% zQRehcQXpi@a-n)sbtRHS(C^Gb8@dX}|NF(DLzK{B2P9aN+LmZ!`EEW*=&R)Mkj`H9 zJ}BO85TQacs|#YsIF9GmijaJw3BLD|!asrtKPZ?FUknF(M;aTTxw@p1EJjph8&{1#SM(dZVL96%*!=(U-UOT zF+KG})xO+&2{N!RP^+^xgAFwyYuTpZsI0aQ`rNfL*ZkqN0X<|_eSt#!&%OO^Tkz0* zdq-NlNNW>IPoniSy9-{GVdv49ql`g-884{RrPW)p0Xws}c||vxWA$BoMX$}4{P6ab zuB52OT+mG(n!V5+l*t03Sg28x&}E)=)m~SEb7INfO#~zle&Oh}=J5an1$1m-5oJPs zdx#sXgbcD9+!h|br19*G>GmxMs9Np>Yo`@wn-r|R(UN7v)Wc0vPdq`>qiMS1#;>)D zaxkcPs})HG^_jGVuSKO*3r`N|I%+<6w%Czvo&i5+jDfnU53P7tgo1OR$7?_kLF9yP z)A6%?67%V9D{)6$#O?Zd?D<{xpJuVTIKjp&FTl{0mkZEB7NV*EFi9gS8@n&ZsozGO z%4}$gX}o$^MjU+|wjPt-?OUS)-ynl@7{)$uJMf2Mb-5A;O7(ZAfoCH2^Swlhz52}+ z*a-sJeR>}NVMf%Lp3gZQXPMY~pFE!O-$uW8d?lYy!IUVA@0nfK?Um_5bwx)iNBzfm zv#E3CC(sQbDpIRILUxE%CePD!KfI!WT)wKA^b!4+SpRJhB|?1y#MrMl6X44lIfS+F z*R*CbC(EpT7iGq>NotIk!~^VkBZ|P}_M#MxsqYgbO}KSKA$W}}{S{L}7`G9wk67vT zawTkF0GoK@iI4gAU+)#)Pp!sxpe4{M{=$e!T2ncp6gsYP>tnC5sn5-g5nQPwkU29Qxy==JIkKbQol_@~qA zXL5_-)~nU-xaRQxOriL{+XuvTq(B5Wt(n|FKF1H1qljnl`{VM_i6F)!4E(GEkok*U z>S(RklwTz=;@?~vYrRfIxz#vMzd(+38*cXX|ICF^SVds20K1=A|8sk9v9!^R8xD?t zgR1kMvT3!Zp@G9XgoxtSBnDvNN>h!6etA||T`gq**-(uiO>6Oz`N&jY5$yqUn_w(g zOfX@@X4*#qWuB1qM2kOFxevQ#JOe;%>8ofzH#(6X?t(v7(Bsex&9Iq|l4F};?J94? zXr-A$&{4!|p=8;Y=TJ;lh@RxF3=UY-pTu&gyYs%+uv2=>mmpTlni}gn*MAG*e<58A4GEUYZ94SLg*bl_7I_{Wh~6uUspG7Q zRewAcg-M*rJY_#OF|n6a!~JH=51s9HKBoHgLM$uS8XQ3#-ZC(i z&oNfu=Gp2+l1>c;*##%_BY^S{TFiU#IXX2T>N;*Y(=WIKRWwk6Q6Dju&?+hm`C`rE zx0ly@qZ}ZZ^EhVAbXU|6bM+zPPQ^tVuo^UEaxtg&-zAxUK}zfiK58ZXzAA|;fw4QG zn?nA>)OrYzJp*bB8o(s3_)e?XQGL~z#O!*qw@ifjL+Um>8CqD_b1HMw>DhiwHg2Kb zP%plCY7NxAG8c;wTH`F{R~^##O_s0L?Ca6(-Rim~ripFD$F8bwWP*xS&ngx+xdEjF z3PlEm2om?v7SA{(zVIgsP6`YmB96S>VDS-SM-51ff}^jt#ZG3!9kjpb953-+jZ^|9 zD%|bkApvL6f)-!^JM8Z2)O1s8$jEbt4c&9}anKDI@Z^d+ z&9j<8`q_A^Xb0^79H5qkk(}GK1gPyWfT?2bTG=aqGGxuyaxU8C1L}Fu{Y6n%#yrlkX7Jw1b_Y*?~B7uIUx}eFjJdfT)EcHncBrz_% zXGzH%)=He$;&t%)>q`{ds?A&Cx7~6 zIHeW~AV(%-3Sf{kV#i@HOJuL{V$UR&tp2rm3i^%H@nT=}(A{KgIdFRgdTkDinpU=2zS#RLsV! zx{8E}g7`nW#rHn#w|99(Y*yd;DN`n;wN&TPp}G<8%mx%j8=fo}jozzHh5jnj)&sEj=@j8Q(88`HU6_H3^ilC!nD-oH@9MN6H~g7(q21aie;k=YIcE6gT2h}sji3MR7QNn&384Q&o@_-mH~Ze(J#gW-b|a$Wb~#>Ph1o5|w|onm#vQBtI1dHuflX9@e)kBXbDv9CM6 z65jZC=r}JL?KPaHe(roM6Cms4&uqua5lf!DJ;&lXg_xfzGzW+c}bb$r_qov#Wu&>5M?{2D&h|J6$&W1VI!&2btf?F5-G<07Y*EftAhK3n%X3+w%I8G%~J_iVS z3KV>*PIvhK$olHADEF=H4TyqBNGc$pq_m`TiL@X{$B1-}#1KQ5DBayH-94lz-94l< z0}MGs^F8kO>~qfhz5j7t!^}MMixu};>%M(=DrwsZ>Yz;FT+HHL3u5~)#&^~m`6%tKM4nt64jl#XPJn@(!<#2P?wBhJ1UrH8}!+7BC#Jc&@; zP2wzf*-2-a_=&h@r( zWHn+Q$v(<`pX7x8Z8eH4FlD~5Q;Rgp<`^?j3yiz^Hj_St{gtGguDG#;gQs^_llOpt z`ojoPzI#Yz8N@iKKpn@u-P3ssCE}vCrXePP$(gur(sN0>XF$Q72dDUOpwQjG77STu zW6q+ZT^8L_JNX^T^)7MDIDW8mq4z&zzy0Aumb4M2R-yIM+77H#jUazwGy+ z!+ecETm=28Txc4!Z6zh@IO7ZPBeuu*jC%?z1Jx9TZ68mYT(0>K)+%b|>B-HbcZ@Em zz^%sbgfAF)O@4+QK=S@zw|+FlPXz4^%ty9BMSHZIG*yp>l;%iO#oreTmwT-CP^@|K z)V$mn&?9t^^X|^F66^M!7N+q%LEP5{X~G+Zt`o%XaqZ7o zADLsseq@H)#UU5Ap6mF96$nAeFzv4QkxWH2j&RjL*JM)Ov#_M zS?U->&3GNO-?jPk_*4NTPN`(t2A!ao|H@7H=rFt_BE(Z#YePQ4ax!R3qyoEeY#E54 z(Uq_KW(Ef6a>7}N3XWnelSm)cyy;T*<9=0n?~PaaGoLy#JVJKjM~vhykUH}Z>lgyg z8mV1^jJ7|%K7O02sb$n-TQ@bm`4#L1zg`{W9kgp$POwaFZ@mr~7-CAbwH9yK-#QKw z>m5oLnNdy`?(r_r9UDtxOwj4_e*1y+L)L?aT%~v%d0XwkePB*Hd9KDBp1Jlew`Tnd z2hU*Hsx%(QhkTKE+5&)CX-HNA4)vLzKYl+pfIes^zr^b;)vZaBm++c*o)E8G468f= zc^)xdZro^BM)k!qC(G_pT5}+FXb(@t_p47hH%ELfoW}fz{-=ivnKY%P4=Wm`XjT91 zDZTvm`-`VOF1aILWU<{BIyW#Jv+1+o}UBU6<#`{U6v?*ZfE=FNMF;+fV7 zN)b;DGh@xPhxbFYRcPslrzJQ zY3wM*@MJz~jWc3Y`XxL(cfUuQxg{Q!pu?gBrBDpp+cQwB_bCz3F;6xd+$p^2XK%kg z-t@=g>iuyz(|+4y+cH$YNKU%Gc!IpTwX<(MdV8|2p;{18!G-WZ!Wy34ISt3M)IARJ zQj}c!Kqzq?<$k9NdJ+NYTq^{dbL-xnQW2qEnqK5oB$suJf2J zl3QZ-Owa(F;r83X$4U_!_Ii!5y+L~Zg@eAC%Yp-Q%^HCSd7PQycDongk*n7Vd;1@z z#F!(>S~4zvQ=lCsK!BKOWQ@HK*@hvbl-US=O&Y$;``Zf7cNJxL&bsD#Zk zmZE75G$XfNjQAY5?qzx%%uU)~3e8&}y#@iPR*Pu^r?N?(b%lLPJhmI%6d|XACV(7j zaQV*Lt`qqQwl;HjbH4_dvNT)Ffp0X==vri2G3*u0eW9{9Mcs|xT4}~fb=>Ao+VURd zDsW;0O|GLl_gaf+A6}9G)N1VfE(*+aFDM13p#oR7`R{j-i1E@^m;6bJzN-ACvgd)) zgkyen6z?fmqGk-_^}FPz zBiSEV!7)fLwEW359GvQNy%sT9fQEB5BU?`*bRBxgG!U^tm&ee#jl|?ot|k_8h8Vl+ zI^g#I@xBBSd!Mf^5}pb>7gaFr%V1tc=Kr`?w#YjoYKR&pZeMpOjtuOgkG%F)IO-u} z8R?(`H;(~vAn4*)>Y%x%ru%wrSY+seA}x{i!@Fdjo^PYXIV0^Wm`(t3h6QTQVmam$ z>c=+{9;7}uu19v+g+gq{`){!8}iZ{A(zC{3Y@`5dC*4lP%#CJ>l#TEX`+{p`{iq^}JImpZ+ z5Aynup3nktwE&A=*@*XFiUH3dA22bxw{mg9@KTr&{BD^ma^$ptl|S%D{GIq6$mv+2FzLXp z%q;w6)fw92df31&s7rBgr!Z6C0qrrq(^AtG`m)GR@gQ-^JcukoQ22owJRlY|siDdk z`Wx|$ggNC`|2>|ga7Jz=+XM^i6f<{8aPyA2`S<*UcL?IdzLKNB*mv9SC(j?yLPv3- zg_+Ri3xBdnXbXpdoH(_|!mG`rj#z;V%XnVs9aqz7jB@m65fA%=Bb2L0e#S4&44Uq# zml*DZilXv0egVPBsOQ~b>fn8;rN1%UGpQ^SBWL9fe}nl~t_er(5;8Zf^iQCad1sPz z#1H6iia(39mVg_&KFySLF>jx+-I%E*s5)tU-f(wS*{N<*DaTfLh#|{k&lp{~_|O$N z&D!`*TjcXNec3yq2|uJu`7pluKJeNoNe&0NvWBZAMrhxik5YU8FkU3b?M_{?5t}Et znl^sxPe1K?kAVpFf#H$GMK0}K&CHd+iLj}W(eaOdxxQ1 zY-W{{TTg4UfooeoXPz8hn-BgO_B8qI*hqLQtwsap>&fhnYYqR{)WISgtPFb1&!pvn zId5*T8>T3MWfyE3W zwG^}(@Wu_hktTlTbHPnKxUTHy^Q}BN0C9H5)Ea2jUTu6Fq#sqn@68*T%e5uUrY0?$ zqQGKcTh%jO3`Bg3=Ifnt=DBi_0?e6i)pO$+?HlyAth>8PDE0=WeXTmaNQ&@$CnRd& zB-BbqT}u}8;c>KCFpXmo{z_FW+@;(uwcVGP$`NMQb_z zq(^Dh-2@^@Dt43m?{nY6zgA7`H{K12CXPh91B6#epu61}S*hnPi)Mlpo$!X1PI1@i zn#`jsiKHqMygO{qy_ldGZ|WO^>*7Fp7W-x4YyG$ST))C}$8S7g=v$8iq4MTkRqrJK z4{&?P&&6-;qE&Km)mRCQ2Q;6vbWOtf4dd1nVwsvu?klEm6?RYwE;$DrS-d4zE+^z9 zounTy^0_(7aUwl45M*381lS7G(EAo;+j z+_0i{f4uERu+5=zZs2~ou1m7nVw(7+WsZo21{_k;%D_l&7Lm4um$SM?cnndjvkcIk;N{`+yTb_7{~&o_HkkaBFrj zJuWT~evU5OYb{)DeM&Oe8hIiT{ImV2K-VrlerPm^!ruNbQNzW@Uu%n7T{f6mz75zb zhQ-Mw9`T>WPuHn!SAFTdr$x)2F3A=exbudki~=*n_m5t$>HX@YS8FCBQyU=#B~F#Y zEp%`v*(HXMBFdD&OuKp@^R9fH*zSHVIMjk{qta@*j@NoKxA@j%>S>6M9S+N(vfc{8 z;(iBKyDb(Q_5K@tAJ=aW^;#-uPBpb}2S{!+D_G@!Mf#M*szbG5VQWkMK?4by~Gq&;< zL(y^k6)Aympl>-l8~^cxY(eH1BLmD71l`$qGqCNrmF^-C%GKs(o&G}YZhyDE0Kix* z2o741-q>d$ugiQ{0UoF53zTc5JQ?1Z(az1hM+FS;(gpoHDL3*JFya!RYd^OUGOdB} z9%`*o_^xg%;Fg`gxZ!qeXHX)|j9#cPv_uTXd_$Qism>5b@#o?aeFADP2%^I~ZlVn1 zuR62B2vDSINLHyl(S-XA#<=8 z6O=#sKBDzheNJDgP@gc4@2cX4r=<70mCOA1Lb7jx#v)$2w`UdJB;-BrxR_jdUonA^ z5*Sm~*AB^_mlW=HJ5l_v4woD&WsT0{lvM-Gf;h5bo2ZHtvUno zm$hv#050-=Ois401Os8?^Kvq%v!-0LvQ+@D7Awt<==@Z}?zw!Bqp`1rDBTBCE8QdJ z&TFVBPFHgvxOv|Ky;B_!>Z^UvN1N|4kng%mJ}H&|WbDQug&1G$yNZ#dx6#69B86&8 zXQDQEW{|KqGB1qj+rOSEB_?aecCfT)vJcdr@eYv!^TMaHUI1U~^RnWsy&5X7X*(_s zmO;a~<4Z*wRb4a=K;t@ScQh@4T$iIM$hQRq50mxBm{kuhE}$UsL$*zT2AB(CQC9n%HK?lmH2;J*-Kdbig{5JyG(*ZmC3_ z#C2u2((tPxB`)_&J;RC`m&<90J4PEoxQyMPS-YLLe{>2Oez0-o;D3xg>Jk$B)P*v+jfp%=K&MnXCV5!PdMh2@$t1fj#L&H$8EpA(93CNY02y( z_`!C|Z8&y)MdMe+V0=A)*?YovU$?lk`WmCx!d{9ie%EeXNb1BHyTFpdn4@_t565J$ z*R>$Ahn)$S_eMP@TT}vd)sb;qjflcsGmQH@3Jq;a7JCv6(zG<+C;tfjOl2*bzFQkD z3aP2j-`#30tOpR$x#h?EW-V;;vRZMPc7+-IHVM&0dP*Kg`L>bU;dXT4?Bc6wwLQ8S zbyh}A$8H{5KFHVL%1Tv6cRM(j#pT6pYD+FxcHbfK zq%=om^n+g?)AOVz%sbuyN)A8tyU#?n{YZ`7NIdGzEQRU$U+ym5W!@zrX)gk1OE}ro zLWWUSgS$ccb2qbKeeiCcMNWkVQ9LlE)(OxN3b#Pk!UcyHx^4kN zJDvS2fPDG#9`yEE!KKqnu}@gILHV?Knl_Jd^&uNnCryQMhxhbt$9_vP@mdTGin1LT zdDKr&%@`Oy{yI?6C|bA3R?)hLX*oH7I#QLmnKZa4lqeXki|OL1pUsIehfJB*pWTn% zE;xB~k||`4N)t-9Sx$YR1Gqfa-EyZrh854WDn{?k!KeHb4-4nz8+7Xz9DBCh3+kp? zI7Zs}veotrRh7`|DpUiBc2yVTZ!Ml{eHw^cx#@gBYfA76GCyf_!)~c$|8m0JHzdY; zEB%he8dZ#s%Hc(u9&;*(er$c$g~dH&qWX)f^=hdFRXQm@IPmao&IxXfo4LE5jlJHC zqK_+w_KTI^Tfdx^f|FMePK&zz^EDsi>Uxw9;*fqYJD6Jih*#UgK1|!^-f57;g5pEoV}dhfpyx9~yKr!!cJT?Disab0U*QHV z*3pstT0FlUz^$o@BW)Mf%*wrT&y~at^?s~H78YjeZ(n76{td{N$bHAuk}oQ*v(SlT znh8vIKA2S!Al{u&l`u1^2b@lkQfP+W!I<6Pm7|I}V#AN$alL4=*)&_!pw94eIE)vQ z(SCZqKzWG#VIoi}2?29ebg{EBzA-z~wJF;x>g*F&;))ehErZo3qfV(?)?v*a9FdKD z*@wD_o$dX2?a&cs1Fy5GA=Z-8->Hos%tE?SANikzgtr|8Ny|>Xs|nvb!qF7~!1q#C z#95=dxncFE zeteh@t@D;2i&It)vl)QxS`d$b#sMB&zS*Zi$s=QqWN8XXZR;l#q;fh7K6O~*ROl?e zm&Ddz%gcXzpgwLFAYVkw|5i)jXx`3|)qKyep7XnyyqEV;35Vas$ySS9p2z-)?8!y| z0bjewn(IL`^9y6JdGqQQD#!qpRoxU2%q|Wl1LH!mIU28%s~9n{g7)J;_H$;jvPWmN zJBw(h*cH9+9KxPsgEfyB#}N~t1PJGf7kb&kd^l~V;B5JhJk&!(2i(1mg4oq84MAC$ zhVVeg37Ubcd{o-fZt3D;`YZ@L4sdwz87${oqtkz|M5JhJJfAZ^$jhDwOWvW1VP{u z>&HRrPe2Z|S(NKz8zH_~MDswUm%25T3=dzgNMB4b9b?v*es+4EoV~a07aihA=ljb; z)r7P48`{_09<8-kkDdwhmCeSVZ9T0hsi=pVcceAg`Vz{%Y(w7qPz-qm;0v&`YIMHU z`uZ+qnB&7KvSHa9F3+u+G8}0z_x90nwK_t>+AwwvpY`a#^|TW?x9$mby!lB5PO2Fe z8Yojzy__g)!dX$7H9+)DNM-@mb1C^l&|ymEE%|jRh-Ep#6>C={s5ugi&)L2x9Xym z%TXBuj>h5UB-;@vl@%6Mo}B|VkLhPE!F~?~Nu#{>T6j0vb#9s!;zH4dZKL-+{SZ+0 zFkTK`-Hg;mUAO+My%Iwkp#5iBZ!f8=x*MyFLnj5IzS;9YPm2bxRDpsN_RBt7q7SX0 z-|Uj)viF&GJ%%Q^a6|X3=PqZ_8e5C_rU7LmrO0q^i(=?C?I; zrF><6ZM=c4tY)}bc1`}X=Si915S4(WV#L}F-%G8c zmYq#1UaEt}wTSN!D*#XI&ZI_bcvO0s0pl7P$nP2G96S%2Gq*EheY2~zIpp2Q%_i+# zBmLR5O<7Yys2h+7BT^WDu_r^{<>f3D*tI|Vct0;fw_I(^5V8p;R$_l&{{2LcmC>HC zLE5~`?#I{Y`ktCbAYo| zeu6O(DE%xp%4PI|Kx8k?AfX(!s8Q%Xkie_}$oW^ZM;`@Z~S*=Exe_yG&m~_=N1NT*|P}#+bC{S2Z z)5N@#d+>rzo9tx(|6`!n{=S~FC@vd_{aa7~1?x5DZcy97*Pw?+Io?(lB)?U3E}#b9 zJ!Xsz>Gs!i;TjLv&dl!OwL=0PTZME09k0fd=MXYUz^jodnA-$n=3C`)mY zVmHsDIv*gl8A!cN?~aS=b*CvXKEKuBnq~L6yFphMhxCIg;kPxmRXj#5RyQ=B+fuyX zB~f0t&+gy_^zw+g4(p3!btMkF)9-a=>4a{;ds6RUC-27g8)iKRa(F;lI6vUCbhHZD zhnxEL0<L{a2qog?l=W#Ra-1z(b{ z-(~N;U(+ZPV4RJG37C!<%sWs7`nPHrqt%j_$gTN+q2zncpR&mA<(Bn4_&KACnSI$G zOBAifpqSd)$=SLs?X;&F!7+Ep_Q1Qzlwp3q9xh(jUY{q9n$7(V>67+Ko_102s=fJ; z2{12?@#SiNI-a{iK<8`sESuxqs>IN?=wXu5Q=t(dG&P&iqDFO7U>(WcT!=1Hg{phx z*(B>@S3Z=U03|@hUm6Rg`lh2QdgNwpsN;6R(GZx3?f&ghxUhoR<@Yz{Bz651en7Eh z>Eo@-8HhJnn{@Y9;Kt-fgo}s+BU5Mj2L{{ls!d9p6vYw41#^H}yiM+yhZ91xT-IP# zQQ=eYi`GZfiK-%Sgn!0hLU13=cgnM9TQf9B=yTXTD3tCsJV%B*{qHGq4uvc)`CEet zAr!mW|F?7}j4v6o_-kWBIjxkHe&QP(+jl- zUx1*~zk9LliTP#A)DQ-HZzdNiLA$L~DlShnVVQ4!;ykS6@xHeCUPqjz`g$jD5~r?B zMr%?ZRN?HV_?ZUe;}c{Au-}0rN06&6Wce2JnHB0%tQnrW3Qo7!TV!V^*!uG|D^Tk{ zXmOh7?#s9D%O;d<*dufcGIt!FN=a2;P8PQ=2>IQ%0et)=f6Lw|t1uEDw80O6E$@QN zyxdRUh9d^s*jrY*@CJcsGF@|jiBR_8aP^|=@?yr8zMHa~7W|e)VtqwM<@=Vzeyv8C z_Qv{c5+!<%88aIl=}-K3($@U9h!c(3=%Rxqp`SSucV#kd`O}PWj$bg4EK>8e<;M|- zgWXXqg)wt+SyPui{dBT^He{BgH%-{w6tb=-GRu|IYuaak3Y|`Lho-gCj#(mT^Tnbf1FaQSg0l-`zT>Hk zMnlp;|EkYlvm}aOb7ei_=+-Fl*o|3+QpY{115Dh^GH;SZ8~c*o(j${+@Jjj z`FATs-5+T&{Wch7I>)cOOjwI=O^!9~>s$5~C8b~E;e4zQ{fSv!vR}B&fIwbTGZ8cP zUZ6G2_f;fSBJVr0IHaYUsjPHdE;20=nnXOD4wh0pkVsGQL=o4`!DQZLURzO*7ffwD z%y2P0ew`;O9cows!pp`E4)29#bU8G_!_K)odp`e?7c4$$S-eHUWy)!GeQuk!(wNtN zhR1%KnO^Ol7g5uu-=EEn-RaXbB0pPFr<-7C6c9!L>3008*OVx-3 zQUz5H+O{~gx8{=hBq7tu7I0dP+wyKhe#>H~+aRTM5m#K-S=UmV8T+<XoNg`RTi|{IS%w5TCQPMy6{R&4qyx>Z1%glWde$!_-e^^=y4$HBBu>xt6w)F_(W z*CisqazfYkZVLPi8k}H3u&--b_bq6=w~c>gYzsij8^yf{K10+?w90-A5t#`FJ+u1~ zOd#YgKU+FqqrAltM#?ZLZO?ifnWAwA4twKYMLHO6390SDuW#lbn1;GoO^H9U;Di(0`7aqXR$ zcTb#i9tn#((;WgVqVYmbTX_Tfz-S4PBtRnf@bz8qO4=}8kmm1k9JhDAlG$4+d3nyQ^!A17wD4EJQ5}7+A{PP9p zHI>c~{1zl|_3NRi3qmjpURtbto+(D35Md>b<3%JfhnU;t8n zk~i^A#4th(^%^*KaP8X@R+3ZEIn5%c>H%P@>-C!|MJLWqx346m*nICbfw*DKu{4;>MoR~v#Oqhgh# z)Ub4`n4YzHPT&jn&sj9lN?#-O!8MyyXPKO?*g~j~$8hniCn!P4= z6u|f%SozbSXsTp%Fnfq^zVqc-A}F0+C3p)U_?FzADgmF}j%tQ3-Z%A6G;pc7tv=uO zp^e8YFk)GbxPJSkT}*V3yX9c9c>w4*Edx~|rpvVJxy2a`Bt49+KFd(xU#w54mb&9Y zA|&see>|4!pEF+)#=qaP-?Rbx0w1|7&2U0B70k>$XR17m@jTj~kfOj7Itk;I4W@G4 zoorfwj5qOKogtV_eudYOPmO7YP;lsdFt=>Ie`KBPE<(=;5dyNleDJdO@tUecf8kG! z;N&k#0V>ErdIAw?6dWv}?ZozlZQw5H)~9)6Q(tA}R({|J0d7N$eDXhrY_vL!)M$b2 zNsX6&`o_jK${;tgFdp=wbK3|Ti^aK~4SiA=%NyQI#*L2{8Gb~X{eo`%m}4`t)&t6 zG;8(IBXy>WX`W+8VZP5hcjWA%zAW1rva3#!0zO|!~a;T|J+$3oad5R-1n4=T?$WLF!>CFI7fU= zbCpvY*nN?S$#}9Lq&GU$*?vl%Q}kAHXSSM-4kWynrEM%+OALAQkMaBGA{Xh+_F=#OKfvj(2#eJtbVy=VO??{+GBN=$#BUSMdp zo&NCFisD}Joy+#?mho_@U805FAb50Z**SRAwWRCk!}wMDYw2l;+d7{qA z!fK(Yimymp6}ZeCbwed)C*$m-w>? z7Rrk2G9->~a&4T9^JY@=ZB=$8~klbrIpIO#~A-|yTD`I_akG|?yr?790=@- z-6#RKSNR95hD`WoKjU-WoXA>T#UhNqLG3&@6owG*bG(!O`{dBY{N>jrFHKFzTKT!B z+4n}cv{5>!*O+%G*Zl@7sI&i3qI^7%?9B@8Ki}>Lg3OGo$#g zWA^lU<-nlX37|baVAH)EgM1sQxGiS&mpbSHnwHKY9h$PY2y0nie{)OkBh40{*G0jl z`vP8{I2fH_@)N7hYEk%id?KellYYH@)v;!Umf=H6fkz$@^&4sKPG0WCnq^Gk4b0#B?uXR>vnPKx=Bt)uFh%>TPl2AO4T`Z0N)2y(`CY^|eMB7Zmq*dV&qR7Y7zw9c z-w>LtNB^Qd(L8GzX^U!x?4FBXfi3CQ6Iu?UK;BnF!g-xja|wVWRr>9mYhwCdyTo{=F7r<1emY^ zibxkYU-uO?T8ch6Ls#3?LMG@|CuD*z-zmMV93>zo5cFB8Bqzix$y4ac3X*+>>Nl+)LD&FO^XN67)3oheyTyp_4Jtz7+17T{nihxtTyTFY zLTxQpRrI~}RH>N}{{XepX)wV)I_}aOVk`JvF}`1_CcpYtiY+ckC)AZd;}n87P|09_Gh`$};zj9RWJOmjIV+F7bonx(Pr>>rg? z)T;x0dxXU0lcrVBUCeT!aveF}Q$YvmN{v#l`I^sTzhxca;etvn0(R1yN;6nf#ai*X z1R@6FmwOrra_`LJV18ATqN|G`YP2e)Cq4yB8X!sCra|yZCcgV@)OM~lhzrakc-lni zJoxGrh)44*vg!9zHD8~o(YE|I_wfR-arY6#?6r(Mi1dweo)WQG7eV14jUFup7&9K1 zu(9Kd5e+ko_YNJe77KszMf!|aFA(UXBm}22aUT~nV>gQbV}(}i{Kh11=_o))k(E-? z`}{>GD`IEMa%D}cUHDEAj|ROj!@PxN)^pHsH3ckVJ-IR)rUEb2Jls`(*%O^^yVN>| zo@>g+3-gpP4|7VayXl_Ie6z**D8X5$nwJO;({K1VHybRej2Wst0ute-D5b+E-@W#u zoDJ1}NWoBBkqsGdj^>f`r2)2VU}f1_-QXofVntjgGX=G)@AZiUII#}~@yHf^_1ojA zgk8pt;jDBDKl{_1R?8mYWKk2pIf-^<@2h}>e6#;bU5I-5{LXytIE43J>sZg{edAYM z>A-lPkgpi;Z}!a{WMq_4H-Ch2g-!s=d4Y!_i`X!(n9Fjf`AIYi37+*YOamsdOo(=1 zkB`>bFFL3tfJT^kJ)ulrc8hjWayKSlNftgJF_bJ)F21k3k+f4FBWMjfsi}K0zlBP^f z^E^AQ<4dQkt)utOGXR!fUmF`q?hk6C5;Y0gX3_sREWq0IzQK5QzjUYG~+E zA~>%H1~mXkn*W>%$OQ1`bm%QmRf zC|y4!LFzx=K$0#Nd+)EbXYACXmQe<0kppItyB=>^?VcSMhsIfs)Ikt4`fP{uVx)+q zsYsidVzVKO*#Zcg%~)(&+Tlr-pw0XTnkJ;U``&lvjYUF<+VadkDQTG0zNWicyZ3QF z6<7x?0=aY++Buh+u0P2Hd9$V4RC*+q7swg!u#UIi9JNrp96lf3n?@lu3eQnz`(D1u z?V_#iT)b2`aWZscoznh+8VVsV2NPA8!4KXM0b?wW55{ z)ED>b+1{9pu3qRh#6(r32lj;0mi7NW| zT&n8{6_d<6X6e}9U-*{qCd4(%lem~^$7Pz6u@#)39LKd|ZizT7nasE*~jYwaXhBmRkn88kXnB<(l%bdL*klUBM_CB8LVQ>xVlgakwgX}zQ6`Ejpx z{sD)a$6UJ8&t$1cv){u6`$}6_26fQ7r(ast=Iia(TBhdAajNd)@jtVM66~tkc|G%3 ze}CLZkvUMkF<^Gk+Vq>W@)KO%*8O;Gmj{FSnyq3QoYz>6HCnsYu+z?cJsk z*l7$dae^UtC7+zLKBeX4%#O^v=+F_75y}i|L)_%}miJPAdo?pg#{=MYT|ohl;WQq< zuJ1kx!>Y60Rf>)yUg$c^Am}(>?60RRlRSIQpYJd-1a7ZOxXk)%$BoBbU^mNW;?Ap7 zF=*`HWb6#`+c)*^%<*wanKVT3%JVTgVDo}CM!KI{7GC^gc!6BW;qhoZ1PNX727x;o zNt;`U@I~JVVwA(}TNQvb^VvwwL@|51$YICL)j4L+gvDSK;D85R3D=n4o!Yq`OpY}y z=4dd`7T$|0@Saw}zL}4;UlUh#~J>MU?c2D_(FZ+OJiFQcY{&HX4NbFm@Yf~ZE zTV(!pt2{KC@3hkzE)h<}rk#py#`>X%&Stti{*}ay<)TZb(Unr}7i@9=grQU=z@iSO zMf0xnPOu>hY%1!=v*((e3bze{U3Q7h-^q(a!qHbW?(%Q%bksBDw>-~Qe*q6I+Kt^$ z1*~GyD&bopaHOQM(CTkU3g_2&+!In^v3iPwI2HZ+&^GY$dmfM+rKiC-K_1AwcES;~fjO13J$NAFL zdb87B-K&4N0QBu$_Q=={op0y1dY^ALauz>k-}yXG>9J=#1S>p2rWy(BuNOisLw9t74xQkM$SO<}k z8E}j)p0*BN!u9zTsJh=Xg2{?*?5T38MsCXKa!Y#MsDeigogz$cD)(hX>wg*CJXnV@ z(`fCbKDEt91s{n5XzD_ztPCgsY6JF*_UY|oLDEn_s0 z%GYsT!FKzSWAGa4a#-1FW;XAhE*!`Cfyelm!A6S2qY(v!GT8et-Ni>}@k>A~i*-D+ z|3_b}+1&94kA0ULt%@9pe3->JS&9NqoOXvwCAY!cJ>2dc)7w{=LCMQMUoEa4^HZ(E zzww%$3zGZ^5tYrF#B{NuFQKRa+Vx2pbgbVMB+9>;e<35|)YCjg;lHh^!{gTnMY(J0 z5#%|3KY{U$SN0obic-RfAA$VQbZU2sXD1Ql3Bx&zd*OR?CK7CFMNh?Vj`5b$ zg7h*t-K3>ElrT5&$%z?G)!7OPI5+M{G_7}29kkD^qZ9)CY3~k$(>%~@$Crs~vE&TS z0+rKJ6=jgoW(GF3ol-3Le;ooh1xXKTPQ7X!ZyJeV=uZ6seG^5IPE`&+GS};8?1;Dt zIE0g$gcWk|VV-2n{oNhbm7dg`+Ex{<-v`{;PU(gjX8CO`)|!*CT<)Iz)YzH#0+8 zOE4}kPG0g-oK#(kXFH2^@c;}stJkCx5VWekm@@SSbi0$YMp&z*oFM@I9+u8CqQ}r9 z5qYDFl{heS&Eaa~TuK&Ji!Que)Hh!GVDs7Q-_WC<8=f+M$)5P-dMwY*49K6nOvbV< z7~Y6Wvc5aOmB^Vc{9x$Uu)1G_$ARvpF?t$^y9s8u7P8rt313%&B(o}It~#pIwyMG< zi?Lr|1D>j&Ij9xl^(TiT}Ug&s|8_6d^QKGK_h8jOyk01N34i#z&QO*I-B_y^unjCbTF zl+BFV?C=LL0vW~>ULTv?7B=4Qe}K}cCw^;@;%^U{&z2wK&4{KXlIluQKzHCSC8fMfsnHnAsIEAu(J3vs>be$lUE_bb-a9W zYRvUY)4+her$<)(!v|BQ-6`#CQu2e^CBzh4x{P%DY@rD&j}s|0o2<5Qsbx9-+3;vi zR)hg$_xX60nUtdCU0S;V4VAb$IXg&y^D=;NNsg26gsebVlRKT2ZCf;!;XgYc`0!dB zl2UQ~H}Y;V@l!6-i?w0V$#qnpN&ZP(P&&>%99x~!R4@q5IVYs-bA5i4;CG)u;pp+d z!1$N$?iVqcnHI3EjSWS6`*Ph=c@Wu~!dI0bXoS7T%X|ydAtir@qEHG=CYFM*>v9ILuz3TvAzhf;%;(-Lr z&z9)pE0W0CY7}37K$;w7w;8|aw8*SkS>Km`e|OXY=CC_XI()|)H2L>wqdNogB8}zy zTKKgVDZ`rEb+xubU*fd;@E|x}R$$W)wUk`1_L`&?H<R)eCecT=(yj%doX|;;%H|^-itQ z$(Fi>6zsWd$W2#tqavb(V&GEKm+edu)?w83Q*tjv&U~0L!Zi79+>g`Eou|#5bh^Vn zzg{by@c6dfe7Z{A$OllBn%`TbNVb|%7av1njC&S{W##%~dC zJ5eQvfA&jm9fs<23cD{K+}1X#n16rzT8jlyBU~N_QLA=HIRN1>?t3?pB6W9={IRm< z!`Al0C6nJb9)#1&2Yc=8mgSX8m1PVzSgwXVNPqbN7shnFFh6p!lqWQw}hW^Afoz6Z_g ziP@0+-in4e$e{_i+U(y5;;FxLK*oJbQRpUYEVJ+e1$#PHh!nY49t=v%#&NHbz=x~NF(=l3MrPv!{sk{C< znoZxwc^|mnbOYjF)bCCbvI? zwve_|{F;pvvAXh8{)gAEa@AA!Fbbn>^{O;#?ArlM3Ye6^VO7AL9?Dba*!xstV>VSO z=YFxt5p^-DRcyT|-roxtty}^RxkZ*vF3pc@s`Xao`wb-$`d@q@77MI9 z3ODGE4y(!U?B3t)EU52j67kdXHrAC|OVnS>QS1yK;lI3A%x|A0^1Wj>pE0XDz`{m; zW!^V3-M%1n!z=eT^+b8QL&51yRA;&f^Pj)ez`p!Ox#>Xc!po zTs*c|mUbf$*ZCp6UZ+_%aDsA&1ZxLZ0iyWXe(_#`=kx{|g?6u)Xe1lfSFTc>Z>UcD zc@+yeme5`O+TH4P0C3WT+Yk0zQ#4xc7iD%(R4bv!*eh`WQf515(<`fr2(z4pYVe;N zC^&r^dit6h6x1zDmGnxBYKs@}81LyhZJjLZhoQ@x3?%mA1@fDi*POgWawKy-2tGd^ zlzCX9oFy;9P`7Z0YX>+~p-5ZtDi_sU7Uzym>zfsM4Z4|4WzdMIVjkNSTv`dqv%B=K zsTu3ei_b4x$)MKpPHQxDxNDQQeZQy_q--*s$2sWz{Ql{oDa-M9yv5`BfDiyL@$H)T zfV}_t?WKQEZ~bx8m26ZmD7XHIMe6z$m}jSad2rJgu8NS+j1u4W)Sf^uoWip4=nsqw zfi6^6x_r#d=M`7&uxe(x7XX<;IXGhE$-F1}6#aKUmAUe0XKr(QS&7ZbzV~gGFEe4&+SUAas7Q}~zgn#z zs*DL;xx-&#%;wG`LMUIx)k((ra#5?^9%FrIdnN+iX3<>+^YLPlc=siulRo4|R&Aq< z+FIV6);QQ@NeC?Y{>ik%fUCnct&2yd!_%|=C-Fgy^{3gAgxIWvkuw23#mkZLJ`*uH z63adEAlu4(qI*)QiBTHZ4?280zPgDT&CeucD;N`mZF9&0aQjA zd0#Cx7_rGlVtICI*fc6DVW^NOcCjzcD0GU^RVr|EFE z{`L|HTyK&4!&B4UGWA?gP48wAp4^9RC&OzWxcr3C$b+yEF9n6LH^vUD^5_ z-Ke%hTD{zi9YGNLmQvwNnL-TI+WJ6|n6gw?1ycsV-R;fP=LI-k zrMd%^-V0brh-6?Hp+RO2Dr?!zLlZpFfg3;Q3ZN!&m!MC#Izl#!w7_(IC3C_oJKsE% znU8Cewe8^D`fy1G!Si8AdbH7w?bHYKyx_OjR*iG(?qPoV7OkLIN)%p+_K zmntkb7*`aVOSv5#u?p{YtW9owOgF%x39K`@k`P{=+|}wRT^)SxB4VPkReNEdB~{qh zO#vZ=-|rm$Z>vtCv&CF+j6D_4b zKR80c6D=8xqAIk@CQ{3-8`+q7%l$I0=c4>b(?wM<+9~~I7}e(VaE1(7zb0bifEk`+ z|EY1dazXr*Pag5xjCNMoUOi9%kzVE4Uz}KRLsVcMGD_&Y!1%F!Jsa4 zNxr#N$cL#&k{Z2S`;tWa^MOi47S8x4jFmbDm3vw>e1SYLm8y-aOPRHpvm%%5RjpXt zV*Aa<<9VjaT1<*AWhAbBH?j-@P$V$f#`K)MCd4MC-&LOos|(0#7wunvEG>#jVRI#Ej%EM&}fS)1;f#EbH?E<7}Oqd&4Cby~SjJ z{6~F$wKxba&SN63O+`(d6-Y!dD9x$6IIOuwYDmSb>_4EbyK20-cd;S|{Z=t$8*;Ed zsmxlKr*Fbz)F9{UZhB_2Ex)Og$;UfvT<>;t7}p8ROJKG*B3!ty&XyFu-B-H^RT&tuj(;x#80b)K7X(T7}J%8wsd@27qJSh}5JBU}%e;6t{%YESo_`1B-p z4zreXf2|x98L-Z|(m~P^%6t_ooqoC#^C*?5t^#6~aC`H~2{NP^wzhOZPM+0Rx1v!x% zV8e)NeF6joy@O1)sVXG#yZ3o@N+LG z?)xIlB9tWU-*I1x43S+v82ZtX^cB_o%5E`iq=`RzImWWS3~?!GujC)cQ5JHS`fdJ) zT&_~(ejkzgPpCK`+Z0rVIN>Mja)(EmW2DA>F#9ndI!ncPRS7Z%(*dVfWfuL!EkeQ= z5$R$#>f#o2TNQSi;)dul(>$H5=s}E~sCc9PeCZs%qYd)NaGS(ctGl$aX{~IlY^O)- zrr5VfdaG}IhCwmP?-b`_nLW`cyHulYiBW|-PpurQjmz!S zb~ea*v%RXoZ^o-yz51^R++8wR6FbfKA9wYee3uoc~q7Q$i_n z^gS_eU&O7K`L9wMA`*bBA*zMo^08>f%OYSQImr!flr3E>-cpQ6u*Bf$%#v@(fHtR*wBct`OM5pc{8< zjE_6T)6C>$cBUiUCvle2z89#NkO`+pb!1M*x2@M`gi~K|`7Y;k>;udUJKJ2Qu*x*$ zgZ*1D-P&GFiUA_xwwxuC%Xu1;>`>a3^Y~!r=u_rv;3N4QUY|G4{YZh_P3CP_ ztv5{2u%U0p5J$>@Us(Nv19I(?L_t9wW7$HZ$#l=TM7P+amU856v`{VJ2AymUEOnV} zXk^x*9YVYB(_kRP6>O2R*uL@=3g=iABC;QdH?eq6dAJ@Hw{714vl+olh=erTW=kaG zlHH4oXI0ju;;^XK3YuWzgJwGSBwW)P^d@BGSrzYs#eRT6Rc7zU%;m#Tv52AVjydBHZnO6kN#Od*j`lL{(NX}!t_?E=$$T;tbsy9$ z)A&AceG7rvr5onQ#hz@sCC$XJ(_rVXt#worSLQ<{uLBDoH6bo|tES$o8u#e6jUp=r-3|iJ zWH+`H0AX}(yQCnM!FSX9i^g0<^m@t5+uM&;(odQm$Gz{DMnOsYmS9U=OyA$6OCIL9PMy$HHG(JW6qn-DR7gf;WEX$y30E2t-3G1rU;-*;kvZ*#F5e?~R zKWUEr#AFxQiv45W&Bvx0=mxhVCAttfE*lLE3#2y%*VxV3{USLB2ht?a@VN!Y;NYB& zhjUo>mLij=dLFhfQU@r2yH*$x>lsW|S2oQ5j_4WWM*zuW_riXF2qAN}(@zhU$Bjb4 zZw5g_x+Mlm$h|AWwA#lbxr&_*+4-Egd=;=UU7T5{?EQ)NeNpV3&Q#n-FH7=l+5w@^ z8C1b}t0KXYNAW)J&UQ7blTJD_s5CZV8VbF@LhW$qs_Gxkt#sLV_A(~yEybvo?{h7^ zrJJ?OmuGpysdiSubPP3;)iDnnduIH&{m+z3n0FNbIB6+u$O)yBCv`$~)^=>BGRqcC z0<-?%){ix<-h=A05Lo=Q31ao7aII;KV#sD{9e1F>7U!Ann1jadWE7~^-#Bk$zrLWb z5bb3sNWydLu-J^}-U2uy^yuE_e*Kln8R@V_BhG6 zW9K$St~m6dgU%Y11^AE%ap`y9I~^X5c1{g}*fT;I^Uc@p$EPut3jjM`X3fFkbzkE{ z6Q=RS=>XRQJI-B}UOqztg$ON=u=e`%H;NbLx@yh2 zxSQ#|(cz#t&!O|9!%UGgor$dM-L@T>_cGjKK3Jp=o`ISH&1#RCpZAv30Zb>;;-#U9S=92N8;>BhanU>?~V?ci=@%+jXS%R4Ie4(UQZ)l}o|CXf{GE3)!Ii%n56SyPj z_yXb)-TT@OBU-<`)E)naTVvGFI+&NlVQ zw_oWK1eF4!Ra?=f3%K*f84+4;iUuc#(9*#1?X_G!0$={KTms6{qnj=sM|DTJuFK_(>d+JW|v8yDsHQw=?^bl@OVQ zv(FT^C1m0zdAklV_X34!~qHaL6C52+_OFcTQ;<+mfVhmDrD zsjk2wJ*-}NhnYK^+gsgj-}HwNcvHLV9jzExPGDe>1@tM(XEo6Zm_5=D56yZSW`Lu+FA! zhOyO>STXU#XWpX*v6{2)yA9`cPCa@|ynCVi$wso5k1h(QxkkJXkBGB$Qt^FQO$;ZL zL&R7NuP;o`F1|J+!RZA6qZ()^yELJ!V>?V0wW@v7T8{Eej+>(Qe6w6On>XVZ$iIeJ zd!9hFHJ;&Mc~c`=C8mNtAl`z7^<59+q7u>*bqrIE^Bqt#Hyl7OUu zO3iANJ(IOVFjS&2_!5y@X0py<`mt_nU_?RvV@9XK_P3JmKh?C}8aM3Jp+Z|OTOhk(KA!BIL%YW7*OOX@c+ok4q8;zJC#F>n znyZgvpq<(un=eFOg>rAG-kqpCET7Cx35@yC*UNul+j282_M7kK3F?L8JNF^a?EHJ? z865#SZ7}{b4PWwg*`FXaNh5G^UgCPW81aUYJjJP0>hP+e-{50ak3?2G(T7~ZH`2m% z6jy(j2Y4GMhy5aUiLkq?^~* z;_K2N3a72N9-l|>>TYF*ua9X>m9NqM5PNSz+~pLXKuXNA2-1MPe92ocA)bW%@;pWj z&KHyBDbMoF-<3?jE=Pyh3l)&+4V!0ruai%|gW--Z8@NVmS~A6#AQecDU^OX&F|G4T z`W_NT0VP^elCpgpG-X5NI>zCflhZi&>G=Gff;%|f6BVUwIT}?G1o7_TQVvzGG?Cg{ zPYy~WG0H@dzGX4!DU}{3aFt>9OFq7-yA;Qs3A^>z)2jp1-&WX4dW7$F z+oTIHfe5tn!FWFCK;BSAoH|^^!)9#x?F9XAw65@;=`aM@1QMtO#h3=_ElZ}_q zSw#N8(R4t#wU}og>L~By6Y;h|p;+-po)B3CjiKjv?fZtBknu2IBa4+s>Lm8wx=&Sq z35&6d&u8WN-Zi~EtI*HA66_Hx{E>}%;eiE7{%6yX+~BOi^pj$v#C8GmsmlHe)3bnq znGtB54tqJz(yC23-co2Of2v?j{MqJmjc-&9Qa6<3Av@KTJa@hJBmfaF(9Uid4`!T6 zPxW@;tu8K)Da*0{l}KuPgJ9Sih<*RE{LL%-*bWR_wI8%!@V9OeY~9idYpJ#0-U&)t zM)dY#zcf0nG7A)1&Svg;fkE%b2QCC7FAyI;2~?F`h(Fsd(d_v*H)Wvt5Tl32&a#F*ZlZ$C;m5G}JQ!mYWfn%dFhK!1?DKR(RDH+UYB z&u*SU){RlqQ+2R$(Ku7q?S8!aWH#wEz15ICHD9Cp*g`?sJ>cL%`0irS-Ozs0xFkex ziS9Q~VEYBaKZiNwY1wnsJoYy$pk^SNw*OC6*T1K4^|7|Y+mf?8;UhBwEsDC}xu zCM>NuxoAnZ-9^k&=t~o~FX_uuk%Cgzau8a)jX0r@fbmQw=-VUXKMOeLVqrDDc? zGCKekdY?%fGL}t1K+tY#S^JQp{%WSfAygIXC*Tzb9SjSE&0goaR-2z8mx-9 z+7FzSD|?q8ozxeom5INoJTQ1ATysPShFIb}MXTE` zBc={FIdXDhj&$Ga^A0|eH9|pss743-RJMB`-C%7wLZQCl-jPR z$DSW;R&=rfQ)=|JLma1ze9M_LvDt8ZradvZ>y*fcF3svqwGTQApv9WiGA?+eyxN{_ zoGWKP40cI*>MoaJl=?}Rc3$=$EV+VO_)QI^xO?^+^V&$i(`F#kR*Ks<7D_^G z+mg@fqewiucbSLW6p3%6bcNncAOm8y_A90*2k?tV=%@T&|06lZ^ zYT2k(#nR}yE@4++)y*8GtVaM487yGf6^g@u-q*^q6D0iHrPEs?A@W92i9_72>5FaM zKyRM3t|G6SWb}NJGR%ep@uu4`&SS!MVAXWFriO%lkEtFRC$4Uk^pq0j_sx8;k=(9| zv8WO`-I!GeRixAt6jDd)h)=mKQ+j5NG9(zGV`^9}mm62^#a3Dtdoq!n{oDsW=<-sm zlOWt(O4ycZ=-imc&i8~3l9h8Yfgsvln-EnZ(~A=hWf8X7bUuHk|M~p#Y+IiYf^IME z1T!wE2Jq z%#BUfCPf! ze@-e^IcwdD59y0)-^5ktYptp-(C|Us0#$AE_ubW-k(m#}+J+L{k*W^UV-`FBc?Sye zXq2LZz}Zimb%Kp*;>go_KZdVc(=|7FHYPI!Cp=y|XAP(9m-Gr$z)YF?h;R?|?adyz zEyx)>jBHF^z9|91xzr^!Y9C$onZxFVLHMJfpt1Tn)#j&cK6$%low#lJ_st+HX5A*C z`DOy*()B|8lyBuHCS$3y;l$$VgAV{$a?#1zIy7&@;vfIpvAaI`tB+*|lJd-AvnlDr z_z{HEr}n*sn#++q2n$Xg! zH%gB9pY=Xl(JG$=LBNiz46NV^kZP;%?iIo-?(89q@04jb=CTCZ;VN0>%4O&wjK5iN0lpk8H@VpLILEJ(zIrw$u>XjHu@T` z-bVG_B(n`-<5hDxH+BQVzglvv<+oj*kdkJ)Oo%+WVJ8;@y-9knAXzv(rA1lO%Db$s zi^qW4zL1Mz*r;!}Rl=9=2un5K3c)Skmf9hQ@agl;IA*(S55n~l)ONf0ZV(hk>ggvSojOC}FJZXp-E?p=+|3sa0Kzepm=9AU~mp zH-r1R7IJ9n52N-Q%6X~-BAluX-?V_cY!pR~oyb8W z=sA+^gpKTSFjhJB=Mv4!Nf0^OcZ)j|AnfgJuMY5tI~*T+*gHX3orf82WZ7e2aM`M| zjQz?3TWIYH;R2d|b#pCxILGdz3-@`$oMp4&U$0!O*btz&dT~|f9(ST)8gl58cWDt5 z5y5z3Fr)@TWXlL{tJ`-@ty{8dPkA5{$QTZr#YmvU#oOJhDbAZmiee%9M=J_+nRP^K z%@w8SH<;va|H#wxcAqqr{lLtJnC@3EoKBpS3YnN>jc%e3QpiRU=8#6rMfk77M6|m5 zeqs=SS_6x>C3$rQ<>nGy;;}HKhX2@=zwUI1J%*8`kYO<)^Rs7JUrFB+r!eo*wU#9taDnJANYLL8plEpD&5Qc~d$1L`HkSX6@vq7A z0sxr)=ZSx>=>KNZ{%0NkUML_@|06yB9;9C@^M5EkqX z?AbDZxx$m6gqlu=-Op8zV@?R{KiSkXBHjOcBj#uT@GIWr7VUeu=1D{(J}-Iy4jFN9 zJ?d?_vQDtZ(ZG!YR4g`6(Vf2XAJ?FWUpi$Q=$Zp*by++xHn}Ov#@tubo12@t&22mP zM`2IV$-|Lxaun%Ty;RuhIlpbkP743gMF8xKj8QlHVhBzk(58ZbO?>-7*VvMsoo_i#H~((un*{d^x9+`-a6>7^I!$tL`Dw5Z;RZ%I7bVf33%N zdVt|H5W=|Dp&uzBIM)^YRIGNG%RjiDQPvHFCV9;A4#v3$ zUnRGj_IRwR;Q#-n&x4WC@L$~d$$9|IZRU!pNO%dHvybaGNXx!e&}_Zv<-czX&<_IJjB}AO$}fG5{v& zl}o6dX{E&BA#VxQyA)btkfi0l`)3c@9Kp5|&3>OE2j2^NfZ#*?q%|rBfH&#s%e4Q( zs(Lx1Flj2sY7s+>m!XBc^{{#-&`!LH94d558jmFcgs)Qh?W1WrPGV zt&<_h+*qmgM#kjp$A5+RXM4T?uwS~>yqq0edWI1JhJ70G^(+mfurI6eI*ama-TDD> zf&Yv@%k{GR-w+fcMPdY#Jb05M`{b8kfOoaM4d@*ho{I3nF|j!4xReL*oYM`jZtpJT zd!9|V{{18Z@@pWrwqDN(;s5fIM~J(buU9rc;AZx4?lFSfi!#H9|9PQgyf!}uo~mo8 zZLx;u4asuQ-_Yucn0_d}Kylx1Fr{heju#fbBk&X#my2}q>dS6lgF`X5RENe2mR0yN9Sa9IgP*spENMgM9FqsZ2&+TJB!N;!kgi%pG45C3KJ}^MDPA{c8`eQZ*p&_^NT)%8a2l53(e*8YzK|xsrhmeSDpcwe9vR`)2wYQw$A?_75pJP60uXIAfZFExh zC|npd>E(aTJ{_P_d>VhqCPLz)9JvK%FLXmf@Dk$hgX9WLl||wW7u+^d1ZTWz({+$W z1RaZNsVQDy;c))&W8|-Zm6?r;=U4uuU7fB8e12wUb-1Ru_tUSp^CnsCU0G<|H`=Q` zx-^Fbq-2I!28x&&HZ)D3$73v_T>hfPX$S*QdW~nn@FUa4a6QyE=;P8MaA_shN1jyj z0q}*l17cAcKwp{(VrIim)Elr$E8WH7P6qV*ltYNQdj)mkq%Io*fV(NYP~Tei139P6 z-Z4_b_GhlgF?%yE+m#*p-y$um7Ex78 zjgoTCqs3g<#jQg;gLn{U) z>P1+F(R%EY1Xn;|O+{1c38PL`)-fUrAP*AtGV;hD6zKU)|3=P*xTTyXD(zN@fhdS# zQF{^&IC_Ab@7~oOv(g(h9!wYM!KZ2kecmK3zbneuyT4DYdb4?(Q@?|(_)W95@ttOq zT|v4gxEo52fOu66t40nL5B{Y(aB<-GhHx-5Tqk1PPV^0{@rh+O|6Jp*WBpXMm~%yL zlZ(Z8;6q|-@_3cwZn9Cap}wXMnW27(&EOyH^Gh6Y;d^C{=-tdUZr>?4yPYm|Uw>~w zOfF&Bqp8Uo^TI(jq3p@r*T)j?Nc{|!-=Sb8x5tM$q5J=DpN7Q~F!fVJWH*YAZYWkg z3HCByb^O6DZH8G^)X^txoux7whd%)bS$A-^Emq7+Uh8;z{7lu7^o_F7nP;JmVF&)aw9m z+jyyQN#aXu8=JIc_d57n7y>nx(jH&tNMndV-52AMA}=_;f(ATCudr6su7 zY6=aPeEAuK+zK%x&iV5S-D_vlo7MDBnI-`jG$?vHf66550|M{h zOTXnpn*6|$=10%Zd+`52TF{x02i-zUaJRlnFoY4anN$iGJM{Q5oC*MzHq)_vTE%S2 zh>LlQ_TFBc7{;+in;tGL*m%avLg5X}hme9MT&9id8x0&8WyBi$P3tg5d8&diye#O0 zUP*-N`+5d7*2?gKh7ge@k|_qcP`4}R!9|sHrhl@hpD#_yy7HXsaA;6t5r7fCOxg4z z?d^O!>I8WljX0YrtM?0CEWOrY5t3<$+#CD?9Q*=v5#b$#zg|YK7^0(-bk1v^3$(Gs z4WX^g8ytIBs8xSC&~x5!0_N2gq2<2iF?OV?ECxN_ z%UK9|pF%gQeB&>>J0AtG?l6FiqmN`X@3=z`?Y^%D_Pw>*oaK0%@{_6!?JQh_Y$CpX z)5T*8pD($Dz`Pmm?(M$57QfRb3RcHhURFG?8+yja^Doy7$qZcsOzsS z4^r{UQ?G~;_<1X2)#H-rKnTvuw5;VQ2j^{aJ3Y7+{nEiXFE)r^5i)`fNQtVc0yllg zJkHVE{oeHC0urO=c8!4ZS~XodhH#jxUk|#pmXiwZg#K6|P54?SdtR2QETfbzqYj?`|Gf7Y=>AM*=&E zub8yXIzo<}3V2OofzM)r0zKaA3=$MFBr1TyqDw7jrET@Z3Kz<(-wg-5jne?zi)XTK z%AxMfVuy9Y`qKB!$%;;(eWvuDD#!o)`O`YCRSZyN+}Ou!sqmgBqQp`vc^*Nw5gk=4 zb9XO`_@eq*lw?!gL)@^201}>`m-{idTIno*F4ygKSdjuwzdL;ejG#sGr_gS0sKtdd zyqZK1$y<}Ibr?IC#uQoQkkd3e`u<;cCfuY0T6Pa3_Zh`f@`-RulegbH%?{H=}c~0%hxNrYVR6s)gc}e%6X`e}^8|ECp`eYfPcQzre$meFXLs|o{B8E91oBP01`gCK%=a06dcm3tkqbB| zf27!82=vUi&%g|#G+}6b9-$TQBE4)w8*W+m!4|5&766e)1|`4bCrgGM&mX(bNQBZa z0)vMd;exMR3viymKHg3$K8B6vD@sh1nXjL1Ozo&~^;8#q@jPq8R8oEXwq-Tr6SVeg z{>kWYUio?4Z!Um=T-BZW7UZ1yKEwDhxs;bTdA{?*MTP+p2y`e&m$rkezuPp5{&gip zDOUx0RwlI9jj?-bm*akcx`e~nohJYVN8l^KHi-KzJ*8|tPb88W2m@qDD@a7#2V&!e zI`0+TZ4{&dL1dcK{?f?jE$sW@_2))w*P_|*r6ElDQUOq0Y*Lw4?d|MqR*i82%jOL} z=iWyOy^c_t+sga^22=8mLGO*$jOpUo;ZG89(ZDOy;G0y5JEpHxrLO(XYcNA51oTF3 z=a_YU?CtISuy;t;X1S+KbG|i@E~G%%H(;Q`(qnZbFJ{I5aLpx@i*(~XO!@&(ZXmQ< zJms`(K2o;abs}-V=6*iLoDrIF&Wy727a3h9B#bs}5wy_w3UUa-R8sK|f}ZsHf8aTa zEz!Taa6x%sv-Qt{$4vt}r=;eh%H>+*m=K8{oa=UwDQWNclD+8kC-U%V-@FV8*NsTy z!vQ^sMOXWEwf2$pE#da)*t-DEpVa+7XhFjf(>4G>Aah>%p>zUQgcD`!A9w?Qy*2#R zgHdcva&sgLRuftS!lGCV+krlK_=T7w9JVR3e`Pgm70Zx1wdk-VV2-B!@>AdVOFmsZ1# z^SmsosE;a;)#4VBbXrb_sd4qw1o7aZB*&1`;GtCh@+BW2`rT#xs%`-l1iF3i!%cLO zh%$EN81Kl-qx#l`PzC8?M3?6Dm%4?i0w3dDwosH98?{@7H-WOv<2@Y0V|Lux-P>&? z`;7Wr>=FIaH-+Daw+JniLv+PMsvvA$OMu@HP`)*77#VKe0f+Y^wd_-Y8W+V?t#|cT z7OAhDS4EheyD~p&e(EaJ?7QW-%yvavsoB?C5y}ESC zjX-_!AD_k36F{#cm&r35BpB--X}KRN_UZ19InCA`QQ8vJIu60DJn|Z3=#_iwly&Eq z`07<00avY&d<_bRDXTyu?LL9SEjLe9k*ct+1cBbGpqyU7zW)j2)Wo-{mJv!4#qE@r z_0*`G@eI`btOa%nKQ0AMPzIA$_n7M6esVNjm~P{CEL3Q_9ZP)v`XwxS zS)i)7r1VFXIS|MOE%F#7suIKAub>k|XToskUy11g{^ga6-!`KCTxGAOE=%1lcu4H+ z)1WWHfp#c!wxT@tW;kkqar4-fZWg$TeS2`D|M$2z5XUJRvRlUoN35y_Yqn~I)hbLj zt8+&+Jv5-Fr>3JP?VwgQ>u#SmIAhXlbVAs;qJ=lU1>j*x?h-u>%1%Hh`{lfvPU`du zFs8KnTg4^#|MPUc8ZaR<55(l!D^L^G-s^BRwy=O}_VH`v23qQCh%Z^e6WPc;`$WV~ z1Z^!dC7%e=4$SaGhkHK&@AI5K+8pQpkso}fL9e`y{guT{!m9o;A|Ii!dJ5q_4sHtF zMDhAurJ0Fh_m>ORpbn1=4wDX{f@RqGa6=GZh7~DHG!Z`Qj}rZVUfdW|3p1I=1bl`s z;U_%uk6$^}#ii?RH@!@k^os*pp8xiM9xkgWQ!w6chUy|uRX;Dw{*uiDKyCQX=8Xn8JejGsFD$F?QKA&K>15Epa)tBu)85}yr%~il| z_$@fx=%7p@PR*|x9*7Xb*Om*Rd}EW9iryE)WIXg5?fPJ3M%ljBNz&VW!T=U*8pPc-2`CyZ+|p$Wt2t^R&MY@rk9M+i3>crJ8= zhWS8&hfXIa`8hTA-Nd6#-}GINgRj8!f2@6f2EQ&4keS86`%#rq9l?u_DIt*ebUdGF zMRjgBHX-lG>wQIDk&2`=VhCYFq*Kb5Y_CgStEQ<^W%zt8o)8S=d(N?lwhVA-O^xwn zFcT62q>ZeiqLxjz=6q{ku0I9;5hMxR6~IUJCEpHot^Nr88pm)^FY#Op4hIPb-)q9v zvn)d|vjWk?zB&S~KWDdC9nkZQPXqiIc*>j_sU@e<)0*}b+KgoqAdm%d6bQ=rKY=4iIQl}a zX3eLqhpHnhQ}EM|>*vW}QtYn2qqXsdCc@_S#|#i3bu^Lx?Q;NErW|c2Mzg$>^$5NY z-^Ci@3z(#v<**RZZ)Y|T)apL$W>PQecA_1 zZc}y*_$-(IS<9bP;BywC_;5c!FXKjI(}tNt!8DtoP(c~m;lGqsxS}t;YHf2_?XJBz zusf)jBD8HwBwRDu_sZHG5l9TWVm}bgc3sDm!GK^M|Iv(542g|R=NMeY?)T${S?coY ztUam|rNx3K=-84;|4bS!wc78?Kzy88-u4q)+ zOy$0?uWYwDOYbqSk-d9QG#opH1>ebkw$lgh^A(~l+QVg3689~Pb?B^L)5p8{F&{RY zP1*Cl}-#Ve^)9)Gl+Vfw32BCxNf+dNd>gK;2{IALc+w}&pKHsAt&-ioA z{(2AiQ~u|>|G1*R7VQ7>wem_u+n6Ym0Dfa|sHxTM|A-6uIHFTKlzdbI$E#?*rM(6F zeqP7YtF~a_o45Scn+;c$0H{?!FpE6!8ur{v^M^|f)6 zKV*i!!=Nr#`AG6H@Zz4fHgE4$5nj#vLRsY0=iHLA5aeK7K?H=`haS+BlCG}lX&#sD z={gtR-rcgTo{cDH90ypJrS#527Q~PY$!F^9mR9Ua*|sz`jv3NX<4o#;g?1h}(Bn@#%P@rEk&jUlflfy?7>^eUC}sLyUI zt;(l$TaRxz_6G217~_|!pKi)4)V;7%$T4_2 zm?(%enBLt8a)MOp&p+*iEdovkZO|hFHbx34#i?`>cL46v>fMJ9UW2Zi23LenCF|V{ zTf!GXiOq8vZD3#-0IInnq@34T#aW7eH<6zOAzl`mja%>6pKWu{Ddn~S7_KvHil$?Z z>sBlgIR2Jiim=9SGVAVpc^M!sobI^0qyJ*I$zEtQE5YOBF?)?;(a&_JeS;!nesbAR z6#F&E58#?wpyE_LP1{$t3FMQ^koJuNow56d@)Ud#CB&We;P;~Z-Q$D7lO>QM;z)V% zrK@Nsx!KQkAAhCh_^U*h;7!tn7%g19_0fW(JcEl~fwS}|ph#EHSC$6Um3TLY6uOJb zoL_81O6ER7)yuoimj$laaz=C8-__~d1%{tEVuCv?iU>BO02L-?K2{n`wbGrfEyVM< zJjrl6Z`Uzse1}pbV)ClMVyk}JG^M9H6mz;d3u@PDZy8UH#JW#p85~VJ^mb;e zz)fuk`6tg)B-gXeif(KU%>>Gbs~q4gMG_gpSe9`(XJ5Z<^iJ1ne|HwOKAw`{bal~h z01(jWAbyx0WA6T-`QR8YFlM#<44q@zX<1fbn$R7%q_W3|fE|N1!DH9S>?K3h$|D6( zLp5eAcgbY4M6VT8Xd1yFZR-0uj5fM{LyD_Az;AC{fA)48zZVgU!4jA3aW{vbt6t_W>l___isaQLEJc(d&;5L8bjE4!D-OQw#fo#QhVkrIM;=$*MJ^gO zwq;WO_jz!Pp%vZypiP$f&}bqDAM99n$zif!SU*D3Am&lTj(ga0FL>nyC)1(HrB23r z)-%AXzsZv08b2D=jcGAf*hoFMMrAh$=z_gAaE}j1wYu+Wxe`qh4V!!tSF3d_+Lo2x zm>gY=>Ej52n;40n$S>-zpmGtQnW2)X)0Y`*`3}sI8;BwhcsC`Ot}P=5VLv*DeA?Q5c zXYtz5<3$A26l^xUIIi3z_V)yZ0&&Q0LlWmuSY-!lPxiZXNO;mq_q5FFKWuw2QKjj( z`9tLJ+FZ8dL^ef*HwvOzLunP6cW4)}O63fD`MyLGgH~naHr>Nl%mj4D3B0^lO_(pd zA6&CCLN1X(Ii%j@-Ie*p5A!li6*JtN7D2M=liy%uE}c&+qUj0_1U8%&`hB})1WtGg zdS+*eSg)-`K}@sp;_-?OzN6gD7y~$5K-9P4!>16*Y_^i+o|tX_miT}Roj5c-zZ+~A z3cPq2RHS-0nX7*Itaoo#%<8xoNtK2UVd+gB@1`3DrYNY*gIHkKM49O(wd8v2?XY2V z6K@DEa~i>Ah^ka8=)0opK7F2(WpF0@O5n48M`(Lzwl)3!dO=K_+{-fT!z;xkR}_UB zd-Ep^(G)hM2AQf~B-zczR#-Q4I}7k*d{Esr1+5*7k9WnBPSN7>F0N zHzyLh0RO+amgew=b57bql9wF_ED#P(GzYM5vPTTn2LnFRD5)6s=sP1dI`4hb&Bis} zIL*8DRhJ5^duVRQQp8<#gwZaV>J>On>X0I?;vP2yQ0F2@P7NhDUxJu=!L!pE(QxrF zTK%44wp;bZQtw|*LXpE>4ZiL2)$IZmSzpciWoK8n#XaUNXw}PeFL)RirI${jhZVD3 z9c1or5hJR56!TxVzbf;HAui)Gn^iYK&DEcNHK94`u={#4V!ZJNSRZq;*XCBI1i5l4 zK3RHKFdOyyy>;%?g*rlGwNXip?dj6>{F;`0nXOvKZIBkt05RG!)yv+GMW=Cnm-u@1 z!Mo+1ya0yNaCW3x>xe$Peb{S%gA#jacRgJzZcl1BTQRo2ck0FTdABCds{pxEx3gJ~ zjIC#DmZLRNmM4wfAuAgC5r^v@<@)1Vk~Hd2*)PUncWuovWA+r>`wzQ-%gI?Qwth$& z;or0oaauksI!ueSS~=vQ3;4C%mK$s0Uh$jW$VteH>d5f8Jj@t3ADxyYaJiMUR1(#_o);Fr&E@e)nbhV2JOtn zOZk=z;khB+_&{g7^$9OYX%-y5JyA1kGO0-IYKQgcb*Uf*G`uHL)|!}i-AUAEF8T_= zy;iEKVDmiVn-tKQQ{z=o%c;tC&??=<;PU*$puJ*tsjc3_k1%~d_+>PZnMLQpNL?Ks zVef*Y7lGyPF>7^^WH0;q*N1Zqok?7BxeoejIocJ-x50H-qF5!+R&)~2=Nw6KYkL8i z(#ADP&j-VAFr$}gezOW4=9bcoAGtYoBAP*ygqWR`N&xfGA_P&f&L46ksI0IGsd4qv zv0huF*_luV4er(K45wjr02KC%1N!R7R_o5Lpt1ew2gu63yc8X%{wD#PvrqQN)@ zo?0S;kDQ>wvwM6wRyUd>#Zs#PJHZd?*&()kAi!u(PQqi$bXUtZNiK2w3x_X{J~hYO zvVlC=XhyuX_(04Mhi@QL%FIN6-n*LInSx>*x!TpO8lMSjYYqzbU zfTDl`g3{e6D1xAr2%*_f#L$a$kR|~VdJk1aMLZvyMB|648 zTdLEE#;Dqw)u5lJwbW#{5SdP?gHkTSGeC`d)3VrE2WKqR+S7}c^>8rvWm(iZPiivzn<|a!vB7xr zU_#EvaJXhdu;X)OdiD0sa!S}eUocsfKD3yVVU|AC=*s%lW7YWMlxjKRniB2T33oD7 zCt+96ubJzLWtUT?07(B`Qk^i)dlcsom4}J}?Se@dXVI}dkg>T>(m1>c(P(w?R|BxG z1G~^Usb7P1Ta^MT_h&Vwu*fa;ZpH<6H>OMX6Svc)Hjf6)X17z-w`!m60x2bh5zVYE z3y<}?4rrWDr|U3=v@i}O#wzc9f?HM|A2#q?Sr-dJ{PH6&zf7`31kkQ838y?&lV@2} zRP^7-9xEjdKam@by6W`1vogk;;5+ED=XP!a zEU%ZmcbxK&omcCXymW>vV)v-ii3hMW_B3;!^>4|}>m{ESW=EJLxo&1HsKE>xe zu-1-ti++4MO)4x7F#@0w^AI{~E}HdmT}|GPIY&W;yB2CS+Lk~#Kkp$A>5*5P{|^W# ziM&Je4S%%0!8N4x!D>^@WG?NF2794LfLcPW+q zU!G)u(wvl|nILLDD}%gO2BfNxVaDdL%}_8pn^#ffUZZ_P16;IQ(KT6;G(P&p=jaj} z5j(ddEpM@Ko|DF)aej*bS^chG=2vtSC!Eh^HA*%um(L47R>Ni)^j@MBlya<`ZSkGA1o1*@c~)^aBJ}IFI#+-sBXE< zdUBd+hRX}F{--8`YV&yc?vO{uwPFK&O7dX0<8FC zthz%!E^y`lpho$;&kMg~XCw5dX1~1R zS+tg^h$bHnlQ=cDgEhkH&Eg)t(W#*Tc#xm(;o*`p2Xb;%=_TuB^V==eomcH2*I10~ zeHs~kb+bh0!5E(*=%Vx2Upsv8P%97KSUYGn09+Pb|s$M)neC!SI}G8&IJ`Y zJubUqqc1*}z=3i?nMEzc5<|93+YCxfhvoT7`LV^x+g~-I*Yh{bq-&t#15^vMw&EJZ z5Ktu;JmO_GHxem?==z2AIsbm;a4D2S1>Tt}G&V6kRh>ty3X%$BGYqs~Z*P?J6Aak0 z$*X_H8KXK?e?O*|aDzSR6VG>d;V!j|V<(1cK6vPs5riZik-TV=hn_QAHY(|w z^!L=)yT71Z=nE(laMyR{{FwMzilk+V0roO|q1Y)d7bBOy?UE_$Oy#$Fvo>ZMpjfjz z#MKF@OX8*PF{5g~IIl{`*tCAm4r}$rBc!ggg3ZEsMM|o->(7#ak`@8%l%nM9)Dx@O3X( zi#(`oiiBCPbkyt4WUuH3@s6o%b$qzuJo2dXOB6SNu^xoO`_@>^`i2*Wc>P2z2Ur(@ zT;c2qj>2tiKpGo@;0rY<`9t}d31)J{yb^NU@P+SSRj)D}wnvLTzI(@j{Ezh8VijVPs~>fd)H78s6jh>3X4_I@tkdYFov-lPscp%F2GY94}LAKxKL}J zf{73v=Y7;7JX4UDvNH5$Xj>fS9I)hPxNCSA&ny`99mhpFX7{0aB7J0s>WJqORNUg0 z_<8({q8v*VgBOg~ZR(I`>v4oFB-C3#Pk;6!3VayU2Z9dWA6)J8na|IP@!-+i+3UN_ zu86k^AlT=cjlvvym6vbaR3FYT@LUL7Z3G+DYh%yCcL$=;FgenQCShuS(m4%5J-1K= zT68L4fpET!cVwNSK1V#YLZK|kSg6u3M&O;1BD1b;;?b# z>JO<88&P$-wXSQ{j%Ld%w_|~`UqD&No%V@UkeBIUR&Jo=M!87dSAM-tohuG58-DHo zt^|^wT{)goOJ4DJB3TU4Oy(x6-?&ZBB_QMF4-w*N25fs9on>8`WetzHC3os6uVB?! z!O0QJDCgag1+DC5rR-hHW?abB=@;+Rm;+heNYTTRiQ*F%0>`fR`jF;)ggy$}rYZ*J za$S13pbTAW$o7yNsU+0NGt#06nIbw3iz`r{)q-%)R5c72K(bq@VtH10IV+ffvNVws zMF?y?uCSw_t7`sDAn-LOzXy*Xc_vapF~PSFJVc@tC`Pl$y?M(qtTvP4+|tMtjGFht#1WAuMYYRdka+Czkj_ zXS6O&IWW0Xs=gJS%y@!lEB6F+ww@Hf13h2Zdl&wu4;K?do=3te5N$p_mi1VSjeeti z-SVtJSf+4ap`qpi+T5NEU7W$!?*Kt2d-f<|eUEuA{^6$8x>Bf7(t~b0 zBnZxZf&;p~G3V>KQ)x8*9TL!d!kt zi@*`ebv=tS1t7%w7oI5%`~p4%pO$5wlRG1RyM96EM1FByuSy^?N~)pHm@Q4lHwKPa zy;Ik7J9m|F^2fA5SpKnmlHRbT(Li%{;m4Fq1d_4Hg?f#fcP)O z>5~?S6$Z*;q`7yY7BrYU1(pnGF zUS4xCf{uS;*HW%wI6j*wPYxDh#zzKo(3R)>NyB@(loef{i4*!-)o5UcbiGis`2c`!_fqk7XJ zYS*OcCY?Ba{AF6GFL7dc5~yQdVSlDi^PV1!dFp+BQpN^9ROkue?k#J_Q#vI#l#8Pi z3@{4Wu4d%+YNwu2)v;1d*#UUD%Q^VC!F&Np5gyVV;8yJ60LE8scJAl7&IDhvADAK`Rk$8L z*G7*So2^?D&3RE-X=6`42+CZo=UE%BRW}k4r|xH2y+z9Po7xUiw|3;r|6o_`ZZcF# zl(Hi1==Kqc7{Tg`Lv?&(!K`r?l`px@)|!koyV%gKeAv*eMBM-83;i%7N}DMM6A|nI zPNBtj*lj20xK0J{jXS0!sHXw${X)dY>3|bUN_I<@&B{gx20fGk3ImF@R5(PGtZ_)y zT6|svGxD6Vdw9_v@B=?MyVsRM3bx*Wc8})kCiZ$}sxUSd+>F?%4{7zfon{jfiOeptTmQ^dRx4Ovs|=7HFilz%4P&rIT1> zFn+a+ut>kURXZ;z7g6Q$ut>p!6P#SV>t&W2y1%n5iiP82Zl!axaN7;fcqMY3dU36c$kCyUiXi=!W6aL)rsvR3Gv6H_7b}P1LCFI2d4YLe&(+cJEVY!n;%7)x*RM zf&Itqs+qLgVo&cpP0r`kA^1-JUNrPjj@{)g;T9~~rgAPBga?n0_V`kkhGXgK`9cZh!ma53OgvIKo2YTv=X?Rm69hxvNEcFr#j_;z?=o^wi! z?i``X3hS~RP(-@vQAs?y%g3%?s^=zWsmVq18Sodp?k+X0%&j7F>dfJqB{ycde#EAd z8M4my8ylu=kfI|ZQeR-$DbRA)*Ahlb!rX(*nWpqO>%*=Fr8fdOQL;bG;M97q^x?D7 zuj+>iYEY9B<)B!YoC7I9Z+o)Q%r{Fnuo0p$9Gh4 zyMCytF&w%BGU*^{I9J*ijebX{oslftqfV-Q%srEMf{6v>x-qJ*=lMojBkO6vpeXjE zZ)LXHG$;yl4Ik3fdXPy_r(b8fC;bo=1j92r7m9WYxeS<>Osuw7g7JicI;h?fo)wri z96Dracn1;Qj|7>iEEiOOoQAeJcLYhPAC?z{LN=NCI3;zaM$UFget10?eGAt4b8Z(2 z$9w_2V~Rtaz{wVf$h{cpfXjrigLDk|@Rx`ck}m8pm#;vBh>iiH_))>kui%(p@6%^X zq^25xVt%_0c!kZYc(26caxdB9^e#6&HL*%mVmVoOB8ij`0*^0Te%{+84HR@`uX-}6 z)Ux*#kcZnpbY=C{d52u`!DdMK^UPbuus<$mFy{qi5ZIvCZ3gZPVh~`fFG9ElM&@f8 z6l)pp*riqD1CwQmoTSe*E*@mf7Zl8Dpfzw-Lk3Xol$7C{q#I6^{(l10y(~tpYA6 zL3oIlZKfCm(Ca5imq{~*hg1cW>kSQvnqd{1E^i$YZd&gAyfIv4h!(lQF4uPNBuHdM zGvc;?oVp?q-r-422!HN4q5DQ#k-+8n-T|(nA`+_B!cx5JWPvfxPxc>AthQR>TPs21 zua@J;BfoTO3o`_v*<>XyN?;fR*uVH#n9{L)V67@C(q!<};Y63+ay-S!r{tw?$#kv1 zGU?MjZ`!qC8qjolIGzp1SRmXQlor){BrA8g$V_ULcUYDJ=*V3oHSEGx0vU-zFTEky zkm#MVfhVo@zL%YMk>a)|lt_u&D5-*S4aTGBsyTR*1r+mZNz-h16*)F|+EMX%`ZKK?WF9xOD_sz zT;%d!q2rw8UK(*aD!X4bL#62ApDxL)NbTbL>Q`gXwG64o8ZAy{MYa>&qrTHcFU`Ei?d_yyVtJ) zU?9dnbaDW2;m>rBaHAVfrq#f9@D0PFlxf!od@GvQwg-~7jSe@8rSUu5vriMiW^}|Y zA&Y>@0Y0aaENtzUucKU){l2?a1huOyD$WPg&J~7VlFHjv;+hK#vs;KDow|<>6=d3C zmPVejCgCPQ zM6Dp|_5w!O<{tJiy`85 zCz#}tAVNzOjDK>9r}4c3ry0)WHJ|DTsIQY#Tg7IgT4Bs5wqM?ZiT@PC_#dZSh?%Ej zBSs5c#zzgPw!iLi0=Z3nm)bhOJ=JoPo(eGF{0^SBXi!S#Sz)jR(nk-&js^_KD~L%{-lrilG%-C$Cb}JjZ_x^ z&e;0=L{S-4a=Vt;c9CzO!>|@4Ir+(5e}zy=HPL=8m+UBQSg-<5`$Yjo-HKkTef&%{ z<5BH{9?{Oi{>73x|Dg0Ktp)UY_|u898kCQfs9v<1P^|N-CiJk(dj`EvTNyf=-h9icr0#*NfM|~!Ihx_`i z#n6*MMdxm;JxGs$HUs5%gb@sK(3Kgp?ZV-`$SjOhRNv=s`gvceC?E;d(?;?ufxOp{ zyMQwduXx50bc}79C)YeDvVEs<0_BP%4;(477B432aIG?i8$A?x;}oXoO_g0e_Pr-V zl&tElu4dHN2U(@9dWn+&Ujt&VIy)y>?5y8_u(6~bz`WXOb!@D=64|@!NsS9;b(#yG z<Gp9lj94PJTf^@L2U#!MyJ-zA^!O_LD=;HfW{$4-}r zJ4Lt-EJFg1vP?~pHvQK#yJU&3&?7BV7kd5ZpgRAdhINr$uC%9WC>AfaAxz*}3v(C1 zL*Rt^dP@fFJzGHd%UGB}YIFl=s{+`_g7k;pb&M~%@2}mYN7qTA)$PNJ&!r0F`fLIa zekb^6-v$n1h9WCzyef~h{3UE+79(|lSIB0-qUdRxfrxW1HK*qT3PVQ$ZpmXQ3$v=r zgu0(Z=9<#Rc4J809YUbl2-$}(?o#?ZN#HERk{;A4qN`_OPLEB8?OG`R=&I`S22Cy= zWsTS#^cKu?lR8!Xm^bX;A7OQ`uNCVqi(=h-Yt;^+DbNZq^t`xqgt$ho||rVz~^$lBb0)!7S-x zAvb(n@{tcDWxlG+-T1<0H;WM+6V}blZp}vLJ_eB9kfiJF_hhuHOT$yjM9Z~JdZ&*K ztjcpO1_F9xIE@8_6?Xq&=1}F_O-vcU1?zC4&Le>hCu)00rdN^ChPLYy$q83n0Jv#j5wg#c@ zUU#pG(>UPpZPZ&ySRE`U%6ojoxIurPEl-kjDe;AcHiu#08fI5W`Uo@Y^(-K^Q1#v& zN&tdLP0yc7MWp5%mzBatqNEz_oWD!FQg$~8)e-5#PX%LO<03%i zn0ajB0E>D+984!N_N)z8vxh#=i*-ULC>C-O!;wFJXe&A8jwio|au>BuahNUcT6di# zXA|=$kZj7Er>baEFONK97IX{M6$H_(??Dg~Oh*ha`P@4e9~pdzYje0BX@D%Z{U)Ft zH@O{PJXmX*#s}cS{l76?__`flSJpYpUR&1rTELyLeSw2=2bw{)P0w4tJK65d1c9z;}@d8wAz{G zYxQ)ec)2J!SjwdGa{;l`AEwv0{!&cPS1gq_;ySVQ8{PDoq2($}{WZUR?$};sNTsB) z0h2B#76^{i>npKaZPMwehhR#alh(Mtz0Sp9UW4&v8}Jh(+Nu<0QP0cz{w+kKiL=DC z<`wZB)003VWzgpZgWpVvyfk^@lRDrSBr+`R?*TGl-z!e^2#fBnCfEiS$_#kNCNBja zB?IXyu1U7RyPCrF!ITr@S`qe>3Y(?xsk1;`fa^IxCystT0RX(7ERB>bpH!K()7nr~KCI*V6-aY@^}t>8%CE94$qS%BwTNHJT!c(m z5^FUeZ@>a0?Wqz&wB@qKkp_Ush^nQ?F65+Mb_Tcl76kp@`d!E z0SyNNTGRI1O2Cy^^)|ClYs>tg`ic2-dFk=C2I9Vr0E(poktbk#=g{4%&x+F#|^oh(2e{L1xxNK>Qbk#CbM0w*_`2mlVKl-m653r8#O zX4I8j+{N$zO0Ql2%GU*e*ivwMhaPmlp#Uu3_jI$VZ!vdhcUQtR-SA~it2?&}Ao=t@ z{Nw?$YDjg)w-e*(136N>n8Q{A_E~&l!1)A77{~5__^)rF%tQ3UznQ)n1oHE=5-ky) z<+)rC{w$2SZ9*5TPCmnhfNusmEU6-%J59g)5g_2~JSQthbnVlRKrYg><-~Bz@}{e= z2YbsAjU1PNnu}r54C0yrg8&zfSmcU8ml#^~#-ESSuot2j(}64#P}AkLH=a%dr&DOf zEfj8vM{jI1s$!b}2By&gJwy*diTc47n%D1v zb~H6nJ)`{S5c@~LlYVh^pEZW|3qV$|^g&>lVSUVUkU;vN*kh_1uCBoeqheI=BKQ&dY9Kv6L^@6mf}p1uBzIJ;wHEyk7K zu-JMcC?fDlBeb>H)IQ+V5-SIlfa^3@SYrWShxN3mg)jGf_R4v1raN?xj_7v$0Z5~V zw#ymscT(AP!J{}m{mErlRsqJfaE;rOfe{Wnma8EACVcSo$WM)UHj-DOLP&Eczlj0a z0HQrfS;F7VYh&wtD`g?G*(NjHus1Jl7IoRugQkg39WP5)m_D@M)aKVI%^uduts}g4 z6Z?xe9f6%6J0o|`Xzc;1C0oUA6|*b|uKaa*8z#zO?kheRFil>}iXG?eiQM7VZ}!~W z&GI~Y+)#f%ScAv zEV0)D&%OVIxK;1ZLT&^=PV<1gNY}MD8BCJ8;}gn)6tGY0IwB=fwqT{KqjMoO5EgUS zAjY8E2VVH-V|eY3m2uK4t}ejw8$Bh4tTRMnoV|68Gwjx>H8$uh4C7rCzxpkxDQ{U& z4i9!PegpLP%@v;IOZwboVB~n_}a2D#*;z0WoFP5d)JW1C^UcFGP?T__7|+ebu}libt*frC>km2 z!|H_9u@HGOOFyKiSMKPgCl8|T`T0rYY;HyGgNM#V50&BNdvik{y7sA@*>S zO8MxwZ3U)}PFO0bR3u=6oK3z9KsbjOW0t0HfD(jdkN2FJnZB{b_@x3-Pj@pdjrRtY zD-$_YgZoonyKegSjBtO=&H|;v!x;t<>IjN`pq^Fus6}A3l^?i>W)Oc-sybKiW$yl2xW+ej_c-W-6;FhAZ%GD0Rmq~H+{?Y zjtzqf^pNr;xA$EmadTdiS(v9j^y|Fu)eydy{fsLf=LFHBv-W(eRT_uP zvjIkNPu*N*)MLvys&_PzrkfgcD)$LA%jJavZXRa%E_5e{C)|q>V>1PDns`y zq^i38LVmfI$f)%LNw$<`)4PH60|a2n>B-Nvx;-PdLwm~;^OksV<5D~4SYyrFcugDr zbSSKFU&g!YH1)aJw_S4YayNiCepv7>Cq+d}A92d)?6(g2)0dzOP`Ql5_kG559zL+w zkgT$4lcLu2`)^s)KClPqgy|l-HWP&8svhca{OfBD%x6qR%qBpmdf0T$?7yfy ze|smq%(!9sL427#THtS#o4*kv!peb7XWN6f?0@Hz{ELDWcI-fvYOQ^)?_b~i$FGhZ za1)EUw*SX}z9b?_ap$JNe`}k68vJi#>7U{C z?|J&qWcsg(^1s=1{8uade)o^L_{UuQZL$ByT>J;!@z3V?$6WloQT{O(|Coz^%*FrD zy_C*%7xj%ll~dlZg$WrIOUH?6%L1ZU@&K@2`igO>tZJDRT;65tiwhPdDS)&~{gdF& zRj39;xFOG2&OmZHK0ttoAp{@^LjdSemrW`gXt-$f(h$P-$L}A5|8kpaJUQJqe}D7r ze0eZkkvx5bmNWy$z=C(2N)EWs+vHx=R3KbPx8DTR7!RZXP8o&)Jm__< z*cXoG!*(_a&Q}{2IrM8iKI983etY&?G~f&17FKQjEO!R3pk}}bs3-w)Hv<6ZwpGDl zFgF@V7CYlMFU?7k_`WVLZ?z z9NeD_c98W-pw-*t_4k*L9`{X_=?VKS?vVXQMkxs8GPUx{XbBYer{JHO z=z;i=9@6#q{U)N-qow&=J#BY{e+vCoxp19vldk~(fbQ__PZRMy8@T6(&?=yi7BFLE zoaaxHBLzM^{g-~=OU6yJ0{p|@EYL#?Nr3!9qJ}H#cgtA=p_#j`xAp}7lwf!h6$(A` zf4dQ7>R4NTmd{_OId*}&51tb&15k<&ddp7lw=B*0Z;_QyCr>vs{YpEH3xAm~;g@R1 zcg@BNy^$9bwpjk$4Tkdw>pWV^Ek1qlQTS!Ed*eivFPw)(~@@&sZKz4j6y0c!cAbQY? zVG=;|B+iMwz#S-@WL_-?QWP@&14m^7sSnBBqgKc>S1=%elM0u2oqQ4u;JP05NiVVS zA80g&Hus3=)Ok5!t>BD&CyQO6BgOW~^3E_erTiR1A1157u%6m;q~-1J0ce*B44q=| z#gzkr*x%FcKVFh}GHmm^kX3hokF5XxQmF+rJ1y5e?kva+r2KXOm z9SakDlYsS|3;aQKQkRuNDe1if10Nol>&RO?evHBf{>MT=4YEc-N8SQ{D8LU2%C!ts zlxyHGD)PGww7*v|a5Ap_{U2u?dE-QAJ1z=}B#Qi_2b%7v>oeC)h<;Es?}Xp-#FZl@ ze5IZvza_{0K^=pGMOwAlvc)KEG4t6&>GiuGva;?%o2OG{rTj)nS(L?z2!qdEo#bOK2f)c^78MTMk=Y;{^Iy*~;X7VZD} z%b!j%BjP67zqkVK#tM)UNB^JCAm0O?>ibvk`+xjY4SGU$L^$fd?g#sML@p(|_|EI?lR$t!w{UTFvkN?WLc$eh!$5 zWB%*s{ue3V%lfwyP=oHipYR`1{`cki|E(zR>OT0p7niXZn3y`>&$lfO!!#V>`_{r< zheau(ZpvIK65OO*2KRiqj2c+t4K5-HBx&m~c;uNnQiQ*lbwn+0r5EWk>Q_CFf_S-h zB=UY-=uA}HUFu@KfB*gf-h;J2yPa0vU-IcK4DPFs@16(nTK2Y=7>b6b&(!G0M=%)3oA)|Y$L{~AWs^9c^y(W1D6wb9Pj zP|8Ph7l%`&_%RtBShNw5Xxc`)GHjapEMo>5x}P+QnMMkYZ5#U9MPAzd(NtKELI17n zQ{G(8mt-AoiinFs9EUE0VmwEjc~@L#pG0XyG_y*c7o>(3bo!?XtxB4hdZ89ofpJp+ zpVhb=g}`%;TF1p*H=MRVGHGT)L&vcjB-Ffir4NnKa7no$YMm^)8cv+d7eAzXo101? z1)vx(>9VS@XTg~x-K8~{)8SH8L?0`4r9}gpFtCVr<*(+k`7Ig{RU~UPbLT!x!+f-e zyqn$Xn|PK27A--Ff3N9y-eXbgxpPd|3sYHEoidXb7!j0zbn&187+}(Er#~Nya94iQ z&-q=XDka=AisLXcLp*Z43*<}4&|juz3L7p6cHW#G(YeF;>XY&l!pqj**`T7mQJaDC z;UnKctBxK<4Pi6(gJ`veo+`v~8s1_Z$x8zoMDi2*s-P9iO#M*|HN-v^4Ff0V6Nj?Q zpWzJS60j&i=@_rHR|H$Y&U{nsXXB9j)V#`19;Ac-`9I3{7Z3AZvxDX+#@iE4qJ0Xz zniOX&0+x_4-yGsgHATo$W(fOrmOz?3p)OtmmG(=b4Saq zMzwy5q(2MK3>$Qy=sc_HssmhQwqwd3TQiZn=cik8&z?PdUHx_yY2d8s32xt}cbkLA zZITP=bjF1$CI_ps{V^&z1hlFNuU=DK>Drvo=Jkm$3#pOxW=q{LYbR6%Y0$GQr3|~N zLmsPbznmw90&1f?Nr9Il@P~lKF!{wepBVWv$r$XF>{bUTzkz_mERi{9wlMO`NgT~0 z9r?}rtq0W7%K8=xvX>)m2CcSVN4=c=06wA`_noYU!^y7Q)@^M@adC0H(nkZxhxc*5 zx3+d(yD83b6SALg)|(>iNvY6vCA)SLF#qJ!s0P%R^Y4kFoFYWWebcK2i%7|49S$mKXFC)wmb!2N9B zNb&DZ*~TGYxlziTd#NXc41S)S?6uCfhA=oEUk_NK_m@no%<_nYg0DWpgiTnuBN>m`m%m zgqSYd%L(_Nbvl^+XJ^1-y%A2Id)aXz1C!O^j@_l?(yoqZW-6`+dtgfi?BDM9Dw*{< zpjP@jg8#NTz(WYQ%kJSjLG!VaRQ&ji6XXoRaaW+)TP>d4SIvTNR)KKydc(h5?$SG4 z5eW$_TTnrD-?NvE-x#gLk<;=L&GY7{*XP-2`71%v64apteC^*5x_u>xlb?ZZi_vN{ zbOFfuifBRejNI>6XHHnk1rS3T}7as%nnE^k*lAe?0xgH zsW?(Ae3rM%$GluZtQkiZP}%4|+nClJti_h(msi)mVfZ3k;=S+3(Pn;=z~rMrMSsqb zabyM6{>SY?$lE<4|0u%~_!_r4Eb52c<>ZWON^T8!mi|MYFM!q#+`B7y+3Yur(NbgP zxscP&UpUAY6O=Xi&lVn}J^nLgsB7TvV*SX!g7iJBF8A1DVz}(*bFPdd8>r>qUNqN9 zYOU#ZyuaELUoiILd$Dh~ic$uQBE?9^ka4u043y>vVs>fO;sQ1_Ywis8z%{Y7de@DZ z<70PuArEzBrj(eWk1C2_V=}62ibaX4P`?iijV(8y&rwP&zjga|^dWJVKYI$qOY0nN zn|?>A%s7k+Vj-0BQkWr4B?j1^&fMUVbjA2b7eg1)2AvF1@)unT@QxJSaA=iMfhQg)Ze5W43s=?F|$C;d6;lhWU=y&3% zP|G!FvgFhK15VCzt{1<)V(5OcsN^teP$l8kW1$o%iU*E>8%7J44i|%B9Eal%;@n)v zMYh5Gm$$8l^WSTh`WCaV#Qbn1ckOatAHN^p#Wqpv6vR$O_MT8OI7`NRhQ(`Dne0>vKchHKeYUA;JG{>3n<|=A zgN===tGnt=zSlaEVn3U!jntA*KFsL9OEhs;MKY-86dtE^p^hu7S7wsNVOaObb$#6a zY^7Rl;){8FjpJgDL2Y43`e^Z#LM+>pZ!c^4*y*8DnSR3Q!cI(&C$ldk-;cK49Yhb2 z;>7hnSR@^+KiY`fizd9>Y~pCyvVL3;huR)-;w&btoJfDJpS+F>`aA;%&2O8U$w#)6$-WNZrn^3j97i6 z3$}B@16Hni3_dLW_1w(esI@ljjBPpZR|}o7>SO{BGzx}c z6FTewE8>3c^Pr~lPiNcTx^FmS;m5eYX#eIo)`Oe4jnRPrsom!%e=Y=cdHG{SD11~#7v;+%Nv zsDkjRZzzhgpa<;V8n1a7xU=EpX&AnCxgcL_OUe?!pee53G>JU z$nX!P)m-~kS;sKo+$`_A3|BkvGt(%hPL3eG%)y*uk%7YVHy^XNrQ}7ry}B*47vs`q zLNaGFV+g~X*89T(gRqF+W^=RBBhdHtJ<+CN%RR9`fd#z4U4a;EEi#~INlVhCBKrI= z6`*zeAs7nXD4Er=azkHwmJTY#>s}}zJo!UCJ-vnnA#1r#x9Y|+`_1F!+rmKIB4s=T})mn&|p?9o$|71 zujX;JZfm)AeK0GT<#qty?S8+ND_8EWzQ31;*%3|Ug|-QNzd$|L2IFKq@F;32j`y1L z#Zu?EwuO&#+3Qh_wZenmcR5b{t6v!{1__X>oixW zTwi)4mEpzVx-R+dPoKeBjq3v~x01U3Q=VM+Ys%JPr61qxfm{1j&g%Ku$$IAT+iEd7 z)s1!8M zB}>{caA+-B37xdJYw{X2$rMSH?^2bG;zie4n$3rhOtMFnEz1e%5|6%H9I}D>o`ny5Ix|f(}Ms9$f59VX|Le8*?yWr1T&t z<0$*epW1Sc@YC&8kpa#H3aS^*3e;c=X5Q60@#WPp4ypv2*Wr3xiJ^T|rR^BmwOdkn zdN7>ECxu$ko(B}|Ba2;%1_r{c8hJ$vUGXZ8%f0l%hQZn^TYA{o%%Oy4O^Cz76|wE9 zD*M>Qu6T+-W^Yb1*hhFP9Uf2PUN4qzgL|g8pl?(Rn~QXYhPsbIV3eL8FYGI0S~#V{ zOr5mItTXfszQ)CyY+5xLZ|r@Z$f4UH$E2LZwAiIBXHzdy5MSHe(VHq7+V}WyeIj~y z`>qIv&Vi7~DgP(^TtDI2fi;qea`P{JuB-1Fvt`3O1FoGymp<36e&(VyF1C?QpA(;Z zX-T79wo5Sn!48Luuf_k;@~NE@j$g?`bqio6K>SN zH?Gz}6M0dLxXeDdHk*YypQDP5z6^MGk)TdtiJkRd+dZ6en9LK`L`T{XTIT?-EvT`P z&qioJ?oTCj9!bgTIMd^qsb?q4G;yUR4}|yJuH&J()_l%(h7CTZ;J0~(j=@Q~5V>=_ zGcS{<a1B}k^Pw2v=x0)`PoGdOPGz|(z?Lyv& zc2kK&l{`S`h26N7gt?@3tyM7|!SVU?=OwNQ=&4&G;#*P95vP8o@_k7r7%g{}OtY6W zy-kwr!z{I*Bics0{lRndHw3MUK&KK;sy`g4aH+g=jQqVkSMgZsd@xA33}`u%1gq{a49^AeSx1y< z6;JM-kQ#SwLQc(x^ZN|0k=e^ViBRnt$;gh&UbL>&Ycy)Rp^!8-)^Hw$38^%kY^+e) zye3;=|HF`eVS4D{%^8)5Z5je9wF2r*dFb@%@XQc|rZgMr9y=d=%+}Yau)3ef=TUdV z&-C>IP?#Jf+)Za$eU9R1+qdZnR(QWjTz4)w$$S`e(!I1r;W-Fk3psdRuRh)0QqNA6 z=!Cf6m|UrA0FZf5##f-TeqV*VbES(_<^=*^z5G0jhjcc1|y0y-3y!6o2HaLz>Ur> zRiT>5qBML6(=OI?DC#BRLZSM-W$WI=WuX4i9?})R>d|ESvUAS*dG4=j-lOV~7T-DGohkY2g%S)9_`^~gX4|gg<%EIVnOdPOs>*p-BA%eW8cwmmsHvwXd=95{HeeA5( zT)8Ho2u$w7y92cFDm(qfkBeO)cKOCJs|S_Tdg+qcxWUBiTwi<>mh~Pny2-gzIS!JK zZRuHbrm~;7pgl%4Pg|}i{uo^1|D4H9Wu_X$FgyGN-^GIL7LcGvgLro91=eth##lmd znOnNA^)nuak}X+JQMXNseSSnLuUptwMh;iEBS38$jJN?1x4WQmzRXggDB6vA3=hsB zqsMuCw@TpFcR;{@;Ur5ObUsIYTBaFTS z={A+N+?k{Xe&XpM4`Z5&5}P;^6BDemv7b0qo)tsPu)G#hvawlUxtb+l+7@;nvoQtu z*5*&w-^+n0k#NGUx5ODBe+wPV7wmh>+;KHEj@GYUZcYp9R;%5uOI5cLvTp)6z;8tvmvvxID8ChNNlv6AwmR zts+#XVn<OQaO&pw7Cr(3pe3(_zoPA_`oevJw>2$0< zJvxj7Vfaxxz3oLSr9;=yg^#i`pP^pv<79!(0*#LiBwO6~mJeS0xsq^b%5gO{#Ee~H zu6xUUUXVOd7ol^}EpJ+{!_9bd-eod+)@u9HCzDlnTYGmPCe^N1srb}l8OcN)yvLuI z!X*yNoHrb!H4F9BJ`nYCKVgfHUz@6SEq*>@Y|)eS%SA1Q2;Q`h1g^R7H3M$t73 z^*UR+>8#o}=2#)dsoixHU*Wq)%5i_S@L&{fD_Q}8MRL`0W+kv{>~6PN(==`6%0kz@ z@l@iw6E9qxj+`AHK6{q6vgH6jWoF&Q7~~qfbs|vFoQFp7LUGOcc$+RgzWZTMI;-AOI^v`@1R|>r$vqieN#z7kE)uy8O@PzEL6$vMz65#104GnO?a)>sBea~v1 z&o%apUv%V$Bg1!|pPKY>$246b2Neds2KS7eKR@#MKBhg0ftT*H#F{ALQXVNSyN8j)+pn!VduZzc)c<{7 z`a~u<4!Vp20$O=0>72$sCvW(mC5bVdl*|0adh5;(Uxc#;8t}8{l-@7s ztB|@0y7etszF%qoI_EpX$ZvD(8`ZmaXLd^C=UjgoWKFi1pq(J#VUYKAoL~}M9~UFP zWq7?sKGu2XzIMFi*q&QSldVndEHz}*p@0vo&ZI@mdOE*kj5f1c1hEPaUimCb<5=uE z6XG8xNPC#8@N;FrUD$C!?o;Pavr8ZE6nh0~xV6K8epgL0@VSU=eG~1k?O&w|Ai4>q z%_LvgA^nN{qlH7IYs@4E7@#$Fq!$bWjzL|*!SGn#o5sHL)yc`b^g7q z?y{x&3-8-#8b&8+--Qgfo| zf*Upf4PKe=U_k#$_tQ3Q@I}mH@=NT4oV^($Zi=Y&JjMV{CudKIEz5kXk9kOn;^Q*r zm`T`y^FpGL@ml5qov=#tT*GPa(7S08UfHJ$hgAG34+FmW${Z~!N@w)X)mq=r>JQu4 z7RcKE`UW>k!s3%&Wm1LpP_GW%#%f_#SHaLnv!ksh%5Z+AWPu;cU%BBdyAZdd=+DN! zrX)W|0wOSak9AP*EuaZsffWL1)AM#i#F`8@(AvVNqTvU&jE{Fr`Q`EhAnYE+OT1l! z(wr6Il!Es00LKl=d_zRYil%G&>~8L-;h}I4=Sm3OaV+sa6}yp!vt;a_c3RwUgj{NR ztW)~be&+DP;Og?}qZ84wIewQ$T)*&###%LHVi(i6NKF5CV_lrb#+26#D-v6)veSE4 zN{rhUexU`gW74vpZOHYY&_|cLwVjgAm?I^0iGw!BA^SVQsmb;T74a3Zp2!>5JL*@M zd=b|d#TYzXIM>YoMg_vE)lfsksi%ZP!eP}tP^7YUR_Ty_R`INs!?=nM7VLSnhcHxK zn-?c&Hl7U;v8d!Ef6^3EXWu!u%!Sa8Rk~>0KV$=WrCHZ6++P8#E29&nHnUI2;yht4 z&K;8^tB*)cCMgu2DyD+J`&{aGFNWLrfkmG#t@HjKKh3}6N3y(u&y4=p@4PrAn_I0oTXP#%%mv7s9gNiKr{*p0q|_xFTet_hob zJBXB5Nc`@XQ)cBqw-|-<`%N)MLU#Y?%)><mw3jk{I@IMqDSRYje*gPtGBG0 zW+q?ucb&bSe2a|tUccA4hKb#CXyjo|PM@#S;EwI2UB0oQR ze~GtBE8PgN?DnmPdJ&jtZ_dy+!qTyPKHmTejuJs?b9-Yntc#nQ5toERe&-7awOZv` zOePCjzFw#HZeL@y>`RM1!Cmrzv?`+);ViT#4%uk!UgD0A5>SqgvDWT=vX#$Jn`df` z-vW6SjP-4@jXeOw5^FxoE%Fu$j0mek(cyd z?&luZubB0Wz&ZE28kLcsn=s{=9)7{6BQ_(s>bVM=^&V82XkwmsGO1)MhqRjK!2u1CQ(4}D4%L+m1w%0@UP z2pCzw5 zW88C)XTB9yc`vAKv{>H^WK0|rZSkd{gxB??yGu5Qqk*L)Nm~Rq_qR^@rvkUFMvLBbC)}6KQ%YpGsNF)HpX;(#lg1P0 z(m($a;=YDAcJ@y2jf$N$EL?RGSA?AZ3GPhad?gf_z^nJmH^jt7rs;NdH8MibNkwaXOh&>Xy zZ<}qJ8!dXG&!@A(4nzNXZL3z1Nr@~yCRZ{5ZFfn3OD>$cnqgzl`)ReS`zZIFEdZ&* z_*L`SDF!ou~Bvp1-q^N<@7E3<#u>)u? zgNwXb=A9i`1E*Ug&Y_Pu=)3cp`J;_Va*hHfx0FpwQ63LPAc z78Uho=eKC8JEHcTFsh`A#KyEZO=40#QTQMp5Hl~6T^d?}6_9~ZZqc*qG=2sk(*@x2 zVHz%ddeU?(_R&08OFSGFP=9^@F$u%4k8C(~tT@ym-dr($MZdJeeq&p&LvwSVq}`wGp_8eR86xCuzq0ganX@Mf*nJqg)pWW^S-aJE9ZJ1dsnNF+ znwp+9`6fOohND|{p zh1(W&>9WB~Y3tI{iT9HC(BQ(871pNrK1Prtmt*r1+8HI?8I|)&Kizu?$M3{uBJA&% zZ!Zr1P|OOZURfQi!zl^-xi9EerJHTV+4el0stV3nk1v2_!7y{UF|}|w<=HMc-x#GL z<7Y4CVIEYaQ}FN{?L^x5LUeh@w2filfXq%wNx)PV5Gw|=my3B0gYRp7aD0@ORy`f} zJW~EZU67YNZHcl<4GD4D)W^Ne)oM20-W(dpeuYCsE#Yg>NOMs<#s*s`by*uZ@>Fue zOcFHx_Vz%$Z{!+4n?}un-3V=?+^_Vq`9+~7YzM!&SO7>4ko^d1@)7Wbrz zPLT=2>WOE=y|-KHXK&UVY8C7CEZ@hcHF-i?Vjx_o+i|H)3Fy$Kr@l?8iA44D%B^_3 z!7cI6?5*A4mbMi>pG=u;3!@GtrJ~C3fE=6VQd{^!jJw{)j4ilvt5%&evp^r(V*H_rLOss+t5;=Djntq%kN={ogZt6E7p2RN|Xktx~G*n zE#rF}l5Z`p2s(wI)V_@az$g{#g5Kh|w#`spYUxAy(~W-oVx!7(rS8??L z&IFTg0O7vOspeGi#!-Xdr)bYaRxU2CXEISqE*6x3(#ln%Uo_Z#q{|us|(4@3e%d6lgi_t;W;LF|{DT`JuempN}z_Nu?K# zOt5uC#jkY{SvRZ=tSeJFU>)0iNz32k!AHz}VeP!KS3B0 z7V}Odn{6Bx#xBm0%*M~Iyu&U4OO*AyAVa`NA6);=myxp!JBf_@q+LoUBKb`T*Ec2o zw>3AFyr9jnWx4M+EsvdC?VN`}$vFzKpB#06eQgy>p7cH9=`O$f6d9DRd1p>i+r?L@ zOciX5xO#;#41fGJ+@YlRRwOEgE&|rAI~E8B85z|K!>Kr<=L!<`QbyWIgQ$eE|sVD11Ed%gL)0$3q-ZqX^&vt-JPV$WMrDL+t9aqZL~Oc z%-BoUSy{?(K$}L_ce^Es)34Ap-Zcb%{E(c_%D=BFj+2s^8_(;>YVDHU{#lhejSJcR z-*_i0-;R9JjO+GeTaDc($`KIx&wU|xB%8A&gGnBn0geEPQ#9VCHtR*hqvVgPbt0Xt z{XnQ)JyPgP$lj!Cldz;GVH_cAE9|?{%*L!YCvkD z%0*HA;NU$c)pwHvx34+3skWs8UrU_b)4;D^qTwGJDN&0Lr4+nBS03t!O2Yeo7eCLV zfV2jdr#uKE@bm|5NJOCW6LF|yX4tl<54@sC_lutE*14qzC(RQwv19SB2U46_fF!g# zk-+T}L*ia-IQg00S3eIo9$jH`@4H7AW$~iBZ6Vd6 zb^q4yH@J>thEN11F2CIIfNVCsh+O{c!J1&i!yx?5$ZtV-zId-5ryN5K#wrqHSab*R z4W9*ztjxEHL~U2F>sT>Sw6HYUNnR|ijz zlMk#&S7%dn$n+Q1#%87h4DS#IS3$GFexOPqHZZNduo}-E8ISz|I-aF3 z1HLxv7pl1mV`SlGYdH-J=z~&{%RSHgGcp0IPn`3^MY_ZNd6Zwiz=;_ zavjNbJ%Nel(*QJ#Gb16ruAM2X{Pwu~ z`GopJqn&LzN+M<#;FH*#J<_iav<^SKc%mIING)i=@bsSJK(rtth)+74it}ZLWXmgz z#rmCSvz;j7)`e;i@Bw7E5Ge% zl;EtlejJCPwHVt^cA8T{tRP8xCI|fM^ybL$m7J{^DrR?#TPs5q+i>PMz^v_@W`)PI zQd8KS$SXg}q5G&Qhs&_8f{4vIaSrEdLbC%An-sKwX~vC2W~<=hdeP^;dALr_u*t`r zhAy$_NfNwzRAN)Pd#^vq#+L|Eilbvg-lXiMJqb@88mr*LLwBZ&1_aRdFsdo@w!@8b zU_?!cpBZ-O`2GIfDX%zYKvq}j1Qul29pSsthJ{MpE{PQ3C^giIvrT?YD}w#-n(}k{ z3IOj7);ei}bW2pKe1U!pHqu`NJ|7n#351l#4ctMxedK8I#9SPJcM@$|Qm`I^IivtU zPYz_#*Hk3u+V#VFncLLS(I8jpapQI$bDfNy5g*CgeVUm{gZv&I3RG{r-}SEo0Fx&! zq3C|=S)hmGa^xAtt|IV-a&J>0QGI z4O8TLL4|=d3y694 za1_LPdewKCk?usF%V+ zO~zV*=x+6RhW~>Bw+)cdK*9MNSADq=@HUj9%Mh_8bID@{tY%M@Q7_(qumh2_$RtY3 zKf=ZWev>MEABuZ5GdD>3{}Ih%<$v7mjlA1Z{?8JX z8!ggZ9B506X$jo=GxSg}^uqt;5i+!s-Nk6;bkDaYbm`Z@)X?Ig^U38O=|IQ+(MSVY zVs8r6nYBS$o#JZXSozKGZ!<3}KILu)LC}q>k&~fQJNC%u(_@3I0Oi|3mP-r-WJ<-r z_&q;tU-ElV0`B1$G`J675jEaFd-6U!{HAFK5t1D*Bufht2h{G{PX{EQE_I6$EvBS> z%)OEjCzvYek6LPE+y3+z;#3fYSx?)V=d%qRksBW`8OHf&VE09xZhEP1uFnV#-xa!v zw924y4#3{6z>*fY`lQZ&4{*~wEElj6g`GTYf`5C1@0$tH?53*X9|T^|7wc8NeB@=# za5YMD&Ssvcef0+=S#mp4vQcb4ZvKH zjXtM)`7bpOxk4{#I%V|$kgh)>ICzN6H^0*hZ~;{a0Dq0UZz`iGB_%an75x^uKeW&R z>4X#Nc@Q`21D7B9G*XlzMSV430<14!#oh~4zjHOD7Mu_eV}~G~g(#(q^N(wEgag?> zdLwyyDA*2yr6^$Mq@}&A(68=}WCM~{_X_j849FhEHV4PU9~yLg>x=yw!Xgd=N(%FJE8Y)!YJ<9|K+ti9Kcg(NmUv8mxKAwK!LdbGox3_ z^FK=$814V;(MvV*A7uoz_kXnRrD^+r!@N|>b|w5h3*bK*_>TwiALjw+p8ua|;C7ov zli)v2CqM|E2PnpKb-;!`GSbmKP)---1oi7t5Peq=0)zvXwr4`9;wtV%`X&BIPt%#_ z@l~~(a=?U>1tlt#UvXEwU^<_}?6fgSn6S=IKw2q(I*+Ma?^?`ZRIcL-hcTz87fe># zcD<{Xk^7wW;|_<+KfJ$y6(rgUHmiuU^<+u^bbdJjyht#{V0U$lx^aturR_xO|vn ztFWGtNjur%_1$~1?GO-5%H3I}{kG*2==u{!Xan!pNO%0Io)HDjl|abvya8EE zW=B$UmEBYbhGNko6X`!90skQo^N19;S#$sSN=VD(M5T+f5(-kTJQ)`#1)86;h&XiQ zcq}_OKHgHUH6pEW7Ek=Aqkk9J$ERk8l$C$#$x+c?k&M^7IW#+gYJFDYFob#ui;Hw~ zgV{f0fOlNTyimz`4*#F<(%)Yt;M#TkV=)Wr8nqo^%PnX0iX;yfW$%OGvM8 z?vtw*<`g!AHMb~tMp*0qD{G-AdF&WeQtH=@(s6RTf`b_V)DjPZG5P1uFRN4lS2QLr zzQW)T#9(F@=S|utGU+7HjTImZpb~0;ggjbKbUmbn` z>epETn!xG8`lno$68Da%tCB@;3VGREfV(Jsp4>o^{eFFY!(-ZdL$}&D^$e7dbacLd z|2{I=zCnIwNwGHaN0^QU3Jc$LSW7+fJ`K5~Tk+OAPCys6+v& zwESpxwmXSmQ43MtIYn2y(@M!`*_&b%?y))ibG7v`rTNIGC!nz5nQoIW^bW*xm^XRF z5>%;n4rcgXo8MC}w&9mAR13w%#?G4UisvRZ95)|Ydc504j}H(hKgDqBYn8CM#qv3f8g#~U(;U)P zo_mb;9Rr$*`Ofbj<*qY&O+HUb?I8u)rD=fDGJ}=mWld54XCu%`Aq!mB;P5|{>!5m= z`Gw_{=wjO&33##Flz`nL)NO7rN%k6JX!1Fw_ij>0rPFMRhkBk8`Ft7XK&ub0GDx$s zNfUIAogguUfTJ5R)H7akB?h(L=DeLg>pN}U)HfHK;gxIBvPHV`BG0zLC}Xx-{VdU= zi&9LN2AY4_RnIaN>s3X8Q#%ssIqi&T&g(+FEpz4?5L>Ir7jWlObw#(5XupGTZrG-DX*jy zv&HPqohssX3(xoMEr#Lp%9OrVZ>Eh>2M2V@gO`h{(c*EC-y4K7O;#7^lnldbt5{9p z;^*xw4+GOhl6Z%6>;@zr3cA$E&w5=zGXh_G8sfR*-w{*wJlf#Y2ZhK5Y^2;qG4G?9 zDAGNO!c@f zY27S01zE_XYo)LFm7g9~;k9|Pyb#$&jm?@-wN>iFv+#>8<}b+(8Mxn6oeAm-cQ zRsb_d1=oS&4a*!x21aEV8;1oX*6ff!&W~0`fUxVx8i`$r-A#Tpbj~V%K z79HHf9kRyW@6*%^&F3%u_7`IsR0dXTazdTw%E+kEW#Gm(z$Xiz+6If`eA+{`a31{m zv3EXROP=&C*-QdI1i{V(SW(JGx`RHA6+cqhlW+>Iu%m;1(Ah+Cr)U9)UO;g+_|SB2DI z9Yi8kKF?{W-W3=eVUN})e)PQEDZ!&Kr{sI`K)`D%Q8%(ZCeOn3YM;7{Hzh(-xlW`7 zy4iWv97ad5cU7eZxL!E|c5{t}jnqdjHo@4ZC)aOM$5hKUQaRUZX|)`3Xp&C%x49u0 zsqP>3)^Cv&9>Kdv!%Rg6Ujnu68$1YKF>P!S8F*aaG4qOz<5tB=* z%Mc|k0*Ajka|WY4@07Tf_K#tI6w|y3sgEAf))pM0l>x^MF=*r|wTfB7b=Hx#XL0XH zhBR(vBKzY)U%CXVey&2S*|=hdHY^oj`pvPalmgGKiguGVBc_6%Pn6d}Pfv4utB(iE z;yHS}#y*?M!e)!>hf56g!MO@insH%zLv3=hq123k&#pANwef?uMA9}ii9dIjKNd<= zRpD^{>O_3c&}*YIirtdyWaDTK&?V31I<>Q9LW$BGLfzSazM=+sgD3@JcE;HG^Sj^} zpiPHR|5C29TP(2EDTwEO1kNJ69LT#fg5oO~TI-8*1fU=?%)cC$G*1Z5y+O@4ZmC7( zQh*z-^H@*o8zvq|2|trbbvF724rl6IHkGI*dOl28Am~=F`+wV*9YMS=R)1V%~(`Q6&NulZ2i0` z=oWu{(~njc(j5)o-=qg+XXf3~1&Cklu;mw%`__(YoYnBoufBhPQ&89wAcZXKxjIy% zISh@vaXV}J1p*J$1<#s|4EeXF)H;RyV4eqoKtsGOQ(gz(%Q)=+uhtG~?cbAGbC zyIU5IF#qgb^vCzKo~$T{;nWz#dI5+t@5;aL`CWfuGxmuSKA$Fj@p})nP*=I8aC*2g zqp}CrJDpbe347m`9^vbAO8&t7=oKL4N&B&B=F^5!@JCJAH}xRO#>R~6WGwM1gjl3? zlXOW3++mCH4Qb1@8i9ciF9bE67gD_H&UU--z5wcSS3+M~J76XL_7(bJYxqKXd2_h$ zz2%_)e(*P={pr--P)tu_j}u~6Qf;mu_wl}K7pspPJ7v=2x%{y8vtExk&GkCkWIewF z6K=XVuW!-_H3c^NO(wTHqT3b|ufeS*Gw{1vXrveB%zSl2ZdcqbmVNf`53VL)oi$>2 zO~z|9TJNt?#l*Ejc_54GiHTjQN6~LJQXcD#SRBjB&MwM9TtC$BAUPBpvP3ufDHW*Z zcC%*6viWdP2j+szza)5n}1tNDA7!J@(cM?^d0$_Jz00#^94Q-&O0Q86#tEgPQ)e zbIEYKHTjLHD%|75F>kO;_|F^GY>lm9gSi|wzj1>QS4LwTunRInMT0(Fjo*YcfbJ&# z{a3F8Rmf8tnyD!DE8&I_UqSnz~Lhnr_dtIpYTK2nqc_p1H4`c-vZr{A!t*- zs(a11P}C*u5#FdLrH4gj$cv>fw_?`ZHDpV(FB(R&t)ug1T|bU5uc<9#_)_<|asz{S zQxU|9({3I<#VxhK5xXJ8ojz*0H4A0!)TwFrYVL((hgI#9mO1womLBZb;W@(5^NlA~uae+gxW2LSV5$~u2 zK0PU<$S&l2@r==BrT>9UqbSdWx5sSn9*MzD9CylToF3LFEIS!4_xxS~$ZutZqtl3c zk1t#ETJ#d6?%f;SZ}vF?XR?_;gh1Apt($FnKJoi@9SFdO$FQ|zv#8&L8jW|LFsWT| z&Num4(=xtcNFJcUrq%m2_QkTtPmlkS8F&(g$dx!er=u_th!&43%9caq0$zgkGDQoi z(qJu%sM|URIFM`KBMI|`3!f=c@h!egzsWa&S}jO1-2nV{&QP}DHbkJu!rTT=!_{G4 zD5#XU_pt1>QC9KL5=QzsP7 z1GQ6Uxil6RKLsOJwhSPnH7}zjbq5dJLA6wh zD&r8uSDhRgS!0mX9M>tx?zVV1j)9TG44xrkIH6qT(5h-FXk;fSk`S2Yr zbVNIz9ltc)pByli1zammI&D~cWK1}{7fIfOQjn4K+QdILl9k4!%&AmQZ=?28n!Wgm z@E<#hYcY;c-P<~~HU2QfH(nI{i{rxD+ z%AE$ftqIBfdt$SHv)&6J!xwTUo`dnne=LyPG#I7Eb}4;S1&)Yuu-nlKRMU!z^-qs= zY*-vXQDR|@LD6Ozliv_t?n{pc)Rm48vFv8RH;a3vUI5KY+pKiS=FSJZd*w=~Y?DRbihTI9lccH22qo?3Z31$!|#kwmUbKs$lS{pj`;W}CmLPXUpTE8je+ zRllr#HYYgbOBsH!#eDOI2kpaGuUBg=kJ9{$T8f(Ql$D{7AFg8?q@zgZz{^U7B~SNZ z^xTaRaLG(Bj4=ltP%Y?Ef4C9i|G65&a(Zu%;!ieq9mFU7jXn>1{(5mCXmtwz7kl3s z7G<)8yNd{d2q+*Rd66VpkerlNM4~7;IU*oA$03LkRH7hBvVbT#XBe0vNJdaH3>k); z2N;;S&8~aSQGD*d`|GYheBc?rZ@R0itE#KsdYhlC7EczpRWb&GZ>8WSe{_4B61R@P z2B!!EB-Th#+ppZJPay)jx5yR6t{e$EB7(}^5t7nJ+(eT`#s=111$>w1tcEEAzo)@a ztPSa{sF_a9f4<|z*)8hA%e7VSzf!S$b4DkRx4dq_&O3K55%>M6G*ao1KIYvsekn|$ z+C_7`gRe%p+;;rRB{dL2;w4juc@orqmZiN%NoK&*_3mAd-p7S^HoeU%cfx46tPXSE zpoBhjl%o2dAnV@-r^X$;81~uORCs^>%I<2vXk7p2e=?RLfUocA3)NKO?<*g%hj(_1 z(5SA;r|xiTZiv6X{`y6qv)-jU<7i|wB8W`ivW-{T?hQDL-vwMaSIgycL2^e)IQ5;7 zxoR7*x{FWM4A0GFZ)xjZ>k*2IZZ?_@Z-FMqn62l1T_{nLjbaZ?$k1iTrA!3GUR8S| zR-q|DOrAqJ9(qiy6NL^h1n=#Dc(hO>WKc@pnC2SL`e;Xoxmrf^@8Gs`Lnn1BX-vR> zB8a%N#FXdgImgPq6P}VQpW(cU!~=%&`uzLtq?vVAK=%}L6HO9XY}!H4{w{k);txS} zy`skf07-C9Sy?$X_mfP1I_sHClh*4#-O6Z*B{+vfySlG1DjfmE4RM36&B)c!ijMXa z?REeu8B-(L*VC?NSEq@1Me^OF-vi^xtA5e`9ep6DM+B@)tGnml`Ik3-tFSbpP%+IKe zv!^)kaQ@lzmp?zlo{3zYx$ylAGNcbiS%(Q4`6up*!*_l=d0`OAoDzD_Y4=J(FCXNF zeYVApQ@dMfI4veSEdiH^g!7_$>L1>W1v-s-8|$%}Fnk8iuRVwbW3RRC5zkb;GRw9w zFbkQJR2#_JS>S&WW~S!)r1RzRNxIEqtg>haRs+j5svEKU_Dx@b{f-9RvB=BsZK7gw zU`S^q;@SVs36po>fg^I+SS@JEKTAT16~GW$^jE9&hBGbSqCa&10L%FOE_Zn5Avc1w zRm66Prtpfk!Nsxn0wD8qUgtvr$>CEc05UV3sP(8Xrokw9UvEEmS>JokXkw1RbYTz?2OzXuX&1>33cZKY*QcByTOSNujS$EjcPQTjk9XqjUH;)Ohq#O+W z2Lv~CXgH4#7E-pp_N$$3XJ@cmT69tEIJ~e#D1`<&$aautv*IbfBv8Wrft60#vrDbVM`^E`F6hE4c66*%{FzmQM$67ksxP&&{^P@0J?9PA8p(@ zU%6Jj>=i>{L6|G0l^fn#zr7|I88HdnnF7i7Ck^9g@WSv*r_+Bg2FEwuwrgrKyBQ?j zkdG@MMSa`nnBH3yD~a-S(jKn$aC$wHENP4K2p)VC$A|yE6)*FmU3f%Riih42ukHKB zr+E*u_>w}->K;XZ8vOdK5~@MRphCwfee@X-Gm;yw;)@=4^LtI?BOCdFv6VuM z=-+IY01C&956;|{Toqx9{Rb1aE4?>gU*={%0a*D*5w*-9K&-8#bq8c1W?^bL?PMHs zyKN6z|Ai`Iy?((K;LEHsK&tcoc0Co3jykaGbgVVywxicT?vdI%S4h1&2WhBLtFtLL z{Kvfes$SU~B3y<<2Pum51h~9-9%<;#ThK48*f{juacPIkWGWJ%zdD)}DbB=PR3`Aw z&{1HwWad`yQ+U0bWjkK&s0sK9dqN0aQuFItd-xkKYvpB{sUWux$9<8U;2vXhT>huCUBaw|hvB zf#p*=U%z;+_sx2UuumzoO%~t1X}c#ME6$TL3hU%^QjI+qnP`VFeII{D!LxPW;S4+J z%6~w-%n`RzL6V{`U16X4w=a`ZGvU&FdOmvWNgZ~Jy=nI=maG8GG6QFLjJT6^oO(0g zKI5bc$x4PXUSXvl^f1|{YkAr)XL`e8>`#IV^pu?X+2PBax`vvg+I;;M*~O(qU#H&IeQB=`Nm%nQfIF-r7u;7AQwZ;*OG7lP|wm z?yvXO11)r{$z#*MLs#k*_74YPMvOA!(_Eyia?ei2<#?5uv-7@*JLO+PmP<8a4)kY| zotoLDno+;Rp})Te^M#H@&td|j9B@?qH zDF@bKlh4i+XOHkDTsOT}rP6aar8{-O?la@-(e7rG-ph!&FZE6H zjf5G8Wo5dsnWV2fzb+-~wJ?gbu$W)c%8!+qf5{ql4!8Bqm&;l#*++ZyM5J=5AMu{U z-|1`Hg6pFUWt68g_+D^fE?YGN%v#nf*Z8lNnjfn=nx-#e~%<(UzfT~9eU-l#{{ z7ud2-elc176ViKqRbDFG3H(xwTz!R_gcnr&h0rjjf z50{}Vw%N!TR5#9p?f};z>;5h{$P+;M=&kqk^>q(%rC$3}K?s1Eh8Jgcz=3F(KG=y# zH#OKsg^JQT_0*f8Z8P~~kS5{MTDJW|`J19UokBhSfITr5dOIIBamdo0Ob=~oR=4AU z7;yKLJZ^ryF*K98pj#}=1FjTU^q5vgY>Hm?wc7M3ANEWroQu&fmujkvh7K}P;0&AN zb7$72%14=!aq=&5r0*N6mvbowxB@1Z^Gj@p+-E`&<)gNvd$7C_%m~Nd>afKMHm91t z`=!6-^Vf#`TYSIcF;HxT!o$AQ2>z`}e?RbDwnyjA5pVZjPWJ!X@|?)~pTCl8#m5g| zNOv>&#VZdkl2guS@k$Z>^T+>r>NmeIqI1NOch+0}+J*mp-N|44-$zMK=^8Q-O7z#F z|M1>f1v&M&l=6+Mzj&ntJ2U4BO&uM@{|^1{(R>bnmMS1?Go|>CApYlZXJt9{Awf@3 z_Wzmi_c=r`0b}el0*^X95c0*iXQ_oIJGRO{&gKcf0ec>gZksqOghj{A4V{bT+9pP0%=lW!Cl zNdfSO=}^Du@$HwsFJ8QW0B{g;vYi~)lZ_iKB6Rtcm%zWn(MwInf1JgSO~LjV8~ZM< zuakjdGZ*dx35kCiOy|v!3YSf6U*p#J;o;#u76_`KfSw|zgZoB0lt$qf7M;15*6*G= zjR{;sN2eWgsAcLWNEqU)$VW4H29*?@d9|pvDeAGhj>IEVF0l~b%cph|nv^Xzc4DGV2%)Z`3KeuGJJF5RVc|W`t7aSF3txmPO?k{z8_|D{i?o#SSivX|4Lqnuw;ktRPagx~Ra&oxc>E2``0wlW4HeCJXNuje?h zQRZ65zK1X6`)39(sti4^kpG3-pH+TTsSWWeq#m_dv9a(%4FehbZ=%E( zgu~c>rOo5K0&joU(tuaTa*;{r^YW5O8o9uG&svfdtNm&g+Qb<_OdR|I5!M-lx`ZE= zZGJUubsoQJ#sGFfF0C_Ax?k)dUA(fSv&){81B?+a7fpXT3#C+;PQi@LFXT`D6ohg^ zVeg!N@fjru$#e<{b|rrC&JhrAmZ#6t|6)96Daa`==iaO%J*_Byt{}Er{U{!EdN0T| zf{)HxsTcfWxlyO4c;)Nzf0pdOKm0qjf1J=iGWmDaep2&)74qjz z`tM%**--y$M*cM;Cpz(e_iF?r;%(wd7u}aWWx;2{Wf=zmF0ioqvc5mK=K{+kW&cet@`Lqqed4jg|6N+bNJP?DFbMIojudV7s@4mMO!GCNrYch_g~0 zJm+7D;`ZhXCp?!;2e`hcKmTi3oonRM0vTZ&@bgnmzEXnz1m0J1YwK7(>w{`ueajM> zPVcqtlpM+O0vLbdQF9dHidF7??O4r?UU{;B0`FrhUClW=l4Qp%E(mDfh~F);2N1an z@^Bp{nEumWL;wO>ez(pBfb^x-{tOe2hOc%5t{jUXmCT(>wFf|@sj=mPTaMx@7Ard)Z(ZCc(DaLaXTdF9MtNON&h3 zz8KnXFxISp+2C5QT1XCbDWj@DIzVl{^kS3T#>7jd`&vM;n2xb{Ilo3ESLxbxXNyB$ zWG)*)sFPVwTeilXpREhC+@pth0q2Pmc6TsccE0`ByIlqi2RDZ3e4!?Y>XFxGXzLrZ zl1rb{;e*&YD@`GK-;Fa&Bq{s*9PNl$t96T%Q+oBR;ptgo(fGDt{yLgHpP7jZuw}On zl?s3G-ilBCk!(uv=i`@!rPzHQ2&h_L43ZGlPlm2l74{z`T_+p1%*lhZ!78tkkd(?C zLIKaqR2xSMkJ?AUzB(bhZ2LcdkBSeuJNw&D(n(Fl3s}BiId3&U62$2F6fy5P=|^~F zfQ>5n@_3T9S^kW2Q}AW}_FN@uk($Aq=gF>U-lZv^lW*RyyTt<08y5Ll8=p0}pQGgC z4B@QddwR4AgRU_gNCp5ox4tZQE4A;eLywPcNNl?$BMVi}o_h8-zqZSqPt?WS*2V(E z+{V4N5!D&fOIG=+B6Rr)-UtD4RDR7Bq*eErm)fmj&{DGzBzwdnb-0*5^(iZvm|H9N zu2D{&iye zE*ING^zA67MSo-RTuiIZsy_t0~_Ax=GzcZQH31u4i;Qf zbA3$X(p6AWP|~j|8Ne%o{6pNiY1aZN&MW+`=pchXnNrKxd-q~N(bF&Q?GI_Q%o*Kg z-zWs0*^^B*K-VCT`4Vv@+XyloCP>rg%l1|WUyl^*K7?e!wtjBjzVR%zzf+H-=yuH; z2b$d?J4q3Ghy9BX?9suDgm_0uj|`oU!zMqxIo5#Qwi@*z4bwU`TC-ZN|FTZv#2!Ib z%LZ+Ch}%ycKc!jKKc@=#bgWOlASFeLA4|GipoP)VAPRZQKa(!$9qc`F{Nlcn3|)y| z(aKA4pMGVJ^hRq&vq@ssD|{E1mz7)<3|bquIm~faw=4O*u;=6F$^slBWA6+OK?~|S zf?8?cA#r}_AhCF*)kv!90mi6_@WI1&?fOgkHT9b-UpDutjoewh)-gzK9Pg0nO|dC| zidzQZrmyN)OnMJOeUIIxFnYW-6@1GX38EYXjrz2Wx?qU)Vqoo zK<`OUmpLr@+q&;0HgMGyvsxjVo0C_$T0UwS9JrS-&br6hIqHZzMhBs5(bDlOQ%{p` z1Uj3iIJt`Lt+s~ITpBPE4Gi9_E%9;Idg|tGztX&4fIJ%9XjAjPE_5}wZei7JjB(<4 z!Yydq$J59r8eBT_Ujup)t;?wqQHpRTN}IbP0s;Av1EQL{pt?AJtpK-F(19?q;=Xc$ zH>~x>m233NW<8ci)uG6KCRI3Eq%^D7jtLV(2OFG-NtUH)xwOO!Q)(CF zi(QfpKm1A|>-|{AOKk?({E>eV|I~NKo_u!*^0zUMg(RVbnSoK;E}n42LpuO>t*)*^ zPe_8+2N{<+K7m7{D4pSOpQCj95x1ovK+WejeU*(P z$xEZZ-xVzW#y~~=jiz;c5q(vex!J7@j;^pzdBHc4u{cymSu^iyD@$(*wpA@i-?l0< zbB5v1pY0{*J2@8EeHuD0pEClgy$;)5qJw3_nXyJ!rbRIWUS01rT^!)yxu(F>Px)dO ze2cSh9jQ)P8DmDWt7DCQ#E-VNjJ1INf&K>V;`oH!vOz^Vroy(9_PaPciqKkm^ z?~)HD0Xe`B#pe#d`3PVE6Zx`7d=^q*LPy_fCaB8C9CI8Gati9NtO03k0XJ@LZ8C{236b&%E7xf_*)<`g?8v!twhg<#}o2j`G zV&0DQS~jQr8l`4x;Z2BjA%p7>OUd}-yStNT$N~WlP^?%J((ZXi3Hp2m&RumOjdB?OtQ z*T>v1Ex-WlC+k+-_x7sjuXoV{_dDPGmcizGKp~yDlw=!Tb(!~>UAdbG?}@K2k#7x7=Css zsT+6!q{Jp_4f`q$xpUw`9DSI%+q1dBN)|MfE&yBr>sYFAXT@;wh-FSddbo_lc7#)pbVcTH zut^W%P6yI!!|u*XwEId?YoM6a$f-Kiq9*7G4=B1%=S{Iuy|Dq0*@tb3q$w-WDBmm;dHdT!P83;Yg^`YekPav@(qPe7HkV(R9Av zCugw2d0gy3IepHLkm>0|O+H^#W-PpiZ(kQ-G68DW1G`sqrN#E*yhcYSwDhe{g&e&? zcmdcu5bNeUNUo5nfd^{RH-s-L9t}KNb=-#p1$_fSOMk0mU%+tx>4N0cb@4O6CMMbaRUZ@Fp1*)^enSbMN+)(APO#)v#k?j zp6u~q3T5tv4heM0)8etY^k<8e@Vhq>1I@3@raQaxc<6FrH$5Dq@5s06R|T5U-{by65Rn`RKBJlGwFXJET)uH7`znxqLIHjSMo zP%o%GyayLxSqA)g!gaPKhhIoP*_NRp{e&8dKbzylTYhjd=`fq?Znk?BzZXhk^Setm9?~Z1 zv=^9g((68ICsFT^kV8vIsAaG`iFpEV|3Lgeq35Rbx7Dv34VqMLKzZ*5ef(Z$|F5tq zHBvdA!)+?Y%a1}E0Jz|N_Qjd2^kh;Sa+RR7DW`p=TUB!Hp>_;t>Mvv-rq?q*F@S2g z9W?|vugN@&u|6?*)>U&cZMIVbbgIb0DaktA@jBV&s4qoTZr$F<1%6);2L%F5L6D!{ z8{Z}V+KpQ;OCb9H9m4lKTODUFg?#wTM*j;k8L<*?*nu6AWRva%$`l-E(uONmi#-Wj zo^31}<2(b z{bK~(=7=HXj=s-UvSB#m3t?L>~5Pq@ZzGm;Z%cf;h?Qnx(X$D?Np?B z`!dY|!se_8Wm3NAdDc-gvAITOapNI^E_6fWI?RIo-(@=0^5Zd`&w zCS3JRFQay>3_t)3=~ofCz;T2iQVB9P-q=1555f)x^<|OT7$4+tBM9h(87Jt;5@mg{ zy_>ppDTg~*a9Th_EHdmKRlPK{ycv~p_|UKl@09rYiFTC3;WTEvQub3XZ6uvWt5ZLWD9d}H)E;#82aT>*)=A0lieh)^ zrap=?P%(P!yh$^$`6tc$ABFV1pK9(&+0ruZk(H!iJtKxvB%xB!o5tr-p!fOnC5ui; z=9h>uvju09@%aQhMw#vK6e18C!@9hV_;LNQ2;U#(?D-rlQRR9iB9ToQY+}pV6I_&f1q5JeuCjO|HXy_Ko9vn9P}EwxQ-`1Ey3y zt2xH!!F3DW+3h?DuPPEh6 zJ2T|CiE)Omm$~)dNtAT6?LTy$yNkRo1ukqx94;56$Yl189v>f1HBqRMtV7o^El0^& z$&QvfmG-k~(`BNEpA}>-VRvwt{*md6Xe6#49W-R*?d^Rb+(v6~<0{puFXg)kCM;0i zCWBe&FSH<)S)45Va)<6lZb9D5Mw1dd^0gw&=Ms)VqmohdAc$Y*UMXP@Qn2DpX^3>g zFqx%A`w8)dfSHMjk%*a*_S8>!}X3}BO2&L-5jqS5jf-+56`bS^^l$f z_K3l-sMMz6G~{NOn}6Njm{q5r;gQd*EIp2FD$XQ~$UMc{)#H!okpw^zeuLh7=gU+9 za(6KO%7g)w0dq5Ry4e!Wge&ad-7kLx7R`+EKy@v_R>Q+wwe`Qix(wC6?@^)E0<>io={xuW+^#byBJ zxBv=S(u1=`zrq&P0kqP@pT7cWC4;KjoD*E{)LuW`~8-VXj@(ADd6l7zO)UUq2 ze$Bo2xl|^o-dxe35&Qik-_K{FokY2kklQcCu(E_Vr^Mn!Fkc3Ye1uyElC4f3oR#pp z;0+@onZreOPefwes3^TGkUPM^Ut^AxtspAt69;y^xsnl)Jpd%Sz z)YnHY=jYYJQVXdvHCw-8CnFz}wCnRKK{&h7t*iv8?&jkjPM58Km-8ED}UjQL7yk4_IP z;@r+|^S+%Jf%5Zunm_UlbZIl_J0jB~xBHf76Ln&q2%?I2it6flIdc!rUX_h=-c;Ak zUU;OTrK|nCvE9{$SJe++4-?|v95^`URH@Df>zfFKd6 z)tQE=mqnDKTB_HKefA}y3kAJLkKOkkiH&s#5WI-yEW#!$K8>4|Z1XvOQ>Xa{Cr_E%R{Gs{GQ;3P@`@ne zh&J8bilz=qcZjn?(U^NUzs~3j8p_A13~$JQL;*o+4ja=x-ZB^t zn@W8quvvU+fU_#hM7Tb2wN;@H%ZHemh}o%bF7BxkzygtJ#qmr^o3BkP(}he2CrhAvvcM;83$As>5h$AfCTva<^O2ho`On z#t&BY!~@Hr&s`l>jXZNf)`RWL>p2Hb$8!j2k{P4Uus#SxihnqK^tJ&p17%B~YRnVK zgZmE)2$h1GQ{;BlXJ&)m8X(@Cif&US&qhY@x4pb(cc17yA)(1S{2qDS>`l~LPH)@d z@g(A|lxmPluKp6Wx@2GYHKA~a^(d;!A;?;2TG@QORox^;(XMTKR1WDO^-A0 zXJv*xDeBk7+4sORWEjE1pjK@?(OSu65hwZSCyM1Wp8Iz0A07HWw{5nOu@6_A5+gZh zj9esPrc=6DpRi9ZpDRxe-Rm({ByVom-SfTkif3B270ZLpfK;0b+tu7BuTZKPiq8!U zwSK!)@ITh(`?S?rBgS=kNNw%Ty*|>kly}eS@H)vOq2iVY4}{KsozL0=UP@trt|#U`lmJ`(fP|CR`bb-`!Bq) z&8;*<-PR!@ilP*=NF3Q*P^|ieR<09g2&IeRSHXPmX|_B}kY&?AgXz_BSMRS(_Ct~qY^XXEXMVVwPud!4x4s8%5lCMJlwy5&ymR>AHKciq!$H3uW{EO{GUIMEcXGwc zi5?h1wuE)#H8ln=Ea#smrr5x*xJ0hi5~y9Tq!Yg?=93_x`}oBNx*NX~aIbQzh<3JD zfq?77VA_XE(106Aj@+)ocjK)5E{4>U?DnW<0(A@&<6@z^4bLY0UqzoDjT{CKMfz0G z?RCcn&*yIth$w;oD`oAo0lK{i7KrI*2kWcyVNvsCr!yO!2|2B>&*XyfP$67xDF7W# z>m#L8eb1!_ewjZZ2T{$=seEbZ2?N#4-iG@|`=9KnL+3N|_r?*YHN`nePQvPSN?ne! zS)}u$oHfn3ClA}I>5R&)p2LOB@biy@{UG#?QZ7qh)8zX@MISzWamsi;lcU2!<$mhR zDYVlJhacu3}6oy z=4Ci@{hvp_Qo6TkEuI#tqj+6XhcD-91<~W`qR8vN90*H9cQOHi7Wdr4OttCE`L8e0 zoaTBrbO+qWpnnv+!GMdjwu+b_2G>|1#rd5)C7@`feN73cB08X+cHz{%0~6yBFuh0b zLoZpuCLaN?`t>Xa;gAICC&$v!2$6+MC~ZIqD+1Td5$~h=d4gxDNTQw z-4Eie92f1P(o|9g?J^(?Xj8fn^y1qC6*AEV0k7&ek=uE{$b2ZjZ2zrwS-O z>R3+mcP*r(B<*oew9RNcgjAB9_Ur4!B;cQKx;zpAU z9X=UxFg>HkszNkm1JQ2RPRZprzjFL+nHSokc;yluuSM?`=RO%9P~q6fFdzs(p;aaW zTbyHsn)Xv(N{ivs_k6NU+_`Q2^N|OPBu>uHQBSiy`>~m3Ti!KMy6)2Uv;lmX#v%Ts z6AgVWD4dH`8XP%ovOq7l9}TgVx%L4WVZWZ?MN0ODwij7nvQ&3N;Z4n_H+8BIUQS-Q z-nFarK7k_!R+a3&`rskblDsRUhCrRJg}zD)I4ysf3 zom8pL%0%4@w{_*|#v@EFD3d5*v{iZ|UFPmZ*T2v-HH`UO&Ofb;*L-pRAV8K3R(lj1 z&o6Agmk3JoUfO1cT2oaENp$)3^Gns)@?_$|^j^J&7Z-?j9`QN^5<0zSvzWkllTy7O*>L3|oqGbyXGLeOveh6v zJcRw-EK&B&?c-x_2)IpIzTz%+iUWe41l*^jft72SrY#|~EJR(FNDLOUcK!sTpo?XS zDRa@qz$*8tr($8Xx%rl$sA4D18M5lI=CR-p&~RC65=E1SnG3Y5TiYqdy&DWsZn6M$ zaqEa~x!8U4J^72a5z}FS4+Buk!9oD%8qg{$O_4HRZR{UN*3y6S<3V2oPcY|YyylVJ zT!98{M@Ln2@13O#dYgHlMTb01S}DEQ*tF1$hU(z6kFD}K1DDS|tw;M@B45Ptc(5n#rk6yH2QKG6E17DvdDxU3a{}_RNko0;9Qf{% zXcFYOUUKp(-VrRfQo#;akrH#4Muks@MX{2PiefWgG`_+Hy(J~@Z=BNcwJIWnkeoC5 zEsm5x|4qok4mdjlx?B7GDFxvt9+Qm#HkiqMncpaJB5%ZJt!e=d5H|Xn15X$H2(KVd zU}i)`ZqrX==n+c5rq`pX~orv#h8z!BtqisT?L z{~a8OfeeGA&I*dwjYH`LV@~#(;f*vCE|!YV5gCIJuktT^MbwbK7xtwKAHu`^AfAwy8(g--@aA#7Zf7l@Ik7ew%6&918y3IDM`=)6IY1ZJ-Wkh*jF7V?dsVOab1h zD|J4V$6*6_^;QM2{HYs&{}N`AXO3iWn;71ZaBz(N!lNd&Srdq4@2u|5j5U0xDV1*u zZV6Q1&+kvY3NjkNOfPDH4mfnR1I{Tw>U&kRgtSriD!g zYVptkRe)u3DTxpuB3w7npzz9DY7j9$91}2qQ8l$X%BWp+e+j0zQ3+b@A6htwRPcJE z`F(KfsH~KH=%@YFdRgpdxJuAb%ldCd-n*JE3m?w&ajI}`4fpu)<$~I`v%@#n+8!$H zqwH*+VQ}@H*^p%pZ`63qz#!6Ie%>K;V)wnV0VN}-Je|O-pCpSK1<2M+nnMC3SVb7Q-~+L%5NZBmU#um>uSo@`yq$&hZX`PgazdKuKO`&{x81zFIA) zIzm9asx-{Sd>n(=C{KZ9j`a&@YEFbeAV+JEi?QFd^m$JTy72{j@bmos3XC3NC45{4 zUuQA?ZGsNtPuXW? zoe;XdogqRD+i30y8nvy-3l&QGv8YrBSUy%V2a^5Wcs1m7I;hSdXnb0X0u>8jJAw}G zn|FVQ9PU4nBnaFb8_E2PwVL+9S;C(5hnw2+`5Ytv=({O7ACn8XYe7@ zg?@Sz4ADJL8a*VmEkSMMeE(C0&5^dyW``n&ZxKX5V$;oy@P}YwkpPs!L`yZOrA*$O zfeZU~I$r@znHyGauNGP+UZU8#lMTKW77n9vmwAoentdF_?v}ywxjU`_>ZAF(-OI>+ z_vyEQz|+*Q7&2UTVa;VIEhylGH6_V)M0|Tp%)k0ue6kR~z-u@Fj<6jqi^2pg8fQ5f zyV8ExF%cAC6slL=Cor+@6$Y0OsA;r*411u$@DXP&6cZufk(O%|aGSxWb}pvi{HEkH z-3~in%xLbk<8YLk3~fFWdjUJBy1Jd7+bdf5fAEe;j@?K9ch@Xxy~hZzVBwwzX-HhKl{8s7`yITt#mkMt)^nCtWQ1{J?e(*R5IAuP6=piY)hz|59aV@ zk=p5%kMDUO@xwSg^+8c^bQQTb+M3qV0sTk~!HcFE`4$LmD_YGhxz+lfRCdCmHR;MF z>HXdp@h%leBUzSK+nTk@6V5vcZ~#j=taiHM-Luh1$n;TCgey+eF6c=~rb~KSFCcOv z(}(#ir&)C(#i9F~Dx%|*dP%9Ki;r2YGtRV+$eZwYJb*dhb3d4iwaWQ1b1fGR3a!v1 z!rty>4*Aeg@ru!&PpkK7Y#lim)&nJ zb3h1oaS|?;Vo#?UU0h(;-5V~ZMU(XyP_CyJv%(C()M%i1MgZi|_DOR&fRK@L+KoNR zG{L6)ZhlD~v6N5E*|1WB7s4A2fAuZ1J>$fRd`vx}cB9G&kb z1HIg8uC1nZEmy4kDZ*q~PGCFRp17^DfTEtS{nC#OzAJGoI`k+odVYyyDA>zsmdaw&REypfLMvYvG6BWfkpA}J0p0KmH zbd6rGS9AaRMj^nW|3h?m0$?#e!MS92zmlx@wzCgC+C&BfG5LI4tJD#2vvnPcbJ^f7 zsJ+xJi_6m0oZ3KyojZxo4aZl8OAzdIb{g7@=ku#R_~^LI`=#?pt@I+`lE?$&x+hLVeZKz$2MI#jmb3Dk@zm`~0Y@a#_58L0F=6 zb!)_`#crF*W!ML^N>@K}hHOmsq4t5yl%_nUt;M!xHQ7355V~%Nl;3>KUBJ_IO-jt! zApMobfT7!X;dtk2U>KbRtLj@vJByZ?TsGCh$g-xX1_gSDKeaUXQ3nfZpYd6X6qbTy z_S1TwZpD@Kh)X7VcdK1bQT(wrXD0?Mbj1ktt6j}|%1e6Zl;6r7F-}5)7?M2>n$crI z4;i7H@NPk);rHT=mMiUutzZ=X5erIbuo=W(L zp0sWzOj1OuLS#&tG^CE+3M$L)Vq(}zzVjeOs%Xko27S;IP_y2RwKYLRJ^bOAEH?#2 z7GTx42~86l8|pK7)J@=oNJQn4Y1{aesn=`Ont6U&ZH~+5hP$RuxK)ffZuc(p>KWj? z;efm_P%O$Gq+981O7B;HtgYjudOn^k=r7J#+QB!BB+ISQ`7{Y|+{6pXZnj#Q?)?c9 z^aEU75@S!>h=rm|3V6H|9NxzOICR<+niw=fe6!!;;s{ts@%4FcyI%c+o9I1@cgAod zgt6!hUcF*mD0XS9vGCCHLH0Fd{i?&1kkXPlDo^5LbJ7Tify*7|HVTI?^Y?28-8kf% zEXd#26t8@ZWUd8J|D_3wDZlgbiHc%%O=)#Ov7VgRN!$^$A-!$YZjAj?l)ks%WX(!! ztmZd1NvC^AGHaJtgP8Gk#vZAo_rZK5P?5MU@ooQy5PG~LKeR7%ZrOm|r@qZmDZmjG zkYIagQ#rXn{nc}_JZP^a~_{yq(K zKhs=R)sqVFS3w{o3|6u4(VU4@tDWRQEi&jar?LXZlZLN8d{!rTL4IXzzAcD}2BVvw z8_ut5P*WOVb2<>MGM--Ui)lf(R;0CS0O(N*vYeL#0OY=XUYh_vK`||HrAzRU2FqYgT7$#{I{|=M&utBr<;%g|?=naHLll`RicccF z7V2tyz-w|>N61*AV_~n|Pmm|quo$m?#N^J1FQ$C`qvVt3*N@TcA^h~P^X`i*K?8MA zp2~GBrrl3#!0jx!4mSC&*+lJO{9BXB{e~B0{+I_885wq!8x3a=4RTgEXq1=~n!{Xe zY?etk?dhRzYjqv)=7AKlyQsieaexk^8=&%doD|5P_xykTr1VK(mDa+D(hTrtCDL31 znY0ljpCWCDR`1{lmHfe2ZlOc-YpOh>_c`HKJKha7)Z6!^HN0j&WgYsc&M3w@He($_DyJQH9{xZ$Db^_u3=-aR|`etm)O@c@et$Hr6;)9V^} zrLh9u;OH(h(y(30)zSwBnty>zPq66yVUht|qDZM>n`)zKXN&zdHJ`DKII)?{ua|=a zMCrhpWDZ6G5YYArOo+nmM1i@el>H~}tts`aP3zabGm-t1Yyz+^yVM<(TSzwR1@nlV zYq>yVW!I$f!?}Y39B|!iZY`Q|LUmh)b$5P;NPQRt?E>AKm}i91ffOm5<3iK6{if-m zBE%s4w&^!9vysh_aZ5nbog7Zqv7MfUgvn^b0*2dt+gkANYsnwDXW2H)4 z>5YGv4;w{;W5p#JGs8?NR>uQOfP;=>CLyR4DP7ycvtE_-3u5rp(J=|VQOsYQExZ>a zIlaO9jxp-tnt)yF6Q`zKQ`nIy!o+plWiZf1mr9UcdZiFioZW5;j!E8#>djoS`7S%s z*80_<&DspBANtkgVu{ZY*OX4REEfSCu9>|HfpELMENSC2uCL7sq#LX*JxppiTf_5F z`i7Hlg`ryqPXTYDG*rvx{yY{0KbSr@(w?r|1Q~D7I7xF`Gs6{~}KL9~$(y9obn$73UN`V;uO9(i%vC%}S8)RU7dZlf1 zOxwuNNHofEVDmN~fYNr|Ix?EP+mU$rOqIvBD-BA6r5ii?bZ>Sf%I;|&VjXl`5EpoK zSy`&lI{2=Qc|d?Xx}?_N=Y1I&eUCOft2g;V2vV?Lvsy95`3gU5Ji`;hvSI?do>oKg zWNN3pV!2B+*v)9Fx!(i`{5JV@BabV?T5A*O&9BFAx#6Kl3w+9_oA~lg?BH4)jKhu{ zyog$l?Y^u*oAoO5@eCTD?NCc(x1uAKp9n6-1>Ls+aR^bVMhpKwlkn ze@H=AWFpo@`p2mA4`A%6Zw$E0Sgxq(Tv@e@XZCxdHA{ov0vj3?z_MW+7{V1}hAtzZ ziWcj6ZZv7sk4P@*C%I?9V6yb?4Sp&YO~UK7ViXv?uby=GTp$~FXdQq#=|JB|?>(j0 z!cI>czr`l0PVmq4;8v0#5DN|3^Z#t2zbxZFVWn`tLwLP=nDHq35BazoIR|JwecE@4 zw$o-587KWg*0AwC6oSsy7y!F3EQejYAZhEe?>KPVbu7){v-=5kAt95Oz;Y=OS8!BQ zqWuvOh0N%dzf^7T5Ajz++*yJaud~#P5`Jx@8H^r|7W=z4Wd5c-upv#YWi@@FmAV-b zNHFcPTDwy$lxi4exWg<^$sa_GhHQU4_2akPWS-Y*+v*fj3-I&%1X`i}wmcs_x)%r7ITzQ%eUImQESl9U z*;2mU8)!R7GEy3l7{`n9!nLib&_FM_THU2dV3&b<1-0q5*Aa6po2{LqRk;gT0Uywa zv>K<52GW@mDep-tyT&E#cDMiFz(FB(;slwhlaSDK6?Y+D8-gAEO!31y{^s`waa?D{ z%e;}vq^-UOHrsu(%ueMK8I2EI%lEqplh1`qm*tj_-LJ;9M{h#U)@u%J25$WJL&PSR z8gv4h{W|1I1dBf>)(h$8z9R+G7$sPY1_beJl45Yv5V9rI&@@*!zRpPlN2wDd#?GQ)V9! z71i!B35SCd7Q-cWop9M>>;1I@80iZSTJ9vNp{oVkTPkgeJ~kEK*<1f3W{HzHg#73U zQiRmBYxGhOov5B|<#O7_PDzhw_S&m0sd8Pl2B_i>mV&uA9h|iopYGT0DF-93T9?=E zZ*g~JL*MfS{U7$eGOVg~ZC4PG5KtOXLAtwJq#LCh>6Y$hf^;_%n6z|vr_v$ak`fc7 zn={;}8v1oa!{I0h*&Hrv^`lb`& zHh@pPvmVw|qs34gDREDTVPeAI=-5~JzYbM&zVWT%A1%Ugg z^o5?UWcwkwmK4V$BkoQgr72+UQ>ERTLMWYNUOl@Ndj{Kr=ICLLmFo7Q568% z`uzpw0d4=2qZ7XrZfwDPJBIrOqCVw_p~k9|q%WnUq_68mkdaaO($1Gc zcpjMGfG*}EXVmVD1o`uwcK$rrK}P18fAnAVs8}C#i}WCoWr?jJysdE=jKjsNGk-~y z|GDrf!7<^W#lmoOsC3%vyb{%$V%IW9w_=W&OsxoKPLhZZeh747BBsl_L>oGF_ix6K zu|D~=8iCIAxyoKSLwt!63(N7emUYEx-(LRQ%rt&`+{;ylbH7i6;#!O12ZHsYQ||$k zWA9aNyb;y*_m7jSvfmmXpyu_cWK5JXE-Hz0wwz+RR1?F40$$6lF?3gVvehmuRlm`* zXu$*ecgh~_hfg_j757s$aZY8^%~~3uSXE`ng$`-{Y50VyZX)wh z?&vUj9YDY_uE3!T^L9lQ9=xPTgvJLw%^BYxncDMCdzhswfSW}{0r@M1I+6O!^C>Kx_9QUSZKt;1|INTc1%h8$N*zhs} zr4(Id!BuDT1?}q4I{N^n%EMmv1-eLoP@d;Szl@Hs_;jq;IwxR__dXxbQO8uZ3!CTw zQe2Go2g}QSzZF3su8t?!Z;^eFJduYsA#*C~UeiQ(5$tl5yXta(eIpC7Bp{Gb2h?iG z%FXqyUTyU>Wje?HoAGyYv`9;QcT+0?jjyR&XWC+K4}5B&1ZWHTvY+Svqm@S9-beH| zVQtZ+x1Pmxt(D63+yq_PCgae%KtTtf{abfR(olvL_io+uo(NBDPn!ksDs&_acffqk zAuGrDehywR4L-Vz(M9x)90pDMa}KDFMC`IFPwvO^>c>NcY&2+X?D zK&?85n$9=51nj(`|A7iZne6RdW~4i+qpssGCeMUKUe6Wb&Nq`hFruGr zDZ#vpaLZml;=Fc_aM1|VKb>Prb?YuxDlVH5-2t_7yOxeDrBAg)Dn;<<@rbxy#nGIE zrj`)~qx|*F(usoUcY8PfGYyO|uoqYWwsWPH>yIy&Qg;zhw}=^v-LgTWmE7)#0Ki(t zGirfW>#dZ`fl#Nk8Y!M8Hyh~q1iS(uWvZ*V|E;EdngHrLnq^K4dE^rW=yusyi=h$% zx4iBQ! zI-<@^X}>KJK{_3})TpS|)l%2Sipo0veS!oEUhM$;$}U}KB0jL9WY=Awx;IT7=SO-@ zx!|Y~4-OW)l{wpe&L!gKo%!)^EC4|w23RA$AwXDm*mZp#sdc7+aSg4dRJZP6vgHKd zkLCccNF)W=ob>JHI(y8*2g@5%^Nsb1InQuFSIsf(3;%m3{`aghjDK645Wt2l?o`(XDxFZ;!ucEc_Lk&&PR&rR;XRroB6gLor?^UE=+wH)dzg>H(4b zMOJBF!0(Y!=wfJezy4ZtZ6x@Q0~^ru zDPhac=7QsX^@HNekr9!4$?E_lpfdZJibIi_6t1JYa;Mji?6B7F(rZbNjl@k5V8z7| zAx_z~BRp`=;82h=1@2&RT$Qj0kdcuyKO=uWMuQ}f9s{173B;cjgNXEv%hH*^(n3mO zee(h^z_ZzHi6(v2!`N|l$kS-aq{Su8WxyNeF*3RPogexDQ2BuQy|ijf(&*&PJLF4w z7#KvsN3hSlAHfkl`rk`IW*Gkt19q7u;vo5`NFHt_;y5X9ld<*a{xE{O?;kdLQml}v zJ#7|U%7q}pK%C|%C1bd@^@Ps9<7G=S?I4(EO4{{kaCf$)Vk6mTR0MZ$(Me@%Ym0H1 z?=02jCX6Fg_y;hOFhxm4YeJlK(YX_KaJk*DF@?DN#;&o(X0<2Di9(J&W+}x2$GyC* zsAks8C@xNgJ;k~vNevkMiP@{1`F8&Z0J2G@BJ?m=^t$sHZ}svb;V+zZQg?|{8dzrV zs>g^x+SuCOW-e8I(^6TiK!HlWx(k-3BPFIJ3_R>UIQxCp!@oSV30D{33LR%qT<3$DU(aJFAk~ixD zOtrF%_+rA;Pg@zP);`2%u~)5sH$Y?Pc`0;nONr=!?X1d9u1Y8Ea0~)XR*c+wL@UC= zIFY|$Hb)xSn#F=!EdMwd=XKZUatp$(*mwI$mXM8uyi^6d%64~C>T>vvqHjkL z5DR5o5?FCF8fkl5Qa|SoKvcD#ZQQ;gHErW}+qXQeTsi_mZVBH(uJ`Z=lfF0+mW`Gpj@qu+DNo(@cH!f41{tr`2;mMd9lNmlTd%vLLcjgJ{>h4Q+(MmX#`fzU z39ZZm*X`&7W|IxojoEw&=akRKk248yMTGS+G0vSQX^-~ru6yS>jHG9*8KR)I%3tl2 zwQL{rTO4n-k*WBCi+a*LH}H>~%oQkYwnlqjqtGH7zM2AOoMl$y9g7I5kw7b_v^S)5 zF5j1F*Mk?`mORw-_O`w5c*>x&Hi57DJPA1t0H`PyAc*p#NSxE)>odFat#^Y5D?5o~ z#RO$t1#0o>n*JwNwr+7CNDtU!BPqAJx#^CowY}k}zu|*v2!IPwky~V6u#x6at87Cc z;Mr6^A8ey8#wF2F!+_zrx|KBuq<~-6!S!bz12aK5Y>nd+&odpQ(1b_R@8(lI`=~?~ zlB?5DJWmRXu5RSrP77#Xs?=nj5$z1oDtG{J92?X-eTEr0CE!xo6(XYZ6t%ctHYj);>n&ag@B> z&dr)_!$iDBa(cR3NmPDz_L=Ks16o4N8c<8&kf3zAJ*kn>Tuiwgy$Y-)TE%?0K_kXr zOHE4q(+Wr}>VRm6`F24+V$aH?M$1n8k^N79z|G_Q<~mUi2B02(7)_VyZQK=MuY7h8 zh0`K~-EI!a;ej^L&|pA6E=7hqTP{ZX&w zgURNZ#@hIl&mu!}o=mNWp)A-HZ{)dDg3F4KKs{^?7Go6ACGkh zY*b75JH&tHj_1bxKnmAH==^FX~b>lCv@;Q_8-&}I1`IMrGaw_N65Hy2T zS0|Yr=bcqp-Js=xYBt^2m1i~}y4q=Cg7de=ZOxWhA1QLKdgjwDqlpv;ia$&`^0@kr zhH)%e04E=^d;T6Jg8$ZeS*XayZRRX`$J9yULy( z2hYS?=2E*Qd$dHU3Y-{?FT$Ah$0wxU=oINaZ3V!5ZjO%B^=MFo;rJMb6ivx-(qgBv zY>5pfnq5j}OIEyIcAcAo8P~$%0izTv^1!QJ{$3_ymFK%={Ak->Z|g|I%>9p@3_-+vy?Ah zVnGU9{Rwsawq$KE~Cx4-bs593&zvmT&JFlE_1C3=?Zs6L3}c#!@#*p zJSm$ydP7Tq@}QFtmRnEL$H8@#FB^B#zqhpB9OcE5N{Lcnn5FtgcjXusXXF>gvW}+7 zY>kaT%TLI{7H;4JNFfVU5y95OGNZX)V8+I4T|^ z(WlkeNXLH5T6hlx)E8?FIYXPnDaIuYm)nA*-{*HUXv&o=bswo=%T~l2BEN=^>d9H< z+6KneJxjpyQ1s2BCDe*0i>DnvPVf*(i<`Ee+pB#t$ZZYnr262Sfn-}t7vE9_o1Hl= zNvdf%p)`0pXKjrz%d$lpZ-!=!MAd$fdNj;o4EA(Apzq!&s;)uhn9k^xa$T~6iBoNG zCYP6R!o2F3b0&E7gGV{hG9;$&9!GOFd;c4m$A|8rQoEbXi^epb<5_mWAVOi` z&1sqPr8Y74!{Q)EMb(e;zwxDO@2weV|^ z0>{yU#vP4sj!QYt3(rYHi_~eNjyEUkq=n6Hk}|Em;qLhYK4#AaDT{Ds$iW;~C}BUV zY8=6+q&URSl%alUfZ^pryrOqXVDu27_T25e0ddcMnPec%;$SFLv}wk)Tc-#P2+wOwZnMWOK( z0WVFnrW!JEZH@|{6|J{y&wQ|KlznhAVMm~jLm>v1i8gW*ZeV>aqVWbP3clLKZGq~K zMN$}wd17LihMhRdi`g5>?+xzH)T~7uqaBZVCi)mWb2|%7z=39fF7156EAC5Km zlWzT)V;zWw9tL*ck zG>4Yr*;l2TRz-r3ZHOVS*-e&-?B>gR5xltKMZi*~C!5w9G;hIsxY)<`rELhd&mF(j zdfGbl8PZXP2qd6YmLw~zj8;puU9=-nz`f;BbOJmodjeJw*ce)W>{WfkFn_;DuGRq0lc8#g^$>L_ z#RQ{xDy+-5pGe;imBH8!RmW%jHm=HvA!%o~PYB^~N&r*vBS~Q=>$jUluJAxYcJ5O* zDHfGkeyG~E&QCt6#(>4$JTG9ZZI)!pw1AGiwkegwXk2=ga%n?P7$Golwe@0Qe;`QU zw%p|+PGx|*Gce_Y<=V!{u7F_V0~I0ztBR!@LvQzF^PFlqaEL*%0GH++En?x(FHhZK z{WPx?kglzo!K5y9VkOADe_S;2kCwx28lUd; zOAEcL{nq^!YI5@C@vV1gNJYpKKj~<8v3V$Dc4D8YN{dIGjFc~3=3ZRDw?0kdaoklU zk?PEUlw6l@^@3EH?`D8S^ez2b2~~o`okgovz?ozvLq65AIF$r!DvH5sh>BIXoWRw0 z>_K8OL{Li^jfzWi&kJq?9-m_JQJ)xLQk=3T(;!LkX;k7-o)iPB zX3kA`o?1Vdn%1P`m|8e}&dlQ}m3nKkd_m^X>!=W?9?9Zp(n<5p%7{FYPe(W|34tmo0=Ljo)7NbUPuq68Ku zHH)r=f{fBU@t*hGglCk2f>3Mj^-!ayaD7BXqw>Cbc*ogfF$qix@By6tZ)M1$A{Dh@ zKUnG_B)Grnn&@7~z%;Z}>f`!kO8etlkVFDU&${)<(NQAq*+xZ-A@aMTtr&8;>hJH3 zWX!d`WZ+8zhG70@c}iTddTG(|oYUPdf#Ov;3RhiwF%8gmKbF0V5h^k%!)dx|Pu40A*uxSw{!AzlOaKw5(cJ(JEI@ z=O~~Pzm06TIR#@8E_$|Et9kCR?@D&VW4x^#ms`WxA;n}XV#;+Y+`4x+gC&M(GL-$R z0=Ktk?Yx&uJzS^LkL#=Y)qllnShLk?nD5T*H<5hKFVV-mJliKcUVrjH=gN4qAk)ai zUcASQWTY6C-@L0odP+tl*;J@JHs4?m%}Dz>^t$K=N#O~#1K0lUOuE4oSlKz|5sB0E z`>~HynPD|GICraZI3I0$9ZW&YnGB8P5*K}w9W<6N8YV|9RF(|cG}J`j!eIP}9+HYl zaV{nma4qun$d<8v65pL5WnFqd_UBB-u?l4nBeN%Me5J+86-#BFd`R9%{cU z_yxKNEk~}%^5Pw3o7V0uDl8{%-*FBQP=y)2!Ov&W-mln9|4)0j`z}|rIFFeD?jxdq zd;r%9U>Z z{Zax^eXG7exf6pXY^PddxXnjT5ObjyT)lZ27mYjTXJWtnexul4XUSt4%#pZ(|6^@` zC6mec+2!+WvfFH#mbo%QMzTHU6Af0|#UIJ1(jBZ4=J5xc(f$i2(Gw6t&aFu1p}~+L zwLTBFv!YlB#jMgUGZ9(SdD2pga6z^^Aa-t_WrCk3=4rq&*z9>+m!tG#F*6HMT z6FR^PiZg|ch^@%2ddj*xhgGnNWbbXGnsSH}VDcrvLP`ChVXT|vL-n{4dNU(pwz#M#Gtm$de0 zZQA$2+5(Wij)Njc7ilPtt%*n5SY$IfDc1GfTaqcz`ZMjU{v5kuex9An?d^vC!g}Kc zzDD&u4C%X*^t(j2{YD07;e$ro-ExtvcokbZzbEKJvYTFWGm^;nWncayAmW59Xn+iS z_A4Ks{>^#gCAYg9ML&aYxSQ%pW}nb`B!q2+Ah#b|ZZCJvKJ{F$aKEFMdA~M0rR~Kx zSDo1Zspdmp$G@C3AjmP$cv{4RRPSe@8_xNbZrxt#XRdf}iedLBFWIbpY&%%azg zQgQ;A4FLr@@4Zu$l-0;+gv?4Eav{PcAAj1>Z1FKUTGaFx6y~Bx#=MH8Dyr*1HiCDn z*Tu8eu#r169kUzWB)0YX0>^R7YNwJZ2T(S~4vhnvTKVmM4?(4GA#ow$-NJsdt>*Ea z<#3oi{jVploORWNvIumx-9`xS)Aa&i=I(|++k56M*o|0ZN#fRU{6mTXUnF}Ey4#xV zO<D+njWfwH*8iG1{*B zqMS+)J1vG<>e5afFh}$x2ktEuw@t1Bef_&BbsCu|{v8qyQwpr$a#%YoOjg6MM7HxX*k+^JrYV9n3$$;^Q!*WrabmM+33p*CZv0#8! z9VHVJ-IXGs>25PpbhIH#=xXwQDnq*@H{oti(k|2CPKJ9`TIk2R*Oi828ePNluNAKd ziil9?kyNc`D`(PNFHMiuKFGl<2iTN;xs$0|ubHcm0cwjQsc<-rdiQFFkwGtNFN{*i z8j@(1zsaN#>;oeU6co$chY`S$8EcIT#<)f(8tVPxH?JudbX!Xuc4zzu=A2|Cx%Cf{ zcS`!%tql`o}xm7wcU8P!PINdQ`P8HxRLg4%(=v&6*_cTIhPim^DvdH&e;!bxc5#u19jF<&<4cE*3*xlXCZ1C+hgs3SS@hF!?o-Pzr8=r;Y>$lil|Jv{;yl%U`DJY~qHv)YKBjBK? zxh*`oYq`5wCPYVe%Pk$92|zB%VqLtw)d74+JONHwdvZ05G`HJ}nQbknneKCAb0Y%E zdpW9OE+2-L#HCI1t)H+z2Ay5GX;$9=sVmZFs@7{?+sF<9z-)9^O`!YChcT07(|&T+ zohD%Gx`PMW#PZBMy!yFFo|=l3+7VSXoPgVYU}kcQ!9w8_BmgL!L}7&^lYrRYBMFiz#y|H;1a)->sq1?NqZ(s&={qsiSuMIJr58 z3uC421sV@4qxnYR9Z8p3$^9f+YD1TwLt8QZ=T^#`h4vY5nk!E)r%uln6q9^7I;6Q*!?@E^^yt`NQ-qNe!cujN%QIJ*iLSWHCh8TqaR^vd)Sh7y2pUk z>C@W6yBlkji5(Yn^TLZ7Y?=f$M>V^fyIWjd9c2)dw|2|dAnCNa6P+W3p~boC%d#hv z8~bu?%daq^;8M7PkDE-l=h-n9BT+Ia8z#BPUOM}*gL0mD3d(|5A}>+0mZUy>2h&N-FFNy(VrjfJw9jhHjSOxGlg7Z_~&w@Tow1jnjaD zSp-^e=APKk(_W~7*By3~m@$6*p>c@76T`oA6h1BFk>e$ou4D^*t%i&4g(Va6wvt7* zPCo~zw77ev?-~fTQG8jNakT82D%Ya**52Nb6;11OnQgJDA;S?xzR6fRk`uUL{p>w& z+HZ?FG2>mGx+Y2OG%~!4?~6gT#tc3kPTR4rYrm$^f8)~gB@e;t!fBrxhnr+yp8(sz zhNi>>YNjStZ#-#N!t!#dmcHHgowAy;&!s1V#!5||Z}3oR>c@pvw%XfTv7>F?b|_p2 zrCfdA>HdFRa{$#`LDhYq;O1qoz8C7QgQqAld$Q; z2}?`1(bg-_-lh29iz#H}*7BP;CnY&nO;uGg%;R`;XYT20*aU~)GWIhD@Vn@hE&4sh z^{>lnnG8ip*~D#DnG#B64_q}lRu5sKVy9c=N|G8xnq#Ney)vM@g7xo1x%UDe3?y+% zd(+!%1`DR|Uk*=brm{|tW^s^3CUT|YA^5?5%5JFJxU^qEX{Q_%<4I5N+h_O8R3!?c zFzRQBkINaqm(IVdoK>z_RyU(5<${bPX*Te7k*NVbJLO9R2cQ==Nx)0nQo)ez-qZIk zQDxdVRLAibhmslf74e!HtBT}1`jFMsJZR)L3!cAcqreiaH-H!l3mLW>GCe8tyP7vY zPr(9*xc%|#U=S6Py+fyk1|>T(SZRjeDRZzJvXw{*H2EG?t9&Xcki)h`^$BrCZ0Qyy z1RIjPM=Q8Ia``PCebO+dUHj<l#W!2krsM>OG-)lJE=Lhd^?|2l}Ucgy2) z0!%lTCny7m9)ptV%6vJg!&a!JvtKH#f?(4MQ6|)fsO;^({#K>;loNgqHR=rQgnX1!(Kl;#jp-u8D^I&oBAk*H8<#O{Lj# zD{YyjdPRun!GGG!eWsZs9sf;<;=DL_g1xG$??!dhuw%_SzL4a;2Dz_HeMgp;F99i=M!9UuG87STM1qV& z5&d~-`B*SIc4nrQgP2dU)Rl75W;Bkzhsoo??=98#!OvI?TwfdwHo4eU?p}xWE5Eu!`J$oA@5B`BcHV zhe^!F*cS+r#=eewj`Vnsx=?MstG#M?Ysb@p3~NKzu&YD&U22jsC6<|A8TCL^=6{j- zzm^FMwP_JQ|22SLUy1ZMi!D!L{g~REW4iLm>F8F&Gvp&$B$nJ{h*=?OWPdq3Y2J_R z`3?Z#!YIm&ez=y0XA=WOGO<3f-&(GO^j zp@Jq#^SXYs9f)69iaT~Ngdiku|NOC$@!q9W66VPQUTLP)voUr&L+f1aBR^F}jk`>> zM)^HlbjF4ButH-{-vN+L5iXPdK8AW$S*fjcDZNXo550=}JID#EKqsO8K^Cv-g`#qZ zEivR!vkfE9uzOG|#DR?gi#vzyD~nYxEPgO(a)C3yKgh4R*s?vK+VJpfF(q}qWH8L? zQ%%%A@h&r5CUZc$dksrAi{t3yNR=7KjRw{LU&? zmJYs7-W*JO`tt}Bti0qcjZL^ImxA)zIsPv$4EgZ+z(F>cgZ z0%go9v$q{xRE*2YS@v8&T8raf%qzU~uY>x~d_L?;KiD#^q&ptsTvWZ50aX)GDH+7CM!u=2y zGM3oV3?;*9sNmVACm`rFlb4MM-Z(-20`(X2aq>;e;8BpPm*z9vNV0qD_z_Z!#@41= zL{Pd+p6AjkFhp}zzcGN#AWI@5UpJM!ILH;omt(bLKJW-6#p3D`C zo6sS5R@jt7FP=-jBG?m@bECUH-)tyELfotdO z7b;|d|NZe%8?j9EF-B`TC$e=`AR$X%%)=@q*#VTpQ1SfBvWOwdSlz8?28@P=aN%-! zyE+-C=5K#CTFlY~Qw1r(n?PM8tKDYbgleWP)OHi2#<)ue$=}Qg$G?vZhr5_^B$M~) zs9WimjSvSKtl*+Hp63i-SsctzhH0K!AUl|IuzuZ*aE}_5)p+*v*YP|#wtjRx z69hE%H**{O)Mw8P{)tAvzl6zK7sh3`+!iys3^i5e=?n71fCV?&$Pb}>B#x5z=%nl& zOHJipQzWB6Yv8>caIG&jhl~Ukg+;<`v452WIgWEbuAZtVxVq`I&8;1rN7$JcnvhLr zS{S&vwyOk6ep22d`9e1G&(Mk1+T{Ld0N}wz!*y`k@w3>np%o#rY(Bk=_t%?A6Twr( zki;9PC+0ElkQeAv!&KMHhg3ltaFHMTFlNDtitt!whFN~>7CM7mP5MK`P0m#Hv%9~5FNg$)**X3SkgL~4#u)%Ci!Rx8h-S)W{LeEzJ%fB>&> zb;ed#1yQOQd`EryFw)~lRjCU3^L{YbR#$u5-Zb*(1}EZ=@-_OYY z=nh3QR6rZ!zX%p%Msl8yiV=duzN)R3 z3eH#7hc?5O%exRg3J}V`eEcqo@k0VvE#p=?k|xHc6)lb|X=uDT_=D4qIVD7%fo61w zOhp-5B2Rm~5CwL#p?n$u`%#p%%BuI3vhc3Gizw{?Qn;1&PV&po0W=5~(NgrL@v0vs zYMBPl5f-FDY~a;rqf}W-HOXh< z>hJtiqPdI#u#jfyY68uN`+(br7EZfQ0`NT*O4b_5eR>u%oP2v?HSk zA#P)!+!(D-osm;U)(hw(qH+yUllPRQ@4q8+Nc-}44;Wf(7EYv)$3Zr@buEK znoY<|93oFZ(hh7Gnh38kyosIME{bNT0|QEjAkjc939R18@T7y0X5zb@j(N>nmR(}$ zgLGZ0npmx9I{!NdDbhc?A7yY@?>nxZBl;E~`oCp^Bi5r_lqfQvXcp#=V=3t=4wg@S z{zMC0Np5e98F0dd(y_dlB6UPGWDo8^o!GyvE=tm8+rC^;^xuEl{>V5cpm>I`P8ua24{{;abKduj zUF+)pET2y{V{Bq2AhLf`BTC6pC7+LKORy!(z0e=c;FWR`^>voPSZjJ>oj-D5NklnqtZL#XQ$DL#HQpi+?>{PhZ!scji~4Jd&^ke;up)s<3& z%3HoK)iEWnLvWF>pL4m#Ghl6-HlW+x2$MdgJb3&ki`F)nLRF z*HU&GBI*j8^LK~3s%UAryh;M%f96zpI3XYT37^QkcWb2Q@Cm`7j&z+(;f}Ia0+qzZ ziyL0`Nsr3x+zQHL4kf~1Oa!HH@+oLn#|Vb}$Mi0Nr2K#m9l*Meohn2U{EU2nBIjvO$C`EF$-C{+2f5?0Tg2(5t~$?yGL2QRH8@%QGd?8E+& z_?Lg$PF4;WnwDv-S^M=qg>pvf>o2YLY4STrNAt}~IPsmv{zp&HpQa^w?Qf@0S(`yd zEUWlmQs5K}Ed&y(O!t?fba%*~gfIjOWu&kS9Cf#+nrtcmgR4pes{k39G!Sl+ueI45 zGf(yWQ1o&r2@`e!PmISEcs-pM<-l&;6;W#4CiDhfC_QEkI7-hJ#6%rjb-aL8J7UOA zObUm&QDWhr6<~6-pzOf-4v$9-tL{QX% z6X9ouEyEp)rR!lfiWl2{17Q-+5Q_2jnrQKK2-IHG{)rAUe2|2d5<<~13%uLic*21H zC>WSn?`h<2a;%FNofw1PdtFHLno)WUFUDwdgc)@G$wEPVzouj%bk;+f;iyp z+W#;4fB!!|V;pn~PHh~&SlEo~M4qB6rPIL2U!D4Z1|&NikI2pm!3>u`8zYx(vcox~ zp~dCK*AEHIWx;`-i~pw+6(mwVK03h(q%4uOlsK_^=@Jf<-G__RlAY;sJs&~+bOP1h z8|AJx+<|RptP--<|A$B&uRiT&Nzx;-!phj0G{&MYh0l@ur*F3cr@^1L1c@bkHjDQe*Q%G)9uN=f=ppKRF94irHHXknLqI#Xd?`*{#!Ud z6kYG1o5)Or$ll-e`!@)_!xW^n*xFlP|MTNSz{-U5xMh$3=!5_n|NsB||KGp=xAbFT zy;WP-p0KmMUC^#n{-E#X-?0vPH#l{5bu()P)Fxv84r&YfkGj|y%w&J?=w-w*5_^0< zt6mJlK+0gHLp-WRe@gu%c-7DMhnt_7ki&L&wdMD`FS2G~+WFQ53f)F!?QO^=Sb@WvOSVYh_3tyZw1(8NTWTJCiJ)aBr zOwmExEc3V-8V&lhP5F#b?`4ep+mRs8F%3<%d;`!{Kb>bv>EQVZ5k0B5yy{od{9gjZ zQ{AN@G@IMDA9YJg4myXb>nZ+WWt^~dbkTRV%o&)Mq{NO6AlbeGyXJXL0VjRM%__Xs zq5ZjCL;sGixXb)_t=t-$YG@4&jOd{DvQ!4djg4Opd-H)w=6QdPNH1d|HZ$8L2aoFu znRm*+j!oS12kMIxWAKXS@z9WShX*l(!){qp>H$?W<8kIw7t!A8WGFDq(5TR7M_8&O z^=E~V!3<~H+pylm{jQzS*pO0>F%|j(S;;JZeG)lF!YUHy{if31+y;R*l0u>k%hoikWr6~ej~u4ZNCL&0E3ukm-f znXt3oI&O}<#L6iOQ*6+zkycXXS{s7NH!Am*C)GNQc|KwD@0q!2_3y zvuc~SBCLX^j$fdx41yTyMaQoWulJ2!ytrxk=`Tcq02r`mP(S4T#?aW!GFqEwJ|n+~ z|LCApi?#)MwG3fuWi3t4QYWmX{z~X6TtMdt}l?Lt$^3zn%LW`3Ai+ zF0NN=B@pAXqH$qTY*d;sz|H!PzOZ}*Tx$GkRr)-SzptK(igCtCou}-XLJ1RekzsSg zWZ-=#3TReZ0R9XE(K4rRWdgtMMc_?GM0=PGVMrszA3ye4J|V2^oDH|U)j9+r+qIsU zAf}S>JGhEOhxR+CQ>iUUZU7E)^(cLP#TDh@k?fpIx?oFT`Bmin%Lk3Bf9v8CiMAkj zSrX(WVk{IM9z!iWWFJ}dLnUIbBAO`*(2qhZRmjMay~+^olVUc=4PuAM%!O4q)Q>Ve zT=_3E;_sj+kQ#L*US=iCdv3a?r&V~uT^(S+%xylXhST79;sguPDamt^tDFqLLax>W z)_6D{XU7KkN|%l3Jqs~^7CWpsFnLcd8lre*98|$i`;j%HQr6}>+=HrMPUkJlw7cW% zU?G{a{=|CuWS64ZvTuh<%^#6A{X-ndU$Ch>Q8P;BS-;SW=u#@vy7A=9^{?L@+~(wk z^yZB&2wqrys{1C(<;XK-HYl0pP!je>8(uKu7os>yH2E6E1jscybTC z{kfT)q3AY>FZI>gZQ$GgVy^#Ts9#9pwD#Q5i#0jj3sO>J<)A}BRCo~zQufTWScW8o zQtfnssw7EID0|(wC@m89@<{V^^BdxSN=hZC2r5$8`ev|_nM%nTA68R5w>t|HEPdnO zu@!JmfNN!BLOnY<8DDE0mVdp`OvLeTf&OoH{Ga3df+So`3@~|gDc41eXf;)9aax}P z1J)(MigkP+1Y3_1gByF=Quh1Z{KP+<6a$P7OEikDxw%GK57tEbODdf#TZfbQsb={t z??83(EYv_{uIvJJ4F^Vz7r1|dIIQ@Q#_6sHJNtLhh;sqa$; z_c~JLw}!|R52EwMx2zqDn^1QCCguCzm5&N5`_jG;sTf(N2X%%;vETly*@q;&7gn0h z>kj4$TkLHxPOy5BPXeU_=zBl=hd=vcz`dOsCZoA2OnjrM~xVD)X8vD>-gS zd1w7pT}Rhx=ZK>_j>qsc$%gB+S6^alJmb%nwtT2}6)D9v6*|-~BUc~#aXx%U%dJ2v zM99l;-U!HSe4ihQF6(Ens$RDrab2Q3OZx|QZ5C^rip^$|u(O4+UvL3gvDqZYnHL5& z0XdB)^X;hc9U~mPya|kpOL69G!RBK zdmyc&6<#e-_p)*CK}Ff$4p}}Nj1H}ZxjBk|M=FXfC5~u1W}czQ)%P(EEhG?{rtHgD zl{)s0B)7igvOxzFTQAI`7j-^=KYst*1tnoyde)99kU)?tn>;YtQU&9B728CymA_D4 zTZ1N+($IxpppW#mqt|2eVD6AVza^gswq-IK80Dx-KIBceR4`(yNM9P5P)q=X^{LuM zrF(u{CjRfL(atx5^r2kz$aIsodY?7{CSBe4|@j3iIbbVz&RBhL;VggE+k|N!b(jna; zT>{db!;m5+0wP@kB1m`FFoJ}{5YjbB_s|T?5NGqA?>pyt)c4=~U~lfd_qx};;#$`g zB-b~c5O9HNF8eRWfmiVSrYTc`b~bNef$GYL z5P+5E|J_OfU<=-!Xa2ZOBeh{A7f_Ca6)_$n$0pNAv0i9!Juos~nUcsRX3OvQy6c(k zwnc+VU)lUG*({AZCPwSYC>%b&`SL_wgflNJ6W_)FpS_r1uxynA=xL)kIfbRZs?&LZ z$@KFAuVmU~(IfLE4)k~adaM9YofHYf^w}88*;S*DJha*VA4aNJ&VLlC=mJgrYKEhE zxIO`DA^$?YJHWK}pPt|!c2aQn=DfPf$|t?`+ux;9xm34`x~6+Gs`EmnkeY(7T;ii1 zPPg2CU8uM%{ntIij&V&TvK~O8N3y!5t2$9MUd<}#40Mh|IX~Uvs8naj{A(rvxU?e@ z01~8vdTBF6VyAPw=0TxZ%$hyKTp^jMZ6jQ&o)YQ3?X2nSPbPBjuQi6xV9c8O`n3V3 zemfmi-V$mK0PL*z;3d|9LkQVm99O{>Z)vF>;rQTMm*QW01WR~(565#gh-JkG0C0yR zE9rVJ3G--)`ucY_Mm(#U7ucd9k3EG?1iGo!{(flPz!;;$dl#Z_-@d1y&t9B{TlQ-f z0Jd!UAI^T@VJRstroqkoZ`pd!Z4chek)ki)p7`V8H%<6hlvzycCno`A5r02kZ(#UK zNj%nmS-%+{dh{!skC_M<91B3;yy?%-TA%jayL=G(UmSt{?Sl_(tb1=@6IDky@+})% zO2Tzq)m5-UFVR9S`dJ8x7o)gsh<=Rmlor@NWA=aB1}p^kM_G!s6{@j3i}%a~Rao(A ziyGc$su>?jWnaA~czDPOP2~PtY6e&v>cbo9Hou*slTOJjookR)g<%6O#8iBM$;0Ts zY!+0Q#MR}6Xe?KKSV38$eIeu;iy-LmXddycYG_>X8QtH)RiH%kIR;Z6FF}X+hqffg zTv2OHG0>sEH6)a-{_&2HAm(4~=mrL#1dVBR708ppxOU>k_b*EKNA-?>eAFf}io@KB z_8J!WiVs{Uu|znOHA5Y68k8#Jn3if)9wUbO(Vu~Cye9J5sr{sH+nLy3VfJ0w*B5p* zsI}xw;(Y&KHKPP&iNH0?%lP5)x0u|h#A!QGJZIR2N`FKk2QEnZ9X*~8cZn_=c!KPD zYhVTe81L`1SKlrw2dOFt?z{I7cX!lvYQsGaRaOBG6n2|w$BDUq4&hx*^{kh!o%3Z} zhheN6yF9BePRLj9obA`|%i|eX+ArK7Ei})zHK#_3t?XyC0;W0Kq6annt+j!P_ z2g=1`HNZrM%5bK(A2+bKk@Qc)x)Ag|P*eS|Bjm7SwrV(kuH#?`O3cWhTrJGc`q;?KEMtB{^UPz>K}$E0mI+pWxb$eZ5bO(dR15y|7!if zz#tHY847mc29A|JUQ7qo4A|D7$_soKsIIZ`NiyRq>;Q_5-Xghdwe)S8Ng_dGr6%SL(T2g<0mJE&}gnii+-G~n zUZT6D^Z&ziWS6aub{&BUq)nLkmcF9Wrm&dMvTOSO{*}V+`X*@3Qa7hK-*&M>H#(%p z2Iak~eAq2+;;KISsg(a%iSaj=?XMsaxHFj2JY~6jIZ%$0sQ*ENa!c$PEGy>0I(~d} zk8RE2$=O5OLUN307!E7erop7`VLv@PY^OO(&a~fIOMl73mI_ANZ@Y%*HyYkgY)F1S zS#Ik4i=Wwb$k@pVG(SH6_-JDuYMS|Z9mQwYdNNeYo^>j}!U;Wa`xTb9IwyX4x}+DY zZm|nNQf>7L3BY)PNmnfbnf9Pt_tMJ!EK6S=HmLGgDGN+oAca8bDczW#A~O1HK7L&> z<-D?g^psV6xw4y@Xa02cS)ok(I#$5p%zO%AfXmxdV7#p+;&(JDpZqs0e15^`FLz1x zJQVoYiNb6m%d)zJ7(QQ&tzZX_UCJEXkv4t4y;0AA4FDJjZe$$4nl2qqvBH0lY+%P+ zjYjy=eE}bq3J}hmheZ%FqUymbQ`Oe#6Q+TpmAcxW+enafS!{04>YC6;^O8~S2Uma`7kc*dXidK zE9@Wk3j9Tp1O(C_)m_xCW}UTJ{-=8NEE$dcwmee($V zrX3{EK~BLAbkE)Z=*Q|fDSxXHAJGS?uer1*_MzQmHnNQ6q|E$-RG@cY!&=R29g=H` zMv=~CwLL$%N`0$BL^1soY}@;jqsq2Sp!^N9{+d@-c-V4LWU)u6)z0Lfn0{({*wyA6 zJ^4TNPawQzQj5G;Wtxhbbo05@7mKTn&i($bW5lJtYZ>*h@<9J={RS5^nYA4!?g()5 z<;q~h+;YHWb=GD7tSdTWH8nqzZ>d|%7SU`Sb+%>7ApmfnffpNu9l0p(bUgXZix+TW z9Ou}Md2z*~rag7YUr0c)20!Q*x4&g#DQK_XH9wuFJJShET1sGY)vg(FY~L>l+NRcf?4u&7VV(_ewsnjG>~YmI zWzC(fX#-Wh$T^VtjL}N5%mAZ@e*&Wnx0nABMTRw5ve&GcT%R~;tx%a-jjBe<($7@u zPnJ0+A3oS~FLjaDM@3P-lwAQdIxS4R7ecvZlfwLl{>TIU31Sp zI9nNDFTwtFWGphJ*z~eqUMFRJHt_Z$@2A+n^o*zHHX(yb+Ux6c$swJ^^TaqU*ZqNI zMpDB2JKXw#kmLBU&hfrZ0p_^M)y;}B=!B8sspBko!gv+XyW8A9OR9`~|1$IH@UY*M z16{0dm1;@Lo(LJcq{9S@pI+iBKdu8f%u)n5a^oFuZ~0n~<`+!-?FmBKdwCptACc?R z90|M}kKNe`4Qp6=AL8T`5&HCQ)cx657Ur z%;f>wla;IM<<#-IYxBx}?1C=6dkfz$%I1=?DhA&x<#>@>0wgZ4`6pj}Z&>{nY7m>5 zu{lQZgEuARQ^{x11!R=ne^kR0)IO{4 zGX-+U@-yGm$78W`fi#ol&$R|rN||NX>P?>+iAO{aj}{=h0r{$;VSP{64L}O# z7;60~Pg%MIgVWwET(MVx$6Rp2KFH4uDEh2QobKEjs&D%>(PCzirFlC%i|CcbwXRuM zNyFlMtNaYF_rPqa_hQ5(%I>Af@nCU(253${x-eK!SXdZ#fg2T(5jgLEQj7veRpRCm z{2qmA0-Z1A==UF7Z+qZmW1r(sz->GopRL{P!t`5dsUKh;eH0!Lr)~E1eW=it+S-k- zuls5r)QCp42|MZpO=3 zx4+LBy2QU_4v*EL)gn@&pWggDJCN;elYtf7+PyCXihi92=Fw4uo9TE`8Yp~N#M zi;1&NN#vmnT4#pSI&Z7Foao9tVN^aNRe)u@oUPOOL62T*NQO!d$DxA~2_lk;FVOMFy{#Qq9;;Gab zr&s;Jte}0}yqR$IR)H}Lm`5}BnsoJbU!Agk+!({DS3%=U@kgCYT@+|mj9JW7@CfTJ zh55J9a+1_CCCKZsHMzzXnx`+8U|9(BORNA)d33FvfY_uB(*6&^UCqLM?C4&oss3io+{xAQh#Dcfr0Rf0GW`p!X+YucnQA&gi%gwKf2Z>mzM9B%6zTat?oHW>z8EM#G!bl#sx#;7B5|m;g zu7kts?W(>mAo#Y+Tr>3+E9-HnQV8gt6v{HVzHJ;P7{z)jmLSqCNQ@7hL7Crd!^iKO! zaXCq*0F#oGb?S5Tj;2a?neHB}y~^84-{}^(z03_$c?SVvw_|H9Q1s!pIi){?S4$!WkvUltdb$UUnml61Mw&wKyV&B|QDG`dOpR zxb;6qs^|fB7Pgx@)m~%Z5CY5y&Y==hiDS6$a?}3W&EDf9fRwV&cMtp78X=-~&BUtk zYZ4af;bQ=eT5*8`w(vNV>R8;pK#JdgYenQyL%dZ+&dJ|(e6bkG*7CHv5U*Gy@i=60X8+tl)6R^td@b^-9j!sy}sig7toFkA>K1#|&%)EpB zZt8BaHQ*lHSC@m(TgBfRaFp08rHwo#=QgZAS$%1DmSkl4EtHb@>;UWv%N+X;K|%79 zA(BdQUiCbSAW`#g?{dp5C*;-~mhV@54|}Mze6*S#U*))P783J%*Vqi0odIf zVRwd81w0?L;rms(N~eiT7`*1fn3bY(^X1B<@+^SY64eHsCldNNk-UGjF_2I z!{uG~OYmCyPTkyqC+iR5$z@zpQ|Xt>7~C)aUCG8PcmR+h^tw1q>I;>~%fFSVz5j#K zbF^U2B0uYN+J4GMpR`Mci|SG34UaWqt9#RL2ZTSJ!}sxz~YL5>MU93Ga3C=2kvP zP&(-hZ0Mjkt9^RSlWAVVk6GYGDZc(K7*@`C9vw^kTJtfFRTTKCum=SQHD|(F;l+g5gNzhH z9tE+MX<07?Tz*MFS(u=k5wAGA8n}u_x^!w3(^m&F?46p<@+J}J?do#o$9P6eSj#D&+df8C`dk{a?10L|f^4siW(@S0Ekvqq> ztVt~93Wb9FF`tKDE5n@{e}; zUIL1FzbzG>9_){c;w}IcC-2VA#^szeqVcLZo4ZZ?oUg&{6Vv82ODsTB-785Go7>0% zT|CImb1HoZ&^FS!mOM@}bZY#v6R`B=W?y=F*X?`_YJXfnFZQtc_rw&y5&wq*t3x&w zBbIAUwfEw=-3nuI`}1thxhMuQaz=hH50Bi8FJ)-@4BXS+;_{BWQX;WixID=%tsqBT0;c(W$U`0h9+j6#1?2KoA)J8{|J!O^#RwJxS~H%-AUFvc8q@M zzOP_SoWw%Hg4a7`_{l!Bz1lntwi9lz$I#_zw_ai+Adn>FuyFDAFRBTL@d9HL}& zak>Rh3>HcUmmH{`O)*;?E#$C1matsQ@WLF>k1|}EbX_6{E|f<1p$^YTGh=k_Azy@* zP#LQI@hnGC03vMgl&{0a=tJL(thF{7F*cu}%@c1M8j{U`_9!mJt#>yU8hsQnvQhl$ z@&%yrvp2$qpheb8uTZDRyz9yjAO>1&leO?Yj2zRSD6(ouF{_6qj6{3Tw7YHnu#F=1G~N74IM_4h;SjYQAw16Z~q z)xaBBnm2u}XU$BNLzrQ%)wl6ugAcJ^D7^qtPw0BWfW9k`(`j^Niv&u&4 zc2TeSr*-TGjqo4GIoc6O3j|cW(s4vZK*b@_{^N5YyU~J%yw6Uvr>+r>i4KzhuQ9Cc z9;Hzw^F3TD2U%(ZvJ^R7Z^YSJe@viTRVpCzym&}QkO{hMjJRpxF}{E^v-|OR=H1__ zdO)ua_yT9!kIm^gx<%)^0MIS3+BH=>HYtY#3uuWcxn}LQQ`J7haCRjU;0)4t@UL;p z@C=hHHs8%xPBkACY+QjtVjH7*ZtOKNMdq>%DVA!etQTI*bimD zVC7%K52ubLbCAX;=x7I$vfjIQdU3}Or|k)0f@_(Mm%bN)gcELnoN=mUvN3;U#^07& z*1b|)jE-%f&~?Jj&|?xQTYBcok&!$DQsVc?fhicowIt}df;8gE)WQl851zlY&9Gf^NBj4o7B) zKe53q$~Pk0v2K;-Z!~S%R(e+HV1{K48rrM|4&yh_0Y&`Ik_grsm zR%70++E{`)a+gZqv34vfh1!N8GOOQY9cF0aJ^PcaAjL$CQM0J~c{JkwC zk$=X)-Th|-qxQBdK&6v` z{*5|W-ql zEw0_^{lf$;~3!6OfVy6JC7AZ<>#8Ry4c$`+j!W;A}iD+1-9q!_rY0PZfA@r1>dAAas zY1KoYtn2`KShYR^4pP`CHl1TAWY)d_iv12pOLK(i50n$Wh;D-pVD|Z0zP?$xrb1F^ z6-&!b(oBCn)YHMPO&w#qGq9!Od^4H!q*pLH(Z_W4w>G!>;BA9d*sct;jwtt2dWIXw z)645_8rZ?aAf?aZ&_X?USWs?F{aeS}q`*#N|s2BgE)5_1I4J{R4Uvcu9O3@#{EUL1hVY;p3 z*w|x={I5@IXDbajKuc&LIi~F`%Jr4C3HRJ3bf({!k=N4G)sew9;;(h1i;-!&+tBDK z@Q8=gR~g2w;I6vyvb>l#v-c*!bpQUB*Of>%jA%L{^S8R=jNd-P8TQV%c2iBSw%|@O zQl&~#Ur=_+qIo``hvjmsC4Xy-THs-&Z?hJ3(=cT9r&?dS9p=#QCUn_2KY%nCdd*hV8Z|R?GAKV?_2#OnwNkW<~cSm3{@cu87=w(Z0_6}FKjiG z#8AHTuU_PT_Ns*Q^_!@dKm1gMxm~j{ZS|{4DM`e{g10VH3liCK+@D$dCjc!i8aVO@ zx4j{TU)ifW%vT$3)v<%~d1WpBhy?-7PKKeedus~Eojktjtb@fIKn}WjP#Q6X{xz8Q z9*Wf2Dz#M=^+Apv7L|96`r3s+ijktPE`Bo)MS7RrlxM3=SCN#ve#gcCDRE1bB^?f0%*tjR(3`V>znFW863+!#Iex+!VtYAaIiQ(r0J?!K_b~`c^uxtgLI{;Op09F2l0s zurmjQAJ2Y9%z+7L-f==;Ufla$j#zYp!OjWa01p4pfjy4jp7;P$TBbdjL7A&mr&!PW z)J2OOMypEacTkvrt$ov*-v-z)@UTYWibew7DSI}#vXTF8^_yYet_xFYYGRG+KCH|ndH9&MWTguB zPbL3HZ)W|klnVs+9a_&;A+#h(v;=l4boUdkk31rSquplSL)y4~Bi~t)SGyS4(GXn{@RLTMWlLQVN=53ynL?13+J?6OnTmRlk zpF#Iu8n8*zZD;r|F?Z1r9T5M15MK8egRlq-67=55>n%i^HGKgV5V@FLNrKsOvGCw< z65E-CO~uph>2KXIU{BixNvL&7Nw*tJcCH%Sk}`AO0nI^o45^g`)-HE&4&kFQ*l-z7 zJ1y!zUC?Ke`w6VT6OXqe_~swuVUha{8X7!ayEE?>*d(~yD+~k9G5Xeo=}|d zRQ$b}dsM$!qT&Gy;YKd90S*s~l5I;HPt*yg>UL+Sb>88Oe5;i@u zfjnjpwsX`Ly&o`F+w)2y7C5^q`US8NY z#)q`mCEcCuFbM0P{_S%dVFX?4Ct-86RIJC#QoG3y1;9Kfh1Ip z*8}W3I~U5(fE`IV9Bwr|J*{kCT&6Q(eigUN5v|dfL?C6xz9UOK{`0=n!d85KntOT6 zcjb&T+nd=zeH@QQRnm|3C1*Z!vRkT(Tj5rZ|N4|-G*pPgf`_&BDqfHF-{(hA!tI~$ zLg!RMSNc{*QRO3OwB!@t}=HiENQa& zsRzq$+~gZe!gqsczMlK-W7&mEG@3u5HQU)X%PGrM*S8%NaQulZ(v96ntj|xW=7=H1 ztWC7`b62ZwGcX-M6!jKGDiL7wC9nPkO9R+l;q|@Pw+)ucfdPy*WW!gS;8*fP!boRO zN@`Yr#9W3}t5~l?-N47U{9}de9JXcEoX}E^&UT;K?+v1#aem+92bj6Uz{Wakbk+U8 zO^3dIOT3i5@$jI}$#evl>lGQWI`Xo_=hf4rj2tkOgA-SMriNOfNvYIU#54Qfw)Bwh z?IuFtZfHB}w8O^xp$}Vk{n@$Mx7T^GNxX8KOgQzdq1bixr!D=n-Rzik9w;s4zT zT;JZv>xr8Nd$1P}z?r6=(khB+2>wAcb*i>Yv)M0sZcejcmsb}qRw~R53MeJ|pvlbii z0;enBR_h~>ZHES>GHC#v(lg42?_sNZbNqazmQ35FrR=K}#sanG3vaIm;ouwcIxn}N zR#qT|$Pi0ibvL~@x}G?m`|oHN)TM9Uxf;Cj?mdm#9T^FHxUbm9d-5bbl5Xk}boXK( z#PN_vG-C^+%gddz5Szlt6OX~8{-d2s%ALX{&#m!Nbg}UF0fDtqSJJEFAX+go_utO( z8$mcv-$+cFVZ+U1luDc;*?*`j=cf>4y9+zkq|NwtKQtbsk?NH@_6UE*tAnpX%lX%d zzOdjMQVTBXPC>p8zCCf4wuZobSeq}rrY56LD$j%YqO&V`tzt`T>~-ks`iXzHalp;D z-o7u2=*wj{d`}W^4jXjZUVS{$GNEN*+fR-NDB;>Ne5p3X_AM!wX^X<~pD)}-8>2Mo z^=ECtXPiI)?thyJ^@0; zl&|Jr0F+w%eLSC8x{sw|Q7t3)Egg@wi!x1x!9+UZkL3Pw#sB`Sp}i@BW$3CMW}`}w zDIfhz+9h42L~U|br_0oQ#!e7S_IsRZqXh)Dj!hN%F~m~(Yc;7DiN~KEhsK?zKHy`` z{QA0#|C{kjeBQwX7IdOy1eQ<;38B{YuCXhfYr!;3Z6Jv&!)*f6aH@r}d*>oy& z?#9U;u=sQ8=dLPnf=%TrI5%kI$Tkn>$c4I%7En!$j4U-ZA8(vAK5goyHs&Gvpvj*c zl)z+vD|`Iz1Ri|aC-R+u*;Xkg&!6wlg8+Cjss=mj`cuVRZ-+6oEpudB9D_n%{Ye)W zgu?*jTs@JyNR|$R;5Q+Le`P9+q62Oin=9Uq>?(E%A^q&(8%nXHGWpoPjqUdjeFGyy z8E_Qwy7S_~7-K)6H%i)ml;7m}2iW+3e}3DNmRNVdIAEcR==uSV(#k`=0oHwODgeMDtg8z-z`VV%7A6VwJpU|oUZiGshe<`LQmDlp@Uu-An zF%Wv$f7__h5}kW3Nma(jxa{2^?@s-@nFCAR1nN3^oP{{+-2tKBtAB)0;Nn^%F#a9; zU7MJM1#nC9rLhwTF-~Ot%n&;d?ZQx{85i;lw$$@CiU8iMZw0HkJ@0m;B;d}~Yc^|A z4i&fYFz?Cj0sT*qR-Wp^;F9OAU&sZVjIwT;2CNVx0m`xPlTH%Des%z`=#Lr#{$&kr z5D4x+Aqq%_Ed;G*fK2LFAKSkco3*%H>wbwot6Y5VG~14CeUftxhW-Dazy&A!BS7@| zhEB>-Ds!&*F~2&->v$@r#$Hblz`WmlRMjW-eOQh%k(o%5P6Sa8edvEO12P2|+FSER z#ZG_S0$p7oo2^CH0AMBz0uZu0rCKJrDsk2(pijHSsd@n_-g0K7U8v+y3sC=0KE52deO542Nlfk%R>(@-%j6uGD=#~>uMDieLm@u(t zuLo#R9@rQeAHmVP&CQ6WJ_tZ@j_6D_@u2QUePjR1hnno3MQxR?kr=tO-Ha*4W>m}E zHaXtn+(IC{ic4DD3Sv5v>*sxn&qblb`C^Hz*UFo7h$_~y`&uHXWGIDZ_MS1PiP-*f zJVItLuqkUEP^tXxTeT;J-59}If;V1Qd}r=>9=QvHW`XlsqWU=NKc)L38vD9m{$nc% zg#!+7t>pMk=1YPFrif5@wadV#n-7O8NjE@k74sI|1i#v5LcbXk7;r#mMK3!DwPT2= zIqSEpoUWV$M%ba}2ipGcz4vNJ_f*A~9x$raur;4F0YpnCr-JL~c~F*~=U53xqvN3W zv(v{0GD6$gP$IrP#8)FwkJ z7~ur2gEwt8U7SpHvse9~1sjJ!F3w0zTmp}Fo26Z=;{&gJL!^Qw0Z#V+alk^?osDqz zQweI_?CNStb2G^KWPF8*=8?T8#>AXUu<#jfU_sid$YDRB2tT#|cBNZ$ODvA)xeK!N z;>6w1sj~A;NWsCYr+Tph@bVbpGP}D3+d9UUi8KkSSz@A}w3xOAV?=&Z`uz%W3O=4F z-^>Eh+}th5iQx!uE6NhNSXMawkrR`2hXK>492^6?0)4yb8Oc`<_ew|4MKJ2j`Os5a z30w7(SxaS$kg6Tnp8*nC&2wIJW4kYk#qS(D6SQ%hxHm2TR6_6028lALr7nIzzO_BS zcty7CX}23SjX1&BXDx4iJg&3F6E{9Hvvuj!$G(tpy7wJd&W&aEANld;(EBt*bwlPg zsF!pkCq9)Gq=W5gN@KL%?zmQE!2yOiasgPeDWi( z5oHGgq|$^U9zw-8=memo%!ux@j`66F|i{OscuyM)$_+NQ0uS2nb z#{NSDKqmii&^L;dIM8KCQZ>80R+)Bg-{eO%fNs)u8|`O^z(2gHjWNb+QKz|D+n!YB z1RW`|B$XSnT+?E);)tLdAKO_!U^6ZnW;E+{GfP z)A{K>tmUD_KPnAG3BX>HBz2<8kJd|3F;!6NxEm}XjMs2h9>^Z9Y&X~fMn z*2DOnGU7m^P^y3iw#;RdQFBIGpsX+4L!9zz0YLFw?DjC;D_5XYqD#^{e@4yXIBsmcUUlr; zttpi~rJ8l=A@5<)y`kA7+4^gq9CC|0bW3~-q8C2mbTB_5=N&sFZI20;J7vE`WZ-=G zc;L(hh`0aWxbrvwHJS9W*L?R#0Z%KAumw8u8;~zJ9EB7yzK_)A(0FektpbV!RrM6wKu!;56GTk<^ah9Y}Zr zxOGLepyk0z4?{VhfBzO&d0=s^A%iK*9^yI9?2Eq&)0zrSJe%y7dcX6WW4EQ4mSJbT zlP)xOyb93RqY1fNJSdK6_%6D}qp~&y2vQh{eWjy6IOyjoT>wA?`eOctYU(`p<0S{K zM&O^;h(u<=Xzn|GgsK=DE@>x2@z%wy)HQ>q>}?)ghd(o;o5EZ3$(!dOjGf!7(a?sM?*k7YrIN`>~Xx1a1B=SMYL zVM$(;%sZ>Lx66s6H0;Y*JYmOTCE5)5ikbcwsc~B8NAI4_-V<}sHZc=F^u#o^nob_z zu4lOoGO{ff7S7TQIA5X$p@@cSS`8JX4_6q)&w84u%orXYu2x>_<+;6804Af4Km}4co8-i~Sb~RZX%81Zqt) z+h12J`|<{CM4FO$JyDpipU%1=+3eUt#!{*EcIK6Gph&|pfD@lUW#LYz z|5S$OX6>7#rlWS(e7FgfTzFy|;92xd;ZrV=lPGfX>D<>c3(T8W zplMr47kN{feM#RM=GR9v=-qi|D}79G@2St_9n#!z7V7y`nS1_3dFZn_(BQFr{Bvuw zKuBh=bS&W|8aj6iS45qvkA+~XCT7ag#7Lxrv0u-=w08St<9SC>anp#ZxG2RuqBGI4 z9^RCvUid*xWM5jJVrm>avQoa_kU$zn$L9IAbPIC-*tTO?#jeig!$;OHA&!C6E>1~SXC0E2_c>KQSMpH{< zAgDd!Nu($0)8%KE6T!6xsFA1k51Z1Dvm%7)i5Jv7+vqc9&Vw~f6n|Ji>zpfq%^)MV zm58fJeBsalzk0Hwk%ey<_-@j#8s-MA-`Z(@ADB6KmZgCe-1U!Gj^?Axjcl$+EXP~4 zui&BX=VNf@eD;Sy6@q<54(Z88Uix6J&~1Oa?+@o1T$iMnas&2T7dZnl{S(aUHPQtw z!i4*-syNH(qD!SQdO29}CD3o@JlqM&n9bC()3Bg@hua#bIk)A&Vre}~8YY4SlW_1_ z2F-Ity^qYVb7iX3HB&n)J3S;i=@201F zgIO0x`3w4sl^z+Z2fxIx9<_9s9Qf`WuQBJgTIo|c;hw#|XXX0#Rs==b1UVKVk{bM! zqh?6zNp??n4rFV4+KZ!>A*n-ZFcq0;xBG$z6LOeDkf>*9!d$Lf-MkB#@b8Q4-EeUV zZB1uy?&sFosUJnYO>L#Fl9s2}c~sJ)bZB%1aYCPpE__c_dwzLpbe8}l5PUSO`sfR6 zd6>mn5v<(nu4b`uF?tz+<>@?Hqw-BA*@!~A9SEv_@lV@4t(V_e`!KE;;ayYLG%@J+ zHs)#INp)H#%+Py(K*VPyy8&faJa+W0<*=-|*CcM5N7Gkxb!z@RGj$CmZu5f*5I@@U zFIC@TE3V%)urEvX6#Q3Vh6wo_ymHroln&vXp9;tXsY zymS*jeWsRBpG}JS+NaFaJDcW&Vnl?On(&J1Q=dqh zsvnr?Fs^3Fc4;u_;Mb~u{3u`m6(Hby2osp2yVBl^;DsK2Z{-A z0*a7dE{-d^r-wX~p~Cwe6;6t>PY0XC#6jn$-QZ_hzPyTL;%hD9jagJD@nZAoUN0PD zK4+O7oF}fWKMQ~)-V_RgaK(Rw9$Sv_^oOd^^*ux5X|jo}QrS z@H$Ys31?OFCD}}NsP;LwzNjjLT>ON-+wykI%Fun%ZdEyvTw9ocM;9Yr%^A3%Ns^9&T1g3$#2n3JJDH@TjMVXjSbR7*MlK?E$LU~M7(MI$-NG)~ z&hqhx`8gj5CSS$v5^v7tN5jZB`~GVgpwi7%Tbcx3oT-e(`L=9s@J+{YBROi{m@$*Bj0rH0@zdQEATz0rkuMONPF5EO@q$vh z6}z+Bv!5Ny7(TRVH7E!Ex}Or*1qk6wTrAZ0HgG^zPtJ$S#F?dHQ})P^MVIxMz-`oF z`&`GBA8-7c(a^n~OKVbtZpKKW3L{=KvrM9<$X`Y4f6V3$U&OSWc_B;rN z_ASUF@-DA4ADGYo!rrv++;WcNC*1aG_sy-hx*4@&T8c(5tKtmmTCXhUxY4VYiT>OB z-MtZ5M|~Fnm`v0D$FIWUubh5QyormJs!b--pSzkP_|o!2z8PS|NvT5{cf}C8P%(xm z_k2=}6_h} zCc)S~8q#J12fQuc8O>wgF>7oKz{!>LUnX+pq~?7bMkAo}w$#tTySC-c-qcVlc=5O% z0Vr_yyUB_pLp-BRX)dX&tOH?|T{Lx8yt=)Dw|Uzzs^wx}M#s~gkA|pgv7-H)zN&Lq z3p~W|lI{yLuL-8da&0;&E4)SB=7f*4h&e=Hu&KHE7ARE3&}+4&b;IjoR)aR?nMGHw zT4GG{$!>k!(~kn>+i)}jo2q&Rr|^BIEjd(RT__-?Puv^VCRDBut(H}DoyNb~0wR|9bUv=K4Z@bhA!~s)%&MLcS z$v9e3XanQa@Z-Yn8f)VgQe!wDYpGt(CEJrdKB)LF^GFVZG2{095UJEmMkS_%$=8qa zboIfO$+hLi+ZqL;6pqv)p}L66#zDadUMqqhbQq4S-<#?2#Lh;w7Dk!#GdBY~mt&nS z&(`Y8f?4S6Y}J}3my~Z&AzojFs$2T61iH=4ZqxMZ_pdRW~BN${1fX1c;3u z@<<_Va-BsOH~(22dx!ZlU@6kD@Wre9n0k6uQa14z)r&-s=k6D%Wtd{|r%%5nfICh40<55Z>(HGE^Y`>IdQR zmq<>ptA#=FlhdVCi=Y3ToDYhnd!zn5?nw9?POwbZZ+j&^Gw4zf`u!K59>G0NwHaSL zR~K)Su8k4a9@0%>IGs6De+_=RH5`oI$z=4I3O%UOOevm{yZ6z5stm>|PGVUH+p^dp z)GY|%f})))orQ$O>v2VEw`&jVdZ$6paD+|lVZE(k{9(N%csleS*EwHmnpIVTjFT!z z=ksHm+Ow*aBRGi$#73M2e9sac%fU}p0pOzfk=fH zmzqS%boxMXw;n{w#$QB; zeV3B>V#Y>s_euG(rwzszOn-focl(0HTSA9qykA7{^6xwaG8lOwoE)RRqoHUea9 z)90nI`7T8phu$9hGIooD76qp-vi2}evi$R`Qg63?_j^llSX3+KS~zsb>65)j?z>Bw zW{Nbt&t%B`&n{n(4lR)1D;BpIq44&EO!074BocmDQ)341cTX>APS`&1uZU&D3s+P< zTnIZhpr|t1AUPoB?=|)Uexl-h=Z22XjWyJ37tR35r(@2 zKV0l9+Vnx_ZL7B@`Z)G5<&;X7$#xVQAb%)Dec7%Brp}8!H$D&A&NsRb2y;d~bruNK zTZ<^s7cl%0K9DZD%Co5GUD6HIv})Z1z(tmrp(J)?A2?AiyFNRKOg*w}VPn4j)#%Q_ zJjWZGwYFNU*;B_RJbYMdh~3ASV5@zKQWZ?Uety(w{^q4cyU$jceX`)rEfx*3fA&ix zih&UVhs4BJRCwz*Fe;InkS8E4v@*~gy~h$d&C%RnwPN@%R8ODtmdfG=(*vJYrsWzD zNmGsIwJmondpRhvrErs~dKF7biF-@eKJW|#obY5}E{z@1Q(gjU0($m-J5Z(|4icxt zP?RB{x3^U#nbmw;H}i?0`iB?-`Ca(*bFfhkdT~SO@ZD%YjF#W{vJV?hq0YLU&N`^2 zdxcOnc}#%r1@k-5##mvyC1)WiLVNP&4EL#-vyKhQFvs#)yrv+qk}%3 zQvKd|HQ(XrkWMLOwpm_#jzQ5YKjRm+fxLZ8CD_W|y-m+aXs7~?hKFR#;sY;c=B4~+ z9P3>5zsQLsi4ekwq>Rc*XAg%DnG|GO#IvFWhTP(#1-$anx%k}_{x!m9fmZ_CNF8VS zBMAf;m|<+3&+s;Hc-cOHiz7BUmVW^XZh?S!* zoF1w0b1gc^M4H6c7ft~@^Oj@ythFEZsqx_@hiFlf_N|N-f}K%|gOlhNol9&$=&;^13or{e%#!DoaUWm6g-HCGG>5kKC4qI!eII8$ZaMb+{$1k2TWU!(c=PMy#0crP(9w zs)QjlbQ)5bY79OlTRi0_)(0QBcSS{CP~0`#n$FMkDe^M8@Vq5e?>mH0e$8;g?&XN5Bo76$XiTlc^?cvDrO zyL06U4AAP*JIEh`+rs59+k9iA6H1q51P>?U?&su^)NX5Vx|~m3ovW=QzXjulxr`ZH z(0hIIK~Woj3gw?Om0B#!&oXg>f7|7poF9ZlpTqsREd`Spb0f$UJ1XCjPNR6}ou-DZ zZTW=s~X=Y5I%CY?{PC@xv(L>&Dsc*Opm2g7-7894I*lrdwkU zUbXCR4LF25}H1*Z`5hTId+@n>ER?V>NreFcmF^Ufl5V6y32CHLkS+mTT)vI^rl|vB79kG_$!Oo1(29+dzh;S}0Ysy% zsHj*d+r3gX>oghBsfy*ce7Wy_xP+Dfv0C(|O&6uP3se2s136cX1LS z=5u@DWvbZD7gML1TKxC^rsyMGwq@;>pq3W9-yf?O?aNYmYHSGO|_MD zy|DEv?5*`WRsPE7h{e*=s=sbKYcgijutsxSXyY|`-tPSAA#zqT{CLQ;{oM^cUf{%ies0?jkGHm(QeX`L&H9`gi%} zQJu$un5@d#hdra8=hC#%>}Cbck1iS`o*Kt=zCZa4G-`<#g@lCmIuZ;#C_T!zB_93* z9SYl{_9SqY^ZXI|jqWhFoal?Ro#mecCv?x+z{26`h25y?TsmG(!E0gT5*?RxXcEN0 z>=Is3Tubw_?4sA>*b!0Q)9}Ne&-bwH;j2ZGBmE(6moH*8V&csU7-HG{fu-wUz`fvF?p*o?1RG`VxzbiB71b&l~R=A z@q_BMb@}0#_gAQ{ABR?Vf32=E*W6Xt@O(Zm6HX0rtjwK1)g^j{`oqVw5HAMi%D5K5 zpKT;FQ`$fNNw=Ep{v!)-7WDSf6hE3S3z@x$kVYy?dF3FZiWJwJV=bTcL+&YTQ7^BP z1=9Lr&m~4{>V7*=R2-A9+W0%q(XjZ$d&~w~+L{i^4ZB^Pj6pp>T*UIwd zivUPx=gxF93dJ9zZKI#5(KYxD)HjwCh4b$=9gP;(rCzLf`IoLAhWy;U>$O_6C#3bE zQ&Y(KL!nDjznnm~J7L$xGa+XO((>ZX(x*I_vk2IS&&QW{o_sz>1TVVTP~qnn?UV<3 zdP0sWN%Q*Xy+ioj4R@6-vyLhHt&jBA$Moz~CtOm@zDmtDoDKe31KtEu;fn&GkMAG- z)-!#!8-r?ZvvzZ@ySecmMS&vXgRL{)&et5h^`~7_H?~$E)cKV-K4GQsU9)a&e}$4eA?b zw!WC2JZkExs|K0jU4ao|J&4s3iutU)t=CrbkFE1#XM1nz>y)h%tX%v;9+Bo~0HUaDuSu+sBKaoqrE zhy4!045Q3k1VZT1k(shyP&VjvL$%=U0h|WtK_g8rG@hf3yxBYCrQf-A-`1TXEPbn^ zT?1OrIjVt9aM!EGr5H!Ftli3FmDrPm#+^6q(k+bx!F_9$_`!$cTKyhQu{u*Sj71aJ z4_w!X*96dtKkZ5$(|*b|0&c~bb|;-S{nZmW{p~CCeJa(X4lIDT7c9(Mn>lK!6B}L5<{Rq~pNo+jM;U`&emui_D?YGAu z%}HJQVP@E3jE&Klo8ii*Ns&+!zJBUCHQ*>fR&3m0l9a`PSgKj zEs^^cP`Lkl0!2(ZEkg%uNhg8LX*?ueSI3f^omws1qr&FBAVN{{DowdV_xRoo3F=Ut?mxPV9u_@M&$4lu6V)F~Sn$z> zMdoHBM>Keh`CD2`)Q2CXs^k@jrl`igNSisQZdjcP97sBxLa->u=W|wF)PJ<44#SES zj!SueaaMR~&3zh1H`g&@u6*7f;QYqrNS%~|zi4f4C?T@3YT1+i~6Jlu3Oym+5tTefGy`oRje>)Y_=3zM_7tz@b27w zd^P;U@&2tRT^C6Pfb9h0@hS z^Kpnt-&6PPwPA)FFHBAbh{g74`zU~6;ih>h687(36btq~-s1VFSPs*TR64fIvMFC~ zfAY(>8;WD*I1B&TYx}^xPk&>}EBt7^U|J!1&ztl4uORSW9o(zQsSdP`%mJ(A9*w4i zRh7}x=tHyfvPvjCib5Ud777Q>ZI1|BY)qk(v?w=T-K4Rn{g}UGEWdPb5YV?A`DEBJ z6^yu8hi{Bu6=<9H=2`=RUW4*Nxe{r7ybSQ-MydnO=-B$d3U|>w-t43)RtyZVx1&7r+M|<8SN! z^+z+Vn>?k|395nK%%if-^p=|UN=v>T+l;v|C-+dDN1%-(*8~P!{@5$5&iMfg!yTID zxf+ojutVlTycVlQ&!vyv{43P>-;??R`>qj@X) z8KtfQwcNzKyrZQ;%9usmGV4k`WPk!0U(1Ru_wKKy^`E0VTVme;>5CnhjCf?OdQmHr z5M2SI(4aP{hMK<0hsi&)u*zoMWim%V_8R&^xv={0bew_h=ssgTbV zt*Lb;GbE^O1p70uJyXZIEl1qwUoS%>XQ|p-xAHnv8O#G?@d|FMp_b{zfn>W5+-sKdV1lA4DU@rC@&?i$WZ0JS z!#N7JGDZ~gG6)rzYWBt-HKT#r&r#C{C~6qlrh|e_s-4#`F`n6Njlks+{a?%lHb_t5 zUH5qvJl^Vb2VF0*(R}IDhw`#isVVf4GGNB{{A9aQRyj14cag?1x0@MwQ!xvV0K0YyrzLf^#n9w?~M_jZfI>`-oiTly=RQT@hx z*Qv2BWrh+=`jY1A8jpDvvZj~@Iv;+A zIMcygTY4eI9Vh2wKa>snXfU>A5MPha-S~Ow{jbxGzqng6C5ni#$VGX&$N>)8;j|Ha zqOUS_s?5vyBwKDfH<#pO`5%rHI#`K1TK5BbVbSpon7npk$`&r(yhci#-q;^g=(7U}w!% zIak3J%<<^DdSIh>)BWZ)XQ8$r1{XWu`&5l=anejCvf^XnhQp)8v=&v(PE{>dV+5J} zl;}##*(VsfDfBnxR|$&e(Ggp^u1l>9r6twX+yYd;@$$q9WMe>)S3Wtxk4V-lY7C(G z{-recELF|@cwZnh`YFZTy6;=<=3I^DzefXe!L!(fBb`>!E7PcA-79ETrG4^`k^XAB zt51;33s-lk8DkZzYW9L1;VAPHd&g zLb|WK3H^-Dh+J^0=gm!`|6!o`)71&DU`uU?4@H=qOc9h;seGgja%6P-Ks1qmOv8cI z-9-^Wr0OS~vqJbs3Og+hT75nBsbefx;)sFtXfm#cTQgi?_v~KZ?jKHa{zK7x2xQN6rlwA(D7 za9|>(Ye1ntFJU%Vz##ub&JW&Fz^bLpkkF?>m(HqN!C{8`BWsT)*vcRsxmld5V#854 zKEg576@NVmVZ2rFmiIsq= zJV{sjCO?4dfP1LYHL7f#5{+$yi{W9Pans*&%Z-}bb*IsJ8eoAsB*T4QYwB+QPZ<95 z_yz=#hbZRicbXo;LrweM%wqVKKABjMgf3(;3Z%>V`X&gIPP@GQ*PZ^53~f>bEIy`#p|I@kD?K=a?-MegdJ!NNXWK zDd%5j`RfA=d_^u3hjY)qp)?bfR<~W0rV}aYDj(R86Cv8P)fq~X=`$V*nO7V{BLGT_ z6mb!`60B@2AE+ahwxmh7p3!|7V8TZ$eC1T6p2uc2SjhbwgWtgIfS_jY^B+&KZ=WCE zvtW8wvRCSX_B8rRjF;Dj#E*d*KS2$zA`eyU^a=0i-Y6U$O2PP@W*%BLl4IZL3H_3* z6yPZ$Hup&-*iZMk5;r|*o}EH5;lN+ZXv&4#6aKV&Wiz`hHtmfM`ajUkKW^={_zIbglb5fC~)qX*E@}uy07V!pGQ4Onh*_T%+Qx0gSp^<{D>c2 z{&v|A$@6xJYPgAjf^RsKFS$Hc%$Nt)j-JvkYRjc+14|=3`iFXaBr`^t&GGrjSOKh4 zkg_an<)ojY>)mF1;`c#`;c6DrNm+g4-#UvN94SkYHSZ;n6Mq8KS+AXGs+&Q_RI+}b zx>9^;?)aA&vXHG$h_@&mkH>NAPb4b!8E1!Yo1TV8ukqk*)qE#`-qOa%AfS4*rEUC4 z)N)XicZX*+TooiYz+pG?YF4 zsl#{@L=&8Og4T70EnNOTR;b{quIRUl;oo@TT<)szqv0wxlR>)n2QYl++@h&jBti?$ zF;qP({A2Ya^{|)!1up${H8qppwtTtbZ2l_R$LED&+aGIpgl>@DMRtQmG%d(GNJ`y; zaZ8KvG!_zT1br9`4f0!aE3jX;@q9&%x2{i(h}Y1`_JEYK-g#Q}eO{bU4!I>tYPC7c z)E%dEyempw9f#_oWO$vf%DK562x(JaM7qQkeuIyyi&y z+T7`^^h?BXflzdEE}Ji1DSp)HN-J<(Xp@%=(}-iKX?kelhfX3eXxCKsl5UqZUXd<| znD*(LU#8N3F=FhSK{i(a#C?Au2gt1@PCEBvolh%i4Jgglb_|RLx`_9z;0n#_b&9d# zpp>_MA=z;>BMGG8qB)j^hdJ)36NYT?j^7!J0qLrwPjdVyE>3^L4UhXl9^@_R?R#XH zNctaBAgE$OvtwH5`U(vgjE1ep-`~HU^U`N%QcH;{rn;=A|4kw7f+RzaT&{+|FZns4-wDSON< z75qEO^DnUpICWduOEYk&ebT~u=j$pfWxrN|gOb7^2!>XfX(D*C?StZS*`?cz+;J8S z5R(Pr1Sr1hbhZPg;$i$~XF!Vg@-ea)F8ZrSfqqqxYt1T+#ao;J7U&S9@B-&{_H3Lm z;kqkDIzL8%IDBy;>Vry4>j$Mg`XBCQn-fFryR}Yv)s;$lC}k)dkqYg5iv_wSjZ}L_ z1ug`A@rEo?^Ewm6t~fM+t;^H}UxumYhnXPPUA-@vO2VvvU8rAU9X5_supckA0PT)4 z&Y1yD38I`8|JJKZ5ytYiN_RxXNG>jH3o5E5&YTzIpjItWwIKd&IGFaPlJUH89)ZIA zOTe2T8Y)XMM?@{LduV4)k#2K$!Ig*gJ~urlX<|SxR%?mewc#gOhAg|awJvmh&Ty_> z5HfjDsMl=zH1~lpm<6yt8z@#Zgd~`={V%qE`3dk+=>plN7)I2}oo6<74 zDDMq}e3}HrnB@3xJBD&3J->gdwj-2h&!uK;H5)Zm(EwRn*bCw+tavrHa52`6EOuD# zrk$U18L3W~sz|z#M1URr^~nzkSJsaKXVCg}jNc?u0m2m6`8=qu2yq1;y^}n|i<96< zIV!o+Nkj}IcP%& z8PDHaI;3C3{uHXg^VhQAzjozPn9R)E7*ls_AM5l}kRNYqphtS8N_AC5tUd)1&3M+? z22IXw4RdYT+)NFSHpOY774q>c=;mgUEMzrje6 ze)us&%ZVMv@$A}4k61d5VtH*>K9xg#5K+vga=##^vT4B9zL#Xc%!3JryqaATN zYvt*YPm7OkZSQfRrw(IAx^71oCl5T$nX)GarCdu{dEuI!QLq}x=3TM=d`KU1kCngL zoP!24zjR2gb_OxOum5%^_T?$XRqFC}U=h2<^aS&t0 zTNdMruMbP+NTq~kD{{qywyFZ=CDy7dU7;T>=bhHkz>J>fjNeIiu*9c)Cm~6Ras^$L z4XsfYD><|6lJlv!;p;yyK0^;yO_%}WO76C--k@Uyivo;Hr-fgGjVaP}UT!(T_Sd+Q z8LLsgus&6-4bBld#e z$aR_F4P=Vk0^XNdhY7ro(q-R)Hg;V{{I8`|Gou$&a3jQ!*{FUv0ttju!_63Zlt^8T~t&wFIV-MU4qVPZ=M{L>ptCe zMmMmFymx?)+_K#C02S)H7=N5$f;A~M3){FJXG@k$iy@2~)3i9;;;{b1Ro4%GQ%Uxd z-x|3^a55KgM z+j%niRJ_9e`cyCz&B2j2T&TT_n06^?ASLO&6de|gEK`O311dqiL96^pz68gE@2F55 zOw|Pf8V{mW<>@fSC9Co2=s;g<1shkRPCxT*3)$nj>vLWz@2H}or$Y3c4vvQ|I&Ce@ z;xms$2D+H6cX`%$c5T%z6)ZOr*oKwAbY-Nbv+gRktA%&VcvS7o2}QD+8UAZ!;ve6I zdD}Zh{9q$L(4Ph=N4B>OVP*1XI4)a&isJsXnp-d|D1a4>)85I^D?2Eie*c@M1k24~ z!%ex<2}D6R$@uj27PkjuP{2hN$Ngbr*a)Ysz=ry(WFumLIO{#)3zHpXO#NCUJL7wy z+WpwQ7S^*a_RE0EFDS?7ZvbVLzmO8>q~9^7E2Ozt^;_dsLp-^9LccP~W4emiPW*|m zh3AJ|v^c2IZ>e4#MP*O^+4TAcY5OZdAqL;_y zo%VI?jTl=Ga8Vtt4!fRg>1^Z;7;3#{{y3_dv(ebtn2o&u(wkYFriNRy#+!(TwK~Tz6It^jq}fjA^jfH497+Ed#2m@X;4qtLwTB zfb5X-cz~`%7@p{-x+99pX3>4j>tYVL`*9tn4J%$FMG?Iyqns=~Z6DVZ z&>k?+L#WY(5KON#EGW)PKjCx1@h4`M4GtEbFtOnYzlP`K1~UK6;Wu)m5WFDh^o*;V zK{_NkO8~<$^fXbJaC{QWLJJ+L$;w_(P@%{(GC`f*HufUBk=6F0<8`^k4eujz>|jqf z26IUrUE1eri!(FNL`dJEG%Mg>l=~KAG;GsgA}F-JKBYQ1!*Qye$)}Z|g2BJsyzcbO zw2(A-l?L85m{1XS67|X{LjswmKPKO(jDD&=X7JSjF`vI_SMIB2-VjkLLsYGNeQso? zh(v=g!}7QrQ9a<0>2%Cw^)MV>Cjl?Ah*ZL`3Vy|c{2Qcl1v`R^Dzrn+KtFao!l0eq zUQ#)giMXqX+3qWsXgaeG^9N?#hP1wb2kmohIS(c)e`8L`(qx6W(qakhxq_u7I)Rl? zzzaZ$Q3-FFOAbXDy_4KtOW87c+GJXqgNG43 zlreAkuvp4C9ST>c3PBOQdZyEj@fs@$y^1|wrR%XnGv1r#PjmRBLFI_?epMwXuv9%S zF>x%*5;k)njn(`%@(mZJ^TQ0S3Ank-=oT(M004p>=Ji>YzH4~tcI*1G?d2+J)?wzh z^_qP2Il8=i+5Hy8hst}UOfV%g4D8q{DG2ITCX_>#rL0o<`u7tiqX8YTwveMWd5Ydn zhdlMfp+hI4aMcfP&He;6Xz z42p-2RUuL>5u`d@RK!!1+wP`j(8|a>@|RouB>}(sQ7KWF37@+lo4TgHUt(n5%%1@4rLNf<3wwDpzK`TfcCx-JzFuJ%UDzOC$a_OyL*y!9BFLY zzQxZm41x_j7Emg>7;TgybjNKQSGwNwycK3gZ4pgx zKwoi@&zH&EyJO=t6>^5PLdeX5hi-+ytddcF_4G%{!o<8p@Z`t;rHlR3&R()2=R4#U zy%W4=skXLT&Qau$8YyV)nm%wNTco``XG(K6zqL&AcSrc=Gzb09i367}yFWrJ3=b|GFQ zp^KF6Jb}T%>Uzn7K6$(R^_PM-MtC!CY^gcC(d=GTM{p&huOT8PdThqR*f%*e^Diy{ z(4uF95!z{|7GhDlGd@b%rDz@hjW>V$SqZSZ6+L@orlQLf;>cKVw^bm(pa+f$b#wVr zIV4;_#F-CqBI5o2yEy?dDKaOuU`K|6jj?=!PE9qsonq5Cu%w(42=0eJ)-|0nf-l%VT)nGc8{Ytq^Nmjq)aqDGH@GC5oz7`pCbj1@1t-*%BOG&T^Es%0lTM?s5v*lkGUZ_-= zgikH*VpjQMeWrZTM>G3w?)u{=8^FHFQ{I{o{V41Z=6~y9dLI~-xs`_#aWZiufQtn` z3hWC?TtmeN9KlO*ROCl5p0M=_tZ^nPb_n6%#O zuf9i#)8uHx`)5BlX>aEFB)Ky>B&t8tOgJ&aBbXRckQHB~o77NX{=1vAk0w>{csl<_ z=G}9EC8KwzQQC-B>i@<}38j&8o3QN_K3;1ICD0H=fMk*^%At<^0WKf*G_mbucD)FFZBdwsl1-ea22SU8K{8pt{xZ z_eMi0O*RHo2@mHiKG>D&jjnqgDJTzxEwO8s6D+6nE>FjMI$>p9 z4Ax)qTI4qw2K(BnNT{r7_R(nrP zJzddV0PD2&G?Vn4u6*MiW6>(0Y)|d6AImc(_~WZ(apN+O6(ZrgCu68Is?Hk+bj$z^ z8p|fW`pcWgrQseug{5r|0O1sV_qxn~l`-BiR1vwV9~%n_7z6znv_>^G>3V!yKQrNRi-FUs z>Z{52!`TymEx`Z3S2yrqsYcoo>guul@C{9CJ5HLBvh;S&Wg-RFDJb&Hti9u@>zQQK zTN6@C*;sS6wS6b6g}e%`Xfb`r?Wf@+Tauvw29Z!jwG_ISR=M^pN}oARhE>#_RH2aNLM<)zg&%3?M8_?{%}J zI%-%?f+3t~pqCWqKBHiSmgH1)KbxOfQQ&aI1e0^#aLTTmS)@c@Juh=zcN`~`1NYzQ z4)E*)#0@5@DvU5Cb(L>D^(;3%aO2}lMRjL&d(BICw^E$=CkB^9=)9GXUNT{hu@@Ds z;eB}xb_SgJHcP}F#Q+Tpu4C;tqA3opTpp(m$0N#$OUXqRUd!>O`C$uxxKelVmEy<- zd|lRY|7sjN%KUCQbWrb1nl^dyiYelv?%wiGAX&8$CUB&F{N*+&o=KnFe~s7)52E79 z(0$0GEH5)FiMJ8`+)}GfL`2Wk8yD<)n~MQECsku%b$Gj~k9T8H(4Y}%w)w755}&^U zKTw3@?4Oi|@~wQm;<;&1uH6cCLBFD`t6kvOXkqdC(OshWvb^o#nr)xZ9~N!6%EevhT|Fc>DW&{mwN1N z4Vgurb*ern1!h~Betv9Sw?^}VvGghBao@%nU@5Gh{khDoAgzeEE;v*L$N=lXU)lG_ zVY3`#%5B6-b>HTp?f;_b)CV|Rh@Gbfdj*cCD(h_ji+xzQ8=EdFhjZ@}PgPGDTVy)L z%lS#AP$9ep1b3-S5LClQpE*(q{!PO)d5PrB_b)wbg|*8GB1}`@@}DNzIF~A&U6@~f z0^Q~E{_<{0o8_K(PBG8QyWeInFOCJr+puKl_R7JE2>l38zXR!(SFABY)^;sBwvRV@ zGG>K5?idDMJK24=m0%ho%M{6H!mgn0II3!0SUF|~2mnpl{U44H>iwK2NN#~^f~^qG z(Q`nX)qhVXI$aZK2Pl!~SQ7UAH#GeD1}YxIfy<5lc4|r~VTwd*?E7ELF;B-d`Xgx} zGGzQG-+ZS1M<<*G;3v`|FY1f)ZYJ?>5pR*)`KOyprRgodOYaquTcd!A~|~WG~&uP11ZB^LpsWs6t#QS`Qo^!kz7~P z18%Xml<3rtJeRE{JzsrV6tiL;)4^|ryD0fz;R6vT?9PDms^O)CO9hjDA?p6NO_f7izID^DKvB9K#(_Gf29dnfou!cf3}T(YHWI_+*h%{r()vHZEgS zcDi0L$?6!5zS}#Qs$}@8UhH{TpsmkgZ$~-t#CqyUb@!wC#Xe!( z?Ek4tIj)3z_T!y41GgBk+c5G?dm!Jb4y3<7%v;l(Y#(S-ssU^4n{Oh!HP0>&SJ+&@ zCd$a+DsY{qy`Gi)cV2)&zJ&1{#pP*BaF6YAY2;p`bM`-mDvc+u@obz*A`U$1vtI1H z#(}A=9#51S27gEG`8RFmTj4o?$>UphYTCe)$*|i-%A-UvC8;V(%Nx)qIe)6pWg~90 zc5j3EE!gtF(dkBU{RJd`qSfnca#owUzr5iL2DnJB!cMvVDf8jQl@xpYIoDUC_XABp z63L%+AEt1Ko~kjVAljL($~{|lafiYX8(aG9Y;{5Jsg68nm6^k%rM4i8?nvbqtP zvj){+2Kg;7r`DTjycIUm5y@ngWf#{iFE$ubn=E^6=Fg~%a z7?g}RT;dc2(W=(4m3%DGy3TwVTc#nSkw2ijMdmA1YnsG;v$Ti4sA5RQx^h&loBt{0 zzugU}m%;%5^0yPmgVC*sysSZ#9>~_vyl$pp+j+ToyAzg>E|8g@e_EWsf~KKyhFb)9 zJgosiic>dJx!forZ^wG^k>*@e=sP7>67STXi?jvHc)|V&zF*IeXHyx?G*czJ8{Ex_ zTs27Sd)Tajs$A$DKCAP4T^?QZxkfWPz)=P%ixT}$eV?HCQe{8DsKtpkO{qI$(|&BT zQVIhKL0dwbU}7(ZYf@;IZ*vYUj390+>AC@@;WUbO*k`WzsiITa=3sS@yy7Y_6!M;j zd;M(o*wC8Iw-^>F^rPQXFBqqa(F3j^e!6?i*SxweD3~Q-pu_Vdl&p zCFzeq_ix^}MQ?4xs2I_^1s6itr!LNR^mZbehjuE*b?vYG3*T17@Z%ll&C+&WwB~;d zzJnsIQ1)Q((^ru0Yz?gZ--l;+t{bRk|SVD8|)|V z+ac`z_GoL^^R0&a9YGLDJm{pwqfVl^x|NvjHdRc6Afhn7rduj-x|+GGU)$8nHCcl~ zpk4B2N>5_pD&2~o9s|xa-|3vv5$MGB9@u@Dr~y8|9(K-BaLfGLOOR1H1rXUup_=w1 z3U*s?6)~mN_8vdxeqB&kPxAWnO=}>HxjO6x2qd;Y=B9MrdmXFi`Q!7`l+1tLD-cbJ zPzAXUi0VENho2A~dgHK0a?Y@yhH}rKUgnIEcHv;%Zi_A;Q^EtiGYO54_;Iup=@?$g zA+Z_p`t4jrZ6N~ahQ%Bk!;hBQ9@-?)7Zj3g|wJtMBYyK@1geZ65s;e%2-@xFI~e4#V= zzD#tTMxH&b9aa?bP`@k%&SS;6kGkNQZhY$H&z0mBIkeP&UWXM4Qc9)UY7mp0N%R2e z^p6I)DQbKQ!aG=|lF-jmU}c+V?H*mnISv{|nG#CkGOgflP|y7hQt~T8%=ZJvG55;q z7sB{>q2e6}ccXi`XQ$|4TwJa{KTdBh#p*fr3tcu4t3|u+e_U7LjpMY8sRw$1lM%c0@5Du=l}}ild9yE{J0#bxevaH0 zPD;uP=5Hy|M@mOu0i+hyU(y$Xv?cM@h-RxYMQo2FIj(~0ZkBorzWYV%mhZ>h_775% zMQWBppH0CA=g$d)h)SV3w~fLV+nF+IZSx>Otz;;8t()-y1z-KMeA1Iriw4cxKzN zIR*u82su`{YI{tuP7@14i|x3zx=9LtoBvYIRF)yCnUJvStnt_Pih>%}G0yriPxTRh z3>+~s>8&y%c0kZ*UC>OF*;0H0!gPx~=f>WRp2twJ+}4>IJl^@8PdK|IG z2%F85`FtDrgb6_}M-~f$A|#)RJ_0u%FZD)xd#heExx0_kk&z`n2bw54!7H_8!_a8_ zc!Ult`gj^Rm`PJ+lJf9%YV$X+vUhrO$|LA4Jz;x#S(E9aClD)#4I_=9oz}2b%3Z3JRiXQn>l7FEi z-bXZKk*r4)AB6L~X0tDQ$7k>~SJql|Nw@A7B?<9gWxD-Qa1SXtQL zK;)SP_wmix$jBas-ic2=FsW&un+Y6fx)sP=waZUAFm6A5D$-SlRz0^fOx@d^I&awIDGryt{7U7#$1l;Tz(f* z5-aTXj;$%TIuebMEmecMcEYTiPO2eUUANKCTF1J@{OqOq)8mv zQ3N|OXt$$=Dm)kg#O^M&bf3jV(aN46BQt6f6fWh_`Mv92N zL7~4bEl_T)X1+~D9V>C=UE>5OTRpQ8z-^r&Th;t|U;hTxVHzG^C0yW?|F`vgT zrA7ssjw*{)xlb~`mYW`%TUOtK(pZ5EEIvHj%SdXV3-RLhsOpQ}2FVmN^I@UKhe5bm zEgp->Pb^eCytpG{GmlK}Gju~F5?zb0xX+25CiH8?Qk)RxwJZLU^_<HJrfIFA6 zNodoR{y#}lvZSz9R7)fZjg;eqfDHcPi-;njy@YHD-9OiiG_MlLjpD(QUhK#c!4Y&J zgcBm4Y0+7RcHd&!11U3&zy;&t`@Tu9qG0 zj*uZ9mgy?5TE`q4HjW>U@AzOmdJT4lHi{?H`fNZ+PTu0GH3J(6>~WF-;{lUec^x&>_&M^TdYNEZ zA%7uUNO03Wj-*&wTvWh$=Hl%hpjs>I9x|H(S8gJ=_d#7^)^cv9Y zPwNg!;c)>&cn>@PI&)`<89s5gU0*!;(ihABr=V}GHzaAK48-~3G4sFc6(uF4($9WU z>M)5BxA;!V4{{w>KEIV*Ne`xDn-UOzCj!`l;kU(Sbfv7sML-EXwY-m)k!qkr){eqk z>3mO=ks9Izm_G&NDiptgv_-EHn^&RwqgY|j7v9t*a+kBM>J1gr;Rj4jC-WYN@&`F` z@$-+s&oJe5`Lp%x*`S8LN_gy54N+HEJ;S>*lvBZ|-vz{)*N-L)!}Cj0axiDIL;%fD zb^;}H%{L#;e*3?mPw#o02&ue6-5!IvP6VA+?AyoBEPFTa?jmI9SX}it1X0+1g-tihPleR=ftdS|JYmJ-Bsq^Yj!30&7JqcwtHfBDsQBuCf?wsh@K_zE|`?otg#1-Yx0GCE0N- z=x)I}_q4iRW1(N%F;Oe3~jj$E?q!!ZE+YV7-X+Uc#b zW3X-~Y96orJto#m``Oc}*Od1;<@&7MY4tQkFcTyvO^WoKjTB5N{^c4XdLtqhmeV== zMT4NBsQ!>!Tf+@s@$9oeHL&pIYzSVtpOT>~QbeLCVtm=#os!h##e7#NNNvA|UGX%^ zGrUr-8wrCcB3|N0f@P8IZPGU-xUuP6Y)>{znja{%4X-vVQs?!*l$Z8B#SkLh6sY-2 zf!uqJI!#EojC=0;W759*&H|;gC_@0WZs3v~)Etfn-p3Doi!5erk<4kShAOQP{MHHf z+yh3MlKf~Bmu{{orZcf*riD@_Y$#P-ozdOSjf8vZwOHN9Hw{3eA$B8F<>19=vJ-;- zIErtlf&Ey!ToG11<0cYkbyU+!qL{IH+;rS%a<|*%FB~9*^`?YPT&sS;n4|_j(k|~< zxwFe|O2mD!G=Zz(xs|%3GZh!yqhK>7Vk%@A4h}Y@`E<0vu^d6L3yT(X;U|C=bVx%o zsFz(mVSpi)q%oH0y#+{L9Jps(43`NlV9`l5#~DLGSX>ii)!m2VdOQC6(hDwXL@f!|5qgX6f`Es=S`Ykl@wV_v@u+g#w8Mlu zX}&o^Ks*tvC*jHXtROTL-L4Xn6+$9_D6E-(=h!Gw$$z#ur)G0vH`c4B=Wz&%b*GKO z>bgIH!8hfKbkaTK0Yr}%zs5XFuI3lI1ezB9-_4*F;G6irL6-_{?+M((#?*@Q)JHSU z2?BJJUX8BsBeKsV(5=!iECGo@6nfWn`nfNFz+mMH5eYEW14-W0kSxnqjJ92;{}HMc z>J+x~Sl!45Gk1&f{n9z=npYqr*|zaI(@N!$n%Gd3lG9URd=^wj5l+m<0U5aD>%dr7o4Pi7os?iKODkl1TB+I)<3+>^~iB@IO zE`;aL;{0f~N{jd<^pHyX_Lj5O6v7?}2xQ6_hZob5uBjcle>&f`F`j+)GzTg)9fEm` zQ(u5qO3CFdGIauwWoMA$KP{5VOQ$Bw4?o2peAgf-vDlmR3v42pBHZAtLzK_E$8LD* z>dWN4n(;Rov3^wS1&Pm2CV%-&blfywH8i>2ZqbnG=PNlKy~X8U-3%z z8A={wQ4Ji6YCpbcuu`HTqevA;gZ3cXbjAJ#T(FlfU|Rc~>&^C1x9% z&!D;Bel}y73~T8WuwA>vaKjsMm9Xy5ZKC3;o25f<3HX|Xu&qjCzI>bUuKo`fl}Fc1 zaHOGJ9oANE_EK5#FoWeXyHSw{YYXpUEu3)3{ePgDp`&Q9> zhY!;w`j-9HTbnNEUw84>#r?Fm;IS}j%#yj5lAUM1G6S>65~{j7*{Y1-1__h?ssDZP zWXYE*xdN>HTKq@|!|wxPcO7TXW{w{uG!)UVU-)4O&?W!tcf4~T5yM{$f|-~9>?K8p zziBxa2lc>}GE&Kce40Qf(`!V}C{ki7?^)<2x}aejCig2ug<${HlpT#++(2$) z$}NHJvztkDkvf9=Tm*|XDm_P!_0S3uF4 zNm!zk@CKLbo>4W(8u^0in)Sh8+*PQy1Kf!AT0pV;^;DF51vyArxwJ=|JgCkC4(9XKUz zAmikQ3sx{e6y!&n><~qKCs^H#Vh%u7N=+;V`u9KPaN3WjbLr4SrVf4Zgj11rpSS9aA;I?56M~iz4taS|}*0%g>*@!iOAtL`-qi4T7krK=ggSpPopMKSl|$c%1Nl*8KuOIJ-%IV3+ki-<5PVKRp`iFbJVYk9KeZ;Rg2aVd?%*Sqv=TT|tvzlsJvK4v>q+9-=f(XH zZfcSsDZE271@iUGjX{DCJ(oGCnMWQ4rNc@;c^g0Tan|#Me}O34qW%X?1lu zsXQ(=a;1qyN;~U zxn#n8sViC`oNSWAVuVi1Xl5QM`VIyfn$}PM{JACPvG3YR=r@tEg>U@xkGBfyNqUMX ze0zI43Q=j)38`MoN%U{WKMfNV$hf*-cU=WN)R#a3_rOkQEA5zBlW&hW&6%x@G`_D| zXi|otq~v>9_oHr&Ai>ueYks&2ueY{34Qo-+?DtC3(UFj$s>0b_>*x(X_qw-1peAvE zL=!uXJhKK_8%aed(!U<&Gr^UzMaF2hY;4{0)WyL((Zu;oyh46KpptZ$>?tN6E_k}C zR4+bRjj&+MomCnJa4FZwBdg*x;aYuia(xs&-+Xk4R9FE9?}udUyvEM}cU-*cwsHfN z77^MP@l`xDy^ z8h}qL7t9lric<`EH41qtu3u@S{Ji+0xoG6ln29FfBhSl`(srYk7_>a zc>Y)d3K`X*VXqdU&o41#DfQT2J^knC(-26WN>ARLyv|J(;w>524}Zx02;um(%y`hQ z33`>#?$UoeVJmo197eFD4X7C>r$I_!Z(WVm9m`TJvCN5AQc^O|9x=*+5^!W@SCpgc zFestm$WE?Af71spBmG=a6-5`=I_r&*7p?vYc=##60d5OjEC>O~mhax_PNsZ++Ym7A zinO<+ciT>X`@&Gr@Nn_- zftCBHfBgtY;&;>5SIRGF_#ASd9sZ4lo@xqU6iJ@D(r2FA_Nn%~F=+o-9QY{^qeYC< z<7L)_IVh_&0vbR)tFZwi!v@C0s=HmxNJd3fd-lEeUUjW&t>x2olV0zh?!_2Wrhh+twmo^( z$akw3U*4FcZ>kBYx-Y-nll3TVL@1tr%qILDlODtqA&)}&+>^9RR11dA5Ry|zbA4Oa zqVfPlgT@s5(T|=1ZJoWnGo}gqeYwSl8ch>{Sx?(8o(%oSijMk<6-Ca zf$SldZj}+ebea=JNaaJ=y2hVr^g(vv+QS zq-Qa-O>E3(<44kVnNk`7i}%t^1M?7BIqWY%$iP6{qT)w!K>p0JKOC(o96nhAd68v| zFjSZ{_}?*-vc`bzWP=}WL6ze*W5BD8KptJ$Hch+KZS;?bAo{2~6z|#r4p8n(3@c^? zfyW%X>y`HAiX!N8GuQ$mdp*15vi^_|3?wn~?(WNXuC(MFnkgNHVPS>p8rxhteg(`i zV0UR~JkVJgC`BY4pHZUjs(byxWB1*OV0ODlspShYOMF$+;c^F=s=njXn51C$fnw}` zwG?Pf{rxe}0xKXncQ4TKGlgR1ZP075b`3>jH-SRt7ZmUva{j`YIt=S&IRgp6-V8Rp zt4|-}aJka_t)rA}@z_i+6Ct%ISvhhkxqB^eyu7?nC+a+(rvL+q2!g=2)3qxCS@}wijsu!Wt4#&Q3Fb?MqV9p_Wo{D)H~@hp-^`0IxLy z0GVYBbT0Db^Ru;ZadGkDQMp)`Bn;`o8|c)eQTK0wvSQd(C?G*jnquYDSY4qHd+3)g zN>%F@oQ&@Sgm?USEm$U!#||DFeQDqbp>A{M`CuSoj z0|p}aoSCy04nAQH>i+vEYEdwza3s$1?ZOL!AEgB$8oIk1$tNGff28vMb2GpzLmnco zDMyRG=1r9Ltp>9$6T2k{0PTqBxaOI(Zn5n^vBUI4a}?K0+KzKC?i0T&q{<;N-tUUB zjq;4Z*VWBz>AXdST}BIzqRfM-O{bj#Ib*bP$ue<*ni{=6_Jo}YxG!^orV}8p9(qD% z3IESWYamuu>_psGhG}cPcxy(naRRqi5Pj0{^#x@cZ^tbmYSEdk^p2bs)aF-=SfC2Ocj@o15Su_CKVAsD+T-uf%$vx5EhWCGpKvTm{F*N5{!iQ{z<@G5H(Femc$-bD1ewYM$G5CH#r@uqt zqPK1)p$xvg{Xb8jqZ#{lnQpFk&710HdOguX+U5=g&z=80_W#5;pki5=YM6dbAcjo3h(-=f1;fe@>oY%i{dqG|8*Zg*^4jWREt32g)DjP!O|9+Ge)kQF@wdbk=wE{IaYnU~#pqlP#Tl6|Pg=^^% zs@bD=sr8&KEi(?#I`#U~8f7C%DTU>ui6s9>e#$ZSaat3sQ1c|Z)Bipp|GUEQ_#UL} z77nM3ZH^c8{VX9N`8_T25_zpob{hY5Fc$a!oG?TX)mo$cNv#`+JDZ@WvR_^6qzNt} zh@6$f_L*I_>J@?y*;D%W^Uy^5Y1CpNa{p{EL>K`e;`{;LEc1dU7B+EHRA990IEn&t z6|7wWokv&^Ws;3b(frSAUL)9L3uobt(!7NCUj7rAkH}Ax0L{|p3ansoGcXmm8HBc& z1Cd*+MhaAY^<)sNe;fo^U);_4qLU&bWx%cmhK*5B&PF_8z+RwY<#=G6-1G4+VGe$-bsKa1 zl##c4+p~X;GfWjr3bqt{pD@7#M=Z%Vsz3{NFZ1Y7`iDE?5Vxpf+5N6gNN?*D9z*44@6XzEJIrVI}RS|S~d6={e z?Ie%VS8`_l{iX`wAg?jY+2xLIDEeiy9M#$8a;28xm*$`QuD-bKI~he~a;;diRQ;={ zPGn^B|27Bx8!q(0SS>qn290c~WCdTH>^JqTqh1%w-%=2vtF{8^20t6;Qe8O^N(o$M@R5 z7dlJ*6F3b7M2|+xym~}$TxGoZIT@H7}=p_Et|gSLEX?_LPtM3hhe_HzWJbk z+Pc;w1-}CtI65E$wyx@+7-{rJfzmE^%iwonwey{63Er#>p4YCm>A#h;7 z5@8RvsGh+q@9=cq0|sw@i@-8J+0Th9ftK444f0-wii(yeAFt@P9Yz}HNvBj@PZ(O? zdh6a-gOw;#i(Re9Q>kLl#gJxhb?|cRqID_dKT>xNYfiA(;rMWGqFr+7=2MhBRn~}M z8ve{`eW<#njtm85Up|W{6?QMi;78j=^yHKdseMhDF1Gf%^vWggh6wv_dkK-pI^Yk& zzMWuuCjp5Ru2^p6VmFycv3`XYxV?VqBq=;fLO_VkPc{$NW3#evlEh1z`8IFel;Df7 zH-TSj9C7}+Lg%pea3<4;j(m>_9e`(I*WizPY!OXFuFe68keADAYLpvlOZ$4g;bSlE zA(pnJ*D%`s_DjQhTqDUBhPuI2l(e&-jeg4kJ~fv~8qwA$YPW`H`OWl`#iu8eI6ZiM zWM7!RkK(h2xnVI&sd|&W&-4vMB3&=AnVPCDA^#BtKiMp7+J_55G8?l$TD;(46un zD7?aFYR-F<4-%(u4T_&Cd5ldi!GsR%n8hdlXjO{OI3m|DDfCodf@E}pNlgSf|NdiEA^S*I#8q-H4 zgI#6Ai1%u(>359t5HZe|t3C1!NAhn}7qeKJ% zuf&6`0yvYM_}ZuQjZ-f5?TKRDBOsty!DO+;moO{=K;L>cWSx^oNGhf^*1}i6grUV0 z<`EJdDfQO_Pd>O`(Do-k{L!d6G7UiC?(X2zb?fUlK#FY-x_1SgQ{V=M52!qJ zHH|~59s#bH$j);$9~1zeh3D$ZO}Cc@RQpc=S65G?@9;Z&vdcau-?{QAc|Wq7L;1f! z{y9V+a5HU}j|=8|hvwzA26GW?Sf+RFFI9M~Px9ky-pi!0+qVi#RX`nqgpYg07|h#4 z{&o4m4*bO39TN?#Pc@MZ;NyB>^1+Q^4ghs^#bb2v>z1&lzK+iE$kquJ<>LRi*`++v zUw`Z>V%{9dw%ALG0evr0hR_Q&V~7uSQ(#QV)?M>oaEWLuF^pT!MtNib2I@vB z=D8*^zZ?ZuZX{hP0%g<3@tysxhkOExBDnakY@9TjiS`%Xzl0HJ7FlHw@s>ZW&{=(# z00L6h+%~DSHMLceL%<)R3i3Rj$Dq_4K7!hEZ~b#YKH&#!Ig!KWKyzzd^su3rTRnhEF&rAJXwcd)8AJBq1+t+Jw|t^kg-`ps(bL|lBN=!+b)$R zqkAQ&Xu_MdBAE507jsLB^Hq4g4i5n8M%i7%hm?*GuqTFzsQ2MZESp6zCooxerIiz6Z}<-A$i(bT*Xkx4HN2~a8JeD|pfXD& zxGd_cH+bFKJ~dC^^kR6xV*1dlnud9}LEDhxzD1$;Sv*^}GUq&r2sV18aqWc{n0)tt zD%C9jWdN`H(JB18ynE`0FpqxeH(IJWdPIzU;9Gdu*acs|tI`W2e!_eGmgY*%C%1XM zKI*U9ZD#Ck%qiv&%F$$^8+rF&UXg>>Upp~!2A288UHMn=18g)P#j^-l)k#A$xr)Qo zollC?;8o#t)5!(lTMu=tuwiRa1s8k;@2qwi)cJT;Ce&R>6wETyz<=bATc;FX-o!x5Mb65E-tQ?NjI0m&@(8(oJ#9KK{t7TM4yj zu}p1pqM08kb(*Tp^v2Z|5gPjWEYfYuGciPKVsuyP^pnbw8 z8m9H6%hWPzeF)rqVsir%p(Ws@{>#l_?eN2X#bNtN)u!w^*P3#?QxyBMvYt3@G`HR) zX6`&2L;uha!|VO-w%fJ+>Y+2V;(MVC1!aBuo@CuRp+rfC!k-oAvyQ;If#EZ{Nz81# zf`NxkVAQn`+i_9!?mplyFfJ$9%UxkyUXAd@6&pLY{q6hxr7<9?;9|@!>EsiF=&M6w zOBfhnwxMcZB64@uzXVix;5yH>y#`QhMUzKaqdJ>jm!guB)=~xAacrqV1)AbXEtPu2 zsHyHf^-PKYKofrG(p(uZb{s$^ExH)M*(t~UJ0k!4tFYSuH*o$0k__0rbg?4#Msn=y zG8f+Q?R`C8>~RfK%tLoApUY#Tu|AaBnN(X+sBC8&Y7p#KMs{R-;_tv{DbxTLegv2n@~z zupFA~9ye#Qn#yhMPdq{Kn!b?{Up>#V>$f2z8@?DzXY6yc|3juBVzi`Pnj!CCRi_jM zs3_lQM*!HH$Xvi|{j0qegC%<57^De^4B3_x(j!BW7m98t#Vr5(h{5g8W9wLxORd$( z5vqQfa|d`IZ#^an012XhrZyAIt!h46P=mkN9sn^=+KeI5{oP8b#Jy|O`zPn z?IJ7SE4>=+1_HNXe1z8VJTHoyT)+3j{#|I)60n=RR(B?Vt1!2e5k&}n=ajh0tEcC_Mt8#aC?6)gguur?>57*+UR`DE?5g-yajov$yn z2}zG$P~oLUT%fK5)m6iQw!X9}_j-2|P}!d%&FJrD_~nHy0B6k|gYYe`tT30>FpFv5 zgRD~YOtk{a+*ry{IHBOf^=7UD7mP1ms+WdMj{TV#Fm(p+F85}s z3tDxF!Pj3J-$@{qT$7FA;+L9F33#_7&G}3VvIngF-KIhRk2I9oMz0|~_UN9h@;I^o z$daGz8|)k%vg4ih%Q=|`D?Y91E01N*lS3XO>_Iuiilxj!Tn)&_i~w3{W2pW7h&N%m z#gF(IPz&~9zU32!)zQQP_mN9Gu3JO$RRWv*?J-D@sfO}!;q+um`bqnXFuD`d!xuz#)4wjeGjL4}=1MIdvj;2j#L`W(oIAjWT-`HfDTnUO0w;6@_*ITx8L7+y+cKr^rUac< z!)}uju#oUhCo6(L%Ka~Q9FxolIjjM0K3)Fwc{OXcl0f#w%$B=^3!aMpv92OwACwA(#j zhoJ!Y;Jq8nR75IgJ(_#7NTJ9$K`OP`QK;IRb0TLB0zK2(V;SX$!Mm4ENz?>(bEa)E ze5|-CD#LeFUCxx!Lf|9Et%Yii+bJ}-o4un1RM!LR?;F)0H{^CasK2j9xW1XwlkT8i z57=?_54FUrI2n6F|C`T|J%=#FCOPPx5~e#eUgJA?a7tVL{cX?fPjJQ53ne#lx=w`9 zJq~iF_$#=9IW^vwz3ZLd$mpP6Mq?T z*$qMnc|x+*K-5=fuBahcxmx@zluHLU`O|}er>4oX`&(OE$okPyBf4WRFGIDp#gzp& zOa-=-$ENq;ZmaTsggC2tjG{9+#0mivsLxw#pi8Px3$L1D-T2|vEriXvE}Si; zoDPH8T5pIodO;H!eCOmu#d+DPtIRc(u+zOYA@HMHLf^9 zOR1Tw#|B=Oy-hrKv`F7&WgOZ$)%1$Yi*9hmlshQG%!U4QYU`qJC)QMKf4g$EI|IO>H>bv$WMr6`x0rO8Stk$ecHaZ~OQNSa z_Eeb+KwW*n zG8k?kg=g0ytP{LIF@5)C%$*~O)oI9iqCZ3$vu`-q>xcIS!WF3W??DD4W?|Q7EVUiK zrN82;Q>*QN#6tZQ;j@-IbG)hDjyy>EVD4KSU%=XQP485c`j=?mqg+eA_qcL?ncv{W zoJw;Fc<8>T*257iUK^kuD0LEudK4?D`_&wJJz;olo@Q?W4n(7243c7ZTh6{7tXMJv z509UQG6tvNnR!Me-`&%TQqqsc9Kqs8Hh+}pTe9S`+@{c8)8+GQsklM$2cfJvsxnL= z$pL4X3;;nqv%I^%jZEgbYib%MbtB+KeL_cj7QIIPgulEDVr%_K1Bp)0oZ62ta?Kvq z$((p6{3ThW!fE!bt;@Sc-u^t2Ezht@oQp%VF1=N0;8AKC0fSOei3WX+dWV`T4}Xs# zQ#$l`IBx;}SY{*2jO0?;xcVwrkD%RBtb?5hqFms=Zq(l&Q~K8Lq_QY~bX580z`!Mo z`_Wv;G$Nt+LK$wLWdgyMKcRK zVD#x9b|^WW31iAeS!g+xf5Bg8cRR?XcJOpiRp%WfnWho-IySVKj_J+~86p8nPEa3s zc&s84f-bGrVxjue7WskN%iX=O{FT}r?MhrCy5QBTn*0zs(>_U$Xil{=2q?z8HTYJBapycKz@mQWv3WMGLgT!4`YSWy`=MQS&kRZe1gc^T1C4J6ED ze(v6JF}zNYPh|KR=x{tpM&#?kvzXCVtaRYE2_OEwvcar!_8RA&#zCWKpA8#wn9c&RxqP>JRAe*;m%?UkZ&L|WLj#^ zlVql})`h4QcJlUN%P!kTD9~|oYx+(#91vm@e|^g4a`UfYg}%Ae;cTe3|_$BOB}qCM8LgygH1I6clp zp-82ymLHcb+sEV;g5=g+yTjeB3$J-K9}mjFUNNY5xRGx5d^R?Vaz;WVCa;&^k4uDklzXk(TFODk7w4A!hrIBZuk_t? zOXT6=?|HqkQp1IU9@h|QB_};{miXG%c-GsdlwjB^eu{Hp}B`}9us zW1srpEGvI2Pu?z@5=`bdwbhN0LGh2$*4(gV9%~anOIG%<*SR^2(iF%!S$$S(qcpzF z;UUWtX{fzI8Jcd(n@fo+IJfvtZg?=zLq{(B6wxbdTv0(G{)A;Xtw zp?zoFErkE8iwB^QzJxBE-UER~$= zNDgj+%7tCTdA8k2Ib`QLVCbsP3UPiMQg7JMl4GEyLPvf7VQP{}d2ZDa_jC*4kw3rs zDvu^4bBESCK_bzu=GQq>67W3_BqSJiAfIDmLp z+KXoM@1`i(ubD=aw+5?Ilj=X4$3u#b_LU_rX1EPhO}6w|oN0x>rzXw_D{XjmST4pZ znx-%dkoIk5ItHU;d3H`TGomBV+VITbzdqP}v=oF+_n0gv5_t?P2dkkKRn1#k)8i)n z%!gh9euYxIdx%ur0O9^3{p~sZZMb!4-;rk}isdZZAAoa6tjJKte4gQnVf3ZA#~jKB16IDUgz7Q>cjT4e#V4;SNY?ebm} z7daO_~)<&#fZLUlB zRKoFZYcq@;Jp_5XN=J4?O|B41v-p#>|M_a#el9nRx$Il>WJ{I75Tk+qWscJPhwKLT zEL-A-ikCAOzW7TI(Y76&zfJOpMDZdgdC#-P?Faln>3n*BhO`Lvi{+BINuPOg1K7<^ z1g*g5T?i--Elx1e8&D}EM~?FO72nu^&0JeehJebqce+u)#Q zs*6Cvut74HT~s?YHF_w(xR9KeOR#6U-)!;Nu;olw=R7t{HSJ;EklG?G=>?=l6*8dQ zICaA0&@kILBFeH)f2uv2i0~+cG@y==sUV?&Z0~SpSD3_H!2|E}p?uV6GyU z7^^p~c9vz~Mz9{g?2Br=lbS?FjJ{H8TBT!gKq{m&qn+_%IdI*T%O2^ed;!^4gx=+E zUF0itJqaqjHPnt>ziX(a8>c`UbYK%`3a=W4LLOD-!M_-nFSq`wP7&JF&n$0Qkb|L_ z_wX+Wd^w*+q!oH}2nFin`iYOy;)E*CrlK+)@|eT~ku<`pUtvDf-Yi&g1Qn~xH?vKM zZfpuKBY#kCZ}D2@&xd2-Ok%GaDhz2^%qX=~l@AoTkq+_oS4UM0ew+!AUv#LEimmzRZ>m=Pu!NW~A`gk5U+Q$A$52tNy4yripl(|M?0M!GJsG{0E;Ek2=HZ2`k~ zveiQdu5uffw87)`s_ly6-D2aI`cUJxTYs9a4o>WfVE29BppF zK@!xij&Z=AS?orl%?C6ZEp3_4gj)Di@YFg&RP*6uZfIrrMxHf0Mlha>URlav{ zCfpK6!Es&rhJ~>Y9uYY;sql^LtFZIeaf7u@eT=y*&w>TiKc3T5Ubol_VdZGec!Vl9 z6oJ&8D+=s(z&~SSZ(&#cijKz0>_k#h_u$xQ--d94 z6x0W_DrgjP#xEec09QlVd5YtVp8*!xeZc0)s*ZU1n;4PU z`2W?@6;D80(~my^rE=Zp^3tE5A<##-gM)+Uv1hc_SaPN`;tBkPgqfPp{{Y%}*u(hD z*zV*WF3YOxg68oe(2x61wqLWfoZ(}4+{fNSee(DkZa=1di)&7wfKa*P<=C@z&Y;1S zeHNKnw&_a7#XpwPfyVA^{MumFw0A4oga6`~NL_93W1=dUKT1Awf9Ls_gB#?bXR5h2 z-dV9B*4#UU*3tRAaBP{VFC{U%uyQG*5Jx*8Hp9Xbv^80iHRe%xB6coRcoO?VhcgeD z8tRVQ)?b_n+&ILo#y-XKr`^9{Uu3RfMg5MYVt44!_A6ho2jEvvm_!tQu77SzSI=$b znPSUI%*esuV@76MBEWwZ3dD~n7ybf2e=`Nwmyn`A_q$|z?yaGgkc~OFSIyin*IN#K z4SeHL_}%b+l1$MlnvZ^y<7#OYXfUx5lOSizY-%sVvui~xbD!l4?PAAe+`_v>(_(fj zjYMEQ1$BprbP8)+_VdNhuj2wxXgu`yz}LrO2A**#h4nkj7m5-Zj4RCHZ)xjMn>Pz3z()Fybb#<*&$?HvE zHs#4ht`c$R$XJF}w1F^3X`7DXP_ayZ@kz@^QRg-1#cEIey$jY+^&E!mf2jX-#ZSc- z6AXf=>`g5qQ|}99^9vO7>qJlWo42g*$NSdK_{$TW&ohIL*k!iv(`QVJmE<~v`E`6e zEAX+RDqL%C_nd@oR+LpNzL`ce7>gSX@vxTqLZys!O7bf-)gei_ZKdY${F&AQzE~SR zZ224fXB_TpR+EOexbWzMr-S+Y>dJ9gPoU6-m&DEwv_nHGW*BRPwH$%nKYnf663>2g zOXU8np4%dHggVc~?5FE#&J4zo&})1uW^937$Y-Ovn6KAOXCYOdJR=>yc+p@d1`iEs zd;fuqus80QI-iS`n6NByZwnbpZ@JwvOzie*guA@$tOzH?5r=!Ih!K)96Gwb+#*2EO z3PBO1|Hy4R7%AS?S2q0W(IY%08j@f;VE1Cl)3`9f4zZ;8dRd`Z{H&eB7yRId^ogc0 z&%aDXyS-)QVtO6FRPvkJ^FuRe)lHgT71dS&^7Y+NF$qRu1*!`oafFb`n9Yxib{)B`y^+V}1z%IP z-Ot_+goF{|Evp?5@GQj#!p#<|woP=cKDL(MJWIDgq_NE9ngb7&%;O}L0)FUoaoeI5 zL-FKMtsL^M`9W{?5h>9}t|wnl(?67wE7|GIZ&GtS92vVXzE+pA2=^)uL_&J zjbw@oiW!ZCX9@`IIWLaajlaAWhaYeK={l9*!I<% z2KEN1@X$_ol`;4wz+T_wAv|Mm zlRgtf2Evdv3FVeJjlj6Dj)x|TiMtzf+Gk%#SKPzad!eiq74A>XAFLmKPd|Ls+)NK0 z1)LQ`a1upe!1<&o&w+H5JTefinJ~Ff7My}vqEJ3omo%Uq%3PN z&(vRD*#ydamxoM}?CoCI^ZJq1PnucXXSvvz@}ZLJwcETKH>nstMN4IO+~Q0SL46T^ zpgwO#D2hpaDu#e7@b2+Z+e<>dKW-Z4x~1S?$=Ec%;J4l;#t=c z3#XZ4%{gP+O$x>sh&)07&u*s2xWEh~*(~H6T7#ASJ%k@XkmlcQjdi1y>_|FSx&L1Y z;A=RCOIan(x?zuS3qEhuWu-a?#%Xi6WPh&8(NjbR$e&CKg{VKeeznwdw&hl15J|f& z@$sev7w1!~Gt|&I1R;@&%lx_-iCu|e*uiboxMZ}s)^4O$4sWkq>g(&91)~a-`^m}M z^)5@REoXTsfDlN&hL>&S$;w^&$-&`4Y^1AJ8uWc%9LT%!TC*~?9`|g@;t_v3NP60I zwgO7g#|Au}c1ajx2zP5+0e63PUlo_0{cRj%0H4P>L(|kCk6ULr4S*lWg#|B+|CQD1 zSN_1F*Mp47vWK3NqZCItQIP;@3?gTr^`EQh`Xd(;@y>Yl6jxkv2?@MWjf>{mwDiIu z%GLq$NJKo!a}#;d{;H{N-`wEPC6%9|6%0IgPwPAo!YY1ZDg5xtdaXb7pb^C}M8Dgi zL{9@U>HE6d7f{Db{IcySUs)u!C7NX3o_!&*Z;%HCc0y3CaqqZu;@R^}Mo1{A(OxCY z5-Vz^dAa_~n*XYe`E6HaJF&fl-kNKzdv-?kF8Boz5dL5%9T^xfPdHPpf&rIU=9=rn z*}Nn-rqZ*B36a@1yzTh>7(LWdp?p*OV$^4B%{fFkPO(vd$UMQ%C2nQ*LhhE?Ye}Uq z@ZR6z*evKDe`i_UNUQ5=tQ*>xDDOwpU*=#mS%jBMFzQ{5*YrlM_U#hS4@_29BRq}!1adAJk-q+K% z(1MpE*){YG3=Bliscs0WWDyaTIP5DDTaYnQ=Y|EGY>bzLn7zM&lk44|OK|+_s-ecm zlPP$`Qh~mK!5SU^#I7|hU@BDsV>3^^O*e*GsgoY5_f_4{PNd~Eoagp?X?*gAMf#SJ zX2}-lV=ZP`lUo}Mn^(^;7JCHJv27cmi$nDas@?eFaj-(soNld`Yn#{3h-LDV9JBw_ zQv)K}W!y+Dj*_nAIO7l4QNdMrOVyu#5gL@*3T19$l6TMxepG6L+sdFTTRXrI=)b?U ziMw%}Tr9Zg4ri{{geOG1Cc?56w?GA&>(186WRuR5#}g(xIvI;gOT+=pxPi2k*)W6E zc?j9gCE;8yF7@0y44G+yh`TRot8dc*L>oZClkuRLlatv@U{aRDSsH8Cv*?o-=3 zg5%G6IhH#u(?H<9q+@mfiWvG_=c{QJo%#uS4lkhh_~kU-Gnj+!O6>=VKtg<)bNdY@ zY)L6*_{2nSvR9--WsW`M*ekcIZ7?NVS{-%oS2mNB>lcsLL*bELqD`k1V!CF^@L}p; zOcXlBVeJb8dnglGxz#JmtrUe#A+<-N#yQFXcDfMi33aGQE;>x+1;3F?V2tcs`)Ob>(SN6u9#qpDD1duEs`wk>oxfubfI3Q<<{kgfL17DvtX9P z)O9d?1Y&TFsBY(IwTj6-b`lI8(f@9pMRZD?AnqWBZ>LhaXOJUMIFVq8(HAS0yP`cb zHw1eQh>x1WoiQt^7h7IjNeK1zb+|X5bPsD%i|^!nl0%E5Y05m5kdB5HT^szMjH2== zWQa;_^N0Omj>OFLBgzVugk#+&p6`k35A4TWU()gAyOj0(r&Jnj%_mlX{>WXWj=a+G z0Lyfk?a<$eAEk~+eZ9Z2(}|Bt#g>P|4YW-%&8Db;5BgHm(ibQP!+gF=Y6FfhhHTnv zDb;)yp%u8HT{~n_D#K~FkOCHxt1zc8YKF$f#^#*qw5Pp7C(wpq)-SbE6k$P%?@KTv zUnMV(3wy6B-ZyFqah+fM9*F#)QM;EGdM%V#^02URB#?k=7?eFFdi(+`?T%XU#oo`* zDBi=VBo7F8?^nszR`6SCf@0Mh@kpkPW-h)OtL|_` z>XnZhpYZN%kFENBCbX}c`7r)we9$M=YoY7CDvO9-(UZGR3^@L1FklD{$qCnB(?iNS zm&~WMnL~bYHob$Fd1avPeQSigBC`zd-Qq$sX3xzxpP9CzCU}I$E)NR3&P_Lkf|4#! zGDBzlYCGpM%CU(#ri5N<|G(!`sDTFVN2aq~?fyf?c<@ZCT!A!P7Hpkx@$t?3?YKph|hAL}T zDuS!!(ww?K!VDBO&B~`BfW)E~@8v#Wx;U)R2hWkt+psP*d(7LrQ%=Gx}VfMD;J5PK|EbC`s9(!b5%<9+QzLNj%4M#+S zRFQ35KJStImNW>WF`wG?MfBD(C|4+O1GR>?p9qAC9yZ#6<{JU!D)E9h=B7S@_Wm6y zM=d<+vOaAY?XEQ|;f(5|4vkwY+4YB2!`%*&|Fsh5u-|}PyVD>aE_;!(d|XjEoLjSx z&U?k{*U#@&Zah_zMsxI(gW){ROuL|QPgP6+A2Yj3&1$*#!y*GrIRI!bH1QcKGVGCN zP~~JkS?)xLnWY5Uth@v?Vx1>KWBc0`iTTJsnB0H&^eKA2I8P!ke;p@YWjvMf$~l^E zDsi{2&CP(SPUh!Bn;dH;Vx#V{97{kM@L`B2>TICVY)-~d+Tc-(boq87S zuv#dCzzkjN$I)%OUq6>ORy99s_r4cDx*`3dbL^|rIyN90IrKkX*)Y!BLi z-Z~SJOwPg2$TZiLKeIE!{Ux@qG+i%W1f`oUGDiby0XpX)hkSp~!QKK~ z#>jgqt`eGwvdKTnk=RLe9{Kj>O7LLW{4yY519t?@c6fgySFhv((@D+PQJ>0)m1V_D zv;pa$!taI?|L2?|L8&S&XRrLh*7`(vV(kdS$29dThld3$Lz$>cH26d`;$PVnsK4HA zHh_;K4xF{uK#Q?zKG?!bv5L8&LQqPuGaaE;jZt4?cGv6;Km(zXe!jgRiNz%WszuS0 zjk%ikqn0_!3XR|GBmR~VSvE{ht7i|1mea!cw`)UatM^g7TBfEx_X&3=4~WZPU40qE zgYPS1Is*gLn>lpLZQ~9Wh2T7CL5IPk?kBZ-?i|jGqb$QiN$}A4ilV75zgmzc}H(_4q|l z;j+->l=I#5Fu7pA1XI`EwjA}-VfK zN$M07@=M>C=Mv`bX;Q8$n{#&x3=C+ekYQi^LNM%Y?5cPOIz7}hovf};(rZnRf;xH! z<(pJBn=Hyha~?9&Huq%nfT9ORf+~(?9$cxw<|BXsk`X z^I>E(4^_S&*j9asURk7r*G});i1v9xdP@I8tP!Z=yvi(sN>OGp-eu-O4di;EdYL)% z6=^YIqB3c-PU0WK(?t;i8{--?pa+d9Z``kDP~24A{j5HH;c$c3Az5rkKq-N;rS2$i zwbCr~;Fy2>m}=t1d4uuY7DzntSWHeM!XZ>qf66jq9l_OX)Lkq%U1u@>{0gOc~xn z#*op_(mw2tACD*n{XCA}M9POi%Y9)-i(DgHB8J9Y=1Crh1ep1Lmt2-UdT#iO7cgk% z`xlutRWGy8F;B#KsH;~F0Ee$)OKqX&sY$qby-@dxcD3|X!QtbgGP-y3}&&o2D7+%yw7=milUF81^H{+ zBGQVMUI=R3O6LP7!B3qxG&tytHFX(-e#3*G>2()%OCHWfk$d>IEv~fHthDO&f^mmV zb_~{yV02TIbIj0crPQv3c7hR;ux)J3{7Yje2D?Jjw(Y{xaV;Vhq|$>at-F?u6nfKj zetN`wIk=qDZ3)(?+xB9s;SD&knPKUkpc@jiq?cCV<1kEH!_@4|pW7#D)JU*-BsYWUM_mW=xzpy$lAv7! z$luRE{r@-LUsTD>1I)swQx9QkDbSg0dMSpO0-8}_Z%sAl159-fi+6{PskhhWA}H*U zn(!H}BqSq3{;@R$4mYO>jnj!k~Zt0wm|hRJLoay6PXABm$qKq8JcR_wq|h zT3lUSgErdQNc%fGCkBVMY}}y@^}9oAO%O2^s_**oUTGJgrh=v2Tc8(_?@pZ__U!tph!ONwK!VODT*UE!J+2ZvJNn&@Az9%2w#n~4 zQU8NXvVqpu^_|j8WXo&lPTaGvv03pR+}b4dVawDu5zlDL6HbRtu1}S2;V+*ibfoOz ziYJ^>2juWR(ZZ_%k_Ia#+8G3ztjQ6TS2a_zwz$=o3+PzvUO+eaO2sf1Pgm@6i>JrEs1f_sC`&$}OZc6GmV4+yyA2ERZTZLf*fq*< z@0^4h2P>L<>6&Jd0Oxr_@r>)ZQPwT!x1&o;iyyyATw5H*N@PAA!~G>eZ%F&oa;@Te zqGd+cD{JPS)0M<;_9#0K_rqYd29++J+Md^RXnFNkcuCt*o%bRJf7Ms0ktrDMzu$VS z`p5vy)iCe}87PGoxUOaD`5R(g!nc+~tOQ1qR}Sm%M5S#HG`u#j)SN88PaR_59@#Ax ze!WZys@xska)#{Iqc|5McjdBd(i26)v%sCD?^ z0&@kchoXs(*U5#&D!ADCxt+SQpf4g?(8qIKVy-K@>B8B0`<%|T8G@USYe__9{^J#Q zK(O6MeJg6vd~iq5(Miary6wF)diVi;Bqw`ZHxUMn>d+j61`PI!w zGw2)}N?OjVJykBMNeLjuvJ&Z1UNjY6aI#qcp~UKZURQ@6&>eXMC*ccx2-vFk*f&U1 zd3iY`4*AMY{)3PWdhQ*C-MpCNzuA^U5g2u9FIbZ~agvejX^pw-ZVs*bLaY7x;|uKLD`UWF=G)k>IxsOUPkfZ}IEsToq5Ea# zM?LA*BXsYLc;!GVITEKtd6ZYky&B&^V)q#mGIr}E-%Y#`3U6p~WnMJW>(IkPC&Qa_ z;>vXaBj4`VECS8YvhRWV!Z#KT8)Ovx;SNt}icaW1$;MO*!aEK&0|+ zf5U>1&~vkLe@D6Htz5%UXn_0CH5HcQ@$Hq$^KSniaqk({)YiNYD+)+xDovVT0Vz_H zCLmQQ(tC#pNDEb}lz<2Um8K#sbP))l_nuHxM0zg)0g)Q2^n}2Fd!FZgOn-9S9!=L4$jYI&8lM5M>%+dylq5!(Ut^E8Li1wxp$yT{TN$Z?H!;C86Fa? zyyZ}lRm9B)me-)XMEQp^eSQ|n3M^D{@TT4a;9lc_CWuPKHlFH7xfj$PT?Hno>VT=$ zk%265H89jqwlMpNGT@Os__gI1`o*C(HOOEqwE0D#&sNr2kB`*r$>&Fv#b?2Hq#rJe zzQE``>A2QYUrmpWt%SysSx0wbLyz~W?O3gOZ?Kg`NX~wy9$qiDR*XgD?)QcNRo6L`!gp8A^FxEO>Gqi%|ClpjerngE9W-H!pQPBwlocEE> zN~jN(A2U8wc%Q6lqVBX2z9ao< z9Pc{y0B;oX=3c{xGdem5zzIEwEz%$9{Fg6%^ArYqfGH?=MV)f~BAkB91c20r<&!-A zjANe4c96Yg{)=UsPj~Mp%eFs*u+o_v7s*?PR&M=66Gx+JdkOw;rc4tnf=s>)+Ez+A z^pCvu>iSnZ^e?==5VDQv7D#)}dkg5fEQ59Ky8*@RGi}P>)~RS=Uw5i!M!kNZa@{a{ z#p}bY1k}x1bo&CW`Vt{@ zTy9HN01 zH);-2m50lv=M0F!Sx0?r>)v~$a;5>xEA~DK&@~`4v1R@smJK1mM&@fHiuUudORW2l z*CKAm)7Ne=r1_OFUk+$Q7|;MT!{uh!zot09nl%kr)QhvUeiW-=2YzwNG{ zlT>@dRU%Mtx3~*f%wda?bSQUv^@q$?x@ZZOid!7Su6%(voUC<}5sngj>AU$3%83{0 z;eVvCTBlDl8z&a?5Qm0_9)yk>r~~I7vRq|9Y5lA%T;R?DyI4n?3P6H7zouq`kf|?aDwmMvX#ghU3E2kI!3c*~0&vZBm1-9~&#+DLcpZxK|mEj^boKt}B}U(aqnqNtTvbYx#Qycp4#%UYEz z$-Zym*1w%~+}P2$jWd0a4AIH)$ftY|J6=$QWm*;=I@sQ6@a&HI?Ia5~HfdP`9P9&A zM0s_x0DY>L(j0Sa*emYCi|!kh)9qwnd5cmch9G!uc^=(Z@Pk3-e$-!a?uQ$daRMxD z`bK{=C?UdRi+-|5GmQ@>X+F&mOxK8Y%HMl_=hm`g^8)EQP8EnoR(vBSHILoX{fonZ zYvX5}At{{~1;I*i@3%Z=!tt-Q{?S}2J4gKO=PKu-@*djlGxkk_L zVzF2cD6|payByisUL0AitM_j?sCi8Dj%ggzE_IEX)&FeqmYsAZ@ z3WtFfKRTA%B4K|qV)Cb~OGwt685-K%SzlQJ;ttlLMsxJ;^p34_ACUe?{WtwlaekoN z`~KA0RxV4*lWfphQT=fe0R7(_6nBS(LQGBMTU0EB0BXkH_bBWs5nzd*7V~YLIR46M zR^a_{>XJT-mt!Zm*~UeNzjPvr8epmkH(c`X&$MuKc!Y%lS9p95xB3-VxS2iqZ$ahH zhwE7YS=Nu7ynOCt_+IVBo;wkr@hW>vBT*i?854^$*5EVp4xt1Klgf}wfI&(U+c3ylJ^cOnyzuh zR_mAf(43H8g7*w>A_spTqt&7mU}{)4AGC2RmVU_>+VQ?x0NVFgPS$4E?cKIgpM_mP ztezT4`zr0z8q!lY$=Nuio+8NU06&47rqy#{>7UA^Jvu$zu*ZoK40@&9_ zVE^eChPM5&kBt=T^^23q$nxz}yZ*I2tuz2w@eNe>6=oC5)2Ln!xz&(RB2hK?dx-e+ zOU?lacD(E8Tam?C&H%DncXM7<=}Wrenvj1VlrQ9-1}GJX6aDF^K&*L|7{l#2URhX?!e zmd7Yg^Joi?%XmPptbQHHR%bq%`v7_bGJ)IIeoCf@E_{rCtpAgd)?=ZI+|l0E)h8C< z=bj#?{q$2t&PP*bOUpX|COI`+i68qh_p0q8{;%+k?W%V`80)^gGn zD3Q-MipWefG~;N1tKsmc()-aBed9nW`&P-0c$inQl%Hqco|cb~&n2TCxD=*~JY~uc z%UA6?T|S1NS{J2?6lMcdOddD~0n}NO5r7EF{8?$$Dc?4L&ErcUpzPt&m_c1N=I1E( z_}hnvgMMDe<=H9t+{B2YA>Wq{H27cYkXlG!kMi94+*6K3igYb41v z7aif^w{j)mE^dq;M1ZK#Xi~wxc#@(g)MkZa-1;xYnCHzv1Uc zpcz@d`?2B$^p|+)@6xY?K}`3qL`#c&eTol&Z0H{a${e+8w)CkWmsW&&3QRU$6=#z( z@Ov5_&5O`R=)9M}go+eqADKaK~c4 zrLy#MM4#Bek6}Og9)~wUje6Dc#_B*l*K%5ncQHg0PzU@ew$VK<<1iP+{`9aq=y(r7 zg|SP>)15qI?;TtePd>ta;hijdSTRM`#QtN zBfH_upOu|t(!KAU3>MG793L&`ujMD0UBt0?P6umbNo=V{&Yep0*5qsVG&2{9hkQZK)c9Zg?SEBhs$``=T@%lPk|W;fJd3_5gr@ap>8 zSBmQ*nW0xR_r7Y^A-K5u<>a)rrgUWqm~<6Vx+MkpQ$0Wq>eW|{#@F)lW%b8fl0My? zN%cOqc0RciNe5|roYmDmjhl^!cWnS!-IdMW>;#MPLmABW{u$<*g;vQd`QFSQFTuPM zFiksgo3r>2n`zGScF==_7VcDcZBAm=i#if+l=( z0ZA*oSq3hboL^9tg3$_Ke>B`ElUSn;I<&S>-jA}5zJ(oUH`_&4ihGUg3C+xs%|{0v z4cv7OktZ|~0Ah)xa`Z8@9B@+fcYX4had^V}Rf+7czi*eu=_4-_jV{hR3GjZVmX>F( z@K+`5l+0E{XGkdAP8&FR>GFGfdM1)O#hQzV7%U>ob_`6DSgWU`F$vb1f)Z^u3E(tJ zGJWfCfG-bjB(WAeHqyIh&@~++xoc#I-MNU@&|9m)@|Taj8XnPn~pE7+N5731thM%uv8Eay91V?=o9rgdB7<<;FytZV6&6v#&oy2%mq zD*6-wrNAXs-z%Bmb%6b_&he}Au(a$J#$QNZU6B|reVs)F@-{zsFT0gmAg|W*2_LK! zbx@2Go(Qa8ZRzse0!i<%B-=o6jfY=&$Jhm3+d7{;lLzmPITpKI$(+i`gD_mS!iR5* zIOy~4Px?$z`Ya6vh@;YV_>Bs&Z`}n}ez^!`v(F;5jkw21WQwWDC0E&RbbX~YK7he( zbaDI{&5VO>77vO6=OG&zn`x}zR1;% z*8kq9L)O(XBy4;QK+cwwbZ30G=4~8ryOi$?7x_ZLB&YhSp;@bVZH3d5mpLdZ-Z3RY zL<_M<+GR)WsrSXsc?1>TAV^VR#*ZV?%e_~sjDHA=t#+`@?FXvVx>OeFerYWEHO7hi zsS@zkDK@2gEcxodV9h#PT?<1LOaA!%9;xGis&)iX+Rm_Pk5k#^CtGsN4HKPHyR*jx zuu$ve;&1pHgNNb^sdgqI!PlazyKam`i3AM>@_@vCmT~d^-3=~|SqJRO7}2T`3y&xf zv%-?TT?;@empgWKCvaZWYuvUNwHT-&y()}e%vnhFh}IVT76GphTql)ri-^FC>!V9V zKKb#)a%zfd-rWpkUNwMzhACveg)bu+9l*)1VGH>m57X+`ErH|m%3|cr*4{EHci#`7 zXuoR6kh+Y~F+yZ$&CMBpx*O@ru&CC*j{TMxP>IMqI z9T=n%gihBfHU})pPiEzpUOL&@pI8dtc<6%Tr*Rlk0kOdU^->v`OxQ&> z6yb?=UuLsqpVlZb_<)A^N2lu5su^1`SD~yA{=J{x`$wcVt?R0+3hu=0VWy6yF+t!% zGYCC09Z~|FUCipb%@HQMxitt-4Bn#_nH8P7dyAHTCyh4r;N58}6+X+ZRtAfJX38fQ z*(L$PY!b;O^&}UiQ@g-D;!ibxh}z5}ssN9kGRv~w%WVLpzQ$Td$||`!jA?6-GV;gj zXourKUM)U@!4&*s<^cS=W<8wAmrcT3_f?2_?puFLwqJsJo}XzD_Za8h;$m}zVhu=} zsr3B$-Qz-(eQSY-6Q#ry+aw?rZzVeM@Qmc==5r&58+^?6cehr``8{g}s4_CfJ?zG` zwOippugs8{@f?oX<@0X6cMWAq*r;s{>iQ78|MBsX4nK&DkW6w6yuSchL0lrwNyajIQ-SD$K#2 z=^%bO!NA=yyQ220-9F_SCSTvOLSKX&k1)GJBkd5&s;e=ioumBP#h$V*Csn>>OfLg* z7gLhq8JF#9uA5sn;*y^qfFtCm+|Qx~8V}uf=@m!Oj;O`;na~$BU61g4PR|H=0-rPQ zh1ad$pwK29!E%_M%mc(`Ude1_K|b3)5|=l^+m=mtDrI-19G@nk;@tyevd!vEM!4rJ zMt>Pe2vz}-5CfH}2R+O%*e6fX(a)dHhRz*i(5aaD6L!X4ZG_H7d#Fo5&mkmqO`U7A z`yQS<-Wo`+E7=%ZNE32J9oSk#APVdelPQo6#h9t%sf$DKd}OHT4?O?=l7y z9^|Vx5+|K$G$-2x0uNNHaXmo?5o3@DKC|N&figSfi><9MMC~`_ENi~5V@C4e_Z+W3 z1f$%hgNwp!8kX|m@4x8NBeQ+C0R8HcUbYbmU6_gV_CV7mNVK_%_G*6#Kz!MgXckTH z!sBZZg0#PGLpO9*PZwtruVGp)%A%!^#gWhT7L9{Ds*R$ppQJ;+pr%lG_|VE!Y}!ls zJ}+WqD&(gW>7i9O3&Z<-@7!a2p$Fn%Yf@C}5KCuRqYJ5jw&RwbR`k*P7i&C^NC6`L zIj3Y?XH-8+($kWL^i5jHhcBo-0C6>Ou|zo?*$gJVWw2IPjQ&^XF`*%&M8*g3i>}G3 zJ`;VZR<0OBQ=I|uWGsYw)xq%sPk?UI!Mv#}yvKF-;K;0Qqz$=LUhJEfQyb3WsbzKi z1X-IccOz%)^p&)-D^c=DfpM+JA1{(jF7BvjZ$Ab2y*nmcm3H*Cg`9R;8C>OA&^x}O z6`(W1&S1fyz<_ECK5WW}nZNUHVk?#Sho~RP=Gq}i2hBox4@yWVa0`<@%u(M=3l=5& z?LUFGhe&NT=N{srNYQWlq5*n^69cF%Rxw~E*ZNZ;hqF2csF1eZb;O_DQ3z^_#w{Cm zAp(UZcNeUF%SY#c4#t}?*X+32&y$3WXIm&LbF$yukjK}Ki!ls4gpHTTXBE@)AT#ys z+26>wy)8T1XriCCx+D}EP$W%1w3@TgCrRpEoF|&_H_|o6`gz(yRtOsN#K-hS(gJJS~bHV zOc~#Q$Q+AHHigUV53uWPVO3Ij1_>SD<7N5VtXZeEKDktA=Y<+iET~NyNL}J^Wa!PE&%)+MOB6$5$rh5qS1d^MV);*`MTrV>F%OFV)# zP|a=S2iejOhOX+RKlN}bzdv+GN5;l;8^g&JT6Eek|u7w_CVeWBz`9 zD4=ugRgyN^4Hs9=wRn)dI&h1H&TmNHP$U4Bi;Q7vl z(y$zmri`6ZJXHjo8T@!I&SlWqm(R93zqUZdR1o6*L``#xNdd3Otbs%;(}{>n_kY!7 z0@4%3Ox#z!>HK#&Eg)TJO@WuYUQKPI^QYpcTEXQn;Z5mw^=GsOaPkUJTV(#JAp;8h zeYNr9y`cRNe2(|1OZ^)~eGLgx>@OjrY{nsgBFu@+MM|C9Hwo*@xWUH>-*wZ1iQ?fQ z5{>fmDmKKz&#=*wD-T_c+hitS!ieX%Gc0=tJhC`B<_I4%LhgZBg zF}CBVf`)#Tz^df|KweNv;QAnCgPqbP6p+t$iJ>2>4Xx*n67ON`*s}Vdbh7zo4)^Zu zOd?D?nBok(o`D&URjLlK-@Ikv#jIX$eZTi9mCI$4s-o|z_jrllbg0oa-`kW0tm2v-mys(CaUQ!9B*O3M_>hw;QwP|;B!xe7Wv6?yl|Aw*z_LpPz3=&OgaIWo2N>$Po*x$pYIfymi; zFn4U(+jFWUN4M71t%@~o{~mMT;!o|Lnx{*%WHfam3Ogf1KE_=asmd}lvgs9Oda|m> zAUeL^@@{nXfsakn9j7@`%hA}uL)?2BO<_=Nz@@_Zre((-YW{D%+leMZ`%H*XlGj#u^op1B7J#K)QAu&%kH-4+aMk?W%8h9|>n(rm)U%dOu^vtGmiqkhIK=1{atNkS0;=kRoBUx9}=xp)0wty4m|1QK?~m$&P>16F(7Y2Ev%FSDWj+V zdND?t8tSY9gEBp6FmhHQK&1z%e%$^%e7j*HnoGKUSa{IB9oek>YfUkD9O(QV9!}5S z1N(wpM|tEeNuOH1!k-z8e~070VpWMDTW2h}@>PNH5P49^U7#f%4n0$);o*IxF> zpC3r|nY7_=Jp8e81v&Hn^kqGA^=25*F*|W2JVZboK={7ssPe}(t^jyZ`PNX1c2qf_ z4tV<(*MwEX;i!b#*|_)C(YC3P-5faN5C z#{&-o#J3`azI;`BFXI!GgNxU%?-`-EDf(RNP{Oj@XQ*56_?_yQoMy|no_sH+jQ2*$ zmo8V=uDZ+0WxkX*ACg~DjneQT`c1SZxD2RS$HQL70_Z&WEbU^!qgF=3;0JBF5A{{Y z^*7S}zC@YidmxQ}Y*@CM1wo*-iccctmDn!wyxIq(c$g_^br59pZ}VyciSkob1uFH5 zK8>8kT(2`wAaruu4{)`h5U%x7&QT41Tz)+tTW+waVT}j38wcmta2i2``YD@xim=e+ z@!0{RZKz`}J=-E{$y6Z6)I1T!&d%tK{HKwrC)es#HLqQ>^QjPm0AfnIdaZ^Elc%^U za(_j=Wmkbhgri+g+yz;7&W!U`d>C|6;5Db!VsZi0=xQb$3O;OM0Fn5W4$ztf*c|S! zRJE==F9vbHi~|Vn?Znzl>g+}gA&OUC3amFCqtXj;dReC&x4%LG8347!JAF4@ljGyZ zohp~bFyZ7VKn8X!ONBB|y6TMk;is@r=|_j%4!KE>XZuZCb*K^2GEi-rZ`Yi_nJ^-E zbb8J@=~P;=7qiRAAy9oQ&lkR=m8T#Q(0U{Uf^0?)kq==j-DR4T@+d>P{UzOyu#WO#$F$Ludm!QVy>OhdP>1MiJ_F$=Fagku zmvk_f9@5ILm#fUX>36I@Q3&~bZLq3Os8A;?0sMW#E>p&$*Be)U$kYe!f>;Z%NRs)k z>WObH0+jOoYBt+`S}?Wh9<<0@>C?Q~Oc;4N3= zX|4d@?b5ahL_wgqw0Zk*z>hgLpRW#_>fIuIyI2wE@bDMOg@&ybeT4=60S%G<0ByF2 zIWAHR>J&5`5Ktpj)NbY^cecRD>r+j-q>9Tb1@!N!DiEZK8h(74+;#j;7vg-b;TVOt zW!nUzzp(~u{ChPXq`pr`<@U9!yl*ER!dc&VcNHbuwN7mbH1s08bHB)m8co*AD?>CBO_4DPk>kM&1<9rz7`|bYp}LDO~^=z@x<3{wXWT)}58cJIU3#AgF!r4a`bsJO-%Mw$&d-i3|&- zS7){ih;Hj>pD&#QN+hr3uB1UOXjILlLOAlsvR*!GB0M|wxsc+>=-Q&c`ZXraQuTWy zrgp4iDrGo!GeCH~+&_QmJrQM8$zd96+joc9LjF(NR9lv_+mBBhj*pl3>gH;edS{!HZkx3b= z=TdRzWn|EfemS5^S9{t*k5{z^Urfr@Nu`$=_8j6xWZo< zFxLTIGqBbm93QwU&SXQ@m)1jYu!8%HwxqD?w1Y&B&Bky~czKh7>P{1JB&xQe zxG;xiMTscp!qr6JRf|QnDe;w^!vaE3eAgR=*=jXV7-1+RE^6Ej(9s@frH)dDQ)aXY-JddN}S;lD1yn~q2^MWcxew4$Z`RQtL3(jom z!2kMjj3nS27cTo>m#(f75b|VX5L{-Fih5|iC?Qo?JnZFHM_u*5QI5gfrzW5|6`*~k zb2VwWRssYfw_F%bus#)Bf#O;t4_3UOMKhU&`azd<3Xqda6D%I@RTYT}=(9&-V;HT6 z%R_v*9%A#n;~+w*k8w-$7ntdhOPk5Ajd9NWNrT~exJ+HjGD)X92W8HR%gJw+aUcq+ za*k)|(U{0)Y;`j0(c%gOl)=pESX)AuAL4MA=t0wJ!m=RDSKk05qI1mN&Mg z$n0XTXX=rV>U}!|v^_VPjvW~&1(C;8TINCEJWmZMtKPf6avpBP@=NaBkyYz2oioX8 zc8CTr_>tW2WxM!3DGq4)TwR(>OiK$GkdB60*D*I zM}*`OxaRonAUTU|<1WV=79BTA;W%(EYqPG5mvnJZ?|n3&5nt2;b$N^t8@;$@h9fl) zIeH!UWVYb`sbFcc#r0Z6;WSIqn_7$6?8P!cF+1sWOuj~$=@9lEJ=>l%XF$ZqD(vR1 z57EfGgA|tpGji{#j2F!#AsR@3t`TuB%Tz-kn;JHn2zz$TS$8(AW$=wl&1s+h>THvI zHVnH-*5R@_!h2a6Ls6R>tcq;U%qa#n;I}6Cb^^VeMfTDkLTyJ;XMpm=gYvhOv$XRZ zJB*{r*v0i>Pi!$fB4WiSf4(hbHAuS`<7yC;yA!mB_m`2H^sg)$7=V_r{?mn>fjS%D zon4${7Z@qF25gA0G$8<8w6tosU@gfjsc*jFRl^ zAqr-CkrzKk9h&E)e@$Zl?oePd%&3;L%r{9Prkm`ir>z>std=ehRwy)f0f_iGh%Enwp5osGP_ z`b5udNvG-*|HuuFk3AnxX5pBl*W#$+D%TN2bn@6=$tN}~V>GN4u=un!cd_brT7^#T zOS5ZkFO)X;ytjLj;_9w1oWOPh@a`nb8X5B;JLA)h^TI4SudR4HnHUc0Yh606^tvF# zz{ox*9h%d9HR~ekIy(ASMcw~>>$r=FQutWJr;HBdivI1SxUvF29@{6wjfljn(A zjmvEhCe`-K%6OAb-X97g%iXsfdGB&Q9drzG-8|#7M%$v_u6A3ukR~wSL0`YyKtyJE z@wPS@I3C<~GBe5%=z~YDrgYL=8FzyASb<8C{##Q8!!I@_OVpIQ##w?4RJd2YXBKkC zJcq+V0|NoQ=P@7FAcrx^&R-LbfA(67B-mKU?vV$#{-Z5M{kP5v9oqJnY|Xr*G^sn> zsORn~@PxEjQD1u2w$R!aLk5cAF8gCo9RR3f0pns~4!)8!W?z+eA{@s~UCe+LN1e%@AH$WBd+>GS=hw`F;P`7e9+W^_cv z-}66fLAd82Z4?#ZpoSrXB~O8?x|O;Dwm@^f@#l>>8^hZtS@Ba@wzEIVI1|)uh+5PX zvkQ1YWLdFx2~ab#rX-f>+8?lTYbMi79{qobWK zxow&0f2B`VdsY6}9ig8XYen_Xq5s?M0J{)GWT|||8dqU96DE;JV4bD+kvx+m;#unuvH+5_W( zXT)1kWjChEM8vv?!=%wK!PmI4FV}TD=JZHmk1w$?D~@U}#Q0W{h0M44JwP?q$Y}0c z5hQZ{caDGg>-vARZE7F(hQY>eehCkS&y(ETG&bn39jM{ok;~LHnG_yaF?ywKWS`7j z?`8QCGjCyJ>L^TD%%Uz|^Q+xtNSXXh@lTNb^MGGp+Q==bBHATsFuAiO=TqFet_ z$9IE|Wd#+pInrEeM3GH#z2o4V+EV{3RpWN1w#NFhJKvKXr1)%)kU z?7{C}xy2W%1D2y!Zk-@Ec7UkNPpxax@;V1-QeEc2@^Eceo{P;HgQO=t?d8LMtgK98 z6v|2dS<9WGma~k1cGB4iPLxe#RZkWjvQhn#7%&wIi24k1b?VuZL+EgaJl@NC0>cVg zT%%7mN8z^jT1rGSp}w`qjKcZZ7@1CTa!E=L`40yqd?93bZ(Ji?LA_BzI)#1@oa@<9Hf-1 zMq1TBt=~GkwhVBq4;#P&3zNDzcgo(bcoU;F_N;O-N1*x@vT#b~H4Ur`kv?7aNlsHZ zU3PTBNOK*};pFOCJ@%$2DS%I2Ju5>Ht~mCV?Zf?A{Y3MjSX*;qn0)lesqKxvb3%c7 zO!}ld&6dehIRi(+t1nyRB~vQr!>QR`Lk)54%LfX!Y@sJ^?VGa!#AR*^04Q10tQw$v zY3S;9p`i%yBwBjKN>FU8T)HW2L31kr_^~UGSjNKxRNS)?R$AqW!?cwbV@ABALJO<| zy5yY){Nna&CslsK&i-~G_Ll&&>>atjtsY57kMo@xGWT|(NR~Ue%OhQA_`Z%DM7(}R zDig1zsar{GDAHp_^N5Xpd`O#QF?y%X(JdA*PB6GtYQotqM!I)PU|4e~ zbd(?=p{A5e;9C}q5Jua-P90BARm867VOQ&-qcsf6-99{j-AwoHeA#6%5T|eAt-7}B1V!K%9Rx%kDTBT?yT%1?<%66pE!Hhz39nY=jO?%|I=GPUw zT%>5Ze>HY`=cTB4Yx%sph z@qfF$j9TJ1@-5uDob_s45CfLM>w4^ohULBUYWyrtLVRCRtY$K(L0Iz|mk{~JQ*7Ut zIQ9j5)P=5O4lCgiF~BaOLV^C45p6-BS)FMPhR?P6t-$slS124Jt0Rj@Spf7jZ>0w! zb3TEHJ!GZ?Ed4oe>d7KjQ6!l;Aaba|_cFw(+b9+%6@t?w3G5AB1NG*FaJdHN-4Vz< zRi1C0VVQF`=I~Xo0o4xkgl8S=1>fbtcH8}u3$`CVYmYe}W&L22^FAZ=i~Id&r}Jnw zj5Q8F<*21S%F#%+D$g>zgJAC!6Z78k4N2s>K8Wh$YWtEBApKpJgN+L3a0uTiGaHe! zd|tqid9D}D&P+F+Fuc@nF*R{#LI&Qm;(X(XIDbmMFjc}CnI!3&#wcw6iqV)|a8P`i zaOOG7KF!~j`%idw-ku^@{`3scG8zeIsy7Ku3M6TThxRqBM)VE=@=S@2FIOCC6c4nE zL^CPFn0T0x_>5lS(4^~vm&cbl#!JrIJxsVgLfoYLd8 zWf6U5OEW?-vnTj)Q09F+wsCM3(e`*B5b6{?erykCB@-9A>MlI~IDE-7>$2l_>!`>T zCAli>YM{wTo_6f&^Uo%0W#}0uy0J9Z?+BaOgdTo;OpE6Kac6TS%ibk_nQkO+^RUdP=1q?>ih`UUsfs zbENfiYdjBSpBZ%R*fCrjSyW&$_2}hy{6u({knd@9I|rhM6$0zqCn3r zk@nIjng0Foi{S3b3mzxg$m7%LmHRuJHt4UKP}w^@B%z?aaVK4?om-1%WB{WGB+aq` zM`&4E9Ub*Ou6^2TC%Ku24wTYl&QZ*?kl)YT_f;qK3{kASd?o|d?H%Ir6d}zT52=NR zYOCL4xQLw3q$HW#gxf;6mm8MRS_9e&5XRvx(w4^mfe8Ots{@19ojVTw?-AtUrUxA` ze{bX$3;vsfgTzm@&o8z%ab52$=-4)0-0h(-dows;L@#|kvL|;kFBk6!GzL-U_jWVL z6z3fSDsH1JV`2i)&ziYpJ3~XO#vX@LUXUaR)6mZoDFs_H%@nw9%l5nNcDcYimYt4=-ILpt4r!<7oKE zqjkTl`~62)3@c!gtcw2MGDrpci}U%8a}6v==&t z)H-eMYqKM4z%9P$BJCVXX4+-qrH?Sn%peE9O7kRV?ZjNZzUS>n_q6B+x-|$+T#Epk za)|f+?-`ty)g@XpVEKoOA@V^2p`l0WCs|h=`Tg35{O=>&>i~az_=z;s1*N5ofWv&R zSXQi%a<{`GN;9;o9~EbMgma)+TpU9W!l*zy&ko7AucXH7#|j*aV6SOAqs>-ZiujL% z?^lwWhM0tE%OVIg5PF`QH#Y_d`}h)}K`z>JzZHW1lhd6$`|V1mD0dI{b_WbCfQumX_SPl4-u)Z8zJr*wCl9H@n_C#r(q3;Dm_S-XPeBo?%`T?jtjGI9hdf z2Rq1S8DZY7VZPd;rY>KdPJKRWL#vGg7HTz8<;Ilm!_2%NlS2j~MC@Ei4cdILZous^ zXm$q#@`^;3dwVanzJ#+YRg%#iafF95T@bG`xJ0`QF^SH>#lGt0-Z(+z_q_0F{qtO} z?3eE~+Z$(Qn5UnoR}>-jioBiDIk=iUb(~Rk;4#Us=TdS`(;chi?oOw|F&1e;ME3jY=&*VPs=wbt5#;LK=|h6N$tF%bs= zF@E-7(wtgTB1T3+k#sre-LaQGXp+NA8gxQ}^t6MhoI-TCoOc^7eSL73YsJG+Xe-dX zA>NXfMX~L}-iSiL$8}tT%*=pY6%>(t)gT<6u_FlHx%Gr)UXt_EWNXT^}=)CmAR>ur!X3v97 zU^59V=LLhz^;!ibq!}*apzaG@211>MC*|n&D#2!nxovv~k<=txBMNv38(OM5$kx>J z=}~7|2j8Qk4SYBj?wgh&xVuXry-4CW=H)$g*dxNgv>ejOs>^<- zCqzL2tNZescFT9Py;9XZ_5p&3xLU8;Swfv#y`_SZD5M=0R7))o z_+0uPct8u|8F?JmI-51?e#NSyGyTN-J6Mon8xvrWHP>)p51Zn1HTAXultiVrep1L$ zgXQ=8V42{re*V#BwyaP@;8X*_tSuBJ;Y7_~D|CVZ$yzNk%=4vjIiyz6nXJcH!vXf7 zPUG!63oN$2VJDcyQ&}y>4zZD&Pv3MI<7yh4EY%y~ z870)kGDlZ-X<5P&-0-&2+a>f?HPpW~)BJtS$z|tX6#V9^P8MFGss>Ddk@P2g+z-D* zP1Wl0X^*n{R?I(n```Zp;CzOkVpMg|XdH{kC=oN^STkL@$47rP{)wOW|1kD{qEfhg zhS8^f+Ee<0%FkMOLbiep8B;obnfv(Xv2U;Un)F+&{5i?|-`}U?lhqpSElvnO;U@sp z=P$XUl+iyKLH`q!h5_?$PKzTQttb8L&$p4YbkJBind$i+Fi9r5jh&nMA4vDhU;mLh zy0QDOv9g~(oRJCiF*DSL_d*|Qj6aaSpM<(e- z<1b73=YyZOw+H&9!U7xbvYcRYr--tFM%VcH4;CjbO1J{}828W?mrughPW@MN$V%YE zMKJ;FNF|wI0qT=bpQo}8z#C@Aw<5rE=5H>5|1VoT&Wu~q*>^KHH|K8P zb@`Kw1h5C?bXiqZRh$blc>Q@s36Vg8UJ2_7+eE5F!Ilhj(UPKN+@zZN{{a^ z`IoyM8vWKh`5(kH*!Ch9J;^7bcq_bUtZ`6U9B}geHmPp~zD%o1R@<^>y3#gh^e=Yr zU|WXIqM}t@(GfN`Hy;Y3Tm$^e>*IeM0{g>dv-={*?Wp(tPIl4O!ow31ZT5$1RaW{r z@AP%1bGyVt5D!!Ruei!9z#ZVUS_P9zx@ z?7PEx5S&3xcw4>itDQ%0b*VZO)8fQwM*Y|ac;FhRi~9bB1M?QI2U~y-7Zj{6!iT3~ z=8Kz7y0@ChD=N5-IzB#?UetX)Iz%U;Gc18lkl|0kSyy!1-I}R$o3c&6!4(Mw96y<% z-3YM=DWT4ui8!P$Ado##QZvzULArCod;X+DB_E8?x8>K}^i|Wt2)-nxL4H6xPz^U~S^F0F4eVQynR;RA=hL2q+vW5mol{zW;K@LGg` zkIXZXlg_V2)50xSJi$*rZfKuiYMSM1bIXLm_VxqpH+<-VbIw5y6^PI_3$6iE<-%j) zv+`Vz*J8+WkFvG~+?Y?i9vT6V@@AlTr^}n}(J{u#{YWv@-L~+yeXpaGK=FxOAGf4Z%?_5GZZB{wvX^++6pxvEK$w&wzq!2=< zC_+wdBR*4m7;qR6g_`h`%cMR7M4=r=Aur?WBi}68TgX;9|zQ7Z-^u&4Zbmr8EKwHlcqC=gI7MDVSat6ecxm4@0yaUF1WKll9}+-?dc&WEbyr;6tw@U$L@Zg?tM#3yIcr^ zqFhE#NXuKUyTd&rx$>L!E~6QO0ZW0>GAtF9WUET&qvBJi3Pyv@e_R?p$t`GU5=n1u zGQM7uG8uuGrjEaSg!CMS=Nm6pI|i|x58K+=Udf(tyhj4_vjmo??twPbwLX4BI64a1 z>^QO7$fVk|AZO|FK0ar;K!dIWXwY?e6G*;wt)Jw{!Vxi6`!Il?eGnn4t$fMmg(Zhh zI{QMg0jA7Uzr)JslSe5?vQ8HN#tH~OBeaLV4Yip`4|SsA6Xde%V#mL zG(Jja!HbPR^5Z^@95|o6CQVu6SGO}u?9Jca$SX7UfWasyx9>0jNWi%rcl{_~inAhY z{NZdQC!VD!fsB&g1!ceSczSff%?Fe8NMZ;r7mmI3!q)r4&x2Ba(4)+Ryo(wH^0kU< z@%PEx1{+3Yu3X7XILQqQSIgeL@gq3nHiwO>v>mAY#*2eF#a_qf8G=XhEes5eod~2o zAS3Wq((%K0vGvm@3b}9@v!~HHhLc~SS_ zvHQ2x9)jPA#iuUb^R|kRXA|S&@d>v+Zru=|v(*bUZ&b%hb8Szr*^Igg?v=gk=A`?{ z>ZZEGkw%5zIq|!mKUaRO3(KIdth@V`dHMr?@Ae(O^axEzxvsx8@F<|KW8=*e6+phCIt}1w^)DcFa5bUt8ShMN!<|Iq81J>R8M+SC0cA??Q&PY$B-d$h zW^uNKhFUy7@l50qZI-w-Jw2V2(L2mlF{YcS09%N(GnlEW=&8;nkoec3H?sE+H1zSE z!s1jhxtx}W<`W(JtuOc)z0KCgbj^pkD8R3RlC+f(!eYn=qc&m{ zm2>XBenHwt;wOSUdYbH=Z{Lb=d;B=Fh&uuiCa>EV1e!{zVflftdsz&0E~{!r8x81} zv@Iw1GBoyXWaIvi&&$Pmz9$aAxb?Nw8TER>mIXmAPr~$9m>k9oeB?62$pP%l;zdzd zsf%l_XlC_Eu9m&mC%A+N?tUX~g6s2vrKJ=}s6|fEvzF_NX3CdD#D`ViwU-7pp18SR zuAC2pIXgS^b9IWyMYpu~}D(6Fj-b*+jUKm4io2)uqKu~{q;-sRc z>?B#Jaco^<1c}fl-RKWTI$Y!zP3(*%mXnL(7BR~)x1e6^?CCQkk9;V>7Tz2}C*88= zw&mD6;qOdfd`V2O$#SH03Ti%lP(ds4Z9|xxrCyiNa#n9dm_T>2^+}HMscg{Mmd*#2 zASgebt^VfL4I9%2}$0?%sKy~&b%MIED7?sf)Ew zD*MS7nhRGSS^fL)1s0mOLcu5r$_0Os_Yfi{K%+l?rq*}##p)&xG-o>)60u~ zdoc%_|G7xPi1w$a;esp@@*Wa&IGjM5z3wt zTt9wTAB&~l&gkMzEjU=$*GiqBYBti28VT&1H~k(C6GUnm{$oum;AksrY8D8*-Bx;X z;)PuCL&rmCsdOjBr4>~*KJ*o>h!+(N@f4=@MoRz3dSJVMsSp5=V8q3a#8QzY$NA&8 zA7&}q1-G8=!Yd?vV-WOt&F1WJu{n9e>;LDeWxu4Osi>mK60oc&d}LZ1u}~bIuF;z` zx_a|NE5Y4zdq(F!fAhAXg2~)|A-~+(&Nn+Zg{fm9(*S@pE%(X!KW)cL1+`-zHNUvR zp_32fg`l138u|SD+UO(CiqjMkO7hv;r8>cI zO0jiP_OolzWZX7#7#IbMuF5sArq&F(Lz(_FZnnFguApHM8xEh;snhkh)CbKjw{3R* z1|U89&vukc)JOLdV@+Tci!fR0P$lP+u2msHRpxtGx$&K#H|MTFYtR8*-N_Q*->t!J zsKns)=DkZ5Ls}|{Icv_KwrrK+K5_%*q5kU)K_7mS5c5dXmF(>7u`xoO_^xK6vDhXr zA1Rlcziu{Ne_Q2Q(vmQB?^|H=fPAzVZd*(}2@InlC;hsRvZ;?|hXRP}*45K?_F_(x zELMH#cVsy~RJH*Xa_3YZLP53~=C8IWktB!mhu^E83Z(h2-*Vll(!aJ|{-yRgCS8~_ zxfWS+Fy0$zl?(LHS-T{sJk$JOsK6*ilW>lCi6u1)|-e5)aT55Bjp_dNDTq$q1Yy4u&@Z|+pqG83zBVrxq3g>zSQ zmsg?49`oo)=T&730O_?`1RtxT*Zi)w!a1#e;t^j8+4l@-K?MoryyF*w_76a~IBy-~q z1wp!m5sJ|r0`GJl7)QQXyd0)CCu&S}=sW+DXaKOa2MPuuq5`A~q|C5UpLnBZ)&p;1 z*3(5=x`VnL7cmIUJLUDbk6o;j$-jqh}rl@7nDi*9`_mcILwhx(=59ImgazZes6;NLU2 z8xWu?&-i}1MYWS_Zm2ihHdK0;I9$?p+&lcXk!l!8mmnO|Q}W1D+;mYerT?r*l>AOOoN7!atZ5TD&W1_?3Q6!S91$%BOHp1* z`gE|5L)OVl*Pt(FAnNS`QeU9HVdmo@yYPfx>v(F{`p^d%17_faYmjeT$R2<0nM8P! zC6#aXcsBjj9WI8E<#m6Te4>WSqP_SoCO{{=w5h3S^oaQZ8||q!Oy}lWWUY)NO5Aml z1}z#bv*j|*rB0gkr<|~^Z;|W_*y6c4J0IBG&Fdm)ohWMg_ST$lUXr@pes*%+yz#FO z2zKnF#1AM3@w$L+&65qQ<@}}R{w*v_&I9yvmmXcxbTyz2^(d%D6eqg ztLEJ`QKYyF(jFESty^75K#V_8-74@YkKaMr{zev~N#OgErd`ADo68Fuk`pIp-$QPT zK9?5w#X|^cKbN1T3Xgi#+D=r3&c0dZz7&C=qYmYVndkS3@QGY!Im>^kk&ImF-m}%z zIG=(f?^}sWS&b2_BIxND4d6sGS|ku}`rPo{S^t@Bj8%`^N|^GMZI)&GjjsCvUnV^% z{?&nPkh%?#rHizU9uw}K71KT|+>XT)?szouCC9~Q`vAg*6{zTIshRYF8`Qd(f5*6w znv5pzkSe+{Nzq*s#h#U0j|3Xt=Xs8M>$`r-VNFsIZV-3oLZrX+qL6l_RIZo3hQy}u zD;x}*fpiM7LhC3&L@+Cp@~(D&8=LGDMJC*MGx6j%rjo{!bQj(H){au@AWrI!75kVk zwk1kqgKc}{Q*Bn?LI5f1wS2%<7^Xx0pw#!ld1C;>+Hp3uXQ;<1u<{;Hnk;Np-0>aD zw``BNfMKOz7pS?ML1={e9xikPBDd8=eOHmAFn#G06@y#wvwVzsMrI$Z|Iv2jqVy7} zBrkoVtb(1I>^Pu3>2y9{BhMROkcYx$6Fm-gs(B_!sl+nZ9A+0@%-}vn7N77+c zS^uv$;h*LC6k=ajqk_u`TWE@zLifUwVwh21nZFB26lcZT()R8B2T8`t)clN=h~6s>vR z`Hs=-5=yE~js0cY{&BPlREr8z{M(ETj$~j5OUyZ8UxQCQI7Lh3JWEjFb2vahuS?fh z0j_@3RKJGhK=wn7hjfBcMrQN8q0t1bqfo7B%kr5p4ks&Qa$;>S5sQci-?4wxZr3Eg z@nEZ~m?!^eo7P+CX&}FZy^GfBLCXDh1M@)J@jAj*J4I9NIeQa}`JUp$SpvPPo#aJM z?d3*-pbl5qreO#zoisb|8^NJM-NzPEZ1(LDZid3A9IQI!Gi2S_bE)H5U9}J?OD% z(0GAu+Pz`X;WU(Y$L^r+_dWHG7HqqFAob4ueCTVWxXr^UMCC`hPph{okbw6@J8i;u zXLhJSyBi$$CL0&ONH%Uvh7Y+29A|Pc0y_wq!wRtq*q-BpN}+wk#T&8aO4<_Pk}3Bc&NC|p6{woAP|Y}?+TBWld*b&zP~8Aed}{? zfuUEV)@>GdCjXBBILSO!97&qBx!T2<(OKHYljQJJsA2ns>yP-TRs1-h#GP^7$T$IJ zQ1_*z-+EdjdOK)-dEkILe2DG{7!18_QNdt1pdoxiiBZg^FFn&!%n>z|IZ;(6AN;3S z=8NdYDUb6&uFF2u4{w4``0!ZfTOrUPoZ4MNzIE*(71Zrx5O~b#-QVKC{Fpz~qT$C( zqT@BwUVr?4bXmovyL6{Za;vO|c~?Cj-eG@(1(D_EY~oP%rTayfkTs8L@;k3A?cB!_ z_7g`$cxCA>22O5Tf%&&p?~XCfmBJOE;QW>CX~gwRV1V8oQlO;K zA=PKOz*I_&+%hg-8l2)_HewLwX#$n|t&TYiWKRmCT&GMzf>dH4)GImm`;Hb(Op3zy{D*@}x3r+y;*L=R`*JAF+ zJD@Uo>aR!-+T%ie2g=g78;k)$V0-Sx2*1wadErQ%EREh=!)NMpJI@YoOqCzaOYIcx zx^BVg`(yJ}18JkfItf@u#KbP}<3IzW1>{lul9Bv-WFKo9)K$1)wS2t>%$!1<1Ll%2 z!<0rlATGl1I;bYa@}n8BL%Yk+GS$7k-n+hW|3S|{a&#t$DZy|DB zgFg}oZEMVQ6YT{y4M(>L0=BxGo^s;qSz)OR}LBr*y)%JPUb@kq=tcz({ z8&P>`NmjYN38pUpf)~OLm#jZ-$n^cY(n|d-Ovk2S08BT5X*-!~C2&lT(b0 z$7=f*28k{|4Zw*Vn^w3w4L-9pe7$% zQIsS$_@maj5xk>hmvbW`JJME#Tiv+^`6Ze3M&U@FHX2>*b6<%%T420YM5O z>blUg1K-NcOZIrXAF>8_0e-4*0So#wkmWLvmx0e*;+vD?vbGm3e(xE%*9x^Swv|M= zTwy)gUSqr8fF>624|0)hMhxxOvXR~^(>_E&T$30gsYb|HV`3!! z)Wppw&gYkKTB1-WT1Sr+iQ2CjVQyURD6VY~d0(JTz&7HdAh9?70rI6AAQGR_N)(OU z2^(9ftjWV6@(f&ys?MgV2ng40pLLzr)!*HFT!{sKr)7^E@j8+x4rsuYWS_pdX{PsU zTzFFF-lY_ZR?*k27Xw$1Krdb^*mg=`r2SyW66eFSW1W}VzIjLMk!&+3p4b_WcnYlX zL)_S0G;<>fCwvpVj{7(caCk_9g`|iIqX~+)kN9lln$`F0H^tQ`HL0m5rB<1b8;9eJ z64$CHnr9?h>800eKfvd6t-2r1uhpO>?+47QU;vHOV}Zlzgu(?;ufGz-Jfjk=lEz@s zpI3?zJxuHe_o@~>Ce1st2k~}O>OK1f2Hva>nekQg#vEBKaT~O|LAm@&0HHZ zaU7NTTe>XB4Y)43EB-n=PBt%$fwp^vhPk=((Yw^a%UF%eDiu3tZ+UH);exT0PZxdm zGL(Ylb`0_%khjnpGVoGjjeVUHE#q#;OXC-+L%%<#7S21p0YX(b#4Bm$@pRnEZ7^HW zQC4D^_vf7)!aJGWqz<0rA!HwQ)JuJN$cTxjiI_d+x|sR*V+h#d_6A5x*%y~t_51(s z-f8#)^QDiLky_tUSe1dM+#88oe)7FN>id) z6M%A(DR-y$0;xN)d@{)utgIdk(K-Mj751^Qqz8`6YdXXl0uc-K>-&-rkh_ZkJk8vL zU0bx!{^aU!4yMK-!EMoq`Dv|pNeAV*s1DYq@W~j+#Kl3u z>akX1pG`}vwJKlEtJym5B}SgK8N1I97kj%Dbi5`O7;G=0Z^;@DW4%+<7mC6LP$;{{ zGPB2|UB2;IHkr`#yY{H}K39wF@_G6=^w&l)4Hj?{Pjl9pV~{@~KOxX)?d0sX1d*kK9qb{yS59*LO0ye`>BnorxDP{GQ z8C$l|ONq0Zy1e&Z%m_?60ge|}z-RvGw@kuIe_E}bi?V8PtZ~KbZw2w8G$rUj^v+rV zWNwoHo3(Ay68#ORr|4{PESs!0Ppn%3S6C8WSZ?>NqwLDBl>i0DV}=;v2l`Yxkz`nA z0ma?JqrQbxoPRY_i6AHr1fpLI&bHmRn%|B#eAIgs1U?dPm&bEQd@INF2S)}9Bj4e6 zSOpEA0ivoJZW%s@)RBJqHR8e`5@;16|CHV;K2Bxevy@Tn+;%8OTIfi;ZS1%C1*fhN zl=JPwwIo)EPrquS=(uVPUi3?pn~W<))mK<0=}cQ#15s<{mPb~Z)sL@}fs(p2dUhV2 zhpA$qKc2)WPxxfxwzwo_bu+jn`1tq&7v?%}N34`fq)>%G$||?0D8Np0%*NXV_x4DmJ3p5woS z$DMU7GEp;vm!`R01j0JMyljPGYBoOJY+BP{c`l*96rLY}hO*+#1%CYy_!}K%-~x&k z7sv_(CuHvqKXdNh0TXIZkN=$F{Ks$4KZGc|Cu=`vwu9w-m-y&*&V+6F^}ki?fvyX< z0TJ5Jq2(ITS{@*7^MVcGw{4O`BZruYFWtODgYy;tKYsB=AX_*vBGV zL$wL)Z|y4eUD3hCcK44w2N1kPt~_;!6B>YFObC`0s_7L=v5hha{zPTJ-6KtI$p zC(~(L_uQ}^w_h|g?{6~p$7@$(ENiQ)aklmGs7EgDzlN-b)xA*gP9#3s`$bj`t2Qir z(??d}_X6d)Srz(+lX_9HZSkB>-6FFyeFvIy3bJ`?RL{}j|NYjOPlLGR5B@yR zx&Nx@8-Btbt3G+>$n=p3=a02T$pY??isl*XYWRe>nCf>@fwqZTAm^himGIEWeqR2e$z7_vMd(8%e7^6$h9~>+q!XPU(2+22&iCG17xkE(b(=E)i`9uAt5G&hoB=bBxn1rwEgu_Hy3} zt{B$m7IO&K-=BgjTNb-NY-@m59U1-gJuIuuOcSwEqiC1lrPb9!RMFpmq;@C01bBP? zv2(RC)Z(q1A%TIs(yhm0dNy3fGm=3>{Ik{`a1 z@hOM$p3XNDu(B5k95*dP-m4^qLA>A-^V3Np$jDbR9!0ULg7QUrM1mductcs~(O-9R z`pcJ$G$f3Ed$d&1F4xDbQKMdRL%ArWobIk-;8b3kcl#-J$?ifBKLjuj($cqsT#H3yKQgVU&4*eGlC6y_K$XO^RB{;Q!eJcD~*#FSPyv7Shrez|6Enn zw5LGDLfi@f;9wp}$eTJSG6k^>a`@#qo5+`1vylXFjaquDtSUpv#Yp52{zon4fjzv~PG`!z?{ zx7$wE=^7h)7YXZs73702Ci=1vWB{ne9< zt;^ET7Tt@pwK^hGAHWtnFU&?`AVDYLBli2?Oi=Bo+UIkyvn;zjSBGT5JX$2!{mzwR zHTRE5wQeFAll0f}TQ)Ndee*b)!!J~I$84$<7>qP6aelCqUQQekJ^RA$Q|*~wjYv?T zLe3#o>$-#(^I4ljgu>iFZr&clB@%B3bXi!@+B$4$aZx0kWvQm`x^eASwJ^qBdeIEc zXF#Z(gRMLJk#p^!>0*hej8ky~cKjge>-7}d`!}b}KUAHov7JweZhFe2M!D)te0wDf zY9a*@c1~g8^xAdDHFLz?ybixE)eVFLZ_n~e1!A=+H@MVN-`AK1nPte)RLuqVHkk(m ze3|m@*bBMqIX-l;3a_WjZg!6+IJ{o_}{ZhHOEW-Ifu zQVo9=*vGQ~qo;=_N#KU_UyXJjiP@JiMr$eI{d{`6ao)lelGEu9r@F-5Q#wQ$mdi^ zg%vUEH*PN3t_OVAb#0^iMq=SvON(=_x1RFV>Ru{@`UimCmT7zkM#ktO0g?TN{B}G>`F(>}~$7?m;zvkfLNUg9g zda1DW@XJ9?76A9LjP>USx*|y! zw4_aV{BE@#uIody&4`iv_+GA#AZ4NH4JJZ<@)?W!4`snEsoExvA3r9-unsI0S**Hn zk>%%A*>%4*t!NkoY2Cj&VsiSd-mb|<+$xN;q|y}aqdI6o;Yo~BQaFODVVE3=Fmebtzu|!RQ>k$;h_9;JYbV9Cq@xlJ#^`5v|C#pf2;U>yz^=F`gM=L!F^u< zxbGpbQjeA;m+Hb$n6^C5`VSY%w%<7&49lnSQ_yCy|^c7KF>^k$~@t)0@8 z?t!~3(aukQS8@o7p?*X|7oHMYC1la;|5*sY`ux|ZT*n=w zc_i1=WYTE`bb~d3MN{GTiHp52_@T1k`^sWw>G#jZ|633LA7>G!06AP)u;$#{#`AZ~ zgAu!ip{nd9O)>D0_`iCQKOrNFpp#?ZWcJjFg!&GOPa+lpdQmh6}i`Kn= zw`S8~aaLK8?AD@)vu7VtOTE!>z=&?U;I3w3gg-4@udjSF3SRo#l&A(xkfJ%@>Ty@z zvc3V{#?#yMcj!@>@Kay8 zm^VB1#sBxo23~}M3}6&qN8GSpHAuH4zbZy~JY{X@DDGafSq=n5mfVVpHXtyYpcKAs zWWyq4{3Ew5EV?^2qbhb%Ec{Hjn_JbBE;A*1Ylzp}U02M0&DH4^xe13EyUi-yJz0-2 z?9wZQ{4?_A*RD7CP23!#h=sPO*F$*GS(M>i0D$%Vs{niEZ%dt`-*Op%;y)Vgi@GmA z8w6car_T4S=dP`RQg{)vvU+*cu0hKF8`&))ZcyjJ$iTKFznicvEtKg~ipN;b8+F*s zdR!nP;eXuI%Ngr}f|t#2r6s!lHaRpD_VOrLiUcqHNU!)~A(4A}7QG*f9Z(5V?U9mU zYxM@JLRm`GUfR~kzx`$4g7cj}y9^F_TYg(w@4+9fO~36&Frl!2h+=Stc8cW|@W9vS zH>TvAJy32bGVn-8$2MHl1o{-j?!h$Sh0v)Q5@V`;Nrruh68^>K^`ue1*K-@G1KT~V z#HYVy9l;J_(@t-?!4;nOmM-54O5j&j0Wo<8XKhiUIO&`id5XrWq-aD6g0>bAd)D`q z8S!O4OxUvLww=1`zC5Rxr`+ya_DBP~Xx}dTyWE)6n&CiZG~R~N`}x8@oAU2^SAMDj ziogJ${@}_Da>{x~j*HpGNR^bS-o8D^D(ipKJJg#nj7J7cIN6{kU`8$On)mbS)@I|o z7w(rl)nmIQ?ha8jvX6g=W?x~~9xJm)_k7a)De%;RygVWXckW?6lYc*G1KqeImp~&y zyRu2Q+9oUDqNP1j84<9`1!#RmhqOM(n0X;0c1Vr=Z(5(!zen8O0MGo*^~gG{7Le!D z8W8S7nekm#lN_KRpNIYQt$)8CFr?Hk)%TRhC(gH=SNdkrmy{nViMnyeyhQ#8!_TF@ zLx(th`RMQ(Q}J?i2ld?}x>^=jr!=mn;3D;sL{d5@nSU`Fhq29P@Ve*zq;H zaNqR${ma3U7zQyOTsb9*P7^M|fz22*IgMc%G-v93Xd>{8g-D(dx;@3qM@ zzkez6Dwq;fb(Z$hvtvGfo-bk8X6SVdpVyhmfAtfqT?e1+7DnX2-=xWzL>JG*{X14X zIiv-?G>#zAELlZse{fVZUjKuI-MQR36BpLsAB=bfu-jq?f8y#fohr&7UMH#oPfY#_ zc0GK+V}RF(VbLg3Jl>x_CH2yOZME*-ig7={%pt~Cd_Kmm(pH52kvla=cbYgC|CV6` zm-_-kjjBF)a?7aaHwzDL zj|3VNR?{GNIgv9wvED^&BB22^0v25cztv;GDy4w+Pm*%@DrVzyPFYb14UgrfYX8{# zLF_jZ_qRntbp<}^8RI<)BaQUuq|)(`m@i#jEitp;Ko1XFrh*g3*2VIjY*;X29t3WX?0-@^CLz` zY#@%kVyja?3e&bbSC9)zW}tw&*wY76p~@vSrr)f!&l7hioRa|kr9Z`@^)-#vVqb>U z&aj@CKym3S1OJ_2m5Jd%UdX7!NBC%9@|1Gi_xKt}$X6Rtc%cBX25Dc}6D9ai14S)Kk>8ZNI7~O8vBdnm8_kwhV zwWr5=_xfa0d{>hzZ~`p}tKH64-qF39k;w}hieJr(sL_fcdmSIJ6>+NY#~qD*2eWT zV4*a-DFn=fv)ZVxzI(547RaYINsecmVg=SSm$w@JlIHrEfp8Km{7{L6lFR9V?SfgQ zeIwT^DU!KEiVBqD9wgb3@8>-nIgg^%5;WYh4%va>54u<8+7sa=O(UvM@o$bArEdG& z@l4o{rP&*p+$3koIfo*o&3jZ~qf;Hd- zw##7yH=4Z(iPn<@%`h$}4^BykH?Ngx_c;9zp1T5K5T?YuL>4c8Vige>P&e5vP||G2 zq!mqB%*r%r>smpH?BrjG0+6s8(|)-e7EDi)b*k5Q8rRW;8&;_)>ikqEPKk&v17)58 zp(?`?vn{-JnhD(Epr;1?BHRGfN)MiXcUvARz)Ta@r9fu&LBAZ=gu+mKQT61&ss$Q8 z9Iv5a9FGn`DE~Z#^AYf;uIIE>H@<}Ske{8T!(FnpTKrIYN<-GEd3&qN#F0B?YvV3s zQO!(-Wc*FK2%Z2D*G@Wtwm@t2ze0>vT~*1bZvO*7(qiZt{r`!kh3oMU60k%e~lY$N&wE7;8D;$YnW`8&@J$*08L+Ua#rQ>vn;gBKV)8K~sf|4{nlu|uKM z-}FHp2Dyz-KGM#PkF)!h=JidVhZUB!vsp6!UCl~!9Gok0EUk=ld{KyUWSTn~x8gWM z0C_n5&zm`pioT#)i?J^+NZjOXz&bIV<*(Gl=?qKi(3ctkKtaeG+Q~RT%W<8&(ed%r zHWL$Ru2TSaIRl!oUW08erg1cykkLoJXa3%_OIX1WjMWg**!r&SBzg437kzh_r_}dA z$xzpbZo_aT%dCDN^OC^Dv+K8?z8?3^OHl1I;yr!P$(44l>xcmYu{{{*YCta;Rq{<#Ph{vO)Zf7ZMwr$Q$+3no%YJJ{O zC&x$%SawzqN_bT>?@*-0)lMP?o#^(MaL~@norei};$`vYQ@U7(byg<}KGXs33<*{~ zxHOozaL5w`T*oBG!soU5%7xGtF8?3zi$_)@b`$eu4i>X=11aP;<}j!zg484J1WDuy zTrE@frvPepY{Pkf$x4Zn&IsIN+{|6ZI;7{p3dHIhd*gD0fS{|Q!~@?6wgy?>?fh*W zi74MWq!jWH&N>2zs8GKIwWLP@^23!nxK;E4VHER;`nw6S=}j5fYsUVjifg`e&^ z5u_xIVFCKTqEF*Z>|VbPNXmtomcycuK1-FxWasc zT^^h#a}HmZU40jfgRfWkEA&)S)#(^6&v|MtdAk0e0)hgLIbGQt=fCS-@5;rZH*x1N z)K~l2JgZ%tT7j`buvmU{%}Dj4gtO%TY5}B)OLP_W_G=6p$3ort-}TEcOOG2G+8&pD z;5yA+roLyW`=OwSUTLVYECacWn?5i*4U5gWlp7BOE2P&KrRKmTGP}^10y*8XtumMg6oWzBi^P-<6N=lynak^>3!T}x4PrDeJ zbKXWtLS)#%5DkwJ7cHHB2$|3#=6DCt4m0V<$$Atrlp$mCYHf1@UlX&3#9$?v#H}Nh z&~p6RVBU`c323#QElhG2Kr1HGWtP!pF>_yK@D$XR+Y?MqjdJVmMDI4gXa67!iDM#WP41)aRjoc__HP8vT~n(>5Z*oXjeoC*-MGuy%-Fy-+m{0OT8}B<#9{GqolqD)8(7=$G@upRthQL;b5ZVB0fhhSaC;oF?>2me6+w! z_fAHq7rVF~8`JV$Jz2<&;pg;S)nQXyBnz>fR=neHvLUhh+#~9vv{q!>`z9or+`3uM zb3Et$!RU)^MOTk>(t7|kbh~F5a&-2L6^VPX)@A=2gXn2}Car0A{CW0zX6T1dyzk)g zc*3NtRm83R&*zYOMot%|S22!OOuqD}^PZ0V=l1*uh8VOdUh&2r2EdbCtQ)$n!!>Ni z?!GshYtea{*C#cnsuBD3y;a|*pt1}Xl)ctzO!)Dn2S!Y)#4W(Xs0-rD%p&sh4w_x7 z;?rI``Kh_EOnE;YiDggWPpI!ZKEuY*AT(dmE7!%<++3t&kfsy_CtTUaZeQEQrwqxA z29`iwDWk{H%{C&j^-Sn&!(f^mniqosqrO~z@6ftc)PqbrK}%h550@l}pz)J_iQx`x zE9At_(xw9d?UNh(6j6S(*&~B(mjB+jroWirD_{g3&+)^| z5&#di*=-u-oRaA{ILoMb^LHn)4rvav{|h_>8T=l6Lvym*`0nBUCUhU%om_=p@Ejs6v3^-2jwi3cIavu*g5B<`;m>N%k0 z??flEit2P65c8bsYl&;%r8jmzj9@7*ru`BMu7pcEqy=^Xb!Ty)>eudMz5IP;K>rG=iY`n+x zi3mPIOAi-$hMXb09x2rg>J?f#S$2!N6AK8HVAVa;J=%-nTMh-8h8E58 zRqK)>ds9n!4I7vIx*u1+$t#`%Z8P`(ZPy zRoH_C^z0ng20J!4pk=O4*y)x_ny$9lya`Xjrh}*K>Ob+FsW70YB z#4_rVp?K>~kK`V@o1ClSU!t6}t0Zx?O)ZB+s4eKJYay&G*gpv+sz*$ux&IW7i}Qe# zX#2LfsGFdHZIr6Q6NK>mRU;xY?3PJ`hkNja&!oF1lreqEE4zTgtuOizX6g|4I+(gV zsoNoq-Po*l4K7%`R8st~%A1LY_YkP~EiWzM2fesX%@S6GTVUMgxd>-aoNWrTSyn;fPwl_a66PJJ=J@WMKJEtMu9GsUbxAu-=}xawwR*=!e&1AsrxZeNo=M-R zP!0hXT8QaALc}^dHIO_!p%ec@XfzsspVOw4(T}W|URIup8{P6~z=juF+6=93+?dA< zPr66YUmJ#GzlC0;44A6>A2XkCZkXJ4naOFEV%~%07nHW@a0%I`Tx51~a!lG3xTG^v zn8~w|<>>i`one~J(6#h>S`Ei9E@^)~Cqg{FFt4Yetl&jjk+6%N3<#l%Ov_jnSzOcZ zWJNyw5BG=ZlnoJwyp)LPNMCG2FGoOpQPsrYh*t!0>Y(>HqWL535=m~>*30e3hIcDb z1C|=VZNsisY)g#ewk27lq zz6?HoO2qCq?DTV6mJnH5X`Knxv|c&N(*l#I<9wTzYSJRD1N@9~duBjWVr6e2N(5*- zM<-lSCfV7V=&j<(exFbN19zOX`x)+t_N6rW;YOJqic0P>-um1KcwhVJBF5*g@2Z^D zlQXAk4IIa6X^wd$I~K!vnj4H1(zX?kW+hR{AEfvQvzNa< zF|N^9F8;PPE#BeWQ0>+hydsN6W>^ z#BYY^80o`Zp7mKNvW}|uk0`F#MJYkxY+w9+@RHK>9Lsjwe4lkS*IFxjWd?10xh>r% z8uz#YiAmBrS&(a>#beUPTH^G3M%o>xMQn~u(UgnEP0+U*=mjfKw1pT>y!-fHhVp`O zo^$G|lSKS?>J0PJ)AV+$2(|FHj7Qr3;Ya>B)M!~5i-da~iNI;Mr1q8`3)Dh9+V|@llhqP|`zvgOInwBT>qQ}2U-f^7Bjf5NQrg9v7j@PR? zMT-XQjjo&A@wIL9JM7Xg!=M~exdWYKOeWw*X7kyHwKhwwHrdU*v$=Wjeht?*nyWLG z_x`iWaPAP+JDcO)y(6d{k9(V3j%s%!;|kd#Vwpl3s_4BM#*XMPvA{hFJD*9P))41C zHF|6)@ZMhyo}MnQNTg+j>8xq5I50u9{vM$*TM3X$FGbMfENH;Ov4zjVHB- z+%cXEHksLT6O2%TqBg}!u2GvSlwbo`fbvyqSFZOcN~C38$%KV|IPRq(C{E1^Q_6m+ zpluQjEfI<=e@bM=L8L)%z0gZKEcjp$mmJs`D4(Id`{rM3P4D7HBvOT!vyS~U0vcaCD~#&asicq&?2U8ZFi%hS6dc0TtBD0DMeKvDO? zTXpEKii06zPxLZFI(%)V)L2t(5)4}jAdJEoRIV-dLjL$!A!SGr)Js^Ntb&e}9f9<~ zLeGlX2syj&`Io-a8MQ6M>O78SJwbBzm#ruRWNrBV4Bv~ zqZ-fn?DiYRkm)2Vkzf5a^4}*D$E;T7JBigimBIvRp2!Mx+Rv&}aNpcp-2JAbR^n> zjtlU2gXN;Ya)Q?_VUm!6XOCZg!}-C(;7%uCh>h9YZ5=fYL?%=6`qy1cIG$WlOSDVk zKvOPA)A@C+Td|b(tjtg-U+dhe0GaGLnwHz+zuJGlp~d5ozdF>Bwy=|0!?s7;j%$bg zreD0tR)bCU!p7Ieefo?G!=Fg_U`EX7sWOsodn~6cZAP{7X))ax?h zv6|Zl=+1HtA*JX`qRt2yz&yz90F7v`Pn`Ycd=i<@*b=yK^l1^Nxk-%Ow_>OJ7rB~U zXL9WW_WJMNwT9gyuHt%=K!`HrsNvYErB>E8rH`zr_^C1%#4X(SBe<2C4kPT%-3+=U zmz4lF6H*DdnOV6>v(3m>NIIKhb6wg9_NH6Dfm7XlYr~HPi9bSwg-HwYPS3Ou7gIb| zMg$R$s)7TO&qGw4lR3Qi5Bjrk#JD6)M`;LAlL(9cLg4lNhnZQ@ybHYm+!5u=_babg zlDKveLnAr|FwmM%84IIQ=J|uX}2K^B&+7 zbLilRROZ&}ciw>7m#7^gGXb_;X}@{*_(blo>{+{x0xtQ#ftlEz+g*U&Dexvf=aPC> zRG59h^7t20yRJ0$E70rcNO5^p*FW+xQeb5wfWBthPN3$YgdF8Ck6}-zj0b6T5S-qi zWzyXyqEJzVrm#~S^>+hsQx@&Dl&@#>?VnibqZXFJkAAIfW~`D$`tRdJ{%^3<=JruA zbzpOwHOVDsTQlL0HapOQ9T?>9h)g>ospEwVHRY%MQ<7a~EaVjJrcOBE$YON_zDb$u zoZiD}{K3=&bHD3fVta4yp(O9vnB;q1LHXfD8oYjP?gv_N@z!!>Y1z)>rzghVDNxDg zx5vJc42idE9;>*oF6Pyz;F?08+{sM;vaGJiap#_p-yYD_-+j+cnnGmE%&> z_F@4y!Msaa-e|+k21E6lDJ>_2nEL+^2IOX`+^5n+tn`Dq_^P{?TfkqWU&QS@F$!ri}uRdFow!VUQ;ii=8QH-_eXR_cEZ3 z_C?j2fYF2o!cl^>qm%&;knhi=n7Nb`U0x}$oSV}-()pZSdC~UL9@Dmpb zJ#Da%xq%VIue!nvZ!bD7<}<;Ne0CkaosbnJiptY5=pr*jUzF%Hc1KD$Ns;a| zkT^tbW)!XrUXa}L!#Ck0>}(0;hy2N1>xA9rgSww3O8VX%`Z)zi&&z$?)Z2`Nb5XJ* z!x*1Wp??xO8d_!jzjywB?44y?lxr964MIRdT0jN^MWhslkVYj0q`ReKh6brYVn9Ve zMY=&?=w zwZ}EO@jBRe?`8(8|Bm<^dNE#ulCsQdpe@c!Dq}$OK<$yj6QkE6(OS~;@#!w zfq6;cNyq&Oz51nCS%%5@cR8Z+v@h+9bX2_vhY- zV#~E2%8N%M`xN*9J!ZJbOU#g-EAwQERoJo@%TQ=s46fAF72(B5+5VUy*zz%EgI>>6 zyWCQ*1j?+#4PHmIKfxb-o(x=hF63}`If31sNeMf4Wmv5qX4@&1a>!D_N9oX7s5*mk zu!GuUiI?X}nChH&0oH3%$VPL`%i5!b2HJH)w&hT0k84OK#MbXTMh6W`l#XyujUqYg%6hX;mn6 zvBr}_VxxdJ##^glcu-@&G4?Q8-6adz*n|q*C4GVWQ0iz!gM+qbsSK!keh}0h%4rb# z@Fs@Qw)6{idMWYlv3b7nQv~Vb0S-dG?Ec+}FnYU3m=n*>uRirv?GhT575G)NNFR<4 zx~m4?GU#8^0>_pW@4ExO1;d7E-R7xN8JW*^^$$d*oi>|XMl;uPS>CM=mFE*h0*wtH zhxe!S%e3}?v|O`p1S^L<%ZqtMDzc;4yP&#C74SrAP>o$sm~$7IVTQ&G@7L-w(HuY6 zg&-F8Sm}-=!Nz@*xUDO;1#QPJs_oBC_Ib2b>D95kj63ZH>2UuqHKy*yGGSQ9J*W$?sFi7-eEZaO&U`vrJmqK9#TnGcssN z;Fs1!%?B4&i1hU4)YM8#wA8|5S58j)ijKY8mZUV^@15Myd!V7aox{Gsi3pq)uudqS z0gJpQZWPD$hZ`z>JH&VSj!v{D8O$0WEVC_e*}w?B_+rrMbBU?@+l9km><}yqYTA zN#~hYwrJ8MNP~rPyb%~Bec6eAHhMPJR~BP=xyuF0_%wDOM@83p!5V6g%6fhhVTY^_ z^Q|f}qvr{E$$BhuWwSD^yZ|lz!_Z0g0c|ylPfD;|HdR5jX_ZPJS-Pzlsw399tacBB z<=vI)f$BhW9IXq|@ZHGRagtGUeR)lC%$)rykI~ zpK1dO{_}|j%k+Sx-L$$tX7QM~0$`C>c}K2Hr62O?kkP7B!Ql_hERO`mream;oD~sP z{sX4IjnwQ}YbSjmp4T^6IWK)B3;+ebg}Gl`7C&;!gXh?C_76fS^h4j}M)BC%s@)TeL2`cH z_omkM4xIlMrTp1D?8D5F^tKJxpM&l4*1eN7w9P%y*>avd%TyvluW(sW;tEP4R<6sw zkIFej#~Pg}M=CTc>HfYV|M@^4HX{FfIku4+WL7^7w*b^43BWdeDSYy_IAddq0qC|v#Ic+dmj$-AAfsaqaE)jaMt{UZ*Hj&0K zfU^$gMf+p}26Q1ND+anq-q(#rF$UQjAerR#lGN6AL1mkEgg>=}Wuol%T} zIdGm^TyvRDO9dWF(kao|cz-yOnZ zn8xr=+q}5Fk85ho4;tqGi7ASEVLHe1uq0FRVl+#bGA~tUR?0S&=YX=nCm9@g9j-VPie3M`D{aAyL zTDP^-ai>aoNGwallNHs*`#bU58FkJlFRV9x6@B%s!9o#$?jh7Fc=T`Aoxwu;nkA+r zZ2@?gJ%7HP=@~3RL%x7F8Em4(`?<|jC%D{OLbzO#p0c@CRs2RQ5z#gQgo8~L!1}!r zoN&3dEW304pPY21?~!#zeH6Z%;cz{93!y8$RFv&$rgjOx57yESI#3^3mK)ae^Eoi`!W;&CZACN$O3jYg6`5svR4aFx7Q7;V1^SwyMw(*_($XL zgEx}JnM(L@-{6P~E^=ZPD!ThGwefB;DU=fAbK=1DeSbaF|FxLJw0-Q-Kjm09_@dL> z%oOTI?2WW9UG{=eVM8i%?p1a5>O%X)jVPO20?xa1qm7jy5*oz?-;+E&?7b7d`|Ym& zno9os)ns?bP#->mseHv_#pjDzK;%~1v<08dwd@z6Z&&HO6qmx(`A}d%Y7;W*(S>HH z-gSnYEURTk&Gzvfz%{b9dUaY7WCy$XYt8BB<~)a!BJjbA0w^p-hjk_W0V|zXPba zztXIQ!>?#t+*(7>*(Z603@=(u<)e+Vcyj&|T0WEp#>vP?F}u5z#&)Dv4#1ECen@;L zo&a!`@=WINW1Pm3o{x9K^vYCCxo-oIE`F}dR+I~@CGbCZr4B2SwZpf3B^o4yS_XMQ zmB9O?<~9W-q4pOAtS1@SiVx+ef4S=RtgaYs z!XL=e(oIMY8;`nEx&bI;8@&*K6a@mmgoJlZne{D`YqQqWR{JFf!gZLh;k5`$YEfq(X|(6!7FJIl#`f6P>4C&2}5U& z!ld!0yGlBPQG>^L&>P_^nBZ4+Zzv z2Cb!v5K_?|l9Lc%s}jkZB;uPyosfLLwzT}!f92E6Nk&7)x`^It??TnMSy|;M7JUDK zCFckuBBCO*s?HZjWHw49QdP3CekRi+fmrPn%k#2)%=zZ^YB9aid6arbV`+ubsz*eT zuh5$^(4Tkzlv|nwa7(x5UZ*=|grnN@)LU)0Im5jP{$Zk8I02}N*ZRYsUW>-Gs@xt~ zLy(cMUfMwgPk8n)-6kX`wdHCnd~hd`6s_7C=m(?2cBU7NfAVYODq{4%A$Ic8M%4nO zT`KG0 z78!vSExd&QEU>2upk=@77U}YoM$|fmB<{R}81j1`3-PfQ?Oh(?=!dy4AMw19@!hTr zKRPRS?M}MDe6bNQFB*4q)Pp}Deo78~wiZiABhe%wriplhu;W4~EjcoY?(${Mr|ZW6 zq&lSoJG%_X@q9OrD7gdl@tk4FY@%E#{jTOskhO^kPzl$w1#IxFf@5r?9uICk$1LY4 zy6p-q4DY)Q+4M=>O4GSnx*-cMz1MPi`c9?_fSbF9gsm@vsOk`Bw zwSo*ldV8zbetdsNh#0~yKMnFUM+DF7+hUXW)TUvqR5RtIp|)DNP|tK}$Hm)Xi2>^d=`*3B z%Uel@jFo{Qqb0kMXVUVL7;(+I5+E1rsTTr4bzOmegu9gAa8t=?_^v{i|D=}!T^unt zXaIVt3c`&xE}QF5dTBXDLVnAbj#WmRt|E&JfJj*cZ1d&R1i3B|0l4QOYPKDjC?djA z)UKMveyBhEA%|{pcOqXD-cUCnLh%ILP`N4?`R>C6G-njf$OFz3uz1FTt<@QuH~_*? z78vosJY?Nbu@qO&)**(vvBpBaF$v%RpE!VV{1mxF7;G%9uN~6860x~lcgMmdXOjfq zZ`uvgF3}3$OY#52m-@dr#g_&&iVS_$Y|j#3y3jc8d5g&jGvYi@dAmb=y|J;famt9Z zvEsx&^7-Ocq=~uj$!_G=U+&BPPWkHzEu>#}gE+|g3281{`4JKLeSc=87al>iWhpY$ zU-9%N;YBTLhR6L{gh7}KM0SX#BUR!I zmEYX4Db4*}crl_vTuwV`CCf@>S4Ayv(1`4YRXi#6?llg!4tU7)AN*1v#EO<`SZmBV zHZ6TQlV7TGo~B{mx56-`Ly~rSEuCu<5W9P|xp;DEMveBo4L?8c*Cfrq1ehA;D{>dU zyMpVJ6yZhCg>lx3HUm24FZTKo1;US$mwPxmAw-Qr5CTcLJx<@OD0Pih<458&)T|68 zH*WwTW$+Ra)$tdc0040^Bq6<&h;v4WNJ=QqQ*3D=OhRISjg64N z&s0=e=DO}%9C+0&%(aKE6^|pE#)`NSmjOcWS5Yxguca0k{RUL5Pd>1Bub)G=W*Er? z3{#dOdm|H5|M7h=5f$}qPbcByhijL?gt!vFwEX;8sW^`#aiQm(V(iDoTV8}l2K+c| zd0Mn2e*jGBT=h@lkBdqa99g1C39*m*F9O`q#C_5cPW63LxZK#N zt1_!AU7_ihGK@az5A=7b6-*4i=(mjr+O*&&e29Dk|P7u8mSBNG?t^Uq0!v@s&6+^pai#d5#yW zwK4F}koZbmOI^ts2-7g&e)enP-2n~2{Nf{Zv@Nm)^vw4YlAM7Ve2@o$gFyrMbq-W-*#6G~dSkcU7 zQV8I}Hd04o8Vp{-^sY_EJ-Sm15+Q8@EVdyuR?ar zFE+B$kQ_n?@xqUB`wZ2uBu8NHsR?Zkodqz7DSt_9U_-FtM75A=WW;mOciiUYn{y|M zI-+UJ7yV7pce|R?X-cbRZHOPv?tx@UI_`}6l0Fp9}&v9Hs z2|ojyf50*8nMX}&COXPda3vYnSICjeJXi#I7YvFkCc`;2u5oc1$+v~7_%@DH>~s2) z?jJcEz`IvJy-*xGf=!bZywFo@;^MC(10be^izp3lwwyB|rV$t5Tngoz+gCxCsq=~U z21H;UMknKC-_Bv9MI&{-VyE{>^Q}9#ap3PWHVxj{B}E#T@3X`7h?0}_zc$_{Xh_PH zqy-T*=LhT31^qrSVga}*nX(*#1j=HrQzEH98j{qh2dP5#R~yGB2pqiq%L9k__T79N z{rT#VT=4Jt-)EkX_E;}j(^AOaSmm{Zp1@-e6pff=x65)BuhL5*nC;^J;V?fDuLAmw$ z&Xc!zfzytX`^2`!zbnuIC|Eo|F@2aZy7oj-lRoz&Cc<4w7XIq4LKpOm;V33!2`}U! zdWlyjG9?PKrxM4ZfQsT(opnsWZpdkzIyyW z5JBHr0zJWUqWaLY{?&6nPQY#5@;?Dk))aMYuo*I)&ATq{#~_ySAG87kpEgB|8B^Cr{b6XjkSL*kbh(CUk7j? zPyK(DM%6!vuB(1KF@9?4?mFdV{?KX3u*!MWOuNh`x=?V=<>z4i{1g#!PJFueL;jb2 z4#2!*+-{Z_(4}*J1(jl;)v;5@3+3rR6BpX~%sVkA#Y{2a9)X%OZ^tmin${;4TGtxq zxFGV6o9cZVqd?i7y&o7p`jk5Bunkq?+s!;FYw+ zH|>3bNxaJcA}LzL%Y7|;l6!%%uUuhj7=nV#7q)<`8QtdI504$s6mvcwD*kV0|38Bl z6WLeQzF7gsg(&W>hka504?oej)Bc&NP$qnuz6KRB_^Tzl{ zPTk=Olq_tivb1K@D*H>W+0UM{UlZ_Bazxg^q`cuG;NN^lf4&9e9aq6#H4TXIgY()r zktdTFG}?h1krNwT_q(POqa`nci~xvAQOcE&P=P~Q0QzHIvC!VLY4X3meSZ`T zeMSjQpj=^<+Y2$*buP=S4Q=M~O+L7nSMgjXRz=ml4thb)s9=Uq)}tP9d3M> z8-5t){N)9}`VP2M%GI!dxQtq6JTB=HJrS~xo#KKW1;Th;vfjUH@#Yb6(RpE-xjAZt zxn@O0zEVR-HDF*=`SO7$amTL)*nhwOcaltw;>l2Vv6H#F6OrRjo}zF-tFEtAy|28s z4ahZbC1ltp*1aAZ{&_t7<&)SWqEEK_qum|-wQFN-rdaSbqGB)Vt4P5s`4)1rx3l0JI;HX-P;>8Z$tje)6zzq;v<^6lzi^t1H z4iCPXSDdE=dT9Vdn+D(60qh>=;Oa8d9}mxYE~iCWG0^D!03ZjI-)`N#m6?~v%Za^n zEL7{U&pR==L@jJOvo$cJ3;7^vb3BXob`sa0X{aQgZ3*QY(szZdL7M_e`Np8dxnsOW zjX0+^8!>_>&gSnEg%Sb3pW)ds^)@shE93!C8U>XnQ~ND@^qFS;9-F1*Bc_Xba#M9) z6p6CEt~~vRT_Ttcp&xS;3xI;0)q%kKgrj=xxyuy9mD^Oz}rV*4d%_iNm{s?dJp_nwpW1C zCey-yAvHv#&4Me^;x&<8D#kz3IWLH_Zn);?>DE%usCQ?azycsybxH&pM`QZ{FCB|f z%{PF)W1k;TLTA*OPGQ8FbzPCfCxQ*iUK#(bo# zSD+OoZ&?bRV`>O36+QXjg7yHCowM%SOH7u_FjgCImK%jI0h4~eTZ4ReJ!KzoPyBuWA2S$dztD_+TM%tt}#R$HT5ht@+u`$ zXm6n@z-;E^X|czQ2%)C}{|}s@(C0JHY<_O!|M}!2dFNegdW*6;=%v@;&iyPZYIeY| z#>FXIN8NFHNZ%v3x$OF*fQs{M8;p*wJ!LfdFB%XEO={{|X%@BAAFSxJM9af9^edZ> zWgX!gve@o{(wZL&^b4V>Cz@M4et5(WtmrTR|LJ2+A@89=syq^gmCKAtW=0}N=m+?w z+`RcY3l&7--DiXOcmeX-dnNgfPv*JU{;An|pNl9?(t|W=6{_7uP1ais0uG$?`XVFBAKPK+MV z(3v1cY)v1K1~-1KNLkfT*$0%dJW%f6LtN4oLK9vVRnSYiq?;Tpo-3IdZx7e{zUEG+ zoEM#WnlJBOnZyN+J-quCSf;b6{Sj(mVEyxj=4r3A1I2Z<)Kz1UR$kq767jmFb#G-Wq4M#dOe*U`e1#uG-#sk zmU@+t0cYqWziriLD+*D5|V9+&{m}r zF9SBaLNFyD6ov@StPVa|?5PLQeY%-d9>8J=hA1o zh6+`;t;{N^Vr}8ZEQ5mb@mwibQoSd8x2B^zl8M$bTC5>;UE) z&2RsFZSNupf0Cp$;u_VY<@W@~E`gz=sm+UQDy#Y2fFAG@UH5V>(>@nMrjX;(BO>&Uyn*HewcaQv&cA4wRF52en z&TsaDIo8U?py{?#bv*-_5d)klF_SIf4x2d_&@CVjp)$_TdD$+(g3M;sJnIl z7Mp90RdA-Hk?shf%#v>jxi-r?Kg14X{bqpJ1H~C=zJWYB{(SCUje%E3_Tbz_QV}wb zEF(c;*_>oL5yQxMR|3w3#SFP<^05C_>S5Sil zzj4dVZ*z($jH>3ZA`iBLKKsbD4PWj^10(?m>!~q;zv>bH{Jvk)#nNLLSKl-5svzuSQ9@X; zTPxOF+AfS`j!N?P211lkF;YA0o7^;sMZSR59>mwf`jf z(8P16M=EF#gB$!HC-m^0Dnx5{8*$|w5FsEMeuJADt*WJ>vv|xsmHoGLK)CaVdP}aQ zfX1+Tp}Xgp?H(E$^4tBhPa5Ytbdnw58tE_{fcNng^)53asQ{3w2G`L~h}hNFFR>N_ z$&M8cJj>E~AGscEv@=Ue%%^jbVwR1Qlp>4Jg4dgKFbL_S-nnt|VM zj%C>P81g(3yv=6OeHH#q#weMjZ&Mmo+$3M3wyJLAh^)hQ05K`p>W=d7^JtmCq;A>1 z+GV{1umgRbc`QpkmZzR)lWpisQ z90!N0l(Btj=n$E(+i4@YGhXSuijG6f6FGZhn|1Q0-5ClXN3>~V#wcG+nAMS<-88OQ z;(JV#0po$}sYehcIG=Qro-hA>?FrAJLMcfJSh>VXmvJwP(DQmX6#Suh4V z_}jfyeJ{;dPeqoQPj%;~-1e{SNcm$s@G@mXJsCC z=4*iBq!^t)(fd^LVz2J4jr5Jbm+P|MDY(M$B&5Lg(V4FOZ!mO~5_uKn&c zE33h@Eg$-&y7l%CuZtr4fYaY}BYYvZ+&aXi=0C}A|BHw0I%Par*MPV*y#=VZXoFv1 zfNUMEvAD>$eASy6eJ$p@9AL_KOCO6c2!0BrkV!GG^{R3h^dOX-ypI7PP2lJJ<%#O@ ztKHsWGkf0yK4COrX!Yrdw$ALm6|jb$adR;J;vv2&al@x8rD4xpX65;+-j^u|pg(@n zv&z}5veIyztXz!tBYF6Bi7&TJb8Gde z1Nfmf0B4UK8C7Yy_$;1ca~T1s1Fs1>$&F7&@#gd!rG0KkuiL^_4>RP(jR+u!tgHvX zao;X+HdJuZ6SK~@7msa3RAK-uG6bN_-5s(u%*;muFzhJd{b6oD;l;xY!ANIQin5{ozhCyMC%`)_4xYJf^a<)FCHfeGD?RN^V0 zb|CAu;Bo2?NuzJ3kp|S0r53O?Zes$%pvS-Uq9*+yiTE8JC?rpRE@ba5nWa3%2lqL&{&ZczSQHT z*_rf(;Q0g|&8~%52=v%VD< zlHLNQr0QaDWIq%@9gZ{BV8MWdS0wOG$7X!(ppMw?P&?Wr(F(( z>`hwR^7-2CP@W!Gt<{0jQnnP|fadXNNQ$t>piMdK$IO?8{z)m!-a0B~Vlbx=X^`v{ zCaJH^HB<)CL0SiA9`^O0W1-vS&pTLsHJ0woZPvkM@7KIkbM4`+{RxEeu8txo#I{zg zIKS)5Km*oV^o$Y#)W?j1G7FgeR8eMJuk>r(!@aCxp;eY6UL}4p*;(G7*=WG8)z~{K zl1`B~F5**`Na0+Q?bSe#+c1Ock$s_Dmng>54+nm@#a=%A07&0aU%6qf0hLF+?Law* znNLZbxC%=;JcT%Ex9F+AmF6q4?)~|_RFu8#+aN|OUQO?dj!nCKQ3L8axy`)D6xG}Y z=tLEI;&}$$&RlOhNAQHpDtmd%^;pu^6Y1gH=AAq;U?~si2azO&qYJ#h=Y)Qjcw*CA z2#d?6pqL^Ap$X5+N0lkq-hPfTtL)sicvgxr*HQaBskcY$=K+=YeGNUYa3yc|o|JdX zppzr1=hBGxuI+H$9>+n`N+AC<8-w^BpQJ4Id_^wCd+V<;F#;Rz15%-bmsi17sy5Py z{U_kfr&I%zvhD_yVhLUwBS57`pfDp!$gQXn8!~1LAZ$jh^W!Vz>HFXEXU4f4T0)t^ zD%Odp*|^FlU9wN>rsHPCKLY5#BMM&G-$b5ZZJ&Sb zPnW0XcG!GhxTvFiZ&w$v3vfC$`E3qxpyPR*=(RW55^R#|I^U-t3eFGp5H3`Y&jXB? zL!S;DY5S})N9vP%c+gG1Kw|f~PqUn5C_Y$8We#X+j?G6NkHY=w8U*t$gG9!6*8BLN zDzFJ4SX0D?S|=scN^L*@ijHBbkEd#?!$MAU-rc=f1tDlZn_%9OKxhFf`S)6FHxEvX znqq~0XmGnoILr$ZKGCw-jr2Y#5}$6S4?lV4U6(F$t*+gU=4irx@mgW|77*uS>7g~( zU3A6)>_}zD&Qi}!Xdk&=#;7+^bbEhchx-FQe&y;$wX#7|>z#NT7hva7#n@I%2Q2if zJOk65?9L2hrvT_NUz`0}b5uCs&>}P=t)iw@wN)T7qVi1S3xmVb_50@c^CIR9IMLQ? zWuL;ULIaj`9xP+DesQ7t&$yLRu*5U=Z|DZYHi2xOePk#GY6viIWxPQ1hY!Zx7USDV zaNZxb$JB=qrgj36hDL5+*Mak(57!K{-p)srzq)_xT0Wg04Hlj936(hna{4B|5S1Ew z-%35MjN$&uEBE`VD&Mp7YesiQKWSv;Pr7I4qL^t~hRo!geY>A6#(N};IED&8vX1)c zJMdS*p_!vQ$5%r5Es*#>_z``1!U&<|HXlw=F2%?4LT*Ln8HR+Bhu>X#AyOy5d(`6F z2jua5zGP{?l@5=?CUO%~ezj7eiB}**Kf|}S7FHNp>Do~XC5v0yb7;?s&T5eDJj7}N zC1EQKdks{g_x9=(Ej(==PgJIggqXu|jJ-Vi{6)N5>*Uq?U=a9)OxkAN2Ig=zj}QNN zt6m$PT1eCM^tbj93q_w%W?Eu*OWB3?r@L1xzPy`zuNRhQmd#%NbS*Wv|J)Us#r8&b zxD7z~4IBZ?o#Iio`%~6DWYWq?D868l+RZvl42o~8MhRDrZv3&)G+;3PoY8&hIyX=) zlPNa>{FSx10lH~%3)F*l;5K9+OKqlZo)@wC2%aWLGSMS+IGnmrxtPGMAcTJ0+5{My z#dzBmqj)=u0p-T0FiZbg!2T}^C`-neCwdGD?RXlZOOLVaOOMV}NslR8AB|Dd&>L{lsth`< zZ)Tl0q4SHDq)Fhh{7@YU)aNT!^-aUo02=YI$8zr%1n;*Gtf%!)15Y$OTG*qEUflio z2%QdzElbzKxTH5dz19J|p7O_a-WxTQ3xKaEH+OoM-ITCLrwt8WneEhM&M@o=UrN!! z87r~`Xy1w5+n!zdjWBR}ora+CF&mOHszun7|2BT7Gw;D|psT15zis`u{rYspD82^T zikPh!{QlbZe*Ifw%|J5~_nuhgwKJd0dg}Z7IQSRW-Ct6?ucySHW=59sv!BciG*N{k z>@WYe?VkSoSAo{8j^T^*XWqq;A%Ir60&?*0=c?0d6((cg!B;(!#{Zk}^w%XrIB<8S zp3;2(XH(BFpG@R{rZ8jDk7K``*iN6EL=LoAJ?-Z|TkH82XreM(^KlUT<#|6}rRoi! zckne`%g_Jw%cpmzq@cILiqQWChX1u|JO#$!p3*GsnM3gJ;Qlg!{vF)EU&g;H_dm<$ z-K_y|F7FJn@X!VgGwb}4-<4xH0tK>kWxj=z6&@Sl`!>3BvG4XuDj39irM49Penh{-bH_*7$dJeQZmF%~gY5QN za!U0i8m}v<87$=!b1|U4O9HGdzoU$JTzx!^jmOq1RGZ0(@lr98<$SI~Jo^fYQIdDd z6?Wj;fz7!J)t!lcXKB!1-bcStt9+ww?~^$Aq&RX32J>(dZf*tQRx2+w$U8Honku)P z6MD>CCKyl-U-WYv_G%K8Qt0^oYcRchNzi=%E(wm;Qbx^}uArx-WKH(6FLd~03GxFg z(t!XhPf>pRh#algxH_{yv`T1XXrzatsV+cyUpzyTbM8E6cM5z4DRFtpPXzudhz39S zV`=B+d?=9u_P+LFan$#!?{z4zge0ylyaSrsH4l*-s*c_HMCsyOv>i0~zVK~-$Mwb_ zt>MnITBF4@nJmJ!zN&gMQuOm)o)L$?7U6%3_Y(f9r#ZMmd;@rCI7Y??g0b5|;zk?G z7@E(>%hRT!pakkJOezn1P0e)anJowXp<>B8(1Mfbpar>+m8AZ72|RxVL#6^}QeI1f!d57W#V&{+UpT zt>dIz4Kg4x=d(A@$s^JBl#FG@%r>wXd2={;Q0t%L@H@^>C;f`CP0t88=>ZOE!F>o2JX9v145%;XB148;01=uO z)?r6iOAo3Je7&#kQGa~B@0n#P>rcd3aDOjoFm+Sncor=Bi6&xjhVr-+9mR1Aso8C$ z0tmh&O0{6n{(9V{RU(ZrEsTRfT3tfImc*WV>=!B3&o+KOR~rsnc7?Mcyr z>920@|H-)OPl{bZb`C0wlP!ty6JR`=%N)aaV@`a!%e7IH7ktjiK%uPXd+GV+HCwHISenR)4I-vxSCIGOFQzI^TdpdOhjwRY^ywoaOy`&-3A>C zNa6d;T^hD&Sr9`D?sGG-59NKmfu;_qN*{SoPrYLAq8Hi6pZ1WY|4kWSlfe08TFBa^ zPa~-yyU^?Xnn2W9T{X8<>H|D^Z*C#S~w_M{#le%-A zseVg~&en7>Q4bF8V`7`)nYvia>03WNaZ4=+&w#rf0zMx?1+zDnOaIr@0hEq0=H zmx(Dn{|$!^3AGB+ z&MVcM0kJAtjbUCkCo09y0Iahy@Y+&onBw&(1`7V2soZ` zQ1EG{vg5wF?i<(2Lt`R0eboB2@@hD{?5NNW@nqb6)+T>Hbla9FZ>CXlfWLO83t>i6 zS=?DeeeMF(rs;7DMMSY6w<&WOU&o_4$v@k;whN#PDF5PB$-KcgJc6wZe;!#py2d>;KP;RO z;h%@se%3UZ$KjDJYDny?b%rFRCsqb6xy0?P-F?qaI6+txz8vTuvv9~xAlMPGu;57& zv-75?tCit2q5SWZN-PO>0h<0vE6nVf%Q-zvt%L`kQgrx4gumO2uLKd)9{aL;lYYZH zvKzFniIlgvldD*+eD*K_$Xo({N9Gd`_^6^hH_M_2Jb9BMfIG)w=v8~!XIwaSC-J2T zQ+X$6+SLeZZ3^vsXU_cz8aw(V%Z*PeFv_{c0->{QgNnQya{5ah&Xr*JG{{4f`zE5;@W z--bWrJF7ECPiDWXB^S#c9`)90M z;KYCD0(9XM@DFp$o2gB2OPT5bK#YQfS4rIxmEWdKb3YCainwT;IR=+h_3DWUOVyIi zl&9m`^zsjh`@j1GZ!y>JIX>vsjtE^emAu_VYc5ZD+*x)v0FCm-w}ofXZ(T%rjf^#AXRgN=oLCO0*{GygYItvNnDa#21~n78)+yey}}ldQMMSrMXAsU%A$ugh5P0 zTcGn5EobTWPhT2t%{wj&`6Yw9UyH2VrdbmNuZSm$*ov3W>JnPFXDu~ko<0AIUc%_Q zfXV9?sW2#ue+yWCB1TIQ5$e^i&)(i^ZzNq+<1b$cr(bS(Vtkd7HR~DN5p(|Qkt^Z) z9;1+G;ElgS^)K_Io88B^>l@YXOZJYUoeR9}McYulk^uZK4_KTMhZ=Fcs%kGQohYu^ zoXcsUR1NVUkNEv~2P{@Z^2^!VgnHkytwRU6@~LFVh39)?=~K2VjO zQjQKXL?fga-G-}6fxFuFq2onshnd%#ug7v7M1Pq%wD%xVLq2W1eS(Z(b zn|sFajRsaz5^yZ)&GG2i7%E?WbhN`(CDz7j?3RwL@U4n{x!X#@nSL0vKg_O}MlL7_ z{qXnvhMY9mA-fq6`mX)hKKd;~C8Vcpl2xBa=?#}f>`>2+>C&|RbkX7+u za4lfyAycG0!mrA|56qVzl-(TJLDaR(z(XR_+9O(f(_~F*m&vPk2X)%jbs+Otmth!w zPlSQo4~mM7fYlqeE9@#6u2YWXp5L&bx8sxa@cl_w13(9`@38Kjcb#P|_~~@a&zF^X z+!U26;Q?#c7S=*zCGEMInW*kkaINZ@cCg7G=xJFK`+*M2zN} zJdoG#d+x!EIiXz=#c^sg+r?$dkg+AT%T<%SC!0z_27la7zRqTjVY?}c7z$E~$ z$NRkwwD!y0bF7>wcma_7-EKavn38{n$({k%56*XYiN|4|gg6D=Y4tj*HA4@FOC z+4miS43oDVcbgesV-Sh>d4rRbY{M582&lV9ZTOOtjz^2k5-^q#W~&qNfuMnj^mg~S z;~gP)kefoUuP`L zFs<+C0sF;J{-akPQfZN!A607KhcpdEbHRKW><`{g&*Ds)_Y;5ke03oF zb@NP8K2PyDs@04#oRKOL`}`W^VTpb6j7S!H(r&gWA8pRA!7V;9C%>kII_pti#fuWe z=OC*MPiuE*FEl+Z{ZKnqy;-+fnt*9L@qEGy8C4ArtlR-bwrL=b)q1F%W#U{WoO5*Ok3}AbGiLJmzFvED~Cz-Ih4?&z);{OYX4U|jV zV?_HmI*+(ps#ooM`gEREU8Cu_^-0XS+l6_sJFol>XH@;J;7ad zhY=G+Ms40&Su%S_Ca;@u<)&nt0_;cyJ*t7^py#!DXVetncC+BiF07LCm$Sl$Ti+J1 z@#++8n+S>f`Zk(0+)h1Qb&b^a7@g-MnKrD<*sH$B=jM~VF{EWNtR>BFjozM|H)G${ z5tL_G!zZRF57~gqXlmxUe5jSLMyivOCu~isn7ko~3m^q;z+t1xcE?AN^S}xWbK^wa zdu<0aXTOH^DIj&CN@R4V!wCruV)*j=8XzSD$pLBe>00SujLgN8%O2JMof0<{iUH*V zunn!zR-)MZslU)wF`K^8v2OWPVgIYInUg$|K(spW?eo;md$c@ax_jP8Q}*Jcc%E^# zfwlr&X~g+ywe7r*TJ1+k-J-E*?#OL9hMHIl%@?B_8Thel7mSj_rMo;)F<=M4Sw7s0 z>DuS{SrDc|E{^ufjV^v&k*(>_HUrM%?4udqZP|pyE*h-XGxshTD$;SKt;f!jWay4c zj~8{mN-xa2qWhMwt?rYE9{7+(OxQNuBYFxI-RW*}pZ7@dK9~T_y?aE$?q)F0>$J;# zX}g!fSnj?~vKg7F|P19_r6yBq$QgzYA{>>CgX#&N8bR2M_5LJd(m7|+;hCf zgK1J2@$FSFWavi!ltHD4Jp2LdRonU(h2dOJj z)SWR@gmde7=CF2lzIMUQn%R$(oSok2`I$yt8S~sLvW&w`#PV0M=HmM>9Jui3MY~^q z5uM^oYB;gxa;c{Y@ujftFBO7#bhIw7uC@*{jNh4w^#_)I6Eg4FUXWG4sIg#T+s8l zrW#Id|$ZmUNMbTf8${T|Q*r#>g5f!$_Be{K=IZrp4GsuT`^=jP@* z983qcGe;ifF6~Wf??eFR!UZ&#kx-BxKvKFSlorV$m4>0a8x@g~4(X8Y7(zh0hRy+z z?q(zgzMH-G^E~4A{SUt1=J3Fob>C~PE6?-1BA}+S$`qTltiu4laxv`E*_>x?FEQ0B8~~S#EE6W(p41%yx+F0WK0JN4br@tU`VI5Dzu@J@Migf zmxvVrX&z-!)Ihg?o9bdG>{(1O_7S=Blqa{KBhQP?@&O@cAaIlVS)z~Z4g0Klwe$SD zKDUgfD%Ku@85=FN+8;AAjI1PBrO-1mj6ek!N6+ubC8%JmfHkPf%tdE?r*$N6*xdGc|FsG)<~;@l zL43P~8Do#z6{rU8Sal@oOjBf}1WpZ)4Su?j@dVM=Q3XpzR$ss*vcS+}xAn7nyf68R zSv2b@URrwy(3UIHiScJRFY5v3LPu}zw>n^-FL-<)q{+-xjL8s5&I1C3Ze2m%wDYs6J% zc+5vkcgRDP z=g2+w^KxDYH`@=0fGZ%~i;Q+NwjEtzUgsHp5PpubkKuwYyWxIzI<8s0qI4?Ra*R`- zZ~nUBqST>4v&5`mlwUAP>i*RGlELg;A}_LSRf{3m9@L%qqgzikR(=-v@_O&Fyz~k*R)IhS`HBs7I=(sE{4{)CEKrb8p zICS^`8?ty~SV+L!ZLf`(rn=94Eh`t^P`0=5qS}eY6_5PaSnP)HZ7iS`<{LdWU2O>^ zLmYb^wjZ^Eu()YQVthsuEc08;lfw=Ui@ttwR*SCpZ9vRQ19n^2&Yi}JVcgDI>{&>Y zq;YB#{bv?RdAIIQc>rd8x~Il=;XMg}5w1<=0KLUxsPq6Bpk+YJyz%J%wK8nD8*l+e z)NLK9lqAI6n$^ZXm1n7cPgdReCD_8b7`uS z*?fS)iuFWD1)K`NuMkUsKiwGP7T_;~^MCaJb<iqy`(j!`K`#_xjf?L&-+RCVO9hKrNd*j&vR$8q&4{C-Kg>42SM-mbcO1sM`(P zLOYBd@Hj0ua!%%AtV5jxXsj&O4M#DS(5*OF^iUCL*?FD3yj z<5JC=un>)qIxn3l^+3&40ZKXEbuu=Qm&^A@w~0{L?h?%Sa4 zmI88FN1dvbzjOcp)+{pRQ+MZbhmIWt6{}H6YG@OzRKRLH8!8hNsV%*)r3m}ko=Wa9oB341phy+axDE&;;}4?OA_$UeF zG%@lcrApdYtNR(?wf-d6-~zoST_QFwaD}SAOTyDZ4^A$w%BrgOUKRk)6IrVt;>0W5 z?$J~-B1#vWIQGuX(pqtK(zUc4?H*IE)g)0aLyH(}Y zSK`^6@}prVz6{gYV<#zAkoa?@=3PioPmEDZ3$dO@+O%SZ|IDgBC4Y&`&zy`?I@cjJ zAAj__tZo7Fi9B7*#r624_>?wZeK|aS?xw$~0CKrD5RS>LYj8znWf%72b^X(dwTP8; zylYi0ZwPcZEn<))Vj`56ERV4c+JxdH3zinC5(eX8GdC zu)@0;fa40B0Z+tP#I&213ozcb^XK0EI>!WI&(l{9+5lsEsgveoWKVHTfvGnHg@mw# z(nZv)I>0Lq{32eF#R8*P@53ieOW57gnjaw0a2BoKI6A!?iLSs+W z(y$yJvy3#$a#4Rc<#||$xp5#2(krbW#xB%t&~m7l+m=I5h_SjtZR5HRJ*V$s6(IgN z0`77wLJn|0c249nd)WmMg0tJUJR8(2%vl@GmP892*Yi$hVK2mL9bSCi<{vZRSv6@) z&i6CbKLia_yBp>mUTc4FD{}(Lt?__p@MY?Mv;erxD}bS1*GwzdhZ{O! z48LfLLa8h?NK&{Cp{ElT^<#lcQW9g3Irz%iKD?nxkApUo+d!lGYy)hm>!u(4SeD#ZAf`dTFUh1xYD%&V}BWoqw9rO+= z>7Aq0v_*mosdPvDRM5IXi8p9>0L=V)zX(%$5;gBlNn^|K?3Y{P`wAPD&OSN{o@^al zs^Q4l)#YKZgfQX~oLha%=_y#cFzqal>D$Ns{B*+l9pR`SEJY8DkB_evy58G^!(<1r zZ@atb8`KjLv8Bta)W@tkVkI4XE2jk#?~<^K&U&|>g`f?Wbm({vWn9p#-ss8@jdV4wmllrPWy2 zN}?wuUwCz8m33^pzp8Uz^pcmC-(O<$l$>?ncc-aFWGbP{0y$k1K1Cs~{P6BP4ZouZ zQ0ru-bTO>P@}P?*dG=VoND%v)6;pZvAa6g(b@x$*uzoJ1AU@AlNJssXv@^;c$ zsS8W4VBNQ<`sB)unyvVmbtTDDAy)BZa==6Fc*?#w(%==HiYr(NsrJM965+moGT_UcIyV!+_IFRK=^9%Pckrh$8d>1paw*5k?S~p|{1VI}kW-~SY;3sNsLca`A zy6VG5UZI;S$nuAf{G_VU{helROkWX?+?gg$_5fnW$E1^YicXDhtipiW8Olj#u!z>) zMf7H_j{gAPnaY010UI99i5tgSxwg~VQW+qgaJa}-D(tks*k!b1{o}Sb?OvI{5|88dv{V%+^}3GRmP2=;F1Rs6ko3txsX@mtzA3sqCHocK$QQ5jM6il6(j zjVu5(Jlb3DfGr*<{4GXj%cVT}e0fg%tVum*{$(Y-P)^WGPTa(Yz{qPKUY8zF_3X<* zBdJib$Mg@p(}`UiiPBXaTHEaNQ=z549Gg?u#F zT#yNpV%%K*(|iT~>LyE`4V>fDjFzg(HR~wLsgdQr;5%Jm3h`Yq(Xzi zCK=4i9xNV>>%|)N#B>AjJtKfzUgmaWPHHaooud9o|B4nMhy9I0vZ*}Bm;QR@;v*_} zo2$BPcql6*D=SM?3k+Ov>2FvjGRblbp z#N^7Bv&SJW>T1Pv)D~lqPouNe{`KWf4Fy`|&F&STGeop6k|!1ge8}C@m)UfJGf`h` zIanQLHkDXVG&XfMd*_9GzWCYDZxJtWjeYBYz9$(#d9C5sHnS~l92OUe`(Ml1dd_)c)Y>#|wV$Q9cAc$ZI?p)0-4t=9 zkFQyfnKT+5F54SyW8H({&?9*XDBvS8e z)2}!|NA-8Z30X{Um`QZTEPr@VI_|=!-`&pv8CNbfH6yZmvVyS77r7}j@bD5ZQ8n!cuLogn-&ueE zA_n^KY~?UBWsRb2l?o6m2y3POxJug|F|3Q-@^sH!Kd(t5dxwdhibJ*i<81c0wPGvW zxKU+dZ{W4oiv4iTTOasB=#S zTm2AC;5&g2;bw27yHZiWoiTr%LQ7*W&#b0+1h0MaSi!Wu7r9Yod@;{~s>OIu_vprA z9v`;Rm|u0Brzg%+Jy(l(kL3{w!-=t5b)G5Pl)xTscia9OoavwnlzemuWxro+ErXqp zw%yMCFju@>+vHrgwg}<)iKQz~t!aPQzNw0U1Y3=6p-3Ip&S{j18#kR+@wV*ub{IQv zcu858M|;eFAmwNdh&f7f&?jtE(NMH43cU8ZUP-66o@1M-Bun>fhFYjeGf$d4R|ydZ z%Hd5Rgm6!Al^0dru)fvuLiy6lWlcl6yS+2NQxn`!g!6Q_$e2397kM7zw|#8R(p2u` z-^+dLi=ZhQYwcR|3e=<9{&E9@&k|t^$7O|jh}nzEX2*)KPbMcWUuRCF`l4EW=2MAb z1JmsY9KGr?s(2H4Bq zm(|#3i0&ewg?Ldmi96VIwme+M*q!yu1Lju{@-z zJ25der0pig-5auo(HkpBRMA)_8bMJI0_m)yA(M>wEzZc~^t9F=@l5~(@Y9WJj zQy}qBbAubdY|KDK<${Vo8BRWZ%^3spmD%ucF}Elt)VwN9HAx8Zr#7b4LV;1pk9wK! zrAit+et|jL;lZ!EPWWW29e(o3fS~`BaQP1mgz6{yfT>7GqyP1m5A^b$@ zhr;aJF1Dt|%tcO*!8_*Z1IpE10r3qx}-l&tDh!}1q&rt zsO|u`fv)$X8-`m!&JD)(puRpjkIl*Wv$!4HZ9Xse9m>xM(2`X{$Gez)6sw%~2#8cs zQLjhnmbbayP8;-+)B-bvWoK2mTU%a;i#J3RC%YHP#VK_Ju|5X$UC4(B2sqYl>*iF= zc;Nu&bl=f^3QXlC##-|_+gWHU-F+K9Y_}18BAFZ}ss#SoQ1Tt*>e=-|v+Q+f{r(t- z=0*RM-!Md|ykV0FHM#vTIdQB1_7IfT71V_!wvfT%_e#=2feF(r%1_UHyYZJ z4RfUlx$!qy`qzEhYtU{dO<1R5zd-S(P>Su8nGhLHE%U?qS@#{CW8Dc23Y5b80)RY; zhL)CA)+pDrA=ePn>C{Os%b^{j(>bPIAZZMHH_eNMi3O3*c9;c=rP-NlxWJJE-LZ1& zIyjqk9EDm?UE_xHY{7#ea=U>jd!waD5Wzj(ua3i+DL??H6Bg=5|I# zTXb(u9?47eb#~_@ioL>xdjg%;>6{<;9gawuglz)_0A>P4+jS9lQMudZ_pX+ZX-8w_ z59q^ZX-VD=9F0627>?PRmp=RAF7S9D8y>Rbe){-irI#Kk&Z>W!DJCPoGS>Ch?b~+W zN0Om%P%Rl^FxtMtaGjf0UVZz$=WjRa1?DSG7Ft@CtOsFsel28Ux5Nw_ZKLoA8h>^_ zIzcvVN4R1Wt0U$G_@-Gig1T}P_%zzBMe3u3+`T!)40gs*oc~*Y`^ytMsHTz`JbY-N zKDyE5o!}=fB~)~IrZUcK+^0`xo9qxC4NXa+nS-uMX=*K5wMPq<;|6gYlumMZbjBFt zeR?QF`J^_|!pWIRN@%<2LC5t@OWi}sLq&>;wHv9&Vk=wx09-2wQ zL}TAWf70c0D|Yq!q70!3RKtU2zvg!=QUj>Q)5Ip)b(k{CYq6}K() z-qm*gP~Hq$-i||o*xP}%SZ{)^`7~O&ROr>?*fH?~E+d1Iex+e!Ecy6YpH7*#p(`MO zI4&Y!$HPNmWLcpn8!&aPRg~0VoC$GuwxAP!@Pl)uC~c zPMTIbdPj#c=Uubhk5}X~*V8bVkZ+NL#2EAW!Fv7@;4zroORp~WCeT$dLKwW+LLC}8 zs>wRm)<*FaN5T1ln@}g)CYBcDhaT@MO}AB%{DGoe9uJo&g}W&`Z9YkTE@nm7OJdv8 zEro?=-r#Z6tjdgd%Zu$q&)-6@A8e_9OJ&n8N-iC*CPZxFrum@9YU+jE)I78&4H_1Gk!Y<}(Gcm!y}{e9qu3jfzwII( z^XUZlN41Dk!6vV3&I<)igr}*phO-^(+iS0QL@qTlCNNniDZGR;?bJ%~uaM!iQNXcD zE6HEHtp<_jx}VVme+e`s7Z6byhi%m910H+NET*)7s;wDWB;S ztK^a`BQ?VZS$Ui5^HD?{Z@b|G_em`W_ls)`kVeFtx7e`Wu476?fnR#8c7A8yGCq$| zOs36Aj0qUU!aQ0$1xX0yq=1VJ=o_4pB*YsAetrZ)2!97II!JzXlGyHkQpX0I`nHLt z{F@aFn_o0qj>nb5$|?4m)~2aEl@Ado!*`<~!MI=6aGDxj0?$vsKo{ROw7WMY=oVnn zkKYU9l*i2d#w5s`a~*(8_B@ptgpG;0aAusDC;3p!z+MusXmEu?zlm`JuJ!-H2 zXq9zAc;7bbZZ*sUyc=}(If|UhMPX{HJR-P~%VeHRaQRu!+tGIYeissmXDPYIUogID_<~Ue+W2N*}$-28kD}G6iNr`6U=_C}_Z?tO4 zxGCkPeQ(-!dvW2`>ff*8*!c76n5p0<(~(iqIliWj${c%u2)%Y<9TY`@`FItw94Z{Q z0WVuc>z@SOeCP8qF5kcaKPQw9?*ciB=qwDYhb>Ky>+khFW?oXsp=3#{-2dWC8h-1y zo43v?DtdJ*RxxO+^P&&%SYn7}jGwKFM4@@ycOp@~K#y16@qK?x1$f=p|Dh1irOVTk- z-o=W5fKwviTpK`U&HMjNUK%9;VmfZ_H(snbDMRdBQh70fW>}bfAyhelLsLbTX-Ji3yG0`t{V7C9A}++xEiDFHeL%T#aJZtk^E>c-7?guoyX%TY&U zJNKiJ?G6evQ#I3+wxB?!dDacL$efBwIypNXo1NeO7Y0`(@L)8fRjy;1VO|f4inve% z=1tyETnnlHy2!aXH~iyAR0Pn*%L=jH*f7tCWBOJ&3b5|Q5nR7%z%PjQ0&MU%Y7dWU zDExBW7@T*=90ayg$fbX~K)@dk0ExW2Ra^}x>Qy{GlRa@vk zz?b7AX{gU_2K`p;xw;~-MBuL)^5%NRvsDe))J3=VrjI{*5@&Z{rfK3kr| z%yqj&O~rLXs_3txL5zA0F{)-FPXa(jDZ_ts@Pw=`Q?QeJUpJXbHO zwu1A=H|hHVPz)KgJ0#R(&$t~+&GLhQQAjRgF)W&oitA6m$jw4{Ckw3S(i33^xT|w| zXt)m;00~v5sgxK$prNG$i2LwqmO13H=+(!W{tAcVBS>gVH>9dJ+gETYEIE!bmmY6dU4hhz-bMA6GG-}8$O80Zylci#B ziX?>J!9Xm4vcMc;*7-T++<1S}4SqC^-jhXyJK^okxBB&#Az}?GOBeN#jidf>NY<{W zu)4b!y3ORa84F;C7zEbe(kuc(I1zx@EWxK7GozFJCA(I6-Y!4|8GNV#^c*yloKDYX z>FGZ^L|OvPJTX%2Yscq5?R~^9U*(1+6pu))yOS4_Il6l%2ZXZY{oU8YS92&v4~~h2 zt?;t>y{@`9S)AwYEvj8DPBj}1OXooozDqysM?1w$W|FnWeF=V$>RB(S;Q4CC{+fM% z3;>TV*9ViSanYW)v3VP5CG<17BvCj|h|R()o>z=!B^RBqh!{097k73DpDIrpYb=34 zTYJ6N+=(wOa2DxmkJmkR$cT*PHR6s$6xCMp=~wLHwPjltXKV$x4;_bb4)^F&7;54L zb{fGSMYf-sK_DQ8o$l@qk>e+%WLAtO;$5l$F3wTW>vYmY50G+3Aot-!FcB>{MpJlIRS+)+=T%#3PFFxQ~G; zJLFI|pO^EQbxIoS)|bL5O&7m&$H{rhd(N}Lr(k3+rykK@m$Q~~mJ`Cd?=(2(ve5o9 zdf}r`)yTtAkoVeBEVj7#)=SUj4v}ro;K2qnoV!Q7u0yoI$bho*uG=AGpVkh`KVNEl zA$#X@jX!E1cGReuRv@pK*@+rCXr%-ZUw2kK)6NYs#UE8JT=0bBB zm;Ol;;=q7r+}c12Icx!l%k)7fzH!pT>f3r$^H+5P=v0#>qhlJ5+gtmIgYV73HJJ|1kGB{q`5UsTr}9@ z8U6gwrZXxJ_Memsd)a}joe?ww0^hLZ29W!)OW2>!k{;OYHaG7jQ+EE=TE)7(>Xzj9 zVzWZ~U zD+l-?RIjG6&GXx7?uuyB#j`dwJQ3P*Fc~juiE&MVOUFj==6@Y z&N8Ej{q!6MG7f220b02``-Qx`ygfPn{IZ+&cL7v4bNr!z*WB6sT^i@gjOX5GiF1c& zD(`0Uqym|HZ#+JR#*!sCaX&2_gxG3b^UBm?z(uO194b)IoC#W>W{pjn z^Ou8u5xvHfQ0vZsy#;0=$1sHZ)~LF_{RgOH< zYz=u0|9<0UC=(E(=5p(0tQ@zBM--S@#L6pc$cSoW5Vt2CHwRPUDimc5)kS&bDEW&g zr?@T0C!h!NObl(T$<#cL=lWR|h5I7C@Yco?GgGwTnC6vGK;w z%(jHRkT|>}+zcZ`flgCa(~yQX96F4#9kvT3)g^|XDm1LWntP6Y#250B9i9aSgW>Wl z*F!3thhO#SaFqLwyk&6i46{$XLkr+fu;qk*u-L~p3n_Bnfer`&_i9^{;I={%doy{Q zgmcZxth)vO%|hIkya?{+t^i-*|RxSAM?jEK^P(jYl?tPa6|guLhn9P z5aO;OMB*9=Nk{5dTj|(rL8>ODV&d`#$(~)IqhAg-9L155tou-%BE^#N*ARHp@vQZu30xIJ_uj2E97b9;9F3*Vy`FK+N&e#K z=Gs9@ST|&it+wzZ_<`NqJ3Ip_=0iSK?P*5Q-%?1k(Nzjn(J}q(Z$?zkcy}( z+=h{gM;`NS#0~7H`kZA|r(ryEts_XHxO>$meF;nO9LkJ2wUITz!`%U43t?XT8iV>u z0rFdxpAxp0Rw{HNA*Li9UzJ+LLOByng*0NTA1C&8H)KbrCev+ICF-!m?bM!ar;DX2 zkX5NNGiunDt0}Q?&&6g*)8FXd-kanz{l3_psuIhzp~x*fH9f< zPO5w+745m%%W0%ITsWD`FDFwAbKo8m<82u>kyoFhaGrUhJ+pNrP3c*|Ksyqp1Ca5$ zcIXw0UW8O$^kcMHB>NOh^Xkm|()5|OB+FZ=ui}vNI#s!kR#|-CP$0ukIg2iKnS1Ea zvsH$hZhvmu;R>I=G;S=+9S-G%(+0<@MR^p%n69yj0cT`5bm1eY=Yh%K;v?p_Y7;Apf4eZ6bD4o+#Gh{iAb>}zqKn4Z@Pp#>voMpZ@ zjQUV|civdpZOeQK(6Es+hmbUOcCL@IVusE;$47S#NnY;-rD?n-DqtJtvGCmOqNyL2KX>PWaX;+whK;082hYt1A=NXhUC6T|X1B3zf*KH3 zD~hRee{9g3(;&Z=WTtaELlG7Fv&{x)_L5Mvx_>S2FFY&#As;-oc=evl#e12^m#Kv} zV_7s`+CZ&HG)f*;q@yg5<|M0?<=dG$pM3&OoiAQ#Xk!_l|J)N($}QCR9WeCw)m!Gf_cr1y zO*V6hK(fvG-nRMT{t@pC-Y1cR&2lm4#Z>le?ECaUwZ(HDdp}s@LfOH=D7m6-N^^Po z-DpA;ufL6Hh#U^s(P2KecNG>zFTcLO#tWIEP3+y{ujJw#&kQt*wf>TbZb?j5skMcU z`#@uGa;DipYvbutIZ56Qh3jbm4v=VCyzR-mCz`6E-_{*%w*jekC3i>-5jj7uCd5&& zgQ1{z*6N)lIL~+@=GcN0#OMwa?ViWsav>U5DBU|P=sJf@D2=723YQyr6P0#+kjGIy z#q~oAHOP+whP=bkbgFIo6-JTIziq;^yYI96#R)a- z2(mqt0&IntupZt$T%`%Svu(d!@7iovi;AS1$7X9J*?ig6+27p%8>t`^UTRQ!J43s3g=-Bs(@1WQAC~iyZgv`oyT>=H~kG*R%)aHvVIv6p*|A!}y*|kxvkp^Q@!#?v3GW z1)LaW9hf4{1O1z9(@dLB?r-A}5Um3QRjtO0(c~MZ0 z=j{g>UmtR|nkFg?U7vqv?&UHZ6pA`%(#JM2iE4?TZ-3TfT%O)^eC#x+_WZ&+3IQ){ z^yH1bK%%?kjCz+AEH`O8ITc%8?Zgk()XN7tz<4tjUU;~Ak@i)7MugLk2IMlWea?@# z<3f5wcmcc(P}dnb^csZY zCrb<(5b=e89D4ZMsHZ!ZOB#nQecF!J`8ozACr={D@kC+ z)c>?rxrt#Py0I}DN?-%Uo05RUghmPY2X~l`l4+v$RP8`kX)0Qfm(6N4YKVN9?Lv@C zo*nNs_wi5nB9F+1ykL!Y9AeR;oguz6$=$P0Q$XE`wO{C$#7y@R;MBLWqG++wj>IE4 zdnv1`Q@rm~N4BiI{zF+Cz`vPeo6_)zln?1EaWdxw7Zk-YcGi6H++#{%`&^>Bms!al zy|eD0UvqbkcBj6)Of7b?{!eSdAi%5%9X)Ti42+MiV(&EyknCu$q*fM7ySph}Mp+RQ zxQy6_o|ejZ+c9_jUn(eSfcQhxLN&=@8IygqwsDrGT4eUK+krgMl_l*{t%yX+Q!~&U zV+H^9y461$WX|}V=M}ipJZpSol*i@(pfr!R)~b2Qp2y(dBhcc(PW-%bt5r2$Z4&;i zupl)Y^;%Z?pHli4>hH#iCrRBq=Grw1AuUWcD~f3~{7c5QwK0rdQXEsCI5Xg3jt->2 zQ~aM=E;%>nXV#LP)m$e(#VY?tDWmw)K*bL#vi34b1K|f157SWl2mBqz0s@>|TZ3@K zbb^^d6JM`8;s2Z&RXmMKJIQcaGYOtV<&(*nrtRP$t9GLomTnq>?zzj1uSp4F+(n56 z>o-4o$th_lL_q$uJ@9)roH^NY+0+m2n5e?}ysast;!@e~Y!#VQV3*~^0fnFLAe@a` ziq(J`()BvcKd<+1m7YTFQf&w7`+b>QiFV~*cI|jsN120ZA2A$~o0yl&&B?4_r96@6 zZ+PFyy*2V)v)0b&#+sV0QsWB zj&>y`8hOKCTZrcNWOMkv-({9U=hkdWQ44I?2cRxxI6@=9g z&d$4Q#n8j?P>pr^{SE@Nau$$tk!pD5^(YZgcnRPkCNk$#JQ(&=OSt=dic$OB|D~rD zja5S$WvrMW=K3&gS-CbG)>Guy%S45%<`z0T%cd-5K*>x@$XAW*{cpqOBq?QaOqRQwz{~ctW7w z1g^1L+V^?IJX{FVzje*8|L1&Qe7c9R@`Aiqzs^Ztr)f~jKvoJN&m5oqFH|_WDNsI|7Yd&)8*VE1L#3KO;~y~ zOdD7`!-*TExLB?1JUoY`$S@J23Oa{6DvQUH7e9^#t=gtI{;aU{3^Smdwl877ITaJz zpQSq}fPdhw#_RHeT>FkvmSeFrd94Q5qUlocQ-icMtIghzf2%3ysIVd$EijbU;?NWS4KJsWxN#hKfK6<@9?3EJ3db zTB`mqd(y<-N+;3Bysg0^!9NH}eV<4w@8xxb$los^^(Fw8V;W9?VPo3EKQ`RyW;tun z>6^j6Q;C!IS@W?n2Vl`4k|f-B6Fir1id*Y27u9O26=<*mgD0`qgHzd4_5adz`HwyM z$CFUgem9l|7|lmzkNe^_t1;nUVb;oV7O>?Criv5Q)sa$N`Da&q)%AKq5CaoF7LdKa zFE7TqzYHAHmKIAMa^c4te>zV%tly2L5(El0=AHS*&YzcO8`HBpa5D1dW8Gh`qLl;0 zZ(74y>vj4KE%kHf=nk6{R~<#hzA7=pK7sTaE55(7;@2+mCH(hAy5SpiAHzhln9ZZF z=Mxv0=?+Hnd6(f!p3inG&%epaDdocWCu?<%Z;2O%dwkvnq^6ScMV%XM7o;?;5<;e) zGmD(xoPhk%N|Q+gI(ue870n+!=Z$4gjJ);X9+X))6Ig)e8Yhc@qMxBGz7>Z@7^{tR zFcrQr2id8S9aZ8;_mE+A>xogrdmXDr^$7!or!KpAI~B)|VcF@|)6Rc9WGMZ2C*HA~ z>bb|3W@b+&Bm3elnZ=XOfZ0ljaz=r-@0Qi9oT6#_08;V$2UaMi^T>O~o4H(54@S^} z`4+{K<}qO5UtOiH9Blayj+QvX(Nd)sHF~ z)E%w-B}7;b!Gu!5{yf!o15_(Zz>l#Sl1v48BrKjrTegbh+yMjuDT}8aX$^(it5`-L zT16^9XLKKWUoYeSz3-V))J(J$AWR7H8yxJdGUSL3J5NwoswE|13OymCtyo&iw5Z}B zBsa%?3%jUK@IWUVqG9?Tc?TviMp^8i2xx$)NrlY{Kh1#~59E*k2JHL$l*)vOKBd)$ zIu(w?fsV!z9f?D0v$5IU7?OjRwl^$szMAfi$@BRm+Es4IM4W|GYyi}8dl1d7>h+d3 z6wkfs*vV`lK@SYAShE8s#wUJ`KQl5eTFNeH5Zb6@dBE=wXOAipAon_pNbolEpU!fM zPhXfeE)FI!tHdC`g9!ZH7j z?R?vb-eO?_Wr63+ zxy}j_J&EESp&v66h@^NuDeo5aA+eJN;}#v4dn>2^rGY!EM& zPb*5mIx=1kYYB&O;Z~B@0~3-T?E|a~qt5SX91asa%{*r>Cu6Dq97%|7-nNXn-&p!M zWG)7fcZ%C&pu#oBGli17_n`X6nabpzon}0+SO%uaCNfRh!1`Oq<+|O{{l$qjnZ;>D z!D4hwT+uN{L%P%O3HY2|{}#l!$`3$JYt=bSzSM+TC0mxZ5pfhe)6ZRzImP}iuuK2% z2sj+q_a(|aFlX@@l+3*l!+ws`0gQjzvkVT=bXU`HH7k87O9S$3 zUC}t%o2_ZdYU!lY-vR=UC7r?dPame`4FKhYhQkM2T3vMPGeCyG%T%_#R>eAkJj^P$ zzkIwmutKs)MlF`)B1cj zXM{70=sjO-=5`pk@YW1Nj+bDr?D%$8&kVgQ7M!}=GAK7XI{+C33e?F@iO33;{0zFp zdl8Net>;0jxt+@%tyQFyjUFXddRPK?c}o84tADxLO5DCSLtH# zM(XVus~+!SSd6LUdow=MF~{b!lj!`l60`uf6sK~3C%t2TDesc|I%9X$%xy>rNrLo- zc0=%W2j=emF-9>!NvxdM->m~x+mquJaiXLJx%Xu=mwLT{p?UE;*=OSU&W~+e# zQ~R*n{ zfr0#po1!8Z6$YtP_{-gPbD+cH0UT}oQMd-kQieqLBUHr%5&I=oiAqgEKw#1+dHORI zQ5`%2f_N=La(L?-Ac$B;QJskQ#A2nkgq`Z?)ImZ~m#*p4nM4F2d~|xWVQuaI$MA>{ zb*w=1&CRcLniZ>s)DK3K6mJQ7zxvU_+S;d!VR}JT8_TLvg@)>h#jwu*0wTY|Bdo1VvEV>u=w3dPI48CXUZ zW?}-5>n~=Sg1wNZsJ>}I!52su&eDwwGVkk9xxdY5u1}CPkaOd*_kJ;D&n-lA)PjzA z*eijt-Snb{U4?tGs{ujX`w6>jAszX zIWrqG);uo%emOq-=ue`yC^V@OFP?h4_@)xMG^bkaii?ZX50|iJY>@4**%js6N=Y;H z2l`j_R?$@e5lYVi2&2JqMcYmI?7*t4VETCvAj53T9%Zv+8aU|#V7Ej!TsPijf~G&obKpWX@d*R9E2>8Y0MHF@Sm zox9;=7YotUTFwKsL;Wg#%#^^?64W5lR*6*0Yee4P49^~!-XFG9^QI#>Y!Syn?|a*+ zAls5&0;v1E{R%@1Jl4g)gvkF%g!nz`xi--BIpNa*R9w&7(E?`e^1_wCL_`4r7j+bw zv{bA?e&P*}?Qw*v1p>$65Hk%0AjBs$WQGMf)D?kFu<|wa@F82V);be|26}i+jt1>! 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�!ltqmAfR8$aAX#yhHKtVw19YpC(x^$J^YiI!i0-~aT(h&$%Izc*wA|TQ` zBvJ#?2}z`c03qbvp7Y$ta-aLh_x*Xtc*ps-Gj__#+H1{utvRoG&HQi8SDG)~M9`ec z5Be0|bCk?}*d?2$1+wqSFaJ*KNQbB@*DOc8y4+!K>ZTlV_X@mD!vb#8E_1>aB}weI z8-3E=pQ_hu^xbr{qcY|p!E0O62j`%iM8{bFM~%|M2sy6%@@6xNi~=nxY_y@A8b7G? z?O*Oy9sjV0jF9!*opGs(&(jkEJN38Pc`q;}Ht2lhM^oWdDwvC+yRyK0z30L3_`KWD zsrJ9o1bMYgb@;D5dD5s;>8J>-J7(c1X2V%w$Kr2M;DM$Bj7uZoE@4a7JaON_b?vBG z{^%)rz*?#C)F&c~n^Y%Cqmb>#-be;9^Zf{l|6;fXb3V;S%VL}Sx^D?bBW`~3VfVKa z;x4mklkgU~z*y)?e|(LB<7Tm;!?Wrh0jmj{c~G{tue}$O1*8T(%U_fCAFHi+Va@!n zX0`wMjhxfPaBMx6PKiCOny1jwR@siJfa|s%bX1gz0#9`&Z8sMdkUR5b+CJ~4x>v57 zJzcsTrG-g!Vk}ppxvMkb3Z=M|Yiq)9Pu$Yl{OwdBMs20qsEwv^ON*b+7 zfORb8VAfRAN=sw_XK56Ol(sSwXbMQE>Hi&whn&8V@tE(D(buk+!NhQ zV-Z&4ubHD_uRHyYL{5!fd7Qn=*b7BfyIzR$F`}j(b77Dz9NND#MRK7tjRtNRf~$H2eG9QDJ=O!a~<7l<|5h#l?^xehpOzAL-W(kCW#t}&9`;7mY6IA zs;hJas+;N!5PtYt2I(kgWw{DUNOiY*C)IlY?g-xH`fg%TW~}JoBjjM!u)KVlVqmYs z^Z5nmg(nZ}%C-KSwAcKP=lXYfCy`ep9jjr4)LXOwI`Z?SV#BsQj#A8V#@N!z?7Y~H zE;wAp`P9iC;QP-y)~>MB8yIV&MwR}^tNsftxB_1g`2F*i2sfrr(s?cFt1D5@?}YCb zqkdCL>O}3!Zok8-Wrr)7`#DXE1q-(p`eLaA|8x*XLUyQu(hQVPqHVAL(#$!9K=I8! z$=V&+`2o-aS&x~XNe z)wa`GBVo;x_RlTx*2#03Q5NvG)CirD9Ur0$IFF8LEW;iG4vYP?mR0sf9 zVCSGJKaJk%fe&1&i-zx|D@{*&PY%=2f?R`(D7v&79BFI%U)#GxXdpe;)MmQnqMCTe z3u*rK!Jh}8m~h~$7}rdJ($#W$Kz&T7ITDFj5o+vCsR=Pd?`LR2jOb6q;-);&xB1MF z!eILcPs~Ks|I$?b$p!Az12n{R53%N^Ep+_B-pGdWBAT5?s-0vlr;6s|QGXJJfEXJO9V*;&p0_I{4R#^~02>2<-B1$SdzmZG0bo!y?W zYjt-`qWs&#h@l3Ml&REnEGP@9SP0UJ;`t*7`@^y|@&Y(xa-ilL_M-lyd+*>>ty5Fd z7bL=dH}}DE7Jy>gPP-*vv&yr4k7z09jS2VkbjrW2tc+%$e2IwmQ}XG_Z#|IllAk(| zVfFtb3K}d21D4;;K3%B?6k$V3m(uOj(%;ZK`1u{6-(>=Y;*=Rfak6KL6bP3^o+cdjI{U_<5|D z=ijNcc7Wnt*^4@>*F zSp2s&H&_qsBlL4=KS~XkR`pH{xU$@;HEGAsgY$25W7qu2ji}Yd3|5fKMk#*TUX)iY zq6iBsq1r)g05xb>fb8JugYt}?bm-xoMwmE{nTU2y|L%-WsVf8j^Yq@=`Vo7Du$0q& zR&ixz4DL3uE($Qw=tlA(aaskntLWtksr@cbAOWG(#wB6cYTtY3xzeQpC@wu+T2i8I zb~a-Y@ZM`O?_0l~WDgjec3(~#5>F4>w-zIh&z_b?kEZ~j%gLZrD{2Jtg@)($_BCn} zgjJX2+#uwb5(?}zdog7v;!~`aw7z#X)klD~t~|wCGqa{i9v}F@J)y%qEZYvn1;QG% z<4ZcAzOAH9!)A|~eeL&M9wZvk2l{PoZP@QV&68{agZF-94b?=7>PsH3h}uFirF%UV z+!MX^wh8dH6vwRn=u4nDaL>_`Uf0j)e)8$EPOKAzY(zd~KO49#ISoc_rGMM;m zU8UDSfl-0h8f_Swz@+_+=%CR?EC|NqsOt!5S42)PCR$+oNhI9#(`NG@`O34JibbXM z4pp4IV>Le}p>?`m^IBjQ?=R@I1Tad-!U`N>xI9N(@ z1ljN{wBEOU^T$T~wwCIkP(PbdD?m&Y1QlOOGVYreF>%EpEFgh|&TG-NfU@UT=a21- z!jps%%@Z2SX^5XpBc-EAX=jB_m9y5 zpMNA7tuZ4a>EDkobfNYQHZCD-;LbH5&%lg=Ay0##{VgbbnPk^|ABE==6%w)<;w0-|1yMJfk+-JILK<)qdcIt?!=h1ZH*|Hr0wjYu2*peY40U^%vwZ zDwVGa&)=WfIGY#a_C^@-gM6czO+#L^cu9gZ?`hC;a=V$>BwJ5$$!@$%2}zf4CKF?! z^!HnNMNm_0exJ_|@l@&_pzHkEjIPW8iLh_|H(zf{E>C$*f4iYJb#jK#^a0ByrMwJX zRXTduOT3xnQhk7#aO{z9t+^af2JSf|!kGna9uQ!LVIX!${q9qr_IN|ZkTo)pdUt8R zr8}i5iP6KCOJE~p_qC0bci+-NzBaa;oGVA>_xWut*X2R|CrEq4YSVo(H%FUmEX3xH z`+Q?+ngvW1yl}bHN2#b8+F+J9b2xbRCv`W(o9eqo9%ghs)N@te7+8;Z6}k%sxlfej z9|JuVwS(jHu|0i&Hl0ru#M%(X!sDgyH(v^`Zv=Gfc6mEC9(zSWq3()zuaCay8({NE zHSz2dj*M`yf;PczQM1H)T1UM9y2atXVa=Y+`?|oL8TeO`x-7X3C}DM-xr`|Ft5TsY|<|~kFf_Q;(b+&4-1T+}ZEQyoK^E4V#Zr2A6HnQR*uOb$o z9}VId@2d*~BqW)|o$W7AhF&~sq=amD$S}U~Clx?Axgkvp7ivg5lZG_9c8;0I~-+{N`O?r??J3Q~ZCMbj^QJp&1m>KMhm23Ccij=N>p8+qt1vT=qnX5f1ZagezE8H2O$=*m+ zoTVbToz`X3WaL9+^Pz`Vj+~VQ8m%RP9-&^13bXsphO7vGl{^q1HiwNVOZ9maU&VpY zzKy0ZPRB3S@wUdk`n$P_=G;+M0VAxai;d=}-s2qm&g2;gQCs2Y^ihy{W!Cv5e`jN) ze!)(O0*TYPGIwHZ>tMUS`dN2TX_IlpF7n;7Qjg8yP!vi_8i@g{%qsP-T>X_FLI8PI z#DxaZA-4dGMU;Hsa5pR2QaEL$deW7@NuV&;HdaH#ebS}k&Ez%=f)+0}*E>Bo26KXVM5#HD#^C6hASNop5A3G*&Dy8;vVpE@;=kcG$lLIy)hn6;jyvAw{UVPl> z1{&l|16KcHpLdaKXShOUocY+8V@_XF6LUI$B)(=H5-j=cdmGE;8@7Q}Dyo&FeWa_? zm~i60^R3%@5A!{c(-k_Q@^6G*o2%_KGrw6G5vA$inX~K6g?)kPM*FCjkdy*f?qh>R zo9o1=U~!))5dOhOb@G)#BQSa8H^2{K~xD zHMeq~SU{Knyj~+I^Vi%N20)NbHFoUjFm@#-2l`Abe5WTSaMv<_D}kZ+;OjvB{=;tc zbD%jx+z2Y(&}{K+K#$4P+#y5z!t2U`y&=flnF?r8sT92LAnAtwy<^yp=6n{`NzaL*C zW1;Mu$HY!;r8@n!Ga>JmyBvrw+Gu?wF}0QsH%(ok^kGIr$M513+!p58d}hvT_`XY> zHoTY2DQTZ``@7%~6C>NSjZhKC_om!(#01(;!jj%Ri!CSFZ(nYD%dRlqpY=%}b*&P$ zO*%xmo+zw(Wxm|hauQ`Al&o5j%hn9_FP$zykB%@+`~nvTf9O|ecJ0jhIeTTAx9Yzb zjtmbj!{_q(F+9Ldyp?fF`DW2p^-jb=wIh%SIn3MbVGFnZOADYdM^S!N(kX@6 z5XOdPb@}1Fu@lW?X^A%!^-Kp=7f$XQ3b$n;bA*eEx~XMqN5jr=v)stV!NRR|s4G|; zmyG(V9TiA=ZUw;`@rLFv&BqN``@)Kn6PNejMx^A()9I+kWxdTVNhshc(Mx^n`xeqy zJ(K0iYOFn2oa`q&r&y%$BspG~be*e@F}w+LDv0ckG;8N8ULu=SWI<@5>C%&ZcyhWl zhP=(&X+QEop&5GTLDkM!LW=LwCQs=LZ*m_Qo(;*1JqqzH4k{9%(rdQWxHIDPFT3sN z^Iz;XaG=mF5A>fAyY1yt*B6WYn=I6d^z3Z%xUucN_MuP1n=?DqyjUa@pgNG zFjxS_QTvfE8emcqam~$655|Is>$>YPoXKUUS?I;=md1@0vcIf@9ni4mCds)iXtaFI z_aqXDCw;A>MpOJoq0AOjvl|@S;JHnD;FyP_F!mLjJju&Q{~V8~9?vz8K&XE*nDOhp zGIXkEp$O)GL%+0q@Ma%1U&9?LYD{g=Bks}iK`lDV70|l>E5*d;i|tGn9;I>F;qWzc zWDa+Vijl&#qj>JX1nbf0Vj3>JA*U{Gs>J~bq7zdP>h5};xiw_c1hr<4CQCEJRu~{B z@cV?>rT4DhDF3}_zHyLCsw)j4V_a`8`$w`X3?7hQtH~DYA~aQydbw;!k+rVqptyqjzKhd`go2?L%^P#sii?+t;{%GZ-A+y8HZC`0hj%g~*nwk)>oen_W=nQo zGI4s1x53+K`RQ*QRSck2?-YH_w&3bH%I6LO+BV9Z9L1Y*CdJjra8Qc9O!44)(by}+ zoBHox|0wi;~pio^Fx@!tt1rbGMpL#<;lx4AHCXfx$3UXMN%Vdy-eh6u{?=Oq}dK zDQcxJl#>0Iy96+F^LdL~uNQXt!O+OrXWOP&Q<81NWS{~+t>9@UfvKqL*5%;f=34}w3*?wN~oJKv!Q7=1pOl=n~s3k z@FdU_Fwe*jZ~T3_0t@gt>KmXjO8_@8m`DU68A9bXbVk(crcQ=6YrUw2f<^`+(; zefOC+L+l^X?>BWs7ncZs)1gbhL`WWZKu5N-nxoT_Iv?0`$C=VC%_KWqivSatM5D^3 zJGCS#OUanh#b$PKzi@^rCt0Ic&ulg9aEk!TiFHv)ZS!#?9Q zqLJ2QUmXIS7QM7OiajfXv*iw&ieTRduVhAK1+Nz5K}&rZ#!8D&)}m@+UC*B-+3ruG@F}NF(%O%L@Lk<8osqqe#aPg3~d4yse55|Kl>`)OsTKB zXeh#f-c8t;Ug&V4awMyb-kTk#WWvqSqc-%S%Su~LcE(OAaKO!#EUk4SoZFv4hWDo4 zr=Xb=Ou(5D3B(bwcH}ohH0H#K@*al=8$ZtVJ1AFKpC(t>IYWhP>gIrNFExq32|31; z00_1E&{Xj3l;bKQMzD86bOnD3et!j;H6tXK^onKob`u+QMUbTjaRa-O{IoFJT!8DT(UAh;# zhOF-T5WBRBZzCT+^d$lmM_d37JT$i{F{3q`iHzFPOV}d!--zV=RFKyoa*F7(MUVgp zs~c0eEtFK{P#hIeDAu=RC~lvy=O)|LLlqP^#~h@%As&>IX`_ZXrTAOI!HNfHE>R+D z$gae3W}iFd-GP3LdK^`FIJ|LHV~8g+MQSdH%qA2_t$`A)_^ye%Gl~igs)Rm+8q@iW zf>A7cUK=+OYoTfGiW}$NxD6ktWeNWS<}Yd} z^vx;J%v*(q%4fze&&4}8)3E?$vg=B_rUhe^1qk6oMGJs;84$Z&J{HEtopO--_TkP9 z7zfJR#qApH9c*;ekXYY(V+|7ac^$o=Z_X48zkIkUG3SV5Nh`obYT{$l!`l0cBs3oC z@LWF=JvjvNkh_=pO5W^^ypzoXTQ7>=wIiK>cpK_#T=$NI*c_){DMq(3lU5m&PMoJD z;!x8)d*x&s+egFlUxeE!=kdY{+G1dpS z?c>HuwhrtT#$*`)-TGYIeZFZBo(AR_&}TjJTNqLT%%55xMe#To~CR$@wa_nJIm%Xr7cxB6SHYbwF|YIk8Fxa`^0NJm;~(8oMx8v1=7gW~#rYtU{asNxcgEGLUb2s2~Ts zvsPu%xaJEZQ%+PwGQJ@i=QlwOih7~4&9x@k7dv>U^jLVQBq>F-_Z#?64Z+fac> zU>hekE#i^@)}Cn>8AblyA*+ZHI^Bgv?^b8D-qUExGz!+20j!q-Y*2|+{4hds-`*rJe=7}^_b#uAnVMOKctwc|dfK`Vu-SgW`N?jjW5fsi`U$;h zy^!=9Q$%Ap7r(j3%~Q>f=j4m5KLl##EY^e2rqdHZO)L8?$&Ozld~zH|DaJ3j(eV99 zcs!!8?08eb88q0%?xkL?tYX4qA2X=QMfrx;7B>Lphc1f?%Yij-d=Tz8SL8y2s!lBBK?7}0 zG<#imXL(EirbWwfoJc1S^POxkRn!fp8jIZm-U(ksFRDoWVU0N zk5T{)gXT?-pL?Mu2dCE(6=XxJ!Cfe$oEaYt9+HS9A5UWf6V3b!7J8FMX1sVo6jYLd z1QG#JT)gA`y}Z_b&noY(Mc@sS>dRPTCmeF|(g-)q2h|h;zgp_3Ch7dvhKtQ|DAFsG znR@UtoeN@pTwrZJdht`pu`3FWJ_7^|w3>5fu1W{^wszJ7C15Xd85#BCQ-X{d_@&FExLn1=RuAkL|RHp@~5Y5YJBcd>|L*_ zrP#!L%cg8?h|b8&P`r=(^~KNrn%O;kp2p|bP_u(i+62zXIA%1EgOB!Kd|jo1Tmu^2 zhBd}%sy_9ZM9dyqO8a*Lk*jkeFzi&7W1=v6mkS!SwlHMNgmn#gmt0kkX(XsdM6oTF z_{_L(f*arEqkYX>yMIYkesVloe;LfH>UWAGCQ}Y*p_`L%n!8uz9=`_53$bQzXP(ZC zds5B{wPVL|mHO|zpN!^&d@4FdA&2M>Ci5`d*-7cQYv}W$;kBqP7FH{dy5~D#pC?{d zh0dWA@_N1~Y$NartbQcx9%&!(fOg`W>M>`QhJ&ClX9^x=W{t|=O#P;hr)J$qJ8~bs zr@0G5qj^4zje7`QE1l6z5%(@Qee*=M#A}1}K-17bpJ~6mGXgEwHL`odu0|%_e!Guf zGoov-E4tl?>eBrnMyJ0b=3$t;aXh*`hxbmiaLH(8Q9Wh7g!JZ%DX;lA9!t!&%9*X< z3Za24mk`U9-ln}OY_d3FRU+H~Pr}C=tla(Ha*XTDKrmgNKE+;puV7$|imHlHbU245xbv6tl zp}iM1m{ww9`-q?ByFI!)uMbtB*^u2LZwC7Sab4;-N@7LGm0mV+G-h2x?EtMgQ%y!Q z9BW-R_d{E_K7<#WMGt6*ZuIm;Q-1VH_NIz{azh*WGLzft7fU;v4|MRBT8j>*;&59( zwX$o&Hd#|+?D|c}oE44>>UDz3 zbFuq|S?_vfXvA3t=gd5n&>QMR%SQP|6Lr;KsyQ6lIKJks3p#6=8t*xON$aI;KAU!CIMB6>P$+esxj-FoO{k`dq(g;v{-V=Qu19He7v>} z*?H*_8FKNDS?8tw{{6wYdM1*F4|=I&9Nwg-CF?ojGmC zG(BljO;01&n<}oGkd%>FEmR)czhhGHRNW+mo_ZXQK+o4X^Z4fm|}jtn3Rm>8mVKs z?d13@cVbxY*xTT@^}5qf;l zuI&5xA!(6E&?cW{oOfq^zJ3%@Hc=&!PKaZ;EmR^VdwLYDyds<#hwKX1)G$ zW3*wv26ga(RUx!d;xM0bzG@MMyrqrYsGo`ZrKDNT;8YG~(v?zW^Ui9LT1(dqlS=_{ z3g)Gvg$xW)Gn1`MOAq?qjK5E$Vv>>C^)smXe5#2bko@A4!z_vhu;!h6Ev+Al+$$eDs55A`sPE4V8x*l>a2VU}joD_F=u*FT=^WzZQ@I}D9XJ;3 zV>3fgGPY=}_9mdL0=!c`9@|>#x|WypIF)j%^$qjI0noOqW5fnBA(EU#DDjq+89I1) z4hJ?Me-KVe9^ZdZ1kNg@E4h5>XZ%N5<|wHqCk<$S?u1Vox;U0;=v|@ixs#i_dMLDo zBe$uM_|6>+Z?5A`wWtw|L;NTR);4K!K!ZIork|On|6I)`F)HWEJ*l?bSMk{THB#`C zzVH}m3%u~==j-3Dobe}4V{f1gqezDwoD`b(hp*KZGzpE>sP z2Y$Vhi~Pr1kB_hT_fGz-8~yF-6#eGqpLCtyu8jZr)-^e#<;>q1Hvbx`Tt*Dx54Ox- zF9);!@zzDaNp6Y!_WM6A2}O9r$zPG%&wmii_>Z?fof^a^)%^ed*ed_|i7Ez{b~MoZ z!${<=;Qq7Veh%=*RffVp-nv8KCB5YQ>m&Xpaeti3kM55wqz3Ey>>>dsj$^>WMpyD9@V`*Ua|0O zi$6vJ#OD?D@wf2Y|JlXav?C$%xZ8qe!|9D+tMTF7^F3V&((u%GT+s_XiCRFK6Ci|6 zxu4(SBDRD_GOA93Cmz+@UB^EWu-U$N%dB3#9L0$Li6;MJHUqeT6Nyr^)yNl(;Vk{g zT8Ghwy*`ie+(eZ(Yr@wJOHJL=-k(V}gqdRsmr|-6Pt(^w`1+p@|FpRc=O4e8cfAx1 zh`TACNtDDo@%FjcaSPh?i#gys3#pMsCWhVdJhluF%`wlM9lxrIHJ!M~zd+E>iM}*K zQF(KFb)H}M!|O^omzNs?h-#ZuyQ26^s$Jd!%4fz1;CMUT(hW82#*~<-)F{EbN@}J! z#XWMqWb;1E$asBe{#Z`1b}39l>%A4`Ow`-(%>skSnzdQ1~nf z&X_+YFj9FnV5>ybIw5)ezAh>#P$5sfxlteeVwrQK1*l~)=Qb#gQ`i4c`j@NvIexj} z(}Q@i)yv~^RLlKoCVWl17yR~e4Rh>AZ2CijvoP>IUUrEvulNV?asN{G>)&0Ul; zf`hb7Ds0|3P1W8D629-nb_eAQNVngLwcKy1}gvXdYxtt#(_QX5}h^0NC4<1FP*mxC>pCV646Ch@jnE(A6@A7wVO82Z9MSQmJ$M^V0P_4Srk2 z^U*#K(|+od;srogE#`d+%8m_5`|d4!P}~!vkdp|Q1wS39W(@7~X7sUR&dlABFGgEF5$2uA06ndb+=5j ztoHzTm3tBo^HCO1@S*tLTtsrI|4CQViSIgfdCrmrdbjomEm-25{oC-RSDVrV`l$N( zESjc1pG=QoUp`ooaBrvXL2O|* zwFeys&%RH5GRz%+qjCRPnEx<#8osz_Xr7>GXv$|1a95(uqfoDa8}j~0u4dupMn|^Q z)>0qyQWdS!biKY}kkGJ%E$T2Z%Q{TW_(PKrL+nsIe!@)VF}~%?{16s zimFp5WjGG4iTG8TAY(W(6U6b81;cYqJHxAU5xp?gNiU|;e__9W+Z~R`6Cc#mt{RHe z3AAx!nwvKtn?ZgIl_IomWi_ruU0?N?I?INmK7HY`iqT7nWmxm!1seYu-w_(^&@kh? zm$972EzNUnvSQ!39U|M6>Sa=|-<7j-S2@}J}t01T#50Gnp7#8G238}t-V$W zrfw70W_vRelT+33JhSH-#UmrMs?B-CZZNKSd9+G?j|x#6aYL0p@rGJLHxi}p@yt0* z=Jc&Y$O$AcqR!;;UX>qoY2UboSVMcja??wV?EQZl(o_f!pp2p%k zYVgW?Smj}g>DYr;jJK{5$us<{>U8M0*OaXt}CAq$wa>H zJXsa*JbCuSk!VS*nBY)vyiSpU#t>t)plyF#moBHtvPOzfSFdX0eac3WPKQ=Dor{t` zZT7#eq|OiWwNA4`de`)s)I!>x)5McLsBKtI*Q+(OX}{TZt6lMFvr-`va5XID0VF)q z-LMWB+nDoW?`+_Z0#gSFn=TDkFfnyNu0I+MwuQdkazxr}4nHcpkQ5>JgyJKedjVkg zB@>NozgT~51Sitpd^kAHR4Xuayow?;tnGONA82j#uEs}NVWGyQHOIxde%kk+=1sC7 zpHlX>(bt3>5pjb3H|?EI9$GZk<5T740Fv|r8hXuSfp+o6pho}x{kNsXkKFV9DguMv z!zWdV;K>ND6HRq{ydUBh)HV-K;(FfYs`c{UZYzGA8E8JM(~&z!D%~$%#&K@NrPlD_pAny72%>Qug#!_ z8Ut=KDC=%f%rR#tsL2Bg4>QkO0`G8QcCA`W4ELdt>)vZ4jlX-t3eA(hf zfm$v4fk?SJa7H&$1ba~-?w-I~=S{;2UyDj}HNRw9(tlkYw@t5-xryP(Y_#AKsLKX9 z+K-pVSE-o{o}gsH1k~R)EKS`Lo(*tBCh>Q40wH4xS~#ML^<%Z~Xb$_;MGdtty&sU2 zG+sd}4qwZjd^cAMD=hr59MG-l4Id;SD*p4@B{8|LG>l?qX89~SD)`xo@bnI;D4*Q*w zA+75g#&1h{3|y8jsZWqV59VBxpbZX6Y($sB7rVI9Jr*r0?cR=^`cfs>{habN9=t_1 z_tmbvr%{qpRh;lrBKh@>Sio|LkNnb&i=siPdoqV=aqq-am4OrE%TdiwRojWLJ*<1g z4Tl-S=Y|jVwn_}#{MQjCF7ccirDqfSCh|fXWgb(yRzXw-@0ke?UQFGdnCL@lhL}ZS z0(U(6r^I&(>%8gm7_ut_`x!7gQr_!^2%~T+hIiNxx9Yqj`fsj&WUQ&Gl(~+-9|&;y z7q0uK2h|4MwRx@k0Ld4vxUN||UCrJ=zQ;u_HmXPk{n>P*foX-L$3BF6I`=L}X{<{e zKq(KeotKQ(#Ae?6;`>hX`Eb!P-Mi%lsf|=`y-h$l3+i#df;Gn#8q{C3Jl|NH;h@M+ zpS8hog)V7ry>sKbv(#vfmPHp-7V>q3it)A;%hl=g9=8!d0~Jjxr34_>B&PN#+9gv0 z1W(&Zc0b*ki)(^n*GnC2Zbc<*8>Z~z(UDOtc_ma30ZYNJB`1#!G=B0jtB#GD^a1M3 zC*GGX#*x2lkEBVIKD8N%_Oy{y7_H0DR3E8#B(+V4n#CNlWQEQ+3@Tv1fV>W6F)_1*k=U32HY2GQ)VDHbkP;VKq-((5zRT0IH zTYFCmP$T2xi@1)joAL~FaY>>>c+?VZyNg6JO82GYJm@fZvCVC?slJ@*%-kzyTB)qP zd`!hw}qo*yE|G=Iz)OOi)&cYXY8F&nCU%x5#q}8{G$*9s3@0%=Ot_Q9q@Jg%SOIBbZoEnIxdvyrb|V1@Kh4) z6DO>DXb0p+vlg9qGLsVF-r>06;uEG0U+f04T`4wXG07bL%)@t+`hhzp8FHAQ5C+qwFsl-n05c|LW9vvBs~fSBL@=+Vx)c zLmS`MD>s+pv&_6gLoIhUKILkfXWjQ`Pw{Gvt3mnkAl5aTw6DoViA}}F4uvwjpJ^}aW~?I^BGrQ;?@G6=FC!!jy;9|z#l@`G;$q}7u_HOtevZiv<~g4}S+_i!v-OK2 zNPr2?p{F?0Jw_$UczmUn-~AC<=V%C~+%!sVq(%vQCAZ;^1k2O(>Av4oTJjX9 zWPHD~4|N%Q(_m@nc~uFZe4`4RD&d#Q!?|iDUlbe>rCna89JQq%qfmAOkaGbtlZWRx z9Skn4nknmbfBT{R3K0*O^*UNJ-9$cY#%B@)Ud8LuaALuZm^jOo00^$MTZYRwdjO~=DzKZ^t$ci;!}Zs za^E~UZd#mig`V#r+REyedfFf0Yxc$Q^^e%6(tFz@_f6Qbq(B(`U9#F(mv}z&S%of5La6>=vus}2F4jIReJXu%6>xCn)oFCnkA_}q z2|dhLv6V$I#}(t*0opgBV4+cUZ;Q$8m9b+G^TyT1KCqZ?;k`b9tKhGF+xnOD(vNVW zmCh^yC5T;QEL|ZH<+=8I-%5k-Uj>evG4RQ$#T23Isgc-`nV@zpe(dK{0^J>lmiIY8 zWbUXp%ggmWDi&JrPSbIT5&I=!)fJZ;vO+&jgtP)s!}s#dV$*{1R9*ZfG>h&Bb$5zz z-R3k0{ala5Zk;-h_*n^#WQzPzkma7uQhGsQ~$e76GF1n!2ftc6s*xJ=EOE%y7(ch%hq*$v};nFCwoRVS8 zLpX89uOrPPDp@(Fvp}Ku(Tlv!(_9N8FuH}^`RJN8;82TGkJi0N(C~bQJAR6OAN%%_ zQFtZ8wBWIQNiNh(VO8AC^o?S53CYpUXhq{aCjP@)R+sMOWn44u0>GLnP#t8D@qKFu z+SQiEE^@D0=wGPkZf^5@3BjY09j3G2+9S>Usy5V1P3ugFI@XpG z+xDdM{6j60{H@cyt$;HorrLy@Qo8HvGN&TJuPhZ)S@&cn6@_92!&7T)xRNdqz`&1fLlI!X?HL zrOnv=GqOU!`J8h?!z8vJF;(NrK9v0NS!}(1%=eAU)4bO}!|p69e>_5?Yj*%P%7bQ< zg4%?ddNb_A2Y}ux<|b&3puHq^?!tE-^9J8hqKP%jFkcvkIZeSnfwH*e>lLEg%fe)lMg`^2EV7*d)RbJhe_>_{Y;!QEbF`d^thbVf3px z-m9QF#tX9UzB*nMp^wdI3AIA38+m|Y9dqo4vJlcP6SYGr8(oJ-q%f6Fhsza;&Y<7& zTga?VENW}BYDida0q8dAE)y({McCm*e|3ZVJf%_D9w(x~sXN zCuzGAm%x0dj{+Hpl@UUSHAH?^70A5egNDLM^)bfqj~{?&k19%rl=CoCeiIAE z8RzjDS1NA zo9lnV{!6M2SO#(j6vs}|#EtYVB+PwjLDhqb#@?&5!j6A%gw+{z$MZ7P@>nB)h-i*~ zl|!iPkWKCy)0MBqr`yS60`!SN-Xhu=mD2{?|w@B|}7I5ZHX3(pQRxnOC zL7Osfw46#7v(I{c@$S@WwG%Wuv~6vHcS2u$__~01(4YP8l=w2}bk^=@OFTeWPP4}j zWh+H`bMcwhmaPlUkHL)K1~cSYX-AudPem(k`p%P6mYkF7({I0eow|cLZJP%Kq|}Ng zO^hlo8y4!RY^J6vAzUBv^Ca-sJm(+=eIaC_>^;+B)P(p~zcK;~A$!@P+R4bM$xETt zF^<>7yC@!7y^TgxybgD0ma@8P!tGmxYPcb` zev9wN>2F0Wk}J*Y-RUw$$#3Hc!gs)vB{fDN18I^z#@1_J!yIzV;&k_9g_Jhe#ZLYf zPwC_ic@|F9eJ$GSeA?iH4)#&^Z+He?JeugGZi!Xm=@{rhr@T~ft=lu$d%R236t3dg z)NO=%Rfif%>{p*0(JT< zUJiWX+gA+S#%8ZU4bOWydGCjYvV7$QPM3B(3eUol^%nzvPqoM#b!J8a=Mj$?zpCu? zeBRR*VCxK_xUleO6=xSnJj#@9ma|og!!4HXhM3GG@@v@ zuz#E6eZ$j?=#St z<;n6|V7j6T?Cv&v*>_^I?9s=kEfHU3o}U=r!H5QONvlsV2#SppTX{iHVm#mKYCXSO z0Xm`@2oD|B1ld{4wJN0c3>EfdKK{dh90{>hm9wOlP#^sf*XiP=exLsM1Qk8K^An%j zT%hq<_w4nFD%~9%d2;Pao~8I@G@p4BmynHhUWtjQN#j{zMbJw8^zD(_Lu`4d0i@mC{Upp+1k6}&iDJC2Efyc`>y;S$S#9o4QW5L+H#KR5Q@Q^DtfLjzrAuke2z)%Q98?LuWa3V)#~ z{gM#43LrC1`DDjGfa||s&Uyl)l7YzS{TGEdAVd8C;Lxat2_XNP+TWhWr)6MNfrr8Q zm;dWjz66d8NvEt!|I{q`*U*9ofX({92mIH3a{TWB|FyS&Eb;&C;9obZ-2Zm)PjmJ^ z6aAOX`1gkSpNam}a2)@C&j-t$g(9Q>tLwimH;aOhL1s62dHbsR6xXN+v+m%bcYR*` zx~l(;3LelWH9u~OD|(3VtAZ2KU+jq|r2sqx^}gklN*{a&JEU{>^t|f||mCHIPnA3MQ>{*of>X!Rp5u-=y<5({*>X{q9$ z_)>1&V`}7p$X}g^I;tAi_Lmkw^+(?gEdieyDIOD?jFyV7ZbT11+;k0D#E#L6A}Rx5 zCHnH0QlL9$`>RERH&FxeYJ~;`EIt^D9F>HKoR~6E6#kJ3-C#_5JNwIRIH+kjk+t z`37XJx!ACdu8lK6%Oy!J_aXS34>N+}2}?^gm)u9tNqmZb(-;f5I#^?2VN^RfUC6Jk zKZ5OGb}L%iQ`9g(=c{CKq|HKP7ffmB`EdfC>h`;ZleTMl37SVdPKl|_yL+> zH-v7L5_BdE_T_c_-RutKfy)u~97^2-cYik-M~~|$WB`l~>wy{R)6Hz)i$cWKWn?Mu zMz61w_rW9LXv`u|M{^rYz|xEloP|&UKeX&A{=qRGC=30;-!WxZ?GU;s`cshbU$n}Y z3lu=wJ-+2WWe>oVc|SiI{aqPcQ%ly)M&l3xY8h~9X5XMNl{=m4g-xq&_=tRVZww>!u*=e>o%YadT1Ob$l*F(-ac;A z-b^8WU?S|0Fh+sF!3`0mMvi7neWEk(fq@b}z$e{CkuvlYU_aw!#{nK0jd>f8BR6OSHC zWOb?4UNe7W2n44Y0=R!G_Xn0nN9`x~4mK`;DC0)IP28m>gU$DMR=I%QT0T3r?cLoB zJZ9|(n4wm=b>#oU-d{&WwYGo2xRN3Q28w``2#Az)m(ndr$Ef5mgmkxx(jnaq(%miH z3?YruF?0ySzAl6(|mygD4VXPHh*RJy`w5US&BsQK^v8!-e~ z0byg~1uo}jC;4WU4Tm2Dkkh49SplTnY6pjVvW1<7QF=z@doE?#>O*TQK5zqevbu&y zMoq^0q;+aw_pyE(8G=~qiRz)&rHBNAr1uZtWS4k-JqefDW5om4XMmI>N<2)LDXJREuI$x_iT@y|k@1|K?Vz72wy*T2Dsx?^e*S1Pr-$S$Y zvAI|{0u6z$M!&&*XyY8Oxo3NGLEY<&9T=ptndV72OkQD@9mRqG z>+Ch`*15_rIZWr1<(72Mu?fO~eCqwnddFROM#qA$5rbZ__50Bl1$Jo6;Rg5HJxSAu zRRce(rDPoDAPV9B>$lbNl~tLm(^FI{ljPs-PeI{%SF-ON0u__gM2X=NieR?V`(1`i z#BFoYY@aey?hSEa)FMX=xp8+-D77!3h^jwQydlvspDM^V!IhLhWf;60Sja)K%(--_ zasvKcEiXwyF6i(h_KzF*#0Qga2k3`N44_TDg^OP0H z)y^*Uh8_cp*(0m7_=vn$>T|PhOEnt>Hk|BW=xq!KY)o#;!X}DSJ2Xi5sbeRlQ|fp) zl_&>lr$o4kHnyOC@~(QgJ+l5VQoD3<);)edZFR#7N%6VDd@{C%g50^Z&73Kt7K(Ec zNX(<^J(J9DyGhBQmUlCuSw>q(=x5V&d)8m2AvcS(eylmP zfdn`(?-S~9VDM?c{W$^6@ok}2@bw=5XOA#)>lAC<8{hRSL-PzIJR zaFUL<=Vwm+M?-p0D{Wkr3oan27|RjyLK{8|WmY&WLzZ%RjHv}Ti$3ccIm=wOE{9$> z&*HqQPd16%Tq4q!=phj9E#qS0xjv$UuFqk zK@;~QEN;-ol99Wxs2QDq^fpO-<0wSW-iZieYt^g2p_u6ENRB3W;n%LtGZTc^TOYF{ zpy!%&4IVqelsdn}yyuL=2V-?LR-RQ?&eT&eVW2Zu?Y2cl3m_77+2ty=8q;$NOmFXb z8I0$PePT}s!m6Xp(HWk%M>H#*n$ohe;eL1VS4Jm7T4~6rcl}xQ`0mn`g%v@AOO zq#TBAp|vskMb)Oyy$*yUve!*0Qk{JJP63{5=T7$|%V{UOnRRe$=VdU@zXvBhRj_?x zE1WK+|G;EN(O9=cWqz~csG-U5(+`?>`2bvZL|l5;?t6IUfYKoUdlPVN*}E022|bAJjs*C6%=a313jFvC-m0l$w^Vy!3sYxi ztW1EbbG;3>12b42A55V0YK`)yef>VKkd?${nD5mEWuNqR4>fxI-;1{Wi<6rH3BV~aqKLilwZY&=3;C+0OvBUsQ$ zu6xC2hvSff{fV96E8#IeS2Q1t#$sSyp;lcSQBf>!pM)2mbF5+a3?(*?Cprr%*VhYG zz>dF1e&CCnFml zU$KD#j%lb##|RGOsrGkMS_7BBW4xSYx*h0EmU4?B)%c@A+XCbE^AhDY_;$h-#=^5@ zPT^+&QC6B#vEz6ls)_aCTcFRBPU|79-l|ZXo9)l*EI_xiU<49OJBdKkt%CjnpR1&E13!gc z$%>)JdbPS$;`x)a&? zw+7viLq1wqI3U?p8i*KmUda=a-xsjOm(ZAaZA4z8GL$O5IhrkN&Zkpj8e& za;X#+a&p#;f^J)P|Hh+8US)7|(d;ILe4jL^GW3t^mrn9vj~^A0Ks{fe&sS&Jf2_ zxo3OfUP9N6L3gR&h|Jg0C=`**y7{Ym?PjNlhzpfHs0KTS3WDu%CWy>C6#WSX1e2Zg zKT-5ToSMcOCJXkowP&TsT;M8jD0q?HZvE#*@$9CfVHdP){NpVk+?=M~t{7fCq zRlSoi+Nr=&e-_61*d+a)Q?7bpBsRYwC7)+@!ej-M^l8$iWP2rFqIfK-*&qZk;|gU z0Nf_2DpL|k9=X;@I=~pQ$p%u~QK#V9@+(F!^5`mxe0D8GA+$tHF!Q;weB60H0|dzH zYb#pK`{={v1$cJ%e$zwnZ#lX(5OP$V?1vEP7J@`AX^G+Eb) zUvNZ|<0tnX$5C2B1j z8D?r6!hQJ!ABXoQX9F%b${X{#R{kPjm7iGFqcY)IyJc`c=~|a9&Y2+Uju_4)_iuS; zP8oJ5V-C~I+_P`P3F(!^6!_L2ZMdh7_6&3!j>i}1l1E(9`l>2%uYy6zr8D$XCg(-k z2TuQk_CQjDW^YWjD`O2&{Rw>j?#W@l_I@ALlMVgV_JI4Md&DxU-Q`P!M?y?5N0H$? zvGM26w`u$&8D(7t-8j~%)f3wT^(lgSg^Dc_YEtXz5C;qK6yo~$&AML@3ygPI0C%;! z{G!mYn?9@aLhonNXy0*bD23Ju=QpnT>Z`W~MxkvK?CeyW79%`w8s1{dMhd80HcSN3 znx7j;fYRW4l%n>aAon~kJrpf+D2$8VeYM#)T^DJuHa1i15VzI$Jns;6xU_D`N|x!r zlkMTmy0ss%Fv~ZNSJH$_^~M6RP!Pbl$7<$S1lN`uE3umWQmi~kLjxdA7_)ATAJ)V< zcqUcdb=Ny7-G~Rl6XFRT^BohV;*D_ZOq147%;oa&0ahD&lV0kgJSaTt&f_vK*P?*w zN4?m01=Mntn#z_pMoXh^xY{M_xE*rdBDVci13>tF~Gyeol>iCs+^?Hkz(f@=-kbIkXOKHSSHj>$DDd%OE zps3%*ya(wWAZ>0+uV3tr2o&Ucm6SUZTv&VL>;l(vKRU@`l`mN5`xMA{M{254xYyG* zrb?%37qRK~J+fv1CBuz^+d<})#|g|~bBE72e2?xj>wL{Ygkp8Zqq)|VK=)}ik2eZ0 z{WKHRu&4(fXS=Doki!i2opqM$yP1)dm7gixqoE00=IgdN4^(!NJkCS=;<)1;Uohw5 z=3_D2sV(soG%<%2%M9$jd^ zmz_G{jeI|Ge9DoNB>70L5v>*8mb-vc_hLFeAr|t{zWw^ah1_zM$jmR@H`w4_JeXz1 z^ZLO;_x3e~3$4MkXIGp^ax*1cP^2T)=>{5{S9Ks1Afy;uelT4+Zt%WmL)oDPR=5jK zLV6QHX*8&!aQz<`Tef?Huj?aObVIE^@C1+K*u3stV$!bYRjmo)yiX6U9Ha8_mFTt> z>#)Vga0>-}sQb+wx^f59}ebT+(3ef&VI|R;xh*!uiP9I~>S2VQu z8tR}B=-5FfzY#yS-RyXZS^0n9Wf|PxibxO6FRBjUpggYwFaPmBc=_qWbX6ttVoSw1hvR>kVrf%R52-TLs;_xtDUfTHye!U5UgC)Gj^JBs~iga7^R|IXEKi1*+B_}|+2i%5j>fBWdKnwbBs zjsLBU|2A43nb<49LWh^+K|4p z*cOE)1FY?WOi3+ucat}YD-%EeI_?WRcPxZj9ag1hi2WiF{fDjQ1Q4dTyG)KWpXNx(d{uP7kmlcKlwY>nnPJ+IVUu< z6>u3&`GB`XHc=o;D&-j_h-CyyaTgENVbtbiy{!HABol8?50#T5Z=0=6uW>;_4a5x& zhchjhPgQ6h$9Du=jbed}&F%wn0TZBHYZrmvA5d@+Gy`EEMto;L_@cArJ+2NB8TUEq z_))0E%N(6CUe&^sahat?=@p}JTN*oIrtkwVCG%|zFch6ZyV9cgy1+`jsdBp1t%2(h z;KXOtt{8c;9l$Ol18O)yhB)uP6l79mO~5X+)WIuU!>nCxZOEIo&RgJCY-Vx=x=g^n zlnbB=mOcia2nKZp=Gp_c>Yu5y0w)d!iGnT$?Y+d8jP=P6|DoonJLY%oPeS28 z1U1;u@}2wq{U8{VZScrsw8%*~xs61)g1R)yN;`J{&8JmMu|50TqV}+2p7F0k8|PiFnosNxWe2B^-w}MiK3VAifliib zcAiV|XDTMqDjvDZ0E7P>`Z$|S&=Gg)I?OTwaqnAzPo{e10^p|`xG~yowR$4+7ZbUT zAM75!sgV+)Ep#hi1pc;`Syst>_a#4M*a3Uutj0@!igT=d3oQ? zi^yedu-DhC!Y)M$`rSzra+m1U`G5dZc$OSK{d(4W|NQMSDr|x2(7OZQTG!ijKF>-X zn%>ntA!63rniLuiY`XVet9{zZU!_1ir9Ee}%x=TzPICXfoo1DzP)%p!O=U$t^}ROB{sC2?#m-Cou#!cLeA_SS;&L>_4bq>&=b9!Y7G- zttXg#@uF%eQhVtOL&4r6QN~9iT%Ib>Zmb>bJb!cXqwIAn*4hO10R`37tRlbP8&P_R3v#Km<@ zQ52g8O4H%mtL$X__IY(@!wjkU%B4@Bua;%^XWhOGsATT;Zspa;eYGzAK`dEEiG54T z69|zpD3RZ9pKc5Q5Y(`q9Py>`ak-Qfh6lL8DTFAI3Ee+$ur-;RJ@Zx{Bw!r5`X@x} zr4OhcTlvJZK%An3$R=qlHgwh>t+!tLyt~9*BmzmgpyG;m$i^+op-`UgGT_)OH5v%R zC!6XaZJqsi;^J)&#V2|+^4e=XhPgdMHYyZYkhFCTFWp@`)~Qp1&O*!s!pGk6AmpP! zU(d|oec_m_HtYlLZBzBR^-S*AStKxj8HTQP9k%9C=v1camVo;h?Q<-=(9~s3G1*2` zg*^HC10kvGnM&A5_G?|s{bl)*SIuZAz_C#9kUIu-Y`01I9E$)jzxct5E8U+z1tO+A z!lU%ur4QU3IF!`{7sRIhgNRRevkCfK3^MDECI{br#k_3=(P_O@hslHEwtfU_&N8{m*`1JcoV)pbdRrzN} zrGHbMm#B&OJ|!{JI>&Qyi#8@2F2+l8-1`)=NA6q{J`Lm_=4$g<#=&}O#{w%N(Ra<;Ml&|33#jQ59aHOmw#ZsHV-iUnZTiy5I00bK;N1IU zZ{COCBUa&N`iwoDT>Ps*U6bwoH!*h`v{>+_?GR(5qhU(h)$r#D8Ec2~&uIyVwyGv| zHMWNo09PEM4slUUbS|lcCkzSQt9u~y=G|)awwJUvw$P#2cF}^&I{Vs8Wu+WQXW$jD zhmie@t$T%5qKAKn3m(w-4S3Xskh~=HxrtT}x5Rzkkxf?O#FRa{HNH&JMIAEjb4n9z z6FK&>mY%yV{dMQYUJt2s&poCL?Qx4ss7}0Np$HDVfZFm~2t=O7daqHdug9yqWIRIi z>iUf(?HRp(FlE}mKEvM;4MrN7PgdaI+}0bJe>lWiAIwpYoUNtG5}ICn4YhHI1Hl|d zBVFRoLbEC)+zl;ui52*9=QFnB4R1+-3C#hsSAmtClz@wA$+je{i83WIcfnbe{SIlv zX?JdFJ}EjJSc8nqt#3?6#T@4Cjq(ManHY4wqd|v|J+6%Xp3&0BmzRGd$>qqY8U!~K zXbyEurC5eIXWxB&*(tPB95{>H7kuRl`SlJm}bgI*P1}^LSiV-hHtgSGW{4+UV%a z^f&0qs}rqNkAj44HXcj;{J6zGmHiflv{vz(YLlmrpW2ytBuzW5=-$%KheplOxd=kN zT@KL{BY=SJZt)ARp!eBV8=7n-H~2Hu`n0@ipN)Z)^JrYxApzECFFF?aRxcxOXS8PR z>(gd^;q|KRl>~MEH=~#4ZS$!zoS3R57xt@i>4X*!W5H8j0)#XZu5ok$NRPEa=+OX6 zuKN2;{xCAW{x?Of)#d#WibCfj7-E)@;R**0q)u-IOV^39A#}MF#^+C|bNw=>32y^F z?7CpDNo5#-2&>0A_Q&tJ#U6~OU%J~4(S^0DiODK2nv?J3jIdG6gTf@7>N&RdM3y{K zO(sG0Nt%lOWMSiDFpoUV50X9S{4n^r*2vib${)Kbb8v?77FE zTRLKeqc6SG6H%#Ufn~oxYeI|Y^&6>>*RDnuaB1%8GDV&`p9JVvClWbf;oB1MCbOd5 zMr%f^WAGMNc11GYiHB#N9OWs2val;mB<1{i#zpA(NZuM=n6QU?juvnx3%59L0xg+v zDvqkHQEv7Aa(8Da^%C&&@+!(+hz=Kh&lujTh`jx+Z=&nwLN`m}*_#ODDQO{pKGoq! zET^dqU??@lKd!Xef_iYc zD16P2pksUOq!wl8DM~;pRn>m3QDd7!Txw7Ub#53OZCiM-9}m)i9;$O!(-vrU(<;U= z^67PMQW$Hai%mt0Kt3_3e=$S(ywI-r3&Rss;At<3aD+&1%&o@cf3jD>lZ%S=2=8Do zwZPlo-keX@ziveMcpCU%O_CV}QIOnb&!Bp}Ou3l(hb8Y z_Uc4t&TeE~#bscm1ED~;`2(kTE;RW68Yx0E_I2bU-A(8-q_ZLnBthGxnqZ4tVF z)Emu>$sgO3umaA$whKDIW)vHB3{RB2k-v!U(zM;tC5w8<1I2AB&df+}I8e{$B3y)MIgX^a8$j@dx~4!a1eVLc4L%cc3e0(A|4m=W-G<2; z7RPA`)N5e|m14L8F1=pTry!O4O!<1HlcOdg`yI%{kG6pz{)FpJmF;z6OSWNNJ@Otu z<4r@TKo ztUA!lMNO8QN*BaeFK$-blmNcR32{g~#sykiy9!)G34SqqY@G761;Ag%`D$I=kR54o zb1`gg!BmTp3?{w{^PtpQ5wKY<3rKp}?=(24w`*TLWSf^q#s~|C6dv@~Zg;ZRC)uk( zt4+u9=s_u05v!A@QQWc?py6ZJA#Y=ZxX+i#;yzi}zRH@Gpl^>DRxO*XYdC?EM9jG( z1EI4;Urp}`0&U!oHEd^;0lK3i8D9zuHZ8>?6Oo+TGkv82V>0zr^(oQ{FLU#?XLFmp zkz?yZQ`j2%r&TTF9a?=KrEl>eJJC2CIo?@{d>q_kwK=A6B*f7B@vC!uw4U13RJ-Aq zIlCEYbd6K(hsDauKTR=lFFw-+ZznU>=rLSbwTwh%e#pYNNNsE_V4Wd-uXSh8Ehtso zU#r=mw&#iN@yYN&{`L;*s1$sl1vITQz9sI)U&|%Z2CnMhj^C?S`w$nY!5YzA?iAKb z+a{+*=n z+#;9k?o`gp9Az~dH8LjCt-8t#pEVtB+2wD@Wo_i4RuW|jSH$3aga?8b@wGxbxWlli z>6}WKuw1zQMVjQKIH5W7?pa96Se!f^yjNf(ulfe5(8&7K3)o2;CzMh#JW@N35|$Lm zngIx2f2{S*gU`eP5^=({h1L7|x&{$B^%DipwPB^aHb(wf`iCTS!-+}9JfhD~KMu#@ zO25v`eQZc@ZJK6Ba|SPbZ)F3qpB16jEKlJc6O!oAU;$CvDC0I z)QQ~mC}i43F`wsGrTsWpvJ(#zmwa@e$Kh#QZlZR=!Uj#ua(p4QFIG66A8ZO zMQR(2w>a);N7hYgtKbEdpr2c5%?7v8igBK?m78_%#ig32u(9AvT`#xC?L&*Cm9QKXKved8Ujc49QOjaD@L{Bi3(|#9WcaFts zp6)Y6&Dl;)ZP?D9ohbNro*v}|uZ?KN3IC*XBOTxPM3*mgbH-9opReMA6@>LeIsJo} zq_UA~O)N*8WlmLrWllf8d&0&hKLW5K^j0ei7GFmo1%noRfC1VuXg}P5HzWFtACg5f zPipF&fk$Ct!g+W0jVYEh4PtIk;h4Khcr~ipm)z8XGjMDngZ;R@k%bg_U+zyTGgY<; z6{aD3UX7yzl?_vZPnJWREWV%<(Hae_aRPwpfY%`H1D;zXwG{{~yCc;0#PXD8eD2ER zB632gK0|iAKT-4<*jEK4Rk)m8MJz!Dc8m z%TeKRGO@u|U4ACk>nUFOK;EtGJ6x%2*fV?ctwz3+5uN#-_Cf*4QR>P|*qB@KGA=Bk zp?G9{mNoEgURoj^@mbyIqp^L@0y)I-jt{|{gLRpr5E(I}#&D$udLrrLL(*wdv+(=- zoIF{Ut8Zi{i9T`JjlJBQd^23H9en?|c3|X+4yw&Gx2w|q>acGGSKpE1ikyeHeK!y$ z3vTe5e=7=Ig~&IQ{f;P3_5QXAc)@lIk<9{k*37y|%yiDw!i+eQKj7dX4ieb&P~5K*=Z=8u`Wjt6 zv->k9kE8}Sxhu!U`w4Z%Qq;;DRy{EmVMfswJ{+Cd`2h!&vp~Axs+H}O0Kq;Tw1_Wr zp;k7)S@hSZNDWnWmI>EE8+k0py!JFf5{Wx9sa-0sx@*)I$D5`Iy(t|RMQcAy+hR}G zjJH)gu;1e)6vCjEZIa+TlzN<3`IZ&7{6~#+YO;KRKVBI2l;Pu!iXroZj3{w=j!Lm z+x&R_w>@?m%;wy`PbT#8^nd0M)#PV#HBNanI?r>&8~vxML@d(Ny>fiJdMllC07%N1 zSLB3$G>46S+!!kL1${Esfc))TiSOK*7v^|hs#TV{Rpnp_Tw8e`6OJuo^HKPwFa`v+ zPI$#T(~(tCxZUtR+cCmPjY-6uI2}9`=*)}L8?XKdD{C9mPvDcKxbqW_270lgc;p;L z`TDWO>u<}g1W_N6Eb%D858wBA4L^djc;nWSFmCPrC6cv~Y88=N<_}cG`cm4AK{YeV*+L~ndPgb!sZP+KWc7MK^onZ>;|vo9!aO7N1lPX>S`3e zcjZJX-=?&r%J=;xAcbCCq;U#HF%9y*cB?xlY>Z;Ii&oO1;YLQ34a#a8_fc*ouyN*z z61&p6!!hmtV<^JkWii{IDd|9DjahcZrtT-B8A!`?78-)D^-Bh)(r{Z&6xn=E*Q1yG-8DfP9^GU)dmYb)g93Q2H@dyfa4oX`(i{rL!#l( ztW7n{Dhe}zjtD&IdnQ zi(fT+Q$3S%P6JQg=RZ80F=IbxJ7bLAshW z<_w?1nsP8Ba15QBJ}}I8(?w!mXE*9zwaKeuHaQj-OkA}H#4y{=UAoWe`p$%@+C-Yz z8-v4c2RxGLHI@kS>Bs7|9pEhAg@yVG%1?HH9wj}7c=1tYIw!Hq!RD6j)uq`Atx?m= zJyA`1jbzUUJdPq1TxhyW#Q@L^iK&Cn%{}da$B5`_7TV1BFKl9a;eXn zVf75or>a|H@Bd)y{;X$XwlwW+lDXWJl_BLb(DrwKfn^Atr#D-hA@ zaV;F)tdOgbw_Swf6R#?qwm%&yb8Xv8CO|N1mhk!VIxl9kQ%v<1X3m9w3v+*61Q*@s zVjQvE8B9^)4ji|S(IuEuW73WZ_04T_j^DpXj4Hbr)slW@mfhVPBrfy^NGEcDv+C(~`bI;tCxOrH3+Jg-QSM;Wh2p^` z&GA_6_;qEow}%7f+Y9H37Ax=BM%5G)g=Tu7OQ}c`b>2JjAvN;0KT0h`dnz~~l<&&AB%Ir;2 zp1n_3OfpVr*exgMK1WB!-3ozFQZ7+EXyh9Y+a z%6SG8+fh~ZPe)M+a{)D4(>FYSSkR|)UYU`u{G^z?lMPkfm)p*AlUN$1{O%tP36rT* zw@!L!x?HLo!<3x2Hk^Um=}(_#o5OZBHy9I#&@@>UThJ=2gHO=t@cC9hE>~ech+7TG zN^wN^D_3&t$YxvH&Yt0u?cBd<65T~uu@hh+_gQOX%7?~r)l?_uHNVI zoiLIxQYiRLuR^;a`}ycaHbjKOGZ(txF!zD*@c~QL=~#j46rWLAd!Sexg~^>2Chbb# zA?bKS{NH=26cw7*2Dpy+ERmc!I<9QqtXplBi=Wl~N`2PM|OR=;~F4 z+8{j{e~!~inT&ez?JA96Jyy&!d50L5tM;cOmgyY)7wy(do0=!*h<(!FSsdRKbgCl%h*9MaF4^lPW3mr}D>8rE;n;fV$2}!Jr@iz8mx4kQ z2MK!_9MNa>k*VU$XKKZTvRP|z$alQ}J3Vc@lPoiJy|pAmCJJ6x9?CggB>SrjNeLju zM~ju95U?H8mn{j?p0C}m^g{-pCu>yvK+lDwqb5kS1}IkXDg zL@TFV{SPx0ql^b)mWVM%Xs`2m7t`iD@mP;YWl;z+z_*2g9T`lf!`taO)En`*zcHG> zlJ`KsAY@c$tZOHZ*J@9!$;84v?osy}FEq@)kIh7x+!i-i!VjrTOOa3>j?g~m!V!{501ldAAp{irJC zgQ;z^(Dq~X{;3=kd+*s`Ha-d65=Jx%jHIKJo_eq_Ik|NyIYhy;6njM2JwG6kg;+R{ z*t3$g6@F*f?a3{Y=3sF`J;?z|?2NOl zhnhD4i*pX-LMTbMe61xd*gmXq%-wLQ5wI6vYW17p%sy)CPY~gcd_T5q&=c>FY05WJ zenYqU`C!m8Q%j=BudGRdmaice`r&?MlH2hc6*Shp`kc zd8PYmw%rUWVn{paP@SO&UDKqFmiz}i3L`RM#l$-0<}|gevD+go!~=)h#^%R8g^it` zqcR=s-{iUB_Qwg2(-*3D42@90WI!g)oy_M351czA~P`vGT;Z`Ki z4cOW09XFBMhdj+W{fVy@nch9Vy(2GIsetOUe8Arqdl*>;MHN-mGL(#;C|;cHD>|(- zZoS*IQoQwO&<^2)Ms%q(w-nQ_l7amIG-1P)isuA?`YQC7wLg11- z-W;An*O{cWz1pK!5(A?0?HE^RTMIC*hhOETN&4}vSU;0?-fZQzWi97{QOA+OXzt8+ zjO)T2)QDLZOO)p=`$K<;T($iCP#e3(7y1&Ks9=CYFb%oy^vAH^Og_>;4>~=PkzAjt zwM>#rIQ?Q5`zp<5O(vh|`0Jhe^zm>-jj44?^0-Q~$aVrQE{O78TteerT>I#g}q;$jHi9UoA08ghzo{PDzHE_6LO_m>#L??%ivH8P> z70eG)a?7tqF>62JOD(z}Wx(?jJoy?P){oJWsSszH@C=(`NcbWh!fg9Af_0(&wD5Y3 zt7W~5Jbcz;F(->9puZd_`?EeIx@2`PQ*bi*9z{ey$U#se9+l#pPFUVNMoclV&qdRx zdbmr&ZsW6|cbO3TWNc2@bWWA7#ENW4ootp4fE0JdWogIT?X;Ct`JH8?7Xl+w<0+-mQy7trFW+l!f0aoH8*7rj1!BN*)L z`&^Q-W3o;c3?rEV{&SEAgBihCMHWvyiVH0+P@9G`9@9UI*s?uQIHj_& z6LwlKoSeFQ`kkJre_^}>iGD=PX7F||%vqwbb>rB&7Be)_5_tWGkE?~)Tvx9Roj0Mv z&C_S@REJ|B4@kUe@-x0=*r?}jP`ktd%0@a)k~|Vf-oO6T)(6y<8YGmoai8pGab(VP z%2koVbX|?LVonW{EFxOD&s7yKOOFEwIBsuQxppTIA~~RYAtz=`QQKVZafH56CCiw9 zzmP&~oL3M4QTP!KI+w=;(-)p5`&#m+gZl)8rVT+YNU;IB#UsB;?ehD=x_dcB{L=gU zwyTft$^}+Lo8IK(|JgUK-snZhVxN%1TQ&deX@7YGNa-AI(8XrxyxX1K3Dh$jxoP## z!P4o#rNy*h;j-=};b)pw`}PHza3keP1;L?LI%d+14+2QpXTMP8c+GOc8j4KsPa-4e zRoeL=ho+-~k|`CHrCAXcg^vmwk7`a*xu!@K+k};}Az}yl$z1fuHHAl3f5l0%Jk{fg< zhI{`ay?pC{-$o~l>k}EbeccK($yaM^9MA}7C;Mb#z^oRWlEpgB#tx`XoM*;`EKYx1 zyuM=q8!OBC{6tmD*7G*mH*w^nku9%CCdj?F%OG1L+V9$IUl1a&9G1Pr5c#P>q$C_` zZ?b~>E?e(*kTQ+zr}NA~qi)~e2ay1q){ekh?u*;luYGn5;yr3@H-DN8zQ`-DrFIBW zIv&yr(eh`@huSBM(1&eVDMMh7JH`u|X%*eYmj~jgA@1c84X4)fk89g%`ph%Er9p!& zlZGAl;UJE44824&?0Pz{3p2i8-v=ea!XOwzpfG3oc~- zbU%&BLXW-O@m4EIl>}U&h-cD#9}OzWXYv}_pHIxfNb|q$?D?yRX@_9S^6>zN_EOTA zN4+RWM_5cETi640oeVtZk|Tv(E4zpV;II{`+73NKx!$^OvE+2i)yh-F(>}rEe6~&3 zgJ1#cEps$RvF%;5;S&4s==-g0Iqjrp7bAl~&wnb;G#v3c=sjD`c@ce6@CYx?^PEBy zT?+@#6tnh<+vB#wX2MO4Pcen^p5?qEkI9I9o%Ik>Ks!-42FXT#ElY@eG57Q@%&T&+ zr@Js2r*)Z*iXJCSqDUjKYua%fhlI7=(DIISZ()|sWJ zk9+39!uRs&Njo@cVdJeV$`m&xvV+~Vti({v{d<1+Qunn76}9;Vr)vU7eXH@yZciOK zCrV_tf8nyL2tV>FK= zcov`i_8u6Fu~<3h!9IgUR(U#D+ipwzncY}{;UgiF?ubdF2LST0A~^2fqn8eJK+Mtz zTTDKZ>@{g^BwYc>L-#1J_5B4M>sCDOuY7y9ItAjjjFW~~i6a&v3it2Wb-k*2-u))_ zK8#%-5iIbH@*``4WNpMLfZCR(lUCA2&e7E74p_~T2sa)clGC-7Tlc2ll9HAW#v!Eb zGk%x$ClvfgA%BZ{FvCWY!P64VgCGzpHod=Y9o~M-?=xgFe~hT!)`)|8R_V>uB6RcC zIxdjYngwJXbq6}X(tb;4oE*QTe7*7<+dsK5U$`a+GM)p@FM+Qf6GaU1&S{TzQM;|y~4=?3iG2c zp3rhrhfb!-S=!^c$#)>~1V=+r;s9q*^7X+CyG+1erH8*C%uOmZ`kdfrvE-7SzJ721 zIBS1B)SC)G(Dr>~W%{o_{KJ?c_7QaU*Q#$3{!Oy>2c!2EL@(XQ5?c9X48rgBo@am) zm*@;kzW8kW3{?LY4*74- z|J(omcoTf3Th`Q%|2d)cJ0YdgeFeAvz<)Slo+9r+U}-=IsVM7zzvSQE`dSt^A8*%f zEdI86{(E2##lTm3H+{|TS2y&3ZU;QT8umdY$>vY=@h?{dTq;moE=nlf_{XsTjBtQ7)9s9yFv*Y#GaTS#eu3m0W_&=><4ebpL8B`9ABv90}TcSFB%-`}co( zlKksSVAA$MbnyT0mkq3gf4ia*U>&*M_?IIQp-TFvdmQ*#vc$i>^c0Ola9RIf77)hu zlNq90n`$6L3Ip;;G$|MIAP^A?ACx3P15vWc$XUq#gj*tN6@@6#6_O|9?9;poyqbq@` zva}bFM3+0Ti+*RtDU_%YrEPkzPE5vdrA^g((uVmz6_0W)*dHoLI?oNsKlawg`&aR9 zD}39j?EQ8Se4uk4Wya@R-0t#~FwFb+9WCN_DSm%r$wc(05$~ovntjMlU*CmBo6t^2 zBL;5T8kVx!@1Np%`6*5Ei?@GUh(DN%_OlY$U}M_WKNh8-W9c!ULC(___NNv>{0BUg z!WVTN^e27Xa}S~Lz1hL5ud%$I;{3$MLA?3a+)_NsoJL#{*ur6k2H@)`Ox%?o5U|S# z;ua$TrZ3eVK-{X9D8;u+;c-S4$Ay|FT&vlTks8a>OfWP8AMRyxS+y}a_*p;n6!~(G z$K#x0qT0qd4{MFNQK!VH>j_B0;%ZKkeKRA(X}L4p!_xJmjp#IUy23oSH-TM|ncJOS z(CrxIFnqYn+;8aKxQi_v#hmclxqj3rQbd`e8zzN&&tk5jk6Ft*6U?IuVJN72DBAIA zW%2H}pED9`Q-y_g!>YOJ(qQIKI!K!7(*Af&a4IxSGTm?^Qeo|0KSU~daOf4*Rg6?= zP}p+JFm(e-Q;ynvu&{z`{psPehV!uTsLw9j`78iP422a`(=MWvdp=xFGTNLjZmrhA zYf0p@V^hVrp5Si;-sa&m$_j8;ol@8DwJ$jtM9slYhp;JRLm!IQsf7}yp!wpHAJ9*n zyCGd8HUCq|yI-9o5x)>zyncDUu6R*!Up%Ikz>i`Mc8Juiwa3g;L=Z>mIp>s_PXUYI zCY%3{Vub`6m!k(c3Gcxw@-n!0jZ?~ms0aTZThk||7LIC6i^lq}X?tzVjWQaU&mkbt zxLxC2N~^C-j~Y{6RJ3SrGF|?4pD;6*;Pin zEBVkM4dsgt7bO!#mV0BC%GcNpkVj<7*-9xIupbxaQ``N=VX#7`dwZB|4vis-O&@;S zX`-Olz{+@y3HII1YP89`s_*D{g1A2c=F}5kxzbs+tDk>(>XYBIpli76;!gu6ge4-= z$K>+GqXk_|>zxZgpV2~dlTpf1vAJyc%VNgxS(P#YCzHI|*zOD9YR5;PrtM5H5 z@>bnHgwx8~%Lp{&FNLs~b!UDTw2YF~o=0A;Kno^*qN?=UJQS~2;2Dii`}|S~a5Do< zUC${)U~>1x+GIwq4JHspM6isxerII=Eq>-Exz{Vv7OnTg-8Oew!h6Z}aa9MR)M%%z zQgShBN9>D2j5;f>{g(ihx&cZo+7AyqE|<(hrQ}^7d4nJ6pA@=m4d!ZLvj|4)I9|K; z&v{(b#9L<|Hn!0t2}JbV?sAj2px4WbHklK%B1=(@%K|v4e1qO``2&uGWC~vEZ>H63qIt%Fuj^p;n@?|&Zd=;Bb^f|73&Vcil zjb)Dj@C{#X+t-MeD5<$A<_J03dyWSI4%M5lUOyUTJYa^NSvzb_Qvt+faWju|1)eUg zFX-!jW>so-wx!MMwD*|EM6b(Yz_d0*L%cvm*0Q}7Z zC(=Bft+VI8_+5(2#I-I17VvitaXQXxhRRiMU+2o+avNLjymeNc(s6>QoHGE(em@n1 z>KB84`Vp$1`A>A(*<{+lYLhA-6Vc-NRI=6?uezn)maEKZ`-G6W4}4->T*( zkkktXk#$Vo^-a`Y8y-MB2P4sE?>#k{G}^yWBH2E+ean8>rNji7Zc=k1G+MHZ-hjP| zzZyFv+H>I2LAxKr_x4p|ypWAVL6=?N$pgZt$Nvv|Z~a!~wzdr~B?SeQMhOK3B&9p0 zQ@RmpCf$vcs30IIIgu3UmKIRDySpY0lbkT&9n<~n{qAS)^?iT9cYNyyj)TQo_dUkA z$GFB7=XqWQ^0H90iKRkaBxTjOkm*^<3hE=Mb^7Lx78%q!i!@zdmZ4H7FH=BdZ&hy^ zhw6if{Ynf?1A%4{b@3z<_7iB|a7_jr%MALg<6Z%f7wFCAe>hu+%JUakvem-->xCvR zEw`McqbOK_t^a)U+*0>a|1qCqG$GfmqDi$k39kZZmHeGz+`17b`|!Jj*S3gha$$?g zs!!gm7poPdXgN?{#0T#85qlY@9t(a^RV6n858(nkrrS~d8)3q1puSjH;hQU5cNQ0> zFS--kaU1LvC~B`56436L28EFMG2QhhW~Rf!JqaC-RS|_5cr<#SfF4?johx&!^Bj;Yb1GgQ04G^w3yEnfY-fm4aLm!L!&$^5Vc^%0&i}aze0zM;1?1pQOw6Rpefcc@^CNHPuix`9?++chGeKPZS%-V6urjaURDmiN2_O$@Mklg0Mfx+y6a}iHA7g!J zI;>XrR<8%>-$2!8O6jyJqHv8t>aTnCpa93oCr_Uw?4wmG$$ugGg`C80rsmTN*>8_Z zE}TDA+MT^ezm#yGVrT5Oq7t0cfKW`r4wl-E+H$FOe!tC6P(cfIw{bK^8_0O0W)L<$ z>shEk52bqT&cBm?s>|;-U2ysom@HZ8zzp%$r(b~&u{_-(;iH?!SVndPZ2fyotljLYmJ|L<;4@6?mMN=1`B?_=DVE7-N7F3(eGTW6Pjd4= zdky0(V&Fd9s!ppHvJg&m6Codo8Ay=r8D}xQQa%KZj1JogVBUcAxL28|YRR^+({hN= z$R#WTz`ZT!ue>;{I>q=+F=c2_+60W^)Ti1Ej7!gJF~JlyZ#Q2bhCdc@(dk}efM!o1 zH$*qg)&hytSUlWnx$Lkt#bYYD0I$GI z7~S+sxfDMZy{mNJtLCU8CCt0z)Dwx!j6j<&t1)~)qge-^baWxV?;F!hm7OK`tGcFN zC(fs{x&VfZ!HEIo;=HOVR$k9V3wf3apw@L$0zD^6z=E54)P6-9cG zT;2uOiW`gZBi0dL1;~rZe4rt4S~$Q}Rw5bPqPIOnX|AD?TgA2iV+F7Fu-(~0V`D@M zlr5_Ssu&S=HNOpF+w)49L5H~@)b+m4E#5j`^G+*vu=&1wDSHl&1KbWYf+2VN`z9V|}MpHe2#T(t=#fJHyh=}rrOvtQs zOaoEtkL+`~zU@&=& zowy58vBMt6}lA_`Z6H_c4?#c18 zwybrTWx8AXCB^||4y{LPJt@@NC%0y3f4ebri>f9hQF*x!Q&p_AN7f+dE8)jj(CbCp zk?Kz_H#=^C!a)r~2U~8Nr13s&Z}eM-WkzA0Z`_kIQIA=swM_sa;lL)=RPY`Z&(lTz z7*N9@uwtgY_egjVy`RgE#6!GTy{ zMMj{++1ocB8qGjnesoGCZmjuh(--ds2rtuL`5i;YN%<6ceeX;arak75tvP**^WwaQ zw123YSdTa4SJYG1?9$j3Sqz`LC>oB6LxlQ$O>?V?($5NEP~Kv{hcooU&*l+%pvv9r zUTxMDGnSWMRGk(>DJkn-WtL1>fC~Y#+OTltV*u`!LvIa_bPUZ7H`-bYlhYc0B1GMgByDRTF#*}woJ*^!f<0i)wqiW<)K6G zJQRW0JbXqgYh@fr!CaZ>maLZiWV_kC4CBs;H|Y6cc0yHun6m%!<~V63o~ttp&3Ove zLB%^&QKk&tI*C(>9-J3Pi{49ojc{ndoNX8$qLE46$(%6S?ya}vV(0Z*Hk&#|MvWVX z6SK?~1ouN&giA8=nkt7yJ-oB~Xl}99b6I&#q;aSA9siyK;w-6aR$qpiNJP&M(DJ?k ze$6HUZKd{RMQt9eqDCWsSStaOxT@-{_V6W4Su3DBmpC_I_;UO*$+Bqr-SxH(Dlwh; z3Kee7b9V#BEdBP)$Lj&!&NvWoSKOq=PgE;|Qyeb-WT2JSX}y=%C=uvNTwYae4=V39 zY~$toTe?Blm8KP?16DUTKO1!kJHH`Phdc!_p;3yimsB|M2~5Gdjduav7AR3xK6{^L zGf_-nYPmF>bWTz*t`lG?9mQRbgzRrA64XcZ2TFb!vap{%?o-~Lz`%rZ^Fb#58rq$0 zk@68udv@w(wSgozsEWm802oCFHcZ8;DW`a9rA#!QXP{p8&@iK=ip1t&u8NqF#Epa( z2JVTm&wjum@+@-J{N^w1(iodX88q%w<5J7Cy?`pRmPuuwn@1<}MtD49uVTVM>uuXA z!WY~VJK5rSrX7(};Uen0-EGQL{^ws+w29oCl&hZARP=r&+4> zB-WEMj9QA7K8Q!A@KK3g*ZaNy_N5r^!vj%jel4f32t*}*6VvZar|hPiSKY)clw+0M{NUQ)!3h^TFyPQkJd=U*S{ zp~5$IZc}snUr&QKp?DOhec|~IFXyxa?!xfPzNo!Pe39$oRa9TUKBugNQIO?IFzb3l z>V~E0rcZG=$wYVR_E^|`6c#QwpbbPzOGXf@@eSAB(6>1Q^2A`wL+Hav6Nhu%#^>LW z>+1ol{sgqXhy(??7og9M$?of~r@A@}3gl$ECmgk``mSL(;lzwK#zqaff87daI-sCmyrtN99Kp>wnM0@50O}VBwLjH z4mY+0XuX#HbJ|@>S{>)8t(1XLX8eTVyfZX_Q?9=i<~rz(#L|d*+Sx4o>^p>>-w=K0fOx|5O&FvPkni-Z?*cE7pJ>^IXUC6w1kA+T*HQ8&IoK z+xmd^m{II5?tsvozFv(Dk?E%pkb2PPsg*t&yY@WpQ1}Mx{M>dc<@);4LBwls=&_$x z$d713^Sg(m{T4)u&C&?TS1G2}0in~h1<~7BEugh;s@?tzKOyg&>>rWp7U&8d-HE)O zb`n1I5}`OV6{s8L0|p2`O$Ztaw118IDzrMxlQXBfZkWf=o02nnn zyBJxDIvs_OeS1@j;sG^XdlzwchD^9S_4UNPP>-n3=0-~iiK%>-eM&Xcc6ayLC zhQt1B=G*THdyU!Pklz{wqfN8EUhpZ@VE+pIMvT4NMLd=$y99<_bqAP?9qsdRwQvVc zGmu7H5aP}Z3PHoVTaI{BerYxg{Adw4S&I`A@$*^vH8d17xxTRcZGBOh|8)s^+*6fy z95w)AJ$trxNHU>$1Vp?tpxvU6(%D_Vd1?74oq$+ZP$+Jy8xfO+q{@e<8s`5T?bx#l(F?q%sYl8;qJqxk?YjB`&=s(rm=?6ed`Qx4Y<9$MQ>P z^`hBF;bC=#6zai_Ee)X-)Uh3@Eh0O9RZ~Yh{1w@TVby9KcaO~RA6t}Il2^PHelORn zk72xhBUB}$Tz!VUHbvIWIVnPkN{LX%V8k3WTF@HvnEyGrud#3mrte<#EW$$X$2Qlom41lr{n*IRnJ@j{yrZ{g_XBX{E>{`Rsl^6L_8}EWeDy`BoMHG4*DA z>ksuUX8`H}V|V2RV=+yv@t^|~#`H?2KZ5asci^M7{x~Xf_{>`Bb7pTnRTs*6xaLkF3kV{#?p<9~Ob_@0xJS1#J zt8oe`&uZ)zw2b`Bzi-MmW=~=`U-5RA+v^@7Vvc~aMMqOC1oviN1K~B4nCAW$N1SC| zJ%o7TYmyY|x>2S+ATb&>yp4gnd>Swwk~0e-&#Zy%&}`x>o!&rS!h47yYLJ?h%)yi^&f)Dm1(mK~n<*sGklT9lK`0O8^$ ztMNDZ^pgg_tnO$9IFw18x9i>U3Qbo>Z!9;a&6suMKW=x%@P`k;{I9*D2FfQ|@uEI| zZ>*+4Y23ZX40PLWb`J_cg(-^Z$C(@0zr9&Lk0xtDpmW~acHmxKXUX2L@H6kSgvtYM zD6@OfP&G)ApyNnh-M47odczds5|B>dC$jCr+a!0!qFEkS$lW)|Z8uj(H!g`h+GZ=W zZ$lL!#kfGJkB@xsq4~?d0zGlT>G=V|7wVX8 zEhAnzQbULb zbkR0HxXEhc9L4&KPrOW?%@kELmH*&J0VKoXoQof@G+&(R^9P6w4zP~MjpTj3>5M)V z$o(@s9N)v=B+6w~Q93t?ny2!1dUb$(?(E z0`p)wR${6|qbsKWtH<7~bz`p!$1=YQNInVpY~gC|+R*ACCSHD>LrcM!i9}^7smW0l z@HWHD2vGQ-4*Y?Mdvm@Wr#L4hHU2mvJvqca12Dgn9uS5L>awYL$$`#Bd(4*u8ik%^ zx+4N3B}>a^B$p1$%#eFw`Rc~;B+r^&Ba47*Un1g@1;D!R$89TPc}}Jqyeb+uImf8% z+uq?<*r*=wPH4NQh)c|-eVBPfk8%jx-Sn#Dxh)gNj0+Q}dd1ko@Qq0a*8pOW#O^zx zy8O=eAUQs_K^1A0`W5KY<3qf3bpc;bS7Jvi+c`B*`IGqgbURN4>i!XFc^A27vrxWd zL;fAju0aIOy}>rgQ1AUj;C6XhiSBasHL*r!err+Kg*(8?bNZ{R_Vagv_ZpKKv9}T?U|ha>l1Za&;|(10)!kYL z!Fte)YAgw#Czf#HE4Ni86`i0kNNV{45fTw@s#B^-hrJ012mDjgsl}gbh46{vVm-p<~Z-j9dg zRgC>oXDNBTCvkzl%4h*(SV9PyBewk!k9VfmmW9)K{E`)+BEpLXh#)mIZ-k*tbI+!6 zaq7Hbu~i~XjdsHvi#Z_6i`?2EpjXzJFykfj;6YVW?!SL?3&9YvoFX#>Zae$i z?xlkPZ)1h?d@tQ*{G1a90<#!F?W4h>ufFJ6{Z)g8{3pZSv=#8+@4GJI`Bg0J9@=v(h29zW zs=VWxR##QTp_y->Td6yUMdiO3CvI7(>yWRO<9oCdn$3{qxAQ}>>MoH zlkbIDdnH+BU%>7wU+yn?0oSnB#HCwm&DVa{1-=P_mHP}R7B)fL@Xs8I23LpKDh2JK zT~nJk@r35CiBCo^7i74nU4sJ_7DEs8ACB__}kC!@ZXecJUH_gQGIHuD;rPsWsFbh&ytC{w+{n%P_Mq zLm5DMvdz2`9$fUpdTz zoXmpi^v3@5c1zKFJD*5J)BvU5Vhk~1N+Ik$it}^2!%aoM%Er!*Z8*`hC8qkRr}dG- z(U1Jk-`TKt&9MA-*PaAJdD$d;ro#Wn^UHuaX)K7~fTog%4@!eWuhCM^flNkl$f=t~ zk)G1`AIWV^M_YtbO@1kj091r%UNN2U|m0a9+dd>+YA@|1% zU#X|>oWyZESB$?^xFgq$dzXSkLpqYwdW>>(|DpTQR_vq^$pX?lx2pLr5OcP{&cTK#gF@1#5pDngvwXnV9~1-|cLz&7>dCQYa~Xf}zuR^IBVz*q zOinhnBL?*U_Zh!%uORYPb?@9_V6C#pQU4?!d}fM{Nv2fKVs{p`jJt~(6)?MCXz_Qf z6c5w{u;k4>(t1#yGWd7S=;!1Q`Oku4{(W%&8s>c-aQmBNZT$M@u>bX!KQoU6Gw-Y= zi9`R_JN`WMA3p+1K})Q=kA&&}9-HWl^33`hGid+z(IHA8Wi+|T|KeYh{r5M2ra|$# z_b}-GFIVj!Q~bxAY*A=p>46U*g#7P;y?+d*^x1`t;m+Sa+Jpea>^$Dee+R#QE4GS4 z6Q}x!%l*%i{_p2wqiT+&LoRRrx#Iup&rfB*lvZbP<%9lxD*v3l*d$nwcc0P;{tksn zeV-qNCf+boMF9`~*Hi!e+WHKvhwX7H>3>fbSp7~EF6ICK#Q)mh|DXKCKe(JfN}#r7 z;O0XI={p3vsY-=pQ;N0NKdEA4e1gMoaI~%6@}zMZ(FYm(7b9DXrViw z?(lcTF~*)GiufTsAG26{Tmb2twO=0yoOdQ)@cS?S$ZmexXx5edd$y!7=85FHY+-(x zf1tXk$uK1cTJB*3;*%K!&}&{Mq@FzRIm0tx6brE70yLo~uVwcKc0~*c1GT9BVZ!#_4$Tfo_d|<84QG4_yv#m<1_p>z{(1hVroeJ3jdSnie z5pjkq@hX5mzQQ#h7+p?C3f6!`U^$O&gXd@4EBh?&fNhqVZh&T3sol9)kVO~r4HU> zq38_L^L>MSHS^l)&8q9E{_<=6>&wHHerI1x93o~~&F{3uGNt9T6Pykm{S@m{b?wjF zPj_ejL@-iYGkH+X{q&&?eSiw04fo>rP%4IG>y*85hUHw{b$j#z)m{5#j97BTMsG>i zOGU)WsOXfJk$N8-Daf`l07>`x4kt+%fZl90U*LN2yBMvcvfAnCsR@z-n!H#h&StYZ zaC~C`8mzP0Zbm}H9VN@_SC1D1ob>23xy^TaE_-W?Y+az9D1`4OIrYeFZ)RRxd4NJO zcl@!h!%#hk^%3pB;_Fi6bFFU-6oMkpiR=raZ3Ed^wn1jVynn{UY@*n(<>PwN%{N8} zaI$DYiave2k;B;6x?IuIBxvG$G#n_F^LQ-=zEjI{PbzZt)Qd^0IQo=g`gd*W9tA4+xwi*--B{TRn#TJO!GWO_8^y8e?N$!MqqzS` z#qg^BS8twE!btXzn|1GgR=B!f{_;&;M+FnXxyr6fZH?0gomqOPp2YDafRLyGfq@KC zQIpil?Li)8af#nvK<_&n)bgG1bbgb#H|Fo2$=36T2ZtQ;?**b^WxFJHm@Q@mI)NHg z?f92uUsT~5$aTh{5-1{hQ6nOkXZx|JFvX-T?03%4~w1XFwQPRru43Y#3227I?<$M~qobOK)H1C~! zFK9)}=M>pm$_nX3obwQ7OeA8|%r&pZ-nQDE1Kc-6`-5 z-{RO#mWsc_d$jezY05lNS4ryfc#j5&5V7RW>aszk!Q~O5Mk%e&q^9fK3S42+x*&Fo z-3$u=K>Evw3U_3R*1)n!QB57a92wZ$OgEQW~MN~y~!s(j0#s zz{lP60b)LqS_H#vz0~B_Fpxx+jcr$2O@^?Z7Hu^v86uWKAH z#MO#DYC_ywothu$jtAl&k2et8C5b+J`E;OHaIB@b= z@al)mwG(;JY(23$sxp?G+eRnto3a1Jnii)O#jOieIlfTW;ll)S*wlK2VRz(}jB6ys z+rJY&d=MxtQg3}zPp_O>X_M%GK7=LiXAHea=7LQ3x?ZLKwhZ_aW3JvG)N`9&Ymb<) zpzVOY5t0cHOI8R*oc;cxR2oks6Lst>PPCJgPPqXTqHg1PoQ!FwB$^PQ9hvqxiqe?Q z@Qj{(M)X2}2A`1V`Ni9wK@mbX>PoiWzZihl_Q#!>8s66_@wp3a4$X56YkkyKe|p0O z9)Jk^?u~E;ItVMi-uCgIr@BEYZd;` zb}#e-ipVE-A8uv5(yI{CIr{$U8x5_D{Cy@hs8`|_g%chWR`nV*6>{cD1uotqb zad~b+-FN4SUbJ7Eo1)ZqWbFXRO4-gMbsLzBXbgYkiS~dUWbFGc8Eqx+_yd>yZ~kE* z-zn^Q@OHrY4VzWPf;bwMeqir*G1KRaw*7_X1(%!Ybr}@6sZkPW+wV@jg#k?N?W5(C zuS)T`ph#U?e|`Tkr?;(G^kBdW$Xk_3=i>2jtj)MAD3=H7>^0UjZNBd?f^B}zGMZXN zRTWGgpqlFfnJhO5;R1m9h34FK;)em167BOIt6=g7N5*Y`I<+(cg@Bv}KF@BK#ISNnUR!V79i+s%AP!1x_Tj(){8MW5em(#}+Qjk#@NyJhZ)l1`} zbNV7XD*e8nv3bgf{q+l5>`4YPj!a}y-b*Q^UBwbY#ulBD@;}nJ**t+EH!+HKZw%OO zV`q~G0!3-f^+vz1u*2q~5|=qTiEsHH%VvxC_k_h-BtlbHXx9}>=)HmVe$m4!IR~JT zA{>5xQdg2A1t(75-cc<2bg{BdwJT+*_g%xf3tW&Dse?(}xdSvM+1vu4VaHz8bE|nx zZ9_VMQ9QUSM9GmQ+EH_%KS*$0^K>$57)V(Ds%F|omFQ@RIsxz&W{1dX1V!E#uU9VcbndmwPj*Y_lSw ziUUlfSRjzX{&@YH-fs5CkV}mOhH1&Cjat)a#UeKz%kjsI+N_6ye@(FM3jEa>L#N=| zUyQtKzdtMW(NMpaexVT@NN>8L_!u3zl-GU-OIYb)BhHZ6n1IqzSW{G`Rs0q{QFqdlK}%v2QCXTQd)<&sbY}4Y#t(p=SQa1!R64Df2H&!t>;GQ1&hojr%E%G zmCL~eeB;6(_q0gp&E&yLy9Y}yw^7#r7Wy(XxT^cjc2M~Nbdqxve0XzkLzs7Su*o#@ zX7i(+>VtuxUr*F!*8Sk0Y5+*m&m35+{`BUnqi`;V!{|-y4&DXl@Kr7vY=@a9L#+}$ zx=Va?yrAJy6B@7Y6Y80w*bkY!#t@}ZhU}jq_R}4odX7O8WWt+V4d7elUAgakLFKxE zfXU8Vps@`1xxV;1{=V0VpJWEbH~+vG4LaEV5;7>Kfb33JWme4tWKZPX93Ftf1Yr8h zeO3@DaS!|~8vbgEHDH}rc_yO|t!4#^Eaf4cb6>`%xUf?5%?=R7D+<_$5Q&uL)ob(Lz@8-!&*P_P|$46fpj*BA=%OqvOp_x2K}EwVR%6(=2C z9{yZ6(TfD>ZRwYNph3$#r)b1HuJlT5N!m8Af9Z$K4O+&O;)~Qc43y7>amQ+876lUa zlF}Pd!HUA6qqyAF`Dt-^x);Ah^X@k(t?T~rQCwmlwT@_4=Yy<=EIOpH0inigEb{q% z3v2<<#@*j~`bYj~p{{!6)Qdk%A)sjqQa9ts3@&in=G;cLry7fJ1sdbGw4;T6++oPx ziU$uGa2O2UlL?TUfX?fMx$Q{A84<-DzUt9~z;_mo(dlwpf_ot{aCR1T2BerjxN^%8 z;bUcnK@~<2g!R48+49pZ{-9&iS~pY0voS_KR*h5IRFR;@N&h`#c7}Z?9mu) za3YVqU3kD<7kGO*)%AFC$Rh4HuTY77T>dLn0D&KH8;Z_HvI9i9#JqlktO&r)MTZxP zk4RZiQ9RMb+8DGj{yM&iy+&&}kajZ5Y&Tt*ezDh!mWze}O4RigZ&FLlZC*Yz-vU|o z?E^hD_-CFdSvpQS)K!KZ^6d3Vl%QYoM!QqK(zjr{U&l`i!CeJnA_|~M5@iM70Tr+~ zaKZEdsDK&3ZQj~|0=-lK?4wf-?0y@3mH0U(-D{;iiU>K?$S0XCIjy<;9MTQ>%mEMNCs*%vOk9vd*zj)?HBjDZia^x0<>1LzUHI{`Bl z$=4~7K3o{%$qAfBDJIAh*qjW&Xzn&c8WK5yTuALc?}9%KN|Nj4)ut8Du!3@IMX6HI zsb5;FJ-Vs1Ie9+R{DDo8qh+ifsa^3WbGG=T6x4Ec;cLlnxzENNs0G9{zQKBvIMW9> zc8A~eetVHQ_wq+9rTz_wCaLFqT+epASJi#%vXI#=tF(VA!gQq(=&7p1QE*pE?3@ZHkY-@h;!P%KiL zOf9=PFMB!lNYuVz){yA{W58D3r!fmw_Y|cmYPc*!1siApQep`}c*oNy@s!Hz`~Z~} zNxS=)i<+AB5_GUnZs{M^HS`S`e*P0qYxYM}gEkrDVP0mfih)&0Mt5C|0lHjYK0_9c z8g^b}b;vi?od``xDXf1R%34L@&*L)`^JI-ve+#(x;m_r(`Au~Qhtj5F|2kh~K|~As zQnNtg#F%Jf4SYYWIT;A+FG7Z1%kHVVleSxzkZ326NV;`F#%YG#sUX`90zua4q)XE@ z%2;qg%LCp3`r~4tDt>eklhe**`LC71X1=if07AJZZ?jtboC=h_VRfbphxJ11sTXy= znpu^WR$C`r0crulws;^Opi`dlsgm{$2o*7Y^P|}A8F@%2FI!@yfb$TTzmq4cDn48K0>t790Xf@(_CJ^yVpKwp^f<2{(*nRQD-QH=3&564!-h5xTfk51H^}m zScYm8G9`a4eK1Zf9pD!U;|1Kd(9v@pQ?Tt#K*ZrrGP(B-}i~y|KRu#59LE- z69V3(h^Xs(%V>50vEtYrvu4b6sQt8Hcidn;z4`+P^rdfKaWW+*hZ@OYy&Re*x}!Ax z`3eYK!n{cDE!&8OIw`eu$M1G$;}Y7C6=)n5igT5A66zthw|y?nB~gPo0e3%M)++EwVD_qV?78T0?p{)vJbs^?u~^ZwdPLL`9(wt4WIZhiSiFXn!~TF87Q14HNQ^xwZgoatoLw8 zl|Mys72~vXJ@??M73=92U(IZ8yo{_{S|_piP@1Y}h~zO-7(+LJ4IK&Croz=)Irl*V znxo@bb0;1oiyxIFXBc%nMM0>r6MsSjuE~nk>8HK2nxsuKjy#(!0RKXR zY9RM|W)uJCS%h}!GZO(%nFMCtAWG3+>p=1!xH=>>hq>S)WT!8M~R2$C^OzM z=5yvz&z2lL^hlR|ZK9x?k?4X^Sz;hu0N5)6B#`|o7mSbc1H@Tu&;W>Y#^6~ zXpFo@lm+)vwH3)wRW-3#jIFa8tysbSC18{TrEz87AFq|9zPa{1p~A(lIuqGYQ?HbK|X>F?Zofg72`=Ow}xOhfDRBnhc*c!5bS4${|T^pzU%Xh=+ zp{tRxMKz8~OsD3oBYn-+Cv57+!=zIi6b=C$-~5;QC==blmdm(%n|HdIrZrj>LEADr z(R8f|uU80gXpf>Yu1Yzg8tuQHnyPh^=1f*4kK>&U*vX=*5MQ?@+P&F4rb@QP7q)Vr zGuN(|uXAt=h!Q>8q*=el+T#UOTB*H&gU^FbXLCo!b(&6Z$#J_89_d2OUdR)s8=95n z8&)399hWH3SWu2;0G~B^wGQYf?lVs-@`Ke^wFx|M@;rrk+KE>AsgfF@*YX|pN<2f2 zmh$$^#ej>Zq=c}v`)XhUNncyDY^wko8rnKQvC+)RUDx81{Ov|wekytU7P`~ka zaw=bnaE#P)kRTN7VUoV;sz$>X>a?w%ve2{p1xKC<{xtB}ty-VI+$*wLX@BIvb(HUh zSkKR!y7|IaHonC@v0d2=U;U+mZ0GIkW}4X0jpUY8d+^5_)_!YAxL&UM9-Im;W3g+= zj>#9MIQX+OGqX2c=^W=@ktuoK_fin>9%as|FJqO3x;nFX$X~b(FL*7}1b&amv_#o) z0r3oi`K+PY1%XG7V}eWKpYOf?Du;gGO7hl)=(P`s+3g4Lg;xiY=ebhr;S4xyweLkm zR_NEWs4gbo>+5>Vx%Jg3UshjSS&ACNAHA1xE;YKuT@Sn7kX+y49H8WwWwr^(`o!aW z+0*&1E0&%_6QWbgXYAS%YSF_|Z9DnG3ROn7%K6DNvnuMNd3~l$>GR4iCK0;Y=(@ES zjK`B=FMt>d@wUCd=MlX)RM}bR^09u^=R)?te_W-XL&kqGn0ucy=40A{NBVj9qnx#= z7)4+c{<^*PfZRGS@jeYpkfbaND z&3@DAZrnujBZs;cp`%V3$y3XkId@*c{mKfj38Ve*+dT^J1P+Sp_bjSs_KMb3CXii? zA<{;q9HX=Y(lIskJw-z&zC-duP92kiBAAhr(m6yrGb#7j(>5Eoc6V=_zNI zJpsli7vAO2E15F1(}1X{iEBfC^P{-Z{CBK1Z3|wv+1<7@D#rC7Nt(};od*`?rmq`o z`USSRR#}7J1ā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
    tag with type="reasoning" + final reasoningRegex = RegExp( + r']*>\s*([^<]*)\s*(.*?)\s*
    ', + multiLine: true, + dotAll: true, + ); + + final match = reasoningRegex.firstMatch(content); + if (match == null) { + if (kDebugMode) { + debugPrint('DEBUG: Regex did not match - checking pattern'); + } + // Try a more flexible regex to debug + final flexRegex = RegExp( + r']*type="reasoning"[^>]*>.*?', + multiLine: true, + dotAll: true, + ); + final flexMatch = flexRegex.firstMatch(content); + if (flexMatch != null) { + if (kDebugMode) { + debugPrint('DEBUG: Found flexible match: ${flexMatch.group(0)}'); + } + } else { + if (kDebugMode) { + debugPrint('DEBUG: No flexible match found either'); + } + } + return null; + } + + if (kDebugMode) { + debugPrint('DEBUG: Regex matched successfully'); + } + + final isDone = match.group(1) == 'true'; + final duration = int.tryParse(match.group(2) ?? '0') ?? 0; + final summary = match.group(3)?.trim() ?? ''; + final reasoning = match.group(4)?.trim() ?? ''; + + if (kDebugMode) { + debugPrint( + 'DEBUG: Parsed values - isDone: $isDone, duration: $duration, summary: $summary', + ); + debugPrint('DEBUG: Reasoning content length: ${reasoning.length}'); + } + + // Remove the reasoning section from the main content + final mainContent = content.replaceAll(reasoningRegex, '').trim(); + + return ReasoningContent( + reasoning: reasoning, + summary: summary, + duration: duration, + isDone: isDone, + mainContent: mainContent, + originalContent: content, + ); + } + + /// Checks if a message contains reasoning content + static bool hasReasoningContent(String content) { + return content.contains('
    + identical(this, other) || + other is ReasoningContent && + runtimeType == other.runtimeType && + reasoning == other.reasoning && + summary == other.summary && + duration == other.duration && + isDone == other.isDone && + mainContent == other.mainContent && + originalContent == other.originalContent; + + @override + int get hashCode => + reasoning.hashCode ^ + summary.hashCode ^ + duration.hashCode ^ + isDone.hashCode ^ + mainContent.hashCode ^ + originalContent.hashCode; + + String get formattedDuration => ReasoningParser.formatDuration(duration); + + /// Gets the cleaned reasoning text (removes leading '>') + String get cleanedReasoning { + // Split by lines and clean each line + return reasoning + .split('\n') + .map((line) => line.startsWith('>') ? line.substring(1).trim() : line) + .join('\n') + .trim(); + } +} diff --git a/lib/core/utils/stream_chunker.dart b/lib/core/utils/stream_chunker.dart new file mode 100644 index 0000000..4e307a4 --- /dev/null +++ b/lib/core/utils/stream_chunker.dart @@ -0,0 +1,105 @@ +import 'dart:async'; +import 'dart:math'; + +/// Utility class to chunk large text streams into smaller pieces for smoother UI updates +class StreamChunker { + /// Splits large text chunks into smaller pieces for more fluid streaming + /// Similar to OpenWebUI's approach for better UX + static Stream chunkStream( + Stream inputStream, { + bool enableChunking = true, + int minChunkSize = 16, // increase to reduce UI thrash + int maxChunkLength = 12, // larger chunks improve performance + Duration delayBetweenChunks = const Duration(milliseconds: 8), + }) async* { + final random = Random(); + + await for (final chunk in inputStream) { + if (!enableChunking || chunk.length < minChunkSize) { + // Small chunks pass through as-is + yield chunk; + continue; + } + + // Split large chunks into smaller pieces + String remaining = chunk; + while (remaining.isNotEmpty) { + // Random chunk size between 4 and maxChunkLength characters + // But prefer to break at word boundaries when possible + int chunkSize = min( + max(4, random.nextInt(maxChunkLength) + 1), + remaining.length, + ); + + // Try to find a word boundary (space) within the chunk size + if (chunkSize < remaining.length) { + final nextSpace = remaining.indexOf(' ', chunkSize); + if (nextSpace != -1 && nextSpace <= chunkSize + 2) { + // Include the space in the chunk for natural word breaks + chunkSize = nextSpace + 1; + } + } + + final pieceToYield = remaining.substring(0, chunkSize); + yield pieceToYield; + remaining = remaining.substring(chunkSize); + + // Add small delay between chunks for fluid animation + // Skip delay for last piece to avoid unnecessary wait + if (remaining.isNotEmpty && delayBetweenChunks.inMicroseconds > 0) { + await Future.delayed(delayBetweenChunks); + } + } + } + } + + /// Alternative method that chunks by words instead of characters + static Stream chunkByWords( + Stream inputStream, { + bool enableChunking = true, + int wordsPerChunk = 1, + Duration delayBetweenWords = const Duration(milliseconds: 50), + }) async* { + if (!enableChunking) { + yield* inputStream; + return; + } + + String buffer = ''; + + await for (final chunk in inputStream) { + buffer += chunk; + + // Split by spaces and yield word by word + final words = buffer.split(' '); + + // Keep the last "word" in buffer as it might be incomplete + if (words.length > 1) { + buffer = words.last; + final completeWords = words.sublist(0, words.length - 1); + + for (int i = 0; i < completeWords.length; i++) { + final word = completeWords[i]; + // Add space back except for the first word if buffer was empty + final wordWithSpace = + (i < completeWords.length - 1 || buffer.isNotEmpty) + ? '$word ' + : word; + + yield wordWithSpace; + + // Add delay between words for smooth streaming effect + if (i < completeWords.length - 1 && + delayBetweenWords.inMicroseconds > 0) { + await Future.delayed(delayBetweenWords); + } + } + } + } + + // Yield any remaining buffer content + if (buffer.isNotEmpty) { + yield buffer; + } + } +} diff --git a/lib/core/validation/api_validator.dart b/lib/core/validation/api_validator.dart new file mode 100644 index 0000000..e76f9ee --- /dev/null +++ b/lib/core/validation/api_validator.dart @@ -0,0 +1,416 @@ +import 'package:flutter/foundation.dart'; +import 'schema_registry.dart'; +import 'validation_result.dart'; +import 'field_mapper.dart'; + +/// Comprehensive API request and response validator +/// Validates against OpenAPI specification schemas +class ApiValidator { + static final ApiValidator _instance = ApiValidator._internal(); + factory ApiValidator() => _instance; + ApiValidator._internal(); + + final SchemaRegistry _schemaRegistry = SchemaRegistry(); + final FieldMapper _fieldMapper = FieldMapper(); + + bool _initialized = false; + + bool get isInitialized => _initialized; + + /// Initialize validator with OpenAPI schemas + Future initialize() async { + if (_initialized) return; + + try { + await _schemaRegistry.loadSchemas(); + _initialized = true; + debugPrint('ApiValidator: Successfully initialized with schemas'); + } catch (e) { + debugPrint('ApiValidator: Failed to initialize: $e'); + // Continue without validation if schemas can't be loaded + } + } + + /// Validate request payload before sending to API + ValidationResult validateRequest( + dynamic data, + String endpoint, { + String method = 'GET', + }) { + if (!_initialized) { + return ValidationResult.warning( + 'Validator not initialized - skipping validation', + ); + } + + try { + final schema = _schemaRegistry.getRequestSchema(endpoint, method); + if (schema == null) { + return ValidationResult.warning( + 'No schema found for $method $endpoint', + ); + } + + // Transform field names for API (camelCase -> snake_case) + final transformedData = _fieldMapper.toApiFormat(data); + + // Validate against schema + return _validateAgainstSchema(transformedData, schema, 'request'); + } catch (e) { + return ValidationResult.error('Request validation failed: $e'); + } + } + + /// Validate response payload after receiving from API + ValidationResult validateResponse( + dynamic data, + String endpoint, { + String method = 'GET', + int? statusCode, + }) { + if (!_initialized) { + return ValidationResult.warning( + 'Validator not initialized - skipping validation', + ); + } + + try { + final schema = _schemaRegistry.getResponseSchema( + endpoint, + method, + statusCode, + ); + if (schema == null) { + return ValidationResult.warning( + 'No schema found for $method $endpoint response', + ); + } + + // Validate against schema first + final validationResult = _validateAgainstSchema(data, schema, 'response'); + if (!validationResult.isValid) { + return validationResult; + } + + // Transform field names from API (snake_case -> camelCase) + final transformedData = _fieldMapper.fromApiFormat(data); + + return ValidationResult.success( + 'Response validated successfully', + data: transformedData, + ); + } catch (e) { + return ValidationResult.error('Response validation failed: $e'); + } + } + + /// Validate data against a specific schema + ValidationResult _validateAgainstSchema( + dynamic data, + Map schema, + String context, + ) { + final errors = []; + final warnings = []; + + try { + _validateValue(data, schema, '', errors, warnings); + + if (errors.isNotEmpty) { + return ValidationResult.error( + 'Schema validation failed for $context', + errors: errors, + warnings: warnings, + ); + } + + if (warnings.isNotEmpty) { + return ValidationResult.warning( + 'Schema validation passed with warnings for $context', + warnings: warnings, + ); + } + + return ValidationResult.success('Schema validation passed for $context'); + } catch (e) { + return ValidationResult.error('Schema validation error for $context: $e'); + } + } + + /// Recursively validate a value against schema + void _validateValue( + dynamic value, + Map schema, + String path, + List errors, + List warnings, + ) { + final type = schema['type'] as String?; + final required = schema['required'] as List? ?? []; + + // Handle null values + if (value == null) { + if (required.isNotEmpty && path.isNotEmpty) { + errors.add('Required field missing: $path'); + } + return; + } + + // Type validation + switch (type) { + case 'object': + _validateObject(value, schema, path, errors, warnings); + break; + case 'array': + _validateArray(value, schema, path, errors, warnings); + break; + case 'string': + _validateString(value, schema, path, errors, warnings); + break; + case 'number': + case 'integer': + _validateNumber(value, schema, path, errors, warnings); + break; + case 'boolean': + _validateBoolean(value, schema, path, errors, warnings); + break; + default: + // Unknown type - add warning but don't fail + warnings.add('Unknown schema type "$type" at $path'); + } + } + + void _validateObject( + dynamic value, + Map schema, + String path, + List errors, + List warnings, + ) { + if (value is! Map) { + errors.add('Expected object at $path, got ${value.runtimeType}'); + return; + } + + final valueMap = value as Map; + final properties = schema['properties'] as Map? ?? {}; + final required = (schema['required'] as List? ?? []) + .cast(); + + // Check required fields + for (final requiredField in required) { + if (!valueMap.containsKey(requiredField)) { + errors.add( + 'Required field missing: ${path.isEmpty ? '' : '$path.'}$requiredField', + ); + } + } + + // Validate each property + for (final entry in valueMap.entries) { + final fieldName = entry.key; + final fieldValue = entry.value; + final fieldPath = path.isEmpty ? fieldName : '$path.$fieldName'; + + if (properties.containsKey(fieldName)) { + _validateValue( + fieldValue, + properties[fieldName], + fieldPath, + errors, + warnings, + ); + } else { + // Additional property - warn but don't error + warnings.add('Additional property found: $fieldPath'); + } + } + } + + void _validateArray( + dynamic value, + Map schema, + String path, + List errors, + List warnings, + ) { + if (value is! List) { + errors.add('Expected array at $path, got ${value.runtimeType}'); + return; + } + + final array = value; + final items = schema['items'] as Map?; + final minItems = schema['minItems'] as int?; + final maxItems = schema['maxItems'] as int?; + + // Validate array constraints + if (minItems != null && array.length < minItems) { + errors.add( + 'Array at $path has ${array.length} items, minimum is $minItems', + ); + } + + if (maxItems != null && array.length > maxItems) { + errors.add( + 'Array at $path has ${array.length} items, maximum is $maxItems', + ); + } + + // Validate each item + if (items != null) { + for (int i = 0; i < array.length; i++) { + _validateValue(array[i], items, '$path[$i]', errors, warnings); + } + } + } + + void _validateString( + dynamic value, + Map schema, + String path, + List errors, + List warnings, + ) { + if (value is! String) { + errors.add('Expected string at $path, got ${value.runtimeType}'); + return; + } + + final string = value; + final minLength = schema['minLength'] as int?; + final maxLength = schema['maxLength'] as int?; + final pattern = schema['pattern'] as String?; + final format = schema['format'] as String?; + + if (minLength != null && string.length < minLength) { + errors.add( + 'String at $path is ${string.length} chars, minimum is $minLength', + ); + } + + if (maxLength != null && string.length > maxLength) { + errors.add( + 'String at $path is ${string.length} chars, maximum is $maxLength', + ); + } + + if (pattern != null) { + try { + final regex = RegExp(pattern); + if (!regex.hasMatch(string)) { + errors.add('String at $path does not match pattern: $pattern'); + } + } catch (e) { + warnings.add('Invalid regex pattern at $path: $pattern'); + } + } + + // Validate common formats + if (format != null) { + _validateStringFormat(string, format, path, errors, warnings); + } + } + + void _validateStringFormat( + String value, + String format, + String path, + List errors, + List warnings, + ) { + switch (format) { + case 'email': + final emailRegex = RegExp(r'^[^\s@]+@[^\s@]+\.[^\s@]+$'); + if (!emailRegex.hasMatch(value)) { + errors.add('Invalid email format at $path: $value'); + } + break; + case 'uri': + case 'url': + try { + Uri.parse(value); + } catch (e) { + errors.add('Invalid URL format at $path: $value'); + } + break; + case 'date': + try { + DateTime.parse(value); + } catch (e) { + errors.add('Invalid date format at $path: $value'); + } + break; + case 'date-time': + try { + DateTime.parse(value); + } catch (e) { + errors.add('Invalid datetime format at $path: $value'); + } + break; + case 'uuid': + final uuidRegex = RegExp( + r'^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$', + caseSensitive: false, + ); + if (!uuidRegex.hasMatch(value)) { + errors.add('Invalid UUID format at $path: $value'); + } + break; + default: + warnings.add('Unknown string format "$format" at $path'); + } + } + + void _validateNumber( + dynamic value, + Map schema, + String path, + List errors, + List warnings, + ) { + if (value is! num) { + errors.add('Expected number at $path, got ${value.runtimeType}'); + return; + } + + final number = value; + final minimum = schema['minimum'] as num?; + final maximum = schema['maximum'] as num?; + final multipleOf = schema['multipleOf'] as num?; + + if (minimum != null && number < minimum) { + errors.add('Number at $path is $number, minimum is $minimum'); + } + + if (maximum != null && number > maximum) { + errors.add('Number at $path is $number, maximum is $maximum'); + } + + if (multipleOf != null && number % multipleOf != 0) { + errors.add('Number at $path ($number) is not a multiple of $multipleOf'); + } + } + + void _validateBoolean( + dynamic value, + Map schema, + String path, + List errors, + List warnings, + ) { + if (value is! bool) { + errors.add('Expected boolean at $path, got ${value.runtimeType}'); + } + } + + /// Transform and validate data for API consumption + Map transformForApi(Map data) { + return _fieldMapper.toApiFormat(data); + } + + /// Transform and validate data from API response + Map transformFromApi(Map data) { + return _fieldMapper.fromApiFormat(data); + } +} diff --git a/lib/core/validation/field_mapper.dart b/lib/core/validation/field_mapper.dart new file mode 100644 index 0000000..54689c8 --- /dev/null +++ b/lib/core/validation/field_mapper.dart @@ -0,0 +1,267 @@ +import 'package:flutter/foundation.dart'; + +/// Handles field name transformations between API and client formats +/// Converts between snake_case (API) and camelCase (client) +class FieldMapper { + static final FieldMapper _instance = FieldMapper._internal(); + factory FieldMapper() => _instance; + FieldMapper._internal(); + + // Cache for converted field names to improve performance + final Map _toCamelCaseCache = {}; + final Map _toSnakeCaseCache = {}; + + // Special field mappings that don't follow standard conversion rules + static const Map _specialApiToClient = { + 'created_at': 'createdAt', + 'updated_at': 'updatedAt', + 'user_id': 'userId', + 'chat_id': 'chatId', + 'message_id': 'messageId', + 'session_id': 'sessionId', + 'folder_id': 'folderId', + 'share_id': 'shareId', + 'model_id': 'modelId', + 'tool_id': 'toolId', + 'function_id': 'functionId', + 'file_id': 'fileId', + 'knowledge_base_id': 'knowledgeBaseId', + 'channel_id': 'channelId', + 'note_id': 'noteId', + 'prompt_id': 'promptId', + 'memory_id': 'memoryId', + 'is_private': 'isPrivate', + 'is_enabled': 'isEnabled', + 'is_active': 'isActive', + 'is_archived': 'isArchived', + 'is_pinned': 'isPinned', + 'api_key': 'apiKey', + 'access_token': 'accessToken', + 'refresh_token': 'refreshToken', + 'content_type': 'contentType', + 'file_size': 'fileSize', + 'file_type': 'fileType', + 'mime_type': 'mimeType', + }; + + static const Map _specialClientToApi = { + 'createdAt': 'created_at', + 'updatedAt': 'updated_at', + 'userId': 'user_id', + 'chatId': 'chat_id', + 'messageId': 'message_id', + 'sessionId': 'session_id', + 'folderId': 'folder_id', + 'shareId': 'share_id', + 'modelId': 'model_id', + 'toolId': 'tool_id', + 'functionId': 'function_id', + 'fileId': 'file_id', + 'knowledgeBaseId': 'knowledge_base_id', + 'channelId': 'channel_id', + 'noteId': 'note_id', + 'promptId': 'prompt_id', + 'memoryId': 'memory_id', + 'isPrivate': 'is_private', + 'isEnabled': 'is_enabled', + 'isActive': 'is_active', + 'isArchived': 'is_archived', + 'isPinned': 'is_pinned', + 'apiKey': 'api_key', + 'accessToken': 'access_token', + 'refreshToken': 'refresh_token', + 'contentType': 'content_type', + 'fileSize': 'file_size', + 'fileType': 'file_type', + 'mimeType': 'mime_type', + }; + + /// Transform data from client format (camelCase) to API format (snake_case) + dynamic toApiFormat(dynamic data) { + if (data == null) return null; + + if (data is Map) { + return _transformMap(data, _toSnakeCase); + } else if (data is List) { + return data.map((item) => toApiFormat(item)).toList(); + } else { + return data; + } + } + + /// Transform data from API format (snake_case) to client format (camelCase) + dynamic fromApiFormat(dynamic data) { + if (data == null) return null; + + if (data is Map) { + return _transformMap(data, _toCamelCase); + } else if (data is List) { + return data.map((item) => fromApiFormat(item)).toList(); + } else { + return data; + } + } + + /// Transform a map using the provided key transformation function + Map _transformMap( + Map map, + String Function(String) keyTransform, + ) { + final transformed = {}; + + for (final entry in map.entries) { + final transformedKey = keyTransform(entry.key); + dynamic transformedValue = entry.value; + + // Recursively transform nested objects and arrays + if (transformedValue is Map) { + transformedValue = _transformMap(transformedValue, keyTransform); + } else if (transformedValue is List) { + transformedValue = transformedValue.map((item) { + if (item is Map) { + return _transformMap(item, keyTransform); + } + return item; + }).toList(); + } + + transformed[transformedKey] = transformedValue; + } + + return transformed; + } + + /// Convert snake_case to camelCase + String _toCamelCase(String snakeCase) { + // Check cache first + if (_toCamelCaseCache.containsKey(snakeCase)) { + return _toCamelCaseCache[snakeCase]!; + } + + // Check special mappings + if (_specialApiToClient.containsKey(snakeCase)) { + final result = _specialApiToClient[snakeCase]!; + _toCamelCaseCache[snakeCase] = result; + return result; + } + + // Standard conversion + if (!snakeCase.contains('_')) { + _toCamelCaseCache[snakeCase] = snakeCase; + return snakeCase; + } + + final words = snakeCase.split('_'); + final result = + words.first + words.skip(1).map((word) => _capitalize(word)).join(''); + + _toCamelCaseCache[snakeCase] = result; + return result; + } + + /// Convert camelCase to snake_case + String _toSnakeCase(String camelCase) { + // Check cache first + if (_toSnakeCaseCache.containsKey(camelCase)) { + return _toSnakeCaseCache[camelCase]!; + } + + // Check special mappings + if (_specialClientToApi.containsKey(camelCase)) { + final result = _specialClientToApi[camelCase]!; + _toSnakeCaseCache[camelCase] = result; + return result; + } + + // Standard conversion + final result = camelCase.replaceAllMapped( + RegExp(r'[A-Z]'), + (match) => '_${match.group(0)!.toLowerCase()}', + ); + + _toSnakeCaseCache[camelCase] = result; + return result; + } + + /// Capitalize first letter of a word + String _capitalize(String word) { + if (word.isEmpty) return word; + return word[0].toUpperCase() + word.substring(1).toLowerCase(); + } + + /// Convert a single field name from snake_case to camelCase + String fieldToCamelCase(String snakeCase) { + return _toCamelCase(snakeCase); + } + + /// Convert a single field name from camelCase to snake_case + String fieldToSnakeCase(String camelCase) { + return _toSnakeCase(camelCase); + } + + /// Get all cached transformations for debugging + Map getCacheInfo() { + return { + 'toCamelCacheSize': _toCamelCaseCache.length, + 'toSnakeCacheSize': _toSnakeCaseCache.length, + 'specialMappingsCount': _specialApiToClient.length, + }; + } + + /// Clear transformation caches + void clearCache() { + _toCamelCaseCache.clear(); + _toSnakeCaseCache.clear(); + debugPrint('FieldMapper: Cleared transformation caches'); + } + + /// Add custom field mapping + void addCustomMapping(String apiField, String clientField) { + _specialApiToClient[apiField] = clientField; + _specialClientToApi[clientField] = apiField; + + // Clear relevant cache entries + _toCamelCaseCache.remove(apiField); + _toSnakeCaseCache.remove(clientField); + + debugPrint('FieldMapper: Added custom mapping: $apiField <-> $clientField'); + } + + /// Validate that field transformations are reversible + bool validateTransformations() { + final errors = []; + + // Test special mappings + for (final entry in _specialApiToClient.entries) { + final apiField = entry.key; + final clientField = entry.value; + + // Test API -> Client -> API + final backToApi = _toSnakeCase(clientField); + if (backToApi != apiField) { + errors.add( + '$apiField -> $clientField -> $backToApi (should be $apiField)', + ); + } + + // Test Client -> API -> Client + final backToClient = _toCamelCase(apiField); + if (backToClient != clientField) { + errors.add( + '$clientField -> $apiField -> $backToClient (should be $clientField)', + ); + } + } + + if (errors.isNotEmpty) { + debugPrint('FieldMapper: Transformation validation errors:'); + for (final error in errors) { + debugPrint(' $error'); + } + return false; + } + + debugPrint('FieldMapper: All transformations validated successfully'); + return true; + } +} diff --git a/lib/core/validation/schema_registry.dart b/lib/core/validation/schema_registry.dart new file mode 100644 index 0000000..12c4536 --- /dev/null +++ b/lib/core/validation/schema_registry.dart @@ -0,0 +1,368 @@ +import 'dart:async'; +import 'dart:convert'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/services.dart'; + +/// Registry for OpenAPI schemas +/// Loads and provides access to request/response schemas for validation +class SchemaRegistry { + static final SchemaRegistry _instance = SchemaRegistry._internal(); + factory SchemaRegistry() => _instance; + SchemaRegistry._internal(); + + Map? _openApiSpec; + final Map> _requestSchemaCache = {}; + final Map> _responseSchemaCache = {}; + + bool get isLoaded => _openApiSpec != null; + + /// Load schemas from OpenAPI specification + Future loadSchemas() async { + try { + debugPrint('SchemaRegistry: Loading OpenAPI specification...'); + + // Try to load from assets first, then from file system as fallback + String openApiContent; + try { + openApiContent = await rootBundle.loadString('assets/openapi.json'); + } catch (e) { + debugPrint( + 'SchemaRegistry: Could not load from assets, trying file system...', + ); + // Fallback - in a real app you might load from network or local file + throw Exception('OpenAPI specification not found in assets'); + } + + _openApiSpec = jsonDecode(openApiContent) as Map; + + debugPrint( + 'SchemaRegistry: Successfully loaded OpenAPI spec with ${_getPaths().length} paths', + ); + + // Pre-process and cache commonly used schemas + await _buildSchemaCache(); + } catch (e) { + debugPrint('SchemaRegistry: Failed to load schemas: $e'); + rethrow; + } + } + + /// Get request schema for endpoint and method + Map? getRequestSchema(String endpoint, String method) { + if (!isLoaded) return null; + + final cacheKey = '${method.toUpperCase()}:$endpoint:request'; + if (_requestSchemaCache.containsKey(cacheKey)) { + return _requestSchemaCache[cacheKey]; + } + + try { + final pathItem = _findPathItem(endpoint); + if (pathItem == null) return null; + + final operation = pathItem[method.toLowerCase()] as Map?; + if (operation == null) return null; + + final requestBody = operation['requestBody'] as Map?; + if (requestBody == null) return null; + + final content = requestBody['content'] as Map?; + if (content == null) return null; + + // Try to find JSON content type + final jsonContent = + content['application/json'] as Map? ?? + content.values.first as Map?; + + if (jsonContent == null) return null; + + final schema = _resolveSchema( + jsonContent['schema'] as Map?, + ); + + if (schema != null) { + _requestSchemaCache[cacheKey] = schema; + } + + return schema; + } catch (e) { + debugPrint( + 'SchemaRegistry: Error getting request schema for $method $endpoint: $e', + ); + return null; + } + } + + /// Get response schema for endpoint, method, and status code + Map? getResponseSchema( + String endpoint, + String method, + int? statusCode, + ) { + if (!isLoaded) return null; + + final code = statusCode?.toString() ?? '200'; + final cacheKey = '${method.toUpperCase()}:$endpoint:response:$code'; + + if (_responseSchemaCache.containsKey(cacheKey)) { + return _responseSchemaCache[cacheKey]; + } + + try { + final pathItem = _findPathItem(endpoint); + if (pathItem == null) return null; + + final operation = pathItem[method.toLowerCase()] as Map?; + if (operation == null) return null; + + final responses = operation['responses'] as Map?; + if (responses == null) return null; + + // Try to find the specific status code, or fall back to 'default' or '200' + final response = + responses[code] as Map? ?? + responses['default'] as Map? ?? + responses['200'] as Map?; + + if (response == null) return null; + + final content = response['content'] as Map?; + if (content == null) return null; + + // Try to find JSON content type + final jsonContent = + content['application/json'] as Map? ?? + content.values.first as Map?; + + if (jsonContent == null) return null; + + final schema = _resolveSchema( + jsonContent['schema'] as Map?, + ); + + if (schema != null) { + _responseSchemaCache[cacheKey] = schema; + } + + return schema; + } catch (e) { + debugPrint( + 'SchemaRegistry: Error getting response schema for $method $endpoint ($code): $e', + ); + return null; + } + } + + /// Find path item that matches the given endpoint + Map? _findPathItem(String endpoint) { + final paths = _getPaths(); + + // Try exact match first + if (paths.containsKey(endpoint)) { + return paths[endpoint] as Map?; + } + + // Try to find parameterized routes + for (final pathPattern in paths.keys) { + if (_matchesPathPattern(endpoint, pathPattern)) { + return paths[pathPattern] as Map?; + } + } + + return null; + } + + /// Check if endpoint matches a path pattern with parameters + bool _matchesPathPattern(String endpoint, String pattern) { + // Convert OpenAPI path parameters {id} to regex + final regexPattern = pattern.replaceAllMapped( + RegExp(r'\{([^}]+)\}'), + (match) => r'([^/]+)', + ); + + final regex = RegExp('^$regexPattern\$'); + return regex.hasMatch(endpoint); + } + + /// Get paths from OpenAPI spec + Map _getPaths() { + return _openApiSpec?['paths'] as Map? ?? {}; + } + + /// Resolve schema references ($ref) + Map? _resolveSchema(Map? schema) { + if (schema == null) return null; + + // Handle $ref + final ref = schema['\$ref'] as String?; + if (ref != null) { + return _resolveReference(ref); + } + + // Handle allOf, oneOf, anyOf + if (schema.containsKey('allOf')) { + return _mergeAllOfSchemas(schema['allOf'] as List); + } + + if (schema.containsKey('oneOf') || schema.containsKey('anyOf')) { + // For now, just take the first schema in oneOf/anyOf + final schemas = (schema['oneOf'] ?? schema['anyOf']) as List; + if (schemas.isNotEmpty) { + return _resolveSchema(schemas.first as Map?); + } + } + + // Recursively resolve nested schemas + final resolved = Map.from(schema); + + if (resolved.containsKey('properties')) { + final properties = resolved['properties'] as Map; + final resolvedProperties = {}; + + for (final entry in properties.entries) { + resolvedProperties[entry.key] = _resolveSchema( + entry.value as Map?, + ); + } + + resolved['properties'] = resolvedProperties; + } + + if (resolved.containsKey('items')) { + resolved['items'] = _resolveSchema( + resolved['items'] as Map?, + ); + } + + return resolved; + } + + /// Resolve $ref reference + Map? _resolveReference(String ref) { + if (!ref.startsWith('#/')) { + debugPrint('SchemaRegistry: External references not supported: $ref'); + return null; + } + + final path = ref.substring(2).split('/'); + dynamic current = _openApiSpec; + + for (final segment in path) { + if (current is Map && current.containsKey(segment)) { + current = current[segment]; + } else { + debugPrint('SchemaRegistry: Could not resolve reference: $ref'); + return null; + } + } + + return _resolveSchema(current as Map?); + } + + /// Merge allOf schemas + Map _mergeAllOfSchemas(List schemas) { + final merged = {}; + final mergedProperties = {}; + final mergedRequired = []; + + for (final schema in schemas) { + final resolvedSchema = _resolveSchema(schema as Map?); + if (resolvedSchema == null) continue; + + // Merge top-level properties + merged.addAll(resolvedSchema); + + // Merge properties + if (resolvedSchema.containsKey('properties')) { + mergedProperties.addAll( + resolvedSchema['properties'] as Map, + ); + } + + // Merge required fields + if (resolvedSchema.containsKey('required')) { + mergedRequired.addAll( + (resolvedSchema['required'] as List).cast(), + ); + } + } + + if (mergedProperties.isNotEmpty) { + merged['properties'] = mergedProperties; + } + + if (mergedRequired.isNotEmpty) { + merged['required'] = mergedRequired; + } + + return merged; + } + + /// Pre-build cache of commonly used schemas + Future _buildSchemaCache() async { + if (!isLoaded) return; + + final paths = _getPaths(); + int cachedCount = 0; + + for (final pathEntry in paths.entries) { + final path = pathEntry.key; + final pathItem = pathEntry.value as Map; + + for (final method in ['get', 'post', 'put', 'delete', 'patch']) { + if (pathItem.containsKey(method)) { + // Cache request schema + getRequestSchema(path, method); + + // Cache common response schemas + getResponseSchema(path, method, 200); + getResponseSchema(path, method, 201); + getResponseSchema(path, method, 400); + getResponseSchema(path, method, 401); + getResponseSchema(path, method, 403); + getResponseSchema(path, method, 404); + getResponseSchema(path, method, 422); + getResponseSchema(path, method, 500); + + cachedCount++; + } + } + } + + debugPrint( + 'SchemaRegistry: Pre-cached schemas for $cachedCount operations', + ); + } + + /// Get all available endpoints + List getAvailableEndpoints() { + if (!isLoaded) return []; + return _getPaths().keys.toList(); + } + + /// Get available methods for an endpoint + List getAvailableMethods(String endpoint) { + final pathItem = _findPathItem(endpoint); + if (pathItem == null) return []; + + return pathItem.keys + .where( + (key) => [ + 'get', + 'post', + 'put', + 'delete', + 'patch', + 'head', + 'options', + ].contains(key), + ) + .toList(); + } + + /// Clear all caches + void clearCache() { + _requestSchemaCache.clear(); + _responseSchemaCache.clear(); + } +} diff --git a/lib/core/validation/validation_interceptor.dart b/lib/core/validation/validation_interceptor.dart new file mode 100644 index 0000000..7654dd0 --- /dev/null +++ b/lib/core/validation/validation_interceptor.dart @@ -0,0 +1,217 @@ +import 'package:dio/dio.dart'; +import 'package:flutter/foundation.dart'; +import 'api_validator.dart'; +import 'validation_result.dart'; + +/// Dio interceptor for automatic API validation +/// Validates requests and responses against OpenAPI schemas +class ValidationInterceptor extends Interceptor { + final ApiValidator _validator = ApiValidator(); + final bool enableRequestValidation; + final bool enableResponseValidation; + final bool throwOnValidationError; + final bool logValidationResults; + + ValidationInterceptor({ + this.enableRequestValidation = true, + this.enableResponseValidation = true, + this.throwOnValidationError = false, + this.logValidationResults = true, + }); + + /// Initialize the validator + Future initialize() async { + await _validator.initialize(); + } + + @override + void onRequest(RequestOptions options, RequestInterceptorHandler handler) { + if (enableRequestValidation && options.data != null) { + try { + final result = _validator.validateRequest( + options.data, + options.path, + method: options.method, + ); + + if (logValidationResults) { + _logValidationResult(result, 'REQUEST', options.path, options.method); + } + + if (!result.isValid && throwOnValidationError) { + throw ValidationException(result); + } + + // Transform data if validation succeeded + if (result.isValid && options.data is Map) { + options.data = _validator.transformForApi( + options.data as Map, + ); + } + } catch (e) { + if (e is ValidationException) { + handler.reject( + DioException( + requestOptions: options, + error: e, + type: DioExceptionType.unknown, + message: 'Request validation failed: ${e.result.message}', + ), + ); + return; + } else { + debugPrint('ValidationInterceptor: Request validation error: $e'); + } + } + } + + handler.next(options); + } + + @override + void onResponse(Response response, ResponseInterceptorHandler handler) { + if (enableResponseValidation && response.data != null) { + try { + final result = _validator.validateResponse( + response.data, + response.requestOptions.path, + method: response.requestOptions.method, + statusCode: response.statusCode, + ); + + if (logValidationResults) { + _logValidationResult( + result, + 'RESPONSE', + response.requestOptions.path, + response.requestOptions.method, + statusCode: response.statusCode, + ); + } + + if (!result.isValid && throwOnValidationError) { + throw ValidationException(result); + } + + // Transform data if validation succeeded and data is available + if (result.isValid && result.data != null) { + response.data = result.data; + } else if (result.isValid && response.data is Map) { + response.data = _validator.transformFromApi( + response.data as Map, + ); + } + + // Store validation result in response for debugging + if (kDebugMode) { + response.extra['validationResult'] = result; + } + } catch (e) { + if (e is ValidationException) { + handler.reject( + DioException( + requestOptions: response.requestOptions, + response: response, + error: e, + type: DioExceptionType.unknown, + message: 'Response validation failed: ${e.result.message}', + ), + ); + return; + } else { + debugPrint('ValidationInterceptor: Response validation error: $e'); + } + } + } + + handler.next(response); + } + + @override + void onError(DioException err, ErrorInterceptorHandler handler) { + // Try to validate error responses too + if (enableResponseValidation && err.response?.data != null) { + try { + final result = _validator.validateResponse( + err.response!.data, + err.requestOptions.path, + method: err.requestOptions.method, + statusCode: err.response!.statusCode, + ); + + if (logValidationResults) { + _logValidationResult( + result, + 'ERROR_RESPONSE', + err.requestOptions.path, + err.requestOptions.method, + statusCode: err.response!.statusCode, + ); + } + + // Transform error response data + if (result.isValid && result.data != null) { + err.response!.data = result.data; + } else if (result.isValid && + err.response!.data is Map) { + err.response!.data = _validator.transformFromApi( + err.response!.data as Map, + ); + } + + // Store validation result for debugging + if (kDebugMode) { + err.response!.extra['validationResult'] = result; + } + } catch (e) { + debugPrint( + 'ValidationInterceptor: Error response validation failed: $e', + ); + } + } + + handler.next(err); + } + + /// Log validation results in a structured format + void _logValidationResult( + ValidationResult result, + String type, + String path, + String method, { + int? statusCode, + }) { + if (!logValidationResults) return; + + final statusText = statusCode != null ? ' ($statusCode)' : ''; + final icon = result.isValid ? '✅' : '❌'; + + debugPrint( + '$icon Validation $type: ${method.toUpperCase()} $path$statusText - ${result.status.name}', + ); + + if (result.hasErrors) { + debugPrint(' Errors: ${result.errors.join(', ')}'); + } + + if (result.hasWarnings) { + debugPrint(' Warnings: ${result.warnings.join(', ')}'); + } + + if (result.message.isNotEmpty && + result.status != ValidationStatus.success) { + debugPrint(' Message: ${result.message}'); + } + } + + /// Get validation statistics + Map getStats() { + return { + 'requestValidationEnabled': enableRequestValidation, + 'responseValidationEnabled': enableResponseValidation, + 'throwOnError': throwOnValidationError, + 'loggingEnabled': logValidationResults, + 'validatorInitialized': _validator.isInitialized, + }; + } +} diff --git a/lib/core/validation/validation_result.dart b/lib/core/validation/validation_result.dart new file mode 100644 index 0000000..36aed1e --- /dev/null +++ b/lib/core/validation/validation_result.dart @@ -0,0 +1,100 @@ +/// Result of API validation operations +class ValidationResult { + const ValidationResult._({ + required this.isValid, + required this.status, + required this.message, + this.errors = const [], + this.warnings = const [], + this.data, + }); + + const ValidationResult.success( + String message, { + dynamic data, + List warnings = const [], + }) : this._( + isValid: true, + status: ValidationStatus.success, + message: message, + warnings: warnings, + data: data, + ); + + const ValidationResult.warning( + String message, { + List warnings = const [], + dynamic data, + }) : this._( + isValid: true, + status: ValidationStatus.warning, + message: message, + warnings: warnings, + data: data, + ); + + const ValidationResult.error( + String message, { + List errors = const [], + List warnings = const [], + }) : this._( + isValid: false, + status: ValidationStatus.error, + message: message, + errors: errors, + warnings: warnings, + ); + + final bool isValid; + final ValidationStatus status; + final String message; + final List errors; + final List warnings; + final dynamic data; + + bool get hasWarnings => warnings.isNotEmpty; + bool get hasErrors => errors.isNotEmpty; + + @override + String toString() { + final buffer = StringBuffer(); + buffer.write('ValidationResult('); + buffer.write('status: $status, '); + buffer.write('message: $message'); + + if (hasErrors) { + buffer.write(', errors: ${errors.length}'); + } + + if (hasWarnings) { + buffer.write(', warnings: ${warnings.length}'); + } + + buffer.write(')'); + return buffer.toString(); + } + + /// Convert to a detailed map for logging/debugging + Map toMap() { + return { + 'isValid': isValid, + 'status': status.name, + 'message': message, + 'errors': errors, + 'warnings': warnings, + 'hasData': data != null, + }; + } +} + +enum ValidationStatus { success, warning, error } + +/// Exception thrown when validation fails critically +class ValidationException implements Exception { + const ValidationException(this.result); + + final ValidationResult result; + + @override + String toString() => 'ValidationException: ${result.message}'; +} diff --git a/lib/core/widgets/error_boundary.dart b/lib/core/widgets/error_boundary.dart new file mode 100644 index 0000000..b73b0db --- /dev/null +++ b/lib/core/widgets/error_boundary.dart @@ -0,0 +1,308 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import '../../shared/theme/theme_extensions.dart'; +import '../error/enhanced_error_service.dart'; + +/// Error boundary widget that catches and handles errors in child widgets +class ErrorBoundary extends ConsumerStatefulWidget { + final Widget child; + final Widget Function(Object error, StackTrace? stack)? errorBuilder; + final void Function(Object error, StackTrace? stack)? onError; + final bool showErrorDialog; + final bool allowRetry; + + const ErrorBoundary({ + super.key, + required this.child, + this.errorBuilder, + this.onError, + this.showErrorDialog = false, + this.allowRetry = true, + }); + + @override + ConsumerState createState() => _ErrorBoundaryState(); +} + +class _ErrorBoundaryState extends ConsumerState { + Object? _error; + StackTrace? _stackTrace; + bool _hasError = false; + + @override + void initState() { + super.initState(); + + // Set up Flutter error handling for this widget + final previousOnError = FlutterError.onError; + FlutterError.onError = (FlutterErrorDetails details) { + // Forward to any previously registered handler to avoid interfering + if (previousOnError != null) { + previousOnError(details); + } + _handleError(details.exception, details.stack); + }; + } + + void _handleError(Object error, StackTrace? stack) { + // Log error + enhancedErrorService.logError( + error, + context: 'ErrorBoundary', + stackTrace: stack, + ); + + // Call custom error handler if provided + widget.onError?.call(error, stack); + + // Update state + if (mounted) { + setState(() { + _error = error; + _stackTrace = stack; + _hasError = true; + }); + + // Show error dialog if requested + if (widget.showErrorDialog && context.mounted) { + enhancedErrorService.showErrorDialog(context, error); + } + } + } + + void _retry() { + setState(() { + _error = null; + _stackTrace = null; + _hasError = false; + }); + } + + @override + Widget build(BuildContext context) { + if (_hasError && _error != null) { + // Use custom error builder if provided + if (widget.errorBuilder != null) { + return widget.errorBuilder!(_error!, _stackTrace); + } + + // Default error UI + return Scaffold( + backgroundColor: context.conduitTheme.surfaceBackground, + body: SafeArea( + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + Icons.error_outline, + size: 64, + color: context.conduitTheme.error, + ), + const SizedBox(height: 16), + Text( + 'Something went wrong', + style: Theme.of(context).textTheme.headlineSmall?.copyWith( + color: context.conduitTheme.textPrimary, + ), + ), + const SizedBox(height: 8), + Text( + enhancedErrorService.getUserMessage(_error!), + textAlign: TextAlign.center, + style: Theme.of(context).textTheme.bodyMedium?.copyWith( + color: context.conduitTheme.textSecondary, + ), + ), + if (widget.allowRetry) ...[ + const SizedBox(height: 24), + FilledButton.icon( + onPressed: _retry, + icon: const Icon(Icons.refresh), + label: const Text('Try Again'), + ), + ], + ], + ), + ), + ), + ); + } + + // Wrap child in error handler + return Builder( + builder: (context) { + ErrorWidget.builder = (FlutterErrorDetails details) { + _handleError(details.exception, details.stack); + return const SizedBox.shrink(); + }; + + try { + return widget.child; + } catch (error, stack) { + _handleError(error, stack); + return const SizedBox.shrink(); + } + }, + ); + } +} + +/// Widget that handles async operations with proper error handling +class AsyncErrorBoundary extends ConsumerWidget { + final Future Function() builder; + final Widget? loadingWidget; + final Widget Function(Object error)? errorWidget; + final bool showRetry; + + const AsyncErrorBoundary({ + super.key, + required this.builder, + this.loadingWidget, + this.errorWidget, + this.showRetry = true, + }); + + @override + Widget build(BuildContext context, WidgetRef ref) { + return FutureBuilder( + future: builder(), + builder: (context, snapshot) { + // Loading state + if (snapshot.connectionState == ConnectionState.waiting) { + return loadingWidget ?? + const Center(child: CircularProgressIndicator()); + } + + // Error state + if (snapshot.hasError) { + final error = snapshot.error!; + + // Log error + enhancedErrorService.logError( + error, + context: 'AsyncErrorBoundary', + stackTrace: snapshot.stackTrace, + ); + + // Use custom error widget if provided + if (errorWidget != null) { + return errorWidget!(error); + } + + // Default error widget + return Center( + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + Icons.error_outline, + size: 48, + color: context.conduitTheme.error, + ), + const SizedBox(height: 16), + Text( + enhancedErrorService.getUserMessage(error), + textAlign: TextAlign.center, + ), + if (showRetry) ...[ + const SizedBox(height: 16), + FilledButton.icon( + onPressed: () { + // Force rebuild to retry + (context as Element).markNeedsBuild(); + }, + icon: const Icon(Icons.refresh), + label: const Text('Retry'), + ), + ], + ], + ), + ), + ); + } + + // Success state + return snapshot.data ?? const SizedBox.shrink(); + }, + ); + } +} + +/// Stream error boundary for handling stream errors +class StreamErrorBoundary extends ConsumerWidget { + final Stream stream; + final Widget Function(T data) builder; + final Widget? loadingWidget; + final Widget Function(Object error)? errorWidget; + final T? initialData; + + const StreamErrorBoundary({ + super.key, + required this.stream, + required this.builder, + this.loadingWidget, + this.errorWidget, + this.initialData, + }); + + @override + Widget build(BuildContext context, WidgetRef ref) { + return StreamBuilder( + stream: stream, + initialData: initialData, + builder: (context, snapshot) { + // Error state + if (snapshot.hasError) { + final error = snapshot.error!; + + // Log error + enhancedErrorService.logError( + error, + context: 'StreamErrorBoundary', + stackTrace: snapshot.stackTrace, + ); + + // Use custom error widget if provided + if (errorWidget != null) { + return errorWidget!(error); + } + + // Default error widget + return Center( + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + Icons.error_outline, + size: 48, + color: context.conduitTheme.error, + ), + const SizedBox(height: 16), + Text( + enhancedErrorService.getUserMessage(error), + textAlign: TextAlign.center, + ), + ], + ), + ), + ); + } + + // Loading state + if (!snapshot.hasData) { + return loadingWidget ?? + const Center(child: CircularProgressIndicator()); + } + + // Success state + return builder(snapshot.data as T); + }, + ); + } +} diff --git a/lib/features/auth/providers/unified_auth_providers.dart b/lib/features/auth/providers/unified_auth_providers.dart new file mode 100644 index 0000000..afe9224 --- /dev/null +++ b/lib/features/auth/providers/unified_auth_providers.dart @@ -0,0 +1,107 @@ +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import '../../../core/auth/auth_state_manager.dart'; +import '../../../core/providers/app_providers.dart'; + +/// Unified auth providers using the new auth state manager +/// These replace the old auth providers for better efficiency + +/// Login action provider +final loginActionProvider = Provider.family, Map>(( + ref, + credentials, +) async { + final authManager = ref.read(authStateManagerProvider.notifier); + + final username = credentials['username']!; + final password = credentials['password']!; + final rememberCredentials = credentials['remember'] == 'true'; + + return await authManager.login( + username, + password, + rememberCredentials: rememberCredentials, + ); +}); + +/// Silent login action provider +final silentLoginActionProvider = Provider>((ref) async { + final authManager = ref.read(authStateManagerProvider.notifier); + return await authManager.silentLogin(); +}); + +/// Logout action provider +final logoutActionProvider = Provider>((ref) async { + final authManager = ref.read(authStateManagerProvider.notifier); + await authManager.logout(); +}); + +/// Check if saved credentials exist +final hasSavedCredentialsProvider2 = FutureProvider((ref) async { + final authManager = ref.read(authStateManagerProvider.notifier); + return await authManager.hasSavedCredentials(); +}); + +/// Computed providers for UI consumption +/// These automatically update when auth state changes + +final isAuthenticatedProvider2 = Provider((ref) { + return ref.watch( + authStateManagerProvider.select((state) => state.isAuthenticated), + ); +}); + +final authTokenProvider3 = Provider((ref) { + return ref.watch(authStateManagerProvider.select((state) => state.token)); +}); + +final currentUserProvider2 = Provider((ref) { + return ref.watch(authStateManagerProvider.select((state) => state.user)); +}); + +final authErrorProvider3 = Provider((ref) { + return ref.watch(authStateManagerProvider.select((state) => state.error)); +}); + +final isAuthLoadingProvider2 = Provider((ref) { + return ref.watch(authStateManagerProvider.select((state) => state.isLoading)); +}); + +final authStatusProvider = Provider((ref) { + return ref.watch(authStateManagerProvider.select((state) => state.status)); +}); + +/// Helper provider to trigger auth refresh +final refreshAuthProvider = Provider>((ref) async { + final authManager = ref.read(authStateManagerProvider.notifier); + await authManager.refresh(); +}); + +/// Provider to watch for auth state changes and update API service +final authApiIntegrationProvider = Provider((ref) { + ref.listen(authTokenProvider3, (previous, next) { + final api = ref.read(apiServiceProvider); + if (api != null && next != null && next.isNotEmpty) { + api.updateAuthToken(next); + } + }); +}); + +/// Navigation helper provider - determines where user should go +final authNavigationStateProvider = Provider((ref) { + final authState = ref.watch(authStateManagerProvider); + + switch (authState.status) { + case AuthStatus.initial: + case AuthStatus.loading: + return AuthNavigationState.loading; + case AuthStatus.authenticated: + return AuthNavigationState.authenticated; + case AuthStatus.unauthenticated: + case AuthStatus.tokenExpired: + return AuthNavigationState.needsLogin; + case AuthStatus.error: + return AuthNavigationState.error; + } +}); + +enum AuthNavigationState { loading, authenticated, needsLogin, error } diff --git a/lib/features/auth/views/connect_signin_page.dart b/lib/features/auth/views/connect_signin_page.dart new file mode 100644 index 0000000..922782d --- /dev/null +++ b/lib/features/auth/views/connect_signin_page.dart @@ -0,0 +1,659 @@ +import 'dart:io' show Platform; + +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_animate/flutter_animate.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:flutter/services.dart'; +import 'package:uuid/uuid.dart'; + +import '../../../core/models/server_config.dart'; +import '../../../core/providers/app_providers.dart'; +import '../../../core/services/api_service.dart'; +import '../../../core/services/input_validation_service.dart'; +import '../../../core/widgets/error_boundary.dart'; +import '../../../shared/services/brand_service.dart'; +import '../../../shared/theme/theme_extensions.dart'; +import '../../../shared/widgets/conduit_components.dart'; +import '../../../core/auth/auth_state_manager.dart'; +import '../../chat/views/chat_page.dart'; + +class ConnectAndSignInPage extends ConsumerStatefulWidget { + const ConnectAndSignInPage({super.key}); + + @override + ConsumerState createState() => + _ConnectAndSignInPageState(); +} + +class _ConnectAndSignInPageState extends ConsumerState { + final _formKey = GlobalKey(); + + // Server controls + final TextEditingController _urlController = TextEditingController(); + String? _connectionError; + + // Auth controls + final TextEditingController _usernameController = TextEditingController(); + final TextEditingController _passwordController = TextEditingController(); + bool _obscurePassword = true; + String? _loginError; + bool _isSubmitting = false; + + @override + void initState() { + super.initState(); + _prefillFromState(); + _loadSavedCredentials(); + } + + Future _prefillFromState() async { + final activeServer = await ref.read(activeServerProvider.future); + if (activeServer != null) { + _urlController.text = activeServer.url; + } + } + + Future _loadSavedCredentials() async { + final storage = ref.read(optimizedStorageServiceProvider); + final savedCredentials = await storage.getSavedCredentials(); + if (savedCredentials != null) { + setState(() { + _usernameController.text = savedCredentials['username'] ?? ''; + }); + } + } + + @override + void dispose() { + _urlController.dispose(); + _usernameController.dispose(); + _passwordController.dispose(); + super.dispose(); + } + + Future _connectToServer() async { + if (!_formKey.currentState!.validate()) return false; + + setState(() { + _connectionError = null; + }); + + try { + String url = _urlController.text.trim(); + if (url.isEmpty) throw Exception('URL cannot be empty'); + if (!url.startsWith('http://') && !url.startsWith('https://')) { + url = 'http://$url'; + } + if (url.endsWith('/')) { + url = url.substring(0, url.length - 1); + } + + final uri = Uri.tryParse(url); + if (uri == null || !uri.hasScheme || uri.host.isEmpty) { + throw Exception('Invalid URL format. Please check your input.'); + } + if (uri.scheme != 'http' && uri.scheme != 'https') { + throw Exception('Only HTTP and HTTPS protocols are supported.'); + } + + final tempConfig = ServerConfig( + id: const Uuid().v4(), + name: _deriveServerNameFromUrl(url), + url: url, + isActive: true, + ); + + final api = ApiService(serverConfig: tempConfig); + final isHealthy = await api.checkHealth(); + if (!isHealthy) { + throw Exception('This does not appear to be an Open-WebUI server.'); + } + + await _saveServerConfig(tempConfig); + // Success + return true; + } catch (e) { + setState(() { + _connectionError = _formatConnectionError(e.toString()); + }); + return false; + } finally { + // no-op + } + } + + Future _saveServerConfig(ServerConfig config) async { + final storage = ref.read(optimizedStorageServiceProvider); + await storage.saveServerConfigs([config]); + await storage.setActiveServerId(config.id); + ref.invalidate(serverConfigsProvider); + ref.invalidate(activeServerProvider); + } + + String _deriveServerNameFromUrl(String url) { + try { + final uri = Uri.parse(url); + if (uri.host.isNotEmpty) return uri.host; + } catch (_) {} + return 'Server'; + } + + Future _signIn() async { + if (!_formKey.currentState!.validate()) return; + setState(() { + _loginError = null; + }); + + try { + final authManager = ref.read(authStateManagerProvider.notifier); + final success = await authManager.login( + _usernameController.text.trim(), + _passwordController.text, + rememberCredentials: true, + ); + if (!success) { + final authState = ref.read(authStateManagerProvider); + throw Exception(authState.error ?? 'Login failed'); + } + } catch (e) { + setState(() { + _loginError = _formatLoginError(e.toString()); + }); + } finally { + // no-op + } + } + + Future _connectAndSignIn() async { + if (!_formKey.currentState!.validate()) return; + setState(() { + _isSubmitting = true; + _connectionError = null; + _loginError = null; + }); + + try { + final connected = await _connectToServer(); + if (!connected) return; + // Wait for providers to reflect the new active server and API service + await ref.read(activeServerProvider.future); + final apiReady = await _waitForApiService(); + if (!apiReady) { + setState(() { + _connectionError = 'Setting up the connection... Please try again.'; + }); + return; + } + await _signIn(); + } finally { + if (mounted) { + setState(() { + _isSubmitting = false; + }); + } + } + } + + Future _waitForApiService({ + Duration timeout = const Duration(seconds: 2), + }) async { + final end = DateTime.now().add(timeout); + while (DateTime.now().isBefore(end)) { + final api = ref.read(apiServiceProvider); + if (api != null) return true; + await Future.delayed(const Duration(milliseconds: 50)); + } + return ref.read(apiServiceProvider) != null; + } + + String _formatConnectionError(String error) { + if (error.contains('SocketException')) { + return 'We couldn\'t reach the server. Check your connection and that the server is running.'; + } else if (error.contains('timeout')) { + return 'Connection timed out. The server might be busy or blocked by a firewall.'; + } else if (error.contains('Invalid URL format')) { + return error.replaceFirst('Exception: ', ''); + } else if (error.contains('Missing protocol')) { + return 'Include http:// or https:// (e.g., http://192.168.1.10:3000).'; + } else if (error.contains('Only HTTP and HTTPS')) { + return 'Use http:// or https:// only.'; + } + return 'Couldn\'t connect. Double-check the address and try again.'; + } + + String _formatLoginError(String error) { + if (error.contains('401') || error.contains('Unauthorized')) { + return 'Invalid username or password. Please try again.'; + } else if (error.contains('redirect')) { + return 'The server is redirecting requests. Check your server\'s HTTPS configuration.'; + } else if (error.contains('SocketException')) { + return 'Unable to connect to server. Please check your connection.'; + } else if (error.contains('timeout')) { + return 'The request timed out. Please try again.'; + } + return 'We couldn\'t sign you in. Check your credentials and server settings.'; + } + + @override + Widget build(BuildContext context) { + final isIOS = Platform.isIOS; + final activeServerAsync = ref.watch(activeServerProvider); + final reviewerMode = ref.watch(reviewerModeProvider); + + return ErrorBoundary( + child: Scaffold( + backgroundColor: context.conduitTheme.surfaceBackground, + body: SafeArea( + child: Center( + child: SingleChildScrollView( + padding: const EdgeInsets.all(Spacing.pagePadding), + child: ConstrainedBox( + constraints: const BoxConstraints(maxWidth: 460), + child: Form( + key: _formKey, + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + GestureDetector( + onLongPress: () async { + HapticFeedback.mediumImpact(); + await ref + .read(reviewerModeProvider.notifier) + .toggle(); + if (!mounted) return; + final enabled = ref.read(reviewerModeProvider); + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text( + enabled + ? 'Reviewer Mode enabled: Demo without server' + : 'Reviewer Mode disabled', + ), + ), + ); + }, + child: Stack( + alignment: Alignment.center, + children: [ + BrandService.createBrandIcon( + size: 100, + useGradient: true, + addShadow: true, + ), + if (reviewerMode) + Positioned( + bottom: 4, + child: Container( + padding: const EdgeInsets.symmetric( + horizontal: 8, + vertical: 2, + ), + decoration: BoxDecoration( + color: context.conduitTheme.warning + .withValues(alpha: 0.15), + borderRadius: BorderRadius.circular(8), + border: Border.all( + color: context.conduitTheme.warning, + width: 1, + ), + ), + child: Text( + 'Reviewer Mode', + style: TextStyle( + color: context.conduitTheme.warning, + fontSize: AppTypography.labelSmall, + fontWeight: FontWeight.w700, + ), + ), + ), + ), + ], + ), + ) + .animate() + .scale( + duration: AnimationDuration.pageTransition, + curve: Curves.easeOutBack, + ) + .then() + .shimmer(duration: AnimationDuration.typingIndicator), + + const SizedBox(height: Spacing.sectionGap), + + Text( + 'Connect and sign in', + textAlign: TextAlign.center, + style: context.conduitTheme.headingLarge?.copyWith( + color: context.conduitTheme.textPrimary, + fontWeight: FontWeight.w600, + ), + ).animate().fadeIn( + duration: AnimationDuration.pageTransition, + delay: AnimationDuration.microInteraction, + ), + + const SizedBox(height: Spacing.comfortable), + + if (reviewerMode) ...[ + ConduitButton( + text: 'Enter Reviewer Demo', + onPressed: () { + Navigator.of(context).push( + MaterialPageRoute( + builder: (_) => const ChatPage(), + ), + ); + }, + isSecondary: true, + isFullWidth: true, + ), + const SizedBox(height: Spacing.xs), + Text( + 'Demo mode: explore the app without a server. Some features are simulated.', + textAlign: TextAlign.center, + style: TextStyle( + color: context.conduitTheme.textSecondary, + fontSize: AppTypography.bodySmall, + ), + ), + + const SizedBox(height: Spacing.sectionGap), + ], + + // Card container for form content + ConduitCard( + isElevated: true, + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + // Step 1: Server + _SectionHeader( + icon: isIOS + ? CupertinoIcons.globe + : Icons.language, + title: 'Server', + subtitle: null, + ), + + const SizedBox(height: Spacing.sm), + + AccessibleFormField( + label: 'Server address', + hint: 'https://server', + controller: _urlController, + validator: InputValidationService.combine([ + InputValidationService.validateRequired, + (value) => InputValidationService.validateUrl( + value, + required: true, + ), + ]), + keyboardType: TextInputType.url, + semanticLabel: + 'Enter your server URL or IP address', + onSubmitted: (_) => _connectAndSignIn(), + prefixIcon: Icon( + isIOS ? CupertinoIcons.globe : Icons.public, + color: context.conduitTheme.iconSecondary, + ), + ).animate().slideX( + begin: -0.08, + duration: AnimationDuration.messageSlide, + delay: AnimationDuration.microInteraction, + curve: Curves.easeOutCubic, + ), + + if (_connectionError != null) ...[ + const SizedBox(height: Spacing.sm), + _InlineMessage( + message: _connectionError!, + isError: true, + ).animate().slideX( + begin: 0.08, + duration: AnimationDuration.messageSlide, + curve: Curves.easeOutCubic, + ), + ], + + const SizedBox(height: Spacing.sectionGap), + + // Step 2: Sign in + _SectionHeader( + icon: isIOS + ? CupertinoIcons.lock + : Icons.lock_outline, + title: 'Sign in', + subtitle: null, + ), + + const SizedBox(height: Spacing.sm), + + activeServerAsync.maybeWhen( + data: (server) => server != null + ? Row( + children: [ + Icon( + isIOS + ? CupertinoIcons.link + : Icons.link_outlined, + size: IconSize.small, + color: context + .conduitTheme + .iconSecondary, + ), + const SizedBox(width: Spacing.xs), + Expanded( + child: Text( + server.url, + textAlign: TextAlign.left, + overflow: TextOverflow.ellipsis, + style: context + .conduitTheme + .bodySmall + ?.copyWith( + color: context + .conduitTheme + .textSecondary, + ), + ), + ), + ], + ) + : const SizedBox.shrink(), + orElse: () => const SizedBox.shrink(), + ), + + const SizedBox(height: Spacing.sm), + + AccessibleFormField( + label: 'Username or email', + hint: null, + controller: _usernameController, + validator: InputValidationService.combine([ + InputValidationService.validateRequired, + (value) => + InputValidationService.validateEmailOrUsername( + value, + ), + ]), + keyboardType: TextInputType.emailAddress, + semanticLabel: 'Enter your username or email', + prefixIcon: Icon( + isIOS + ? CupertinoIcons.person + : Icons.person_outline, + color: context.conduitTheme.iconSecondary, + ), + ), + + const SizedBox(height: Spacing.comfortable), + + AccessibleFormField( + label: 'Password', + hint: null, + controller: _passwordController, + validator: InputValidationService.combine([ + InputValidationService.validateRequired, + (value) => + InputValidationService.validateMinLength( + value, + 1, + fieldName: 'Password', + ), + ]), + obscureText: _obscurePassword, + semanticLabel: 'Enter your password', + prefixIcon: Icon( + isIOS + ? CupertinoIcons.lock + : Icons.lock_outline, + color: context.conduitTheme.iconSecondary, + ), + suffixIcon: IconButton( + icon: Icon( + _obscurePassword + ? (isIOS + ? CupertinoIcons.eye_slash + : Icons.visibility_off) + : (isIOS + ? CupertinoIcons.eye + : Icons.visibility), + color: context.conduitTheme.iconSecondary, + ), + onPressed: () => setState(() { + _obscurePassword = !_obscurePassword; + }), + ), + onSubmitted: (_) => _connectAndSignIn(), + ), + + if (_loginError != null) ...[ + const SizedBox(height: Spacing.sm), + _InlineMessage( + message: _loginError!, + isError: true, + ), + ], + + const SizedBox(height: Spacing.md), + + ConduitButton( + text: 'Continue', + onPressed: _isSubmitting + ? null + : _connectAndSignIn, + isLoading: _isSubmitting, + isFullWidth: true, + ).animate().scale( + duration: AnimationDuration.buttonPress, + curve: Curves.easeOutCubic, + ), + ], + ), + ), + ], + ), + ), + ), + ), + ), + ), + ), + ); + } +} + +class _SectionHeader extends StatelessWidget { + final IconData icon; + final String title; + final String? subtitle; + + const _SectionHeader({ + required this.icon, + required this.title, + this.subtitle, + }); + + @override + Widget build(BuildContext context) { + return Row( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Icon(icon, color: context.conduitTheme.iconPrimary), + const SizedBox(width: Spacing.sm), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + title, + style: context.conduitTheme.headingSmall?.copyWith( + color: context.conduitTheme.textPrimary, + fontWeight: FontWeight.w600, + ), + ), + if (subtitle != null) + Text( + subtitle!, + style: context.conduitTheme.bodySmall?.copyWith( + color: context.conduitTheme.textSecondary, + ), + ), + ], + ), + ), + ], + ); + } +} + +class _InlineMessage extends StatelessWidget { + final String message; + final bool isError; + + const _InlineMessage({required this.message, this.isError = false}); + + @override + Widget build(BuildContext context) { + final isIOS = Platform.isIOS; + final color = isError + ? context.conduitTheme.error + : context.conduitTheme.success; + final bg = isError + ? context.conduitTheme.errorBackground + : context.conduitTheme.successBackground; + final icon = isError + ? (isIOS + ? CupertinoIcons.exclamationmark_circle_fill + : Icons.error_outline) + : (isIOS ? CupertinoIcons.check_mark_circled : Icons.check_circle); + + return Container( + padding: const EdgeInsets.all(Spacing.cardPadding), + decoration: BoxDecoration( + color: bg, + borderRadius: BorderRadius.circular(AppBorderRadius.card), + border: Border.all( + color: color.withValues(alpha: 0.3), + width: BorderWidth.regular, + ), + boxShadow: ConduitShadows.low, + ), + child: Row( + children: [ + Icon(icon, color: color, size: IconSize.medium), + const SizedBox(width: Spacing.comfortable), + Expanded( + child: Text( + message, + style: context.conduitTheme.bodyMedium?.copyWith(color: color), + ), + ), + ], + ), + ); + } +} + +// removed unused _ButtonProgress; ConduitButton provides built-in loading state diff --git a/lib/features/chat/providers/chat_providers.dart b/lib/features/chat/providers/chat_providers.dart new file mode 100644 index 0000000..48b3a1e --- /dev/null +++ b/lib/features/chat/providers/chat_providers.dart @@ -0,0 +1,1425 @@ +import 'dart:async'; +import 'dart:math' as math; +import 'package:flutter/foundation.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:uuid/uuid.dart'; +import '../../../core/models/chat_message.dart'; +import '../../../core/models/conversation.dart'; +import '../../../core/providers/app_providers.dart'; +import '../../../core/auth/auth_state_manager.dart'; +import '../../../core/utils/stream_chunker.dart'; + +// Chat messages for current conversation +final chatMessagesProvider = + StateNotifierProvider>((ref) { + return ChatMessagesNotifier(ref); + }); + +// Loading state for conversation (used to show chat skeletons during fetch) +final isLoadingConversationProvider = StateProvider((ref) => false); + +class ChatMessagesNotifier extends StateNotifier> { + final Ref _ref; + StreamSubscription? _messageStream; + ProviderSubscription? _conversationListener; + final List _subscriptions = []; + + ChatMessagesNotifier(this._ref) : super([]) { + // Load messages when conversation changes with proper cleanup + _conversationListener = _ref.listen(activeConversationProvider, ( + previous, + next, + ) { + debugPrint( + 'DEBUG: Active conversation changed - Previous: ${previous?.id}, Next: ${next?.id}', + ); + + // Only react when the conversation actually changes + if (previous?.id == next?.id) { + // If same conversation but server updated it (e.g., title/content), sync messages without flicker + if (previous?.updatedAt != next?.updatedAt) { + state = next?.messages ?? state; + } + return; + } + + // Cancel any existing message stream when switching conversations + _cancelMessageStream(); + + if (next != null) { + debugPrint( + 'DEBUG: Loading ${next.messages.length} messages for conversation ${next.id}', + ); + state = next.messages; + } else { + debugPrint('DEBUG: Clearing messages - no active conversation'); + state = []; + } + }); + + // ProviderSubscription will be cleaned up in dispose method + } + + void _addSubscription(StreamSubscription subscription) { + _subscriptions.add(subscription); + } + + void _cancelMessageStream() { + _messageStream?.cancel(); + _messageStream = null; + } + + void setMessageStream(StreamSubscription stream) { + _cancelMessageStream(); + _messageStream = stream; + + // Add to tracked subscriptions for comprehensive cleanup + _addSubscription(stream); + } + + void addMessage(ChatMessage message) { + state = [...state, message]; + } + + void removeLastMessage() { + if (state.isNotEmpty) { + state = state.sublist(0, state.length - 1); + } + } + + void clearMessages() { + state = []; + } + + void setMessages(List messages) { + state = messages; + } + + void updateLastMessage(String content) { + if (state.isEmpty) return; + + final lastMessage = state.last; + if (lastMessage.role != 'assistant') return; + + state = [ + ...state.sublist(0, state.length - 1), + lastMessage.copyWith(content: content), + ]; + } + + void appendToLastMessage(String content) { + debugPrint('DEBUG: appendToLastMessage called with: "$content"'); + + if (state.isEmpty) { + debugPrint('DEBUG: No messages to append to'); + return; + } + + final lastMessage = state.last; + if (lastMessage.role != 'assistant') { + debugPrint( + 'DEBUG: Last message is not assistant, role: ${lastMessage.role}', + ); + return; + } + + debugPrint( + 'DEBUG: Appending to message ${lastMessage.id}, current length: ${lastMessage.content.length}', + ); + + // If the current content is just the typing indicator, replace it instead of appending + final newContent = lastMessage.content == '[TYPING_INDICATOR]' + ? content + : lastMessage.content + content; + + state = [ + ...state.sublist(0, state.length - 1), + lastMessage.copyWith(content: newContent), + ]; + debugPrint('DEBUG: New content length: ${state.last.content.length}'); + } + + void replaceLastMessageContent(String content) { + debugPrint('DEBUG: replaceLastMessageContent called with: "$content"'); + if (state.isEmpty) { + debugPrint('DEBUG: No messages to replace content for'); + return; + } + + final lastMessage = state.last; + if (lastMessage.role != 'assistant') { + debugPrint( + 'DEBUG: Last message is not assistant, role: ${lastMessage.role}', + ); + return; + } + + debugPrint('DEBUG: Replacing content for message ${lastMessage.id}'); + state = [ + ...state.sublist(0, state.length - 1), + lastMessage.copyWith(content: content), + ]; + debugPrint('DEBUG: Replaced content length: ${state.last.content.length}'); + } + + void finishStreaming() { + if (state.isEmpty) return; + + final lastMessage = state.last; + if (lastMessage.role != 'assistant' || !lastMessage.isStreaming) return; + + state = [ + ...state.sublist(0, state.length - 1), + lastMessage.copyWith(isStreaming: false), + ]; + } + + @override + void dispose() { + debugPrint( + 'DEBUG: ChatMessagesNotifier disposing - cancelling ${_subscriptions.length} subscriptions', + ); + + // Cancel all tracked subscriptions + for (final subscription in _subscriptions) { + subscription.cancel(); + } + _subscriptions.clear(); + + // Cancel message stream specifically + _cancelMessageStream(); + + // Cancel conversation listener specifically + _conversationListener?.close(); + _conversationListener = null; + + debugPrint('DEBUG: ChatMessagesNotifier disposed successfully'); + super.dispose(); + } +} + +// Start a new chat (unified function for both "New Chat" button and home screen) +void startNewChat(dynamic ref) { + debugPrint('DEBUG: Starting new chat - clearing all state'); + + // Clear active conversation + ref.read(activeConversationProvider.notifier).state = null; + + // Clear messages + ref.read(chatMessagesProvider.notifier).clearMessages(); + + debugPrint('DEBUG: New chat state cleared'); +} + +// Available tools provider +final availableToolsProvider = StateProvider>((ref) => []); + +// Web search enabled state for API-based web search +final webSearchEnabledProvider = StateProvider((ref) => false); + +// Vision capable models provider +final visionCapableModelsProvider = StateProvider>((ref) { + final selectedModel = ref.watch(selectedModelProvider); + if (selectedModel == null) return []; + + // Check if the model supports vision (multimodal) + if (selectedModel.isMultimodal == true) { + return [selectedModel.id]; + } + + // For now, assume all models support vision unless explicitly marked + // This can be enhanced with proper model capability detection + return [selectedModel.id]; +}); + +// File upload capable models provider +final fileUploadCapableModelsProvider = StateProvider>((ref) { + final selectedModel = ref.watch(selectedModelProvider); + if (selectedModel == null) return []; + + // For now, assume all models support file upload + // This can be enhanced with proper model capability detection + return [selectedModel.id]; +}); + +// Helper function to validate file size +bool validateFileSize(int fileSize, int? maxSizeMB) { + if (maxSizeMB == null) return true; + final maxSizeBytes = maxSizeMB * 1024 * 1024; + return fileSize <= maxSizeBytes; +} + +// Helper function to validate file count +bool validateFileCount(int currentCount, int newFilesCount, int? maxCount) { + if (maxCount == null) return true; + return (currentCount + newFilesCount) <= maxCount; +} + +// Helper function to get file content as base64 +Future _getFileAsBase64(dynamic api, String fileId) async { + debugPrint('DEBUG: _getFileAsBase64 called for fileId: $fileId'); + + // Check if this is already a data URL (for images) + if (fileId.startsWith('data:')) { + debugPrint('DEBUG: FileId is already a data URL, returning as-is'); + return fileId; + } + + try { + // First, get file info to determine if it's an image + debugPrint('DEBUG: Getting file info for $fileId'); + final fileInfo = await api.getFileInfo(fileId); + debugPrint('DEBUG: File info received: $fileInfo'); + + // Try different fields for filename - check all possible field names + final fileName = + fileInfo['filename'] ?? + fileInfo['meta']?['name'] ?? + fileInfo['name'] ?? + fileInfo['file_name'] ?? + fileInfo['original_name'] ?? + fileInfo['original_filename'] ?? + ''; + + debugPrint('DEBUG: Processing file: $fileName (fileId: $fileId)'); + + final ext = fileName.toLowerCase().split('.').last; + debugPrint('DEBUG: File extension: $ext'); + + // Only process image files + if (!['jpg', 'jpeg', 'png', 'gif', 'webp'].contains(ext)) { + debugPrint('DEBUG: Skipping non-image file: $fileName (extension: $ext)'); + return null; + } + + debugPrint('DEBUG: Getting base64 content for image: $fileName'); + + // Get file content as base64 string + final fileContent = await api.getFileContent(fileId); + debugPrint( + 'DEBUG: Got file content for $fileName, type: ${fileContent.runtimeType}, length: ${fileContent.length}', + ); + + // The API service returns base64 string directly + return fileContent; + } catch (e) { + debugPrint('DEBUG: Error getting file content for $fileId: $e'); + return null; + } +} + +// Send message function for widgets +Future sendMessage( + WidgetRef ref, + String message, + List? attachments, +) async { + debugPrint( + 'DEBUG: sendMessage called with message: $message, attachments: $attachments', + ); + await _sendMessageInternal(ref, message, attachments); +} + +// Internal send message implementation +Future _sendMessageInternal( + dynamic ref, + String message, + List? attachments, +) async { + debugPrint('DEBUG: _sendMessageInternal called'); + debugPrint('DEBUG: Message: $message'); + debugPrint('DEBUG: Attachments: $attachments'); + + final reviewerMode = ref.read(reviewerModeProvider); + final api = ref.read(apiServiceProvider); + final selectedModel = ref.read(selectedModelProvider); + + debugPrint('DEBUG: API service: ${api != null ? 'available' : 'null'}'); + debugPrint('DEBUG: Selected model: ${selectedModel?.name ?? 'null'}'); + + if ((!reviewerMode && api == null) || selectedModel == null) { + debugPrint('DEBUG: Missing API service or model'); + throw Exception('No API service or model selected'); + } + + // Check if we need to create a new conversation first + var activeConversation = ref.read(activeConversationProvider); + + if (activeConversation == null) { + // Create new conversation locally first to ensure we have a conversation context + debugPrint('DEBUG: Creating new conversation before sending message'); + final title = message.length > 50 + ? '${message.substring(0, 50)}...' + : message; + + // Create local conversation first + final localConversation = Conversation( + id: const Uuid().v4(), + title: title, + createdAt: DateTime.now(), + updatedAt: DateTime.now(), + messages: [], + ); + + // Set as active conversation locally + ref.read(activeConversationProvider.notifier).state = localConversation; + activeConversation = localConversation; + + if (!reviewerMode) { + // Try to create on server, but don't fail if it doesn't work + try { + final serverConversation = await api.createConversation( + title: title, + messages: [], + model: selectedModel.id, + ); + final updatedConversation = localConversation.copyWith( + id: serverConversation.id, + ); + ref.read(activeConversationProvider.notifier).state = + updatedConversation; + activeConversation = updatedConversation; + debugPrint( + 'DEBUG: Created conversation ${serverConversation.id} on server', + ); + } catch (e) { + debugPrint( + 'DEBUG: Failed to create conversation on server, using local: $e', + ); + } + } + } + + // Add user message + debugPrint('DEBUG: Creating user message with attachments: $attachments'); + final userMessage = ChatMessage( + id: const Uuid().v4(), + role: 'user', + content: message, + timestamp: DateTime.now(), + attachmentIds: attachments, + ); + ref.read(chatMessagesProvider.notifier).addMessage(userMessage); + debugPrint('DEBUG: User message added with ID: ${userMessage.id}'); + + // We'll add the assistant message placeholder after we get the message ID from the API (or immediately in reviewer mode) + + // Reviewer mode: simulate a response locally and return + if (reviewerMode) { + // Add assistant message placeholder + final assistantMessage = ChatMessage( + id: const Uuid().v4(), + role: 'assistant', + content: '[TYPING_INDICATOR]', + timestamp: DateTime.now(), + model: selectedModel.name, + isStreaming: true, + ); + ref.read(chatMessagesProvider.notifier).addMessage(assistantMessage); + + // Simulate token-by-token streaming + final demoText = + 'This is a demo response from Conduit.\n\nYou typed: "$message"'; + final words = demoText.split(' '); + for (final word in words) { + await Future.delayed(const Duration(milliseconds: 40)); + ref.read(chatMessagesProvider.notifier).appendToLastMessage('$word '); + } + ref.read(chatMessagesProvider.notifier).finishStreaming(); + + // Save locally + await _saveConversationLocally(ref); + return; + } + + // Get conversation history for context + final List messages = ref.read(chatMessagesProvider); + final List> conversationMessages = + >[]; + + for (final msg in messages) { + // Skip only empty assistant message placeholders that are currently streaming + // Include completed messages (both user and assistant) for conversation history + if (msg.role.isNotEmpty && msg.content.isNotEmpty && !msg.isStreaming) { + debugPrint( + 'DEBUG: Processing message: role=${msg.role}, content=${msg.content.substring(0, msg.content.length > 50 ? 50 : msg.content.length)}..., attachments=${msg.attachmentIds}', + ); + + // Check if message has attachments (images and non-images) + if (msg.attachmentIds != null && msg.attachmentIds!.isNotEmpty) { + debugPrint( + 'DEBUG: Message has ${msg.attachmentIds!.length} attachments', + ); + + // Check if this is a Gemini model that requires special handling + final isGeminiModel = selectedModel.id.toLowerCase().contains('gemini'); + debugPrint('DEBUG: Is Gemini model: $isGeminiModel'); + debugPrint('DEBUG: Model ID: ${selectedModel.id}'); + debugPrint('DEBUG: Model name: ${selectedModel.name}'); + debugPrint( + 'DEBUG: Model ID lowercase: ${selectedModel.id.toLowerCase()}', + ); + debugPrint( + 'DEBUG: Contains gemini: ${selectedModel.id.toLowerCase().contains('gemini')}', + ); + + // Use the same content array format for all models (OpenWebUI standard) + final List> contentArray = []; + // Collect non-image files to include in the message map so API can forward top-level 'files' + final List> nonImageFiles = []; + + // Add text content first + if (msg.content.isNotEmpty) { + contentArray.add({'type': 'text', 'text': msg.content}); + debugPrint('DEBUG: Added text content to array'); + } + + // Add image attachments with proper MIME type handling; collect non-image attachments + for (final attachmentId in msg.attachmentIds!) { + debugPrint('DEBUG: Processing attachment: $attachmentId'); + try { + final base64Data = await _getFileAsBase64(api, attachmentId); + if (base64Data != null) { + debugPrint( + 'DEBUG: Got base64 data for attachment $attachmentId, length: ${base64Data.length}', + ); + + // Check if this is already a data URL + if (base64Data.startsWith('data:')) { + contentArray.add({ + 'type': 'image_url', + 'image_url': {'url': base64Data}, + }); + debugPrint('DEBUG: Added image with data URL'); + } else { + // For server files, determine MIME type from file extension + // Only call getFileInfo if attachmentId is not a data URL + if (!attachmentId.startsWith('data:')) { + final fileInfo = await api.getFileInfo(attachmentId); + final fileName = fileInfo['filename'] ?? ''; + final ext = fileName.toLowerCase().split('.').last; + + String mimeType = 'image/png'; // default + if (ext == 'jpg' || ext == 'jpeg') { + mimeType = 'image/jpeg'; + } else if (ext == 'gif') { + mimeType = 'image/gif'; + } else if (ext == 'webp') { + mimeType = 'image/webp'; + } + + debugPrint( + 'DEBUG: Using MIME type: $mimeType for file: $fileName', + ); + + contentArray.add({ + 'type': 'image_url', + 'image_url': {'url': 'data:$mimeType;base64,$base64Data'}, + }); + debugPrint('DEBUG: Added image with MIME type: $mimeType'); + } else { + debugPrint('DEBUG: Skipping getFileInfo for data URL'); + } + } + } else { + debugPrint( + 'DEBUG: No base64 data returned for attachment $attachmentId', + ); + // Treat as non-image file; include minimal descriptor so server can resolve by id + nonImageFiles.add({'id': attachmentId, 'type': 'file'}); + } + } catch (e) { + debugPrint('DEBUG: Failed to load attachment $attachmentId: $e'); + } + } + + debugPrint('DEBUG: Final content array length: ${contentArray.length}'); + final messageMap = { + 'role': msg.role, + 'content': contentArray, + }; + if (nonImageFiles.isNotEmpty) { + debugPrint( + 'DEBUG: Adding ${nonImageFiles.length} non-image file(s) to message map', + ); + messageMap['files'] = nonImageFiles; + } + conversationMessages.add(messageMap); + } else { + // Regular text-only message + debugPrint('DEBUG: Regular text-only message'); + conversationMessages.add({'role': msg.role, 'content': msg.content}); + } + } + } + + // Check if web search is enabled for API + final webSearchEnabled = ref.read(webSearchEnabledProvider); + + // No need for function calling tools since we're using retrieval directly + final tools = >[]; + + try { + // Use the model's actual supported parameters if available + final supportedParams = + selectedModel.supportedParameters ?? + [ + 'max_tokens', + 'tool_choice', + 'tools', + 'response_format', + 'structured_outputs', + ]; + + debugPrint( + 'DEBUG: Model ${selectedModel.name} supported parameters: ${selectedModel.supportedParameters}', + ); + debugPrint('DEBUG: Model ID: ${selectedModel.id}'); + debugPrint('DEBUG: Is multimodal: ${selectedModel.isMultimodal}'); + + // Create comprehensive model item matching OpenWebUI format exactly + final modelItem = { + 'id': selectedModel.id, + 'canonical_slug': selectedModel.id, + 'hugging_face_id': '', + 'name': selectedModel.name, + 'created': 1754089419, // Use example timestamp for consistency + 'description': + selectedModel.description ?? + 'This is a cloaked model provided to the community to gather feedback. This is an improved version of [Horizon Alpha](/openrouter/horizon-alpha)\n\nNote: It\'s free to use during this testing period, and prompts and completions are logged by the model creator for feedback and training.', + 'context_length': 256000, + 'architecture': { + 'modality': 'text+image->text', + 'input_modalities': ['image', 'text'], + 'output_modalities': ['text'], + 'tokenizer': 'Other', + 'instruct_type': null, + }, + 'pricing': { + 'prompt': '0', + 'completion': '0', + 'request': '0', + 'image': '0', + 'audio': '0', + 'web_search': '0', + 'internal_reasoning': '0', + }, + 'top_provider': { + 'context_length': 256000, + 'max_completion_tokens': 128000, + 'is_moderated': false, + }, + 'per_request_limits': null, + 'supported_parameters': supportedParams, + 'connection_type': 'external', + 'owned_by': 'openai', + 'openai': { + 'id': selectedModel.id, + 'canonical_slug': selectedModel.id, + 'hugging_face_id': '', + 'name': selectedModel.name, + 'created': 1754089419, + 'description': + selectedModel.description ?? + 'This is a cloaked model provided to the community to gather feedback. This is an improved version of [Horizon Alpha](/openrout' + 'er/horizon-alpha)\n\nNote: It\'s free to use during this testing period, and prompts and completions are logged by the model creator for feedback and training.', + 'context_length': 256000, + 'architecture': { + 'modality': 'text+image->text', + 'input_modalities': ['image', 'text'], + 'output_modalities': ['text'], + 'tokenizer': 'Other', + 'instruct_type': null, + }, + 'pricing': { + 'prompt': '0', + 'completion': '0', + 'request': '0', + 'image': '0', + 'audio': '0', + 'web_search': '0', + 'internal_reasoning': '0', + }, + 'top_provider': { + 'context_length': 256000, + 'max_completion_tokens': 128000, + 'is_moderated': false, + }, + 'per_request_limits': null, + 'supported_parameters': [ + 'max_tokens', + 'tool_choice', + 'tools', + 'response_format', + 'structured_outputs', + ], + 'connection_type': 'external', + }, + 'urlIdx': 0, + 'actions': [], + 'filters': [], + 'tags': [], + }; + + debugPrint('DEBUG: Using basic model item for ${selectedModel.name}'); + + debugPrint('DEBUG: Final conversationMessages being sent to API:'); + debugPrint('DEBUG: Messages count: ${conversationMessages.length}'); + for (int i = 0; i < conversationMessages.length; i++) { + final msg = conversationMessages[i]; + debugPrint( + 'DEBUG: Message $i: role=${msg['role']}, content type=${msg['content'].runtimeType}', + ); + if (msg['content'] is List) { + final contentArray = msg['content'] as List; + debugPrint( + 'DEBUG: Message $i content array length: ${contentArray.length}', + ); + for (int j = 0; j < contentArray.length; j++) { + final item = contentArray[j]; + debugPrint( + 'DEBUG: Content item $j: type=${item['type']}, has_image_url=${item.containsKey('image_url')}', + ); + } + } + } + + // Stream response using chat completions endpoint directly + final response = await api.sendMessageWithStreaming( + messages: conversationMessages, + model: selectedModel.id, + conversationId: activeConversation?.id, + tools: tools.isNotEmpty ? tools : null, + enableWebSearch: webSearchEnabled, + modelItem: modelItem, + ); + + final stream = response.stream; + final assistantMessageId = response.messageId; + final sessionId = response.sessionId; + + debugPrint( + 'DEBUG: Response IDs - Message: $assistantMessageId, Session: $sessionId', + ); + + // Add assistant message placeholder with the generated ID and immediate typing indicator + final assistantMessage = ChatMessage( + id: assistantMessageId, + role: 'assistant', + content: '[TYPING_INDICATOR]', // Show typing indicator immediately + timestamp: DateTime.now(), + model: selectedModel.name, + isStreaming: true, + ); + ref.read(chatMessagesProvider.notifier).addMessage(assistantMessage); + + // For built-in web search, the status will be updated when function calls are detected + // in the streaming response. Manual status update is not needed here. + + // Set up stream subscription with proper management + // Apply chunking for smoother word-by-word streaming + final chunkedStream = StreamChunker.chunkStream( + stream, + enableChunking: true, + minChunkSize: 5, + maxChunkLength: 3, + delayBetweenChunks: const Duration(milliseconds: 15), + ); + + final streamSubscription = chunkedStream.listen( + (chunk) { + debugPrint('DEBUG: Received stream chunk: "$chunk"'); + ref.read(chatMessagesProvider.notifier).appendToLastMessage(chunk); + }, + + onDone: () async { + debugPrint('DEBUG: Stream completed in chat provider'); + // Don't mark streaming as complete yet - wait for server content replacement + // ref.read(chatMessagesProvider.notifier).finishStreaming(); + + // Send chat completed notification to OpenWebUI + final messages = ref.read(chatMessagesProvider); + if (messages.isNotEmpty && activeConversation != null) { + final lastMessage = messages.last; + if (lastMessage.role == 'assistant') { + try { + // Convert messages to the format expected by /api/chat/completed + final List> formattedMessages = []; + + for (final msg in messages) { + final messageMap = { + 'id': msg.id, + 'role': msg.role, + 'content': msg.content, + 'timestamp': msg.timestamp.millisecondsSinceEpoch ~/ 1000, + }; + + // Add model if available + if (msg.model != null) { + messageMap['model'] = msg.model; + } + + // Add sources and usage if available + if (msg.sources != null) { + messageMap['sources'] = msg.sources; + } + // Only include usage data if it's actually available from the response + if (msg.usage != null) { + messageMap['usage'] = msg.usage; + } + + formattedMessages.add(messageMap); + } + + // Send chat completed notification to OpenWebUI first + try { + debugPrint( + 'DEBUG: Sending chat completed notification to OpenWebUI', + ); + debugPrint( + 'DEBUG: Chat ID: ${activeConversation.id}, Message ID: $assistantMessageId, Messages: ${formattedMessages.length}', + ); + await api.sendChatCompleted( + chatId: activeConversation.id, + messageId: assistantMessageId, // Use message ID from response + messages: formattedMessages, + model: selectedModel.id, + modelItem: modelItem, // Include model metadata + sessionId: sessionId, // Include session ID + ); + debugPrint( + 'DEBUG: Chat completed notification sent successfully', + ); + + // Give server a moment to process title generation + await Future.delayed(const Duration(seconds: 2)); + } catch (e) { + debugPrint('DEBUG: Chat completed notification failed: $e'); + // Continue with title generation even if this fails + } + + // Only check for title generation on first assistant response (when conversation has <= 2 messages) + // Always check for server content updates + debugPrint('DEBUG: Checking for server content updates...'); + try { + final updatedConv = await api.getConversation( + activeConversation.id, + ); + + // Check for title updates only on first response + final shouldUpdateTitle = + messages.length <= 2 && + updatedConv.title != 'New Chat' && + updatedConv.title.isNotEmpty; + + // Always combine current local messages with updated server content + final currentMessages = ref.read(chatMessagesProvider); + final serverMessages = updatedConv.messages; + + // Create a map of server messages by ID for quick lookup + final serverMessageMap = {}; + for (final serverMsg in serverMessages) { + serverMessageMap[serverMsg.id] = serverMsg; + } + + // Update local messages with server content while preserving all messages + final updatedMessages = []; + for (final localMsg in currentMessages) { + final serverMsg = serverMessageMap[localMsg.id]; + + if (serverMsg != null && serverMsg.content.isNotEmpty) { + // Use server content if available and non-empty + // This replaces any temporary progress indicators with real content + debugPrint( + 'DEBUG: Replacing local content with server content for message ${localMsg.id}', + ); + debugPrint( + 'DEBUG: Local content: "${localMsg.content.substring(0, math.min(100, localMsg.content.length))}..."', + ); + debugPrint( + 'DEBUG: Server content: "${serverMsg.content.substring(0, math.min(100, serverMsg.content.length))}..."', + ); + + // Stream the server content through StreamChunker for word-by-word effect + debugPrint( + 'DEBUG: Streaming server content through chunker for word-by-word display', + ); + + // Clear only the last message content in-place to avoid list reset flicker + final currentList = [...currentMessages]; + final lastIndex = currentList.lastIndexWhere( + (m) => m.id == localMsg.id, + ); + if (lastIndex != -1) { + currentList[lastIndex] = currentList[lastIndex].copyWith( + content: '', + isStreaming: true, + ); + ref + .read(chatMessagesProvider.notifier) + .setMessages(currentList); + } + + // Create a stream from the server content and chunk it + final serverContentStream = Stream.fromIterable([ + serverMsg.content, + ]); + final chunkedStream = StreamChunker.chunkStream( + serverContentStream, + enableChunking: true, + minChunkSize: 5, + maxChunkLength: 3, + delayBetweenChunks: const Duration(milliseconds: 25), + ); + + // Process chunks + chunkedStream.listen( + (chunk) { + debugPrint('DEBUG: Server content chunk: "$chunk"'); + ref + .read(chatMessagesProvider.notifier) + .appendToLastMessage(chunk); + }, + onDone: () { + debugPrint('DEBUG: Server content streaming completed'); + // Mark streaming as complete + ref + .read(chatMessagesProvider.notifier) + .finishStreaming(); + }, + onError: (error) { + debugPrint( + 'DEBUG: Server content streaming error: $error', + ); + // Fall back to direct replacement + final currentMessages = ref.read(chatMessagesProvider); + if (currentMessages.isNotEmpty) { + final fallbackMessages = [...currentMessages]; + final lastIndex = fallbackMessages.length - 1; + fallbackMessages[lastIndex] = + fallbackMessages[lastIndex].copyWith( + content: serverMsg.content, + isStreaming: false, + ); + ref + .read(chatMessagesProvider.notifier) + .setMessages(fallbackMessages); + } + }, + ); + + // Don't add to updatedMessages here since we're streaming + continue; + } else { + // Handle case where streaming failed and we still have typing indicator + if (localMsg.content == '[TYPING_INDICATOR]') { + debugPrint( + 'DEBUG: Found orphaned typing indicator for message ${localMsg.id} - replacing with empty content', + ); + // Replace typing indicator with empty content so UI can show loading state + updatedMessages.add( + localMsg.copyWith(content: '', isStreaming: false), + ); + } else { + // Keep local message as-is + updatedMessages.add(localMsg); + } + } + } + + if (shouldUpdateTitle) { + debugPrint( + 'DEBUG: Server generated title: ${updatedConv.title}', + ); + + // Ensure the title is reasonable (not too long) + final cleanTitle = updatedConv.title.length > 100 + ? '${updatedConv.title.substring(0, 100)}...' + : updatedConv.title; + + // Update the conversation with title and combined messages + final updatedConversation = activeConversation.copyWith( + title: cleanTitle, + messages: updatedMessages, // Use combined messages! + updatedAt: DateTime.now(), + ); + + ref.read(activeConversationProvider.notifier).state = + updatedConversation; + + debugPrint('DEBUG: Conversation title updated successfully'); + } else { + // Update just the messages without changing title + final updatedConversation = activeConversation.copyWith( + messages: updatedMessages, // Use combined messages! + updatedAt: DateTime.now(), + ); + + ref.read(activeConversationProvider.notifier).state = + updatedConversation; + + debugPrint( + 'DEBUG: Conversation content updated with server response', + ); + } + + // Now mark streaming as complete since server content has replaced simulated content + ref.read(chatMessagesProvider.notifier).finishStreaming(); + debugPrint( + 'DEBUG: Streaming marked as complete after server content replacement', + ); + } catch (e) { + debugPrint('DEBUG: Failed to fetch server content: $e'); + // Mark streaming as complete even if server content replacement fails + ref.read(chatMessagesProvider.notifier).finishStreaming(); + debugPrint( + 'DEBUG: Streaming marked as complete after server content replacement failure', + ); + } + } catch (e) { + debugPrint('DEBUG: Chat completed error: $e'); + // Continue without failing the entire process + // Note: Conversation still syncs via _saveConversationToServer + + // IMPORTANT: Always mark streaming as complete even if server operations fail + ref.read(chatMessagesProvider.notifier).finishStreaming(); + debugPrint( + 'DEBUG: Streaming marked as complete after chat completed error', + ); + } + } + } + + // Save conversation to OpenWebUI server only after streaming is complete + debugPrint('DEBUG: About to save conversation to server...'); + // Add a small delay to ensure the last message content is fully updated + await Future.delayed(const Duration(milliseconds: 100)); + _saveConversationToServer(ref); + debugPrint('DEBUG: Conversation save initiated'); + }, + onError: (error) { + debugPrint('DEBUG: Stream error in chat provider: $error'); + // Mark streaming as complete on error + ref.read(chatMessagesProvider.notifier).finishStreaming(); + + // Special handling for Socket.IO streaming failures + // These indicate the server generated a response but we couldn't stream it + if (error.toString().contains( + 'Socket.IO streaming not fully implemented', + )) { + debugPrint( + 'DEBUG: Socket.IO streaming failed, but server may have generated response', + ); + debugPrint( + 'DEBUG: Keeping assistant message for server content replacement', + ); + // Don't remove the message - let the server content replacement handle it + // The onDone callback will fetch the actual response from the server + return; // Exit early to avoid removing the message + } + + // Handle streaming error - remove the assistant message placeholder for other errors + ref.read(chatMessagesProvider.notifier).removeLastMessage(); + + // Handle different types of errors + if (error.toString().contains('400')) { + // Bad request errors - likely malformed request format + debugPrint( + 'DEBUG: Bad request error (400) - malformed request format', + ); + final errorMessage = ChatMessage( + id: const Uuid().v4(), + role: 'assistant', + content: + '''⚠️ There was an issue with the message format. This might be because: + +• The image attachment couldn't be processed +• The request format is incompatible with the selected model +• The message contains unsupported content + +Please try sending the message again, or try without attachments.''', + timestamp: DateTime.now(), + isStreaming: false, + ); + ref.read(chatMessagesProvider.notifier).addMessage(errorMessage); + } else if (error.toString().contains('401') || + error.toString().contains('403')) { + // Authentication errors - clear auth state and redirect to login + ref.invalidate(authStateManagerProvider); + } else if (error.toString().contains('500')) { + // Server errors - add user-friendly error message + debugPrint('DEBUG: Server error (500) - OpenWebUI server issue'); + final errorMessage = ChatMessage( + id: const Uuid().v4(), + role: 'assistant', + content: + '⚠️ I\'m sorry, but there was a server error. This usually means:\n\n' + '• The OpenWebUI server is experiencing issues\n' + '• The selected model might be unavailable\n' + '• There could be a temporary connection problem\n\n' + 'Please try again in a moment, or check with your server administrator if the problem persists.', + timestamp: DateTime.now(), + isStreaming: false, + ); + ref.read(chatMessagesProvider.notifier).addMessage(errorMessage); + } else if (error.toString().contains('timeout')) { + // Timeout errors + debugPrint('DEBUG: Request timeout error'); + final errorMessage = ChatMessage( + id: const Uuid().v4(), + role: 'assistant', + content: + '⏱️ The request timed out. This might be because:\n\n' + '• The server is taking too long to respond\n' + '• Your internet connection is slow\n' + '• The model is processing a complex request\n\n' + 'Please try again with a shorter message or check your connection.', + timestamp: DateTime.now(), + isStreaming: false, + ); + ref.read(chatMessagesProvider.notifier).addMessage(errorMessage); + } + + // Don't throw the error to prevent unhandled exceptions + // The error message has been added to the chat + debugPrint('DEBUG: Chat error handled gracefully: ${error.toString()}'); + }, + ); + + // Register the stream subscription for proper cleanup + ref + .read(chatMessagesProvider.notifier) + .setMessageStream(streamSubscription); + } catch (e) { + // Handle error - remove the assistant message placeholder + ref.read(chatMessagesProvider.notifier).removeLastMessage(); + + // Add user-friendly error message instead of rethrowing + if (e.toString().contains('400')) { + debugPrint('DEBUG: Bad request error (400) during initial request setup'); + final errorMessage = ChatMessage( + id: const Uuid().v4(), + role: 'assistant', + content: + '''⚠️ There was an issue with the message format. This might be because: + +• The image attachment couldn't be processed +• The request format is incompatible with the selected model +• The message contains unsupported content + +Please try sending the message again, or try without attachments.''', + timestamp: DateTime.now(), + isStreaming: false, + ); + ref.read(chatMessagesProvider.notifier).addMessage(errorMessage); + } else if (e.toString().contains('500')) { + debugPrint('DEBUG: Server error (500) during initial request setup'); + final errorMessage = ChatMessage( + id: const Uuid().v4(), + role: 'assistant', + content: + '⚠️ Unable to connect to the AI model. The server returned an error (500).\n\n' + 'This is typically a server-side issue. Please try again or contact your administrator.', + timestamp: DateTime.now(), + isStreaming: false, + ); + ref.read(chatMessagesProvider.notifier).addMessage(errorMessage); + } else if (e.toString().contains('404')) { + debugPrint('DEBUG: Model or endpoint not found (404)'); + final errorMessage = ChatMessage( + id: const Uuid().v4(), + role: 'assistant', + content: + '🤖 The selected AI model doesn\'t seem to be available.\n\n' + 'Please try selecting a different model or check with your administrator.', + timestamp: DateTime.now(), + isStreaming: false, + ); + ref.read(chatMessagesProvider.notifier).addMessage(errorMessage); + } else { + // For other errors, provide a generic message and rethrow + debugPrint('DEBUG: Unexpected error during chat request: $e'); + final errorMessage = ChatMessage( + id: const Uuid().v4(), + role: 'assistant', + content: + '❌ An unexpected error occurred while processing your request.\n\n' + 'Please try again or check your connection.', + timestamp: DateTime.now(), + isStreaming: false, + ); + ref.read(chatMessagesProvider.notifier).addMessage(errorMessage); + } + } +} + +// These polling functions are no longer needed since we use direct title generation +// via /api/v1/tasks/title/completions endpoint + +// Save current conversation to OpenWebUI server +Future _saveConversationToServer(dynamic ref) async { + try { + debugPrint('DEBUG: _saveConversationToServer started'); + final api = ref.read(apiServiceProvider); + final messages = ref.read(chatMessagesProvider); + final activeConversation = ref.read(activeConversationProvider); + final selectedModel = ref.read(selectedModelProvider); + + debugPrint( + 'DEBUG: Conversation save state - API: ${api != null}, Messages: ${messages.length}, Active: ${activeConversation?.id}, Model: ${selectedModel?.id}', + ); + + if (api == null || messages.isEmpty || activeConversation == null) { + debugPrint('DEBUG: Skipping conversation save - missing required data'); + return; + } + + // Check if the last message (assistant) has content + final lastMessage = messages.last; + if (lastMessage.role == 'assistant' && lastMessage.content.trim().isEmpty) { + debugPrint( + 'DEBUG: Skipping conversation save - assistant message has no content', + ); + return; + } + + // Update the existing conversation with all messages (including assistant response) + debugPrint( + 'DEBUG: Updating conversation ${activeConversation.id} with complete message history', + ); + + try { + await api.updateConversationWithMessages( + activeConversation.id, + messages, + model: selectedModel?.id, + ); + + // Update local state + final updatedConversation = activeConversation.copyWith( + messages: messages, + updatedAt: DateTime.now(), + ); + + ref.read(activeConversationProvider.notifier).state = updatedConversation; + debugPrint( + 'DEBUG: Successfully updated conversation on server: ${activeConversation.id}', + ); + } catch (e) { + debugPrint('DEBUG: Failed to update conversation on server: $e'); + // Fallback to local storage if server update fails + await _saveConversationLocally(ref); + return; + } + + // Refresh conversations list to show the updated conversation + debugPrint( + 'DEBUG: Invalidating conversations provider after successful save', + ); + ref.invalidate(conversationsProvider); + debugPrint('DEBUG: Conversations provider invalidated'); + } catch (e) { + debugPrint('Error saving conversation to server: $e'); + // Fallback to local storage + await _saveConversationLocally(ref); + } +} + +// Fallback: Save current conversation to local storage +Future _saveConversationLocally(dynamic ref) async { + try { + final storage = ref.read(optimizedStorageServiceProvider); + final messages = ref.read(chatMessagesProvider); + final activeConversation = ref.read(activeConversationProvider); + + if (messages.isEmpty) return; + + // Create or update conversation locally + final conversation = + activeConversation ?? + Conversation( + id: const Uuid().v4(), + title: _generateConversationTitle(messages), + createdAt: DateTime.now(), + updatedAt: DateTime.now(), + messages: messages, + ); + + final updatedConversation = conversation.copyWith( + messages: messages, + updatedAt: DateTime.now(), + ); + + if (activeConversation == null) { + await storage.addLocalConversation(updatedConversation); + ref.read(activeConversationProvider.notifier).state = updatedConversation; + } else { + await storage.updateLocalConversation(updatedConversation); + ref.read(activeConversationProvider.notifier).state = updatedConversation; + } + + ref.invalidate(conversationsProvider); + } catch (e) { + debugPrint('Error saving conversation locally: $e'); + } +} + +String _generateConversationTitle(List messages) { + final firstUserMessage = messages.firstWhere( + (msg) => msg.role == 'user', + orElse: () => ChatMessage( + id: '', + role: 'user', + content: 'New Chat', + timestamp: DateTime.now(), + ), + ); + + // Use first 50 characters of the first user message as title + final title = firstUserMessage.content.length > 50 + ? '${firstUserMessage.content.substring(0, 50)}...' + : firstUserMessage.content; + + return title.isEmpty ? 'New Chat' : title; +} + +// Pin/Unpin conversation +Future pinConversation( + WidgetRef ref, + String conversationId, + bool pinned, +) async { + try { + final api = ref.read(apiServiceProvider); + if (api == null) throw Exception('No API service available'); + + await api.pinConversation(conversationId, pinned); + + // Refresh conversations list to reflect the change + ref.invalidate(conversationsProvider); + + // Update active conversation if it's the one being pinned + final activeConversation = ref.read(activeConversationProvider); + if (activeConversation?.id == conversationId) { + ref.read(activeConversationProvider.notifier).state = activeConversation! + .copyWith(pinned: pinned); + } + } catch (e) { + debugPrint('Error ${pinned ? 'pinning' : 'unpinning'} conversation: $e'); + rethrow; + } +} + +// Archive/Unarchive conversation +Future archiveConversation( + WidgetRef ref, + String conversationId, + bool archived, +) async { + final api = ref.read(apiServiceProvider); + final activeConversation = ref.read(activeConversationProvider); + + // Update local state first + if (activeConversation?.id == conversationId && archived) { + ref.read(activeConversationProvider.notifier).state = null; + ref.read(chatMessagesProvider.notifier).clearMessages(); + } + + try { + if (api == null) throw Exception('No API service available'); + + await api.archiveConversation(conversationId, archived); + + // Refresh conversations list to reflect the change + ref.invalidate(conversationsProvider); + } catch (e) { + debugPrint( + 'Error ${archived ? 'archiving' : 'unarchiving'} conversation: $e', + ); + + // If server operation failed and we archived locally, restore the conversation + if (activeConversation?.id == conversationId && archived) { + ref.read(activeConversationProvider.notifier).state = activeConversation; + // Messages will be restored through the listener + } + + rethrow; + } +} + +// Share conversation +Future shareConversation(WidgetRef ref, String conversationId) async { + try { + final api = ref.read(apiServiceProvider); + if (api == null) throw Exception('No API service available'); + + final shareId = await api.shareConversation(conversationId); + + // Refresh conversations list to reflect the change + ref.invalidate(conversationsProvider); + + return shareId; + } catch (e) { + debugPrint('Error sharing conversation: $e'); + rethrow; + } +} + +// Clone conversation +Future cloneConversation(WidgetRef ref, String conversationId) async { + try { + final api = ref.read(apiServiceProvider); + if (api == null) throw Exception('No API service available'); + + final clonedConversation = await api.cloneConversation(conversationId); + + // Set the cloned conversation as active + ref.read(activeConversationProvider.notifier).state = clonedConversation; + // Load messages through the listener mechanism + // The ChatMessagesNotifier will automatically load messages when activeConversation changes + + // Refresh conversations list to show the new conversation + ref.invalidate(conversationsProvider); + } catch (e) { + debugPrint('Error cloning conversation: $e'); + rethrow; + } +} + +// Regenerate last message +final regenerateLastMessageProvider = Provider((ref) { + return () async { + final messages = ref.read(chatMessagesProvider); + if (messages.length < 2) return; + + // Find last user message with proper bounds checking + ChatMessage? lastUserMessage; + for (int i = messages.length - 2; i >= 0 && i < messages.length; i--) { + if (i >= 0 && messages[i].role == 'user') { + lastUserMessage = messages[i]; + break; + } + } + + if (lastUserMessage == null) return; + + // Remove last assistant message + ref.read(chatMessagesProvider.notifier).removeLastMessage(); + + // Resend the message + await _sendMessageInternal( + ref, + lastUserMessage.content, + lastUserMessage.attachmentIds, + ); + }; +}); + +// Stop generation provider +final stopGenerationProvider = Provider((ref) { + return () { + // This would need to be implemented with proper cancellation support + // For now, just mark streaming as complete + ref.read(chatMessagesProvider.notifier).finishStreaming(); + }; +}); diff --git a/lib/features/chat/services/conversation_search_service.dart b/lib/features/chat/services/conversation_search_service.dart new file mode 100644 index 0000000..3535eca --- /dev/null +++ b/lib/features/chat/services/conversation_search_service.dart @@ -0,0 +1,397 @@ +import 'dart:async'; +import 'package:flutter/foundation.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import '../../../core/models/conversation.dart'; +import '../../../core/models/chat_message.dart'; + +/// Advanced conversation search service with multiple search strategies +class ConversationSearchService { + static const int maxResults = 50; + static const int contextLines = 2; // Lines before/after match for context + + /// Search through conversations with various criteria + Future searchConversations({ + required List conversations, + required String query, + ConversationSearchOptions options = const ConversationSearchOptions(), + }) async { + if (query.trim().isEmpty) { + return ConversationSearchResults.empty(); + } + + final normalizedQuery = query.toLowerCase().trim(); + final results = []; + + // Search through each conversation + for (final conversation in conversations) { + final matches = await _searchInConversation( + conversation: conversation, + query: normalizedQuery, + options: options, + ); + results.addAll(matches); + } + + // Sort results by relevance and date + results.sort((a, b) { + // First by relevance score (higher is better) + final relevanceCompare = b.relevanceScore.compareTo(a.relevanceScore); + if (relevanceCompare != 0) return relevanceCompare; + + // Then by date (newer first) + return b.timestamp.compareTo(a.timestamp); + }); + + // Limit results + final limitedResults = results.take(maxResults).toList(); + + return ConversationSearchResults( + query: query, + results: limitedResults, + totalMatches: results.length, + searchDuration: DateTime.now().difference(DateTime.now()), + ); + } + + /// Search within a single conversation + Future> _searchInConversation({ + required Conversation conversation, + required String query, + required ConversationSearchOptions options, + }) async { + final matches = []; + + // Search in conversation title + if (options.searchTitles && _containsQuery(conversation.title, query)) { + matches.add( + ConversationSearchMatch( + conversationId: conversation.id, + conversationTitle: conversation.title, + matchType: SearchMatchType.title, + snippet: conversation.title, + highlightedSnippet: _highlightQuery(conversation.title, query), + relevanceScore: _calculateTitleRelevance(conversation.title, query), + timestamp: conversation.updatedAt, + ), + ); + } + + // Search in messages + if (options.searchMessages) { + final messageMatches = await _searchInMessages( + conversation: conversation, + query: query, + options: options, + ); + matches.addAll(messageMatches); + } + + // Search in tags + if (options.searchTags) { + for (final tag in conversation.tags) { + if (_containsQuery(tag, query)) { + matches.add( + ConversationSearchMatch( + conversationId: conversation.id, + conversationTitle: conversation.title, + matchType: SearchMatchType.tag, + snippet: tag, + highlightedSnippet: _highlightQuery(tag, query), + relevanceScore: _calculateTagRelevance(tag, query), + timestamp: conversation.updatedAt, + additionalInfo: {'tag': tag}, + ), + ); + } + } + } + + return matches; + } + + /// Search within messages of a conversation + Future> _searchInMessages({ + required Conversation conversation, + required String query, + required ConversationSearchOptions options, + }) async { + final matches = []; + + for (int i = 0; i < conversation.messages.length; i++) { + final message = conversation.messages[i]; + + // Skip system messages if not enabled + if (!options.includeSystemMessages && message.role == 'system') { + continue; + } + + // Filter by role if specified + if (options.roleFilter != null && message.role != options.roleFilter) { + continue; + } + + // Check if message contains query + if (_containsQuery(message.content, query)) { + final snippet = _extractSnippet(message.content, query); + final contextMessages = _getContextMessages(conversation.messages, i); + + matches.add( + ConversationSearchMatch( + conversationId: conversation.id, + conversationTitle: conversation.title, + messageId: message.id, + matchType: SearchMatchType.message, + snippet: snippet, + highlightedSnippet: _highlightQuery(snippet, query), + relevanceScore: _calculateMessageRelevance(message.content, query), + timestamp: message.timestamp, + messageRole: message.role, + messageIndex: i, + contextMessages: contextMessages, + ), + ); + } + } + + return matches; + } + + /// Extract relevant snippet around the query match + String _extractSnippet(String content, String query) { + const maxSnippetLength = 200; + final queryIndex = content.toLowerCase().indexOf(query); + + if (queryIndex == -1) { + return content.substring(0, maxSnippetLength.clamp(0, content.length)); + } + + // Calculate snippet bounds + final start = (queryIndex - 50).clamp(0, content.length); + final end = (queryIndex + query.length + 50).clamp(0, content.length); + + String snippet = content.substring(start, end); + + // Add ellipsis if needed + if (start > 0) snippet = '...$snippet'; + if (end < content.length) snippet = '$snippet...'; + + return snippet; + } + + /// Get context messages around a matched message + List _getContextMessages(List messages, int index) { + final start = (index - contextLines).clamp(0, messages.length); + final end = (index + contextLines + 1).clamp(0, messages.length); + return messages.sublist(start, end); + } + + /// Highlight query matches in text + String _highlightQuery(String text, String query) { + if (query.isEmpty) return text; + + final regex = RegExp(RegExp.escape(query), caseSensitive: false); + return text.replaceAllMapped(regex, (match) { + return '${match.group(0)}'; + }); + } + + /// Check if text contains the query + bool _containsQuery(String text, String query) { + return text.toLowerCase().contains(query); + } + + /// Calculate relevance score for title matches + double _calculateTitleRelevance(String title, String query) { + final titleLower = title.toLowerCase(); + final queryLower = query.toLowerCase(); + + // Exact match gets highest score + if (titleLower == queryLower) return 100.0; + + // Title starts with query gets high score + if (titleLower.startsWith(queryLower)) return 90.0; + + // Title contains query as whole word gets medium score + if (RegExp( + r'\b' + RegExp.escape(queryLower) + r'\b', + ).hasMatch(titleLower)) { + return 70.0; + } + + // Partial match gets lower score + return 50.0; + } + + /// Calculate relevance score for message matches + double _calculateMessageRelevance(String content, String query) { + final contentLower = content.toLowerCase(); + final queryLower = query.toLowerCase(); + + // Count occurrences + final occurrences = queryLower.allMatches(contentLower).length; + + // Base score for containing the query + double score = 30.0; + + // Bonus for multiple occurrences + score += (occurrences - 1) * 10.0; + + // Bonus for whole word matches + if (RegExp( + r'\b' + RegExp.escape(queryLower) + r'\b', + ).hasMatch(contentLower)) { + score += 20.0; + } + + // Penalty for very long messages (relevance dilution) + if (content.length > 1000) { + score *= 0.8; + } + + return score.clamp(0.0, 100.0); + } + + /// Calculate relevance score for tag matches + double _calculateTagRelevance(String tag, String query) { + final tagLower = tag.toLowerCase(); + final queryLower = query.toLowerCase(); + + // Exact match gets highest score + if (tagLower == queryLower) return 80.0; + + // Tag starts with query gets high score + if (tagLower.startsWith(queryLower)) return 70.0; + + // Partial match gets medium score + return 50.0; + } +} + +/// Search options for conversation search +@immutable +class ConversationSearchOptions { + final bool searchTitles; + final bool searchMessages; + final bool searchTags; + final bool includeSystemMessages; + final String? roleFilter; // 'user', 'assistant', 'system' + final DateTime? dateFrom; + final DateTime? dateTo; + final bool caseSensitive; + + const ConversationSearchOptions({ + this.searchTitles = true, + this.searchMessages = true, + this.searchTags = true, + this.includeSystemMessages = false, + this.roleFilter, + this.dateFrom, + this.dateTo, + this.caseSensitive = false, + }); + + ConversationSearchOptions copyWith({ + bool? searchTitles, + bool? searchMessages, + bool? searchTags, + bool? includeSystemMessages, + String? roleFilter, + DateTime? dateFrom, + DateTime? dateTo, + bool? caseSensitive, + }) { + return ConversationSearchOptions( + searchTitles: searchTitles ?? this.searchTitles, + searchMessages: searchMessages ?? this.searchMessages, + searchTags: searchTags ?? this.searchTags, + includeSystemMessages: + includeSystemMessages ?? this.includeSystemMessages, + roleFilter: roleFilter ?? this.roleFilter, + dateFrom: dateFrom ?? this.dateFrom, + dateTo: dateTo ?? this.dateTo, + caseSensitive: caseSensitive ?? this.caseSensitive, + ); + } +} + +/// Search results container +@immutable +class ConversationSearchResults { + final String query; + final List results; + final int totalMatches; + final Duration searchDuration; + + const ConversationSearchResults({ + required this.query, + required this.results, + required this.totalMatches, + required this.searchDuration, + }); + + factory ConversationSearchResults.empty() { + return ConversationSearchResults( + query: '', + results: const [], + totalMatches: 0, + searchDuration: Duration.zero, + ); + } + + bool get isEmpty => results.isEmpty; + bool get isNotEmpty => results.isNotEmpty; + int get length => results.length; +} + +/// Individual search match +@immutable +class ConversationSearchMatch { + final String conversationId; + final String conversationTitle; + final String? messageId; + final SearchMatchType matchType; + final String snippet; + final String highlightedSnippet; + final double relevanceScore; + final DateTime timestamp; + final String? messageRole; + final int? messageIndex; + final List? contextMessages; + final Map? additionalInfo; + + const ConversationSearchMatch({ + required this.conversationId, + required this.conversationTitle, + this.messageId, + required this.matchType, + required this.snippet, + required this.highlightedSnippet, + required this.relevanceScore, + required this.timestamp, + this.messageRole, + this.messageIndex, + this.contextMessages, + this.additionalInfo, + }); +} + +/// Types of search matches +enum SearchMatchType { title, message, tag } + +/// Provider for conversation search service +final conversationSearchServiceProvider = Provider(( + ref, +) { + return ConversationSearchService(); +}); + +/// Provider for search results +final conversationSearchResultsProvider = + StateProvider((ref) { + return null; + }); + +/// Provider for search options +final searchOptionsProvider = StateProvider((ref) { + return const ConversationSearchOptions(); +}); diff --git a/lib/features/chat/services/file_attachment_service.dart b/lib/features/chat/services/file_attachment_service.dart new file mode 100644 index 0000000..cb99d40 --- /dev/null +++ b/lib/features/chat/services/file_attachment_service.dart @@ -0,0 +1,433 @@ +import 'dart:io'; +import 'dart:convert'; +import 'dart:ui' as ui; +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:file_picker/file_picker.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:path/path.dart' as path; +import '../../../core/services/api_service.dart'; +import '../../../core/providers/app_providers.dart'; + +class FileAttachmentService { + final ApiService _apiService; + final ImagePicker _imagePicker = ImagePicker(); + + FileAttachmentService(this._apiService); + + // Pick files from device + Future> pickFiles({ + bool allowMultiple = true, + List? allowedExtensions, + }) async { + try { + final result = await FilePicker.platform.pickFiles( + allowMultiple: allowMultiple, + type: allowedExtensions != null ? FileType.custom : FileType.any, + allowedExtensions: allowedExtensions, + ); + + if (result == null || result.files.isEmpty) { + return []; + } + + return result.files + .where((file) => file.path != null) + .map((file) => File(file.path!)) + .toList(); + } catch (e) { + throw Exception('Failed to pick files: $e'); + } + } + + // Pick image from gallery + Future pickImage() async { + try { + final XFile? image = await _imagePicker.pickImage( + source: ImageSource.gallery, + imageQuality: 85, + ); + + if (image == null) return null; + return File(image.path); + } catch (e) { + throw Exception('Failed to pick image: $e'); + } + } + + // Take photo from camera + Future takePhoto() async { + try { + final XFile? photo = await _imagePicker.pickImage( + source: ImageSource.camera, + imageQuality: 85, + ); + + if (photo == null) return null; + return File(photo.path); + } catch (e) { + throw Exception('Failed to take photo: $e'); + } + } + + // Compress image similar to OpenWebUI's implementation + Future compressImage( + String imageDataUrl, + int? maxWidth, + int? maxHeight, + ) async { + try { + // Decode base64 data + final data = imageDataUrl.split(',')[1]; + final bytes = base64Decode(data); + + // Decode image + final codec = await ui.instantiateImageCodec(bytes); + final frame = await codec.getNextFrame(); + final image = frame.image; + + int width = image.width; + int height = image.height; + + // Calculate new dimensions maintaining aspect ratio + if (maxWidth != null && maxHeight != null) { + if (width <= maxWidth && height <= maxHeight) { + return imageDataUrl; // No compression needed + } + + if (width / height > maxWidth / maxHeight) { + height = ((maxWidth * height) / width).round(); + width = maxWidth; + } else { + width = ((maxHeight * width) / height).round(); + height = maxHeight; + } + } else if (maxWidth != null) { + if (width <= maxWidth) { + return imageDataUrl; // No compression needed + } + height = ((maxWidth * height) / width).round(); + width = maxWidth; + } else if (maxHeight != null) { + if (height <= maxHeight) { + return imageDataUrl; // No compression needed + } + width = ((maxHeight * width) / height).round(); + height = maxHeight; + } + + // Create compressed image + final recorder = ui.PictureRecorder(); + final canvas = Canvas(recorder); + + canvas.drawImageRect( + image, + Rect.fromLTWH(0, 0, image.width.toDouble(), image.height.toDouble()), + Rect.fromLTWH(0, 0, width.toDouble(), height.toDouble()), + Paint(), + ); + + final picture = recorder.endRecording(); + final compressedImage = await picture.toImage(width, height); + final byteData = await compressedImage.toByteData( + format: ui.ImageByteFormat.png, + ); + final compressedBytes = byteData!.buffer.asUint8List(); + + // Convert back to data URL + final compressedBase64 = base64Encode(compressedBytes); + return 'data:image/png;base64,$compressedBase64'; + } catch (e) { + debugPrint('DEBUG: Image compression failed: $e'); + return imageDataUrl; // Return original if compression fails + } + } + + // Convert image file to base64 data URL with compression + Future convertImageToDataUrl( + File imageFile, { + bool enableCompression = false, + int? maxWidth, + int? maxHeight, + }) async { + try { + debugPrint('DEBUG: Converting image to data URL: ${imageFile.path}'); + + // Read the file as bytes + final bytes = await imageFile.readAsBytes(); + + // Determine MIME type based on file extension + final ext = path.extension(imageFile.path).toLowerCase(); + String mimeType = 'image/png'; // default + + if (ext == '.jpg' || ext == '.jpeg') { + mimeType = 'image/jpeg'; + } else if (ext == '.gif') { + mimeType = 'image/gif'; + } else if (ext == '.webp') { + mimeType = 'image/webp'; + } + + // Convert to base64 + final base64String = base64Encode(bytes); + String dataUrl = 'data:$mimeType;base64,$base64String'; + + // Apply compression if enabled + if (enableCompression && (maxWidth != null || maxHeight != null)) { + dataUrl = await compressImage(dataUrl, maxWidth, maxHeight); + } + + debugPrint( + 'DEBUG: Image converted to data URL with MIME type: $mimeType', + ); + return dataUrl; + } catch (e) { + debugPrint('DEBUG: Failed to convert image to data URL: $e'); + return null; + } + } + + // Upload file with progress tracking + Stream uploadFile(File file) async* { + debugPrint('DEBUG: Starting file upload for: ${file.path}'); + try { + final fileName = path.basename(file.path); + final fileSize = await file.length(); + + debugPrint( + 'DEBUG: File details - Name: $fileName, Size: $fileSize bytes', + ); + + yield FileUploadState( + file: file, + fileName: fileName, + fileSize: fileSize, + progress: 0.0, + status: FileUploadStatus.uploading, + ); + + // Check if this is an image file + final ext = path.extension(fileName).toLowerCase(); + final isImage = [ + 'jpg', + 'jpeg', + 'png', + 'gif', + 'webp', + ].contains(ext.substring(1)); + + if (isImage) { + debugPrint( + 'DEBUG: Image file detected, converting to data URL instead of uploading', + ); + + // For images, convert to data URL instead of uploading + final dataUrl = await convertImageToDataUrl(file); + if (dataUrl != null) { + yield FileUploadState( + file: file, + fileName: fileName, + fileSize: fileSize, + progress: 1.0, + status: FileUploadStatus.completed, + fileId: dataUrl, // Use data URL as fileId for images + isImage: true, + ); + } else { + throw Exception('Failed to convert image to data URL'); + } + } else { + debugPrint('DEBUG: Non-image file, uploading to server...'); + // Upload file using the API service + final fileId = await _apiService.uploadFile(file.path, fileName); + debugPrint('DEBUG: File uploaded successfully with ID: $fileId'); + + yield FileUploadState( + file: file, + fileName: fileName, + fileSize: fileSize, + progress: 1.0, + status: FileUploadStatus.completed, + fileId: fileId, + ); + } + } catch (e) { + debugPrint('DEBUG: File upload failed: $e'); + final fileName = path.basename(file.path); + final fileSize = await file.length(); + + yield FileUploadState( + file: file, + fileName: fileName, + fileSize: fileSize, + progress: 0.0, + status: FileUploadStatus.failed, + error: e.toString(), + ); + } + } + + // Upload multiple files + Stream> uploadMultipleFiles(List files) async* { + final states = {}; + + for (final file in files) { + final uploadStream = uploadFile(file); + await for (final state in uploadStream) { + states[file.path] = state; + yield states.values.toList(); + } + } + } + + // Format file size for display + String formatFileSize(int bytes) { + if (bytes < 1024) return '$bytes B'; + if (bytes < 1024 * 1024) return '${(bytes / 1024).toStringAsFixed(1)} KB'; + if (bytes < 1024 * 1024 * 1024) { + return '${(bytes / (1024 * 1024)).toStringAsFixed(1)} MB'; + } + return '${(bytes / (1024 * 1024 * 1024)).toStringAsFixed(1)} GB'; + } + + // Get file icon based on extension + String getFileIcon(String fileName) { + final ext = path.extension(fileName).toLowerCase(); + + // Documents + if (['.pdf', '.doc', '.docx'].contains(ext)) return '📄'; + if (['.xls', '.xlsx'].contains(ext)) return '📊'; + if (['.ppt', '.pptx'].contains(ext)) return '📊'; + + // Images + if (['.jpg', '.jpeg', '.png', '.gif', '.webp'].contains(ext)) return '🖼️'; + + // Code + if (['.js', '.ts', '.py', '.dart', '.java', '.cpp'].contains(ext)) { + return '💻'; + } + if (['.html', '.css', '.json', '.xml'].contains(ext)) return '🌐'; + + // Archives + if (['.zip', '.rar', '.7z', '.tar', '.gz'].contains(ext)) return '📦'; + + // Media + if (['.mp3', '.wav', '.flac', '.m4a'].contains(ext)) return '🎵'; + if (['.mp4', '.avi', '.mov', '.mkv'].contains(ext)) return '🎬'; + + return '📎'; + } +} + +// File upload state +class FileUploadState { + final File file; + final String fileName; + final int fileSize; + final double progress; + final FileUploadStatus status; + final String? fileId; + final String? error; + final bool? isImage; // Added for image files + + FileUploadState({ + required this.file, + required this.fileName, + required this.fileSize, + required this.progress, + required this.status, + this.fileId, + this.error, + this.isImage, // Added for image files + }); + + String get formattedSize { + if (fileSize < 1024) return '$fileSize B'; + if (fileSize < 1024 * 1024) { + return '${(fileSize / 1024).toStringAsFixed(1)} KB'; + } + if (fileSize < 1024 * 1024 * 1024) { + return '${(fileSize / (1024 * 1024)).toStringAsFixed(1)} MB'; + } + return '${(fileSize / (1024 * 1024 * 1024)).toStringAsFixed(1)} GB'; + } + + String get fileIcon { + final ext = path.extension(fileName).toLowerCase(); + + // Documents + if (['.pdf', '.doc', '.docx'].contains(ext)) return '📄'; + if (['.xls', '.xlsx'].contains(ext)) return '📊'; + if (['.ppt', '.pptx'].contains(ext)) return '📊'; + + // Images + if (['.jpg', '.jpeg', '.png', '.gif', '.webp'].contains(ext)) return '🖼️'; + + // Code + if (['.js', '.ts', '.py', '.dart', '.java', '.cpp'].contains(ext)) { + return '💻'; + } + if (['.html', '.css', '.json', '.xml'].contains(ext)) return '🌐'; + + // Archives + if (['.zip', '.rar', '.7z', '.tar', '.gz'].contains(ext)) return '📦'; + + // Media + if (['.mp3', '.wav', '.flac', '.m4a'].contains(ext)) return '🎵'; + if (['.mp4', '.avi', '.mov', '.mkv'].contains(ext)) return '🎬'; + + return '📎'; + } +} + +enum FileUploadStatus { pending, uploading, completed, failed } + +// Providers +final fileAttachmentServiceProvider = Provider((ref) { + final apiService = ref.watch(apiServiceProvider); + if (apiService == null) return null; + return FileAttachmentService(apiService); +}); + +// State notifier for managing attached files +class AttachedFilesNotifier extends StateNotifier> { + AttachedFilesNotifier() : super([]); + + void addFiles(List files) { + final newStates = files + .map( + (file) => FileUploadState( + file: file, + fileName: path.basename(file.path), + fileSize: file.lengthSync(), + progress: 0.0, + status: FileUploadStatus.pending, + ), + ) + .toList(); + + state = [...state, ...newStates]; + } + + void updateFileState(String filePath, FileUploadState newState) { + state = [ + for (final fileState in state) + if (fileState.file.path == filePath) newState else fileState, + ]; + } + + void removeFile(String filePath) { + state = state + .where((fileState) => fileState.file.path != filePath) + .toList(); + } + + void clearAll() { + state = []; + } +} + +final attachedFilesProvider = + StateNotifierProvider>((ref) { + return AttachedFilesNotifier(); + }); diff --git a/lib/features/chat/services/message_batch_service.dart b/lib/features/chat/services/message_batch_service.dart new file mode 100644 index 0000000..5518fdc --- /dev/null +++ b/lib/features/chat/services/message_batch_service.dart @@ -0,0 +1,538 @@ +import 'dart:async'; +import 'dart:convert'; +import 'package:flutter/foundation.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import '../../../core/models/chat_message.dart'; +import '../../../core/models/conversation.dart'; + +/// Service for managing batch operations on messages +class MessageBatchService { + /// Export messages to various formats + Future exportMessages({ + required List messages, + required ExportFormat format, + ExportOptions? options, + }) async { + try { + final exportOptions = options ?? const ExportOptions(); + String content; + + switch (format) { + case ExportFormat.text: + content = _exportToText(messages, exportOptions); + break; + case ExportFormat.markdown: + content = _exportToMarkdown(messages, exportOptions); + break; + case ExportFormat.json: + content = _exportToJson(messages, exportOptions); + break; + case ExportFormat.csv: + content = _exportToCsv(messages, exportOptions); + break; + } + + return BatchOperationResult.success( + operation: BatchOperation.export, + data: {'content': content, 'format': format.name}, + affectedCount: messages.length, + ); + } catch (e) { + return BatchOperationResult.error( + operation: BatchOperation.export, + error: e.toString(), + ); + } + } + + /// Delete multiple messages + Future deleteMessages({ + required List messageIds, + required Conversation conversation, + }) async { + try { + final updatedMessages = conversation.messages + .where((message) => !messageIds.contains(message.id)) + .toList(); + + final updatedConversation = conversation.copyWith( + messages: updatedMessages, + updatedAt: DateTime.now(), + ); + + return BatchOperationResult.success( + operation: BatchOperation.delete, + data: {'conversation': updatedConversation}, + affectedCount: messageIds.length, + ); + } catch (e) { + return BatchOperationResult.error( + operation: BatchOperation.delete, + error: e.toString(), + ); + } + } + + /// Copy messages to clipboard or another conversation + Future copyMessages({ + required List messages, + String? targetConversationId, + CopyFormat? format, + }) async { + try { + final copyFormat = format ?? CopyFormat.markdown; + String content; + + switch (copyFormat) { + case CopyFormat.plain: + content = messages.map((m) => m.content).join('\n\n'); + break; + case CopyFormat.markdown: + content = _exportToMarkdown(messages, const ExportOptions()); + break; + case CopyFormat.json: + content = _exportToJson(messages, const ExportOptions()); + break; + } + + return BatchOperationResult.success( + operation: BatchOperation.copy, + data: { + 'content': content, + 'format': copyFormat.name, + 'targetConversation': targetConversationId, + }, + affectedCount: messages.length, + ); + } catch (e) { + return BatchOperationResult.error( + operation: BatchOperation.copy, + error: e.toString(), + ); + } + } + + /// Move messages to another conversation + Future moveMessages({ + required List messageIds, + required Conversation sourceConversation, + required Conversation targetConversation, + }) async { + try { + final messagesToMove = sourceConversation.messages + .where((message) => messageIds.contains(message.id)) + .toList(); + + final updatedSourceMessages = sourceConversation.messages + .where((message) => !messageIds.contains(message.id)) + .toList(); + + final updatedTargetMessages = [ + ...targetConversation.messages, + ...messagesToMove, + ]; + + final updatedSourceConversation = sourceConversation.copyWith( + messages: updatedSourceMessages, + updatedAt: DateTime.now(), + ); + + final updatedTargetConversation = targetConversation.copyWith( + messages: updatedTargetMessages, + updatedAt: DateTime.now(), + ); + + return BatchOperationResult.success( + operation: BatchOperation.move, + data: { + 'sourceConversation': updatedSourceConversation, + 'targetConversation': updatedTargetConversation, + }, + affectedCount: messageIds.length, + ); + } catch (e) { + return BatchOperationResult.error( + operation: BatchOperation.move, + error: e.toString(), + ); + } + } + + /// Archive multiple messages + Future archiveMessages({ + required List messageIds, + required Conversation conversation, + }) async { + try { + final updatedMessages = conversation.messages.map((message) { + if (messageIds.contains(message.id)) { + return message.copyWith( + metadata: { + ...?message.metadata, + 'archived': true, + 'archivedAt': DateTime.now().toIso8601String(), + }, + ); + } + return message; + }).toList(); + + final updatedConversation = conversation.copyWith( + messages: updatedMessages, + updatedAt: DateTime.now(), + ); + + return BatchOperationResult.success( + operation: BatchOperation.archive, + data: {'conversation': updatedConversation}, + affectedCount: messageIds.length, + ); + } catch (e) { + return BatchOperationResult.error( + operation: BatchOperation.archive, + error: e.toString(), + ); + } + } + + /// Add tags to multiple messages + Future tagMessages({ + required List messageIds, + required List tags, + required Conversation conversation, + }) async { + try { + final updatedMessages = conversation.messages.map((message) { + if (messageIds.contains(message.id)) { + final existingTags = + (message.metadata?['tags'] as List?) ?? []; + final newTags = {...existingTags, ...tags}.toList(); + + return message.copyWith( + metadata: {...?message.metadata, 'tags': newTags}, + ); + } + return message; + }).toList(); + + final updatedConversation = conversation.copyWith( + messages: updatedMessages, + updatedAt: DateTime.now(), + ); + + return BatchOperationResult.success( + operation: BatchOperation.tag, + data: {'conversation': updatedConversation}, + affectedCount: messageIds.length, + ); + } catch (e) { + return BatchOperationResult.error( + operation: BatchOperation.tag, + error: e.toString(), + ); + } + } + + /// Filter messages by criteria + List filterMessages({ + required List messages, + MessageFilter? filter, + }) { + if (filter == null) return messages; + + return messages.where((message) { + // Role filter + if (filter.roles.isNotEmpty && !filter.roles.contains(message.role)) { + return false; + } + + // Date range filter + if (filter.dateFrom != null && + message.timestamp.isBefore(filter.dateFrom!)) { + return false; + } + if (filter.dateTo != null && message.timestamp.isAfter(filter.dateTo!)) { + return false; + } + + // Content filter + if (filter.contentFilter != null && + !message.content.toLowerCase().contains( + filter.contentFilter!.toLowerCase(), + )) { + return false; + } + + // Tag filter + if (filter.tags.isNotEmpty) { + final messageTags = (message.metadata?['tags'] as List?) ?? []; + if (!filter.tags.any((tag) => messageTags.contains(tag))) { + return false; + } + } + + // Has attachments filter + if (filter.hasAttachments != null) { + final hasAttachments = message.attachmentIds?.isNotEmpty ?? false; + if (filter.hasAttachments! != hasAttachments) { + return false; + } + } + + return true; + }).toList(); + } + + // Export format implementations + String _exportToText(List messages, ExportOptions options) { + final buffer = StringBuffer(); + + if (options.includeMetadata) { + buffer.writeln('Exported on: ${DateTime.now().toIso8601String()}'); + buffer.writeln('Messages: ${messages.length}'); + buffer.writeln('${'=' * 50}\n'); + } + + for (final message in messages) { + if (options.includeTimestamps) { + buffer.writeln('[${message.timestamp.toIso8601String()}]'); + } + + buffer.writeln('${_formatRole(message.role)}: ${message.content}'); + + if (options.includeMetadata && message.metadata?.isNotEmpty == true) { + buffer.writeln('Metadata: ${message.metadata}'); + } + + buffer.writeln(); + } + + return buffer.toString(); + } + + String _exportToMarkdown(List messages, ExportOptions options) { + final buffer = StringBuffer(); + + if (options.includeMetadata) { + buffer.writeln('# Conversation Export\n'); + buffer.writeln('- **Exported on:** ${DateTime.now().toIso8601String()}'); + buffer.writeln('- **Messages:** ${messages.length}\n'); + buffer.writeln('---\n'); + } + + for (final message in messages) { + buffer.writeln('## ${_formatRole(message.role)}'); + + if (options.includeTimestamps) { + buffer.writeln('*${message.timestamp.toIso8601String()}*\n'); + } + + buffer.writeln(message.content); + buffer.writeln(); + } + + return buffer.toString(); + } + + String _exportToJson(List messages, ExportOptions options) { + final data = { + if (options.includeMetadata) ...{ + 'exportedAt': DateTime.now().toIso8601String(), + 'messageCount': messages.length, + }, + 'messages': messages + .map( + (message) => { + 'id': message.id, + 'role': message.role, + 'content': message.content, + if (options.includeTimestamps) + 'timestamp': message.timestamp.toIso8601String(), + if (message.model != null) 'model': message.model, + if (message.attachmentIds?.isNotEmpty == true) + 'attachmentIds': message.attachmentIds, + if (options.includeMetadata && + message.metadata?.isNotEmpty == true) + 'metadata': message.metadata, + }, + ) + .toList(), + }; + + return JsonEncoder.withIndent(' ').convert(data); + } + + String _exportToCsv(List messages, ExportOptions options) { + final buffer = StringBuffer(); + + // Header + final headers = ['Role', 'Content']; + if (options.includeTimestamps) headers.insert(1, 'Timestamp'); + if (options.includeMetadata) headers.add('Metadata'); + + buffer.writeln(headers.map(_escapeCsv).join(',')); + + // Data rows + for (final message in messages) { + final row = [ + message.role, + message.content.replaceAll('\n', '\\n'), + ]; + + if (options.includeTimestamps) { + row.insert(1, message.timestamp.toIso8601String()); + } + + if (options.includeMetadata) { + row.add(message.metadata?.toString() ?? ''); + } + + buffer.writeln(row.map(_escapeCsv).join(',')); + } + + return buffer.toString(); + } + + String _formatRole(String role) { + switch (role.toLowerCase()) { + case 'user': + return 'User'; + case 'assistant': + return 'Assistant'; + case 'system': + return 'System'; + default: + return role; + } + } + + String _escapeCsv(String value) { + if (value.contains(',') || value.contains('"') || value.contains('\n')) { + return '"${value.replaceAll('"', '""')}"'; + } + return value; + } +} + +/// Export formats supported by the batch service +enum ExportFormat { text, markdown, json, csv } + +/// Copy formats for clipboard operations +enum CopyFormat { plain, markdown, json } + +/// Batch operations that can be performed +enum BatchOperation { export, delete, copy, move, archive, tag } + +/// Options for export operations +@immutable +class ExportOptions { + final bool includeTimestamps; + final bool includeMetadata; + final bool includeAttachments; + + const ExportOptions({ + this.includeTimestamps = true, + this.includeMetadata = false, + this.includeAttachments = true, + }); +} + +/// Filter criteria for messages +@immutable +class MessageFilter { + final List roles; + final DateTime? dateFrom; + final DateTime? dateTo; + final String? contentFilter; + final List tags; + final bool? hasAttachments; + + const MessageFilter({ + this.roles = const [], + this.dateFrom, + this.dateTo, + this.contentFilter, + this.tags = const [], + this.hasAttachments, + }); + + MessageFilter copyWith({ + List? roles, + DateTime? dateFrom, + DateTime? dateTo, + String? contentFilter, + List? tags, + bool? hasAttachments, + }) { + return MessageFilter( + roles: roles ?? this.roles, + dateFrom: dateFrom ?? this.dateFrom, + dateTo: dateTo ?? this.dateTo, + contentFilter: contentFilter ?? this.contentFilter, + tags: tags ?? this.tags, + hasAttachments: hasAttachments ?? this.hasAttachments, + ); + } +} + +/// Result of a batch operation +@immutable +class BatchOperationResult { + final BatchOperation operation; + final bool success; + final String? error; + final Map? data; + final int affectedCount; + + const BatchOperationResult({ + required this.operation, + required this.success, + this.error, + this.data, + this.affectedCount = 0, + }); + + factory BatchOperationResult.success({ + required BatchOperation operation, + Map? data, + int affectedCount = 0, + }) { + return BatchOperationResult( + operation: operation, + success: true, + data: data, + affectedCount: affectedCount, + ); + } + + factory BatchOperationResult.error({ + required BatchOperation operation, + required String error, + }) { + return BatchOperationResult( + operation: operation, + success: false, + error: error, + ); + } +} + +/// Provider for message batch service +final messageBatchServiceProvider = Provider((ref) { + return MessageBatchService(); +}); + +/// Provider for selected messages (for batch operations) +final selectedMessagesProvider = StateProvider>((ref) { + return {}; +}); + +/// Provider for batch operation mode +final batchModeProvider = StateProvider((ref) { + return false; +}); + +/// Provider for message filter +final messageFilterProvider = StateProvider((ref) { + return null; +}); diff --git a/lib/features/chat/services/voice_input_service.dart b/lib/features/chat/services/voice_input_service.dart new file mode 100644 index 0000000..02b7dad --- /dev/null +++ b/lib/features/chat/services/voice_input_service.dart @@ -0,0 +1,220 @@ +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:record/record.dart'; +import 'dart:async'; +import 'dart:io' show Platform; +import 'package:path_provider/path_provider.dart'; +import 'package:path/path.dart' as p; + +class VoiceInputService { + final AudioRecorder _recorder = AudioRecorder(); + bool _isInitialized = false; + bool _isListening = false; + StreamController? _textStreamController; + String _currentText = ''; + // Public stream for UI waveform visualization (emits partial text length as proxy) + StreamController? _intensityController; + Stream get intensityStream => + _intensityController?.stream ?? const Stream.empty(); + Timer? _autoStopTimer; + StreamSubscription? _ampSub; + + bool get isSupportedPlatform => Platform.isAndroid || Platform.isIOS; + + Future initialize() async { + if (_isInitialized) return true; + if (!isSupportedPlatform) return false; + // Log platform for diagnostics + // ignore: avoid_print + print( + 'DEBUG: VoiceInputService initialize on platform: ' + '${Platform.isAndroid + ? 'Android' + : Platform.isIOS + ? 'iOS' + : 'Other'}', + ); + _isInitialized = true; + return true; + } + + Future checkPermissions() async { + try { + return await _recorder.hasPermission(); + } catch (_) { + return false; + } + } + + bool get isListening => _isListening; + bool get isAvailable => _isInitialized; + + Stream startListening() { + // Ensure initialized; we allow initialize to pass even if native STT unavailable + if (!_isInitialized) { + throw Exception('Voice input not initialized'); + } + + if (_isListening) { + stopListening(); + } + + _textStreamController = StreamController.broadcast(); + _currentText = ''; + _isListening = true; + + _intensityController = StreamController.broadcast(); + + // Start recording raw audio; UI or auto-timer will stop and trigger transcription via API + // ignore: avoid_print + print('DEBUG: VoiceInputService startListening'); + _startRecordingProxyIntensity(); + + // Auto-stop after 30 seconds similar to native STT behavior + _autoStopTimer?.cancel(); + _autoStopTimer = Timer(const Duration(seconds: 30), () { + if (_isListening) { + _stopListening(); + } + }); + + return _textStreamController!.stream; + } + + Future stopListening() async { + await _stopListening(); + } + + Future _stopListening() async { + if (!_isListening) return; + + _isListening = false; + // Also stop recorder if active + await _stopRecording(); + // ignore: avoid_print + print('DEBUG: VoiceInputService stopped listening'); + + _autoStopTimer?.cancel(); + _autoStopTimer = null; + _ampSub?.cancel(); + _ampSub = null; + + if (_currentText.isNotEmpty) { + _textStreamController?.add(_currentText); + } + + _textStreamController?.close(); + _textStreamController = null; + _intensityController?.close(); + _intensityController = null; + } + + void dispose() { + stopListening(); + _stopRecording(force: true); + } + + // --- Recording and intensity proxy for server transcription path --- + Future _startRecordingProxyIntensity() async { + try { + final hasMic = await _recorder.hasPermission(); + if (!hasMic) { + _textStreamController?.addError('Microphone permission not granted'); + _stopListening(); + return; + } + + // Start recording in a portable format (WAV/PCM) for best compatibility with server + final tmpDir = await getTemporaryDirectory(); + final filePath = p.join( + tmpDir.path, + 'conduit_voice_${DateTime.now().millisecondsSinceEpoch}.wav', + ); + await _recorder.start( + const RecordConfig( + encoder: AudioEncoder.wav, + numChannels: 1, + sampleRate: 16000, + bitRate: 128000, + ), + path: filePath, + ); + // ignore: avoid_print + print('DEBUG: VoiceInputService recording started at: ' + filePath); + + // Drive intensity from amplitude stream and detect silence + // Consider amplitude less than threshold as silence; stop after ~3s of continuous silence + const silenceThresholdDb = -45.0; // dBFS threshold + const silenceWindow = Duration(seconds: 3); + DateTime lastNonSilent = DateTime.now(); + + _ampSub = _recorder + .onAmplitudeChanged(const Duration(milliseconds: 125)) + .listen((amp) { + if (!_isListening) return; + // Normalize peak power (dBFS) into 0-10 bar scale + final db = amp.current; + // Map dB [-60..0] -> [0..10] + final clamped = db.clamp(-60.0, 0.0); + final norm = ((clamped + 60.0) / 60.0) * 10.0; + _intensityController?.add(norm.round().clamp(0, 10)); + + if (db > silenceThresholdDb) { + lastNonSilent = DateTime.now(); + } else { + if (DateTime.now().difference(lastNonSilent) >= silenceWindow) { + _stopListening(); + } + } + }); + } catch (e) { + // ignore: avoid_print + print('DEBUG: VoiceInputService recording failed: $e'); + _textStreamController?.addError('Audio recording failed: $e'); + _stopListening(); + } + } + + Future _stopRecording({bool force = false}) async { + try { + if (!await _recorder.isRecording() && !force) return; + final path = await _recorder.stop(); + if (path == null) { + _textStreamController?.addError('Recording failed: no file path'); + return; + } + // ignore: avoid_print + print('DEBUG: VoiceInputService recording saved: ' + path); + // Hand off recorded file path to listeners as a special token; UI layer will upload for transcription + _textStreamController?.add('[[AUDIO_FILE_PATH]]:$path'); + } catch (e) { + _textStreamController?.addError('Stop recording error: $e'); + } + } + + // Native locales not used in server transcription mode +} + +final voiceInputServiceProvider = Provider((ref) { + return VoiceInputService(); +}); + +final voiceInputAvailableProvider = FutureProvider((ref) async { + final service = ref.watch(voiceInputServiceProvider); + if (!service.isSupportedPlatform) return false; + final initialized = await service.initialize(); + if (!initialized) return false; + final hasPermission = await service.checkPermissions(); + if (!hasPermission) return false; + return service.isAvailable; +}); + +final voiceInputStreamProvider = StreamProvider((ref) { + // Voice input stream would be initialized when needed + return const Stream.empty(); +}); + +/// Stream of crude voice intensity for waveform visuals +final voiceIntensityStreamProvider = StreamProvider((ref) { + // Connected at runtime by the UI after calling startListening + return const Stream.empty(); +}); diff --git a/lib/features/chat/views/chat_page.dart b/lib/features/chat/views/chat_page.dart new file mode 100644 index 0000000..c2065f6 --- /dev/null +++ b/lib/features/chat/views/chat_page.dart @@ -0,0 +1,2474 @@ +import 'package:flutter/material.dart'; +import '../../../core/services/navigation_service.dart'; +import '../../../core/widgets/error_boundary.dart'; +import '../../../shared/widgets/optimized_list.dart'; +import '../../../shared/theme/theme_extensions.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:flutter_animate/flutter_animate.dart'; +import 'dart:io' show Platform, File; +import 'dart:async'; +import 'package:path/path.dart' as path; +import '../../../core/providers/app_providers.dart'; +import '../providers/chat_providers.dart'; + +import '../widgets/modern_chat_input.dart'; +import '../widgets/modern_message_bubble.dart'; +import '../widgets/documentation_message_widget.dart'; +import '../widgets/file_attachment_widget.dart'; +import '../services/voice_input_service.dart'; +import '../services/file_attachment_service.dart'; +import '../../navigation/views/chats_list_page.dart'; +import '../../files/views/files_page.dart'; +import '../../profile/views/profile_page.dart'; +import '../../../shared/widgets/offline_indicator.dart'; +import '../../../core/services/connectivity_service.dart'; +import '../../../core/models/chat_message.dart'; +import '../../../core/models/model.dart'; +import '../../../shared/widgets/loading_states.dart'; +import 'chat_page_helpers.dart'; +import '../../../shared/widgets/themed_dialogs.dart'; + +class ChatPage extends ConsumerStatefulWidget { + const ChatPage({super.key}); + + @override + ConsumerState createState() => _ChatPageState(); +} + +class _ChatPageState extends ConsumerState { + final ScrollController _scrollController = ScrollController(); + bool _showScrollToBottom = false; + bool _isSelectionMode = false; + final Set _selectedMessageIds = {}; + Timer? _scrollDebounceTimer; + + String _formatModelDisplayName(String name) { + var display = name.trim(); + // Prefer the segment after the last '/' + if (display.contains('/')) { + display = display.split('/').last.trim(); + } + // If an org prefix like 'OpenAI: gpt-4o' exists, use the part after ':' + if (display.contains(':')) { + final parts = display.split(':'); + display = parts.last.trim(); + } + return display; + } + + @override + void initState() { + super.initState(); + + // Listen to scroll events to show/hide scroll to bottom button + _scrollController.addListener(_onScroll); + } + + @override + void dispose() { + _scrollController.dispose(); + _scrollDebounceTimer?.cancel(); + super.dispose(); + } + + void _handleMessageSend(String text, dynamic selectedModel) async { + debugPrint('DEBUG: Starting message send process'); + debugPrint('DEBUG: Message text: $text'); + debugPrint('DEBUG: Selected model: ${selectedModel?.name ?? 'null'}'); + + if (selectedModel == null) { + debugPrint('DEBUG: No model selected'); + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('Please select a model first')), + ); + } + return; + } + + final isOnline = ref.read(isOnlineProvider); + debugPrint('DEBUG: Online status: $isOnline'); + if (!isOnline) { + debugPrint('DEBUG: Offline - cannot send message'); + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: const Text( + 'You\'re offline. Message will be sent when connection is restored.', + ), + backgroundColor: context.conduitTheme.warning, + ), + ); + } + // TODO: Implement message queueing for offline mode + return; + } + + try { + // Get attached files and use uploadedFileIds when sendMessage is updated to accept file IDs + final attachedFiles = ref.read(attachedFilesProvider); + debugPrint('DEBUG: Attached files count: ${attachedFiles.length}'); + + for (final file in attachedFiles) { + debugPrint( + 'DEBUG: File - Name: ${file.fileName}, Status: ${file.status}, FileId: ${file.fileId}', + ); + } + + final uploadedFileIds = attachedFiles + .where( + (file) => + file.status == FileUploadStatus.completed && + file.fileId != null, + ) + .map((file) => file.fileId!) + .toList(); + + debugPrint('DEBUG: Uploaded file IDs: $uploadedFileIds'); + + // Send message with file attachments using existing provider logic + await sendMessage( + ref, + text, + uploadedFileIds.isNotEmpty ? uploadedFileIds : null, + ); + + debugPrint('DEBUG: Message sent successfully'); + + // Clear attachments after successful send + ref.read(attachedFilesProvider.notifier).clearAll(); + debugPrint('DEBUG: Attachments cleared'); + + // Scroll to bottom after sending message (only if user was near bottom) + WidgetsBinding.instance.addPostFrameCallback((_) { + if (_scrollController.hasClients) { + final maxScroll = _scrollController.position.maxScrollExtent; + final currentScroll = _scrollController.position.pixels; + // Only auto-scroll if user was already near the bottom (within 300px) + if (maxScroll - currentScroll < 300) { + _scrollToBottom(); + } + } + }); + } catch (e) { + debugPrint('DEBUG: Message send error: $e'); + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: const Text('Message failed to send. Please try again.'), + backgroundColor: context.conduitTheme.error, + ), + ); + } + } + } + + void _handleVoiceInput() async { + // TODO: Implement voice input functionality + final isAvailable = await ref.read(voiceInputAvailableProvider.future); + + if (!isAvailable) { + if (!mounted) return; + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: const Text('Voice input unavailable. Check permissions.'), + backgroundColor: context.conduitTheme.warning, + ), + ); + return; + } + + // Show voice input dialog + if (!mounted) return; + showModalBottomSheet( + context: context, + backgroundColor: Colors.transparent, + isScrollControlled: true, + builder: (context) => _VoiceInputSheet( + onTextReceived: (text) { + if (text.isNotEmpty) { + final selectedModel = ref.read(selectedModelProvider); + if (selectedModel != null) { + _handleMessageSend(text, selectedModel); + } + } + }, + ), + ); + } + + void _handleFileAttachment() async { + // Check if selected model supports file upload + final fileUploadCapableModels = ref.read(fileUploadCapableModelsProvider); + if (fileUploadCapableModels.isEmpty) { + if (!mounted) return; + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: const Text('Selected model does not support file upload'), + backgroundColor: context.conduitTheme.error, + ), + ); + return; + } + + final fileService = ref.read(fileAttachmentServiceProvider); + if (fileService == null) { + ScaffoldMessenger.of( + context, + ).showSnackBar(const SnackBar(content: Text('File service unavailable'))); + return; + } + + try { + final files = await fileService.pickFiles(); + if (files.isEmpty) return; + + // Validate file count + final currentFiles = ref.read(attachedFilesProvider); + if (!validateFileCount(currentFiles.length, files.length, 10)) { + if (!mounted) return; + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: const Text('Maximum 10 files allowed'), + backgroundColor: context.conduitTheme.error, + ), + ); + return; + } + + // Validate file sizes + for (final file in files) { + final fileSize = await file.length(); + if (!validateFileSize(fileSize, 20)) { + if (!mounted) return; + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text( + 'File ${path.basename(file.path)} exceeds 20MB limit', + ), + backgroundColor: context.conduitTheme.error, + ), + ); + return; + } + } + + // Add files to the attachment list + ref.read(attachedFilesProvider.notifier).addFiles(files); + + // Start uploading files + for (final file in files) { + final uploadStream = fileService.uploadFile(file); + uploadStream.listen( + (state) { + ref + .read(attachedFilesProvider.notifier) + .updateFileState(file.path, state); + }, + onError: (error) { + if (!mounted) return; + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text('Upload failed: $error'), + backgroundColor: context.conduitTheme.error, + ), + ); + }, + ); + } + } catch (e) { + if (!mounted) return; + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text('File selection failed: $e'), + backgroundColor: context.conduitTheme.error, + ), + ); + } + } + + void _handleImageAttachment({bool fromCamera = false}) async { + debugPrint( + 'DEBUG: Starting image attachment process - fromCamera: $fromCamera', + ); + + // Check if selected model supports vision + final visionCapableModels = ref.read(visionCapableModelsProvider); + if (visionCapableModels.isEmpty) { + if (!mounted) return; + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: const Text('Selected model does not support image inputs'), + backgroundColor: context.conduitTheme.error, + ), + ); + return; + } + + final fileService = ref.read(fileAttachmentServiceProvider); + if (fileService == null) { + debugPrint('DEBUG: File service is null - cannot proceed'); + ScaffoldMessenger.of( + context, + ).showSnackBar(const SnackBar(content: Text('File service unavailable'))); + return; + } + + try { + debugPrint('DEBUG: Picking image...'); + final image = fromCamera + ? await fileService.takePhoto() + : await fileService.pickImage(); + if (image == null) { + debugPrint('DEBUG: No image selected'); + return; + } + + debugPrint('DEBUG: Image selected: ${image.path}'); + final imageSize = await image.length(); + debugPrint('DEBUG: Image size: $imageSize bytes'); + + // Validate file size (default 20MB limit like OpenWebUI) + if (!validateFileSize(imageSize, 20)) { + if (!mounted) return; + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: const Text('Image size exceeds 20MB limit'), + backgroundColor: context.conduitTheme.error, + ), + ); + return; + } + + // Validate file count (default 10 files limit like OpenWebUI) + final currentFiles = ref.read(attachedFilesProvider); + if (!validateFileCount(currentFiles.length, 1, 10)) { + if (!mounted) return; + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: const Text('Maximum 10 files allowed'), + backgroundColor: context.conduitTheme.error, + ), + ); + return; + } + + // Add image to the attachment list + ref.read(attachedFilesProvider.notifier).addFiles([image]); + debugPrint('DEBUG: Image added to attachment list'); + + // Start uploading image + debugPrint('DEBUG: Starting image upload...'); + final uploadStream = fileService.uploadFile(image); + uploadStream.listen( + (state) { + debugPrint( + 'DEBUG: Upload state update - Status: ${state.status}, Progress: ${state.progress}, FileId: ${state.fileId}', + ); + ref + .read(attachedFilesProvider.notifier) + .updateFileState(image.path, state); + }, + onError: (error) { + debugPrint('DEBUG: Image upload error: $error'); + if (!mounted) return; + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text('Image upload failed: $error'), + backgroundColor: context.conduitTheme.error, + ), + ); + }, + ); + } catch (e) { + debugPrint('DEBUG: Image attachment error: $e'); + if (!mounted) return; + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text('Image attachment failed: $e'), + backgroundColor: context.conduitTheme.error, + ), + ); + } + } + + void _handleNewChat() { + // Start a new chat using the existing function + startNewChat(ref); + + // Hide scroll-to-bottom button for a fresh chat + if (mounted) { + setState(() { + _showScrollToBottom = false; + }); + } + + // Show success message + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text('New chat started'), + duration: Duration(seconds: 2), + ), + ); + } + + void _showChatsListOverlay() { + showModalBottomSheet( + context: context, + isScrollControlled: true, + backgroundColor: Colors.transparent, + builder: (context) => Container( + height: MediaQuery.of(context).size.height * 0.9, + decoration: BoxDecoration( + color: context.conduitTheme.surfaceBackground, + borderRadius: const BorderRadius.vertical( + top: Radius.circular(AppBorderRadius.bottomSheet), + ), + border: Border.all( + color: context.conduitTheme.dividerColor, + width: BorderWidth.regular, + ), + boxShadow: ConduitShadows.modal, + ), + child: SafeArea( + top: false, + bottom: true, + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + // Handle bar + Container( + width: 40, + height: 4, + margin: const EdgeInsets.symmetric(vertical: Spacing.sm), + decoration: BoxDecoration( + color: context.conduitTheme.dividerColor, + borderRadius: BorderRadius.circular(AppBorderRadius.xs), + ), + ), + Expanded(child: const ChatsListPage(isOverlay: true)), + ], + ), + ), + ), + ); + } + + void _showQuickAccessMenu() { + showModalBottomSheet( + context: context, + backgroundColor: Colors.transparent, + builder: (context) => Container( + decoration: BoxDecoration( + color: context.conduitTheme.surfaceBackground, + borderRadius: const BorderRadius.vertical( + top: Radius.circular(AppBorderRadius.modal), + ), + ), + child: SafeArea( + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + // Handle bar + Container( + width: 40, + height: 4, + margin: const EdgeInsets.symmetric(vertical: Spacing.sm), + decoration: BoxDecoration( + color: context.conduitTheme.dividerColor, + borderRadius: BorderRadius.circular(AppBorderRadius.xs), + ), + ), + // Hint text + Padding( + padding: const EdgeInsets.symmetric(horizontal: Spacing.md), + child: Text( + 'Quick Actions', + style: AppTypography.bodySmallStyle.copyWith( + color: context.conduitTheme.textSecondary, + ), + textAlign: TextAlign.center, + ), + ), + const SizedBox(height: Spacing.xs), + // Menu items + ListTile( + leading: Icon( + Platform.isIOS ? CupertinoIcons.plus : Icons.add_rounded, + color: context.conduitTheme.iconPrimary, + ), + title: Text( + 'New Chat', + style: AppTypography.bodyLargeStyle.copyWith( + color: context.conduitTheme.textPrimary, + ), + ), + subtitle: Text( + 'Start a new conversation', + style: AppTypography.bodySmallStyle.copyWith( + color: context.conduitTheme.textSecondary, + ), + ), + onTap: () { + Navigator.pop(context); + _handleNewChat(); + }, + ), + ListTile( + leading: Icon( + Platform.isIOS + ? CupertinoIcons.doc + : Icons.description_outlined, + color: context.conduitTheme.iconPrimary, + ), + title: Text( + 'Files', + style: AppTypography.bodyLargeStyle.copyWith( + color: context.conduitTheme.textPrimary, + ), + ), + subtitle: Text( + 'Manage your files and documents', + style: AppTypography.bodySmallStyle.copyWith( + color: context.conduitTheme.textSecondary, + ), + ), + onTap: () { + Navigator.pop(context); + _navigateToFiles(); + }, + ), + ListTile( + leading: Icon( + Platform.isIOS ? CupertinoIcons.person : Icons.person_outline, + color: context.conduitTheme.iconPrimary, + ), + title: Text( + 'Profile', + style: AppTypography.bodyLargeStyle.copyWith( + color: context.conduitTheme.textPrimary, + ), + ), + subtitle: Text( + 'View and manage your profile', + style: AppTypography.bodySmallStyle.copyWith( + color: context.conduitTheme.textSecondary, + ), + ), + onTap: () { + Navigator.pop(context); + _navigateToProfile(); + }, + ), + const SizedBox(height: Spacing.sm), + ], + ), + ), + ), + ); + } + + void _navigateToFiles() { + Navigator.of( + context, + ).push(MaterialPageRoute(builder: (context) => const FilesPage())); + } + + void _navigateToProfile() { + Navigator.of( + context, + ).push(MaterialPageRoute(builder: (context) => const ProfilePage())); + } + + void _onScroll() { + if (!_scrollController.hasClients) return; + + // Debounce scroll handling to reduce rebuilds + if (_scrollDebounceTimer?.isActive == true) return; + + _scrollDebounceTimer = Timer(const Duration(milliseconds: 50), () { + if (!mounted || !_scrollController.hasClients) return; + + final maxScroll = _scrollController.position.maxScrollExtent; + final currentScroll = _scrollController.position.pixels; + + // Only show button if user has scrolled up significantly + final showButton = maxScroll > 100 && currentScroll < maxScroll - 200; + + if (showButton != _showScrollToBottom && mounted) { + setState(() { + _showScrollToBottom = showButton; + }); + } + }); + } + + void _scrollToBottom({bool smooth = true}) { + if (!_scrollController.hasClients) return; + + final maxScroll = _scrollController.position.maxScrollExtent; + if (maxScroll <= 0) return; + + if (smooth) { + _scrollController.animateTo( + maxScroll, + duration: const Duration(milliseconds: 200), + curve: Curves.easeOutCubic, + ); + } else { + _scrollController.jumpTo(maxScroll); + } + } + + void _toggleSelectionMode() { + setState(() { + _isSelectionMode = !_isSelectionMode; + if (!_isSelectionMode) { + _selectedMessageIds.clear(); + } + }); + } + + void _toggleMessageSelection(String messageId) { + setState(() { + if (_selectedMessageIds.contains(messageId)) { + _selectedMessageIds.remove(messageId); + if (_selectedMessageIds.isEmpty) { + _isSelectionMode = false; + } + } else { + _selectedMessageIds.add(messageId); + } + }); + } + + // TODO: Implement select all functionality when needed + // void _selectAllMessages() { + // final messages = ref.read(chatMessagesProvider); + // setState(() { + // _selectedMessageIds.clear(); + // _selectedMessageIds.addAll(messages.map((m) => m.id)); + // }); + // } + + void _clearSelection() { + setState(() { + _selectedMessageIds.clear(); + _isSelectionMode = false; + }); + } + + List _getSelectedMessages() { + final messages = ref.read(chatMessagesProvider); + return messages.where((m) => _selectedMessageIds.contains(m.id)).toList(); + } + + Widget _buildMessagesList(ThemeData theme) { + // Use select to watch only the messages list to reduce rebuilds + final messages = ref.watch( + chatMessagesProvider.select((messages) => messages), + ); + final isLoadingConversation = ref.watch(isLoadingConversationProvider); + + if (isLoadingConversation && messages.isEmpty) { + // Show message skeletons during conversation load + return ListView.builder( + controller: _scrollController, + padding: const EdgeInsets.fromLTRB( + Spacing.lg, + Spacing.xl, + Spacing.lg, + Spacing.lg, + ), + itemCount: 6, + itemBuilder: (context, index) { + final isUser = index.isOdd; + return Align( + alignment: isUser ? Alignment.centerRight : Alignment.centerLeft, + child: Container( + margin: const EdgeInsets.only(bottom: Spacing.md), + constraints: BoxConstraints( + maxWidth: MediaQuery.of(context).size.width * 0.82, + ), + padding: const EdgeInsets.all(Spacing.md), + decoration: BoxDecoration( + color: isUser + ? context.conduitTheme.buttonPrimary.withValues(alpha: 0.15) + : context.conduitTheme.cardBackground, + borderRadius: BorderRadius.circular( + AppBorderRadius.messageBubble, + ), + border: Border.all( + color: context.conduitTheme.cardBorder, + width: BorderWidth.regular, + ), + boxShadow: ConduitShadows.messageBubble, + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + height: 14, + width: index % 3 == 0 ? 140 : 220, + decoration: BoxDecoration( + color: context.conduitTheme.shimmerBase, + borderRadius: BorderRadius.circular(AppBorderRadius.xs), + ), + ).animate().shimmer(duration: AnimationDuration.slow), + const SizedBox(height: Spacing.xs), + Container( + height: 14, + width: double.infinity, + decoration: BoxDecoration( + color: context.conduitTheme.shimmerBase, + borderRadius: BorderRadius.circular(AppBorderRadius.xs), + ), + ).animate().shimmer(duration: AnimationDuration.slow), + if (index % 3 != 0) ...[ + const SizedBox(height: Spacing.xs), + Container( + height: 14, + width: index % 2 == 0 ? 180 : 120, + decoration: BoxDecoration( + color: context.conduitTheme.shimmerBase, + borderRadius: BorderRadius.circular(AppBorderRadius.xs), + ), + ).animate().shimmer(duration: AnimationDuration.slow), + ], + ], + ), + ), + ); + }, + ); + } + + if (messages.isEmpty) { + return _buildEmptyState(theme); + } + + return OptimizedList( + scrollController: _scrollController, + items: messages, + padding: const EdgeInsets.fromLTRB( + Spacing.lg, + Spacing.xl, + Spacing.lg, + Spacing.lg, + ), + itemBuilder: (context, message, index) { + final isUser = message.role == 'user'; + final isStreaming = message.isStreaming; + + final isSelected = _selectedMessageIds.contains(message.id); + + // Wrap message in selection container if in selection mode + Widget messageWidget; + + // Use documentation style for assistant messages, bubble for user messages + if (isUser) { + messageWidget = ModernMessageBubble( + key: ValueKey('user-${message.id}'), + message: message, + isUser: isUser, + isStreaming: isStreaming, + modelName: message.model, + onCopy: () => _copyMessage(message.content), + onEdit: () => _editMessage(message), + onRegenerate: () => _regenerateMessage(message), + onLike: () => _likeMessage(message), + onDislike: () => _dislikeMessage(message), + ); + } else { + messageWidget = DocumentationMessageWidget( + key: ValueKey('assistant-${message.id}'), + message: message, + isUser: isUser, + isStreaming: isStreaming, + modelName: message.model, + onCopy: () => _copyMessage(message.content), + onEdit: () => _editMessage(message), + onRegenerate: () => _regenerateMessage(message), + onLike: () => _likeMessage(message), + onDislike: () => _dislikeMessage(message), + ); + } + + // Add selection functionality if in selection mode + if (_isSelectionMode) { + return _SelectableMessageWrapper( + isSelected: isSelected, + onTap: () => _toggleMessageSelection(message.id), + onLongPress: () { + if (!_isSelectionMode) { + _toggleSelectionMode(); + _toggleMessageSelection(message.id); + } + }, + child: messageWidget, + ); + } else { + return GestureDetector( + onLongPress: () { + _toggleSelectionMode(); + _toggleMessageSelection(message.id); + }, + child: messageWidget, + ); + } + }, + ); + } + + void _copyMessage(String content) { + Clipboard.setData(ClipboardData(text: content)); + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text('Copied to clipboard'), + duration: Duration(seconds: 2), + ), + ); + } + + void _regenerateMessage(dynamic message) async { + final selectedModel = ref.read(selectedModelProvider); + if (selectedModel == null) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('Please select a model first')), + ); + return; + } + + // Find the user message that prompted this assistant response + final messages = ref.read(chatMessagesProvider); + final messageIndex = messages.indexOf(message); + + if (messageIndex <= 0 || messages[messageIndex - 1].role != 'user') { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('Cannot regenerate this message')), + ); + return; + } + + try { + // Remove the assistant message we want to regenerate + ref.read(chatMessagesProvider.notifier).removeLastMessage(); + + // Resend the previous user message to get a new response + final userMessage = messages[messageIndex - 1]; + await sendMessage(ref, userMessage.content, null); + + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text('Regenerating...'), + duration: Duration(seconds: 2), + ), + ); + } + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text('Failed to regenerate message: $e'), + backgroundColor: context.conduitTheme.error, + ), + ); + } + } + } + + void _editMessage(dynamic message) async { + if (message.role != 'user') { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('Only user messages can be edited')), + ); + return; + } + + final controller = TextEditingController(text: message.content); + final result = await showDialog( + context: context, + builder: (context) => AlertDialog( + backgroundColor: context.conduitTheme.surfaceBackground, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.dialog), + ), + title: Text( + 'Edit Message', + style: TextStyle(color: context.conduitTheme.textPrimary), + ), + content: TextField( + controller: controller, + style: TextStyle(color: context.conduitTheme.textPrimary), + maxLines: null, + decoration: InputDecoration( + hintText: 'Enter your message', + hintStyle: TextStyle(color: context.conduitTheme.inputPlaceholder), + border: OutlineInputBorder( + borderSide: BorderSide(color: context.conduitTheme.inputBorder), + ), + enabledBorder: OutlineInputBorder( + borderSide: BorderSide(color: context.conduitTheme.inputBorder), + ), + focusedBorder: OutlineInputBorder( + borderSide: BorderSide(color: context.conduitTheme.buttonPrimary), + ), + ), + ), + actions: [ + TextButton( + onPressed: () => Navigator.pop(context), + child: Text( + 'Cancel', + style: TextStyle(color: context.conduitTheme.textSecondary), + ), + ), + TextButton( + onPressed: () => Navigator.pop(context, controller.text.trim()), + style: TextButton.styleFrom( + foregroundColor: context.conduitTheme.buttonPrimary, + ), + child: const Text('Save'), + ), + ], + ), + ); + + if (result != null && result.isNotEmpty && result != message.content) { + try { + // Find the message index and remove all messages after it + final messages = ref.read(chatMessagesProvider); + final messageIndex = messages.indexOf(message); + + if (messageIndex >= 0) { + // Remove messages from this point onwards + final messagesToKeep = messages.take(messageIndex).toList(); + ref.read(chatMessagesProvider.notifier).setMessages(messagesToKeep); + + // Send the edited message + final selectedModel = ref.read(selectedModelProvider); + if (selectedModel != null) { + await sendMessage(ref, result, null); + + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text('Message updated'), + duration: Duration(seconds: 2), + ), + ); + } + } + } + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text('Failed to edit message: $e'), + backgroundColor: context.conduitTheme.error, + ), + ); + } + } + } + + controller.dispose(); + } + + void _likeMessage(dynamic message) { + // TODO: Implement message liking + ScaffoldMessenger.of( + context, + ).showSnackBar(const SnackBar(content: Text('Message liked!'))); + } + + void _dislikeMessage(dynamic message) { + // TODO: Implement message disliking + ScaffoldMessenger.of( + context, + ).showSnackBar(const SnackBar(content: Text('Message disliked!'))); + } + + Widget _buildEmptyState(ThemeData theme) { + return Center( + child: SingleChildScrollView( + padding: const EdgeInsets.all(Spacing.lg), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + // Minimal, clean empty state + Container( + width: Spacing.xxl + Spacing.xxxl, + height: Spacing.xxl + Spacing.xxxl, + decoration: BoxDecoration( + gradient: LinearGradient( + begin: Alignment.topLeft, + end: Alignment.bottomRight, + colors: [ + context.conduitTheme.buttonPrimary, + context.conduitTheme.buttonPrimary.withValues( + alpha: 0.8, + ), + ], + ), + borderRadius: BorderRadius.circular(AppBorderRadius.round), + boxShadow: ConduitShadows.glow, + ), + child: Icon( + Platform.isIOS ? CupertinoIcons.chat_bubble_2 : Icons.chat, + size: Spacing.xxxl - Spacing.xs, + color: context.conduitTheme.textInverse, + ), + ) + .animate() + .scale(duration: const Duration(milliseconds: 300)) + .then() + .shimmer(duration: const Duration(milliseconds: 1200)), + + const SizedBox(height: Spacing.xl), + + Text( + 'Start a conversation', + style: theme.textTheme.headlineSmall?.copyWith( + fontWeight: FontWeight.w600, + color: context.conduitTheme.textPrimary, + ), + ).animate().fadeIn(delay: const Duration(milliseconds: 150)), + + const SizedBox(height: Spacing.sm), + + Text( + 'Type below to begin', + style: theme.textTheme.bodyLarge?.copyWith( + color: context.conduitTheme.textSecondary, + fontWeight: FontWeight.w400, + ), + ).animate().fadeIn(delay: const Duration(milliseconds: 300)), + ], + ), + ), + ); + } + + // Removed detailed help items from chat page; guidance now lives in Onboarding + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + // Use select to watch only connectivity status to reduce rebuilds + final isOnline = ref.watch(isOnlineProvider.select((status) => status)); + + // Use select to watch only the selected model to reduce rebuilds + final selectedModel = ref.watch( + selectedModelProvider.select((model) => model), + ); + + return ErrorBoundary( + child: PopScope( + canPop: false, + onPopInvokedWithResult: (bool didPop, Object? result) async { + if (didPop) return; + + // Check if there's unsaved content + final messages = ref.read(chatMessagesProvider); + if (messages.isNotEmpty) { + final shouldPop = await NavigationService.confirmNavigation( + title: 'Leave Chat?', + message: 'Your conversation will be saved.', + confirmText: 'Leave', + cancelText: 'Stay', + ); + if (shouldPop && context.mounted) { + final canPopNavigator = Navigator.of(context).canPop(); + if (canPopNavigator) { + Navigator.of(context).pop(); + } else { + SystemNavigator.pop(); + } + } + } else if (context.mounted) { + final canPopNavigator = Navigator.of(context).canPop(); + if (canPopNavigator) { + Navigator.of(context).pop(); + } else { + SystemNavigator.pop(); + } + } + }, + child: Scaffold( + backgroundColor: context.conduitTheme.surfaceBackground, + appBar: AppBar( + backgroundColor: context.conduitTheme.surfaceBackground, + elevation: Elevation.none, + surfaceTintColor: Colors.transparent, + shadowColor: Colors.transparent, + toolbarHeight: kToolbarHeight, + titleSpacing: 0.0, + leading: _isSelectionMode + ? IconButton( + icon: Icon( + Platform.isIOS ? CupertinoIcons.xmark : Icons.close, + color: context.conduitTheme.textPrimary, + size: IconSize.appBar, + ), + onPressed: _clearSelection, + ) + : GestureDetector( + onTap: () { + _showChatsListOverlay(); + }, + onLongPress: () { + HapticFeedback.mediumImpact(); + _showQuickAccessMenu(); + }, + child: Padding( + padding: const EdgeInsets.all(4.0), + child: Icon( + Platform.isIOS + ? CupertinoIcons.line_horizontal_3 + : Icons.menu, + color: context.conduitTheme.textPrimary, + size: IconSize.appBar, + ), + ), + ), + title: _isSelectionMode + ? Text( + '${_selectedMessageIds.length} selected', + style: AppTypography.headlineSmallStyle.copyWith( + color: context.conduitTheme.textPrimary, + fontWeight: FontWeight.w500, + ), + ) + : selectedModel != null + ? GestureDetector( + onTap: () { + final modelsAsync = ref.read(modelsProvider); + modelsAsync.whenData( + (models) => _showModelDropdown(context, ref, models), + ); + }, + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Text( + _formatModelDisplayName(selectedModel.name), + style: AppTypography.headlineSmallStyle.copyWith( + color: context.conduitTheme.textPrimary, + fontWeight: FontWeight.w400, + ), + ), + const SizedBox(width: Spacing.xs), + Container( + padding: const EdgeInsets.symmetric( + horizontal: Spacing.xs, + vertical: Spacing.xxs, + ), + decoration: BoxDecoration( + color: context.conduitTheme.surfaceBackground + .withValues(alpha: 0.3), + borderRadius: BorderRadius.circular( + AppBorderRadius.badge, + ), + border: Border.all( + color: context.conduitTheme.dividerColor, + width: BorderWidth.thin, + ), + ), + child: Icon( + Platform.isIOS + ? CupertinoIcons.chevron_down + : Icons.keyboard_arrow_down, + color: context.conduitTheme.iconSecondary, + size: IconSize.small, + ), + ), + ], + ), + ) + : GestureDetector( + onTap: () { + final modelsAsync = ref.read(modelsProvider); + modelsAsync.whenData( + (models) => _showModelDropdown(context, ref, models), + ); + }, + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Text( + 'Choose Model', + style: AppTypography.headlineSmallStyle.copyWith( + color: context.conduitTheme.textPrimary, + fontWeight: FontWeight.w400, + ), + ), + const SizedBox(width: Spacing.xs), + Container( + padding: const EdgeInsets.symmetric( + horizontal: Spacing.xs, + vertical: Spacing.xxs, + ), + decoration: BoxDecoration( + color: context.conduitTheme.surfaceBackground + .withValues(alpha: 0.3), + borderRadius: BorderRadius.circular( + AppBorderRadius.badge, + ), + border: Border.all( + color: context.conduitTheme.dividerColor, + width: BorderWidth.thin, + ), + ), + child: Icon( + Platform.isIOS + ? CupertinoIcons.chevron_down + : Icons.keyboard_arrow_down, + color: context.conduitTheme.iconSecondary, + size: IconSize.small, + ), + ), + ], + ), + ), + actions: [ + if (!_isSelectionMode) ...[ + IconButton( + icon: Icon( + Platform.isIOS + ? CupertinoIcons.bubble_left + : Icons.chat_bubble_outline, + color: context.conduitTheme.textPrimary, + size: IconSize.appBar, + ), + onPressed: _handleNewChat, + tooltip: 'New Chat', + ), + ] else ...[ + IconButton( + icon: Icon( + Platform.isIOS ? CupertinoIcons.delete : Icons.delete, + color: context.conduitTheme.error, + size: IconSize.appBar, + ), + onPressed: _deleteSelectedMessages, + ), + ], + ], + ), + body: Stack( + children: [ + Column( + children: [ + // Server banners + Consumer( + builder: (context, ref, child) { + final banners = ref.watch(serverBannersProvider); + return banners.when( + data: (bannerList) => bannerList.isNotEmpty + ? Container( + color: theme.colorScheme.primaryContainer + .withValues(alpha: Alpha.badgeBackground), + child: Column( + children: bannerList + .take(1) + .map( + (banner) => + _buildChatBanner(context, banner), + ) + .toList(), + ), + ) + : const SizedBox.shrink(), + loading: () => const SizedBox.shrink(), + error: (_, _) => const SizedBox.shrink(), + ); + }, + ), + + // Messages Area with pull-to-refresh + Expanded( + child: ConduitRefreshIndicator( + onRefresh: () async { + // Reload active conversation messages from server + final api = ref.read(apiServiceProvider); + final active = ref.read(activeConversationProvider); + if (api != null && active != null) { + try { + final full = await api.getConversation(active.id); + ref + .read(activeConversationProvider.notifier) + .state = + full; + } catch (_) {} + } + }, + child: GestureDetector( + behavior: HitTestBehavior.opaque, + onTap: () => + FocusManager.instance.primaryFocus?.unfocus(), + child: _buildMessagesList(theme), + ), + ), + ), + + // File attachments + const FileAttachmentWidget(), + + // Offline indicator + const ChatOfflineOverlay(), + + // Modern Input (root matches input background including safe area) + ModernChatInput( + enabled: selectedModel != null && isOnline, + onSendMessage: (text) => + _handleMessageSend(text, selectedModel), + onVoiceInput: _handleVoiceInput, + onFileAttachment: _handleFileAttachment, + onImageAttachment: _handleImageAttachment, + onCameraCapture: () => + _handleImageAttachment(fromCamera: true), + ), + ], + ), + + // Floating Scroll to Bottom Button (only if there are messages) + if (_showScrollToBottom && + ref.watch(chatMessagesProvider).isNotEmpty) + Positioned( + bottom: + Spacing.xxl + + Spacing + .xxxl, // Position higher to avoid overlapping chat input + right: Spacing.lg, + child: FloatingActionButton( + onPressed: _scrollToBottom, + backgroundColor: context.conduitTheme.buttonPrimary, + foregroundColor: context.conduitTheme.buttonPrimaryText, + elevation: Elevation.medium, + child: Icon( + Platform.isIOS + ? CupertinoIcons.arrow_down + : Icons.keyboard_arrow_down, + size: IconSize.large, + ), + ), + ) + .animate() + .fadeIn(duration: AnimationDuration.microInteraction) + .slideY( + begin: AnimationValues.slideInFromBottom.dy, + end: AnimationValues.slideCenter.dy, + duration: AnimationDuration.microInteraction, + curve: AnimationCurves.microInteraction, + ), + ], + ), + ), // Scaffold + ), // PopScope + ); // ErrorBoundary + } + + void _showModelDropdown( + BuildContext context, + WidgetRef ref, + List models, + ) { + showModalBottomSheet( + context: context, + isScrollControlled: true, + backgroundColor: Colors.transparent, + builder: (context) => _ModelSelectorSheet(models: models, ref: ref), + ); + } + + // TODO: Implement chat options when needed + // void _showChatOptions() { + // ScaffoldMessenger.of( + // context, + // ).showSnackBar(const SnackBar(content: Text('Chat options coming soon!'))); + // } + + void _deleteSelectedMessages() { + final selectedMessages = _getSelectedMessages(); + if (selectedMessages.isEmpty) return; + + ThemedDialogs.confirm( + context, + title: 'Delete Messages', + message: 'Delete ${selectedMessages.length} messages?', + confirmText: 'Delete', + isDestructive: true, + ).then((confirmed) async { + if (confirmed == true) { + // TODO: Implement message removal + // for (final selectedMessage in selectedMessages) { + // ref.read(chatMessagesProvider.notifier).removeMessage(selectedMessage.id); + // } + _clearSelection(); + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text('Messages removed'), + duration: Duration(seconds: 2), + ), + ); + } + } + }); + } +} + +class _ModelSelectorSheet extends ConsumerStatefulWidget { + final List models; + final WidgetRef ref; + + const _ModelSelectorSheet({required this.models, required this.ref}); + + @override + ConsumerState<_ModelSelectorSheet> createState() => + _ModelSelectorSheetState(); +} + +class _ModelSelectorSheetState extends ConsumerState<_ModelSelectorSheet> { + final TextEditingController _searchController = TextEditingController(); + String _searchQuery = ''; + List _filteredModels = []; + Timer? _searchDebounce; + // No capability filters + // Grid view removed + + Widget _capabilityChip({required IconData icon, required String label}) { + return Container( + margin: const EdgeInsets.only(right: Spacing.xs), + padding: const EdgeInsets.symmetric(horizontal: Spacing.xs, vertical: 2), + decoration: BoxDecoration( + color: context.conduitTheme.buttonPrimary.withValues(alpha: 0.08), + borderRadius: BorderRadius.circular(AppBorderRadius.chip), + border: Border.all( + color: context.conduitTheme.buttonPrimary.withValues(alpha: 0.3), + width: BorderWidth.thin, + ), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Icon(icon, size: 12, color: context.conduitTheme.buttonPrimary), + const SizedBox(width: 4), + Text( + label, + style: TextStyle( + fontSize: AppTypography.labelSmall, + color: context.conduitTheme.textSecondary, + fontWeight: FontWeight.w500, + ), + ), + ], + ), + ); + } + + // Removed filter toggle UI and logic + + @override + void initState() { + super.initState(); + _filteredModels = widget.models; + } + + @override + void dispose() { + _searchController.dispose(); + _searchDebounce?.cancel(); + super.dispose(); + } + + void _filterModels(String query) { + // Debounce for fast search + _searchDebounce?.cancel(); + _searchDebounce = Timer(const Duration(milliseconds: 160), () { + setState(() { + _searchQuery = query.toLowerCase(); + Iterable list = widget.models; + if (_searchQuery.isNotEmpty) { + list = list.where((model) { + return model.name.toLowerCase().contains(_searchQuery) || + model.id.toLowerCase().contains(_searchQuery); + }); + } + // No capability filters + _filteredModels = list.toList(); + }); + }); + } + + @override + Widget build(BuildContext context) { + return DraggableScrollableSheet( + initialChildSize: 0.75, + maxChildSize: 0.92, + minChildSize: 0.45, + builder: (context, scrollController) { + return Container( + decoration: BoxDecoration( + color: context.conduitTheme.surfaceBackground, + borderRadius: const BorderRadius.vertical( + top: Radius.circular(AppBorderRadius.bottomSheet), + ), + border: Border.all( + color: context.conduitTheme.dividerColor, + width: BorderWidth.regular, + ), + boxShadow: ConduitShadows.modal, + ), + child: SafeArea( + top: false, + bottom: true, + child: Padding( + padding: const EdgeInsets.all(Spacing.bottomSheetPadding), + child: Column( + children: [ + // Handle bar + Container( + margin: const EdgeInsets.only( + top: Spacing.sm, + bottom: Spacing.md, + ), + width: Spacing.xxl, + height: Spacing.xs, + decoration: BoxDecoration( + color: context.conduitTheme.dividerColor, + borderRadius: BorderRadius.circular(AppBorderRadius.xs), + ), + ), + + // Header + Padding( + padding: const EdgeInsets.only(bottom: Spacing.sm), + child: Row( + children: [ + Expanded( + child: Text( + 'Choose Model', + style: TextStyle( + color: context.conduitTheme.textPrimary, + fontSize: AppTypography.headlineMedium, + fontWeight: FontWeight.w600, + ), + ), + ), + // Removed capabilities legend to reduce icon noise + ], + ), + ), + + // Search field + Padding( + padding: const EdgeInsets.only(bottom: Spacing.md), + child: TextField( + controller: _searchController, + style: TextStyle(color: context.conduitTheme.textPrimary), + decoration: InputDecoration( + hintText: 'Search...', + hintStyle: TextStyle( + color: context.conduitTheme.inputPlaceholder, + ), + prefixIcon: Icon( + Platform.isIOS ? CupertinoIcons.search : Icons.search, + color: context.conduitTheme.iconSecondary, + ), + filled: true, + fillColor: context.conduitTheme.inputBackground, + border: OutlineInputBorder( + borderRadius: BorderRadius.circular( + AppBorderRadius.md, + ), + borderSide: BorderSide.none, + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular( + AppBorderRadius.md, + ), + borderSide: BorderSide( + color: context.conduitTheme.inputBorder, + width: 1, + ), + ), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular( + AppBorderRadius.md, + ), + borderSide: BorderSide( + color: context.conduitTheme.buttonPrimary, + width: 1, + ), + ), + contentPadding: const EdgeInsets.symmetric( + horizontal: Spacing.md, + vertical: Spacing.md, + ), + ), + onChanged: _filterModels, + ), + ), + + // Removed capability filters + const SizedBox(height: Spacing.sm), + + // Models list + Expanded( + child: Scrollbar( + controller: scrollController, + child: _filteredModels.isEmpty + ? Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + Platform.isIOS + ? CupertinoIcons.search_circle + : Icons.search_off, + size: 48, + color: context.conduitTheme.iconSecondary, + ), + const SizedBox(height: Spacing.md), + Text( + 'No results', + style: TextStyle( + color: context.conduitTheme.textSecondary, + fontSize: AppTypography.bodyLarge, + ), + ), + ], + ), + ) + : ListView.builder( + controller: scrollController, + padding: EdgeInsets.zero, + itemCount: _filteredModels.length, + itemBuilder: (context, index) { + final model = _filteredModels[index]; + final isSelected = + widget.ref + .watch(selectedModelProvider) + ?.id == + model.id; + + return _buildModelListTile( + model: model, + isSelected: isSelected, + onTap: () { + HapticFeedback.selectionClick(); + widget.ref + .read( + selectedModelProvider.notifier, + ) + .state = + model; + Navigator.pop(context); + }, + ); + }, + ), + ), + ), + ], + ), + ), + ), + ); + }, + ); + } + + // Layout toggle removed + + // Removed grid card renderer (grid view removed) + + bool _modelSupportsReasoning(Model model) { + // Only rely on supported_parameters containing 'reasoning' + final params = model.supportedParameters ?? const []; + return params.any((p) => p.toLowerCase().contains('reasoning')); + } + + // Removed: _capabilityBadge no longer used + + // Removed: _capabilityPlusBadge no longer used + + Widget _buildModelListTile({ + required Model model, + required bool isSelected, + required VoidCallback onTap, + }) { + return PressableScale( + onTap: onTap, + borderRadius: BorderRadius.circular(AppBorderRadius.md), + child: Container( + margin: const EdgeInsets.only(bottom: Spacing.md), + decoration: BoxDecoration( + gradient: isSelected + ? LinearGradient( + colors: [ + context.conduitTheme.buttonPrimary.withValues(alpha: 0.2), + context.conduitTheme.buttonPrimary.withValues(alpha: 0.1), + ], + ) + : null, + color: isSelected + ? null + : context.conduitTheme.surfaceBackground.withValues(alpha: 0.05), + borderRadius: BorderRadius.circular(AppBorderRadius.md), + border: Border.all( + color: isSelected + ? context.conduitTheme.buttonPrimary.withValues(alpha: 0.5) + : context.conduitTheme.dividerColor, + width: BorderWidth.regular, + ), + boxShadow: isSelected ? ConduitShadows.card : null, + ), + child: Padding( + padding: const EdgeInsets.symmetric( + horizontal: Spacing.md, + vertical: Spacing.sm, + ), + child: Row( + children: [ + Container( + width: 32, + height: 32, + decoration: BoxDecoration( + color: context.conduitTheme.buttonPrimary.withValues( + alpha: 0.15, + ), + borderRadius: BorderRadius.circular(AppBorderRadius.md), + ), + child: Icon( + Platform.isIOS ? CupertinoIcons.cube : Icons.psychology, + color: context.conduitTheme.buttonPrimary, + size: 16, + ), + ), + const SizedBox(width: Spacing.md), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + model.name, + style: TextStyle( + color: context.conduitTheme.textPrimary, + fontWeight: FontWeight.w600, + fontSize: AppTypography.bodyMedium, + ), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + const SizedBox(height: Spacing.xs), + Row( + children: [ + if (model.isMultimodal) + _capabilityChip( + icon: Platform.isIOS + ? CupertinoIcons.photo + : Icons.image, + label: 'Multimodal', + ), + if (_modelSupportsReasoning(model)) + _capabilityChip( + icon: Platform.isIOS + ? CupertinoIcons.lightbulb + : Icons.psychology_alt, + label: 'Reasoning', + ), + ], + ), + ], + ), + ), + const SizedBox(width: Spacing.md), + AnimatedOpacity( + opacity: isSelected ? 1 : 0.6, + duration: AnimationDuration.fast, + child: Container( + padding: const EdgeInsets.all(Spacing.xxs), + decoration: BoxDecoration( + color: isSelected + ? context.conduitTheme.buttonPrimary + : context.conduitTheme.surfaceBackground, + borderRadius: BorderRadius.circular(AppBorderRadius.md), + border: Border.all( + color: isSelected + ? context.conduitTheme.buttonPrimary.withValues( + alpha: 0.6, + ) + : context.conduitTheme.dividerColor, + ), + ), + child: Icon( + isSelected + ? (Platform.isIOS + ? CupertinoIcons.check_mark + : Icons.check) + : (Platform.isIOS ? CupertinoIcons.add : Icons.add), + color: isSelected + ? context.conduitTheme.textInverse + : context.conduitTheme.iconSecondary, + size: 14, + ), + ), + ), + ], + ), + ), + ), + ).animate().fadeIn(duration: AnimationDuration.microInteraction); + } + + // Intentionally left blank placeholder for nested helper; moved to top-level below +} + +class _VoiceInputSheet extends ConsumerStatefulWidget { + final Function(String) onTextReceived; + + const _VoiceInputSheet({required this.onTextReceived}); + + @override + ConsumerState<_VoiceInputSheet> createState() => _VoiceInputSheetState(); +} + +class _VoiceInputSheetState extends ConsumerState<_VoiceInputSheet> { + bool _isListening = false; + String _recognizedText = ''; + late VoiceInputService _voiceService; + StreamSubscription? _intensitySub; + int _intensity = 0; + StreamSubscription? _textSub; + int _elapsedSeconds = 0; + Timer? _elapsedTimer; + bool _isTranscribing = false; + String _languageTag = 'en'; + + @override + void initState() { + super.initState(); + _voiceService = ref.read(voiceInputServiceProvider); + try { + _languageTag = WidgetsBinding.instance.platformDispatcher.locale + .toLanguageTag() + .split(RegExp('[-_]')) + .first + .toLowerCase(); + } catch (_) { + _languageTag = 'en'; + } + } + + void _startListening() async { + setState(() { + _isListening = true; + _recognizedText = ''; + _elapsedSeconds = 0; + }); + + try { + // Ensure service is initialized and has permission + final ok = await _voiceService.initialize(); + if (!ok || !await _voiceService.checkPermissions()) { + throw Exception('Microphone permission not granted'); + } + + // Start elapsed timer for UX + _elapsedTimer?.cancel(); + _elapsedTimer = Timer.periodic(const Duration(seconds: 1), (t) { + if (!mounted || !_isListening) { + t.cancel(); + return; + } + setState(() => _elapsedSeconds += 1); + }); + + final stream = _voiceService.startListening(); + _intensitySub = _voiceService.intensityStream.listen((value) { + if (!mounted) return; + setState(() => _intensity = value); + }); + _textSub = stream.listen( + (text) { + // If we receive a special token with recorded audio path, transcribe it via API + if (text.startsWith('[[AUDIO_FILE_PATH]]:')) { + final filePath = text.split(':').skip(1).join(':'); + debugPrint( + 'DEBUG: VoiceInputSheet received audio file path: ' + filePath, + ); + _transcribeRecordedFile(filePath); + } else { + setState(() { + _recognizedText = text; + }); + } + }, + onDone: () { + debugPrint('DEBUG: VoiceInputSheet stream done'); + setState(() { + _isListening = false; + }); + _elapsedTimer?.cancel(); + }, + onError: (error) { + debugPrint('DEBUG: VoiceInputSheet stream error: $error'); + setState(() { + _isListening = false; + }); + _elapsedTimer?.cancel(); + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text('Voice input error: $error'), + backgroundColor: context.conduitTheme.error, + ), + ); + } + }, + ); + } catch (e) { + setState(() { + _isListening = false; + }); + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text('Failed to start voice input: $e'), + backgroundColor: context.conduitTheme.error, + ), + ); + } + } + } + + Future _transcribeRecordedFile(String filePath) async { + try { + setState(() => _isTranscribing = true); + final api = ref.read(apiServiceProvider); + if (api == null) throw Exception('API service unavailable'); + final file = File(filePath); + final bytes = await file.readAsBytes(); + // Try to use device locale; fall back to en-US + String? language; + try { + language = WidgetsBinding.instance.platformDispatcher.locale + .toLanguageTag(); + } catch (_) { + language = 'en-US'; + } + final text = await api.transcribeAudio( + bytes.toList(), + language: language, + ); + debugPrint( + 'DEBUG: Transcription received: ' + (text.isEmpty ? '[empty]' : text), + ); + if (!mounted) return; + setState(() { + _recognizedText = text; + }); + // Stop listening state if we have a result + setState(() => _isListening = false); + } catch (e) { + if (!mounted) return; + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text('Transcription failed: $e'), + backgroundColor: context.conduitTheme.error, + ), + ); + setState(() => _isListening = false); + } finally { + if (mounted) setState(() => _isTranscribing = false); + } + } + + Future _stopListening() async { + _intensitySub?.cancel(); + _intensitySub = null; + // Keep text subscription active to receive final audio path emission + await _voiceService.stopListening(); + _elapsedTimer?.cancel(); + if (mounted) { + setState(() { + _isListening = false; + }); + } + } + + void _sendText() { + if (_recognizedText.isNotEmpty) { + widget.onTextReceived(_recognizedText); + Navigator.pop(context); + } + } + + String _formatSeconds(int seconds) { + final m = (seconds ~/ 60).toString().padLeft(1, '0'); + final s = (seconds % 60).toString().padLeft(2, '0'); + return '$m:$s'; + } + + void _cancel() { + _stopListening(); + Navigator.pop(context); + } + + @override + void dispose() { + _intensitySub?.cancel(); + _textSub?.cancel(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return Container( + height: MediaQuery.of(context).size.height * 0.6, + decoration: BoxDecoration( + color: context.conduitTheme.surfaceBackground, + borderRadius: const BorderRadius.vertical( + top: Radius.circular(AppBorderRadius.lg), + ), + border: Border.all(color: context.conduitTheme.dividerColor, width: 1), + ), + child: Column( + children: [ + // Handle bar + Container( + margin: const EdgeInsets.only(top: Spacing.sm), + width: 40, + height: 4, + decoration: BoxDecoration( + color: context.conduitTheme.dividerColor, + borderRadius: BorderRadius.circular(AppBorderRadius.xs), + ), + ), + + // Header: Title + timer + language chip + Padding( + padding: const EdgeInsets.all(Spacing.lg), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + _isListening + ? 'Listening\u2026' + : _isTranscribing + ? 'Transcribing\u2026' + : 'Voice', + style: TextStyle( + fontSize: AppTypography.headlineMedium, + fontWeight: FontWeight.w600, + color: context.conduitTheme.textPrimary, + ), + ), + Row( + children: [ + // Language chip + Container( + padding: const EdgeInsets.symmetric( + horizontal: Spacing.xs, + vertical: 4, + ), + decoration: BoxDecoration( + color: context.conduitTheme.surfaceBackground + .withValues(alpha: 0.4), + borderRadius: BorderRadius.circular( + AppBorderRadius.badge, + ), + border: Border.all( + color: context.conduitTheme.dividerColor, + width: BorderWidth.thin, + ), + ), + child: Text( + _languageTag.toUpperCase(), + style: TextStyle( + fontSize: AppTypography.labelSmall, + color: context.conduitTheme.textSecondary, + fontWeight: FontWeight.w600, + ), + ), + ), + const SizedBox(width: Spacing.sm), + // Timer + AnimatedOpacity( + opacity: _isListening ? 1 : 0.6, + duration: AnimationDuration.fast, + child: Text( + _formatSeconds(_elapsedSeconds), + style: TextStyle( + color: context.conduitTheme.textSecondary, + fontWeight: FontWeight.w600, + ), + ), + ), + ], + ), + ], + ), + ), + + // Microphone animation and waveform + Expanded( + child: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + // Microphone icon with animation (tap to toggle) + GestureDetector( + onTap: () => + _isListening ? _stopListening() : _startListening(), + child: Container( + width: 100, + height: 100, + decoration: BoxDecoration( + color: _isListening + ? context.conduitTheme.error.withValues( + alpha: 0.2, + ) + : context.conduitTheme.surfaceBackground + .withValues(alpha: Alpha.subtle), + shape: BoxShape.circle, + border: Border.all( + color: _isListening + ? context.conduitTheme.error.withValues( + alpha: 0.5, + ) + : context.conduitTheme.dividerColor, + width: 2, + ), + ), + child: Icon( + _isListening + ? (Platform.isIOS + ? CupertinoIcons.mic_fill + : Icons.mic) + : (Platform.isIOS + ? CupertinoIcons.mic_off + : Icons.mic_off), + size: 40, + color: _isListening + ? context.conduitTheme.error + : context.conduitTheme.iconSecondary, + ), + ), + ) + .animate( + onPlay: (controller) => + _isListening ? controller.repeat() : null, + ) + .scale( + duration: const Duration(milliseconds: 1000), + begin: const Offset(1, 1), + end: const Offset(1.2, 1.2), + ) + .then() + .scale( + duration: const Duration(milliseconds: 1000), + begin: const Offset(1.2, 1.2), + end: const Offset(1, 1), + ), + + const SizedBox(height: Spacing.md), + // Simple animated bars waveform based on intensity proxy + SizedBox( + height: 32, + child: AnimatedSwitcher( + duration: const Duration(milliseconds: 150), + child: Row( + key: ValueKey(_intensity), + mainAxisAlignment: MainAxisAlignment.center, + children: List.generate(12, (i) { + final normalized = ((_intensity + i) % 10) / 10.0; + final barHeight = 8 + (normalized * 24); + return Container( + width: 4, + height: barHeight, + margin: const EdgeInsets.symmetric(horizontal: 2), + decoration: BoxDecoration( + color: context.conduitTheme.buttonPrimary + .withValues(alpha: 0.7), + borderRadius: BorderRadius.circular(2), + ), + ); + }), + ), + ), + ), + const SizedBox(height: Spacing.xl), + + // Recognized text / Transcribing state + Container( + margin: const EdgeInsets.symmetric(horizontal: 20), + padding: const EdgeInsets.all(Spacing.md), + constraints: BoxConstraints( + maxHeight: MediaQuery.of(context).size.height * 0.2, + minHeight: 80, + ), + decoration: BoxDecoration( + color: context.conduitTheme.inputBackground, + borderRadius: BorderRadius.circular(AppBorderRadius.md), + border: Border.all( + color: context.conduitTheme.inputBorder, + width: 1, + ), + ), + child: _isTranscribing + ? Center( + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SizedBox( + width: 16, + height: 16, + child: CircularProgressIndicator( + strokeWidth: 2, + color: context.conduitTheme.buttonPrimary, + ), + ), + const SizedBox(width: Spacing.xs), + Text( + 'Transcribing…', + style: TextStyle( + fontSize: AppTypography.bodyLarge, + color: context.conduitTheme.textSecondary, + ), + ), + ], + ), + ) + : SingleChildScrollView( + child: Text( + _recognizedText.isEmpty + ? (_isListening + ? 'Speak now…' + : 'Tap Start to begin') + : _recognizedText, + style: TextStyle( + fontSize: AppTypography.bodyLarge, + color: _recognizedText.isEmpty + ? context.conduitTheme.inputPlaceholder + : context.conduitTheme.textPrimary, + height: 1.5, + ), + textAlign: TextAlign.center, + ), + ), + ), + ], + ), + ), + ), + + // Action buttons + Padding( + padding: const EdgeInsets.all(Spacing.lg), + child: Row( + children: [ + // Start/Stop toggle button + Expanded( + child: FilledButton.tonal( + onPressed: _isListening ? _stopListening : _startListening, + style: FilledButton.styleFrom( + padding: const EdgeInsets.symmetric(vertical: Spacing.md), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.md), + ), + ), + child: Text( + _isListening ? 'Stop' : 'Start', + style: TextStyle( + fontSize: AppTypography.bodyLarge, + fontWeight: FontWeight.w600, + color: context.conduitTheme.textPrimary, + ), + ), + ), + ), + + const SizedBox(width: Spacing.xs), + // Cancel button + Expanded( + child: TextButton( + onPressed: _cancel, + style: TextButton.styleFrom( + padding: const EdgeInsets.symmetric(vertical: Spacing.md), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.md), + side: BorderSide( + color: context.conduitTheme.dividerColor, + width: 1, + ), + ), + ), + child: Text( + 'Cancel', + style: TextStyle( + color: context.conduitTheme.textPrimary, + fontSize: AppTypography.bodyLarge, + fontWeight: FontWeight.w500, + ), + ), + ), + ), + + const SizedBox(width: Spacing.xs), + + // Send button + Expanded( + child: FilledButton( + onPressed: _recognizedText.isNotEmpty ? _sendText : null, + style: FilledButton.styleFrom( + backgroundColor: context.conduitTheme.buttonPrimary, + foregroundColor: context.conduitTheme.buttonPrimaryText, + padding: const EdgeInsets.symmetric(vertical: Spacing.md), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.md), + ), + ), + child: Text( + 'Send', + style: TextStyle( + fontSize: AppTypography.bodyLarge, + fontWeight: FontWeight.w600, + ), + ), + ), + ), + ], + ), + ), + ], + ), + ); + } +} + +/// Wrapper widget for selectable messages with visual selection indicators +class _SelectableMessageWrapper extends StatelessWidget { + final bool isSelected; + final VoidCallback onTap; + final VoidCallback? onLongPress; + final Widget child; + + const _SelectableMessageWrapper({ + required this.isSelected, + required this.onTap, + this.onLongPress, + required this.child, + }); + + @override + Widget build(BuildContext context) { + return GestureDetector( + onTap: onTap, + onLongPress: onLongPress, + child: Container( + margin: const EdgeInsets.symmetric(vertical: Spacing.xs), + decoration: BoxDecoration( + color: isSelected + ? context.conduitTheme.buttonPrimary.withValues(alpha: 0.1) + : Colors.transparent, + borderRadius: BorderRadius.circular(AppBorderRadius.md), + border: isSelected + ? Border.all( + color: context.conduitTheme.buttonPrimary.withValues( + alpha: 0.3, + ), + width: 2, + ) + : null, + ), + child: Stack( + children: [ + child, + if (isSelected) + Positioned( + top: Spacing.sm, + right: Spacing.sm, + child: Container( + width: 24, + height: 24, + decoration: BoxDecoration( + color: context.conduitTheme.buttonPrimary, + shape: BoxShape.circle, + boxShadow: ConduitShadows.medium, + ), + child: Icon( + Icons.check, + color: context.conduitTheme.textInverse, + size: 16, + ), + ), + ), + ], + ), + ), + ); + } +} + +// Extension on _ChatPageState for utility methods +extension on _ChatPageState { + Widget _buildChatBanner(BuildContext context, Map banner) { + final theme = Theme.of(context); + + final type = banner['type'] as String? ?? 'info'; + final content = banner['content'] as String? ?? ''; + + if (content.isEmpty) return const SizedBox.shrink(); + + Color backgroundColor; + Color textColor; + IconData icon; + + switch (type) { + case 'warning': + backgroundColor = context.conduitTheme.warning.withValues(alpha: 0.2); + textColor = context.conduitTheme.warning; + icon = Platform.isIOS + ? CupertinoIcons.exclamationmark_triangle + : Icons.warning; + break; + case 'error': + backgroundColor = theme.colorScheme.errorContainer; + textColor = theme.colorScheme.onErrorContainer; + icon = Platform.isIOS ? CupertinoIcons.xmark_circle : Icons.error; + break; + default: // info + backgroundColor = theme.colorScheme.primaryContainer; + textColor = theme.colorScheme.onPrimaryContainer; + icon = Platform.isIOS ? CupertinoIcons.info_circle : Icons.info; + } + + return Container( + width: double.infinity, + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8), + color: backgroundColor, + child: Row( + children: [ + Icon(icon, color: textColor, size: 16), + const SizedBox(width: Spacing.sm), + Expanded( + child: Text( + content, + style: theme.textTheme.bodySmall?.copyWith( + color: textColor, + fontWeight: FontWeight.w500, + ), + ), + ), + ], + ), + ); + } +} diff --git a/lib/features/chat/views/chat_page_helpers.dart b/lib/features/chat/views/chat_page_helpers.dart new file mode 100644 index 0000000..a335c6e --- /dev/null +++ b/lib/features/chat/views/chat_page_helpers.dart @@ -0,0 +1,68 @@ +import 'package:flutter/material.dart'; +import '../../../shared/theme/theme_extensions.dart'; + +class PressableScale extends StatefulWidget { + final Widget child; + final VoidCallback? onTap; + final BorderRadius? borderRadius; + + const PressableScale({ + super.key, + required this.child, + this.onTap, + this.borderRadius, + }); + + @override + State createState() => _PressableScaleState(); +} + +class _PressableScaleState extends State + with SingleTickerProviderStateMixin { + late AnimationController _controller; + late Animation _scale; + + @override + void initState() { + super.initState(); + _controller = AnimationController( + vsync: this, + duration: AnimationDuration.fast, + lowerBound: 0.0, + upperBound: 1.0, + ); + _scale = Tween(begin: 1.0, end: 0.98).animate( + CurvedAnimation(parent: _controller, curve: AnimationCurves.easeInOut), + ); + } + + @override + void dispose() { + _controller.dispose(); + super.dispose(); + } + + void _onTapDown(TapDownDetails _) => _controller.forward(); + void _onTapUp(TapUpDetails _) => _controller.reverse(); + void _onTapCancel() => _controller.reverse(); + + @override + Widget build(BuildContext context) { + return GestureDetector( + onTapDown: _onTapDown, + onTapUp: _onTapUp, + onTapCancel: _onTapCancel, + onTap: widget.onTap, + child: ScaleTransition( + scale: _scale, + child: ClipRRect( + borderRadius: + widget.borderRadius ?? + BorderRadius.circular(AppBorderRadius.card), + child: widget.child, + ), + ), + ); + } +} + diff --git a/lib/features/chat/views/conversation_search_page.dart b/lib/features/chat/views/conversation_search_page.dart new file mode 100644 index 0000000..d7cc921 --- /dev/null +++ b/lib/features/chat/views/conversation_search_page.dart @@ -0,0 +1,370 @@ +import 'package:flutter/material.dart'; +import '../../../shared/theme/theme_extensions.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'dart:io' show Platform; +import '../../../shared/utils/platform_utils.dart'; +import '../widgets/conversation_search_widget.dart'; +import '../../../core/providers/app_providers.dart'; +import '../providers/chat_providers.dart'; +import 'chat_page.dart'; + +/// Dedicated page for conversation search functionality +class ConversationSearchPage extends ConsumerStatefulWidget { + const ConversationSearchPage({super.key}); + + @override + ConsumerState createState() => + _ConversationSearchPageState(); +} + +class _ConversationSearchPageState + extends ConsumerState { + @override + Widget build(BuildContext context) { + final conduitTheme = context.conduitTheme; + + return Scaffold( + backgroundColor: Theme.of(context).scaffoldBackgroundColor, + appBar: _buildAppBar(context, conduitTheme), + body: ConversationSearchWidget( + onResultTap: _onSearchResultTap, + showFilters: true, + ), + ); + } + + PreferredSizeWidget _buildAppBar( + BuildContext context, + ConduitThemeExtension theme, + ) { + if (Platform.isIOS) { + return CupertinoNavigationBar( + backgroundColor: Theme.of(context).scaffoldBackgroundColor, + border: Border(bottom: BorderSide(color: theme.cardBorder, width: 0.5)), + leading: CupertinoNavigationBarBackButton( + color: context.conduitTheme.textPrimary, + onPressed: () => Navigator.of(context).pop(), + ), + middle: Text( + 'Search Conversations', + style: TextStyle( + color: context.conduitTheme.textPrimary, + fontSize: AppTypography.bodyLarge, + fontWeight: FontWeight.w600, + ), + ), + ); + } + + return AppBar( + backgroundColor: Theme.of(context).scaffoldBackgroundColor, + elevation: Elevation.none, + title: Text( + 'Search Conversations', + style: TextStyle( + color: context.conduitTheme.textPrimary, + fontSize: AppTypography.headlineMedium, + fontWeight: FontWeight.w600, + ), + ), + leading: IconButton( + icon: Icon(Icons.arrow_back, color: context.conduitTheme.textPrimary), + onPressed: () => Navigator.of(context).pop(), + ), + bottom: PreferredSize( + preferredSize: const Size.fromHeight(1), + child: Container(height: 1, color: theme.cardBorder), + ), + ); + } + + void _onSearchResultTap(String conversationId, String? messageId) { + PlatformUtils.lightHaptic(); + + // Set the active conversation + final conversationsAsync = ref.read(conversationsProvider); + conversationsAsync.whenData((conversations) { + final conversation = conversations.firstWhere( + (c) => c.id == conversationId, + orElse: () => throw Exception('Conversation not found'), + ); + + // Set active conversation + ref.read(activeConversationProvider.notifier).state = conversation; + + // Navigate back to chat + Navigator.of(context).pop(); + + // If we have a specific message, navigate to it and highlight it + if (messageId != null) { + // Use a custom navigation approach with message highlighting + Navigator.of(context).pushReplacement( + MaterialPageRoute( + builder: (context) => + ChatPageWithHighlight(messageIdToHighlight: messageId), + ), + ); + } + }); + } +} + +/// Chat page wrapper that highlights a specific message +class ChatPageWithHighlight extends ConsumerStatefulWidget { + final String messageIdToHighlight; + + const ChatPageWithHighlight({super.key, required this.messageIdToHighlight}); + + @override + ConsumerState createState() => + _ChatPageWithHighlightState(); +} + +class _ChatPageWithHighlightState extends ConsumerState { + final ScrollController _scrollController = ScrollController(); + + @override + void initState() { + super.initState(); + + // Schedule highlighting after the widget is built + WidgetsBinding.instance.addPostFrameCallback((_) { + _scrollToAndHighlightMessage(); + }); + } + + @override + void dispose() { + _scrollController.dispose(); + super.dispose(); + } + + void _scrollToAndHighlightMessage() async { + try { + final messages = ref.read(chatMessagesProvider); + final messageIndex = messages.indexWhere( + (msg) => msg.id == widget.messageIdToHighlight, + ); + + if (messageIndex >= 0 && _scrollController.hasClients) { + // Calculate the approximate position (assuming 100px per message) + final targetOffset = messageIndex * 100.0; + + // Scroll to the message + await _scrollController.animateTo( + targetOffset, + duration: const Duration(milliseconds: 500), + curve: Curves.easeInOut, + ); + + // Show a highlight indicator + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text('Found message'), + duration: const Duration(seconds: 2), + backgroundColor: context.conduitTheme.buttonPrimary, + ), + ); + } + } + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text('Message not found'), + backgroundColor: context.conduitTheme.error, + ), + ); + } + } + } + + @override + Widget build(BuildContext context) { + return const ChatPage(); + } +} + +/// Search icon button for app bars +class ConversationSearchButton extends ConsumerWidget { + final VoidCallback? onPressed; + + const ConversationSearchButton({super.key, this.onPressed}); + + @override + Widget build(BuildContext context, WidgetRef ref) { + return IconButton( + icon: Icon( + Platform.isIOS ? CupertinoIcons.search : Icons.search, + color: context.conduitTheme.iconPrimary.withValues(alpha: 0.8), + size: IconSize.lg, + ), + onPressed: + onPressed ?? + () { + PlatformUtils.lightHaptic(); + Navigator.of(context).push( + Platform.isIOS + ? CupertinoPageRoute( + builder: (context) => const ConversationSearchPage(), + ) + : MaterialPageRoute( + builder: (context) => const ConversationSearchPage(), + ), + ); + }, + tooltip: 'Search conversations', + ); + } +} + +/// Quick search overlay that can be shown from any page +class QuickSearchOverlay extends ConsumerStatefulWidget { + final VoidCallback? onDismiss; + + const QuickSearchOverlay({super.key, this.onDismiss}); + + @override + ConsumerState createState() => _QuickSearchOverlayState(); +} + +class _QuickSearchOverlayState extends ConsumerState + with SingleTickerProviderStateMixin { + late AnimationController _animationController; + late Animation _fadeAnimation; + late Animation _slideAnimation; + + @override + void initState() { + super.initState(); + _animationController = AnimationController( + duration: const Duration(milliseconds: 300), + vsync: this, + ); + + _fadeAnimation = Tween(begin: 0.0, end: 1.0).animate( + CurvedAnimation(parent: _animationController, curve: Curves.easeOut), + ); + + _slideAnimation = + Tween(begin: const Offset(0, -1), end: Offset.zero).animate( + CurvedAnimation(parent: _animationController, curve: Curves.easeOut), + ); + + _animationController.forward(); + } + + @override + void dispose() { + _animationController.dispose(); + super.dispose(); + } + + Future _dismiss() async { + await _animationController.reverse(); + widget.onDismiss?.call(); + } + + @override + Widget build(BuildContext context) { + return AnimatedBuilder( + animation: _animationController, + builder: (context, child) { + return Stack( + children: [ + // Backdrop + GestureDetector( + onTap: _dismiss, + child: Container( + color: context.conduitTheme.surfaceBackground.withValues( + alpha: 0.7 * _fadeAnimation.value, + ), + ), + ), + + // Search panel + SlideTransition( + position: _slideAnimation, + child: FadeTransition( + opacity: _fadeAnimation, + child: Container( + height: MediaQuery.of(context).size.height * 0.8, + margin: const EdgeInsets.only(top: Spacing.xxxl + Spacing.md), + decoration: BoxDecoration( + color: context.conduitTheme.surfaceBackground, + borderRadius: const BorderRadius.vertical( + top: Radius.circular(AppBorderRadius.lg), + ), + ), + child: Column( + children: [ + // Handle bar + Container( + margin: const EdgeInsets.only(top: Spacing.sm), + width: 40, + height: 4, + decoration: BoxDecoration( + color: context.conduitTheme.textPrimary.withValues( + alpha: 0.3, + ), + borderRadius: BorderRadius.circular( + AppBorderRadius.xs, + ), + ), + ), + + // Search content + Expanded( + child: ConversationSearchWidget( + onResultTap: (conversationId, messageId) { + _onSearchResultTap(conversationId, messageId); + _dismiss(); + }, + showFilters: false, // Simplified for overlay + ), + ), + ], + ), + ), + ), + ), + ], + ); + }, + ); + } + + void _onSearchResultTap(String conversationId, String? messageId) { + // Same logic as the search page + final conversationsAsync = ref.read(conversationsProvider); + conversationsAsync.whenData((conversations) { + final conversation = conversations.firstWhere( + (c) => c.id == conversationId, + orElse: () => throw Exception('Conversation not found'), + ); + + ref.read(activeConversationProvider.notifier).state = conversation; + + if (messageId != null) { + debugPrint( + 'Navigate to message: $messageId in conversation: $conversationId', + ); + } + }); + } +} + +/// Show quick search overlay +void showQuickSearch(BuildContext context) { + showGeneralDialog( + context: context, + barrierColor: Colors.transparent, + barrierDismissible: true, + transitionDuration: const Duration(milliseconds: 300), + pageBuilder: (context, animation, secondaryAnimation) { + return QuickSearchOverlay(onDismiss: () => Navigator.of(context).pop()); + }, + ); +} diff --git a/lib/features/chat/views/model_selector_page.dart b/lib/features/chat/views/model_selector_page.dart new file mode 100644 index 0000000..b5fbfed --- /dev/null +++ b/lib/features/chat/views/model_selector_page.dart @@ -0,0 +1,465 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'dart:io' show Platform; +import '../../../core/models/model.dart'; +import '../../../core/providers/app_providers.dart'; +import '../../../shared/theme/theme_extensions.dart'; +import '../../../shared/theme/app_theme.dart'; + +class ModelSelectorPage extends ConsumerStatefulWidget { + const ModelSelectorPage({super.key}); + + @override + ConsumerState createState() => _ModelSelectorPageState(); +} + +class _ModelSelectorPageState extends ConsumerState { + final TextEditingController _searchController = TextEditingController(); + final FocusNode _searchFocusNode = FocusNode(); + String _searchQuery = ''; + + @override + void initState() { + super.initState(); + _searchController.addListener(_onSearchChanged); + } + + @override + void dispose() { + _searchController.removeListener(_onSearchChanged); + _searchController.dispose(); + _searchFocusNode.dispose(); + super.dispose(); + } + + void _onSearchChanged() { + setState(() { + _searchQuery = _searchController.text; + }); + } + + List _filterModels(List models) { + if (_searchQuery.isEmpty) { + return models; + } + + final query = _searchQuery.toLowerCase(); + return models.where((model) { + return model.name.toLowerCase().contains(query) || + (model.description?.toLowerCase().contains(query) ?? false); + }).toList(); + } + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + final modelsAsync = ref.watch(modelsProvider); + final selectedModel = ref.watch(selectedModelProvider); + + return Scaffold( + appBar: AppBar( + title: const Text('Select Model'), + leading: IconButton( + icon: Icon(Platform.isIOS ? CupertinoIcons.back : Icons.arrow_back), + onPressed: () => Navigator.pop(context), + ), + ), + body: Column( + children: [ + // Search bar + Container( + padding: const EdgeInsets.all(Spacing.md), + decoration: BoxDecoration( + color: theme.scaffoldBackgroundColor, + border: Border( + bottom: BorderSide( + color: theme.dividerColor.withValues(alpha: 0.1), + width: BorderWidth.regular, + ), + ), + ), + child: _buildSearchField(), + ), + // Models list + Expanded( + child: modelsAsync.when( + data: (models) { + final filteredModels = _filterModels(models); + + if (models.isEmpty) { + return Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + Platform.isIOS + ? CupertinoIcons.cube_box + : Icons.view_in_ar, + size: 64, + color: theme.colorScheme.onSurface.withValues( + alpha: 0.3, + ), + ), + const SizedBox(height: Spacing.md), + Text( + 'No models available', + style: theme.textTheme.titleMedium?.copyWith( + color: theme.colorScheme.onSurface.withValues( + alpha: 0.6, + ), + ), + ), + const SizedBox(height: Spacing.sm), + Text( + 'Please check your Open-WebUI configuration', + style: theme.textTheme.bodyMedium?.copyWith( + color: theme.colorScheme.onSurface.withValues( + alpha: 0.5, + ), + ), + ), + ], + ), + ); + } + + if (filteredModels.isEmpty && _searchQuery.isNotEmpty) { + return Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + Platform.isIOS + ? CupertinoIcons.search + : Icons.search_off, + size: 64, + color: theme.colorScheme.onSurface.withValues( + alpha: 0.3, + ), + ), + const SizedBox(height: Spacing.md), + Text( + 'No models found', + style: theme.textTheme.titleMedium?.copyWith( + color: theme.colorScheme.onSurface.withValues( + alpha: 0.6, + ), + ), + ), + const SizedBox(height: Spacing.sm), + Text( + 'Try searching with different keywords', + style: theme.textTheme.bodyMedium?.copyWith( + color: theme.colorScheme.onSurface.withValues( + alpha: 0.5, + ), + ), + ), + ], + ), + ); + } + + // Group models by category if needed + final groupedModels = _groupModels(filteredModels); + + return ListView.builder( + padding: const EdgeInsets.symmetric(vertical: 8), + itemCount: groupedModels.length, + itemBuilder: (context, index) { + final group = groupedModels[index]; + + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + if (group.title != null) ...[ + Padding( + padding: const EdgeInsets.fromLTRB( + Spacing.md, + Spacing.md, + Spacing.md, + Spacing.sm, + ), + child: Text( + group.title!, + style: theme.textTheme.titleSmall?.copyWith( + color: theme.colorScheme.primary, + fontWeight: FontWeight.w600, + ), + ), + ), + ], + ...group.models.map( + (model) => ModelTile( + model: model, + isSelected: selectedModel?.id == model.id, + onTap: () { + ref.read(selectedModelProvider.notifier).state = + model; + Navigator.pop(context); + }, + ), + ), + ], + ); + }, + ); + }, + loading: () => const Center(child: CircularProgressIndicator()), + error: (error, _) => Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + Platform.isIOS + ? CupertinoIcons.exclamationmark_triangle + : Icons.error_outline, + size: 48, + color: theme.colorScheme.error, + ), + const SizedBox(height: Spacing.md), + Text( + 'Failed to load models', + style: theme.textTheme.titleMedium, + ), + const SizedBox(height: Spacing.sm), + Text( + error.toString(), + style: theme.textTheme.bodyMedium?.copyWith( + color: theme.colorScheme.onSurface.withValues( + alpha: 0.6, + ), + ), + textAlign: TextAlign.center, + ), + const SizedBox(height: Spacing.lg), + ElevatedButton.icon( + onPressed: () => ref.refresh(modelsProvider), + icon: Icon( + Platform.isIOS ? CupertinoIcons.refresh : Icons.refresh, + ), + label: const Text('Retry'), + ), + ], + ), + ), + ), + ), + ], + ), + ); + } + + Widget _buildSearchField() { + return Container( + decoration: BoxDecoration( + gradient: LinearGradient( + colors: [ + context.conduitTheme.inputBackground.withValues(alpha: 0.6), + context.conduitTheme.inputBackground.withValues(alpha: 0.3), + ], + begin: Alignment.topLeft, + end: Alignment.bottomRight, + ), + borderRadius: BorderRadius.circular(AppBorderRadius.lg), + border: Border.all( + color: context.conduitTheme.inputBorder.withValues(alpha: 0.3), + width: BorderWidth.thin, + ), + ), + child: TextField( + controller: _searchController, + focusNode: _searchFocusNode, + style: TextStyle( + color: context.conduitTheme.inputText, + fontSize: AppTypography.bodyMedium, + ), + decoration: InputDecoration( + hintText: 'Search models...', + hintStyle: TextStyle( + color: context.conduitTheme.inputPlaceholder.withValues(alpha: 0.8), + fontSize: AppTypography.bodyMedium, + ), + prefixIcon: Icon( + Platform.isIOS ? CupertinoIcons.search : Icons.search, + color: context.conduitTheme.iconSecondary, + size: IconSize.md, + ), + suffixIcon: _searchQuery.isNotEmpty + ? IconButton( + icon: Icon( + Platform.isIOS + ? CupertinoIcons.clear_circled_solid + : Icons.clear, + color: context.conduitTheme.iconSecondary, + size: IconSize.md, + ), + onPressed: () { + _searchController.clear(); + _searchFocusNode.unfocus(); + }, + ) + : null, + border: InputBorder.none, + contentPadding: const EdgeInsets.symmetric( + horizontal: 16, + vertical: 14, + ), + ), + ), + ); + } + + List _groupModels(List models) { + // For now, just return all models in one group + // In the future, we can group by provider, capability, etc. + return [ModelGroup(title: null, models: models)]; + } +} + +class ModelGroup { + final String? title; + final List models; + + ModelGroup({required this.title, required this.models}); +} + +class ModelTile extends StatelessWidget { + final Model model; + final bool isSelected; + final VoidCallback onTap; + + const ModelTile({ + super.key, + required this.model, + required this.isSelected, + required this.onTap, + }); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + return Card( + margin: const EdgeInsets.symmetric(horizontal: 12, vertical: 4), + elevation: isSelected ? 2 : 0, + color: isSelected + ? theme.colorScheme.primary.withValues(alpha: 0.1) + : null, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.md), + side: BorderSide( + color: isSelected + ? theme.colorScheme.primary + : theme.dividerColor.withValues(alpha: 0.3), + width: isSelected ? 2 : 1, + ), + ), + child: InkWell( + onTap: onTap, + borderRadius: BorderRadius.circular(AppBorderRadius.md), + child: Padding( + padding: const EdgeInsets.all(Spacing.md), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Expanded( + child: Text( + model.name, + style: theme.textTheme.titleMedium?.copyWith( + fontWeight: isSelected ? FontWeight.w600 : null, + color: isSelected ? theme.colorScheme.primary : null, + ), + ), + ), + if (isSelected) + Icon( + Platform.isIOS + ? CupertinoIcons.checkmark_circle_fill + : Icons.check_circle, + color: theme.colorScheme.primary, + ), + ], + ), + if (model.description != null) ...[ + const SizedBox(height: Spacing.xs), + Text( + model.description!, + style: theme.textTheme.bodySmall?.copyWith( + color: theme.colorScheme.onSurface.withValues(alpha: 0.6), + ), + maxLines: 2, + overflow: TextOverflow.ellipsis, + ), + ], + const SizedBox(height: Spacing.sm), + Wrap( + spacing: 8, + children: [ + if (model.isMultimodal) + _buildCapabilityChip( + context, + icon: Platform.isIOS ? CupertinoIcons.photo : Icons.image, + label: 'Multimodal', + color: AppTheme.info, + ), + if (model.supportsStreaming) + _buildCapabilityChip( + context, + icon: Platform.isIOS + ? CupertinoIcons.bolt + : Icons.flash_on, + label: 'Streaming', + color: AppTheme.warning, + ), + if (model.supportsRAG) + _buildCapabilityChip( + context, + icon: Platform.isIOS + ? CupertinoIcons.doc_text + : Icons.description, + label: 'RAG', + color: AppTheme.success, + ), + ], + ), + ], + ), + ), + ), + ); + } + + Widget _buildCapabilityChip( + BuildContext context, { + required IconData icon, + required String label, + required Color color, + }) { + return Container( + padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 4), + decoration: BoxDecoration( + color: color.withValues(alpha: 0.1), + borderRadius: BorderRadius.circular(AppBorderRadius.md), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Icon(icon, size: 14, color: color), + const SizedBox(width: Spacing.xs), + Text( + label, + style: TextStyle( + fontSize: AppTypography.labelMedium, + color: color, + fontWeight: FontWeight.w500, + ), + ), + ], + ), + ); + } +} diff --git a/lib/features/chat/widgets/conversation_components.dart b/lib/features/chat/widgets/conversation_components.dart new file mode 100644 index 0000000..d17395b --- /dev/null +++ b/lib/features/chat/widgets/conversation_components.dart @@ -0,0 +1,956 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'dart:io' show Platform; +import 'dart:ui' as ui; + +import '../../../core/models/conversation.dart'; +import '../../../core/providers/app_providers.dart'; +import '../../../shared/theme/app_theme.dart'; +import '../../../shared/theme/theme_extensions.dart'; +import '../../../shared/utils/ui_utils.dart'; +import '../../../shared/widgets/conduit_components.dart'; +import '../providers/chat_providers.dart'; + +// Optimized delete conversation provider with error handling +final deleteConversationProvider = FutureProvider.family(( + ref, + conversationId, +) async { + final api = ref.read(apiServiceProvider); + if (api == null) throw Exception('No API service available'); + + await api.deleteConversation(conversationId); + ref.invalidate(conversationsProvider); +}); + +/// Optimized conversation tile with Conduit design aesthetics +class ModernConversationTile extends ConsumerStatefulWidget { + final Conversation conversation; + final bool isActive; + final Future Function() onTap; + final VoidCallback onDelete; + + const ModernConversationTile({ + super.key, + required this.conversation, + required this.isActive, + required this.onTap, + required this.onDelete, + }); + + @override + ConsumerState createState() => + _ModernConversationTileState(); +} + +class _ModernConversationTileState extends ConsumerState + with SingleTickerProviderStateMixin { + bool _isLoading = false; + late AnimationController _animationController; + late Animation _scaleAnimation; + + @override + void initState() { + super.initState(); + _animationController = AnimationController( + duration: const Duration(milliseconds: 150), + vsync: this, + ); + _scaleAnimation = Tween(begin: 1.0, end: 0.95).animate( + CurvedAnimation(parent: _animationController, curve: Curves.easeInOut), + ); + } + + @override + void dispose() { + _animationController.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return AnimatedBuilder( + animation: _scaleAnimation, + builder: (context, child) { + return Transform.scale( + scale: _scaleAnimation.value, + child: Container( + margin: const EdgeInsets.symmetric( + horizontal: Spacing.md, + vertical: Spacing.xs, + ), + child: Dismissible( + key: Key(widget.conversation.id), + direction: DismissDirection.horizontal, + background: _buildSwipeBackground(DismissDirection.startToEnd), + secondaryBackground: _buildSwipeBackground( + DismissDirection.endToStart, + ), + confirmDismiss: _handleDismiss, + child: _buildTileContent(), + ), + ), + ); + }, + ); + } + + Widget _buildSwipeBackground(DismissDirection direction) { + final isArchive = direction == DismissDirection.startToEnd; + return Container( + decoration: BoxDecoration( + gradient: LinearGradient( + colors: isArchive + ? [ + AppTheme.brandPrimary.withValues(alpha: 0.1), + AppTheme.brandPrimary.withValues(alpha: 0.2), + ] + : [ + AppTheme.error.withValues(alpha: 0.1), + AppTheme.error.withValues(alpha: 0.2), + ], + ), + borderRadius: BorderRadius.circular(AppBorderRadius.lg), + ), + alignment: isArchive ? Alignment.centerLeft : Alignment.centerRight, + padding: EdgeInsets.symmetric(horizontal: Spacing.lg), + child: Container( + width: Spacing.xxl, + height: Spacing.xxl, + decoration: BoxDecoration( + color: isArchive ? AppTheme.brandPrimary : AppTheme.error, + borderRadius: BorderRadius.circular(AppBorderRadius.md), + boxShadow: ConduitShadows.low, + ), + child: Icon( + isArchive + ? (Platform.isIOS ? CupertinoIcons.archivebox : Icons.archive) + : (Platform.isIOS ? CupertinoIcons.delete : Icons.delete), + color: AppTheme.neutral50, + size: AppTypography.headlineMedium, + ), + ), + ); + } + + Future _handleDismiss(DismissDirection direction) async { + if (direction == DismissDirection.startToEnd) { + await _handleArchive(); + } else { + widget.onDelete(); + } + return false; + } + + Widget _buildTileContent() { + return GestureDetector( + onTapDown: (_) => _animationController.forward(), + onTapUp: (_) => _animationController.reverse(), + onTapCancel: () => _animationController.reverse(), + onTap: _isLoading ? null : _handleTap, + child: Container( + padding: const EdgeInsets.all(Spacing.md), + decoration: BoxDecoration( + gradient: widget.isActive + ? LinearGradient( + colors: [ + AppTheme.brandPrimary.withValues(alpha: 0.15), + AppTheme.brandPrimary.withValues(alpha: 0.08), + ], + begin: Alignment.topLeft, + end: Alignment.bottomRight, + ) + : LinearGradient( + colors: [ + AppTheme.neutral700.withValues(alpha: 0.6), + AppTheme.neutral700.withValues(alpha: 0.3), + ], + begin: Alignment.topLeft, + end: Alignment.bottomRight, + ), + borderRadius: BorderRadius.circular(AppBorderRadius.lg), + border: Border.all( + color: widget.isActive + ? AppTheme.brandPrimary.withValues(alpha: 0.3) + : AppTheme.neutral600.withValues(alpha: 0.2), + width: widget.isActive ? BorderWidth.medium : BorderWidth.thin, + ), + boxShadow: widget.isActive ? ConduitShadows.low : null, + ), + child: Row( + children: [ + _buildLeadingIcon(), + const SizedBox(width: Spacing.md), + Expanded(child: _buildContent()), + _buildTrailingActions(), + ], + ), + ), + ); + } + + Widget _buildLeadingIcon() { + if (_isLoading) { + return SizedBox( + width: Spacing.xl, + height: Spacing.xl, + child: CircularProgressIndicator.adaptive( + strokeWidth: BorderWidth.thick, + valueColor: AlwaysStoppedAnimation( + widget.isActive ? AppTheme.brandPrimary : AppTheme.neutral300, + ), + ), + ); + } + + return Container( + width: Spacing.xl, + height: Spacing.xl, + decoration: BoxDecoration( + gradient: widget.isActive + ? LinearGradient( + colors: [AppTheme.brandPrimary, AppTheme.brandPrimaryLight], + begin: Alignment.topLeft, + end: Alignment.bottomRight, + ) + : LinearGradient( + colors: [ + AppTheme.neutral600.withValues(alpha: 0.8), + AppTheme.neutral500.withValues(alpha: 0.6), + ], + ), + borderRadius: BorderRadius.circular(AppBorderRadius.sm), + ), + child: Stack( + alignment: Alignment.center, + children: [ + Icon( + Platform.isIOS + ? CupertinoIcons.chat_bubble_2_fill + : Icons.chat_rounded, + color: AppTheme.neutral50, + size: Spacing.md, + ), + if (widget.conversation.pinned) + Positioned( + top: Spacing.xxs, + right: Spacing.xxs, + child: Container( + width: Spacing.sm, + height: Spacing.sm, + decoration: const BoxDecoration( + color: AppTheme.warning, + shape: BoxShape.circle, + ), + ), + ), + ], + ), + ); + } + + Widget _buildContent() { + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + widget.conversation.title, + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: TextStyle( + color: widget.isActive ? AppTheme.neutral50 : AppTheme.neutral100, + fontWeight: FontWeight.w600, + fontSize: AppTypography.bodyLarge, + letterSpacing: -0.2, + ), + ), + const SizedBox(height: Spacing.xs), + Row( + children: [ + Icon( + Platform.isIOS ? CupertinoIcons.time : Icons.access_time_rounded, + size: AppTypography.labelMedium, + color: AppTheme.neutral400, + ), + const SizedBox(width: Spacing.xs), + Text( + _formatDate(widget.conversation.updatedAt), + style: const TextStyle( + color: AppTheme.neutral400, + fontSize: AppTypography.labelMedium, + fontWeight: FontWeight.w500, + ), + ), + if (widget.conversation.messages.isNotEmpty) ...[ + Container( + margin: const EdgeInsets.symmetric(horizontal: Spacing.sm), + width: Spacing.xxs, + height: Spacing.xxs, + decoration: const BoxDecoration( + color: AppTheme.neutral400, + shape: BoxShape.circle, + ), + ), + Text( + '${widget.conversation.messages.length} messages', + style: const TextStyle( + color: AppTheme.neutral400, + fontSize: AppTypography.labelMedium, + fontWeight: FontWeight.w500, + ), + ), + ], + ], + ), + if (widget.conversation.tags.isNotEmpty) ...[ + const SizedBox(height: Spacing.sm), + _buildTags(), + ], + ], + ); + } + + Widget _buildTags() { + return Wrap( + spacing: Spacing.xs, + runSpacing: Spacing.xs, + children: widget.conversation.tags.take(3).map((tag) { + return Container( + padding: const EdgeInsets.symmetric( + horizontal: Spacing.xs + Spacing.xxs, + vertical: Spacing.xxs, + ), + decoration: BoxDecoration( + color: AppTheme.brandPrimary.withValues(alpha: 0.15), + borderRadius: BorderRadius.circular(AppBorderRadius.xs), + border: Border.all( + color: AppTheme.brandPrimary.withValues(alpha: 0.2), + width: BorderWidth.thin, + ), + ), + child: Text( + tag, + style: const TextStyle( + color: AppTheme.brandPrimary, + fontSize: AppTypography.labelSmall, + fontWeight: FontWeight.w600, + ), + ), + ); + }).toList(), + ); + } + + Widget _buildTrailingActions() { + return PopupMenuButton( + icon: Container( + width: Spacing.xl, + height: Spacing.xl, + decoration: BoxDecoration( + color: AppTheme.neutral700.withValues(alpha: 0.6), + borderRadius: BorderRadius.circular(AppBorderRadius.sm), + ), + child: Icon( + Platform.isIOS ? CupertinoIcons.ellipsis : Icons.more_vert_rounded, + color: AppTheme.neutral300, + size: Spacing.md, + ), + ), + color: AppTheme.neutral800, + elevation: Elevation.high + Spacing.xs, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.md), + side: BorderSide( + color: AppTheme.neutral600.withValues(alpha: 0.3), + width: BorderWidth.thin, + ), + ), + onSelected: _handleMenuAction, + itemBuilder: (context) => _buildMenuItems(), + ); + } + + List> _buildMenuItems() { + return [ + _buildMenuItem( + 'pin', + widget.conversation.pinned + ? (Platform.isIOS + ? CupertinoIcons.pin_slash + : Icons.push_pin_outlined) + : (Platform.isIOS + ? CupertinoIcons.pin_fill + : Icons.push_pin_rounded), + widget.conversation.pinned ? 'Unpin' : 'Pin', + ), + _buildMenuItem( + 'archive', + Platform.isIOS ? CupertinoIcons.archivebox : Icons.archive_rounded, + 'Archive', + ), + _buildMenuItem( + 'share', + Platform.isIOS ? CupertinoIcons.share : Icons.share_rounded, + 'Share', + ), + _buildMenuItem( + 'clone', + Platform.isIOS ? CupertinoIcons.doc_on_doc : Icons.content_copy_rounded, + 'Clone', + ), + PopupMenuItem( + enabled: false, + child: Divider(color: AppTheme.neutral600, height: BorderWidth.regular), + ), + _buildMenuItem( + 'delete', + Platform.isIOS ? CupertinoIcons.delete : Icons.delete_rounded, + 'Delete', + isDestructive: true, + ), + ]; + } + + PopupMenuItem _buildMenuItem( + String value, + IconData icon, + String label, { + bool isDestructive = false, + }) { + return PopupMenuItem( + value: value, + child: Row( + children: [ + Container( + width: Spacing.lg + Spacing.xs, + height: Spacing.lg + Spacing.xs, + decoration: BoxDecoration( + color: isDestructive + ? AppTheme.error.withValues(alpha: 0.1) + : AppTheme.neutral700.withValues(alpha: 0.6), + borderRadius: BorderRadius.circular(AppBorderRadius.xs), + ), + child: Icon( + icon, + size: Spacing.md, + color: isDestructive ? AppTheme.error : AppTheme.neutral200, + ), + ), + const SizedBox(width: Spacing.sm), + Text( + label, + style: TextStyle( + color: isDestructive ? AppTheme.error : AppTheme.neutral50, + fontWeight: FontWeight.w500, + ), + ), + ], + ), + ); + } + + Future _handleTap() async { + setState(() => _isLoading = true); + try { + await widget.onTap(); + } finally { + if (mounted) { + setState(() => _isLoading = false); + } + } + } + + Future _handleMenuAction(String action) async { + switch (action) { + case 'pin': + await _handlePin(); + break; + case 'archive': + await _handleArchive(); + break; + case 'share': + await _handleShare(); + break; + case 'clone': + await _handleClone(); + break; + case 'delete': + widget.onDelete(); + break; + } + } + + Future _handlePin() async { + try { + await pinConversation( + ref, + widget.conversation.id, + !widget.conversation.pinned, + ); + if (mounted) { + UiUtils.showMessage( + context, + widget.conversation.pinned + ? 'Conversation unpinned' + : 'Conversation pinned', + ); + } + } catch (e) { + if (mounted) { + UiUtils.showMessage( + context, + 'Failed to ${widget.conversation.pinned ? 'unpin' : 'pin'} conversation', + ); + } + } + } + + Future _handleArchive() async { + try { + await archiveConversation(ref, widget.conversation.id, true); + if (mounted) { + UiUtils.showMessage(context, 'Conversation archived'); + } + } catch (e) { + if (mounted) { + UiUtils.showMessage(context, 'Failed to archive conversation'); + } + } + } + + Future _handleShare() async { + try { + final shareId = await shareConversation(ref, widget.conversation.id); + if (mounted && shareId != null) { + _showShareDialog(shareId); + } + } catch (e) { + if (mounted) { + UiUtils.showMessage(context, 'Failed to share conversation'); + } + } + } + + Future _handleClone() async { + try { + await cloneConversation(ref, widget.conversation.id); + if (mounted) { + Navigator.pop(context); + UiUtils.showMessage(context, 'Conversation cloned'); + } + } catch (e) { + if (mounted) { + UiUtils.showMessage(context, 'Failed to clone conversation'); + } + } + } + + void _showShareDialog(String shareId) { + final shareUrl = + '${ref.read(apiServiceProvider)?.serverConfig.url}/s/$shareId'; + + showDialog( + context: context, + builder: (context) => AlertDialog( + backgroundColor: AppTheme.neutral800, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.lg), + side: BorderSide( + color: AppTheme.neutral600.withValues(alpha: 0.3), + width: BorderWidth.thin, + ), + ), + title: Row( + children: [ + Container( + width: 32, + height: 32, + decoration: BoxDecoration( + gradient: LinearGradient( + colors: [AppTheme.brandPrimary, AppTheme.brandPrimaryLight], + ), + borderRadius: BorderRadius.circular(AppBorderRadius.sm), + ), + child: const Icon( + Icons.share_rounded, + color: AppTheme.neutral50, + size: Spacing.md, + ), + ), + const SizedBox(width: Spacing.sm), + const Text( + 'Share Conversation', + style: TextStyle( + color: AppTheme.neutral50, + fontWeight: FontWeight.w600, + ), + ), + ], + ), + content: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text( + 'Anyone with this link can view the conversation:', + style: TextStyle(color: AppTheme.neutral300), + ), + const SizedBox(height: Spacing.md), + Container( + padding: const EdgeInsets.all(Spacing.md), + decoration: BoxDecoration( + color: AppTheme.neutral700.withValues(alpha: 0.6), + borderRadius: BorderRadius.circular(AppBorderRadius.md), + border: Border.all( + color: AppTheme.neutral600.withValues(alpha: 0.3), + width: BorderWidth.thin, + ), + ), + child: SelectableText( + shareUrl, + style: const TextStyle( + fontFamily: 'monospace', + color: AppTheme.neutral50, + fontSize: AppTypography.labelMedium, + ), + ), + ), + ], + ), + actions: [ + ConduitButton( + text: 'Close', + isSecondary: true, + onPressed: () => Navigator.pop(context), + ), + ConduitButton( + text: 'Copy Link', + onPressed: () async { + await Clipboard.setData(ClipboardData(text: shareUrl)); + if (context.mounted) { + UiUtils.showMessage(context, 'Link copied to clipboard'); + Navigator.pop(context); + } + }, + ), + ], + ), + ); + } + + String _formatDate(DateTime date) { + final now = DateTime.now(); + + // Convert to local timezone if needed + final localDate = date.toLocal(); + final localNow = now.toLocal(); + final difference = localNow.difference(localDate); + + // Handle negative differences (future dates) + if (difference.isNegative) { + return 'Just now'; + } + + if (difference.inDays == 0) { + if (difference.inHours == 0) { + if (difference.inMinutes <= 1) { + return 'Just now'; + } + return '${difference.inMinutes}m'; + } + return '${difference.inHours}h'; + } else if (difference.inDays == 1) { + return 'Yesterday'; + } else if (difference.inDays < 7) { + return '${difference.inDays}d'; + } else if (difference.inDays < 365) { + return '${localDate.month}/${localDate.day}'; + } else { + return '${localDate.month}/${localDate.day}/${localDate.year}'; + } + } +} + +/// Optimized archived chats view with improved performance +class ModernArchivedChatsView extends ConsumerWidget { + final ScrollController scrollController; + + const ModernArchivedChatsView({super.key, required this.scrollController}); + + @override + Widget build(BuildContext context, WidgetRef ref) { + final archivedConversations = ref.watch(archivedConversationsProvider); + + return Container( + decoration: BoxDecoration( + gradient: const LinearGradient( + colors: [AppTheme.neutral800, AppTheme.neutral900], + begin: Alignment.topCenter, + end: Alignment.bottomCenter, + ), + borderRadius: BorderRadius.only( + topLeft: ui.Radius.circular(AppBorderRadius.lg), + topRight: ui.Radius.circular(AppBorderRadius.lg), + ), + border: Border.all( + color: AppTheme.neutral600.withValues(alpha: 0.2), + width: BorderWidth.thin, + ), + ), + child: Column( + children: [ + _buildHandle(), + _buildHeader(context), + const Divider(color: AppTheme.neutral600, height: 1, thickness: 0.5), + Expanded(child: _buildContent(context, archivedConversations, ref)), + ], + ), + ); + } + + Widget _buildHandle() { + return Container( + margin: const EdgeInsets.symmetric(vertical: Spacing.sm), + width: Spacing.xxl, + height: Spacing.xs, + decoration: BoxDecoration( + color: AppTheme.neutral500, + borderRadius: BorderRadius.circular(AppBorderRadius.xs), + ), + ); + } + + Widget _buildHeader(BuildContext context) { + return Padding( + padding: const EdgeInsets.all(Spacing.lg), + child: Row( + children: [ + Container( + width: Spacing.xxl, + height: Spacing.xxl, + decoration: BoxDecoration( + gradient: LinearGradient( + colors: [AppTheme.brandPrimary, AppTheme.brandPrimaryLight], + begin: Alignment.topLeft, + end: Alignment.bottomRight, + ), + borderRadius: BorderRadius.circular(AppBorderRadius.md), + ), + child: const Icon( + Icons.archive_rounded, + color: AppTheme.neutral50, + size: AppTypography.headlineMedium, + ), + ), + const SizedBox(width: Spacing.md), + const Expanded( + child: Text( + 'Archived Conversations', + style: TextStyle( + color: AppTheme.neutral50, + fontSize: AppTypography.headlineSmall, + fontWeight: FontWeight.w600, + letterSpacing: -0.3, + ), + ), + ), + ConduitIconButton( + icon: Platform.isIOS ? CupertinoIcons.xmark : Icons.close_rounded, + onPressed: () => Navigator.pop(context), + ), + ], + ), + ); + } + + Widget _buildContent( + BuildContext context, + List conversations, + WidgetRef ref, + ) { + if (conversations.isEmpty) { + return _buildEmptyState(); + } + + return ListView.builder( + controller: scrollController, + padding: const EdgeInsets.all(Spacing.md), + itemCount: conversations.length, + itemBuilder: (context, index) { + final conversation = conversations[index]; + return ModernArchivedConversationTile( + conversation: conversation, + onUnarchive: () => _handleUnarchive(ref, context, conversation.id), + ); + }, + ); + } + + Widget _buildEmptyState() { + return Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + width: Spacing.xxl + Spacing.xl, + height: Spacing.xxl + Spacing.xl, + decoration: BoxDecoration( + gradient: LinearGradient( + colors: [ + AppTheme.neutral600.withValues(alpha: 0.3), + AppTheme.neutral700.withValues(alpha: 0.1), + ], + ), + borderRadius: BorderRadius.circular(AppBorderRadius.round), + ), + child: const Icon( + Icons.archive_rounded, + size: Spacing.xxl, + color: AppTheme.neutral400, + ), + ), + const SizedBox(height: Spacing.lg), + const Text( + 'Nothing archived yet', + style: TextStyle( + color: AppTheme.neutral50, + fontSize: AppTypography.headlineSmall, + fontWeight: FontWeight.w600, + ), + ), + const SizedBox(height: Spacing.sm), + const Text( + 'Conversations you archive will appear here', + style: TextStyle( + color: AppTheme.neutral400, + fontSize: AppTypography.labelLarge, + ), + textAlign: TextAlign.center, + ), + ], + ), + ); + } + + Future _handleUnarchive( + WidgetRef ref, + BuildContext context, + String conversationId, + ) async { + try { + await archiveConversation(ref, conversationId, false); + if (context.mounted) { + UiUtils.showMessage(context, 'Conversation unarchived'); + } + } catch (e) { + if (context.mounted) { + UiUtils.showMessage(context, 'Failed to unarchive conversation'); + } + } + } +} + +/// Optimized archived conversation tile +class ModernArchivedConversationTile extends StatelessWidget { + final Conversation conversation; + final VoidCallback onUnarchive; + + const ModernArchivedConversationTile({ + super.key, + required this.conversation, + required this.onUnarchive, + }); + + @override + Widget build(BuildContext context) { + return Container( + margin: const EdgeInsets.only(bottom: Spacing.sm), + child: Container( + padding: const EdgeInsets.all(Spacing.md), + decoration: BoxDecoration( + gradient: LinearGradient( + colors: [ + AppTheme.neutral700.withValues(alpha: 0.4), + AppTheme.neutral700.withValues(alpha: 0.2), + ], + begin: Alignment.topLeft, + end: Alignment.bottomRight, + ), + borderRadius: BorderRadius.circular(AppBorderRadius.lg), + border: Border.all( + color: AppTheme.neutral600.withValues(alpha: 0.2), + width: BorderWidth.thin, + ), + ), + child: Row( + children: [ + Container( + width: 32, + height: 32, + decoration: BoxDecoration( + color: AppTheme.neutral600.withValues(alpha: 0.6), + borderRadius: BorderRadius.circular(AppBorderRadius.sm), + ), + child: const Icon( + Icons.archive_rounded, + color: AppTheme.neutral300, + size: 16, + ), + ), + const SizedBox(width: Spacing.md), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + conversation.title, + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: const TextStyle( + color: AppTheme.neutral50, + fontWeight: FontWeight.w600, + fontSize: AppTypography.bodyLarge, + ), + ), + const SizedBox(height: Spacing.xs), + Text( + _formatArchivedDate(conversation.updatedAt), + style: const TextStyle( + color: AppTheme.neutral400, + fontSize: AppTypography.labelMedium, + fontWeight: FontWeight.w500, + ), + ), + ], + ), + ), + ConduitIconButton( + icon: Platform.isIOS + ? CupertinoIcons.arrow_up_bin + : Icons.unarchive_rounded, + onPressed: onUnarchive, + tooltip: 'Unarchive', + ), + ], + ), + ), + ); + } + + String _formatArchivedDate(DateTime date) { + final now = DateTime.now(); + final difference = now.difference(date); + + if (difference.inDays == 0) { + return 'Today'; + } else if (difference.inDays == 1) { + return 'Yesterday'; + } else if (difference.inDays < 7) { + return '${difference.inDays} days ago'; + } else { + return '${date.month}/${date.day}/${date.year}'; + } + } +} diff --git a/lib/features/chat/widgets/conversation_search_widget.dart b/lib/features/chat/widgets/conversation_search_widget.dart new file mode 100644 index 0000000..5a60157 --- /dev/null +++ b/lib/features/chat/widgets/conversation_search_widget.dart @@ -0,0 +1,738 @@ +import 'package:flutter/material.dart'; +import '../../../shared/theme/app_theme.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:flutter_animate/flutter_animate.dart'; +import 'dart:io' show Platform; +import '../../../shared/theme/theme_extensions.dart'; +import '../../../shared/widgets/loading_states.dart'; +import '../../../shared/widgets/empty_states.dart'; + +import '../../../shared/utils/platform_utils.dart'; +import '../services/conversation_search_service.dart'; +import '../../../core/providers/app_providers.dart'; + +/// Advanced conversation search widget with filters and results +class ConversationSearchWidget extends ConsumerStatefulWidget { + final Function(String conversationId, String? messageId)? onResultTap; + final bool showFilters; + + const ConversationSearchWidget({ + super.key, + this.onResultTap, + this.showFilters = true, + }); + + @override + ConsumerState createState() => + _ConversationSearchWidgetState(); +} + +class _ConversationSearchWidgetState + extends ConsumerState { + final TextEditingController _searchController = TextEditingController(); + final FocusNode _searchFocus = FocusNode(); + bool _isSearching = false; + bool _showFilters = false; + + @override + void initState() { + super.initState(); + _searchController.addListener(_onSearchChanged); + } + + @override + void dispose() { + _searchController.removeListener(_onSearchChanged); + _searchController.dispose(); + _searchFocus.dispose(); + super.dispose(); + } + + void _onSearchChanged() { + final query = _searchController.text.trim(); + ref.read(searchQueryProvider.notifier).state = query; + + if (query.isNotEmpty) { + _performSearch(query); + } else { + ref.read(conversationSearchResultsProvider.notifier).state = null; + } + } + + Future _performSearch(String query) async { + if (_isSearching) return; + + setState(() { + _isSearching = true; + }); + + try { + final searchService = ref.read(conversationSearchServiceProvider); + final conversations = ref + .read(conversationsProvider) + .when( + data: (data) => data, + loading: () => [], + error: (_, _) => [], + ); + + final options = ref.read(searchOptionsProvider); + + final results = await searchService.searchConversations( + conversations: conversations.cast(), + query: query, + options: options, + ); + + ref.read(conversationSearchResultsProvider.notifier).state = results; + } catch (e) { + debugPrint('Search error: $e'); + } finally { + if (mounted) { + setState(() { + _isSearching = false; + }); + } + } + } + + @override + Widget build(BuildContext context) { + final conduitTheme = context.conduitTheme; + final searchResults = ref.watch(conversationSearchResultsProvider); + + return Column( + children: [ + // Search header + Container( + padding: const EdgeInsets.all(Spacing.md), + decoration: BoxDecoration( + color: conduitTheme.cardBackground, + border: Border( + bottom: BorderSide( + color: conduitTheme.cardBorder, + width: BorderWidth.regular, + ), + ), + ), + child: Column( + children: [ + // Search input + Row( + children: [ + Expanded( + child: Container( + decoration: BoxDecoration( + color: conduitTheme.inputBackground, + borderRadius: BorderRadius.circular(AppBorderRadius.md), + border: Border.all( + color: _searchFocus.hasFocus + ? conduitTheme.inputBorderFocused + : conduitTheme.inputBorder, + width: BorderWidth.regular, + ), + ), + child: TextField( + controller: _searchController, + focusNode: _searchFocus, + decoration: InputDecoration( + hintText: 'Search conversations...', + hintStyle: TextStyle( + color: context.conduitTheme.inputPlaceholder, + fontSize: AppTypography.bodyLarge, + ), + prefixIcon: Icon( + Platform.isIOS + ? CupertinoIcons.search + : Icons.search, + color: context.conduitTheme.iconSecondary, + size: AppTypography.headlineMedium, + ), + suffixIcon: _isSearching + ? Padding( + padding: const EdgeInsets.all(Spacing.md), + child: ConduitLoading.inline( + size: Spacing.md, + ), + ) + : _searchController.text.isNotEmpty + ? IconButton( + icon: Icon( + Platform.isIOS + ? CupertinoIcons.clear + : Icons.clear, + color: context.conduitTheme.iconSecondary, + size: AppTypography.headlineMedium, + ), + onPressed: () { + _searchController.clear(); + _searchFocus.unfocus(); + }, + ) + : null, + border: InputBorder.none, + contentPadding: const EdgeInsets.symmetric( + horizontal: Spacing.md, + vertical: Spacing.xs, + ), + ), + style: TextStyle( + color: context.conduitTheme.inputText, + fontSize: AppTypography.bodyLarge, + ), + onSubmitted: (_) => _searchFocus.unfocus(), + ), + ), + ), + + // Filter toggle + if (widget.showFilters) ...[ + const SizedBox(width: Spacing.xs), + GestureDetector( + onTap: () { + PlatformUtils.lightHaptic(); + setState(() { + _showFilters = !_showFilters; + }); + }, + child: Container( + width: Spacing.xxl + Spacing.xs, + height: Spacing.xxl + Spacing.xs, + decoration: BoxDecoration( + color: _showFilters + ? AppTheme.neutral50.withValues(alpha: 0.2) + : Colors.transparent, + borderRadius: BorderRadius.circular( + AppBorderRadius.md, + ), + border: Border.all( + color: _showFilters + ? AppTheme.neutral50.withValues(alpha: 0.3) + : conduitTheme.inputBorder, + width: BorderWidth.regular, + ), + ), + child: Icon( + Platform.isIOS + ? CupertinoIcons.slider_horizontal_3 + : Icons.tune, + color: AppTheme.neutral50.withValues(alpha: 0.8), + size: AppTypography.headlineMedium, + ), + ), + ), + ], + ], + ), + + // Search filters + if (_showFilters && widget.showFilters) + _buildSearchFilters(conduitTheme), + ], + ), + ), + + // Search results + Expanded(child: _buildSearchResults(conduitTheme, searchResults)), + ], + ); + } + + Widget _buildSearchFilters(ConduitThemeExtension theme) { + final options = ref.watch(searchOptionsProvider); + + return Container( + margin: const EdgeInsets.only(top: Spacing.md), + padding: const EdgeInsets.all(Spacing.md), + decoration: BoxDecoration( + color: AppTheme.neutral50.withValues(alpha: 0.05), + borderRadius: BorderRadius.circular(AppBorderRadius.md), + border: Border.all(color: theme.cardBorder, width: BorderWidth.regular), + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + 'Search in:', + style: theme.bodySmall?.copyWith( + fontWeight: FontWeight.w600, + color: AppTheme.neutral50.withValues(alpha: 0.8), + ), + ), + const SizedBox(height: Spacing.xs), + + // Search scope toggles + Wrap( + spacing: Spacing.md, + runSpacing: Spacing.sm, + children: [ + _buildFilterToggle( + 'Titles', + options.searchTitles, + (value) => + _updateSearchOptions(options.copyWith(searchTitles: value)), + ), + _buildFilterToggle( + 'Messages', + options.searchMessages, + (value) => _updateSearchOptions( + options.copyWith(searchMessages: value), + ), + ), + _buildFilterToggle( + 'Tags', + options.searchTags, + (value) => + _updateSearchOptions(options.copyWith(searchTags: value)), + ), + ], + ), + + const SizedBox(height: Spacing.md), + + Text( + 'Message type:', + style: theme.bodySmall?.copyWith( + fontWeight: FontWeight.w600, + color: AppTheme.neutral50.withValues(alpha: 0.8), + ), + ), + const SizedBox(height: Spacing.xs), + + // Role filter + Wrap( + spacing: Spacing.md, + runSpacing: Spacing.sm, + children: [ + _buildFilterChip( + 'All', + options.roleFilter == null, + () => _updateSearchOptions(options.copyWith(roleFilter: null)), + ), + _buildFilterChip( + 'My messages', + options.roleFilter == 'user', + () => + _updateSearchOptions(options.copyWith(roleFilter: 'user')), + ), + _buildFilterChip( + 'AI messages', + options.roleFilter == 'assistant', + () => _updateSearchOptions( + options.copyWith(roleFilter: 'assistant'), + ), + ), + ], + ), + ], + ), + ).animate().slideY( + begin: -0.5, + end: 0, + duration: const Duration(milliseconds: 200), + curve: Curves.easeOut, + ); + } + + Widget _buildFilterToggle( + String label, + bool value, + Function(bool) onChanged, + ) { + return GestureDetector( + onTap: () { + PlatformUtils.selectionHaptic(); + onChanged(!value); + }, + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Container( + width: AppTypography.headlineMedium, + height: AppTypography.headlineMedium, + decoration: BoxDecoration( + color: value ? AppTheme.brandPrimary : Colors.transparent, + borderRadius: BorderRadius.circular(AppBorderRadius.xs), + border: Border.all( + color: value + ? AppTheme.brandPrimary + : AppTheme.neutral50.withValues(alpha: 0.3), + width: BorderWidth.regular, + ), + ), + child: value + ? const Icon( + Icons.check, + color: AppTheme.neutral50, + size: AppTypography.labelLarge, + ) + : null, + ), + const SizedBox(width: Spacing.sm), + Text( + label, + style: TextStyle( + color: AppTheme.neutral50.withValues(alpha: 0.8), + fontSize: AppTypography.labelLarge, + fontWeight: FontWeight.w500, + ), + ), + ], + ), + ); + } + + Widget _buildFilterChip(String label, bool isActive, VoidCallback onTap) { + return GestureDetector( + onTap: () { + PlatformUtils.selectionHaptic(); + onTap(); + }, + child: Container( + padding: const EdgeInsets.symmetric( + horizontal: Spacing.xs, + vertical: Spacing.xs + Spacing.xxs, + ), + decoration: BoxDecoration( + color: isActive + ? AppTheme.brandPrimary.withValues(alpha: 0.2) + : Colors.transparent, + borderRadius: BorderRadius.circular(AppBorderRadius.lg), + border: Border.all( + color: isActive + ? AppTheme.brandPrimary + : AppTheme.neutral50.withValues(alpha: 0.3), + width: BorderWidth.regular, + ), + ), + child: Text( + label, + style: TextStyle( + color: isActive + ? AppTheme.brandPrimary + : AppTheme.neutral50.withValues(alpha: 0.8), + fontSize: AppTypography.labelMedium, + fontWeight: FontWeight.w500, + ), + ), + ), + ); + } + + void _updateSearchOptions(ConversationSearchOptions newOptions) { + ref.read(searchOptionsProvider.notifier).state = newOptions; + + // Re-search with new options if we have a query + final query = _searchController.text.trim(); + if (query.isNotEmpty) { + _performSearch(query); + } + } + + Widget _buildSearchResults( + ConduitThemeExtension theme, + ConversationSearchResults? results, + ) { + if (_searchController.text.trim().isEmpty) { + return _buildSearchPrompt(theme); + } + + if (results == null) { + return Center(child: ConduitLoading.primary()); + } + + if (results.isEmpty) { + return SearchEmptyState( + query: results.query, + onClearSearch: () { + _searchController.clear(); + _searchFocus.unfocus(); + }, + ); + } + + return Column( + children: [ + // Results header + Container( + padding: const EdgeInsets.symmetric( + horizontal: Spacing.md, + vertical: Spacing.xs, + ), + decoration: BoxDecoration( + color: AppTheme.neutral50.withValues(alpha: 0.05), + border: Border( + bottom: BorderSide( + color: theme.cardBorder, + width: BorderWidth.regular, + ), + ), + ), + child: Row( + children: [ + Text( + '${results.length} of ${results.totalMatches} results', + style: theme.bodySmall?.copyWith( + color: AppTheme.neutral50.withValues(alpha: 0.7), + ), + ), + const Spacer(), + Text( + '${results.searchDuration.inMilliseconds}ms', + style: theme.bodySmall?.copyWith( + color: AppTheme.neutral50.withValues(alpha: 0.5), + ), + ), + ], + ), + ), + + // Results list + Expanded( + child: ListView.builder( + itemCount: results.length, + itemBuilder: (context, index) { + final match = results.results[index]; + return _buildSearchResultItem(theme, match, index); + }, + ), + ), + ], + ); + } + + Widget _buildSearchPrompt(ConduitThemeExtension theme) { + return ConduitEmptyState( + title: 'Search your conversations', + subtitle: 'Find messages, titles, and tags across all your conversations', + icon: Platform.isIOS ? CupertinoIcons.search : Icons.search, + ); + } + + Widget _buildSearchResultItem( + ConduitThemeExtension theme, + ConversationSearchMatch match, + int index, + ) { + return GestureDetector( + onTap: () { + PlatformUtils.lightHaptic(); + widget.onResultTap?.call(match.conversationId, match.messageId); + }, + child: Container( + margin: const EdgeInsets.symmetric( + horizontal: Spacing.md, + vertical: Spacing.xs, + ), + padding: const EdgeInsets.all(Spacing.md), + decoration: BoxDecoration( + color: theme.cardBackground, + borderRadius: BorderRadius.circular(AppBorderRadius.md), + border: Border.all( + color: theme.cardBorder, + width: BorderWidth.regular, + ), + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + // Header with conversation title and match type + Row( + children: [ + Expanded( + child: Text( + match.conversationTitle, + style: theme.headingSmall?.copyWith( + fontSize: AppTypography.bodyLarge, + ), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + ), + const SizedBox(width: Spacing.sm), + _buildMatchTypeBadge(match.matchType), + ], + ), + + const SizedBox(height: Spacing.sm), + + // Snippet with highlighted text + _buildHighlightedSnippet(theme, match.highlightedSnippet), + + const SizedBox(height: Spacing.sm), + + // Footer with metadata + Row( + children: [ + if (match.messageRole != null) ...[ + _buildRoleBadge(match.messageRole!), + const SizedBox(width: Spacing.sm), + ], + Text( + _formatTimestamp(match.timestamp), + style: theme.caption, + ), + const Spacer(), + Text( + '${match.relevanceScore.round()}% match', + style: theme.caption?.copyWith( + color: AppTheme.brandPrimary, + ), + ), + ], + ), + ], + ), + ), + ) + .animate(delay: Duration(milliseconds: index * 50)) + .fadeIn(duration: const Duration(milliseconds: 200)) + .slideX(begin: 0.3, end: 0); + } + + Widget _buildMatchTypeBadge(SearchMatchType type) { + Color color; + String label; + + switch (type) { + case SearchMatchType.title: + color = AppTheme.info; + label = 'Title'; + break; + case SearchMatchType.message: + color = AppTheme.success; + label = 'Message'; + break; + case SearchMatchType.tag: + color = AppTheme.warning; + label = 'Tag'; + break; + } + + return Container( + padding: const EdgeInsets.symmetric( + horizontal: Spacing.sm, + vertical: Spacing.xxs, + ), + decoration: BoxDecoration( + color: color.withValues(alpha: 0.2), + borderRadius: BorderRadius.circular(AppBorderRadius.md), + ), + child: Text( + label, + style: TextStyle( + color: color, + fontSize: AppTypography.labelSmall, + fontWeight: FontWeight.w600, + ), + ), + ); + } + + Widget _buildRoleBadge(String role) { + Color color; + String label; + + switch (role) { + case 'user': + color = AppTheme.brandPrimary; + label = 'You'; + break; + case 'assistant': + color = AppTheme.success; + label = 'AI'; + break; + case 'system': + color = AppTheme.warning; + label = 'System'; + break; + default: + color = AppTheme.neutral400; + label = role; + } + + return Container( + padding: const EdgeInsets.symmetric( + horizontal: Spacing.xs + Spacing.xxs, + vertical: Spacing.xxs, + ), + decoration: BoxDecoration( + color: color.withValues(alpha: 0.2), + borderRadius: BorderRadius.circular(AppBorderRadius.sm), + ), + child: Text( + label, + style: TextStyle( + color: color, + fontSize: AppTypography.labelSmall, + fontWeight: FontWeight.w500, + ), + ), + ); + } + + Widget _buildHighlightedSnippet( + ConduitThemeExtension theme, + String highlightedText, + ) { + // Simple implementation - in a real app you'd want proper HTML parsing + final parts = highlightedText.split(''); + final spans = []; + + for (int i = 0; i < parts.length; i++) { + final part = parts[i]; + if (i == 0) { + spans.add(TextSpan(text: part)); + } else { + final markParts = part.split(''); + if (markParts.length >= 2) { + // Highlighted part + spans.add( + TextSpan( + text: markParts[0], + style: TextStyle( + backgroundColor: AppTheme.brandPrimary.withValues(alpha: 0.3), + color: AppTheme.neutral50, + fontWeight: FontWeight.w600, + ), + ), + ); + // Rest of the text + spans.add(TextSpan(text: markParts.sublist(1).join(''))); + } else { + spans.add(TextSpan(text: part)); + } + } + } + + return RichText( + text: TextSpan( + style: theme.bodyMedium?.copyWith( + color: AppTheme.neutral50.withValues(alpha: 0.8), + height: 1.4, + ), + children: spans, + ), + maxLines: 3, + overflow: TextOverflow.ellipsis, + ); + } + + String _formatTimestamp(DateTime timestamp) { + final now = DateTime.now(); + final diff = now.difference(timestamp); + + if (diff.inDays > 7) { + return '${timestamp.day}/${timestamp.month}/${timestamp.year}'; + } else if (diff.inDays > 0) { + return '${diff.inDays}d ago'; + } else if (diff.inHours > 0) { + return '${diff.inHours}h ago'; + } else if (diff.inMinutes > 0) { + return '${diff.inMinutes}m ago'; + } else { + return 'Just now'; + } + } +} diff --git a/lib/features/chat/widgets/documentation_message_widget.dart b/lib/features/chat/widgets/documentation_message_widget.dart new file mode 100644 index 0000000..edefa7d --- /dev/null +++ b/lib/features/chat/widgets/documentation_message_widget.dart @@ -0,0 +1,688 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:flutter_animate/flutter_animate.dart'; +import 'dart:async'; +import 'package:gpt_markdown/gpt_markdown.dart'; +import 'dart:io' show Platform; +import '../../../shared/theme/theme_extensions.dart'; +import '../../../core/utils/reasoning_parser.dart'; + +class DocumentationMessageWidget extends ConsumerStatefulWidget { + final dynamic message; + final bool isUser; + final bool isStreaming; + final String? modelName; + final VoidCallback? onCopy; + final VoidCallback? onEdit; + final VoidCallback? onRegenerate; + final VoidCallback? onLike; + final VoidCallback? onDislike; + + const DocumentationMessageWidget({ + super.key, + required this.message, + required this.isUser, + this.isStreaming = false, + this.modelName, + this.onCopy, + this.onEdit, + this.onRegenerate, + this.onLike, + this.onDislike, + }); + + @override + ConsumerState createState() => + _DocumentationMessageWidgetState(); +} + +class _DocumentationMessageWidgetState + extends ConsumerState + with TickerProviderStateMixin { + bool _showActions = false; + bool _showReasoning = false; + late AnimationController _fadeController; + late AnimationController _slideController; + ReasoningContent? _reasoningContent; + String _renderedContent = ''; + Timer? _throttleTimer; + String? _pendingContent; + + @override + void initState() { + super.initState(); + _renderedContent = widget.message.content ?? ''; + _fadeController = AnimationController( + duration: const Duration(milliseconds: 200), + vsync: this, + ); + _slideController = AnimationController( + duration: const Duration(milliseconds: 300), + vsync: this, + ); + + // Parse reasoning content if present + _updateReasoningContent(); + } + + @override + void didUpdateWidget(DocumentationMessageWidget oldWidget) { + super.didUpdateWidget(oldWidget); + + // Re-parse reasoning content when message content changes + if (oldWidget.message.content != widget.message.content) { + // Throttle markdown re-rendering for smoother streaming + _scheduleRenderUpdate(widget.message.content ?? ''); + _updateReasoningContent(); + } + } + + void _updateReasoningContent() { + if (!widget.isUser && widget.message.content != null) { + final newReasoningContent = ReasoningParser.parseReasoningContent( + widget.message.content!, + ); + if (newReasoningContent != _reasoningContent) { + setState(() { + _reasoningContent = newReasoningContent; + }); + } + } + } + + void _scheduleRenderUpdate(String rawContent) { + final safe = _safeForStreaming(rawContent); + if (_throttleTimer != null && _throttleTimer!.isActive) { + _pendingContent = safe; + return; + } + if (mounted) { + setState(() => _renderedContent = safe); + } else { + _renderedContent = safe; + } + _throttleTimer = Timer(const Duration(milliseconds: 80), () { + if (!mounted) return; + if (_pendingContent != null) { + setState(() { + _renderedContent = _pendingContent!; + _pendingContent = null; + }); + } + }); + } + + String _safeForStreaming(String content) { + if (content.isEmpty) return content; + // Auto-close an unbalanced triple backtick fence during streaming so markdown stays valid + final fenceCount = '```'.allMatches(content).length; + if (fenceCount.isOdd) { + return '$content\n```'; + } + return content; + } + + @override + void dispose() { + _fadeController.dispose(); + _slideController.dispose(); + super.dispose(); + } + + void _toggleActions() { + setState(() { + _showActions = !_showActions; + }); + + if (_showActions) { + _fadeController.forward(); + _slideController.forward(); + } else { + _fadeController.reverse(); + _slideController.reverse(); + } + } + + @override + Widget build(BuildContext context) { + if (widget.isUser) { + return _buildUserMessage(); + } else { + return _buildDocumentationMessage(); + } + } + + Widget _buildUserMessage() { + return Container( + width: double.infinity, + margin: const EdgeInsets.only(bottom: 16, left: 50, right: 12), + child: Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + Flexible( + child: GestureDetector( + onLongPress: () => _toggleActions(), + child: Container( + padding: const EdgeInsets.symmetric( + horizontal: 16, + vertical: 12, + ), + decoration: BoxDecoration( + color: context.conduitTheme.chatBubbleUser, + borderRadius: BorderRadius.circular(AppBorderRadius.lg), + border: Border.all( + color: context.conduitTheme.chatBubbleUserBorder, + width: BorderWidth.regular, + ), + ), + child: Text( + widget.message.content, + style: TextStyle( + color: context.conduitTheme.chatBubbleUserText, + fontSize: AppTypography.bodyLarge, + height: 1.5, + letterSpacing: 0.1, + ), + ), + ), + ), + ), + ], + ), + ) + .animate() + .fadeIn(duration: const Duration(milliseconds: 400)) + .slideX( + begin: 0.2, + end: 0, + duration: const Duration(milliseconds: 400), + curve: Curves.easeOutCubic, + ); + } + + Widget _buildDocumentationMessage() { + return Container( + width: double.infinity, + margin: const EdgeInsets.only(bottom: 24, left: 12, right: 12), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + // Simplified AI Name and Avatar + Padding( + padding: const EdgeInsets.only(bottom: 12), + child: Row( + children: [ + Container( + width: 20, + height: 20, + decoration: BoxDecoration( + color: context.conduitTheme.buttonPrimary, + borderRadius: BorderRadius.circular( + AppBorderRadius.small, + ), + ), + child: Icon( + Icons.auto_awesome, + color: context.conduitTheme.buttonPrimaryText, + size: 12, + ), + ), + const SizedBox(width: Spacing.xs), + Text( + widget.modelName ?? 'Assistant', + style: TextStyle( + color: context.conduitTheme.textSecondary, + fontSize: AppTypography.bodySmall, + fontWeight: FontWeight.w500, + letterSpacing: 0.1, + ), + ), + ], + ), + ), + + // Reasoning Section (if present) + if (_reasoningContent != null) ...[ + InkWell( + onTap: () => setState(() => _showReasoning = !_showReasoning), + borderRadius: BorderRadius.circular(AppBorderRadius.md), + child: Container( + padding: const EdgeInsets.symmetric( + horizontal: Spacing.sm, + vertical: Spacing.xs, + ), + decoration: BoxDecoration( + color: context.conduitTheme.surfaceContainer.withValues( + alpha: 0.5, + ), + borderRadius: BorderRadius.circular(AppBorderRadius.md), + border: Border.all( + color: context.conduitTheme.dividerColor, + width: BorderWidth.thin, + ), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Icon( + _showReasoning + ? Icons.expand_less_rounded + : Icons.expand_more_rounded, + size: 16, + color: context.conduitTheme.textSecondary, + ), + const SizedBox(width: Spacing.xs), + Icon( + Icons.psychology_outlined, + size: 14, + color: context.conduitTheme.buttonPrimary, + ), + const SizedBox(width: Spacing.xs), + Text( + _reasoningContent!.summary.isNotEmpty + ? _reasoningContent!.summary + : 'Thought for ${_reasoningContent!.formattedDuration}', + style: TextStyle( + fontSize: AppTypography.bodySmall, + color: context.conduitTheme.textSecondary, + fontWeight: FontWeight.w500, + ), + ), + ], + ), + ), + ), + + // Expandable reasoning content + AnimatedCrossFade( + firstChild: const SizedBox.shrink(), + secondChild: Container( + margin: const EdgeInsets.only(top: Spacing.sm), + padding: const EdgeInsets.all(Spacing.sm), + decoration: BoxDecoration( + color: context.conduitTheme.surfaceContainer.withValues( + alpha: 0.3, + ), + borderRadius: BorderRadius.circular(AppBorderRadius.md), + border: Border.all( + color: context.conduitTheme.dividerColor, + width: BorderWidth.thin, + ), + ), + child: SelectableText( + _reasoningContent!.cleanedReasoning, + style: TextStyle( + fontSize: AppTypography.bodySmall, + color: context.conduitTheme.textSecondary, + fontFamily: 'monospace', + height: 1.4, + ), + ), + ), + crossFadeState: _showReasoning + ? CrossFadeState.showSecond + : CrossFadeState.showFirst, + duration: const Duration(milliseconds: 200), + ), + + const SizedBox(height: Spacing.md), + ], + + // Documentation-style content without heavy bubble; premium markdown + GestureDetector( + onLongPress: () => _toggleActions(), + child: SizedBox( + width: double.infinity, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + if (widget.isStreaming && + (widget.message.content.trim().isEmpty || + widget.message.content == '[TYPING_INDICATOR]')) + _buildTypingIndicator() + else if (widget.isStreaming && + widget.message.content.isNotEmpty && + widget.message.content != '[TYPING_INDICATOR]') + // While streaming, render markdown with throttling and safety fixes + _buildEnhancedMarkdownContent(_renderedContent) + else + // After streaming finishes (or static content), render full markdown + _buildEnhancedMarkdownContent( + _reasoningContent?.mainContent ?? + widget.message.content, + ), + + // Action buttons - inline and minimal + if (_showActions) ...[ + const SizedBox(height: Spacing.md), + _buildActionButtons(), + ], + ], + ), + ), + ), + ], + ), + ) + .animate() + .fadeIn(duration: const Duration(milliseconds: 300)) + .slideY( + begin: 0.1, + end: 0, + duration: const Duration(milliseconds: 300), + curve: Curves.easeOutCubic, + ); + } + + Widget _buildEnhancedMarkdownContent(String content) { + if (content.trim().isEmpty) { + return const SizedBox.shrink(); + } + + final codeFence = RegExp( + r"```([\w\-\+\.#]*)\n([\s\S]*?)```", + multiLine: true, + ); + final widgets = []; + int lastIndex = 0; + for (final match in codeFence.allMatches(content)) { + if (match.start > lastIndex) { + final textSegment = content.substring(lastIndex, match.start); + widgets.add( + GptMarkdown( + textSegment, + style: TextStyle( + color: context.conduitTheme.textPrimary, + fontSize: AppTypography.bodyLarge, + height: 1.6, + letterSpacing: 0.1, + ), + ), + ); + } + + final language = match.group(1)?.trim().isEmpty == true + ? null + : match.group(1)!.trim(); + final code = match.group(2) ?? ''; + widgets.add(_buildCodeBlock(code, language)); + lastIndex = match.end; + } + + if (lastIndex < content.length) { + final tail = content.substring(lastIndex); + widgets.add( + GptMarkdown( + tail, + style: TextStyle( + color: context.conduitTheme.textPrimary, + fontSize: AppTypography.bodyLarge, + height: 1.6, + letterSpacing: 0.1, + ), + ), + ); + } + + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: widgets + .map( + (w) => Padding( + padding: const EdgeInsets.only(bottom: Spacing.xs), + child: w, + ), + ) + .toList(), + ); + } + + Widget _buildCodeBlock(String code, String? language) { + return Container( + decoration: BoxDecoration( + color: context.conduitTheme.surfaceBackground.withValues(alpha: 0.06), + borderRadius: BorderRadius.circular(AppBorderRadius.md), + border: Border.all( + color: context.conduitTheme.dividerColor.withValues(alpha: 0.7), + width: BorderWidth.thin, + ), + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + Padding( + padding: const EdgeInsets.symmetric( + horizontal: Spacing.sm, + vertical: Spacing.xs, + ), + child: Row( + children: [ + Icon( + Platform.isIOS + ? CupertinoIcons.chevron_left_slash_chevron_right + : Icons.code, + size: 14, + color: context.conduitTheme.iconSecondary, + ), + const SizedBox(width: Spacing.xs), + Expanded( + child: Text( + language?.toUpperCase() ?? 'CODE', + style: TextStyle( + fontSize: AppTypography.labelSmall, + color: context.conduitTheme.textSecondary, + fontWeight: FontWeight.w600, + letterSpacing: 0.5, + ), + ), + ), + GestureDetector( + onTap: () => _copyToClipboard(code), + child: Container( + padding: const EdgeInsets.symmetric( + horizontal: Spacing.xs, + vertical: Spacing.xxs, + ), + decoration: BoxDecoration( + color: context.conduitTheme.surfaceBackground.withValues( + alpha: 0.2, + ), + borderRadius: BorderRadius.circular(AppBorderRadius.xs), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Icon( + Platform.isIOS + ? CupertinoIcons.doc_on_clipboard + : Icons.copy, + size: 14, + color: context.conduitTheme.iconSecondary, + ), + const SizedBox(width: Spacing.xs), + Text( + 'Copy', + style: TextStyle( + fontSize: AppTypography.labelSmall, + color: context.conduitTheme.textSecondary, + fontWeight: FontWeight.w500, + ), + ), + ], + ), + ), + ), + ], + ), + ), + Container( + padding: const EdgeInsets.all(Spacing.sm), + decoration: BoxDecoration( + borderRadius: const BorderRadius.vertical( + bottom: Radius.circular(AppBorderRadius.md), + ), + ), + child: SelectableText( + code.trimRight(), + style: TextStyle( + color: context.conduitTheme.textSecondary, + fontFamily: AppTypography.monospaceFontFamily, + fontSize: AppTypography.bodySmall, + height: 1.5, + ), + ), + ), + ], + ), + ); + } + + void _copyToClipboard(String text) { + Clipboard.setData(ClipboardData(text: text)); + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: const Text('Code copied'), + backgroundColor: context.conduitTheme.buttonPrimary, + ), + ); + } + } + + // Removed lightweight streaming text; we now stream markdown with throttling + + Widget _buildTypingIndicator() { + return Consumer( + builder: (context, ref, child) { + const statusText = 'Thinking about your question...'; + + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + statusText, + style: TextStyle( + color: context.conduitTheme.textSecondary.withValues( + alpha: 0.7, + ), + fontSize: AppTypography.bodyMedium, + fontStyle: FontStyle.italic, + ), + ), + const SizedBox(height: Spacing.xs), + Row( + children: [ + _buildTypingDot(0), + const SizedBox(width: Spacing.xs), + _buildTypingDot(200), + const SizedBox(width: Spacing.xs), + _buildTypingDot(400), + ], + ), + ], + ); + }, + ); + } + + Widget _buildTypingDot(int delay) { + return Container( + width: 8, + height: 8, + decoration: BoxDecoration( + color: context.conduitTheme.textSecondary.withValues(alpha: 0.6), + borderRadius: BorderRadius.circular(AppBorderRadius.xs), + ), + ) + .animate(onPlay: (controller) => controller.repeat()) + .scale( + duration: const Duration(milliseconds: 1000), + begin: const Offset(1, 1), + end: const Offset(1.3, 1.3), + ) + .then(delay: Duration(milliseconds: delay)) + .scale( + duration: const Duration(milliseconds: 1000), + begin: const Offset(1.3, 1.3), + end: const Offset(1, 1), + ); + } + + Widget _buildActionButtons() { + return Wrap( + spacing: 8, + runSpacing: 8, + children: [ + _buildActionButton( + icon: Platform.isIOS + ? CupertinoIcons.doc_on_clipboard + : Icons.content_copy, + label: 'Copy', + onTap: widget.onCopy, + ), + _buildActionButton( + icon: Platform.isIOS + ? CupertinoIcons.hand_thumbsup + : Icons.thumb_up_outlined, + label: 'Like', + onTap: widget.onLike, + ), + _buildActionButton( + icon: Platform.isIOS + ? CupertinoIcons.hand_thumbsdown + : Icons.thumb_down_outlined, + label: 'Dislike', + onTap: widget.onDislike, + ), + _buildActionButton( + icon: Platform.isIOS ? CupertinoIcons.refresh : Icons.refresh, + label: 'Regenerate', + onTap: widget.onRegenerate, + ), + ], + ); + } + + Widget _buildActionButton({ + required IconData icon, + required String label, + VoidCallback? onTap, + }) { + return GestureDetector( + onTap: onTap, + child: Container( + padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 6), + decoration: BoxDecoration( + color: context.conduitTheme.textPrimary.withValues(alpha: 0.04), + borderRadius: BorderRadius.circular(AppBorderRadius.lg), + border: Border.all( + color: context.conduitTheme.textPrimary.withValues(alpha: 0.08), + width: BorderWidth.regular, + ), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Icon( + icon, + size: IconSize.sm, + color: context.conduitTheme.textPrimary.withValues(alpha: 0.8), + ), + const SizedBox(width: Spacing.xs), + Text( + label, + style: TextStyle( + fontSize: AppTypography.labelMedium, + color: context.conduitTheme.textPrimary.withValues(alpha: 0.8), + fontWeight: FontWeight.w500, + letterSpacing: 0.2, + ), + ), + ], + ), + ), + ); + } +} diff --git a/lib/features/chat/widgets/file_attachment_widget.dart b/lib/features/chat/widgets/file_attachment_widget.dart new file mode 100644 index 0000000..999e2d8 --- /dev/null +++ b/lib/features/chat/widgets/file_attachment_widget.dart @@ -0,0 +1,249 @@ +import 'package:flutter/material.dart'; +import '../../../shared/theme/theme_extensions.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:flutter_animate/flutter_animate.dart'; +import 'dart:io' show Platform; +import '../services/file_attachment_service.dart'; +import '../../../shared/widgets/loading_states.dart'; + +class FileAttachmentWidget extends ConsumerWidget { + const FileAttachmentWidget({super.key}); + + @override + Widget build(BuildContext context, WidgetRef ref) { + final attachedFiles = ref.watch(attachedFilesProvider); + + if (attachedFiles.isEmpty) { + return const SizedBox.shrink(); + } + + return Container( + padding: const EdgeInsets.fromLTRB(Spacing.md, Spacing.sm, Spacing.md, 0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + 'Attachments', + style: TextStyle( + color: context.conduitTheme.textSecondary.withValues(alpha: 0.7), + fontSize: AppTypography.labelMedium, + fontWeight: FontWeight.w500, + ), + ), + const SizedBox(height: Spacing.sm), + SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: Row( + children: attachedFiles + .map( + (fileState) => Padding( + padding: const EdgeInsets.only(right: Spacing.sm), + child: _FileAttachmentCard(fileState: fileState), + ), + ) + .toList(), + ), + ), + ], + ), + ).animate().fadeIn(duration: const Duration(milliseconds: 300)); + } +} + +class _FileAttachmentCard extends ConsumerWidget { + final FileUploadState fileState; + + const _FileAttachmentCard({required this.fileState}); + + @override + Widget build(BuildContext context, WidgetRef ref) { + return Container( + width: 160, + padding: const EdgeInsets.all(Spacing.md), + decoration: BoxDecoration( + color: context.conduitTheme.cardBackground, + borderRadius: BorderRadius.circular(AppBorderRadius.md), + border: Border.all( + color: _getBorderColor(fileState.status, context), + width: BorderWidth.regular, + ), + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Text( + fileState.fileIcon, + style: const TextStyle(fontSize: AppTypography.headlineLarge), + ), + const Spacer(), + _buildStatusIcon(context), + ], + ), + const SizedBox(height: Spacing.sm), + Text( + fileState.fileName, + style: TextStyle( + color: context.conduitTheme.textPrimary, + fontSize: AppTypography.labelLarge, + fontWeight: FontWeight.w500, + ), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + const SizedBox(height: Spacing.xs), + Text( + fileState.formattedSize, + style: TextStyle( + color: context.conduitTheme.textSecondary.withValues(alpha: 0.6), + fontSize: AppTypography.labelMedium, + ), + ), + if (fileState.status == FileUploadStatus.uploading) ...[ + const SizedBox(height: Spacing.sm), + _buildProgressBar(context), + ], + if (fileState.error != null) ...[ + const SizedBox(height: Spacing.xs), + Text( + 'Failed to upload', + style: TextStyle( + color: context.conduitTheme.error, + fontSize: AppTypography.labelMedium, + ), + ), + ], + ], + ), + ); + } + + Widget _buildStatusIcon(BuildContext context) { + switch (fileState.status) { + case FileUploadStatus.pending: + return Icon( + Platform.isIOS ? CupertinoIcons.clock : Icons.schedule, + size: IconSize.sm, + color: context.conduitTheme.iconDisabled, + ); + case FileUploadStatus.uploading: + return ConduitLoading.inline( + size: IconSize.sm, + color: context.conduitTheme.iconSecondary, + ); + case FileUploadStatus.completed: + return Icon( + Platform.isIOS + ? CupertinoIcons.checkmark_circle_fill + : Icons.check_circle, + size: IconSize.sm, + color: context.conduitTheme.success, + ); + case FileUploadStatus.failed: + return GestureDetector( + onTap: () { + // Retry upload + }, + child: Icon( + Platform.isIOS + ? CupertinoIcons.exclamationmark_circle_fill + : Icons.error, + size: IconSize.sm, + color: context.conduitTheme.error, + ), + ); + } + } + + Widget _buildProgressBar(BuildContext context) { + return ClipRRect( + borderRadius: BorderRadius.circular(AppBorderRadius.xs), + child: LinearProgressIndicator( + value: fileState.progress, + backgroundColor: context.conduitTheme.textPrimary.withValues( + alpha: 0.1, + ), + valueColor: AlwaysStoppedAnimation( + context.conduitTheme.buttonPrimary, + ), + minHeight: 4, + ), + ); + } + + Color _getBorderColor(FileUploadStatus status, BuildContext context) { + switch (status) { + case FileUploadStatus.pending: + return context.conduitTheme.textPrimary.withValues(alpha: 0.2); + case FileUploadStatus.uploading: + return context.conduitTheme.buttonPrimary.withValues(alpha: 0.5); + case FileUploadStatus.completed: + return context.conduitTheme.success.withValues(alpha: 0.3); + case FileUploadStatus.failed: + return context.conduitTheme.error.withValues(alpha: 0.3); + } + } +} + +// Attachment preview for messages +class MessageAttachmentPreview extends StatelessWidget { + final List fileIds; + + const MessageAttachmentPreview({super.key, required this.fileIds}); + + @override + Widget build(BuildContext context) { + if (fileIds.isEmpty) return const SizedBox.shrink(); + + return Container( + margin: const EdgeInsets.only(top: Spacing.sm), + child: Wrap( + spacing: 8, + runSpacing: 8, + children: fileIds + .map( + (fileId) => Container( + padding: const EdgeInsets.symmetric( + horizontal: 12, + vertical: 6, + ), + decoration: BoxDecoration( + color: context.conduitTheme.textPrimary.withValues( + alpha: 0.1, + ), + borderRadius: BorderRadius.circular(AppBorderRadius.sm), + border: Border.all( + color: context.conduitTheme.textPrimary.withValues( + alpha: 0.2, + ), + width: BorderWidth.regular, + ), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + const Text( + '📎', + style: TextStyle(fontSize: AppTypography.bodyLarge), + ), + const SizedBox(width: Spacing.xs), + Text( + 'Attachment', + style: TextStyle( + color: context.conduitTheme.textPrimary.withValues( + alpha: 0.8, + ), + fontSize: AppTypography.labelLarge, + ), + ), + ], + ), + ), + ) + .toList(), + ), + ); + } +} diff --git a/lib/features/chat/widgets/file_viewer_dialog.dart b/lib/features/chat/widgets/file_viewer_dialog.dart new file mode 100644 index 0000000..d56d2f9 --- /dev/null +++ b/lib/features/chat/widgets/file_viewer_dialog.dart @@ -0,0 +1,242 @@ +import 'dart:io'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import '../../../shared/theme/theme_extensions.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; + +import '../../../core/models/file_info.dart'; +import '../../../core/providers/app_providers.dart'; + +class FileViewerDialog extends ConsumerWidget { + final FileInfo fileInfo; + + const FileViewerDialog({super.key, required this.fileInfo}); + + @override + Widget build(BuildContext context, WidgetRef ref) { + // Use themed tokens via extension + final fileContent = ref.watch(fileContentProvider(fileInfo.id)); + + return Dialog.fullscreen( + child: Scaffold( + backgroundColor: context.conduitTheme.surfaceBackground, + appBar: AppBar( + backgroundColor: context.conduitTheme.surfaceBackground, + elevation: 0, + title: Text( + fileInfo.originalFilename, + overflow: TextOverflow.ellipsis, + style: TextStyle(color: context.conduitTheme.textPrimary), + ), + iconTheme: IconThemeData(color: context.conduitTheme.iconPrimary), + leading: IconButton( + icon: Icon(Platform.isIOS ? CupertinoIcons.back : Icons.arrow_back), + onPressed: () => Navigator.pop(context), + ), + actions: [ + IconButton( + icon: Icon(Platform.isIOS ? CupertinoIcons.info : Icons.info), + onPressed: () => _showFileInfo(context), + ), + ], + ), + body: fileContent.when( + data: (content) => _buildContentView(context, content), + loading: () => Center( + child: CircularProgressIndicator( + color: context.conduitTheme.buttonPrimary, + ), + ), + error: (error, _) => Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon(Icons.error, size: 64, color: context.conduitTheme.error), + const SizedBox(height: Spacing.md), + Text( + 'Failed to load file', + style: TextStyle( + color: context.conduitTheme.error, + fontSize: AppTypography.headlineSmall, + fontWeight: FontWeight.w600, + ), + ), + const SizedBox(height: Spacing.sm), + Text( + error.toString(), + style: TextStyle(color: context.conduitTheme.textSecondary), + textAlign: TextAlign.center, + ), + const SizedBox(height: Spacing.md), + ElevatedButton( + onPressed: () => + ref.invalidate(fileContentProvider(fileInfo.id)), + child: const Text('Retry'), + ), + ], + ), + ), + ), + ), + ); + } + + Widget _buildContentView(BuildContext context, String content) { + final theme = context.conduitTheme; + final isTextFile = _isTextFile(fileInfo.mimeType); + + if (!isTextFile) { + return Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + _getFileIcon(fileInfo.mimeType), + size: 64, + color: theme.buttonPrimary, + ), + const SizedBox(height: Spacing.md), + Text( + fileInfo.originalFilename, + style: TextStyle( + color: theme.textPrimary, + fontSize: AppTypography.headlineSmall, + fontWeight: FontWeight.w600, + ), + textAlign: TextAlign.center, + ), + const SizedBox(height: Spacing.sm), + Text( + 'File type: ${fileInfo.mimeType}', + style: TextStyle(color: theme.textSecondary), + ), + Text( + 'Size: ${_formatFileSize(fileInfo.size)}', + style: TextStyle(color: theme.textSecondary), + ), + const SizedBox(height: Spacing.md), + Text( + 'Preview not available for this file type', + style: TextStyle(color: theme.textTertiary), + ), + ], + ), + ); + } + + return SingleChildScrollView( + padding: const EdgeInsets.all(Spacing.md), + child: SelectableText( + content, + style: TextStyle( + color: theme.textPrimary, + fontFamily: 'monospace', + fontSize: AppTypography.labelLarge, + ), + ), + ); + } + + void _showFileInfo(BuildContext context) { + showDialog( + context: context, + builder: (context) => AlertDialog( + backgroundColor: context.conduitTheme.surfaceBackground, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.dialog), + ), + title: Text( + 'File Information', + style: TextStyle(color: context.conduitTheme.textPrimary), + ), + content: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + _buildInfoRow(context, 'Name', fileInfo.originalFilename), + _buildInfoRow(context, 'Size', _formatFileSize(fileInfo.size)), + _buildInfoRow(context, 'Type', fileInfo.mimeType), + _buildInfoRow(context, 'Created', _formatDate(fileInfo.createdAt)), + _buildInfoRow(context, 'Modified', _formatDate(fileInfo.updatedAt)), + if (fileInfo.hash != null) + _buildInfoRow(context, 'Hash', fileInfo.hash!), + ], + ), + actions: [ + TextButton( + onPressed: () => Navigator.pop(context), + child: Text( + 'Close', + style: TextStyle(color: context.conduitTheme.buttonPrimary), + ), + ), + ], + ), + ); + } + + Widget _buildInfoRow(BuildContext context, String label, String value) { + return Padding( + padding: const EdgeInsets.symmetric(vertical: 4), + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SizedBox( + width: Spacing.xxxl + Spacing.md, + child: Text( + '$label:', + style: TextStyle( + fontWeight: FontWeight.w600, + color: context.conduitTheme.textSecondary, + ), + ), + ), + Expanded( + child: Text( + value, + style: TextStyle(color: context.conduitTheme.textPrimary), + ), + ), + ], + ), + ); + } + + bool _isTextFile(String mimeType) { + return mimeType.startsWith('text/') || + mimeType == 'application/json' || + mimeType == 'application/xml' || + mimeType == 'application/javascript' || + mimeType.contains('yaml') || + mimeType.contains('markdown'); + } + + IconData _getFileIcon(String mimeType) { + if (mimeType.startsWith('image/')) { + return Platform.isIOS ? CupertinoIcons.photo : Icons.image; + } else if (mimeType.startsWith('video/')) { + return Platform.isIOS ? CupertinoIcons.video_camera : Icons.video_file; + } else if (mimeType.startsWith('audio/')) { + return Platform.isIOS ? CupertinoIcons.music_note : Icons.audio_file; + } else if (mimeType.contains('pdf')) { + return Platform.isIOS ? CupertinoIcons.doc : Icons.picture_as_pdf; + } else if (mimeType.startsWith('text/') || mimeType.contains('json')) { + return Platform.isIOS ? CupertinoIcons.doc_text : Icons.description; + } else { + return Platform.isIOS ? CupertinoIcons.doc : Icons.insert_drive_file; + } + } + + String _formatFileSize(int bytes) { + if (bytes < 1024) return '$bytes B'; + if (bytes < 1024 * 1024) return '${(bytes / 1024).toStringAsFixed(1)} KB'; + if (bytes < 1024 * 1024 * 1024) { + return '${(bytes / (1024 * 1024)).toStringAsFixed(1)} MB'; + } + return '${(bytes / (1024 * 1024 * 1024)).toStringAsFixed(1)} GB'; + } + + String _formatDate(DateTime date) { + return '${date.day}/${date.month}/${date.year} ${date.hour.toString().padLeft(2, '0')}:${date.minute.toString().padLeft(2, '0')}'; + } +} diff --git a/lib/features/chat/widgets/folder_management_dialog.dart b/lib/features/chat/widgets/folder_management_dialog.dart new file mode 100644 index 0000000..add4352 --- /dev/null +++ b/lib/features/chat/widgets/folder_management_dialog.dart @@ -0,0 +1,708 @@ +import 'dart:io'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import '../../../shared/theme/app_theme.dart'; +import '../../../shared/theme/theme_extensions.dart'; +import '../../../shared/widgets/conduit_components.dart'; +import '../../../shared/utils/ui_utils.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; + +import '../../../core/models/folder.dart'; +import '../../../core/models/conversation.dart'; +import '../../../core/providers/app_providers.dart'; + +class FolderManagementDialog extends ConsumerStatefulWidget { + final Conversation? conversation; + + const FolderManagementDialog({super.key, this.conversation}); + + @override + ConsumerState createState() => + _FolderManagementDialogState(); +} + +class _FolderManagementDialogState + extends ConsumerState { + final _nameController = TextEditingController(); + bool _isCreating = false; + + @override + void dispose() { + _nameController.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + final folders = ref.watch(foldersProvider); + + return Dialog( + backgroundColor: Colors.transparent, + child: Container( + width: 400, + constraints: const BoxConstraints(maxHeight: 600), + decoration: BoxDecoration( + color: context.conduitTheme.cardBackground, + borderRadius: BorderRadius.circular(AppBorderRadius.xl), + border: Border.all( + color: context.conduitTheme.cardBorder.withValues(alpha: 0.3), + width: BorderWidth.thin, + ), + ), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + // Header + Container( + padding: const EdgeInsets.all(Spacing.lg), + decoration: BoxDecoration( + gradient: LinearGradient( + colors: [ + context.conduitTheme.buttonPrimary, + context.conduitTheme.buttonPrimary.withValues(alpha: 0.8), + ], + begin: Alignment.topLeft, + end: Alignment.bottomRight, + ), + borderRadius: const BorderRadius.vertical( + top: Radius.circular(AppBorderRadius.xl), + ), + ), + child: Row( + children: [ + Container( + width: 40, + height: 40, + decoration: BoxDecoration( + color: context.conduitTheme.textInverse.withValues( + alpha: 0.2, + ), + borderRadius: BorderRadius.circular(AppBorderRadius.sm), + ), + child: Icon( + Platform.isIOS + ? CupertinoIcons.folder + : Icons.folder_rounded, + color: context.conduitTheme.textInverse, + size: IconSize.md, + ), + ), + const SizedBox(width: Spacing.md), + Expanded( + child: Text( + widget.conversation != null + ? 'Move to Folder' + : 'Manage Folders', + style: TextStyle( + color: context.conduitTheme.textInverse, + fontSize: AppTypography.headlineSmall, + fontWeight: FontWeight.w600, + ), + ), + ), + ConduitIconButton( + icon: Platform.isIOS + ? CupertinoIcons.xmark + : Icons.close_rounded, + onPressed: () => Navigator.pop(context), + ), + ], + ), + ), + + // Create new folder section + Padding( + padding: const EdgeInsets.all(Spacing.lg), + child: Row( + children: [ + Expanded( + child: Container( + decoration: BoxDecoration( + color: context.conduitTheme.inputBackground, + borderRadius: BorderRadius.circular(AppBorderRadius.md), + border: Border.all( + color: context.conduitTheme.inputBorder, + width: BorderWidth.thin, + ), + ), + child: TextField( + controller: _nameController, + style: TextStyle( + color: context.conduitTheme.inputText, + fontSize: AppTypography.bodyLarge, + ), + decoration: InputDecoration( + hintText: 'New folder name', + hintStyle: TextStyle( + color: context.conduitTheme.inputPlaceholder + .withValues(alpha: 0.5), + fontSize: AppTypography.bodyLarge, + ), + border: InputBorder.none, + contentPadding: const EdgeInsets.symmetric( + horizontal: Spacing.md, + vertical: Spacing.sm, + ), + prefixIcon: Icon( + Platform.isIOS + ? CupertinoIcons.folder_badge_plus + : Icons.create_new_folder_rounded, + color: context.conduitTheme.iconSecondary, + size: IconSize.md, + ), + ), + onSubmitted: (_) => _createFolder(), + ), + ), + ), + const SizedBox(width: Spacing.md), + ConduitButton( + text: 'Create', + onPressed: _isCreating ? null : _createFolder, + isLoading: _isCreating, + width: 80, + ), + ], + ), + ), + + // Divider + Container( + height: 0.5, + margin: const EdgeInsets.symmetric(horizontal: Spacing.lg), + color: context.conduitTheme.dividerColor.withValues(alpha: 0.3), + ), + + // Folders list + Expanded( + child: folders.when( + data: (folderList) => folderList.isEmpty + ? _buildEmptyState() + : ListView.builder( + padding: const EdgeInsets.symmetric( + vertical: Spacing.sm, + ), + itemCount: folderList.length, + itemBuilder: (context, index) { + final folder = folderList[index]; + return _buildFolderTile(folder); + }, + ), + loading: () => _buildLoadingState(), + error: (error, _) => _buildErrorState(error), + ), + ), + + // Bottom actions + if (widget.conversation != null) ...[ + Container( + height: 0.5, + margin: const EdgeInsets.symmetric(horizontal: Spacing.lg), + color: context.conduitTheme.dividerColor.withValues(alpha: 0.3), + ), + Padding( + padding: const EdgeInsets.all(Spacing.lg), + child: Row( + children: [ + Expanded( + child: ConduitButton( + text: 'Remove from Folder', + onPressed: () => _moveToFolder(null), + isSecondary: true, + ), + ), + const SizedBox(width: Spacing.md), + Expanded( + child: ConduitButton( + text: 'Cancel', + onPressed: () => Navigator.pop(context), + isSecondary: true, + ), + ), + ], + ), + ), + ], + ], + ), + ), + ); + } + + Widget _buildEmptyState() { + return Center( + child: Padding( + padding: const EdgeInsets.all(Spacing.xl), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + width: 80, + height: 80, + decoration: BoxDecoration( + color: context.conduitTheme.cardBackground.withValues( + alpha: 0.6, + ), + borderRadius: BorderRadius.circular(AppBorderRadius.round), + ), + child: Icon( + Platform.isIOS ? CupertinoIcons.folder : Icons.folder_outlined, + size: 40, + color: context.conduitTheme.iconSecondary, + ), + ), + const SizedBox(height: Spacing.lg), + Text( + 'No folders yet', + style: TextStyle( + color: context.conduitTheme.textPrimary, + fontSize: AppTypography.headlineSmall, + fontWeight: FontWeight.w600, + ), + ), + const SizedBox(height: Spacing.sm), + Text( + 'Create a folder to organize\nyour conversations', + style: TextStyle( + color: context.conduitTheme.textSecondary, + fontSize: AppTypography.labelLarge, + height: 1.4, + ), + textAlign: TextAlign.center, + ), + ], + ), + ), + ); + } + + Widget _buildLoadingState() { + return Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + CircularProgressIndicator.adaptive( + strokeWidth: 3, + valueColor: AlwaysStoppedAnimation( + context.conduitTheme.buttonPrimary, + ), + ), + SizedBox(height: Spacing.lg), + Text( + 'Loading folders...', + style: TextStyle( + color: context.conduitTheme.textSecondary, + fontSize: AppTypography.bodyLarge, + fontWeight: FontWeight.w500, + ), + ), + ], + ), + ); + } + + Widget _buildErrorState(Object error) { + return Center( + child: Padding( + padding: const EdgeInsets.all(Spacing.xl), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + width: 80, + height: 80, + decoration: BoxDecoration( + color: context.conduitTheme.error.withValues(alpha: 0.1), + borderRadius: BorderRadius.circular(AppBorderRadius.round), + ), + child: Icon( + Icons.error_outline_rounded, + size: 40, + color: context.conduitTheme.error, + ), + ), + const SizedBox(height: Spacing.lg), + Text( + 'Failed to load folders', + style: TextStyle( + color: context.conduitTheme.textPrimary, + fontSize: AppTypography.headlineSmall, + fontWeight: FontWeight.w600, + ), + ), + const SizedBox(height: Spacing.sm), + Text( + error.toString(), + style: TextStyle( + color: context.conduitTheme.textSecondary, + fontSize: AppTypography.labelLarge, + height: 1.4, + ), + textAlign: TextAlign.center, + ), + ], + ), + ), + ); + } + + Widget _buildFolderTile(Folder folder) { + final isSelected = widget.conversation?.folderId == folder.id; + + return Container( + margin: const EdgeInsets.symmetric( + horizontal: Spacing.lg, + vertical: Spacing.xs, + ), + child: Material( + color: Colors.transparent, + child: InkWell( + onTap: widget.conversation != null + ? () => _moveToFolder(folder.id) + : null, + borderRadius: BorderRadius.circular(AppBorderRadius.md), + child: Container( + padding: const EdgeInsets.all(Spacing.md), + decoration: BoxDecoration( + color: isSelected + ? context.conduitTheme.buttonPrimary.withValues(alpha: 0.1) + : context.conduitTheme.cardBackground.withValues(alpha: 0.5), + borderRadius: BorderRadius.circular(AppBorderRadius.md), + border: Border.all( + color: isSelected + ? context.conduitTheme.buttonPrimary.withValues(alpha: 0.3) + : context.conduitTheme.cardBorder.withValues(alpha: 0.2), + width: BorderWidth.thin, + ), + ), + child: Row( + children: [ + Container( + width: 40, + height: 40, + decoration: BoxDecoration( + color: isSelected + ? context.conduitTheme.buttonPrimary.withValues( + alpha: 0.2, + ) + : context.conduitTheme.cardBorder.withValues( + alpha: 0.6, + ), + borderRadius: BorderRadius.circular(AppBorderRadius.sm), + ), + child: Icon( + Platform.isIOS + ? CupertinoIcons.folder_fill + : Icons.folder_rounded, + color: isSelected + ? context.conduitTheme.buttonPrimary + : context.conduitTheme.iconSecondary, + size: IconSize.md, + ), + ), + const SizedBox(width: Spacing.md), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + folder.name, + style: TextStyle( + color: isSelected + ? context.conduitTheme.buttonPrimary + : context.conduitTheme.textPrimary, + fontSize: AppTypography.bodyLarge, + fontWeight: isSelected + ? FontWeight.w600 + : FontWeight.w500, + ), + ), + const SizedBox(height: Spacing.xxs), + Text( + '${folder.conversationIds.length} conversations', + style: TextStyle( + color: context.conduitTheme.textSecondary, + fontSize: AppTypography.labelMedium, + ), + ), + ], + ), + ), + if (widget.conversation != null && isSelected) + Container( + width: 24, + height: 24, + decoration: BoxDecoration( + color: context.conduitTheme.buttonPrimary, + borderRadius: BorderRadius.circular( + AppBorderRadius.round, + ), + ), + child: Icon( + Icons.check_rounded, + color: context.conduitTheme.textInverse, + size: 16, + ), + ) + else if (widget.conversation == null) + PopupMenuButton( + icon: Icon( + Icons.more_vert_rounded, + color: context.conduitTheme.iconSecondary, + size: IconSize.md, + ), + color: context.conduitTheme.cardBackground, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.md), + side: BorderSide( + color: context.conduitTheme.cardBorder.withValues( + alpha: 0.3, + ), + width: BorderWidth.thin, + ), + ), + onSelected: (value) { + switch (value) { + case 'rename': + _renameFolder(folder); + break; + case 'delete': + _deleteFolder(folder); + break; + } + }, + itemBuilder: (context) => [ + PopupMenuItem( + value: 'rename', + child: Row( + children: [ + Icon( + Icons.edit_rounded, + size: 18, + color: context.conduitTheme.iconSecondary, + ), + const SizedBox(width: Spacing.sm), + Text( + 'Rename', + style: TextStyle( + color: context.conduitTheme.textPrimary, + ), + ), + ], + ), + ), + PopupMenuItem( + value: 'delete', + child: Row( + children: [ + Icon( + Icons.delete_rounded, + size: 18, + color: context.conduitTheme.error, + ), + const SizedBox(width: Spacing.sm), + Text( + 'Delete', + style: TextStyle( + color: context.conduitTheme.error, + ), + ), + ], + ), + ), + ], + ), + ], + ), + ), + ), + ), + ); + } + + Future _createFolder() async { + final name = _nameController.text.trim(); + if (name.isEmpty) return; + + setState(() => _isCreating = true); + + try { + final api = ref.read(apiServiceProvider); + if (api == null) throw Exception('No API service available'); + + await api.createFolder(name: name); + ref.invalidate(foldersProvider); + _nameController.clear(); + + if (mounted) { + UiUtils.showMessage(context, 'Folder "$name" created'); + } + } catch (e) { + if (mounted) { + UiUtils.showMessage(context, 'Error creating folder: $e'); + } + } finally { + if (mounted) { + setState(() => _isCreating = false); + } + } + } + + Future _moveToFolder(String? folderId) async { + if (widget.conversation == null) return; + + try { + final api = ref.read(apiServiceProvider); + if (api == null) throw Exception('No API service available'); + + await api.moveConversationToFolder(widget.conversation!.id, folderId); + ref.invalidate(conversationsProvider); + ref.invalidate(foldersProvider); + + if (mounted) { + Navigator.pop(context); + UiUtils.showMessage( + context, + folderId != null + ? 'Conversation moved to folder' + : 'Conversation removed from folder', + ); + } + } catch (e) { + if (mounted) { + UiUtils.showMessage(context, 'Error moving conversation: $e'); + } + } + } + + void _renameFolder(Folder folder) async { + final controller = TextEditingController(text: folder.name); + final result = await showDialog( + context: context, + builder: (context) => AlertDialog( + backgroundColor: AppTheme.neutral700, + title: Text( + 'Rename Folder', + style: TextStyle(color: context.conduitTheme.textPrimary), + ), + content: TextField( + controller: controller, + style: TextStyle(color: context.conduitTheme.inputText), + decoration: InputDecoration( + hintText: 'Folder name', + hintStyle: TextStyle( + color: context.conduitTheme.inputPlaceholder.withValues( + alpha: 0.5, + ), + ), + border: OutlineInputBorder( + borderSide: BorderSide( + color: context.conduitTheme.inputBorder.withValues(alpha: 0.2), + ), + ), + enabledBorder: OutlineInputBorder( + borderSide: BorderSide( + color: context.conduitTheme.inputBorder.withValues(alpha: 0.2), + ), + ), + focusedBorder: OutlineInputBorder( + borderSide: BorderSide(color: context.conduitTheme.buttonPrimary), + ), + ), + ), + actions: [ + TextButton( + onPressed: () => Navigator.pop(context), + child: Text( + 'Cancel', + style: TextStyle( + color: context.conduitTheme.textPrimary.withValues(alpha: 0.7), + ), + ), + ), + FilledButton( + onPressed: () => Navigator.pop(context, controller.text.trim()), + style: FilledButton.styleFrom( + backgroundColor: context.conduitTheme.buttonPrimary, + ), + child: const Text('Rename'), + ), + ], + ), + ); + + if (result != null && result.isNotEmpty && result != folder.name) { + try { + final api = ref.read(apiServiceProvider); + if (api != null) { + await api.updateFolder(folder.id, name: result); + ref.invalidate(foldersProvider); + + if (mounted) { + UiUtils.showMessage(context, 'Folder renamed to "$result"'); + } + } + } catch (e) { + if (mounted) { + UiUtils.showMessage(context, 'Failed to rename folder: $e'); + } + } + } + + controller.dispose(); + } + + void _deleteFolder(Folder folder) async { + final confirmed = await showDialog( + context: context, + builder: (context) => AlertDialog( + backgroundColor: context.conduitTheme.cardBackground, + title: Text( + 'Delete Folder', + style: TextStyle(color: context.conduitTheme.textPrimary), + ), + content: Text( + 'Are you sure you want to delete "${folder.name}"?\n\nThis action cannot be undone. Conversations in this folder will be moved to the main folder.', + style: TextStyle(color: context.conduitTheme.textPrimary), + ), + actions: [ + TextButton( + onPressed: () => Navigator.pop(context, false), + child: Text( + 'Cancel', + style: TextStyle( + color: context.conduitTheme.textPrimary.withValues(alpha: 0.7), + ), + ), + ), + FilledButton( + onPressed: () => Navigator.pop(context, true), + style: FilledButton.styleFrom( + backgroundColor: context.conduitTheme.error, + ), + child: const Text('Delete'), + ), + ], + ), + ); + + if (confirmed == true) { + try { + final api = ref.read(apiServiceProvider); + if (api != null) { + await api.deleteFolder(folder.id); + ref.invalidate(foldersProvider); + ref.invalidate(conversationsProvider); + + if (mounted) { + UiUtils.showMessage(context, 'Folder "${folder.name}" deleted'); + } + } + } catch (e) { + if (mounted) { + UiUtils.showMessage(context, 'Failed to delete folder: $e'); + } + } + } + } +} diff --git a/lib/features/chat/widgets/message_batch_widget.dart b/lib/features/chat/widgets/message_batch_widget.dart new file mode 100644 index 0000000..a5631d9 --- /dev/null +++ b/lib/features/chat/widgets/message_batch_widget.dart @@ -0,0 +1,1056 @@ +import 'package:flutter/material.dart'; +import '../../../shared/theme/app_theme.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:flutter_animate/flutter_animate.dart'; +import 'dart:io' show Platform; +import '../../../shared/theme/theme_extensions.dart'; +import '../../../shared/utils/platform_utils.dart'; + +import '../services/message_batch_service.dart'; +import '../../../core/models/chat_message.dart'; +import '../../../core/providers/app_providers.dart'; +import '../providers/chat_providers.dart'; +import '../../../shared/widgets/themed_dialogs.dart'; + +/// Batch operations toolbar that appears when messages are selected +class MessageBatchToolbar extends ConsumerWidget { + final List selectedMessages; + final VoidCallback? onCancel; + + const MessageBatchToolbar({ + super.key, + required this.selectedMessages, + this.onCancel, + }); + + @override + Widget build(BuildContext context, WidgetRef ref) { + final conduitTheme = context.conduitTheme; + final selectedCount = selectedMessages.length; + + return Container( + height: 80, + padding: const EdgeInsets.symmetric( + horizontal: Spacing.md, + vertical: Spacing.sm, + ), + decoration: BoxDecoration( + color: conduitTheme.cardBackground, + border: Border( + top: BorderSide(color: conduitTheme.cardBorder, width: 1), + ), + boxShadow: ConduitShadows.medium, + ), + child: SafeArea( + child: Row( + children: [ + // Selected count + Expanded( + child: Text( + '$selectedCount message${selectedCount == 1 ? '' : 's'} selected', + style: conduitTheme.bodyMedium?.copyWith( + fontWeight: FontWeight.w600, + ), + ), + ), + + // Action buttons + _buildActionButton( + icon: Platform.isIOS + ? CupertinoIcons.doc_on_clipboard + : Icons.copy, + label: 'Copy', + onPressed: () => _showCopyOptions(context, ref), + ), + + const SizedBox(width: Spacing.sm), + + _buildActionButton( + icon: Platform.isIOS ? CupertinoIcons.share : Icons.share, + label: 'Export', + onPressed: () => _showExportOptions(context, ref), + ), + + const SizedBox(width: Spacing.sm), + + _buildActionButton( + icon: Platform.isIOS + ? CupertinoIcons.ellipsis_circle + : Icons.more_vert, + label: 'More', + onPressed: () => _showMoreOptions(context, ref), + ), + + const SizedBox(width: Spacing.sm), + + // Cancel button + GestureDetector( + onTap: () { + PlatformUtils.lightHaptic(); + onCancel?.call(); + }, + child: Container( + padding: const EdgeInsets.symmetric( + horizontal: Spacing.md, + vertical: Spacing.sm, + ), + decoration: BoxDecoration( + color: AppTheme.neutral50.withValues(alpha: Alpha.subtle), + borderRadius: BorderRadius.circular(AppBorderRadius.sm), + ), + child: Text( + 'Cancel', + style: TextStyle( + color: AppTheme.neutral50.withValues(alpha: 0.8), + fontSize: AppTypography.labelLarge, + fontWeight: FontWeight.w500, + ), + ), + ), + ), + ], + ), + ), + ).animate().slideY( + begin: 1, + end: 0, + duration: const Duration(milliseconds: 200), + curve: Curves.easeOut, + ); + } + + Widget _buildActionButton({ + required IconData icon, + required String label, + required VoidCallback onPressed, + }) { + return GestureDetector( + onTap: () { + PlatformUtils.lightHaptic(); + onPressed(); + }, + child: Container( + padding: const EdgeInsets.all(Spacing.sm), + decoration: BoxDecoration( + color: AppTheme.neutral50.withValues(alpha: Alpha.subtle), + borderRadius: BorderRadius.circular(AppBorderRadius.sm), + ), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Icon( + icon, + color: AppTheme.neutral50.withValues(alpha: 0.8), + size: IconSize.md, + ), + const SizedBox(height: Spacing.xxs), + Text( + label, + style: TextStyle( + color: AppTheme.neutral50.withValues(alpha: 0.8), + fontSize: AppTypography.labelSmall, + fontWeight: FontWeight.w500, + ), + ), + ], + ), + ), + ); + } + + void _showCopyOptions(BuildContext context, WidgetRef ref) { + showModalBottomSheet( + context: context, + backgroundColor: Colors.transparent, + builder: (context) => CopyOptionsSheet(messages: selectedMessages), + ); + } + + void _showExportOptions(BuildContext context, WidgetRef ref) { + showModalBottomSheet( + context: context, + backgroundColor: Colors.transparent, + builder: (context) => ExportOptionsSheet(messages: selectedMessages), + ); + } + + void _showMoreOptions(BuildContext context, WidgetRef ref) { + showModalBottomSheet( + context: context, + backgroundColor: Colors.transparent, + builder: (context) => MoreOptionsSheet(messages: selectedMessages), + ); + } +} + +/// Copy options bottom sheet +class CopyOptionsSheet extends ConsumerWidget { + final List messages; + + const CopyOptionsSheet({super.key, required this.messages}); + + @override + Widget build(BuildContext context, WidgetRef ref) { + final conduitTheme = context.conduitTheme; + + return Container( + decoration: BoxDecoration( + color: context.conduitTheme.surfaceBackground, + borderRadius: const BorderRadius.vertical( + top: Radius.circular(AppBorderRadius.lg), + ), + boxShadow: ConduitShadows.modal, + ), + child: SafeArea( + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + // Handle bar + Container( + margin: const EdgeInsets.only(top: Spacing.sm), + width: 40, + height: 4, + decoration: BoxDecoration( + color: context.conduitTheme.dividerColor, + borderRadius: BorderRadius.circular(AppBorderRadius.xs), + ), + ), + + const SizedBox(height: Spacing.lg - Spacing.xs), + + // Title + Text('Copy Messages', style: conduitTheme.headingMedium), + + const SizedBox(height: Spacing.lg - Spacing.xs), + + // Copy options + _buildCopyOption( + context, + ref, + icon: Icons.text_fields, + title: 'Plain Text', + subtitle: 'Copy as plain text', + format: CopyFormat.plain, + ), + + _buildCopyOption( + context, + ref, + icon: Icons.code, + title: 'Markdown', + subtitle: 'Copy with formatting', + format: CopyFormat.markdown, + ), + + _buildCopyOption( + context, + ref, + icon: Icons.data_object, + title: 'JSON', + subtitle: 'Copy as structured data', + format: CopyFormat.json, + ), + + const SizedBox(height: Spacing.lg - Spacing.xs), + ], + ), + ), + ); + } + + Widget _buildCopyOption( + BuildContext context, + WidgetRef ref, { + required IconData icon, + required String title, + required String subtitle, + required CopyFormat format, + }) { + return ListTile( + leading: Icon(icon, color: context.conduitTheme.iconSecondary), + title: Text( + title, + style: context.conduitTheme.bodyLarge?.copyWith( + color: context.conduitTheme.textPrimary, + fontWeight: FontWeight.w500, + ), + ), + subtitle: Text( + subtitle, + style: context.conduitTheme.bodySmall?.copyWith( + color: context.conduitTheme.textSecondary, + ), + ), + onTap: () async { + Navigator.pop(context); + await _copyMessages(context, ref, format); + }, + ); + } + + Future _copyMessages( + BuildContext context, + WidgetRef ref, + CopyFormat format, + ) async { + try { + final batchService = ref.read(messageBatchServiceProvider); + final result = await batchService.copyMessages( + messages: messages, + format: format, + ); + + if (result.success) { + final content = result.data?['content'] as String?; + if (content != null) { + await Clipboard.setData(ClipboardData(text: content)); + + if (context.mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text( + '${messages.length} messages copied to clipboard', + ), + backgroundColor: AppTheme.success, + ), + ); + } + } + } else { + if (context.mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text('Failed to copy messages: ${result.error}'), + backgroundColor: AppTheme.error, + ), + ); + } + } + } catch (e) { + if (context.mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text('Error copying messages: $e'), + backgroundColor: AppTheme.error, + ), + ); + } + } + } +} + +/// Export options bottom sheet +class ExportOptionsSheet extends ConsumerWidget { + final List messages; + + const ExportOptionsSheet({super.key, required this.messages}); + + @override + Widget build(BuildContext context, WidgetRef ref) { + final conduitTheme = context.conduitTheme; + + return Container( + decoration: BoxDecoration( + color: context.conduitTheme.surfaceBackground, + borderRadius: const BorderRadius.vertical( + top: Radius.circular(AppBorderRadius.lg), + ), + boxShadow: ConduitShadows.modal, + ), + child: SafeArea( + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + // Handle bar + Container( + margin: const EdgeInsets.only(top: Spacing.sm), + width: 40, + height: 4, + decoration: BoxDecoration( + color: context.conduitTheme.dividerColor, + borderRadius: BorderRadius.circular(AppBorderRadius.xs), + ), + ), + + const SizedBox(height: Spacing.lg - Spacing.xs), + + // Title + Text('Export Messages', style: conduitTheme.headingMedium), + + const SizedBox(height: Spacing.lg - Spacing.xs), + + // Export options + _buildExportOption( + context, + ref, + icon: Icons.text_fields, + title: 'Text File', + subtitle: 'Export as plain text (.txt)', + format: ExportFormat.text, + ), + + _buildExportOption( + context, + ref, + icon: Icons.code, + title: 'Markdown', + subtitle: 'Export with formatting (.md)', + format: ExportFormat.markdown, + ), + + _buildExportOption( + context, + ref, + icon: Icons.data_object, + title: 'JSON', + subtitle: 'Export as structured data (.json)', + format: ExportFormat.json, + ), + + _buildExportOption( + context, + ref, + icon: Icons.table_chart, + title: 'CSV', + subtitle: 'Export as spreadsheet (.csv)', + format: ExportFormat.csv, + ), + + const SizedBox(height: Spacing.lg - Spacing.xs), + ], + ), + ), + ); + } + + Widget _buildExportOption( + BuildContext context, + WidgetRef ref, { + required IconData icon, + required String title, + required String subtitle, + required ExportFormat format, + }) { + return ListTile( + leading: Icon(icon, color: AppTheme.neutral50.withValues(alpha: 0.8)), + title: Text( + title, + style: const TextStyle( + color: AppTheme.neutral50, + fontWeight: FontWeight.w500, + ), + ), + subtitle: Text( + subtitle, + style: TextStyle( + color: AppTheme.neutral50.withValues(alpha: Alpha.strong), + ), + ), + onTap: () { + Navigator.pop(context); + _showExportDialog(context, ref, format); + }, + ); + } + + void _showExportDialog( + BuildContext context, + WidgetRef ref, + ExportFormat format, + ) { + showDialog( + context: context, + builder: (context) => ExportDialog(messages: messages, format: format), + ); + } +} + +/// More options bottom sheet for additional batch operations +class MoreOptionsSheet extends ConsumerWidget { + final List messages; + + const MoreOptionsSheet({super.key, required this.messages}); + + @override + Widget build(BuildContext context, WidgetRef ref) { + final conduitTheme = context.conduitTheme; + + return Container( + decoration: BoxDecoration( + color: conduitTheme.cardBackground, + borderRadius: const BorderRadius.vertical( + top: Radius.circular(AppBorderRadius.lg), + ), + ), + child: SafeArea( + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + // Handle bar + Container( + margin: const EdgeInsets.only(top: Spacing.sm), + width: 40, + height: 4, + decoration: BoxDecoration( + color: AppTheme.neutral50.withValues(alpha: 0.3), + borderRadius: BorderRadius.circular(AppBorderRadius.xs), + ), + ), + + const SizedBox(height: Spacing.lg - Spacing.xs), + + // Title + Text('More Actions', style: conduitTheme.headingMedium), + + const SizedBox(height: Spacing.lg - Spacing.xs), + + // More options + ListTile( + leading: Icon( + Icons.label_outline, + color: context.conduitTheme.iconSecondary, + ), + title: Text( + 'Add Tags', + style: context.conduitTheme.bodyLarge?.copyWith( + color: context.conduitTheme.textPrimary, + fontWeight: FontWeight.w500, + ), + ), + subtitle: Text( + 'Tag selected messages', + style: context.conduitTheme.bodySmall?.copyWith( + color: context.conduitTheme.textSecondary, + ), + ), + onTap: () { + Navigator.pop(context); + _showTagDialog(context, ref); + }, + ), + + ListTile( + leading: Icon( + Icons.archive_outlined, + color: context.conduitTheme.iconSecondary, + ), + title: Text( + 'Archive', + style: context.conduitTheme.bodyLarge?.copyWith( + color: context.conduitTheme.textPrimary, + fontWeight: FontWeight.w500, + ), + ), + subtitle: Text( + 'Archive selected messages', + style: context.conduitTheme.bodySmall?.copyWith( + color: context.conduitTheme.textSecondary, + ), + ), + onTap: () { + Navigator.pop(context); + _archiveMessages(context, ref); + }, + ), + + ListTile( + leading: Icon( + Icons.delete_outline, + color: context.conduitTheme.error, + ), + title: Text( + 'Delete', + style: context.conduitTheme.bodyLarge?.copyWith( + color: context.conduitTheme.error, + fontWeight: FontWeight.w500, + ), + ), + subtitle: Text( + 'Delete selected messages', + style: context.conduitTheme.bodySmall?.copyWith( + color: context.conduitTheme.textSecondary, + ), + ), + onTap: () { + Navigator.pop(context); + _showDeleteConfirmation(context, ref); + }, + ), + + const SizedBox(height: Spacing.lg - Spacing.xs), + ], + ), + ), + ); + } + + void _showTagDialog(BuildContext context, WidgetRef ref) async { + final activeConversation = ref.read(activeConversationProvider); + if (activeConversation == null) return; + + final controller = TextEditingController(); + + showDialog( + context: context, + builder: (context) => StatefulBuilder( + builder: (context, setState) => AlertDialog( + backgroundColor: context.conduitTheme.surfaceBackground, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.dialog), + ), + title: Text( + 'Manage Tags', + style: TextStyle(color: context.conduitTheme.textPrimary), + ), + content: SizedBox( + width: double.maxFinite, + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + // Add new tag input + TextField( + controller: controller, + style: TextStyle(color: context.conduitTheme.textPrimary), + decoration: InputDecoration( + hintText: 'Add a tag', + hintStyle: TextStyle( + color: context.conduitTheme.inputPlaceholder, + ), + border: OutlineInputBorder( + borderSide: BorderSide( + color: context.conduitTheme.inputBorder, + ), + ), + enabledBorder: OutlineInputBorder( + borderSide: BorderSide( + color: context.conduitTheme.inputBorder, + ), + ), + focusedBorder: OutlineInputBorder( + borderSide: BorderSide( + color: context.conduitTheme.buttonPrimary, + ), + ), + suffixIcon: IconButton( + icon: Icon( + Icons.add, + color: context.conduitTheme.buttonPrimary, + ), + onPressed: () async { + final tag = controller.text.trim(); + if (tag.isNotEmpty) { + try { + final api = ref.read(apiServiceProvider); + if (api != null) { + await api.addTagToConversation( + activeConversation.id, + tag, + ); + controller.clear(); + setState(() {}); // Refresh the dialog + + if (context.mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Tag "$tag" added')), + ); + } + } + } catch (e) { + if (context.mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text('Failed to add tag: $e'), + backgroundColor: AppTheme.error, + ), + ); + } + } + } + }, + ), + ), + ), + + const SizedBox(height: Spacing.md), + + // Current tags + FutureBuilder>( + future: _loadConversationTags(ref, activeConversation.id), + builder: (context, snapshot) { + if (snapshot.connectionState == ConnectionState.waiting) { + return Center( + child: CircularProgressIndicator( + color: context.conduitTheme.buttonPrimary, + ), + ); + } + + final tags = snapshot.data ?? []; + + if (tags.isEmpty) { + return Text( + 'No tags yet', + style: TextStyle( + color: context.conduitTheme.textSecondary, + ), + ); + } + + return Wrap( + spacing: 8, + runSpacing: 8, + children: tags + .map( + (tag) => Chip( + label: Text( + tag, + style: TextStyle( + color: context.conduitTheme.textPrimary, + ), + ), + backgroundColor: context + .conduitTheme + .buttonPrimary + .withValues(alpha: 0.2), + deleteIcon: Icon( + Icons.close, + color: context.conduitTheme.iconSecondary, + size: IconSize.sm, + ), + onDeleted: () async { + try { + final api = ref.read(apiServiceProvider); + if (api != null) { + await api.removeTagFromConversation( + activeConversation.id, + tag, + ); + setState(() {}); // Refresh the dialog + + if (context.mounted) { + ScaffoldMessenger.of( + context, + ).showSnackBar( + SnackBar( + content: Text('Tag "$tag" removed'), + ), + ); + } + } + } catch (e) { + if (context.mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text( + 'Failed to remove tag: $e', + ), + backgroundColor: + context.conduitTheme.error, + ), + ); + } + } + }, + ), + ) + .toList(), + ); + }, + ), + ], + ), + ), + actions: [ + TextButton( + onPressed: () { + controller.dispose(); + Navigator.pop(context); + }, + child: Text( + 'Done', + style: TextStyle( + color: AppTheme.neutral50.withValues(alpha: Alpha.strong), + ), + ), + ), + ], + ), + ), + ); + } + + Future> _loadConversationTags( + WidgetRef ref, + String conversationId, + ) async { + try { + final api = ref.read(apiServiceProvider); + if (api != null) { + return await api.getConversationTags(conversationId); + } + } catch (e) { + // Return empty list on error + } + return []; + } + + void _archiveMessages(BuildContext context, WidgetRef ref) async { + final activeConversation = ref.read(activeConversationProvider); + if (activeConversation == null) return; + + final confirmed = await ThemedDialogs.confirm( + context, + title: 'Archive Conversation', + message: + 'Archive this conversation? You can find it in the archived conversations section.', + confirmText: 'Archive', + ); + + if (confirmed == true) { + try { + final api = ref.read(apiServiceProvider); + if (api != null) { + await api.archiveConversation(activeConversation.id, true); + ref.invalidate(conversationsProvider); + ref.invalidate(archivedConversationsProvider); + + if (context.mounted) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('Conversation archived')), + ); + + // Navigate back or clear current conversation + Navigator.of(context).popUntil((route) => route.isFirst); + } + } + } catch (e) { + if (context.mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text('Failed to archive conversation: $e'), + backgroundColor: AppTheme.error, + ), + ); + } + } + } + } + + void _showDeleteConfirmation(BuildContext context, WidgetRef ref) { + ThemedDialogs.confirm( + context, + title: 'Delete Messages', + message: + 'Are you sure you want to delete ${messages.length} message${messages.length == 1 ? '' : 's'}? This action cannot be undone.', + confirmText: 'Delete', + isDestructive: true, + ).then((confirmed) { + if (confirmed == true) { + _deleteMessages(context, ref); + } + }); + } + + void _deleteMessages(BuildContext context, WidgetRef ref) async { + final activeConversation = ref.read(activeConversationProvider); + if (activeConversation == null) return; + + final confirmed = await ThemedDialogs.confirm( + context, + title: 'Delete Conversation', + message: + 'Are you sure you want to delete this conversation?\n\nThis action cannot be undone.', + confirmText: 'Delete', + isDestructive: true, + ); + + if (confirmed == true) { + try { + final api = ref.read(apiServiceProvider); + if (api != null) { + await api.deleteConversation(activeConversation.id); + ref.invalidate(conversationsProvider); + ref.invalidate(archivedConversationsProvider); + + // Clear the current conversation + ref.read(activeConversationProvider.notifier).state = null; + ref.read(chatMessagesProvider.notifier).clearMessages(); + + if (context.mounted) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('Conversation deleted')), + ); + + // Navigate back to conversation list + Navigator.of(context).popUntil((route) => route.isFirst); + } + } + } catch (e) { + if (context.mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text('Failed to delete conversation: $e'), + backgroundColor: AppTheme.error, + ), + ); + } + } + } + } +} + +/// Export dialog with options +class ExportDialog extends ConsumerStatefulWidget { + final List messages; + final ExportFormat format; + + const ExportDialog({super.key, required this.messages, required this.format}); + + @override + ConsumerState createState() => _ExportDialogState(); +} + +class _ExportDialogState extends ConsumerState { + bool _includeTimestamps = true; + bool _includeMetadata = false; + bool _includeAttachments = true; + bool _isExporting = false; + + @override + Widget build(BuildContext context) { + final conduitTheme = context.conduitTheme; + + return AlertDialog( + backgroundColor: AppTheme.neutral700, + title: Text('Export Options', style: conduitTheme.headingMedium), + content: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + 'Export ${widget.messages.length} messages as ${widget.format.name.toUpperCase()}', + style: conduitTheme.bodyMedium?.copyWith( + color: AppTheme.neutral50.withValues(alpha: 0.8), + ), + ), + + const SizedBox(height: Spacing.lg - Spacing.xs), + + // Export options + CheckboxListTile( + title: const Text( + 'Include timestamps', + style: TextStyle(color: AppTheme.neutral50), + ), + value: _includeTimestamps, + onChanged: (value) => + setState(() => _includeTimestamps = value ?? true), + activeColor: AppTheme.brandPrimary, + ), + + CheckboxListTile( + title: const Text( + 'Include metadata', + style: TextStyle(color: AppTheme.neutral50), + ), + value: _includeMetadata, + onChanged: (value) => + setState(() => _includeMetadata = value ?? false), + activeColor: AppTheme.brandPrimary, + ), + + CheckboxListTile( + title: const Text( + 'Include attachments', + style: TextStyle(color: AppTheme.neutral50), + ), + value: _includeAttachments, + onChanged: (value) => + setState(() => _includeAttachments = value ?? true), + activeColor: AppTheme.brandPrimary, + ), + ], + ), + actions: [ + TextButton( + onPressed: _isExporting ? null : () => Navigator.pop(context), + child: const Text('Cancel'), + ), + TextButton( + onPressed: _isExporting ? null : _performExport, + child: _isExporting + ? const SizedBox( + width: Spacing.md, + height: Spacing.md, + child: CircularProgressIndicator(strokeWidth: 2), + ) + : const Text('Export'), + ), + ], + ); + } + + Future _performExport() async { + setState(() => _isExporting = true); + + try { + final batchService = ref.read(messageBatchServiceProvider); + final options = ExportOptions( + includeTimestamps: _includeTimestamps, + includeMetadata: _includeMetadata, + includeAttachments: _includeAttachments, + ); + + final result = await batchService.exportMessages( + messages: widget.messages, + format: widget.format, + options: options, + ); + + if (result.success && mounted) { + Navigator.pop(context); + + // In a real app, you would save the file or share it + // For now, we'll copy to clipboard + final content = result.data?['content'] as String?; + if (content != null) { + await Clipboard.setData(ClipboardData(text: content)); + + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text( + 'Export copied to clipboard (${widget.format.name.toUpperCase()})', + ), + backgroundColor: AppTheme.success, + ), + ); + } + } + } else if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text('Export failed: ${result.error}'), + backgroundColor: AppTheme.error, + ), + ); + } + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text('Export error: $e'), + backgroundColor: AppTheme.error, + ), + ); + } + } finally { + if (mounted) { + setState(() => _isExporting = false); + } + } + } +} diff --git a/lib/features/chat/widgets/modern_chat_input.dart b/lib/features/chat/widgets/modern_chat_input.dart new file mode 100644 index 0000000..44265a9 --- /dev/null +++ b/lib/features/chat/widgets/modern_chat_input.dart @@ -0,0 +1,792 @@ +import 'package:flutter/material.dart'; +import '../../../shared/theme/theme_extensions.dart'; + +import 'package:flutter/cupertino.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:flutter/services.dart'; + +import 'dart:io' show Platform; +import 'dart:async'; +import '../providers/chat_providers.dart'; + +import '../../../shared/utils/platform_utils.dart'; + +class ModernChatInput extends ConsumerStatefulWidget { + final Function(String) onSendMessage; + final bool enabled; + final Function()? onVoiceInput; + final Function()? onFileAttachment; + final Function()? onImageAttachment; + final Function()? onCameraCapture; + + const ModernChatInput({ + super.key, + required this.onSendMessage, + this.enabled = true, + this.onVoiceInput, + this.onFileAttachment, + this.onImageAttachment, + this.onCameraCapture, + }); + + @override + ConsumerState createState() => _ModernChatInputState(); +} + +class _ModernChatInputState extends ConsumerState + with TickerProviderStateMixin { + final TextEditingController _controller = TextEditingController(); + final FocusNode _focusNode = FocusNode(); + final bool _isRecording = false; + bool _isExpanded = true; // Start expanded for better UX + // TODO: Implement voice input functionality + // final String _voiceInputText = ''; + bool _hasText = false; // track locally without rebuilding on each keystroke + StreamSubscription? _voiceStreamSubscription; + late AnimationController _expandController; + late AnimationController _pulseController; + Timer? _blurCollapseTimer; + bool _hasAutoFocusedOnce = false; + + @override + void initState() { + super.initState(); + _expandController = AnimationController( + duration: + AnimationDuration.fast, // Faster animation for better responsiveness + vsync: this, + value: 1.0, // Start expanded + ); + _pulseController = AnimationController( + duration: AnimationDuration.slow, + vsync: this, + ); + + // Listen for text changes and update only when emptiness flips + _controller.addListener(() { + final has = _controller.text.trim().isNotEmpty; + if (has != _hasText) { + WidgetsBinding.instance.addPostFrameCallback((_) { + if (!mounted) return; + setState(() => _hasText = has); + // Intelligent expansion: expand when user starts typing + if (has && !_isExpanded) { + _setExpanded(true); + } + }); + } + }); + + // Intelligent expand/collapse around focus changes + _focusNode.addListener(() { + // Cancel any pending blur-driven collapse + _blurCollapseTimer?.cancel(); + + WidgetsBinding.instance.addPostFrameCallback((_) { + if (!mounted) return; + final hasFocus = _focusNode.hasFocus; + if (hasFocus) { + if (!_isExpanded) _setExpanded(true); + } else { + // Defer collapse slightly to avoid IME show/hide race conditions + _blurCollapseTimer = Timer(const Duration(milliseconds: 160), () { + if (!mounted) return; + if (_focusNode.hasFocus) return; // focus came back + // Collapse only when keyboard is fully hidden to avoid flicker + final keyboardVisible = + MediaQuery.of(context).viewInsets.bottom > 0; + if (keyboardVisible) return; + final has = _controller.text.trim().isNotEmpty; + if (!has && _isExpanded) { + _setExpanded(false); + } + }); + } + }); + }); + + // Let autofocus handle the focus - no manual intervention + // The TextField's autofocus: true should handle focus and keyboard automatically + // Additionally, request focus after first frame to ensure reliability across platforms + WidgetsBinding.instance.addPostFrameCallback((_) { + if (!mounted) return; + if (!_hasAutoFocusedOnce && widget.enabled) { + _ensureFocusedIfEnabled(); + _hasAutoFocusedOnce = true; + } + }); + } + + @override + void dispose() { + _controller.dispose(); + _focusNode.dispose(); + _expandController.dispose(); + _pulseController.dispose(); + _blurCollapseTimer?.cancel(); + _voiceStreamSubscription?.cancel(); + super.dispose(); + } + + void _ensureFocusedIfEnabled() { + if (!widget.enabled) return; + if (!_focusNode.hasFocus) { + FocusScope.of(context).requestFocus(_focusNode); + } + } + + @override + void didUpdateWidget(covariant ModernChatInput oldWidget) { + super.didUpdateWidget(oldWidget); + if (widget.enabled && !oldWidget.enabled && !_hasAutoFocusedOnce) { + // Became enabled (e.g., after selecting a model) → focus the input + WidgetsBinding.instance.addPostFrameCallback((_) { + if (!mounted) return; + _ensureFocusedIfEnabled(); + _hasAutoFocusedOnce = true; + }); + } + if (!widget.enabled && oldWidget.enabled) { + // Became disabled → collapse and hide keyboard + WidgetsBinding.instance.addPostFrameCallback((_) { + if (!mounted) return; + if (_isExpanded) _setExpanded(false); + if (_focusNode.hasFocus) { + _focusNode.unfocus(); + } + }); + } + } + + void _sendMessage() { + final text = _controller.text.trim(); + if (text.isEmpty || !widget.enabled) return; + + PlatformUtils.lightHaptic(); + widget.onSendMessage(text); + _controller.clear(); + // Keep input expanded and focused for better UX - don't dismiss keyboard + // KeyboardUtils.dismissKeyboard(context); + // _setExpanded(false); + } + + void _setExpanded(bool expanded) { + if (_isExpanded == expanded) return; + setState(() { + _isExpanded = expanded; + }); + if (expanded) { + _expandController.forward(); + } else { + _expandController.reverse(); + } + } + + @override + Widget build(BuildContext context) { + // Check if assistant is currently generating by checking last assistant message streaming + final messages = ref.watch(chatMessagesProvider); + final isGenerating = + messages.isNotEmpty && + messages.last.role == 'assistant' && + messages.last.isStreaming; + final stopGeneration = ref.read(stopGenerationProvider); + + return Container( + // Transparent wrapper so rounded corners are visible against page background + color: Colors.transparent, + padding: EdgeInsets.only( + left: 0, + right: 0, + top: Spacing.xs.toDouble(), + bottom: 0, + ), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + // Web search status indicator + _buildWebSearchStatusIndicator(), + + // Main input area with unified 2-row design + Container( + clipBehavior: Clip.antiAlias, + padding: EdgeInsets.only( + bottom: MediaQuery.of(context).padding.bottom, + ), + decoration: BoxDecoration( + color: context.conduitTheme.inputBackground, + borderRadius: const BorderRadius.vertical( + top: Radius.circular(AppBorderRadius.xl), + bottom: Radius.circular(0), + ), + border: Border( + top: BorderSide( + color: context.conduitTheme.inputBorder, + width: BorderWidth.regular, + ), + left: BorderSide( + color: context.conduitTheme.inputBorder, + width: BorderWidth.regular, + ), + right: BorderSide( + color: context.conduitTheme.inputBorder, + width: BorderWidth.regular, + ), + // Removed bottom border to eliminate divider + ), + boxShadow: ConduitShadows.input, + ), + width: double.infinity, + child: ConstrainedBox( + constraints: BoxConstraints( + // cap the input area to 40% of screen height to avoid bottom overflow + maxHeight: MediaQuery.of(context).size.height * 0.4, + ), + child: AnimatedSize( + duration: + AnimationDuration.fast, // Faster for better responsiveness + curve: Curves.fastOutSlowIn, // More efficient curve + alignment: Alignment.topCenter, + child: SingleChildScrollView( + physics: const ClampingScrollPhysics(), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + // Collapsed/Expanded top row: text input with left/right buttons in collapsed + Padding( + padding: const EdgeInsets.all(Spacing.inputPadding), + child: Row( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + if (!_isExpanded) ...[ + _buildRoundButton( + icon: Icons.add, + onTap: widget.enabled + ? _showAttachmentOptions + : null, + tooltip: 'Add attachment', + ), + const SizedBox(width: Spacing.sm), + ], + // Text input expands to fill + Expanded( + child: Semantics( + textField: true, + label: 'Message input', + hint: 'Type your message', + child: TextField( + controller: _controller, + focusNode: _focusNode, + enabled: widget.enabled, + autofocus: false, + maxLines: _isExpanded ? null : 1, + keyboardType: TextInputType.multiline, + textInputAction: TextInputAction.newline, + showCursor: true, + cursorColor: context.conduitTheme.inputText, + style: AppTypography.chatMessageStyle + .copyWith( + color: context.conduitTheme.inputText, + ), + decoration: InputDecoration( + hintText: 'Message...', + hintStyle: TextStyle( + color: + context.conduitTheme.inputPlaceholder, + fontSize: AppTypography.bodyLarge, + fontWeight: _isRecording + ? FontWeight.w500 + : FontWeight.w400, + fontStyle: _isRecording + ? FontStyle.italic + : FontStyle.normal, + ), + // Ensure the text field background matches its parent container + // and does not use the global InputDecorationTheme fill + filled: false, + border: InputBorder.none, + enabledBorder: InputBorder.none, + focusedBorder: InputBorder.none, + errorBorder: InputBorder.none, + disabledBorder: InputBorder.none, + contentPadding: EdgeInsets.zero, + isDense: true, + alignLabelWithHint: true, + ), + // Removed onChanged setState to reduce rebuilds + onSubmitted: (_) => _sendMessage(), + onTap: () { + if (!widget.enabled) return; + if (!_isExpanded) { + _setExpanded(true); + WidgetsBinding.instance + .addPostFrameCallback((_) { + if (!mounted) return; + _ensureFocusedIfEnabled(); + }); + } else { + _ensureFocusedIfEnabled(); + } + }, + ), + ), + ), + if (!_isExpanded) ...[ + const SizedBox(width: Spacing.sm), + // Primary action button (Send/Stop) when collapsed + _buildPrimaryButton( + _hasText, + isGenerating, + stopGeneration, + ), + ], + ], + ), + ), + + // Expanded bottom row with additional options + if (_isExpanded) ...[ + Container( + padding: const EdgeInsets.only( + left: Spacing.inputPadding, + right: Spacing.inputPadding, + bottom: Spacing.inputPadding, + ), + child: FadeTransition( + opacity: _expandController, + child: Row( + children: [ + _buildRoundButton( + icon: Icons.add, + onTap: widget.enabled + ? _showAttachmentOptions + : null, + tooltip: 'Add attachment', + ), + const SizedBox(width: Spacing.sm), + Flexible( + child: Center(child: _buildResearchToggle()), + ), + const SizedBox(width: Spacing.md), + // Microphone button: call provided callback for premium voice UI + _buildRoundButton( + icon: Platform.isIOS + ? CupertinoIcons.mic_fill + : Icons.mic, + onTap: widget.enabled + ? widget.onVoiceInput + : null, + tooltip: 'Voice input', + isActive: _isRecording, + ), + const SizedBox(width: Spacing.sm), + // Primary action button (Send/Stop) when expanded + _buildPrimaryButton( + _hasText, + isGenerating, + stopGeneration, + ), + ], + ), + ), + ), + ], + ], + ), + ), + ), + ), + ), + ], + ), + ); + } + + Widget _buildPrimaryButton( + bool hasText, + bool isGenerating, + void Function() stopGeneration, + ) { + // Spec: 48px touch target, circular radius, md icon size + const double buttonSize = TouchTarget.comfortable; // 48.0 + const double radius = AppBorderRadius.round; // big to ensure circle + + final enabled = !isGenerating && hasText && widget.enabled; + + // Generating -> STOP variant + if (isGenerating) { + return Tooltip( + message: 'Stop generating', + child: GestureDetector( + onTap: stopGeneration, + child: Container( + width: buttonSize, + height: buttonSize, + decoration: BoxDecoration( + color: context.conduitTheme.error.withValues( + alpha: Alpha.buttonPressed, + ), + borderRadius: BorderRadius.circular(radius), + border: Border.all( + color: context.conduitTheme.error, + width: BorderWidth.regular, + ), + boxShadow: ConduitShadows.button, + ), + child: Stack( + alignment: Alignment.center, + children: [ + SizedBox( + width: buttonSize - 18, + height: buttonSize - 18, + child: CircularProgressIndicator( + strokeWidth: BorderWidth.medium, + valueColor: AlwaysStoppedAnimation( + context.conduitTheme.error, + ), + ), + ), + Icon( + Platform.isIOS ? CupertinoIcons.stop_fill : Icons.stop, + size: IconSize.medium, + color: context.conduitTheme.error, + ), + ], + ), + ), + ), + ); + } + + // Default SEND variant + return Tooltip( + message: enabled ? 'Send message' : 'Send', + child: GestureDetector( + onTap: enabled ? _sendMessage : null, + child: Opacity( + opacity: enabled ? Alpha.primary : Alpha.disabled, + child: IgnorePointer( + ignoring: !enabled, + child: Container( + width: buttonSize, + height: buttonSize, + decoration: BoxDecoration( + color: context.conduitTheme.cardBackground, + borderRadius: BorderRadius.circular(radius), + border: Border.all( + color: enabled + ? context.conduitTheme.cardBorder + : context.conduitTheme.cardBorder.withValues( + alpha: Alpha.medium, + ), + width: BorderWidth.regular, + ), + boxShadow: ConduitShadows.button, + ), + child: Icon( + Platform.isIOS ? CupertinoIcons.arrow_up : Icons.arrow_upward, + size: IconSize.medium, + color: enabled + ? context.conduitTheme.textPrimary + : context.conduitTheme.textPrimary.withValues( + alpha: Alpha.disabled, + ), + ), + ), + ), + ), + ), + ); + } + + Widget _buildRoundButton({ + required IconData icon, + VoidCallback? onTap, + String? tooltip, + bool isActive = false, + bool showBackground = true, + }) { + return Tooltip( + message: tooltip ?? '', + child: GestureDetector( + onTap: onTap, + child: Container( + width: TouchTarget.comfortable, + height: TouchTarget.comfortable, + decoration: BoxDecoration( + color: isActive + ? context.conduitTheme.textPrimary.withValues( + alpha: Alpha.buttonHover, + ) + : showBackground + ? context.conduitTheme.cardBackground + : Colors.transparent, + borderRadius: BorderRadius.circular(AppBorderRadius.xl), + border: Border.all( + color: isActive + ? context.conduitTheme.textPrimary.withValues( + alpha: Alpha.buttonHover + Alpha.subtle, + ) + : showBackground + ? context.conduitTheme.cardBorder + : Colors.transparent, + width: BorderWidth.regular, + ), + boxShadow: (isActive || showBackground) + ? ConduitShadows.button + : null, + ), + child: Icon( + icon, + size: IconSize.medium, + color: widget.enabled + ? (isActive + ? context.conduitTheme.textPrimary + : context.conduitTheme.textPrimary.withValues( + alpha: Alpha.strong, + )) + : context.conduitTheme.textPrimary.withValues( + alpha: Alpha.disabled, + ), + ), + ), + ), + ); + } + + Widget _buildResearchToggle() { + final webSearchEnabled = ref.watch( + webSearchEnabledProvider.select((enabled) => enabled), + ); + + return GestureDetector( + onTap: widget.enabled + ? () { + ref.read(webSearchEnabledProvider.notifier).state = + !webSearchEnabled; + } + : null, + child: Container( + padding: const EdgeInsets.symmetric( + horizontal: Spacing.md, + vertical: Spacing.sm, + ), + decoration: BoxDecoration( + color: webSearchEnabled + ? context.conduitTheme.textPrimary.withValues( + alpha: Alpha.buttonHover, + ) + : context.conduitTheme.surfaceBackground.withValues( + alpha: Alpha.subtle, + ), + borderRadius: BorderRadius.circular(AppBorderRadius.xl), + border: Border.all( + color: webSearchEnabled + ? context.conduitTheme.textPrimary.withValues( + alpha: Alpha.buttonHover + Alpha.subtle, + ) + : context.conduitTheme.textPrimary.withValues( + alpha: Alpha.subtle, + ), + width: BorderWidth.regular, + ), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Icon( + Platform.isIOS ? CupertinoIcons.search : Icons.travel_explore, + size: IconSize.small, + color: widget.enabled + ? (webSearchEnabled + ? context.conduitTheme.textPrimary + : context.conduitTheme.textPrimary.withValues( + alpha: Alpha.strong, + )) + : context.conduitTheme.textPrimary.withValues( + alpha: Alpha.disabled, + ), + ), + const SizedBox(width: Spacing.sm), + Flexible( + child: Text( + 'Search', + style: TextStyle( + fontSize: AppTypography.bodySmall, + fontWeight: FontWeight.w500, + color: widget.enabled + ? (webSearchEnabled + ? context.conduitTheme.textPrimary + : context.conduitTheme.textPrimary.withValues( + alpha: Alpha.strong, + )) + : context.conduitTheme.textPrimary.withValues( + alpha: Alpha.disabled, + ), + ), + ), + ), + ], + ), + ), + ); + } + + Widget _buildWebSearchStatusIndicator() { + final webSearchEnabled = ref.watch( + webSearchEnabledProvider.select((enabled) => enabled), + ); + + if (!webSearchEnabled) return const SizedBox.shrink(); + + return Container( + padding: const EdgeInsets.symmetric( + horizontal: Spacing.md, + vertical: Spacing.xs, + ), + margin: const EdgeInsets.only( + left: Spacing.md, + right: Spacing.md, + bottom: Spacing.xs, + ), + decoration: BoxDecoration( + color: context.conduitTheme.info.withValues( + alpha: Alpha.badgeBackground, + ), + borderRadius: BorderRadius.circular(AppBorderRadius.badge), + border: Border.all( + color: context.conduitTheme.info.withValues(alpha: Alpha.subtle), + width: BorderWidth.regular, + ), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Icon( + Platform.isIOS ? CupertinoIcons.search : Icons.travel_explore, + size: IconSize.small, + color: context.conduitTheme.info, + ), + const SizedBox(width: Spacing.xs), + Text( + 'Web search on', + style: AppTypography.captionStyle.copyWith( + color: context.conduitTheme.info, + ), + ), + ], + ), + ); + } + + void _showAttachmentOptions() { + showModalBottomSheet( + context: context, + backgroundColor: Colors.transparent, + builder: (context) => Container( + decoration: BoxDecoration( + color: context.conduitTheme.surfaceBackground, + borderRadius: const BorderRadius.vertical( + top: Radius.circular(AppBorderRadius.bottomSheet), + ), + boxShadow: ConduitShadows.modal, + ), + padding: const EdgeInsets.all(Spacing.bottomSheetPadding), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + // Handle bar + Container( + width: 40, + height: 4, + decoration: BoxDecoration( + color: context.conduitTheme.textPrimary.withValues( + alpha: Alpha.medium, + ), + borderRadius: BorderRadius.circular(2), + ), + ), + const SizedBox(height: Spacing.lg), + + // Options grid + Row( + mainAxisAlignment: MainAxisAlignment.spaceEvenly, + children: [ + _buildAttachmentOption( + icon: Platform.isIOS ? CupertinoIcons.doc : Icons.attach_file, + label: 'File', + onTap: () { + Navigator.pop(context); // Close modal + widget.onFileAttachment?.call(); + }, + ), + _buildAttachmentOption( + icon: Platform.isIOS ? CupertinoIcons.photo : Icons.image, + label: 'Photo', + onTap: () { + Navigator.pop(context); // Close modal + widget.onImageAttachment?.call(); + }, + ), + _buildAttachmentOption( + icon: Platform.isIOS + ? CupertinoIcons.camera + : Icons.camera_alt, + label: 'Camera', + onTap: () { + Navigator.pop(context); // Close modal + widget.onCameraCapture?.call(); + }, + ), + ], + ), + const SizedBox(height: Spacing.lg), + ], + ), + ), + ); + } + + Widget _buildAttachmentOption({ + required IconData icon, + required String label, + VoidCallback? onTap, + }) { + return GestureDetector( + onTap: onTap, + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Container( + width: 64, + height: 64, + decoration: BoxDecoration( + color: context.conduitTheme.textPrimary.withValues( + alpha: Alpha.subtle, + ), + borderRadius: BorderRadius.circular(AppBorderRadius.lg), + border: Border.all( + color: context.conduitTheme.textPrimary.withValues( + alpha: Alpha.subtle, + ), + width: BorderWidth.regular, + ), + ), + child: Icon( + icon, + color: context.conduitTheme.textPrimary, + size: IconSize.xl, + ), + ), + const SizedBox(height: Spacing.sm), + Text( + label, + style: AppTypography.labelStyle.copyWith( + color: context.conduitTheme.textPrimary, + ), + ), + ], + ), + ); + } +} diff --git a/lib/features/chat/widgets/modern_message_bubble.dart b/lib/features/chat/widgets/modern_message_bubble.dart new file mode 100644 index 0000000..8577c5e --- /dev/null +++ b/lib/features/chat/widgets/modern_message_bubble.dart @@ -0,0 +1,811 @@ +import 'dart:convert'; +import 'package:flutter/material.dart'; +import '../../../shared/theme/theme_extensions.dart'; + +import 'package:flutter/cupertino.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:flutter_animate/flutter_animate.dart'; +import 'dart:io' show Platform; +import '../../../core/providers/app_providers.dart'; + +class ModernMessageBubble extends ConsumerStatefulWidget { + final dynamic message; + final bool isUser; + final bool isStreaming; + final String? modelName; + final VoidCallback? onCopy; + final VoidCallback? onEdit; + final VoidCallback? onRegenerate; + final VoidCallback? onLike; + final VoidCallback? onDislike; + + const ModernMessageBubble({ + super.key, + required this.message, + required this.isUser, + this.isStreaming = false, + this.modelName, + this.onCopy, + this.onEdit, + this.onRegenerate, + this.onLike, + this.onDislike, + }); + + @override + ConsumerState createState() => + _ModernMessageBubbleState(); +} + +class _ModernMessageBubbleState extends ConsumerState + with TickerProviderStateMixin { + bool _showActions = false; + late AnimationController _fadeController; + late AnimationController _slideController; + static const int _maxCachedImages = 24; + + // Cache for image base64 data to prevent repeated API calls + final Map _imageCache = {}; + + @override + void initState() { + super.initState(); + _fadeController = AnimationController( + duration: AnimationDuration.microInteraction, + vsync: this, + ); + _slideController = AnimationController( + duration: AnimationDuration.messageSlide, + vsync: this, + ); + } + + @override + void dispose() { + _fadeController.dispose(); + _slideController.dispose(); + super.dispose(); + } + + void _toggleActions() { + setState(() { + _showActions = !_showActions; + }); + + if (_showActions) { + _fadeController.forward(); + _slideController.forward(); + } else { + _fadeController.reverse(); + _slideController.reverse(); + } + } + + @override + Widget build(BuildContext context) { + if (widget.isUser) { + return _buildUserMessage(); + } else { + return _buildAssistantMessage(); + } + } + + Widget _buildUserMessage() { + return Container( + width: double.infinity, + margin: const EdgeInsets.only( + bottom: Spacing.messagePadding, + left: Spacing.xxxl, + right: Spacing.xs, + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + Flexible( + child: GestureDetector( + onLongPress: () => _toggleActions(), + child: Container( + padding: const EdgeInsets.symmetric( + horizontal: Spacing.messagePadding, + vertical: Spacing.sm, + ), + decoration: BoxDecoration( + gradient: LinearGradient( + begin: Alignment.topLeft, + end: Alignment.bottomRight, + colors: [ + context.conduitTheme.chatBubbleUser.withValues( + alpha: 0.95, + ), + context.conduitTheme.chatBubbleUser, + ], + ), + borderRadius: BorderRadius.circular( + AppBorderRadius.messageBubble, + ), + border: Border.all( + color: context.conduitTheme.chatBubbleUserBorder, + width: BorderWidth.regular, + ), + boxShadow: ConduitShadows.high, + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + // Display images if any + if (widget.message.attachmentIds != null && + widget.message.attachmentIds!.isNotEmpty) + _buildAttachmentImages(), + + // Display text content if any + if (widget.message.content.isNotEmpty) ...[ + if (widget.message.attachmentIds != null && + widget.message.attachmentIds!.isNotEmpty) + const SizedBox(height: Spacing.sm), + _buildCustomText( + widget.message.content, + context.conduitTheme.chatBubbleUserText, + ), + ], + ], + ), + ), + ), + ), + ], + ), + ) + .animate() + .fadeIn(duration: AnimationDuration.messageAppear) + .slideX( + begin: AnimationValues.messageSlideDistance, + end: 0, + duration: AnimationDuration.messageSlide, + curve: AnimationCurves.messageSlide, + ); + } + + Widget _buildAssistantMessage() { + return Container( + width: double.infinity, + margin: const EdgeInsets.only( + bottom: Spacing.lg, + left: Spacing.xs, + right: Spacing.xxxl, + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + // Simplified AI Name and Avatar + Padding( + padding: const EdgeInsets.only(bottom: 12), + child: Row( + children: [ + Container( + width: 20, + height: 20, + decoration: BoxDecoration( + gradient: LinearGradient( + colors: [ + context.conduitTheme.buttonPrimary.withValues( + alpha: 0.9, + ), + context.conduitTheme.buttonPrimary, + ], + ), + borderRadius: BorderRadius.circular( + AppBorderRadius.small, + ), + ), + child: Icon( + Icons.auto_awesome, + color: context.conduitTheme.buttonPrimaryText, + size: 12, + ), + ), + const SizedBox(width: Spacing.xs), + Text( + widget.modelName ?? 'Assistant', + style: TextStyle( + color: context.conduitTheme.textSecondary, + fontSize: AppTypography.bodySmall, + fontWeight: FontWeight.w500, + letterSpacing: 0.1, + ), + ), + ], + ), + ), + + // Message Content + GestureDetector( + onLongPress: () => _toggleActions(), + child: Container( + padding: const EdgeInsets.all(Spacing.messagePadding), + decoration: BoxDecoration( + color: context.conduitTheme.chatBubbleAssistant, + borderRadius: BorderRadius.circular( + AppBorderRadius.messageBubble, + ), + border: Border.all( + color: context.conduitTheme.chatBubbleAssistantBorder, + width: BorderWidth.regular, + ), + boxShadow: ConduitShadows.low, + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + // Check for typing indicator - show for empty content OR explicit typing indicator during streaming + if ((widget.message.content.isEmpty || + widget.message.content == '[TYPING_INDICATOR]') && + widget.isStreaming) ...[ + _buildTypingIndicator(), + ] else if (widget.message.content.isNotEmpty && + widget.message.content != '[TYPING_INDICATOR]') ...[ + _buildCustomText( + widget.message.content, + context.conduitTheme.chatBubbleAssistantText, + ), + ] else + // Fallback: show empty state for non-streaming empty messages + const SizedBox.shrink(), + + // Action buttons + if (_showActions) ...[ + const SizedBox(height: Spacing.md), + _buildActionButtons(), + ], + ], + ), + ), + ), + ], + ), + ) + .animate() + .fadeIn(duration: AnimationDuration.messageAppear) + .slideX( + begin: -AnimationValues.messageSlideDistance, + end: 0, + duration: AnimationDuration.messageSlide, + curve: AnimationCurves.messageSlide, + ); + } + + Widget _buildAttachmentImages() { + if (widget.message.attachmentIds == null || + widget.message.attachmentIds!.isEmpty) { + return const SizedBox.shrink(); + } + + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: widget.message.attachmentIds!.map((attachmentId) { + return Consumer( + builder: (context, ref, child) { + final api = ref.watch(apiServiceProvider); + if (api == null) return const SizedBox.shrink(); + + return FutureBuilder( + future: _getCachedImageBase64(api, attachmentId), + builder: (context, snapshot) { + if (snapshot.connectionState == ConnectionState.waiting) { + return Container( + height: 150, + width: 200, + margin: const EdgeInsets.only(bottom: Spacing.xs), + decoration: BoxDecoration( + color: context.conduitTheme.surfaceBackground.withValues( + alpha: 0.5, + ), + borderRadius: BorderRadius.circular(AppBorderRadius.sm), + ), + child: Center( + child: CircularProgressIndicator( + color: context.conduitTheme.buttonPrimary, + strokeWidth: 2, + ), + ), + ); + } + + if (snapshot.hasError || + !snapshot.hasData || + snapshot.data == null) { + return Container( + height: 100, + width: 150, + margin: const EdgeInsets.only(bottom: Spacing.xs), + decoration: BoxDecoration( + color: context.conduitTheme.surfaceBackground.withValues( + alpha: 0.3, + ), + borderRadius: BorderRadius.circular(AppBorderRadius.sm), + border: Border.all( + color: context.conduitTheme.textSecondary.withValues( + alpha: 0.3, + ), + ), + ), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + Icons.broken_image_outlined, + color: context.conduitTheme.textSecondary, + size: 32, + ), + const SizedBox(height: Spacing.xs), + Text( + 'Image unavailable', + style: TextStyle( + color: context.conduitTheme.textSecondary, + fontSize: AppTypography.bodySmall, + ), + ), + ], + ), + ); + } + + final base64Data = snapshot.data!; + try { + // Handle data URLs (data:image/...;base64,...) + String actualBase64; + if (base64Data.startsWith('data:')) { + // Extract base64 part from data URL + final commaIndex = base64Data.indexOf(','); + if (commaIndex != -1) { + actualBase64 = base64Data.substring(commaIndex + 1); + } else { + throw Exception('Invalid data URL format'); + } + } else { + // Direct base64 string + actualBase64 = base64Data; + } + + final imageBytes = base64.decode(actualBase64); + return Container( + margin: const EdgeInsets.only(bottom: Spacing.xs), + constraints: const BoxConstraints( + maxWidth: 300, + maxHeight: 300, + ), + child: ClipRRect( + borderRadius: BorderRadius.circular(AppBorderRadius.sm), + child: Image.memory( + imageBytes, + fit: BoxFit.cover, + errorBuilder: (context, error, stackTrace) { + return Container( + height: 100, + width: 150, + decoration: BoxDecoration( + color: context.conduitTheme.surfaceBackground + .withValues(alpha: 0.3), + borderRadius: BorderRadius.circular( + AppBorderRadius.sm, + ), + ), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + Icons.error_outline, + color: context.conduitTheme.error, + size: 32, + ), + const SizedBox(height: Spacing.xs), + Text( + 'Failed to load image', + style: TextStyle( + color: context.conduitTheme.error, + fontSize: AppTypography.bodySmall, + ), + ), + ], + ), + ); + }, + ), + ), + ); + } catch (e) { + return Container( + height: 100, + width: 150, + margin: const EdgeInsets.only(bottom: Spacing.xs), + decoration: BoxDecoration( + color: context.conduitTheme.surfaceBackground.withValues( + alpha: 0.3, + ), + borderRadius: BorderRadius.circular(AppBorderRadius.sm), + ), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + Icons.error_outline, + color: context.conduitTheme.error, + size: 32, + ), + const SizedBox(height: Spacing.xs), + Text( + 'Invalid image format', + style: TextStyle( + color: context.conduitTheme.error, + fontSize: AppTypography.bodySmall, + ), + ), + ], + ), + ); + } + }, + ); + }, + ); + }).toList(), + ); + } + + Future _getCachedImageBase64(dynamic api, String fileId) async { + // Check cache first to prevent repeated API calls + if (_imageCache.containsKey(fileId)) { + return _imageCache[fileId]; + } + + // If not in cache, get the image and cache it + final result = await _getImageBase64(api, fileId); + // Simple LRU-like eviction to bound memory + if (_imageCache.length >= _maxCachedImages) { + _imageCache.remove(_imageCache.keys.first); + } + _imageCache[fileId] = result; + return result; + } + + Future _getImageBase64(dynamic api, String fileId) async { + try { + // Check if this is already a data URL (for images) + if (fileId.startsWith('data:')) { + return fileId; + } + + // First, get file info to determine if it's an image + final fileInfo = await api.getFileInfo(fileId); + final fileName = + fileInfo['filename'] ?? + fileInfo['meta']?['name'] ?? + fileInfo['name'] ?? + fileInfo['file_name'] ?? + fileInfo['original_name'] ?? + fileInfo['original_filename'] ?? + ''; + final ext = fileName.toLowerCase().split('.').last; + + // Only process image files + if (!['jpg', 'jpeg', 'png', 'gif', 'webp'].contains(ext)) { + debugPrint('DEBUG: Skipping non-image file: $fileName'); + return null; + } + + // Get file content as base64 string + final fileContent = await api.getFileContent(fileId); + return fileContent; + } catch (e) { + debugPrint('DEBUG: Error getting image content for $fileId: $e'); + return null; + } + } + + Widget _buildCustomText(String text, [Color? textColor]) { + // Simple markdown-like parsing for efficiency + final lines = text.split('\n'); + final widgets = []; + + for (int i = 0; i < lines.length; i++) { + final line = lines[i]; + if (line.trim().isEmpty) { + if (i < lines.length - 1) { + widgets.add(const SizedBox(height: Spacing.sm)); + } + continue; + } + + // Parse basic markdown + Widget textWidget = _parseMarkdownLine(line, textColor); + + if (i < lines.length - 1) { + widgets.add(textWidget); + widgets.add(const SizedBox(height: Spacing.xs)); + } else { + widgets.add(textWidget); + } + } + + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: widgets, + ); + } + + Widget _parseMarkdownLine(String line, [Color? textColor]) { + // Handle code blocks + if (line.startsWith('```')) { + return Container( + margin: const EdgeInsets.symmetric(vertical: Spacing.xs), + padding: const EdgeInsets.all(Spacing.md), + decoration: BoxDecoration( + color: context.conduitTheme.surfaceBackground.withValues( + alpha: Alpha.badgeBackground, + ), + borderRadius: BorderRadius.circular(AppBorderRadius.sm), + border: Border.all( + color: context.conduitTheme.textPrimary.withValues( + alpha: Alpha.subtle, + ), + width: BorderWidth.regular, + ), + ), + child: Text( + line.substring(3), + style: AppTypography.chatCodeStyle.copyWith( + color: textColor ?? context.conduitTheme.textSecondary, + ), + ), + ) + .animate() + .fadeIn(duration: AnimationDuration.microInteraction) + .slideX( + begin: 0.1, + end: 0, + duration: AnimationDuration.microInteraction, + ); + } + + // Handle headers + if (line.startsWith('#')) { + int level = 0; + while (level < line.length && line[level] == '#') { + level++; + } + final fontSize = AppTypography.headlineMedium - (level * 2); + return Text( + line.substring(level).trim(), + style: AppTypography.headlineMediumStyle.copyWith( + color: textColor ?? context.conduitTheme.textPrimary, + fontSize: fontSize.toDouble(), + ), + ) + .animate() + .fadeIn(duration: AnimationDuration.microInteraction) + .slideX( + begin: 0.1, + end: 0, + duration: AnimationDuration.microInteraction, + ); + } + + // Handle inline code + if (line.contains('`')) { + final parts = line.split('`'); + final widgets = []; + + for (int i = 0; i < parts.length; i++) { + if (parts[i].isNotEmpty) { + if (i % 2 == 1) { + // Inline code + widgets.add( + Container( + padding: const EdgeInsets.symmetric( + horizontal: Spacing.xs + Spacing.xxs, + vertical: Spacing.xxs, + ), + decoration: BoxDecoration( + color: context.conduitTheme.textPrimary.withValues( + alpha: Alpha.badgeBackground, + ), + borderRadius: BorderRadius.circular(AppBorderRadius.xs), + ), + child: Text( + parts[i], + style: AppTypography.chatCodeStyle.copyWith( + color: textColor ?? context.conduitTheme.textSecondary, + ), + ), + ), + ); + } else { + // Regular text + widgets.add( + Text( + parts[i], + style: AppTypography.chatMessageStyle.copyWith( + color: textColor ?? context.conduitTheme.textPrimary, + ), + ), + ); + } + } + } + + return Wrap( + crossAxisAlignment: WrapCrossAlignment.start, + children: widgets, + ) + .animate() + .fadeIn(duration: AnimationDuration.microInteraction) + .slideX( + begin: 0.1, + end: 0, + duration: AnimationDuration.microInteraction, + ); + } + + // Regular text + return Text( + line, + style: AppTypography.chatMessageStyle.copyWith( + color: textColor ?? context.conduitTheme.textPrimary, + letterSpacing: 0.1, + ), + ) + .animate() + .fadeIn(duration: AnimationDuration.microInteraction) + .slideX( + begin: 0.1, + end: 0, + duration: AnimationDuration.microInteraction, + ); + } + + Widget _buildTypingIndicator() { + return Consumer( + builder: (context, ref, child) { + // Show only animated dots, no text + return _buildTypingDots(); + }, + ); + } + + Widget _buildTypingDots() { + return Row( + children: List.generate(3, (index) { + return Container( + margin: EdgeInsets.only(right: index < 2 ? Spacing.xs : 0), + width: 6, + height: 6, + decoration: BoxDecoration( + color: context.conduitTheme.loadingIndicator, + borderRadius: BorderRadius.circular(3), + ), + ) + .animate(onPlay: (controller) => controller.repeat()) + .scale( + duration: AnimationDuration.typingIndicator, + begin: const Offset( + AnimationValues.typingIndicatorScale, + AnimationValues.typingIndicatorScale, + ), + end: const Offset(1.0, 1.0), + curve: AnimationCurves.typingIndicator, + delay: Duration( + milliseconds: index * 200, + ), // Stagger the animation + ); + }), + ); + } + + Widget _buildActionButtons() { + return Wrap( + spacing: Spacing.sm, + runSpacing: Spacing.sm, + children: [ + _buildActionButton( + icon: Platform.isIOS ? CupertinoIcons.pencil : Icons.edit_outlined, + label: 'Edit', + onTap: widget.onEdit, + ), + _buildActionButton( + icon: Platform.isIOS + ? CupertinoIcons.doc_on_clipboard + : Icons.content_copy, + label: 'Copy', + onTap: widget.onCopy, + ), + _buildActionButton( + icon: Platform.isIOS + ? CupertinoIcons.speaker_1 + : Icons.volume_up_outlined, + label: 'Read', + onTap: () => _handleTextToSpeech(context), + ), + _buildActionButton( + icon: Platform.isIOS + ? CupertinoIcons.hand_thumbsup + : Icons.thumb_up_outlined, + label: 'Like', + onTap: widget.onLike, + ), + _buildActionButton( + icon: Platform.isIOS + ? CupertinoIcons.hand_thumbsdown + : Icons.thumb_down_outlined, + label: 'Dislike', + onTap: widget.onDislike, + ), + _buildActionButton( + icon: Platform.isIOS ? CupertinoIcons.refresh : Icons.refresh, + label: 'Regenerate', + onTap: widget.onRegenerate, + ), + ], + ); + } + + Widget _buildActionButton({ + required IconData icon, + required String label, + VoidCallback? onTap, + }) { + return GestureDetector( + onTap: onTap, + child: Container( + padding: const EdgeInsets.symmetric( + horizontal: Spacing.actionButtonPadding, + vertical: Spacing.xs, + ), + decoration: BoxDecoration( + color: context.conduitTheme.surfaceBackground.withValues( + alpha: Alpha.buttonHover, + ), + borderRadius: BorderRadius.circular(AppBorderRadius.actionButton), + border: Border.all( + color: context.conduitTheme.textPrimary.withValues( + alpha: Alpha.subtle, + ), + width: BorderWidth.regular, + ), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Icon( + icon, + size: IconSize.small, + color: context.conduitTheme.iconSecondary, + ), + const SizedBox(width: Spacing.xs), + Text( + label, + style: AppTypography.labelStyle.copyWith( + color: context.conduitTheme.textSecondary, + ), + ), + ], + ), + ), + ).animate().scale( + duration: AnimationDuration.buttonPress, + curve: AnimationCurves.buttonPress, + ); + } + + void _handleTextToSpeech(BuildContext context) { + // Implementation for text-to-speech functionality + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text('Text-to-speech feature coming soon!'), + backgroundColor: context.conduitTheme.info, + behavior: SnackBarBehavior.floating, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.snackbar), + ), + ), + ); + } +} diff --git a/lib/features/chat/widgets/tag_management_dialog.dart b/lib/features/chat/widgets/tag_management_dialog.dart new file mode 100644 index 0000000..23888b1 --- /dev/null +++ b/lib/features/chat/widgets/tag_management_dialog.dart @@ -0,0 +1,259 @@ +import 'dart:io'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; + +import '../../../shared/theme/theme_extensions.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; + +import '../../../core/models/conversation.dart'; +import '../../../core/providers/app_providers.dart'; + +class TagManagementDialog extends ConsumerStatefulWidget { + final Conversation conversation; + + const TagManagementDialog({super.key, required this.conversation}); + + @override + ConsumerState createState() => + _TagManagementDialogState(); +} + +class _TagManagementDialogState extends ConsumerState { + final _tagController = TextEditingController(); + bool _isAdding = false; + + @override + void dispose() { + _tagController.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + final conversationTags = widget.conversation.tags; + + return Dialog( + child: Container( + width: 400, + constraints: const BoxConstraints(maxHeight: 500), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + // Header + Container( + padding: const EdgeInsets.all(Spacing.md), + decoration: BoxDecoration( + color: theme.colorScheme.primaryContainer, + borderRadius: const BorderRadius.vertical( + top: Radius.circular(AppBorderRadius.lg), + ), + ), + child: Row( + children: [ + Icon( + Platform.isIOS ? CupertinoIcons.tag : Icons.label, + color: theme.colorScheme.onPrimaryContainer, + ), + const SizedBox(width: Spacing.sm), + Text( + 'Manage Tags', + style: theme.textTheme.titleLarge?.copyWith( + color: theme.colorScheme.onPrimaryContainer, + fontWeight: FontWeight.w600, + ), + ), + const Spacer(), + IconButton( + icon: Icon( + Platform.isIOS ? CupertinoIcons.xmark : Icons.close, + color: theme.colorScheme.onPrimaryContainer, + ), + onPressed: () => Navigator.pop(context), + ), + ], + ), + ), + + // Add new tag section + Padding( + padding: const EdgeInsets.all(Spacing.md), + child: Row( + children: [ + Expanded( + child: TextField( + controller: _tagController, + decoration: InputDecoration( + hintText: 'Add new tag', + border: const OutlineInputBorder(), + prefixIcon: Icon( + Platform.isIOS + ? CupertinoIcons.tag_fill + : Icons.label, + ), + ), + onSubmitted: (_) => _addTag(), + ), + ), + const SizedBox(width: Spacing.sm), + ElevatedButton( + onPressed: _isAdding ? null : _addTag, + child: _isAdding + ? const SizedBox( + width: Spacing.md, + height: 16, + child: CircularProgressIndicator(strokeWidth: 2), + ) + : const Text('Add'), + ), + ], + ), + ), + + const Divider(height: 1), + + // Current tags + Expanded( + child: conversationTags.isEmpty + ? Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + Platform.isIOS + ? CupertinoIcons.tag + : Icons.label_outline, + size: 48, + color: theme.colorScheme.onSurface.withValues( + alpha: 0.3, + ), + ), + const SizedBox(height: Spacing.md), + Text( + 'No tags yet', + style: theme.textTheme.bodyLarge?.copyWith( + color: theme.colorScheme.onSurface.withValues( + alpha: 0.6, + ), + ), + ), + const SizedBox(height: Spacing.sm), + Text( + 'Add tags to organize and find conversations easily', + style: theme.textTheme.bodySmall?.copyWith( + color: theme.colorScheme.onSurface.withValues( + alpha: 0.5, + ), + ), + textAlign: TextAlign.center, + ), + ], + ), + ) + : ListView.builder( + padding: const EdgeInsets.all(Spacing.md), + itemCount: conversationTags.length, + itemBuilder: (context, index) { + final tag = conversationTags[index]; + return _buildTagChip(context, tag); + }, + ), + ), + + // Bottom actions + Padding( + padding: const EdgeInsets.all(Spacing.md), + child: SizedBox( + width: double.infinity, + child: ElevatedButton( + onPressed: () => Navigator.pop(context), + child: const Text('Done'), + ), + ), + ), + ], + ), + ), + ); + } + + Widget _buildTagChip(BuildContext context, String tag) { + final theme = Theme.of(context); + + return Container( + margin: const EdgeInsets.only(bottom: 8), + child: Chip( + avatar: Icon( + Platform.isIOS ? CupertinoIcons.tag_fill : Icons.label, + size: 16, + color: theme.colorScheme.onPrimaryContainer, + ), + label: Text(tag), + backgroundColor: theme.colorScheme.primaryContainer, + deleteIcon: Icon( + Platform.isIOS ? CupertinoIcons.xmark_circle_fill : Icons.cancel, + size: 18, + ), + onDeleted: () => _removeTag(tag), + ), + ); + } + + Future _addTag() async { + final tag = _tagController.text.trim(); + if (tag.isEmpty || widget.conversation.tags.contains(tag)) return; + + setState(() => _isAdding = true); + + try { + final api = ref.read(apiServiceProvider); + if (api == null) throw Exception('No API service available'); + + await api.addTagToConversation(widget.conversation.id, tag); + ref.invalidate(conversationsProvider); + _tagController.clear(); + + if (mounted) { + ScaffoldMessenger.of( + context, + ).showSnackBar(SnackBar(content: Text('Tag "$tag" added'))); + } + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text('Error adding tag: $e'), + backgroundColor: Theme.of(context).colorScheme.error, + ), + ); + } + } finally { + setState(() => _isAdding = false); + } + } + + Future _removeTag(String tag) async { + try { + final api = ref.read(apiServiceProvider); + if (api == null) throw Exception('No API service available'); + + await api.removeTagFromConversation(widget.conversation.id, tag); + ref.invalidate(conversationsProvider); + + if (mounted) { + ScaffoldMessenger.of( + context, + ).showSnackBar(SnackBar(content: Text('Tag "$tag" removed'))); + } + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text('Error removing tag: $e'), + backgroundColor: Theme.of(context).colorScheme.error, + ), + ); + } + } + } +} diff --git a/lib/features/files/views/files_page.dart b/lib/features/files/views/files_page.dart new file mode 100644 index 0000000..1688991 --- /dev/null +++ b/lib/features/files/views/files_page.dart @@ -0,0 +1,439 @@ +import 'package:flutter/material.dart'; +import '../../../shared/theme/theme_extensions.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:flutter_animate/flutter_animate.dart'; +import '../../../core/widgets/error_boundary.dart'; +import '../../../core/services/navigation_service.dart'; +import '../../../shared/widgets/improved_loading_states.dart'; + +import '../../../shared/utils/ui_utils.dart'; + +/// Files page for managing documents and uploads +class FilesPage extends ConsumerStatefulWidget { + const FilesPage({super.key}); + + @override + ConsumerState createState() => _FilesPageState(); +} + +class _FilesPageState extends ConsumerState + with TickerProviderStateMixin { + int _selectedTab = 0; + late AnimationController _tabAnimationController; + late AnimationController _contentAnimationController; + + @override + void initState() { + super.initState(); + _tabAnimationController = AnimationController( + duration: AnimationDuration.microInteraction, + vsync: this, + ); + _contentAnimationController = AnimationController( + duration: AnimationDuration.pageTransition, + vsync: this, + ); + } + + @override + void dispose() { + _tabAnimationController.dispose(); + _contentAnimationController.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return ErrorBoundary( + child: Scaffold( + backgroundColor: context.conduitTheme.surfaceBackground, + appBar: _buildAppBar(), + body: Column( + children: [ + // Enhanced tab selector with animations + _buildTabSelector().animate().fadeIn( + duration: AnimationDuration.fast, + delay: AnimationDelay.short, + ), + + // Animated content + Expanded( + child: AnimatedSwitcher( + duration: AnimationDuration.pageTransition, + transitionBuilder: (Widget child, Animation animation) { + return FadeTransition( + opacity: animation, + child: SlideTransition( + position: + Tween( + begin: const Offset(0.05, 0), + end: Offset.zero, + ).animate( + CurvedAnimation( + parent: animation, + curve: AnimationCurves.pageTransition, + ), + ), + child: child, + ), + ); + }, + child: _selectedTab == 0 + ? _buildRecentFiles() + : _buildKnowledgeBase(), + ), + ), + ], + ), + ), + ); + } + + PreferredSizeWidget _buildAppBar() { + return AppBar( + backgroundColor: context.conduitTheme.surfaceBackground, + elevation: Elevation.none, + automaticallyImplyLeading: false, + toolbarHeight: TouchTarget.appBar, + titleSpacing: 0.0, + title: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Text( + 'Files', + style: context.conduitTheme.headingSmall?.copyWith( + color: context.conduitTheme.textPrimary, + fontWeight: FontWeight.w600, + ), + ), + ], + ), + centerTitle: true, + actions: [ + // Enhanced upload button with proper touch target + Container( + width: TouchTarget.iconButton, + height: TouchTarget.iconButton, + margin: const EdgeInsets.only(right: Spacing.screenPadding), + child: Material( + color: Colors.transparent, + child: InkWell( + borderRadius: BorderRadius.circular(AppBorderRadius.button), + onTap: _showUploadOptions, + child: Icon( + UiUtils.addIcon, + color: context.conduitTheme.iconPrimary, + size: IconSize.button, + ), + ), + ), + ), + ], + ); + } + + Widget _buildTabSelector() { + return Container( + margin: const EdgeInsets.symmetric( + horizontal: Spacing.pagePadding, + vertical: Spacing.sm, + ), + padding: const EdgeInsets.all(Spacing.xs), + decoration: BoxDecoration( + color: context.conduitTheme.surfaceContainer, + borderRadius: BorderRadius.circular(AppBorderRadius.card), + border: Border.all( + color: context.conduitTheme.cardBorder, + width: BorderWidth.thin, + ), + boxShadow: ConduitShadows.card, + ), + child: Row( + children: [ + Expanded( + child: _buildTabButton( + index: 0, + label: 'Recent Files', + isSelected: _selectedTab == 0, + ), + ), + const SizedBox(width: Spacing.xs), + Expanded( + child: _buildTabButton( + index: 1, + label: 'Knowledge Base', + isSelected: _selectedTab == 1, + ), + ), + ], + ), + ); + } + + Widget _buildTabButton({ + required int index, + required String label, + required bool isSelected, + }) { + return GestureDetector( + onTap: () { + setState(() => _selectedTab = index); + _tabAnimationController.forward(from: 0); + _contentAnimationController.forward(from: 0); + }, + child: AnimatedContainer( + duration: AnimationDuration.microInteraction, + curve: AnimationCurves.buttonPress, + padding: const EdgeInsets.symmetric( + vertical: Spacing.buttonPadding, + horizontal: Spacing.md, + ), + decoration: BoxDecoration( + color: isSelected + ? context.conduitTheme.buttonPrimary + : context.conduitTheme.surfaceBackground.withValues( + alpha: Alpha.hover, + ), + borderRadius: BorderRadius.circular(AppBorderRadius.button), + boxShadow: isSelected ? ConduitShadows.button : null, + ), + child: Text( + label, + style: context.conduitTheme.label?.copyWith( + color: isSelected + ? context.conduitTheme.textInverse + : context.conduitTheme.textSecondary, + fontWeight: isSelected ? FontWeight.w600 : FontWeight.w500, + ), + textAlign: TextAlign.center, + ), + ), + ); + } + + Widget _buildRecentFiles() { + return Container( + key: const ValueKey('recent_files'), + padding: const EdgeInsets.all(Spacing.pagePadding), + child: ImprovedEmptyState( + icon: UiUtils.platformIcon( + ios: CupertinoIcons.doc, + android: Icons.description_outlined, + ), + title: 'No files yet', + subtitle: + 'Upload documents to reference in your conversations with Conduit', + onAction: _showUploadOptions, + actionLabel: 'Upload your first file', + showAnimation: true, + ), + ).animate().fadeIn( + duration: AnimationDuration.messageAppear, + delay: AnimationDelay.short, + ); + } + + Widget _buildKnowledgeBase() { + return Container( + key: const ValueKey('knowledge_base'), + padding: const EdgeInsets.all(Spacing.pagePadding), + child: ImprovedEmptyState( + icon: UiUtils.platformIcon( + ios: CupertinoIcons.book, + android: Icons.library_books, + ), + title: 'Knowledge base is empty', + subtitle: 'Create collections of related documents for easy reference', + onAction: _showKnowledgeBaseOptions, + actionLabel: 'Create knowledge base', + showAnimation: true, + ), + ).animate().fadeIn( + duration: AnimationDuration.messageAppear, + delay: AnimationDelay.short, + ); + } + + void _showUploadOptions() { + showModalBottomSheet( + context: context, + backgroundColor: Colors.transparent, + isScrollControlled: true, + builder: (context) => _buildUploadModal(), + ); + } + + Widget _buildUploadModal() { + return Container( + decoration: BoxDecoration( + color: context.conduitTheme.surfaceBackground, + borderRadius: const BorderRadius.only( + topLeft: Radius.circular(AppBorderRadius.modal), + topRight: Radius.circular(AppBorderRadius.modal), + ), + boxShadow: ConduitShadows.modal, + ), + child: SafeArea( + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + // Enhanced handle bar + Container( + margin: const EdgeInsets.symmetric(vertical: Spacing.sm), + width: 40, + height: 4, + decoration: BoxDecoration( + color: context.conduitTheme.dividerColor, + borderRadius: BorderRadius.circular(AppBorderRadius.xs), + ), + ), + + // Header with enhanced typography + Padding( + padding: const EdgeInsets.all(Spacing.modalPadding), + child: Text( + 'Upload File', + style: context.conduitTheme.headingSmall?.copyWith( + color: context.conduitTheme.textPrimary, + fontWeight: FontWeight.w600, + ), + ), + ), + + // Enhanced upload options + _buildUploadOption( + icon: UiUtils.platformIcon( + ios: CupertinoIcons.camera, + android: Icons.camera_alt, + ), + title: 'Take Photo', + subtitle: 'Capture a document or image', + onTap: () => _handleUploadOption('camera'), + ), + _buildUploadOption( + icon: UiUtils.platformIcon( + ios: CupertinoIcons.photo, + android: Icons.photo_library, + ), + title: 'Photo Library', + subtitle: 'Choose from your photos', + onTap: () => _handleUploadOption('gallery'), + ), + _buildUploadOption( + icon: UiUtils.platformIcon( + ios: CupertinoIcons.doc, + android: Icons.description, + ), + title: 'Document', + subtitle: 'PDF, Word, or text file', + onTap: () => _handleUploadOption('document'), + ), + + const SizedBox(height: Spacing.modalPadding), + ], + ), + ), + ).animate().slide( + duration: AnimationDuration.modalPresentation, + curve: AnimationCurves.modalPresentation, + begin: const Offset(0, 1), + end: Offset.zero, + ); + } + + Widget _buildUploadOption({ + required IconData icon, + required String title, + required String subtitle, + required VoidCallback onTap, + }) { + return Container( + margin: const EdgeInsets.symmetric( + horizontal: Spacing.modalPadding, + vertical: Spacing.xs, + ), + child: Material( + color: Colors.transparent, + child: InkWell( + borderRadius: BorderRadius.circular(AppBorderRadius.card), + onTap: onTap, + child: Container( + padding: const EdgeInsets.all(Spacing.listItemPadding), + decoration: BoxDecoration( + color: context.conduitTheme.surfaceContainer, + borderRadius: BorderRadius.circular(AppBorderRadius.card), + border: Border.all( + color: context.conduitTheme.cardBorder, + width: BorderWidth.thin, + ), + ), + child: Row( + children: [ + // Enhanced icon container + Container( + width: IconSize.avatar, + height: IconSize.avatar, + decoration: BoxDecoration( + color: context.conduitTheme.buttonPrimary.withValues( + alpha: Alpha.highlight, + ), + borderRadius: BorderRadius.circular(AppBorderRadius.avatar), + ), + child: Icon( + icon, + color: context.conduitTheme.buttonPrimary, + size: IconSize.medium, + ), + ), + const SizedBox(width: Spacing.md), + // Enhanced text content + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + title, + style: context.conduitTheme.bodyLarge?.copyWith( + color: context.conduitTheme.textPrimary, + fontWeight: FontWeight.w500, + ), + ), + const SizedBox(height: Spacing.xs), + Text( + subtitle, + style: context.conduitTheme.caption?.copyWith( + color: context.conduitTheme.textSecondary, + ), + ), + ], + ), + ), + Icon( + UiUtils.platformIcon( + ios: CupertinoIcons.chevron_right, + android: Icons.chevron_right, + ), + color: context.conduitTheme.iconSecondary, + size: IconSize.small, + ), + ], + ), + ), + ), + ), + ).animate().fadeIn( + duration: AnimationDuration.fast, + delay: AnimationDelay.staggeredDelay, + ); + } + + void _handleUploadOption(String type) { + NavigationService.goBack(); + UiUtils.showMessage(context, 'File upload for $type is coming soon!'); + } + + void _showKnowledgeBaseOptions() { + UiUtils.showMessage(context, 'Knowledge base creation is coming soon!'); + } +} diff --git a/lib/features/navigation/views/chats_list_page.dart b/lib/features/navigation/views/chats_list_page.dart new file mode 100644 index 0000000..c9d401d --- /dev/null +++ b/lib/features/navigation/views/chats_list_page.dart @@ -0,0 +1,1362 @@ +import 'package:flutter/material.dart'; +import '../../../core/widgets/error_boundary.dart'; +import '../../../core/services/focus_management_service.dart'; +import '../../../shared/theme/theme_extensions.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:flutter_animate/flutter_animate.dart'; +import '../../../shared/widgets/loading_states.dart'; +import 'dart:async'; +import 'dart:io' show Platform; + +import '../../../core/providers/app_providers.dart'; +import '../../../shared/widgets/themed_dialogs.dart'; +import '../../../shared/widgets/conduit_components.dart'; +import '../../chat/providers/chat_providers.dart'; +import '../../chat/widgets/folder_management_dialog.dart'; + +/// Optimized conversation list page with Conduit design aesthetics +class ChatsListPage extends ConsumerStatefulWidget { + final bool isOverlay; + + const ChatsListPage({super.key, this.isOverlay = false}); + + @override + ConsumerState createState() => _ChatsListPageState(); +} + +class _ChatsListPageState extends ConsumerState + with AutomaticKeepAliveClientMixin { + final TextEditingController _searchController = TextEditingController(); + late final FocusNode _searchFocusNode; + final ScrollController _scrollController = ScrollController(); + + // Debounce search to improve performance + String _searchQuery = ''; + Timer? _debounceTimer; + bool _isLoadingConversation = false; + bool _hasAddedFocusListener = false; + + // Provider for archived section visibility + static final _showArchivedProvider = StateProvider((ref) => false); + + @override + bool get wantKeepAlive => true; // Keep state alive for better performance + + @override + void initState() { + super.initState(); + _searchFocusNode = FocusManagementService.registerFocusNode( + 'chats_list_search', + debugLabel: 'Chats List Search', + ); + _searchController.addListener(_onSearchChanged); + } + + @override + void dispose() { + _searchController.removeListener(_onSearchChanged); + _searchController.dispose(); + _scrollController.dispose(); + _debounceTimer?.cancel(); + FocusManagementService.disposeFocusNode('chats_list_search'); + super.dispose(); + } + + void _onSearchChanged() { + // Cancel previous timer + _debounceTimer?.cancel(); + + // Set new timer for debounced search + _debounceTimer = Timer(const Duration(milliseconds: 300), () { + if (_searchQuery != _searchController.text) { + setState(() { + _searchQuery = _searchController.text; + }); + ref.read(searchQueryProvider.notifier).state = _searchQuery; + } + }); + } + + @override + Widget build(BuildContext context) { + super.build(context); // Required for AutomaticKeepAliveClientMixin + + return ErrorBoundary( + child: Scaffold( + backgroundColor: context.conduitTheme.surfaceBackground, + appBar: _buildAppBar(), + body: Column( + children: [ + _buildSearchBar(), + Expanded(child: _wrapWithRefresh(_buildConversationsList())), + _buildBottomActions(), + ], + ), + floatingActionButton: FloatingActionButton( + onPressed: _startNewChat, + backgroundColor: context.conduitTheme.buttonPrimary, + foregroundColor: context.conduitTheme.buttonPrimaryText, + elevation: Elevation.medium, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.floatingButton), + ), + child: Icon( + Platform.isIOS ? CupertinoIcons.plus : Icons.add_rounded, + size: IconSize.large, + ), + ), + ), + ); + } + + PreferredSizeWidget _buildAppBar() { + return AppBar( + backgroundColor: context.conduitTheme.surfaceBackground, + elevation: Elevation.none, + scrolledUnderElevation: Elevation.none, + leading: widget.isOverlay + ? ConduitIconButton( + icon: Platform.isIOS ? CupertinoIcons.xmark : Icons.close_rounded, + onPressed: () => Navigator.pop(context), + ) + : ConduitIconButton( + icon: Platform.isIOS + ? CupertinoIcons.back + : Icons.arrow_back_rounded, + onPressed: () => Navigator.pop(context), + ), + title: Text( + 'Chats', + style: AppTypography.headlineMediumStyle.copyWith( + color: context.conduitTheme.textPrimary, + fontWeight: FontWeight.w600, + ), + ), + actions: [ + ConduitIconButton( + icon: Platform.isIOS + ? CupertinoIcons.ellipsis + : Icons.more_vert_rounded, + onPressed: _showOptions, + ), + ], + ); + } + + Widget _buildSearchBar() { + // Listen to focus changes and update UI + final isFocused = _searchFocusNode.hasFocus; + + // Attach listener only once + if (!_hasAddedFocusListener) { + _searchFocusNode.addListener(() { + setState(() {}); + }); + _hasAddedFocusListener = true; + } + + return GestureDetector( + onTap: () { + // Focus the search field when the container is tapped + _searchFocusNode.requestFocus(); + }, + child: Container( + margin: const EdgeInsets.all(Spacing.pagePadding), + padding: const EdgeInsets.symmetric( + horizontal: Spacing.inputPadding, + vertical: Spacing.sm, + ), + decoration: BoxDecoration( + color: context.conduitTheme.inputBackground, + borderRadius: BorderRadius.circular(AppBorderRadius.input), + border: Border.all( + color: isFocused + ? context.conduitTheme.buttonPrimary + : context.conduitTheme.inputBorder, + width: BorderWidth.regular, + ), + boxShadow: ConduitShadows.input, + ), + child: Row( + children: [ + Icon( + Platform.isIOS ? CupertinoIcons.search : Icons.search_rounded, + size: IconSize.medium, + color: context.conduitTheme.iconSecondary, + ), + const SizedBox(width: Spacing.sm), + Expanded( + child: TextField( + controller: _searchController, + focusNode: _searchFocusNode, + style: AppTypography.bodyMediumStyle.copyWith( + color: context.conduitTheme.inputText, + ), + decoration: InputDecoration( + hintText: 'Search conversations...', + hintStyle: AppTypography.bodyMediumStyle.copyWith( + color: context.conduitTheme.inputPlaceholder, + ), + border: InputBorder.none, // Remove default border + focusedBorder: + InputBorder.none, // Remove default focus border + enabledBorder: InputBorder.none, + contentPadding: EdgeInsets.zero, + ), + ), + ), + if (_searchController.text.isNotEmpty) + ConduitIconButton( + icon: Platform.isIOS + ? CupertinoIcons.clear + : Icons.clear_rounded, + onPressed: () { + _searchController.clear(); + _searchQuery = ''; + ref.read(searchQueryProvider.notifier).state = ''; + }, + ), + ], + ), + ), + ).animate().fadeIn( + duration: AnimationDuration.microInteraction, + curve: AnimationCurves.microInteraction, + ); + } + + Widget _buildConversationsList() { + return Consumer( + builder: (context, ref, child) { + final conversationsAsync = ref.watch(conversationsProvider); + + return conversationsAsync.when( + data: (conversations) { + if (conversations.isEmpty) { + return _buildEmptyState(); + } + + final filteredConversations = _filterConversations(conversations); + + if (filteredConversations.isEmpty) { + return _buildNoResultsState(); + } + + // Separate conversations by status + final pinnedConversations = filteredConversations + .where((c) => c.pinned == true) + .toList(); + final regularConversations = filteredConversations + .where((c) => c.pinned != true && c.archived != true) + .toList(); + final archivedConversations = filteredConversations + .where((c) => c.archived == true) + .toList(); + + return ListView( + controller: _scrollController, + padding: const EdgeInsets.symmetric( + horizontal: Spacing.pagePadding, + vertical: Spacing.sm, + ), + children: [ + // Pinned conversations section + if (pinnedConversations.isNotEmpty) ...[ + _buildSectionHeader('Pinned', pinnedConversations.length), + ...pinnedConversations.asMap().entries.map((entry) { + return _buildConversationTile( + entry.value, + entry.key, + isPinned: true, + ); + }), + const SizedBox(height: Spacing.lg), + ], + + // Regular conversations section + if (regularConversations.isNotEmpty) ...[ + _buildSectionHeader('Recent', regularConversations.length), + ...regularConversations.asMap().entries.map((entry) { + return _buildConversationTile(entry.value, entry.key); + }), + ], + + // Archived conversations section (collapsed by default) + if (archivedConversations.isNotEmpty) ...[ + const SizedBox(height: Spacing.lg), + _buildArchivedSection(archivedConversations), + ], + ], + ); + }, + loading: () => _buildLoadingState(), + error: (error, stackTrace) => _buildErrorState(error), + ); + }, + ); + } + + Widget _wrapWithRefresh(Widget child) { + return ConduitRefreshIndicator( + onRefresh: () async { + ref.invalidate(conversationsProvider); + await Future.delayed(const Duration(milliseconds: 500)); + }, + child: child, + ); + } + + Widget _buildConversationTile( + dynamic conversation, + int index, { + bool isPinned = false, + bool isArchived = false, + }) { + final isSelected = + ref.watch(activeConversationProvider)?.id == conversation.id; + // TODO: Use pinned status for future conversation management features + // final conversationIsPinned = conversation.pinned ?? false; + final isLoading = _isLoadingConversation && isSelected; + + return Container( + margin: const EdgeInsets.only(bottom: Spacing.listGap), + decoration: BoxDecoration( + gradient: isSelected + ? LinearGradient( + colors: [ + context.conduitTheme.navigationSelectedBackground.withValues( + alpha: 0.15, + ), + context.conduitTheme.navigationSelectedBackground.withValues( + alpha: 0.05, + ), + ], + ) + : null, + color: isSelected + ? null + : isArchived + ? context.conduitTheme.surfaceContainer.withValues(alpha: 0.3) + : context.conduitTheme.cardBackground, + borderRadius: BorderRadius.circular(AppBorderRadius.card), + border: Border.all( + color: isSelected + ? context.conduitTheme.navigationSelected + : isArchived + ? context.conduitTheme.dividerColor.withValues(alpha: 0.5) + : context.conduitTheme.cardBorder, + width: BorderWidth.regular, + ), + boxShadow: isSelected ? ConduitShadows.high : ConduitShadows.low, + ), + child: Material( + color: Colors.transparent, + child: InkWell( + onTap: isLoading ? null : () => _selectConversation(conversation), + onLongPress: isLoading + ? null + : () => _showConversationOptions(conversation), + borderRadius: BorderRadius.circular(AppBorderRadius.card), + child: Padding( + padding: const EdgeInsets.all(Spacing.listItemPadding), + child: Row( + children: [ + // Conversation icon/avatar + Container( + width: IconSize.avatar, + height: IconSize.avatar, + decoration: BoxDecoration( + color: context.conduitTheme.buttonPrimary, + borderRadius: BorderRadius.circular(AppBorderRadius.avatar), + boxShadow: ConduitShadows.card, + ), + child: Icon( + Platform.isIOS + ? CupertinoIcons.chat_bubble + : Icons.chat_rounded, + size: IconSize.medium, + color: context.conduitTheme.buttonPrimaryText, + ), + ), + const SizedBox(width: Spacing.md), + + // Conversation details + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Expanded( + child: Text( + conversation.title ?? 'New Chat', + style: AppTypography.bodyLargeStyle.copyWith( + color: isArchived + ? context.conduitTheme.textSecondary + : context.conduitTheme.textPrimary, + fontWeight: FontWeight.w600, + ), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + ), + if (isPinned) + Icon( + Platform.isIOS + ? CupertinoIcons.pin_fill + : Icons.push_pin, + size: IconSize.small, + color: context.conduitTheme.warning, + ), + ], + ), + const SizedBox(height: Spacing.xs), + Text( + _getConversationPreview(conversation), + style: AppTypography.bodySmallStyle.copyWith( + color: isArchived + ? context.conduitTheme.textTertiary + : context.conduitTheme.textSecondary, + ), + maxLines: 2, + overflow: TextOverflow.ellipsis, + ), + const SizedBox(height: Spacing.xs), + Text( + _formatConversationDate(conversation.updatedAt), + style: AppTypography.captionStyle.copyWith( + color: isArchived + ? context.conduitTheme.textTertiary.withValues( + alpha: 0.5, + ) + : context.conduitTheme.textTertiary, + ), + ), + ], + ), + ), + + // Action buttons + Column( + children: [ + if (isLoading) + SizedBox( + width: IconSize.medium, + height: IconSize.medium, + child: CircularProgressIndicator( + strokeWidth: 2, + valueColor: AlwaysStoppedAnimation( + context.conduitTheme.buttonPrimary, + ), + ), + ) + else ...[ + ConduitIconButton( + icon: Platform.isIOS + ? CupertinoIcons.ellipsis + : Icons.more_vert_rounded, + onPressed: () => _showConversationOptions(conversation), + ), + if (conversation.messages.isNotEmpty) + Container( + padding: const EdgeInsets.symmetric( + horizontal: Spacing.xs, + vertical: Spacing.xxs, + ), + decoration: BoxDecoration( + color: context.conduitTheme.buttonPrimary, + borderRadius: BorderRadius.circular( + AppBorderRadius.badge, + ), + ), + child: Text( + conversation.messages.length.toString(), + style: AppTypography.captionStyle.copyWith( + color: context.conduitTheme.buttonPrimaryText, + fontWeight: FontWeight.w600, + ), + ), + ), + ], + ], + ), + ], + ), + ), + ), + ), + ).animate().fadeIn( + duration: AnimationDuration.messageAppear, + delay: Duration( + milliseconds: index * AnimationDelay.staggeredDelay.inMilliseconds, + ), + curve: AnimationCurves.messageSlide, + ); + } + + Widget _buildEmptyState() { + return Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + Platform.isIOS ? CupertinoIcons.chat_bubble : Icons.chat_rounded, + size: IconSize.xxl, + color: context.conduitTheme.iconSecondary, + ), + const SizedBox(height: Spacing.lg), + Text( + 'No conversations yet', + style: AppTypography.headlineSmallStyle.copyWith( + color: context.conduitTheme.textPrimary, + fontWeight: FontWeight.w600, + ), + ), + const SizedBox(height: Spacing.sm), + Text( + 'Start a new chat to begin your conversation', + style: AppTypography.bodyMediumStyle.copyWith( + color: context.conduitTheme.textSecondary, + ), + textAlign: TextAlign.center, + ), + const SizedBox(height: Spacing.xl), + SizedBox( + width: double.infinity, + child: ElevatedButton( + onPressed: _startNewChat, + style: ElevatedButton.styleFrom( + backgroundColor: context.conduitTheme.buttonPrimary, + foregroundColor: context.conduitTheme.buttonPrimaryText, + padding: const EdgeInsets.symmetric( + horizontal: Spacing.buttonPadding, + vertical: Spacing.md, + ), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.button), + ), + elevation: Elevation.none, + ), + child: Text( + 'Start New Chat', + style: AppTypography.labelStyle.copyWith( + color: context.conduitTheme.buttonPrimaryText, + fontWeight: FontWeight.w600, + ), + ), + ), + ), + ], + ), + ).animate().fadeIn( + duration: AnimationDuration.pageTransition, + curve: AnimationCurves.pageTransition, + ); + } + + Widget _buildNoResultsState() { + return Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + Platform.isIOS ? CupertinoIcons.search : Icons.search_rounded, + size: IconSize.xxl, + color: context.conduitTheme.iconSecondary, + ), + const SizedBox(height: Spacing.lg), + Text( + 'No conversations found', + style: AppTypography.headlineSmallStyle.copyWith( + color: context.conduitTheme.textPrimary, + fontWeight: FontWeight.w600, + ), + ), + const SizedBox(height: Spacing.sm), + Text( + 'Try adjusting your search terms', + style: AppTypography.bodyMediumStyle.copyWith( + color: context.conduitTheme.textSecondary, + ), + textAlign: TextAlign.center, + ), + ], + ), + ).animate().fadeIn( + duration: AnimationDuration.pageTransition, + curve: AnimationCurves.pageTransition, + ); + } + + Widget _buildLoadingState() { + return ListView.builder( + padding: const EdgeInsets.all(Spacing.pagePadding), + itemCount: 6, + itemBuilder: (context, index) { + return Container( + margin: const EdgeInsets.only(bottom: Spacing.listGap), + padding: const EdgeInsets.all(Spacing.listItemPadding), + decoration: BoxDecoration( + color: context.conduitTheme.cardBackground, + borderRadius: BorderRadius.circular(AppBorderRadius.card), + border: Border.all( + color: context.conduitTheme.cardBorder, + width: BorderWidth.regular, + ), + boxShadow: ConduitShadows.low, + ), + child: Row( + children: [ + Container( + width: IconSize.avatar, + height: IconSize.avatar, + decoration: BoxDecoration( + color: context.conduitTheme.shimmerBase, + borderRadius: BorderRadius.circular(AppBorderRadius.avatar), + ), + ).animate().shimmer(duration: AnimationDuration.slow), + const SizedBox(width: Spacing.md), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + height: AppTypography.bodyLarge, + decoration: BoxDecoration( + color: context.conduitTheme.shimmerBase, + borderRadius: BorderRadius.circular(AppBorderRadius.xs), + ), + ).animate().shimmer(duration: AnimationDuration.slow), + const SizedBox(height: Spacing.xs), + Container( + height: AppTypography.bodySmall, + width: double.infinity, + decoration: BoxDecoration( + color: context.conduitTheme.shimmerBase, + borderRadius: BorderRadius.circular(AppBorderRadius.xs), + ), + ).animate().shimmer(duration: AnimationDuration.slow), + ], + ), + ), + ], + ), + ); + }, + ); + } + + Widget _buildErrorState(Object error) { + return Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + Platform.isIOS + ? CupertinoIcons.exclamationmark_triangle + : Icons.error_rounded, + size: IconSize.xxl, + color: context.conduitTheme.error, + ), + const SizedBox(height: Spacing.lg), + Text( + 'Failed to load conversations', + style: AppTypography.headlineSmallStyle.copyWith( + color: context.conduitTheme.textPrimary, + fontWeight: FontWeight.w600, + ), + ), + const SizedBox(height: Spacing.sm), + Text( + 'Please try again later', + style: AppTypography.bodyMediumStyle.copyWith( + color: context.conduitTheme.textSecondary, + ), + textAlign: TextAlign.center, + ), + const SizedBox(height: Spacing.xl), + ElevatedButton( + onPressed: () => ref.invalidate(conversationsProvider), + style: ElevatedButton.styleFrom( + backgroundColor: context.conduitTheme.buttonPrimary, + foregroundColor: context.conduitTheme.buttonPrimaryText, + padding: const EdgeInsets.symmetric( + horizontal: Spacing.buttonPadding, + vertical: Spacing.md, + ), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.button), + ), + elevation: Elevation.none, + ), + child: Text( + 'Retry', + style: AppTypography.labelStyle.copyWith( + color: context.conduitTheme.buttonPrimaryText, + fontWeight: FontWeight.w600, + ), + ), + ), + ], + ), + ); + } + + Widget _buildBottomActions() { + return const SizedBox.shrink(); // Remove bottom actions since we'll use FAB + } + + // Helper methods + List _filterConversations(List conversations) { + if (_searchQuery.isEmpty) return conversations; + + return conversations.where((conversation) { + final title = conversation.title?.toLowerCase() ?? ''; + final content = _getConversationPreview(conversation).toLowerCase(); + final query = _searchQuery.toLowerCase(); + + return title.contains(query) || content.contains(query); + }).toList(); + } + + String _getConversationPreview(dynamic conversation) { + if (conversation.messages != null && conversation.messages.isNotEmpty) { + final lastMessage = conversation.messages.last; + return lastMessage.content ?? 'No content'; + } + return 'Start a new conversation'; + } + + String _formatConversationDate(DateTime? date) { + if (date == null) return ''; + + final now = DateTime.now(); + final difference = now.difference(date); + + if (difference.inDays == 0) { + // Same day - show time + final hour = date.hour; + final minute = date.minute; + final period = hour >= 12 ? 'PM' : 'AM'; + final displayHour = hour > 12 ? hour - 12 : (hour == 0 ? 12 : hour); + return '$displayHour:${minute.toString().padLeft(2, '0')} $period'; + } else if (difference.inDays == 1) { + return 'Yesterday'; + } else if (difference.inDays < 7) { + // Show day name for this week + final days = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']; + return days[date.weekday - 1]; + } else if (difference.inDays < 365) { + // Show month and day for this year + final months = [ + 'Jan', + 'Feb', + 'Mar', + 'Apr', + 'May', + 'Jun', + 'Jul', + 'Aug', + 'Sep', + 'Oct', + 'Nov', + 'Dec', + ]; + return '${months[date.month - 1]} ${date.day}'; + } else { + // Show full date for older conversations + return '${date.month}/${date.day}/${date.year}'; + } + } + + // TODO: Implement search toggle functionality when needed + // void _toggleSearch() { + // // Focus the search field when search is toggled + // FocusScope.of(context).requestFocus(FocusNode()); + // _searchController.clear(); + // setState(() { + // _searchQuery = ''; + // }); + // ref.read(searchQueryProvider.notifier).state = ''; + // } + + void _showOptions() { + showModalBottomSheet( + context: context, + backgroundColor: Colors.transparent, + builder: (context) => Container( + decoration: BoxDecoration( + color: context.conduitTheme.surfaceBackground, + borderRadius: const BorderRadius.vertical( + top: Radius.circular(AppBorderRadius.bottomSheet), + ), + border: Border.all( + color: context.conduitTheme.dividerColor, + width: BorderWidth.regular, + ), + boxShadow: ConduitShadows.modal, + ), + child: SafeArea( + top: false, + bottom: true, + child: Padding( + padding: const EdgeInsets.all(Spacing.bottomSheetPadding), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + // Handle bar + Container( + width: 40, + height: 4, + margin: const EdgeInsets.only(bottom: Spacing.md), + decoration: BoxDecoration( + color: context.conduitTheme.dividerColor, + borderRadius: BorderRadius.circular(AppBorderRadius.xs), + ), + ), + // Options + ListTile( + leading: Icon( + Platform.isIOS + ? CupertinoIcons.folder + : Icons.folder_rounded, + color: context.conduitTheme.iconPrimary, + ), + title: Text( + 'Manage Folders', + style: AppTypography.bodyMediumStyle.copyWith( + color: context.conduitTheme.textPrimary, + ), + ), + onTap: () { + Navigator.pop(context); + _showFolderManagement(); + }, + ), + ListTile( + leading: Icon( + Platform.isIOS + ? CupertinoIcons.archivebox + : Icons.archive_rounded, + color: context.conduitTheme.iconPrimary, + ), + title: Text( + 'Archived Chats', + style: AppTypography.bodyMediumStyle.copyWith( + color: context.conduitTheme.textPrimary, + ), + ), + onTap: () { + Navigator.pop(context); + _showArchivedSection(); + }, + ), + ], + ), + ), + ), + ), + ); + } + + void _selectConversation(dynamic conversation) async { + if (_isLoadingConversation) return; // Prevent multiple loads + + setState(() { + _isLoadingConversation = true; + }); + + try { + // Mark global conversation loading state to show skeletons in chat + ref.read(isLoadingConversationProvider.notifier).state = true; + // Load the full conversation with messages + final api = ref.read(apiServiceProvider); + if (api != null) { + debugPrint('DEBUG: Loading full conversation: ${conversation.id}'); + final fullConversation = await api.getConversation(conversation.id); + debugPrint( + 'DEBUG: Loaded conversation with ${fullConversation.messages.length} messages', + ); + + // Set the full conversation as active + ref.read(activeConversationProvider.notifier).state = fullConversation; + // Clear global loading before navigating so chat doesn't stick on skeletons + ref.read(isLoadingConversationProvider.notifier).state = false; + } else { + // Fallback to the conversation from the list + ref.read(activeConversationProvider.notifier).state = conversation; + // Clear global loading before navigating + ref.read(isLoadingConversationProvider.notifier).state = false; + } + + // Do not navigate synchronously after async awaits; schedule for next frame + WidgetsBinding.instance.addPostFrameCallback((_) { + if (!mounted) return; + if (widget.isOverlay) { + Navigator.of(context).pop(); + } else { + Navigator.of(context).pop(); + } + }); + } catch (e) { + debugPrint('DEBUG: Error loading conversation: $e'); + // Fallback to the conversation from the list + ref.read(activeConversationProvider.notifier).state = conversation; + // Ensure global loading is cleared even on error + ref.read(isLoadingConversationProvider.notifier).state = false; + WidgetsBinding.instance.addPostFrameCallback((_) { + if (!mounted) return; + if (widget.isOverlay) { + Navigator.of(context).pop(); + } else { + Navigator.of(context).pop(); + } + }); + } finally { + if (mounted) { + setState(() { + _isLoadingConversation = false; + }); + } + } + } + + void _showConversationOptions(dynamic conversation) { + showModalBottomSheet( + context: context, + backgroundColor: Colors.transparent, + builder: (context) => Container( + decoration: BoxDecoration( + color: context.conduitTheme.surfaceBackground, + borderRadius: const BorderRadius.vertical( + top: Radius.circular(AppBorderRadius.bottomSheet), + ), + border: Border.all( + color: context.conduitTheme.dividerColor, + width: BorderWidth.regular, + ), + boxShadow: ConduitShadows.modal, + ), + child: SafeArea( + top: false, + bottom: true, + child: Padding( + padding: const EdgeInsets.all(Spacing.bottomSheetPadding), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + // Handle bar + Container( + width: 40, + height: 4, + margin: const EdgeInsets.only(bottom: Spacing.md), + decoration: BoxDecoration( + color: context.conduitTheme.dividerColor, + borderRadius: BorderRadius.circular(AppBorderRadius.xs), + ), + ), + // Conversation title + Padding( + padding: const EdgeInsets.only(bottom: Spacing.sm), + child: Text( + conversation.title ?? 'New Chat', + style: AppTypography.headlineSmallStyle.copyWith( + color: context.conduitTheme.textPrimary, + fontWeight: FontWeight.w600, + ), + textAlign: TextAlign.center, + ), + ), + // Options + ListTile( + leading: Icon( + Platform.isIOS ? CupertinoIcons.pin : Icons.push_pin, + color: conversation.pinned == true + ? context.conduitTheme.warning + : context.conduitTheme.iconPrimary, + ), + title: Text( + conversation.pinned == true ? 'Unpin Chat' : 'Pin Chat', + style: AppTypography.bodyMediumStyle.copyWith( + color: context.conduitTheme.textPrimary, + ), + ), + onTap: () { + Navigator.pop(context); + _togglePinConversation(conversation); + }, + ), + ListTile( + leading: Icon( + Platform.isIOS + ? CupertinoIcons.folder + : Icons.folder_rounded, + color: context.conduitTheme.iconPrimary, + ), + title: Text( + 'Move to Folder', + style: AppTypography.bodyMediumStyle.copyWith( + color: context.conduitTheme.textPrimary, + ), + ), + onTap: () { + Navigator.pop(context); + _moveToFolder(conversation); + }, + ), + ListTile( + leading: Icon( + Platform.isIOS + ? CupertinoIcons.archivebox + : Icons.archive_rounded, + color: context.conduitTheme.iconPrimary, + ), + title: Text( + 'Archive Chat', + style: AppTypography.bodyMediumStyle.copyWith( + color: context.conduitTheme.textPrimary, + ), + ), + onTap: () { + Navigator.pop(context); + _archiveConversation(conversation); + }, + ), + ListTile( + leading: Icon( + Platform.isIOS + ? CupertinoIcons.delete + : Icons.delete_rounded, + color: context.conduitTheme.error, + ), + title: Text( + 'Delete Chat', + style: AppTypography.bodyMediumStyle.copyWith( + color: context.conduitTheme.error, + ), + ), + onTap: () { + Navigator.pop(context); + _deleteConversation(conversation); + }, + ), + ], + ), + ), + ), + ), + ); + } + + void _startNewChat() { + startNewChat(ref); + if (widget.isOverlay) { + Navigator.of(context).pop(); // Close the overlay + } else { + Navigator.of(context).pop(); // Go back to main navigation + } + } + + void _showFolderManagement() { + showDialog( + context: context, + builder: (context) => const FolderManagementDialog(), + ); + } + + void _togglePinConversation(dynamic conversation) async { + try { + final api = ref.read(apiServiceProvider); + if (api != null) { + final newPinnedState = !(conversation.pinned ?? false); + await api.pinConversation(conversation.id, newPinnedState); + + // Refresh conversations list + ref.invalidate(conversationsProvider); + + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text( + newPinnedState ? 'Chat pinned' : 'Chat unpinned', + style: AppTypography.bodyMediumStyle.copyWith( + color: context.conduitTheme.textInverse, + ), + ), + backgroundColor: context.conduitTheme.success, + ), + ); + } + } + } catch (e) { + debugPrint('DEBUG: Error toggling pin: $e'); + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text( + 'Failed to ${conversation.pinned == true ? 'unpin' : 'pin'} chat', + style: AppTypography.bodyMediumStyle.copyWith( + color: context.conduitTheme.textInverse, + ), + ), + backgroundColor: context.conduitTheme.error, + ), + ); + } + } + } + + void _moveToFolder(dynamic conversation) { + // TODO: Implement folder selection dialog + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text( + 'Move to folder feature coming soon!', + style: AppTypography.bodyMediumStyle.copyWith( + color: context.conduitTheme.textInverse, + ), + ), + backgroundColor: context.conduitTheme.info, + ), + ); + } + } + + void _archiveConversation(dynamic conversation) async { + try { + final api = ref.read(apiServiceProvider); + if (api != null) { + await api.archiveConversation(conversation.id, true); + + // Refresh conversations list + ref.invalidate(conversationsProvider); + + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text( + 'Chat archived', + style: AppTypography.bodyMediumStyle.copyWith( + color: context.conduitTheme.textInverse, + ), + ), + backgroundColor: context.conduitTheme.success, + ), + ); + } + } + } catch (e) { + debugPrint('DEBUG: Error archiving conversation: $e'); + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text( + 'Failed to archive chat', + style: AppTypography.bodyMediumStyle.copyWith( + color: context.conduitTheme.textInverse, + ), + ), + backgroundColor: context.conduitTheme.error, + ), + ); + } + } + } + + void _deleteConversation(dynamic conversation) async { + // Show confirmation dialog + final confirmed = await ThemedDialogs.confirm( + context, + title: 'Delete Chat', + message: + 'Are you sure you want to delete "${conversation.title ?? 'New Chat'}"? This action cannot be undone.', + confirmText: 'Delete', + isDestructive: true, + barrierDismissible: true, + ); + + if (confirmed == true) { + try { + final api = ref.read(apiServiceProvider); + if (api != null) { + await api.deleteConversation(conversation.id); + + // Refresh conversations list + ref.invalidate(conversationsProvider); + + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text( + 'Chat deleted', + style: AppTypography.bodyMediumStyle.copyWith( + color: context.conduitTheme.textInverse, + ), + ), + backgroundColor: context.conduitTheme.success, + ), + ); + } + } + } catch (e) { + debugPrint('DEBUG: Error deleting conversation: $e'); + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text( + 'Failed to delete chat', + style: AppTypography.bodyMediumStyle.copyWith( + color: context.conduitTheme.textInverse, + ), + ), + backgroundColor: context.conduitTheme.error, + ), + ); + } + } + } + } + + void _showArchivedSection() { + // Set the archived section to be visible + ref.read(_showArchivedProvider.notifier).state = true; + + // Scroll to the archived section + WidgetsBinding.instance.addPostFrameCallback((_) { + if (_scrollController.hasClients) { + _scrollController.animateTo( + _scrollController.position.maxScrollExtent, + duration: const Duration(milliseconds: 500), + curve: Curves.easeInOut, + ); + } + }); + } + + Widget _buildSectionHeader(String title, int count) { + return Padding( + padding: const EdgeInsets.symmetric( + horizontal: Spacing.sm, + vertical: Spacing.md, + ), + child: Row( + children: [ + Text( + title, + style: AppTypography.labelStyle.copyWith( + color: context.conduitTheme.textSecondary, + fontWeight: FontWeight.w600, + letterSpacing: 0.5, + ), + ), + const SizedBox(width: Spacing.xs), + Container( + padding: const EdgeInsets.symmetric( + horizontal: Spacing.xs, + vertical: Spacing.xxs, + ), + decoration: BoxDecoration( + color: context.conduitTheme.surfaceContainer, + borderRadius: BorderRadius.circular(AppBorderRadius.badge), + ), + child: Text( + count.toString(), + style: AppTypography.captionStyle.copyWith( + color: context.conduitTheme.textTertiary, + fontWeight: FontWeight.w600, + ), + ), + ), + ], + ), + ); + } + + Widget _buildArchivedSection(List archivedConversations) { + return Consumer( + builder: (context, ref, child) { + final showArchived = ref.watch(_showArchivedProvider); + + return Column( + children: [ + // Collapsible header + InkWell( + onTap: () { + ref.read(_showArchivedProvider.notifier).state = !showArchived; + }, + borderRadius: BorderRadius.circular(AppBorderRadius.card), + child: Padding( + padding: const EdgeInsets.all(Spacing.md), + child: Row( + children: [ + Icon( + Platform.isIOS + ? CupertinoIcons.archivebox + : Icons.archive_rounded, + size: IconSize.small, + color: context.conduitTheme.textSecondary, + ), + const SizedBox(width: Spacing.sm), + Text( + 'Archived', + style: AppTypography.labelStyle.copyWith( + color: context.conduitTheme.textSecondary, + fontWeight: FontWeight.w600, + ), + ), + const SizedBox(width: Spacing.xs), + Container( + padding: const EdgeInsets.symmetric( + horizontal: Spacing.xs, + vertical: Spacing.xxs, + ), + decoration: BoxDecoration( + color: context.conduitTheme.surfaceContainer, + borderRadius: BorderRadius.circular( + AppBorderRadius.badge, + ), + ), + child: Text( + archivedConversations.length.toString(), + style: AppTypography.captionStyle.copyWith( + color: context.conduitTheme.textTertiary, + fontWeight: FontWeight.w600, + ), + ), + ), + const Spacer(), + Icon( + showArchived + ? (Platform.isIOS + ? CupertinoIcons.chevron_up + : Icons.keyboard_arrow_up) + : (Platform.isIOS + ? CupertinoIcons.chevron_down + : Icons.keyboard_arrow_down), + size: IconSize.small, + color: context.conduitTheme.textSecondary, + ), + ], + ), + ), + ), + + // Archived conversations (collapsible) + if (showArchived) ...[ + const SizedBox(height: Spacing.sm), + ...archivedConversations.asMap().entries.map((entry) { + return _buildConversationTile( + entry.value, + entry.key, + isArchived: true, + ); + }), + ], + ], + ); + }, + ); + } +} diff --git a/lib/features/navigation/views/splash_launcher_page.dart b/lib/features/navigation/views/splash_launcher_page.dart new file mode 100644 index 0000000..9a29ceb --- /dev/null +++ b/lib/features/navigation/views/splash_launcher_page.dart @@ -0,0 +1,25 @@ +import 'package:flutter/material.dart'; +import '../../../shared/theme/theme_extensions.dart'; + +class SplashLauncherPage extends StatelessWidget { + const SplashLauncherPage({super.key}); + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: context.conduitTheme.surfaceBackground, + body: Center( + child: SizedBox( + width: 28, + height: 28, + child: CircularProgressIndicator( + strokeWidth: 2.5, + valueColor: AlwaysStoppedAnimation( + context.conduitTheme.loadingIndicator, + ), + ), + ), + ), + ); + } +} diff --git a/lib/features/onboarding/views/onboarding_sheet.dart b/lib/features/onboarding/views/onboarding_sheet.dart new file mode 100644 index 0000000..700dc2b --- /dev/null +++ b/lib/features/onboarding/views/onboarding_sheet.dart @@ -0,0 +1,288 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/cupertino.dart'; +import '../../../shared/theme/theme_extensions.dart'; +import 'package:flutter_animate/flutter_animate.dart'; + +class OnboardingSheet extends StatefulWidget { + const OnboardingSheet({super.key}); + + @override + State createState() => _OnboardingSheetState(); +} + +class _OnboardingSheetState extends State { + final PageController _controller = PageController(); + int _index = 0; + + final List<_OnboardingPage> _pages = const [ + _OnboardingPage( + title: 'Start a conversation', + subtitle: + 'Choose a model, then type below to begin. Tap New Chat anytime.', + icon: CupertinoIcons.chat_bubble_2, + bullets: [ + 'Tap the model name in the top bar to switch models', + 'Use New Chat to reset context', + ], + ), + _OnboardingPage( + title: 'Attach context', + subtitle: 'Ground responses by adding files or images.', + icon: CupertinoIcons.doc_on_doc, + bullets: ['Files: PDFs, docs, datasets', 'Images: photos or screenshots'], + ), + _OnboardingPage( + title: 'Speak naturally', + subtitle: 'Tap the mic to dictate with live waveform feedback.', + icon: CupertinoIcons.mic_fill, + bullets: [ + 'Stop anytime; partial text is preserved', + 'Great for quick notes or long prompts', + ], + ), + ]; + + void _next() { + if (_index < _pages.length - 1) { + _controller.nextPage( + duration: AnimationDuration.fast, + curve: AnimationCurves.easeInOut, + ); + } else { + Navigator.pop(context); + } + } + + @override + Widget build(BuildContext context) { + final height = MediaQuery.of(context).size.height; + final isSmall = height < 720; + return Container( + height: height * 0.7, + decoration: BoxDecoration( + color: context.conduitTheme.surfaceBackground, + borderRadius: const BorderRadius.vertical( + top: Radius.circular(AppBorderRadius.modal), + ), + boxShadow: ConduitShadows.modal, + ), + child: SafeArea( + child: Padding( + padding: const EdgeInsets.all(Spacing.lg), + child: Column( + children: [ + // Handle bar + Container( + width: 40, + height: 4, + margin: const EdgeInsets.only(bottom: Spacing.md), + decoration: BoxDecoration( + color: context.conduitTheme.dividerColor, + borderRadius: BorderRadius.circular(AppBorderRadius.xs), + ), + ), + + Expanded( + child: PageView.builder( + controller: _controller, + itemCount: _pages.length, + onPageChanged: (i) => setState(() => _index = i), + itemBuilder: (context, i) { + final page = _pages[i]; + final content = _IllustratedPage(page: page); + return isSmall + ? SingleChildScrollView( + padding: const EdgeInsets.symmetric( + horizontal: Spacing.lg, + ), + child: content, + ) + : content; + }, + ), + ), + + const SizedBox(height: Spacing.md), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: List.generate(_pages.length, (i) { + final active = i == _index; + return AnimatedContainer( + duration: AnimationDuration.fast, + margin: const EdgeInsets.symmetric(horizontal: 4), + height: 6, + width: active ? 20 : 6, + decoration: BoxDecoration( + color: active + ? context.conduitTheme.buttonPrimary + : context.conduitTheme.dividerColor, + borderRadius: BorderRadius.circular( + AppBorderRadius.badge, + ), + ), + ); + }), + ), + + const SizedBox(height: Spacing.lg), + Row( + children: [ + TextButton( + onPressed: () => Navigator.pop(context), + child: Text( + 'Skip', + style: TextStyle( + color: context.conduitTheme.textSecondary, + ), + ), + ), + const Spacer(), + FilledButton( + onPressed: _next, + style: FilledButton.styleFrom( + backgroundColor: context.conduitTheme.buttonPrimary, + foregroundColor: context.conduitTheme.buttonPrimaryText, + padding: const EdgeInsets.symmetric( + horizontal: Spacing.lg, + vertical: Spacing.sm, + ), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular( + AppBorderRadius.button, + ), + ), + ), + child: Text(_index == _pages.length - 1 ? 'Done' : 'Next'), + ), + ], + ), + ], + ), + ), + ), + ); + } +} + +class _OnboardingPage { + final String title; + final String subtitle; + final IconData icon; + final List? bullets; + const _OnboardingPage({ + required this.title, + required this.subtitle, + required this.icon, + this.bullets, + }); +} + +class _IllustratedPage extends StatelessWidget { + final _OnboardingPage page; + const _IllustratedPage({required this.page}); + + @override + Widget build(BuildContext context) { + return Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + // Aurora blob illustration + SizedBox( + height: 160, + child: Stack( + alignment: Alignment.center, + children: [ + Positioned(top: 10, left: 24, child: _blob(context, 90, 0.18)), + Positioned( + bottom: 0, + right: 16, + child: _blob(context, 130, 0.12), + ), + Container( + width: 64, + height: 64, + decoration: BoxDecoration( + color: context.conduitTheme.buttonPrimary, + borderRadius: BorderRadius.circular(AppBorderRadius.avatar), + boxShadow: ConduitShadows.glow, + ), + child: Icon(page.icon, color: context.conduitTheme.textInverse), + ).animate().scale(duration: AnimationDuration.fast), + ], + ), + ), + const SizedBox(height: Spacing.lg), + Text( + page.title, + style: TextStyle( + fontSize: AppTypography.headlineMedium, + fontWeight: FontWeight.w700, + color: context.conduitTheme.textPrimary, + ), + textAlign: TextAlign.center, + ), + const SizedBox(height: Spacing.sm), + Text( + page.subtitle, + style: TextStyle( + fontSize: AppTypography.bodyLarge, + color: context.conduitTheme.textSecondary, + ), + textAlign: TextAlign.center, + ), + if (page.bullets != null && page.bullets!.isNotEmpty) ...[ + const SizedBox(height: Spacing.md), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: page.bullets! + .map( + (b) => Padding( + padding: const EdgeInsets.symmetric( + horizontal: Spacing.lg, + vertical: 4, + ), + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + width: 6, + height: 6, + margin: const EdgeInsets.only(top: 8, right: 8), + decoration: BoxDecoration( + color: context.conduitTheme.buttonPrimary, + shape: BoxShape.circle, + ), + ), + Expanded( + child: Text( + b, + style: TextStyle( + color: context.conduitTheme.textSecondary, + fontSize: AppTypography.bodyMedium, + ), + ), + ), + ], + ), + ), + ) + .toList(), + ), + ], + ], + ); + } + + Widget _blob(BuildContext context, double size, double alpha) { + return Container( + width: size, + height: size, + decoration: BoxDecoration( + shape: BoxShape.circle, + color: context.conduitTheme.buttonPrimary.withValues(alpha: alpha), + boxShadow: ConduitShadows.glow, + ), + ); + } +} diff --git a/lib/features/profile/views/profile_page.dart b/lib/features/profile/views/profile_page.dart new file mode 100644 index 0000000..0b5e933 --- /dev/null +++ b/lib/features/profile/views/profile_page.dart @@ -0,0 +1,468 @@ +import 'package:flutter/material.dart'; +import '../../../shared/theme/theme_extensions.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:flutter_animate/flutter_animate.dart'; +import 'package:package_info_plus/package_info_plus.dart'; +import 'package:url_launcher/url_launcher_string.dart'; +import '../../../core/widgets/error_boundary.dart'; +import '../../../shared/widgets/improved_loading_states.dart'; + +import '../../../shared/utils/ui_utils.dart'; +import '../../../shared/widgets/conduit_components.dart'; +import '../../../core/providers/app_providers.dart'; +import '../../auth/providers/unified_auth_providers.dart'; + +/// Profile page (You tab) showing user info and main actions +/// Enhanced with production-grade design tokens for better cohesion +class ProfilePage extends ConsumerWidget { + const ProfilePage({super.key}); + + @override + Widget build(BuildContext context, WidgetRef ref) { + final user = ref.watch(currentUserProvider); + + return ErrorBoundary( + child: user.when( + data: (userData) => Scaffold( + backgroundColor: context.conduitTheme.surfaceBackground, + appBar: AppBar( + backgroundColor: context.conduitTheme.surfaceBackground, + elevation: Elevation.none, + automaticallyImplyLeading: false, + toolbarHeight: kToolbarHeight, + titleSpacing: 0.0, + title: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Text( + 'You', + style: context.conduitTheme.headingSmall?.copyWith( + color: context.conduitTheme.textPrimary, + fontWeight: FontWeight.w600, + ), + ), + ], + ), + centerTitle: true, + ), + body: SingleChildScrollView( + padding: const EdgeInsets.all(Spacing.pagePadding), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + // Profile Header - Enhanced with better spacing and animations + _buildProfileHeader(userData) + .animate() + .fadeIn(duration: AnimationDuration.pageTransition) + .slideY( + begin: 0.1, + end: 0, + curve: AnimationCurves.pageTransition, + ), + const SizedBox(height: Spacing.sectionGap), + + // Account Section - Enhanced with improved spacing + _buildAccountSection(context, ref) + .animate() + .fadeIn( + delay: AnimationDelay.short, + duration: AnimationDuration.pageTransition, + ) + .slideY( + begin: 0.1, + end: 0, + curve: AnimationCurves.pageTransition, + ), + ], + ), + ), + ), + loading: () => Scaffold( + backgroundColor: context.conduitTheme.surfaceBackground, + appBar: AppBar( + backgroundColor: context.conduitTheme.surfaceBackground, + elevation: Elevation.none, + automaticallyImplyLeading: false, + title: Text( + 'You', + style: context.conduitTheme.headingSmall?.copyWith( + color: context.conduitTheme.textPrimary, + fontWeight: FontWeight.w600, + ), + ), + centerTitle: true, + ), + body: const Center( + child: ImprovedLoadingState(message: 'Loading profile...'), + ), + ), + error: (error, stack) => Scaffold( + backgroundColor: context.conduitTheme.surfaceBackground, + appBar: AppBar( + backgroundColor: context.conduitTheme.surfaceBackground, + elevation: Elevation.none, + automaticallyImplyLeading: false, + title: Text( + 'You', + style: context.conduitTheme.headingSmall?.copyWith( + color: context.conduitTheme.textPrimary, + fontWeight: FontWeight.w600, + ), + ), + centerTitle: true, + ), + body: Center( + child: ImprovedEmptyState( + title: 'Unable to load profile', + subtitle: 'Please check your connection and try again', + icon: UiUtils.platformIcon( + ios: CupertinoIcons.exclamationmark_triangle, + android: Icons.error_outline, + ), + ), + ), + ), + ), + ); + } + + Widget _buildProfileHeader(dynamic user) { + return Builder( + builder: (context) => ConduitCard( + padding: const EdgeInsets.all(Spacing.cardPadding), + child: Row( + children: [ + // Enhanced avatar with better sizing and shadows + Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(AppBorderRadius.avatar), + boxShadow: ConduitShadows.card, + ), + child: ConduitAvatar( + size: IconSize.avatar, + text: user?.name?.substring(0, 1) ?? 'U', + ), + ), + const SizedBox(width: Spacing.md), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + user?.name ?? 'User', + style: context.conduitTheme.headingMedium?.copyWith( + color: context.conduitTheme.textPrimary, + fontWeight: FontWeight.w600, + ), + ), + const SizedBox(height: Spacing.xs), + Text( + user?.email ?? 'No email', + style: context.conduitTheme.bodyMedium?.copyWith( + color: context.conduitTheme.textSecondary, + ), + ), + const SizedBox(height: Spacing.sm), + // Enhanced status badge with better styling + Container( + padding: const EdgeInsets.symmetric( + horizontal: Spacing.sm, + vertical: Spacing.xs, + ), + decoration: BoxDecoration( + color: context.conduitTheme.success.withValues( + alpha: Alpha.badgeBackground, + ), + borderRadius: BorderRadius.circular( + AppBorderRadius.badge, + ), + border: Border.all( + color: context.conduitTheme.success.withValues( + alpha: Alpha.avatarBorder, + ), + width: BorderWidth.thin, + ), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Container( + width: 6, + height: 6, + decoration: BoxDecoration( + color: context.conduitTheme.success, + shape: BoxShape.circle, + ), + ), + const SizedBox(width: Spacing.xs), + Text( + 'Active', + style: context.conduitTheme.label?.copyWith( + color: context.conduitTheme.success, + fontWeight: FontWeight.w600, + ), + ), + ], + ), + ), + ], + ), + ), + ], + ), + ), + ); + } + + Widget _buildAccountSection(BuildContext context, WidgetRef ref) { + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + 'Account', + style: context.conduitTheme.headingSmall?.copyWith( + color: context.conduitTheme.textPrimary, + ), + ), + const SizedBox(height: Spacing.md), + ConduitCard( + padding: EdgeInsets.zero, + child: Column( + children: [ + _buildThemeToggleTile(context, ref), + Divider(color: context.conduitTheme.dividerColor, height: 1), + _buildAboutTile(context), + Divider(color: context.conduitTheme.dividerColor, height: 1), + _buildAccountOption( + icon: UiUtils.platformIcon( + ios: CupertinoIcons.square_arrow_left, + android: Icons.logout, + ), + title: 'Sign Out', + subtitle: 'End your session', + onTap: () => _signOut(context, ref), + isDestructive: true, + ), + ], + ), + ), + ], + ); + } + + Widget _buildAccountOption({ + required IconData icon, + required String title, + required String subtitle, + required VoidCallback onTap, + bool isDestructive = false, + }) { + return Builder( + builder: (context) => ListTile( + contentPadding: const EdgeInsets.symmetric( + horizontal: Spacing.listItemPadding, + vertical: Spacing.sm, + ), + leading: Container( + padding: const EdgeInsets.all(Spacing.sm), + decoration: BoxDecoration( + color: isDestructive + ? context.conduitTheme.error.withValues(alpha: Alpha.highlight) + : context.conduitTheme.buttonPrimary.withValues( + alpha: Alpha.highlight, + ), + borderRadius: BorderRadius.circular(AppBorderRadius.small), + ), + child: Icon( + icon, + color: isDestructive + ? context.conduitTheme.error + : context.conduitTheme.buttonPrimary, + size: IconSize.medium, + ), + ), + title: Text( + title, + style: context.conduitTheme.bodyLarge?.copyWith( + color: isDestructive + ? context.conduitTheme.error + : context.conduitTheme.textPrimary, + fontWeight: FontWeight.w500, + ), + ), + subtitle: Text( + subtitle, + style: context.conduitTheme.bodySmall?.copyWith( + color: context.conduitTheme.textSecondary, + ), + ), + trailing: Icon( + UiUtils.platformIcon( + ios: CupertinoIcons.chevron_right, + android: Icons.chevron_right, + ), + color: context.conduitTheme.iconSecondary, + size: IconSize.small, + ), + onTap: onTap, + ), + ); + } + + Widget _buildThemeToggleTile(BuildContext context, WidgetRef ref) { + final themeMode = ref.watch(themeModeProvider); + final isDark = themeMode == ThemeMode.dark; + + return ListTile( + contentPadding: const EdgeInsets.symmetric( + horizontal: Spacing.listItemPadding, + vertical: Spacing.sm, + ), + leading: Container( + padding: const EdgeInsets.all(Spacing.sm), + decoration: BoxDecoration( + color: context.conduitTheme.buttonPrimary.withValues( + alpha: Alpha.highlight, + ), + borderRadius: BorderRadius.circular(AppBorderRadius.small), + ), + child: Icon( + UiUtils.platformIcon( + ios: CupertinoIcons.moon_stars, + android: Icons.dark_mode, + ), + color: context.conduitTheme.buttonPrimary, + size: IconSize.medium, + ), + ), + title: Text( + 'Dark Mode', + style: context.conduitTheme.bodyLarge?.copyWith( + color: context.conduitTheme.textPrimary, + fontWeight: FontWeight.w500, + ), + ), + subtitle: Text( + isDark ? 'Currently using Dark theme' : 'Currently using Light theme', + style: context.conduitTheme.bodySmall?.copyWith( + color: context.conduitTheme.textSecondary, + ), + ), + trailing: Switch.adaptive( + value: isDark, + onChanged: (value) { + ref + .read(themeModeProvider.notifier) + .setTheme(value ? ThemeMode.dark : ThemeMode.light); + }, + ), + onTap: () { + final newValue = !isDark; + ref + .read(themeModeProvider.notifier) + .setTheme(newValue ? ThemeMode.dark : ThemeMode.light); + }, + ); + } + + Widget _buildAboutTile(BuildContext context) { + return _buildAccountOption( + icon: UiUtils.platformIcon( + ios: CupertinoIcons.info, + android: Icons.info_outline, + ), + title: 'About App', + subtitle: 'Conduit information and links', + onTap: () => _showAboutDialog(context), + ); + } + + Future _showAboutDialog(BuildContext context) async { + try { + final info = await PackageInfo.fromPlatform(); + // Update dialog with dynamic version each time + // GitHub repo URL source of truth + const githubUrl = 'https://github.com/cogwheel0/conduit'; + + if (!context.mounted) return; + await showDialog( + context: context, + builder: (ctx) { + return AlertDialog( + backgroundColor: ctx.conduitTheme.surfaceBackground, + title: Text( + 'About Conduit', + style: ctx.conduitTheme.headingSmall?.copyWith( + color: ctx.conduitTheme.textPrimary, + ), + ), + content: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + 'Version: ${info.version} (${info.buildNumber})', + style: ctx.conduitTheme.bodyMedium?.copyWith( + color: ctx.conduitTheme.textSecondary, + ), + ), + const SizedBox(height: Spacing.md), + InkWell( + onTap: () => launchUrlString( + githubUrl, + mode: LaunchMode.externalApplication, + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Icon( + UiUtils.platformIcon( + ios: CupertinoIcons.link, + android: Icons.link, + ), + size: IconSize.small, + color: ctx.conduitTheme.buttonPrimary, + ), + const SizedBox(width: Spacing.xs), + Text( + 'GitHub Repository', + style: ctx.conduitTheme.bodyMedium?.copyWith( + color: ctx.conduitTheme.buttonPrimary, + fontWeight: FontWeight.w600, + ), + ), + ], + ), + ), + ], + ), + actions: [ + TextButton( + onPressed: () => Navigator.of(ctx).pop(), + child: const Text('Close'), + ), + ], + ); + }, + ); + } catch (e) { + if (!context.mounted) return; + UiUtils.showMessage(context, 'Unable to load app info'); + } + } + + void _signOut(BuildContext context, WidgetRef ref) async { + final confirm = await UiUtils.showConfirmationDialog( + context, + title: 'Sign out?', + message: 'You\'ll need to sign in again to continue', + confirmText: 'Sign out', + isDestructive: true, + ); + + if (confirm) { + await ref.read(logoutActionProvider); + } + } +} diff --git a/lib/features/server/providers/server_providers.dart b/lib/features/server/providers/server_providers.dart new file mode 100644 index 0000000..ce59488 --- /dev/null +++ b/lib/features/server/providers/server_providers.dart @@ -0,0 +1,56 @@ +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import '../../../core/models/server_config.dart'; +import '../../../core/providers/app_providers.dart'; + +// Server management providers +final addServerProvider = FutureProvider.family(( + ref, + server, +) async { + final storage = ref.read(optimizedStorageServiceProvider); + final configs = await storage.getServerConfigs(); + + // Add new server + configs.add(server); + + // Save updated list + await storage.saveServerConfigs(configs); + + // Refresh the server list + ref.invalidate(serverConfigsProvider); +}); + +final deleteServerProvider = FutureProvider.family(( + ref, + serverId, +) async { + final storage = ref.read(optimizedStorageServiceProvider); + final configs = await storage.getServerConfigs(); + + // Remove server with matching ID + configs.removeWhere((config) => config.id == serverId); + + // Save updated list + await storage.saveServerConfigs(configs); + + // If this was the active server, clear active server ID + final activeId = await storage.getActiveServerId(); + if (activeId == serverId) { + await storage.setActiveServerId(null); + } + + // Refresh providers + ref.invalidate(serverConfigsProvider); + ref.invalidate(activeServerProvider); +}); + +final setActiveServerProvider = FutureProvider.family(( + ref, + serverId, +) async { + final storage = ref.read(optimizedStorageServiceProvider); + await storage.setActiveServerId(serverId); + + // Refresh active server provider + ref.invalidate(activeServerProvider); +}); diff --git a/lib/features/settings/views/accessibility_settings_page.dart b/lib/features/settings/views/accessibility_settings_page.dart new file mode 100644 index 0000000..686c860 --- /dev/null +++ b/lib/features/settings/views/accessibility_settings_page.dart @@ -0,0 +1,278 @@ +import 'package:flutter/material.dart'; +import '../../../shared/theme/theme_extensions.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; + +import '../../../shared/widgets/conduit_components.dart'; +import '../../../core/services/settings_service.dart'; +import '../../../core/services/enhanced_accessibility_service.dart'; +import '../../../core/services/platform_service.dart'; + +/// Accessibility settings page with WCAG 2.2 AA compliance controls +class AccessibilitySettingsPage extends ConsumerWidget { + const AccessibilitySettingsPage({super.key}); + + @override + Widget build(BuildContext context, WidgetRef ref) { + final settings = ref.watch(appSettingsProvider); + + return Scaffold( + backgroundColor: context.conduitTheme.surfaceBackground, + appBar: PlatformService.createPlatformAppBar( + title: 'Accessibility', + backgroundColor: context.conduitTheme.surfaceBackground, + foregroundColor: context.conduitTheme.textPrimary, + ), + body: SingleChildScrollView( + padding: const EdgeInsets.all(Spacing.md), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + _buildSectionHeader(context, 'Motion & Animation'), + const SizedBox(height: Spacing.sm), + + // Reduce Motion Toggle + ConduitCard( + child: EnhancedAccessibilityService.createAccessibleSwitch( + value: settings.reduceMotion, + onChanged: (value) { + ref.read(appSettingsProvider.notifier).setReduceMotion(value); + EnhancedAccessibilityService.announceSuccess( + value + ? 'Reduced motion enabled' + : 'Reduced motion disabled', + ); + }, + label: 'Reduce Motion', + description: + 'Minimize animations and transitions for better focus and reduced vestibular disturbance', + ), + ), + + const SizedBox(height: Spacing.sm), + + // Animation Speed Slider + if (!settings.reduceMotion) ...[ + ConduitCard( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + 'Animation Speed', + style: TextStyle( + color: context.conduitTheme.textPrimary, + fontSize: AppTypography.bodyLarge, + fontWeight: FontWeight.w500, + ), + ), + const SizedBox(height: Spacing.sm), + Text( + 'Adjust the speed of animations and transitions', + style: TextStyle( + color: context.conduitTheme.textSecondary, + fontSize: AppTypography.labelLarge, + ), + ), + const SizedBox(height: Spacing.md), + EnhancedAccessibilityService.createAccessibleSlider( + value: settings.animationSpeed, + onChanged: (value) { + ref + .read(appSettingsProvider.notifier) + .setAnimationSpeed(value); + }, + label: 'Animation speed', + min: 0.5, + max: 2.0, + divisions: 6, + valueFormatter: (value) { + if (value < 0.75) return 'Slow'; + if (value < 1.25) return 'Normal'; + return 'Fast'; + }, + ), + ], + ), + ), + const SizedBox(height: Spacing.sm), + ], + + const SizedBox(height: Spacing.lg), + _buildSectionHeader(context, 'Visual & Text'), + const SizedBox(height: Spacing.sm), + + // Large Text Toggle + ConduitCard( + child: EnhancedAccessibilityService.createAccessibleSwitch( + value: settings.largeText, + onChanged: (value) { + ref.read(appSettingsProvider.notifier).setLargeText(value); + EnhancedAccessibilityService.announceSuccess( + value ? 'Large text enabled' : 'Large text disabled', + ); + }, + label: 'Large Text', + description: + 'Increase text size throughout the app for better readability', + ), + ), + + const SizedBox(height: Spacing.sm), + + // High Contrast Toggle + ConduitCard( + child: EnhancedAccessibilityService.createAccessibleSwitch( + value: settings.highContrast, + onChanged: (value) { + ref.read(appSettingsProvider.notifier).setHighContrast(value); + EnhancedAccessibilityService.announceSuccess( + value ? 'High contrast enabled' : 'High contrast disabled', + ); + }, + label: 'High Contrast', + description: + 'Increase contrast between text and background colors', + ), + ), + + const SizedBox(height: Spacing.lg), + _buildSectionHeader(context, 'Interaction'), + const SizedBox(height: Spacing.sm), + + // Haptic Feedback Toggle + ConduitCard( + child: EnhancedAccessibilityService.createAccessibleSwitch( + value: settings.hapticFeedback, + onChanged: (value) { + ref + .read(appSettingsProvider.notifier) + .setHapticFeedback(value); + if (value) { + PlatformService.hapticFeedback(type: HapticType.success); + } + EnhancedAccessibilityService.announceSuccess( + value + ? 'Haptic feedback enabled' + : 'Haptic feedback disabled', + ); + }, + label: 'Haptic Feedback', + description: + 'Feel vibrations when interacting with buttons and controls', + ), + ), + + const SizedBox(height: Spacing.lg), + _buildSectionHeader(context, 'System Integration'), + const SizedBox(height: Spacing.sm), + + // System Settings Info Card + ConduitCard( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Icon( + Icons.info_outline, + color: context.conduitTheme.buttonPrimary, + size: IconSize.md, + ), + const SizedBox(width: Spacing.sm), + Text( + 'System Settings', + style: TextStyle( + color: context.conduitTheme.textPrimary, + fontSize: AppTypography.bodyLarge, + fontWeight: FontWeight.w500, + ), + ), + ], + ), + const SizedBox(height: Spacing.sm), + Text( + 'Conduit automatically respects your device\'s accessibility settings, including:', + style: TextStyle( + color: context.conduitTheme.textSecondary, + fontSize: AppTypography.labelLarge, + ), + ), + const SizedBox(height: Spacing.sm), + ...[ + '• Reduce Motion (iOS/Android)', + '• VoiceOver/TalkBack screen readers', + '• Dynamic Type/Font scale', + '• Color inversion and filters', + ].map( + (item) => Padding( + padding: const EdgeInsets.only(bottom: 4), + child: Text( + item, + style: TextStyle( + color: context.conduitTheme.textSecondary, + fontSize: AppTypography.labelLarge, + ), + ), + ), + ), + ], + ), + ), + + const SizedBox(height: Spacing.lg), + + // Reset to Defaults Button + ConduitButton( + text: 'Reset to Defaults', + onPressed: () => _showResetDialog(context, ref), + isSecondary: true, + width: double.infinity, + ), + + const SizedBox(height: Spacing.xl), + ], + ), + ), + ); + } + + Widget _buildSectionHeader(BuildContext context, String title) { + return EnhancedAccessibilityService.createAccessibleText( + title, + style: TextStyle( + color: context.conduitTheme.buttonPrimary, + fontSize: AppTypography.headlineSmall, + fontWeight: FontWeight.w600, + ), + isHeader: true, + ); + } + + Future _showResetDialog(BuildContext context, WidgetRef ref) async { + final confirmed = await PlatformService.showPlatformAlert( + context: context, + title: 'Reset Accessibility Settings', + content: + 'This will reset all accessibility preferences to their default values. Are you sure?', + confirmText: 'Reset', + cancelText: 'Cancel', + isDestructive: true, + ); + + if (confirmed == true) { + await ref.read(appSettingsProvider.notifier).resetToDefaults(); + EnhancedAccessibilityService.announceSuccess( + 'Accessibility settings reset to defaults', + ); + + if (context.mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: const Text('Accessibility settings reset to defaults'), + backgroundColor: context.conduitTheme.buttonPrimary, + behavior: SnackBarBehavior.floating, + ), + ); + } + } + } +} diff --git a/lib/features/settings/views/searchable_settings_page.dart b/lib/features/settings/views/searchable_settings_page.dart new file mode 100644 index 0000000..6f545cc --- /dev/null +++ b/lib/features/settings/views/searchable_settings_page.dart @@ -0,0 +1,810 @@ +import 'package:flutter/material.dart'; +import '../../../shared/theme/theme_extensions.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'dart:io' show Platform; +import '../../../core/widgets/error_boundary.dart'; +import '../../../core/services/navigation_service.dart'; +import '../../../shared/widgets/themed_dialogs.dart'; +import '../../../core/services/focus_management_service.dart'; +import '../../../shared/widgets/improved_loading_states.dart'; +import '../../../shared/widgets/conduit_components.dart'; +import '../../../core/models/user_settings.dart'; +import '../../../core/providers/app_providers.dart'; +import '../../../shared/utils/platform_utils.dart'; + +enum ThemeVariant { conduit } + +// Settings search provider +final settingsSearchQueryProvider = StateProvider((ref) => ''); + +// Setting item model +class SettingItem { + final String id; + final String title; + final String? subtitle; + final IconData icon; + final String category; + final List searchTerms; + final VoidCallback? onTap; + final Widget? trailing; + + SettingItem({ + required this.id, + required this.title, + this.subtitle, + required this.icon, + required this.category, + required this.searchTerms, + this.onTap, + this.trailing, + }); + + bool matchesSearch(String query) { + final lowerQuery = query.toLowerCase(); + return title.toLowerCase().contains(lowerQuery) || + (subtitle?.toLowerCase().contains(lowerQuery) ?? false) || + category.toLowerCase().contains(lowerQuery) || + searchTerms.any((term) => term.toLowerCase().contains(lowerQuery)); + } +} + +class SearchableSettingsPage extends ConsumerStatefulWidget { + const SearchableSettingsPage({super.key}); + + @override + ConsumerState createState() => + _SearchableSettingsPageState(); +} + +class _SearchableSettingsPageState + extends ConsumerState { + final TextEditingController _searchController = TextEditingController(); + late FocusNode _searchFocusNode; + bool _isSearching = false; + + @override + void initState() { + super.initState(); + _searchFocusNode = FocusManagementService.registerFocusNode( + 'settings_search', + debugLabel: 'Settings Search Field', + ); + } + + @override + void dispose() { + _searchController.dispose(); + FocusManagementService.disposeFocusNode('settings_search'); + super.dispose(); + } + + List _buildSettingItems(BuildContext context, WidgetRef ref) { + final themeMode = ref.watch(themeModeProvider); + // Single Conduit theme variant in this refactor; kept provider for future use + final userSettingsAsync = ref.watch(userSettingsProvider); + final userSettings = userSettingsAsync.when( + data: (data) => data, + loading: () => null, + error: (_, _) => null, + ); + + return [ + // Profile & Account + SettingItem( + id: 'profile', + title: 'Profile', + subtitle: 'Manage your account details', + icon: Platform.isIOS + ? CupertinoIcons.person_circle + : Icons.account_circle, + category: 'Profile & Account', + searchTerms: ['account', 'user', 'name', 'email', 'avatar'], + onTap: () => _navigateToProfile(context), + ), + SettingItem( + id: 'server', + title: 'Server Connection', + subtitle: 'Manage Open WebUI servers', + icon: Platform.isIOS ? CupertinoIcons.cloud : Icons.cloud, + category: 'Profile & Account', + searchTerms: ['server', 'connection', 'api', 'host', 'url'], + onTap: () => _navigateToServerSettings(context), + ), + SettingItem( + id: 'sign-out', + title: 'Sign Out', + subtitle: 'Sign out of your account', + icon: Platform.isIOS ? CupertinoIcons.square_arrow_right : Icons.logout, + category: 'Profile & Account', + searchTerms: ['logout', 'signout', 'exit'], + onTap: () => _handleSignOut(context, ref), + ), + + // Appearance + SettingItem( + id: 'theme', + title: 'Theme', + subtitle: 'Choose light or dark theme', + icon: Platform.isIOS ? CupertinoIcons.moon_circle : Icons.dark_mode, + category: 'Appearance', + searchTerms: ['dark', 'light', 'mode', 'appearance', 'color'], + trailing: _buildThemeSelector(ref, themeMode), + ), + // Removed variant switching; Conduit brand theme is the single source of truth + SettingItem( + id: 'text-size', + title: 'Text Size', + subtitle: 'Adjust font size for better readability', + icon: Platform.isIOS + ? CupertinoIcons.textformat_size + : Icons.text_fields, + category: 'Appearance', + searchTerms: ['font', 'size', 'text', 'readability', 'accessibility'], + onTap: () => _showTextSizeDialog(context), + ), + + // Chat & AI + SettingItem( + id: 'stream-responses', + title: 'Stream Responses', + subtitle: 'See responses as they\'re generated', + icon: Platform.isIOS ? CupertinoIcons.bolt : Icons.flash_on, + category: 'Chat & AI', + searchTerms: ['stream', 'real-time', 'live', 'responses'], + trailing: PlatformUtils.createSwitch( + value: userSettings?.streamResponses ?? true, + onChanged: (value) => _updateSetting(ref, 'streamResponses', value), + ), + ), + SettingItem( + id: 'save-conversations', + title: 'Save Conversations', + subtitle: 'Keep chat history between sessions', + icon: Platform.isIOS ? CupertinoIcons.archivebox : Icons.save, + category: 'Chat & AI', + searchTerms: ['save', 'history', 'conversations', 'chat', 'archive'], + trailing: PlatformUtils.createSwitch( + value: userSettings?.saveConversations ?? true, + onChanged: (value) => _updateSetting(ref, 'saveConversations', value), + ), + ), + SettingItem( + id: 'web-search', + title: 'Web Search', + subtitle: 'Allow AI to search the web for information', + icon: Platform.isIOS ? CupertinoIcons.globe : Icons.public, + category: 'Chat & AI', + searchTerms: ['web', 'search', 'internet', 'browse', 'online'], + trailing: Consumer( + builder: (context, ref, child) { + final settings = ref.watch(userSettingsProvider); + return settings.when( + data: (userSettings) => PlatformUtils.createSwitch( + value: userSettings.webSearchEnabled, + onChanged: (value) => + _updateSetting(ref, 'webSearchEnabled', value), + ), + loading: () => + const ImprovedLoadingState(message: 'Loading setting...'), + error: (error, stackTrace) => PlatformUtils.createSwitch( + value: false, + onChanged: (value) => + _updateSetting(ref, 'webSearchEnabled', value), + ), + ); + }, + ), + ), + SettingItem( + id: 'model-selection', + title: 'Default Model', + subtitle: 'Choose your preferred AI model', + icon: Platform.isIOS ? CupertinoIcons.cube : Icons.psychology, + category: 'Chat & AI', + searchTerms: ['model', 'ai', 'gpt', 'conduit', 'llm'], + onTap: () => _showModelSelector(context), + ), + + // Privacy & Security + SettingItem( + id: 'clear-history', + title: 'Clear Chat History', + subtitle: 'Delete all conversations', + icon: Platform.isIOS ? CupertinoIcons.trash : Icons.delete_outline, + category: 'Privacy & Security', + searchTerms: ['clear', 'delete', 'history', 'privacy', 'remove'], + onTap: () => _showClearHistoryDialog(context, ref), + ), + SettingItem( + id: 'export-data', + title: 'Export Data', + subtitle: 'Download your conversations', + icon: Platform.isIOS + ? CupertinoIcons.square_arrow_down + : Icons.download, + category: 'Privacy & Security', + searchTerms: ['export', 'download', 'backup', 'data'], + onTap: () => _handleExportData(context), + ), + + // Accessibility + SettingItem( + id: 'reduce-motion', + title: 'Reduce Motion', + subtitle: 'Minimize animations', + icon: Platform.isIOS ? CupertinoIcons.slowmo : Icons.animation, + category: 'Accessibility', + searchTerms: ['motion', 'animation', 'reduce', 'accessibility'], + trailing: Consumer( + builder: (context, ref, child) { + final settings = ref.watch(userSettingsProvider); + return settings.when( + data: (userSettings) => PlatformUtils.createSwitch( + value: userSettings.reduceMotion, + onChanged: (value) => + _updateSetting(ref, 'reduceMotion', value), + ), + loading: () => + const ImprovedLoadingState(message: 'Loading setting...'), + error: (error, stackTrace) => PlatformUtils.createSwitch( + value: false, + onChanged: (value) => + _updateSetting(ref, 'reduceMotion', value), + ), + ); + }, + ), + ), + SettingItem( + id: 'haptic-feedback', + title: 'Haptic Feedback', + subtitle: 'Vibration feedback for actions', + icon: Platform.isIOS ? CupertinoIcons.hand_draw : Icons.vibration, + category: 'Accessibility', + searchTerms: ['haptic', 'vibration', 'feedback', 'touch'], + trailing: Consumer( + builder: (context, ref, child) { + final settings = ref.watch(userSettingsProvider); + return settings.when( + data: (userSettings) => PlatformUtils.createSwitch( + value: userSettings.hapticFeedback, + onChanged: (value) => + _updateSetting(ref, 'hapticFeedback', value), + ), + loading: () => + const ImprovedLoadingState(message: 'Loading setting...'), + error: (error, stackTrace) => PlatformUtils.createSwitch( + value: true, + onChanged: (value) => + _updateSetting(ref, 'hapticFeedback', value), + ), + ); + }, + ), + ), + + // About + SettingItem( + id: 'version', + title: 'App Version', + subtitle: 'Conduit v1.0.0', + icon: Platform.isIOS ? CupertinoIcons.info_circle : Icons.info_outline, + category: 'About', + searchTerms: ['version', 'about', 'info', 'conduit'], + onTap: () => _showAboutDialog(context), + ), + SettingItem( + id: 'help', + title: 'Help & Support', + subtitle: 'Get assistance and report issues', + icon: Platform.isIOS + ? CupertinoIcons.question_circle + : Icons.help_outline, + category: 'About', + searchTerms: ['help', 'support', 'assistance', 'contact'], + onTap: () => _navigateToHelp(context), + ), + ]; + } + + List _getFilteredSettings(BuildContext context, WidgetRef ref) { + final searchQuery = ref.watch(settingsSearchQueryProvider); + final allSettings = _buildSettingItems(context, ref); + + if (searchQuery.isEmpty) { + return allSettings; + } + + return allSettings + .where((item) => item.matchesSearch(searchQuery)) + .toList(); + } + + Map> _groupSettingsByCategory( + List settings, + ) { + final grouped = >{}; + + for (final setting in settings) { + grouped.putIfAbsent(setting.category, () => []).add(setting); + } + + return grouped; + } + + @override + Widget build(BuildContext context) { + final filteredSettings = _getFilteredSettings(context, ref); + final groupedSettings = _groupSettingsByCategory(filteredSettings); + final categories = groupedSettings.keys.toList()..sort(); + + return ErrorBoundary( + child: Scaffold( + backgroundColor: context.conduitTheme.surfaceBackground, + appBar: AppBar( + backgroundColor: Colors.transparent, + elevation: Elevation.none, + title: _isSearching + ? _buildSearchBar() + : Text( + 'Settings', + style: TextStyle( + color: context.conduitTheme.textPrimary, + fontSize: AppTypography.headlineMedium, + fontWeight: FontWeight.w600, + ), + ), + leading: ConduitIconButton( + icon: Platform.isIOS ? CupertinoIcons.back : Icons.arrow_back, + onPressed: () { + if (_isSearching) { + setState(() { + _isSearching = false; + _searchController.clear(); + ref.read(settingsSearchQueryProvider.notifier).state = ''; + }); + } else { + NavigationService.goBack(); + } + }, + ), + actions: [ + if (!_isSearching) + ConduitIconButton( + icon: Platform.isIOS ? CupertinoIcons.search : Icons.search, + onPressed: () { + setState(() { + _isSearching = true; + }); + _searchFocusNode.requestFocus(); + }, + ), + const SizedBox(width: Spacing.sm), + ], + ), + body: SafeArea( + top: false, + child: filteredSettings.isEmpty + ? _buildEmptySearchResults() + : ListView.builder( + padding: const EdgeInsets.symmetric(vertical: 8), + itemCount: categories.length, + itemBuilder: (context, index) { + final category = categories[index]; + final items = groupedSettings[category]!; + + return _buildCategorySection(category, items); + }, + ), + ), + ), // Added closing parenthesis for ErrorBoundary + ); + } + + Widget _buildSearchBar() { + return TextField( + controller: _searchController, + focusNode: _searchFocusNode, + style: TextStyle( + color: context.conduitTheme.textPrimary, + fontSize: AppTypography.bodyLarge, + ), + decoration: InputDecoration( + hintText: 'Search settings...', + hintStyle: TextStyle( + color: context.conduitTheme.inputPlaceholder, + fontSize: AppTypography.bodyLarge, + ), + border: InputBorder.none, + enabledBorder: InputBorder.none, + focusedBorder: InputBorder.none, + ), + onChanged: (value) { + ref.read(settingsSearchQueryProvider.notifier).state = value; + }, + ); + } + + Widget _buildEmptySearchResults() { + return ImprovedEmptyState( + title: 'No settings found', + subtitle: 'Try a different search term', + icon: Platform.isIOS ? CupertinoIcons.search : Icons.search_off, + showAnimation: true, + ); + } + + Widget _buildCategorySection(String category, List items) { + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: const EdgeInsets.fromLTRB( + Spacing.md, + Spacing.md, + Spacing.md, + Spacing.sm, + ), + child: Text( + category, + style: TextStyle( + color: context.conduitTheme.textSecondary, + fontSize: AppTypography.bodySmall, + fontWeight: FontWeight.w600, + letterSpacing: 0.5, + ), + ), + ), + Container( + margin: const EdgeInsets.symmetric(horizontal: 16), + decoration: BoxDecoration( + color: context.conduitTheme.surfaceBackground, + borderRadius: BorderRadius.circular(AppBorderRadius.md), + border: Border.all( + color: context.conduitTheme.dividerColor, + width: 1, + ), + ), + child: Column( + children: items.asMap().entries.map((entry) { + final index = entry.key; + final item = entry.value; + final isLast = index == items.length - 1; + + return Column( + children: [ + _buildSettingTile(item), + if (!isLast) + Divider( + height: 1, + color: context.conduitTheme.dividerColor, + indent: 56, + ), + ], + ); + }).toList(), + ), + ), + ], + ); + } + + Widget _buildSettingTile(SettingItem item) { + final searchQuery = ref.watch(settingsSearchQueryProvider); + + return Material( + color: Colors.transparent, + child: InkWell( + onTap: item.onTap, + borderRadius: BorderRadius.circular(AppBorderRadius.md), + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), + child: Row( + children: [ + Container( + width: 40, + height: 40, + decoration: BoxDecoration( + color: context.conduitTheme.surfaceBackground, + borderRadius: BorderRadius.circular(AppBorderRadius.sm), + ), + child: Icon( + item.icon, + color: context.conduitTheme.iconSecondary, + size: IconSize.md, + ), + ), + const SizedBox(width: Spacing.md), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + _highlightSearchText(item.title, searchQuery), + if (item.subtitle != null) ...[ + const SizedBox(height: Spacing.xxs), + _highlightSearchText( + item.subtitle!, + searchQuery, + style: TextStyle( + color: context.conduitTheme.textSecondary, + fontSize: AppTypography.bodySmall, + ), + ), + ], + ], + ), + ), + if (item.trailing != null) ...[ + const SizedBox(width: Spacing.sm), + item.trailing!, + ] else if (item.onTap != null) + Icon( + Platform.isIOS + ? CupertinoIcons.chevron_forward + : Icons.chevron_right, + color: context.conduitTheme.iconSecondary, + size: IconSize.md, + ), + ], + ), + ), + ), + ); + } + + Widget _highlightSearchText(String text, String query, {TextStyle? style}) { + if (query.isEmpty) { + return Text( + text, + style: + style ?? + TextStyle( + color: context.conduitTheme.textPrimary, + fontSize: AppTypography.bodyLarge, + fontWeight: FontWeight.w500, + ), + ); + } + + final lowerText = text.toLowerCase(); + final lowerQuery = query.toLowerCase(); + final index = lowerText.indexOf(lowerQuery); + + if (index == -1) { + return Text(text, style: style); + } + + final before = text.substring(0, index); + final match = text.substring(index, index + query.length); + final after = text.substring(index + query.length); + + return RichText( + text: TextSpan( + style: + style ?? + TextStyle( + color: context.conduitTheme.textPrimary, + fontSize: AppTypography.bodyLarge, + fontWeight: FontWeight.w500, + ), + children: [ + TextSpan(text: before), + TextSpan( + text: match, + style: TextStyle( + backgroundColor: context.conduitTheme.buttonPrimary.withValues( + alpha: 0.3, + ), + fontWeight: FontWeight.w600, + ), + ), + TextSpan(text: after), + ], + ), + ); + } + + Widget _buildThemeSelector(WidgetRef ref, ThemeMode themeMode) { + return CupertinoSlidingSegmentedControl( + groupValue: themeMode, + children: const { + ThemeMode.light: Padding( + padding: EdgeInsets.symmetric(horizontal: 8), + child: Text( + 'Light', + style: TextStyle(fontSize: AppTypography.bodySmall), + ), + ), + ThemeMode.dark: Padding( + padding: EdgeInsets.symmetric(horizontal: 8), + child: Text( + 'Dark', + style: TextStyle(fontSize: AppTypography.bodySmall), + ), + ), + ThemeMode.system: Padding( + padding: EdgeInsets.symmetric(horizontal: 8), + child: Text( + 'Auto', + style: TextStyle(fontSize: AppTypography.bodySmall), + ), + ), + }, + onValueChanged: (value) { + if (value != null) { + ref.read(themeModeProvider.notifier).setTheme(value); + } + }, + ); + } + + // Theme variant state removed; single Conduit theme in use + + void _updateSetting(WidgetRef ref, String key, dynamic value) async { + try { + final currentSettings = await ref.read(userSettingsProvider.future); + + // Create updated settings based on the key + UserSettings updatedSettings; + switch (key) { + case 'webSearchEnabled': + updatedSettings = currentSettings.copyWith( + webSearchEnabled: value as bool, + ); + break; + case 'reduceMotion': + updatedSettings = currentSettings.copyWith( + reduceMotion: value as bool, + ); + break; + case 'hapticFeedback': + updatedSettings = currentSettings.copyWith( + hapticFeedback: value as bool, + ); + break; + case 'streamResponses': + updatedSettings = currentSettings.copyWith( + streamResponses: value as bool, + ); + break; + case 'saveConversations': + updatedSettings = currentSettings.copyWith( + saveConversations: value as bool, + ); + break; + case 'showReadReceipts': + updatedSettings = currentSettings.copyWith( + showReadReceipts: value as bool, + ); + break; + case 'enableNotifications': + updatedSettings = currentSettings.copyWith( + enableNotifications: value as bool, + ); + break; + case 'enableSounds': + updatedSettings = currentSettings.copyWith( + enableSounds: value as bool, + ); + break; + case 'shareUsageData': + updatedSettings = currentSettings.copyWith( + shareUsageData: value as bool, + ); + break; + case 'temperature': + updatedSettings = currentSettings.copyWith( + temperature: value as double, + ); + break; + case 'maxTokens': + updatedSettings = currentSettings.copyWith(maxTokens: value as int); + break; + case 'fontSize': + updatedSettings = currentSettings.copyWith(fontSize: value as double); + break; + case 'theme': + updatedSettings = currentSettings.copyWith(theme: value as String); + break; + case 'density': + updatedSettings = currentSettings.copyWith(density: value as String); + break; + case 'language': + updatedSettings = currentSettings.copyWith(language: value as String); + break; + default: + // Handle custom settings + final customSettings = Map.from( + currentSettings.customSettings, + ); + customSettings[key] = value; + updatedSettings = currentSettings.copyWith( + customSettings: customSettings, + ); + } + + // Update settings on server + final api = ref.read(apiServiceProvider); + if (api != null) { + await api.updateUserSettings(updatedSettings.toJson()); + + // Invalidate the provider to refresh the UI + ref.invalidate(userSettingsProvider); + + // Show success message + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text('Setting updated'), + duration: const Duration(seconds: 2), + ), + ); + } + } + } catch (e) { + // Show error message + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text('Failed to update setting: $e'), + backgroundColor: context.conduitTheme.error, + ), + ); + } + } + } + + void _navigateToProfile(BuildContext context) { + // TODO: Navigate to profile page + } + + void _navigateToServerSettings(BuildContext context) { + NavigationService.navigateTo('/server-connection'); + } + + void _handleSignOut(BuildContext context, WidgetRef ref) { + // ignore: unawaited_futures + ThemedDialogs.confirm( + context, + title: 'Sign Out', + message: 'Are you sure you want to sign out?', + confirmText: 'Sign Out', + ).then((confirmed) { + if (confirmed) { + // TODO: Implement proper logout functionality when auth service is available + // ref.read(authServiceProvider.notifier).logout(); + NavigationService.navigateTo('/login', clearStack: true); + } + }); + } + + void _showTextSizeDialog(BuildContext context) { + // TODO: Implement text size adjustment dialog + } + + void _showModelSelector(BuildContext context) { + // TODO: Implement model selection dialog + } + + void _showClearHistoryDialog(BuildContext context, WidgetRef ref) { + // TODO: Implement clear history dialog + } + + void _handleExportData(BuildContext context) { + // TODO: Implement data export + } + + void _showAboutDialog(BuildContext context) { + showAboutDialog( + context: context, + applicationName: 'Conduit', + applicationVersion: '1.0.0', + applicationLegalese: '© 2024 Conduit Team', + ); + } + + void _navigateToHelp(BuildContext context) { + // TODO: Navigate to help page + } +} diff --git a/lib/main.dart b/lib/main.dart new file mode 100644 index 0000000..9a6b575 --- /dev/null +++ b/lib/main.dart @@ -0,0 +1,313 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'core/services/navigation_service.dart'; +import 'core/widgets/error_boundary.dart'; +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +import 'core/providers/app_providers.dart'; +import 'shared/theme/app_theme.dart'; +import 'shared/theme/theme_extensions.dart'; +import 'shared/widgets/offline_indicator.dart'; +import 'features/auth/views/connect_signin_page.dart'; +import 'features/auth/providers/unified_auth_providers.dart'; +import 'core/auth/auth_state_manager.dart'; +import 'package:flutter/cupertino.dart'; +import 'features/onboarding/views/onboarding_sheet.dart'; +import 'features/chat/views/chat_page.dart'; +import 'features/navigation/views/splash_launcher_page.dart'; + +void main() async { + WidgetsFlutterBinding.ensureInitialized(); + + final sharedPrefs = await SharedPreferences.getInstance(); + const secureStorage = FlutterSecureStorage(); + + runApp( + ProviderScope( + overrides: [ + sharedPreferencesProvider.overrideWithValue(sharedPrefs), + secureStorageProvider.overrideWithValue(secureStorage), + ], + child: const ConduitApp(), + ), + ); +} + +class ConduitApp extends ConsumerStatefulWidget { + const ConduitApp({super.key}); + + @override + ConsumerState createState() => _ConduitAppState(); +} + +class _ConduitAppState extends ConsumerState { + bool _attemptedSilentAutoLogin = false; + @override + void initState() { + super.initState(); + _initializeAppState(); + } + + Widget _buildInitialLoadingSkeleton(BuildContext context) { + // Replace skeleton with branded splash during initialization + return const SplashLauncherPage(); + } + + void _initializeAppState() { + // Initialize unified auth state manager and API integration synchronously + // This ensures auth state is loaded before first widget build + debugPrint('DEBUG: Initializing unified auth system'); + + // Initialize auth state manager (will handle token validation automatically) + ref.read(authStateManagerProvider); + + // Ensure API service auth integration is active + ref.read(authApiIntegrationProvider); + } + + @override + Widget build(BuildContext context) { + // Use select to watch only the specific themeMode property to reduce rebuilds + final themeMode = ref.watch(themeModeProvider.select((mode) => mode)); + + // Reduced debug noise - only log when necessary + // debugPrint('DEBUG: Building app'); + + // Determine the current theme based on themeMode + // Default to Conduit brand theme globally + final currentTheme = themeMode == ThemeMode.dark + ? AppTheme.conduitDarkTheme + : themeMode == ThemeMode.light + ? AppTheme.conduitLightTheme + : MediaQuery.platformBrightnessOf(context) == Brightness.dark + ? AppTheme.conduitDarkTheme + : AppTheme.conduitLightTheme; + + return AnimatedThemeWrapper( + theme: currentTheme, + duration: AnimationDuration.medium, + child: ErrorBoundary( + child: MaterialApp( + title: 'Conduit', + theme: AppTheme.conduitLightTheme, + darkTheme: AppTheme.conduitDarkTheme, + themeMode: themeMode, + debugShowCheckedModeBanner: false, + navigatorKey: NavigationService.navigatorKey, + builder: (context, child) { + // Keep a subtle fade for navigation transitions only + final wrapped = OfflineIndicator( + child: child ?? const SizedBox.shrink(), + ); + return wrapped; + }, + home: _getInitialPageWithReactiveState(), + onGenerateRoute: NavigationService.generateRoute, + navigatorObservers: [_NavigationObserver()], + ), + ), + ); + } + + Widget _getInitialPageWithReactiveState() { + return Consumer( + builder: (context, ref, child) { + // Watch for server connection state changes + final activeServerAsync = ref.watch(activeServerProvider); + final reviewerMode = ref.watch(reviewerModeProvider); + + if (reviewerMode) { + // In reviewer mode, skip server/auth flows and go to chat + NavigationService.setCurrentRoute(Routes.chat); + return const ChatPage(); + } + + return activeServerAsync.when( + data: (activeServer) { + if (activeServer == null) { + return const ConnectAndSignInPage(); + } + + // Server is connected, now check authentication reactively + final authNavState = ref.watch(authNavigationStateProvider); + + if (authNavState == AuthNavigationState.needsLogin) { + // Try one-shot silent login if credentials are saved + if (!_attemptedSilentAutoLogin) { + _attemptedSilentAutoLogin = true; + Future.microtask(() async { + try { + final hasCreds = await ref.read( + hasSavedCredentialsProvider2.future, + ); + if (hasCreds) { + await ref.read(silentLoginActionProvider); + } + } catch (_) { + // Ignore errors, fallback to showing unified page + } + }); + } + return const ConnectAndSignInPage(); + } + + if (authNavState == AuthNavigationState.loading) { + return _buildInitialLoadingSkeleton(context); + } + + if (authNavState == AuthNavigationState.error) { + return _buildErrorState( + ref.watch(authErrorProvider3) ?? 'Authentication error', + ); + } + + // User is authenticated, navigate directly to chat page + _initializeBackgroundResources(ref); + + // Set the current route for navigation tracking + NavigationService.setCurrentRoute(Routes.chat); + + return const ChatPage(); + }, + loading: () => _buildInitialLoadingSkeleton(context), + error: (error, stackTrace) { + debugPrint('DEBUG: Server provider error: $error'); + return _buildErrorState('Server connection failed: $error'); + }, + ); + }, + ); + } + + void _initializeBackgroundResources(WidgetRef ref) { + // Initialize resources in the background without blocking UI + Future.microtask(() async { + try { + // Get the API service + final api = ref.read(apiServiceProvider); + if (api == null) { + debugPrint( + 'DEBUG: API service not available for background initialization', + ); + return; + } + + // Explicitly get the current auth token and set it on the API service + final authToken = ref.read(authTokenProvider3); + if (authToken != null && authToken.isNotEmpty) { + api.updateAuthToken(authToken); + debugPrint('DEBUG: Background - Set auth token on API service'); + } else { + debugPrint('DEBUG: Background - No auth token available yet'); + return; + } + + // Initialize the token updater for future updates + ref.read(apiTokenUpdaterProvider); + + // Load models and set default in background + await ref.read(defaultModelProvider.future); + debugPrint('DEBUG: Background initialization completed'); + + // Onboarding: show once if not seen + final storage = ref.read(optimizedStorageServiceProvider); + final seen = await storage.getOnboardingSeen(); + if (!seen && mounted) { + await Future.delayed(const Duration(milliseconds: 300)); + if (!mounted) return; + WidgetsBinding.instance.addPostFrameCallback((_) async { + final navContext = NavigationService.navigatorKey.currentContext; + if (!mounted || navContext == null) return; + _showOnboarding(navContext); + await storage.setOnboardingSeen(true); + }); + } + } catch (e) { + debugPrint('DEBUG: Background initialization failed: $e'); + // Don't throw - this is background initialization + } + }); + } + + void _showOnboarding(BuildContext context) { + showModalBottomSheet( + context: context, + backgroundColor: Colors.transparent, + isScrollControlled: true, + builder: (context) => Container( + decoration: BoxDecoration( + color: context.conduitTheme.surfaceBackground, + borderRadius: const BorderRadius.vertical( + top: Radius.circular(AppBorderRadius.modal), + ), + boxShadow: ConduitShadows.modal, + ), + child: const OnboardingSheet(), + ), + ); + } + + Widget _buildErrorState(String error) { + return Scaffold( + backgroundColor: context.conduitTheme.surfaceBackground, + body: Center( + child: Padding( + padding: const EdgeInsets.all(Spacing.lg), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + Icons.error_outline, + size: IconSize.xxl + Spacing.md, + color: context.conduitTheme.error, + ), + const SizedBox(height: Spacing.md), + Text( + 'Initialization Failed', + style: TextStyle( + fontSize: AppTypography.headlineLarge, + fontWeight: FontWeight.bold, + color: context.conduitTheme.textPrimary, + ), + ), + const SizedBox(height: Spacing.sm), + Text( + error, + style: TextStyle(color: context.conduitTheme.textSecondary), + textAlign: TextAlign.center, + ), + const SizedBox(height: Spacing.lg), + ElevatedButton( + onPressed: () { + // Restart the app + WidgetsBinding.instance.reassembleApplication(); + }, + style: ElevatedButton.styleFrom( + backgroundColor: context.conduitTheme.buttonPrimary, + foregroundColor: context.conduitTheme.buttonPrimaryText, + ), + child: const Text('Retry'), + ), + ], + ), + ), + ), + ); + } +} + +class _NavigationObserver extends NavigatorObserver { + @override + void didPush(Route route, Route? previousRoute) { + super.didPush(route, previousRoute); + // Log navigation for debugging and analytics + debugPrint('DEBUG: Navigation - Pushed: ${route.settings.name}'); + } + + @override + void didPop(Route route, Route? previousRoute) { + super.didPop(route, previousRoute); + debugPrint('DEBUG: Navigation - Popped: ${route.settings.name}'); + } +} diff --git a/lib/shared/services/brand_service.dart b/lib/shared/services/brand_service.dart new file mode 100644 index 0000000..bde4236 --- /dev/null +++ b/lib/shared/services/brand_service.dart @@ -0,0 +1,281 @@ +import 'package:flutter/material.dart'; +import '../theme/theme_extensions.dart'; +import 'package:flutter/cupertino.dart'; +import 'dart:io' show Platform; +import '../theme/app_theme.dart'; + +/// Centralized service for consistent brand identity throughout the app +/// Uses the hub icon as the primary brand element +class BrandService { + BrandService._(); + + /// Primary brand icon - the hub icon + static IconData get primaryIcon => + Platform.isIOS ? CupertinoIcons.link_circle_fill : Icons.hub; + + /// Alternative brand icons for different contexts + static IconData get primaryIconOutlined => + Platform.isIOS ? CupertinoIcons.link_circle : Icons.hub_outlined; + static IconData get connectivityIcon => + Platform.isIOS ? CupertinoIcons.wifi : Icons.hub; + static IconData get networkIcon => + Platform.isIOS ? CupertinoIcons.globe : Icons.hub; + + /// Brand colors - these should be accessed through context.conduitTheme in UI components + static Color get primaryBrandColor => AppTheme.brandPrimary; + static Color get secondaryBrandColor => AppTheme.brandPrimaryLight; + static Color get accentBrandColor => AppTheme.brandPrimaryDark; + + /// Creates a branded icon with consistent styling + static Widget createBrandIcon({ + double size = 24, + Color? color, + IconData? icon, + bool useGradient = false, + bool addShadow = false, + }) { + final iconData = icon ?? primaryIcon; + final iconColor = color ?? primaryBrandColor; + + Widget iconWidget = Icon( + iconData, + size: size, + color: useGradient ? null : iconColor, + ); + + if (useGradient) { + iconWidget = ShaderMask( + blendMode: BlendMode.srcIn, + shaderCallback: (bounds) => LinearGradient( + colors: [primaryBrandColor, secondaryBrandColor], + ).createShader(bounds), + child: Icon(iconData, size: size), + ); + } + + if (addShadow) { + iconWidget = Container( + decoration: BoxDecoration( + boxShadow: [ + BoxShadow( + color: primaryBrandColor.withValues(alpha: 0.3), + blurRadius: size * 0.3, + offset: Offset(0, size * 0.1), + ), + ], + ), + child: iconWidget, + ); + } + + return iconWidget; + } + + /// Creates a branded avatar with the hub icon + static Widget createBrandAvatar({ + double size = 40, + Color? backgroundColor, + Color? iconColor, + bool useGradient = true, + String? fallbackText, + BuildContext? context, + }) { + final bgColor = backgroundColor ?? primaryBrandColor; + final iColor = + iconColor ?? (context?.conduitTheme.textInverse ?? AppTheme.neutral50); + + return Container( + width: size, + height: size, + decoration: BoxDecoration( + gradient: useGradient + ? LinearGradient( + begin: Alignment.topLeft, + end: Alignment.bottomRight, + colors: [primaryBrandColor, secondaryBrandColor], + ) + : null, + color: useGradient ? null : bgColor, + borderRadius: BorderRadius.circular(size / 2), + boxShadow: [ + BoxShadow( + color: primaryBrandColor.withValues(alpha: 0.3), + blurRadius: size * 0.2, + offset: Offset(0, size * 0.1), + ), + ], + ), + child: fallbackText != null && fallbackText.isNotEmpty + ? Center( + child: Text( + fallbackText.toUpperCase(), + style: TextStyle( + color: iColor, + fontSize: size * 0.4, + fontWeight: FontWeight.w600, + ), + ), + ) + : Icon(primaryIcon, size: size * 0.5, color: iColor), + ); + } + + /// Creates a branded loading indicator + static Widget createBrandLoadingIndicator({ + double size = 24, + double strokeWidth = 2, + Color? color, + }) { + return SizedBox( + width: size, + height: size, + child: CircularProgressIndicator( + strokeWidth: strokeWidth, + valueColor: AlwaysStoppedAnimation(color ?? primaryBrandColor), + ), + ); + } + + /// Creates a branded empty state icon + static Widget createBrandEmptyStateIcon({ + double size = 80, + Color? color, + bool showBackground = true, + BuildContext? context, + }) { + final iconColor = + color ?? (context?.conduitTheme.iconSecondary ?? AppTheme.neutral400); + + if (!showBackground) { + return createBrandIcon( + size: size, + color: iconColor, + icon: primaryIconOutlined, + ); + } + + return Container( + width: size, + height: size, + decoration: BoxDecoration( + color: context?.conduitTheme.surfaceBackground ?? AppTheme.neutral700, + borderRadius: BorderRadius.circular(size / 2), + border: Border.all( + color: context?.conduitTheme.dividerColor ?? AppTheme.neutral600, + width: 2, + ), + ), + child: createBrandIcon( + size: size * 0.5, + color: iconColor, + icon: primaryIconOutlined, + ), + ); + } + + /// Creates a branded button with hub icon + static Widget createBrandButton({ + required String text, + required VoidCallback? onPressed, + bool isLoading = false, + IconData? icon, + double? width, + bool isSecondary = false, + BuildContext? context, + }) { + return SizedBox( + width: width, + height: 48, + child: ElevatedButton.icon( + onPressed: isLoading ? null : onPressed, + icon: isLoading + ? createBrandLoadingIndicator(size: IconSize.sm) + : createBrandIcon( + size: IconSize.md, + icon: icon ?? primaryIcon, + color: context?.conduitTheme.textInverse ?? AppTheme.neutral50, + ), + label: Text(text), + style: ElevatedButton.styleFrom( + backgroundColor: isSecondary + ? (context?.conduitTheme.buttonSecondary ?? AppTheme.neutral700) + : (context?.conduitTheme.buttonPrimary ?? primaryBrandColor), + foregroundColor: + context?.conduitTheme.buttonPrimaryText ?? AppTheme.neutral50, + disabledBackgroundColor: + context?.conduitTheme.buttonDisabled ?? AppTheme.neutral500, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.md), + ), + elevation: Elevation.none, + ), + ), + ); + } + + /// Brand-specific semantic labels for accessibility + static String get brandName => 'Conduit'; + static String get brandDescription => 'Your AI Conversation Hub'; + static String get connectionLabel => 'Hub Connection'; + static String get networkLabel => 'Network Hub'; + + /// Creates branded AppBar with consistent styling + static PreferredSizeWidget createBrandAppBar({ + required String title, + List? actions, + Widget? leading, + bool centerTitle = true, + double elevation = 0, + BuildContext? context, + }) { + return AppBar( + title: Text( + title, + style: (context != null ? context.conduitTheme.headingSmall : null) + ?.copyWith( + color: (context != null + ? context.conduitTheme.textPrimary + : null), + fontWeight: FontWeight.w600, + ), + ), + centerTitle: centerTitle, + elevation: elevation, + backgroundColor: context?.conduitTheme.surfaceBackground, + surfaceTintColor: Colors.transparent, + shadowColor: Colors.transparent, + leading: leading, + actions: actions, + ); + } + + /// Creates a branded splash screen logo + static Widget createSplashLogo({ + double size = 140, + bool animate = true, + BuildContext? context, + }) { + return Container( + width: size, + height: size, + decoration: BoxDecoration( + gradient: LinearGradient( + begin: Alignment.topLeft, + end: Alignment.bottomRight, + colors: [ + context?.conduitTheme.buttonPrimary ?? primaryBrandColor, + context?.conduitTheme.buttonPrimary.withValues(alpha: 0.8) ?? + secondaryBrandColor, + ], + ), + borderRadius: BorderRadius.circular(size / 2), + boxShadow: ConduitShadows.glow, + ), + child: Icon( + primaryIcon, + size: size * 0.5, + color: context?.conduitTheme.textInverse ?? AppTheme.neutral50, + ), + ); + } +} diff --git a/lib/shared/theme/app_theme.dart b/lib/shared/theme/app_theme.dart new file mode 100644 index 0000000..1568d75 --- /dev/null +++ b/lib/shared/theme/app_theme.dart @@ -0,0 +1,414 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:google_fonts/google_fonts.dart'; +import 'package:flutter_animate/flutter_animate.dart'; +import 'theme_extensions.dart'; + +class AppTheme { + // Brand accents (ChatGPT aesthetic) + static const Color brandPrimary = Color(0xFF4F46E5); // Indigo + static const Color brandPrimaryLight = Color(0xFF818CF8); + static const Color brandPrimaryDark = Color(0xFF4338CA); + + // Enhanced neutral palette for better contrast (WCAG AA compliant) + static const Color neutral900 = Color(0xFF000000); // Pure black + static const Color neutral800 = Color( + 0xFF0D0D0D, + ); // Darker for better contrast + static const Color neutral700 = Color(0xFF1A1A1A); + static const Color neutral600 = Color(0xFF2D2D2D); // Improved contrast + static const Color neutral500 = Color(0xFF404040); // Better middle gray + static const Color neutral400 = Color(0xFF525252); + static const Color neutral300 = Color(0xFF6B6B6B); // Improved contrast ratio + static const Color neutral200 = Color(0xFF9E9E9E); // Better readability + static const Color neutral100 = Color(0xFFD1D1D1); // Enhanced contrast + static const Color neutral50 = Color( + 0xFFF8F8F8, + ); // Softer white for reduced eye strain + + // Enhanced semantic colors for WCAG AA compliance + static const Color error = Color(0xFFDC2626); // Improved red contrast + static const Color errorDark = Color(0xFFB91C1C); // Darker red for dark theme + static const Color success = Color(0xFF059669); // Better green contrast + static const Color successDark = Color(0xFF047857); // Dark theme green + static const Color warning = Color(0xFFD97706); // Improved orange contrast + static const Color warningDark = Color(0xFFB45309); // Dark theme orange + static const Color info = Color(0xFF0284C7); // Better blue contrast + static const Color infoDark = Color(0xFF0369A1); // Dark theme blue + + // Brand aliases + static const Color primaryColor = brandPrimary; + static const Color secondaryColor = brandPrimaryLight; + static const Color surfaceColor = neutral50; + static const Color errorColor = error; + static const Color successColor = success; + + // Base Light Theme + static ThemeData lightTheme = ThemeData( + useMaterial3: true, + brightness: Brightness.light, + colorScheme: const ColorScheme.light( + primary: brandPrimary, + secondary: brandPrimaryLight, + surface: surfaceColor, + error: errorColor, + ), + pageTransitionsTheme: const PageTransitionsTheme( + builders: { + TargetPlatform.android: ZoomPageTransitionsBuilder(), + TargetPlatform.iOS: ZoomPageTransitionsBuilder(), + TargetPlatform.linux: ZoomPageTransitionsBuilder(), + TargetPlatform.macOS: ZoomPageTransitionsBuilder(), + TargetPlatform.windows: ZoomPageTransitionsBuilder(), + }, + ), + splashFactory: NoSplash.splashFactory, + appBarTheme: const AppBarTheme( + centerTitle: true, + elevation: Elevation.none, + backgroundColor: Colors.transparent, + foregroundColor: neutral800, + ), + bottomSheetTheme: BottomSheetThemeData( + backgroundColor: neutral50, + modalBackgroundColor: neutral50, + surfaceTintColor: Colors.transparent, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.modal), + ), + showDragHandle: false, + ), + elevatedButtonTheme: ElevatedButtonThemeData( + style: ElevatedButton.styleFrom( + padding: const EdgeInsets.symmetric( + horizontal: Spacing.lg, + vertical: Spacing.xs, + ), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.md), + ), + ), + ), + cardTheme: CardThemeData( + elevation: Elevation.none, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.lg), + side: BorderSide(color: neutral200), + ), + ), + snackBarTheme: SnackBarThemeData( + behavior: SnackBarBehavior.floating, + backgroundColor: neutral900.withValues(alpha: 0.92), + contentTextStyle: GoogleFonts.inter( + color: neutral50, + fontSize: AppTypography.bodyMedium, + ), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.snackbar), + ), + elevation: Elevation.high, + ), + inputDecorationTheme: InputDecorationTheme( + filled: true, + fillColor: neutral50, + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.md), + borderSide: BorderSide.none, + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.md), + borderSide: BorderSide.none, + ), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.md), + borderSide: const BorderSide(color: primaryColor, width: 2), + ), + errorBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.md), + borderSide: const BorderSide(color: errorColor, width: 1), + ), + contentPadding: const EdgeInsets.symmetric( + horizontal: Spacing.md, + vertical: Spacing.sm, + ), + ), + textTheme: GoogleFonts.interTextTheme(), + extensions: const [ConduitThemeExtension.auroraLight], + ); + + // Base Dark Theme + static ThemeData darkTheme = ThemeData( + useMaterial3: true, + brightness: Brightness.dark, + scaffoldBackgroundColor: Color(0xFF0A0D0C), + colorScheme: const ColorScheme.dark( + primary: brandPrimary, + secondary: brandPrimaryDark, + surface: Color(0xFF0A0D0C), + surfaceContainerHighest: neutral700, + onSurface: neutral50, + onSurfaceVariant: neutral300, + outline: neutral600, + error: error, + ), + pageTransitionsTheme: const PageTransitionsTheme( + builders: { + TargetPlatform.android: ZoomPageTransitionsBuilder(), + TargetPlatform.iOS: ZoomPageTransitionsBuilder(), + TargetPlatform.linux: ZoomPageTransitionsBuilder(), + TargetPlatform.macOS: ZoomPageTransitionsBuilder(), + TargetPlatform.windows: ZoomPageTransitionsBuilder(), + }, + ), + splashFactory: NoSplash.splashFactory, + appBarTheme: const AppBarTheme( + centerTitle: true, + elevation: Elevation.none, + backgroundColor: Colors.transparent, + foregroundColor: neutral50, + ), + bottomSheetTheme: BottomSheetThemeData( + backgroundColor: neutral900, + modalBackgroundColor: neutral900, + surfaceTintColor: Colors.transparent, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.modal), + ), + showDragHandle: false, + ), + elevatedButtonTheme: ElevatedButtonThemeData( + style: ElevatedButton.styleFrom( + padding: const EdgeInsets.symmetric( + horizontal: Spacing.lg, + vertical: Spacing.xs, + ), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.md), + ), + ), + ), + cardTheme: CardThemeData( + elevation: Elevation.none, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.lg), + side: BorderSide(color: neutral800), + ), + ), + snackBarTheme: SnackBarThemeData( + behavior: SnackBarBehavior.floating, + backgroundColor: neutral800.withValues(alpha: 0.92), + contentTextStyle: GoogleFonts.inter( + color: neutral50, + fontSize: AppTypography.bodyMedium, + ), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.snackbar), + ), + elevation: Elevation.high, + ), + inputDecorationTheme: InputDecorationTheme( + filled: true, + fillColor: neutral700, + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.md), + borderSide: const BorderSide(color: neutral600, width: 1), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.md), + borderSide: const BorderSide(color: neutral600, width: 1), + ), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.md), + borderSide: const BorderSide(color: brandPrimary, width: 2), + ), + errorBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.md), + borderSide: const BorderSide(color: error, width: 1), + ), + contentPadding: const EdgeInsets.symmetric( + horizontal: Spacing.md, + vertical: Spacing.sm, + ), + ), + textTheme: GoogleFonts.interTextTheme(ThemeData.dark().textTheme), + extensions: const [ConduitThemeExtension.dark], + ); + + // Conduit variants using brand colors + static ThemeData conduitLightTheme = lightTheme.copyWith( + colorScheme: lightTheme.colorScheme.copyWith( + primary: brandPrimary, + secondary: brandPrimaryLight, + surface: neutral50, + ), + extensions: const [ConduitThemeExtension.light], + appBarTheme: const AppBarTheme( + centerTitle: true, + elevation: Elevation.none, + backgroundColor: Colors.transparent, + foregroundColor: neutral800, + ), + inputDecorationTheme: InputDecorationTheme( + filled: true, + fillColor: neutral50, + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.md), + borderSide: BorderSide.none, + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.md), + borderSide: BorderSide.none, + ), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.md), + borderSide: const BorderSide(color: brandPrimary, width: 2), + ), + errorBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.md), + borderSide: const BorderSide(color: error, width: 1), + ), + contentPadding: const EdgeInsets.symmetric( + horizontal: Spacing.md, + vertical: Spacing.sm, + ), + ), + ); + + static ThemeData conduitDarkTheme = darkTheme.copyWith( + scaffoldBackgroundColor: const Color(0xFF0A0D0C), + colorScheme: darkTheme.colorScheme.copyWith( + primary: brandPrimary, + secondary: brandPrimaryDark, + surface: const Color(0xFF0A0D0C), + surfaceContainerHighest: neutral700, + ), + extensions: const [ConduitThemeExtension.dark], + appBarTheme: const AppBarTheme( + centerTitle: true, + elevation: Elevation.none, + backgroundColor: Colors.transparent, + foregroundColor: neutral50, + ), + inputDecorationTheme: InputDecorationTheme( + filled: true, + fillColor: neutral700, + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.md), + borderSide: const BorderSide(color: neutral600, width: 1), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.md), + borderSide: const BorderSide(color: neutral600, width: 1), + ), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.md), + borderSide: const BorderSide(color: brandPrimary, width: 2), + ), + errorBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.md), + borderSide: const BorderSide(color: error, width: 1), + ), + contentPadding: const EdgeInsets.symmetric( + horizontal: Spacing.md, + vertical: Spacing.sm, + ), + ), + ); + + // Classic Conduit variants for runtime switching + // Removed classic Conduit variants from public API to keep Aurora only + + // Platform-specific theming helpers + static CupertinoThemeData cupertinoTheme(BuildContext context) { + final isDark = Theme.of(context).brightness == Brightness.dark; + return CupertinoThemeData( + brightness: isDark ? Brightness.dark : Brightness.light, + primaryColor: brandPrimary, + scaffoldBackgroundColor: isDark ? neutral900 : neutral50, + barBackgroundColor: isDark ? neutral900 : neutral50, + ); + } +} + +/// Animated theme wrapper for smooth theme transitions +class AnimatedThemeWrapper extends StatefulWidget { + final Widget child; + final ThemeData theme; + final Duration duration; + + const AnimatedThemeWrapper({ + super.key, + required this.child, + required this.theme, + this.duration = const Duration(milliseconds: 250), + }); + + @override + State createState() => _AnimatedThemeWrapperState(); +} + +class _AnimatedThemeWrapperState extends State + with SingleTickerProviderStateMixin { + late AnimationController _controller; + late Animation _animation; + ThemeData? _previousTheme; + + @override + void initState() { + super.initState(); + _controller = AnimationController(duration: widget.duration, vsync: this); + _animation = CurvedAnimation(parent: _controller, curve: Curves.easeInOut); + _previousTheme = widget.theme; + } + + @override + void didUpdateWidget(AnimatedThemeWrapper oldWidget) { + super.didUpdateWidget(oldWidget); + if (oldWidget.theme != widget.theme) { + _previousTheme = oldWidget.theme; + _controller.forward(from: 0); + } + } + + @override + void dispose() { + _controller.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return AnimatedBuilder( + animation: _animation, + builder: (context, child) { + return Theme( + data: ThemeData.lerp( + _previousTheme ?? widget.theme, + widget.theme, + _animation.value, + ), + child: widget.child, + ); + }, + ); + } +} + +/// Theme transition widget for individual components +class ThemeTransition extends StatelessWidget { + final Widget child; + final Duration duration; + + const ThemeTransition({ + super.key, + required this.child, + this.duration = const Duration(milliseconds: 200), + }); + + @override + Widget build(BuildContext context) { + return child.animate().fadeIn(duration: duration); + } +} + +// Typography, spacing, and design token classes are now in theme_extensions.dart for consistency diff --git a/lib/shared/theme/theme_extensions.dart b/lib/shared/theme/theme_extensions.dart new file mode 100644 index 0000000..6425af6 --- /dev/null +++ b/lib/shared/theme/theme_extensions.dart @@ -0,0 +1,1808 @@ +import 'package:flutter/material.dart'; +import 'package:google_fonts/google_fonts.dart'; +import 'app_theme.dart'; + +/// Extended theme data for consistent styling across the app +@immutable +class ConduitThemeExtension extends ThemeExtension { + // Chat-specific colors + final Color chatBubbleUser; + final Color chatBubbleAssistant; + final Color chatBubbleUserText; + final Color chatBubbleAssistantText; + final Color chatBubbleUserBorder; + final Color chatBubbleAssistantBorder; + + // Input and form colors + final Color inputBackground; + final Color inputBorder; + final Color inputBorderFocused; + final Color inputText; + final Color inputPlaceholder; + final Color inputError; + + // Card and surface colors + final Color cardBackground; + final Color cardBorder; + final Color cardShadow; + final Color surfaceBackground; + final Color surfaceContainer; + final Color surfaceContainerHighest; + + // Interactive element colors + final Color buttonPrimary; + final Color buttonPrimaryText; + final Color buttonSecondary; + final Color buttonSecondaryText; + final Color buttonDisabled; + final Color buttonDisabledText; + + // Status and feedback colors + final Color success; + final Color successBackground; + final Color error; + final Color errorBackground; + final Color warning; + final Color warningBackground; + final Color info; + final Color infoBackground; + + // Navigation and UI element colors + final Color dividerColor; + final Color navigationBackground; + final Color navigationSelected; + final Color navigationUnselected; + final Color navigationSelectedBackground; + + // Loading and animation colors + final Color shimmerBase; + final Color shimmerHighlight; + final Color loadingIndicator; + + // Text colors + final Color textPrimary; + final Color textSecondary; + final Color textTertiary; + final Color textInverse; + final Color textDisabled; + + // Icon colors + final Color iconPrimary; + final Color iconSecondary; + final Color iconDisabled; + final Color iconInverse; + + // Typography styles + final TextStyle? headingLarge; + final TextStyle? headingMedium; + final TextStyle? headingSmall; + final TextStyle? bodyLarge; + final TextStyle? bodyMedium; + final TextStyle? bodySmall; + final TextStyle? caption; + final TextStyle? label; + final TextStyle? code; + + const ConduitThemeExtension({ + // Chat-specific colors + required this.chatBubbleUser, + required this.chatBubbleAssistant, + required this.chatBubbleUserText, + required this.chatBubbleAssistantText, + required this.chatBubbleUserBorder, + required this.chatBubbleAssistantBorder, + + // Input and form colors + required this.inputBackground, + required this.inputBorder, + required this.inputBorderFocused, + required this.inputText, + required this.inputPlaceholder, + required this.inputError, + + // Card and surface colors + required this.cardBackground, + required this.cardBorder, + required this.cardShadow, + required this.surfaceBackground, + required this.surfaceContainer, + required this.surfaceContainerHighest, + + // Interactive element colors + required this.buttonPrimary, + required this.buttonPrimaryText, + required this.buttonSecondary, + required this.buttonSecondaryText, + required this.buttonDisabled, + required this.buttonDisabledText, + + // Status and feedback colors + required this.success, + required this.successBackground, + required this.error, + required this.errorBackground, + required this.warning, + required this.warningBackground, + required this.info, + required this.infoBackground, + + // Navigation and UI element colors + required this.dividerColor, + required this.navigationBackground, + required this.navigationSelected, + required this.navigationUnselected, + required this.navigationSelectedBackground, + + // Loading and animation colors + required this.shimmerBase, + required this.shimmerHighlight, + required this.loadingIndicator, + + // Text colors + required this.textPrimary, + required this.textSecondary, + required this.textTertiary, + required this.textInverse, + required this.textDisabled, + + // Icon colors + required this.iconPrimary, + required this.iconSecondary, + required this.iconDisabled, + required this.iconInverse, + + // Typography styles + this.headingLarge, + this.headingMedium, + this.headingSmall, + this.bodyLarge, + this.bodyMedium, + this.bodySmall, + this.caption, + this.label, + this.code, + }); + + @override + ConduitThemeExtension copyWith({ + // Chat-specific colors + Color? chatBubbleUser, + Color? chatBubbleAssistant, + Color? chatBubbleUserText, + Color? chatBubbleAssistantText, + Color? chatBubbleUserBorder, + Color? chatBubbleAssistantBorder, + + // Input and form colors + Color? inputBackground, + Color? inputBorder, + Color? inputBorderFocused, + Color? inputText, + Color? inputPlaceholder, + Color? inputError, + + // Card and surface colors + Color? cardBackground, + Color? cardBorder, + Color? cardShadow, + Color? surfaceBackground, + Color? surfaceContainer, + Color? surfaceContainerHighest, + + // Interactive element colors + Color? buttonPrimary, + Color? buttonPrimaryText, + Color? buttonSecondary, + Color? buttonSecondaryText, + Color? buttonDisabled, + Color? buttonDisabledText, + + // Status and feedback colors + Color? success, + Color? successBackground, + Color? error, + Color? errorBackground, + Color? warning, + Color? warningBackground, + Color? info, + Color? infoBackground, + + // Navigation and UI element colors + Color? dividerColor, + Color? navigationBackground, + Color? navigationSelected, + Color? navigationUnselected, + Color? navigationSelectedBackground, + + // Loading and animation colors + Color? shimmerBase, + Color? shimmerHighlight, + Color? loadingIndicator, + + // Text colors + Color? textPrimary, + Color? textSecondary, + Color? textTertiary, + Color? textInverse, + Color? textDisabled, + + // Icon colors + Color? iconPrimary, + Color? iconSecondary, + Color? iconDisabled, + Color? iconInverse, + + // Typography styles + TextStyle? headingLarge, + TextStyle? headingMedium, + TextStyle? headingSmall, + TextStyle? bodyLarge, + TextStyle? bodyMedium, + TextStyle? bodySmall, + TextStyle? caption, + TextStyle? label, + TextStyle? code, + }) { + return ConduitThemeExtension( + // Chat-specific colors + chatBubbleUser: chatBubbleUser ?? this.chatBubbleUser, + chatBubbleAssistant: chatBubbleAssistant ?? this.chatBubbleAssistant, + chatBubbleUserText: chatBubbleUserText ?? this.chatBubbleUserText, + chatBubbleAssistantText: + chatBubbleAssistantText ?? this.chatBubbleAssistantText, + chatBubbleUserBorder: chatBubbleUserBorder ?? this.chatBubbleUserBorder, + chatBubbleAssistantBorder: + chatBubbleAssistantBorder ?? this.chatBubbleAssistantBorder, + + // Input and form colors + inputBackground: inputBackground ?? this.inputBackground, + inputBorder: inputBorder ?? this.inputBorder, + inputBorderFocused: inputBorderFocused ?? this.inputBorderFocused, + inputText: inputText ?? this.inputText, + inputPlaceholder: inputPlaceholder ?? this.inputPlaceholder, + inputError: inputError ?? this.inputError, + + // Card and surface colors + cardBackground: cardBackground ?? this.cardBackground, + cardBorder: cardBorder ?? this.cardBorder, + cardShadow: cardShadow ?? this.cardShadow, + surfaceBackground: surfaceBackground ?? this.surfaceBackground, + surfaceContainer: surfaceContainer ?? this.surfaceContainer, + surfaceContainerHighest: + surfaceContainerHighest ?? this.surfaceContainerHighest, + + // Interactive element colors + buttonPrimary: buttonPrimary ?? this.buttonPrimary, + buttonPrimaryText: buttonPrimaryText ?? this.buttonPrimaryText, + buttonSecondary: buttonSecondary ?? this.buttonSecondary, + buttonSecondaryText: buttonSecondaryText ?? this.buttonSecondaryText, + buttonDisabled: buttonDisabled ?? this.buttonDisabled, + buttonDisabledText: buttonDisabledText ?? this.buttonDisabledText, + + // Status and feedback colors + success: success ?? this.success, + successBackground: successBackground ?? this.successBackground, + error: error ?? this.error, + errorBackground: errorBackground ?? this.errorBackground, + warning: warning ?? this.warning, + warningBackground: warningBackground ?? this.warningBackground, + info: info ?? this.info, + infoBackground: infoBackground ?? this.infoBackground, + + // Navigation and UI element colors + dividerColor: dividerColor ?? this.dividerColor, + navigationBackground: navigationBackground ?? this.navigationBackground, + navigationSelected: navigationSelected ?? this.navigationSelected, + navigationUnselected: navigationUnselected ?? this.navigationUnselected, + navigationSelectedBackground: + navigationSelectedBackground ?? this.navigationSelectedBackground, + + // Loading and animation colors + shimmerBase: shimmerBase ?? this.shimmerBase, + shimmerHighlight: shimmerHighlight ?? this.shimmerHighlight, + loadingIndicator: loadingIndicator ?? this.loadingIndicator, + + // Text colors + textPrimary: textPrimary ?? this.textPrimary, + textSecondary: textSecondary ?? this.textSecondary, + textTertiary: textTertiary ?? this.textTertiary, + textInverse: textInverse ?? this.textInverse, + textDisabled: textDisabled ?? this.textDisabled, + + // Icon colors + iconPrimary: iconPrimary ?? this.iconPrimary, + iconSecondary: iconSecondary ?? this.iconSecondary, + iconDisabled: iconDisabled ?? this.iconDisabled, + iconInverse: iconInverse ?? this.iconInverse, + + // Typography styles + headingLarge: headingLarge ?? this.headingLarge, + headingMedium: headingMedium ?? this.headingMedium, + headingSmall: headingSmall ?? this.headingSmall, + bodyLarge: bodyLarge ?? this.bodyLarge, + bodyMedium: bodyMedium ?? this.bodyMedium, + bodySmall: bodySmall ?? this.bodySmall, + caption: caption ?? this.caption, + label: label ?? this.label, + code: code ?? this.code, + ); + } + + @override + ConduitThemeExtension lerp( + ThemeExtension? other, + double t, + ) { + if (other is! ConduitThemeExtension) { + return this; + } + return ConduitThemeExtension( + // Chat-specific colors + chatBubbleUser: Color.lerp(chatBubbleUser, other.chatBubbleUser, t)!, + chatBubbleAssistant: Color.lerp( + chatBubbleAssistant, + other.chatBubbleAssistant, + t, + )!, + chatBubbleUserText: Color.lerp( + chatBubbleUserText, + other.chatBubbleUserText, + t, + )!, + chatBubbleAssistantText: Color.lerp( + chatBubbleAssistantText, + other.chatBubbleAssistantText, + t, + )!, + chatBubbleUserBorder: Color.lerp( + chatBubbleUserBorder, + other.chatBubbleUserBorder, + t, + )!, + chatBubbleAssistantBorder: Color.lerp( + chatBubbleAssistantBorder, + other.chatBubbleAssistantBorder, + t, + )!, + + // Input and form colors + inputBackground: Color.lerp(inputBackground, other.inputBackground, t)!, + inputBorder: Color.lerp(inputBorder, other.inputBorder, t)!, + inputBorderFocused: Color.lerp( + inputBorderFocused, + other.inputBorderFocused, + t, + )!, + inputText: Color.lerp(inputText, other.inputText, t)!, + inputPlaceholder: Color.lerp( + inputPlaceholder, + other.inputPlaceholder, + t, + )!, + inputError: Color.lerp(inputError, other.inputError, t)!, + + // Card and surface colors + cardBackground: Color.lerp(cardBackground, other.cardBackground, t)!, + cardBorder: Color.lerp(cardBorder, other.cardBorder, t)!, + cardShadow: Color.lerp(cardShadow, other.cardShadow, t)!, + surfaceBackground: Color.lerp( + surfaceBackground, + other.surfaceBackground, + t, + )!, + surfaceContainer: Color.lerp( + surfaceContainer, + other.surfaceContainer, + t, + )!, + surfaceContainerHighest: Color.lerp( + surfaceContainerHighest, + other.surfaceContainerHighest, + t, + )!, + + // Interactive element colors + buttonPrimary: Color.lerp(buttonPrimary, other.buttonPrimary, t)!, + buttonPrimaryText: Color.lerp( + buttonPrimaryText, + other.buttonPrimaryText, + t, + )!, + buttonSecondary: Color.lerp(buttonSecondary, other.buttonSecondary, t)!, + buttonSecondaryText: Color.lerp( + buttonSecondaryText, + other.buttonSecondaryText, + t, + )!, + buttonDisabled: Color.lerp(buttonDisabled, other.buttonDisabled, t)!, + buttonDisabledText: Color.lerp( + buttonDisabledText, + other.buttonDisabledText, + t, + )!, + + // Status and feedback colors + success: Color.lerp(success, other.success, t)!, + successBackground: Color.lerp( + successBackground, + other.successBackground, + t, + )!, + error: Color.lerp(error, other.error, t)!, + errorBackground: Color.lerp(errorBackground, other.errorBackground, t)!, + warning: Color.lerp(warning, other.warning, t)!, + warningBackground: Color.lerp( + warningBackground, + other.warningBackground, + t, + )!, + info: Color.lerp(info, other.info, t)!, + infoBackground: Color.lerp(infoBackground, other.infoBackground, t)!, + + // Navigation and UI element colors + dividerColor: Color.lerp(dividerColor, other.dividerColor, t)!, + navigationBackground: Color.lerp( + navigationBackground, + other.navigationBackground, + t, + )!, + navigationSelected: Color.lerp( + navigationSelected, + other.navigationSelected, + t, + )!, + navigationUnselected: Color.lerp( + navigationUnselected, + other.navigationUnselected, + t, + )!, + navigationSelectedBackground: Color.lerp( + navigationSelectedBackground, + other.navigationSelectedBackground, + t, + )!, + + // Loading and animation colors + shimmerBase: Color.lerp(shimmerBase, other.shimmerBase, t)!, + shimmerHighlight: Color.lerp( + shimmerHighlight, + other.shimmerHighlight, + t, + )!, + loadingIndicator: Color.lerp( + loadingIndicator, + other.loadingIndicator, + t, + )!, + + // Text colors + textPrimary: Color.lerp(textPrimary, other.textPrimary, t)!, + textSecondary: Color.lerp(textSecondary, other.textSecondary, t)!, + textTertiary: Color.lerp(textTertiary, other.textTertiary, t)!, + textInverse: Color.lerp(textInverse, other.textInverse, t)!, + textDisabled: Color.lerp(textDisabled, other.textDisabled, t)!, + + // Icon colors + iconPrimary: Color.lerp(iconPrimary, other.iconPrimary, t)!, + iconSecondary: Color.lerp(iconSecondary, other.iconSecondary, t)!, + iconDisabled: Color.lerp(iconDisabled, other.iconDisabled, t)!, + iconInverse: Color.lerp(iconInverse, other.iconInverse, t)!, + + // Typography styles + headingLarge: TextStyle.lerp(headingLarge, other.headingLarge, t), + headingMedium: TextStyle.lerp(headingMedium, other.headingMedium, t), + headingSmall: TextStyle.lerp(headingSmall, other.headingSmall, t), + bodyLarge: TextStyle.lerp(bodyLarge, other.bodyLarge, t), + bodyMedium: TextStyle.lerp(bodyMedium, other.bodyMedium, t), + bodySmall: TextStyle.lerp(bodySmall, other.bodySmall, t), + caption: TextStyle.lerp(caption, other.caption, t), + label: TextStyle.lerp(label, other.label, t), + code: TextStyle.lerp(code, other.code, t), + ); + } + + /// Dark theme extension + static const ConduitThemeExtension dark = ConduitThemeExtension( + // Chat-specific colors - Enhanced for production-grade look + chatBubbleUser: AppTheme.brandPrimary, + chatBubbleAssistant: Color(0xFF0E1010), + chatBubbleUserText: AppTheme.neutral50, + chatBubbleAssistantText: AppTheme.neutral50, + chatBubbleUserBorder: AppTheme.brandPrimaryDark, + chatBubbleAssistantBorder: Color(0xFF1A1D1C), + // Input and form colors + inputBackground: Color(0xFF141615), + inputBorder: AppTheme.neutral600, + inputBorderFocused: AppTheme.brandPrimary, + inputText: AppTheme.neutral50, + inputPlaceholder: AppTheme.neutral400, + inputError: AppTheme.error, + + // Card and surface colors - Enhanced depth and hierarchy + cardBackground: Color(0xFF0C0F0E), + cardBorder: Color(0xFF151918), + cardShadow: AppTheme.neutral900, + surfaceBackground: Color(0xFF0A0D0C), + surfaceContainer: Color(0xFF0C0F0E), + surfaceContainerHighest: Color(0xFF121514), + + // Interactive element colors - More vibrant and accessible + buttonPrimary: AppTheme.brandPrimary, + buttonPrimaryText: AppTheme.neutral50, + buttonSecondary: Color(0xFF151918), + buttonSecondaryText: AppTheme.neutral50, + buttonDisabled: AppTheme.neutral600, + buttonDisabledText: AppTheme.neutral400, + + // Status and feedback colors - Enhanced visibility + success: Color(0xFF22C55E), + successBackground: Color(0xFF14532D), + error: Color(0xFFEF4444), + errorBackground: Color(0xFF7F1D1D), + warning: Color(0xFFF59E0B), + warningBackground: Color(0xFF7C2D12), + info: Color(0xFF38BDF8), + infoBackground: Color(0xFF0C4A6E), + + // Navigation and UI element colors - Enhanced contrast + dividerColor: Color(0xFF1A1D1C), + navigationBackground: Color(0xFF0A0D0C), + navigationSelected: AppTheme.brandPrimary, + navigationUnselected: AppTheme.neutral400, + navigationSelectedBackground: AppTheme.brandPrimary, + + // Loading and animation colors - Enhanced visibility + shimmerBase: Color(0xFF121514), + shimmerHighlight: Color(0xFF1A1D1C), + loadingIndicator: AppTheme.brandPrimary, + // Text colors - Enhanced hierarchy + textPrimary: AppTheme.neutral50, + textSecondary: Color(0xFFBAC2C0), + textTertiary: AppTheme.neutral400, + textInverse: AppTheme.neutral900, + textDisabled: AppTheme.neutral600, + + // Icon colors - Enhanced visibility + iconPrimary: AppTheme.neutral50, + iconSecondary: Color(0xFFA0A8A5), + iconDisabled: AppTheme.neutral600, + iconInverse: AppTheme.neutral900, + + // Typography styles + headingLarge: TextStyle( + fontSize: AppTypography.displaySmall, + fontWeight: FontWeight.w700, + color: AppTheme.neutral50, + height: 1.2, + ), + headingMedium: TextStyle( + fontSize: AppTypography.headlineLarge, + fontWeight: FontWeight.w600, + color: AppTheme.neutral50, + height: 1.3, + ), + headingSmall: TextStyle( + fontSize: AppTypography.headlineSmall, + fontWeight: FontWeight.w600, + color: AppTheme.neutral50, + height: 1.4, + ), + bodyLarge: TextStyle( + fontSize: AppTypography.bodyLarge, + fontWeight: FontWeight.w400, + color: AppTheme.neutral50, + height: 1.5, + ), + bodyMedium: TextStyle( + fontSize: AppTypography.bodyMedium, + fontWeight: FontWeight.w400, + color: AppTheme.neutral50, + height: 1.5, + ), + bodySmall: TextStyle( + fontSize: AppTypography.bodySmall, + fontWeight: FontWeight.w400, + color: Color(0xFFD1D5DB), // Enhanced contrast + height: 1.4, + ), + caption: TextStyle( + fontSize: AppTypography.labelMedium, + fontWeight: FontWeight.w500, + color: AppTheme.neutral300, + height: 1.3, + letterSpacing: 0.5, + ), + label: TextStyle( + fontSize: AppTypography.labelLarge, + fontWeight: FontWeight.w500, + color: Color(0xFFD1D5DB), // Enhanced contrast + height: 1.3, + ), + code: TextStyle( + fontSize: AppTypography.bodySmall, + fontWeight: FontWeight.w400, + color: Color(0xFFD1D5DB), // Enhanced contrast + height: 1.4, + fontFamily: AppTypography.monospaceFontFamily, + ), + ); + + /// Light theme extension + static const ConduitThemeExtension light = ConduitThemeExtension( + // Chat-specific colors - Enhanced for production-grade look + chatBubbleUser: AppTheme.brandPrimary, + chatBubbleAssistant: Color(0xFFF7F7F7), + chatBubbleUserText: AppTheme.neutral50, + chatBubbleAssistantText: Color(0xFF1C1C1C), + chatBubbleUserBorder: AppTheme.brandPrimaryDark, + chatBubbleAssistantBorder: Color(0xFFE7E7E7), + // Input and form colors + inputBackground: AppTheme.neutral50, + inputBorder: AppTheme.neutral200, + inputBorderFocused: AppTheme.brandPrimary, + inputText: AppTheme.neutral900, + inputPlaceholder: AppTheme.neutral500, + inputError: AppTheme.error, + + // Card and surface colors - Enhanced depth and hierarchy + cardBackground: AppTheme.neutral50, + cardBorder: Color(0xFFE7E7E7), + cardShadow: Color(0xFFF3F4F6), + surfaceBackground: AppTheme.neutral50, + surfaceContainer: Color(0xFFF7F7F7), + surfaceContainerHighest: Color(0xFFF0F1F1), + // Interactive element colors - More vibrant and accessible + buttonPrimary: AppTheme.brandPrimary, + buttonPrimaryText: AppTheme.neutral50, + buttonSecondary: Color(0xFFF0F1F1), + buttonSecondaryText: Color(0xFF1C1C1C), + buttonDisabled: AppTheme.neutral300, + buttonDisabledText: AppTheme.neutral500, + + // Status and feedback colors - Enhanced visibility + success: Color(0xFF16A34A), + successBackground: Color(0xFFEFFBF3), + error: Color(0xFFDC2626), + errorBackground: Color(0xFFFDECEC), + warning: Color(0xFFD97706), + warningBackground: Color(0xFFFEF6E7), + info: Color(0xFF0284C7), + infoBackground: Color(0xFFE8F4FD), + + // Navigation and UI element colors - Enhanced contrast + dividerColor: Color(0xFFE7E7E7), + navigationBackground: AppTheme.neutral50, + navigationSelected: AppTheme.brandPrimary, + navigationUnselected: AppTheme.neutral600, + navigationSelectedBackground: AppTheme.brandPrimary, + + // Loading and animation colors - Enhanced visibility + shimmerBase: Color(0xFFF3F4F6), + shimmerHighlight: AppTheme.neutral50, + loadingIndicator: AppTheme.brandPrimary, + // Text colors - Enhanced hierarchy + textPrimary: Color(0xFF1C1C1C), + textSecondary: Color(0xFF3A3F3E), + textTertiary: AppTheme.neutral500, + textInverse: AppTheme.neutral50, + textDisabled: AppTheme.neutral400, + + // Icon colors - Enhanced visibility + iconPrimary: Color(0xFF1C1C1C), + iconSecondary: Color(0xFF666C6A), + iconDisabled: AppTheme.neutral400, + iconInverse: AppTheme.neutral50, + + // Typography styles + headingLarge: TextStyle( + fontSize: AppTypography.displaySmall, + fontWeight: FontWeight.w700, + color: Color(0xFF111827), // Better contrast + height: 1.2, + ), + headingMedium: TextStyle( + fontSize: AppTypography.headlineLarge, + fontWeight: FontWeight.w600, + color: Color(0xFF111827), // Better contrast + height: 1.3, + ), + headingSmall: TextStyle( + fontSize: AppTypography.headlineSmall, + fontWeight: FontWeight.w600, + color: Color(0xFF111827), // Better contrast + height: 1.4, + ), + bodyLarge: TextStyle( + fontSize: AppTypography.bodyLarge, + fontWeight: FontWeight.w400, + color: Color(0xFF111827), // Better contrast + height: 1.5, + ), + bodyMedium: TextStyle( + fontSize: AppTypography.bodyMedium, + fontWeight: FontWeight.w400, + color: Color(0xFF374151), // Better contrast + height: 1.5, + ), + bodySmall: TextStyle( + fontSize: AppTypography.bodySmall, + fontWeight: FontWeight.w400, + color: Color(0xFF6B7280), // Better contrast + height: 1.4, + ), + caption: TextStyle( + fontSize: AppTypography.labelMedium, + fontWeight: FontWeight.w500, + color: AppTheme.neutral500, + height: 1.3, + letterSpacing: 0.5, + ), + label: TextStyle( + fontSize: AppTypography.labelLarge, + fontWeight: FontWeight.w500, + color: Color(0xFF374151), // Better contrast + height: 1.3, + ), + code: TextStyle( + fontSize: AppTypography.bodySmall, + fontWeight: FontWeight.w400, + color: Color(0xFF374151), // Better contrast + height: 1.4, + fontFamily: AppTypography.monospaceFontFamily, + ), + ); + + // Aurora palette: original, cool cyan-teal with midnight accents + static const ConduitThemeExtension auroraDark = ConduitThemeExtension( + // Chat-specific colors + chatBubbleUser: Color(0xFF0EA5A5), + chatBubbleAssistant: Color(0xFF111827), + chatBubbleUserText: AppTheme.neutral50, + chatBubbleAssistantText: AppTheme.neutral50, + chatBubbleUserBorder: Color(0xFF0EA5A5), + chatBubbleAssistantBorder: Color(0xFF1F2937), + // Input and form colors + inputBackground: AppTheme.neutral700, + inputBorder: AppTheme.neutral600, + inputBorderFocused: Color(0xFF06B6D4), + inputText: AppTheme.neutral50, + inputPlaceholder: AppTheme.neutral400, + inputError: AppTheme.error, + // Card and surface colors + cardBackground: Color(0xFF0B1220), + cardBorder: Color(0xFF1F2A37), + cardShadow: AppTheme.neutral900, + surfaceBackground: Color(0xFF0A0F1A), + surfaceContainer: Color(0xFF0F172A), + surfaceContainerHighest: Color(0xFF111827), + // Interactive element colors + buttonPrimary: Color(0xFF06B6D4), + buttonPrimaryText: AppTheme.neutral50, + buttonSecondary: Color(0xFF1E293B), + buttonSecondaryText: AppTheme.neutral50, + buttonDisabled: AppTheme.neutral600, + buttonDisabledText: AppTheme.neutral400, + // Status and feedback colors + success: Color(0xFF22C55E), + successBackground: Color(0xFF14532D), + error: Color(0xFFEF4444), + errorBackground: Color(0xFF7F1D1D), + warning: Color(0xFFF59E0B), + warningBackground: Color(0xFF7C2D12), + info: Color(0xFF38BDF8), + infoBackground: Color(0xFF0C4A6E), + // Navigation and UI element colors + dividerColor: Color(0xFF334155), + navigationBackground: Color(0xFF0B1220), + navigationSelected: Color(0xFF06B6D4), + navigationUnselected: AppTheme.neutral400, + navigationSelectedBackground: Color(0xFF06B6D4), + // Loading and animation colors + shimmerBase: Color(0xFF0F172A), + shimmerHighlight: Color(0xFF1F2937), + loadingIndicator: Color(0xFF06B6D4), + // Text colors + textPrimary: AppTheme.neutral50, + textSecondary: Color(0xFFE5E7EB), + textTertiary: AppTheme.neutral400, + textInverse: AppTheme.neutral900, + textDisabled: AppTheme.neutral600, + // Icon colors + iconPrimary: AppTheme.neutral50, + iconSecondary: Color(0xFF94A3B8), + iconDisabled: AppTheme.neutral600, + iconInverse: AppTheme.neutral900, + // Typography styles (reuse base sizes with aurora accent implied by colors) + headingLarge: null, + headingMedium: null, + headingSmall: null, + bodyLarge: null, + bodyMedium: null, + bodySmall: null, + caption: null, + label: null, + code: null, + ); + + static const ConduitThemeExtension auroraLight = ConduitThemeExtension( + // Chat-specific colors + chatBubbleUser: Color(0xFF0EA5A5), + chatBubbleAssistant: Color(0xFFF8FAFC), + chatBubbleUserText: AppTheme.neutral50, + chatBubbleAssistantText: Color(0xFF0F172A), + chatBubbleUserBorder: Color(0xFF0EA5A5), + chatBubbleAssistantBorder: Color(0xFFE2E8F0), + // Input and form colors + inputBackground: AppTheme.neutral50, + inputBorder: Color(0xFFE2E8F0), + inputBorderFocused: Color(0xFF06B6D4), + inputText: Color(0xFF0F172A), + inputPlaceholder: AppTheme.neutral500, + inputError: AppTheme.error, + // Card and surface colors + cardBackground: AppTheme.neutral50, + cardBorder: Color(0xFFE2E8F0), + cardShadow: Color(0xFFF1F5F9), + surfaceBackground: AppTheme.neutral50, + surfaceContainer: Color(0xFFF8FAFC), + surfaceContainerHighest: Color(0xFFF1F5F9), + // Interactive element colors + buttonPrimary: Color(0xFF06B6D4), + buttonPrimaryText: AppTheme.neutral50, + buttonSecondary: Color(0xFFE2E8F0), + buttonSecondaryText: Color(0xFF0F172A), + buttonDisabled: AppTheme.neutral300, + buttonDisabledText: AppTheme.neutral500, + // Status and feedback colors + success: Color(0xFF16A34A), + successBackground: Color(0xFFEFFBF3), + error: Color(0xFFDC2626), + errorBackground: Color(0xFFFDECEC), + warning: Color(0xFFD97706), + warningBackground: Color(0xFFFEF6E7), + info: Color(0xFF0284C7), + infoBackground: Color(0xFFE8F4FD), + // Navigation and UI element colors + dividerColor: Color(0xFFE2E8F0), + navigationBackground: AppTheme.neutral50, + navigationSelected: Color(0xFF06B6D4), + navigationUnselected: AppTheme.neutral600, + navigationSelectedBackground: Color(0xFF06B6D4), + // Loading and animation colors + shimmerBase: Color(0xFFF1F5F9), + shimmerHighlight: AppTheme.neutral50, + loadingIndicator: Color(0xFF06B6D4), + // Text colors + textPrimary: Color(0xFF0F172A), + textSecondary: Color(0xFF334155), + textTertiary: AppTheme.neutral500, + textInverse: AppTheme.neutral50, + textDisabled: AppTheme.neutral400, + // Icon colors + iconPrimary: Color(0xFF0F172A), + iconSecondary: Color(0xFF64748B), + iconDisabled: AppTheme.neutral400, + iconInverse: AppTheme.neutral50, + // Typography styles (inherit from base) + headingLarge: null, + headingMedium: null, + headingSmall: null, + bodyLarge: null, + bodyMedium: null, + bodySmall: null, + caption: null, + label: null, + code: null, + ); + + // Serenity palette: soft sage greens with gentle neutrals + static const ConduitThemeExtension serenityDark = ConduitThemeExtension( + // Chat-specific colors + chatBubbleUser: Color(0xFF4F9D88), + chatBubbleAssistant: Color(0xFF0A100E), + chatBubbleUserText: Color(0xFFD7E3DE), + chatBubbleAssistantText: Color(0xFFD7E3DE), + chatBubbleUserBorder: Color(0xFF15201B), + chatBubbleAssistantBorder: Color(0xFF121A16), + // Input and form colors + inputBackground: Color(0xFF0A100E), + inputBorder: Color(0xFF15201B), + inputBorderFocused: Color(0xFF4F9D88), + inputText: Color(0xFFD7E3DE), + inputPlaceholder: Color(0xFF7C8A84), + inputError: AppTheme.error, + // Card and surface colors + cardBackground: Color(0xFF0A100E), + cardBorder: Color(0xFF121A16), + cardShadow: AppTheme.neutral900, + surfaceBackground: Color(0xFF080D0B), + surfaceContainer: Color(0xFF0A100E), + surfaceContainerHighest: Color(0xFF0D1411), + // Interactive element colors + buttonPrimary: Color(0xFF4F9D88), + buttonPrimaryText: Color(0xFFD7E3DE), + buttonSecondary: Color(0xFF101613), + buttonSecondaryText: Color(0xFFD7E3DE), + buttonDisabled: AppTheme.neutral600, + buttonDisabledText: AppTheme.neutral400, + // Status and feedback colors + success: Color(0xFF22C55E), + successBackground: Color(0xFF14532D), + error: Color(0xFFEF4444), + errorBackground: Color(0xFF7F1D1D), + warning: Color(0xFFF59E0B), + warningBackground: Color(0xFF7C2D12), + info: Color(0xFF38BDF8), + infoBackground: Color(0xFF0C4A6E), + // Navigation and UI element colors + dividerColor: Color(0xFF15201B), + navigationBackground: Color(0xFF080D0B), + navigationSelected: Color(0xFF4F9D88), + navigationUnselected: AppTheme.neutral400, + navigationSelectedBackground: Color(0xFF4F9D88), + // Loading and animation colors + shimmerBase: Color(0xFF0A100E), + shimmerHighlight: Color(0xFF121A16), + loadingIndicator: Color(0xFF4F9D88), + // Text colors + textPrimary: Color(0xFFD7E3DE), + textSecondary: Color(0xFFA8B6AF), + textTertiary: AppTheme.neutral400, + textInverse: AppTheme.neutral900, + textDisabled: AppTheme.neutral600, + // Icon colors + iconPrimary: Color(0xFFD7E3DE), + iconSecondary: Color(0xFFA3B3AD), + iconDisabled: AppTheme.neutral600, + iconInverse: AppTheme.neutral900, + // Typography styles (inherit from base) + headingLarge: null, + headingMedium: null, + headingSmall: null, + bodyLarge: null, + bodyMedium: null, + bodySmall: null, + caption: null, + label: null, + code: null, + ); + + static const ConduitThemeExtension serenityLight = ConduitThemeExtension( + // Chat-specific colors + chatBubbleUser: Color(0xFF5FAE97), + chatBubbleAssistant: Color(0xFFF7FAF8), + chatBubbleUserText: AppTheme.neutral50, + chatBubbleAssistantText: Color(0xFF0F1A14), + chatBubbleUserBorder: Color(0xFF5FAE97), + chatBubbleAssistantBorder: Color(0xFFD5E3DB), + // Input and form colors + inputBackground: Color(0xFFF7FAF8), + inputBorder: Color(0xFFD5E3DB), + inputBorderFocused: Color(0xFF4F9D88), + inputText: Color(0xFF0F1A14), + inputPlaceholder: AppTheme.neutral500, + inputError: AppTheme.error, + // Card and surface colors + cardBackground: Color(0xFFFAFBF9), + cardBorder: Color(0xFFD9E2DB), + cardShadow: Color(0xFFEEF2EE), + surfaceBackground: Color(0xFFF7FAF8), + surfaceContainer: Color(0xFFEFF4F1), + surfaceContainerHighest: Color(0xFFE6EEEA), + // Interactive element colors + buttonPrimary: Color(0xFF4F9D88), + buttonPrimaryText: AppTheme.neutral50, + buttonSecondary: Color(0xFFEEF2EE), + buttonSecondaryText: Color(0xFF1A241E), + buttonDisabled: AppTheme.neutral300, + buttonDisabledText: AppTheme.neutral500, + // Status and feedback colors + success: Color(0xFF16A34A), + successBackground: Color(0xFFEFFBF3), + error: Color(0xFFDC2626), + errorBackground: Color(0xFFFDECEC), + warning: Color(0xFFD97706), + warningBackground: Color(0xFFFEF6E7), + info: Color(0xFF0284C7), + infoBackground: Color(0xFFE8F4FD), + // Navigation and UI element colors + dividerColor: Color(0xFFD9E2DB), + navigationBackground: Color(0xFFF7FAF8), + navigationSelected: Color(0xFF4F9D88), + navigationUnselected: AppTheme.neutral600, + navigationSelectedBackground: Color(0xFF4F9D88), + // Loading and animation colors + shimmerBase: Color(0xFFEFF4F1), + shimmerHighlight: AppTheme.neutral50, + loadingIndicator: Color(0xFF4F9D88), + // Text colors + textPrimary: Color(0xFF0F1A14), + textSecondary: Color(0xFF2D3A34), + textTertiary: AppTheme.neutral500, + textInverse: AppTheme.neutral50, + textDisabled: AppTheme.neutral400, + // Icon colors + iconPrimary: Color(0xFF0F1A14), + iconSecondary: Color(0xFF53665C), + iconDisabled: AppTheme.neutral400, + iconInverse: AppTheme.neutral50, + // Typography styles (inherit from base) + headingLarge: null, + headingMedium: null, + headingSmall: null, + bodyLarge: null, + bodyMedium: null, + bodySmall: null, + caption: null, + label: null, + code: null, + ); +} + +/// Extension method to easily access Conduit theme from BuildContext +extension ConduitThemeContext on BuildContext { + ConduitThemeExtension get conduitTheme { + return Theme.of(this).extension() ?? + ConduitThemeExtension.dark; + } +} + +/// Consistent spacing values - Enhanced for production with better hierarchy +class Spacing { + // Base spacing scale (8pt grid system) + static const double xxs = 2.0; + static const double xs = 4.0; + static const double sm = 8.0; + static const double md = 16.0; + static const double lg = 24.0; + static const double xl = 32.0; + static const double xxl = 48.0; + static const double xxxl = 64.0; + + // Enhanced spacing for specific components with better hierarchy + static const double buttonPadding = 16.0; + static const double cardPadding = 20.0; + static const double inputPadding = 16.0; + static const double modalPadding = 24.0; + static const double messagePadding = 16.0; + static const double navigationPadding = 12.0; + static const double listItemPadding = 16.0; + static const double sectionPadding = 24.0; + static const double pagePadding = 20.0; + static const double screenPadding = 16.0; + + // Spacing for different densities with improved hierarchy + static const double compact = 8.0; + static const double comfortable = 16.0; + static const double spacious = 24.0; + static const double extraSpacious = 32.0; + + // Specific component spacing with better consistency + static const double chatBubblePadding = 16.0; + static const double actionButtonPadding = 12.0; + static const double floatingButtonPadding = 16.0; + static const double bottomSheetPadding = 24.0; + static const double dialogPadding = 20.0; + static const double snackbarPadding = 16.0; + + // Layout spacing with improved hierarchy + static const double gridGap = 16.0; + static const double listGap = 12.0; + static const double sectionGap = 32.0; + static const double contentGap = 24.0; + + // Enhanced spacing for better visual hierarchy + static const double micro = 4.0; + static const double small = 8.0; + static const double medium = 16.0; + static const double large = 24.0; + static const double extraLarge = 32.0; + static const double huge = 48.0; + static const double massive = 64.0; + + // Component-specific spacing + static const double iconSpacing = 8.0; + static const double textSpacing = 4.0; + static const double borderSpacing = 1.0; + static const double shadowSpacing = 2.0; +} + +/// Consistent border radius values - Enhanced for production with better hierarchy +class AppBorderRadius { + // Base radius scale + static const double xs = 4.0; + static const double sm = 8.0; + static const double md = 12.0; + static const double lg = 16.0; + static const double xl = 24.0; + static const double round = 999.0; + + // Enhanced radius values for specific components with better hierarchy + static const double button = 12.0; + static const double card = 16.0; + static const double input = 12.0; + static const double modal = 20.0; + static const double messageBubble = 18.0; + static const double navigation = 12.0; + static const double avatar = 50.0; + static const double badge = 20.0; + static const double chip = 16.0; + static const double tooltip = 8.0; + + // Border radius for different sizes with improved hierarchy + static const double small = 6.0; + static const double medium = 12.0; + static const double large = 18.0; + static const double extraLarge = 24.0; + static const double pill = 999.0; + + // Specific component radius with better consistency + static const double chatBubble = 20.0; + static const double actionButton = 14.0; + static const double floatingButton = 28.0; + static const double bottomSheet = 24.0; + static const double dialog = 16.0; + static const double snackbar = 8.0; + + // Enhanced radius values for better visual hierarchy + static const double micro = 2.0; + static const double tiny = 4.0; + static const double standard = 8.0; + static const double comfortable = 12.0; + static const double spacious = 16.0; + static const double extraSpacious = 24.0; + static const double circular = 999.0; +} + +/// Consistent border width values - Enhanced for production +class BorderWidth { + static const double thin = 0.5; + static const double regular = 1.0; + static const double medium = 1.5; + static const double thick = 2.0; + + // Enhanced border widths for better visual hierarchy + static const double micro = 0.5; + static const double small = 1.0; + static const double standard = 1.5; + static const double large = 2.0; + static const double extraLarge = 3.0; +} + +/// Consistent elevation values - Enhanced for production with better hierarchy +class Elevation { + static const double none = 0.0; + static const double low = 2.0; + static const double medium = 4.0; + static const double high = 8.0; + static const double highest = 16.0; + + // Enhanced elevation values for better visual hierarchy + static const double micro = 1.0; + static const double small = 2.0; + static const double standard = 4.0; + static const double large = 8.0; + static const double extraLarge = 16.0; + static const double massive = 24.0; +} + +/// Helper class for consistent shadows - Enhanced for production with better hierarchy +class ConduitShadows { + static List get low => [ + BoxShadow( + color: AppTheme.neutral900.withValues(alpha: 0.08), + blurRadius: 8, + offset: const Offset(0, 2), + spreadRadius: 0, + ), + ]; + + static List get medium => [ + BoxShadow( + color: AppTheme.neutral900.withValues(alpha: 0.12), + blurRadius: 16, + offset: const Offset(0, 4), + spreadRadius: 0, + ), + ]; + + static List get high => [ + BoxShadow( + color: AppTheme.neutral900.withValues(alpha: 0.16), + blurRadius: 24, + offset: const Offset(0, 8), + spreadRadius: 0, + ), + ]; + + static List get glow => [ + BoxShadow( + color: AppTheme.brandPrimary.withValues(alpha: 0.25), + blurRadius: 20, + offset: const Offset(0, 0), + spreadRadius: 0, + ), + ]; + + // Enhanced shadows for specific components with better hierarchy + static List get card => [ + BoxShadow( + color: AppTheme.neutral900.withValues(alpha: 0.06), + blurRadius: 12, + offset: const Offset(0, 3), + spreadRadius: 0, + ), + ]; + + static List get button => [ + BoxShadow( + color: AppTheme.neutral900.withValues(alpha: 0.1), + blurRadius: 6, + offset: const Offset(0, 2), + spreadRadius: 0, + ), + ]; + + static List get modal => [ + BoxShadow( + color: AppTheme.neutral900.withValues(alpha: 0.2), + blurRadius: 32, + offset: const Offset(0, 12), + spreadRadius: 0, + ), + ]; + + static List get navigation => [ + BoxShadow( + color: AppTheme.neutral900.withValues(alpha: 0.08), + blurRadius: 16, + offset: const Offset(0, -2), + spreadRadius: 0, + ), + ]; + + static List get messageBubble => [ + BoxShadow( + color: AppTheme.neutral900.withValues(alpha: 0.04), + blurRadius: 8, + offset: const Offset(0, 1), + spreadRadius: 0, + ), + ]; + + static List get input => [ + BoxShadow( + color: AppTheme.neutral900.withValues(alpha: 0.05), + blurRadius: 4, + offset: const Offset(0, 1), + spreadRadius: 0, + ), + ]; + + // Dark theme specific shadows with better contrast + static List get darkCard => [ + BoxShadow( + color: AppTheme.neutral900.withValues(alpha: 0.3), + blurRadius: 16, + offset: const Offset(0, 4), + spreadRadius: 0, + ), + ]; + + static List get darkModal => [ + BoxShadow( + color: AppTheme.neutral900.withValues(alpha: 0.4), + blurRadius: 40, + offset: const Offset(0, 16), + spreadRadius: 0, + ), + ]; + + // Interactive shadows with better feedback + static List get pressed => [ + BoxShadow( + color: AppTheme.neutral900.withValues(alpha: 0.15), + blurRadius: 4, + offset: const Offset(0, 1), + spreadRadius: 0, + ), + ]; + + static List get hover => [ + BoxShadow( + color: AppTheme.neutral900.withValues(alpha: 0.12), + blurRadius: 12, + offset: const Offset(0, 4), + spreadRadius: 0, + ), + ]; + + // Enhanced shadows for better visual hierarchy + static List get micro => [ + BoxShadow( + color: AppTheme.neutral900.withValues(alpha: 0.04), + blurRadius: 4, + offset: const Offset(0, 1), + spreadRadius: 0, + ), + ]; + + static List get small => [ + BoxShadow( + color: AppTheme.neutral900.withValues(alpha: 0.06), + blurRadius: 8, + offset: const Offset(0, 2), + spreadRadius: 0, + ), + ]; + + static List get standard => [ + BoxShadow( + color: AppTheme.neutral900.withValues(alpha: 0.08), + blurRadius: 12, + offset: const Offset(0, 3), + spreadRadius: 0, + ), + ]; + + static List get large => [ + BoxShadow( + color: AppTheme.neutral900.withValues(alpha: 0.12), + blurRadius: 16, + offset: const Offset(0, 4), + spreadRadius: 0, + ), + ]; + + static List get extraLarge => [ + BoxShadow( + color: AppTheme.neutral900.withValues(alpha: 0.16), + blurRadius: 24, + offset: const Offset(0, 8), + spreadRadius: 0, + ), + ]; +} + +/// Typography scale following Conduit design tokens - Enhanced for production +class AppTypography { + static const String fontFamily = 'Inter'; + static const String monospaceFontFamily = 'SF Mono'; + + // Letter spacing values - Enhanced for better readability + static const double letterSpacingTight = -0.5; + static const double letterSpacingNormal = 0.0; + static const double letterSpacingWide = 0.5; + static const double letterSpacingExtraWide = 1.0; + + // Font sizes - Enhanced scale for better hierarchy + static const double displayLarge = 48; + static const double displayMedium = 36; + static const double displaySmall = 32; + static const double headlineLarge = 28; + static const double headlineMedium = 24; + static const double headlineSmall = 20; + static const double bodyLarge = 18; + static const double bodyMedium = 16; + static const double bodySmall = 14; + static const double labelLarge = 16; + static const double labelMedium = 14; + static const double labelSmall = 12; + + // Text styles following Conduit design - Enhanced for production + static final TextStyle displayLargeStyle = GoogleFonts.inter( + fontSize: displayLarge, + fontWeight: FontWeight.w700, + letterSpacing: -0.8, + height: 1.1, + ); + + static final TextStyle displayMediumStyle = GoogleFonts.inter( + fontSize: displayMedium, + fontWeight: FontWeight.w700, + letterSpacing: -0.6, + height: 1.2, + ); + + static final TextStyle bodyLargeStyle = GoogleFonts.inter( + fontSize: bodyLarge, + fontWeight: FontWeight.w400, + letterSpacing: 0, + height: 1.6, + ); + + static final TextStyle bodyMediumStyle = GoogleFonts.inter( + fontSize: bodyMedium, + fontWeight: FontWeight.w400, + letterSpacing: 0, + height: 1.6, + ); + + static final TextStyle codeStyle = GoogleFonts.sourceCodePro( + fontSize: bodySmall, + fontWeight: FontWeight.w400, + letterSpacing: 0, + height: 1.5, + ); + + // Additional styled text getters for convenience - Enhanced + static TextStyle get headlineLargeStyle => GoogleFonts.inter( + fontSize: headlineLarge, + fontWeight: FontWeight.w700, + letterSpacing: -0.4, + height: 1.3, + ); + + static TextStyle get headlineMediumStyle => GoogleFonts.inter( + fontSize: headlineMedium, + fontWeight: FontWeight.w600, + letterSpacing: -0.2, + height: 1.3, + ); + + static TextStyle get headlineSmallStyle => GoogleFonts.inter( + fontSize: headlineSmall, + fontWeight: FontWeight.w600, + letterSpacing: 0, + height: 1.4, + ); + + static TextStyle get bodySmallStyle => GoogleFonts.inter( + fontSize: bodySmall, + fontWeight: FontWeight.w400, + letterSpacing: 0, + height: 1.5, + ); + + // Enhanced text styles for chat messages + static TextStyle get chatMessageStyle => GoogleFonts.inter( + fontSize: bodyMedium, + fontWeight: FontWeight.w400, + letterSpacing: 0.1, + height: 1.6, + ); + + static TextStyle get chatCodeStyle => GoogleFonts.sourceCodePro( + fontSize: bodySmall, + fontWeight: FontWeight.w400, + letterSpacing: 0, + height: 1.5, + ); + + // Enhanced label styles + static TextStyle get labelStyle => GoogleFonts.inter( + fontSize: labelMedium, + fontWeight: FontWeight.w500, + letterSpacing: 0.2, + height: 1.4, + ); + + // Enhanced caption styles + static TextStyle get captionStyle => GoogleFonts.inter( + fontSize: labelSmall, + fontWeight: FontWeight.w500, + letterSpacing: 0.5, + height: 1.3, + ); + + // Enhanced typography for better hierarchy + static TextStyle get micro => GoogleFonts.inter( + fontSize: 10, + fontWeight: FontWeight.w400, + letterSpacing: 0.1, + height: 1.4, + ); + + static TextStyle get tiny => GoogleFonts.inter( + fontSize: 12, + fontWeight: FontWeight.w400, + letterSpacing: 0.1, + height: 1.4, + ); + + static TextStyle get small => GoogleFonts.inter( + fontSize: 14, + fontWeight: FontWeight.w400, + letterSpacing: 0, + height: 1.5, + ); + + static TextStyle get standard => GoogleFonts.inter( + fontSize: 16, + fontWeight: FontWeight.w400, + letterSpacing: 0, + height: 1.6, + ); + + static TextStyle get large => GoogleFonts.inter( + fontSize: 18, + fontWeight: FontWeight.w400, + letterSpacing: 0, + height: 1.6, + ); + + static TextStyle get extraLarge => GoogleFonts.inter( + fontSize: 20, + fontWeight: FontWeight.w400, + letterSpacing: 0, + height: 1.5, + ); + + static TextStyle get huge => GoogleFonts.inter( + fontSize: 24, + fontWeight: FontWeight.w600, + letterSpacing: -0.2, + height: 1.3, + ); + + static TextStyle get massive => GoogleFonts.inter( + fontSize: 32, + fontWeight: FontWeight.w700, + letterSpacing: -0.4, + height: 1.2, + ); +} + +/// Consistent icon sizes - Enhanced for production with better hierarchy +class IconSize { + static const double xs = 12.0; + static const double sm = 16.0; + static const double md = 20.0; + static const double lg = 24.0; + static const double xl = 32.0; + static const double xxl = 48.0; + + // Enhanced icon sizes for specific components with better hierarchy + static const double button = 20.0; + static const double card = 24.0; + static const double input = 20.0; + static const double modal = 24.0; + static const double message = 18.0; + static const double navigation = 24.0; + static const double avatar = 40.0; + static const double badge = 16.0; + static const double chip = 18.0; + static const double tooltip = 16.0; + + // Icon sizes for different contexts with improved hierarchy + static const double micro = 12.0; + static const double small = 16.0; + static const double medium = 20.0; + static const double large = 24.0; + static const double extraLarge = 32.0; + static const double huge = 48.0; + + // Specific component icon sizes with better consistency + static const double chatBubble = 18.0; + static const double actionButton = 20.0; + static const double floatingButton = 24.0; + static const double bottomSheet = 24.0; + static const double dialog = 24.0; + static const double snackbar = 20.0; + static const double tabBar = 24.0; + static const double appBar = 24.0; + static const double listItem = 20.0; + static const double formField = 20.0; +} + +/// Alpha values for opacity/transparency - Enhanced for production with better hierarchy +class Alpha { + static const double subtle = 0.1; + static const double light = 0.3; + static const double medium = 0.5; + static const double strong = 0.7; + static const double intense = 0.9; + + // Enhanced alpha values for specific use cases with better hierarchy + static const double disabled = 0.38; + static const double overlay = 0.5; + static const double backdrop = 0.6; + static const double highlight = 0.12; + static const double pressed = 0.2; + static const double hover = 0.08; + static const double focus = 0.12; + static const double selected = 0.16; + static const double active = 0.24; + static const double inactive = 0.6; + + // Alpha values for different states with improved hierarchy + static const double primary = 1.0; + static const double secondary = 0.7; + static const double tertiary = 0.5; + static const double quaternary = 0.3; + static const double disabledText = 0.38; + static const double disabledIcon = 0.38; + static const double disabledBackground = 0.12; + + // Specific component alpha values with better consistency + static const double buttonPressed = 0.2; + static const double buttonHover = 0.08; + static const double cardHover = 0.04; + static const double inputFocus = 0.12; + static const double modalBackdrop = 0.6; + static const double snackbarBackground = 0.95; + static const double tooltipBackground = 0.9; + static const double badgeBackground = 0.1; + static const double chipBackground = 0.08; + static const double avatarBorder = 0.2; + + // Enhanced alpha values for better visual hierarchy + static const double micro = 0.05; + static const double tiny = 0.1; + static const double small = 0.2; + static const double standard = 0.3; + static const double large = 0.5; + static const double extraLarge = 0.7; + static const double huge = 0.9; +} + +/// Touch target sizes for accessibility compliance - Enhanced for production with better hierarchy +class TouchTarget { + static const double minimum = 44.0; + static const double comfortable = 48.0; + static const double large = 56.0; + + // Enhanced touch targets for specific components with better hierarchy + static const double button = 48.0; + static const double card = 48.0; + static const double input = 48.0; + static const double modal = 48.0; + static const double message = 44.0; + static const double navigation = 48.0; + static const double avatar = 48.0; + static const double badge = 32.0; + static const double chip = 32.0; + static const double tooltip = 32.0; + + // Touch targets for different contexts with improved hierarchy + static const double micro = 32.0; + static const double small = 40.0; + static const double medium = 48.0; + static const double standard = 56.0; + static const double extraLarge = 64.0; + static const double huge = 80.0; + + // Specific component touch targets with better consistency + static const double chatBubble = 44.0; + static const double actionButton = 48.0; + static const double floatingButton = 56.0; + static const double bottomSheet = 48.0; + static const double dialog = 48.0; + static const double snackbar = 48.0; + static const double tabBar = 48.0; + static const double appBar = 48.0; + static const double listItem = 48.0; + static const double formField = 48.0; + static const double iconButton = 48.0; + static const double textButton = 44.0; + static const double toggle = 48.0; + static const double slider = 48.0; + static const double checkbox = 48.0; + static const double radio = 48.0; +} + +/// Animation durations for consistent motion design - Enhanced for production with better hierarchy +class AnimationDuration { + static const Duration instant = Duration(milliseconds: 100); + static const Duration fast = Duration(milliseconds: 200); + static const Duration medium = Duration(milliseconds: 300); + static const Duration slow = Duration(milliseconds: 500); + static const Duration slower = Duration(milliseconds: 800); + static const Duration slowest = Duration(milliseconds: 1000); + static const Duration extraSlow = Duration(milliseconds: 1200); + static const Duration ultra = Duration(milliseconds: 1500); + static const Duration extended = Duration(seconds: 2); + static const Duration long = Duration(seconds: 4); + + // Enhanced durations for specific interactions with better hierarchy + static const Duration microInteraction = Duration(milliseconds: 150); + static const Duration buttonPress = Duration(milliseconds: 100); + static const Duration cardHover = Duration(milliseconds: 200); + static const Duration pageTransition = Duration(milliseconds: 400); + static const Duration modalPresentation = Duration(milliseconds: 500); + static const Duration typingIndicator = Duration(milliseconds: 800); + static const Duration messageAppear = Duration(milliseconds: 350); + static const Duration messageSlide = Duration(milliseconds: 400); + + // Enhanced durations for better visual hierarchy + static const Duration micro = Duration(milliseconds: 50); + static const Duration tiny = Duration(milliseconds: 100); + static const Duration small = Duration(milliseconds: 200); + static const Duration standard = Duration(milliseconds: 300); + static const Duration large = Duration(milliseconds: 500); + static const Duration extraLarge = Duration(milliseconds: 800); + static const Duration huge = Duration(milliseconds: 1200); +} + +/// Animation curves for consistent motion design - Enhanced for production with better hierarchy +class AnimationCurves { + static const Curve easeIn = Curves.easeIn; + static const Curve easeOut = Curves.easeOut; + static const Curve easeInOut = Curves.easeInOut; + static const Curve bounce = Curves.bounceOut; + static const Curve elastic = Curves.elasticOut; + static const Curve fastOutSlowIn = Curves.fastOutSlowIn; + static const Curve linear = Curves.linear; + + // Enhanced curves for specific interactions with better hierarchy + static const Curve buttonPress = Curves.easeOutCubic; + static const Curve cardHover = Curves.easeInOutCubic; + static const Curve messageSlide = Curves.easeOutCubic; + static const Curve typingIndicator = Curves.easeInOut; + static const Curve modalPresentation = Curves.easeOutBack; + static const Curve pageTransition = Curves.easeInOutCubic; + static const Curve microInteraction = Curves.easeOutQuart; + static const Curve spring = Curves.elasticOut; + + // Enhanced curves for better visual hierarchy + static const Curve micro = Curves.easeOutQuart; + static const Curve tiny = Curves.easeOutCubic; + static const Curve small = Curves.easeInOutCubic; + static const Curve standard = Curves.easeInOut; + static const Curve large = Curves.easeOutBack; + static const Curve extraLarge = Curves.elasticOut; + static const Curve huge = Curves.bounceOut; +} + +/// Common animation values - Enhanced for production with better hierarchy +class AnimationValues { + static const double fadeInOpacity = 0.0; + static const double fadeOutOpacity = 1.0; + static const Offset slideInFromTop = Offset(0, -0.05); + static const Offset slideInFromBottom = Offset(0, 0.05); + static const Offset slideInFromLeft = Offset(-0.05, 0); + static const Offset slideInFromRight = Offset(0.05, 0); + static const Offset slideCenter = Offset.zero; + static const double scaleMin = 0.0; + static const double scaleMax = 1.0; + static const double shimmerBegin = -1.0; + static const double shimmerEnd = 2.0; + + // Enhanced values for specific interactions with better hierarchy + static const double buttonScalePressed = 0.95; + static const double buttonScaleHover = 1.02; + static const double cardScaleHover = 1.01; + static const double messageSlideDistance = 0.1; + static const double typingIndicatorScale = 0.8; + static const double modalScale = 0.9; + static const double pageSlideDistance = 0.15; + static const double microInteractionScale = 0.98; + + // Enhanced values for better visual hierarchy + static const double micro = 0.95; + static const double tiny = 0.98; + static const double small = 1.01; + static const double standard = 1.02; + static const double large = 1.05; + static const double extraLarge = 1.1; + static const double huge = 1.2; +} + +/// Delay values for staggered animations - Enhanced for production with better hierarchy +class AnimationDelay { + static const Duration none = Duration.zero; + static const Duration short = Duration(milliseconds: 100); + static const Duration medium = Duration(milliseconds: 200); + static const Duration long = Duration(milliseconds: 400); + static const Duration extraLong = Duration(milliseconds: 600); + static const Duration ultra = Duration(milliseconds: 800); + + // Enhanced delays for specific interactions with better hierarchy + static const Duration microDelay = Duration(milliseconds: 50); + static const Duration buttonDelay = Duration(milliseconds: 75); + static const Duration cardDelay = Duration(milliseconds: 150); + static const Duration messageDelay = Duration(milliseconds: 100); + static const Duration typingDelay = Duration(milliseconds: 200); + static const Duration modalDelay = Duration(milliseconds: 300); + static const Duration pageDelay = Duration(milliseconds: 250); + static const Duration staggeredDelay = Duration(milliseconds: 50); + + // Enhanced delays for better visual hierarchy + static const Duration micro = Duration(milliseconds: 25); + static const Duration tiny = Duration(milliseconds: 50); + static const Duration small = Duration(milliseconds: 100); + static const Duration standard = Duration(milliseconds: 200); + static const Duration large = Duration(milliseconds: 400); + static const Duration extraLarge = Duration(milliseconds: 600); + static const Duration huge = Duration(milliseconds: 800); +} diff --git a/lib/shared/utils/keyboard_utils.dart b/lib/shared/utils/keyboard_utils.dart new file mode 100644 index 0000000..15c623d --- /dev/null +++ b/lib/shared/utils/keyboard_utils.dart @@ -0,0 +1,435 @@ +import 'package:flutter/material.dart'; +import '../theme/theme_extensions.dart'; +import 'package:flutter/services.dart'; +import 'dart:io' show Platform; + +/// Enhanced keyboard handling utilities for better UX +class KeyboardUtils { + KeyboardUtils._(); + + /// Dismiss keyboard with haptic feedback + static void dismissKeyboard(BuildContext context) { + final currentFocus = FocusScope.of(context); + if (!currentFocus.hasPrimaryFocus && currentFocus.focusedChild != null) { + FocusManager.instance.primaryFocus?.unfocus(); + + // Add haptic feedback on iOS + if (Platform.isIOS) { + HapticFeedback.lightImpact(); + } + } + } + + /// Force dismiss keyboard immediately + static void forceDismissKeyboard() { + FocusManager.instance.primaryFocus?.unfocus(); + SystemChannels.textInput.invokeMethod('TextInput.hide'); + } + + /// Check if keyboard is currently visible + static bool isKeyboardVisible(BuildContext context) { + return MediaQuery.of(context).viewInsets.bottom > 0; + } + + /// Get keyboard height + static double getKeyboardHeight(BuildContext context) { + return MediaQuery.of(context).viewInsets.bottom; + } + + /// Move focus to next field + static void nextFocus(BuildContext context) { + FocusScope.of(context).nextFocus(); + } + + /// Move focus to previous field + static void previousFocus(BuildContext context) { + FocusScope.of(context).previousFocus(); + } + + /// Request focus for a specific node + static void requestFocus(BuildContext context, FocusNode focusNode) { + FocusScope.of(context).requestFocus(focusNode); + } + + /// Create a tap detector that dismisses keyboard when tapping outside text fields + static Widget dismissKeyboardOnTap({ + required BuildContext context, + required Widget child, + }) { + return GestureDetector( + onTap: () => dismissKeyboard(context), + // Let children handle taps first (e.g., TextField gains focus) + behavior: HitTestBehavior.deferToChild, + child: child, + ); + } +} + +/// Widget that automatically adjusts for keyboard visibility +class KeyboardAware extends StatefulWidget { + final Widget child; + final EdgeInsets? padding; + final bool maintainBottomViewPadding; + final Duration animationDuration; + final Curve animationCurve; + + const KeyboardAware({ + super.key, + required this.child, + this.padding, + this.maintainBottomViewPadding = true, + this.animationDuration = const Duration(milliseconds: 250), + this.animationCurve = Curves.easeInOut, + }); + + @override + State createState() => _KeyboardAwareState(); +} + +class _KeyboardAwareState extends State + with WidgetsBindingObserver { + double _keyboardHeight = 0; + + @override + void initState() { + super.initState(); + WidgetsBinding.instance.addObserver(this); + } + + @override + void dispose() { + WidgetsBinding.instance.removeObserver(this); + super.dispose(); + } + + @override + void didChangeMetrics() { + super.didChangeMetrics(); + final newKeyboardHeight = MediaQuery.of(context).viewInsets.bottom; + if (newKeyboardHeight != _keyboardHeight) { + setState(() { + _keyboardHeight = newKeyboardHeight; + }); + } + } + + @override + Widget build(BuildContext context) { + return AnimatedPadding( + duration: widget.animationDuration, + curve: widget.animationCurve, + padding: EdgeInsets.only( + bottom: widget.maintainBottomViewPadding ? _keyboardHeight : 0, + ).add(widget.padding ?? EdgeInsets.zero), + child: widget.child, + ); + } +} + +/// Enhanced text field with better keyboard handling +class EnhancedTextField extends StatefulWidget { + final TextEditingController? controller; + final FocusNode? focusNode; + final String? hintText; + final String? labelText; + final TextInputType? keyboardType; + final TextInputAction? textInputAction; + final ValueChanged? onChanged; + final ValueChanged? onSubmitted; + final VoidCallback? onTap; + final bool obscureText; + final bool enabled; + final int? maxLines; + final int? minLines; + final EdgeInsets? contentPadding; + final Widget? prefixIcon; + final Widget? suffixIcon; + final bool autofocus; + final bool dismissKeyboardOnSubmit; + + const EnhancedTextField({ + super.key, + this.controller, + this.focusNode, + this.hintText, + this.labelText, + this.keyboardType, + this.textInputAction, + this.onChanged, + this.onSubmitted, + this.onTap, + this.obscureText = false, + this.enabled = true, + this.maxLines = 1, + this.minLines, + this.contentPadding, + this.prefixIcon, + this.suffixIcon, + this.autofocus = false, + this.dismissKeyboardOnSubmit = true, + }); + + @override + State createState() => _EnhancedTextFieldState(); +} + +class _EnhancedTextFieldState extends State { + late FocusNode _focusNode; + bool _hasFocus = false; + + @override + void initState() { + super.initState(); + _focusNode = widget.focusNode ?? FocusNode(); + _focusNode.addListener(_onFocusChanged); + } + + @override + void dispose() { + _focusNode.removeListener(_onFocusChanged); + if (widget.focusNode == null) { + _focusNode.dispose(); + } + super.dispose(); + } + + void _onFocusChanged() { + setState(() { + _hasFocus = _focusNode.hasFocus; + }); + } + + void _handleSubmitted(String value) { + widget.onSubmitted?.call(value); + + if (widget.dismissKeyboardOnSubmit) { + KeyboardUtils.dismissKeyboard(context); + } + + // Add haptic feedback + if (Platform.isIOS) { + HapticFeedback.lightImpact(); + } + } + + @override + Widget build(BuildContext context) { + return AnimatedContainer( + duration: const Duration(milliseconds: 200), + decoration: BoxDecoration( + border: Border.all( + color: _hasFocus + ? context.conduitTheme.buttonPrimary + : context.conduitTheme.inputBorder, + width: _hasFocus ? 2 : 1, + ), + borderRadius: BorderRadius.circular(AppBorderRadius.md), + ), + child: TextField( + controller: widget.controller, + focusNode: _focusNode, + obscureText: widget.obscureText, + enabled: widget.enabled, + autofocus: widget.autofocus, + keyboardType: widget.keyboardType, + textInputAction: widget.textInputAction, + maxLines: widget.maxLines, + minLines: widget.minLines, + style: TextStyle( + color: context.conduitTheme.textPrimary, + fontSize: AppTypography.bodyLarge, + ), + decoration: InputDecoration( + hintText: widget.hintText, + labelText: widget.labelText, + hintStyle: TextStyle(color: context.conduitTheme.inputPlaceholder), + labelStyle: TextStyle( + color: _hasFocus + ? context.conduitTheme.buttonPrimary + : context.conduitTheme.textSecondary, + ), + prefixIcon: widget.prefixIcon, + suffixIcon: widget.suffixIcon, + contentPadding: + widget.contentPadding ?? + const EdgeInsets.symmetric( + horizontal: Spacing.md, + vertical: Spacing.sm, + ), + border: InputBorder.none, + enabledBorder: InputBorder.none, + focusedBorder: InputBorder.none, + errorBorder: InputBorder.none, + disabledBorder: InputBorder.none, + ), + onChanged: widget.onChanged, + onSubmitted: _handleSubmitted, + onTap: widget.onTap, + ), + ); + } +} + +/// Smart keyboard handler that manages multiple text fields +class SmartKeyboardHandler extends StatefulWidget { + final List focusNodes; + final Widget child; + final VoidCallback? onDone; + + const SmartKeyboardHandler({ + super.key, + required this.focusNodes, + required this.child, + this.onDone, + }); + + @override + State createState() => _SmartKeyboardHandlerState(); +} + +class _SmartKeyboardHandlerState extends State { + int _currentIndex = -1; + + @override + void initState() { + super.initState(); + _setupFocusListeners(); + } + + void _setupFocusListeners() { + for (int i = 0; i < widget.focusNodes.length; i++) { + widget.focusNodes[i].addListener(() => _onFocusChanged(i)); + } + } + + void _onFocusChanged(int index) { + if (widget.focusNodes[index].hasFocus) { + setState(() { + _currentIndex = index; + }); + } + } + + void _moveToNext() { + if (_currentIndex < widget.focusNodes.length - 1) { + KeyboardUtils.requestFocus(context, widget.focusNodes[_currentIndex + 1]); + } else { + KeyboardUtils.dismissKeyboard(context); + widget.onDone?.call(); + } + } + + void _moveToPrevious() { + if (_currentIndex > 0) { + KeyboardUtils.requestFocus(context, widget.focusNodes[_currentIndex - 1]); + } + } + + @override + Widget build(BuildContext context) { + return Focus( + onKeyEvent: (node, event) { + if (event is KeyDownEvent) { + if (event.logicalKey == LogicalKeyboardKey.tab) { + if (HardwareKeyboard.instance.isShiftPressed) { + _moveToPrevious(); + } else { + _moveToNext(); + } + return KeyEventResult.handled; + } + } + return KeyEventResult.ignored; + }, + child: widget.child, + ); + } + + @override + void dispose() { + for (final focusNode in widget.focusNodes) { + focusNode.removeListener(() {}); + } + super.dispose(); + } +} + +/// Keyboard-aware scroll view that adjusts scroll position +class KeyboardAwareScrollView extends StatefulWidget { + final ScrollController? controller; + final Widget child; + final EdgeInsets? padding; + final bool reverse; + final Duration animationDuration; + + const KeyboardAwareScrollView({ + super.key, + this.controller, + required this.child, + this.padding, + this.reverse = false, + this.animationDuration = const Duration(milliseconds: 300), + }); + + @override + State createState() => + _KeyboardAwareScrollViewState(); +} + +class _KeyboardAwareScrollViewState extends State + with WidgetsBindingObserver { + late ScrollController _scrollController; + FocusNode? _currentFocus; + + @override + void initState() { + super.initState(); + _scrollController = widget.controller ?? ScrollController(); + WidgetsBinding.instance.addObserver(this); + } + + @override + void dispose() { + WidgetsBinding.instance.removeObserver(this); + if (widget.controller == null) { + _scrollController.dispose(); + } + super.dispose(); + } + + @override + void didChangeMetrics() { + super.didChangeMetrics(); + _adjustScrollPosition(); + } + + void _adjustScrollPosition() { + final focus = FocusManager.instance.primaryFocus; + if (focus != null && focus != _currentFocus) { + _currentFocus = focus; + + WidgetsBinding.instance.addPostFrameCallback((_) { + if (_scrollController.hasClients) { + final keyboardHeight = MediaQuery.of(context).viewInsets.bottom; + if (keyboardHeight > 0) { + _scrollController.animateTo( + _scrollController.offset + keyboardHeight / 2, + duration: widget.animationDuration, + curve: Curves.easeInOut, + ); + } + } + }); + } + } + + @override + Widget build(BuildContext context) { + return SingleChildScrollView( + controller: _scrollController, + reverse: widget.reverse, + padding: widget.padding, + child: widget.child, + ); + } +} diff --git a/lib/shared/utils/platform_utils.dart b/lib/shared/utils/platform_utils.dart new file mode 100644 index 0000000..58f29f6 --- /dev/null +++ b/lib/shared/utils/platform_utils.dart @@ -0,0 +1,487 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter/cupertino.dart'; +import 'dart:io' show Platform; +import '../theme/theme_extensions.dart'; + +/// Platform-specific utilities for enhanced user experience +class PlatformUtils { + PlatformUtils._(); + + /// Check if device supports haptic feedback + static bool get supportsHaptics => Platform.isIOS || Platform.isAndroid; + + /// Trigger light haptic feedback + static void lightHaptic() { + if (supportsHaptics) { + HapticFeedback.lightImpact(); + } + } + + /// Trigger medium haptic feedback + static void mediumHaptic() { + if (supportsHaptics && Platform.isIOS) { + HapticFeedback.mediumImpact(); + } else if (Platform.isAndroid) { + HapticFeedback.lightImpact(); + } + } + + /// Trigger heavy haptic feedback + static void heavyHaptic() { + if (supportsHaptics && Platform.isIOS) { + HapticFeedback.heavyImpact(); + } else if (Platform.isAndroid) { + HapticFeedback.vibrate(); + } + } + + /// Trigger selection haptic feedback + static void selectionHaptic() { + if (supportsHaptics) { + HapticFeedback.selectionClick(); + } + } + + /// Get platform-appropriate icon + static IconData getIcon({required IconData ios, required IconData android}) { + return Platform.isIOS ? ios : android; + } + + /// Get platform-appropriate text style + static TextStyle getPlatformTextStyle(BuildContext context) { + if (Platform.isIOS) { + return CupertinoTheme.of(context).textTheme.textStyle; + } + return Theme.of(context).textTheme.bodyMedium ?? const TextStyle(); + } + + /// Create platform-specific button + static Widget createButton({ + required String text, + required VoidCallback? onPressed, + bool isPrimary = true, + Color? color, + }) { + if (Platform.isIOS) { + return Builder( + builder: (context) => CupertinoButton( + onPressed: onPressed, + color: isPrimary + ? (color ?? context.conduitTheme.buttonPrimary) + : null, + child: Text(text), + ), + ); + } + + return isPrimary + ? FilledButton( + onPressed: onPressed, + style: color != null + ? FilledButton.styleFrom(backgroundColor: color) + : null, + child: Text(text), + ) + : OutlinedButton(onPressed: onPressed, child: Text(text)); + } + + /// Create platform-specific switch + static Widget createSwitch({ + required bool value, + required ValueChanged? onChanged, + Color? activeColor, + }) { + if (Platform.isIOS) { + return Builder( + builder: (context) => CupertinoSwitch( + value: value, + onChanged: onChanged, + thumbColor: activeColor ?? context.conduitTheme.buttonPrimary, + ), + ); + } + + return Switch( + value: value, + onChanged: onChanged, + activeTrackColor: activeColor, + ); + } + + /// Create platform-specific slider + static Widget createSlider({ + required double value, + required ValueChanged? onChanged, + double min = 0.0, + double max = 1.0, + int? divisions, + Color? activeColor, + }) { + if (Platform.isIOS) { + return Builder( + builder: (context) => CupertinoSlider( + value: value, + onChanged: onChanged, + min: min, + max: max, + divisions: divisions, + activeColor: activeColor ?? context.conduitTheme.buttonPrimary, + ), + ); + } + + return Slider( + value: value, + onChanged: onChanged, + min: min, + max: max, + divisions: divisions, + activeColor: activeColor, + ); + } +} + +/// iOS-specific enhancements +class IOSEnhancements { + /// Create iOS-style navigation bar + static PreferredSizeWidget createNavigationBar({ + required String title, + VoidCallback? onBack, + List? actions, + Color? backgroundColor, + }) { + return CupertinoNavigationBar( + middle: Text(title), + leading: onBack != null + ? CupertinoNavigationBarBackButton(onPressed: onBack) + : null, + trailing: actions != null && actions.isNotEmpty + ? Row(mainAxisSize: MainAxisSize.min, children: actions) + : null, + backgroundColor: backgroundColor, + ); + } + + /// Create iOS-style context menu + static Widget createContextMenu({ + required Widget child, + required List actions, + }) { + return CupertinoContextMenu( + actions: actions + .map( + (action) => CupertinoContextMenuAction( + onPressed: action.onPressed, + isDefaultAction: action.isDefault, + isDestructiveAction: action.isDestructive, + child: Text(action.title), + ), + ) + .toList(), + child: child, + ); + } + + /// Create iOS-style action sheet + static void showActionSheet({ + required BuildContext context, + required String title, + String? message, + required List actions, + }) { + showCupertinoModalPopup( + context: context, + builder: (context) => CupertinoActionSheet( + title: Text(title), + message: message != null ? Text(message) : null, + actions: actions + .map( + (action) => CupertinoActionSheetAction( + onPressed: () { + Navigator.pop(context); + action.onPressed(); + }, + isDefaultAction: action.isDefault, + isDestructiveAction: action.isDestructive, + child: Text(action.title), + ), + ) + .toList(), + cancelButton: CupertinoActionSheetAction( + onPressed: () => Navigator.pop(context), + child: const Text('Cancel'), + ), + ), + ); + } +} + +/// Android-specific enhancements +class AndroidEnhancements { + /// Create Material You themed button + static Widget createMaterial3Button({ + required String text, + required VoidCallback? onPressed, + ButtonType type = ButtonType.filled, + IconData? icon, + }) { + Widget button; + + switch (type) { + case ButtonType.filled: + button = icon != null + ? FilledButton.icon( + onPressed: onPressed, + icon: Icon(icon), + label: Text(text), + ) + : FilledButton(onPressed: onPressed, child: Text(text)); + break; + case ButtonType.outlined: + button = icon != null + ? OutlinedButton.icon( + onPressed: onPressed, + icon: Icon(icon), + label: Text(text), + ) + : OutlinedButton(onPressed: onPressed, child: Text(text)); + break; + case ButtonType.text: + button = icon != null + ? TextButton.icon( + onPressed: onPressed, + icon: Icon(icon), + label: Text(text), + ) + : TextButton(onPressed: onPressed, child: Text(text)); + break; + } + + return button; + } + + /// Create Material 3 card + static Widget createCard({ + required Widget child, + VoidCallback? onTap, + EdgeInsetsGeometry? padding, + CardType type = CardType.filled, + }) { + Widget card; + + switch (type) { + case CardType.filled: + card = Card.filled( + child: padding != null + ? Padding(padding: padding, child: child) + : child, + ); + break; + case CardType.outlined: + card = Card.outlined( + child: padding != null + ? Padding(padding: padding, child: child) + : child, + ); + break; + case CardType.elevated: + card = Card( + child: padding != null + ? Padding(padding: padding, child: child) + : child, + ); + break; + } + + if (onTap != null) { + return InkWell( + onTap: onTap, + borderRadius: BorderRadius.circular(AppBorderRadius.md), + child: card, + ); + } + + return card; + } + + /// Create floating action button with Material 3 styling + static Widget createFAB({ + required VoidCallback onPressed, + required Widget child, + bool isExtended = false, + String? label, + }) { + if (isExtended && label != null) { + return FloatingActionButton.extended( + onPressed: onPressed, + icon: child, + label: Text(label), + ); + } + + return FloatingActionButton(onPressed: onPressed, child: child); + } +} + +/// Platform-aware widget that provides different implementations +class PlatformWidget extends StatelessWidget { + final Widget ios; + final Widget android; + final Widget? fallback; + + const PlatformWidget({ + super.key, + required this.ios, + required this.android, + this.fallback, + }); + + @override + Widget build(BuildContext context) { + if (Platform.isIOS) { + return ios; + } else if (Platform.isAndroid) { + return android; + } else { + return fallback ?? android; + } + } +} + +/// Enhanced button with platform-specific haptics +class HapticButton extends StatelessWidget { + final Widget child; + final VoidCallback? onPressed; + final HapticType hapticType; + final ButtonStyle? style; + + const HapticButton({ + super.key, + required this.child, + required this.onPressed, + this.hapticType = HapticType.light, + this.style, + }); + + @override + Widget build(BuildContext context) { + return FilledButton( + onPressed: onPressed != null + ? () { + _triggerHaptic(); + onPressed!(); + } + : null, + style: style, + child: child, + ); + } + + void _triggerHaptic() { + switch (hapticType) { + case HapticType.light: + PlatformUtils.lightHaptic(); + break; + case HapticType.medium: + PlatformUtils.mediumHaptic(); + break; + case HapticType.heavy: + PlatformUtils.heavyHaptic(); + break; + case HapticType.selection: + PlatformUtils.selectionHaptic(); + break; + } + } +} + +/// Enhanced list tile with platform-specific styling +class PlatformListTile extends StatelessWidget { + final Widget? leading; + final Widget? title; + final Widget? subtitle; + final Widget? trailing; + final VoidCallback? onTap; + final bool enableHaptic; + + const PlatformListTile({ + super.key, + this.leading, + this.title, + this.subtitle, + this.trailing, + this.onTap, + this.enableHaptic = true, + }); + + @override + Widget build(BuildContext context) { + final tile = ListTile( + leading: leading, + title: title, + subtitle: subtitle, + trailing: trailing, + onTap: onTap != null && enableHaptic + ? () { + PlatformUtils.selectionHaptic(); + onTap!(); + } + : onTap, + ); + + if (Platform.isIOS) { + return Builder( + builder: (context) => Container( + decoration: BoxDecoration( + color: context.conduitTheme.surfaceBackground, + border: Border( + bottom: BorderSide( + color: context.conduitTheme.dividerColor, + width: 0.5, + ), + ), + ), + child: tile, + ), + ); + } + + return tile; + } +} + +// Enums and supporting classes +enum HapticType { light, medium, heavy, selection } + +enum ButtonType { filled, outlined, text } + +enum CardType { filled, outlined, elevated } + +class ContextMenuAction { + final String title; + final VoidCallback onPressed; + final bool isDefault; + final bool isDestructive; + + const ContextMenuAction({ + required this.title, + required this.onPressed, + this.isDefault = false, + this.isDestructive = false, + }); +} + +class ActionSheetAction { + final String title; + final VoidCallback onPressed; + final bool isDefault; + final bool isDestructive; + + const ActionSheetAction({ + required this.title, + required this.onPressed, + this.isDefault = false, + this.isDestructive = false, + }); +} diff --git a/lib/shared/utils/ui_utils.dart b/lib/shared/utils/ui_utils.dart new file mode 100644 index 0000000..33ba3ed --- /dev/null +++ b/lib/shared/utils/ui_utils.dart @@ -0,0 +1,221 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/cupertino.dart'; +import 'dart:io' show Platform; +import '../theme/theme_extensions.dart'; + +/// Utility functions for common UI patterns and helpers +/// Following Conduit design principles + +class UiUtils { + static bool get isIOS => Platform.isIOS; + + /// Returns platform-appropriate icon + static IconData platformIcon({ + required IconData ios, + required IconData android, + }) { + return isIOS ? ios : android; + } + + /// Common platform icons used throughout the app + static IconData get chatIcon => + platformIcon(ios: CupertinoIcons.chat_bubble_2, android: Icons.chat); + + static IconData get searchIcon => + platformIcon(ios: CupertinoIcons.search, android: Icons.search); + + static IconData get deleteIcon => + platformIcon(ios: CupertinoIcons.delete, android: Icons.delete); + + static IconData get archiveIcon => + platformIcon(ios: CupertinoIcons.archivebox, android: Icons.archive); + + static IconData get shareIcon => + platformIcon(ios: CupertinoIcons.share, android: Icons.share); + + static IconData get settingsIcon => + platformIcon(ios: CupertinoIcons.gear, android: Icons.settings); + + static IconData get editIcon => + platformIcon(ios: CupertinoIcons.pencil, android: Icons.edit_outlined); + + static IconData get menuIcon => + platformIcon(ios: CupertinoIcons.line_horizontal_3, android: Icons.menu); + + static IconData get addIcon => + platformIcon(ios: CupertinoIcons.plus_circle, android: Icons.add); + + static IconData get attachIcon => + platformIcon(ios: CupertinoIcons.paperclip, android: Icons.attach_file); + + static IconData get micIcon => + platformIcon(ios: CupertinoIcons.mic, android: Icons.mic); + + static IconData get sendIcon => platformIcon( + ios: CupertinoIcons.arrow_up_circle_fill, + android: Icons.send, + ); + + static IconData get moreIcon => platformIcon( + ios: CupertinoIcons.ellipsis_vertical, + android: Icons.more_vert, + ); + + static IconData get closeIcon => + platformIcon(ios: CupertinoIcons.xmark, android: Icons.close); + + static IconData get checkIcon => + platformIcon(ios: CupertinoIcons.check_mark, android: Icons.check); + + static IconData get globeIcon => + platformIcon(ios: CupertinoIcons.globe, android: Icons.public); + + static IconData get folderIcon => + platformIcon(ios: CupertinoIcons.folder, android: Icons.folder); + + static IconData get tagIcon => + platformIcon(ios: CupertinoIcons.tag, android: Icons.label); + + static IconData get copyIcon => + platformIcon(ios: CupertinoIcons.doc_on_doc, android: Icons.copy); + + static IconData get pinIcon => + platformIcon(ios: CupertinoIcons.pin_fill, android: Icons.push_pin); + + static IconData get unpinIcon => platformIcon( + ios: CupertinoIcons.pin_slash, + android: Icons.push_pin_outlined, + ); + + /// Shows a Conduit-styled snackbar with conversational messaging + static void showMessage( + BuildContext context, + String message, { + bool isError = false, + VoidCallback? onRetry, + Duration? duration, + }) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text(message), + backgroundColor: isError + ? context.conduitTheme.error + : context.conduitTheme.buttonPrimary, + behavior: SnackBarBehavior.floating, + action: onRetry != null + ? SnackBarAction( + label: 'Try again', + textColor: context.conduitTheme.textInverse, + onPressed: onRetry, + ) + : null, + duration: duration ?? const Duration(seconds: 3), + ), + ); + } + + /// Shows a Conduit-styled confirmation dialog + static Future showConfirmationDialog( + BuildContext context, { + required String title, + required String message, + String confirmText = 'Confirm', + String cancelText = 'Cancel', + bool isDestructive = false, + }) async { + return await showDialog( + context: context, + builder: (context) => AlertDialog( + backgroundColor: context.conduitTheme.surfaceBackground, + title: Text( + title, + style: TextStyle(color: context.conduitTheme.textPrimary), + ), + content: Text( + message, + style: TextStyle(color: context.conduitTheme.textSecondary), + ), + actions: [ + TextButton( + onPressed: () => Navigator.pop(context, false), + child: Text(cancelText), + ), + TextButton( + onPressed: () => Navigator.pop(context, true), + style: isDestructive + ? TextButton.styleFrom( + foregroundColor: context.conduitTheme.error, + ) + : null, + child: Text(confirmText), + ), + ], + ), + ) ?? + false; + } + + /// Formats dates in a conversational way following Conduit patterns + static String formatDate(DateTime date) { + final now = DateTime.now(); + final difference = now.difference(date); + + if (difference.inDays == 0) { + if (difference.inHours == 0) { + if (difference.inMinutes == 0) { + return 'Just now'; + } + return '${difference.inMinutes}m ago'; + } + return '${difference.inHours}h ago'; + } else if (difference.inDays == 1) { + return 'Yesterday'; + } else if (difference.inDays < 7) { + return '${difference.inDays} days ago'; + } else if (difference.inDays < 30) { + final weeks = (difference.inDays / 7).floor(); + return weeks == 1 ? '1 week ago' : '$weeks weeks ago'; + } else if (difference.inDays < 365) { + final months = (difference.inDays / 30).floor(); + return months == 1 ? '1 month ago' : '$months months ago'; + } else { + return '${date.month}/${date.day}/${date.year}'; + } + } + + /// Creates a smooth haptic feedback on iOS + static void hapticFeedback() { + if (isIOS) { + // iOS haptic feedback would be implemented here + // For now, we'll leave this as a placeholder + } + } + + /// Safe area padding helper + static EdgeInsets safeAreaPadding(BuildContext context) { + return MediaQuery.of(context).padding; + } + + /// Screen size helpers + static Size screenSize(BuildContext context) { + return MediaQuery.of(context).size; + } + + static bool isSmallScreen(BuildContext context) { + return screenSize(context).width < 375; + } + + static bool isLargeScreen(BuildContext context) { + return screenSize(context).width > 414; + } + + /// Keyboard handling + static bool isKeyboardOpen(BuildContext context) { + return MediaQuery.of(context).viewInsets.bottom > 0; + } + + /// Focus management + static void unfocus(BuildContext context) { + FocusScope.of(context).unfocus(); + } +} diff --git a/lib/shared/widgets/cached_image.dart b/lib/shared/widgets/cached_image.dart new file mode 100644 index 0000000..d31b9af --- /dev/null +++ b/lib/shared/widgets/cached_image.dart @@ -0,0 +1,143 @@ +import 'package:flutter/material.dart'; +import 'package:cached_network_image/cached_network_image.dart'; +import '../theme/theme_extensions.dart'; +import 'improved_loading_states.dart'; + +/// Cached network image widget with progressive loading and error handling +class CachedImage extends StatelessWidget { + final String imageUrl; + final double? width; + final double? height; + final BoxFit fit; + final Widget? placeholder; + final Widget? errorWidget; + final Duration fadeInDuration; + final Duration fadeOutDuration; + final bool enableMemoryCache; + final int? maxWidthDiskCache; + final int? maxHeightDiskCache; + + const CachedImage({ + super.key, + required this.imageUrl, + this.width, + this.height, + this.fit = BoxFit.cover, + this.placeholder, + this.errorWidget, + this.fadeInDuration = const Duration(milliseconds: 300), + this.fadeOutDuration = const Duration(milliseconds: 100), + this.enableMemoryCache = true, + this.maxWidthDiskCache, + this.maxHeightDiskCache, + }); + + @override + Widget build(BuildContext context) { + return CachedNetworkImage( + imageUrl: imageUrl, + width: width, + height: height, + fit: fit, + fadeInDuration: fadeInDuration, + fadeOutDuration: fadeOutDuration, + placeholder: placeholder != null + ? (context, url) => placeholder! + : _buildDefaultPlaceholder, + errorWidget: errorWidget != null + ? (context, url, error) => errorWidget! + : _buildDefaultErrorWidget, + memCacheWidth: enableMemoryCache ? width?.toInt() : null, + memCacheHeight: enableMemoryCache ? height?.toInt() : null, + maxWidthDiskCache: maxWidthDiskCache, + maxHeightDiskCache: maxHeightDiskCache, + useOldImageOnUrlChange: true, + filterQuality: FilterQuality.medium, + ); + } + + Widget _buildDefaultPlaceholder(BuildContext context, String url) { + return ShimmerLoader( + width: width ?? double.infinity, + height: height ?? 200, + borderRadius: BorderRadius.circular(8), + ); + } + + Widget _buildDefaultErrorWidget( + BuildContext context, + String url, + dynamic error, + ) { + return Container( + width: width, + height: height, + color: context.conduitTheme.shimmerBase, + child: Icon( + Icons.broken_image, + color: context.conduitTheme.iconSecondary, + size: (width != null && height != null) + ? (width! < height! ? width! * 0.5 : height! * 0.5) + : 24, + ), + ); + } +} + +/// Cached circular avatar with progressive loading +class CachedAvatar extends StatelessWidget { + final String? imageUrl; + final String fallbackText; + final double radius; + final Color? backgroundColor; + final Color? textColor; + + const CachedAvatar({ + super.key, + this.imageUrl, + required this.fallbackText, + this.radius = 20, + this.backgroundColor, + this.textColor, + }); + + @override + Widget build(BuildContext context) { + return CircleAvatar( + radius: radius, + backgroundColor: + backgroundColor ?? context.conduitTheme.surfaceBackground, + child: imageUrl != null + ? ClipOval( + child: CachedNetworkImage( + imageUrl: imageUrl!, + width: radius * 2, + height: radius * 2, + fit: BoxFit.cover, + placeholder: (context, url) => CircularProgressIndicator( + strokeWidth: 2, + color: textColor ?? context.conduitTheme.iconSecondary, + ), + errorWidget: (context, url, error) => Text( + fallbackText.isNotEmpty ? fallbackText[0].toUpperCase() : '?', + style: TextStyle( + color: textColor ?? context.conduitTheme.textPrimary, + fontWeight: FontWeight.bold, + fontSize: radius * 0.6, + ), + ), + memCacheWidth: (radius * 2).toInt(), + memCacheHeight: (radius * 2).toInt(), + ), + ) + : Text( + fallbackText.isNotEmpty ? fallbackText[0].toUpperCase() : '?', + style: TextStyle( + color: textColor ?? context.conduitTheme.textPrimary, + fontWeight: FontWeight.bold, + fontSize: radius * 0.6, + ), + ), + ); + } +} diff --git a/lib/shared/widgets/conduit_components.dart b/lib/shared/widgets/conduit_components.dart new file mode 100644 index 0000000..1ead263 --- /dev/null +++ b/lib/shared/widgets/conduit_components.dart @@ -0,0 +1,958 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import '../theme/theme_extensions.dart'; +import '../services/brand_service.dart'; +import '../../core/services/enhanced_accessibility_service.dart'; +import '../../core/services/platform_service.dart'; +import '../../core/services/settings_service.dart'; + +/// Unified component library following Conduit design patterns +/// This provides consistent, reusable UI components throughout the app + +class ConduitButton extends ConsumerWidget { + final String text; + final VoidCallback? onPressed; + final bool isLoading; + final bool isDestructive; + final bool isSecondary; + final IconData? icon; + final double? width; + final bool isFullWidth; + final bool isCompact; + + const ConduitButton({ + super.key, + required this.text, + this.onPressed, + this.isLoading = false, + this.isDestructive = false, + this.isSecondary = false, + this.icon, + this.width, + this.isFullWidth = false, + this.isCompact = false, + }); + + @override + Widget build(BuildContext context, WidgetRef ref) { + final hapticEnabled = ref.watch(hapticEnabledProvider); + Color backgroundColor; + Color textColor; + + if (isDestructive) { + backgroundColor = context.conduitTheme.error; + textColor = context.conduitTheme.buttonPrimaryText; + } else if (isSecondary) { + backgroundColor = context.conduitTheme.buttonSecondary; + textColor = context.conduitTheme.buttonSecondaryText; + } else { + backgroundColor = context.conduitTheme.buttonPrimary; + textColor = context.conduitTheme.buttonPrimaryText; + } + + // Build semantic label + String semanticLabel = text; + if (isLoading) { + semanticLabel = 'Loading: $text'; + } else if (isDestructive) { + semanticLabel = 'Warning: $text'; + } + + return Semantics( + label: semanticLabel, + button: true, + enabled: !isLoading && onPressed != null, + child: SizedBox( + width: isFullWidth ? double.infinity : width, + height: isCompact ? TouchTarget.medium : TouchTarget.comfortable, + child: ElevatedButton( + onPressed: isLoading + ? null + : () { + if (onPressed != null) { + PlatformService.hapticFeedbackWithSettings( + type: isDestructive + ? HapticType.warning + : HapticType.light, + hapticEnabled: hapticEnabled, + ); + onPressed!(); + } + }, + style: ElevatedButton.styleFrom( + backgroundColor: backgroundColor, + foregroundColor: textColor, + disabledBackgroundColor: context.conduitTheme.buttonDisabled, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.button), + ), + elevation: Elevation.none, + shadowColor: backgroundColor.withValues(alpha: Alpha.standard), + minimumSize: Size( + TouchTarget.minimum, + isCompact ? TouchTarget.medium : TouchTarget.comfortable, + ), + padding: EdgeInsets.symmetric( + horizontal: isCompact ? Spacing.md : Spacing.buttonPadding, + vertical: isCompact ? Spacing.sm : Spacing.sm, + ), + ), + child: isLoading + ? Semantics( + label: 'Loading', + excludeSemantics: true, + child: SizedBox( + width: IconSize.small, + height: IconSize.small, + child: CircularProgressIndicator( + strokeWidth: 2, + valueColor: AlwaysStoppedAnimation(textColor), + ), + ), + ) + : Row( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + if (icon != null) ...[ + Icon(icon, size: IconSize.small), + SizedBox(width: Spacing.iconSpacing), + ], + Flexible( + child: EnhancedAccessibilityService.createAccessibleText( + text, + style: AppTypography.standard.copyWith( + fontWeight: FontWeight.w600, + color: textColor, + ), + maxLines: 1, + ), + ), + ], + ), + ), + ), + ); + } +} + +class ConduitInput extends StatelessWidget { + final String? label; + final String? hint; + final TextEditingController? controller; + final ValueChanged? onChanged; + final VoidCallback? onTap; + final bool obscureText; + final bool enabled; + final String? errorText; + final int? maxLines; + final Widget? suffixIcon; + final Widget? prefixIcon; + final TextInputType? keyboardType; + final bool autofocus; + final String? semanticLabel; + final ValueChanged? onSubmitted; + final bool isRequired; + + const ConduitInput({ + super.key, + this.label, + this.hint, + this.controller, + this.onChanged, + this.onTap, + this.obscureText = false, + this.enabled = true, + this.errorText, + this.maxLines = 1, + this.suffixIcon, + this.prefixIcon, + this.keyboardType, + this.autofocus = false, + this.semanticLabel, + this.onSubmitted, + this.isRequired = false, + }); + + @override + Widget build(BuildContext context) { + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + if (label != null) ...[ + Row( + children: [ + Text( + label!, + style: AppTypography.standard.copyWith( + fontWeight: FontWeight.w500, + color: context.conduitTheme.textPrimary, + ), + ), + if (isRequired) ...[ + SizedBox(width: Spacing.textSpacing), + Text( + '*', + style: AppTypography.standard.copyWith( + color: context.conduitTheme.error, + fontWeight: FontWeight.w600, + ), + ), + ], + ], + ), + SizedBox(height: Spacing.sm), + ], + Semantics( + label: semanticLabel ?? label ?? 'Input field', + textField: true, + child: TextField( + controller: controller, + onChanged: onChanged, + onTap: onTap, + onSubmitted: onSubmitted, + obscureText: obscureText, + enabled: enabled, + maxLines: maxLines, + keyboardType: keyboardType, + autofocus: autofocus, + style: AppTypography.standard.copyWith( + color: context.conduitTheme.textPrimary, + ), + decoration: InputDecoration( + hintText: hint, + hintStyle: AppTypography.standard.copyWith( + color: context.conduitTheme.inputPlaceholder, + ), + filled: true, + fillColor: context.conduitTheme.inputBackground, + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.input), + borderSide: BorderSide( + color: context.conduitTheme.inputBorder, + width: BorderWidth.standard, + ), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.input), + borderSide: BorderSide( + color: context.conduitTheme.inputBorder, + width: BorderWidth.standard, + ), + ), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.input), + borderSide: BorderSide( + color: context.conduitTheme.buttonPrimary, + width: BorderWidth.thick, + ), + ), + errorBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.input), + borderSide: BorderSide( + color: context.conduitTheme.error, + width: BorderWidth.standard, + ), + ), + focusedErrorBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.input), + borderSide: BorderSide( + color: context.conduitTheme.error, + width: BorderWidth.thick, + ), + ), + contentPadding: EdgeInsets.symmetric( + horizontal: Spacing.inputPadding, + vertical: Spacing.md, + ), + suffixIcon: suffixIcon, + prefixIcon: prefixIcon, + errorText: errorText, + errorStyle: AppTypography.small.copyWith( + color: context.conduitTheme.error, + ), + ), + ), + ), + ], + ); + } +} + +class ConduitCard extends StatelessWidget { + final Widget child; + final EdgeInsetsGeometry? padding; + final VoidCallback? onTap; + final bool isSelected; + final bool isElevated; + final bool isCompact; + + const ConduitCard({ + super.key, + required this.child, + this.padding, + this.onTap, + this.isSelected = false, + this.isElevated = false, + this.isCompact = false, + }); + + @override + Widget build(BuildContext context) { + return GestureDetector( + onTap: onTap, + child: Container( + padding: + padding ?? + EdgeInsets.all(isCompact ? Spacing.md : Spacing.cardPadding), + decoration: BoxDecoration( + color: isSelected + ? context.conduitTheme.buttonPrimary.withValues( + alpha: Alpha.highlight, + ) + : context.conduitTheme.cardBackground, + borderRadius: BorderRadius.circular(AppBorderRadius.card), + border: Border.all( + color: isSelected + ? context.conduitTheme.buttonPrimary.withValues( + alpha: Alpha.standard, + ) + : context.conduitTheme.cardBorder, + width: BorderWidth.standard, + ), + boxShadow: isElevated ? ConduitShadows.card : null, + ), + child: child, + ), + ); + } +} + +class ConduitIconButton extends ConsumerWidget { + final IconData icon; + final VoidCallback? onPressed; + final String? tooltip; + final bool isActive; + final Color? backgroundColor; + final Color? iconColor; + final bool isCompact; + final bool isCircular; + + const ConduitIconButton({ + super.key, + required this.icon, + this.onPressed, + this.tooltip, + this.isActive = false, + this.backgroundColor, + this.iconColor, + this.isCompact = false, + this.isCircular = true, + }); + + @override + Widget build(BuildContext context, WidgetRef ref) { + final hapticEnabled = ref.watch(hapticEnabledProvider); + final effectiveBackgroundColor = + backgroundColor ?? + (isActive + ? context.conduitTheme.buttonPrimary.withValues( + alpha: Alpha.highlight, + ) + : Colors.transparent); + final effectiveIconColor = + iconColor ?? + (isActive + ? context.conduitTheme.buttonPrimary + : context.conduitTheme.iconSecondary); + + // Build semantic label with context + String semanticLabel = tooltip ?? 'Button'; + if (isActive) { + semanticLabel = '$semanticLabel, active'; + } + + return Semantics( + label: semanticLabel, + button: true, + enabled: onPressed != null, + child: Tooltip( + message: tooltip ?? '', + child: GestureDetector( + onTap: () { + if (onPressed != null) { + PlatformService.hapticFeedbackWithSettings( + type: HapticType.selection, + hapticEnabled: hapticEnabled, + ); + onPressed!(); + } + }, + child: Container( + width: isCompact ? TouchTarget.medium : TouchTarget.minimum, + height: isCompact ? TouchTarget.medium : TouchTarget.minimum, + decoration: BoxDecoration( + color: effectiveBackgroundColor, + borderRadius: BorderRadius.circular( + isCircular + ? AppBorderRadius.circular + : AppBorderRadius.standard, + ), + border: isActive + ? Border.all( + color: context.conduitTheme.buttonPrimary.withValues( + alpha: Alpha.standard, + ), + width: BorderWidth.standard, + ) + : null, + ), + child: Icon( + icon, + size: isCompact ? IconSize.small : IconSize.medium, + color: effectiveIconColor, + semanticLabel: tooltip, + ), + ), + ), + ), + ); + } +} + +class ConduitLoadingIndicator extends StatelessWidget { + final String? message; + final double size; + final bool isCompact; + + const ConduitLoadingIndicator({ + super.key, + this.message, + this.size = 24, + this.isCompact = false, + }); + + @override + Widget build(BuildContext context) { + return Column( + mainAxisSize: MainAxisSize.min, + children: [ + SizedBox( + width: size, + height: size, + child: CircularProgressIndicator( + strokeWidth: isCompact ? 2 : 3, + valueColor: AlwaysStoppedAnimation( + context.conduitTheme.buttonPrimary, + ), + ), + ), + if (message != null) ...[ + SizedBox(height: isCompact ? Spacing.sm : Spacing.md), + Text( + message!, + style: AppTypography.standard.copyWith( + color: context.conduitTheme.textSecondary, + ), + textAlign: TextAlign.center, + ), + ], + ], + ); + } +} + +class ConduitEmptyState extends StatelessWidget { + final IconData icon; + final String title; + final String message; + final Widget? action; + final bool isCompact; + + const ConduitEmptyState({ + super.key, + required this.icon, + required this.title, + required this.message, + this.action, + this.isCompact = false, + }); + + @override + Widget build(BuildContext context) { + return Center( + child: Padding( + padding: EdgeInsets.all(isCompact ? Spacing.md : Spacing.lg), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + width: isCompact ? IconSize.xxl : IconSize.xxl + Spacing.md, + height: isCompact ? IconSize.xxl : IconSize.xxl + Spacing.md, + decoration: BoxDecoration( + color: context.conduitTheme.surfaceBackground, + borderRadius: BorderRadius.circular(AppBorderRadius.circular), + ), + child: Icon( + icon, + size: isCompact ? IconSize.xl : TouchTarget.minimum, + color: context.conduitTheme.iconSecondary, + ), + ), + SizedBox(height: isCompact ? Spacing.sm : Spacing.md), + Text( + title, + style: AppTypography.headlineSmallStyle.copyWith( + color: context.conduitTheme.textPrimary, + fontWeight: FontWeight.w600, + ), + textAlign: TextAlign.center, + ), + SizedBox(height: Spacing.sm), + Text( + message, + style: AppTypography.standard.copyWith( + color: context.conduitTheme.textSecondary, + ), + textAlign: TextAlign.center, + ), + if (action != null) ...[ + SizedBox(height: isCompact ? Spacing.md : Spacing.lg), + action!, + ], + ], + ), + ), + ); + } +} + +class ConduitAvatar extends StatelessWidget { + final double size; + final IconData? icon; + final String? text; + final bool isCompact; + + const ConduitAvatar({ + super.key, + this.size = 32, + this.icon, + this.text, + this.isCompact = false, + }); + + @override + Widget build(BuildContext context) { + return BrandService.createBrandAvatar( + size: isCompact ? size * 0.8 : size, + fallbackText: text, + ); + } +} + +class ConduitBadge extends StatelessWidget { + final String text; + final Color? backgroundColor; + final Color? textColor; + final bool isCompact; + + const ConduitBadge({ + super.key, + required this.text, + this.backgroundColor, + this.textColor, + this.isCompact = false, + }); + + @override + Widget build(BuildContext context) { + return Container( + padding: EdgeInsets.symmetric( + horizontal: isCompact ? Spacing.sm : Spacing.md, + vertical: isCompact ? Spacing.xs : Spacing.sm, + ), + decoration: BoxDecoration( + color: + backgroundColor ?? + context.conduitTheme.buttonPrimary.withValues( + alpha: Alpha.badgeBackground, + ), + borderRadius: BorderRadius.circular(AppBorderRadius.badge), + ), + child: Text( + text, + style: AppTypography.small.copyWith( + color: textColor ?? context.conduitTheme.buttonPrimary, + fontWeight: FontWeight.w600, + ), + ), + ); + } +} + +class ConduitChip extends StatelessWidget { + final String label; + final VoidCallback? onTap; + final bool isSelected; + final IconData? icon; + final bool isCompact; + + const ConduitChip({ + super.key, + required this.label, + this.onTap, + this.isSelected = false, + this.icon, + this.isCompact = false, + }); + + @override + Widget build(BuildContext context) { + return GestureDetector( + onTap: onTap, + child: Container( + padding: EdgeInsets.symmetric( + horizontal: isCompact ? Spacing.sm : Spacing.md, + vertical: isCompact ? Spacing.xs : Spacing.sm, + ), + decoration: BoxDecoration( + color: isSelected + ? context.conduitTheme.buttonPrimary.withValues( + alpha: Alpha.highlight, + ) + : context.conduitTheme.surfaceContainer, + borderRadius: BorderRadius.circular(AppBorderRadius.chip), + border: Border.all( + color: isSelected + ? context.conduitTheme.buttonPrimary.withValues( + alpha: Alpha.standard, + ) + : context.conduitTheme.dividerColor, + width: BorderWidth.standard, + ), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + if (icon != null) ...[ + Icon( + icon, + size: isCompact ? IconSize.xs : IconSize.small, + color: isSelected + ? context.conduitTheme.buttonPrimary + : context.conduitTheme.iconSecondary, + ), + SizedBox(width: Spacing.iconSpacing), + ], + Text( + label, + style: AppTypography.small.copyWith( + color: isSelected + ? context.conduitTheme.buttonPrimary + : context.conduitTheme.textSecondary, + fontWeight: FontWeight.w500, + ), + ), + ], + ), + ), + ); + } +} + +class ConduitDivider extends StatelessWidget { + final bool isCompact; + final Color? color; + + const ConduitDivider({super.key, this.isCompact = false, this.color}); + + @override + Widget build(BuildContext context) { + return Container( + height: BorderWidth.standard, + color: color ?? context.conduitTheme.dividerColor, + margin: EdgeInsets.symmetric( + vertical: isCompact ? Spacing.sm : Spacing.md, + ), + ); + } +} + +class ConduitSpacer extends StatelessWidget { + final double height; + final bool isCompact; + + const ConduitSpacer({super.key, this.height = 16, this.isCompact = false}); + + @override + Widget build(BuildContext context) { + return SizedBox(height: isCompact ? height * 0.5 : height); + } +} + +/// Enhanced form field with better accessibility and validation +class AccessibleFormField extends StatelessWidget { + final String? label; + final String? hint; + final TextEditingController? controller; + final ValueChanged? onChanged; + final ValueChanged? onSubmitted; + final VoidCallback? onTap; + final bool obscureText; + final bool enabled; + final String? errorText; + final int? maxLines; + final Widget? suffixIcon; + final Widget? prefixIcon; + final TextInputType? keyboardType; + final bool autofocus; + final String? semanticLabel; + final String? Function(String?)? validator; + final bool isRequired; + final bool isCompact; + + const AccessibleFormField({ + super.key, + this.label, + this.hint, + this.controller, + this.onChanged, + this.onSubmitted, + this.onTap, + this.obscureText = false, + this.enabled = true, + this.errorText, + this.maxLines = 1, + this.suffixIcon, + this.prefixIcon, + this.keyboardType, + this.autofocus = false, + this.semanticLabel, + this.validator, + this.isRequired = false, + this.isCompact = false, + }); + + @override + Widget build(BuildContext context) { + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + if (label != null) ...[ + Row( + children: [ + Text( + label!, + style: AppTypography.standard.copyWith( + fontWeight: FontWeight.w500, + color: context.conduitTheme.textPrimary, + ), + ), + if (isRequired) ...[ + SizedBox(width: Spacing.textSpacing), + Text( + '*', + style: AppTypography.standard.copyWith( + color: context.conduitTheme.error, + fontWeight: FontWeight.w600, + ), + ), + ], + ], + ), + SizedBox(height: isCompact ? Spacing.xs : Spacing.sm), + ], + Semantics( + label: semanticLabel ?? label ?? 'Input field', + textField: true, + child: TextFormField( + controller: controller, + onChanged: onChanged, + onTap: onTap, + onFieldSubmitted: onSubmitted, + obscureText: obscureText, + enabled: enabled, + maxLines: maxLines, + keyboardType: keyboardType, + autofocus: autofocus, + validator: validator, + style: AppTypography.standard.copyWith( + color: context.conduitTheme.textPrimary, + ), + decoration: InputDecoration( + hintText: hint, + hintStyle: AppTypography.standard.copyWith( + color: context.conduitTheme.inputPlaceholder, + ), + filled: true, + fillColor: context.conduitTheme.inputBackground, + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.input), + borderSide: BorderSide( + color: context.conduitTheme.inputBorder, + width: BorderWidth.standard, + ), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.input), + borderSide: BorderSide( + color: context.conduitTheme.inputBorder, + width: BorderWidth.standard, + ), + ), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.input), + borderSide: BorderSide( + color: context.conduitTheme.buttonPrimary, + width: BorderWidth.thick, + ), + ), + errorBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.input), + borderSide: BorderSide( + color: context.conduitTheme.error, + width: BorderWidth.standard, + ), + ), + focusedErrorBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.input), + borderSide: BorderSide( + color: context.conduitTheme.error, + width: BorderWidth.thick, + ), + ), + contentPadding: EdgeInsets.symmetric( + horizontal: isCompact ? Spacing.md : Spacing.inputPadding, + vertical: isCompact ? Spacing.sm : Spacing.md, + ), + suffixIcon: suffixIcon, + prefixIcon: prefixIcon, + errorText: errorText, + errorStyle: AppTypography.small.copyWith( + color: context.conduitTheme.error, + ), + ), + ), + ), + ], + ); + } +} + +/// Enhanced section header with better typography +class ConduitSectionHeader extends StatelessWidget { + final String title; + final String? subtitle; + final Widget? action; + final bool isCompact; + + const ConduitSectionHeader({ + super.key, + required this.title, + this.subtitle, + this.action, + this.isCompact = false, + }); + + @override + Widget build(BuildContext context) { + return Padding( + padding: EdgeInsets.symmetric( + horizontal: isCompact ? Spacing.md : Spacing.pagePadding, + vertical: isCompact ? Spacing.sm : Spacing.md, + ), + child: Row( + children: [ + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + title, + style: AppTypography.headlineSmallStyle.copyWith( + color: context.conduitTheme.textPrimary, + fontWeight: FontWeight.w600, + ), + ), + if (subtitle != null) ...[ + SizedBox(height: Spacing.textSpacing), + Text( + subtitle!, + style: AppTypography.standard.copyWith( + color: context.conduitTheme.textSecondary, + ), + ), + ], + ], + ), + ), + if (action != null) ...[SizedBox(width: Spacing.md), action!], + ], + ), + ); + } +} + +/// Enhanced list item with better consistency +class ConduitListItem extends StatelessWidget { + final Widget leading; + final Widget title; + final Widget? subtitle; + final Widget? trailing; + final VoidCallback? onTap; + final bool isSelected; + final bool isCompact; + + const ConduitListItem({ + super.key, + required this.leading, + required this.title, + this.subtitle, + this.trailing, + this.onTap, + this.isSelected = false, + this.isCompact = false, + }); + + @override + Widget build(BuildContext context) { + return GestureDetector( + onTap: onTap, + child: Container( + padding: EdgeInsets.all( + isCompact ? Spacing.sm : Spacing.listItemPadding, + ), + decoration: BoxDecoration( + color: isSelected + ? context.conduitTheme.buttonPrimary.withValues( + alpha: Alpha.highlight, + ) + : Colors.transparent, + borderRadius: BorderRadius.circular(AppBorderRadius.standard), + ), + child: Row( + children: [ + leading, + SizedBox(width: isCompact ? Spacing.sm : Spacing.md), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + title, + if (subtitle != null) ...[ + SizedBox(height: Spacing.textSpacing), + subtitle!, + ], + ], + ), + ), + if (trailing != null) ...[ + SizedBox(width: isCompact ? Spacing.sm : Spacing.md), + trailing!, + ], + ], + ), + ), + ); + } +} diff --git a/lib/shared/widgets/empty_states.dart b/lib/shared/widgets/empty_states.dart new file mode 100644 index 0000000..6eb415e --- /dev/null +++ b/lib/shared/widgets/empty_states.dart @@ -0,0 +1,448 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter_animate/flutter_animate.dart'; +import 'dart:io' show Platform; +import '../theme/theme_extensions.dart'; + +import '../services/brand_service.dart'; + +/// Enhanced empty state widgets with illustrations and actions +class ConduitEmptyState extends StatelessWidget { + final String title; + final String? subtitle; + final IconData? icon; + final Widget? illustration; + final List? actions; + final bool isLoading; + + const ConduitEmptyState({ + super.key, + required this.title, + this.subtitle, + this.icon, + this.illustration, + this.actions, + this.isLoading = false, + }); + + @override + Widget build(BuildContext context) { + final conduitTheme = context.conduitTheme; + + return Center( + child: Padding( + padding: const EdgeInsets.all(Spacing.xl), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + // Illustration or icon + if (illustration != null) + illustration! + else if (icon != null) + Container( + width: IconSize.xxl * 2.5, // 120px equivalent + height: IconSize.xxl * 2.5, // 120px equivalent + decoration: BoxDecoration( + color: conduitTheme.cardBackground, + shape: BoxShape.circle, + border: Border.all(color: conduitTheme.cardBorder, width: 2), + ), + child: Icon( + icon!, + size: IconSize.xxl, + color: context.conduitTheme.iconSecondary, + ), + ) + else + // Default to brand icon when no specific icon or illustration provided + BrandService.createBrandEmptyStateIcon( + size: IconSize.xxl * 2.5, // 120px equivalent + showBackground: true, + ), + + const SizedBox(height: Spacing.xl), + + // Title + Text( + title, + style: conduitTheme.headingMedium, + textAlign: TextAlign.center, + ), + + // Subtitle + if (subtitle != null) ...[ + const SizedBox(height: Spacing.xs), + Text( + subtitle!, + style: conduitTheme.bodyMedium?.copyWith( + color: context.conduitTheme.textSecondary, + ), + textAlign: TextAlign.center, + ), + ], + + // Actions + if (actions != null && actions!.isNotEmpty) ...[ + const SizedBox(height: Spacing.xl), + ...actions!.map( + (action) => Padding( + padding: const EdgeInsets.only(bottom: Spacing.xs), + child: _buildActionButton(context, action), + ), + ), + ], + ], + ), + ), + ).animate().fadeIn( + duration: const Duration(milliseconds: 300), + curve: Curves.easeOut, + ); + } + + Widget _buildActionButton(BuildContext context, EmptyStateAction action) { + return SizedBox( + width: double.infinity, + child: FilledButton( + onPressed: action.onPressed, + style: action.isPrimary + ? FilledButton.styleFrom( + backgroundColor: context.conduitTheme.buttonPrimary, + foregroundColor: context.conduitTheme.buttonPrimaryText, + ) + : FilledButton.styleFrom( + backgroundColor: Colors.transparent, + foregroundColor: context.conduitTheme.textSecondary, + side: BorderSide( + color: context.conduitTheme.dividerColor, + width: 1, + ), + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + if (action.icon != null) ...[ + Icon(action.icon, size: IconSize.md), + const SizedBox(width: Spacing.sm), + ], + Text(action.label), + ], + ), + ), + ); + } +} + +/// Action for empty states +class EmptyStateAction { + final String label; + final VoidCallback onPressed; + final IconData? icon; + final bool isPrimary; + + const EmptyStateAction({ + required this.label, + required this.onPressed, + this.icon, + this.isPrimary = true, + }); +} + +/// Chat-specific empty state +class ChatEmptyState extends StatelessWidget { + final VoidCallback? onStartChat; + + const ChatEmptyState({super.key, this.onStartChat}); + + @override + Widget build(BuildContext context) { + return ConduitEmptyState( + title: 'Start a conversation', + subtitle: + 'Ask me anything! I\'m here to help with questions, creative tasks, analysis, and more.', + // Remove custom illustration to use default brand icon + icon: BrandService.primaryIcon, + actions: onStartChat != null + ? [ + EmptyStateAction( + label: 'Start chatting', + icon: BrandService.primaryIcon, + onPressed: onStartChat!, + ), + ] + : null, + ); + } +} + +/// Files empty state +class FilesEmptyState extends StatelessWidget { + final VoidCallback? onUploadFile; + + const FilesEmptyState({super.key, this.onUploadFile}); + + @override + Widget build(BuildContext context) { + return ConduitEmptyState( + title: 'No files yet', + subtitle: + 'Upload documents, images, or other files to get started with your knowledge base.', + illustration: Builder( + builder: (context) => _buildFilesIllustration(context), + ), + actions: onUploadFile != null + ? [ + EmptyStateAction( + label: 'Upload files', + icon: Platform.isIOS + ? CupertinoIcons.doc_on_doc + : Icons.upload_file, + onPressed: onUploadFile!, + ), + ] + : null, + ); + } + + Widget _buildFilesIllustration(BuildContext context) { + return SizedBox( + width: 120, + height: 120, + child: Stack( + alignment: Alignment.center, + children: [ + // Background circle + Container( + width: IconSize.xxl * 2.5, // 120px equivalent + height: IconSize.xxl * 2.5, // 120px equivalent + decoration: BoxDecoration( + color: context.conduitTheme.info.withValues(alpha: 0.1), + shape: BoxShape.circle, + ), + ), + // File stack + ...List.generate(3, (index) { + return Positioned( + top: 30 + (index * 8.0), + left: 30 + (index * 4.0), + child: + Container( + width: TouchTarget.minimum, + height: 50, + decoration: BoxDecoration( + color: [ + context.conduitTheme.info, + context.conduitTheme.success, + context.conduitTheme.warning, + ][index], + borderRadius: BorderRadius.circular( + AppBorderRadius.xs, + ), + ), + child: Icon( + [Icons.description, Icons.image, Icons.folder][index], + color: context.conduitTheme.textInverse, + size: IconSize.md, + ), + ) + .animate(delay: Duration(milliseconds: index * 200)) + .fadeIn() + .slideY(begin: 0.3, end: 0), + ); + }), + ], + ), + ); + } +} + +/// Tools empty state +class ToolsEmptyState extends StatelessWidget { + final VoidCallback? onExploreTools; + + const ToolsEmptyState({super.key, this.onExploreTools}); + + @override + Widget build(BuildContext context) { + return ConduitEmptyState( + title: 'Powerful tools await', + subtitle: 'Discover tools to enhance your productivity and creativity.', + illustration: Builder( + builder: (context) => _buildToolsIllustration(context), + ), + actions: onExploreTools != null + ? [ + EmptyStateAction( + label: 'Explore tools', + icon: Platform.isIOS + ? CupertinoIcons.wand_stars + : Icons.auto_awesome, + onPressed: onExploreTools!, + ), + ] + : null, + ); + } + + Widget _buildToolsIllustration(BuildContext context) { + return SizedBox( + width: 120, + height: 120, + child: Stack( + alignment: Alignment.center, + children: [ + // Background circle + Container( + width: IconSize.xxl * 2.5, // 120px equivalent + height: IconSize.xxl * 2.5, // 120px equivalent + decoration: BoxDecoration( + color: context.conduitTheme.buttonPrimary.withValues(alpha: 0.1), + shape: BoxShape.circle, + ), + ), + // Tools arrangement + ...List.generate(6, (index) { + final angle = (index * 60) * (3.14159 / 180); + final radius = 35.0; + return Positioned( + top: 60 + (radius * -cos(angle)) - 15, + left: 60 + (radius * sin(angle)) - 15, + child: + Container( + width: Spacing.xl - Spacing.xxs, // 30px equivalent + height: Spacing.xl - Spacing.xxs, // 30px equivalent + decoration: BoxDecoration( + color: context.conduitTheme.buttonPrimary, + shape: BoxShape.circle, + ), + child: Icon( + [ + Icons.palette, + Icons.calculate, + Icons.code, + Icons.translate, + Icons.music_note, + Icons.analytics, + ][index], + color: context.conduitTheme.textInverse, + size: IconSize.sm, + ), + ) + .animate(delay: Duration(milliseconds: index * 100)) + .fadeIn() + .scale( + begin: const Offset(0.5, 0.5), + end: const Offset(1.0, 1.0), + ), + ); + }), + ], + ), + ); + } +} + +/// Search results empty state +class SearchEmptyState extends StatelessWidget { + final String query; + final VoidCallback? onClearSearch; + + const SearchEmptyState({super.key, required this.query, this.onClearSearch}); + + @override + Widget build(BuildContext context) { + return ConduitEmptyState( + title: 'No results found', + subtitle: 'No results for "$query". Try adjusting your search terms.', + icon: Platform.isIOS ? CupertinoIcons.search : Icons.search_off, + actions: onClearSearch != null + ? [ + EmptyStateAction( + label: 'Clear search', + icon: Platform.isIOS ? CupertinoIcons.clear : Icons.clear, + onPressed: onClearSearch!, + isPrimary: false, + ), + ] + : null, + ); + } +} + +/// Connection error empty state +class ConnectionEmptyState extends StatelessWidget { + final VoidCallback? onRetry; + + const ConnectionEmptyState({super.key, this.onRetry}); + + @override + Widget build(BuildContext context) { + return ConduitEmptyState( + title: 'Connection problem', + subtitle: + 'Unable to load content. Please check your connection and try again.', + icon: Platform.isIOS ? CupertinoIcons.wifi_slash : Icons.wifi_off, + actions: onRetry != null + ? [ + EmptyStateAction( + label: 'Try again', + icon: Platform.isIOS ? CupertinoIcons.refresh : Icons.refresh, + onPressed: onRetry!, + ), + ] + : null, + ); + } +} + +/// Generic empty state with custom illustration +class CustomEmptyState extends StatelessWidget { + final String title; + final String subtitle; + final Widget illustration; + final List? actions; + + const CustomEmptyState({ + super.key, + required this.title, + required this.subtitle, + required this.illustration, + this.actions, + }); + + @override + Widget build(BuildContext context) { + return ConduitEmptyState( + title: title, + subtitle: subtitle, + illustration: illustration, + actions: actions, + ); + } +} + +// Helper function to get cosine +double cos(double radians) { + // Simple cosine approximation for illustration positioning + if (radians == 0) return 1.0; + if (radians == 1.5708) return 0.0; // π/2 + if (radians == 3.14159) return -1.0; // π + if (radians == 4.71239) return 0.0; // 3π/2 + + // Taylor series approximation for other values + double x2 = radians * radians; + return 1 - x2 / 2 + x2 * x2 / 24 - x2 * x2 * x2 / 720; +} + +// Helper function to get sine +double sin(double radians) { + // Simple sine approximation for illustration positioning + if (radians == 0) return 0.0; + if (radians == 1.5708) return 1.0; // π/2 + if (radians == 3.14159) return 0.0; // π + if (radians == 4.71239) return -1.0; // 3π/2 + + // Taylor series approximation for other values + double x2 = radians * radians; + return radians - radians * x2 / 6 + radians * x2 * x2 / 120; +} diff --git a/lib/shared/widgets/error_widgets.dart b/lib/shared/widgets/error_widgets.dart new file mode 100644 index 0000000..ac2a5f1 --- /dev/null +++ b/lib/shared/widgets/error_widgets.dart @@ -0,0 +1,397 @@ +import 'package:flutter/material.dart'; +import '../theme/theme_extensions.dart'; +import 'conduit_components.dart'; + +/// Enhanced error widget with production-grade design and better hierarchy +class ConduitErrorWidget extends StatelessWidget { + final String title; + final String message; + final String? actionLabel; + final VoidCallback? onAction; + final IconData? icon; + final bool isCompact; + + const ConduitErrorWidget({ + super.key, + required this.title, + required this.message, + this.actionLabel, + this.onAction, + this.icon, + this.isCompact = false, + }); + + @override + Widget build(BuildContext context) { + return Container( + padding: EdgeInsets.all(isCompact ? Spacing.md : Spacing.cardPadding), + decoration: BoxDecoration( + color: context.conduitTheme.errorBackground.withValues( + alpha: Alpha.badgeBackground, + ), + borderRadius: BorderRadius.circular(AppBorderRadius.card), + border: Border.all( + color: context.conduitTheme.error.withValues(alpha: Alpha.subtle), + width: BorderWidth.standard, + ), + boxShadow: ConduitShadows.card, + ), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Icon( + icon ?? Icons.error_outline, + size: isCompact ? IconSize.large : IconSize.xl, + color: context.conduitTheme.error, + ), + SizedBox(height: isCompact ? Spacing.sm : Spacing.md), + Text( + title, + style: AppTypography.headlineSmallStyle.copyWith( + color: context.conduitTheme.error, + fontWeight: FontWeight.w600, + ), + textAlign: TextAlign.center, + ), + SizedBox(height: isCompact ? Spacing.xs : Spacing.sm), + Text( + message, + style: AppTypography.standard.copyWith( + color: context.conduitTheme.textSecondary, + ), + textAlign: TextAlign.center, + ), + if (actionLabel != null && onAction != null) ...[ + SizedBox(height: isCompact ? Spacing.md : Spacing.lg), + SizedBox( + width: double.infinity, + child: ConduitButton( + text: actionLabel!, + onPressed: onAction, + isDestructive: true, + isCompact: isCompact, + ), + ), + ], + ], + ), + ); + } +} + +/// Enhanced network error widget with better hierarchy +class NetworkErrorWidget extends StatelessWidget { + final VoidCallback? onRetry; + final String? customMessage; + final bool isCompact; + + const NetworkErrorWidget({ + super.key, + this.onRetry, + this.customMessage, + this.isCompact = false, + }); + + @override + Widget build(BuildContext context) { + return ConduitErrorWidget( + title: 'Connection Error', + message: + customMessage ?? + 'Unable to connect to the server. Please check your internet connection and try again.', + actionLabel: 'Retry', + onAction: onRetry, + icon: Icons.wifi_off, + isCompact: isCompact, + ); + } +} + +/// Enhanced empty state widget with better hierarchy +class EmptyStateWidget extends StatelessWidget { + final String title; + final String message; + final IconData? icon; + final String? actionLabel; + final VoidCallback? onAction; + final bool isCompact; + + const EmptyStateWidget({ + super.key, + required this.title, + required this.message, + this.icon, + this.actionLabel, + this.onAction, + this.isCompact = false, + }); + + @override + Widget build(BuildContext context) { + return Container( + padding: EdgeInsets.all(isCompact ? Spacing.md : Spacing.cardPadding), + decoration: BoxDecoration( + color: context.conduitTheme.cardBackground, + borderRadius: BorderRadius.circular(AppBorderRadius.card), + border: Border.all( + color: context.conduitTheme.cardBorder, + width: BorderWidth.standard, + ), + boxShadow: ConduitShadows.card, + ), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Icon( + icon ?? Icons.inbox_outlined, + size: isCompact ? IconSize.large : IconSize.xxl, + color: context.conduitTheme.iconSecondary, + ), + SizedBox(height: isCompact ? Spacing.sm : Spacing.md), + Text( + title, + style: AppTypography.headlineSmallStyle.copyWith( + color: context.conduitTheme.textPrimary, + fontWeight: FontWeight.w600, + ), + textAlign: TextAlign.center, + ), + SizedBox(height: isCompact ? Spacing.xs : Spacing.sm), + Text( + message, + style: AppTypography.standard.copyWith( + color: context.conduitTheme.textSecondary, + ), + textAlign: TextAlign.center, + ), + if (actionLabel != null && onAction != null) ...[ + SizedBox(height: isCompact ? Spacing.md : Spacing.lg), + SizedBox( + width: double.infinity, + child: ConduitButton( + text: actionLabel!, + onPressed: onAction, + isCompact: isCompact, + ), + ), + ], + ], + ), + ); + } +} + +/// Enhanced loading error widget with better hierarchy +class LoadingErrorWidget extends StatelessWidget { + final String message; + final VoidCallback? onRetry; + final bool isCompact; + + const LoadingErrorWidget({ + super.key, + required this.message, + this.onRetry, + this.isCompact = false, + }); + + @override + Widget build(BuildContext context) { + return ConduitErrorWidget( + title: 'Loading Failed', + message: message, + actionLabel: onRetry != null ? 'Try Again' : null, + onAction: onRetry, + icon: Icons.error_outline, + isCompact: isCompact, + ); + } +} + +/// Enhanced validation error widget with better hierarchy +class ValidationErrorWidget extends StatelessWidget { + final String fieldName; + final String message; + final VoidCallback? onFix; + final bool isCompact; + + const ValidationErrorWidget({ + super.key, + required this.fieldName, + required this.message, + this.onFix, + this.isCompact = false, + }); + + @override + Widget build(BuildContext context) { + return ConduitErrorWidget( + title: 'Invalid $fieldName', + message: message, + actionLabel: onFix != null ? 'Fix Now' : null, + onAction: onFix, + icon: Icons.warning_amber_outlined, + isCompact: isCompact, + ); + } +} + +/// Enhanced permission error widget with better hierarchy +class PermissionErrorWidget extends StatelessWidget { + final String permission; + final String message; + final VoidCallback? onGrant; + final bool isCompact; + + const PermissionErrorWidget({ + super.key, + required this.permission, + required this.message, + this.onGrant, + this.isCompact = false, + }); + + @override + Widget build(BuildContext context) { + return ConduitErrorWidget( + title: 'Permission Required', + message: 'This app needs $permission permission to $message.', + actionLabel: onGrant != null ? 'Grant Permission' : null, + onAction: onGrant, + icon: Icons.security, + isCompact: isCompact, + ); + } +} + +/// Enhanced server error widget with better hierarchy +class ServerErrorWidget extends StatelessWidget { + final String error; + final VoidCallback? onRetry; + final bool isCompact; + + const ServerErrorWidget({ + super.key, + required this.error, + this.onRetry, + this.isCompact = false, + }); + + @override + Widget build(BuildContext context) { + return ConduitErrorWidget( + title: 'Server Error', + message: error, + actionLabel: onRetry != null ? 'Retry' : null, + onAction: onRetry, + icon: Icons.cloud_off, + isCompact: isCompact, + ); + } +} + +/// Enhanced file error widget with better hierarchy +class FileErrorWidget extends StatelessWidget { + final String fileName; + final String error; + final VoidCallback? onRetry; + final bool isCompact; + + const FileErrorWidget({ + super.key, + required this.fileName, + required this.error, + this.onRetry, + this.isCompact = false, + }); + + @override + Widget build(BuildContext context) { + return ConduitErrorWidget( + title: 'File Error', + message: 'Failed to process $fileName: $error', + actionLabel: onRetry != null ? 'Try Again' : null, + onAction: onRetry, + icon: Icons.file_present, + isCompact: isCompact, + ); + } +} + +/// Enhanced authentication error widget with better hierarchy +class AuthErrorWidget extends StatelessWidget { + final String message; + final VoidCallback? onLogin; + final bool isCompact; + + const AuthErrorWidget({ + super.key, + required this.message, + this.onLogin, + this.isCompact = false, + }); + + @override + Widget build(BuildContext context) { + return ConduitErrorWidget( + title: 'Authentication Required', + message: message, + actionLabel: onLogin != null ? 'Sign In' : null, + onAction: onLogin, + icon: Icons.lock_outline, + isCompact: isCompact, + ); + } +} + +/// Enhanced offline error widget with better hierarchy +class OfflineErrorWidget extends StatelessWidget { + final String message; + final VoidCallback? onRetry; + final bool isCompact; + + const OfflineErrorWidget({ + super.key, + this.message = + 'You\'re currently offline. Please check your internet connection.', + this.onRetry, + this.isCompact = false, + }); + + @override + Widget build(BuildContext context) { + return ConduitErrorWidget( + title: 'Offline', + message: message, + actionLabel: onRetry != null ? 'Retry' : null, + onAction: onRetry, + icon: Icons.wifi_off, + isCompact: isCompact, + ); + } +} + +/// Enhanced timeout error widget with better hierarchy +class TimeoutErrorWidget extends StatelessWidget { + final String operation; + final VoidCallback? onRetry; + final bool isCompact; + + const TimeoutErrorWidget({ + super.key, + required this.operation, + this.onRetry, + this.isCompact = false, + }); + + @override + Widget build(BuildContext context) { + return ConduitErrorWidget( + title: 'Request Timeout', + message: 'The $operation request timed out. Please try again.', + actionLabel: onRetry != null ? 'Retry' : null, + onAction: onRetry, + icon: Icons.timer_off, + isCompact: isCompact, + ); + } +} diff --git a/lib/shared/widgets/improved_loading_states.dart b/lib/shared/widgets/improved_loading_states.dart new file mode 100644 index 0000000..824301e --- /dev/null +++ b/lib/shared/widgets/improved_loading_states.dart @@ -0,0 +1,666 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/semantics.dart'; +import 'package:flutter_animate/flutter_animate.dart'; +import 'skeleton_loader.dart'; +import '../theme/theme_extensions.dart'; +import 'conduit_components.dart'; + +/// Improved loading state widget with accessibility and better hierarchy +class ImprovedLoadingState extends StatefulWidget { + final String? message; + final bool showProgress; + final double? progress; + final Widget? customWidget; + final bool useSkeletonLoader; + final int skeletonCount; + final double skeletonHeight; + final bool isCompact; + + const ImprovedLoadingState({ + super.key, + this.message, + this.showProgress = false, + this.progress, + this.customWidget, + this.useSkeletonLoader = false, + this.skeletonCount = 3, + this.skeletonHeight = 100, + this.isCompact = false, + }); + + @override + State createState() => _ImprovedLoadingStateState(); +} + +class _ImprovedLoadingStateState extends State + with SingleTickerProviderStateMixin { + late AnimationController _animationController; + late Animation _fadeAnimation; + + @override + void initState() { + super.initState(); + _animationController = AnimationController( + duration: AnimationDuration.standard, + vsync: this, + ); + _fadeAnimation = CurvedAnimation( + parent: _animationController, + curve: AnimationCurves.standard, + ); + _animationController.forward(); + + // Announce loading state for screen readers + if (widget.message != null) { + WidgetsBinding.instance.addPostFrameCallback((_) { + SemanticsService.announce( + 'Loading: ${widget.message}', + TextDirection.ltr, + ); + }); + } + } + + @override + void dispose() { + _animationController.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + if (widget.customWidget != null) { + return widget.customWidget!; + } + + if (widget.useSkeletonLoader) { + return _buildSkeletonLoader(); + } + + return FadeTransition( + opacity: _fadeAnimation, + child: Center( + child: Semantics( + label: widget.message ?? 'Loading content', + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + if (widget.showProgress && widget.progress != null) + _buildProgressIndicator() + else + _buildCircularIndicator(), + + if (widget.message != null) ...[ + SizedBox(height: widget.isCompact ? Spacing.sm : Spacing.md), + Text( + widget.message!, + style: AppTypography.standard.copyWith( + color: context.conduitTheme.textSecondary, + ), + textAlign: TextAlign.center, + ), + ], + ], + ), + ), + ), + ); + } + + Widget _buildCircularIndicator() { + return SizedBox( + width: widget.isCompact ? IconSize.large : IconSize.xxl, + height: widget.isCompact ? IconSize.large : IconSize.xxl, + child: CircularProgressIndicator( + strokeWidth: widget.isCompact ? 2 : 3, + valueColor: AlwaysStoppedAnimation( + context.conduitTheme.buttonPrimary, + ), + ), + ); + } + + Widget _buildProgressIndicator() { + return Column( + children: [ + SizedBox( + width: widget.isCompact ? 150 : 200, + child: LinearProgressIndicator( + value: widget.progress, + minHeight: widget.isCompact ? 3 : 4, + backgroundColor: context.conduitTheme.dividerColor, + valueColor: AlwaysStoppedAnimation( + context.conduitTheme.buttonPrimary, + ), + ), + ), + SizedBox(height: widget.isCompact ? Spacing.xs : Spacing.sm), + Text( + '${(widget.progress! * 100).toInt()}%', + style: AppTypography.small.copyWith( + color: context.conduitTheme.textSecondary, + ), + ), + ], + ); + } + + Widget _buildSkeletonLoader() { + return ListView.builder( + shrinkWrap: true, + physics: const NeverScrollableScrollPhysics(), + itemCount: widget.skeletonCount, + itemBuilder: (context, index) => Padding( + padding: EdgeInsets.symmetric( + horizontal: widget.isCompact ? Spacing.sm : Spacing.md, + vertical: widget.isCompact ? Spacing.xs : Spacing.sm, + ), + child: SkeletonLoader( + height: widget.skeletonHeight, + isCompact: widget.isCompact, + ), + ), + ); + } +} + +/// Improved empty state with better UX and hierarchy +class ImprovedEmptyState extends StatelessWidget { + final String title; + final String? subtitle; + final IconData? icon; + final Widget? customIcon; + final VoidCallback? onAction; + final String? actionLabel; + final bool showAnimation; + final bool isCompact; + + const ImprovedEmptyState({ + super.key, + required this.title, + this.subtitle, + this.icon, + this.customIcon, + this.onAction, + this.actionLabel, + this.showAnimation = true, + this.isCompact = false, + }); + + @override + Widget build(BuildContext context) { + final theme = context.conduitTheme; + + Widget content = Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + // Icon or custom widget + if (customIcon != null) + customIcon! + else if (icon != null) + showAnimation + ? TweenAnimationBuilder( + tween: Tween(begin: 0.0, end: 1.0), + duration: AnimationDuration.standard, + curve: AnimationCurves.elastic, + builder: (context, value, child) => Transform.scale( + scale: value, + child: Icon( + icon, + size: isCompact ? IconSize.large : IconSize.xxl, + color: theme.iconSecondary, + ), + ), + ) + : Icon( + icon, + size: isCompact ? IconSize.large : IconSize.xxl, + color: theme.iconSecondary, + ), + + SizedBox(height: isCompact ? Spacing.md : Spacing.lg), + + // Title + Text( + title, + style: AppTypography.headlineSmallStyle.copyWith( + color: theme.textPrimary, + fontWeight: FontWeight.w600, + ), + textAlign: TextAlign.center, + ), + + // Subtitle + if (subtitle != null) ...[ + SizedBox(height: isCompact ? Spacing.xs : Spacing.sm), + Text( + subtitle!, + style: AppTypography.standard.copyWith(color: theme.textSecondary), + textAlign: TextAlign.center, + ), + ], + + // Action button + if (actionLabel != null && onAction != null) ...[ + SizedBox(height: isCompact ? Spacing.md : Spacing.lg), + ConduitButton( + text: actionLabel!, + onPressed: onAction, + isCompact: isCompact, + ), + ], + ], + ); + + return Center( + child: Padding( + padding: EdgeInsets.all(isCompact ? Spacing.md : Spacing.lg), + child: showAnimation + ? content.animate().fadeIn( + duration: AnimationDuration.standard, + curve: AnimationCurves.standard, + ) + : content, + ), + ); + } +} + +/// Enhanced loading overlay with better hierarchy +class LoadingOverlay extends StatelessWidget { + final Widget child; + final bool isLoading; + final String? message; + final bool isCompact; + + const LoadingOverlay({ + super.key, + required this.child, + required this.isLoading, + this.message, + this.isCompact = false, + }); + + @override + Widget build(BuildContext context) { + return Stack( + children: [ + child, + if (isLoading) + Container( + color: context.conduitTheme.surfaceBackground.withValues( + alpha: Alpha.overlay, + ), + child: Center( + child: Container( + padding: EdgeInsets.all(isCompact ? Spacing.md : Spacing.lg), + decoration: BoxDecoration( + color: context.conduitTheme.cardBackground, + borderRadius: BorderRadius.circular(AppBorderRadius.card), + boxShadow: ConduitShadows.card, + ), + child: ImprovedLoadingState( + message: message, + isCompact: isCompact, + ), + ), + ), + ), + ], + ); + } +} + +/// Enhanced loading button with better hierarchy +class LoadingButton extends StatefulWidget { + final String text; + final VoidCallback? onPressed; + final bool isLoading; + final bool isDestructive; + final bool isSecondary; + final IconData? icon; + final double? width; + final bool isFullWidth; + final bool isCompact; + + const LoadingButton({ + super.key, + required this.text, + this.onPressed, + this.isLoading = false, + this.isDestructive = false, + this.isSecondary = false, + this.icon, + this.width, + this.isFullWidth = false, + this.isCompact = false, + }); + + @override + State createState() => _LoadingButtonState(); +} + +class _LoadingButtonState extends State { + @override + Widget build(BuildContext context) { + return ConduitButton( + text: widget.text, + onPressed: widget.isLoading ? null : widget.onPressed, + isLoading: widget.isLoading, + isDestructive: widget.isDestructive, + isSecondary: widget.isSecondary, + icon: widget.icon, + width: widget.width, + isFullWidth: widget.isFullWidth, + isCompact: widget.isCompact, + ); + } +} + +/// Enhanced loading list with better hierarchy +class LoadingList extends StatelessWidget { + final bool isLoading; + final Widget child; + final int skeletonCount; + final double skeletonHeight; + final bool isCompact; + + const LoadingList({ + super.key, + required this.isLoading, + required this.child, + this.skeletonCount = 5, + this.skeletonHeight = 80, + this.isCompact = false, + }); + + @override + Widget build(BuildContext context) { + if (isLoading) { + return ListView.builder( + shrinkWrap: true, + physics: const NeverScrollableScrollPhysics(), + itemCount: skeletonCount, + itemBuilder: (context, index) => Padding( + padding: EdgeInsets.symmetric( + horizontal: isCompact ? Spacing.sm : Spacing.md, + vertical: isCompact ? Spacing.xs : Spacing.sm, + ), + child: SkeletonLoader(height: skeletonHeight, isCompact: isCompact), + ), + ); + } + + return child; + } +} + +/// Enhanced loading card with better hierarchy +class LoadingCard extends StatelessWidget { + final bool isLoading; + final Widget child; + final bool isCompact; + + const LoadingCard({ + super.key, + required this.isLoading, + required this.child, + this.isCompact = false, + }); + + @override + Widget build(BuildContext context) { + if (isLoading) { + return ConduitCard( + isCompact: isCompact, + child: ImprovedLoadingState( + message: 'Loading...', + isCompact: isCompact, + ), + ); + } + + return child; + } +} + +/// Shimmer loading effect +class ShimmerLoader extends StatefulWidget { + final double width; + final double height; + final BorderRadius? borderRadius; + final EdgeInsetsGeometry? margin; + + const ShimmerLoader({ + super.key, + this.width = double.infinity, + this.height = 20, + this.borderRadius, + this.margin, + }); + + @override + State createState() => _ShimmerLoaderState(); +} + +class _ShimmerLoaderState extends State + with SingleTickerProviderStateMixin { + late AnimationController _shimmerController; + late Animation _shimmerAnimation; + + @override + void initState() { + super.initState(); + _shimmerController = AnimationController( + duration: const Duration(milliseconds: 1500), + vsync: this, + )..repeat(); + + _shimmerAnimation = Tween(begin: -1.0, end: 2.0).animate( + CurvedAnimation(parent: _shimmerController, curve: Curves.linear), + ); + } + + @override + void dispose() { + _shimmerController.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + final theme = context.conduitTheme; + + return Container( + width: widget.width, + height: widget.height, + margin: widget.margin, + decoration: BoxDecoration( + borderRadius: widget.borderRadius ?? BorderRadius.circular(4), + color: theme.surfaceContainer, + ), + child: AnimatedBuilder( + animation: _shimmerAnimation, + builder: (context, child) { + return Container( + decoration: BoxDecoration( + borderRadius: widget.borderRadius ?? BorderRadius.circular(4), + gradient: LinearGradient( + begin: Alignment.centerLeft, + end: Alignment.centerRight, + colors: [ + theme.shimmerBase, + theme.shimmerHighlight, + theme.shimmerBase, + ], + stops: [ + _shimmerAnimation.value - 0.3, + _shimmerAnimation.value, + _shimmerAnimation.value + 0.3, + ], + ), + ), + ); + }, + ), + ); + } +} + +/// Content placeholder for loading states +class ContentPlaceholder extends StatelessWidget { + final int lineCount; + final double lineHeight; + final double spacing; + final EdgeInsetsGeometry? padding; + final bool showAvatar; + final bool showActions; + + const ContentPlaceholder({ + super.key, + this.lineCount = 3, + this.lineHeight = 16, + this.spacing = 8, + this.padding, + this.showAvatar = false, + this.showActions = false, + }); + + @override + Widget build(BuildContext context) { + return Padding( + padding: padding ?? const EdgeInsets.all(16.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + if (showAvatar) + Row( + children: [ + const ShimmerLoader( + width: 48, + height: 48, + borderRadius: BorderRadius.all(Radius.circular(24)), + ), + const SizedBox(width: 12), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + ShimmerLoader(width: 120, height: lineHeight), + SizedBox(height: spacing / 2), + ShimmerLoader(width: 80, height: lineHeight * 0.8), + ], + ), + ), + ], + ), + + if (showAvatar) SizedBox(height: spacing * 2), + + ...List.generate(lineCount, (index) { + final isLast = index == lineCount - 1; + return Padding( + padding: EdgeInsets.only(bottom: isLast ? 0 : spacing), + child: ShimmerLoader( + width: isLast ? 200 : double.infinity, + height: lineHeight, + ), + ); + }), + + if (showActions) ...[ + SizedBox(height: spacing * 2), + Row( + children: [ + ShimmerLoader( + width: 80, + height: 32, + borderRadius: BorderRadius.circular(16), + ), + const SizedBox(width: 8), + ShimmerLoader( + width: 80, + height: 32, + borderRadius: BorderRadius.circular(16), + ), + ], + ), + ], + ], + ), + ); + } +} + +/// Error state widget with retry +class ErrorStateWidget extends StatelessWidget { + final String message; + final VoidCallback? onRetry; + final Object? error; + final bool showDetails; + + const ErrorStateWidget({ + super.key, + required this.message, + this.onRetry, + this.error, + this.showDetails = false, + }); + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + return Center( + child: Padding( + padding: const EdgeInsets.all(32.0), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon(Icons.error_outline, size: 64, color: theme.colorScheme.error), + const SizedBox(height: 16), + Text( + 'Oops! Something went wrong', + style: theme.textTheme.headlineSmall, + textAlign: TextAlign.center, + ), + const SizedBox(height: 8), + Text( + message, + style: theme.textTheme.bodyMedium?.copyWith( + color: theme.colorScheme.onSurface.withValues(alpha: 0.6), + ), + textAlign: TextAlign.center, + ), + + if (showDetails && error != null) ...[ + const SizedBox(height: 16), + Container( + padding: const EdgeInsets.all(12), + decoration: BoxDecoration( + color: theme.colorScheme.errorContainer, + borderRadius: BorderRadius.circular(8), + ), + child: Text( + error.toString(), + style: theme.textTheme.bodySmall?.copyWith( + color: theme.colorScheme.onErrorContainer, + ), + ), + ), + ], + + if (onRetry != null) ...[ + const SizedBox(height: 24), + FilledButton.icon( + onPressed: onRetry, + icon: const Icon(Icons.refresh), + label: const Text('Try Again'), + ), + ], + ], + ), + ), + ); + } +} diff --git a/lib/shared/widgets/loading_states.dart b/lib/shared/widgets/loading_states.dart new file mode 100644 index 0000000..5cafad0 --- /dev/null +++ b/lib/shared/widgets/loading_states.dart @@ -0,0 +1,429 @@ +import 'package:flutter/material.dart'; +import '../theme/theme_extensions.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter_animate/flutter_animate.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'dart:io' show Platform; +import '../services/brand_service.dart'; +import '../theme/app_theme.dart'; + +/// Standard loading indicators following Conduit design patterns +class ConduitLoading { + // Private constructor to prevent instantiation + ConduitLoading._(); + + /// Primary loading indicator + static Widget primary({ + double size = IconSize.lg, + Color? color, + String? message, + }) { + return _LoadingIndicator( + size: size, + color: color ?? BrandService.primaryBrandColor, + message: message, + type: _LoadingType.primary, + ); + } + + /// Inline loading for content areas + static Widget inline({ + double size = IconSize.md, + Color? color, + String? message, + BuildContext? context, + }) { + return _LoadingIndicator( + size: size, + color: + color ?? + (context?.conduitTheme.loadingIndicator ?? + context?.conduitTheme.buttonPrimary ?? + AppTheme.brandPrimary), + message: message, + type: _LoadingType.inline, + ); + } + + /// Button loading state + static Widget button({ + double size = IconSize.sm, + Color? color, + BuildContext? context, + }) { + return _LoadingIndicator( + size: size, + color: + color ?? + (context?.conduitTheme.buttonPrimaryText ?? + context?.conduitTheme.textPrimary ?? + AppTheme.neutral50), + type: _LoadingType.button, + ); + } + + /// Overlay loading for full screen + static Widget overlay({String? message, bool darkBackground = true}) { + return _LoadingOverlay(message: message, darkBackground: darkBackground); + } + + /// Skeleton loading for content placeholders + static Widget skeleton({ + double width = double.infinity, + double height = 20, + BorderRadius? borderRadius, + }) { + return _SkeletonLoader( + width: width, + height: height, + borderRadius: borderRadius ?? BorderRadius.circular(AppBorderRadius.xs), + ); + } + + /// List item skeleton + static Widget listItemSkeleton({bool showAvatar = true, int lines = 2}) { + return _ListItemSkeleton(showAvatar: showAvatar, lines: lines); + } +} + +enum _LoadingType { primary, inline, button } + +class _LoadingIndicator extends StatelessWidget { + final double size; + final Color color; + final String? message; + final _LoadingType type; + + const _LoadingIndicator({ + required this.size, + required this.color, + this.message, + required this.type, + }); + + @override + Widget build(BuildContext context) { + Widget indicator; + + if (Platform.isIOS) { + indicator = CupertinoActivityIndicator(color: color, radius: size / 2); + } else { + indicator = SizedBox( + width: size, + height: size, + child: CircularProgressIndicator( + strokeWidth: size / 8, + valueColor: AlwaysStoppedAnimation(color), + ), + ); + } + + if (message == null) { + return indicator; + } + + final spacing = type == _LoadingType.button ? Spacing.sm : Spacing.xs; + + return Column( + mainAxisSize: MainAxisSize.min, + children: [ + indicator, + SizedBox(height: spacing), + Text( + message!, + style: TextStyle( + color: color, + fontSize: type == _LoadingType.button + ? AppTypography.bodySmall + : AppTypography.bodyLarge, + fontWeight: FontWeight.w500, + ), + textAlign: TextAlign.center, + ), + ], + ); + } +} + +class _LoadingOverlay extends StatelessWidget { + final String? message; + final bool darkBackground; + + const _LoadingOverlay({this.message, required this.darkBackground}); + + @override + Widget build(BuildContext context) { + return Container( + color: darkBackground + ? context.conduitTheme.surfaceBackground.withValues( + alpha: Alpha.strong, + ) + : context.conduitTheme.surfaceBackground.withValues( + alpha: Alpha.intense, + ), + child: Center( + child: Container( + padding: const EdgeInsets.all(Spacing.lg), + decoration: BoxDecoration( + color: darkBackground + ? context.conduitTheme.surfaceBackground + : context.conduitTheme.surfaceBackground, + borderRadius: BorderRadius.circular(AppBorderRadius.lg), + boxShadow: ConduitShadows.high, + ), + child: ConduitLoading.primary( + size: IconSize.xl, + color: context.conduitTheme.buttonPrimary, + message: message, + ), + ), + ), + ).animate().fadeIn(duration: AnimationDuration.fast); + } +} + +class _SkeletonLoader extends StatefulWidget { + final double width; + final double height; + final BorderRadius borderRadius; + + const _SkeletonLoader({ + required this.width, + required this.height, + required this.borderRadius, + }); + + @override + State<_SkeletonLoader> createState() => _SkeletonLoaderState(); +} + +class _SkeletonLoaderState extends State<_SkeletonLoader> + with SingleTickerProviderStateMixin { + late AnimationController _controller; + late Animation _animation; + + @override + void initState() { + super.initState(); + _controller = AnimationController( + duration: AnimationDuration.ultra, + vsync: this, + ); + _animation = + Tween( + begin: AnimationValues.shimmerBegin, + end: AnimationValues.shimmerEnd, + ).animate( + CurvedAnimation( + parent: _controller, + curve: AnimationCurves.easeInOut, + ), + ); + _controller.repeat(); + } + + @override + void dispose() { + _controller.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return Container( + width: widget.width, + height: widget.height, + decoration: BoxDecoration( + borderRadius: widget.borderRadius, + color: context.conduitTheme.shimmerBase, + ), + child: AnimatedBuilder( + animation: _animation, + builder: (context, child) { + return Container( + decoration: BoxDecoration( + borderRadius: widget.borderRadius, + gradient: LinearGradient( + begin: Alignment.centerLeft, + end: Alignment.centerRight, + colors: [ + Colors.transparent, + context.conduitTheme.shimmerHighlight, + Colors.transparent, + ], + stops: [ + (_animation.value - 0.3).clamp(0.0, 1.0), + _animation.value.clamp(0.0, 1.0), + (_animation.value + 0.3).clamp(0.0, 1.0), + ], + ), + ), + ); + }, + ), + ); + } +} + +class _ListItemSkeleton extends StatelessWidget { + final bool showAvatar; + final int lines; + + const _ListItemSkeleton({required this.showAvatar, required this.lines}); + + @override + Widget build(BuildContext context) { + return Padding( + padding: const EdgeInsets.symmetric( + horizontal: Spacing.md, + vertical: Spacing.xs, + ), + child: Row( + children: [ + if (showAvatar) ...[ + ConduitLoading.skeleton( + width: TouchTarget.minimum, + height: TouchTarget.minimum, + borderRadius: BorderRadius.circular(AppBorderRadius.xl), + ), + const SizedBox(width: Spacing.xs), + ], + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: List.generate(lines, (index) { + return Padding( + padding: EdgeInsets.only( + bottom: index < lines - 1 ? Spacing.sm : 0, + ), + child: ConduitLoading.skeleton( + width: index == lines - 1 ? 150 : double.infinity, + height: index == 0 ? 16 : 14, + ), + ); + }), + ), + ), + ], + ), + ); + } +} + +/// Loading state wrapper for async operations +class LoadingStateWrapper extends StatelessWidget { + final AsyncValue asyncValue; + final Widget Function(T data) builder; + final Widget? loadingWidget; + final Widget Function(Object error, StackTrace stackTrace)? errorBuilder; + final bool showLoadingOverlay; + + const LoadingStateWrapper({ + super.key, + required this.asyncValue, + required this.builder, + this.loadingWidget, + this.errorBuilder, + this.showLoadingOverlay = false, + }); + + @override + Widget build(BuildContext context) { + return asyncValue.when( + data: builder, + loading: () => showLoadingOverlay + ? ConduitLoading.overlay(message: 'Loading...') + : loadingWidget ?? ConduitLoading.primary(message: 'Loading...'), + error: (error, stackTrace) { + if (errorBuilder != null) { + return errorBuilder!(error, stackTrace); + } + + return Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + Platform.isIOS + ? CupertinoIcons.exclamationmark_triangle + : Icons.error_outline, + size: IconSize.xxl, + color: context.conduitTheme.error, + ), + const SizedBox(height: Spacing.md), + Text( + 'Something went wrong', + style: TextStyle( + color: context.conduitTheme.textSecondary, + fontSize: AppTypography.headlineSmall, + fontWeight: FontWeight.w500, + ), + ), + const SizedBox(height: Spacing.sm), + Text( + error.toString(), + style: TextStyle( + color: context.conduitTheme.textSecondary, + fontSize: AppTypography.bodySmall, + ), + textAlign: TextAlign.center, + ), + ], + ), + ); + }, + ); + } +} + +/// Button with loading state +class LoadingButton extends StatelessWidget { + final VoidCallback? onPressed; + final Widget child; + final bool isLoading; + final bool isPrimary; + + const LoadingButton({ + super.key, + required this.onPressed, + required this.child, + this.isLoading = false, + this.isPrimary = true, + }); + + @override + Widget build(BuildContext context) { + return FilledButton( + onPressed: isLoading ? null : onPressed, + style: isPrimary + ? FilledButton.styleFrom( + backgroundColor: context.conduitTheme.buttonPrimary, + foregroundColor: context.conduitTheme.buttonPrimaryText, + ) + : null, + child: isLoading ? ConduitLoading.button(context: context) : child, + ); + } +} + +/// Refresh indicator with Conduit styling +class ConduitRefreshIndicator extends StatelessWidget { + final Widget child; + final Future Function() onRefresh; + + const ConduitRefreshIndicator({ + super.key, + required this.child, + required this.onRefresh, + }); + + @override + Widget build(BuildContext context) { + return RefreshIndicator( + onRefresh: onRefresh, + color: context.conduitTheme.buttonPrimary, + backgroundColor: context.conduitTheme.surfaceBackground, + child: child, + ); + } +} diff --git a/lib/shared/widgets/offline_indicator.dart b/lib/shared/widgets/offline_indicator.dart new file mode 100644 index 0000000..d8e3d0b --- /dev/null +++ b/lib/shared/widgets/offline_indicator.dart @@ -0,0 +1,231 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:flutter_animate/flutter_animate.dart'; +import 'dart:io' show Platform; +import '../../core/services/connectivity_service.dart'; +import '../theme/theme_extensions.dart'; + +class OfflineIndicator extends ConsumerWidget { + final Widget child; + final bool showBanner; + + const OfflineIndicator({ + super.key, + required this.child, + this.showBanner = true, + }); + + @override + Widget build(BuildContext context, WidgetRef ref) { + final connectivityStatus = ref.watch(connectivityStatusProvider); + + return Stack( + children: [ + child, + if (showBanner) + connectivityStatus.when( + data: (status) { + if (status == ConnectivityStatus.offline) { + return _OfflineBanner(); + } + return const SizedBox.shrink(); + }, + loading: () => const SizedBox.shrink(), + error: (_, _) => _OfflineBanner(), + ), + ], + ); + } +} + +class _OfflineBanner extends StatelessWidget { + @override + Widget build(BuildContext context) { + return Positioned( + top: 0, + left: 0, + right: 0, + child: SafeArea( + bottom: false, + child: + Container( + padding: const EdgeInsets.symmetric( + horizontal: Spacing.md, + vertical: Spacing.xs, + ), + decoration: BoxDecoration( + color: context.conduitTheme.warning, + boxShadow: ConduitShadows.low, + ), + child: Row( + children: [ + Icon( + Platform.isIOS + ? CupertinoIcons.wifi_slash + : Icons.wifi_off, + color: context.conduitTheme.textInverse, + size: AppTypography.headlineMedium, + ), + const SizedBox(width: Spacing.xs), + Expanded( + child: Text( + 'You\'re offline. Some features may be limited.', + style: TextStyle( + color: context.conduitTheme.textInverse, + fontSize: AppTypography.labelLarge, + fontWeight: FontWeight.w500, + ), + ), + ), + ], + ), + ) + .animate(onPlay: (controller) => controller.forward()) + .slideY( + begin: -1, + end: 0, + duration: const Duration(milliseconds: 300), + curve: Curves.easeOutCubic, + ), + ), + ); + } +} + +// Inline offline indicator for specific features +class InlineOfflineIndicator extends ConsumerWidget { + final String message; + final IconData? icon; + final Color? backgroundColor; + + const InlineOfflineIndicator({ + super.key, + this.message = 'This feature requires an internet connection', + this.icon, + this.backgroundColor, + }); + + @override + Widget build(BuildContext context, WidgetRef ref) { + final isOnline = ref.watch(isOnlineProvider); + + if (isOnline) { + return const SizedBox.shrink(); + } + + return Container( + margin: const EdgeInsets.all(Spacing.md), + padding: const EdgeInsets.all(Spacing.md), + decoration: BoxDecoration( + color: + backgroundColor ?? + context.conduitTheme.warning.withValues(alpha: 0.1), + borderRadius: BorderRadius.circular(AppBorderRadius.md), + border: Border.all( + color: context.conduitTheme.warning.withValues(alpha: 0.3), + width: BorderWidth.regular, + ), + ), + child: Row( + children: [ + Icon( + icon ?? + (Platform.isIOS ? CupertinoIcons.wifi_slash : Icons.wifi_off), + color: context.conduitTheme.warning, + size: Spacing.lg, + ), + const SizedBox(width: Spacing.xs), + Expanded( + child: Text( + message, + style: TextStyle( + color: context.conduitTheme.warning, + fontSize: AppTypography.labelLarge, + fontWeight: FontWeight.w500, + ), + ), + ), + ], + ), + ).animate().fadeIn(duration: const Duration(milliseconds: 300)); + } +} + +// Offline-aware button that disables when offline +class OfflineAwareButton extends ConsumerWidget { + final VoidCallback? onPressed; + final Widget child; + final bool requiresConnection; + final String? offlineTooltip; + + const OfflineAwareButton({ + super.key, + required this.onPressed, + required this.child, + this.requiresConnection = true, + this.offlineTooltip, + }); + + @override + Widget build(BuildContext context, WidgetRef ref) { + final isOnline = ref.watch(isOnlineProvider); + final enabled = !requiresConnection || isOnline; + + return Tooltip( + message: !enabled + ? (offlineTooltip ?? 'This action requires an internet connection') + : '', + child: FilledButton(onPressed: enabled ? onPressed : null, child: child), + ); + } +} + +// Chat-specific offline indicator +class ChatOfflineOverlay extends ConsumerWidget { + const ChatOfflineOverlay({super.key}); + + @override + Widget build(BuildContext context, WidgetRef ref) { + final isOnline = ref.watch(isOnlineProvider); + + if (isOnline) { + return const SizedBox.shrink(); + } + + return Container( + padding: const EdgeInsets.symmetric( + horizontal: Spacing.md, + vertical: Spacing.sm, + ), + decoration: BoxDecoration( + color: context.conduitTheme.warning.withValues(alpha: 0.2), + border: Border( + top: BorderSide( + color: context.conduitTheme.warning.withValues(alpha: 0.5), + width: BorderWidth.regular, + ), + ), + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + Platform.isIOS ? CupertinoIcons.wifi_slash : Icons.wifi_off, + color: context.conduitTheme.warning, + size: Spacing.md, + ), + const SizedBox(width: Spacing.sm), + Text( + 'Messages will be sent when you\'re back online', + style: TextStyle( + color: context.conduitTheme.warning, + fontSize: AppTypography.bodySmall, + fontWeight: FontWeight.w500, + ), + ), + ], + ), + ).animate().fadeIn(duration: const Duration(milliseconds: 300)); + } +} diff --git a/lib/shared/widgets/optimized_list.dart b/lib/shared/widgets/optimized_list.dart new file mode 100644 index 0000000..4afe19d --- /dev/null +++ b/lib/shared/widgets/optimized_list.dart @@ -0,0 +1,414 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'skeleton_loader.dart'; +import 'improved_loading_states.dart'; + +/// Optimized list widget with virtualization and performance enhancements +class OptimizedList extends ConsumerStatefulWidget { + final List items; + final Widget Function(BuildContext context, T item, int index) itemBuilder; + final Widget? separatorBuilder; + final Widget? loadingWidget; + final Widget? emptyWidget; + final String? emptyMessage; + final Future Function()? onRefresh; + final VoidCallback? onLoadMore; + final bool hasMore; + final bool isLoading; + final EdgeInsetsGeometry? padding; + final ScrollController? scrollController; + final ScrollPhysics? physics; + final bool shrinkWrap; + final Axis scrollDirection; + final bool reverse; + final double? cacheExtent; + final int? itemExtent; + final bool addAutomaticKeepAlives; + final bool addRepaintBoundaries; + final bool enablePagination; + final double paginationThreshold; + + const OptimizedList({ + super.key, + required this.items, + required this.itemBuilder, + this.separatorBuilder, + this.loadingWidget, + this.emptyWidget, + this.emptyMessage, + this.onRefresh, + this.onLoadMore, + this.hasMore = false, + this.isLoading = false, + this.padding, + this.scrollController, + this.physics, + this.shrinkWrap = false, + this.scrollDirection = Axis.vertical, + this.reverse = false, + this.cacheExtent, + this.itemExtent, + this.addAutomaticKeepAlives = true, + this.addRepaintBoundaries = true, + this.enablePagination = false, + this.paginationThreshold = 0.8, + }); + + @override + ConsumerState> createState() => _OptimizedListState(); +} + +class _OptimizedListState extends ConsumerState> { + late ScrollController _scrollController; + bool _isLoadingMore = false; + final Set _visibleIndices = {}; + + @override + void initState() { + super.initState(); + _scrollController = widget.scrollController ?? ScrollController(); + + if (widget.enablePagination) { + _scrollController.addListener(_onScroll); + } + } + + @override + void dispose() { + if (widget.scrollController == null) { + _scrollController.dispose(); + } + super.dispose(); + } + + void _onScroll() { + if (!widget.enablePagination || + _isLoadingMore || + !widget.hasMore || + widget.onLoadMore == null) { + return; + } + + final maxScroll = _scrollController.position.maxScrollExtent; + final currentScroll = _scrollController.position.pixels; + final threshold = maxScroll * widget.paginationThreshold; + + if (currentScroll >= threshold) { + _loadMore(); + } + } + + Future _loadMore() async { + if (_isLoadingMore) return; + + setState(() { + _isLoadingMore = true; + }); + + try { + widget.onLoadMore?.call(); + } finally { + if (mounted) { + setState(() { + _isLoadingMore = false; + }); + } + } + } + + @override + Widget build(BuildContext context) { + // Show loading state + if (widget.isLoading && widget.items.isEmpty) { + return widget.loadingWidget ?? _buildDefaultLoadingWidget(); + } + + // Show empty state + if (widget.items.isEmpty) { + return widget.emptyWidget ?? + ImprovedEmptyState( + title: 'No items', + subtitle: widget.emptyMessage ?? 'No items to display', + icon: Icons.inbox_outlined, + ); + } + + // Build the list + Widget listWidget; + + if (widget.separatorBuilder != null) { + listWidget = ListView.separated( + controller: _scrollController, + padding: widget.padding, + physics: widget.physics ?? const AlwaysScrollableScrollPhysics(), + shrinkWrap: widget.shrinkWrap, + scrollDirection: widget.scrollDirection, + reverse: widget.reverse, + cacheExtent: widget.cacheExtent ?? 250.0, + addAutomaticKeepAlives: widget.addAutomaticKeepAlives, + addRepaintBoundaries: widget.addRepaintBoundaries, + itemCount: widget.items.length + (widget.hasMore ? 1 : 0), + separatorBuilder: (context, index) => widget.separatorBuilder!, + itemBuilder: (context, index) { + if (index >= widget.items.length) { + return _buildLoadMoreIndicator(); + } + + return _buildOptimizedItem(context, index); + }, + ); + } else { + listWidget = ListView.builder( + controller: _scrollController, + padding: widget.padding, + physics: widget.physics ?? const AlwaysScrollableScrollPhysics(), + shrinkWrap: widget.shrinkWrap, + scrollDirection: widget.scrollDirection, + reverse: widget.reverse, + cacheExtent: widget.cacheExtent ?? 250.0, + addAutomaticKeepAlives: widget.addAutomaticKeepAlives, + addRepaintBoundaries: widget.addRepaintBoundaries, + itemCount: widget.items.length + (widget.hasMore ? 1 : 0), + itemExtent: widget.itemExtent?.toDouble(), + itemBuilder: (context, index) { + if (index >= widget.items.length) { + return _buildLoadMoreIndicator(); + } + + return _buildOptimizedItem(context, index); + }, + ); + } + + // Add refresh indicator if enabled + if (widget.onRefresh != null) { + return RefreshIndicator(onRefresh: widget.onRefresh!, child: listWidget); + } + + return listWidget; + } + + Widget _buildOptimizedItem(BuildContext context, int index) { + final item = widget.items[index]; + + // Track visible items for analytics + _visibleIndices.add(index); + + // Wrap in repaint boundary for performance + if (widget.addRepaintBoundaries) { + return RepaintBoundary(child: widget.itemBuilder(context, item, index)); + } + + return widget.itemBuilder(context, item, index); + } + + Widget _buildLoadMoreIndicator() { + return Container( + padding: const EdgeInsets.all(16.0), + alignment: Alignment.center, + child: _isLoadingMore + ? const CircularProgressIndicator() + : TextButton(onPressed: _loadMore, child: const Text('Load More')), + ); + } + + Widget _buildDefaultLoadingWidget() { + return ListView.builder( + padding: widget.padding, + physics: const NeverScrollableScrollPhysics(), + shrinkWrap: true, + itemCount: 5, + itemBuilder: (context, index) => const Padding( + padding: EdgeInsets.symmetric(horizontal: 16, vertical: 8), + child: SkeletonLoader(height: 80), + ), + ); + } +} + +/// Sliver version of OptimizedList for use in CustomScrollView +class OptimizedSliverList extends ConsumerWidget { + final List items; + final Widget Function(BuildContext context, T item, int index) itemBuilder; + final Widget? loadingWidget; + final Widget? emptyWidget; + final String? emptyMessage; + final bool isLoading; + final bool hasMore; + final VoidCallback? onLoadMore; + final bool addAutomaticKeepAlives; + final bool addRepaintBoundaries; + + const OptimizedSliverList({ + super.key, + required this.items, + required this.itemBuilder, + this.loadingWidget, + this.emptyWidget, + this.emptyMessage, + this.isLoading = false, + this.hasMore = false, + this.onLoadMore, + this.addAutomaticKeepAlives = true, + this.addRepaintBoundaries = true, + }); + + @override + Widget build(BuildContext context, WidgetRef ref) { + // Show loading state + if (isLoading && items.isEmpty) { + return SliverToBoxAdapter( + child: loadingWidget ?? _buildDefaultLoadingWidget(), + ); + } + + // Show empty state + if (items.isEmpty) { + return SliverToBoxAdapter( + child: + emptyWidget ?? + ImprovedEmptyState( + title: 'No items', + subtitle: emptyMessage ?? 'No items to display', + icon: Icons.inbox_outlined, + ), + ); + } + + // Build the list + return SliverList( + delegate: SliverChildBuilderDelegate( + (context, index) { + if (index >= items.length) { + if (hasMore) { + // Trigger load more + WidgetsBinding.instance.addPostFrameCallback((_) { + onLoadMore?.call(); + }); + + return Container( + padding: const EdgeInsets.all(16.0), + alignment: Alignment.center, + child: const CircularProgressIndicator(), + ); + } + return null; + } + + final item = items[index]; + final widget = itemBuilder(context, item, index); + + // Wrap in repaint boundary for performance + if (addRepaintBoundaries) { + return RepaintBoundary(child: widget); + } + + return widget; + }, + childCount: items.length + (hasMore ? 1 : 0), + addAutomaticKeepAlives: addAutomaticKeepAlives, + addRepaintBoundaries: addRepaintBoundaries, + ), + ); + } + + Widget _buildDefaultLoadingWidget() { + return Column( + children: List.generate( + 5, + (index) => const Padding( + padding: EdgeInsets.symmetric(horizontal: 16, vertical: 8), + child: SkeletonLoader(height: 80), + ), + ), + ); + } +} + +/// Animated list with optimizations +class OptimizedAnimatedList extends ConsumerStatefulWidget { + final List items; + final Widget Function( + BuildContext context, + T item, + int index, + Animation animation, + ) + itemBuilder; + final Duration animationDuration; + final Curve animationCurve; + final EdgeInsetsGeometry? padding; + final ScrollController? scrollController; + final bool shrinkWrap; + + const OptimizedAnimatedList({ + super.key, + required this.items, + required this.itemBuilder, + this.animationDuration = const Duration(milliseconds: 300), + this.animationCurve = Curves.easeInOut, + this.padding, + this.scrollController, + this.shrinkWrap = false, + }); + + @override + ConsumerState> createState() => + _OptimizedAnimatedListState(); +} + +class _OptimizedAnimatedListState + extends ConsumerState> { + final GlobalKey _listKey = GlobalKey(); + late List _items; + + @override + void initState() { + super.initState(); + _items = List.from(widget.items); + } + + @override + void didUpdateWidget(OptimizedAnimatedList oldWidget) { + super.didUpdateWidget(oldWidget); + + // Handle item additions + for (int i = 0; i < widget.items.length; i++) { + if (i >= _items.length || widget.items[i] != _items[i]) { + _items.insert(i, widget.items[i]); + _listKey.currentState?.insertItem( + i, + duration: widget.animationDuration, + ); + } + } + + // Handle item removals + for (int i = _items.length - 1; i >= widget.items.length; i--) { + final removedItem = _items[i]; + _items.removeAt(i); + _listKey.currentState?.removeItem( + i, + (context, animation) => + widget.itemBuilder(context, removedItem, i, animation), + duration: widget.animationDuration, + ); + } + } + + @override + Widget build(BuildContext context) { + return AnimatedList( + key: _listKey, + controller: widget.scrollController, + padding: widget.padding, + shrinkWrap: widget.shrinkWrap, + initialItemCount: _items.length, + itemBuilder: (context, index, animation) { + if (index >= _items.length) return const SizedBox.shrink(); + + return widget.itemBuilder(context, _items[index], index, animation); + }, + ); + } +} diff --git a/lib/shared/widgets/skeleton_loader.dart b/lib/shared/widgets/skeleton_loader.dart new file mode 100644 index 0000000..bf88020 --- /dev/null +++ b/lib/shared/widgets/skeleton_loader.dart @@ -0,0 +1,361 @@ +import 'package:flutter/material.dart'; +import '../theme/theme_extensions.dart'; + +/// Enhanced skeleton loader with production-grade animations and better hierarchy +class SkeletonLoader extends StatefulWidget { + final double? width; + final double? height; + final BorderRadius? borderRadius; + final Duration? duration; + final Color? baseColor; + final Color? highlightColor; + final bool isCompact; + + const SkeletonLoader({ + super.key, + this.width, + this.height, + this.borderRadius, + this.duration, + this.baseColor, + this.highlightColor, + this.isCompact = false, + }); + + @override + State createState() => _SkeletonLoaderState(); +} + +class _SkeletonLoaderState extends State + with SingleTickerProviderStateMixin { + late AnimationController _controller; + late Animation _animation; + + @override + void initState() { + super.initState(); + _controller = AnimationController( + duration: widget.duration ?? AnimationDuration.typingIndicator, + vsync: this, + ); + _animation = + Tween( + begin: AnimationValues.shimmerBegin, + end: AnimationValues.shimmerEnd, + ).animate( + CurvedAnimation(parent: _controller, curve: AnimationCurves.linear), + ); + + _controller.repeat(); + } + + @override + void dispose() { + _controller.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return AnimatedBuilder( + animation: _animation, + builder: (context, child) { + return Container( + width: widget.width, + height: widget.height, + decoration: BoxDecoration( + borderRadius: + widget.borderRadius ?? + BorderRadius.circular( + widget.isCompact ? AppBorderRadius.xs : AppBorderRadius.sm, + ), + gradient: LinearGradient( + begin: Alignment.centerLeft, + end: Alignment.centerRight, + colors: [ + widget.baseColor ?? context.conduitTheme.shimmerBase, + widget.highlightColor ?? context.conduitTheme.shimmerHighlight, + widget.baseColor ?? context.conduitTheme.shimmerBase, + ], + stops: [ + _animation.value - 0.3, + _animation.value, + _animation.value + 0.3, + ], + ), + ), + ); + }, + ); + } +} + +/// Enhanced skeleton for chat messages with better hierarchy +class SkeletonChatMessage extends StatelessWidget { + final bool isUser; + final int lines; + final bool isCompact; + + const SkeletonChatMessage({ + super.key, + this.isUser = false, + this.lines = 2, + this.isCompact = false, + }); + + @override + Widget build(BuildContext context) { + return Padding( + padding: EdgeInsets.symmetric( + horizontal: isCompact ? Spacing.sm : Spacing.messagePadding, + vertical: isCompact ? Spacing.xs : Spacing.sm, + ), + child: Row( + mainAxisAlignment: isUser + ? MainAxisAlignment.end + : MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + if (!isUser) ...[ + SkeletonLoader( + width: isCompact ? 32 : 40, + height: isCompact ? 32 : 40, + borderRadius: BorderRadius.circular(AppBorderRadius.avatar), + ), + SizedBox(width: isCompact ? Spacing.xs : Spacing.sm), + ], + Expanded( + child: Column( + crossAxisAlignment: isUser + ? CrossAxisAlignment.end + : CrossAxisAlignment.start, + children: [ + for (int i = 0; i < lines; i++) + Padding( + padding: EdgeInsets.only( + bottom: i < lines - 1 + ? (isCompact ? Spacing.xs : Spacing.sm) + : 0, + ), + child: SkeletonLoader( + width: isUser + ? null + : (MediaQuery.of(context).size.width * 0.6), + height: isCompact ? 12 : 16, + borderRadius: BorderRadius.circular( + isCompact ? AppBorderRadius.xs : AppBorderRadius.sm, + ), + ), + ), + ], + ), + ), + if (isUser) ...[ + SizedBox(width: isCompact ? Spacing.xs : Spacing.sm), + SkeletonLoader( + width: isCompact ? 32 : 40, + height: isCompact ? 32 : 40, + borderRadius: BorderRadius.circular(AppBorderRadius.avatar), + ), + ], + ], + ), + ); + } +} + +/// Enhanced skeleton for list items with better hierarchy +class SkeletonListItem extends StatelessWidget { + final bool showAvatar; + final bool showSubtitle; + final bool isCompact; + + const SkeletonListItem({ + super.key, + this.showAvatar = true, + this.showSubtitle = true, + this.isCompact = false, + }); + + @override + Widget build(BuildContext context) { + return Padding( + padding: EdgeInsets.all(isCompact ? Spacing.sm : Spacing.listItemPadding), + child: Row( + children: [ + if (showAvatar) ...[ + SkeletonLoader( + width: isCompact ? 32 : 40, + height: isCompact ? 32 : 40, + borderRadius: BorderRadius.circular(AppBorderRadius.avatar), + ), + SizedBox(width: isCompact ? Spacing.sm : Spacing.md), + ], + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SkeletonLoader( + width: double.infinity, + height: isCompact ? 14 : 16, + borderRadius: BorderRadius.circular( + isCompact ? AppBorderRadius.xs : AppBorderRadius.sm, + ), + ), + if (showSubtitle) ...[ + SizedBox(height: isCompact ? Spacing.xs : Spacing.sm), + SkeletonLoader( + width: MediaQuery.of(context).size.width * 0.7, + height: isCompact ? 12 : 14, + borderRadius: BorderRadius.circular( + isCompact ? AppBorderRadius.xs : AppBorderRadius.sm, + ), + ), + ], + ], + ), + ), + ], + ), + ); + } +} + +/// Enhanced skeleton for cards with better hierarchy +class SkeletonCard extends StatelessWidget { + final bool showTitle; + final bool showContent; + final bool showActions; + final bool isCompact; + + const SkeletonCard({ + super.key, + this.showTitle = true, + this.showContent = true, + this.showActions = false, + this.isCompact = false, + }); + + @override + Widget build(BuildContext context) { + return Container( + padding: EdgeInsets.all(isCompact ? Spacing.sm : Spacing.cardPadding), + decoration: BoxDecoration( + color: context.conduitTheme.cardBackground, + borderRadius: BorderRadius.circular(AppBorderRadius.card), + border: Border.all( + color: context.conduitTheme.cardBorder, + width: BorderWidth.standard, + ), + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + if (showTitle) ...[ + SkeletonLoader( + width: MediaQuery.of(context).size.width * 0.8, + height: isCompact ? 16 : 20, + borderRadius: BorderRadius.circular( + isCompact ? AppBorderRadius.xs : AppBorderRadius.sm, + ), + ), + SizedBox(height: isCompact ? Spacing.sm : Spacing.md), + ], + if (showContent) ...[ + SkeletonLoader( + width: double.infinity, + height: isCompact ? 12 : 14, + borderRadius: BorderRadius.circular( + isCompact ? AppBorderRadius.xs : AppBorderRadius.sm, + ), + ), + SizedBox(height: isCompact ? Spacing.xs : Spacing.sm), + SkeletonLoader( + width: MediaQuery.of(context).size.width * 0.6, + height: isCompact ? 12 : 14, + borderRadius: BorderRadius.circular( + isCompact ? AppBorderRadius.xs : AppBorderRadius.sm, + ), + ), + if (showActions) ...[ + SizedBox(height: isCompact ? Spacing.md : Spacing.lg), + Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + SkeletonLoader( + width: isCompact ? 60 : 80, + height: isCompact ? 32 : 40, + borderRadius: BorderRadius.circular(AppBorderRadius.button), + ), + SizedBox(width: isCompact ? Spacing.sm : Spacing.md), + SkeletonLoader( + width: isCompact ? 60 : 80, + height: isCompact ? 32 : 40, + borderRadius: BorderRadius.circular(AppBorderRadius.button), + ), + ], + ), + ], + ], + ], + ), + ); + } +} + +/// Enhanced skeleton for input fields with better hierarchy +class SkeletonInput extends StatelessWidget { + final bool showLabel; + final bool isCompact; + + const SkeletonInput({ + super.key, + this.showLabel = true, + this.isCompact = false, + }); + + @override + Widget build(BuildContext context) { + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + if (showLabel) ...[ + SkeletonLoader( + width: 80, + height: isCompact ? 14 : 16, + borderRadius: BorderRadius.circular( + isCompact ? AppBorderRadius.xs : AppBorderRadius.sm, + ), + ), + SizedBox(height: isCompact ? Spacing.xs : Spacing.sm), + ], + SkeletonLoader( + width: double.infinity, + height: isCompact ? 40 : 48, + borderRadius: BorderRadius.circular(AppBorderRadius.input), + ), + ], + ); + } +} + +/// Enhanced skeleton for buttons with better hierarchy +class SkeletonButton extends StatelessWidget { + final bool isFullWidth; + final bool isCompact; + + const SkeletonButton({ + super.key, + this.isFullWidth = false, + this.isCompact = false, + }); + + @override + Widget build(BuildContext context) { + return SkeletonLoader( + width: isFullWidth ? double.infinity : (isCompact ? 80 : 120), + height: isCompact ? TouchTarget.medium : TouchTarget.comfortable, + borderRadius: BorderRadius.circular(AppBorderRadius.button), + ); + } +} diff --git a/lib/shared/widgets/themed_dialogs.dart b/lib/shared/widgets/themed_dialogs.dart new file mode 100644 index 0000000..e948175 --- /dev/null +++ b/lib/shared/widgets/themed_dialogs.dart @@ -0,0 +1,99 @@ +import 'package:flutter/material.dart'; +import '../theme/theme_extensions.dart'; + +/// Centralized helper for building themed dialogs consistently +class ThemedDialogs { + ThemedDialogs._(); + + /// Build a base themed AlertDialog + static AlertDialog buildBase({ + required BuildContext context, + required String title, + Widget? content, + List? actions, + }) { + return AlertDialog( + backgroundColor: context.conduitTheme.surfaceBackground, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.dialog), + ), + title: Text( + title, + style: TextStyle(color: context.conduitTheme.textPrimary), + ), + content: content, + actions: actions, + ); + } + + /// Show a simple confirmation dialog with Cancel/Confirm actions + static Future confirm( + BuildContext context, { + required String title, + required String message, + String confirmText = 'Confirm', + String cancelText = 'Cancel', + bool isDestructive = false, + bool barrierDismissible = true, + }) async { + final result = await showDialog( + context: context, + barrierDismissible: barrierDismissible, + builder: (ctx) => buildBase( + context: ctx, + title: title, + content: Text( + message, + style: TextStyle(color: ctx.conduitTheme.textSecondary), + ), + actions: [ + TextButton( + onPressed: () => Navigator.of(ctx).pop(false), + child: Text( + cancelText, + style: TextStyle(color: ctx.conduitTheme.textSecondary), + ), + ), + TextButton( + onPressed: () => Navigator.of(ctx).pop(true), + style: TextButton.styleFrom( + foregroundColor: isDestructive + ? ctx.conduitTheme.error + : ctx.conduitTheme.buttonPrimary, + ), + child: Text( + confirmText, + style: TextStyle( + color: isDestructive + ? ctx.conduitTheme.error + : ctx.conduitTheme.buttonPrimary, + ), + ), + ), + ], + ), + ); + + return result ?? false; + } + + /// Show a generic themed dialog + static Future show( + BuildContext context, { + required String title, + required Widget content, + List? actions, + bool barrierDismissible = true, + }) { + return showDialog( + context: context, + barrierDismissible: barrierDismissible, + builder: (ctx) => buildBase( + context: ctx, + title: title, + content: content, + actions: actions, + ), + ); + } +} diff --git a/pubspec.lock b/pubspec.lock new file mode 100644 index 0000000..3088429 --- /dev/null +++ b/pubspec.lock @@ -0,0 +1,1418 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + _fe_analyzer_shared: + dependency: transitive + description: + name: _fe_analyzer_shared + sha256: da0d9209ca76bde579f2da330aeb9df62b6319c834fa7baae052021b0462401f + url: "https://pub.dev" + source: hosted + version: "85.0.0" + analyzer: + dependency: transitive + description: + name: analyzer + sha256: f4ad0fea5f102201015c9aae9d93bc02f75dd9491529a8c21f88d17a8523d44c + url: "https://pub.dev" + source: hosted + version: "7.6.0" + ansicolor: + dependency: transitive + description: + name: ansicolor + sha256: "50e982d500bc863e1d703448afdbf9e5a72eb48840a4f766fa361ffd6877055f" + url: "https://pub.dev" + source: hosted + version: "2.0.3" + archive: + dependency: transitive + description: + name: archive + sha256: "2fde1607386ab523f7a36bb3e7edb43bd58e6edaf2ffb29d8a6d578b297fdbbd" + url: "https://pub.dev" + source: hosted + version: "4.0.7" + args: + dependency: transitive + description: + name: args + sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04 + url: "https://pub.dev" + source: hosted + version: "2.7.0" + async: + dependency: transitive + description: + name: async + sha256: "758e6d74e971c3e5aceb4110bfd6698efc7f501675bcfe0c775459a8140750eb" + url: "https://pub.dev" + source: hosted + version: "2.13.0" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + build: + dependency: transitive + description: + name: build + sha256: "51dc711996cbf609b90cbe5b335bbce83143875a9d58e4b5c6d3c4f684d3dda7" + url: "https://pub.dev" + source: hosted + version: "2.5.4" + build_config: + dependency: transitive + description: + name: build_config + sha256: "4ae2de3e1e67ea270081eaee972e1bd8f027d459f249e0f1186730784c2e7e33" + url: "https://pub.dev" + source: hosted + version: "1.1.2" + build_daemon: + dependency: transitive + description: + name: build_daemon + sha256: "8e928697a82be082206edb0b9c99c5a4ad6bc31c9e9b8b2f291ae65cd4a25daa" + url: "https://pub.dev" + source: hosted + version: "4.0.4" + build_resolvers: + dependency: transitive + description: + name: build_resolvers + sha256: ee4257b3f20c0c90e72ed2b57ad637f694ccba48839a821e87db762548c22a62 + url: "https://pub.dev" + source: hosted + version: "2.5.4" + build_runner: + dependency: "direct dev" + description: + name: build_runner + sha256: "382a4d649addbfb7ba71a3631df0ec6a45d5ab9b098638144faf27f02778eb53" + url: "https://pub.dev" + source: hosted + version: "2.5.4" + build_runner_core: + dependency: transitive + description: + name: build_runner_core + sha256: "85fbbb1036d576d966332a3f5ce83f2ce66a40bea1a94ad2d5fc29a19a0d3792" + url: "https://pub.dev" + source: hosted + version: "9.1.2" + built_collection: + dependency: transitive + description: + name: built_collection + sha256: "376e3dd27b51ea877c28d525560790aee2e6fbb5f20e2f85d5081027d94e2100" + url: "https://pub.dev" + source: hosted + version: "5.1.1" + built_value: + dependency: transitive + description: + name: built_value + sha256: "0b1b12a0a549605e5f04476031cd0bc91ead1d7c8e830773a18ee54179b3cb62" + url: "https://pub.dev" + source: hosted + version: "8.11.0" + cached_network_image: + dependency: "direct main" + description: + name: cached_network_image + sha256: "7c1183e361e5c8b0a0f21a28401eecdbde252441106a9816400dd4c2b2424916" + url: "https://pub.dev" + source: hosted + version: "3.4.1" + cached_network_image_platform_interface: + dependency: transitive + description: + name: cached_network_image_platform_interface + sha256: "35814b016e37fbdc91f7ae18c8caf49ba5c88501813f73ce8a07027a395e2829" + url: "https://pub.dev" + source: hosted + version: "4.1.1" + cached_network_image_web: + dependency: transitive + description: + name: cached_network_image_web + sha256: "980842f4e8e2535b8dbd3d5ca0b1f0ba66bf61d14cc3a17a9b4788a3685ba062" + url: "https://pub.dev" + source: hosted + version: "1.3.1" + characters: + dependency: transitive + description: + name: characters + sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803 + url: "https://pub.dev" + source: hosted + version: "1.4.0" + checked_yaml: + dependency: transitive + description: + name: checked_yaml + sha256: "959525d3162f249993882720d52b7e0c833978df229be20702b33d48d91de70f" + url: "https://pub.dev" + source: hosted + version: "2.0.4" + clock: + dependency: transitive + description: + name: clock + sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b + url: "https://pub.dev" + source: hosted + version: "1.1.2" + code_builder: + dependency: transitive + description: + name: code_builder + sha256: "0ec10bf4a89e4c613960bf1e8b42c64127021740fb21640c29c909826a5eea3e" + url: "https://pub.dev" + source: hosted + version: "4.10.1" + collection: + dependency: "direct main" + description: + name: collection + sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76" + url: "https://pub.dev" + source: hosted + version: "1.19.1" + convert: + dependency: transitive + description: + name: convert + sha256: b30acd5944035672bc15c6b7a8b47d773e41e2f17de064350988c5d02adb1c68 + url: "https://pub.dev" + source: hosted + version: "3.1.2" + cross_file: + dependency: transitive + description: + name: cross_file + sha256: "7caf6a750a0c04effbb52a676dce9a4a592e10ad35c34d6d2d0e4811160d5670" + url: "https://pub.dev" + source: hosted + version: "0.3.4+2" + crypto: + dependency: "direct main" + description: + name: crypto + sha256: "1e445881f28f22d6140f181e07737b22f1e099a5e1ff94b0af2f9e4a463f4855" + url: "https://pub.dev" + source: hosted + version: "3.0.6" + csslib: + dependency: transitive + description: + name: csslib + sha256: "09bad715f418841f976c77db72d5398dc1253c21fb9c0c7f0b0b985860b2d58e" + url: "https://pub.dev" + source: hosted + version: "1.0.2" + cupertino_icons: + dependency: "direct main" + description: + name: cupertino_icons + sha256: ba631d1c7f7bef6b729a622b7b752645a2d076dba9976925b8f25725a30e1ee6 + url: "https://pub.dev" + source: hosted + version: "1.0.8" + dart_style: + dependency: transitive + description: + name: dart_style + sha256: "8a0e5fba27e8ee025d2ffb4ee820b4e6e2cf5e4246a6b1a477eb66866947e0bb" + url: "https://pub.dev" + source: hosted + version: "3.1.1" + dio: + dependency: "direct main" + description: + name: dio + sha256: "253a18bbd4851fecba42f7343a1df3a9a4c1d31a2c1b37e221086b4fa8c8dbc9" + url: "https://pub.dev" + source: hosted + version: "5.8.0+1" + dio_web_adapter: + dependency: transitive + description: + name: dio_web_adapter + sha256: "7586e476d70caecaf1686d21eee7247ea43ef5c345eab9e0cc3583ff13378d78" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + fake_async: + dependency: transitive + description: + name: fake_async + sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44" + url: "https://pub.dev" + source: hosted + version: "1.3.3" + ffi: + dependency: transitive + description: + name: ffi + sha256: "289279317b4b16eb2bb7e271abccd4bf84ec9bdcbe999e278a94b804f5630418" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + file: + dependency: transitive + description: + name: file + sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4 + url: "https://pub.dev" + source: hosted + version: "7.0.1" + file_picker: + dependency: "direct main" + description: + name: file_picker + sha256: "13ba4e627ef24503a465d1d61b32596ce10eb6b8903678d362a528f9939b4aa8" + url: "https://pub.dev" + source: hosted + version: "10.2.1" + file_selector_linux: + dependency: transitive + description: + name: file_selector_linux + sha256: "54cbbd957e1156d29548c7d9b9ec0c0ebb6de0a90452198683a7d23aed617a33" + url: "https://pub.dev" + source: hosted + version: "0.9.3+2" + file_selector_macos: + dependency: transitive + description: + name: file_selector_macos + sha256: "8c9250b2bd2d8d4268e39c82543bacbaca0fda7d29e0728c3c4bbb7c820fd711" + url: "https://pub.dev" + source: hosted + version: "0.9.4+3" + file_selector_platform_interface: + dependency: transitive + description: + name: file_selector_platform_interface + sha256: a3994c26f10378a039faa11de174d7b78eb8f79e4dd0af2a451410c1a5c3f66b + url: "https://pub.dev" + source: hosted + version: "2.6.2" + file_selector_windows: + dependency: transitive + description: + name: file_selector_windows + sha256: "320fcfb6f33caa90f0b58380489fc5ac05d99ee94b61aa96ec2bff0ba81d3c2b" + url: "https://pub.dev" + source: hosted + version: "0.9.3+4" + fixnum: + dependency: transitive + description: + name: fixnum + sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be + url: "https://pub.dev" + source: hosted + version: "1.1.1" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_animate: + dependency: "direct main" + description: + name: flutter_animate + sha256: "7befe2d3252728afb77aecaaea1dec88a89d35b9b1d2eea6d04479e8af9117b5" + url: "https://pub.dev" + source: hosted + version: "4.5.2" + flutter_cache_manager: + dependency: transitive + description: + name: flutter_cache_manager + sha256: "400b6592f16a4409a7f2bb929a9a7e38c72cceb8ffb99ee57bbf2cb2cecf8386" + url: "https://pub.dev" + source: hosted + version: "3.4.1" + flutter_lints: + dependency: "direct dev" + description: + name: flutter_lints + sha256: "3105dc8492f6183fb076ccf1f351ac3d60564bff92e20bfc4af9cc1651f4e7e1" + url: "https://pub.dev" + source: hosted + version: "6.0.0" + flutter_math_fork: + dependency: transitive + description: + name: flutter_math_fork + sha256: "6d5f2f1aa57ae539ffb0a04bb39d2da67af74601d685a161aff7ce5bda5fa407" + url: "https://pub.dev" + source: hosted + version: "0.7.4" + flutter_native_splash: + dependency: "direct dev" + description: + name: flutter_native_splash + sha256: "8321a6d11a8d13977fa780c89de8d257cce3d841eecfb7a4cadffcc4f12d82dc" + url: "https://pub.dev" + source: hosted + version: "2.4.6" + flutter_plugin_android_lifecycle: + dependency: transitive + description: + name: flutter_plugin_android_lifecycle + sha256: f948e346c12f8d5480d2825e03de228d0eb8c3a737e4cdaa122267b89c022b5e + url: "https://pub.dev" + source: hosted + version: "2.0.28" + flutter_riverpod: + dependency: "direct main" + description: + name: flutter_riverpod + sha256: "9532ee6db4a943a1ed8383072a2e3eeda041db5657cdf6d2acecf3c21ecbe7e1" + url: "https://pub.dev" + source: hosted + version: "2.6.1" + flutter_secure_storage: + dependency: "direct main" + description: + name: flutter_secure_storage + sha256: "9cad52d75ebc511adfae3d447d5d13da15a55a92c9410e50f67335b6d21d16ea" + url: "https://pub.dev" + source: hosted + version: "9.2.4" + flutter_secure_storage_linux: + dependency: transitive + description: + name: flutter_secure_storage_linux + sha256: be76c1d24a97d0b98f8b54bce6b481a380a6590df992d0098f868ad54dc8f688 + url: "https://pub.dev" + source: hosted + version: "1.2.3" + flutter_secure_storage_macos: + dependency: transitive + description: + name: flutter_secure_storage_macos + sha256: "6c0a2795a2d1de26ae202a0d78527d163f4acbb11cde4c75c670f3a0fc064247" + url: "https://pub.dev" + source: hosted + version: "3.1.3" + flutter_secure_storage_platform_interface: + dependency: transitive + description: + name: flutter_secure_storage_platform_interface + sha256: cf91ad32ce5adef6fba4d736a542baca9daf3beac4db2d04be350b87f69ac4a8 + url: "https://pub.dev" + source: hosted + version: "1.1.2" + flutter_secure_storage_web: + dependency: transitive + description: + name: flutter_secure_storage_web + sha256: f4ebff989b4f07b2656fb16b47852c0aab9fed9b4ec1c70103368337bc1886a9 + url: "https://pub.dev" + source: hosted + version: "1.2.1" + flutter_secure_storage_windows: + dependency: transitive + description: + name: flutter_secure_storage_windows + sha256: b20b07cb5ed4ed74fc567b78a72936203f587eba460af1df11281c9326cd3709 + url: "https://pub.dev" + source: hosted + version: "3.1.2" + flutter_shaders: + dependency: transitive + description: + name: flutter_shaders + sha256: "34794acadd8275d971e02df03afee3dee0f98dbfb8c4837082ad0034f612a3e2" + url: "https://pub.dev" + source: hosted + version: "0.1.3" + flutter_svg: + dependency: transitive + description: + name: flutter_svg + sha256: cd57f7969b4679317c17af6fd16ee233c1e60a82ed209d8a475c54fd6fd6f845 + url: "https://pub.dev" + source: hosted + version: "2.2.0" + flutter_test: + dependency: "direct dev" + description: flutter + source: sdk + version: "0.0.0" + flutter_web_plugins: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + freezed: + dependency: "direct dev" + description: + name: freezed + sha256: "2d399f823b8849663744d2a9ddcce01c49268fb4170d0442a655bf6a2f47be22" + url: "https://pub.dev" + source: hosted + version: "3.1.0" + freezed_annotation: + dependency: "direct main" + description: + name: freezed_annotation + sha256: "7294967ff0a6d98638e7acb774aac3af2550777accd8149c90af5b014e6d44d8" + url: "https://pub.dev" + source: hosted + version: "3.1.0" + frontend_server_client: + dependency: transitive + description: + name: frontend_server_client + sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694 + url: "https://pub.dev" + source: hosted + version: "4.0.0" + glob: + dependency: transitive + description: + name: glob + sha256: c3f1ee72c96f8f78935e18aa8cecced9ab132419e8625dc187e1c2408efc20de + url: "https://pub.dev" + source: hosted + version: "2.1.3" + google_fonts: + dependency: "direct main" + description: + name: google_fonts + sha256: b1ac0fe2832c9cc95e5e88b57d627c5e68c223b9657f4b96e1487aa9098c7b82 + url: "https://pub.dev" + source: hosted + version: "6.2.1" + gpt_markdown: + dependency: "direct main" + description: + name: gpt_markdown + sha256: "68d5337c8a00fc03a37dbddf84a6fd90401c30e99b6baf497ef9522a81fc34ee" + url: "https://pub.dev" + source: hosted + version: "1.1.2" + graphs: + dependency: transitive + description: + name: graphs + sha256: "741bbf84165310a68ff28fe9e727332eef1407342fca52759cb21ad8177bb8d0" + url: "https://pub.dev" + source: hosted + version: "2.3.2" + html: + dependency: transitive + description: + name: html + sha256: "6d1264f2dffa1b1101c25a91dff0dc2daee4c18e87cd8538729773c073dbf602" + url: "https://pub.dev" + source: hosted + version: "0.15.6" + http: + dependency: transitive + description: + name: http + sha256: "2c11f3f94c687ee9bad77c171151672986360b2b001d109814ee7140b2cf261b" + url: "https://pub.dev" + source: hosted + version: "1.4.0" + http_multi_server: + dependency: transitive + description: + name: http_multi_server + sha256: aa6199f908078bb1c5efb8d8638d4ae191aac11b311132c3ef48ce352fb52ef8 + url: "https://pub.dev" + source: hosted + version: "3.2.2" + http_parser: + dependency: "direct main" + description: + name: http_parser + sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571" + url: "https://pub.dev" + source: hosted + version: "4.1.2" + image: + dependency: transitive + description: + name: image + sha256: "4e973fcf4caae1a4be2fa0a13157aa38a8f9cb049db6529aa00b4d71abc4d928" + url: "https://pub.dev" + source: hosted + version: "4.5.4" + image_picker: + dependency: "direct main" + description: + name: image_picker + sha256: "021834d9c0c3de46bf0fe40341fa07168407f694d9b2bb18d532dc1261867f7a" + url: "https://pub.dev" + source: hosted + version: "1.1.2" + image_picker_android: + dependency: transitive + description: + name: image_picker_android + sha256: "6fae381e6af2bbe0365a5e4ce1db3959462fa0c4d234facf070746024bb80c8d" + url: "https://pub.dev" + source: hosted + version: "0.8.12+24" + image_picker_for_web: + dependency: transitive + description: + name: image_picker_for_web + sha256: "717eb042ab08c40767684327be06a5d8dbb341fe791d514e4b92c7bbe1b7bb83" + url: "https://pub.dev" + source: hosted + version: "3.0.6" + image_picker_ios: + dependency: transitive + description: + name: image_picker_ios + sha256: "05da758e67bc7839e886b3959848aa6b44ff123ab4b28f67891008afe8ef9100" + url: "https://pub.dev" + source: hosted + version: "0.8.12+2" + image_picker_linux: + dependency: transitive + description: + name: image_picker_linux + sha256: "34a65f6740df08bbbeb0a1abd8e6d32107941fd4868f67a507b25601651022c9" + url: "https://pub.dev" + source: hosted + version: "0.2.1+2" + image_picker_macos: + dependency: transitive + description: + name: image_picker_macos + sha256: "1b90ebbd9dcf98fb6c1d01427e49a55bd96b5d67b8c67cf955d60a5de74207c1" + url: "https://pub.dev" + source: hosted + version: "0.2.1+2" + image_picker_platform_interface: + dependency: transitive + description: + name: image_picker_platform_interface + sha256: "886d57f0be73c4b140004e78b9f28a8914a09e50c2d816bdd0520051a71236a0" + url: "https://pub.dev" + source: hosted + version: "2.10.1" + image_picker_windows: + dependency: transitive + description: + name: image_picker_windows + sha256: "6ad07afc4eb1bc25f3a01084d28520496c4a3bb0cb13685435838167c9dcedeb" + url: "https://pub.dev" + source: hosted + version: "0.2.1+1" + io: + dependency: transitive + description: + name: io + sha256: dfd5a80599cf0165756e3181807ed3e77daf6dd4137caaad72d0b7931597650b + url: "https://pub.dev" + source: hosted + version: "1.0.5" + js: + dependency: transitive + description: + name: js + sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 + url: "https://pub.dev" + source: hosted + version: "0.6.7" + json_annotation: + dependency: "direct main" + description: + name: json_annotation + sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1" + url: "https://pub.dev" + source: hosted + version: "4.9.0" + json_serializable: + dependency: "direct dev" + description: + name: json_serializable + sha256: c50ef5fc083d5b5e12eef489503ba3bf5ccc899e487d691584699b4bdefeea8c + url: "https://pub.dev" + source: hosted + version: "6.9.5" + leak_tracker: + dependency: transitive + description: + name: leak_tracker + sha256: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0" + url: "https://pub.dev" + source: hosted + version: "10.0.9" + leak_tracker_flutter_testing: + dependency: transitive + description: + name: leak_tracker_flutter_testing + sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573 + url: "https://pub.dev" + source: hosted + version: "3.0.9" + leak_tracker_testing: + dependency: transitive + description: + name: leak_tracker_testing + sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" + url: "https://pub.dev" + source: hosted + version: "3.0.1" + lints: + dependency: transitive + description: + name: lints + sha256: a5e2b223cb7c9c8efdc663ef484fdd95bb243bff242ef5b13e26883547fce9a0 + url: "https://pub.dev" + source: hosted + version: "6.0.0" + logging: + dependency: transitive + description: + name: logging + sha256: c8245ada5f1717ed44271ed1c26b8ce85ca3228fd2ffdb75468ab01979309d61 + url: "https://pub.dev" + source: hosted + version: "1.3.0" + matcher: + dependency: transitive + description: + name: matcher + sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2 + url: "https://pub.dev" + source: hosted + version: "0.12.17" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec + url: "https://pub.dev" + source: hosted + version: "0.11.1" + meta: + dependency: transitive + description: + name: meta + sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c + url: "https://pub.dev" + source: hosted + version: "1.16.0" + mime: + dependency: transitive + description: + name: mime + sha256: "41a20518f0cb1256669420fdba0cd90d21561e560ac240f26ef8322e45bb7ed6" + url: "https://pub.dev" + source: hosted + version: "2.0.0" + nested: + dependency: transitive + description: + name: nested + sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20" + url: "https://pub.dev" + source: hosted + version: "1.0.0" + octo_image: + dependency: transitive + description: + name: octo_image + sha256: "34faa6639a78c7e3cbe79be6f9f96535867e879748ade7d17c9b1ae7536293bd" + url: "https://pub.dev" + source: hosted + version: "2.1.0" + package_config: + dependency: transitive + description: + name: package_config + sha256: f096c55ebb7deb7e384101542bfba8c52696c1b56fca2eb62827989ef2353bbc + url: "https://pub.dev" + source: hosted + version: "2.2.0" + package_info_plus: + dependency: "direct main" + description: + name: package_info_plus + sha256: "7976bfe4c583170d6cdc7077e3237560b364149fcd268b5f53d95a991963b191" + url: "https://pub.dev" + source: hosted + version: "8.3.0" + package_info_plus_platform_interface: + dependency: transitive + description: + name: package_info_plus_platform_interface + sha256: "6c935fb612dff8e3cc9632c2b301720c77450a126114126ffaafe28d2e87956c" + url: "https://pub.dev" + source: hosted + version: "3.2.0" + path: + dependency: "direct main" + description: + name: path + sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5" + url: "https://pub.dev" + source: hosted + version: "1.9.1" + path_parsing: + dependency: transitive + description: + name: path_parsing + sha256: "883402936929eac138ee0a45da5b0f2c80f89913e6dc3bf77eb65b84b409c6ca" + url: "https://pub.dev" + source: hosted + version: "1.1.0" + path_provider: + dependency: transitive + description: + name: path_provider + sha256: "50c5dd5b6e1aaf6fb3a78b33f6aa3afca52bf903a8a5298f53101fdaee55bbcd" + url: "https://pub.dev" + source: hosted + version: "2.1.5" + path_provider_android: + dependency: transitive + description: + name: path_provider_android + sha256: d0d310befe2c8ab9e7f393288ccbb11b60c019c6b5afc21973eeee4dda2b35e9 + url: "https://pub.dev" + source: hosted + version: "2.2.17" + path_provider_foundation: + dependency: transitive + description: + name: path_provider_foundation + sha256: "4843174df4d288f5e29185bd6e72a6fbdf5a4a4602717eed565497429f179942" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + path_provider_linux: + dependency: transitive + description: + name: path_provider_linux + sha256: f7a1fe3a634fe7734c8d3f2766ad746ae2a2884abe22e241a8b301bf5cac3279 + url: "https://pub.dev" + source: hosted + version: "2.2.1" + path_provider_platform_interface: + dependency: transitive + description: + name: path_provider_platform_interface + sha256: "88f5779f72ba699763fa3a3b06aa4bf6de76c8e5de842cf6f29e2e06476c2334" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + path_provider_windows: + dependency: transitive + description: + name: path_provider_windows + sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7 + url: "https://pub.dev" + source: hosted + version: "2.3.0" + petitparser: + dependency: transitive + description: + name: petitparser + sha256: "07c8f0b1913bcde1ff0d26e57ace2f3012ccbf2b204e070290dad3bb22797646" + url: "https://pub.dev" + source: hosted + version: "6.1.0" + platform: + dependency: transitive + description: + name: platform + sha256: "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984" + url: "https://pub.dev" + source: hosted + version: "3.1.6" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" + url: "https://pub.dev" + source: hosted + version: "2.1.8" + pool: + dependency: transitive + description: + name: pool + sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a" + url: "https://pub.dev" + source: hosted + version: "1.5.1" + posix: + dependency: transitive + description: + name: posix + sha256: "6323a5b0fa688b6a010df4905a56b00181479e6d10534cecfecede2aa55add61" + url: "https://pub.dev" + source: hosted + version: "6.0.3" + provider: + dependency: transitive + description: + name: provider + sha256: "4abbd070a04e9ddc287673bf5a030c7ca8b685ff70218720abab8b092f53dd84" + url: "https://pub.dev" + source: hosted + version: "6.1.5" + pub_semver: + dependency: transitive + description: + name: pub_semver + sha256: "5bfcf68ca79ef689f8990d1160781b4bad40a3bd5e5218ad4076ddb7f4081585" + url: "https://pub.dev" + source: hosted + version: "2.2.0" + pubspec_parse: + dependency: transitive + description: + name: pubspec_parse + sha256: "0560ba233314abbed0a48a2956f7f022cce7c3e1e73df540277da7544cad4082" + url: "https://pub.dev" + source: hosted + version: "1.5.0" + record: + dependency: "direct main" + description: + name: record + sha256: daeb3f9b3fea9797094433fe6e49a879d8e4ca4207740bc6dc7e4a58764f0817 + url: "https://pub.dev" + source: hosted + version: "6.0.0" + record_android: + dependency: transitive + description: + name: record_android + sha256: "97d7122455f30de89a01c6c244c839085be6b12abca251fc0e78f67fed73628b" + url: "https://pub.dev" + source: hosted + version: "1.3.3" + record_ios: + dependency: transitive + description: + name: record_ios + sha256: "73706ebbece6150654c9d6f57897cf9b622c581148304132ba85dba15df0fdfb" + url: "https://pub.dev" + source: hosted + version: "1.0.0" + record_linux: + dependency: transitive + description: + name: record_linux + sha256: "0626678a092c75ce6af1e32fe7fd1dea709b92d308bc8e3b6d6348e2430beb95" + url: "https://pub.dev" + source: hosted + version: "1.1.1" + record_macos: + dependency: transitive + description: + name: record_macos + sha256: "02240833fde16c33fcf2c589f3e08d4394b704761b4a3bb609d872ff3043fbbd" + url: "https://pub.dev" + source: hosted + version: "1.0.0" + record_platform_interface: + dependency: transitive + description: + name: record_platform_interface + sha256: c1ad38f51e4af88a085b3e792a22c685cb3e7c23fc37aa7ce44c4cf18f25fe89 + url: "https://pub.dev" + source: hosted + version: "1.3.0" + record_web: + dependency: transitive + description: + name: record_web + sha256: a12856d0b3dd03d336b4b10d7520a8b3e21649a06a8f95815318feaa8f07adbb + url: "https://pub.dev" + source: hosted + version: "1.1.9" + record_windows: + dependency: transitive + description: + name: record_windows + sha256: "85a22fc97f6d73ecd67c8ba5f2f472b74ef1d906f795b7970f771a0914167e99" + url: "https://pub.dev" + source: hosted + version: "1.0.6" + riverpod: + dependency: transitive + description: + name: riverpod + sha256: "59062512288d3056b2321804332a13ffdd1bf16df70dcc8e506e411280a72959" + url: "https://pub.dev" + source: hosted + version: "2.6.1" + rxdart: + dependency: transitive + description: + name: rxdart + sha256: "5c3004a4a8dbb94bd4bf5412a4def4acdaa12e12f269737a5751369e12d1a962" + url: "https://pub.dev" + source: hosted + version: "0.28.0" + shared_preferences: + dependency: "direct main" + description: + name: shared_preferences + sha256: "6e8bf70b7fef813df4e9a36f658ac46d107db4b4cfe1048b477d4e453a8159f5" + url: "https://pub.dev" + source: hosted + version: "2.5.3" + shared_preferences_android: + dependency: transitive + description: + name: shared_preferences_android + sha256: "20cbd561f743a342c76c151d6ddb93a9ce6005751e7aa458baad3858bfbfb6ac" + url: "https://pub.dev" + source: hosted + version: "2.4.10" + shared_preferences_foundation: + dependency: transitive + description: + name: shared_preferences_foundation + sha256: "6a52cfcdaeac77cad8c97b539ff688ccfc458c007b4db12be584fbe5c0e49e03" + url: "https://pub.dev" + source: hosted + version: "2.5.4" + shared_preferences_linux: + dependency: transitive + description: + name: shared_preferences_linux + sha256: "580abfd40f415611503cae30adf626e6656dfb2f0cee8f465ece7b6defb40f2f" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + shared_preferences_platform_interface: + dependency: transitive + description: + name: shared_preferences_platform_interface + sha256: "57cbf196c486bc2cf1f02b85784932c6094376284b3ad5779d1b1c6c6a816b80" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + shared_preferences_web: + dependency: transitive + description: + name: shared_preferences_web + sha256: c49bd060261c9a3f0ff445892695d6212ff603ef3115edbb448509d407600019 + url: "https://pub.dev" + source: hosted + version: "2.4.3" + shared_preferences_windows: + dependency: transitive + description: + name: shared_preferences_windows + sha256: "94ef0f72b2d71bc3e700e025db3710911bd51a71cefb65cc609dd0d9a982e3c1" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + shelf: + dependency: transitive + description: + name: shelf + sha256: e7dd780a7ffb623c57850b33f43309312fc863fb6aa3d276a754bb299839ef12 + url: "https://pub.dev" + source: hosted + version: "1.4.2" + shelf_web_socket: + dependency: transitive + description: + name: shelf_web_socket + sha256: "3632775c8e90d6c9712f883e633716432a27758216dfb61bd86a8321c0580925" + url: "https://pub.dev" + source: hosted + version: "3.0.0" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + socket_io_client: + dependency: "direct main" + description: + name: socket_io_client + sha256: c8471c2c6843cf308a5532ff653f2bcdb7fa9ae79d84d1179920578a06624f0d + url: "https://pub.dev" + source: hosted + version: "3.1.2" + socket_io_common: + dependency: transitive + description: + name: socket_io_common + sha256: "162fbaecbf4bf9a9372a62a341b3550b51dcef2f02f3e5830a297fd48203d45b" + url: "https://pub.dev" + source: hosted + version: "3.1.1" + source_gen: + dependency: transitive + description: + name: source_gen + sha256: "35c8150ece9e8c8d263337a265153c3329667640850b9304861faea59fc98f6b" + url: "https://pub.dev" + source: hosted + version: "2.0.0" + source_helper: + dependency: transitive + description: + name: source_helper + sha256: "4f81479fe5194a622cdd1713fe1ecb683a6e6c85cd8cec8e2e35ee5ab3fdf2a1" + url: "https://pub.dev" + source: hosted + version: "1.3.6" + source_span: + dependency: transitive + description: + name: source_span + sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c" + url: "https://pub.dev" + source: hosted + version: "1.10.1" + sprintf: + dependency: transitive + description: + name: sprintf + sha256: "1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23" + url: "https://pub.dev" + source: hosted + version: "7.0.0" + sqflite: + dependency: transitive + description: + name: sqflite + sha256: e2297b1da52f127bc7a3da11439985d9b536f75070f3325e62ada69a5c585d03 + url: "https://pub.dev" + source: hosted + version: "2.4.2" + sqflite_android: + dependency: transitive + description: + name: sqflite_android + sha256: "2b3070c5fa881839f8b402ee4a39c1b4d561704d4ebbbcfb808a119bc2a1701b" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + sqflite_common: + dependency: transitive + description: + name: sqflite_common + sha256: "6ef422a4525ecc601db6c0a2233ff448c731307906e92cabc9ba292afaae16a6" + url: "https://pub.dev" + source: hosted + version: "2.5.6" + sqflite_darwin: + dependency: transitive + description: + name: sqflite_darwin + sha256: "279832e5cde3fe99e8571879498c9211f3ca6391b0d818df4e17d9fff5c6ccb3" + url: "https://pub.dev" + source: hosted + version: "2.4.2" + sqflite_platform_interface: + dependency: transitive + description: + name: sqflite_platform_interface + sha256: "8dd4515c7bdcae0a785b0062859336de775e8c65db81ae33dd5445f35be61920" + url: "https://pub.dev" + source: hosted + version: "2.4.0" + sse: + dependency: "direct main" + description: + name: sse + sha256: fcc97470240bb37377f298e2bd816f09fd7216c07928641c0560719f50603643 + url: "https://pub.dev" + source: hosted + version: "4.1.8" + stack_trace: + dependency: transitive + description: + name: stack_trace + sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1" + url: "https://pub.dev" + source: hosted + version: "1.12.1" + state_notifier: + dependency: transitive + description: + name: state_notifier + sha256: b8677376aa54f2d7c58280d5a007f9e8774f1968d1fb1c096adcb4792fba29bb + url: "https://pub.dev" + source: hosted + version: "1.0.0" + stream_channel: + dependency: transitive + description: + name: stream_channel + sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + stream_transform: + dependency: transitive + description: + name: stream_transform + sha256: ad47125e588cfd37a9a7f86c7d6356dde8dfe89d071d293f80ca9e9273a33871 + url: "https://pub.dev" + source: hosted + version: "2.1.1" + string_scanner: + dependency: transitive + description: + name: string_scanner + sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43" + url: "https://pub.dev" + source: hosted + version: "1.4.1" + synchronized: + dependency: transitive + description: + name: synchronized + sha256: c254ade258ec8282947a0acbbc90b9575b4f19673533ee46f2f6e9b3aeefd7c0 + url: "https://pub.dev" + source: hosted + version: "3.4.0" + term_glyph: + dependency: transitive + description: + name: term_glyph + sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e" + url: "https://pub.dev" + source: hosted + version: "1.2.2" + test_api: + dependency: transitive + description: + name: test_api + sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd + url: "https://pub.dev" + source: hosted + version: "0.7.4" + timing: + dependency: transitive + description: + name: timing + sha256: "62ee18aca144e4a9f29d212f5a4c6a053be252b895ab14b5821996cff4ed90fe" + url: "https://pub.dev" + source: hosted + version: "1.0.2" + tuple: + dependency: transitive + description: + name: tuple + sha256: a97ce2013f240b2f3807bcbaf218765b6f301c3eff91092bcfa23a039e7dd151 + url: "https://pub.dev" + source: hosted + version: "2.0.2" + typed_data: + dependency: transitive + description: + name: typed_data + sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006 + url: "https://pub.dev" + source: hosted + version: "1.4.0" + universal_io: + dependency: transitive + description: + name: universal_io + sha256: "1722b2dcc462b4b2f3ee7d188dad008b6eb4c40bbd03a3de451d82c78bba9aad" + url: "https://pub.dev" + source: hosted + version: "2.2.2" + url_launcher: + dependency: "direct main" + description: + name: url_launcher + sha256: f6a7e5c4835bb4e3026a04793a4199ca2d14c739ec378fdfe23fc8075d0439f8 + url: "https://pub.dev" + source: hosted + version: "6.3.2" + url_launcher_android: + dependency: transitive + description: + name: url_launcher_android + sha256: "0aedad096a85b49df2e4725fa32118f9fa580f3b14af7a2d2221896a02cd5656" + url: "https://pub.dev" + source: hosted + version: "6.3.17" + url_launcher_ios: + dependency: transitive + description: + name: url_launcher_ios + sha256: "7f2022359d4c099eea7df3fdf739f7d3d3b9faf3166fb1dd390775176e0b76cb" + url: "https://pub.dev" + source: hosted + version: "6.3.3" + url_launcher_linux: + dependency: transitive + description: + name: url_launcher_linux + sha256: "4e9ba368772369e3e08f231d2301b4ef72b9ff87c31192ef471b380ef29a4935" + url: "https://pub.dev" + source: hosted + version: "3.2.1" + url_launcher_macos: + dependency: transitive + description: + name: url_launcher_macos + sha256: "17ba2000b847f334f16626a574c702b196723af2a289e7a93ffcb79acff855c2" + url: "https://pub.dev" + source: hosted + version: "3.2.2" + url_launcher_platform_interface: + dependency: transitive + description: + name: url_launcher_platform_interface + sha256: "552f8a1e663569be95a8190206a38187b531910283c3e982193e4f2733f01029" + url: "https://pub.dev" + source: hosted + version: "2.3.2" + url_launcher_web: + dependency: transitive + description: + name: url_launcher_web + sha256: "4bd2b7b4dc4d4d0b94e5babfffbca8eac1a126c7f3d6ecbc1a11013faa3abba2" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + url_launcher_windows: + dependency: transitive + description: + name: url_launcher_windows + sha256: "3284b6d2ac454cf34f114e1d3319866fdd1e19cdc329999057e44ffe936cfa77" + url: "https://pub.dev" + source: hosted + version: "3.1.4" + uuid: + dependency: "direct main" + description: + name: uuid + sha256: a5be9ef6618a7ac1e964353ef476418026db906c4facdedaa299b7a2e71690ff + url: "https://pub.dev" + source: hosted + version: "4.5.1" + vector_graphics: + dependency: transitive + description: + name: vector_graphics + sha256: a4f059dc26fc8295b5921376600a194c4ec7d55e72f2fe4c7d2831e103d461e6 + url: "https://pub.dev" + source: hosted + version: "1.1.19" + vector_graphics_codec: + dependency: transitive + description: + name: vector_graphics_codec + sha256: "99fd9fbd34d9f9a32efd7b6a6aae14125d8237b10403b422a6a6dfeac2806146" + url: "https://pub.dev" + source: hosted + version: "1.1.13" + vector_graphics_compiler: + dependency: transitive + description: + name: vector_graphics_compiler + sha256: "557a315b7d2a6dbb0aaaff84d857967ce6bdc96a63dc6ee2a57ce5a6ee5d3331" + url: "https://pub.dev" + source: hosted + version: "1.1.17" + vector_math: + dependency: transitive + description: + name: vector_math + sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + vm_service: + dependency: transitive + description: + name: vm_service + sha256: ddfa8d30d89985b96407efce8acbdd124701f96741f2d981ca860662f1c0dc02 + url: "https://pub.dev" + source: hosted + version: "15.0.0" + watcher: + dependency: transitive + description: + name: watcher + sha256: "0b7fd4a0bbc4b92641dbf20adfd7e3fd1398fe17102d94b674234563e110088a" + url: "https://pub.dev" + source: hosted + version: "1.1.2" + web: + dependency: transitive + description: + name: web + sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a" + url: "https://pub.dev" + source: hosted + version: "1.1.1" + web_socket: + dependency: transitive + description: + name: web_socket + sha256: "34d64019aa8e36bf9842ac014bb5d2f5586ca73df5e4d9bf5c936975cae6982c" + url: "https://pub.dev" + source: hosted + version: "1.0.1" + web_socket_channel: + dependency: "direct main" + description: + name: web_socket_channel + sha256: d645757fb0f4773d602444000a8131ff5d48c9e47adfe9772652dd1a4f2d45c8 + url: "https://pub.dev" + source: hosted + version: "3.0.3" + win32: + dependency: transitive + description: + name: win32 + sha256: "66814138c3562338d05613a6e368ed8cfb237ad6d64a9e9334be3f309acfca03" + url: "https://pub.dev" + source: hosted + version: "5.14.0" + xdg_directories: + dependency: transitive + description: + name: xdg_directories + sha256: "7a3f37b05d989967cdddcbb571f1ea834867ae2faa29725fd085180e0883aa15" + url: "https://pub.dev" + source: hosted + version: "1.1.0" + xml: + dependency: transitive + description: + name: xml + sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226 + url: "https://pub.dev" + source: hosted + version: "6.5.0" + yaml: + dependency: transitive + description: + name: yaml + sha256: b9da305ac7c39faa3f030eccd175340f968459dae4af175130b3fc47e40d76ce + url: "https://pub.dev" + source: hosted + version: "3.1.3" +sdks: + dart: ">=3.8.0 <4.0.0" + flutter: ">=3.29.0" diff --git a/pubspec.yaml b/pubspec.yaml new file mode 100644 index 0000000..bd20423 --- /dev/null +++ b/pubspec.yaml @@ -0,0 +1,88 @@ +name: conduit +description: Open-source mobile client for Open-WebUI +version: 1.0.0+1 +publish_to: 'none' + +environment: + sdk: ">=3.8.0 <4.0.0" + +dependencies: + flutter: + sdk: flutter + + # State Management + flutter_riverpod: ^2.6.1 + + # Network & API + dio: ^5.5.0 + http_parser: ^4.0.2 + web_socket_channel: ^3.0.1 + socket_io_client: ^3.0.4 + sse: ^4.1.2 + + # Storage + flutter_secure_storage: ^9.2.2 + shared_preferences: ^2.3.2 + + # UI Components - Enhanced Markdown + gpt_markdown: ^1.1.2 + cached_network_image: ^3.3.1 + + + + # Modern Animations + flutter_animate: ^4.5.0 + + # Platform Features + record: ^6.0.0 + image_picker: ^1.1.2 + file_picker: ^10.2.1 + + # Utilities + path: ^1.9.0 + uuid: ^4.5.0 + collection: ^1.18.0 + crypto: ^3.0.3 + package_info_plus: ^8.0.2 + url_launcher: ^6.3.0 + + # Icons & Theming + cupertino_icons: ^1.0.8 + freezed_annotation: ^3.0.0 + json_annotation: ^4.9.0 + google_fonts: ^6.2.1 + + # Clipboard functionality is available through flutter/services (part of Flutter SDK) + +dev_dependencies: + flutter_test: + sdk: flutter + flutter_lints: ^6.0.0 + build_runner: ^2.4.11 + freezed: ^3.0.0 + json_serializable: ^6.8.0 + flutter_native_splash: ^2.4.6 + +dependency_overrides: + +flutter: + uses-material-design: true + + assets: + - assets/icons/ + - assets/openapi.json + +flutter_native_splash: + # Background color (Conduit dark theme) + color: "#000000" + # Image to display on the splash screen + image: assets/icons/icon.png + + + # Android specific settings + android_12: + color: "#000000" + + # Web specific settings + web: false + diff --git a/scripts/release.sh b/scripts/release.sh new file mode 100755 index 0000000..46533fb --- /dev/null +++ b/scripts/release.sh @@ -0,0 +1,112 @@ +#!/bin/bash + +# LuCI Mobile Release Script (CI-driven) +# Usage: ./scripts/release.sh [major|minor|patch] + +set -e + +# Colors for output +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +NC='\033[0m' # No Color + +# Function to print colored output +print_status() { + echo -e "${GREEN}[INFO]${NC} $1" +} + +print_warning() { + echo -e "${YELLOW}[WARNING]${NC} $1" +} + +print_error() { + echo -e "${RED}[ERROR]${NC} $1" +} + +# Check if we're in the right directory +if [ ! -f "pubspec.yaml" ]; then + print_error "This script must be run from the project root directory" + exit 1 +fi + +# Check if git is clean +if [ -n "$(git status --porcelain)" ]; then + print_error "Working directory is not clean. Please commit or stash your changes first." + exit 1 +fi + +# Get current version from pubspec.yaml +CURRENT_VERSION=$(grep "^version:" pubspec.yaml | sed 's/version: //') +print_status "Current version: $CURRENT_VERSION" + +# Parse version components +IFS='.' read -ra VERSION_PARTS <<< "${CURRENT_VERSION%%+*}" +MAJOR=${VERSION_PARTS[0]} +MINOR=${VERSION_PARTS[1]} +PATCH=${VERSION_PARTS[2]} + +# Determine release type +RELEASE_TYPE=${1:-patch} + +case $RELEASE_TYPE in + major) + NEW_MAJOR=$((MAJOR + 1)) + NEW_MINOR=0 + NEW_PATCH=0 + ;; + minor) + NEW_MAJOR=$MAJOR + NEW_MINOR=$((MINOR + 1)) + NEW_PATCH=0 + ;; + patch) + NEW_MAJOR=$MAJOR + NEW_MINOR=$MINOR + NEW_PATCH=$((PATCH + 1)) + ;; + *) + print_error "Invalid release type. Use: major, minor, or patch" + exit 1 + ;; +esac + +NEW_VERSION="$NEW_MAJOR.$NEW_MINOR.$NEW_PATCH" +TAG_VERSION="v$NEW_VERSION" + +print_status "New version: $NEW_VERSION" +print_status "Tag version: $TAG_VERSION" + +echo +read -p "Do you want to create release $TAG_VERSION? (y/N): " -n 1 -r +echo +if [[ ! $REPLY =~ ^[Yy]$ ]]; then + print_warning "Release cancelled" + exit 0 +fi + +# Get current build number +CURRENT_BUILD=$(echo "$CURRENT_VERSION" | awk -F'+' '{print $2}') +if [ -z "$CURRENT_BUILD" ]; then + CURRENT_BUILD=1 +fi +NEW_BUILD=$((CURRENT_BUILD + 1)) + +# Update pubspec.yaml with new version and incremented build number +print_status "Updating pubspec.yaml to version: $NEW_VERSION+$NEW_BUILD" +sed -i.bak "s/^version: .*/version: $NEW_VERSION+$NEW_BUILD/" pubspec.yaml +rm pubspec.yaml.bak + +# Commit changes +print_status "Committing changes..." +git add pubspec.yaml +git commit -m "chore: bump version to $NEW_VERSION" + +git push origin main + +# Create and push tag +print_status "Creating tag $TAG_VERSION..." +git tag -a "$TAG_VERSION" -m "Release $TAG_VERSION" +git push origin "$TAG_VERSION" + +print_status "Release $TAG_VERSION created and pushed! CI will handle the build and GitHub release." \ No newline at end of file

    Aobn3L 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�RN0QpE`te@U>XKEV2eBL+}C? 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 OkLm-B`$hN6-u@rDb!xZ( literal 0 HcmV?d00001 diff --git a/fastlane/metadata/en-US/name.txt b/fastlane/metadata/en-US/name.txt new file mode 100644 index 0000000..a454a94 --- /dev/null +++ b/fastlane/metadata/en-US/name.txt @@ -0,0 +1,2 @@ +Conduit + diff --git a/fastlane/metadata/en-US/subtitle.txt b/fastlane/metadata/en-US/subtitle.txt new file mode 100644 index 0000000..f8cd883 --- /dev/null +++ b/fastlane/metadata/en-US/subtitle.txt @@ -0,0 +1,2 @@ +Chat with your self‑hosted AI + diff --git a/ios/.gitignore b/ios/.gitignore new file mode 100644 index 0000000..7a7f987 --- /dev/null +++ b/ios/.gitignore @@ -0,0 +1,34 @@ +**/dgph +*.mode1v3 +*.mode2v3 +*.moved-aside +*.pbxuser +*.perspectivev3 +**/*sync/ +.sconsign.dblite +.tags* +**/.vagrant/ +**/DerivedData/ +Icon? +**/Pods/ +**/.symlinks/ +profile +xcuserdata +**/.generated/ +Flutter/App.framework +Flutter/Flutter.framework +Flutter/Flutter.podspec +Flutter/Generated.xcconfig +Flutter/ephemeral/ +Flutter/app.flx +Flutter/app.zip +Flutter/flutter_assets/ +Flutter/flutter_export_environment.sh +ServiceDefinitions.json +Runner/GeneratedPluginRegistrant.* + +# Exceptions to above rules. +!default.mode1v3 +!default.mode2v3 +!default.pbxuser +!default.perspectivev3 diff --git a/ios/Flutter/AppFrameworkInfo.plist b/ios/Flutter/AppFrameworkInfo.plist new file mode 100644 index 0000000..7c56964 --- /dev/null +++ b/ios/Flutter/AppFrameworkInfo.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + App + CFBundleIdentifier + io.flutter.flutter.app + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + App + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + MinimumOSVersion + 12.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..6c8fdc7 --- /dev/null +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,616 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXBuildFile section */ + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; + 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 PBXContainerItemProxy section */ + 331C8085294A63A400263BE5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 97C146E61CF9000F007C117D /* Project object */; + proxyType = 1; + remoteGlobalIDString = 97C146ED1CF9000F007C117D; + remoteInfo = Runner; + }; +/* End PBXContainerItemProxy 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 = ""; }; + 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; + 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 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 */ + 331C8082294A63A400263BE5 /* RunnerTests */ = { + isa = PBXGroup; + children = ( + 331C807B294A618700263BE5 /* RunnerTests.swift */, + ); + path = RunnerTests; + sourceTree = ""; + }; + 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 */, + 331C8082294A63A400263BE5 /* RunnerTests */, + ); + sourceTree = ""; + }; + 97C146EF1CF9000F007C117D /* Products */ = { + isa = PBXGroup; + children = ( + 97C146EE1CF9000F007C117D /* Runner.app */, + 331C8081294A63A400263BE5 /* RunnerTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 97C146F01CF9000F007C117D /* Runner */ = { + isa = PBXGroup; + children = ( + 97C146FA1CF9000F007C117D /* Main.storyboard */, + 97C146FD1CF9000F007C117D /* Assets.xcassets */, + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, + 97C147021CF9000F007C117D /* Info.plist */, + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, + ); + path = Runner; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 331C8080294A63A400263BE5 /* RunnerTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; + buildPhases = ( + 331C807D294A63A400263BE5 /* Sources */, + 331C807F294A63A400263BE5 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 331C8086294A63A400263BE5 /* PBXTargetDependency */, + ); + name = RunnerTests; + productName = RunnerTests; + productReference = 331C8081294A63A400263BE5 /* RunnerTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 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 = { + BuildIndependentTargetsInParallel = YES; + LastUpgradeCheck = 1510; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 331C8080294A63A400263BE5 = { + CreatedOnToolsVersion = 14.0; + TestTargetID = 97C146ED1CF9000F007C117D; + }; + 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 */, + 331C8080294A63A400263BE5 /* RunnerTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 331C807F294A63A400263BE5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 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; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", + ); + 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; + alwaysOutOfDate = 1; + 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 */ + 331C807D294A63A400263BE5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 97C146EA1CF9000F007C117D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 331C8086294A63A400263BE5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 97C146ED1CF9000F007C117D /* Runner */; + targetProxy = 331C8085294A63A400263BE5 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 97C146FA1CF9000F007C117D /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C146FB1CF9000F007C117D /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C147001CF9000F007C117D /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 249021D3217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + 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; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + 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 = 12.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Profile; + }; + 249021D4217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = app.cogwheel.conduit; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Profile; + }; + 331C8088294A63A400263BE5 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = app.cogwheel.conduit.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Debug; + }; + 331C8089294A63A400263BE5 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = app.cogwheel.conduit.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Release; + }; + 331C808A294A63A400263BE5 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = app.cogwheel.conduit.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Profile; + }; + 97C147031CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + 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; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + 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 = 12.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 97C147041CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + 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; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + 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 = 12.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 97C147061CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = app.cogwheel.conduit; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 97C147071CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = app.cogwheel.conduit; + 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 */ + 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 331C8088294A63A400263BE5 /* Debug */, + 331C8089294A63A400263BE5 /* Release */, + 331C808A294A63A400263BE5 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 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..919434a --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 0000000..e3773d4 --- /dev/null +++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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..6266644 --- /dev/null +++ b/ios/Runner/AppDelegate.swift @@ -0,0 +1,13 @@ +import Flutter +import UIKit + +@main +@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/AppIcon-20@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-20@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c91bdc82ed083ee7d50f544b64a9018776690ab7 GIT binary patch literal 1103 zcmV-V1hD&wP)JC!m!oo=?JbDcsh9bU>5XSYG8 zVyjlI)Jvs`PEk>GQ&3mj2Vu8w-e9ZP+|x9drcL5`BE6)ZHzx0kC@kkoX>y+D{LXXv zKPN(QQCAeN@eNrBR`F?fHD7J>lWz8OG!n-@+;L~a1(M^LQ> znhsl#XI93+IP76me%6gpNFJl?6wjHb#n&6NxfDNr@4}5=0Gqb;%7ECnUTS| z`peI4qMK6nDGI373HWih8E=dmPTk|K0o1Is!RO#)FJj2B-r^7cefw)Dvm zVBuUXR+k%KG{x_AIm0-x*MrVm!J)m$`W$(CQNWYu#zLcE;TW}|(I^h@@4@e#LFD8q zv8^E&DiyWH^Q%7;#pYUjY~;N=GZSm8Ox%5a!3dTY4_`Vdzzww~%$}>`IwZ&tlMhND z?-C=8=y2LcawO28=B!TE^$pux-0wsqm~T;HXJa0dkm1z1U199}))`A@L7^7!&DKDn z;2%188eOLIb`Upz4ZzOkbKTaQIG;{O7@KPBc-+O8q=Ygac>nY8-ZH zPcO-UDkhJld*dc#aBFAqLmGMO)>;wpOB;ET0STa>P=ocg*-$F^br^|6aj@BgOXvLw zFOld=S%B|MQ)BCnTvmsyRz`IwHAk40U45McfBz}{)hZc~YOv{0KJU${~vezaP_huHQ!{z?~kCm!UnhNCD-7aY$jJ$8}ZiUj2MKUbskC3-bQx}hPOUi zphMMq6KJZ?g=jr`Fo6Ag+<3_TCbN=?pwXy6W3xFVNVQ8D zaONxx>gsd2CG%aq6L;9dfw!dEr3^?iLUQuIuH?QP^oq)1CoK7 z&E?{fEG#b3$GZ5!&pw=Cb2J!CJRzjo4MHZ>B+1CZ%i5C$lpEP}1k(|e8v(iYPXW5s V^dQGlO-ld(002ovPDHLkV1jph6Sx2X literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-20@2x~ipad.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-20@2x~ipad.png new file mode 100644 index 0000000000000000000000000000000000000000..c91bdc82ed083ee7d50f544b64a9018776690ab7 GIT binary patch literal 1103 zcmV-V1hD&wP)JC!m!oo=?JbDcsh9bU>5XSYG8 zVyjlI)Jvs`PEk>GQ&3mj2Vu8w-e9ZP+|x9drcL5`BE6)ZHzx0kC@kkoX>y+D{LXXv zKPN(QQCAeN@eNrBR`F?fHD7J>lWz8OG!n-@+;L~a1(M^LQ> znhsl#XI93+IP76me%6gpNFJl?6wjHb#n&6NxfDNr@4}5=0Gqb;%7ECnUTS| z`peI4qMK6nDGI373HWih8E=dmPTk|K0o1Is!RO#)FJj2B-r^7cefw)Dvm zVBuUXR+k%KG{x_AIm0-x*MrVm!J)m$`W$(CQNWYu#zLcE;TW}|(I^h@@4@e#LFD8q zv8^E&DiyWH^Q%7;#pYUjY~;N=GZSm8Ox%5a!3dTY4_`Vdzzww~%$}>`IwZ&tlMhND z?-C=8=y2LcawO28=B!TE^$pux-0wsqm~T;HXJa0dkm1z1U199}))`A@L7^7!&DKDn z;2%188eOLIb`Upz4ZzOkbKTaQIG;{O7@KPBc-+O8q=Ygac>nY8-ZH zPcO-UDkhJld*dc#aBFAqLmGMO)>;wpOB;ET0STa>P=ocg*-$F^br^|6aj@BgOXvLw zFOld=S%B|MQ)BCnTvmsyRz`IwHAk40U45McfBz}{)hZc~YOv{0KJU${~vezaP_huHQ!{z?~kCm!UnhNCD-7aY$jJ$8}ZiUj2MKUbskC3-bQx}hPOUi zphMMq6KJZ?g=jr`Fo6Ag+<3_TCbN=?pwXy6W3xFVNVQ8D zaONxx>gsd2CG%aq6L;9dfw!dEr3^?iLUQuIuH?QP^oq)1CoK7 z&E?{fEG#b3$GZ5!&pw=Cb2J!CJRzjo4MHZ>B+1CZ%i5C$lpEP}1k(|e8v(iYPXW5s V^dQGlO-ld(002ovPDHLkV1jph6Sx2X literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-20@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-20@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..fac8f98f912335090ba6b53f32b0960b63a08147 GIT binary patch literal 2035 zcmV3M37qosElxUU_cH*z<`1XDB?Ke z)F2WPqH>IJ-wXt{Zf)0YZP(WKeq@AgZGXRY`;iR#lKw&X{oe0=zVG_H_no3&N|p~# zkto7|pKx!7J^X|_7-0{GJ^X~7Ksco3a;Q$PzzZF8Nay;(W)LH1ofxQm=^kY8EIbONW`=MUh0c*8Dmu?1( z7;S_hvLx7ID;#z&Hh*u!zTFNK7Ru{s*#RdesW4$`3|h2`2V`=ii&)gGd%~H8Lp}g zxK?d7KAIngq-yG*K(g<9uyC#!mo8Ls4;xKNygecs-Cs8dt;nBvy*?a1RDkckwIU~5 z-byWd4l4*_ljd5C9dAOdXVg%sN`m%ye8{?4gmtT}IQfqgK6#7u;~5^*8lc0AI`l}5 zMBVxtL`5mU2Vu|m;rcZR}@neN>$(z1HaLMlB;t*C+k*;1-gJ>M(Y_#Fx zdAFn}kp!3l&Q6O%gGQP%MaM@~hI4VxPCI_sU=#glc>%L$`wxghUjob(U%{vUh;Y$k z(2M5g;{HAHFp~s$@H^2MI5awF=-s^T#)_pDob^K-xM(FOYtX5)9vxoNp?VFKP_*v; z_aHj{IOq`axX2HyY}!IgDPTmyMnuYk$o8%ISii<9njVq>FJF@+w3J{{;P7I@IxF_1 zm(0od1f?(~_3jr5Qw-&SA2Cx}>`AxdAQiD(v$sS(_UvQ8&=E#aYI-}X2;)ZHs~o^v z(rZ9VMJAXqc}U-G$CgbtI4GC7pPDEH2Mv2bI@Idm?{g8_x5t5Pn{5JUjsQK)&>UI4 z--s-eN~LY#_uuMsr*Z(V-B=Cr3I4rP`~}YC+gToDoOI&yB{#0nuRZnNH!1(bz!vLp zyM5TPEnip&aB*xvzgBG`!1Pp1I7&tixhwXVv_3p;q6sNIBSn?*0}R}1@#4;H4{DO3 zMk;va5v#?6tXm$`pq|Y|Di9qlt@F@+2bO-GC;BN#Ih;%r&+N2#Bv4E6Cmc=}&%0oz zP;AjkOSxLMnu=Od>H$7Do7Ia`CtN}s5r{gmxP+N#BMS7}wmw6uCnH7)(T#Il^&P1N-IHR;q;l7~wh#o+lDjQ=iOm54fZ z$;uE!tN?MuaTf?>vI+^X6bv)w#G+#-y_84GJd=6aiJ4P!LV8#1CD{OX>tVoqlVZfa z@Av;VP)`0#+*}Tk4KP>gg|xh@QO-Q(aGvo&Hq{4lUL4AS$Of2=dAYL=<0r=kY$v4+ z=0)E6Z>&iF#U2V4N$%38|v4* zr#gJdfxUE%(u_vE<}I~|r^8^M^IcMAh7+fWxODES7kaFYhI{_^$|ZTiz@Va5&N`Wl z@P?(LtDp)2=6fS1_g!8y;Mt}RHX*zWuo5M#O(aE0-sJFHv%(^9>tZRM;UDdz)vBv7 ze2h`JVdO)+L1cpUMMW!+Z}Z{8IT!x?y#Rk7uh_CLWWa1xk5q#|Ap_01JP4%CHVf+) zDZ&#H_wPVUd)BvYb3S%bQ47`6Ap>TQPM8`Sls+=~pZ|&3?-s=00W@x+!L(U%0f!WR zhZlBVEXWP{N+x8$!$ujAN?VLT6AT;2ZHBKvd9aWo!$w6TwJ+(^1s*9`=YCogtXd{b zXX)>T449XCT$F;%t32YJJ>$a6$K7ScREuB2_I6p=$`r2%eA7i8~GiJ?_Y;F*_s@#2NK$T%hK z(nt=Sl?IsGQc6z)2Gds3Ut8i9vUO8FcF{$d)D|L#&PoH!inO$2>PU-qW=V~jXoXur zCLWjQ&ykoU963xRf%tKGL=K&gem~@*Rjh=)l2lD4&`ajS%!@6wwalh#4}UiaQozfh z^C8O%|ADv^7gXVADjd>P4SN`HRr6SR?G1alyeC%Go)3Gts(Gxu_C9qU{vTSyx5mt5 RLOlQg002ovPDHLkV1j_4(dYmG literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-20~ipad.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-20~ipad.png new file mode 100644 index 0000000000000000000000000000000000000000..bdab69878abf1839db1bc319d4df9d8006b6fdfa GIT binary patch literal 608 zcmV-m0-ybfP)uhSbz>AlX^c8Zy?B9%BrkDm;7aT|Lz}HBNGz?Lw>0M0~;G7LwDhFMcT!c9amaP?+M23DXV5LmbBGsBwYUl`hYMHpn| zS-@g1p8sX2D0s~f7{<#G6vhJ<`~CYrL#WSl>;~o(2{5?0bAc5d*!zt^Q=5%JT84#z zkr86a|Ns9Po9mCmE zKhc$9_cFRFV>5P!_+&l?K46S8F)=cHc=wlK#gfkq#}5A>-at^&DJ&OcFty-d`0@Q8 zLuuX{hF35Df(_u~XJP;)bS`cthKuKZGW4{+XZQt-b!32%Q@FVq85XUU0DJTA-~S95 z39rEE5(Mzc!3@PPkPVpLX3Q635E5o)`1I)?Lw52jhR;A61n|k>G!P^KN_R@itPBtC u|7Li2A1NCUkOS!@SUBJeeH;>l-#`GM>GX;0KHhl%0000p>R1Yn*P_$SrV3>n3}WgThJni^pqf1F!kJEK=(=(Prp?emCS$~l6kJ=wiJy!KDy%Gv zf?VExM$O|9aO{u;FP=Nav=6uOdPN6A zk`w{s(&NeD@ZxKOTYRV?TIP$CF~!F!YA+-q9x3U7-YwWRB_MTADopo!@gmY#F3!+k41}m{`9s^f;j-wR%MhTFv2U zaM(}^Sh|A6!o_S*c5htm!tul5>#rn~rYe?1M(dM6(p|REfLCNL6(n`>338Z;1iFam z)70sWQM3y&VyNymrAN<#M^F(M_Eg!{|h*Sk=@#vJ5n*MT^U7!~3B{>x_`o7S7*u!sKp zB?@(QnGn^YjW?GNE2vIgnjr3CEk!hKYhXqdx)(;8?LxC66xbq;%1>*+w?6^ wbN*xkyZ7Gjey4or+^ELhaypFv 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 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-29~ipad.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-29~ipad.png new file mode 100644 index 0000000000000000000000000000000000000000..129a717a34bef35fa1de752a1dd71eb2816227dd GIT binary patch literal 974 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 V^dQGlO-ld(002ovPDHLkV1jph6Sx2X literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-60@2x~car.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-60@2x~car.png new file mode 100644 index 0000000000000000000000000000000000000000..6f93a9b7b840760f4eabc8c7508d044a3c8f784e GIT binary patch literal 3956 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 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..6f93a9b7b840760f4eabc8c7508d044a3c8f784e GIT binary patch literal 3956 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 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon~ipad.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon~ipad.png new file mode 100644 index 0000000000000000000000000000000000000000..a5aa2d7c092fecc051a9241a4c65c7eb40636f9f GIT binary patch literal 2445 zcmV;833B#{P)P={;+8WosqR(?Sh7>}0t3#RV^OS?wo&MOc`{qCwV33w}P-44qDM z*=l`0A9if5!5`NL0qe5arAIKX8-mAsvWV-6~r9alxayA z_>&H@zM;JzyRc~PMOm`#B@|O&DXChlT-y878L;MxDX_<$NW`$L1eU@(wmPx$jY`%tN(#pmSVkuumKUW%qmg&$ zlTS9`i87o${eODs)6VD2OvaD;n`9ZmXZva~H@8BTY{Us)a^;O4SZ8PM&aMU6BJv54$5$NGV|5y6cfG+?K9a8<1ep0^)|Ps`BFa zw;rrsUKz2~Mg(lYJtjN?;JqeH78wvJ-;VTKFsB0h_SUiV zV*%3&%U--HP0|GjXkfQD;PH{AXplIw_2P_Aw&`%Uu-u`;%}BKB{8KocUi@iOHFoc! ztZRehJfz>7>pBWorSW;GL9Plp!d^yRk_D_!Un6FU_)lv00*cZuQW*38w(wR)XU&W` zHl(EKgi9g(oDg0=rFAG>{nD%ol$;As|K33+Ong?_x`OqaCmi9={w3eaSinYQTaYz^ zmyY@Bi#p`ygw8I|e7|@w0Y;;|(8%TTqIhGq-|9k*8F@DJyMq_Z7r)~W=dDA^7%%;w z1#J8?R@^_tEPHYiEIH@#C;fs48PTsr9_&{m5?bW&r6#8fW&K-K*s{6hh4R|cH2v&IvbBf^7`=sJ$M(H^_d`i-X_P zW38wSj&_G)cpTs$-@VS1{N%<7e}s7c=J*bhn)8- z0!+?}0y31t&-^am#d$82EQL#BMCcXG5p`e_rdaXQpYfdEa6mr&#D#@<(QO@wIP|R%mBuL)!Y{r~@-6Xs}B3Q;_r8mO%&pQ)9~fY3yi@r~{+L-6pJz0_Elf z56;4WFS4dvh2ItJ5ffmv$hj}4pjYq4+&y=cm3r{h=rToaJ?^_>0*w5&6>HKFA0OFg zSyxAGPo=n6!N~k^$%K)QI`X1puvWB zGgwaVri~(RzgB+UJ}PI}5>epo(v6q8es)4RzC9u%Cls`TPMvjFR@71U#*pBdQ;h{% zC5B=a_U`sfS)XID($vaCyZYE=9>%UbexOqD9fh4A$cJ z?XAU2vz6(MRSXyvIH*@u?jR3-lDNINX=92O3RjBrva9^_a$#NtKK+DW@CdaQ#ek7_ z{&GR8zf><(=%rlN#Ia=&d*aq4`i+uw@J{Z_iDMp2n^Z2V-XLeQ6$3^uqhiB~x2WAn zbR>r9y{7|s$*XpM>p)uugu}XDDzy?yDGH3<6(>4zMvLyh z`-gOB0gW0{7KzW}xY%_i23-Iz%(8v=3*M#~3D)0s)?oFrDo`p&$)Px~fO2GIokixs zB5qDnntp~%rFl7}IL-pes=IX6`7 znBuC1slb>7nBuC1slb>7nBuC1slb>7nBuC1slb>7nBuC1F@gOLh56KGH<`kQ00000 LNkvXXu0mjfPTIgM literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..bd04914 --- /dev/null +++ b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,134 @@ +{ + "images": [ + { + "filename": "AppIcon@2x.png", + "idiom": "iphone", + "scale": "2x", + "size": "60x60" + }, + { + "filename": "AppIcon@3x.png", + "idiom": "iphone", + "scale": "3x", + "size": "60x60" + }, + { + "filename": "AppIcon~ipad.png", + "idiom": "ipad", + "scale": "1x", + "size": "76x76" + }, + { + "filename": "AppIcon@2x~ipad.png", + "idiom": "ipad", + "scale": "2x", + "size": "76x76" + }, + { + "filename": "AppIcon-83.5@2x~ipad.png", + "idiom": "ipad", + "scale": "2x", + "size": "83.5x83.5" + }, + { + "filename": "AppIcon-40@2x.png", + "idiom": "iphone", + "scale": "2x", + "size": "40x40" + }, + { + "filename": "AppIcon-40@3x.png", + "idiom": "iphone", + "scale": "3x", + "size": "40x40" + }, + { + "filename": "AppIcon-40~ipad.png", + "idiom": "ipad", + "scale": "1x", + "size": "40x40" + }, + { + "filename": "AppIcon-40@2x~ipad.png", + "idiom": "ipad", + "scale": "2x", + "size": "40x40" + }, + { + "filename": "AppIcon-20@2x.png", + "idiom": "iphone", + "scale": "2x", + "size": "20x20" + }, + { + "filename": "AppIcon-20@3x.png", + "idiom": "iphone", + "scale": "3x", + "size": "20x20" + }, + { + "filename": "AppIcon-20~ipad.png", + "idiom": "ipad", + "scale": "1x", + "size": "20x20" + }, + { + "filename": "AppIcon-20@2x~ipad.png", + "idiom": "ipad", + "scale": "2x", + "size": "20x20" + }, + { + "filename": "AppIcon-29.png", + "idiom": "iphone", + "scale": "1x", + "size": "29x29" + }, + { + "filename": "AppIcon-29@2x.png", + "idiom": "iphone", + "scale": "2x", + "size": "29x29" + }, + { + "filename": "AppIcon-29@3x.png", + "idiom": "iphone", + "scale": "3x", + "size": "29x29" + }, + { + "filename": "AppIcon-29~ipad.png", + "idiom": "ipad", + "scale": "1x", + "size": "29x29" + }, + { + "filename": "AppIcon-29@2x~ipad.png", + "idiom": "ipad", + "scale": "2x", + "size": "29x29" + }, + { + "filename": "AppIcon-60@2x~car.png", + "idiom": "car", + "scale": "2x", + "size": "60x60" + }, + { + "filename": "AppIcon-60@3x~car.png", + "idiom": "car", + "scale": "3x", + "size": "60x60" + }, + { + "filename": "AppIcon~ios-marketing.png", + "idiom": "ios-marketing", + "scale": "1x", + "size": "1024x1024" + } + ], + "info": { + "author": "iconkitchen", + "version": 1 + } +} \ No newline at end of file diff --git a/ios/Runner/Assets.xcassets/LaunchBackground.imageset/Contents.json b/ios/Runner/Assets.xcassets/LaunchBackground.imageset/Contents.json new file mode 100644 index 0000000..9f447e1 --- /dev/null +++ b/ios/Runner/Assets.xcassets/LaunchBackground.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "background.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ios/Runner/Assets.xcassets/LaunchBackground.imageset/background.png b/ios/Runner/Assets.xcassets/LaunchBackground.imageset/background.png new file mode 100644 index 0000000000000000000000000000000000000000..e815fd621f1968ac104bc8b687d1d19a818d00a8 GIT binary patch literal 69 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx1SBVv2j2ryJf1F&Ar*6y6B81EJP`)gU+UiV PKo*0itDnm{r-UW|n)?mj literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json new file mode 100644 index 0000000..00cabce --- /dev/null +++ b/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "LaunchImage.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "LaunchImage@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "LaunchImage@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png new file mode 100644 index 0000000000000000000000000000000000000000..a1f6a1985cd7b0ca7aa74aa182290438e328a377 GIT binary patch literal 3910 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 C{XNA1 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..578245c7d8fbb2f469b29fcca53683a5e3460ab7 GIT binary patch literal 8681 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 R@(TwbC#59$UEDbM{{U>BAK(B0 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..f32c57bea28556665db9ccf1ad1c04c1fcfe1d30 GIT binary patch literal 14316 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 CmmC}b 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..7aa6dfb --- /dev/null +++ b/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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..c5e4936 --- /dev/null +++ b/ios/Runner/Info.plist @@ -0,0 +1,68 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Conduit + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + conduit + 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 + + + NSAppTransportSecurity + + NSAllowsArbitraryLoads + + NSAllowsLocalNetworking + + + + NSMicrophoneUsageDescription + Conduit needs access to your microphone for voice input + NSCameraUsageDescription + Conduit needs access to your camera to take photos for chat + NSPhotoLibraryUsageDescription + Conduit needs access to your photo library to select images for chat + CADisableMinimumFrameDurationOnPhone + + UIApplicationSupportsIndirectInputEvents + + UIStatusBarHidden + + + 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/ios/RunnerTests/RunnerTests.swift b/ios/RunnerTests/RunnerTests.swift new file mode 100644 index 0000000..86a7c3b --- /dev/null +++ b/ios/RunnerTests/RunnerTests.swift @@ -0,0 +1,12 @@ +import Flutter +import UIKit +import XCTest + +class RunnerTests: XCTestCase { + + func testExample() { + // If you add code to the Runner application, consider adding tests here. + // See https://developer.apple.com/documentation/xctest for more information about using XCTest. + } + +} diff --git a/lib/core/auth/api_auth_interceptor.dart b/lib/core/auth/api_auth_interceptor.dart new file mode 100644 index 0000000..6765eb1 --- /dev/null +++ b/lib/core/auth/api_auth_interceptor.dart @@ -0,0 +1,146 @@ +import 'package:dio/dio.dart'; +import 'package:flutter/foundation.dart'; + +/// Consistent authentication interceptor for all API requests +/// Implements security requirements from OpenAPI specification +class ApiAuthInterceptor extends Interceptor { + String? _authToken; + + // Callbacks for auth events + void Function()? onAuthTokenInvalid; + Future Function()? onTokenInvalidated; + + // Public endpoints that don't require authentication + static const Set _publicEndpoints = { + '/health', + '/api/v1/auths/signin', + '/api/v1/auths/signup', + '/api/v1/auths/signup/enabled', + '/api/v1/auths/trusted-header-auth', + '/ollama/api/ps', + '/ollama/api/version', + '/docs', + '/openapi.json', + '/swagger', + '/api/docs', + }; + + // Endpoints that have optional authentication (work without but better with) + static const Set _optionalAuthEndpoints = { + '/api/models', + '/api/v1/configs/models', + }; + + ApiAuthInterceptor({ + String? authToken, + this.onAuthTokenInvalid, + this.onTokenInvalidated, + }) : _authToken = authToken; + + void updateAuthToken(String? token) { + _authToken = token; + } + + String? get authToken => _authToken; + + /// Check if endpoint requires authentication based on OpenAPI spec + bool _requiresAuth(String path) { + // Direct public endpoint match + if (_publicEndpoints.contains(path)) { + return false; + } + + // Check for partial matches (e.g., /ollama/* endpoints) + for (final publicPattern in _publicEndpoints) { + if (publicPattern.endsWith('*') && + path.startsWith( + publicPattern.substring(0, publicPattern.length - 1), + )) { + return false; + } + } + + // All other endpoints require authentication per OpenAPI spec + return true; + } + + /// Check if endpoint is better with auth but works without + bool _hasOptionalAuth(String path) { + return _optionalAuthEndpoints.contains(path); + } + + @override + void onRequest(RequestOptions options, RequestInterceptorHandler handler) { + final path = options.path; + final requiresAuth = _requiresAuth(path); + final hasOptionalAuth = _hasOptionalAuth(path); + + debugPrint( + 'DEBUG: Auth interceptor for $path - requires: $requiresAuth, optional: $hasOptionalAuth, token present: ${_authToken != null}', + ); + + if (requiresAuth) { + // Strictly required authentication + if (_authToken == null || _authToken!.isEmpty) { + final error = DioException( + requestOptions: options, + response: Response( + requestOptions: options, + statusCode: 401, + data: {'detail': 'Authentication required for this endpoint'}, + ), + type: DioExceptionType.badResponse, + ); + handler.reject(error); + return; + } + options.headers['Authorization'] = 'Bearer $_authToken'; + } else if (hasOptionalAuth && + _authToken != null && + _authToken!.isNotEmpty) { + // Optional authentication - add if available + options.headers['Authorization'] = 'Bearer $_authToken'; + } + + // Add other common headers for API consistency + options.headers['Content-Type'] ??= 'application/json'; + options.headers['Accept'] ??= 'application/json'; + + handler.next(options); + } + + @override + void onError(DioException err, ErrorInterceptorHandler handler) { + final statusCode = err.response?.statusCode; + final path = err.requestOptions.path; + + // Handle authentication errors consistently + if (statusCode == 401) { + // 401 always indicates invalid/expired auth token + debugPrint('DEBUG: 401 Unauthorized on $path - clearing auth token'); + _clearAuthToken(); + } else if (statusCode == 403) { + // 403 on protected endpoints indicates insufficient permissions or invalid token + final requiresAuth = _requiresAuth(path); + final optionalAuth = _hasOptionalAuth(path); + if (requiresAuth && !optionalAuth) { + debugPrint( + 'DEBUG: 403 Forbidden on protected endpoint $path - clearing auth token', + ); + _clearAuthToken(); + } else { + debugPrint( + 'DEBUG: 403 Forbidden on public/optional endpoint $path - keeping auth token', + ); + } + } + + handler.next(err); + } + + void _clearAuthToken() { + _authToken = null; + onAuthTokenInvalid?.call(); + onTokenInvalidated?.call(); + } +} diff --git a/lib/core/auth/auth_cache_manager.dart b/lib/core/auth/auth_cache_manager.dart new file mode 100644 index 0000000..2eaa324 --- /dev/null +++ b/lib/core/auth/auth_cache_manager.dart @@ -0,0 +1,194 @@ +import 'package:flutter/foundation.dart'; +import 'auth_state_manager.dart'; + +/// Comprehensive caching manager for auth-related operations +/// Reduces redundant operations and improves app performance +class AuthCacheManager { + static final AuthCacheManager _instance = AuthCacheManager._internal(); + factory AuthCacheManager() => _instance; + AuthCacheManager._internal(); + + // Cache for various auth-related operations + final Map _cache = {}; + final Map _cacheTimestamps = {}; + + // Cache timeouts for different types of data + static const Duration _shortCache = Duration( + minutes: 2, + ); // For frequently changing data + static const Duration _mediumCache = Duration( + minutes: 5, + ); // For moderately stable data + static const Duration _longCache = Duration(minutes: 15); // For stable data + + // Cache keys + static const String _userDataKey = 'user_data'; + static const String _serverConnectionKey = 'server_connection'; + static const String _credentialsExistKey = 'credentials_exist'; + static const String _serverConfigsKey = 'server_configs'; + + /// Cache user data with medium timeout + void cacheUserData(dynamic userData) { + _cache[_userDataKey] = userData; + _cacheTimestamps[_userDataKey] = DateTime.now(); + debugPrint('DEBUG: User data cached'); + } + + /// Get cached user data + dynamic getCachedUserData() { + if (_isCacheValid(_userDataKey, _mediumCache)) { + debugPrint('DEBUG: Using cached user data'); + return _cache[_userDataKey]; + } + return null; + } + + /// Cache server connection status with short timeout + void cacheServerConnection(bool isConnected) { + _cache[_serverConnectionKey] = isConnected; + _cacheTimestamps[_serverConnectionKey] = DateTime.now(); + } + + /// Get cached server connection status + bool? getCachedServerConnection() { + if (_isCacheValid(_serverConnectionKey, _shortCache)) { + return _cache[_serverConnectionKey] as bool?; + } + return null; + } + + /// Cache credentials existence with medium timeout + void cacheCredentialsExist(bool exist) { + _cache[_credentialsExistKey] = exist; + _cacheTimestamps[_credentialsExistKey] = DateTime.now(); + } + + /// Get cached credentials existence + bool? getCachedCredentialsExist() { + if (_isCacheValid(_credentialsExistKey, _mediumCache)) { + return _cache[_credentialsExistKey] as bool?; + } + return null; + } + + /// Cache server configurations with long timeout + void cacheServerConfigs(List configs) { + _cache[_serverConfigsKey] = configs; + _cacheTimestamps[_serverConfigsKey] = DateTime.now(); + } + + /// Get cached server configurations + List? getCachedServerConfigs() { + if (_isCacheValid(_serverConfigsKey, _longCache)) { + return _cache[_serverConfigsKey] as List?; + } + return null; + } + + /// Check if cache entry is valid + bool _isCacheValid(String key, Duration timeout) { + final timestamp = _cacheTimestamps[key]; + if (timestamp == null) return false; + + return DateTime.now().difference(timestamp) < timeout; + } + + /// Clear specific cache entry + void clearCacheEntry(String key) { + _cache.remove(key); + _cacheTimestamps.remove(key); + debugPrint('DEBUG: Cache entry cleared: $key'); + } + + /// Clear all auth-related cache + void clearAuthCache() { + _cache.clear(); + _cacheTimestamps.clear(); + debugPrint('DEBUG: All auth cache cleared'); + } + + /// Clear expired cache entries + void cleanExpiredCache() { + final now = DateTime.now(); + final expiredKeys = []; + + for (final entry in _cacheTimestamps.entries) { + // Use the longest timeout for cleanup to be conservative + if (now.difference(entry.value) > _longCache) { + expiredKeys.add(entry.key); + } + } + + for (final key in expiredKeys) { + _cache.remove(key); + _cacheTimestamps.remove(key); + } + + if (expiredKeys.isNotEmpty) { + debugPrint('DEBUG: Cleaned ${expiredKeys.length} expired cache entries'); + } + } + + /// Get cache statistics for monitoring + Map getCacheStats() { + final now = DateTime.now(); + final stats = {}; + + stats['totalEntries'] = _cache.length; + stats['entries'] = >{}; + + for (final key in _cache.keys) { + final timestamp = _cacheTimestamps[key]; + if (timestamp != null) { + stats['entries'][key] = { + 'age': now.difference(timestamp).inSeconds, + 'hasData': _cache[key] != null, + }; + } + } + + return stats; + } + + /// Optimize cache by removing least recently used entries if cache gets too large + void optimizeCache() { + const maxCacheSize = 20; // Reasonable limit for auth cache + + if (_cache.length <= maxCacheSize) return; + + // Sort by timestamp (oldest first) + final sortedEntries = _cacheTimestamps.entries.toList() + ..sort((a, b) => a.value.compareTo(b.value)); + + // Remove oldest entries + final entriesToRemove = sortedEntries.length - maxCacheSize; + for (int i = 0; i < entriesToRemove; i++) { + final key = sortedEntries[i].key; + _cache.remove(key); + _cacheTimestamps.remove(key); + } + + debugPrint('DEBUG: Cache optimized, removed $entriesToRemove old entries'); + } + + /// Cache state from AuthState for quick access + void cacheAuthState(AuthState authState) { + if (authState.user != null) { + cacheUserData(authState.user); + } + + // Don't cache loading or error states + if (authState.status == AuthStatus.authenticated) { + _cache['auth_status'] = authState.status; + _cacheTimestamps['auth_status'] = DateTime.now(); + } + } + + /// Get cached auth status + AuthStatus? getCachedAuthStatus() { + if (_isCacheValid('auth_status', _shortCache)) { + return _cache['auth_status'] as AuthStatus?; + } + return null; + } +} diff --git a/lib/core/auth/auth_state_manager.dart b/lib/core/auth/auth_state_manager.dart new file mode 100644 index 0000000..03be868 --- /dev/null +++ b/lib/core/auth/auth_state_manager.dart @@ -0,0 +1,562 @@ +import 'package:flutter/foundation.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +// Types are used through app_providers.dart +import '../providers/app_providers.dart'; +import '../models/user.dart'; +import 'token_validator.dart'; +import 'auth_cache_manager.dart'; + +/// Comprehensive auth state representation +@immutable +class AuthState { + const AuthState({ + required this.status, + this.token, + this.user, + this.error, + this.isLoading = false, + }); + + final AuthStatus status; + final String? token; + final dynamic user; // Replace with proper User type + final String? error; + final bool isLoading; + + bool get isAuthenticated => + status == AuthStatus.authenticated && token != null; + bool get hasValidToken => token != null && token!.isNotEmpty; + bool get needsLogin => + status == AuthStatus.unauthenticated || status == AuthStatus.tokenExpired; + + AuthState copyWith({ + AuthStatus? status, + String? token, + dynamic user, + String? error, + bool? isLoading, + bool clearToken = false, + bool clearUser = false, + bool clearError = false, + }) { + return AuthState( + status: status ?? this.status, + token: clearToken ? null : (token ?? this.token), + user: clearUser ? null : (user ?? this.user), + error: clearError ? null : (error ?? this.error), + isLoading: isLoading ?? this.isLoading, + ); + } + + @override + bool operator ==(Object other) { + if (identical(this, other)) return true; + return other is AuthState && + other.status == status && + other.token == token && + other.user == user && + other.error == error && + other.isLoading == isLoading; + } + + @override + int get hashCode => Object.hash(status, token, user, error, isLoading); + + @override + String toString() => + 'AuthState(status: $status, hasToken: ${token != null}, hasUser: ${user != null}, error: $error, isLoading: $isLoading)'; +} + +enum AuthStatus { + initial, + loading, + authenticated, + unauthenticated, + tokenExpired, + error, +} + +/// Unified auth state manager - single source of truth for all auth operations +class AuthStateManager extends StateNotifier { + AuthStateManager(this._ref) + : super(const AuthState(status: AuthStatus.initial)) { + _initialize(); + } + + final Ref _ref; + final AuthCacheManager _cacheManager = AuthCacheManager(); + + /// Initialize auth state from storage + Future _initialize() async { + state = state.copyWith(status: AuthStatus.loading, isLoading: true); + + try { + final storage = _ref.read(optimizedStorageServiceProvider); + final token = await storage.getAuthToken(); + + if (token != null && token.isNotEmpty) { + // Validate token before setting authenticated state + final isValid = await _validateToken(token); + if (isValid) { + state = state.copyWith( + status: AuthStatus.authenticated, + token: token, + isLoading: false, + clearError: true, + ); + + // Update API service with token + _updateApiServiceToken(token); + + // Load user data in background + _loadUserData(); + } else { + // Token is invalid, clear it + await storage.deleteAuthToken(); + state = state.copyWith( + status: AuthStatus.unauthenticated, + isLoading: false, + clearToken: true, + clearError: true, + ); + } + } else { + state = state.copyWith( + status: AuthStatus.unauthenticated, + isLoading: false, + clearToken: true, + clearError: true, + ); + } + } catch (e) { + debugPrint('ERROR: Auth initialization failed: $e'); + state = state.copyWith( + status: AuthStatus.error, + error: 'Failed to initialize auth: $e', + isLoading: false, + ); + } + } + + /// Perform login with credentials + Future login( + String username, + String password, { + bool rememberCredentials = false, + }) async { + state = state.copyWith( + status: AuthStatus.loading, + isLoading: true, + clearError: true, + ); + + try { + // Ensure API service is available (active server/provider rebuild race) + await _ensureApiServiceAvailable(); + final api = _ref.read(apiServiceProvider); + if (api == null) { + throw Exception('No server connection available'); + } + + // Perform login API call + final response = await api.login(username, password); + + // Extract and validate token + final token = response['token'] ?? response['access_token']; + if (token == null || token.toString().trim().isEmpty) { + throw Exception('No authentication token received'); + } + + final tokenStr = token.toString(); + if (!_isValidTokenFormat(tokenStr)) { + throw Exception('Invalid authentication token format'); + } + + // Save token to storage + final storage = _ref.read(optimizedStorageServiceProvider); + await storage.saveAuthToken(tokenStr); + + // Save credentials if requested + if (rememberCredentials) { + final activeServer = await _ref.read(activeServerProvider.future); + if (activeServer != null) { + await storage.saveCredentials( + serverId: activeServer.id, + username: username, + password: password, + ); + await storage.setRememberCredentials(true); + } + } + + // Update state and API service + state = state.copyWith( + status: AuthStatus.authenticated, + token: tokenStr, + isLoading: false, + clearError: true, + ); + + _updateApiServiceToken(tokenStr); + + // Cache the successful auth state + _cacheManager.cacheAuthState(state); + + // Load user data in background + _loadUserData(); + + debugPrint('DEBUG: Login successful'); + return true; + } catch (e) { + debugPrint('ERROR: Login failed: $e'); + state = state.copyWith( + status: AuthStatus.error, + error: e.toString(), + isLoading: false, + clearToken: true, + ); + return false; + } + } + + /// Wait briefly until the API service becomes available + Future _ensureApiServiceAvailable({ + Duration timeout = const Duration(seconds: 2), + }) async { + final end = DateTime.now().add(timeout); + while (DateTime.now().isBefore(end)) { + final api = _ref.read(apiServiceProvider); + if (api != null) return; + await Future.delayed(const Duration(milliseconds: 50)); + } + } + + /// Perform silent auto-login with saved credentials + Future silentLogin() async { + state = state.copyWith( + status: AuthStatus.loading, + isLoading: true, + clearError: true, + ); + + try { + final storage = _ref.read(optimizedStorageServiceProvider); + final savedCredentials = await storage.getSavedCredentials(); + + if (savedCredentials == null) { + state = state.copyWith( + status: AuthStatus.unauthenticated, + isLoading: false, + clearError: true, + ); + return false; + } + + final serverId = savedCredentials['serverId']!; + final username = savedCredentials['username']!; + final password = savedCredentials['password']!; + + // Set active server if needed + await storage.setActiveServerId(serverId); + _ref.invalidate(activeServerProvider); + + // Wait for server connection + final activeServer = await _ref.read(activeServerProvider.future); + if (activeServer == null) { + await storage.setActiveServerId(null); + state = state.copyWith( + status: AuthStatus.error, + error: 'Server configuration not found', + isLoading: false, + ); + return false; + } + + // Attempt login + return await login(username, password, rememberCredentials: false); + } catch (e) { + debugPrint('ERROR: Silent login failed: $e'); + + // Clear invalid credentials on auth errors + if (e.toString().contains('401') || + e.toString().contains('403') || + e.toString().contains('authentication') || + e.toString().contains('unauthorized')) { + final storage = _ref.read(optimizedStorageServiceProvider); + await storage.deleteSavedCredentials(); + } + + state = state.copyWith( + status: AuthStatus.unauthenticated, + error: e.toString(), + isLoading: false, + clearToken: true, + ); + return false; + } + } + + /// Handle token invalidation (called by API service) + Future onTokenInvalidated() async { + debugPrint('DEBUG: Auth token invalidated'); + + // Clear token from storage + final storage = _ref.read(optimizedStorageServiceProvider); + await storage.deleteAuthToken(); + + // Update state + state = state.copyWith( + status: AuthStatus.tokenExpired, + clearToken: true, + clearUser: true, + clearError: true, + ); + + // Attempt silent re-login if credentials are available + final hasCredentials = await storage.getSavedCredentials() != null; + if (hasCredentials) { + debugPrint('DEBUG: Attempting silent re-login after token invalidation'); + await silentLogin(); + } + } + + /// Logout user + Future logout() async { + state = state.copyWith(status: AuthStatus.loading, isLoading: true); + + try { + // Call server logout if possible + final api = _ref.read(apiServiceProvider); + if (api != null) { + try { + await api.logout(); + } catch (e) { + debugPrint('Warning: Server logout failed: $e'); + } + } + + // Clear all local auth data + final storage = _ref.read(optimizedStorageServiceProvider); + await storage.clearAuthData(); + + // Update state + state = state.copyWith( + status: AuthStatus.unauthenticated, + isLoading: false, + clearToken: true, + clearUser: true, + clearError: true, + ); + + debugPrint('DEBUG: Logout complete'); + } catch (e) { + debugPrint('ERROR: Logout failed: $e'); + // Even if logout fails, clear local state + state = state.copyWith( + status: AuthStatus.unauthenticated, + isLoading: false, + clearToken: true, + clearUser: true, + error: 'Logout error: $e', + ); + } + } + + /// Load user data in background with JWT extraction fallback + Future _loadUserData() async { + try { + // First try to extract user info from JWT token if available + if (state.token != null) { + final jwtUserInfo = TokenValidator.extractUserInfo(state.token!); + if (jwtUserInfo != null) { + debugPrint('DEBUG: Extracted user info from JWT token'); + state = state.copyWith(user: jwtUserInfo); + + // Still try to load from server in background for complete data + Future.microtask(() => _loadServerUserData()); + return; + } + } + + // Fall back to server data loading + await _loadServerUserData(); + } catch (e) { + debugPrint('Warning: Failed to load user data: $e'); + // Don't update state on user data load failure + } + } + + /// Load complete user data from server + Future _loadServerUserData() async { + try { + final api = _ref.read(apiServiceProvider); + if (api != null && state.isAuthenticated) { + // Check if we already have user data from token validation + if (state.user != null) { + debugPrint( + 'DEBUG: User data already available from token validation', + ); + return; + } + + final user = await api.getCurrentUser(); + state = state.copyWith(user: user); + debugPrint('DEBUG: Loaded complete user data from server'); + } + } catch (e) { + debugPrint('Warning: Failed to load server user data: $e'); + // Don't update state on server data load failure - keep JWT data if available + } + } + + /// Update API service with current token + void _updateApiServiceToken(String token) { + final api = _ref.read(apiServiceProvider); + api?.updateAuthToken(token); + } + + /// Validate token format using advanced validation + bool _isValidTokenFormat(String token) { + final result = TokenValidator.validateTokenFormat(token); + return result.isValid; + } + + /// Validate token with comprehensive validation (format + server) + Future _validateToken(String token) async { + // Check cache first + final cachedResult = TokenValidationCache.getCachedResult(token); + if (cachedResult != null) { + debugPrint( + 'DEBUG: Using cached token validation result: ${cachedResult.isValid}', + ); + return cachedResult.isValid; + } + + // Fast format validation first + final formatResult = TokenValidator.validateTokenFormat(token); + if (!formatResult.isValid) { + debugPrint('DEBUG: Token format invalid: ${formatResult.message}'); + TokenValidationCache.cacheResult(token, formatResult); + return false; + } + + // If format is valid but token is expiring soon, try server validation + if (formatResult.isExpiringSoon) { + debugPrint('DEBUG: Token expiring soon, validating with server'); + } + + // Server validation (async with timeout) + try { + final api = _ref.read(apiServiceProvider); + if (api == null) { + debugPrint('DEBUG: No API service available for token validation'); + return formatResult.isValid; // Fall back to format validation + } + + User? validationUser; + final serverResult = await TokenValidator.validateTokenWithServer( + token, + () async { + // Update API with token for validation + api.updateAuthToken(token); + // Try to fetch user data as validation + validationUser = await api.getCurrentUser(); + return validationUser!; + }, + ); + + // Store the user data if validation was successful + if (serverResult.isValid && + validationUser != null && + state.isAuthenticated) { + state = state.copyWith(user: validationUser); + debugPrint('DEBUG: Cached user data from token validation'); + } + + TokenValidationCache.cacheResult(token, serverResult); + + debugPrint( + 'DEBUG: Server token validation: ${serverResult.isValid} - ${serverResult.message}', + ); + return serverResult.isValid; + } catch (e) { + debugPrint('DEBUG: Token server validation failed: $e'); + // On network error, fall back to format validation if it was valid + return formatResult.isValid; + } + } + + /// Check if user has saved credentials (with caching) + Future hasSavedCredentials() async { + // Check cache first + final cachedResult = _cacheManager.getCachedCredentialsExist(); + if (cachedResult != null) { + return cachedResult; + } + + try { + final storage = _ref.read(optimizedStorageServiceProvider); + final hasCredentials = await storage.hasCredentials(); + + // Cache the result + _cacheManager.cacheCredentialsExist(hasCredentials); + + return hasCredentials; + } catch (e) { + return false; + } + } + + /// Refresh current auth state + Future refresh() async { + // Clear cache before refresh to ensure fresh data + _cacheManager.clearAuthCache(); + TokenValidationCache.clearCache(); + + await _initialize(); + } + + /// Clean up expired caches (called periodically) + void cleanupCaches() { + _cacheManager.cleanExpiredCache(); + _cacheManager.optimizeCache(); + } + + /// Get performance statistics + Map getPerformanceStats() { + return { + 'authCache': _cacheManager.getCacheStats(), + 'tokenValidationCache': 'Managed by TokenValidationCache', + 'storageCache': 'Managed by OptimizedStorageService', + }; + } +} + +/// Provider for the unified auth state manager +final authStateManagerProvider = + StateNotifierProvider((ref) { + return AuthStateManager(ref); + }); + +/// Computed providers for common auth state queries +final isAuthenticatedProvider = Provider((ref) { + return ref.watch( + authStateManagerProvider.select((state) => state.isAuthenticated), + ); +}); + +final authTokenProvider2 = Provider((ref) { + return ref.watch(authStateManagerProvider.select((state) => state.token)); +}); + +final authUserProvider = Provider((ref) { + return ref.watch(authStateManagerProvider.select((state) => state.user)); +}); + +final authErrorProvider2 = Provider((ref) { + return ref.watch(authStateManagerProvider.select((state) => state.error)); +}); + +final isAuthLoadingProvider = Provider((ref) { + return ref.watch(authStateManagerProvider.select((state) => state.isLoading)); +}); diff --git a/lib/core/auth/token_validator.dart b/lib/core/auth/token_validator.dart new file mode 100644 index 0000000..e9ad101 --- /dev/null +++ b/lib/core/auth/token_validator.dart @@ -0,0 +1,259 @@ +import 'dart:convert'; +import 'package:flutter/foundation.dart'; +import 'package:crypto/crypto.dart'; + +/// JWT token validation utilities +class TokenValidator { + static const Duration _validationTimeout = Duration(seconds: 5); + + /// Validate JWT token format and expiry without network call + static TokenValidationResult validateTokenFormat(String token) { + try { + // Basic format check + if (token.isEmpty || token.length < 10) { + return TokenValidationResult.invalid('Token too short'); + } + + // Check if it looks like a JWT (has at least 2 dots) + final parts = token.split('.'); + if (parts.length < 3) { + return TokenValidationResult.invalid('Invalid JWT format'); + } + + // Try to decode the payload to check expiry + try { + final payload = _decodeJWTPayload(parts[1]); + final exp = payload['exp'] as int?; + + if (exp != null) { + final expiryTime = DateTime.fromMillisecondsSinceEpoch(exp * 1000); + final now = DateTime.now(); + + if (expiryTime.isBefore(now)) { + return TokenValidationResult.expired('Token expired'); + } + + // Check if token expires soon (within 5 minutes) + final fiveMinutesFromNow = now.add(const Duration(minutes: 5)); + if (expiryTime.isBefore(fiveMinutesFromNow)) { + return TokenValidationResult.expiringSoon( + 'Token expires soon', + expiryTime, + ); + } + } + + return TokenValidationResult.valid( + 'Token format valid', + expiryData: exp != null + ? DateTime.fromMillisecondsSinceEpoch(exp * 1000) + : null, + ); + } catch (e) { + // If we can't decode JWT, treat as opaque token + debugPrint( + 'DEBUG: Could not decode JWT payload, treating as opaque token: $e', + ); + return TokenValidationResult.valid('Opaque token format valid'); + } + } catch (e) { + return TokenValidationResult.invalid('Token validation error: $e'); + } + } + + /// Validate token with server (async with timeout) + static Future validateTokenWithServer( + String token, + Future Function() serverValidationCall, + ) async { + try { + // First check format + final formatResult = validateTokenFormat(token); + if (!formatResult.isValid) { + return formatResult; + } + + // If format is good, try server validation with timeout + final validationFuture = serverValidationCall(); + + final result = await validationFuture.timeout( + _validationTimeout, + onTimeout: () => throw Exception('Token validation timeout'), + ); + + return TokenValidationResult.valid( + 'Server validation successful', + serverData: result, + ); + } catch (e) { + if (e.toString().contains('timeout')) { + return TokenValidationResult.networkError( + 'Validation timeout - using cached result', + ); + } else if (e.toString().contains('401') || e.toString().contains('403')) { + return TokenValidationResult.invalid('Server rejected token'); + } else { + return TokenValidationResult.networkError( + 'Network error during validation: $e', + ); + } + } + } + + /// Decode JWT payload (without signature verification) + static Map _decodeJWTPayload(String base64Payload) { + // Add padding if needed + String padded = base64Payload; + while (padded.length % 4 != 0) { + padded += '='; + } + + // Decode base64 + final decoded = base64Url.decode(padded); + final jsonString = utf8.decode(decoded); + + return jsonDecode(jsonString) as Map; + } + + /// Extract user information from JWT token (if available) + static Map? extractUserInfo(String token) { + try { + final parts = token.split('.'); + if (parts.length < 3) return null; + + final payload = _decodeJWTPayload(parts[1]); + + // Extract common user fields + return { + 'sub': payload['sub'], // Subject (user ID) + 'username': + payload['username'] ?? + payload['name'] ?? + payload['preferred_username'], + 'email': payload['email'], + 'roles': payload['roles'] ?? payload['groups'], + 'exp': payload['exp'], + 'iat': payload['iat'], // Issued at + }; + } catch (e) { + debugPrint('DEBUG: Could not extract user info from token: $e'); + return null; + } + } + + /// Generate a cache key for token validation results + static String generateCacheKey(String token) { + final bytes = utf8.encode(token); + final digest = sha256.convert(bytes); + return digest.toString().substring( + 0, + 16, + ); // Use first 16 chars as cache key + } +} + +/// Result of token validation +class TokenValidationResult { + const TokenValidationResult._( + this.isValid, + this.status, + this.message, { + this.expiryData, + this.serverData, + }); + + const TokenValidationResult.valid( + String message, { + DateTime? expiryData, + dynamic serverData, + }) : this._( + true, + TokenValidationStatus.valid, + message, + expiryData: expiryData, + serverData: serverData, + ); + + const TokenValidationResult.invalid(String message) + : this._(false, TokenValidationStatus.invalid, message); + + const TokenValidationResult.expired(String message) + : this._(false, TokenValidationStatus.expired, message); + + const TokenValidationResult.expiringSoon(String message, DateTime expiryTime) + : this._( + true, + TokenValidationStatus.expiringSoon, + message, + expiryData: expiryTime, + ); + + const TokenValidationResult.networkError(String message) + : this._(false, TokenValidationStatus.networkError, message); + + final bool isValid; + final TokenValidationStatus status; + final String message; + final DateTime? expiryData; + final dynamic serverData; + + bool get isExpired => status == TokenValidationStatus.expired; + bool get isExpiringSoon => status == TokenValidationStatus.expiringSoon; + bool get hasNetworkError => status == TokenValidationStatus.networkError; + + @override + String toString() => + 'TokenValidationResult(isValid: $isValid, status: $status, message: $message)'; +} + +enum TokenValidationStatus { + valid, + invalid, + expired, + expiringSoon, + networkError, +} + +/// Cache for token validation results +class TokenValidationCache { + static final Map _cache = {}; + static const Duration _cacheTimeout = Duration(minutes: 5); + + static void cacheResult(String token, TokenValidationResult result) { + final key = TokenValidator.generateCacheKey(token); + _cache[key] = _CacheEntry(result, DateTime.now()); + + // Clean old entries + _cleanCache(); + } + + static TokenValidationResult? getCachedResult(String token) { + final key = TokenValidator.generateCacheKey(token); + final entry = _cache[key]; + + if (entry != null && + DateTime.now().difference(entry.timestamp) < _cacheTimeout) { + return entry.result; + } + + return null; + } + + static void clearCache() { + _cache.clear(); + } + + static void _cleanCache() { + final now = DateTime.now(); + _cache.removeWhere( + (key, entry) => now.difference(entry.timestamp) > _cacheTimeout, + ); + } +} + +class _CacheEntry { + const _CacheEntry(this.result, this.timestamp); + + final TokenValidationResult result; + final DateTime timestamp; +} diff --git a/lib/core/error/api_error.dart b/lib/core/error/api_error.dart new file mode 100644 index 0000000..4785dd5 --- /dev/null +++ b/lib/core/error/api_error.dart @@ -0,0 +1,397 @@ +import 'package:flutter/foundation.dart'; + +/// Standardized API error representation +/// Provides consistent error information across all API operations +@immutable +class ApiError implements Exception { + const ApiError._({ + required this.type, + required this.message, + this.endpoint, + this.method, + this.statusCode, + this.details, + this.fieldErrors = const {}, + this.originalError, + this.technical, + this.retryAfter, + this.timeoutDuration, + }); + + // Factory constructors for different error types + const ApiError.network({ + required String message, + String? endpoint, + String? method, + dynamic originalError, + String? technical, + }) : this._( + type: ApiErrorType.network, + message: message, + endpoint: endpoint, + method: method, + originalError: originalError, + technical: technical, + ); + + const ApiError.timeout({ + required String message, + String? endpoint, + String? method, + Duration? timeoutDuration, + }) : this._( + type: ApiErrorType.timeout, + message: message, + endpoint: endpoint, + method: method, + timeoutDuration: timeoutDuration, + ); + + const ApiError.authentication({ + required String message, + String? endpoint, + String? method, + int? statusCode, + }) : this._( + type: ApiErrorType.authentication, + message: message, + endpoint: endpoint, + method: method, + statusCode: statusCode, + ); + + const ApiError.authorization({ + required String message, + String? endpoint, + String? method, + int? statusCode, + }) : this._( + type: ApiErrorType.authorization, + message: message, + endpoint: endpoint, + method: method, + statusCode: statusCode, + ); + + const ApiError.validation({ + required String message, + String? endpoint, + String? method, + Map> fieldErrors = const {}, + ParsedErrorResponse? details, + }) : this._( + type: ApiErrorType.validation, + message: message, + endpoint: endpoint, + method: method, + statusCode: 422, + fieldErrors: fieldErrors, + details: details, + ); + + const ApiError.badRequest({ + required String message, + String? endpoint, + String? method, + ParsedErrorResponse? details, + }) : this._( + type: ApiErrorType.badRequest, + message: message, + endpoint: endpoint, + method: method, + statusCode: 400, + details: details, + ); + + const ApiError.notFound({ + required String message, + String? endpoint, + String? method, + int? statusCode, + }) : this._( + type: ApiErrorType.notFound, + message: message, + endpoint: endpoint, + method: method, + statusCode: statusCode ?? 404, + ); + + const ApiError.server({ + required String message, + String? endpoint, + String? method, + int? statusCode, + ParsedErrorResponse? details, + }) : this._( + type: ApiErrorType.server, + message: message, + endpoint: endpoint, + method: method, + statusCode: statusCode, + details: details, + ); + + const ApiError.rateLimit({ + required String message, + String? endpoint, + String? method, + int? statusCode, + Duration? retryAfter, + }) : this._( + type: ApiErrorType.rateLimit, + message: message, + endpoint: endpoint, + method: method, + statusCode: statusCode ?? 429, + retryAfter: retryAfter, + ); + + const ApiError.cancelled({ + required String message, + String? endpoint, + String? method, + }) : this._( + type: ApiErrorType.cancelled, + message: message, + endpoint: endpoint, + method: method, + ); + + const ApiError.security({ + required String message, + String? endpoint, + String? method, + }) : this._( + type: ApiErrorType.security, + message: message, + endpoint: endpoint, + method: method, + ); + + const ApiError.unknown({ + required String message, + String? endpoint, + String? method, + dynamic originalError, + String? technical, + }) : this._( + type: ApiErrorType.unknown, + message: message, + endpoint: endpoint, + method: method, + originalError: originalError, + technical: technical, + ); + + const ApiError.client({ + required String message, + String? endpoint, + String? method, + int? statusCode, + ParsedErrorResponse? details, + }) : this._( + type: ApiErrorType.badRequest, + message: message, + endpoint: endpoint, + method: method, + statusCode: statusCode, + details: details, + ); + + final ApiErrorType type; + final String message; + final String? endpoint; + final String? method; + final int? statusCode; + final ParsedErrorResponse? details; + final Map> fieldErrors; + final dynamic originalError; + final String? technical; + final Duration? retryAfter; + final Duration? timeoutDuration; + + /// Check if this error has field-specific validation errors + bool get hasFieldErrors => fieldErrors.isNotEmpty; + + /// Check if this error is retryable + bool get isRetryable { + switch (type) { + case ApiErrorType.network: + case ApiErrorType.timeout: + case ApiErrorType.server: + case ApiErrorType.rateLimit: + return true; + case ApiErrorType.authentication: + case ApiErrorType.authorization: + case ApiErrorType.validation: + case ApiErrorType.badRequest: + case ApiErrorType.notFound: + case ApiErrorType.cancelled: + case ApiErrorType.security: + case ApiErrorType.unknown: + return false; + } + } + + /// Get all field error messages as a flattened list + List get allFieldErrorMessages { + final messages = []; + for (final entry in fieldErrors.entries) { + final field = entry.key; + final errors = entry.value; + for (final error in errors) { + messages.add('$field: $error'); + } + } + return messages; + } + + /// Get first field error message for quick display + String? get firstFieldError { + if (fieldErrors.isEmpty) return null; + final firstEntry = fieldErrors.entries.first; + final field = firstEntry.key; + final firstError = firstEntry.value.first; + return '$field: $firstError'; + } + + /// Create a copy with updated fields + ApiError copyWith({ + ApiErrorType? type, + String? message, + String? endpoint, + String? method, + int? statusCode, + ParsedErrorResponse? details, + Map>? fieldErrors, + dynamic originalError, + String? technical, + Duration? retryAfter, + Duration? timeoutDuration, + }) { + return ApiError._( + type: type ?? this.type, + message: message ?? this.message, + endpoint: endpoint ?? this.endpoint, + method: method ?? this.method, + statusCode: statusCode ?? this.statusCode, + details: details ?? this.details, + fieldErrors: fieldErrors ?? this.fieldErrors, + originalError: originalError ?? this.originalError, + technical: technical ?? this.technical, + retryAfter: retryAfter ?? this.retryAfter, + timeoutDuration: timeoutDuration ?? this.timeoutDuration, + ); + } + + /// Convert to map for logging and debugging + Map toMap() { + return { + 'type': type.name, + 'message': message, + 'endpoint': endpoint, + 'method': method, + 'statusCode': statusCode, + 'fieldErrors': fieldErrors, + 'technical': technical, + 'retryAfter': retryAfter?.inSeconds, + 'timeoutDuration': timeoutDuration?.inSeconds, + 'isRetryable': isRetryable, + 'hasFieldErrors': hasFieldErrors, + }; + } + + @override + String toString() { + final buffer = StringBuffer(); + buffer.write('ApiError('); + buffer.write('type: ${type.name}, '); + buffer.write('message: $message'); + + if (endpoint != null) { + buffer.write(', endpoint: $endpoint'); + } + + if (method != null) { + buffer.write(', method: $method'); + } + + if (statusCode != null) { + buffer.write(', statusCode: $statusCode'); + } + + if (hasFieldErrors) { + buffer.write(', fieldErrors: ${fieldErrors.length}'); + } + + buffer.write(')'); + return buffer.toString(); + } + + @override + bool operator ==(Object other) { + if (identical(this, other)) return true; + + return other is ApiError && + other.type == type && + other.message == message && + other.endpoint == endpoint && + other.method == method && + other.statusCode == statusCode && + mapEquals(other.fieldErrors, fieldErrors); + } + + @override + int get hashCode { + return Object.hash( + type, + message, + endpoint, + method, + statusCode, + fieldErrors, + ); + } +} + +/// Types of API errors for categorization and handling +enum ApiErrorType { + network, // Connection issues, DNS resolution, etc. + timeout, // Request timeout (send, receive, connection) + authentication, // 401, invalid credentials, expired tokens + authorization, // 403, insufficient permissions + validation, // 422, field validation errors + badRequest, // 400, malformed request + notFound, // 404, resource not found + server, // 5xx server errors + rateLimit, // 429, too many requests + cancelled, // Request was cancelled + security, // Certificate, SSL/TLS issues + unknown, // Unexpected or unhandled errors +} + +/// Parsed error response from API +/// Contains structured error information from server responses +class ParsedErrorResponse { + const ParsedErrorResponse({ + this.message, + this.code, + this.errors = const [], + this.fieldErrors = const {}, + this.metadata = const {}, + }); + + final String? message; + final String? code; + final List errors; + final Map> fieldErrors; + final Map metadata; + + bool get hasFieldErrors => fieldErrors.isNotEmpty; + bool get hasGeneralErrors => errors.isNotEmpty; + + @override + String toString() { + return 'ParsedErrorResponse(message: $message, errors: ${errors.length}, fieldErrors: ${fieldErrors.length})'; + } +} diff --git a/lib/core/error/api_error_handler.dart b/lib/core/error/api_error_handler.dart new file mode 100644 index 0000000..223f0f3 --- /dev/null +++ b/lib/core/error/api_error_handler.dart @@ -0,0 +1,408 @@ +import 'package:dio/dio.dart'; +import 'package:flutter/foundation.dart'; +import 'api_error.dart'; +import 'error_parser.dart'; + +/// Comprehensive API error handler with structured error parsing +/// Handles all types of API errors and converts them to standardized format +class ApiErrorHandler { + static final ApiErrorHandler _instance = ApiErrorHandler._internal(); + factory ApiErrorHandler() => _instance; + ApiErrorHandler._internal(); + + final ErrorParser _errorParser = ErrorParser(); + + /// Transform any exception into standardized ApiError + ApiError transformError( + dynamic error, { + String? endpoint, + String? method, + Map? requestData, + }) { + try { + if (error is DioException) { + return _handleDioException(error, endpoint: endpoint, method: method); + } else if (error is ApiError) { + return error; + } else { + return ApiError.unknown( + message: 'An unexpected error occurred', + originalError: error, + technical: error.toString(), + ); + } + } catch (e) { + // Fallback error if transformation itself fails + debugPrint('ApiErrorHandler: Error transforming exception: $e'); + return ApiError.unknown( + message: 'A system error occurred', + originalError: error, + technical: 'Error transformation failed: $e', + ); + } + } + + /// Handle DioException with detailed error parsing + ApiError _handleDioException( + DioException dioError, { + String? endpoint, + String? method, + }) { + final statusCode = dioError.response?.statusCode; + final responseData = dioError.response?.data; + final requestPath = endpoint ?? dioError.requestOptions.path; + final httpMethod = method ?? dioError.requestOptions.method; + + // Log error details for debugging + _logErrorDetails(dioError, requestPath, httpMethod); + + switch (dioError.type) { + case DioExceptionType.connectionTimeout: + return ApiError.timeout( + message: 'Connection timeout - please check your internet connection', + endpoint: requestPath, + method: httpMethod, + timeoutDuration: dioError.requestOptions.connectTimeout, + ); + + case DioExceptionType.sendTimeout: + return ApiError.timeout( + message: 'Request send timeout - the upload took too long', + endpoint: requestPath, + method: httpMethod, + timeoutDuration: dioError.requestOptions.sendTimeout, + ); + + case DioExceptionType.receiveTimeout: + return ApiError.timeout( + message: 'Response timeout - the server took too long to respond', + endpoint: requestPath, + method: httpMethod, + timeoutDuration: dioError.requestOptions.receiveTimeout, + ); + + case DioExceptionType.badCertificate: + return ApiError.security( + message: + 'Security certificate error - unable to verify server identity', + endpoint: requestPath, + method: httpMethod, + ); + + case DioExceptionType.connectionError: + return ApiError.network( + message: + 'Network connection error - please check your internet connection', + endpoint: requestPath, + method: httpMethod, + originalError: dioError, + ); + + case DioExceptionType.cancel: + return ApiError.cancelled( + message: 'Request was cancelled', + endpoint: requestPath, + method: httpMethod, + ); + + case DioExceptionType.badResponse: + return _handleBadResponse( + dioError, + requestPath, + httpMethod, + statusCode, + responseData, + ); + + case DioExceptionType.unknown: + return ApiError.unknown( + message: 'An unexpected network error occurred', + endpoint: requestPath, + method: httpMethod, + originalError: dioError, + technical: dioError.message, + ); + } + } + + /// Handle bad response errors with detailed status code analysis + ApiError _handleBadResponse( + DioException dioError, + String requestPath, + String httpMethod, + int? statusCode, + dynamic responseData, + ) { + if (statusCode == null) { + return ApiError.server( + message: 'Invalid server response', + endpoint: requestPath, + method: httpMethod, + statusCode: null, + ); + } + + switch (statusCode) { + case 400: + return _handleBadRequest( + dioError, + requestPath, + httpMethod, + responseData, + ); + + case 401: + return ApiError.authentication( + message: 'Authentication failed - please sign in again', + endpoint: requestPath, + method: httpMethod, + statusCode: statusCode, + ); + + case 403: + return ApiError.authorization( + message: 'Access denied - you don\'t have permission for this action', + endpoint: requestPath, + method: httpMethod, + statusCode: statusCode, + ); + + case 404: + return ApiError.notFound( + message: 'The requested resource was not found', + endpoint: requestPath, + method: httpMethod, + statusCode: statusCode, + ); + + case 422: + return _handleValidationError( + dioError, + requestPath, + httpMethod, + responseData, + ); + + case 429: + return ApiError.rateLimit( + message: 'Too many requests - please wait before trying again', + endpoint: requestPath, + method: httpMethod, + statusCode: statusCode, + retryAfter: _extractRetryAfter(dioError.response?.headers), + ); + + default: + if (statusCode >= 500) { + return _handleServerError( + dioError, + requestPath, + httpMethod, + statusCode, + responseData, + ); + } else { + return ApiError.client( + message: 'Client error occurred', + endpoint: requestPath, + method: httpMethod, + statusCode: statusCode, + details: _errorParser.parseErrorResponse(responseData), + ); + } + } + } + + /// Handle 400 Bad Request with detailed parsing + ApiError _handleBadRequest( + DioException dioError, + String requestPath, + String httpMethod, + dynamic responseData, + ) { + final parsedError = _errorParser.parseErrorResponse(responseData); + + return ApiError.badRequest( + message: + parsedError.message ?? 'Invalid request - please check your input', + endpoint: requestPath, + method: httpMethod, + details: parsedError, + ); + } + + /// Handle 422 Validation Error with field-specific parsing + ApiError _handleValidationError( + DioException dioError, + String requestPath, + String httpMethod, + dynamic responseData, + ) { + final parsedError = _errorParser.parseValidationError(responseData); + + return ApiError.validation( + message: 'Validation failed - please check your input', + endpoint: requestPath, + method: httpMethod, + fieldErrors: parsedError.fieldErrors, + details: parsedError, + ); + } + + /// Handle server errors (5xx) + ApiError _handleServerError( + DioException dioError, + String requestPath, + String httpMethod, + int statusCode, + dynamic responseData, + ) { + final parsedError = _errorParser.parseErrorResponse(responseData); + + String message; + switch (statusCode) { + case 500: + message = 'Internal server error - please try again later'; + break; + case 502: + message = 'Bad gateway - the server is temporarily unavailable'; + break; + case 503: + message = 'Service unavailable - the server is temporarily down'; + break; + case 504: + message = 'Gateway timeout - the server took too long to respond'; + break; + default: + message = 'Server error occurred - please try again later'; + } + + return ApiError.server( + message: message, + endpoint: requestPath, + method: httpMethod, + statusCode: statusCode, + details: parsedError, + ); + } + + /// Extract retry-after header for rate limiting + Duration? _extractRetryAfter(Headers? headers) { + if (headers == null) return null; + + final retryAfterHeader = + headers.value('retry-after') ?? + headers.value('Retry-After') ?? + headers.value('X-RateLimit-Reset-After'); + + if (retryAfterHeader != null) { + final seconds = int.tryParse(retryAfterHeader); + if (seconds != null) { + return Duration(seconds: seconds); + } + } + + return null; + } + + /// Log error details for debugging and monitoring + void _logErrorDetails( + DioException dioError, + String requestPath, + String httpMethod, + ) { + if (kDebugMode) { + debugPrint('🔴 API Error Details:'); + debugPrint(' Method: ${httpMethod.toUpperCase()}'); + debugPrint(' Endpoint: $requestPath'); + debugPrint(' Type: ${dioError.type}'); + debugPrint(' Status: ${dioError.response?.statusCode}'); + + if (dioError.response?.data != null) { + debugPrint(' Response: ${dioError.response?.data}'); + } + + if (dioError.requestOptions.data != null) { + debugPrint(' Request Data: ${dioError.requestOptions.data}'); + } + + debugPrint(' Error: ${dioError.message}'); + } + + // In production, you would send this to your error tracking service + // FirebaseCrashlytics.instance.recordError(dioError, stackTrace); + // Sentry.captureException(dioError); + } + + /// Check if error is retryable + bool isRetryable(ApiError error) { + switch (error.type) { + case ApiErrorType.timeout: + case ApiErrorType.network: + case ApiErrorType.server: + return true; + case ApiErrorType.rateLimit: + return true; // Can retry after waiting + case ApiErrorType.authentication: + return false; // Need new token + case ApiErrorType.authorization: + case ApiErrorType.notFound: + case ApiErrorType.validation: + case ApiErrorType.badRequest: + return false; // Client errors aren't retryable + case ApiErrorType.cancelled: + case ApiErrorType.security: + case ApiErrorType.unknown: + return false; + } + } + + /// Get suggested retry delay for retryable errors + Duration? getRetryDelay(ApiError error) { + if (!isRetryable(error)) return null; + + switch (error.type) { + case ApiErrorType.rateLimit: + return error.retryAfter ?? const Duration(minutes: 1); + case ApiErrorType.timeout: + return const Duration(seconds: 5); + case ApiErrorType.network: + return const Duration(seconds: 3); + case ApiErrorType.server: + return const Duration(seconds: 10); + default: + return const Duration(seconds: 5); + } + } + + /// Get user-friendly error message with actionable advice + String getUserMessage(ApiError error) { + final baseMessage = error.message; + + // Add actionable advice based on error type + switch (error.type) { + case ApiErrorType.network: + return '$baseMessage\n\nPlease check your internet connection and try again.'; + case ApiErrorType.timeout: + return '$baseMessage\n\nThis might be due to a slow connection. Try again in a moment.'; + case ApiErrorType.authentication: + return '$baseMessage\n\nPlease sign in again to continue.'; + case ApiErrorType.authorization: + return '$baseMessage\n\nContact support if you believe this is an error.'; + case ApiErrorType.validation: + return '$baseMessage\n\nPlease correct the highlighted fields and try again.'; + case ApiErrorType.rateLimit: + final delay = error.retryAfter; + if (delay != null) { + final minutes = delay.inMinutes; + final seconds = delay.inSeconds % 60; + return '$baseMessage\n\nPlease wait ${minutes > 0 ? '${minutes}m ' : ''}${seconds}s before trying again.'; + } + return '$baseMessage\n\nPlease wait a moment before trying again.'; + case ApiErrorType.server: + return '$baseMessage\n\nOur servers are experiencing issues. Please try again in a few minutes.'; + default: + return baseMessage; + } + } +} diff --git a/lib/core/error/api_error_interceptor.dart b/lib/core/error/api_error_interceptor.dart new file mode 100644 index 0000000..c147b51 --- /dev/null +++ b/lib/core/error/api_error_interceptor.dart @@ -0,0 +1,239 @@ +import 'package:dio/dio.dart'; +import 'package:flutter/foundation.dart'; +import 'api_error_handler.dart'; +import 'api_error.dart'; + +/// Dio interceptor for automatic error handling and transformation +/// Converts all HTTP errors into standardized ApiError format +class ApiErrorInterceptor extends Interceptor { + final ApiErrorHandler _errorHandler = ApiErrorHandler(); + final bool logErrors; + final bool throwApiErrors; + + ApiErrorInterceptor({this.logErrors = true, this.throwApiErrors = true}); + + @override + void onError(DioException err, ErrorInterceptorHandler handler) { + try { + // Transform the error into our standardized format + final apiError = _errorHandler.transformError( + err, + endpoint: err.requestOptions.path, + method: err.requestOptions.method, + ); + + if (logErrors) { + _logApiError(apiError, err); + } + + if (throwApiErrors) { + // Replace the DioException with our ApiError + final enhancedError = DioException( + requestOptions: err.requestOptions, + response: err.response, + type: err.type, + error: apiError, + message: apiError.message, + ); + handler.reject(enhancedError); + } else { + // Store the ApiError in the response extra data + if (err.response != null) { + err.response!.extra['apiError'] = apiError; + } + handler.next(err); + } + } catch (e) { + // Fallback if error transformation fails + debugPrint('ApiErrorInterceptor: Failed to transform error: $e'); + handler.next(err); + } + } + + @override + void onResponse(Response response, ResponseInterceptorHandler handler) { + // Check for errors in successful responses (some APIs return errors with 200 status) + if (response.statusCode == 200 && response.data is Map) { + final data = response.data as Map; + + // Check for error indicators in successful responses + if (_isErrorResponse(data)) { + final apiError = _errorHandler.transformError( + data, + endpoint: response.requestOptions.path, + method: response.requestOptions.method, + ); + + if (logErrors) { + debugPrint('🟡 API Error in successful response: $apiError'); + } + + // Store the error for later handling + response.extra['apiError'] = apiError; + } + } + + handler.next(response); + } + + /// Check if a successful response actually contains an error + bool _isErrorResponse(Map data) { + // Common error indicators in successful responses + const errorIndicators = [ + 'error', + 'errors', + 'error_message', + 'errorMessage', + 'success', + ]; + + for (final indicator in errorIndicators) { + if (data.containsKey(indicator)) { + final value = data[indicator]; + + // Check for explicit error indicators + if (indicator == 'success' && value == false) { + return true; + } + + // Check for error messages or arrays + if (indicator != 'success' && value != null) { + if (value is String && value.isNotEmpty) { + return true; + } else if (value is List && value.isNotEmpty) { + return true; + } else if (value is Map && value.isNotEmpty) { + return true; + } + } + } + } + + return false; + } + + /// Log API error with structured information + void _logApiError(ApiError apiError, DioException originalError) { + if (!kDebugMode) return; + + final typeIcon = _getErrorTypeIcon(apiError.type); + debugPrint('$typeIcon API Error [${apiError.type.name.toUpperCase()}]'); + debugPrint(' Method: ${apiError.method?.toUpperCase() ?? 'UNKNOWN'}'); + debugPrint(' Endpoint: ${apiError.endpoint ?? 'unknown'}'); + debugPrint(' Status: ${apiError.statusCode ?? 'N/A'}'); + debugPrint(' Message: ${apiError.message}'); + + if (apiError.hasFieldErrors) { + debugPrint(' Field Errors:'); + for (final entry in apiError.fieldErrors.entries) { + final field = entry.key; + final errors = entry.value; + debugPrint(' $field: ${errors.join(', ')}'); + } + } + + if (apiError.technical != null) { + debugPrint(' Technical: ${apiError.technical}'); + } + + if (apiError.retryAfter != null) { + debugPrint(' Retry After: ${apiError.retryAfter!.inSeconds}s'); + } + + // Log original error type for debugging + debugPrint(' Original Type: ${originalError.type}'); + + // Log request details if available + final requestData = originalError.requestOptions.data; + if (requestData != null && requestData.toString().length < 500) { + debugPrint(' Request: $requestData'); + } + + // Log response data if available and not too large + final responseData = originalError.response?.data; + if (responseData != null && responseData.toString().length < 1000) { + debugPrint(' Response: $responseData'); + } + } + + /// Get emoji icon for error type + String _getErrorTypeIcon(ApiErrorType type) { + switch (type) { + case ApiErrorType.network: + return '🌐'; + case ApiErrorType.timeout: + return '⏱️'; + case ApiErrorType.authentication: + return '🔐'; + case ApiErrorType.authorization: + return '🚫'; + case ApiErrorType.validation: + return '✏️'; + case ApiErrorType.badRequest: + return '❌'; + case ApiErrorType.notFound: + return '🔍'; + case ApiErrorType.server: + return '🔥'; + case ApiErrorType.rateLimit: + return '🐌'; + case ApiErrorType.cancelled: + return '🛑'; + case ApiErrorType.security: + return '🔒'; + case ApiErrorType.unknown: + return '❓'; + } + } + + /// Extract ApiError from DioException if available + static ApiError? extractApiError(DioException error) { + return error.error is ApiError ? error.error as ApiError : null; + } + + /// Extract ApiError from Response if available + static ApiError? extractApiErrorFromResponse(Response response) { + return response.extra['apiError'] as ApiError?; + } + + /// Check if DioException contains an ApiError + static bool hasApiError(DioException error) { + return extractApiError(error) != null; + } + + /// Get user-friendly message from DioException + static String getUserMessage(DioException error) { + final apiError = extractApiError(error); + if (apiError != null) { + return ApiErrorHandler().getUserMessage(apiError); + } + + // Fallback to basic DioException handling + switch (error.type) { + case DioExceptionType.connectionTimeout: + case DioExceptionType.sendTimeout: + case DioExceptionType.receiveTimeout: + return 'Connection timeout - please check your internet connection'; + case DioExceptionType.connectionError: + return 'Network connection error - please check your internet connection'; + case DioExceptionType.badResponse: + final statusCode = error.response?.statusCode; + if (statusCode == 401) { + return 'Authentication failed - please sign in again'; + } else if (statusCode == 403) { + return 'Access denied - you don\'t have permission for this action'; + } else if (statusCode == 404) { + return 'The requested resource was not found'; + } else if (statusCode != null && statusCode >= 500) { + return 'Server error occurred - please try again later'; + } + return 'An error occurred with your request'; + case DioExceptionType.cancel: + return 'Request was cancelled'; + case DioExceptionType.badCertificate: + return 'Security certificate error - unable to verify server identity'; + case DioExceptionType.unknown: + return 'An unexpected error occurred - please try again'; + } + } +} diff --git a/lib/core/error/enhanced_error_service.dart b/lib/core/error/enhanced_error_service.dart new file mode 100644 index 0000000..bdbe646 --- /dev/null +++ b/lib/core/error/enhanced_error_service.dart @@ -0,0 +1,467 @@ +import 'package:dio/dio.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'api_error.dart'; +import 'api_error_handler.dart'; +import 'api_error_interceptor.dart'; +import '../../shared/theme/app_theme.dart'; +import '../../shared/theme/theme_extensions.dart'; + +/// Enhanced error service with comprehensive error handling capabilities +/// Provides unified error management across the application +class EnhancedErrorService { + static final EnhancedErrorService _instance = + EnhancedErrorService._internal(); + factory EnhancedErrorService() => _instance; + EnhancedErrorService._internal(); + + final ApiErrorHandler _errorHandler = ApiErrorHandler(); + + /// Transform any error into ApiError format + ApiError transformError( + dynamic error, { + String? endpoint, + String? method, + Map? requestData, + }) { + return _errorHandler.transformError( + error, + endpoint: endpoint, + method: method, + requestData: requestData, + ); + } + + /// Get user-friendly error message + String getUserMessage(dynamic error) { + if (error is ApiError) { + return _errorHandler.getUserMessage(error); + } else if (error is DioException) { + return ApiErrorInterceptor.getUserMessage(error); + } else { + return _getGenericErrorMessage(error); + } + } + + /// Get technical error details for debugging + String getTechnicalDetails(dynamic error) { + if (error is ApiError) { + return error.technical ?? error.toString(); + } else if (error is DioException) { + final apiError = ApiErrorInterceptor.extractApiError(error); + if (apiError != null) { + return apiError.technical ?? apiError.toString(); + } + return '${error.type}: ${error.message}'; + } else { + return error.toString(); + } + } + + /// Check if error is retryable + bool isRetryable(dynamic error) { + if (error is ApiError) { + return _errorHandler.isRetryable(error); + } else if (error is DioException) { + final apiError = ApiErrorInterceptor.extractApiError(error); + if (apiError != null) { + return _errorHandler.isRetryable(apiError); + } + return _isDioErrorRetryable(error); + } + return false; + } + + /// Get suggested retry delay + Duration? getRetryDelay(dynamic error) { + if (error is ApiError) { + return _errorHandler.getRetryDelay(error); + } else if (error is DioException) { + final apiError = ApiErrorInterceptor.extractApiError(error); + if (apiError != null) { + return _errorHandler.getRetryDelay(apiError); + } + return _getDioRetryDelay(error); + } + return null; + } + + /// Show error snackbar with appropriate styling and actions + void showErrorSnackbar( + BuildContext context, + dynamic error, { + VoidCallback? onRetry, + Duration? duration, + bool showTechnicalDetails = false, + }) { + final message = getUserMessage(error); + final isRetryableError = isRetryable(error); + final retryDelay = getRetryDelay(error); + + final snackBar = SnackBar( + content: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Icon( + _getErrorIcon(error), + color: AppTheme.neutral50, + size: IconSize.md, + ), + const SizedBox(width: Spacing.sm), + Expanded( + child: Text( + message, + style: const TextStyle(color: AppTheme.neutral50), + ), + ), + ], + ), + if (showTechnicalDetails) ...[ + const SizedBox(height: Spacing.sm), + Text( + getTechnicalDetails(error), + style: TextStyle( + color: AppTheme.neutral50.withValues(alpha: Alpha.strong), + fontSize: AppTypography.labelMedium, + ), + ), + ], + ], + ), + backgroundColor: _getErrorColor(error), + duration: duration ?? _getSnackbarDuration(error), + action: isRetryableError && onRetry != null + ? SnackBarAction( + label: retryDelay != null && retryDelay.inSeconds > 5 + ? 'Retry (${retryDelay.inSeconds}s)' + : 'Retry', + textColor: AppTheme.neutral50, + onPressed: onRetry, + ) + : null, + ); + + ScaffoldMessenger.of(context).showSnackBar(snackBar); + } + + /// Show error dialog with detailed information and recovery options + Future showErrorDialog( + BuildContext context, + dynamic error, { + String? title, + VoidCallback? onRetry, + VoidCallback? onDismiss, + bool showTechnicalDetails = false, + }) async { + final message = getUserMessage(error); + final technicalDetails = getTechnicalDetails(error); + final isRetryableError = isRetryable(error); + + return showDialog( + context: context, + barrierDismissible: true, + builder: (BuildContext context) { + return AlertDialog( + title: Row( + children: [ + Icon(_getErrorIcon(error), color: _getErrorColor(error)), + const SizedBox(width: Spacing.sm), + Expanded(child: Text(title ?? _getErrorTitle(error))), + ], + ), + content: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(message), + if (showTechnicalDetails) ...[ + const SizedBox(height: Spacing.md), + const Text( + 'Technical Details:', + style: TextStyle(fontWeight: FontWeight.bold), + ), + const SizedBox(height: Spacing.xs), + Container( + padding: const EdgeInsets.all(Spacing.sm), + decoration: BoxDecoration( + color: AppTheme.neutral100, + borderRadius: BorderRadius.circular(AppBorderRadius.xs), + ), + child: Text( + technicalDetails, + style: const TextStyle( + fontFamily: AppTypography.monospaceFontFamily, + fontSize: AppTypography.labelMedium, + ), + ), + ), + ], + ], + ), + actions: [ + if (isRetryableError && onRetry != null) + TextButton( + onPressed: () { + Navigator.of(context).pop(); + onRetry(); + }, + child: const Text('Retry'), + ), + TextButton( + onPressed: () { + Navigator.of(context).pop(); + onDismiss?.call(); + }, + child: const Text('OK'), + ), + ], + ); + }, + ); + } + + /// Build error widget for displaying in UI + Widget buildErrorWidget( + dynamic error, { + VoidCallback? onRetry, + bool showTechnicalDetails = false, + EdgeInsets? padding, + }) { + final message = getUserMessage(error); + final technicalDetails = getTechnicalDetails(error); + final isRetryableError = isRetryable(error); + + return Container( + padding: padding ?? const EdgeInsets.all(Spacing.md), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + _getErrorIcon(error), + size: IconSize.xxl, + color: _getErrorColor(error), + ), + const SizedBox(height: Spacing.md), + Text( + _getErrorTitle(error), + style: const TextStyle( + fontSize: AppTypography.headlineSmall, + fontWeight: FontWeight.bold, + ), + textAlign: TextAlign.center, + ), + const SizedBox(height: Spacing.sm), + Text( + message, + textAlign: TextAlign.center, + style: TextStyle(color: AppTheme.neutral600), + ), + if (showTechnicalDetails) ...[ + const SizedBox(height: Spacing.md), + Container( + padding: const EdgeInsets.all(Spacing.xs), + decoration: BoxDecoration( + color: AppTheme.neutral100, + borderRadius: BorderRadius.circular(AppBorderRadius.sm), + ), + child: Text( + technicalDetails, + style: const TextStyle( + fontFamily: AppTypography.monospaceFontFamily, + fontSize: AppTypography.labelMedium, + ), + ), + ), + ], + if (isRetryableError && onRetry != null) ...[ + const SizedBox(height: Spacing.md), + ElevatedButton.icon( + onPressed: onRetry, + icon: const Icon(Icons.refresh), + label: const Text('Try Again'), + ), + ], + ], + ), + ); + } + + /// Log error with structured information + void logError( + dynamic error, { + String? context, + Map? additionalData, + StackTrace? stackTrace, + }) { + if (kDebugMode) { + final timestamp = DateTime.now().toIso8601String(); + debugPrint('🔴 ERROR [$timestamp] ${context ?? 'Unknown Context'}'); + debugPrint(' Message: ${getUserMessage(error)}'); + debugPrint(' Technical: ${getTechnicalDetails(error)}'); + + if (additionalData != null && additionalData.isNotEmpty) { + debugPrint(' Additional Data: $additionalData'); + } + + if (stackTrace != null) { + debugPrint(' Stack Trace: $stackTrace'); + } + } + + // In production, send to error tracking service + // FirebaseCrashlytics.instance.recordError(error, stackTrace, context: context); + // Sentry.captureException(error, stackTrace: stackTrace); + } + + // Private helper methods + + String _getGenericErrorMessage(dynamic error) { + if (error is Exception) { + return 'An error occurred: ${error.toString()}'; + } + return 'An unexpected error occurred'; + } + + bool _isDioErrorRetryable(DioException error) { + switch (error.type) { + case DioExceptionType.connectionTimeout: + case DioExceptionType.sendTimeout: + case DioExceptionType.receiveTimeout: + case DioExceptionType.connectionError: + return true; + case DioExceptionType.badResponse: + final statusCode = error.response?.statusCode; + return statusCode != null && statusCode >= 500; + default: + return false; + } + } + + Duration? _getDioRetryDelay(DioException error) { + switch (error.type) { + case DioExceptionType.connectionTimeout: + case DioExceptionType.sendTimeout: + case DioExceptionType.receiveTimeout: + return const Duration(seconds: 5); + case DioExceptionType.connectionError: + return const Duration(seconds: 3); + case DioExceptionType.badResponse: + final statusCode = error.response?.statusCode; + if (statusCode != null && statusCode >= 500) { + return const Duration(seconds: 10); + } + break; + default: + break; + } + return null; + } + + IconData _getErrorIcon(dynamic error) { + if (error is ApiError) { + switch (error.type) { + case ApiErrorType.network: + return Icons.wifi_off; + case ApiErrorType.timeout: + return Icons.timer_off; + case ApiErrorType.authentication: + return Icons.lock; + case ApiErrorType.authorization: + return Icons.block; + case ApiErrorType.validation: + return Icons.edit_off; + case ApiErrorType.badRequest: + return Icons.error_outline; + case ApiErrorType.notFound: + return Icons.search_off; + case ApiErrorType.server: + return Icons.dns; + case ApiErrorType.rateLimit: + return Icons.speed; + case ApiErrorType.cancelled: + return Icons.cancel; + case ApiErrorType.security: + return Icons.security; + case ApiErrorType.unknown: + return Icons.help_outline; + } + } + return Icons.error_outline; + } + + Color _getErrorColor(dynamic error) { + if (error is ApiError) { + switch (error.type) { + case ApiErrorType.network: + case ApiErrorType.timeout: + return AppTheme.warning; + case ApiErrorType.authentication: + case ApiErrorType.authorization: + return AppTheme.error; + case ApiErrorType.validation: + case ApiErrorType.badRequest: + return AppTheme.warning; + case ApiErrorType.server: + return AppTheme.error; + case ApiErrorType.rateLimit: + return AppTheme.info; + default: + return AppTheme.error; + } + } + return AppTheme.error; + } + + String _getErrorTitle(dynamic error) { + if (error is ApiError) { + switch (error.type) { + case ApiErrorType.network: + return 'Connection Problem'; + case ApiErrorType.timeout: + return 'Request Timeout'; + case ApiErrorType.authentication: + return 'Authentication Required'; + case ApiErrorType.authorization: + return 'Access Denied'; + case ApiErrorType.validation: + return 'Invalid Input'; + case ApiErrorType.badRequest: + return 'Bad Request'; + case ApiErrorType.notFound: + return 'Not Found'; + case ApiErrorType.server: + return 'Server Error'; + case ApiErrorType.rateLimit: + return 'Rate Limited'; + case ApiErrorType.cancelled: + return 'Request Cancelled'; + case ApiErrorType.security: + return 'Security Error'; + case ApiErrorType.unknown: + return 'Unknown Error'; + } + } + return 'Error'; + } + + Duration _getSnackbarDuration(dynamic error) { + if (error is ApiError) { + switch (error.type) { + case ApiErrorType.validation: + case ApiErrorType.badRequest: + return const Duration(seconds: 6); // Longer for validation errors + case ApiErrorType.rateLimit: + return const Duration(seconds: 8); // Longer for rate limits + default: + return const Duration(seconds: 4); + } + } + return const Duration(seconds: 4); + } +} + +/// Global instance for easy access +final enhancedErrorService = EnhancedErrorService(); diff --git a/lib/core/error/error_parser.dart b/lib/core/error/error_parser.dart new file mode 100644 index 0000000..6c0ab8f --- /dev/null +++ b/lib/core/error/error_parser.dart @@ -0,0 +1,405 @@ +import 'package:flutter/foundation.dart'; +import 'api_error.dart'; + +/// Comprehensive error response parser +/// Handles various API error response formats and extracts structured information +class ErrorParser { + /// Parse general error response from API + ParsedErrorResponse parseErrorResponse(dynamic responseData) { + if (responseData == null) { + return const ParsedErrorResponse(); + } + + try { + if (responseData is Map) { + return _parseErrorMap(responseData); + } else if (responseData is String) { + return _parseErrorString(responseData); + } else if (responseData is List) { + return _parseErrorList(responseData); + } else { + return ParsedErrorResponse( + message: 'Unexpected error format', + metadata: {'rawData': responseData.toString()}, + ); + } + } catch (e) { + debugPrint('ErrorParser: Error parsing response: $e'); + return ParsedErrorResponse( + message: 'Failed to parse error response', + metadata: { + 'parseError': e.toString(), + 'rawData': responseData.toString(), + }, + ); + } + } + + /// Parse validation error (422) with field-specific errors + ParsedErrorResponse parseValidationError(dynamic responseData) { + final baseResult = parseErrorResponse(responseData); + + if (responseData is Map) { + final fieldErrors = _extractFieldErrors(responseData); + + return ParsedErrorResponse( + message: baseResult.message ?? 'Validation failed', + code: baseResult.code, + errors: baseResult.errors, + fieldErrors: fieldErrors, + metadata: baseResult.metadata, + ); + } + + return baseResult; + } + + /// Parse error response from a Map (most common format) + ParsedErrorResponse _parseErrorMap(Map data) { + final message = _extractMessage(data); + final code = _extractCode(data); + final errors = _extractGeneralErrors(data); + final fieldErrors = _extractFieldErrors(data); + final metadata = _extractMetadata(data); + + return ParsedErrorResponse( + message: message, + code: code, + errors: errors, + fieldErrors: fieldErrors, + metadata: metadata, + ); + } + + /// Parse error response from a String + ParsedErrorResponse _parseErrorString(String data) { + return ParsedErrorResponse(message: data, metadata: {'format': 'string'}); + } + + /// Parse error response from a List + ParsedErrorResponse _parseErrorList(List data) { + final errors = []; + + for (final item in data) { + if (item is String) { + errors.add(item); + } else if (item is Map) { + final message = _extractMessage(item); + if (message != null) { + errors.add(message); + } + } else { + errors.add(item.toString()); + } + } + + return ParsedErrorResponse( + message: errors.isNotEmpty ? errors.first : 'Multiple errors occurred', + errors: errors, + metadata: {'format': 'list', 'count': data.length}, + ); + } + + /// Extract error message from various possible fields + String? _extractMessage(Map data) { + // Common error message fields in order of preference + const messageFields = [ + 'message', + 'error', + 'detail', + 'description', + 'msg', + 'error_description', + 'title', + 'summary', + ]; + + for (final field in messageFields) { + final value = data[field]; + if (value is String && value.isNotEmpty) { + return value; + } + } + + return null; + } + + /// Extract error code from response + String? _extractCode(Map data) { + const codeFields = [ + 'code', + 'error_code', + 'errorCode', + 'type', + 'error_type', + 'errorType', + ]; + + for (final field in codeFields) { + final value = data[field]; + if (value is String && value.isNotEmpty) { + return value; + } else if (value is int) { + return value.toString(); + } + } + + return null; + } + + /// Extract general error messages (non-field-specific) + List _extractGeneralErrors(Map data) { + final errors = []; + + // Check for error arrays + const errorArrayFields = ['errors', 'messages', 'details', 'issues']; + + for (final field in errorArrayFields) { + final value = data[field]; + if (value is List) { + for (final item in value) { + if (item is String && item.isNotEmpty) { + errors.add(item); + } else if (item is Map) { + final message = _extractMessage(item); + if (message != null) { + errors.add(message); + } + } + } + } + } + + return errors; + } + + /// Extract field-specific validation errors + Map> _extractFieldErrors(Map data) { + final fieldErrors = >{}; + + // Common patterns for field errors + _extractFromFieldErrorsObject(data, fieldErrors); + _extractFromValidationErrorsArray(data, fieldErrors); + _extractFromDetailsObject(data, fieldErrors); + _extractFromOpenAPIFormat(data, fieldErrors); + + return fieldErrors; + } + + /// Extract from 'field_errors' or 'fieldErrors' object + void _extractFromFieldErrorsObject( + Map data, + Map> fieldErrors, + ) { + const fieldErrorFields = [ + 'field_errors', + 'fieldErrors', + 'validation_errors', + 'validationErrors', + 'field_messages', + 'fieldMessages', + ]; + + for (final field in fieldErrorFields) { + final value = data[field]; + if (value is Map) { + for (final entry in value.entries) { + final fieldName = entry.key; + final fieldValue = entry.value; + + final errors = []; + if (fieldValue is String) { + errors.add(fieldValue); + } else if (fieldValue is List) { + for (final item in fieldValue) { + if (item is String) { + errors.add(item); + } else { + errors.add(item.toString()); + } + } + } + + if (errors.isNotEmpty) { + fieldErrors[fieldName] = errors; + } + } + } + } + } + + /// Extract from validation errors array format + void _extractFromValidationErrorsArray( + Map data, + Map> fieldErrors, + ) { + const arrayFields = ['errors', 'details', 'issues']; + + for (final field in arrayFields) { + final value = data[field]; + if (value is List) { + for (final item in value) { + if (item is Map) { + final field = + item['field'] as String? ?? + item['property'] as String? ?? + item['path'] as String?; + final message = _extractMessage(item); + + if (field != null && message != null) { + fieldErrors.putIfAbsent(field, () => []).add(message); + } + } + } + } + } + } + + /// Extract from 'details' object (common in some APIs) + void _extractFromDetailsObject( + Map data, + Map> fieldErrors, + ) { + final details = data['details']; + if (details is Map) { + for (final entry in details.entries) { + final fieldName = entry.key; + final fieldValue = entry.value; + + if (fieldValue is String) { + fieldErrors.putIfAbsent(fieldName, () => []).add(fieldValue); + } else if (fieldValue is List) { + final errors = fieldValue + .map((e) => e.toString()) + .where((s) => s.isNotEmpty) + .toList(); + if (errors.isNotEmpty) { + fieldErrors[fieldName] = errors; + } + } + } + } + } + + /// Extract from OpenAPI specification error format + void _extractFromOpenAPIFormat( + Map data, + Map> fieldErrors, + ) { + // OpenAPI validation errors often come in this format + final detail = data['detail']; + if (detail is List) { + for (final item in detail) { + if (item is Map) { + final loc = item['loc']; + final msg = item['msg'] as String?; + + if (loc is List && loc.isNotEmpty && msg != null) { + // Location can be like ['body', 'fieldName'] or ['fieldName'] + final fieldName = loc.last.toString(); + fieldErrors.putIfAbsent(fieldName, () => []).add(msg); + } + } + } + } + } + + /// Extract additional metadata from error response + Map _extractMetadata(Map data) { + final metadata = {}; + + // Common metadata fields + const metadataFields = [ + 'timestamp', + 'request_id', + 'requestId', + 'trace_id', + 'traceId', + 'correlation_id', + 'correlationId', + 'instance', + 'path', + 'method', + 'status', + 'documentation', + 'help', + 'support', + ]; + + for (final field in metadataFields) { + final value = data[field]; + if (value != null) { + metadata[field] = value; + } + } + + // Include any unrecognized fields as metadata + final recognizedFields = { + 'message', + 'error', + 'detail', + 'description', + 'msg', + 'error_description', + 'title', + 'summary', + 'code', + 'error_code', + 'errorCode', + 'type', + 'error_type', + 'errorType', + 'errors', + 'messages', + 'details', + 'issues', + 'field_errors', + 'fieldErrors', + 'validation_errors', + 'validationErrors', + 'field_messages', + 'fieldMessages', + ...metadataFields, + }; + + for (final entry in data.entries) { + if (!recognizedFields.contains(entry.key)) { + metadata[entry.key] = entry.value; + } + } + + return metadata; + } + + /// Convert field name from API format to user-friendly format + String formatFieldName(String fieldName) { + // Convert snake_case to human readable + if (fieldName.contains('_')) { + return fieldName + .split('_') + .map( + (word) => + word.isEmpty ? word : word[0].toUpperCase() + word.substring(1), + ) + .join(' '); + } + + // Convert camelCase to human readable + return fieldName + .replaceAllMapped(RegExp(r'([A-Z])'), (match) => ' ${match.group(1)}') + .trim(); + } + + /// Get user-friendly error message for a field + String formatFieldError(String fieldName, String error) { + final friendlyFieldName = formatFieldName(fieldName); + + // If error already mentions the field, don't duplicate it + if (error.toLowerCase().contains(fieldName.toLowerCase()) || + error.toLowerCase().contains(friendlyFieldName.toLowerCase())) { + return error; + } + + return '$friendlyFieldName: $error'; + } +} diff --git a/lib/core/models/chat_message.dart b/lib/core/models/chat_message.dart new file mode 100644 index 0000000..92eed78 --- /dev/null +++ b/lib/core/models/chat_message.dart @@ -0,0 +1,23 @@ +import 'package:freezed_annotation/freezed_annotation.dart'; + +part 'chat_message.freezed.dart'; +part 'chat_message.g.dart'; + +@freezed +sealed class ChatMessage with _$ChatMessage { + const factory ChatMessage({ + required String id, + required String role, // 'user', 'assistant', 'system' + required String content, + required DateTime timestamp, + String? model, + @Default(false) bool isStreaming, + List? attachmentIds, + Map? metadata, + List>? sources, + Map? usage, + }) = _ChatMessage; + + factory ChatMessage.fromJson(Map json) => + _$ChatMessageFromJson(json); +} diff --git a/lib/core/models/conversation.dart b/lib/core/models/conversation.dart new file mode 100644 index 0000000..62bb1e8 --- /dev/null +++ b/lib/core/models/conversation.dart @@ -0,0 +1,27 @@ +import 'package:freezed_annotation/freezed_annotation.dart'; +import 'chat_message.dart'; + +part 'conversation.freezed.dart'; +part 'conversation.g.dart'; + +@freezed +sealed class Conversation with _$Conversation { + const factory Conversation({ + required String id, + required String title, + required DateTime createdAt, + required DateTime updatedAt, + String? model, + String? systemPrompt, + @Default([]) List messages, + @Default({}) Map metadata, + @Default(false) bool pinned, + @Default(false) bool archived, + String? shareId, + String? folderId, + @Default([]) List tags, + }) = _Conversation; + + factory Conversation.fromJson(Map json) => + _$ConversationFromJson(json); +} diff --git a/lib/core/models/file_info.dart b/lib/core/models/file_info.dart new file mode 100644 index 0000000..e802a4b --- /dev/null +++ b/lib/core/models/file_info.dart @@ -0,0 +1,23 @@ +import 'package:freezed_annotation/freezed_annotation.dart'; + +part 'file_info.freezed.dart'; +part 'file_info.g.dart'; + +@freezed +sealed class FileInfo with _$FileInfo { + const factory FileInfo({ + required String id, + required String filename, + required String originalFilename, + required int size, + required String mimeType, + required DateTime createdAt, + required DateTime updatedAt, + String? userId, + String? hash, + Map? metadata, + }) = _FileInfo; + + factory FileInfo.fromJson(Map json) => + _$FileInfoFromJson(json); +} diff --git a/lib/core/models/folder.dart b/lib/core/models/folder.dart new file mode 100644 index 0000000..eba1306 --- /dev/null +++ b/lib/core/models/folder.dart @@ -0,0 +1,41 @@ +import 'package:freezed_annotation/freezed_annotation.dart'; + +part 'folder.freezed.dart'; +part 'folder.g.dart'; + +// Timestamp converter for Unix timestamps +class TimestampConverter implements JsonConverter { + const TimestampConverter(); + + @override + DateTime fromJson(dynamic json) { + if (json is String) { + return DateTime.parse(json); + } else if (json is int) { + return DateTime.fromMillisecondsSinceEpoch(json * 1000); + } else { + throw ArgumentError('Invalid date format: $json'); + } + } + + @override + dynamic toJson(DateTime object) { + return object.millisecondsSinceEpoch ~/ 1000; + } +} + +@freezed +sealed class Folder with _$Folder { + const factory Folder({ + required String id, + required String name, + @TimestampConverter() required DateTime createdAt, + @TimestampConverter() required DateTime updatedAt, + String? parentId, + @Default([]) List conversationIds, + @Default([]) List subfolders, + @Default({}) Map metadata, + }) = _Folder; + + factory Folder.fromJson(Map json) => _$FolderFromJson(json); +} diff --git a/lib/core/models/knowledge_base.dart b/lib/core/models/knowledge_base.dart new file mode 100644 index 0000000..e85aa2b --- /dev/null +++ b/lib/core/models/knowledge_base.dart @@ -0,0 +1,35 @@ +import 'package:freezed_annotation/freezed_annotation.dart'; + +part 'knowledge_base.freezed.dart'; +part 'knowledge_base.g.dart'; + +@freezed +sealed class KnowledgeBase with _$KnowledgeBase { + const factory KnowledgeBase({ + required String id, + required String name, + String? description, + required DateTime createdAt, + required DateTime updatedAt, + @Default(0) int itemCount, + @Default({}) Map metadata, + }) = _KnowledgeBase; + + factory KnowledgeBase.fromJson(Map json) => + _$KnowledgeBaseFromJson(json); +} + +@freezed +sealed class KnowledgeBaseItem with _$KnowledgeBaseItem { + const factory KnowledgeBaseItem({ + required String id, + required String content, + String? title, + required DateTime createdAt, + required DateTime updatedAt, + @Default({}) Map metadata, + }) = _KnowledgeBaseItem; + + factory KnowledgeBaseItem.fromJson(Map json) => + _$KnowledgeBaseItemFromJson(json); +} diff --git a/lib/core/models/model.dart b/lib/core/models/model.dart new file mode 100644 index 0000000..27d32f7 --- /dev/null +++ b/lib/core/models/model.dart @@ -0,0 +1,93 @@ +import 'package:freezed_annotation/freezed_annotation.dart'; + +part 'model.freezed.dart'; + +@freezed +sealed class Model with _$Model { + const Model._(); + + const factory Model({ + required String id, + required String name, + String? description, + @Default(false) bool isMultimodal, + @Default(false) bool supportsStreaming, + @Default(false) bool supportsRAG, + Map? capabilities, + Map? metadata, + List? supportedParameters, + }) = _Model; + + factory Model.fromJson(Map json) { + // Handle different response formats from OpenWebUI + + // Extract architecture info for capabilities + final architecture = json['architecture'] as Map?; + final modality = architecture?['modality'] as String?; + final inputModalities = architecture?['input_modalities'] as List?; + + // Determine if multimodal based on architecture + final isMultimodal = + modality?.contains('image') == true || + inputModalities?.contains('image') == true; + + // Extract supported parameters robustly (top-level or nested under provider keys) + List? supportedParams = + (json['supported_parameters'] as List?) ?? + (json['supportedParameters'] as List?); + + if (supportedParams == null) { + const providerKeys = [ + 'openai', + 'anthropic', + 'google', + 'meta', + 'mistral', + 'cohere', + 'xai', + 'perplexity', + 'deepseek', + 'groq', + ]; + for (final key in providerKeys) { + final provider = json[key] as Map?; + final list = + (provider?['supported_parameters'] as List?) ?? + (provider?['supportedParameters'] as List?); + if (list != null) { + supportedParams = list; + break; + } + } + } + + // Determine streaming support from supported parameters if known + final supportsStreaming = supportedParams?.contains('stream') ?? true; + + // Convert supported parameters to List if present + final supportedParamsList = supportedParams + ?.map((e) => e.toString()) + .toList(); + + return Model( + id: json['id'] as String, + name: json['name'] as String, + description: json['description'] as String?, + isMultimodal: isMultimodal, + supportsStreaming: supportsStreaming, + supportsRAG: json['supportsRAG'] as bool? ?? false, + supportedParameters: supportedParamsList, + capabilities: { + 'architecture': architecture, + 'pricing': json['pricing'], + 'context_length': json['context_length'], + 'supported_parameters': supportedParamsList ?? supportedParams, + }, + metadata: { + 'canonical_slug': json['canonical_slug'], + 'created': json['created'], + 'connection_type': json['connection_type'], + }, + ); + } +} diff --git a/lib/core/models/server_config.dart b/lib/core/models/server_config.dart new file mode 100644 index 0000000..bfa58d4 --- /dev/null +++ b/lib/core/models/server_config.dart @@ -0,0 +1,19 @@ +import 'package:freezed_annotation/freezed_annotation.dart'; + +part 'server_config.freezed.dart'; +part 'server_config.g.dart'; + +@freezed +sealed class ServerConfig with _$ServerConfig { + const factory ServerConfig({ + required String id, + required String name, + required String url, + String? apiKey, + DateTime? lastConnected, + @Default(false) bool isActive, + }) = _ServerConfig; + + factory ServerConfig.fromJson(Map json) => + _$ServerConfigFromJson(json); +} diff --git a/lib/core/models/user.dart b/lib/core/models/user.dart new file mode 100644 index 0000000..0500acd --- /dev/null +++ b/lib/core/models/user.dart @@ -0,0 +1,33 @@ +import 'package:freezed_annotation/freezed_annotation.dart'; + +part 'user.freezed.dart'; + +@freezed +sealed class User with _$User { + const User._(); + + const factory User({ + required String id, + required String username, + required String email, + String? name, + String? profileImage, + required String role, + @Default(true) bool isActive, + }) = _User; + + factory User.fromJson(Map json) { + // Handle different field names from OpenWebUI API + return User( + id: json['id'] as String? ?? '', + username: json['username'] as String? ?? json['name'] as String? ?? '', + email: json['email'] as String? ?? '', + name: json['name'] as String?, + profileImage: + json['profile_image_url'] as String? ?? + json['profileImage'] as String?, + role: json['role'] as String? ?? 'user', + isActive: json['is_active'] as bool? ?? json['isActive'] as bool? ?? true, + ); + } +} diff --git a/lib/core/models/user_settings.dart b/lib/core/models/user_settings.dart new file mode 100644 index 0000000..4f50a53 --- /dev/null +++ b/lib/core/models/user_settings.dart @@ -0,0 +1,40 @@ +import 'package:freezed_annotation/freezed_annotation.dart'; + +part 'user_settings.freezed.dart'; +part 'user_settings.g.dart'; + +@freezed +sealed class UserSettings with _$UserSettings { + const factory UserSettings({ + // Chat preferences + @Default(true) bool showReadReceipts, + @Default(true) bool enableNotifications, + @Default(false) bool enableSounds, + @Default('auto') String theme, // 'light', 'dark', 'auto' + // AI preferences + @Default(0.7) double temperature, + @Default(2048) int maxTokens, + @Default(false) bool streamResponses, + @Default(false) bool webSearchEnabled, + + // Privacy settings + @Default(true) bool saveConversations, + @Default(false) bool shareUsageData, + + // Interface preferences + @Default('comfortable') + String density, // 'compact', 'comfortable', 'spacious' + @Default(14.0) double fontSize, + @Default('en') String language, + + // Accessibility settings + @Default(false) bool reduceMotion, + @Default(true) bool hapticFeedback, + + // Advanced settings + @Default({}) Map customSettings, + }) = _UserSettings; + + factory UserSettings.fromJson(Map json) => + _$UserSettingsFromJson(json); +} diff --git a/lib/core/providers/app_providers.dart b/lib/core/providers/app_providers.dart new file mode 100644 index 0000000..4e95d3b --- /dev/null +++ b/lib/core/providers/app_providers.dart @@ -0,0 +1,750 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import '../services/storage_service.dart'; +// (removed duplicate) import '../services/optimized_storage_service.dart'; +import '../services/api_service.dart'; +import '../auth/auth_state_manager.dart'; +import '../../features/auth/providers/unified_auth_providers.dart'; +import '../services/attachment_upload_queue.dart'; +import '../models/server_config.dart'; +import '../models/user.dart'; +import '../models/model.dart'; +import '../models/conversation.dart'; +import '../models/user_settings.dart'; +import '../models/folder.dart'; +import '../models/file_info.dart'; +import '../models/knowledge_base.dart'; +import '../services/optimized_storage_service.dart'; + +// Storage providers +final sharedPreferencesProvider = Provider((ref) { + throw UnimplementedError(); +}); + +final secureStorageProvider = Provider((ref) { + return const FlutterSecureStorage(); +}); + +final storageServiceProvider = Provider((ref) { + return StorageService( + secureStorage: ref.watch(secureStorageProvider), + prefs: ref.watch(sharedPreferencesProvider), + ); +}); + +// Optimized storage service provider +final optimizedStorageServiceProvider = Provider(( + ref, +) { + return OptimizedStorageService( + secureStorage: ref.watch(secureStorageProvider), + prefs: ref.watch(sharedPreferencesProvider), + ); +}); + +// Theme provider +final themeModeProvider = StateNotifierProvider(( + ref, +) { + final storage = ref.watch(optimizedStorageServiceProvider); + return ThemeModeNotifier(storage); +}); + +class ThemeModeNotifier extends StateNotifier { + final OptimizedStorageService _storage; + + ThemeModeNotifier(this._storage) : super(ThemeMode.system) { + _loadTheme(); + } + + void _loadTheme() { + final mode = _storage.getThemeMode(); + if (mode != null) { + state = ThemeMode.values.firstWhere( + (e) => e.toString() == mode, + orElse: () => ThemeMode.system, + ); + } + } + + void setTheme(ThemeMode mode) { + state = mode; + _storage.setThemeMode(mode.toString()); + } +} + +// Server connection providers - optimized with caching +final serverConfigsProvider = FutureProvider>((ref) async { + final storage = ref.watch(optimizedStorageServiceProvider); + return storage.getServerConfigs(); +}); + +final activeServerProvider = FutureProvider((ref) async { + final storage = ref.watch(optimizedStorageServiceProvider); + final configs = await ref.watch(serverConfigsProvider.future); + final activeId = await storage.getActiveServerId(); + + if (activeId == null || configs.isEmpty) return null; + + return configs.firstWhere( + (config) => config.id == activeId, + orElse: () => configs.first, + ); +}); + +final serverConnectionStateProvider = Provider((ref) { + final activeServer = ref.watch(activeServerProvider); + return activeServer.maybeWhen( + data: (server) => server != null, + orElse: () => false, + ); +}); + +// API Service provider with unified auth integration +final apiServiceProvider = Provider((ref) { + // If reviewer mode is enabled, skip creating ApiService + final reviewerMode = ref.watch(reviewerModeProvider); + if (reviewerMode) { + return null; + } + final activeServer = ref.watch(activeServerProvider); + + return activeServer.maybeWhen( + data: (server) { + if (server == null) return null; + + final apiService = ApiService( + serverConfig: server, + authToken: null, // Will be set by auth state manager + ); + + // Keep callbacks in sync so interceptor can notify auth manager + apiService.setAuthCallbacks( + onAuthTokenInvalid: () {}, + onTokenInvalidated: () async { + final authManager = ref.read(authStateManagerProvider.notifier); + await authManager.onTokenInvalidated(); + }, + ); + + // Set up callback for unified auth state manager + // (legacy properties kept during transition) + apiService.onTokenInvalidated = () async { + final authManager = ref.read(authStateManagerProvider.notifier); + await authManager.onTokenInvalidated(); + }; + + // Keep legacy callback for backward compatibility during transition + apiService.onAuthTokenInvalid = () { + // This will be removed once migration is complete + debugPrint('DEBUG: Legacy auth invalidation callback triggered'); + }; + + // Initialize with any existing token immediately + final token = ref.read(authTokenProvider3); + if (token != null && token.isNotEmpty) { + apiService.updateAuthToken(token); + } + + return apiService; + }, + orElse: () => null, + ); +}); + +// Attachment upload queue provider +final attachmentUploadQueueProvider = Provider((ref) { + final api = ref.watch(apiServiceProvider); + if (api == null) return null; + + final queue = AttachmentUploadQueue(); + // Initialize once; subsequent calls are no-ops due to singleton + queue.initialize( + onUpload: (filePath, fileName) => api.uploadFile(filePath, fileName), + ); + + return queue; +}); + +// Auth providers +// Auth token integration with API service - using unified auth system +final apiTokenUpdaterProvider = Provider((ref) { + // Listen to unified auth token changes and update API service + ref.listen(authTokenProvider3, (previous, next) { + final api = ref.read(apiServiceProvider); + if (api != null && next != null && next.isNotEmpty) { + api.updateAuthToken(next); + debugPrint('DEBUG: Updated API service with unified auth token'); + } + }); +}); + +final currentUserProvider = FutureProvider((ref) async { + final api = ref.read(apiServiceProvider); + final isAuthenticated = ref.watch(isAuthenticatedProvider2); + + if (api == null || !isAuthenticated) return null; + + try { + return await api.getCurrentUser(); + } catch (e) { + return null; + } +}); + +// Helper provider to force refresh auth state - now using unified system +final refreshAuthStateProvider = Provider((ref) { + // This provider can be invalidated to force refresh the unified auth system + ref.read(refreshAuthProvider); + return; +}); + +// Model providers +final modelsProvider = FutureProvider>((ref) async { + // Reviewer mode returns mock models + final reviewerMode = ref.watch(reviewerModeProvider); + if (reviewerMode) { + return [ + const Model( + id: 'demo/gemma-2-mini', + name: 'Gemma 2 Mini (Demo)', + description: 'Demo model for reviewer mode', + isMultimodal: true, + supportsStreaming: true, + supportedParameters: ['max_tokens', 'stream'], + ), + const Model( + id: 'demo/llama-3-8b', + name: 'Llama 3 8B (Demo)', + description: 'Fast text model for demo', + isMultimodal: false, + supportsStreaming: true, + supportedParameters: ['max_tokens', 'stream'], + ), + ]; + } + final api = ref.watch(apiServiceProvider); + if (api == null) return []; + + try { + debugPrint('DEBUG: Fetching models from server'); + final models = await api.getModels(); + debugPrint('DEBUG: Successfully fetched ${models.length} models'); + return models; + } catch (e) { + debugPrint('ERROR: Failed to fetch models: $e'); + + // If models endpoint returns 403, this should now clear auth token + // and redirect user to login since it's marked as a core endpoint + if (e.toString().contains('403')) { + debugPrint( + 'DEBUG: Models endpoint returned 403 - authentication may be invalid', + ); + } + + return []; + } +}); + +final selectedModelProvider = StateProvider((ref) => null); + +// Conversation providers - Now using correct OpenWebUI API +final conversationsProvider = FutureProvider>((ref) async { + final reviewerMode = ref.watch(reviewerModeProvider); + if (reviewerMode) { + // Provide a simple local demo conversation list + return [ + Conversation( + id: 'demo-conv-1', + title: 'Welcome to Conduit (Demo)', + createdAt: DateTime.now().subtract(const Duration(minutes: 15)), + updatedAt: DateTime.now().subtract(const Duration(minutes: 10)), + messages: [], + ), + ]; + } + final api = ref.watch(apiServiceProvider); + if (api == null) { + debugPrint('DEBUG: No API service available'); + return []; + } + + try { + debugPrint('DEBUG: Fetching conversations from OpenWebUI API...'); + final conversations = await api.getConversations(limit: 50); + debugPrint( + 'DEBUG: Successfully fetched ${conversations.length} conversations', + ); + return conversations; + } catch (e, stackTrace) { + debugPrint('DEBUG: Error fetching conversations: $e'); + debugPrint('DEBUG: Stack trace: $stackTrace'); + + // If conversations endpoint returns 403, this should now clear auth token + // and redirect user to login since it's marked as a core endpoint + if (e.toString().contains('403')) { + debugPrint( + 'DEBUG: Conversations endpoint returned 403 - authentication may be invalid', + ); + } + + // Return empty list instead of re-throwing to allow app to continue functioning + return []; + } +}); + +final activeConversationProvider = StateProvider((ref) => null); + +// Provider to load full conversation with messages +final loadConversationProvider = FutureProvider.family(( + ref, + conversationId, +) async { + final api = ref.watch(apiServiceProvider); + if (api == null) { + throw Exception('No API service available'); + } + + debugPrint('DEBUG: Loading full conversation: $conversationId'); + final fullConversation = await api.getConversation(conversationId); + debugPrint( + 'DEBUG: Loaded conversation with ${fullConversation.messages.length} messages', + ); + + return fullConversation; +}); + +// Provider to automatically load and set the default model from OpenWebUI +final defaultModelProvider = FutureProvider((ref) async { + final api = ref.watch(apiServiceProvider); + if (api == null) return null; + + try { + // Get all available models first + final models = await ref.read(modelsProvider.future); + if (models.isEmpty) { + debugPrint('DEBUG: No models available'); + return null; + } + + // Check if a model is already selected + final currentSelected = ref.read(selectedModelProvider); + if (currentSelected != null) { + debugPrint('DEBUG: Model already selected: ${currentSelected.name}'); + return currentSelected; + } + + Model? selectedModel; + + // Try to get the server's default model configuration + try { + final defaultModelId = await api.getDefaultModel(); + + if (defaultModelId != null && defaultModelId.isNotEmpty) { + // Find the model that matches the default model ID + try { + selectedModel = models.firstWhere( + (model) => + model.id == defaultModelId || + model.name == defaultModelId || + model.id.contains(defaultModelId) || + model.name.contains(defaultModelId), + ); + debugPrint( + 'DEBUG: Found server default model: ${selectedModel.name}', + ); + } catch (e) { + debugPrint( + 'DEBUG: Default model "$defaultModelId" not found in available models', + ); + selectedModel = models.first; + } + } else { + // No server default, use first available model + selectedModel = models.first; + debugPrint( + 'DEBUG: No server default model, using first available: ${selectedModel.name}', + ); + } + } catch (apiError) { + debugPrint('DEBUG: Failed to get default model from server: $apiError'); + // Use first available model as fallback + selectedModel = models.first; + debugPrint( + 'DEBUG: Using first available model as fallback: ${selectedModel.name}', + ); + } + + // Set the selected model + ref.read(selectedModelProvider.notifier).state = selectedModel; + debugPrint('DEBUG: Set default model: ${selectedModel.name}'); + + return selectedModel; + } catch (e) { + debugPrint('DEBUG: Error setting default model: $e'); + + // Final fallback: try to select any available model + try { + final models = await ref.read(modelsProvider.future); + if (models.isNotEmpty) { + final fallbackModel = models.first; + ref.read(selectedModelProvider.notifier).state = fallbackModel; + debugPrint( + 'DEBUG: Fallback to first available model: ${fallbackModel.name}', + ); + return fallbackModel; + } + } catch (fallbackError) { + debugPrint('DEBUG: Error in fallback model selection: $fallbackError'); + } + + return null; + } +}); + +// Background model loading provider that doesn't block UI +// This just schedules the loading, doesn't wait for it +final backgroundModelLoadProvider = Provider((ref) { + // Ensure API token updater is initialized + ref.watch(apiTokenUpdaterProvider); + + // Schedule background loading without blocking + Future.microtask(() async { + // Wait a bit to ensure auth is complete + await Future.delayed(const Duration(milliseconds: 1500)); + + debugPrint('DEBUG: Starting background model loading'); + + // Load default model in background + try { + await ref.read(defaultModelProvider.future); + debugPrint('DEBUG: Background model loading completed'); + } catch (e) { + // Ignore errors in background loading + debugPrint('DEBUG: Background model loading failed: $e'); + } + }); + + // Return immediately, don't block the UI + return; +}); + +// Search query provider +final searchQueryProvider = StateProvider((ref) => ''); + +// Server-side search provider for chats +final serverSearchProvider = FutureProvider.family, String>(( + ref, + query, +) async { + if (query.trim().isEmpty) { + // Return empty list for empty query instead of all conversations + return []; + } + + final api = ref.watch(apiServiceProvider); + if (api == null) return []; + + try { + debugPrint('DEBUG: Performing server-side search for: "$query"'); + + // Use the new server-side search API + final searchResult = await api.searchChats( + query: query.trim(), + archived: false, // Only search non-archived conversations + limit: 50, + sortBy: 'updated_at', + sortOrder: 'desc', + ); + + // Extract conversations from search result + final List conversationsData = searchResult['conversations'] ?? []; + + // Convert to Conversation objects + final List conversations = conversationsData.map((data) { + return Conversation.fromJson(data as Map); + }).toList(); + + debugPrint('DEBUG: Server search returned ${conversations.length} results'); + return conversations; + } catch (e) { + debugPrint('DEBUG: Server search failed, fallback to local: $e'); + + // Fallback to local search if server search fails + final allConversations = await ref.read(conversationsProvider.future); + return allConversations.where((conv) { + return !conv.archived && + (conv.title.toLowerCase().contains(query.toLowerCase()) || + conv.messages.any( + (msg) => + msg.content.toLowerCase().contains(query.toLowerCase()), + )); + }).toList(); + } +}); + +final filteredConversationsProvider = Provider>((ref) { + final conversations = ref.watch(conversationsProvider); + final query = ref.watch(searchQueryProvider); + + // Use server-side search when there's a query + if (query.trim().isNotEmpty) { + final searchResults = ref.watch(serverSearchProvider(query)); + return searchResults.maybeWhen( + data: (results) => results, + loading: () { + // While server search is loading, show local filtered results + return conversations.maybeWhen( + data: (convs) => convs.where((conv) { + return !conv.archived && + (conv.title.toLowerCase().contains(query.toLowerCase()) || + conv.messages.any( + (msg) => msg.content.toLowerCase().contains( + query.toLowerCase(), + ), + )); + }).toList(), + orElse: () => [], + ); + }, + error: (_, stackTrace) { + // On error, fallback to local search + return conversations.maybeWhen( + data: (convs) => convs.where((conv) { + return !conv.archived && + (conv.title.toLowerCase().contains(query.toLowerCase()) || + conv.messages.any( + (msg) => msg.content.toLowerCase().contains( + query.toLowerCase(), + ), + )); + }).toList(), + orElse: () => [], + ); + }, + orElse: () => [], + ); + } + + // When no search query, show all non-archived conversations + return conversations.maybeWhen( + data: (convs) { + if (ref.watch(reviewerModeProvider)) { + return convs; // Already filtered above for demo + } + // Filter out archived conversations (they should be in a separate view) + final filtered = convs.where((conv) => !conv.archived).toList(); + + // Sort: pinned conversations first, then by updated date + filtered.sort((a, b) { + // Pinned conversations come first + if (a.pinned && !b.pinned) return -1; + if (!a.pinned && b.pinned) return 1; + + // Within same pin status, sort by updated date (newest first) + return b.updatedAt.compareTo(a.updatedAt); + }); + + return filtered; + }, + orElse: () => [], + ); +}); + +// Provider for archived conversations +final archivedConversationsProvider = Provider>((ref) { + final conversations = ref.watch(conversationsProvider); + + return conversations.maybeWhen( + data: (convs) { + if (ref.watch(reviewerModeProvider)) { + return convs.where((c) => c.archived).toList(); + } + // Only show archived conversations + final archived = convs.where((conv) => conv.archived).toList(); + + // Sort by updated date (newest first) + archived.sort((a, b) => b.updatedAt.compareTo(a.updatedAt)); + + return archived; + }, + orElse: () => [], + ); +}); + +// Reviewer mode provider (persisted) +final reviewerModeProvider = StateNotifierProvider( + (ref) => ReviewerModeNotifier(ref.watch(optimizedStorageServiceProvider)), +); + +class ReviewerModeNotifier extends StateNotifier { + final OptimizedStorageService _storage; + ReviewerModeNotifier(this._storage) : super(false) { + _load(); + } + Future _load() async { + final enabled = await _storage.getReviewerMode(); + state = enabled; + } + + Future setEnabled(bool enabled) async { + state = enabled; + await _storage.setReviewerMode(enabled); + } + + Future toggle() => setEnabled(!state); +} + +// User Settings providers +final userSettingsProvider = FutureProvider((ref) async { + final api = ref.watch(apiServiceProvider); + if (api == null) { + // Return default settings if no API + return const UserSettings(); + } + + try { + final settingsData = await api.getUserSettings(); + return UserSettings.fromJson(settingsData); + } catch (e) { + debugPrint('DEBUG: Error fetching user settings: $e'); + // Return default settings on error + return const UserSettings(); + } +}); + +// Server Banners provider +final serverBannersProvider = FutureProvider>>(( + ref, +) async { + final api = ref.watch(apiServiceProvider); + if (api == null) return []; + + try { + return await api.getBanners(); + } catch (e) { + debugPrint('DEBUG: Error fetching banners: $e'); + return []; + } +}); + +// Conversation Suggestions provider +final conversationSuggestionsProvider = FutureProvider>(( + ref, +) async { + final api = ref.watch(apiServiceProvider); + if (api == null) return []; + + try { + return await api.getSuggestions(); + } catch (e) { + debugPrint('DEBUG: Error fetching suggestions: $e'); + return []; + } +}); + +// Folders provider +final foldersProvider = FutureProvider>((ref) async { + final api = ref.watch(apiServiceProvider); + if (api == null) return []; + + try { + final foldersData = await api.getFolders(); + return foldersData + .map((folderData) => Folder.fromJson(folderData)) + .toList(); + } catch (e) { + debugPrint('DEBUG: Error fetching folders: $e'); + return []; + } +}); + +// Files provider +final userFilesProvider = FutureProvider>((ref) async { + final api = ref.watch(apiServiceProvider); + if (api == null) return []; + + try { + final filesData = await api.getUserFiles(); + return filesData.map((fileData) => FileInfo.fromJson(fileData)).toList(); + } catch (e) { + debugPrint('DEBUG: Error fetching files: $e'); + return []; + } +}); + +// File content provider +final fileContentProvider = FutureProvider.family(( + ref, + fileId, +) async { + final api = ref.watch(apiServiceProvider); + if (api == null) throw Exception('No API service available'); + + try { + return await api.getFileContent(fileId); + } catch (e) { + debugPrint('DEBUG: Error fetching file content: $e'); + throw Exception('Failed to load file content: $e'); + } +}); + +// Knowledge Base providers +final knowledgeBasesProvider = FutureProvider>((ref) async { + final api = ref.watch(apiServiceProvider); + if (api == null) return []; + + try { + final kbData = await api.getKnowledgeBases(); + return kbData.map((data) => KnowledgeBase.fromJson(data)).toList(); + } catch (e) { + debugPrint('DEBUG: Error fetching knowledge bases: $e'); + return []; + } +}); + +final knowledgeBaseItemsProvider = + FutureProvider.family, String>((ref, kbId) async { + final api = ref.watch(apiServiceProvider); + if (api == null) return []; + + try { + final itemsData = await api.getKnowledgeBaseItems(kbId); + return itemsData + .map((data) => KnowledgeBaseItem.fromJson(data)) + .toList(); + } catch (e) { + debugPrint('DEBUG: Error fetching knowledge base items: $e'); + return []; + } + }); + +// Audio providers +final availableVoicesProvider = FutureProvider>((ref) async { + final api = ref.watch(apiServiceProvider); + if (api == null) return []; + + try { + return await api.getAvailableVoices(); + } catch (e) { + debugPrint('DEBUG: Error fetching voices: $e'); + return []; + } +}); + +// Image Generation providers +final imageModelsProvider = FutureProvider>>(( + ref, +) async { + final api = ref.watch(apiServiceProvider); + if (api == null) return []; + + try { + return await api.getImageModels(); + } catch (e) { + debugPrint('DEBUG: Error fetching image models: $e'); + return []; + } +}); diff --git a/lib/core/services/animation_service.dart b/lib/core/services/animation_service.dart new file mode 100644 index 0000000..960ebc0 --- /dev/null +++ b/lib/core/services/animation_service.dart @@ -0,0 +1,278 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import '../../shared/theme/theme_extensions.dart'; + +/// Service for managing animations with performance optimization and accessibility +class AnimationService { + /// Get optimized animation duration based on context and settings + static Duration getOptimizedDuration( + BuildContext context, + Duration defaultDuration, { + bool respectReducedMotion = true, + }) { + if (respectReducedMotion && MediaQuery.of(context).disableAnimations) { + return Duration.zero; + } + + // Optimize for 60fps - keep animations under 300ms for snappy feel + final optimizedDuration = Duration( + milliseconds: (defaultDuration.inMilliseconds * 0.8).round().clamp( + 100, + 300, + ), + ); + + return optimizedDuration; + } + + /// Get optimized curve for smooth 60fps animations + static Curve getOptimizedCurve({Curve defaultCurve = Curves.easeInOut}) { + // Use curves that are optimized for mobile performance + final curveType = defaultCurve.runtimeType.toString(); + + // Replace performance-heavy curves with lighter alternatives + if (curveType.contains('Bounce')) { + return Curves.easeInOutQuart; // Replace heavy bounce with smooth curve + } else if (curveType.contains('Elastic')) { + return Curves.easeInOutBack; // Lighter alternative to elastic + } else if (defaultCurve == Curves.easeInOut) { + return Curves.easeInOutCubic; // Better performance than default + } + + return defaultCurve; + } + + /// Create performant fade transition + static Widget createOptimizedFadeTransition({ + required Widget child, + required Animation animation, + Duration? duration, + }) { + return FadeTransition(opacity: animation, child: child); + } + + /// Create performant slide transition + static Widget createOptimizedSlideTransition({ + required Widget child, + required Animation animation, + Duration? duration, + }) { + return SlideTransition(position: animation, child: child); + } + + /// Create performant scale transition + static Widget createOptimizedScaleTransition({ + required Widget child, + required Animation animation, + Duration? duration, + }) { + return ScaleTransition(scale: animation, child: child); + } + + /// Create optimized page transition + static PageRouteBuilder createOptimizedPageRoute({ + required Widget page, + Duration? transitionDuration, + PageTransitionType type = PageTransitionType.slide, + }) { + return PageRouteBuilder( + pageBuilder: (context, animation, secondaryAnimation) => page, + transitionDuration: + transitionDuration ?? const Duration(milliseconds: 250), + reverseTransitionDuration: + transitionDuration ?? const Duration(milliseconds: 200), + transitionsBuilder: (context, animation, secondaryAnimation, child) { + final optimizedCurve = getOptimizedCurve(); + final curvedAnimation = CurvedAnimation( + parent: animation, + curve: optimizedCurve, + ); + + switch (type) { + case PageTransitionType.fade: + return FadeTransition(opacity: curvedAnimation, child: child); + case PageTransitionType.slide: + return SlideTransition( + position: Tween( + begin: const Offset(1.0, 0.0), + end: Offset.zero, + ).animate(curvedAnimation), + child: child, + ); + case PageTransitionType.scale: + return ScaleTransition( + scale: Tween( + begin: 0.8, + end: 1.0, + ).animate(curvedAnimation), + child: FadeTransition(opacity: curvedAnimation, child: child), + ); + } + }, + ); + } + + /// Create staggered animation for lists + static Widget createStaggeredListAnimation({ + required Widget child, + required int index, + Duration? delay, + Duration? duration, + }) { + return TweenAnimationBuilder( + tween: Tween(begin: 0, end: 1), + duration: duration ?? const Duration(milliseconds: 200), + curve: getOptimizedCurve(), + builder: (context, value, child) { + return Transform.translate( + offset: Offset(0, 20 * (1 - value)), + child: Opacity(opacity: value, child: child), + ); + }, + child: child, + ); + } + + /// Create performant shimmer animation + static Widget createOptimizedShimmer({ + required Widget child, + Duration? duration, + Color? baseColor, + Color? highlightColor, + }) { + return TweenAnimationBuilder( + tween: Tween(begin: 0, end: 1), + duration: duration ?? const Duration(milliseconds: 1500), + curve: Curves.linear, + builder: (context, value, child) { + return ShaderMask( + shaderCallback: (bounds) { + return LinearGradient( + begin: Alignment.centerLeft, + end: Alignment.centerRight, + colors: [ + baseColor ?? context.conduitTheme.shimmerBase, + highlightColor ?? context.conduitTheme.shimmerHighlight, + baseColor ?? context.conduitTheme.shimmerBase, + ], + stops: [0.0, value, 1.0], + ).createShader(bounds); + }, + child: child, + ); + }, + child: child, + ); + } + + /// Create optimized rotation animation + static Widget createOptimizedRotation({ + required Widget child, + required Animation animation, + double turns = 1.0, + }) { + return RotationTransition( + turns: Tween(begin: 0, end: turns).animate(animation), + child: child, + ); + } + + /// Check if device can handle complex animations + static bool canHandleComplexAnimations(BuildContext context) { + // Simple heuristic based on screen density and platform + final devicePixelRatio = MediaQuery.of(context).devicePixelRatio; + final screenSize = MediaQuery.of(context).size; + final totalPixels = screenSize.width * screenSize.height * devicePixelRatio; + + // If total pixels exceed 4M, assume it's a high-end device + return totalPixels > 4000000; + } + + /// Create adaptive animation based on device capability + static Widget createAdaptiveAnimation({ + required BuildContext context, + required Widget child, + required Widget Function(Widget) complexAnimation, + required Widget Function(Widget) simpleAnimation, + }) { + if (canHandleComplexAnimations(context) && + !MediaQuery.of(context).disableAnimations) { + return complexAnimation(child); + } else { + return simpleAnimation(child); + } + } +} + +/// Enum for page transition types +enum PageTransitionType { fade, slide, scale } + +/// Provider for reduced motion preference +final reducedMotionProvider = StateProvider((ref) => false); + +/// Provider for animation performance settings +final animationPerformanceProvider = StateProvider((ref) { + return AnimationPerformance.adaptive; +}); + +/// Animation performance levels +enum AnimationPerformance { + high, // All animations enabled + adaptive, // Adaptive based on device + reduced, // Simplified animations + minimal, // Essential animations only +} + +/// Provider for managing animation settings +final animationSettingsProvider = + StateNotifierProvider( + (ref) => AnimationSettingsNotifier(), + ); + +class AnimationSettings { + final bool reduceMotion; + final AnimationPerformance performance; + final double animationSpeed; + + const AnimationSettings({ + this.reduceMotion = false, + this.performance = AnimationPerformance.adaptive, + this.animationSpeed = 1.0, + }); + + AnimationSettings copyWith({ + bool? reduceMotion, + AnimationPerformance? performance, + double? animationSpeed, + }) { + return AnimationSettings( + reduceMotion: reduceMotion ?? this.reduceMotion, + performance: performance ?? this.performance, + animationSpeed: animationSpeed ?? this.animationSpeed, + ); + } +} + +class AnimationSettingsNotifier extends StateNotifier { + AnimationSettingsNotifier() : super(const AnimationSettings()); + + void setReduceMotion(bool reduce) { + state = state.copyWith(reduceMotion: reduce); + } + + void setPerformance(AnimationPerformance performance) { + state = state.copyWith(performance: performance); + } + + void setAnimationSpeed(double speed) { + state = state.copyWith(animationSpeed: speed.clamp(0.5, 2.0)); + } + + Duration adjustDuration(Duration baseDuration) { + if (state.reduceMotion) return Duration.zero; + + final adjustedMs = (baseDuration.inMilliseconds / state.animationSpeed) + .round(); + return Duration(milliseconds: adjustedMs); + } +} diff --git a/lib/core/services/api_service.dart b/lib/core/services/api_service.dart new file mode 100644 index 0000000..d7d375f --- /dev/null +++ b/lib/core/services/api_service.dart @@ -0,0 +1,3522 @@ +import 'dart:async'; +import 'dart:convert'; +import 'dart:io'; +import 'package:flutter/foundation.dart'; +import 'package:dio/dio.dart'; +import 'package:http_parser/http_parser.dart'; +import 'package:web_socket_channel/web_socket_channel.dart'; +import 'package:socket_io_client/socket_io_client.dart' as io; +import 'package:uuid/uuid.dart'; +import '../models/server_config.dart'; +import '../models/user.dart'; +import '../models/model.dart'; +import '../models/conversation.dart'; +import '../models/chat_message.dart'; +import '../auth/api_auth_interceptor.dart'; +import '../validation/validation_interceptor.dart'; +import '../error/api_error_interceptor.dart'; + +class ApiService { + final Dio _dio; + final ServerConfig serverConfig; + late final ApiAuthInterceptor _authInterceptor; + WebSocketChannel? _wsChannel; + io.Socket? _socket; + + // Callback to notify when auth token becomes invalid + void Function()? onAuthTokenInvalid; + + // New callback for the unified auth state manager + Future Function()? onTokenInvalidated; + + ApiService({required this.serverConfig, String? authToken}) + : _dio = Dio( + BaseOptions( + baseUrl: serverConfig.url, + connectTimeout: const Duration(seconds: 30), + receiveTimeout: const Duration(seconds: 30), + followRedirects: true, + maxRedirects: 5, + validateStatus: (status) => status != null && status < 400, + ), + ) { + // Initialize the consistent auth interceptor + _authInterceptor = ApiAuthInterceptor( + authToken: authToken, + onAuthTokenInvalid: onAuthTokenInvalid, + onTokenInvalidated: onTokenInvalidated, + ); + + // Add interceptors in order of priority: + // 1. Auth interceptor (must be first to add auth headers) + _dio.interceptors.add(_authInterceptor); + + // 2. Validation interceptor (validates requests/responses against OpenAPI schema) + final validationInterceptor = ValidationInterceptor( + enableRequestValidation: true, + enableResponseValidation: true, + throwOnValidationError: false, // Don't throw, just log validation issues + logValidationResults: kDebugMode, + ); + _dio.interceptors.add(validationInterceptor); + + // 3. Error handling interceptor (transforms errors to standardized format) + _dio.interceptors.add( + ApiErrorInterceptor( + logErrors: kDebugMode, + throwApiErrors: true, // Transform DioExceptions to include ApiError + ), + ); + + // 4. Logging interceptor for debugging (should be last to see final requests/responses) + if (kDebugMode) { + _dio.interceptors.add( + LogInterceptor( + requestBody: true, + responseBody: false, // Don't log response bodies to reduce noise + requestHeader: true, + responseHeader: false, + error: true, + logPrint: (obj) => debugPrint('API: $obj'), + ), + ); + } + + // Initialize validation interceptor asynchronously + validationInterceptor.initialize().catchError((error) { + debugPrint( + 'ApiService: Failed to initialize validation interceptor: $error', + ); + }); + } + + void updateAuthToken(String token) { + _authInterceptor.updateAuthToken(token); + } + + String? get authToken => _authInterceptor.authToken; + + /// Ensure interceptor callbacks stay in sync if they are set after construction + void setAuthCallbacks({ + void Function()? onAuthTokenInvalid, + Future Function()? onTokenInvalidated, + }) { + if (onAuthTokenInvalid != null) { + this.onAuthTokenInvalid = onAuthTokenInvalid; + _authInterceptor.onAuthTokenInvalid = onAuthTokenInvalid; + } + if (onTokenInvalidated != null) { + this.onTokenInvalidated = onTokenInvalidated; + _authInterceptor.onTokenInvalidated = onTokenInvalidated; + } + } + + // Health check + Future checkHealth() async { + try { + final response = await _dio.get('/health'); + return response.statusCode == 200; + } catch (e) { + return false; + } + } + + // Enhanced health check with model availability + Future> checkServerStatus() async { + final result = { + 'healthy': false, + 'modelsAvailable': false, + 'modelCount': 0, + 'error': null, + }; + + try { + // Check basic health + final healthResponse = await _dio.get('/health'); + result['healthy'] = healthResponse.statusCode == 200; + + if (result['healthy']) { + // Check model availability + try { + final modelsResponse = await _dio.get('/api/models'); + final models = modelsResponse.data['data'] as List?; + result['modelsAvailable'] = models != null && models.isNotEmpty; + result['modelCount'] = models?.length ?? 0; + } catch (e) { + debugPrint('DEBUG: Error checking models: $e'); + result['modelsAvailable'] = false; + } + } + } catch (e) { + result['error'] = e.toString(); + debugPrint('DEBUG: Server status check failed: $e'); + } + + return result; + } + + // Authentication + Future> login(String username, String password) async { + try { + debugPrint( + 'DEBUG: Attempting login to ${serverConfig.url}/api/v1/auths/signin', + ); + final response = await _dio.post( + '/api/v1/auths/signin', + data: {'email': username, 'password': password}, + ); + debugPrint('DEBUG: Login successful, status: ${response.statusCode}'); + return response.data; + } catch (e) { + if (e is DioException) { + debugPrint('DEBUG: Login DioException: ${e.type}'); + debugPrint('DEBUG: Response status: ${e.response?.statusCode}'); + debugPrint('DEBUG: Response headers: ${e.response?.headers}'); + debugPrint('DEBUG: Request URL: ${e.requestOptions.uri}'); + + // Handle specific redirect cases + if (e.response?.statusCode == 307 || e.response?.statusCode == 308) { + final location = e.response?.headers.value('location'); + if (location != null) { + debugPrint('DEBUG: Server redirecting to: $location'); + throw Exception( + 'Server redirect detected. Please check your server URL configuration. Redirect to: $location', + ); + } + } + } + rethrow; + } + } + + Future logout() async { + await _dio.get('/api/v1/auths/signout'); + } + + // User info + Future getCurrentUser() async { + final response = await _dio.get('/api/v1/auths/'); + debugPrint('DEBUG: /api/v1/auths/ response: ${jsonEncode(response.data)}'); + return User.fromJson(response.data); + } + + // Models + Future> getModels() async { + final response = await _dio.get('/api/models'); + debugPrint('DEBUG: /api/models raw response: ${jsonEncode(response.data)}'); + + // Handle different response formats + List models; + if (response.data is Map && response.data['data'] != null) { + // Response is wrapped in a 'data' field + models = response.data['data'] as List; + } else if (response.data is List) { + // Response is a direct array + models = response.data as List; + } else { + debugPrint('ERROR: Unexpected models response format'); + return []; + } + + debugPrint('DEBUG: Found ${models.length} models'); + return models.map((m) => Model.fromJson(m)).toList(); + } + + // Get default model configuration from OpenWebUI user settings + Future getDefaultModel() async { + try { + debugPrint('DEBUG: Fetching default model from user settings'); + final response = await _dio.get('/api/v1/users/user/settings'); + + debugPrint('DEBUG: User settings response: ${jsonEncode(response.data)}'); + + final settings = response.data as Map; + + // Extract default model from ui.models array + final ui = settings['ui'] as Map?; + if (ui != null) { + final models = ui['models'] as List?; + if (models != null && models.isNotEmpty) { + // Return the first model in the user's preferred models list + final defaultModel = models.first.toString(); + debugPrint( + 'DEBUG: Found default model from user settings: $defaultModel', + ); + return defaultModel; + } + } + + debugPrint('DEBUG: No default model found in user settings'); + return null; + } catch (e) { + debugPrint('DEBUG: Error fetching default model from user settings: $e'); + // Fall back to trying the old endpoint + try { + debugPrint('DEBUG: Falling back to configs/models endpoint'); + final response = await _dio.get('/api/v1/configs/models'); + final config = response.data as Map; + + final defaultModel = + config['DEFAULT_MODELS'] as String? ?? + config['default_models'] as String? ?? + config['default_model'] as String?; + + if (defaultModel != null && defaultModel.isNotEmpty) { + debugPrint('DEBUG: Found default model from fallback: $defaultModel'); + return defaultModel; + } + } catch (fallbackError) { + debugPrint('DEBUG: Fallback also failed: $fallbackError'); + } + + return null; + } + } + + // Conversations - Updated to use correct OpenWebUI API + Future> getConversations({int? limit, int? skip}) async { + debugPrint('DEBUG: Fetching conversations from OpenWebUI API'); + debugPrint('DEBUG: Making request to ${serverConfig.url}/api/v1/chats/'); + debugPrint('DEBUG: Auth token present: ${authToken != null}'); + + // Fetch regular, pinned, and archived conversations + final regularResponse = await _dio.get( + '/api/v1/chats/', + queryParameters: { + if (limit != null && limit > 0) + 'page': ((skip ?? 0) / limit) + .floor(), // OpenWebUI uses page-based pagination with proper bounds checking + }, + ); + + final pinnedResponse = await _dio.get('/api/v1/chats/pinned'); + final archivedResponse = await _dio.get('/api/v1/chats/all/archived'); + + debugPrint('DEBUG: Regular response status: ${regularResponse.statusCode}'); + debugPrint('DEBUG: Pinned response status: ${pinnedResponse.statusCode}'); + debugPrint( + 'DEBUG: Archived response status: ${archivedResponse.statusCode}', + ); + + if (regularResponse.data is! List) { + throw Exception( + 'Expected array of chats, got ${regularResponse.data.runtimeType}', + ); + } + + if (pinnedResponse.data is! List) { + throw Exception( + 'Expected array of pinned chats, got ${pinnedResponse.data.runtimeType}', + ); + } + + if (archivedResponse.data is! List) { + throw Exception( + 'Expected array of archived chats, got ${archivedResponse.data.runtimeType}', + ); + } + + final regularChatList = regularResponse.data as List; + final pinnedChatList = pinnedResponse.data as List; + final archivedChatList = archivedResponse.data as List; + + debugPrint('DEBUG: Found ${regularChatList.length} regular chats'); + debugPrint('DEBUG: Found ${pinnedChatList.length} pinned chats'); + debugPrint('DEBUG: Found ${archivedChatList.length} archived chats'); + + // Convert OpenWebUI chat format to our Conversation format + final conversations = []; + final pinnedIds = {}; + final archivedIds = {}; + + // Process pinned conversations first + for (final chatData in pinnedChatList) { + try { + final conversation = _parseOpenWebUIChat(chatData); + // Create a new conversation instance with pinned=true + final pinnedConversation = conversation.copyWith(pinned: true); + conversations.add(pinnedConversation); + pinnedIds.add(conversation.id); + } catch (e) { + debugPrint('DEBUG: Error parsing pinned chat ${chatData['id']}: $e'); + } + } + + // Process archived conversations + for (final chatData in archivedChatList) { + try { + final conversation = _parseOpenWebUIChat(chatData); + // Create a new conversation instance with archived=true + final archivedConversation = conversation.copyWith(archived: true); + conversations.add(archivedConversation); + archivedIds.add(conversation.id); + } catch (e) { + debugPrint('DEBUG: Error parsing archived chat ${chatData['id']}: $e'); + } + } + + // Process regular conversations (excluding pinned and archived ones) + for (final chatData in regularChatList) { + try { + final conversation = _parseOpenWebUIChat(chatData); + // Only add if not already added as pinned or archived + if (!pinnedIds.contains(conversation.id) && + !archivedIds.contains(conversation.id)) { + conversations.add(conversation); + } + } catch (e) { + debugPrint('DEBUG: Error parsing chat ${chatData['id']}: $e'); + // Continue with other chats even if one fails + } + } + + debugPrint( + 'DEBUG: Successfully parsed ${conversations.length} conversations (${pinnedIds.length} pinned, ${archivedIds.length} archived)', + ); + return conversations; + } + + // Helper method to safely parse timestamps + DateTime _parseTimestamp(dynamic timestamp) { + if (timestamp == null) return DateTime.now(); + + if (timestamp is int) { + // OpenWebUI uses Unix timestamps in seconds + // Check if it's already in milliseconds (13 digits) or seconds (10 digits) + final timestampMs = timestamp > 1000000000000 + ? timestamp + : timestamp * 1000; + return DateTime.fromMillisecondsSinceEpoch(timestampMs); + } + + if (timestamp is String) { + final parsed = int.tryParse(timestamp); + if (parsed != null) { + final timestampMs = parsed > 1000000000000 ? parsed : parsed * 1000; + return DateTime.fromMillisecondsSinceEpoch(timestampMs); + } + } + + return DateTime.now(); // Fallback to current time + } + + // Parse OpenWebUI chat format to our Conversation format + Conversation _parseOpenWebUIChat(Map chatData) { + // OpenWebUI ChatTitleIdResponse format: + // { + // "id": "string", + // "title": "string", + // "updated_at": integer (timestamp), + // "created_at": integer (timestamp), + // "pinned": boolean (optional), + // "archived": boolean (optional), + // "share_id": string (optional), + // "folder_id": string (optional) + // } + + final id = chatData['id'] as String; + final title = chatData['title'] as String; + + // Safely parse timestamps with validation + // Try both snake_case and camelCase field names + final updatedAtRaw = chatData['updated_at'] ?? chatData['updatedAt']; + final createdAtRaw = chatData['created_at'] ?? chatData['createdAt']; + + final updatedAt = _parseTimestamp(updatedAtRaw); + final createdAt = _parseTimestamp(createdAtRaw); + + // Parse additional OpenWebUI fields + // The API response might not include these fields, so we need to handle them safely + final pinned = chatData['pinned'] as bool? ?? false; + final archived = chatData['archived'] as bool? ?? false; + final shareId = chatData['share_id'] as String?; + final folderId = chatData['folder_id'] as String?; + + debugPrint( + 'DEBUG: Parsed conversation $id: pinned=$pinned, archived=$archived', + ); + + // For the list endpoint, we don't get the full chat messages + // We'll need to fetch individual chats later if needed + return Conversation( + id: id, + title: title, + createdAt: createdAt, + updatedAt: updatedAt, + pinned: pinned, + archived: archived, + shareId: shareId, + folderId: folderId, + messages: [], // Empty for now, will be loaded when chat is opened + ); + } + + Future getConversation(String id) async { + debugPrint('DEBUG: Fetching individual chat: $id'); + final response = await _dio.get('/api/v1/chats/$id'); + + debugPrint('DEBUG: Chat response: ${response.data}'); + + // Parse OpenWebUI ChatResponse format + final chatData = response.data as Map; + return _parseFullOpenWebUIChat(chatData); + } + + // Parse full OpenWebUI chat with messages + Conversation _parseFullOpenWebUIChat(Map chatData) { + final id = chatData['id'] as String; + final title = chatData['title'] as String; + + // Safely parse timestamps with validation + final updatedAt = _parseTimestamp(chatData['updated_at']); + final createdAt = _parseTimestamp(chatData['created_at']); + + // Parse additional OpenWebUI fields + final pinned = chatData['pinned'] as bool? ?? false; + final archived = chatData['archived'] as bool? ?? false; + final shareId = chatData['share_id'] as String?; + final folderId = chatData['folder_id'] as String?; + + // Parse messages from the 'chat' object or top-level messages + final chatObject = chatData['chat'] as Map?; + final messages = []; + + // Try multiple locations for messages + List? messagesList; + Map? messagesMap; + + if (chatObject != null) { + // Check for messages in chat.history.messages (map format) + final history = chatObject['history'] as Map?; + if (history != null && history['messages'] != null) { + messagesMap = history['messages'] as Map; + debugPrint( + 'DEBUG: Found ${messagesMap.length} messages in chat.history.messages', + ); + } + + // Check for messages in chat.messages (list format) + if (chatObject['messages'] != null) { + messagesList = chatObject['messages'] as List; + debugPrint( + 'DEBUG: Found ${messagesList.length} messages in chat.messages', + ); + } + } else if (chatData['messages'] != null) { + messagesList = chatData['messages'] as List; + debugPrint( + 'DEBUG: Found ${messagesList.length} messages in top-level messages', + ); + } + + // Parse messages from map format (chat.history.messages) + if (messagesMap != null) { + for (final entry in messagesMap.entries) { + try { + final msgData = entry.value as Map; + msgData['id'] = entry.key; // Use the key as the message ID + debugPrint( + 'DEBUG: Parsing message from map: ${entry.key} - role: ${msgData['role']} - content length: ${msgData['content']?.toString().length ?? 0}', + ); + // Convert OpenWebUI message format to our ChatMessage format + final message = _parseOpenWebUIMessage(msgData); + messages.add(message); + debugPrint( + 'DEBUG: Successfully parsed message from map: ${message.id} - ${message.role}', + ); + } catch (e) { + debugPrint('DEBUG: Error parsing message from map: $e'); + } + } + } + + // Parse messages from list format (chat.messages or top-level) + if (messagesList != null) { + for (final msgData in messagesList) { + try { + debugPrint( + 'DEBUG: Parsing message from list: ${msgData['id']} - role: ${msgData['role']} - content length: ${msgData['content']?.toString().length ?? 0}', + ); + // Convert OpenWebUI message format to our ChatMessage format + final message = _parseOpenWebUIMessage(msgData); + messages.add(message); + debugPrint( + 'DEBUG: Successfully parsed message from list: ${message.id} - ${message.role}', + ); + } catch (e) { + debugPrint('DEBUG: Error parsing message from list: $e'); + } + } + } + + debugPrint('DEBUG: Total parsed messages: ${messages.length}'); + + return Conversation( + id: id, + title: title, + createdAt: createdAt, + updatedAt: updatedAt, + pinned: pinned, + archived: archived, + shareId: shareId, + folderId: folderId, + messages: messages, + ); + } + + // Parse OpenWebUI message format to our ChatMessage format + ChatMessage _parseOpenWebUIMessage(Map msgData) { + // OpenWebUI message format may vary, but typically: + // { "role": "user|assistant", "content": "text", ... } + + // Create a single UUID instance to reuse + const uuid = Uuid(); + + // Handle content that could be either String or List (for content arrays) + final content = msgData['content']; + String contentString; + if (content is List) { + // For content arrays, extract the text content + final textContent = content.firstWhere( + (item) => item is Map && item['type'] == 'text', + orElse: () => {'text': ''}, + ); + contentString = textContent['text'] as String? ?? ''; + } else { + contentString = content as String? ?? ''; + } + + // Determine role based on available fields + String role; + if (msgData['role'] != null) { + role = msgData['role'] as String; + } else if (msgData['model'] != null) { + // Messages with model field are typically assistant messages + role = 'assistant'; + } else { + // Default to user if no role or model + role = 'user'; + } + + return ChatMessage( + id: msgData['id']?.toString() ?? uuid.v4(), + role: role, + content: contentString, + timestamp: _parseTimestamp(msgData['timestamp']), + model: msgData['model'] as String?, + ); + } + + // Create new conversation using OpenWebUI API + // Create new conversation using OpenWebUI API + Future createConversation({ + required String title, + required List messages, + String? model, + String? systemPrompt, + }) async { + debugPrint('DEBUG: Creating new conversation on OpenWebUI server'); + debugPrint('DEBUG: Title: $title, Messages: ${messages.length}'); + + // Convert messages to the new format with proper structure + final Map messagesMap = {}; + String? currentId; + + for (final msg in messages) { + final messageId = msg.id; + messagesMap[messageId] = { + 'id': messageId, + 'parentId': null, + 'childrenIds': [], + 'role': msg.role, + 'content': msg.content, + if (msg.attachmentIds != null && msg.attachmentIds!.isNotEmpty) + 'files': msg.attachmentIds!.map((attachmentId) { + if (attachmentId.startsWith('data:')) { + // This is an image data URL + return {'type': 'image', 'url': attachmentId}; + } else { + // This is a server file ID + return { + 'type': 'file', + 'id': attachmentId, + 'url': '${serverConfig.url}/api/v1/files/$attachmentId', + }; + } + }).toList(), + 'timestamp': msg.timestamp.millisecondsSinceEpoch ~/ 1000, + 'models': model != null ? [model] : [], + }; + currentId = messageId; // Use the last message as current + } + + // Create the chat data structure matching the expected format + final chatData = { + 'chat': { + 'id': '', + 'title': title, + 'models': model != null ? [model] : [], + 'params': {}, + 'history': { + 'messages': messagesMap, + if (currentId != null) 'currentId': currentId, + }, + 'messages': messages + .map( + (msg) => { + 'id': msg.id, + 'parentId': null, + 'childrenIds': [], + 'role': msg.role, + 'content': msg.content, + if (msg.attachmentIds != null && msg.attachmentIds!.isNotEmpty) + 'files': msg.attachmentIds!.map((attachmentId) { + if (attachmentId.startsWith('data:')) { + // This is an image data URL + return {'type': 'image', 'url': attachmentId}; + } else { + // This is a server file ID + return { + 'type': 'file', + 'id': attachmentId, + 'url': '${serverConfig.url}/api/v1/files/$attachmentId', + }; + } + }).toList(), + 'timestamp': msg.timestamp.millisecondsSinceEpoch ~/ 1000, + 'models': model != null ? [model] : [], + }, + ) + .toList(), + 'tags': [], + 'timestamp': DateTime.now().millisecondsSinceEpoch, + }, + 'folder_id': null, + }; + + debugPrint('DEBUG: Sending chat data: $chatData'); + + final response = await _dio.post('/api/v1/chats/new', data: chatData); + + debugPrint('DEBUG: Create conversation response: ${response.data}'); + + // Parse the response + final responseData = response.data as Map; + return _parseFullOpenWebUIChat(responseData); + } + + // Update conversation with full chat data including all messages + Future updateConversationWithMessages( + String conversationId, + List messages, { + String? title, + String? model, + String? systemPrompt, + }) async { + debugPrint( + 'DEBUG: Updating conversation $conversationId with ${messages.length} messages', + ); + + // Convert messages to OpenWebUI format + final openWebUIMessages = messages + .map( + (msg) => { + 'role': msg.role, + 'content': msg.content, + if (msg.model != null) 'model': msg.model, + 'timestamp': msg.timestamp.millisecondsSinceEpoch ~/ 1000, + }, + ) + .toList(); + + // Create the chat data structure + final chatData = { + 'chat': { + 'messages': openWebUIMessages, + if (title != null) 'title': title, + if (model != null) 'model': model, + if (systemPrompt != null) 'system': systemPrompt, + }, + }; + + debugPrint('DEBUG: Updating chat with data: $chatData'); + + final response = await _dio.post( + '/api/v1/chats/$conversationId', + data: chatData, + ); + + debugPrint('DEBUG: Update conversation response: ${response.data}'); + } + + Future updateConversation( + String id, { + String? title, + String? systemPrompt, + }) async { + await _dio.put( + '/api/v1/chats/$id', + data: { + if (title != null) 'title': title, + if (systemPrompt != null) 'system': systemPrompt, + }, + ); + } + + Future deleteConversation(String id) async { + await _dio.delete('/api/v1/chats/$id'); + } + + // Pin/Unpin conversation + Future pinConversation(String id, bool pinned) async { + debugPrint('DEBUG: ${pinned ? 'Pinning' : 'Unpinning'} conversation: $id'); + await _dio.post('/api/v1/chats/$id/pin', data: {'pinned': pinned}); + } + + // Archive/Unarchive conversation + Future archiveConversation(String id, bool archived) async { + debugPrint( + 'DEBUG: ${archived ? 'Archiving' : 'Unarchiving'} conversation: $id', + ); + await _dio.post('/api/v1/chats/$id/archive', data: {'archived': archived}); + } + + // Share conversation + Future shareConversation(String id) async { + debugPrint('DEBUG: Sharing conversation: $id'); + final response = await _dio.post('/api/v1/chats/$id/share'); + final data = response.data as Map; + return data['share_id'] as String?; + } + + // Clone conversation + Future cloneConversation(String id) async { + debugPrint('DEBUG: Cloning conversation: $id'); + final response = await _dio.post('/api/v1/chats/$id/clone'); + return _parseFullOpenWebUIChat(response.data as Map); + } + + // User Settings + Future> getUserSettings() async { + debugPrint('DEBUG: Fetching user settings'); + final response = await _dio.get('/api/v1/users/user/settings'); + return response.data as Map; + } + + Future updateUserSettings(Map settings) async { + debugPrint('DEBUG: Updating user settings'); + await _dio.post('/api/v1/users/user/settings', data: settings); + } + + // Server Banners + Future>> getBanners() async { + debugPrint('DEBUG: Fetching server banners'); + final response = await _dio.get('/api/v1/configs/banners'); + final data = response.data; + if (data is List) { + return data.cast>(); + } + return []; + } + + // Suggestions + Future> getSuggestions() async { + debugPrint('DEBUG: Fetching conversation suggestions'); + final response = await _dio.get('/api/v1/configs/suggestions'); + final data = response.data; + if (data is List) { + return data.cast(); + } + return []; + } + + // Tools - Check available tools on server + Future>> getAvailableTools() async { + debugPrint('DEBUG: Fetching available tools'); + try { + final response = await _dio.get('/api/v1/tools/'); + final data = response.data; + if (data is List) { + return data.cast>(); + } + } catch (e) { + debugPrint('DEBUG: Error fetching tools: $e'); + } + return []; + } + + // Folders + Future>> getFolders() async { + debugPrint('DEBUG: Fetching folders'); + final response = await _dio.get('/api/v1/folders/'); + final data = response.data; + if (data is List) { + return data.cast>(); + } + return []; + } + + Future> createFolder({ + required String name, + String? parentId, + }) async { + debugPrint('DEBUG: Creating folder: $name'); + final response = await _dio.post( + '/api/v1/folders/', + data: {'name': name, if (parentId != null) 'parent_id': parentId}, + ); + return response.data as Map; + } + + Future updateFolder(String id, {String? name, String? parentId}) async { + debugPrint('DEBUG: Updating folder: $id'); + await _dio.put( + '/api/v1/folders/$id', + data: { + if (name != null) 'name': name, + if (parentId != null) 'parent_id': parentId, + }, + ); + } + + Future deleteFolder(String id) async { + debugPrint('DEBUG: Deleting folder: $id'); + await _dio.delete('/api/v1/folders/$id'); + } + + Future moveConversationToFolder( + String conversationId, + String? folderId, + ) async { + debugPrint( + 'DEBUG: Moving conversation $conversationId to folder $folderId', + ); + await _dio.post( + '/api/v1/chats/$conversationId/folder', + data: {'folder_id': folderId}, + ); + } + + Future> getConversationsInFolder(String folderId) async { + debugPrint('DEBUG: Fetching conversations in folder: $folderId'); + final response = await _dio.get('/api/v1/chats/folder/$folderId'); + final data = response.data; + if (data is List) { + return data.map((chatData) => _parseOpenWebUIChat(chatData)).toList(); + } + return []; + } + + // Tags + Future> getConversationTags(String conversationId) async { + debugPrint('DEBUG: Fetching tags for conversation: $conversationId'); + final response = await _dio.get('/api/v1/chats/$conversationId/tags'); + final data = response.data; + if (data is List) { + return data.cast(); + } + return []; + } + + Future addTagToConversation(String conversationId, String tag) async { + debugPrint('DEBUG: Adding tag "$tag" to conversation: $conversationId'); + await _dio.post('/api/v1/chats/$conversationId/tags', data: {'tag': tag}); + } + + Future removeTagFromConversation( + String conversationId, + String tag, + ) async { + debugPrint('DEBUG: Removing tag "$tag" from conversation: $conversationId'); + await _dio.delete('/api/v1/chats/$conversationId/tags/$tag'); + } + + Future> getAllTags() async { + debugPrint('DEBUG: Fetching all available tags'); + final response = await _dio.get('/api/v1/chats/tags'); + final data = response.data; + if (data is List) { + return data.cast(); + } + return []; + } + + Future> getConversationsByTag(String tag) async { + debugPrint('DEBUG: Fetching conversations with tag: $tag'); + final response = await _dio.get('/api/v1/chats/tags/$tag'); + final data = response.data; + if (data is List) { + return data.map((chatData) => _parseOpenWebUIChat(chatData)).toList(); + } + return []; + } + + // Files + Future getFileContent(String fileId) async { + debugPrint('DEBUG: Fetching file content: $fileId'); + final response = await _dio.get('/api/v1/files/$fileId/content'); + return response.data as String; + } + + Future> getFileInfo(String fileId) async { + debugPrint('DEBUG: Fetching file info: $fileId'); + final response = await _dio.get('/api/v1/files/$fileId'); + return response.data as Map; + } + + Future>> getUserFiles() async { + debugPrint('DEBUG: Fetching user files'); + final response = await _dio.get('/api/v1/files/'); + final data = response.data; + if (data is List) { + return data.cast>(); + } + return []; + } + + // Enhanced File Operations + Future>> searchFiles({ + String? query, + String? contentType, + int? limit, + int? offset, + }) async { + debugPrint('DEBUG: Searching files with query: $query'); + final queryParams = {}; + if (query != null) queryParams['q'] = query; + if (contentType != null) queryParams['content_type'] = contentType; + if (limit != null) queryParams['limit'] = limit; + if (offset != null) queryParams['offset'] = offset; + + final response = await _dio.get( + '/api/v1/files/search', + queryParameters: queryParams, + ); + final data = response.data; + if (data is List) { + return data.cast>(); + } + return []; + } + + Future>> getAllFiles() async { + debugPrint('DEBUG: Fetching all files (admin)'); + final response = await _dio.get('/api/v1/files/all'); + final data = response.data; + if (data is List) { + return data.cast>(); + } + return []; + } + + Future uploadFileWithProgress( + String filePath, + String fileName, { + Function(int sent, int total)? onProgress, + }) async { + debugPrint('DEBUG: Uploading file with progress: $fileName'); + + final formData = FormData.fromMap({ + 'file': await MultipartFile.fromFile(filePath, filename: fileName), + }); + + final response = await _dio.post( + '/api/v1/files/', + data: formData, + onSendProgress: onProgress, + ); + + return response.data['id'] as String; + } + + Future> updateFileContent( + String fileId, + String content, + ) async { + debugPrint('DEBUG: Updating file content: $fileId'); + final response = await _dio.post( + '/api/v1/files/$fileId/data/content/update', + data: {'content': content}, + ); + return response.data as Map; + } + + Future getFileHtmlContent(String fileId) async { + debugPrint('DEBUG: Fetching file HTML content: $fileId'); + final response = await _dio.get('/api/v1/files/$fileId/content/html'); + return response.data as String; + } + + Future deleteFile(String fileId) async { + debugPrint('DEBUG: Deleting file: $fileId'); + await _dio.delete('/api/v1/files/$fileId'); + } + + Future> updateFileMetadata( + String fileId, { + String? filename, + Map? metadata, + }) async { + debugPrint('DEBUG: Updating file metadata: $fileId'); + final response = await _dio.put( + '/api/v1/files/$fileId/metadata', + data: { + if (filename != null) 'filename': filename, + if (metadata != null) 'metadata': metadata, + }, + ); + return response.data as Map; + } + + Future>> processFilesBatch( + List fileIds, { + String? operation, + Map? options, + }) async { + debugPrint('DEBUG: Processing files batch: ${fileIds.length} files'); + final response = await _dio.post( + '/api/v1/retrieval/process/files/batch', + data: { + 'file_ids': fileIds, + if (operation != null) 'operation': operation, + if (options != null) 'options': options, + }, + ); + final data = response.data; + if (data is List) { + return data.cast>(); + } + return []; + } + + Future>> getFilesByType(String contentType) async { + debugPrint('DEBUG: Fetching files by type: $contentType'); + final response = await _dio.get( + '/api/v1/files/', + queryParameters: {'content_type': contentType}, + ); + final data = response.data; + if (data is List) { + return data.cast>(); + } + return []; + } + + Future> getFileStats() async { + debugPrint('DEBUG: Fetching file statistics'); + final response = await _dio.get('/api/v1/files/stats'); + return response.data as Map; + } + + // Knowledge Base + Future>> getKnowledgeBases() async { + debugPrint('DEBUG: Fetching knowledge bases'); + final response = await _dio.get('/api/v1/knowledge/'); + final data = response.data; + if (data is List) { + return data.cast>(); + } + return []; + } + + Future> createKnowledgeBase({ + required String name, + String? description, + }) async { + debugPrint('DEBUG: Creating knowledge base: $name'); + final response = await _dio.post( + '/api/v1/knowledge/', + data: {'name': name, if (description != null) 'description': description}, + ); + return response.data as Map; + } + + Future updateKnowledgeBase( + String id, { + String? name, + String? description, + }) async { + debugPrint('DEBUG: Updating knowledge base: $id'); + await _dio.put( + '/api/v1/knowledge/$id', + data: { + if (name != null) 'name': name, + if (description != null) 'description': description, + }, + ); + } + + Future deleteKnowledgeBase(String id) async { + debugPrint('DEBUG: Deleting knowledge base: $id'); + await _dio.delete('/api/v1/knowledge/$id'); + } + + Future>> getKnowledgeBaseItems( + String knowledgeBaseId, + ) async { + debugPrint('DEBUG: Fetching knowledge base items: $knowledgeBaseId'); + final response = await _dio.get('/api/v1/knowledge/$knowledgeBaseId/items'); + final data = response.data; + if (data is List) { + return data.cast>(); + } + return []; + } + + Future> addKnowledgeBaseItem( + String knowledgeBaseId, { + required String content, + String? title, + Map? metadata, + }) async { + debugPrint('DEBUG: Adding item to knowledge base: $knowledgeBaseId'); + final response = await _dio.post( + '/api/v1/knowledge/$knowledgeBaseId/items', + data: { + 'content': content, + if (title != null) 'title': title, + if (metadata != null) 'metadata': metadata, + }, + ); + return response.data as Map; + } + + Future>> searchKnowledgeBase( + String knowledgeBaseId, + String query, + ) async { + debugPrint('DEBUG: Searching knowledge base: $knowledgeBaseId for: $query'); + final response = await _dio.post( + '/api/v1/knowledge/$knowledgeBaseId/search', + data: {'query': query}, + ); + final data = response.data; + if (data is List) { + return data.cast>(); + } + return []; + } + + // Web Search + Future> performWebSearch(List queries) async { + debugPrint('DEBUG: Performing web search for queries: $queries'); + try { + final response = await _dio.post( + '/api/v1/retrieval/process/web/search', + data: {'queries': queries}, + ); + + debugPrint('DEBUG: Web search response status: ${response.statusCode}'); + debugPrint( + 'DEBUG: Web search response type: ${response.data.runtimeType}', + ); + debugPrint('DEBUG: Web search response data: ${response.data}'); + + return response.data as Map; + } catch (e) { + debugPrint('DEBUG: Web search API error: $e'); + if (e is DioException) { + debugPrint('DEBUG: Web search error response: ${e.response?.data}'); + debugPrint('DEBUG: Web search error status: ${e.response?.statusCode}'); + } + rethrow; + } + } + + // Get detailed model information + Future?> getModelDetails(String modelId) async { + try { + final response = await _dio.get( + '/api/v1/models/model', + queryParameters: {'id': modelId}, + ); + + if (response.statusCode == 200 && response.data != null) { + final modelData = response.data as Map; + debugPrint('DEBUG: Model details for $modelId: $modelData'); + return modelData; + } + } catch (e) { + debugPrint('DEBUG: Failed to get model details for $modelId: $e'); + } + return null; + } + + // Generate title for conversation using dedicated endpoint + Future generateTitle({ + required String conversationId, + required List> messages, + required String model, + }) async { + try { + debugPrint('DEBUG: Generating title for conversation: $conversationId'); + + final response = await _dio.post( + '/api/v1/tasks/title/completions', + data: {'chat_id': conversationId, 'messages': messages, 'model': model}, + ); + + if (response.statusCode == 200 && response.data != null) { + debugPrint('DEBUG: Raw title response: ${response.data}'); + + // Parse the complex response structure + String? extractedTitle; + + try { + final responseData = response.data as Map; + + // Check if there's a direct title field + if (responseData.containsKey('title')) { + extractedTitle = responseData['title']?.toString(); + } + // Check if it's in choices format (OpenAI-style response) + else if (responseData.containsKey('choices') && + responseData['choices'] is List) { + final choices = responseData['choices'] as List; + if (choices.isNotEmpty) { + final firstChoice = choices[0] as Map; + if (firstChoice.containsKey('message')) { + final message = firstChoice['message'] as Map; + final content = message['content']?.toString() ?? ''; + + // Extract title from JSON-formatted content + if (content.contains('```json') && content.contains('```')) { + // Extract JSON from markdown code block + final jsonStart = content.indexOf('```json') + 7; + final jsonEnd = content.lastIndexOf('```'); + if (jsonEnd > jsonStart) { + final jsonString = content + .substring(jsonStart, jsonEnd) + .trim(); + try { + final jsonData = + jsonDecode(jsonString) as Map; + extractedTitle = jsonData['title']?.toString(); + } catch (e) { + debugPrint( + 'DEBUG: Failed to parse JSON from title response: $e', + ); + } + } + } else { + // Try to parse the content directly as JSON + try { + final jsonData = + jsonDecode(content) as Map; + extractedTitle = jsonData['title']?.toString(); + } catch (e) { + // If not JSON, use content as-is + extractedTitle = content; + } + } + } + } + } + + // Clean up the extracted title + if (extractedTitle != null && extractedTitle.isNotEmpty) { + // Remove any remaining markdown formatting + extractedTitle = extractedTitle + .replaceAll(RegExp(r'```.*?```', dotAll: true), '') + .trim(); + extractedTitle = extractedTitle + .replaceAll(RegExp(r'^[{"]|["}]$'), '') + .trim(); + + // Ensure it's not just "New Chat" or empty + if (extractedTitle.isNotEmpty && extractedTitle != 'New Chat') { + debugPrint( + 'DEBUG: Successfully extracted title: $extractedTitle', + ); + return extractedTitle; + } + } + } catch (e) { + debugPrint('DEBUG: Error parsing title response: $e'); + } + + debugPrint('DEBUG: Could not extract valid title from response'); + } + } catch (e) { + debugPrint('DEBUG: Failed to generate title: $e'); + } + return null; + } + + // Send chat completed notification + Future sendChatCompleted({ + required String chatId, + required String messageId, + required List> messages, + required String model, + Map? modelItem, + String? sessionId, + }) async { + debugPrint('DEBUG: Sending chat completed for message: $messageId'); + + final requestData = { + 'model': model, + 'messages': messages, + if (modelItem != null) 'model_item': modelItem, + 'chat_id': chatId, + if (sessionId != null) 'session_id': sessionId, + 'id': messageId, + }; + + debugPrint('DEBUG: Chat completed request data: $requestData'); + + try { + final response = await _dio.post( + '/api/chat/completed', + data: requestData, + ); + debugPrint('DEBUG: Chat completed response: ${response.statusCode}'); + } catch (e) { + debugPrint('DEBUG: Chat completed error: $e'); + // Non-critical error, don't throw + } + } + + // Query a collection for content + Future> queryCollection( + String collectionName, + String query, + ) async { + debugPrint( + 'DEBUG: Querying collection: $collectionName with query: $query', + ); + try { + final response = await _dio.post( + '/api/v1/retrieval/query/collection', + data: { + 'collection_names': [collectionName], // API expects an array + 'query': query, + 'k': 5, // Limit to top 5 results + }, + ); + + debugPrint( + 'DEBUG: Collection query response status: ${response.statusCode}', + ); + debugPrint( + 'DEBUG: Collection query response type: ${response.data.runtimeType}', + ); + debugPrint('DEBUG: Collection query response data: ${response.data}'); + + if (response.data is List) { + return response.data as List; + } else if (response.data is Map) { + // If the response is a map, check for common result keys + final data = response.data as Map; + if (data.containsKey('results')) { + return data['results'] as List? ?? []; + } else if (data.containsKey('documents')) { + return data['documents'] as List? ?? []; + } else if (data.containsKey('data')) { + return data['data'] as List? ?? []; + } + } + + return []; + } catch (e) { + debugPrint('DEBUG: Collection query API error: $e'); + if (e is DioException) { + debugPrint( + 'DEBUG: Collection query error response: ${e.response?.data}', + ); + debugPrint( + 'DEBUG: Collection query error status: ${e.response?.statusCode}', + ); + } + rethrow; + } + } + + // Get retrieval configuration to check web search settings + Future> getRetrievalConfig() async { + debugPrint('DEBUG: Getting retrieval configuration'); + try { + final response = await _dio.get('/api/v1/retrieval/config'); + + debugPrint( + 'DEBUG: Retrieval config response status: ${response.statusCode}', + ); + debugPrint('DEBUG: Retrieval config response data: ${response.data}'); + + return response.data as Map; + } catch (e) { + debugPrint('DEBUG: Retrieval config API error: $e'); + if (e is DioException) { + debugPrint( + 'DEBUG: Retrieval config error response: ${e.response?.data}', + ); + debugPrint( + 'DEBUG: Retrieval config error status: ${e.response?.statusCode}', + ); + } + rethrow; + } + } + + // Audio + Future> getAvailableVoices() async { + debugPrint('DEBUG: Fetching available voices'); + final response = await _dio.get('/api/v1/audio/voices'); + final data = response.data; + if (data is List) { + return data.cast(); + } + return []; + } + + Future> generateSpeech({ + required String text, + String? voice, + }) async { + debugPrint( + 'DEBUG: Generating speech for text: ${text.substring(0, 50)}...', + ); + final response = await _dio.post( + '/api/v1/audio/speech', + data: {'text': text, if (voice != null) 'voice': voice}, + ); + + // Return audio data as bytes + if (response.data is List) { + return (response.data as List).cast(); + } + return []; + } + + Future transcribeAudio( + List audioData, { + String? language, + }) async { + // Normalize language to primary ISO 639-1 (e.g., en-US -> en) per server accepted list + String? normalizedLang; + if (language != null && language.isNotEmpty) { + normalizedLang = language.split(RegExp('[-_]')).first.toLowerCase(); + } + + debugPrint( + 'DEBUG: Transcribing audio data: bytes=${audioData.length}, language=${normalizedLang ?? 'null'}', + ); + + FormData buildForm(String? lang) { + final Map formMap = { + 'file': MultipartFile.fromBytes( + audioData, + filename: 'audio.wav', + contentType: MediaType.parse('audio/wav'), + ), + }; + if (lang != null && lang.isNotEmpty) { + formMap['language'] = lang; + } + return FormData.fromMap(formMap); + } + + var formData = buildForm(normalizedLang); + try { + final response = await _dio.post( + '/api/v1/audio/transcriptions', + data: formData, + options: Options(headers: {'Accept': 'application/json'}), + ); + final data = response.data; + debugPrint( + 'DEBUG: Transcription response status: ${response.statusCode}', + ); + debugPrint('DEBUG: Transcription response data: $data'); + if (data is String) return data; + if (data is Map) { + final text = data['text'] ?? data['transcription'] ?? data['result']; + if (text is String) return text; + if (data['data'] is Map && (data['data']['text'] is String)) { + return data['data']['text'] as String; + } + } + return ''; + } catch (e) { + debugPrint('DEBUG: Transcription API error: $e'); + // If server complains about invalid language code, retry without language + try { + if (e is DioException) { + final data = e.response?.data; + final msg = data is Map + ? data.toString() + : data?.toString() ?? ''; + if (msg.contains("not a valid language code")) { + debugPrint('DEBUG: Retrying transcription without language'); + final retryResponse = await _dio.post( + '/api/v1/audio/transcriptions', + data: buildForm(null), + options: Options(headers: {'Accept': 'application/json'}), + ); + final rdata = retryResponse.data; + debugPrint( + 'DEBUG: Transcription retry status: ${retryResponse.statusCode}', + ); + debugPrint('DEBUG: Transcription retry data: $rdata'); + if (rdata is String) return rdata; + if (rdata is Map) { + final text = + rdata['text'] ?? rdata['transcription'] ?? rdata['result']; + if (text is String) return text; + if (rdata['data'] is Map && (rdata['data']['text'] is String)) { + return rdata['data']['text'] as String; + } + } + return ''; + } + } + } catch (e2) { + debugPrint('DEBUG: Transcription retry error: $e2'); + } + rethrow; + } + } + + // Image Generation + Future>> getImageModels() async { + debugPrint('DEBUG: Fetching image generation models'); + final response = await _dio.get('/api/v1/images/models'); + final data = response.data; + if (data is List) { + return data.cast>(); + } + return []; + } + + Future> generateImage({ + required String prompt, + String? model, + int? width, + int? height, + int? steps, + double? guidance, + }) async { + debugPrint( + 'DEBUG: Generating image with prompt: ${prompt.substring(0, 50)}...', + ); + final response = await _dio.post( + '/api/v1/images/generations', + data: { + 'prompt': prompt, + if (model != null) 'model': model, + if (width != null) 'width': width, + if (height != null) 'height': height, + if (steps != null) 'steps': steps, + if (guidance != null) 'guidance': guidance, + }, + ); + return response.data as Map; + } + + // Prompts + Future>> getPrompts() async { + debugPrint('DEBUG: Fetching prompts'); + final response = await _dio.get('/api/v1/prompts/'); + final data = response.data; + if (data is List) { + return data.cast>(); + } + return []; + } + + Future> createPrompt({ + required String title, + required String content, + String? description, + List? tags, + }) async { + debugPrint('DEBUG: Creating prompt: $title'); + final response = await _dio.post( + '/api/v1/prompts/', + data: { + 'title': title, + 'content': content, + if (description != null) 'description': description, + if (tags != null) 'tags': tags, + }, + ); + return response.data as Map; + } + + Future updatePrompt( + String id, { + String? title, + String? content, + String? description, + List? tags, + }) async { + debugPrint('DEBUG: Updating prompt: $id'); + await _dio.put( + '/api/v1/prompts/$id', + data: { + if (title != null) 'title': title, + if (content != null) 'content': content, + if (description != null) 'description': description, + if (tags != null) 'tags': tags, + }, + ); + } + + Future deletePrompt(String id) async { + debugPrint('DEBUG: Deleting prompt: $id'); + await _dio.delete('/api/v1/prompts/$id'); + } + + // Tools & Functions + Future>> getTools() async { + debugPrint('DEBUG: Fetching tools'); + final response = await _dio.get('/api/v1/tools/'); + final data = response.data; + if (data is List) { + return data.cast>(); + } + return []; + } + + Future>> getFunctions() async { + debugPrint('DEBUG: Fetching functions'); + final response = await _dio.get('/api/v1/functions/'); + final data = response.data; + if (data is List) { + return data.cast>(); + } + return []; + } + + Future> createTool({ + required String name, + required Map spec, + }) async { + debugPrint('DEBUG: Creating tool: $name'); + final response = await _dio.post( + '/api/v1/tools/', + data: {'name': name, 'spec': spec}, + ); + return response.data as Map; + } + + Future> createFunction({ + required String name, + required String code, + String? description, + }) async { + debugPrint('DEBUG: Creating function: $name'); + final response = await _dio.post( + '/api/v1/functions/', + data: { + 'name': name, + 'code': code, + if (description != null) 'description': description, + }, + ); + return response.data as Map; + } + + // Enhanced Tools Management Operations + Future> getTool(String toolId) async { + debugPrint('DEBUG: Fetching tool details: $toolId'); + final response = await _dio.get('/api/v1/tools/id/$toolId'); + return response.data as Map; + } + + Future> updateTool( + String toolId, { + String? name, + Map? spec, + String? description, + }) async { + debugPrint('DEBUG: Updating tool: $toolId'); + final response = await _dio.post( + '/api/v1/tools/id/$toolId/update', + data: { + if (name != null) 'name': name, + if (spec != null) 'spec': spec, + if (description != null) 'description': description, + }, + ); + return response.data as Map; + } + + Future deleteTool(String toolId) async { + debugPrint('DEBUG: Deleting tool: $toolId'); + await _dio.delete('/api/v1/tools/id/$toolId/delete'); + } + + Future> getToolValves(String toolId) async { + debugPrint('DEBUG: Fetching tool valves: $toolId'); + final response = await _dio.get('/api/v1/tools/id/$toolId/valves'); + return response.data as Map; + } + + Future> updateToolValves( + String toolId, + Map valves, + ) async { + debugPrint('DEBUG: Updating tool valves: $toolId'); + final response = await _dio.post( + '/api/v1/tools/id/$toolId/valves/update', + data: valves, + ); + return response.data as Map; + } + + Future> getUserToolValves(String toolId) async { + debugPrint('DEBUG: Fetching user tool valves: $toolId'); + final response = await _dio.get('/api/v1/tools/id/$toolId/valves/user'); + return response.data as Map; + } + + Future> updateUserToolValves( + String toolId, + Map valves, + ) async { + debugPrint('DEBUG: Updating user tool valves: $toolId'); + final response = await _dio.post( + '/api/v1/tools/id/$toolId/valves/user/update', + data: valves, + ); + return response.data as Map; + } + + Future>> exportTools() async { + debugPrint('DEBUG: Exporting tools configuration'); + final response = await _dio.get('/api/v1/tools/export'); + final data = response.data; + if (data is List) { + return data.cast>(); + } + return []; + } + + Future> loadToolFromUrl(String url) async { + debugPrint('DEBUG: Loading tool from URL: $url'); + final response = await _dio.post( + '/api/v1/tools/load/url', + data: {'url': url}, + ); + return response.data as Map; + } + + // Enhanced Functions Management Operations + Future> getFunction(String functionId) async { + debugPrint('DEBUG: Fetching function details: $functionId'); + final response = await _dio.get('/api/v1/functions/id/$functionId'); + return response.data as Map; + } + + Future> updateFunction( + String functionId, { + String? name, + String? code, + String? description, + }) async { + debugPrint('DEBUG: Updating function: $functionId'); + final response = await _dio.post( + '/api/v1/functions/id/$functionId/update', + data: { + if (name != null) 'name': name, + if (code != null) 'code': code, + if (description != null) 'description': description, + }, + ); + return response.data as Map; + } + + Future deleteFunction(String functionId) async { + debugPrint('DEBUG: Deleting function: $functionId'); + await _dio.delete('/api/v1/functions/id/$functionId/delete'); + } + + Future> toggleFunction(String functionId) async { + debugPrint('DEBUG: Toggling function: $functionId'); + final response = await _dio.post('/api/v1/functions/id/$functionId/toggle'); + return response.data as Map; + } + + Future> toggleGlobalFunction(String functionId) async { + debugPrint('DEBUG: Toggling global function: $functionId'); + final response = await _dio.post( + '/api/v1/functions/id/$functionId/toggle/global', + ); + return response.data as Map; + } + + Future> getFunctionValves(String functionId) async { + debugPrint('DEBUG: Fetching function valves: $functionId'); + final response = await _dio.get('/api/v1/functions/id/$functionId/valves'); + return response.data as Map; + } + + Future> updateFunctionValves( + String functionId, + Map valves, + ) async { + debugPrint('DEBUG: Updating function valves: $functionId'); + final response = await _dio.post( + '/api/v1/functions/id/$functionId/valves/update', + data: valves, + ); + return response.data as Map; + } + + Future> getUserFunctionValves(String functionId) async { + debugPrint('DEBUG: Fetching user function valves: $functionId'); + final response = await _dio.get( + '/api/v1/functions/id/$functionId/valves/user', + ); + return response.data as Map; + } + + Future> updateUserFunctionValves( + String functionId, + Map valves, + ) async { + debugPrint('DEBUG: Updating user function valves: $functionId'); + final response = await _dio.post( + '/api/v1/functions/id/$functionId/valves/user/update', + data: valves, + ); + return response.data as Map; + } + + Future> syncFunctions() async { + debugPrint('DEBUG: Syncing functions'); + final response = await _dio.post('/api/v1/functions/sync'); + return response.data as Map; + } + + Future>> exportFunctions() async { + debugPrint('DEBUG: Exporting functions configuration'); + final response = await _dio.get('/api/v1/functions/export'); + final data = response.data; + if (data is List) { + return data.cast>(); + } + return []; + } + + // Memory & Notes + Future>> getMemories() async { + debugPrint('DEBUG: Fetching memories'); + final response = await _dio.get('/api/v1/memories/'); + final data = response.data; + if (data is List) { + return data.cast>(); + } + return []; + } + + Future> createMemory({ + required String content, + String? title, + }) async { + debugPrint('DEBUG: Creating memory'); + final response = await _dio.post( + '/api/v1/memories/', + data: {'content': content, if (title != null) 'title': title}, + ); + return response.data as Map; + } + + Future>> getNotes() async { + debugPrint('DEBUG: Fetching notes'); + final response = await _dio.get('/api/v1/notes/'); + final data = response.data; + if (data is List) { + return data.cast>(); + } + return []; + } + + Future> createNote({ + required String title, + required String content, + List? tags, + }) async { + debugPrint('DEBUG: Creating note: $title'); + final response = await _dio.post( + '/api/v1/notes/', + data: { + 'title': title, + 'content': content, + if (tags != null) 'tags': tags, + }, + ); + return response.data as Map; + } + + Future updateNote( + String id, { + String? title, + String? content, + List? tags, + }) async { + debugPrint('DEBUG: Updating note: $id'); + await _dio.put( + '/api/v1/notes/$id', + data: { + if (title != null) 'title': title, + if (content != null) 'content': content, + if (tags != null) 'tags': tags, + }, + ); + } + + Future deleteNote(String id) async { + debugPrint('DEBUG: Deleting note: $id'); + await _dio.delete('/api/v1/notes/$id'); + } + + // Team Collaboration + Future>> getChannels() async { + debugPrint('DEBUG: Fetching channels'); + final response = await _dio.get('/api/v1/channels/'); + final data = response.data; + if (data is List) { + return data.cast>(); + } + return []; + } + + Future> createChannel({ + required String name, + String? description, + bool isPrivate = false, + }) async { + debugPrint('DEBUG: Creating channel: $name'); + final response = await _dio.post( + '/api/v1/channels/', + data: { + 'name': name, + if (description != null) 'description': description, + 'is_private': isPrivate, + }, + ); + return response.data as Map; + } + + Future joinChannel(String channelId) async { + debugPrint('DEBUG: Joining channel: $channelId'); + await _dio.post('/api/v1/channels/$channelId/join'); + } + + Future leaveChannel(String channelId) async { + debugPrint('DEBUG: Leaving channel: $channelId'); + await _dio.post('/api/v1/channels/$channelId/leave'); + } + + Future>> getChannelMembers(String channelId) async { + debugPrint('DEBUG: Fetching channel members: $channelId'); + final response = await _dio.get('/api/v1/channels/$channelId/members'); + final data = response.data; + if (data is List) { + return data.cast>(); + } + return []; + } + + Future> getChannelConversations(String channelId) async { + debugPrint('DEBUG: Fetching channel conversations: $channelId'); + final response = await _dio.get('/api/v1/channels/$channelId/chats'); + final data = response.data; + if (data is List) { + return data.map((chatData) => _parseOpenWebUIChat(chatData)).toList(); + } + return []; + } + + // Enhanced Channel Management Operations + Future> getChannel(String channelId) async { + debugPrint('DEBUG: Fetching channel details: $channelId'); + final response = await _dio.get('/api/v1/channels/$channelId'); + return response.data as Map; + } + + Future> updateChannel( + String channelId, { + String? name, + String? description, + bool? isPrivate, + }) async { + debugPrint('DEBUG: Updating channel: $channelId'); + final response = await _dio.post( + '/api/v1/channels/$channelId/update', + data: { + if (name != null) 'name': name, + if (description != null) 'description': description, + if (isPrivate != null) 'is_private': isPrivate, + }, + ); + return response.data as Map; + } + + Future deleteChannel(String channelId) async { + debugPrint('DEBUG: Deleting channel: $channelId'); + await _dio.delete('/api/v1/channels/$channelId/delete'); + } + + Future>> getChannelMessages( + String channelId, { + int? limit, + int? offset, + DateTime? before, + DateTime? after, + }) async { + debugPrint('DEBUG: Fetching channel messages: $channelId'); + final queryParams = {}; + if (limit != null) queryParams['limit'] = limit; + if (offset != null) queryParams['offset'] = offset; + if (before != null) queryParams['before'] = before.toIso8601String(); + if (after != null) queryParams['after'] = after.toIso8601String(); + + final response = await _dio.get( + '/api/v1/channels/$channelId/messages', + queryParameters: queryParams, + ); + final data = response.data; + if (data is List) { + return data.cast>(); + } + return []; + } + + Future> postChannelMessage( + String channelId, { + required String content, + String? messageType, + Map? metadata, + }) async { + debugPrint('DEBUG: Posting message to channel: $channelId'); + final response = await _dio.post( + '/api/v1/channels/$channelId/messages/post', + data: { + 'content': content, + if (messageType != null) 'message_type': messageType, + if (metadata != null) 'metadata': metadata, + }, + ); + return response.data as Map; + } + + Future> updateChannelMessage( + String channelId, + String messageId, { + String? content, + Map? metadata, + }) async { + debugPrint('DEBUG: Updating channel message: $channelId/$messageId'); + final response = await _dio.post( + '/api/v1/channels/$channelId/messages/$messageId/update', + data: { + if (content != null) 'content': content, + if (metadata != null) 'metadata': metadata, + }, + ); + return response.data as Map; + } + + Future deleteChannelMessage(String channelId, String messageId) async { + debugPrint('DEBUG: Deleting channel message: $channelId/$messageId'); + await _dio.delete('/api/v1/channels/$channelId/messages/$messageId'); + } + + Future> addMessageReaction( + String channelId, + String messageId, + String emoji, + ) async { + debugPrint('DEBUG: Adding reaction to message: $channelId/$messageId'); + final response = await _dio.post( + '/api/v1/channels/$channelId/messages/$messageId/reactions', + data: {'emoji': emoji}, + ); + return response.data as Map; + } + + Future removeMessageReaction( + String channelId, + String messageId, + String emoji, + ) async { + debugPrint('DEBUG: Removing reaction from message: $channelId/$messageId'); + await _dio.delete( + '/api/v1/channels/$channelId/messages/$messageId/reactions/$emoji', + ); + } + + Future>> getMessageReactions( + String channelId, + String messageId, + ) async { + debugPrint('DEBUG: Fetching message reactions: $channelId/$messageId'); + final response = await _dio.get( + '/api/v1/channels/$channelId/messages/$messageId/reactions', + ); + final data = response.data; + if (data is List) { + return data.cast>(); + } + return []; + } + + Future>> getMessageThread( + String channelId, + String messageId, + ) async { + debugPrint('DEBUG: Fetching message thread: $channelId/$messageId'); + final response = await _dio.get( + '/api/v1/channels/$channelId/messages/$messageId/thread', + ); + final data = response.data; + if (data is List) { + return data.cast>(); + } + return []; + } + + Future> replyToMessage( + String channelId, + String messageId, { + required String content, + Map? metadata, + }) async { + debugPrint('DEBUG: Replying to message: $channelId/$messageId'); + final response = await _dio.post( + '/api/v1/channels/$channelId/messages/$messageId/reply', + data: {'content': content, if (metadata != null) 'metadata': metadata}, + ); + return response.data as Map; + } + + Future markChannelRead(String channelId, {String? messageId}) async { + debugPrint('DEBUG: Marking channel as read: $channelId'); + await _dio.post( + '/api/v1/channels/$channelId/read', + data: {if (messageId != null) 'last_read_message_id': messageId}, + ); + } + + Future> getChannelUnreadCount(String channelId) async { + debugPrint('DEBUG: Fetching unread count for channel: $channelId'); + final response = await _dio.get('/api/v1/channels/$channelId/unread'); + return response.data as Map; + } + + // Chat streaming with conversation context + String _getCurrentWeekday() { + final weekdays = [ + 'Monday', + 'Tuesday', + 'Wednesday', + 'Thursday', + 'Friday', + 'Saturday', + 'Sunday', + ]; + return weekdays[DateTime.now().weekday - 1]; + } + + // Returns a record with (stream, messageId, sessionId) + ({Stream stream, String messageId, String sessionId}) + sendMessageDirect({ + required List> messages, + required String model, + String? conversationId, + List>? tools, + bool enableWebSearch = false, + Map? modelItem, + }) { + final streamController = StreamController(); + + // Generate unique IDs + final messageId = const Uuid().v4(); + final sessionId = const Uuid().v4().substring(0, 20); + + // Check if this is a Gemini model that requires special handling + final isGeminiModel = model.toLowerCase().contains('gemini'); + debugPrint('DEBUG: Is Gemini model: $isGeminiModel'); + + // Process messages to match OpenWebUI format + final processedMessages = messages.map((message) { + final role = message['role'] as String; + final content = message['content']; + final files = message['files'] as List>?; + + final isContentArray = content is List; + final hasImages = files?.any((file) => file['type'] == 'image') ?? false; + + if (isContentArray) { + return {'role': role, 'content': content}; + } else if (hasImages && role == 'user') { + final imageFiles = files! + .where((file) => file['type'] == 'image') + .toList(); + final contentText = content is String ? content : ''; + final contentArray = >[ + {'type': 'text', 'text': contentText}, + ]; + + for (final file in imageFiles) { + contentArray.add({ + 'type': 'image_url', + 'image_url': {'url': file['url']}, + }); + } + return {'role': role, 'content': contentArray}; + } else { + final contentText = content is String ? content : ''; + return {'role': role, 'content': contentText}; + } + }).toList(); + + // Separate files from messages + final allFiles = >[]; + for (final message in messages) { + final files = message['files'] as List>?; + if (files != null) { + final nonImageFiles = files + .where((file) => file['type'] != 'image') + .toList(); + allFiles.addAll(nonImageFiles); + } + } + + // Build request data (exactly like OpenWebUI) + final data = { + 'model': model, + 'messages': processedMessages, + 'stream': true, // Always enable streaming + 'max_tokens': null, // Let the model decide + 'temperature': 0.8, + 'top_p': 0.9, + 'frequency_penalty': 0.0, + 'presence_penalty': 0.0, + if (conversationId != null) 'chat_id': conversationId, + if (tools != null && tools.isNotEmpty) 'tools': tools, + if (allFiles.isNotEmpty) 'files': allFiles, + if (enableWebSearch) 'web_search': enableWebSearch, + }; + + debugPrint('DEBUG: Starting SSE streaming request'); + debugPrint('DEBUG: Model: $model'); + debugPrint('DEBUG: Message count: ${processedMessages.length}'); + + // Use SSE streaming exactly like OpenWebUI frontend + _streamChatCompletion(data, streamController, messageId); + + return ( + stream: streamController.stream, + messageId: messageId, + sessionId: sessionId, + ); + } + + // SSE streaming implementation that matches OpenWebUI exactly + void _streamChatCompletion( + Map data, + StreamController streamController, + String messageId, + ) async { + try { + debugPrint('DEBUG: Making SSE request to /api/chat/completions'); + + // Make the request with proper SSE headers (exactly like OpenWebUI) + final response = await _dio.post( + '/api/chat/completions', + data: data, + options: Options( + responseType: ResponseType.stream, + headers: { + 'Accept': 'text/event-stream', + 'Cache-Control': 'no-cache', + 'Connection': 'keep-alive', + }, + // Disable response timeout to allow streaming + receiveTimeout: null, + ), + ); + + debugPrint( + 'DEBUG: SSE response received, status: ${response.statusCode}', + ); + + if (response.statusCode != 200) { + throw Exception( + 'HTTP ${response.statusCode}: Failed to start streaming', + ); + } + + // Process the SSE stream exactly like OpenWebUI frontend + final stream = response.data.stream as Stream>; + String buffer = ''; + + await for (final chunk in stream) { + try { + // Decode chunk to string + final chunkStr = utf8.decode(chunk); + buffer += chunkStr; + + // Process complete lines (SSE format) + final lines = buffer.split('\n'); + buffer = lines.removeLast(); // Keep incomplete line in buffer + + for (final line in lines) { + final trimmedLine = line.trim(); + if (trimmedLine.isEmpty) continue; + + debugPrint('DEBUG: SSE line: $trimmedLine'); + + if (trimmedLine.startsWith('data: ')) { + final jsonStr = trimmedLine.substring(6); // Remove "data: " + + if (jsonStr == '[DONE]') { + debugPrint('DEBUG: SSE stream finished with [DONE]'); + streamController.close(); + return; + } + + try { + final json = jsonDecode(jsonStr) as Map; + debugPrint('DEBUG: SSE JSON: $json'); + + // Process exactly like OpenWebUI + if (json.containsKey('choices')) { + final choices = json['choices'] as List?; + if (choices != null && choices.isNotEmpty) { + final choice = choices[0] as Map; + + if (choice.containsKey('delta')) { + final delta = choice['delta'] as Map; + + // Handle content streaming (word by word) + if (delta.containsKey('content')) { + final content = delta['content'] as String?; + if (content != null && content.isNotEmpty) { + debugPrint('DEBUG: Adding content chunk: "$content"'); + streamController.add(content); + } + } + + // Handle function calls + if (delta.containsKey('tool_calls')) { + final toolCalls = delta['tool_calls'] as List?; + if (toolCalls != null && toolCalls.isNotEmpty) { + debugPrint('DEBUG: Tool calls received: $toolCalls'); + // Handle tool calls if needed + } + } + } + + // Handle finish reason + if (choice.containsKey('finish_reason')) { + final finishReason = choice['finish_reason']; + if (finishReason != null) { + debugPrint( + 'DEBUG: Stream finished with reason: $finishReason', + ); + streamController.close(); + return; + } + } + } + } else if (json.containsKey('error')) { + // Handle server errors + final error = json['error']; + debugPrint('DEBUG: SSE error: $error'); + streamController.addError('Server error: $error'); + return; + } else { + debugPrint('DEBUG: Unknown SSE JSON format: $json'); + } + } catch (e) { + debugPrint('DEBUG: Error parsing SSE JSON "$jsonStr": $e'); + // Continue processing other lines + } + } else if (trimmedLine.startsWith('event: ') || + trimmedLine.startsWith('id: ') || + trimmedLine.startsWith('retry: ')) { + // Handle other SSE fields (ignore for now) + debugPrint('DEBUG: SSE metadata: $trimmedLine'); + } else { + debugPrint('DEBUG: Unknown SSE line format: $trimmedLine'); + } + } + } catch (e) { + debugPrint('DEBUG: Error processing SSE chunk: $e'); + // Continue processing + } + } + + // Stream ended without [DONE] marker + debugPrint('DEBUG: SSE stream ended unexpectedly'); + streamController.close(); + } catch (e) { + debugPrint('DEBUG: SSE streaming error: $e'); + streamController.addError(e); + } + } + + // Initialize Socket.IO connection + Future _initializeSocket() async { + if (_socket != null && _socket!.connected) { + return; // Already connected + } + + try { + debugPrint( + 'DEBUG: Initializing Socket.IO connection to ${serverConfig.url}', + ); + + _socket = io.io( + serverConfig.url, + io.OptionBuilder() + .setTransports(['websocket', 'polling']) + .enableReconnection() + .setReconnectionDelay(1000) + .setReconnectionDelayMax(5000) + .setPath('/ws/socket.io') + .setAuth({'token': _authInterceptor.authToken}) + .build(), + ); + + _socket!.onConnect((_) { + debugPrint('DEBUG: Socket.IO connected with ID: ${_socket!.id}'); + + // Emit user-join event with auth token + _socket!.emit('user-join', { + 'auth': {'token': _authInterceptor.authToken}, + }); + }); + + _socket!.onDisconnect((_) { + debugPrint('DEBUG: Socket.IO disconnected'); + }); + + _socket!.onError((error) { + debugPrint('DEBUG: Socket.IO error: $error'); + }); + + _socket!.onReconnect((_) { + debugPrint('DEBUG: Socket.IO reconnected'); + }); + } catch (e) { + debugPrint('DEBUG: Failed to initialize Socket.IO: $e'); + } + } + + // Socket.IO streaming method that listens to real-time events + ({Stream stream, String messageId, String sessionId}) + sendMessageWithSocketIO({ + required List> messages, + required String model, + String? conversationId, + List>? tools, + bool enableWebSearch = false, + Map? modelItem, + }) { + final streamController = StreamController(); + + // Generate unique IDs + final messageId = const Uuid().v4(); + final sessionId = const Uuid().v4().substring(0, 20); + + debugPrint('DEBUG: Starting Socket.IO streaming for message: $messageId'); + + // Initialize socket connection + _initializeSocket() + .then((_) { + _handleSocketIOStreamingResponse(messageId, streamController); + + // Send the chat completion request via API + // This will trigger the server to emit Socket.IO events + _sendChatCompletionForSocketIO( + messages: messages, + model: model, + conversationId: conversationId, + messageId: messageId, + tools: tools, + enableWebSearch: enableWebSearch, + modelItem: modelItem, + ); + }) + .catchError((error) { + debugPrint('DEBUG: Socket.IO initialization failed: $error'); + streamController.addError('Failed to initialize Socket.IO: $error'); + }); + + return ( + stream: streamController.stream, + messageId: messageId, + sessionId: sessionId, + ); + } + + // Handle Socket.IO real-time streaming events + void _handleSocketIOStreamingResponse( + String messageId, + StreamController streamController, + ) async { + // Check if socket is available + if (_socket == null || !_socket!.connected) { + debugPrint( + 'DEBUG: Socket not available for real-time streaming, falling back to polling', + ); + streamController.addError('Socket.IO not connected'); + streamController.close(); + return; + } + + debugPrint( + 'DEBUG: Setting up Socket.IO real-time streaming for message: $messageId', + ); + bool streamCompleted = false; + Timer? timeoutTimer; + + // Set up timeout to prevent hanging + timeoutTimer = Timer(const Duration(seconds: 30), () { + if (!streamCompleted) { + debugPrint( + 'DEBUG: Socket.IO streaming timeout for message: $messageId', + ); + streamCompleted = true; + streamController.addError('Streaming timeout'); + streamController.close(); + } + }); + + // Set up listener for chat-events from the server (OpenWebUI pattern) + void handleChatEvent(dynamic data) { + try { + if (streamCompleted) return; + + debugPrint('DEBUG: Received Socket.IO chat event: $data'); + + final Map eventData = data is Map + ? data + : (data as Map).cast(); + + final chatId = eventData['chat_id']?.toString(); + final eventMessageId = eventData['message_id']?.toString(); + final eventDetails = eventData['data'] as Map? ?? {}; + + final eventType = eventDetails['type']?.toString(); + final eventDataContent = + eventDetails['data'] as Map? ?? {}; + + debugPrint( + 'DEBUG: Event type: $eventType, chat_id: $chatId, message_id: $eventMessageId', + ); + + // Only process events for our message + if (eventMessageId != messageId && eventMessageId != null) { + return; + } + + switch (eventType) { + case 'message': + // Incremental content streaming - add the new chunk + final content = eventDataContent['content']?.toString() ?? ''; + if (content.isNotEmpty) { + debugPrint('DEBUG: Adding Socket.IO content chunk: "$content"'); + streamController.add(content); + } + break; + + case 'replace': + // Full content replacement - replace entire content + final content = eventDataContent['content']?.toString() ?? ''; + debugPrint('DEBUG: Replacing Socket.IO content: "$content"'); + streamController.add('__REPLACE_CONTENT__$content'); + break; + + case 'status': + // Status update (like "generating", "thinking", etc.) + final status = eventDataContent['status']?.toString() ?? ''; + if (status.isNotEmpty) { + debugPrint('DEBUG: Socket.IO Status update: $status'); + // Optionally emit status as a special event + streamController.add('__STATUS__$status'); + } + break; + + case 'error': + // Error occurred during generation + final error = + eventDataContent['error']?.toString() ?? 'Unknown error'; + debugPrint('DEBUG: Socket.IO streaming error: $error'); + streamCompleted = true; + timeoutTimer?.cancel(); + _socket?.off('chat-events', handleChatEvent); + streamController.addError(error); + streamController.close(); + break; + + case 'done': + // Streaming completed successfully + debugPrint( + 'DEBUG: Socket.IO streaming completed for message: $messageId', + ); + streamCompleted = true; + timeoutTimer?.cancel(); + _socket?.off('chat-events', handleChatEvent); + streamController.close(); + break; + + default: + debugPrint('DEBUG: Unknown Socket.IO event type: $eventType'); + break; + } + } catch (e, stackTrace) { + debugPrint('DEBUG: Error handling Socket.IO event: $e'); + debugPrint('DEBUG: Stack trace: $stackTrace'); + if (!streamCompleted) { + streamCompleted = true; + timeoutTimer?.cancel(); + _socket?.off('chat-events', handleChatEvent); + streamController.addError('Error processing streaming event: $e'); + streamController.close(); + } + } + } + + // Listen for chat-events + _socket!.on('chat-events', handleChatEvent); + + // Clean up when stream is closed + streamController.onCancel = () { + debugPrint( + 'DEBUG: Cleaning up Socket.IO listeners for message: $messageId', + ); + streamCompleted = true; + timeoutTimer?.cancel(); + _socket?.off('chat-events', handleChatEvent); + }; + } + + // Send chat completion request that will trigger Socket.IO events + Future _sendChatCompletionForSocketIO({ + required List> messages, + required String model, + String? conversationId, + required String messageId, + List>? tools, + bool enableWebSearch = false, + Map? modelItem, + }) async { + try { + // Process messages same as SSE version + final processedMessages = messages.map((message) { + final role = message['role'] as String; + final content = message['content']; + final files = message['files'] as List>?; + + final isContentArray = content is List; + final hasImages = + files?.any((file) => file['type'] == 'image') ?? false; + + if (isContentArray) { + return {'role': role, 'content': content}; + } else if (hasImages && role == 'user') { + final imageFiles = files! + .where((file) => file['type'] == 'image') + .toList(); + final contentText = content is String ? content : ''; + final contentArray = >[ + {'type': 'text', 'text': contentText}, + ]; + + for (final file in imageFiles) { + contentArray.add({ + 'type': 'image_url', + 'image_url': {'url': file['url']}, + }); + } + + return {'role': role, 'content': contentArray}; + } else { + final contentText = content is String ? content : ''; + return {'role': role, 'content': contentText}; + } + }).toList(); + + // Separate files from messages + final allFiles = >[]; + for (final message in messages) { + final files = message['files'] as List>?; + if (files != null) { + final nonImageFiles = files + .where((file) => file['type'] != 'image') + .toList(); + allFiles.addAll(nonImageFiles); + } + } + + // Create request data + final data = { + 'model': model, + 'messages': processedMessages, + 'stream': true, // Enable streaming + 'message_id': messageId, // Include message ID for Socket.IO events + if (conversationId != null) 'chat_id': conversationId, + if (tools != null && tools.isNotEmpty) 'tools': tools, + if (allFiles.isNotEmpty) 'files': allFiles, + if (enableWebSearch) 'web_search': enableWebSearch, + 'session_id': _socket?.id, // Include Socket.IO session ID + }; + + debugPrint('DEBUG: Sending Socket.IO-enabled chat completion request'); + debugPrint('DEBUG: Message ID: $messageId'); + debugPrint('DEBUG: Socket ID: ${_socket?.id}'); + + // Send the request - server should emit Socket.IO events in response + await _dio.post('/api/chat/completions', data: data); + } catch (e) { + debugPrint('DEBUG: Error sending Socket.IO chat completion request: $e'); + rethrow; + } + } + + // Enhanced SSE streaming method that matches OpenWebUI implementation + ({Stream stream, String messageId, String sessionId}) + sendMessageWithImprovedSSE({ + required List> messages, + required String model, + String? conversationId, + List>? tools, + bool enableWebSearch = false, + Map? modelItem, + }) { + final streamController = StreamController(); + + // Generate a unique message ID and session ID for the request + final messageId = const Uuid().v4(); + final sessionId = const Uuid().v4().substring(0, 20); // Match WebUI format + + // Check if this is a Gemini model that requires special handling + final isGeminiModel = model.toLowerCase().contains('gemini'); + debugPrint('DEBUG: Is Gemini model in API: $isGeminiModel'); + debugPrint('DEBUG: Model ID in API: $model'); + + // Process messages to match OpenWebUI format + final processedMessages = messages.map((message) { + final role = message['role'] as String; + final content = message['content']; + final files = message['files'] as List>?; + + // Check if content is already a List (content array format) + final isContentArray = content is List; + + // Check if this message has image files + final hasImages = files?.any((file) => file['type'] == 'image') ?? false; + + if (isContentArray) { + // Content is already in the correct array format + return {'role': role, 'content': content}; + } else if (hasImages && role == 'user') { + // For user messages with images, use OpenWebUI's content array format + final imageFiles = files! + .where((file) => file['type'] == 'image') + .toList(); + + final contentText = content is String ? content : ''; + final contentArray = >[ + {'type': 'text', 'text': contentText}, + ]; + + for (final file in imageFiles) { + contentArray.add({ + 'type': 'image_url', + 'image_url': {'url': file['url']}, + }); + } + + return {'role': role, 'content': contentArray}; + } else { + // For messages without images or non-user messages, use regular format + final contentText = content is String ? content : ''; + return {'role': role, 'content': contentText}; + } + }).toList(); + + // Separate files from messages (OpenWebUI format) + final allFiles = >[]; + for (final message in messages) { + final files = message['files'] as List>?; + if (files != null) { + // Only include non-image files in the files array + final nonImageFiles = files + .where((file) => file['type'] != 'image') + .toList(); + allFiles.addAll(nonImageFiles); + } + } + + // Prepare the request in OpenWebUI format + final data = { + 'stream': true, + 'model': model, + 'messages': processedMessages, + 'params': { + 'temperature': 0.7, + 'top_p': 1.0, + 'max_tokens': 4096, + 'stream_response': true, + }, + 'files': allFiles.isNotEmpty ? allFiles : null, + 'tool_servers': [], + 'features': { + 'image_generation': false, + 'code_interpreter': false, + 'web_search': enableWebSearch, + 'memory': false, + }, + 'variables': { + '{{USER_NAME}}': 'User', + '{{USER_LOCATION}}': 'Unknown', + '{{CURRENT_DATETIME}}': DateTime.now().toString().substring(0, 19), + '{{CURRENT_DATE}}': DateTime.now().toString().substring(0, 10), + '{{CURRENT_TIME}}': DateTime.now().toString().substring(11, 19), + '{{CURRENT_WEEKDAY}}': _getCurrentWeekday(), + '{{CURRENT_TIMEZONE}}': DateTime.now().timeZoneName, + '{{USER_LANGUAGE}}': 'en-US', + }, + if (conversationId != null) 'chat_id': conversationId, + if (modelItem != null) 'model_item': modelItem, + 'background_tasks': { + 'title_generation': true, + 'tags_generation': true, + 'follow_up_generation': true, + }, + 'session_id': sessionId, + 'id': messageId, + }; + + debugPrint('DEBUG: Sending chat completion request:'); + debugPrint('DEBUG: Model: $model'); + debugPrint('DEBUG: Messages count: ${processedMessages.length}'); + debugPrint('DEBUG: Files count: ${allFiles.length}'); + debugPrint('DEBUG: Web search enabled: $enableWebSearch'); + + // Use Server-Sent Events for streaming + const url = '/api/chat/completions'; + + _dio + .post( + url, + data: data, + options: Options( + responseType: ResponseType.stream, + headers: {'Accept': 'text/event-stream'}, + // Increase timeout for streaming responses + receiveTimeout: const Duration(minutes: 5), + ), + ) + .then((response) { + final stream = response.data.stream; + + stream.listen( + (data) { + final decodedData = utf8.decode(data); + debugPrint('DEBUG: SSE Raw data: $decodedData'); + final lines = decodedData.split('\n'); + for (final line in lines) { + if (line.startsWith('data: ')) { + final jsonStr = line.substring(6); + debugPrint('DEBUG: SSE JSON: $jsonStr'); + if (jsonStr == '[DONE]') { + debugPrint('DEBUG: Stream finished with [DONE]'); + streamController.close(); + return; + } + try { + final json = jsonDecode(jsonStr); + if (json is Map) { + final choices = json['choices']; + if (choices is List && choices.isNotEmpty) { + final delta = choices[0]['delta']; + if (delta is Map) { + // Handle regular content + final content = delta['content']; + if (content is String && content.isNotEmpty) { + debugPrint( + 'DEBUG: Adding content chunk: "$content"', + ); + streamController.add(content); + } + + // Handle function calls + final toolCalls = delta['tool_calls']; + if (toolCalls is List && toolCalls.isNotEmpty) { + for (final toolCall in toolCalls) { + if (toolCall is Map) { + final function = toolCall['function']; + if (function is Map) { + final name = function['name']; + final arguments = function['arguments']; + debugPrint( + 'DEBUG: Function call - Name: $name, Arguments: $arguments', + ); + } + } + } + } + } + } + } + } catch (e) { + debugPrint('DEBUG: Error parsing SSE data: $e'); + } + } + } + }, + onError: (error) { + debugPrint('DEBUG: Stream error: $error'); + debugPrint('DEBUG: Stream error type: ${error.runtimeType}'); + streamController.addError(error); + }, + onDone: () { + debugPrint('DEBUG: Stream completed'); + streamController.close(); + }, + ); + }) + .catchError((error) { + debugPrint('DEBUG: Request error: $error'); + streamController.addError(error); + }); + + return ( + stream: streamController.stream, + messageId: messageId, + sessionId: sessionId, + ); + } + + // File upload for RAG + Future uploadFile(String filePath, String fileName) async { + debugPrint('DEBUG: Starting file upload: $fileName from $filePath'); + + try { + // Check if file exists + final file = File(filePath); + if (!await file.exists()) { + throw Exception('File does not exist: $filePath'); + } + + final formData = FormData.fromMap({ + 'file': await MultipartFile.fromFile(filePath, filename: fileName), + }); + + debugPrint('DEBUG: Uploading to /api/v1/files/'); + final response = await _dio.post('/api/v1/files/', data: formData); + + debugPrint('DEBUG: Upload response status: ${response.statusCode}'); + debugPrint('DEBUG: Upload response data: ${response.data}'); + + if (response.data is Map && response.data['id'] != null) { + final fileId = response.data['id'] as String; + debugPrint('DEBUG: File uploaded successfully with ID: $fileId'); + return fileId; + } else { + throw Exception('Invalid response format: missing file ID'); + } + } catch (e) { + debugPrint('ERROR: File upload failed: $e'); + rethrow; + } + } + + // Search conversations + Future> searchConversations(String query) async { + final response = await _dio.get( + '/api/v1/chats/search', + queryParameters: {'q': query}, + ); + final results = response.data as List; + return results.map((c) => Conversation.fromJson(c)).toList(); + } + + // Debug method to test API endpoints + Future debugApiEndpoints() async { + debugPrint('=== DEBUG API ENDPOINTS ==='); + debugPrint('Server URL: ${serverConfig.url}'); + debugPrint('Auth token present: ${authToken != null}'); + + // Test different possible endpoints + final endpoints = [ + '/api/v1/chats', + '/api/chats', + '/api/v1/conversations', + '/api/conversations', + ]; + + for (final endpoint in endpoints) { + try { + debugPrint('Testing endpoint: $endpoint'); + final response = await _dio.get(endpoint); + debugPrint('✅ $endpoint - Status: ${response.statusCode}'); + debugPrint(' Response type: ${response.data.runtimeType}'); + if (response.data is List) { + debugPrint(' Array length: ${(response.data as List).length}'); + } else if (response.data is Map) { + debugPrint(' Object keys: ${(response.data as Map).keys}'); + } + debugPrint( + ' Sample data: ${response.data.toString().substring(0, 200)}...', + ); + } catch (e) { + debugPrint('❌ $endpoint - Error: $e'); + } + debugPrint('---'); + } + debugPrint('=== END DEBUG ==='); + } + + // Check if server has API documentation + Future checkApiDocumentation() async { + debugPrint('=== CHECKING API DOCUMENTATION ==='); + final docEndpoints = ['/docs', '/api/docs', '/swagger', '/api/swagger']; + + for (final endpoint in docEndpoints) { + try { + final response = await _dio.get(endpoint); + if (response.statusCode == 200) { + debugPrint('✅ API docs available at: ${serverConfig.url}$endpoint'); + if (response.data is String && + response.data.toString().contains('swagger')) { + debugPrint(' This appears to be Swagger documentation'); + } + } + } catch (e) { + debugPrint('❌ No docs at $endpoint'); + } + } + debugPrint('=== END API DOCS CHECK ==='); + } + + void dispose() { + _wsChannel?.sink.close(); + _wsChannel = null; + } + + // Helper method to get current weekday name + // ==================== ADVANCED CHAT FEATURES ==================== + // Chat import/export, bulk operations, and advanced search + + /// Import chat data from external sources + Future>> importChats({ + required List> chatsData, + String? folderId, + bool overwriteExisting = false, + }) async { + debugPrint('DEBUG: Importing ${chatsData.length} chats'); + final response = await _dio.post( + '/api/v1/chats/import', + data: { + 'chats': chatsData, + if (folderId != null) 'folder_id': folderId, + 'overwrite_existing': overwriteExisting, + }, + ); + final data = response.data; + if (data is List) { + return data.cast>(); + } + return []; + } + + /// Export chat data for backup or migration + Future>> exportChats({ + List? chatIds, + String? folderId, + bool includeMessages = true, + String? format, + }) async { + debugPrint( + 'DEBUG: Exporting chats${chatIds != null ? ' (${chatIds.length} chats)' : ''}', + ); + final queryParams = {}; + if (chatIds != null) queryParams['chat_ids'] = chatIds.join(','); + if (folderId != null) queryParams['folder_id'] = folderId; + if (!includeMessages) queryParams['include_messages'] = false; + if (format != null) queryParams['format'] = format; + + final response = await _dio.get( + '/api/v1/chats/export', + queryParameters: queryParams, + ); + final data = response.data; + if (data is List) { + return data.cast>(); + } + return []; + } + + /// Archive all chats in bulk + Future> archiveAllChats({ + List? excludeIds, + String? beforeDate, + }) async { + debugPrint('DEBUG: Archiving all chats in bulk'); + final response = await _dio.post( + '/api/v1/chats/archive/all', + data: { + if (excludeIds != null) 'exclude_ids': excludeIds, + if (beforeDate != null) 'before_date': beforeDate, + }, + ); + return response.data as Map; + } + + /// Delete all chats in bulk + Future> deleteAllChats({ + List? excludeIds, + String? beforeDate, + bool archived = false, + }) async { + debugPrint('DEBUG: Deleting all chats in bulk (archived: $archived)'); + final response = await _dio.post( + '/api/v1/chats/delete/all', + data: { + if (excludeIds != null) 'exclude_ids': excludeIds, + if (beforeDate != null) 'before_date': beforeDate, + 'archived_only': archived, + }, + ); + return response.data as Map; + } + + /// Get pinned chats + Future> getPinnedChats() async { + debugPrint('DEBUG: Fetching pinned chats'); + final response = await _dio.get('/api/v1/chats/pinned'); + final data = response.data; + if (data is List) { + return data.map((chatData) => _parseOpenWebUIChat(chatData)).toList(); + } + return []; + } + + /// Get archived chats + Future> getArchivedChats({int? limit, int? offset}) async { + debugPrint('DEBUG: Fetching archived chats'); + final queryParams = {}; + if (limit != null) queryParams['limit'] = limit; + if (offset != null) queryParams['offset'] = offset; + + final response = await _dio.get( + '/api/v1/chats/archived', + queryParameters: queryParams, + ); + final data = response.data; + if (data is List) { + return data.map((chatData) => _parseOpenWebUIChat(chatData)).toList(); + } + return []; + } + + /// Advanced search for chats and messages + Future> searchChats({ + String? query, + String? userId, + String? model, + String? tag, + String? folderId, + DateTime? fromDate, + DateTime? toDate, + bool? pinned, + bool? archived, + int? limit, + int? offset, + String? sortBy, + String? sortOrder, + }) async { + debugPrint('DEBUG: Searching chats with query: $query'); + final queryParams = {}; + if (query != null) queryParams['q'] = query; + if (userId != null) queryParams['user_id'] = userId; + if (model != null) queryParams['model'] = model; + if (tag != null) queryParams['tag'] = tag; + if (folderId != null) queryParams['folder_id'] = folderId; + if (fromDate != null) queryParams['from_date'] = fromDate.toIso8601String(); + if (toDate != null) queryParams['to_date'] = toDate.toIso8601String(); + if (pinned != null) queryParams['pinned'] = pinned; + if (archived != null) queryParams['archived'] = archived; + if (limit != null) queryParams['limit'] = limit; + if (offset != null) queryParams['offset'] = offset; + if (sortBy != null) queryParams['sort_by'] = sortBy; + if (sortOrder != null) queryParams['sort_order'] = sortOrder; + + final response = await _dio.get( + '/api/v1/chats/search', + queryParameters: queryParams, + ); + return response.data as Map; + } + + /// Search within messages content + Future>> searchMessages({ + required String query, + String? chatId, + String? userId, + String? role, // 'user' or 'assistant' + DateTime? fromDate, + DateTime? toDate, + int? limit, + int? offset, + }) async { + debugPrint('DEBUG: Searching messages with query: $query'); + final response = await _dio.post( + '/api/v1/chats/messages/search', + data: { + 'query': query, + if (chatId != null) 'chat_id': chatId, + if (userId != null) 'user_id': userId, + if (role != null) 'role': role, + if (fromDate != null) 'from_date': fromDate.toIso8601String(), + if (toDate != null) 'to_date': toDate.toIso8601String(), + if (limit != null) 'limit': limit, + if (offset != null) 'offset': offset, + }, + ); + final data = response.data; + if (data is List) { + return data.cast>(); + } + return []; + } + + /// Get chat statistics and analytics + Future> getChatStats({ + String? userId, + DateTime? fromDate, + DateTime? toDate, + }) async { + debugPrint('DEBUG: Fetching chat statistics'); + final queryParams = {}; + if (userId != null) queryParams['user_id'] = userId; + if (fromDate != null) queryParams['from_date'] = fromDate.toIso8601String(); + if (toDate != null) queryParams['to_date'] = toDate.toIso8601String(); + + final response = await _dio.get( + '/api/v1/chats/stats', + queryParameters: queryParams, + ); + return response.data as Map; + } + + /// Duplicate/copy a chat + Future duplicateChat(String chatId, {String? title}) async { + debugPrint('DEBUG: Duplicating chat: $chatId'); + final response = await _dio.post( + '/api/v1/chats/$chatId/duplicate', + data: {if (title != null) 'title': title}, + ); + return _parseFullOpenWebUIChat(response.data as Map); + } + + /// Get recent chats with activity + Future> getRecentChats({int limit = 10, int? days}) async { + debugPrint('DEBUG: Fetching recent chats (limit: $limit)'); + final queryParams = {'limit': limit}; + if (days != null) queryParams['days'] = days; + + final response = await _dio.get( + '/api/v1/chats/recent', + queryParameters: queryParams, + ); + final data = response.data; + if (data is List) { + return data.map((chatData) => _parseOpenWebUIChat(chatData)).toList(); + } + return []; + } + + /// Get chat history with pagination and filters + Future> getChatHistory({ + int? limit, + int? offset, + String? cursor, + String? model, + String? tag, + bool? pinned, + bool? archived, + String? sortBy, + String? sortOrder, + }) async { + debugPrint('DEBUG: Fetching chat history with filters'); + final queryParams = {}; + if (limit != null) queryParams['limit'] = limit; + if (offset != null) queryParams['offset'] = offset; + if (cursor != null) queryParams['cursor'] = cursor; + if (model != null) queryParams['model'] = model; + if (tag != null) queryParams['tag'] = tag; + if (pinned != null) queryParams['pinned'] = pinned; + if (archived != null) queryParams['archived'] = archived; + if (sortBy != null) queryParams['sort_by'] = sortBy; + if (sortOrder != null) queryParams['sort_order'] = sortOrder; + + final response = await _dio.get( + '/api/v1/chats/history', + queryParameters: queryParams, + ); + return response.data as Map; + } + + /// Batch operations on multiple chats + Future> batchChatOperation({ + required List chatIds, + required String + operation, // 'archive', 'delete', 'pin', 'unpin', 'move_to_folder' + Map? params, + }) async { + debugPrint( + 'DEBUG: Performing batch operation "$operation" on ${chatIds.length} chats', + ); + final response = await _dio.post( + '/api/v1/chats/batch', + data: { + 'chat_ids': chatIds, + 'operation': operation, + if (params != null) 'params': params, + }, + ); + return response.data as Map; + } + + /// Get suggested prompts based on chat history + Future> getChatSuggestions({ + String? context, + int limit = 5, + }) async { + debugPrint('DEBUG: Fetching chat suggestions'); + final queryParams = {'limit': limit}; + if (context != null) queryParams['context'] = context; + + final response = await _dio.get( + '/api/v1/chats/suggestions', + queryParameters: queryParams, + ); + final data = response.data; + if (data is List) { + return data.cast(); + } + return []; + } + + /// Get chat templates for quick starts + Future>> getChatTemplates({ + String? category, + String? tag, + }) async { + debugPrint('DEBUG: Fetching chat templates'); + final queryParams = {}; + if (category != null) queryParams['category'] = category; + if (tag != null) queryParams['tag'] = tag; + + final response = await _dio.get( + '/api/v1/chats/templates', + queryParameters: queryParams, + ); + final data = response.data; + if (data is List) { + return data.cast>(); + } + return []; + } + + /// Create a chat from template + Future createChatFromTemplate( + String templateId, { + Map? variables, + String? title, + }) async { + debugPrint('DEBUG: Creating chat from template: $templateId'); + final response = await _dio.post( + '/api/v1/chats/templates/$templateId/create', + data: { + if (variables != null) 'variables': variables, + if (title != null) 'title': title, + }, + ); + return _parseFullOpenWebUIChat(response.data as Map); + } + + // ==================== END ADVANCED CHAT FEATURES ==================== + + // Enhanced streaming method that uses improved SSE (like OpenWebUI) and Socket.IO fallback + ({Stream stream, String messageId, String sessionId}) + sendMessageWithStreaming({ + required List> messages, + required String model, + String? conversationId, + List>? tools, + bool enableWebSearch = false, + Map? modelItem, + bool preferSocketIO = false, // Changed default to false - SSE is primary + }) { + debugPrint('DEBUG: Starting streaming with SSE as primary method'); + + // Use improved SSE streaming as primary method (matches OpenWebUI exactly) + return sendMessageDirect( + messages: messages, + model: model, + conversationId: conversationId, + tools: tools, + enableWebSearch: enableWebSearch, + modelItem: modelItem, + ); + } + + // Enhanced streaming method with Socket.IO preference + ({Stream stream, String messageId, String sessionId}) + sendMessageWithEnhancedStreaming({ + required List> messages, + required String model, + String? conversationId, + List>? tools, + bool enableWebSearch = false, + Map? modelItem, + bool preferSocketIO = true, + }) { + debugPrint( + 'DEBUG: Starting enhanced streaming with preferSocketIO: $preferSocketIO', + ); + + // Try Socket.IO first if preferred and available + if (preferSocketIO) { + try { + debugPrint('DEBUG: Attempting Socket.IO streaming...'); + return sendMessageWithSocketIO( + messages: messages, + model: model, + conversationId: conversationId, + tools: tools, + enableWebSearch: enableWebSearch, + modelItem: modelItem, + ); + } catch (e) { + debugPrint( + 'DEBUG: Socket.IO streaming failed, falling back to SSE: $e', + ); + // Fall through to SSE + } + } + + // Use SSE streaming as fallback + debugPrint('DEBUG: Using SSE streaming as fallback'); + return sendMessageDirect( + messages: messages, + model: model, + conversationId: conversationId, + tools: tools, + enableWebSearch: enableWebSearch, + modelItem: modelItem, + ); + } +} diff --git a/lib/core/services/attachment_upload_queue.dart b/lib/core/services/attachment_upload_queue.dart new file mode 100644 index 0000000..47b98e7 --- /dev/null +++ b/lib/core/services/attachment_upload_queue.dart @@ -0,0 +1,347 @@ +import 'dart:async'; +import 'dart:convert'; +import 'dart:math'; +import 'package:dio/dio.dart'; +import 'package:flutter/foundation.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +/// Status of a queued attachment upload +enum QueuedAttachmentStatus { pending, uploading, completed, failed, cancelled } + +/// Metadata for a queued attachment +class QueuedAttachment { + final String id; // local queue id + final String filePath; + final String fileName; + final int fileSize; + final String? mimeType; + final String? checksum; + final DateTime enqueuedAt; + + // Upload state + int retryCount; + DateTime? nextRetryAt; + QueuedAttachmentStatus status; + String? lastError; + String? fileId; // server-side file id once uploaded + + QueuedAttachment({ + required this.id, + required this.filePath, + required this.fileName, + required this.fileSize, + this.mimeType, + this.checksum, + DateTime? enqueuedAt, + this.retryCount = 0, + this.nextRetryAt, + this.status = QueuedAttachmentStatus.pending, + this.lastError, + this.fileId, + }) : enqueuedAt = enqueuedAt ?? DateTime.now(); + + Map toJson() => { + 'id': id, + 'filePath': filePath, + 'fileName': fileName, + 'fileSize': fileSize, + 'mimeType': mimeType, + 'checksum': checksum, + 'enqueuedAt': enqueuedAt.toIso8601String(), + 'retryCount': retryCount, + 'nextRetryAt': nextRetryAt?.toIso8601String(), + 'status': status.name, + 'lastError': lastError, + 'fileId': fileId, + }; + + factory QueuedAttachment.fromJson(Map json) => + QueuedAttachment( + id: json['id'] as String, + filePath: json['filePath'] as String, + fileName: json['fileName'] as String, + fileSize: (json['fileSize'] as num).toInt(), + mimeType: json['mimeType'] as String?, + checksum: json['checksum'] as String?, + enqueuedAt: + DateTime.tryParse(json['enqueuedAt'] ?? '') ?? DateTime.now(), + retryCount: (json['retryCount'] as num?)?.toInt() ?? 0, + nextRetryAt: json['nextRetryAt'] != null + ? DateTime.tryParse(json['nextRetryAt']) + : null, + status: QueuedAttachmentStatus.values.firstWhere( + (e) => e.name == json['status'], + orElse: () => QueuedAttachmentStatus.pending, + ), + lastError: json['lastError'] as String?, + fileId: json['fileId'] as String?, + ); + + QueuedAttachment copyWith({ + int? retryCount, + DateTime? nextRetryAt, + QueuedAttachmentStatus? status, + String? lastError, + String? fileId, + }) => QueuedAttachment( + id: id, + filePath: filePath, + fileName: fileName, + fileSize: fileSize, + mimeType: mimeType, + checksum: checksum, + enqueuedAt: enqueuedAt, + retryCount: retryCount ?? this.retryCount, + nextRetryAt: nextRetryAt ?? this.nextRetryAt, + status: status ?? this.status, + lastError: lastError ?? this.lastError, + fileId: fileId ?? this.fileId, + ); +} + +typedef UploadCallback = + Future Function(String filePath, String fileName); +typedef AttachmentsEventCallback = void Function(List queue); + +/// A lightweight background queue to upload attachments when back online. +class AttachmentUploadQueue { + static final AttachmentUploadQueue _instance = + AttachmentUploadQueue._internal(); + factory AttachmentUploadQueue() => _instance; + AttachmentUploadQueue._internal(); + + static const String _prefsKey = 'attachment_upload_queue'; + static const int _maxRetries = 4; + static const Duration _baseRetryDelay = Duration(seconds: 5); + static const Duration _maxRetryDelay = Duration(minutes: 5); + + SharedPreferences? _prefs; + final List _queue = []; + Timer? _retryTimer; + bool _isProcessing = false; + + // Dependencies + UploadCallback? _onUpload; + AttachmentsEventCallback? _onQueueChanged; + + // Streams + final _queueController = StreamController>.broadcast(); + Stream> get queueStream => _queueController.stream; + + List get queue => List.unmodifiable(_queue); + + Future initialize({ + required UploadCallback onUpload, + AttachmentsEventCallback? onQueueChanged, + }) async { + _onUpload = onUpload; + _onQueueChanged = onQueueChanged; + _prefs ??= await SharedPreferences.getInstance(); + await _load(); + _startPeriodicProcessing(); + debugPrint( + 'DEBUG: AttachmentUploadQueue initialized with ${_queue.length} items', + ); + } + + Future enqueue({ + required String filePath, + required String fileName, + required int fileSize, + String? mimeType, + String? checksum, + }) async { + final id = DateTime.now().microsecondsSinceEpoch.toString(); + final item = QueuedAttachment( + id: id, + filePath: filePath, + fileName: fileName, + fileSize: fileSize, + mimeType: mimeType, + checksum: checksum, + status: QueuedAttachmentStatus.pending, + ); + _queue.add(item); + await _save(); + _notify(); + _processSafe(); + return id; + } + + Future processQueue() async { + if (_isProcessing) return; + if (_onUpload == null) return; + + _isProcessing = true; + try { + // Quick network probe using Dio HEAD to common health path if possible + final dio = Dio(); + try { + await dio.head('/api/health').timeout(const Duration(seconds: 3)); + } catch (_) { + // Best effort; continue and let upload fail if actually offline + } + + final now = DateTime.now(); + final pending = _queue.where( + (e) => + (e.status == QueuedAttachmentStatus.pending || + e.status == QueuedAttachmentStatus.failed) && + (e.nextRetryAt == null || now.isAfter(e.nextRetryAt!)), + ); + + for (final item in List.from(pending)) { + await _processSingle(item); + } + } finally { + _isProcessing = false; + } + } + + Future _processSingle(QueuedAttachment item) async { + if (_onUpload == null) return; + try { + _update(item.id, item.copyWith(status: QueuedAttachmentStatus.uploading)); + + final fileId = await _onUpload!.call(item.filePath, item.fileName); + + _update( + item.id, + item.copyWith( + status: QueuedAttachmentStatus.completed, + fileId: fileId, + retryCount: 0, + nextRetryAt: null, + lastError: null, + ), + ); + + await _save(); + _notify(); + debugPrint( + 'DEBUG: Attachment ${item.id} uploaded successfully (fileId=$fileId)', + ); + } catch (e) { + final retries = item.retryCount + 1; + if (retries >= _maxRetries) { + _update( + item.id, + item.copyWith( + status: QueuedAttachmentStatus.failed, + retryCount: retries, + lastError: e.toString(), + ), + ); + await _save(); + _notify(); + debugPrint( + 'WARNING: Attachment ${item.id} failed after $_maxRetries attempts', + ); + return; + } + + final delay = _retryDelayWithJitter(retries); + _update( + item.id, + item.copyWith( + status: QueuedAttachmentStatus.pending, + retryCount: retries, + nextRetryAt: DateTime.now().add(delay), + lastError: e.toString(), + ), + ); + await _save(); + _notify(); + debugPrint( + 'DEBUG: Scheduled retry for attachment ${item.id} in ${delay.inSeconds}s', + ); + } + } + + Duration _retryDelayWithJitter(int retryCount) { + final base = _baseRetryDelay.inMilliseconds; + final exp = min( + base * pow(2, retryCount - 1), + _maxRetryDelay.inMilliseconds.toDouble(), + ).toInt(); + final jitter = Random().nextInt(1000); // up to 1s jitter + return Duration(milliseconds: exp + jitter); + } + + void _startPeriodicProcessing() { + _retryTimer?.cancel(); + _retryTimer = Timer.periodic( + const Duration(seconds: 10), + (_) => _processSafe(), + ); + // Also kick once after a short delay + Timer(const Duration(milliseconds: 500), _processSafe); + } + + void _processSafe() { + // Fire and forget + unawaited(processQueue()); + } + + void _update(String id, QueuedAttachment updated) { + final idx = _queue.indexWhere((e) => e.id == id); + if (idx != -1) { + _queue[idx] = updated; + } + } + + Future remove(String id) async { + _queue.removeWhere((e) => e.id == id); + await _save(); + _notify(); + } + + Future retry(String id) async { + final idx = _queue.indexWhere((e) => e.id == id); + if (idx == -1) return; + _queue[idx] = _queue[idx].copyWith( + status: QueuedAttachmentStatus.pending, + retryCount: 0, + nextRetryAt: null, + lastError: null, + ); + await _save(); + _notify(); + _processSafe(); + } + + Future clearFailed() async { + _queue.removeWhere((e) => e.status == QueuedAttachmentStatus.failed); + await _save(); + _notify(); + } + + Future clearAll() async { + _queue.clear(); + await _save(); + _notify(); + } + + // Utilities + Future _load() async { + final jsonStr = (_prefs ?? await SharedPreferences.getInstance()).getString( + _prefsKey, + ); + if (jsonStr == null || jsonStr.isEmpty) return; + final list = (jsonDecode(jsonStr) as List).cast>(); + _queue + ..clear() + ..addAll(list.map(QueuedAttachment.fromJson)); + } + + Future _save() async { + final prefs = _prefs ?? await SharedPreferences.getInstance(); + final list = _queue.map((e) => e.toJson()).toList(growable: false); + await prefs.setString(_prefsKey, jsonEncode(list)); + } + + void _notify() { + _onQueueChanged?.call(queue); + _queueController.add(queue); + } +} diff --git a/lib/core/services/connectivity_service.dart b/lib/core/services/connectivity_service.dart new file mode 100644 index 0000000..a922d39 --- /dev/null +++ b/lib/core/services/connectivity_service.dart @@ -0,0 +1,118 @@ +import 'dart:async'; +import 'dart:io'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:dio/dio.dart'; +import '../providers/app_providers.dart'; + +enum ConnectivityStatus { online, offline, checking } + +class ConnectivityService { + final Dio _dio; + Timer? _connectivityTimer; + final _connectivityController = + StreamController.broadcast(); + ConnectivityStatus _lastStatus = ConnectivityStatus.checking; + + ConnectivityService(this._dio) { + _startConnectivityMonitoring(); + } + + Stream get connectivityStream => + _connectivityController.stream; + ConnectivityStatus get currentStatus => _lastStatus; + + void _startConnectivityMonitoring() { + // Initial check after a brief delay to avoid showing offline during startup + Timer(const Duration(milliseconds: 1000), () { + _checkConnectivity(); + }); + + // Check every 5 seconds + _connectivityTimer = Timer.periodic(const Duration(seconds: 5), (_) { + _checkConnectivity(); + }); + } + + Future _checkConnectivity() async { + try { + // DNS lookup is a lightweight, permission-free reachability check + final result = await InternetAddress.lookup( + 'google.com', + ).timeout(const Duration(seconds: 3)); + + if (result.isNotEmpty && result[0].rawAddress.isNotEmpty) { + _updateStatus(ConnectivityStatus.online); + return; + } + } catch (_) { + // Swallow and continue to HTTP reachability check + } + + // As a secondary check, hit a public 204 endpoint that returns quickly + try { + await _dio + .get( + 'https://www.google.com/generate_204', + options: Options( + method: 'GET', + sendTimeout: const Duration(seconds: 3), + receiveTimeout: const Duration(seconds: 3), + followRedirects: false, + validateStatus: (status) => status != null && status < 400, + ), + ) + .timeout(const Duration(seconds: 3)); + _updateStatus(ConnectivityStatus.online); + } catch (_) { + _updateStatus(ConnectivityStatus.offline); + } + } + + void _updateStatus(ConnectivityStatus status) { + if (_lastStatus != status) { + _lastStatus = status; + _connectivityController.add(status); + } + } + + Future checkConnectivity() async { + await _checkConnectivity(); + return _lastStatus == ConnectivityStatus.online; + } + + void dispose() { + _connectivityTimer?.cancel(); + _connectivityController.close(); + } +} + +// Providers +final connectivityServiceProvider = Provider((ref) { + final dio = ref.watch(dioProvider); + final service = ConnectivityService(dio); + ref.onDispose(() => service.dispose()); + return service; +}); + +final connectivityStatusProvider = StreamProvider((ref) { + final service = ref.watch(connectivityServiceProvider); + return service.connectivityStream; +}); + +final isOnlineProvider = Provider((ref) { + // In reviewer mode, treat app as online to enable flows + final reviewerMode = ref.watch(reviewerModeProvider); + if (reviewerMode) return true; + final status = ref.watch(connectivityStatusProvider); + return status.when( + data: (status) => status == ConnectivityStatus.online, + loading: () => true, // Assume online while checking + error: (_, _) => + true, // Assume online on error to avoid false offline states + ); +}); + +// Dio provider (if not already defined elsewhere) +final dioProvider = Provider((ref) { + return Dio(); // This should be configured with your base URL +}); diff --git a/lib/core/services/deep_link_service.dart b/lib/core/services/deep_link_service.dart new file mode 100644 index 0000000..9ce110a --- /dev/null +++ b/lib/core/services/deep_link_service.dart @@ -0,0 +1,67 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; + +import '../../features/chat/views/chat_page.dart'; +import '../../features/files/views/files_page.dart'; +import '../../features/profile/views/profile_page.dart'; + +/// Service for handling deep links and navigation routing +class DeepLinkService { + /// Route to chat tab + static void navigateToChat(BuildContext context) { + Navigator.pushAndRemoveUntil( + context, + MaterialPageRoute(builder: (context) => const ChatPage()), + (route) => false, + ); + } + + /// In single-screen mode, files/profile deep links route via navigator + static void navigateToFiles(BuildContext context) { + Navigator.push( + context, + MaterialPageRoute(builder: (context) => const FilesPage()), + ); + } + + static void navigateToProfile(BuildContext context) { + Navigator.push( + context, + MaterialPageRoute(builder: (context) => const ProfilePage()), + ); + } + + /// Parse route and determine target tab + static String? parsePath(String route) { + switch (route) { + case '/chat': + case '/main/chat': + return '/chat'; + case '/files': + case '/main/files': + return '/files'; + case '/profile': + case '/main/profile': + return '/profile'; + default: + return null; + } + } + + /// Handle deep link navigation + static Widget handleDeepLink(String route) { + final path = parsePath(route); + switch (path) { + case '/files': + return const FilesPage(); + case '/profile': + return const ProfilePage(); + case '/chat': + default: + return const ChatPage(); + } + } +} + +/// Provider for deep link navigation +final deepLinkProvider = Provider((ref) => DeepLinkService()); diff --git a/lib/core/services/enhanced_accessibility_service.dart b/lib/core/services/enhanced_accessibility_service.dart new file mode 100644 index 0000000..01bf7dd --- /dev/null +++ b/lib/core/services/enhanced_accessibility_service.dart @@ -0,0 +1,396 @@ +import 'dart:math' as math; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter/semantics.dart'; +import '../../shared/theme/app_theme.dart'; +import '../../shared/theme/theme_extensions.dart'; + +/// Enhanced accessibility service for WCAG 2.2 AA compliance +class EnhancedAccessibilityService { + /// Announce text to screen readers + static void announce( + String message, { + TextDirection textDirection = TextDirection.ltr, + }) { + SemanticsService.announce(message, textDirection); + } + + /// Announce loading state + static void announceLoading(String loadingMessage) { + announce('Loading: $loadingMessage'); + } + + /// Announce error with helpful context + static void announceError(String error, {String? suggestion}) { + final message = suggestion != null + ? 'Error: $error. $suggestion' + : 'Error: $error'; + announce(message); + } + + /// Announce success with context + static void announceSuccess(String successMessage) { + announce('Success: $successMessage'); + } + + /// Check if reduce motion is enabled + static bool shouldReduceMotion(BuildContext context) { + return MediaQuery.of(context).disableAnimations; + } + + /// Get appropriate animation duration based on motion settings + static Duration getAnimationDuration( + BuildContext context, + Duration defaultDuration, + ) { + return shouldReduceMotion(context) ? Duration.zero : defaultDuration; + } + + /// Get text scale factor with bounds for accessibility + static double getBoundedTextScaleFactor(BuildContext context) { + final textScaler = MediaQuery.of(context).textScaler; + final textScaleFactor = textScaler.scale(1.0); + // Ensure text doesn't get too small or too large + return textScaleFactor.clamp(0.8, 3.0); + } + + /// Create accessible button with proper semantics + static Widget createAccessibleButton({ + required Widget child, + required VoidCallback? onPressed, + required String semanticLabel, + String? semanticHint, + bool isDestructive = false, + }) { + return Builder( + builder: (context) => Semantics( + label: semanticLabel, + hint: semanticHint, + button: true, + enabled: onPressed != null, + child: ElevatedButton( + onPressed: onPressed, + style: ElevatedButton.styleFrom( + minimumSize: const Size(44, 44), // WCAG minimum touch target + backgroundColor: isDestructive ? context.conduitTheme.error : null, + ), + child: child, + ), + ), + ); + } + + /// Create accessible icon button with proper semantics + static Widget createAccessibleIconButton({ + required IconData icon, + required VoidCallback? onPressed, + required String semanticLabel, + String? semanticHint, + Color? iconColor, + double iconSize = 24, + }) { + return Semantics( + label: semanticLabel, + hint: semanticHint, + button: true, + enabled: onPressed != null, + child: SizedBox( + width: 44, // Minimum touch target + height: 44, + child: IconButton( + onPressed: onPressed, + icon: Icon(icon, size: iconSize, color: iconColor), + padding: EdgeInsets.zero, + ), + ), + ); + } + + /// Create accessible text field with proper labels + static Widget createAccessibleTextField({ + required String label, + TextEditingController? controller, + String? hintText, + String? errorText, + bool isRequired = false, + TextInputType? keyboardType, + bool obscureText = false, + ValueChanged? onChanged, + }) { + final effectiveLabel = isRequired ? '$label *' : label; + + return Semantics( + label: effectiveLabel, + hint: hintText, + textField: true, + child: TextFormField( + controller: controller, + keyboardType: keyboardType, + obscureText: obscureText, + onChanged: onChanged, + decoration: InputDecoration( + labelText: effectiveLabel, + hintText: hintText, + errorText: errorText, + helperText: isRequired ? '* Required field' : null, + prefixIcon: errorText != null + ? Builder( + builder: (context) => Icon( + Icons.error_outline, + color: context.conduitTheme.error, + ), + ) + : null, + ), + ), + ); + } + + /// Create accessible card with proper semantics + static Widget createAccessibleCard({ + required Widget child, + VoidCallback? onTap, + String? semanticLabel, + String? semanticHint, + bool isSelected = false, + }) { + return Semantics( + label: semanticLabel, + hint: semanticHint, + button: onTap != null, + selected: isSelected, + child: Card( + child: InkWell( + onTap: onTap, + child: Padding( + padding: const EdgeInsets.all(Spacing.md), + child: child, + ), + ), + ), + ); + } + + /// Create accessible loading indicator + static Widget createAccessibleLoadingIndicator({ + String? loadingMessage, + double size = 24, + }) { + return Semantics( + label: loadingMessage ?? 'Loading', + liveRegion: true, + child: SizedBox( + width: size, + height: size, + child: const CircularProgressIndicator(), + ), + ); + } + + /// Create accessible image with alt text + static Widget createAccessibleImage({ + required ImageProvider image, + required String altText, + bool isDecorative = false, + double? width, + double? height, + BoxFit fit = BoxFit.cover, + }) { + if (isDecorative) { + return Semantics( + excludeSemantics: true, + child: Image(image: image, width: width, height: height, fit: fit), + ); + } + + return Semantics( + label: altText, + image: true, + child: Image(image: image, width: width, height: height, fit: fit), + ); + } + + /// Create accessible toggle switch + static Widget createAccessibleSwitch({ + required bool value, + required ValueChanged? onChanged, + required String label, + String? description, + }) { + return Builder( + builder: (context) => Semantics( + label: label, + value: value ? 'On' : 'Off', + hint: description, + toggled: value, + onTap: onChanged != null ? () => onChanged(!value) : null, + child: SwitchListTile( + title: Text( + label, + style: TextStyle(color: context.conduitTheme.textPrimary), + ), + subtitle: description != null + ? Text( + description, + style: TextStyle(color: context.conduitTheme.textSecondary), + ) + : null, + value: value, + onChanged: onChanged, + ), + ), + ); + } + + /// Create accessible slider + static Widget createAccessibleSlider({ + required double value, + required ValueChanged? onChanged, + required String label, + double min = 0.0, + double max = 1.0, + int? divisions, + String Function(double)? valueFormatter, + }) { + final formattedValue = + valueFormatter?.call(value) ?? value.toStringAsFixed(1); + + return Semantics( + label: label, + value: formattedValue, + increasedValue: + valueFormatter?.call((value + 0.1).clamp(min, max)) ?? + (value + 0.1).clamp(min, max).toStringAsFixed(1), + decreasedValue: + valueFormatter?.call((value - 0.1).clamp(min, max)) ?? + (value - 0.1).clamp(min, max).toStringAsFixed(1), + onIncrease: onChanged != null + ? () => onChanged((value + 0.1).clamp(min, max)) + : null, + onDecrease: onChanged != null + ? () => onChanged((value - 0.1).clamp(min, max)) + : null, + child: Slider( + value: value, + min: min, + max: max, + divisions: divisions, + onChanged: onChanged, + label: formattedValue, + ), + ); + } + + /// Create accessible modal with focus management + static Future showAccessibleModal({ + required BuildContext context, + required Widget child, + required String title, + bool barrierDismissible = true, + }) { + return showDialog( + context: context, + barrierDismissible: barrierDismissible, + builder: (context) => Semantics( + scopesRoute: true, + explicitChildNodes: true, + label: 'Dialog: $title', + child: AlertDialog( + title: Semantics(header: true, child: Text(title)), + content: child, + ), + ), + ); + } + + /// Check color contrast ratio (simplified implementation) + static bool hasGoodContrast(Color foreground, Color background) { + // Simplified contrast calculation + final fgLuminance = _getLuminance(foreground); + final bgLuminance = _getLuminance(background); + + final lighter = fgLuminance > bgLuminance ? fgLuminance : bgLuminance; + final darker = fgLuminance > bgLuminance ? bgLuminance : fgLuminance; + + final contrast = (lighter + 0.05) / (darker + 0.05); + + // WCAG AA requires 4.5:1 for normal text, 3:1 for large text + return contrast >= 4.5; + } + + /// Calculate relative luminance of a color + static double _getLuminance(Color color) { + final r = _gammaCorrect((color.r * 255.0).round() / 255.0); + final g = _gammaCorrect((color.g * 255.0).round() / 255.0); + final b = _gammaCorrect((color.b * 255.0).round() / 255.0); + + return 0.2126 * r + 0.7152 * g + 0.0722 * b; + } + + /// Apply gamma correction + static double _gammaCorrect(double value) { + return value <= 0.03928 + ? value / 12.92 + : math.pow((value + 0.055) / 1.055, 2.4).toDouble(); + } + + /// Provide haptic feedback if available + static void hapticFeedback() { + HapticFeedback.lightImpact(); + } + + /// Create accessible focus border + static BoxDecoration createFocusBorder({ + required bool hasFocus, + Color? focusColor, + double borderWidth = 2.0, + BorderRadius? borderRadius, + }) { + return BoxDecoration( + border: hasFocus + ? Border.all( + color: + focusColor ?? + AppTheme.brandPrimary, // Brand primary as fallback + width: borderWidth, + ) + : null, + borderRadius: borderRadius, + ); + } + + /// Create accessible text with proper scaling + static Widget createAccessibleText( + String text, { + TextStyle? style, + TextAlign? textAlign, + bool isHeader = false, + int? maxLines, + }) { + return Builder( + builder: (context) { + final textScaleFactor = getBoundedTextScaleFactor(context); + + Widget textWidget = Text( + text, + style: + style?.copyWith( + fontSize: style.fontSize != null + ? style.fontSize! * textScaleFactor + : null, + ) ?? + TextStyle(fontSize: AppTypography.bodyLarge * textScaleFactor), + textAlign: textAlign, + maxLines: maxLines, + overflow: maxLines != null ? TextOverflow.ellipsis : null, + ); + + if (isHeader) { + textWidget = Semantics(header: true, child: textWidget); + } + + return textWidget; + }, + ); + } +} diff --git a/lib/core/services/error_handling_service.dart b/lib/core/services/error_handling_service.dart new file mode 100644 index 0000000..07c0b40 --- /dev/null +++ b/lib/core/services/error_handling_service.dart @@ -0,0 +1,241 @@ +import 'package:flutter/material.dart'; +import '../../shared/theme/theme_extensions.dart'; +import '../../shared/widgets/themed_dialogs.dart'; +import 'user_friendly_error_handler.dart'; + +class ErrorHandlingService { + static final _userFriendlyHandler = UserFriendlyErrorHandler(); + + static String getErrorMessage(dynamic error) { + // Use the enhanced user-friendly error handler + return _userFriendlyHandler.getUserMessage(error); + } + + /// Get recovery actions for an error + static List getRecoveryActions(dynamic error) { + return _userFriendlyHandler.getRecoveryActions(error); + } + + static void showErrorSnackBar( + BuildContext context, + dynamic error, { + VoidCallback? onRetry, + String? customMessage, + }) { + if (customMessage != null) { + // Use custom message if provided + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text(customMessage), + backgroundColor: context.conduitTheme.error, + behavior: SnackBarBehavior.floating, + action: onRetry != null + ? SnackBarAction( + label: 'Retry', + textColor: context.conduitTheme.textInverse, + onPressed: onRetry, + ) + : null, + duration: const Duration(seconds: 4), + ), + ); + } else { + // Use enhanced error handler + _userFriendlyHandler.showErrorSnackbar(context, error, onRetry: onRetry); + } + } + + /// Show enhanced error dialog with recovery options + static Future showErrorDialog( + BuildContext context, + dynamic error, { + VoidCallback? onRetry, + bool showDetails = false, + }) async { + return _userFriendlyHandler.showErrorDialog( + context, + error, + onRetry: onRetry, + showDetails: showDetails, + ); + } + + static void showSuccessSnackBar( + BuildContext context, + String message, { + Duration? duration, + }) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text(message), + backgroundColor: context.conduitTheme.success, + behavior: SnackBarBehavior.floating, + duration: duration ?? const Duration(seconds: 2), + ), + ); + } + + static Future showConfirmationDialog( + BuildContext context, { + required String title, + required String content, + String confirmText = 'Confirm', + String cancelText = 'Cancel', + bool isDestructive = false, + }) async { + return await ThemedDialogs.confirm( + context, + title: title, + message: content, + confirmText: confirmText, + cancelText: cancelText, + isDestructive: isDestructive, + ); + } + + static Widget buildErrorWidget({ + required String message, + VoidCallback? onRetry, + IconData? icon, + dynamic error, + }) { + if (error != null) { + // Use enhanced error handler for full error objects + return _userFriendlyHandler.buildErrorWidget(error, onRetry: onRetry); + } + + // Fallback to legacy implementation for string messages + return Builder( + builder: (context) { + final theme = Theme.of(context); + return Center( + child: Padding( + padding: const EdgeInsets.all(Spacing.lg), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + icon ?? Icons.error_outline, + size: Spacing.xxxl, + color: theme.colorScheme.error, + ), + const SizedBox(height: Spacing.md), + Text( + 'Something went wrong', + style: theme.textTheme.headlineSmall?.copyWith( + color: theme.colorScheme.error, + ), + textAlign: TextAlign.center, + ), + const SizedBox(height: Spacing.sm), + Text( + message, + style: theme.textTheme.bodyMedium, + textAlign: TextAlign.center, + ), + if (onRetry != null) ...[ + const SizedBox(height: Spacing.lg), + ElevatedButton.icon( + onPressed: onRetry, + icon: const Icon(Icons.refresh), + label: const Text('Try Again'), + ), + ], + ], + ), + ), + ); + }, + ); + } + + /// Build enhanced error widget with recovery actions + static Widget buildEnhancedErrorWidget( + dynamic error, { + VoidCallback? onRetry, + VoidCallback? onDismiss, + bool showDetails = false, + }) { + return _userFriendlyHandler.buildErrorWidget( + error, + onRetry: onRetry, + onDismiss: onDismiss, + showDetails: showDetails, + ); + } + + static Widget buildLoadingWidget({String? message}) { + return Builder( + builder: (context) { + final theme = Theme.of(context); + return Center( + child: Padding( + padding: const EdgeInsets.all(Spacing.lg), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + CircularProgressIndicator(color: theme.colorScheme.primary), + if (message != null) ...[ + const SizedBox(height: Spacing.md), + Text( + message, + style: theme.textTheme.bodyMedium, + textAlign: TextAlign.center, + ), + ], + ], + ), + ), + ); + }, + ); + } + + static Widget buildEmptyStateWidget({ + required String title, + required String message, + IconData? icon, + Widget? action, + }) { + return Builder( + builder: (context) { + final theme = Theme.of(context); + return Center( + child: Padding( + padding: const EdgeInsets.all(Spacing.lg), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + icon ?? Icons.inbox_outlined, + size: Spacing.xxxl, + color: theme.colorScheme.onSurface.withValues(alpha: 0.4), + ), + const SizedBox(height: Spacing.md), + Text( + title, + style: theme.textTheme.headlineSmall?.copyWith( + color: theme.colorScheme.onSurface.withValues(alpha: 0.7), + ), + textAlign: TextAlign.center, + ), + const SizedBox(height: Spacing.sm), + Text( + message, + style: theme.textTheme.bodyMedium?.copyWith( + color: theme.colorScheme.onSurface.withValues(alpha: 0.6), + ), + textAlign: TextAlign.center, + ), + if (action != null) ...[ + const SizedBox(height: Spacing.lg), + action, + ], + ], + ), + ), + ); + }, + ); + } +} diff --git a/lib/core/services/error_recovery_service.dart b/lib/core/services/error_recovery_service.dart new file mode 100644 index 0000000..58b3b7e --- /dev/null +++ b/lib/core/services/error_recovery_service.dart @@ -0,0 +1,373 @@ +import 'dart:async'; +import 'dart:math'; +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:dio/dio.dart'; +import '../../shared/theme/theme_extensions.dart'; + +/// Enhanced error recovery service with retry strategies and user feedback +class ErrorRecoveryService { + final Map _retryConfigs = {}; + final Map _lastRetryTimes = {}; + + ErrorRecoveryService(Dio dio); + + /// Execute an operation with automatic retry and recovery + Future executeWithRecovery({ + required String operationId, + required Future Function() operation, + RetryConfig? retryConfig, + RecoveryAction? recoveryAction, + }) async { + final config = retryConfig ?? RetryConfig.defaultConfig(); + _retryConfigs[operationId] = config; + + int attempts = 0; + Exception? lastError; + + while (attempts < config.maxRetries) { + try { + final result = await operation(); + _clearRetryState(operationId); + return result; + } catch (error) { + attempts++; + lastError = error is Exception ? error : Exception(error.toString()); + + final shouldRetry = _shouldRetry(error, attempts, config); + if (!shouldRetry || attempts >= config.maxRetries) { + break; + } + + // Execute recovery action if provided + if (recoveryAction != null) { + try { + await recoveryAction.execute(error, attempts); + } catch (recoveryError) { + // Recovery action failed, continue with retry + } + } + + // Wait before retry with exponential backoff + final delay = _calculateRetryDelay(attempts, config); + await Future.delayed(delay); + } + } + + _clearRetryState(operationId); + throw ErrorRecoveryException(lastError!, attempts); + } + + /// Check if we should retry based on error type and configuration + bool _shouldRetry(dynamic error, int attempts, RetryConfig config) { + if (attempts >= config.maxRetries) return false; + + // Check cooldown period + final lastRetry = _lastRetryTimes[config.operationId]; + if (lastRetry != null) { + final timeSinceLastRetry = DateTime.now().difference(lastRetry); + if (timeSinceLastRetry < config.cooldownPeriod) { + return false; + } + } + + // Network errors are usually retryable + if (error is DioException) { + switch (error.type) { + case DioExceptionType.connectionTimeout: + case DioExceptionType.sendTimeout: + case DioExceptionType.receiveTimeout: + case DioExceptionType.connectionError: + return true; + case DioExceptionType.badResponse: + // Retry on server errors (5xx) but not client errors (4xx) + final statusCode = error.response?.statusCode; + return statusCode != null && statusCode >= 500; + default: + return false; + } + } + + // Check custom retry conditions + return config.retryCondition?.call(error) ?? false; + } + + Duration _calculateRetryDelay(int attempt, RetryConfig config) { + if (config.retryStrategy == RetryStrategy.exponentialBackoff) { + final baseDelay = config.baseDelay.inMilliseconds; + final delay = baseDelay * pow(2, attempt - 1); + final jitter = Random().nextDouble() * 0.1 * delay; // Add 10% jitter + return Duration(milliseconds: (delay + jitter).round()); + } else { + return config.baseDelay; + } + } + + void _clearRetryState(String operationId) { + _retryConfigs.remove(operationId); + _lastRetryTimes.remove(operationId); + } + + /// Get user-friendly error message + String getErrorMessage(dynamic error) { + if (error is ErrorRecoveryException) { + return _getRecoveryErrorMessage(error); + } + + if (error is DioException) { + switch (error.type) { + case DioExceptionType.connectionTimeout: + return 'The connection is taking too long. Please check your internet and try again.'; + case DioExceptionType.sendTimeout: + return 'Failed to send your request. Please try again.'; + case DioExceptionType.receiveTimeout: + return 'The server is taking too long to respond. Please try again.'; + case DioExceptionType.connectionError: + return 'Unable to connect. Please check your internet connection.'; + case DioExceptionType.badResponse: + final statusCode = error.response?.statusCode; + if (statusCode == 401) { + return 'Your session has expired. Please sign in again.'; + } else if (statusCode == 403) { + return 'You don\'t have permission to perform this action.'; + } else if (statusCode == 404) { + return 'The requested resource was not found.'; + } else if (statusCode != null && statusCode >= 500) { + return 'The server is experiencing issues. Please try again later.'; + } + return 'Something went wrong with your request.'; + case DioExceptionType.cancel: + return 'The request was cancelled.'; + case DioExceptionType.badCertificate: + return 'There\'s a security issue with the connection.'; + case DioExceptionType.unknown: + return 'Something unexpected happened. Please try again.'; + } + } + + return error.toString(); + } + + String _getRecoveryErrorMessage(ErrorRecoveryException error) { + final attempts = error.attempts; + final originalError = getErrorMessage(error.originalError); + + return 'Failed after $attempts attempts: $originalError'; + } +} + +/// Configuration for retry behavior +class RetryConfig { + final String operationId; + final int maxRetries; + final Duration baseDelay; + final Duration cooldownPeriod; + final RetryStrategy retryStrategy; + final bool Function(dynamic error)? retryCondition; + + const RetryConfig({ + required this.operationId, + this.maxRetries = 3, + this.baseDelay = const Duration(seconds: 1), + this.cooldownPeriod = const Duration(seconds: 5), + this.retryStrategy = RetryStrategy.exponentialBackoff, + this.retryCondition, + }); + + static RetryConfig defaultConfig() => const RetryConfig( + operationId: 'default', + maxRetries: 3, + baseDelay: Duration(seconds: 1), + retryStrategy: RetryStrategy.exponentialBackoff, + ); + + static RetryConfig networkConfig() => const RetryConfig( + operationId: 'network', + maxRetries: 5, + baseDelay: Duration(milliseconds: 500), + retryStrategy: RetryStrategy.exponentialBackoff, + ); + + static RetryConfig chatConfig() => const RetryConfig( + operationId: 'chat', + maxRetries: 3, + baseDelay: Duration(seconds: 2), + retryStrategy: RetryStrategy.exponentialBackoff, + ); +} + +enum RetryStrategy { fixed, exponentialBackoff } + +/// Recovery action to execute between retries +abstract class RecoveryAction { + Future execute(dynamic error, int attempt); +} + +/// Reconnect to server recovery action +class ReconnectAction extends RecoveryAction { + final Future Function() reconnectFunction; + + ReconnectAction(this.reconnectFunction); + + @override + Future execute(dynamic error, int attempt) async { + if (attempt == 1) { + // Only try to reconnect on the first retry + await reconnectFunction(); + } + } +} + +/// Refresh token recovery action +class RefreshTokenAction extends RecoveryAction { + final Future Function() refreshFunction; + + RefreshTokenAction(this.refreshFunction); + + @override + Future execute(dynamic error, int attempt) async { + if (error is DioException && error.response?.statusCode == 401) { + await refreshFunction(); + } + } +} + +/// Clear cache recovery action +class ClearCacheAction extends RecoveryAction { + final Future Function() clearCacheFunction; + + ClearCacheAction(this.clearCacheFunction); + + @override + Future execute(dynamic error, int attempt) async { + if (attempt == 2) { + // Clear cache on second attempt + await clearCacheFunction(); + } + } +} + +/// Error recovery exception +class ErrorRecoveryException implements Exception { + final Exception originalError; + final int attempts; + + const ErrorRecoveryException(this.originalError, this.attempts); + + @override + String toString() => + 'ErrorRecoveryException: $originalError (after $attempts attempts)'; +} + +/// Providers +final errorRecoveryServiceProvider = Provider((ref) { + // This should use the same Dio instance as the API service + final dio = Dio(); // Replace with actual Dio provider + return ErrorRecoveryService(dio); +}); + +/// Error boundary widget for handling UI errors +class ErrorBoundary extends StatefulWidget { + final Widget child; + final Widget Function(Object error, VoidCallback retry)? errorBuilder; + final void Function(Object error, StackTrace stackTrace)? onError; + + const ErrorBoundary({ + super.key, + required this.child, + this.errorBuilder, + this.onError, + }); + + @override + State createState() => _ErrorBoundaryState(); +} + +class _ErrorBoundaryState extends State { + Object? error; + StackTrace? stackTrace; + + @override + Widget build(BuildContext context) { + if (error != null) { + return widget.errorBuilder?.call(error!, _retry) ?? + _buildDefaultErrorWidget(); + } + + return ErrorDetector( + onError: (error, stackTrace) { + setState(() { + this.error = error; + this.stackTrace = stackTrace; + }); + widget.onError?.call(error, stackTrace); + }, + child: widget.child, + ); + } + + Widget _buildDefaultErrorWidget() { + return Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + Icons.error_outline, + size: Spacing.xxxl, + color: context.conduitTheme.error, + ), + const SizedBox(height: Spacing.md), + const Text( + 'Something went wrong', + style: TextStyle( + fontSize: AppTypography.headlineSmall, + fontWeight: FontWeight.w600, + ), + ), + const SizedBox(height: Spacing.sm), + Text( + error.toString(), + textAlign: TextAlign.center, + style: TextStyle(color: context.conduitTheme.textSecondary), + ), + const SizedBox(height: Spacing.md), + ElevatedButton(onPressed: _retry, child: const Text('Try Again')), + ], + ), + ); + } + + void _retry() { + setState(() { + error = null; + stackTrace = null; + }); + } +} + +/// Widget to detect and handle errors in child widgets +class ErrorDetector extends StatefulWidget { + final Widget child; + final void Function(Object error, StackTrace stackTrace) onError; + + const ErrorDetector({super.key, required this.child, required this.onError}); + + @override + State createState() => _ErrorDetectorState(); +} + +class _ErrorDetectorState extends State { + @override + Widget build(BuildContext context) { + return widget.child; + } + + @override + void didChangeDependencies() { + super.didChangeDependencies(); + // Set up error handling + FlutterError.onError = (details) { + widget.onError(details.exception, details.stack ?? StackTrace.current); + }; + } +} diff --git a/lib/core/services/focus_management_service.dart b/lib/core/services/focus_management_service.dart new file mode 100644 index 0000000..f1966a2 --- /dev/null +++ b/lib/core/services/focus_management_service.dart @@ -0,0 +1,408 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter/semantics.dart'; + +/// Comprehensive focus management service for accessibility +class FocusManagementService { + static final Map _focusNodes = {}; + static final Map _disposedNodes = {}; + static FocusNode? _lastFocusedNode; + static final List _focusHistory = []; + + /// Register a focus node with a unique identifier + static FocusNode registerFocusNode( + String identifier, { + String? debugLabel, + FocusOnKeyEventCallback? onKeyEvent, + bool skipTraversal = false, + bool canRequestFocus = true, + }) { + // Check if node already exists + if (_focusNodes.containsKey(identifier)) { + return _focusNodes[identifier]!; + } + + // Create new focus node + final focusNode = FocusNode( + debugLabel: debugLabel ?? identifier, + onKeyEvent: onKeyEvent, + skipTraversal: skipTraversal, + canRequestFocus: canRequestFocus, + ); + + // Add listener to track focus changes + focusNode.addListener(() { + if (focusNode.hasFocus) { + _onFocusChanged(focusNode); + } + }); + + _focusNodes[identifier] = focusNode; + return focusNode; + } + + /// Get a registered focus node + static FocusNode? getFocusNode(String identifier) { + return _focusNodes[identifier]; + } + + /// Dispose a focus node + static void disposeFocusNode(String identifier) { + final node = _focusNodes.remove(identifier); + if (node != null) { + _disposedNodes[identifier] = node; + node.dispose(); + } + } + + /// Dispose all focus nodes + static void disposeAll() { + for (final node in _focusNodes.values) { + node.dispose(); + } + _focusNodes.clear(); + _focusHistory.clear(); + _lastFocusedNode = null; + } + + /// Request focus for a specific node + static void requestFocus(String identifier) { + final node = _focusNodes[identifier]; + if (node != null && node.canRequestFocus) { + node.requestFocus(); + HapticFeedback.selectionClick(); + } + } + + /// Unfocus current focus + static void unfocus( + BuildContext context, { + UnfocusDisposition disposition = UnfocusDisposition.scope, + }) { + FocusScope.of(context).unfocus(disposition: disposition); + } + + /// Move focus to next focusable element + static bool nextFocus(BuildContext context) { + return FocusScope.of(context).nextFocus(); + } + + /// Move focus to previous focusable element + static bool previousFocus(BuildContext context) { + return FocusScope.of(context).previousFocus(); + } + + /// Track focus changes + static void _onFocusChanged(FocusNode node) { + _lastFocusedNode = node; + _focusHistory.add(node); + + // Limit history size + if (_focusHistory.length > 10) { + _focusHistory.removeAt(0); + } + } + + /// Restore last focus + static void restoreLastFocus() { + if (_lastFocusedNode != null && _lastFocusedNode!.canRequestFocus) { + _lastFocusedNode!.requestFocus(); + } + } + + /// Get focus history + static List getFocusHistory() { + return List.unmodifiable(_focusHistory); + } + + /// Create a focus trap for modal dialogs + static Widget createFocusTrap({ + required Widget child, + bool autofocus = true, + }) { + return FocusScope(autofocus: autofocus, child: child); + } + + /// Create keyboard navigation handler + static FocusOnKeyEventCallback createKeyboardNavigationHandler({ + VoidCallback? onEnter, + VoidCallback? onEscape, + VoidCallback? onTab, + VoidCallback? onArrowUp, + VoidCallback? onArrowDown, + VoidCallback? onArrowLeft, + VoidCallback? onArrowRight, + }) { + return (FocusNode node, KeyEvent event) { + if (event is! KeyDownEvent) { + return KeyEventResult.ignored; + } + + final key = event.logicalKey; + + if (key == LogicalKeyboardKey.enter || + key == LogicalKeyboardKey.numpadEnter) { + onEnter?.call(); + return KeyEventResult.handled; + } + + if (key == LogicalKeyboardKey.escape) { + onEscape?.call(); + return KeyEventResult.handled; + } + + if (key == LogicalKeyboardKey.tab) { + onTab?.call(); + return KeyEventResult.handled; + } + + if (key == LogicalKeyboardKey.arrowUp) { + onArrowUp?.call(); + return KeyEventResult.handled; + } + + if (key == LogicalKeyboardKey.arrowDown) { + onArrowDown?.call(); + return KeyEventResult.handled; + } + + if (key == LogicalKeyboardKey.arrowLeft) { + onArrowLeft?.call(); + return KeyEventResult.handled; + } + + if (key == LogicalKeyboardKey.arrowRight) { + onArrowRight?.call(); + return KeyEventResult.handled; + } + + return KeyEventResult.ignored; + }; + } +} + +/// Focus manager widget that manages focus for its children +class FocusManager extends StatefulWidget { + final Widget child; + final bool autofocus; + final bool trapFocus; + final FocusOnKeyEventCallback? onKeyEvent; + + const FocusManager({ + super.key, + required this.child, + this.autofocus = false, + this.trapFocus = false, + this.onKeyEvent, + }); + + @override + State createState() => _FocusManagerState(); +} + +class _FocusManagerState extends State { + late FocusScopeNode _focusScopeNode; + + @override + void initState() { + super.initState(); + _focusScopeNode = FocusScopeNode( + debugLabel: 'FocusManager', + onKeyEvent: widget.onKeyEvent, + ); + } + + @override + void dispose() { + _focusScopeNode.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + Widget child = FocusScope( + node: _focusScopeNode, + autofocus: widget.autofocus, + child: widget.child, + ); + + if (widget.trapFocus) { + child = FocusTraversalGroup( + policy: OrderedTraversalPolicy(), + child: child, + ); + } + + return child; + } +} + +/// Accessible form field with proper focus management +class AccessibleFormField extends StatefulWidget { + final String label; + final String? hint; + final TextEditingController controller; + final String? Function(String?)? validator; + final TextInputType? keyboardType; + final bool obscureText; + final bool autofocus; + final String? semanticLabel; + final String? errorSemanticLabel; + final ValueChanged? onChanged; + final VoidCallback? onEditingComplete; + final ValueChanged? onSubmitted; + final List? inputFormatters; + final int? maxLines; + final int? maxLength; + final bool enabled; + final Widget? suffixIcon; + final Widget? prefixIcon; + final FocusNode? focusNode; + + const AccessibleFormField({ + super.key, + required this.label, + this.hint, + required this.controller, + this.validator, + this.keyboardType, + this.obscureText = false, + this.autofocus = false, + this.semanticLabel, + this.errorSemanticLabel, + this.onChanged, + this.onEditingComplete, + this.onSubmitted, + this.inputFormatters, + this.maxLines = 1, + this.maxLength, + this.enabled = true, + this.suffixIcon, + this.prefixIcon, + this.focusNode, + }); + + @override + State createState() => _AccessibleFormFieldState(); +} + +class _AccessibleFormFieldState extends State { + late FocusNode _focusNode; + String? _errorText; + bool _hasFocus = false; + + @override + void initState() { + super.initState(); + _focusNode = widget.focusNode ?? FocusNode(debugLabel: widget.label); + _focusNode.addListener(_onFocusChanged); + } + + @override + void dispose() { + if (widget.focusNode == null) { + _focusNode.dispose(); + } + super.dispose(); + } + + void _onFocusChanged() { + setState(() { + _hasFocus = _focusNode.hasFocus; + }); + + // Announce focus change for screen readers + if (_hasFocus) { + final announcement = + widget.semanticLabel ?? + '${widget.label} text field. ${widget.hint ?? ''}'; + SemanticsService.announce(announcement, TextDirection.ltr); + } + } + + @override + Widget build(BuildContext context) { + final theme = Theme.of(context); + + return Semantics( + label: widget.semanticLabel ?? widget.label, + hint: widget.hint, + textField: true, + enabled: widget.enabled, + focusable: true, + focused: _hasFocus, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + // Label + Padding( + padding: const EdgeInsets.only(bottom: 4.0), + child: Text( + widget.label, + style: theme.textTheme.bodyMedium?.copyWith( + color: _hasFocus + ? theme.colorScheme.primary + : theme.colorScheme.onSurface, + fontWeight: _hasFocus ? FontWeight.w600 : FontWeight.normal, + ), + ), + ), + + // Text field + TextFormField( + controller: widget.controller, + focusNode: _focusNode, + validator: (value) { + final error = widget.validator?.call(value); + setState(() { + _errorText = error; + }); + + // Announce error for screen readers + if (error != null) { + final errorAnnouncement = + widget.errorSemanticLabel ?? 'Error: $error'; + SemanticsService.announce(errorAnnouncement, TextDirection.ltr); + } + + return error; + }, + keyboardType: widget.keyboardType, + obscureText: widget.obscureText, + autofocus: widget.autofocus, + onChanged: widget.onChanged, + onEditingComplete: widget.onEditingComplete, + onFieldSubmitted: widget.onSubmitted, + inputFormatters: widget.inputFormatters, + maxLines: widget.maxLines, + maxLength: widget.maxLength, + enabled: widget.enabled, + decoration: InputDecoration( + hintText: widget.hint, + errorText: _errorText, + suffixIcon: widget.suffixIcon, + prefixIcon: widget.prefixIcon, + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(8), + ), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(8), + borderSide: BorderSide( + color: theme.colorScheme.primary, + width: 2, + ), + ), + errorBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(8), + borderSide: BorderSide( + color: theme.colorScheme.error, + width: 2, + ), + ), + ), + ), + ], + ), + ); + } +} diff --git a/lib/core/services/input_validation_service.dart b/lib/core/services/input_validation_service.dart new file mode 100644 index 0000000..dd51481 --- /dev/null +++ b/lib/core/services/input_validation_service.dart @@ -0,0 +1,457 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; + +/// Comprehensive input validation service +class InputValidationService { + // Email regex pattern + static final RegExp _emailRegex = RegExp( + r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$', + ); + + // Strong password regex (min 8 chars, 1 upper, 1 lower, 1 number, 1 special) + static final RegExp _strongPasswordRegex = RegExp( + r'^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$', + ); + + /// Validate email address + static String? validateEmail(String? value) { + if (value == null || value.isEmpty) { + return 'Email is required'; + } + + final trimmed = value.trim(); + if (!_emailRegex.hasMatch(trimmed)) { + return 'Please enter a valid email address'; + } + + return null; + } + + /// Validate URL + static String? validateUrl(String? value, {bool required = true}) { + if (value == null || value.isEmpty) { + return required ? 'URL is required' : null; + } + + final trimmed = value.trim(); + + // Add protocol if missing + String urlToValidate = trimmed; + if (!trimmed.startsWith('http://') && !trimmed.startsWith('https://')) { + urlToValidate = 'https://$trimmed'; + } + + try { + final uri = Uri.parse(urlToValidate); + if (!uri.hasScheme || !uri.hasAuthority) { + return 'Please enter a valid URL'; + } + } catch (e) { + return 'Please enter a valid URL'; + } + + return null; + } + + /// Validate password strength + static String? validatePassword(String? value, {bool checkStrength = true}) { + if (value == null || value.isEmpty) { + return 'Password is required'; + } + + if (value.length < 8) { + return 'Password must be at least 8 characters'; + } + + if (checkStrength && !_strongPasswordRegex.hasMatch(value)) { + return 'Password must contain uppercase, lowercase, number, and special character'; + } + + return null; + } + + /// Validate confirm password + static String? validateConfirmPassword(String? value, String password) { + if (value == null || value.isEmpty) { + return 'Please confirm your password'; + } + + if (value != password) { + return 'Passwords do not match'; + } + + return null; + } + + /// Validate required field + static String? validateRequired( + String? value, { + String fieldName = 'This field', + }) { + if (value == null || value.trim().isEmpty) { + return '$fieldName is required'; + } + return null; + } + + /// Validate minimum length + static String? validateMinLength( + String? value, + int minLength, { + String fieldName = 'This field', + }) { + if (value == null || value.isEmpty) { + return '$fieldName is required'; + } + + if (value.length < minLength) { + return '$fieldName must be at least $minLength characters'; + } + + return null; + } + + /// Validate maximum length + static String? validateMaxLength( + String? value, + int maxLength, { + String fieldName = 'This field', + }) { + if (value != null && value.length > maxLength) { + return '$fieldName must be at most $maxLength characters'; + } + + return null; + } + + /// Validate numeric input + static String? validateNumber( + String? value, { + double? min, + double? max, + bool allowDecimal = true, + bool required = true, + }) { + if (value == null || value.isEmpty) { + return required ? 'Number is required' : null; + } + + final number = allowDecimal ? double.tryParse(value) : int.tryParse(value); + + if (number == null) { + return allowDecimal + ? 'Please enter a valid number' + : 'Please enter a whole number'; + } + + if (min != null && number < min) { + return 'Value must be at least $min'; + } + + if (max != null && number > max) { + return 'Value must be at most $max'; + } + + return null; + } + + /// Validate phone number + static String? validatePhoneNumber(String? value, {bool required = true}) { + if (value == null || value.isEmpty) { + return required ? 'Phone number is required' : null; + } + + // Remove all non-digits + final digitsOnly = value.replaceAll(RegExp(r'\D'), ''); + + if (digitsOnly.length < 10) { + return 'Please enter a valid phone number'; + } + + return null; + } + + /// Validate alphanumeric input + static String? validateAlphanumeric( + String? value, { + bool allowSpaces = false, + bool required = true, + String fieldName = 'This field', + }) { + if (value == null || value.isEmpty) { + return required ? '$fieldName is required' : null; + } + + final pattern = allowSpaces ? r'^[a-zA-Z0-9\s]+$' : r'^[a-zA-Z0-9]+$'; + if (!RegExp(pattern).hasMatch(value)) { + return allowSpaces + ? '$fieldName can only contain letters, numbers, and spaces' + : '$fieldName can only contain letters and numbers'; + } + + return null; + } + + /// Validate username + static String? validateUsername(String? value) { + if (value == null || value.isEmpty) { + return 'Username is required'; + } + + if (value.length < 3) { + return 'Username must be at least 3 characters'; + } + + if (value.length > 20) { + return 'Username must be at most 20 characters'; + } + + if (!RegExp(r'^[a-zA-Z0-9_]+$').hasMatch(value)) { + return 'Username can only contain letters, numbers, and underscores'; + } + + return null; + } + + /// Validate email or username (flexible login) + static String? validateEmailOrUsername(String? value) { + if (value == null || value.isEmpty) { + return 'Email or username is required'; + } + + final trimmed = value.trim(); + + // If it contains @ symbol, validate as email + if (trimmed.contains('@')) { + return validateEmail(value); + } + + // Otherwise validate as username + return validateUsername(value); + } + + /// Sanitize input to prevent XSS + static String sanitizeInput(String input) { + return input + .replaceAll('<', '<') + .replaceAll('>', '>') + .replaceAll('"', '"') + .replaceAll("'", ''') + .replaceAll('/', '/'); + } + + /// Create input formatter for numeric input + static List numericInputFormatters({ + bool allowDecimal = true, + bool allowNegative = false, + }) { + return [ + FilteringTextInputFormatter.allow( + RegExp( + allowDecimal + ? (allowNegative ? r'[0-9.-]' : r'[0-9.]') + : (allowNegative ? r'[0-9-]' : r'[0-9]'), + ), + ), + ]; + } + + /// Create input formatter for alphanumeric input + static List alphanumericInputFormatters({ + bool allowSpaces = false, + }) { + return [ + FilteringTextInputFormatter.allow( + RegExp(allowSpaces ? r'[a-zA-Z0-9\s]' : r'[a-zA-Z0-9]'), + ), + ]; + } + + /// Create input formatter for phone number + static List phoneNumberFormatters() { + return [ + FilteringTextInputFormatter.digitsOnly, + LengthLimitingTextInputFormatter(15), + _PhoneNumberFormatter(), + ]; + } + + /// Validate file size + static String? validateFileSize(int sizeInBytes, {int maxSizeInMB = 10}) { + final maxSizeInBytes = maxSizeInMB * 1024 * 1024; + if (sizeInBytes > maxSizeInBytes) { + return 'File size must be less than ${maxSizeInMB}MB'; + } + return null; + } + + /// Validate file extension + static String? validateFileExtension( + String fileName, + List allowedExtensions, + ) { + final extension = fileName.split('.').last.toLowerCase(); + if (!allowedExtensions.contains(extension)) { + return 'File type not allowed. Allowed types: ${allowedExtensions.join(', ')}'; + } + return null; + } + + /// Composite validator that runs multiple validators + static String? Function(String?) combine( + List validators, + ) { + return (String? value) { + for (final validator in validators) { + final result = validator(value); + if (result != null) { + return result; + } + } + return null; + }; + } +} + +/// Custom phone number formatter +class _PhoneNumberFormatter extends TextInputFormatter { + @override + TextEditingValue formatEditUpdate( + TextEditingValue oldValue, + TextEditingValue newValue, + ) { + final text = newValue.text; + + if (text.length <= 3) { + return newValue; + } + + if (text.length <= 6) { + final newText = '(${text.substring(0, 3)}) ${text.substring(3)}'; + return TextEditingValue( + text: newText, + selection: TextSelection.collapsed(offset: newText.length), + ); + } + + if (text.length <= 10) { + final newText = + '(${text.substring(0, 3)}) ${text.substring(3, 6)}-${text.substring(6)}'; + return TextEditingValue( + text: newText, + selection: TextSelection.collapsed(offset: newText.length), + ); + } + + final newText = + '(${text.substring(0, 3)}) ${text.substring(3, 6)}-${text.substring(6, 10)}'; + return TextEditingValue( + text: newText, + selection: TextSelection.collapsed(offset: newText.length), + ); + } +} + +/// Form field wrapper with validation +class ValidatedFormField extends StatefulWidget { + final String label; + final String? hint; + final TextEditingController controller; + final String? Function(String?) validator; + final List? inputFormatters; + final TextInputType? keyboardType; + final bool obscureText; + final Widget? suffixIcon; + final bool autofocus; + final void Function(String)? onChanged; + final void Function(String)? onFieldSubmitted; + final FocusNode? focusNode; + final int? maxLines; + final bool enabled; + + const ValidatedFormField({ + super.key, + required this.label, + this.hint, + required this.controller, + required this.validator, + this.inputFormatters, + this.keyboardType, + this.obscureText = false, + this.suffixIcon, + this.autofocus = false, + this.onChanged, + this.onFieldSubmitted, + this.focusNode, + this.maxLines = 1, + this.enabled = true, + }); + + @override + State createState() => _ValidatedFormFieldState(); +} + +class _ValidatedFormFieldState extends State { + String? _errorText; + bool _hasInteracted = false; + + @override + void initState() { + super.initState(); + widget.controller.addListener(_validate); + } + + @override + void dispose() { + widget.controller.removeListener(_validate); + super.dispose(); + } + + void _validate() { + if (!_hasInteracted) return; + + final error = widget.validator(widget.controller.text); + if (error != _errorText) { + setState(() { + _errorText = error; + }); + } + } + + @override + Widget build(BuildContext context) { + return TextFormField( + controller: widget.controller, + focusNode: widget.focusNode, + validator: (value) { + setState(() { + _hasInteracted = true; + }); + return widget.validator(value); + }, + inputFormatters: widget.inputFormatters, + keyboardType: widget.keyboardType, + obscureText: widget.obscureText, + autofocus: widget.autofocus, + maxLines: widget.maxLines, + enabled: widget.enabled, + onChanged: (value) { + if (!_hasInteracted) { + setState(() { + _hasInteracted = true; + }); + } + _validate(); + widget.onChanged?.call(value); + }, + onFieldSubmitted: widget.onFieldSubmitted, + decoration: InputDecoration( + labelText: widget.label, + hintText: widget.hint, + errorText: _errorText, + suffixIcon: widget.suffixIcon, + border: const OutlineInputBorder(), + ), + ); + } +} diff --git a/lib/core/services/navigation_service.dart b/lib/core/services/navigation_service.dart new file mode 100644 index 0000000..bf50b66 --- /dev/null +++ b/lib/core/services/navigation_service.dart @@ -0,0 +1,250 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +// ThemedDialogs handles theming; no direct use of extensions here +import '../../features/chat/views/chat_page.dart'; +import '../../features/auth/views/connect_signin_page.dart'; +import '../../features/settings/views/searchable_settings_page.dart'; +import '../../features/profile/views/profile_page.dart'; +import '../../features/files/views/files_page.dart'; +import '../../features/chat/views/conversation_search_page.dart'; +import '../../shared/widgets/themed_dialogs.dart'; + +import '../../features/navigation/views/chats_list_page.dart'; + +/// Centralized navigation service to handle all routing logic +/// Prevents navigation stack issues and memory leaks +class NavigationService { + static final GlobalKey navigatorKey = + GlobalKey(); + + static NavigatorState? get navigator => navigatorKey.currentState; + static BuildContext? get context => navigatorKey.currentContext; + + // Navigation stack tracking for analytics and debugging + static final List _navigationStack = []; + static List get navigationStack => + List.unmodifiable(_navigationStack); + + // Prevent duplicate navigation + static String? _currentRoute; + static bool _isNavigating = false; + static DateTime? _lastNavigationTime; + + /// Navigate to a named route with optional arguments + static Future navigateTo( + String routeName, { + Object? arguments, + bool replace = false, + bool clearStack = false, + }) async { + // Only block if we're already navigating to the exact same route + // Allow navigation to different routes even if currently navigating + if (_isNavigating && _currentRoute == routeName) { + debugPrint('Navigation blocked: Already navigating to same route'); + return null; + } + + // Prevent rapid successive navigation attempts + final now = DateTime.now(); + if (_lastNavigationTime != null && + now.difference(_lastNavigationTime!).inMilliseconds < 300) { + debugPrint('Navigation blocked: Too rapid navigation attempts'); + return null; + } + + _isNavigating = true; + + try { + // Add haptic feedback for navigation + HapticFeedback.lightImpact(); + + // Track navigation + if (!replace && !clearStack) { + _navigationStack.add(routeName); + } + _currentRoute = routeName; + + if (clearStack) { + _navigationStack.clear(); + _navigationStack.add(routeName); + return await navigator?.pushNamedAndRemoveUntil( + routeName, + (route) => false, + arguments: arguments, + ); + } else if (replace) { + if (_navigationStack.isNotEmpty) { + _navigationStack.removeLast(); + } + _navigationStack.add(routeName); + return await navigator?.pushReplacementNamed( + routeName, + arguments: arguments, + ); + } else { + return await navigator?.pushNamed(routeName, arguments: arguments); + } + } catch (e) { + debugPrint('Navigation error: $e'); + rethrow; + } finally { + _isNavigating = false; + _lastNavigationTime = DateTime.now(); + } + } + + /// Navigate back with optional result + static void goBack([T? result]) { + if (navigator?.canPop() == true) { + HapticFeedback.lightImpact(); + if (_navigationStack.isNotEmpty) { + _navigationStack.removeLast(); + } + _currentRoute = _navigationStack.isEmpty ? null : _navigationStack.last; + navigator?.pop(result); + } + } + + /// Check if can navigate back + static bool canGoBack() { + return navigator?.canPop() == true; + } + + /// Show confirmation dialog before navigation + static Future confirmNavigation({ + required String title, + required String message, + String confirmText = 'Continue', + String cancelText = 'Cancel', + }) async { + if (context == null) return false; + + final result = await ThemedDialogs.confirm( + context!, + title: title, + message: message, + confirmText: confirmText, + cancelText: cancelText, + barrierDismissible: false, + ); + + return result; + } + + // Removed tabbed main navigation + + /// Navigate to chat + static Future navigateToChat({String? conversationId}) { + return navigateTo( + Routes.chat, + arguments: {'conversationId': conversationId}, + replace: true, + ); + } + + /// Navigate to login + static Future navigateToLogin() { + return navigateTo(Routes.login, clearStack: true); + } + + /// Navigate to settings + static Future navigateToSettings() { + return navigateTo(Routes.settings); + } + + /// Navigate to profile + static Future navigateToProfile() { + return navigateTo(Routes.profile); + } + + /// Navigate to server connection + static Future navigateToServerConnection() { + return navigateTo(Routes.serverConnection); + } + + /// Navigate to search + static Future navigateToSearch() { + return navigateTo(Routes.search); + } + + /// Navigate to chats list + static Future navigateToChatsList() { + return navigateTo(Routes.chatsList); + } + + /// Clear navigation stack (useful for logout) + static void clearNavigationStack() { + _navigationStack.clear(); + _currentRoute = null; + } + + /// Set current route (useful for initial app state) + static void setCurrentRoute(String routeName) { + _currentRoute = routeName; + if (!_navigationStack.contains(routeName)) { + _navigationStack.add(routeName); + } + } + + /// Generate routes + static Route? generateRoute(RouteSettings settings) { + Widget page; + + switch (settings.name) { + // Removed tabbed main navigation + + case Routes.chat: + page = const ChatPage(); + break; + + case Routes.login: + page = const ConnectAndSignInPage(); + break; + + case Routes.settings: + page = const SearchableSettingsPage(); + break; + + case Routes.profile: + page = const ProfilePage(); + break; + + case Routes.serverConnection: + page = const ConnectAndSignInPage(); + break; + + case Routes.search: + page = const ConversationSearchPage(); + break; + + case Routes.files: + page = const FilesPage(); + break; + + case Routes.chatsList: + page = const ChatsListPage(); + break; + + // Removed navigation drawer route + + default: + page = Scaffold( + body: Center(child: Text('Route not found: ${settings.name}')), + ); + } + + return MaterialPageRoute(builder: (_) => page, settings: settings); + } +} + +/// Route names +class Routes { + static const String chat = '/chat'; + static const String login = '/login'; + static const String settings = '/settings'; + static const String profile = '/profile'; + static const String serverConnection = '/server-connection'; + static const String search = '/search'; + static const String files = '/files'; + static const String chatsList = '/chats-list'; +} diff --git a/lib/core/services/navigation_state_service.dart b/lib/core/services/navigation_state_service.dart new file mode 100644 index 0000000..c96b7a8 --- /dev/null +++ b/lib/core/services/navigation_state_service.dart @@ -0,0 +1,427 @@ +import 'dart:convert'; +import 'package:flutter/material.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +/// Navigation state data model +class NavigationState { + final String routeName; + final Map arguments; + final DateTime timestamp; + final String? conversationId; + final int? tabIndex; + + NavigationState({ + required this.routeName, + this.arguments = const {}, + DateTime? timestamp, + this.conversationId, + this.tabIndex, + }) : timestamp = timestamp ?? DateTime.now(); + + Map toJson() => { + 'routeName': routeName, + 'arguments': arguments, + 'timestamp': timestamp.toIso8601String(), + 'conversationId': conversationId, + 'tabIndex': tabIndex, + }; + + factory NavigationState.fromJson(Map json) { + return NavigationState( + routeName: json['routeName'] ?? '/', + arguments: json['arguments'] ?? {}, + timestamp: DateTime.tryParse(json['timestamp'] ?? '') ?? DateTime.now(), + conversationId: json['conversationId'], + tabIndex: json['tabIndex'], + ); + } +} + +/// Service to manage navigation state preservation and restoration +class NavigationStateService { + static final NavigationStateService _instance = + NavigationStateService._internal(); + factory NavigationStateService() => _instance; + NavigationStateService._internal(); + + static const String _navigationStackKey = 'navigation_stack'; + static const String _currentStateKey = 'current_navigation_state'; + static const String _deepLinkStateKey = 'deep_link_state'; + + SharedPreferences? _prefs; + final List _navigationStack = []; + NavigationState? _currentState; + final ValueNotifier _stateNotifier = ValueNotifier(null); + + /// Initialize the service + Future initialize() async { + try { + _prefs = await SharedPreferences.getInstance(); + await _loadNavigationState(); + debugPrint('DEBUG: NavigationStateService initialized'); + } catch (e) { + debugPrint('ERROR: Failed to initialize NavigationStateService: $e'); + } + } + + /// Get current navigation state as a ValueNotifier for listening to changes + ValueNotifier get stateNotifier => _stateNotifier; + + /// Get current navigation state + NavigationState? get currentState => _currentState; + + /// Get navigation stack + List get navigationStack => + List.unmodifiable(_navigationStack); + + /// Push a new navigation state + Future pushState({ + required String routeName, + Map arguments = const {}, + String? conversationId, + int? tabIndex, + }) async { + try { + final state = NavigationState( + routeName: routeName, + arguments: arguments, + conversationId: conversationId, + tabIndex: tabIndex, + ); + + _navigationStack.add(state); + _currentState = state; + _stateNotifier.value = state; + + await _saveNavigationState(); + + debugPrint('DEBUG: Navigation state pushed - ${state.routeName}'); + } catch (e) { + debugPrint('ERROR: Failed to push navigation state: $e'); + } + } + + /// Pop the last navigation state + Future popState() async { + try { + if (_navigationStack.isEmpty) return null; + + final poppedState = _navigationStack.removeLast(); + _currentState = _navigationStack.isNotEmpty + ? _navigationStack.last + : null; + _stateNotifier.value = _currentState; + + await _saveNavigationState(); + + debugPrint('DEBUG: Navigation state popped - ${poppedState.routeName}'); + return poppedState; + } catch (e) { + debugPrint('ERROR: Failed to pop navigation state: $e'); + return null; + } + } + + /// Update current state with new information + Future updateCurrentState({ + String? conversationId, + int? tabIndex, + Map? additionalArgs, + }) async { + try { + if (_currentState == null) return; + + final updatedArgs = { + ..._currentState!.arguments, + if (additionalArgs != null) ...additionalArgs, + }; + + final updatedState = NavigationState( + routeName: _currentState!.routeName, + arguments: updatedArgs, + conversationId: conversationId ?? _currentState!.conversationId, + tabIndex: tabIndex ?? _currentState!.tabIndex, + timestamp: _currentState!.timestamp, + ); + + // Update both current state and last item in stack + _currentState = updatedState; + if (_navigationStack.isNotEmpty) { + _navigationStack[_navigationStack.length - 1] = updatedState; + } + + _stateNotifier.value = updatedState; + await _saveNavigationState(); + + debugPrint('DEBUG: Navigation state updated'); + } catch (e) { + debugPrint('ERROR: Failed to update navigation state: $e'); + } + } + + /// Clear navigation stack but preserve current state + Future clearStack() async { + try { + _navigationStack.clear(); + if (_currentState != null) { + _navigationStack.add(_currentState!); + } + await _saveNavigationState(); + debugPrint('DEBUG: Navigation stack cleared'); + } catch (e) { + debugPrint('ERROR: Failed to clear navigation stack: $e'); + } + } + + /// Replace entire navigation stack + Future replaceStack(List newStack) async { + try { + _navigationStack.clear(); + _navigationStack.addAll(newStack); + _currentState = newStack.isNotEmpty ? newStack.last : null; + _stateNotifier.value = _currentState; + + await _saveNavigationState(); + debugPrint( + 'DEBUG: Navigation stack replaced with ${newStack.length} states', + ); + } catch (e) { + debugPrint('ERROR: Failed to replace navigation stack: $e'); + } + } + + /// Handle deep link by preserving navigation context + Future handleDeepLink({ + required String routeName, + Map arguments = const {}, + String? conversationId, + bool preserveStack = true, + }) async { + try { + // Save deep link state for restoration + final deepLinkState = NavigationState( + routeName: routeName, + arguments: arguments, + conversationId: conversationId, + ); + + await _saveDeepLinkState(deepLinkState); + + if (preserveStack) { + // Add to existing stack instead of replacing + await pushState( + routeName: routeName, + arguments: arguments, + conversationId: conversationId, + ); + } else { + // Replace stack with deep link + await replaceStack([deepLinkState]); + } + + debugPrint('DEBUG: Deep link handled - $routeName'); + } catch (e) { + debugPrint('ERROR: Failed to handle deep link: $e'); + } + } + + /// Get the conversation context from current navigation state + String? getConversationContext() { + return _currentState?.conversationId; + } + + /// Get the current tab index + int? getCurrentTabIndex() { + return _currentState?.tabIndex; + } + + /// Generate breadcrumb navigation based on current stack + List generateBreadcrumbs() { + final breadcrumbs = []; + + for (int i = 0; i < _navigationStack.length; i++) { + final state = _navigationStack[i]; + final isLast = i == _navigationStack.length - 1; + + breadcrumbs.add( + NavigationBreadcrumb( + title: _getRouteTitle(state.routeName), + routeName: state.routeName, + arguments: state.arguments, + isActive: isLast, + canNavigateBack: i > 0, + ), + ); + } + + return breadcrumbs; + } + + /// Check if we can navigate back + bool canGoBack() { + return _navigationStack.length > 1; + } + + /// Get previous state without popping + NavigationState? getPreviousState() { + if (_navigationStack.length < 2) return null; + return _navigationStack[_navigationStack.length - 2]; + } + + /// Restore navigation state on app startup + Future restoreNavigationState(NavigatorState navigator) async { + try { + await _loadNavigationState(); + + if (_currentState != null) { + // Attempt to restore to the last known state + debugPrint( + 'DEBUG: Restoring navigation to ${_currentState!.routeName}', + ); + + // This would need to be implemented based on your routing setup + // navigator.pushNamedAndRemoveUntil( + // _currentState!.routeName, + // (route) => false, + // arguments: _currentState!.arguments, + // ); + } + } catch (e) { + debugPrint('ERROR: Failed to restore navigation state: $e'); + } + } + + /// Clear all navigation state + Future clearAll() async { + try { + _navigationStack.clear(); + _currentState = null; + _stateNotifier.value = null; + + await _prefs?.remove(_navigationStackKey); + await _prefs?.remove(_currentStateKey); + await _prefs?.remove(_deepLinkStateKey); + + debugPrint('DEBUG: All navigation state cleared'); + } catch (e) { + debugPrint('ERROR: Failed to clear navigation state: $e'); + } + } + + /// Save navigation state to persistent storage + Future _saveNavigationState() async { + if (_prefs == null) return; + + try { + // Save navigation stack + final stackJson = _navigationStack + .map((state) => state.toJson()) + .toList(); + await _prefs!.setString(_navigationStackKey, jsonEncode(stackJson)); + + // Save current state + if (_currentState != null) { + await _prefs!.setString( + _currentStateKey, + jsonEncode(_currentState!.toJson()), + ); + } else { + await _prefs!.remove(_currentStateKey); + } + } catch (e) { + debugPrint('ERROR: Failed to save navigation state: $e'); + } + } + + /// Load navigation state from persistent storage + Future _loadNavigationState() async { + if (_prefs == null) return; + + try { + // Load navigation stack + final stackJsonString = _prefs!.getString(_navigationStackKey); + if (stackJsonString != null) { + final stackJson = jsonDecode(stackJsonString) as List; + _navigationStack.clear(); + for (final stateJson in stackJson) { + if (stateJson is Map) { + _navigationStack.add(NavigationState.fromJson(stateJson)); + } + } + } + + // Load current state + final currentStateJsonString = _prefs!.getString(_currentStateKey); + if (currentStateJsonString != null) { + final currentStateJson = + jsonDecode(currentStateJsonString) as Map; + _currentState = NavigationState.fromJson(currentStateJson); + _stateNotifier.value = _currentState; + } + + debugPrint( + 'DEBUG: Navigation state loaded - ${_navigationStack.length} states', + ); + } catch (e) { + debugPrint('ERROR: Failed to load navigation state: $e'); + // Clear corrupted state + await clearAll(); + } + } + + /// Save deep link state for restoration + Future _saveDeepLinkState(NavigationState state) async { + if (_prefs == null) return; + + try { + await _prefs!.setString(_deepLinkStateKey, jsonEncode(state.toJson())); + } catch (e) { + debugPrint('ERROR: Failed to save deep link state: $e'); + } + } + + /// Get user-friendly title for route name + String _getRouteTitle(String routeName) { + switch (routeName) { + case '/': + case '/home': + return 'Home'; + case '/chat': + return 'Chat'; + case '/settings': + return 'Settings'; + case '/profile': + return 'Profile'; + case '/conversations': + return 'Conversations'; + default: + // Convert route name to title case + return routeName + .replaceAll('/', '') + .split('_') + .map( + (word) => word.isNotEmpty + ? '${word[0].toUpperCase()}${word.substring(1)}' + : '', + ) + .join(' '); + } + } +} + +/// Breadcrumb navigation item +class NavigationBreadcrumb { + final String title; + final String routeName; + final Map arguments; + final bool isActive; + final bool canNavigateBack; + + NavigationBreadcrumb({ + required this.title, + required this.routeName, + required this.arguments, + required this.isActive, + required this.canNavigateBack, + }); +} diff --git a/lib/core/services/optimized_storage_service.dart b/lib/core/services/optimized_storage_service.dart new file mode 100644 index 0000000..884f67b --- /dev/null +++ b/lib/core/services/optimized_storage_service.dart @@ -0,0 +1,375 @@ +import 'dart:convert'; +import 'package:flutter/foundation.dart'; +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'secure_credential_storage.dart'; +import '../models/server_config.dart'; +import '../models/conversation.dart'; + +/// Optimized storage service with single secure storage implementation +/// Eliminates dual storage overhead and improves performance +class OptimizedStorageService { + final SharedPreferences _prefs; + final SecureCredentialStorage _secureCredentialStorage; + + OptimizedStorageService({ + required FlutterSecureStorage secureStorage, + required SharedPreferences prefs, + }) : _prefs = prefs, + _secureCredentialStorage = SecureCredentialStorage(); + + // Optimized key names with versioning + static const String _authTokenKey = 'auth_token_v3'; + static const String _activeServerIdKey = 'active_server_id'; + static const String _rememberCredentialsKey = 'remember_credentials'; + static const String _themeModeKey = 'theme_mode'; + static const String _localConversationsKey = 'local_conversations'; + static const String _onboardingSeenKey = 'onboarding_seen_v1'; + static const String _reviewerModeKey = 'reviewer_mode_v1'; + + // Cache for frequently accessed data + final Map _cache = {}; + static const Duration _cacheTimeout = Duration(minutes: 5); + final Map _cacheTimestamps = {}; + + /// Auth Token Management (Optimized with caching) + Future saveAuthToken(String token) async { + try { + await _secureCredentialStorage.saveAuthToken(token); + _cache[_authTokenKey] = token; + _cacheTimestamps[_authTokenKey] = DateTime.now(); + debugPrint('DEBUG: Auth token saved and cached'); + } catch (e) { + debugPrint('ERROR: Failed to save auth token: $e'); + rethrow; + } + } + + Future getAuthToken() async { + // Check cache first + if (_isCacheValid(_authTokenKey)) { + final cachedToken = _cache[_authTokenKey] as String?; + if (cachedToken != null) { + debugPrint('DEBUG: Using cached auth token'); + return cachedToken; + } + } + + try { + final token = await _secureCredentialStorage.getAuthToken(); + if (token != null) { + _cache[_authTokenKey] = token; + _cacheTimestamps[_authTokenKey] = DateTime.now(); + } + return token; + } catch (e) { + debugPrint('ERROR: Failed to retrieve auth token: $e'); + return null; + } + } + + Future deleteAuthToken() async { + try { + await _secureCredentialStorage.deleteAuthToken(); + _cache.remove(_authTokenKey); + _cacheTimestamps.remove(_authTokenKey); + debugPrint('DEBUG: Auth token deleted and cache cleared'); + } catch (e) { + debugPrint('ERROR: Failed to delete auth token: $e'); + } + } + + /// Credential Management (Single storage implementation) + Future saveCredentials({ + required String serverId, + required String username, + required String password, + }) async { + try { + await _secureCredentialStorage.saveCredentials( + serverId: serverId, + username: username, + password: password, + ); + + // Cache the fact that credentials exist (not the credentials themselves) + _cache['has_credentials'] = true; + _cacheTimestamps['has_credentials'] = DateTime.now(); + + debugPrint('DEBUG: Credentials saved via optimized storage'); + } catch (e) { + debugPrint('ERROR: Failed to save credentials: $e'); + rethrow; + } + } + + Future?> getSavedCredentials() async { + try { + // Use single storage implementation - no fallback needed + final credentials = await _secureCredentialStorage.getSavedCredentials(); + + // Update cache flag + _cache['has_credentials'] = credentials != null; + _cacheTimestamps['has_credentials'] = DateTime.now(); + + return credentials; + } catch (e) { + debugPrint('ERROR: Failed to retrieve credentials: $e'); + return null; + } + } + + Future deleteSavedCredentials() async { + try { + await _secureCredentialStorage.deleteSavedCredentials(); + _cache.remove('has_credentials'); + _cacheTimestamps.remove('has_credentials'); + debugPrint('DEBUG: Credentials deleted via optimized storage'); + } catch (e) { + debugPrint('ERROR: Failed to delete credentials: $e'); + } + } + + /// Quick check if credentials exist (uses cache) + Future hasCredentials() async { + if (_isCacheValid('has_credentials')) { + return _cache['has_credentials'] == true; + } + + final credentials = await getSavedCredentials(); + return credentials != null; + } + + /// Remember Credentials Flag + Future setRememberCredentials(bool remember) async { + await _prefs.setBool(_rememberCredentialsKey, remember); + } + + bool getRememberCredentials() { + return _prefs.getBool(_rememberCredentialsKey) ?? false; + } + + /// Server Configuration (Optimized) + Future saveServerConfigs(List configs) async { + try { + final jsonString = jsonEncode(configs.map((c) => c.toJson()).toList()); + await _secureCredentialStorage.saveServerConfigs(jsonString); + + // Cache config count for quick checks + _cache['server_config_count'] = configs.length; + _cacheTimestamps['server_config_count'] = DateTime.now(); + + debugPrint('DEBUG: Server configs saved (${configs.length} configs)'); + } catch (e) { + debugPrint('ERROR: Failed to save server configs: $e'); + rethrow; + } + } + + Future> getServerConfigs() async { + try { + final jsonString = await _secureCredentialStorage.getServerConfigs(); + if (jsonString == null || jsonString.isEmpty) { + _cache['server_config_count'] = 0; + _cacheTimestamps['server_config_count'] = DateTime.now(); + return []; + } + + final decoded = jsonDecode(jsonString) as List; + final configs = decoded + .map((item) => ServerConfig.fromJson(item)) + .toList(); + + // Update cache + _cache['server_config_count'] = configs.length; + _cacheTimestamps['server_config_count'] = DateTime.now(); + + return configs; + } catch (e) { + debugPrint('ERROR: Failed to retrieve server configs: $e'); + return []; + } + } + + /// Active Server Management + Future setActiveServerId(String? serverId) async { + if (serverId != null) { + await _prefs.setString(_activeServerIdKey, serverId); + } else { + await _prefs.remove(_activeServerIdKey); + } + + // Update cache + _cache[_activeServerIdKey] = serverId; + _cacheTimestamps[_activeServerIdKey] = DateTime.now(); + } + + Future getActiveServerId() async { + // Check cache first + if (_isCacheValid(_activeServerIdKey)) { + return _cache[_activeServerIdKey] as String?; + } + + final serverId = _prefs.getString(_activeServerIdKey); + _cache[_activeServerIdKey] = serverId; + _cacheTimestamps[_activeServerIdKey] = DateTime.now(); + + return serverId; + } + + /// Theme Management + String? getThemeMode() { + return _prefs.getString(_themeModeKey); + } + + Future setThemeMode(String mode) async { + await _prefs.setString(_themeModeKey, mode); + } + + /// Onboarding + Future getOnboardingSeen() async { + return _prefs.getBool(_onboardingSeenKey) ?? false; + } + + Future setOnboardingSeen(bool seen) async { + await _prefs.setBool(_onboardingSeenKey, seen); + } + + /// Reviewer mode (persisted) + Future getReviewerMode() async { + return _prefs.getBool(_reviewerModeKey) ?? false; + } + + Future setReviewerMode(bool enabled) async { + await _prefs.setBool(_reviewerModeKey, enabled); + } + + /// Local Conversations (Optimized with compression) + Future> getLocalConversations() async { + try { + final jsonString = _prefs.getString(_localConversationsKey); + if (jsonString == null || jsonString.isEmpty) return []; + + final decoded = jsonDecode(jsonString) as List; + return decoded.map((item) => Conversation.fromJson(item)).toList(); + } catch (e) { + debugPrint('ERROR: Failed to retrieve local conversations: $e'); + return []; + } + } + + Future saveLocalConversations(List conversations) async { + try { + // Only save essential data to reduce storage size + final lightweightConversations = conversations + .map( + (conv) => { + 'id': conv.id, + 'title': conv.title, + 'updatedAt': conv.updatedAt.toIso8601String(), + 'messageCount': conv.messages.length, + // Don't save full message content locally + }, + ) + .toList(); + + final jsonString = jsonEncode(lightweightConversations); + await _prefs.setString(_localConversationsKey, jsonString); + + debugPrint( + 'DEBUG: Saved ${conversations.length} local conversations (lightweight)', + ); + } catch (e) { + debugPrint('ERROR: Failed to save local conversations: $e'); + } + } + + /// Batch Operations for Performance + Future clearAuthData() async { + try { + // Clear auth-related data in batch + await Future.wait([ + deleteAuthToken(), + deleteSavedCredentials(), + _prefs.remove(_rememberCredentialsKey), + _prefs.remove(_activeServerIdKey), + ]); + + // Clear related cache entries + _cache.removeWhere( + (key, value) => + key.contains('auth') || + key.contains('credentials') || + key.contains('server'), + ); + _cacheTimestamps.removeWhere( + (key, value) => + key.contains('auth') || + key.contains('credentials') || + key.contains('server'), + ); + + debugPrint('DEBUG: Auth data cleared in batch operation'); + } catch (e) { + debugPrint('ERROR: Failed to clear auth data: $e'); + } + } + + Future clearAll() async { + try { + await Future.wait([_secureCredentialStorage.clearAll(), _prefs.clear()]); + + _cache.clear(); + _cacheTimestamps.clear(); + + debugPrint('DEBUG: All storage cleared'); + } catch (e) { + debugPrint('ERROR: Failed to clear all storage: $e'); + } + } + + /// Storage Health Check + Future isSecureStorageAvailable() async { + return await _secureCredentialStorage.isSecureStorageAvailable(); + } + + /// Cache Management Utilities + bool _isCacheValid(String key) { + final timestamp = _cacheTimestamps[key]; + if (timestamp == null) return false; + + return DateTime.now().difference(timestamp) < _cacheTimeout; + } + + void clearCache() { + _cache.clear(); + _cacheTimestamps.clear(); + debugPrint('DEBUG: Storage cache cleared'); + } + + /// Migration from old storage service (one-time operation) + Future migrateFromLegacyStorage() async { + try { + debugPrint('DEBUG: Starting migration from legacy storage'); + + // This would be called once during app upgrade + // Implementation would depend on the specific migration needs + // For now, the SecureCredentialStorage already handles legacy migration + + debugPrint('DEBUG: Legacy storage migration completed'); + } catch (e) { + debugPrint('ERROR: Legacy storage migration failed: $e'); + } + } + + /// Performance Monitoring + Map getStorageStats() { + return { + 'cacheSize': _cache.length, + 'cachedKeys': _cache.keys.toList(), + 'lastAccess': _cacheTimestamps.entries + .map((e) => '${e.key}: ${e.value}') + .toList(), + }; + } +} diff --git a/lib/core/services/platform_service.dart b/lib/core/services/platform_service.dart new file mode 100644 index 0000000..56dc0d6 --- /dev/null +++ b/lib/core/services/platform_service.dart @@ -0,0 +1,408 @@ +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter/cupertino.dart'; +import 'dart:io' show Platform; +import '../../shared/theme/theme_extensions.dart'; + +/// Service for platform-specific features and polish +class PlatformService { + /// Check if running on iOS + static bool get isIOS => Platform.isIOS; + + /// Check if running on Android + static bool get isAndroid => Platform.isAndroid; + + /// Provide haptic feedback appropriate for the action + static void hapticFeedback({HapticType type = HapticType.light}) { + if (isIOS) { + _iOSHapticFeedback(type); + } else if (isAndroid) { + _androidHapticFeedback(type); + } + } + + /// Provide haptic feedback respecting user preferences + static void hapticFeedbackWithSettings({ + HapticType type = HapticType.light, + required bool hapticEnabled, + }) { + if (hapticEnabled) { + hapticFeedback(type: type); + } + } + + /// iOS-specific haptic feedback + static void _iOSHapticFeedback(HapticType type) { + switch (type) { + case HapticType.light: + HapticFeedback.lightImpact(); + break; + case HapticType.medium: + HapticFeedback.mediumImpact(); + break; + case HapticType.heavy: + HapticFeedback.heavyImpact(); + break; + case HapticType.selection: + HapticFeedback.selectionClick(); + break; + case HapticType.success: + // iOS has specific success haptics in newer versions + HapticFeedback.lightImpact(); + break; + case HapticType.warning: + HapticFeedback.mediumImpact(); + break; + case HapticType.error: + HapticFeedback.heavyImpact(); + break; + } + } + + /// Android-specific haptic feedback + static void _androidHapticFeedback(HapticType type) { + switch (type) { + case HapticType.light: + case HapticType.selection: + HapticFeedback.lightImpact(); + break; + case HapticType.medium: + case HapticType.success: + HapticFeedback.mediumImpact(); + break; + case HapticType.heavy: + case HapticType.warning: + case HapticType.error: + HapticFeedback.heavyImpact(); + break; + } + } + + /// Get platform-appropriate button style + static ButtonStyle getPlatformButtonStyle({ + Color? backgroundColor, + Color? foregroundColor, + EdgeInsetsGeometry? padding, + bool isDestructive = false, + }) { + // Return Material button style for both platforms since ButtonStyle is a Material concept + return ElevatedButton.styleFrom( + backgroundColor: backgroundColor, + foregroundColor: foregroundColor, + padding: padding, + elevation: isDestructive ? 0 : 1, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.md), + ), + ); + } + + /// Get platform-appropriate card elevation + static double getPlatformCardElevation({bool isRaised = false}) { + if (isIOS) { + return 0; // iOS prefers flat design + } else { + return isRaised ? 4.0 : 1.0; // Android Material elevation + } + } + + /// Get platform-appropriate border radius + static BorderRadius getPlatformBorderRadius({double radius = 12}) { + if (isIOS) { + return BorderRadius.circular( + radius + 2, + ); // iOS prefers slightly more rounded + } else { + return BorderRadius.circular(radius); // Android standard + } + } + + /// Create platform-appropriate navigation transition + static Route createPlatformRoute({ + required Widget page, + RouteSettings? settings, + }) { + if (isIOS) { + return CupertinoPageRoute( + builder: (context) => page, + settings: settings, + ); + } else { + return MaterialPageRoute( + builder: (context) => page, + settings: settings, + ); + } + } + + /// Show platform-appropriate action sheet + static Future showPlatformActionSheet({ + required BuildContext context, + required String title, + List? actions, + PlatformActionSheetAction? cancelAction, + }) { + if (isIOS) { + return showCupertinoModalPopup( + context: context, + builder: (context) => CupertinoActionSheet( + title: Text(title), + actions: actions + ?.map( + (action) => CupertinoActionSheetAction( + onPressed: action.onPressed, + isDestructiveAction: action.isDestructive, + child: Text(action.title), + ), + ) + .toList(), + cancelButton: cancelAction != null + ? CupertinoActionSheetAction( + onPressed: cancelAction.onPressed, + child: Text(cancelAction.title), + ) + : null, + ), + ); + } else { + return showModalBottomSheet( + context: context, + builder: (context) => Column( + mainAxisSize: MainAxisSize.min, + children: [ + Padding( + padding: const EdgeInsets.all(Spacing.md), + child: Text(title, style: Theme.of(context).textTheme.titleLarge), + ), + ...actions?.map( + (action) => ListTile( + title: Text( + action.title, + style: TextStyle( + color: action.isDestructive + ? Theme.of(context).colorScheme.error + : null, + ), + ), + onTap: action.onPressed, + ), + ) ?? + [], + if (cancelAction != null) + ListTile( + title: Text(cancelAction.title), + onTap: cancelAction.onPressed, + ), + ], + ), + ); + } + } + + /// Show platform-appropriate alert dialog + static Future showPlatformAlert({ + required BuildContext context, + required String title, + required String content, + String confirmText = 'OK', + String? cancelText, + bool isDestructive = false, + }) { + if (isIOS) { + return showCupertinoDialog( + context: context, + builder: (context) => CupertinoAlertDialog( + title: Text(title), + content: Text(content), + actions: [ + if (cancelText != null) + CupertinoDialogAction( + child: Text(cancelText), + onPressed: () => Navigator.of(context).pop(false), + ), + CupertinoDialogAction( + isDestructiveAction: isDestructive, + child: Text(confirmText), + onPressed: () => Navigator.of(context).pop(true), + ), + ], + ), + ); + } else { + return showDialog( + context: context, + builder: (context) => AlertDialog( + backgroundColor: context.conduitTheme.surfaceBackground, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(AppBorderRadius.dialog), + ), + title: Text( + title, + style: TextStyle(color: context.conduitTheme.textPrimary), + ), + content: Text( + content, + style: TextStyle(color: context.conduitTheme.textSecondary), + ), + actions: [ + if (cancelText != null) + TextButton( + child: Text( + cancelText, + style: TextStyle(color: context.conduitTheme.textSecondary), + ), + onPressed: () => Navigator.of(context).pop(false), + ), + TextButton( + style: TextButton.styleFrom( + foregroundColor: isDestructive + ? context.conduitTheme.error + : context.conduitTheme.buttonPrimary, + ), + child: Text(confirmText), + onPressed: () => Navigator.of(context).pop(true), + ), + ], + ), + ); + } + } + + /// Get platform-appropriate loading indicator + static Widget getPlatformLoadingIndicator({double size = 20, Color? color}) { + if (isIOS) { + return SizedBox( + width: size, + height: size, + child: CupertinoActivityIndicator(color: color), + ); + } else { + return SizedBox( + width: size, + height: size, + child: CircularProgressIndicator( + strokeWidth: 2, + valueColor: color != null + ? AlwaysStoppedAnimation(color) + : null, + ), + ); + } + } + + /// Get platform-appropriate switch widget + static Widget getPlatformSwitch({ + required bool value, + required ValueChanged? onChanged, + Color? activeColor, + }) { + if (isIOS) { + return CupertinoSwitch( + value: value, + onChanged: onChanged, + activeTrackColor: activeColor, + ); + } else { + return Switch( + value: value, + onChanged: onChanged, + activeColor: activeColor, + ); + } + } + + /// Apply platform-specific status bar styling + static void setPlatformStatusBarStyle({ + bool isDarkContent = false, + Color? backgroundColor, + }) { + if (isIOS) { + SystemChrome.setSystemUIOverlayStyle( + SystemUiOverlayStyle( + statusBarBrightness: isDarkContent + ? Brightness.light + : Brightness.dark, + statusBarIconBrightness: isDarkContent + ? Brightness.dark + : Brightness.light, + statusBarColor: backgroundColor, + ), + ); + } else { + SystemChrome.setSystemUIOverlayStyle( + SystemUiOverlayStyle( + statusBarColor: backgroundColor ?? Colors.transparent, + statusBarIconBrightness: isDarkContent + ? Brightness.dark + : Brightness.light, + systemNavigationBarColor: backgroundColor, + systemNavigationBarIconBrightness: isDarkContent + ? Brightness.dark + : Brightness.light, + ), + ); + } + } + + /// Check if device supports dynamic colors (Android 12+) + static bool supportsDynamicColors() { + // This would require platform channel implementation + // For now, return false + return false; + } + + /// Get platform-appropriate text selection controls + static TextSelectionControls getPlatformTextSelectionControls() { + if (isIOS) { + return cupertinoTextSelectionControls; + } else { + return materialTextSelectionControls; + } + } + + /// Create platform-specific app bar + static PreferredSizeWidget createPlatformAppBar({ + required String title, + List? actions, + Widget? leading, + bool centerTitle = false, + Color? backgroundColor, + Color? foregroundColor, + }) { + if (isIOS) { + return CupertinoNavigationBar( + middle: Text(title), + trailing: actions != null && actions.isNotEmpty + ? Row(mainAxisSize: MainAxisSize.min, children: actions) + : null, + leading: leading, + backgroundColor: backgroundColor, + ); + } else { + return AppBar( + title: Text(title), + actions: actions, + leading: leading, + centerTitle: centerTitle, + backgroundColor: backgroundColor, + foregroundColor: foregroundColor, + ); + } + } +} + +/// Types of haptic feedback +enum HapticType { light, medium, heavy, selection, success, warning, error } + +/// Action sheet action configuration +class PlatformActionSheetAction { + final String title; + final VoidCallback onPressed; + final bool isDestructive; + + const PlatformActionSheetAction({ + required this.title, + required this.onPressed, + this.isDestructive = false, + }); +} diff --git a/lib/core/services/secure_credential_storage.dart b/lib/core/services/secure_credential_storage.dart new file mode 100644 index 0000000..e8c0572 --- /dev/null +++ b/lib/core/services/secure_credential_storage.dart @@ -0,0 +1,326 @@ +import 'dart:convert'; +import 'dart:io'; +import 'package:flutter/foundation.dart'; +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; +import 'package:crypto/crypto.dart'; + +/// Enhanced secure credential storage with platform-specific optimizations +class SecureCredentialStorage { + late final FlutterSecureStorage _secureStorage; + + SecureCredentialStorage() { + _secureStorage = FlutterSecureStorage( + aOptions: _getAndroidOptions(), + iOptions: _getIOSOptions(), + ); + } + + static const String _credentialsKey = 'user_credentials_v2'; + static const String _serverConfigsKey = 'server_configs_v2'; + static const String _authTokenKey = 'auth_token_v2'; + + /// Get Android-specific secure storage options + AndroidOptions _getAndroidOptions() { + return const AndroidOptions( + encryptedSharedPreferences: true, + sharedPreferencesName: 'conduit_secure_prefs', + preferencesKeyPrefix: 'conduit_', + resetOnError: true, + // Use more compatible encryption algorithms + keyCipherAlgorithm: KeyCipherAlgorithm.RSA_ECB_PKCS1Padding, + storageCipherAlgorithm: StorageCipherAlgorithm.AES_CBC_PKCS7Padding, + ); + } + + /// Get iOS-specific secure storage options + IOSOptions _getIOSOptions() { + return const IOSOptions( + groupId: 'group.conduit.app', + accountName: 'conduit_secure_storage', + synchronizable: false, + ); + } + + /// Save user credentials securely + Future saveCredentials({ + required String serverId, + required String username, + required String password, + }) async { + try { + // First check if secure storage is available + final isAvailable = await isSecureStorageAvailable(); + if (!isAvailable) { + throw Exception('Secure storage is not available on this device'); + } + + final credentials = { + 'serverId': serverId, + 'username': username, + 'password': password, + 'savedAt': DateTime.now().toIso8601String(), + 'deviceId': await _getDeviceFingerprint(), + 'version': '2.0', // Version for migration purposes + }; + + final encryptedData = await _encryptData(jsonEncode(credentials)); + await _secureStorage.write(key: _credentialsKey, value: encryptedData); + + // Verify the save was successful by attempting to read it back + final verifyData = await _secureStorage.read(key: _credentialsKey); + if (verifyData == null || verifyData.isEmpty) { + throw Exception( + 'Failed to verify credential save - storage returned null', + ); + } + + debugPrint('DEBUG: Credentials saved and verified securely'); + } catch (e) { + debugPrint('ERROR: Failed to save credentials: $e'); + rethrow; + } + } + + /// Retrieve saved credentials + Future?> getSavedCredentials() async { + try { + final encryptedData = await _secureStorage.read(key: _credentialsKey); + if (encryptedData == null || encryptedData.isEmpty) { + return null; + } + + final jsonString = await _decryptData(encryptedData); + final decoded = jsonDecode(jsonString); + + if (decoded is! Map) { + debugPrint('Warning: Invalid credentials format'); + await deleteSavedCredentials(); + return null; + } + + // Validate device fingerprint for additional security, but be more lenient + final savedDeviceId = decoded['deviceId']?.toString(); + if (savedDeviceId != null) { + final currentDeviceId = await _getDeviceFingerprint(); + + if (savedDeviceId != currentDeviceId) { + debugPrint( + 'Info: Device fingerprint changed, but allowing credential access for better UX', + ); + // Don't clear credentials immediately - allow the user to continue + // They can re-login if needed, which will update the fingerprint + } + } + + // Validate required fields + if (!decoded.containsKey('serverId') || + !decoded.containsKey('username') || + !decoded.containsKey('password')) { + debugPrint( + 'Warning: Invalid saved credentials format - missing required fields', + ); + await deleteSavedCredentials(); + return null; + } + + // Check if credentials are too old (optional expiration) + final savedAt = decoded['savedAt']?.toString(); + if (savedAt != null) { + try { + final savedTime = DateTime.parse(savedAt); + final now = DateTime.now(); + final daysSinceCreated = now.difference(savedTime).inDays; + + // Warn if credentials are very old (but don't delete them) + if (daysSinceCreated > 90) { + debugPrint( + 'Info: Saved credentials are $daysSinceCreated days old', + ); + } + } catch (e) { + debugPrint('Warning: Could not parse savedAt timestamp: $e'); + } + } + + return { + 'serverId': decoded['serverId']?.toString() ?? '', + 'username': decoded['username']?.toString() ?? '', + 'password': decoded['password']?.toString() ?? '', + 'savedAt': decoded['savedAt']?.toString() ?? '', + }; + } catch (e) { + debugPrint('ERROR: Failed to retrieve credentials: $e'); + // Don't delete credentials on retrieval errors - they might be recoverable + return null; + } + } + + /// Delete saved credentials + Future deleteSavedCredentials() async { + try { + await _secureStorage.delete(key: _credentialsKey); + debugPrint('DEBUG: Credentials deleted'); + } catch (e) { + debugPrint('ERROR: Failed to delete credentials: $e'); + } + } + + /// Save auth token securely + Future saveAuthToken(String token) async { + try { + final encryptedToken = await _encryptData(token); + await _secureStorage.write(key: _authTokenKey, value: encryptedToken); + } catch (e) { + debugPrint('ERROR: Failed to save auth token: $e'); + rethrow; + } + } + + /// Get auth token + Future getAuthToken() async { + try { + final encryptedToken = await _secureStorage.read(key: _authTokenKey); + if (encryptedToken == null) return null; + + return await _decryptData(encryptedToken); + } catch (e) { + debugPrint('ERROR: Failed to retrieve auth token: $e'); + return null; + } + } + + /// Delete auth token + Future deleteAuthToken() async { + try { + await _secureStorage.delete(key: _authTokenKey); + } catch (e) { + debugPrint('ERROR: Failed to delete auth token: $e'); + } + } + + /// Save server configurations securely + Future saveServerConfigs(String configsJson) async { + try { + final encryptedConfigs = await _encryptData(configsJson); + await _secureStorage.write( + key: _serverConfigsKey, + value: encryptedConfigs, + ); + } catch (e) { + debugPrint('ERROR: Failed to save server configs: $e'); + rethrow; + } + } + + /// Get server configurations + Future getServerConfigs() async { + try { + final encryptedConfigs = await _secureStorage.read( + key: _serverConfigsKey, + ); + if (encryptedConfigs == null) return null; + + return await _decryptData(encryptedConfigs); + } catch (e) { + debugPrint('ERROR: Failed to retrieve server configs: $e'); + return null; + } + } + + /// Check if secure storage is available + Future isSecureStorageAvailable() async { + try { + // Test write and read + const testKey = 'test_availability'; + const testValue = 'test'; + + await _secureStorage.write(key: testKey, value: testValue); + final result = await _secureStorage.read(key: testKey); + await _secureStorage.delete(key: testKey); + + return result == testValue; + } catch (e) { + debugPrint('WARNING: Secure storage not available: $e'); + return false; + } + } + + /// Clear all secure data + Future clearAll() async { + try { + await _secureStorage.deleteAll(); + debugPrint('DEBUG: All secure data cleared'); + } catch (e) { + debugPrint('ERROR: Failed to clear secure data: $e'); + } + } + + /// Encrypt data using additional layer of encryption + Future _encryptData(String data) async { + try { + // For now, return the data as-is since FlutterSecureStorage already provides encryption + // In a more advanced implementation, you could add an additional layer of AES encryption + return data; + } catch (e) { + debugPrint('ERROR: Failed to encrypt data: $e'); + rethrow; + } + } + + /// Decrypt data + Future _decryptData(String encryptedData) async { + try { + // For now, return the data as-is since FlutterSecureStorage handles decryption + // This matches the encryption method above + return encryptedData; + } catch (e) { + debugPrint('ERROR: Failed to decrypt data: $e'); + rethrow; + } + } + + /// Generate a device fingerprint for additional security + Future _getDeviceFingerprint() async { + try { + // Create a more stable device fingerprint + final platformInfo = { + 'platform': Platform.operatingSystem, + // Use only major version to avoid fingerprint changes on minor updates + 'majorVersion': Platform.operatingSystemVersion.split('.').first, + 'isPhysicalDevice': true, // In a real implementation, you'd detect this + // Add a static component to ensure consistency + 'appId': 'conduit_app_v1', + }; + + final fingerprintData = jsonEncode(platformInfo); + final bytes = utf8.encode(fingerprintData); + final digest = sha256.convert(bytes); + + return digest.toString(); + } catch (e) { + debugPrint('WARNING: Failed to generate device fingerprint: $e'); + // Return a consistent fallback fingerprint + return 'stable_fallback_device_id'; + } + } + + /// Migrate from old storage format if needed + Future migrateFromOldStorage( + Map? oldCredentials, + ) async { + if (oldCredentials == null) return; + + try { + await saveCredentials( + serverId: oldCredentials['serverId'] ?? '', + username: oldCredentials['username'] ?? '', + password: oldCredentials['password'] ?? '', + ); + debugPrint( + 'DEBUG: Successfully migrated credentials to new secure format', + ); + } catch (e) { + debugPrint('ERROR: Failed to migrate credentials: $e'); + } + } +} diff --git a/lib/core/services/settings_service.dart b/lib/core/services/settings_service.dart new file mode 100644 index 0000000..7f57a75 --- /dev/null +++ b/lib/core/services/settings_service.dart @@ -0,0 +1,275 @@ +import 'package:flutter/material.dart'; +import 'package:flutter_riverpod/flutter_riverpod.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'animation_service.dart'; + +/// Service for managing app-wide settings including accessibility preferences +class SettingsService { + static const String _reduceMotionKey = 'reduce_motion'; + static const String _animationSpeedKey = 'animation_speed'; + static const String _hapticFeedbackKey = 'haptic_feedback'; + static const String _highContrastKey = 'high_contrast'; + static const String _largeTextKey = 'large_text'; + static const String _darkModeKey = 'dark_mode'; + + /// Get reduced motion preference + static Future getReduceMotion() async { + final prefs = await SharedPreferences.getInstance(); + return prefs.getBool(_reduceMotionKey) ?? false; + } + + /// Set reduced motion preference + static Future setReduceMotion(bool value) async { + final prefs = await SharedPreferences.getInstance(); + await prefs.setBool(_reduceMotionKey, value); + } + + /// Get animation speed multiplier (0.5 - 2.0) + static Future getAnimationSpeed() async { + final prefs = await SharedPreferences.getInstance(); + return prefs.getDouble(_animationSpeedKey) ?? 1.0; + } + + /// Set animation speed multiplier + static Future setAnimationSpeed(double value) async { + final prefs = await SharedPreferences.getInstance(); + await prefs.setDouble(_animationSpeedKey, value.clamp(0.5, 2.0)); + } + + /// Get haptic feedback preference + static Future getHapticFeedback() async { + final prefs = await SharedPreferences.getInstance(); + return prefs.getBool(_hapticFeedbackKey) ?? true; + } + + /// Set haptic feedback preference + static Future setHapticFeedback(bool value) async { + final prefs = await SharedPreferences.getInstance(); + await prefs.setBool(_hapticFeedbackKey, value); + } + + /// Get high contrast preference + static Future getHighContrast() async { + final prefs = await SharedPreferences.getInstance(); + return prefs.getBool(_highContrastKey) ?? false; + } + + /// Set high contrast preference + static Future setHighContrast(bool value) async { + final prefs = await SharedPreferences.getInstance(); + await prefs.setBool(_highContrastKey, value); + } + + /// Get large text preference + static Future getLargeText() async { + final prefs = await SharedPreferences.getInstance(); + return prefs.getBool(_largeTextKey) ?? false; + } + + /// Set large text preference + static Future setLargeText(bool value) async { + final prefs = await SharedPreferences.getInstance(); + await prefs.setBool(_largeTextKey, value); + } + + /// Get dark mode preference + static Future getDarkMode() async { + final prefs = await SharedPreferences.getInstance(); + return prefs.getBool(_darkModeKey) ?? true; // Default to dark + } + + /// Set dark mode preference + static Future setDarkMode(bool value) async { + final prefs = await SharedPreferences.getInstance(); + await prefs.setBool(_darkModeKey, value); + } + + /// Load all settings + static Future loadSettings() async { + return AppSettings( + reduceMotion: await getReduceMotion(), + animationSpeed: await getAnimationSpeed(), + hapticFeedback: await getHapticFeedback(), + highContrast: await getHighContrast(), + largeText: await getLargeText(), + darkMode: await getDarkMode(), + ); + } + + /// Save all settings + static Future saveSettings(AppSettings settings) async { + await Future.wait([ + setReduceMotion(settings.reduceMotion), + setAnimationSpeed(settings.animationSpeed), + setHapticFeedback(settings.hapticFeedback), + setHighContrast(settings.highContrast), + setLargeText(settings.largeText), + setDarkMode(settings.darkMode), + ]); + } + + /// Get effective animation duration considering all settings + static Duration getEffectiveAnimationDuration( + BuildContext context, + Duration defaultDuration, + AppSettings settings, + ) { + // Check system reduced motion first + if (MediaQuery.of(context).disableAnimations || settings.reduceMotion) { + return Duration.zero; + } + + // Apply user animation speed preference + final adjustedMs = + (defaultDuration.inMilliseconds / settings.animationSpeed).round(); + return Duration(milliseconds: adjustedMs.clamp(50, 1000)); + } + + /// Get text scale factor considering user preferences + static double getEffectiveTextScaleFactor( + BuildContext context, + AppSettings settings, + ) { + final textScaler = MediaQuery.of(context).textScaler; + double baseScale = textScaler.scale(1.0); + + // Apply large text preference + if (settings.largeText) { + baseScale *= 1.3; + } + + // Ensure reasonable bounds + return baseScale.clamp(0.8, 3.0); + } +} + +/// Data class for app settings +class AppSettings { + final bool reduceMotion; + final double animationSpeed; + final bool hapticFeedback; + final bool highContrast; + final bool largeText; + final bool darkMode; + + const AppSettings({ + this.reduceMotion = false, + this.animationSpeed = 1.0, + this.hapticFeedback = true, + this.highContrast = false, + this.largeText = false, + this.darkMode = true, + }); + + AppSettings copyWith({ + bool? reduceMotion, + double? animationSpeed, + bool? hapticFeedback, + bool? highContrast, + bool? largeText, + bool? darkMode, + }) { + return AppSettings( + reduceMotion: reduceMotion ?? this.reduceMotion, + animationSpeed: animationSpeed ?? this.animationSpeed, + hapticFeedback: hapticFeedback ?? this.hapticFeedback, + highContrast: highContrast ?? this.highContrast, + largeText: largeText ?? this.largeText, + darkMode: darkMode ?? this.darkMode, + ); + } + + @override + bool operator ==(Object other) { + if (identical(this, other)) return true; + return other is AppSettings && + other.reduceMotion == reduceMotion && + other.animationSpeed == animationSpeed && + other.hapticFeedback == hapticFeedback && + other.highContrast == highContrast && + other.largeText == largeText && + other.darkMode == darkMode; + } + + @override + int get hashCode { + return Object.hash( + reduceMotion, + animationSpeed, + hapticFeedback, + highContrast, + largeText, + darkMode, + ); + } +} + +/// Provider for app settings +final appSettingsProvider = + StateNotifierProvider( + (ref) => AppSettingsNotifier(), + ); + +class AppSettingsNotifier extends StateNotifier { + AppSettingsNotifier() : super(const AppSettings()) { + _loadSettings(); + } + + Future _loadSettings() async { + final settings = await SettingsService.loadSettings(); + state = settings; + } + + Future setReduceMotion(bool value) async { + state = state.copyWith(reduceMotion: value); + await SettingsService.setReduceMotion(value); + } + + Future setAnimationSpeed(double value) async { + state = state.copyWith(animationSpeed: value); + await SettingsService.setAnimationSpeed(value); + } + + Future setHapticFeedback(bool value) async { + state = state.copyWith(hapticFeedback: value); + await SettingsService.setHapticFeedback(value); + } + + Future setHighContrast(bool value) async { + state = state.copyWith(highContrast: value); + await SettingsService.setHighContrast(value); + } + + Future setLargeText(bool value) async { + state = state.copyWith(largeText: value); + await SettingsService.setLargeText(value); + } + + Future setDarkMode(bool value) async { + state = state.copyWith(darkMode: value); + await SettingsService.setDarkMode(value); + } + + Future resetToDefaults() async { + const defaultSettings = AppSettings(); + await SettingsService.saveSettings(defaultSettings); + state = defaultSettings; + } +} + +/// Provider for checking if haptic feedback should be enabled +final hapticEnabledProvider = Provider((ref) { + final settings = ref.watch(appSettingsProvider); + return settings.hapticFeedback; +}); + +/// Provider for effective animation settings +final effectiveAnimationSettingsProvider = Provider((ref) { + final appSettings = ref.watch(appSettingsProvider); + + return AnimationSettings( + reduceMotion: appSettings.reduceMotion, + performance: AnimationPerformance.adaptive, + animationSpeed: appSettings.animationSpeed, + ); +}); diff --git a/lib/core/services/storage_service.dart b/lib/core/services/storage_service.dart new file mode 100644 index 0000000..f0da75b --- /dev/null +++ b/lib/core/services/storage_service.dart @@ -0,0 +1,372 @@ +import 'dart:convert'; +import 'package:flutter/foundation.dart'; +import 'package:flutter_secure_storage/flutter_secure_storage.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import '../models/server_config.dart'; +import '../models/conversation.dart'; +import 'secure_credential_storage.dart'; + +class StorageService { + final FlutterSecureStorage _secureStorage; + final SharedPreferences _prefs; + final SecureCredentialStorage _secureCredentialStorage; + + StorageService({ + required FlutterSecureStorage secureStorage, + required SharedPreferences prefs, + }) : _secureStorage = secureStorage, + _prefs = prefs, + _secureCredentialStorage = SecureCredentialStorage(); + + // Secure storage keys + static const String _authTokenKey = 'auth_token'; + static const String _serverConfigsKey = 'server_configs'; + static const String _activeServerIdKey = 'active_server_id'; + static const String _credentialsKey = 'saved_credentials'; + static const String _rememberCredentialsKey = 'remember_credentials'; + + // Shared preferences keys + static const String _themeModeKey = 'theme_mode'; + static const String _localConversationsKey = 'local_conversations'; + + // Auth token management - using enhanced secure storage + Future saveAuthToken(String token) async { + // Try enhanced secure storage first, fallback to legacy if needed + try { + await _secureCredentialStorage.saveAuthToken(token); + } catch (e) { + debugPrint('Warning: Enhanced secure storage failed, using fallback: $e'); + await _secureStorage.write(key: _authTokenKey, value: token); + } + } + + Future getAuthToken() async { + // Try enhanced secure storage first, fallback to legacy if needed + try { + final token = await _secureCredentialStorage.getAuthToken(); + if (token != null) return token; + } catch (e) { + debugPrint('Warning: Enhanced secure storage failed, using fallback: $e'); + } + + // Fallback to legacy storage + return await _secureStorage.read(key: _authTokenKey); + } + + Future deleteAuthToken() async { + // Clear from both storages to ensure complete cleanup + try { + await _secureCredentialStorage.deleteAuthToken(); + } catch (e) { + debugPrint('Warning: Failed to delete from enhanced storage: $e'); + } + + await _secureStorage.delete(key: _authTokenKey); + } + + // Credential management for auto-login - using enhanced secure storage + Future saveCredentials({ + required String serverId, + required String username, + required String password, + }) async { + // Try enhanced secure storage first, fallback to legacy if needed + try { + // Check if enhanced secure storage is available + final isSecureAvailable = await _secureCredentialStorage + .isSecureStorageAvailable(); + if (!isSecureAvailable) { + debugPrint( + 'DEBUG: Enhanced secure storage not available, using legacy storage', + ); + throw Exception('Enhanced secure storage not available'); + } + + await _secureCredentialStorage.saveCredentials( + serverId: serverId, + username: username, + password: password, + ); + debugPrint('DEBUG: Credentials saved using enhanced secure storage'); + } catch (e) { + debugPrint('Warning: Enhanced secure storage failed, using fallback: $e'); + + // Fallback to legacy storage + try { + final credentials = { + 'serverId': serverId, + 'username': username, + 'password': password, + 'savedAt': DateTime.now().toIso8601String(), + }; + + await _secureStorage.write( + key: _credentialsKey, + value: jsonEncode(credentials), + ); + + // Verify the fallback save + final verifyData = await _secureStorage.read(key: _credentialsKey); + if (verifyData == null || verifyData.isEmpty) { + throw Exception( + 'Failed to save credentials even with fallback storage', + ); + } + + debugPrint('DEBUG: Credentials saved using fallback storage'); + } catch (fallbackError) { + debugPrint( + 'ERROR: Both enhanced and fallback credential storage failed: $fallbackError', + ); + rethrow; + } + } + } + + Future?> getSavedCredentials() async { + // Try enhanced secure storage first + try { + final credentials = await _secureCredentialStorage.getSavedCredentials(); + if (credentials != null) { + return credentials; + } + } catch (e) { + debugPrint('Warning: Enhanced secure storage failed, using fallback: $e'); + } + + // Fallback to legacy storage and migrate if found + try { + final jsonString = await _secureStorage.read(key: _credentialsKey); + if (jsonString == null || jsonString.isEmpty) return null; + + final decoded = jsonDecode(jsonString); + if (decoded is! Map) return null; + + // Validate that credentials have required fields + if (!decoded.containsKey('serverId') || + !decoded.containsKey('username') || + !decoded.containsKey('password')) { + debugPrint('Warning: Invalid saved credentials format'); + await deleteSavedCredentials(); + return null; + } + + final legacyCredentials = { + 'serverId': decoded['serverId']?.toString() ?? '', + 'username': decoded['username']?.toString() ?? '', + 'password': decoded['password']?.toString() ?? '', + 'savedAt': decoded['savedAt']?.toString() ?? '', + }; + + // Attempt to migrate to enhanced storage + try { + await _secureCredentialStorage.migrateFromOldStorage(legacyCredentials); + // If migration successful, clean up legacy storage + await _secureStorage.delete(key: _credentialsKey); + debugPrint( + 'DEBUG: Successfully migrated credentials to enhanced storage', + ); + } catch (e) { + debugPrint('Warning: Failed to migrate credentials: $e'); + } + + return legacyCredentials; + } catch (e) { + debugPrint('Error loading saved credentials: $e'); + return null; + } + } + + Future deleteSavedCredentials() async { + // Clear from both storages to ensure complete cleanup + try { + await _secureCredentialStorage.deleteSavedCredentials(); + } catch (e) { + debugPrint('Warning: Failed to delete from enhanced storage: $e'); + } + + await _secureStorage.delete(key: _credentialsKey); + await setRememberCredentials(false); + } + + // Remember credentials preference + Future setRememberCredentials(bool remember) async { + await _prefs.setBool(_rememberCredentialsKey, remember); + } + + bool getRememberCredentials() { + return _prefs.getBool(_rememberCredentialsKey) ?? false; + } + + // Server configuration management + Future saveServerConfigs(List configs) async { + final json = configs.map((c) => c.toJson()).toList(); + await _secureStorage.write(key: _serverConfigsKey, value: jsonEncode(json)); + } + + Future> getServerConfigs() async { + try { + final jsonString = await _secureStorage.read(key: _serverConfigsKey); + if (jsonString == null || jsonString.isEmpty) return []; + + final decoded = jsonDecode(jsonString); + if (decoded is! List) { + debugPrint('Warning: Server configs data is not a list, resetting'); + return []; + } + + final configs = []; + for (final item in decoded) { + try { + if (item is Map) { + // Validate required fields before parsing + if (item.containsKey('id') && + item.containsKey('name') && + item.containsKey('url')) { + configs.add(ServerConfig.fromJson(item)); + } else { + debugPrint( + 'Warning: Skipping invalid server config: missing required fields', + ); + } + } + } catch (e) { + debugPrint('Warning: Failed to parse server config: $e'); + // Continue with other configs + } + } + + return configs; + } catch (e) { + debugPrint('Error loading server configs: $e'); + return []; + } + } + + Future setActiveServerId(String? serverId) async { + if (serverId == null) { + await _secureStorage.delete(key: _activeServerIdKey); + } else { + await _secureStorage.write(key: _activeServerIdKey, value: serverId); + } + } + + Future getActiveServerId() async { + return await _secureStorage.read(key: _activeServerIdKey); + } + + // Theme management + String? getThemeMode() { + return _prefs.getString(_themeModeKey); + } + + Future setThemeMode(String mode) async { + await _prefs.setString(_themeModeKey, mode); + } + + // Local conversation management + Future> getLocalConversations() async { + final jsonString = _prefs.getString(_localConversationsKey); + if (jsonString == null || jsonString.isEmpty) return []; + + try { + final decoded = jsonDecode(jsonString); + if (decoded is! List) { + debugPrint( + 'Warning: Local conversations data is not a list, resetting', + ); + return []; + } + + final conversations = []; + for (final item in decoded) { + try { + if (item is Map) { + // Validate required fields before parsing + if (item.containsKey('id') && + item.containsKey('title') && + item.containsKey('createdAt') && + item.containsKey('updatedAt')) { + conversations.add(Conversation.fromJson(item)); + } else { + debugPrint( + 'Warning: Skipping invalid conversation: missing required fields', + ); + } + } + } catch (e) { + debugPrint('Warning: Failed to parse conversation: $e'); + // Continue with other conversations + } + } + + return conversations; + } catch (e) { + debugPrint('Error parsing local conversations: $e'); + return []; + } + } + + Future saveLocalConversations(List conversations) async { + try { + final json = conversations.map((c) => c.toJson()).toList(); + await _prefs.setString(_localConversationsKey, jsonEncode(json)); + } catch (e) { + debugPrint('Error saving local conversations: $e'); + } + } + + Future addLocalConversation(Conversation conversation) async { + final conversations = await getLocalConversations(); + conversations.add(conversation); + await saveLocalConversations(conversations); + } + + Future updateLocalConversation(Conversation conversation) async { + final conversations = await getLocalConversations(); + final index = conversations.indexWhere((c) => c.id == conversation.id); + if (index != -1) { + conversations[index] = conversation; + await saveLocalConversations(conversations); + } + } + + Future deleteLocalConversation(String conversationId) async { + final conversations = await getLocalConversations(); + conversations.removeWhere((c) => c.id == conversationId); + await saveLocalConversations(conversations); + } + + // Clear all data + Future clearAll() async { + // Clear enhanced secure storage + try { + await _secureCredentialStorage.clearAll(); + } catch (e) { + debugPrint('Warning: Failed to clear enhanced storage: $e'); + } + + // Clear legacy storage + await _secureStorage.deleteAll(); + await _prefs.clear(); + + debugPrint('DEBUG: All storage cleared'); + } + + // Clear only auth-related data (keeping server configs and other settings) + Future clearAuthData() async { + await deleteAuthToken(); + await deleteSavedCredentials(); + debugPrint('DEBUG: Auth data cleared'); + } + + /// Check if enhanced secure storage is available + Future isEnhancedSecureStorageAvailable() async { + try { + return await _secureCredentialStorage.isSecureStorageAvailable(); + } catch (e) { + debugPrint('Warning: Failed to check enhanced storage availability: $e'); + return false; + } + } +} diff --git a/lib/core/services/user_friendly_error_handler.dart b/lib/core/services/user_friendly_error_handler.dart new file mode 100644 index 0000000..d05f542 --- /dev/null +++ b/lib/core/services/user_friendly_error_handler.dart @@ -0,0 +1,563 @@ +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import '../../shared/theme/theme_extensions.dart'; + +/// User-friendly error messages and recovery actions +class UserFriendlyErrorHandler { + static final UserFriendlyErrorHandler _instance = + UserFriendlyErrorHandler._internal(); + factory UserFriendlyErrorHandler() => _instance; + UserFriendlyErrorHandler._internal(); + + /// Convert technical errors to user-friendly messages + String getUserMessage(dynamic error) { + final errorString = error.toString().toLowerCase(); + + if (_isNetworkError(errorString)) { + return _getNetworkErrorMessage(errorString); + } else if (_isValidationError(errorString)) { + return _getValidationErrorMessage(errorString); + } else if (_isServerError(errorString)) { + return _getServerErrorMessage(errorString); + } else if (_isAuthenticationError(errorString)) { + return _getAuthenticationErrorMessage(errorString); + } else if (_isFileError(errorString)) { + return _getFileErrorMessage(errorString); + } else if (_isPermissionError(errorString)) { + return _getPermissionErrorMessage(errorString); + } + + // Log technical details for debugging + _logError(error); + + // Return generic user-friendly message + return 'Something unexpected happened. Please try again.'; + } + + /// Get recovery actions for the error + List getRecoveryActions(dynamic error) { + final errorString = error.toString().toLowerCase(); + + if (_isNetworkError(errorString)) { + return _getNetworkRecoveryActions(); + } else if (_isServerError(errorString)) { + return _getServerRecoveryActions(); + } else if (_isAuthenticationError(errorString)) { + return _getAuthRecoveryActions(); + } else if (_isFileError(errorString)) { + return _getFileRecoveryActions(); + } else if (_isPermissionError(errorString)) { + return _getPermissionRecoveryActions(); + } + + return _getGenericRecoveryActions(); + } + + /// Build error widget with recovery options + Widget buildErrorWidget( + dynamic error, { + VoidCallback? onRetry, + VoidCallback? onDismiss, + bool showDetails = false, + }) { + final message = getUserMessage(error); + final actions = getRecoveryActions(error); + + return ErrorCard( + message: message, + actions: actions, + onRetry: onRetry, + onDismiss: onDismiss, + showDetails: showDetails, + technicalDetails: showDetails ? error.toString() : null, + ); + } + + /// Show error dialog with recovery options + Future showErrorDialog( + BuildContext context, + dynamic error, { + VoidCallback? onRetry, + bool showDetails = false, + }) async { + final message = getUserMessage(error); + final actions = getRecoveryActions(error); + + return showDialog( + context: context, + builder: (context) => ErrorDialog( + message: message, + actions: actions, + onRetry: onRetry, + showDetails: showDetails, + technicalDetails: showDetails ? error.toString() : null, + ), + ); + } + + /// Show error snackbar with quick action + void showErrorSnackbar( + BuildContext context, + dynamic error, { + VoidCallback? onRetry, + }) { + final message = getUserMessage(error); + final actions = getRecoveryActions(error); + final primaryAction = actions.isNotEmpty ? actions.first : null; + + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text(message), + backgroundColor: context.conduitTheme.error, + action: primaryAction != null && onRetry != null + ? SnackBarAction( + label: primaryAction.label, + onPressed: onRetry, + textColor: context.conduitTheme.textInverse, + ) + : null, + duration: const Duration(seconds: 4), + behavior: SnackBarBehavior.floating, + ), + ); + } + + // Network error detection and handling + bool _isNetworkError(String error) { + return error.contains('socketexception') || + error.contains('network') || + error.contains('connection') || + error.contains('timeout') || + error.contains('handshake') || + error.contains('no address associated'); + } + + String _getNetworkErrorMessage(String error) { + if (error.contains('timeout')) { + return 'Connection timed out. Please check your internet connection and try again.'; + } else if (error.contains('no address associated')) { + return 'Cannot reach the server. Please check your server URL and internet connection.'; + } else if (error.contains('connection refused')) { + return 'Server is not responding. Please verify the server is running and accessible.'; + } + return 'Network connection problem. Please check your internet connection.'; + } + + List _getNetworkRecoveryActions() { + return [ + ErrorRecoveryAction( + label: 'Retry', + action: ErrorActionType.retry, + description: 'Try the request again', + ), + ErrorRecoveryAction( + label: 'Check Connection', + action: ErrorActionType.checkConnection, + description: 'Verify your internet connection', + ), + ]; + } + + // Server error detection and handling + bool _isServerError(String error) { + return error.contains('500') || + error.contains('502') || + error.contains('503') || + error.contains('504') || + error.contains('server error') || + error.contains('internal server error'); + } + + String _getServerErrorMessage(String error) { + if (error.contains('500')) { + return 'Server is experiencing issues. This is usually temporary.'; + } else if (error.contains('502') || error.contains('503')) { + return 'Server is temporarily unavailable. Please try again in a moment.'; + } else if (error.contains('504')) { + return 'Server took too long to respond. Please try again.'; + } + return 'Server is having problems. Please try again later.'; + } + + List _getServerRecoveryActions() { + return [ + ErrorRecoveryAction( + label: 'Try Again', + action: ErrorActionType.retry, + description: 'Retry your request', + ), + ErrorRecoveryAction( + label: 'Wait & Retry', + action: ErrorActionType.retryLater, + description: 'Wait a moment then try again', + ), + ]; + } + + // Authentication error detection and handling + bool _isAuthenticationError(String error) { + return error.contains('401') || + error.contains('403') || + error.contains('unauthorized') || + error.contains('forbidden') || + error.contains('authentication') || + error.contains('token'); + } + + String _getAuthenticationErrorMessage(String error) { + if (error.contains('401') || error.contains('unauthorized')) { + return 'Your session has expired. Please sign in again.'; + } else if (error.contains('403') || error.contains('forbidden')) { + return 'You don\'t have permission to perform this action.'; + } else if (error.contains('token')) { + return 'Authentication token is invalid. Please sign in again.'; + } + return 'Authentication problem. Please sign in again.'; + } + + List _getAuthRecoveryActions() { + return [ + ErrorRecoveryAction( + label: 'Sign In', + action: ErrorActionType.signIn, + description: 'Sign in to your account', + ), + ErrorRecoveryAction( + label: 'Try Again', + action: ErrorActionType.retry, + description: 'Retry the request', + ), + ]; + } + + // Validation error detection and handling + bool _isValidationError(String error) { + return error.contains('validation') || + error.contains('invalid') || + error.contains('format') || + error.contains('required') || + error.contains('400'); + } + + String _getValidationErrorMessage(String error) { + if (error.contains('email')) { + return 'Please enter a valid email address.'; + } else if (error.contains('password')) { + return 'Password doesn\'t meet requirements. Please check and try again.'; + } else if (error.contains('required')) { + return 'Please fill in all required fields.'; + } else if (error.contains('format')) { + return 'Some information is in the wrong format. Please check and try again.'; + } + return 'Please check your input and try again.'; + } + + // File error detection and handling + bool _isFileError(String error) { + return error.contains('file') || + error.contains('path') || + error.contains('directory') || + error.contains('not found') || + error.contains('access denied'); + } + + String _getFileErrorMessage(String error) { + if (error.contains('not found')) { + return 'File not found. It may have been moved or deleted.'; + } else if (error.contains('access denied')) { + return 'Cannot access the file. Please check permissions.'; + } else if (error.contains('too large')) { + return 'File is too large. Please choose a smaller file.'; + } + return 'Problem with the file. Please try a different file.'; + } + + List _getFileRecoveryActions() { + return [ + ErrorRecoveryAction( + label: 'Choose Different File', + action: ErrorActionType.chooseFile, + description: 'Select another file', + ), + ErrorRecoveryAction( + label: 'Try Again', + action: ErrorActionType.retry, + description: 'Retry the operation', + ), + ]; + } + + // Permission error detection and handling + bool _isPermissionError(String error) { + return error.contains('permission') || + error.contains('denied') || + error.contains('unauthorized') || + error.contains('access'); + } + + String _getPermissionErrorMessage(String error) { + if (error.contains('camera')) { + return 'Camera permission is required. Please enable it in settings.'; + } else if (error.contains('storage')) { + return 'Storage permission is required. Please enable it in settings.'; + } else if (error.contains('microphone')) { + return 'Microphone permission is required. Please enable it in settings.'; + } + return 'Permission required. Please check app permissions in settings.'; + } + + List _getPermissionRecoveryActions() { + return [ + ErrorRecoveryAction( + label: 'Open Settings', + action: ErrorActionType.openSettings, + description: 'Open app settings to grant permissions', + ), + ErrorRecoveryAction( + label: 'Try Again', + action: ErrorActionType.retry, + description: 'Retry after granting permission', + ), + ]; + } + + List _getGenericRecoveryActions() { + return [ + ErrorRecoveryAction( + label: 'Try Again', + action: ErrorActionType.retry, + description: 'Retry the operation', + ), + ErrorRecoveryAction( + label: 'Go Back', + action: ErrorActionType.goBack, + description: 'Return to previous screen', + ), + ]; + } + + /// Log technical error details for debugging + void _logError(dynamic error) { + if (kDebugMode) { + debugPrint('ERROR: $error'); + if (error is Error) { + debugPrint('STACK TRACE: ${error.stackTrace}'); + } + } + + // In production, you might want to send this to a crash reporting service + // FirebaseCrashlytics.instance.recordError(error, stackTrace); + } +} + +/// Error recovery action definition +class ErrorRecoveryAction { + final String label; + final ErrorActionType action; + final String description; + final VoidCallback? customAction; + + ErrorRecoveryAction({ + required this.label, + required this.action, + required this.description, + this.customAction, + }); +} + +/// Types of error recovery actions +enum ErrorActionType { + retry, + retryLater, + goBack, + signIn, + openSettings, + checkConnection, + chooseFile, + contactSupport, + dismiss, +} + +/// Error card widget +class ErrorCard extends StatelessWidget { + final String message; + final List actions; + final VoidCallback? onRetry; + final VoidCallback? onDismiss; + final bool showDetails; + final String? technicalDetails; + + const ErrorCard({ + super.key, + required this.message, + required this.actions, + this.onRetry, + this.onDismiss, + this.showDetails = false, + this.technicalDetails, + }); + + @override + Widget build(BuildContext context) { + return Card( + margin: const EdgeInsets.all(Spacing.md), + child: Padding( + padding: const EdgeInsets.all(Spacing.md), + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Icon( + Icons.error_outline, + color: Theme.of(context).colorScheme.error, + size: IconSize.lg, + ), + const SizedBox(width: Spacing.sm + Spacing.xs), + Expanded( + child: Text( + message, + style: Theme.of(context).textTheme.bodyLarge, + ), + ), + ], + ), + if (actions.isNotEmpty) ...[ + const SizedBox(height: Spacing.md), + Wrap( + spacing: 8, + children: actions.take(2).map((action) { + return ElevatedButton( + onPressed: () => _handleAction(context, action), + child: Text(action.label), + ); + }).toList(), + ), + ], + if (showDetails && technicalDetails != null) ...[ + const SizedBox(height: Spacing.md), + ExpansionTile( + title: const Text('Technical Details'), + children: [ + Container( + width: double.infinity, + padding: const EdgeInsets.all(Spacing.md), + decoration: BoxDecoration( + color: context.conduitTheme.surfaceContainer, + borderRadius: BorderRadius.circular(AppBorderRadius.xs), + ), + child: SelectableText( + technicalDetails!, + style: const TextStyle( + fontFamily: 'monospace', + fontSize: AppTypography.labelMedium, + ), + ), + ), + ], + ), + ], + ], + ), + ), + ); + } + + void _handleAction(BuildContext context, ErrorRecoveryAction action) { + if (action.customAction != null) { + action.customAction!(); + return; + } + + switch (action.action) { + case ErrorActionType.retry: + onRetry?.call(); + break; + case ErrorActionType.goBack: + Navigator.of(context).pop(); + break; + case ErrorActionType.dismiss: + onDismiss?.call(); + break; + case ErrorActionType.signIn: + // Navigate to sign in page + Navigator.of(context).pushReplacementNamed('/login'); + break; + case ErrorActionType.openSettings: + // Open app settings - would need platform-specific implementation + break; + default: + onRetry?.call(); + } + } +} + +/// Error dialog widget +class ErrorDialog extends StatelessWidget { + final String message; + final List actions; + final VoidCallback? onRetry; + final bool showDetails; + final String? technicalDetails; + + const ErrorDialog({ + super.key, + required this.message, + required this.actions, + this.onRetry, + this.showDetails = false, + this.technicalDetails, + }); + + @override + Widget build(BuildContext context) { + return AlertDialog( + title: Row( + children: [ + Icon(Icons.error_outline, color: Theme.of(context).colorScheme.error), + const SizedBox(width: Spacing.sm + Spacing.xs), + const Text('Error'), + ], + ), + content: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(message), + if (showDetails && technicalDetails != null) ...[ + const SizedBox(height: Spacing.md), + ExpansionTile( + title: const Text('Technical Details'), + children: [ + SelectableText( + technicalDetails!, + style: const TextStyle( + fontFamily: 'monospace', + fontSize: AppTypography.labelMedium, + ), + ), + ], + ), + ], + ], + ), + actions: [ + TextButton( + onPressed: () => Navigator.of(context).pop(), + child: const Text('Cancel'), + ), + if (actions.isNotEmpty) + ElevatedButton( + onPressed: () { + Navigator.of(context).pop(); + if (actions.first.action == ErrorActionType.retry) { + onRetry?.call(); + } + }, + child: Text(actions.first.label), + ), + ], + ); + } +} diff --git a/lib/core/utils/reasoning_parser.dart b/lib/core/utils/reasoning_parser.dart new file mode 100644 index 0000000..ec553a9 --- /dev/null +++ b/lib/core/utils/reasoning_parser.dart @@ -0,0 +1,158 @@ +import 'package:flutter/foundation.dart'; + +/// Utility class for parsing and extracting reasoning/thinking content from messages +class ReasoningParser { + /// Parses a message and extracts reasoning content + static ReasoningContent? parseReasoningContent(String content) { + if (content.isEmpty) return null; + + if (kDebugMode) { + debugPrint( + 'DEBUG: Parsing content: ${content.substring(0, content.length > 200 ? 200 : content.length)}...', + ); + } + + // Check if content contains reasoning + if (!content.contains('

    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ⅇ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 literal 0 HcmV?d00001 diff --git a/fastlane/metadata/android/en-US/short_description.txt b/fastlane/metadata/android/en-US/short_description.txt new file mode 100644 index 0000000..f2f30ef --- /dev/null +++ b/fastlane/metadata/android/en-US/short_description.txt @@ -0,0 +1,2 @@ +Native mobile client for Open‑WebUI. Chat with your self‑hosted AI. + diff --git a/fastlane/metadata/android/en-US/title.txt b/fastlane/metadata/android/en-US/title.txt new file mode 100644 index 0000000..a454a94 --- /dev/null +++ b/fastlane/metadata/android/en-US/title.txt @@ -0,0 +1,2 @@ +Conduit + diff --git a/fastlane/metadata/en-US/description.txt b/fastlane/metadata/en-US/description.txt new file mode 100644 index 0000000..f8ae6dc --- /dev/null +++ b/fastlane/metadata/en-US/description.txt @@ -0,0 +1,24 @@ +Conduit is an open-source, native mobile client for Open‑WebUI. Connect to your own server to chat with AI models, manage conversations, and take your self‑hosted AI with you—securely and on the go. + +Key Features +- Real-time streaming chat +- Model selection +- Conversation search and management +- Voice input (speech-to-text) +- File and image uploads for retrieval-augmented generation (RAG) +- Vision and multi‑modal support +- Markdown rendering with syntax highlighting +- Light, dark, and system themes +- Secure credential storage + +Requirements +- An existing Open‑WebUI server (Conduit does not host or provide AI models). + +Privacy & Permissions +- Microphone: For voice input +- Camera and Photos: For image/file attachments +- Network: To connect to your Open‑WebUI server + +Open Source +Built with Flutter and maintained by the community. Contributions are welcome. + diff --git a/fastlane/metadata/en-US/images/icon.png b/fastlane/metadata/en-US/images/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..72600bea5ea052b86a31f6ef4d50b9763671d352 GIT binary patch literal 39911 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⋘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 literal 0 HcmV?d00001 diff --git a/fastlane/metadata/en-US/images/phoneScreenshots/flutter_01.png b/fastlane/metadata/en-US/images/phoneScreenshots/flutter_01.png new file mode 100644 index 0000000000000000000000000000000000000000..82baa0347972693cd966605d5808e89a81e1f669 GIT binary patch literal 382187 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 z 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 z z8*fv9E_T1@)1z89ap@FsQ6^VsW~&W8!27aE+dqc9nJjFzTK(a0Ov~^$kCmH0!s#pW z0!aI*fsV{M^=}9y>RG@irKYwmyK=Wp=_jwx9ArI}MTK>r`mT3KBy#+T=epV58<&Rp zR2=8I&Y<51zuR^1>p�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�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