From 29612c525057bd9e5802fe617b03c8a0aa58f3e6 Mon Sep 17 00:00:00 2001 From: maludeuu Date: Thu, 19 Sep 2024 22:54:46 +0800 Subject: [PATCH] Initial commit --- .env | 2 + .gitattributes | 2 + .gitignore | 44 + .metadata | 45 + .vscode/settings.json | 8 + LICENSE | 201 + README.md | 3 + analysis_options.yaml | 1 + android/.gitignore | 13 + android/app/build.gradle | 90 + android/app/src/debug/AndroidManifest.xml | 7 + android/app/src/main/AndroidManifest.xml | 58 + .../kotlin/com/example/hung/MainActivity.kt | 5 + .../res/drawable-v21/launch_background.xml | 12 + .../main/res/drawable/launch_background.xml | 12 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 5261 bytes .../src/main/res/mipmap-ldpi/ic_launcher.png | Bin 0 -> 2506 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 3827 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 7166 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 13445 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 18018 bytes .../app/src/main/res/values-night/styles.xml | 18 + android/app/src/main/res/values/styles.xml | 18 + android/app/src/profile/AndroidManifest.xml | 7 + android/build.gradle | 19 + android/gradle.properties | 6 + .../gradle/wrapper/gradle-wrapper.properties | 5 + android/settings.gradle | 25 + cache.dart | 1 + devtools_options.yaml | 3 + fonts/GabrielaStencil-Bold.ttf | Bin 0 -> 112984 bytes fonts/GabrielaStencil-Light.ttf | Bin 0 -> 119256 bytes fonts/Poppins-Bold.ttf | Bin 0 -> 150292 bytes fonts/Poppins-ExtraLight.ttf | Bin 0 -> 157716 bytes fonts/Poppins-Regular.ttf | Bin 0 -> 154628 bytes fonts/Poppins-SemiBold.ttf | Bin 0 -> 151516 bytes fonts/Roboto.ttf | Bin 0 -> 168260 bytes fonts/hero-icons-outline.ttf | Bin 0 -> 146608 bytes images/avatars/carmela.jpg | Bin 0 -> 12591 bytes images/avatars/chris.jpg | Bin 0 -> 20515 bytes images/avatars/ludovico.jpg | Bin 0 -> 21282 bytes images/avatars/meritt.jpg | Bin 0 -> 24745 bytes images/avatars/oliver.jpg | Bin 0 -> 22205 bytes images/avatars/rebecca.jpg | Bin 0 -> 32590 bytes images/avatars/roberta.jpg | Bin 0 -> 8518 bytes images/avatars/romain.jpg | Bin 0 -> 15517 bytes images/avatars/russel.jpg | Bin 0 -> 36372 bytes images/avatars/valentina.jpg | Bin 0 -> 13071 bytes images/close_icon.png | Bin 0 -> 1680 bytes images/coca.jpg | Bin 0 -> 76962 bytes images/debug_icon.png | Bin 0 -> 1667 bytes images/dev.png | Bin 0 -> 417339 bytes images/email_icon.png | Bin 0 -> 1183 bytes images/france-bg.jpg | Bin 0 -> 133614 bytes images/france.png | Bin 0 -> 219586 bytes images/gemini.png | Bin 0 -> 45173 bytes images/generating.json | 1755 ++++++ images/gift.json | 4807 +++++++++++++++++ images/gift_icon.png | Bin 0 -> 3945 bytes images/googlechat.jpg | Bin 0 -> 44864 bytes images/hypeBard.png | Bin 0 -> 66175 bytes images/iceland-bg.jpg | Bin 0 -> 515000 bytes images/iceland.png | Bin 0 -> 739919 bytes images/key_icon.png | Bin 0 -> 1603 bytes images/loading.json | 1014 ++++ images/loading2.json | 1014 ++++ images/loading3.json | 1 + images/london.jpg | Bin 0 -> 738522 bytes images/microphone_active_icon.png | Bin 0 -> 8814 bytes images/microphone_icon.png | Bin 0 -> 11890 bytes images/mykonos.jpg | Bin 0 -> 300892 bytes images/nassau.jpg | Bin 0 -> 1132766 bytes images/privacy_policy_icon.png | Bin 0 -> 1474 bytes images/refresh_icon.png | Bin 0 -> 1621 bytes images/rio-bg.jpg | Bin 0 -> 311910 bytes images/rio.png | Bin 0 -> 350539 bytes images/rome.jpg | Bin 0 -> 1096195 bytes images/share_icon.png | Bin 0 -> 1481 bytes images/share_message_icon.png | Bin 0 -> 1705 bytes images/splash.json | 1 + images/star_icon.png | Bin 0 -> 1246 bytes images/uu1.jpg | Bin 0 -> 64561 bytes images/uu10.jpg | Bin 0 -> 37012 bytes images/uu11.jpg | Bin 0 -> 55437 bytes images/uu12.jpg | Bin 0 -> 60784 bytes images/uu2.jpg | Bin 0 -> 112239 bytes images/uu3.jpg | Bin 0 -> 72000 bytes images/uu4.jpg | Bin 0 -> 32412 bytes images/uu5.jpg | Bin 0 -> 56741 bytes images/uu6.jpg | Bin 0 -> 68348 bytes images/uu7.jpg | Bin 0 -> 84698 bytes images/uu8.jpg | Bin 0 -> 56787 bytes images/uu9.jpg | Bin 0 -> 49759 bytes images/voice_icon.png | Bin 0 -> 1648 bytes images/you.png | Bin 0 -> 50755 bytes 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 | 98 + .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + ios/Runner/AppDelegate.swift | 13 + .../AppIcon.appiconset/Contents.json | 122 + .../Icon-App-1024x1024@1x.png | Bin 0 -> 10932 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 0 -> 295 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 0 -> 406 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 0 -> 450 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 0 -> 282 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 0 -> 462 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 0 -> 704 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 0 -> 406 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 0 -> 586 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 0 -> 862 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 0 -> 862 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 0 -> 1674 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 0 -> 762 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 0 -> 1226 bytes .../Icon-App-83.5x83.5@2x.png | Bin 0 -> 1418 bytes .../LaunchImage.imageset/Contents.json | 23 + .../LaunchImage.imageset/LaunchImage.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@2x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@3x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/README.md | 5 + ios/Runner/Base.lproj/LaunchScreen.storyboard | 37 + ios/Runner/Base.lproj/Main.storyboard | 26 + ios/Runner/Info.plist | 49 + ios/Runner/Runner-Bridging-Header.h | 1 + ios/RunnerTests/RunnerTests.swift | 12 + lib/app/app.bottomsheets.dart | 25 + lib/app/app.dart | 65 + lib/app/app.dialogs.dart | 25 + lib/app/app.locator.dart | 35 + lib/app/app.router.dart | 840 +++ lib/main.dart | 97 + lib/services/chat_message.dart | 21 + lib/services/chat_message.g.dart | 47 + lib/services/gemini_services_service.dart | 58 + lib/services/image_data.dart | 14 + lib/services/image_data.g.dart | 44 + lib/services/image_repository_service.dart | 150 + lib/services/select_img_favo_service.dart | 25 + lib/ui/Allutils.dart | 3 + .../animationartical/animation/animation.dart | 2 + .../animation/back_page_rect_tween.dart | 35 + .../animation/front_page_rect_tween.dart | 43 + lib/ui/animationartical/apartments_grid.dart | 32 + lib/ui/animationartical/balloon_icon.dart | 219 + lib/ui/animationartical/box_decoration.dart | 379 ++ .../animationartical/breakpoint_layout.dart | 41 + lib/ui/animationartical/breakpoints.dart | 14 + lib/ui/animationartical/bulb_icon.dart | 322 ++ lib/ui/animationartical/focus_detector.dart | 78 + lib/ui/animationartical/formatters.dart | 15 + lib/ui/animationartical/models/apartment.dart | 27 + lib/ui/animationartical/models/host.dart | 65 + lib/ui/animationartical/models/mocks.dart | 209 + lib/ui/animationartical/models/models.dart | 3 + lib/ui/animationartical/passport.dart | 423 ++ lib/ui/animationartical/passport_dialog.dart | 138 + .../passport_dialog_route.dart | 121 + lib/ui/animationartical/passport_spread.dart | 182 + lib/ui/animationartical/star_icon.dart | 156 + lib/ui/animationartical/stars_icon.dart | 372 ++ .../animationartical/theme/demo_colors.dart | 31 + .../theme/demo_text_styles.dart | 73 + lib/ui/animationartical/theme/theme.dart | 2 + lib/ui/bottom_sheets/notice/notice_sheet.dart | 56 + .../notice/notice_sheet_model.dart | 3 + lib/ui/common/app_colors.dart | 24 + lib/ui/common/app_strings.dart | 3 + lib/ui/common/bottom_nav_btn.dart | 61 + lib/ui/common/clipper.dart | 35 + lib/ui/common/constants.dart | 39 + lib/ui/common/sample_widget.dart | 56 + lib/ui/common/size_config.dart | 17 + lib/ui/common/ui_helpers.dart | 78 + .../dialogs/info_alert/info_alert_dialog.dart | 103 + .../info_alert/info_alert_dialog_model.dart | 3 + lib/ui/utils/BackgroundAnimation.dart | 40 + lib/ui/utils/flutter_vertical_slider.dart | 182 + lib/ui/utils/hero-icons-outline_icons.dart | 461 ++ lib/ui/utils/travel_cards.dart | 169 + lib/ui/views/article/article_view.dart | 794 +++ lib/ui/views/article/article_viewmodel.dart | 188 + lib/ui/views/chat/chat_view.dart | 168 + lib/ui/views/chat/chat_viewmodel.dart | 3 + lib/ui/views/chatsity/chatsity_view.dart | 864 +++ lib/ui/views/chatsity/chatsity_viewmodel.dart | 885 +++ .../geminichat_screen_view.dart | 632 +++ .../geminichat_screen_viewmodel.dart | 3 + .../widgets/content_widget.dart | 55 + .../geminichat_screen/widgets/theme.dart | 319 ++ lib/ui/views/home/home_view.dart | 54 + lib/ui/views/home/home_viewmodel.dart | 49 + lib/ui/views/profile/profile_view.dart | 197 + lib/ui/views/profile/profile_viewmodel.dart | 175 + .../promotetowords/promotetowords_view.dart | 28 + .../promotetowords_viewmodel.dart | 3 + .../prompt_to_favo_page_view.dart | 125 + .../prompt_to_favo_page_viewmodel.dart | 58 + .../prompt_to_query_favorite_view.dart | 137 + .../prompt_to_query_favorite_viewmodel.dart | 261 + .../UItools/SimpleScrollView.dart | 109 + .../prompt_to_real/UItools/imagetitle.dart | 85 + .../prompt_to_real/UItools/pinterestgrid.dart | 48 + .../prompt_to_real/prompt_to_real_view.dart | 656 +++ .../prompt_to_real_viewmodel.dart | 555 ++ .../prompt_to_select_view.dart | 142 + .../prompt_to_select_viewmodel.dart | 126 + .../prompt_to_translate_view.dart | 359 ++ .../prompt_to_translate_viewmodel.dart | 148 + lib/ui/views/startup/startup_view.dart | 56 + lib/ui/views/startup/startup_viewmodel.dart | 18 + .../storyly_instagram_view.dart | 182 + .../storyly_instagram_viewmodel.dart | 19 + lib/ui/views/travelcard/travelcard_view.dart | 105 + .../travelcard/travelcard_viewmodel.dart | 36 + .../views/travelstory/travelstory_view.dart | 691 +++ .../travelstory/travelstory_viewmodel.dart | 53 + lib/ui/webviewsite/musicsite.dart | 186 + lib/ui/webviewsite/shopsite.dart | 64 + .../widgets/common/bottom_nav/bottom_nav.dart | 127 + .../common/bottom_nav/bottom_nav_model.dart | 11 + .../bottom_navigation_bar.dart | 77 + .../bottom_navigation_bar_model.dart | 13 + lib/ui/widgets/common/popmenu/popmenu.dart | 305 ++ .../widgets/common/popmenu/popmenu_model.dart | 3 + .../common/sider_bar_page/sider_bar_page.dart | 246 + .../sider_bar_page/sider_bar_page_model.dart | 66 + .../common/translation/translation.dart | 125 + .../common/translation/translation_model.dart | 3 + linux/.gitignore | 1 + linux/CMakeLists.txt | 145 + linux/flutter/CMakeLists.txt | 88 + linux/flutter/generated_plugin_registrant.cc | 23 + linux/flutter/generated_plugin_registrant.h | 15 + linux/flutter/generated_plugins.cmake | 26 + linux/main.cc | 6 + linux/my_application.cc | 124 + linux/my_application.h | 18 + macos/.gitignore | 7 + macos/Flutter/Flutter-Debug.xcconfig | 1 + macos/Flutter/Flutter-Release.xcconfig | 1 + macos/Flutter/GeneratedPluginRegistrant.swift | 22 + macos/Runner.xcodeproj/project.pbxproj | 705 +++ .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 98 + .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + macos/Runner/AppDelegate.swift | 9 + .../AppIcon.appiconset/Contents.json | 68 + .../AppIcon.appiconset/app_icon_1024.png | Bin 0 -> 102994 bytes .../AppIcon.appiconset/app_icon_128.png | Bin 0 -> 5680 bytes .../AppIcon.appiconset/app_icon_16.png | Bin 0 -> 520 bytes .../AppIcon.appiconset/app_icon_256.png | Bin 0 -> 14142 bytes .../AppIcon.appiconset/app_icon_32.png | Bin 0 -> 1066 bytes .../AppIcon.appiconset/app_icon_512.png | Bin 0 -> 36406 bytes .../AppIcon.appiconset/app_icon_64.png | Bin 0 -> 2218 bytes macos/Runner/Base.lproj/MainMenu.xib | 343 ++ macos/Runner/Configs/AppInfo.xcconfig | 14 + macos/Runner/Configs/Debug.xcconfig | 2 + macos/Runner/Configs/Release.xcconfig | 2 + macos/Runner/Configs/Warnings.xcconfig | 13 + macos/Runner/DebugProfile.entitlements | 12 + macos/Runner/Info.plist | 32 + macos/Runner/MainFlutterWindow.swift | 15 + macos/Runner/Release.entitlements | 8 + macos/RunnerTests/RunnerTests.swift | 12 + pubspec.lock | 1690 ++++++ pubspec.yaml | 96 + riv/app.riv | Bin 0 -> 503538 bytes riv/expressionui.riv | Bin 0 -> 834751 bytes stacked.json | 17 + test/helpers/test_helpers.dart | 98 + test/helpers/test_helpers.mocks.dart | 685 +++ .../gemini_services_service_test.dart | 11 + .../select_img_favo_service_test.dart | 11 + test/viewmodels/article_viewmodel_test.dart | 11 + test/viewmodels/chat_viewmodel_test.dart | 11 + .../chatgpt_screen_viewmodel_test.dart | 11 + .../geminichat_screen_viewmodel_test.dart | 11 + test/viewmodels/home_viewmodel_test.dart | 40 + .../info_alert_dialog_model_test.dart | 11 + test/viewmodels/notice_sheet_model_test.dart | 11 + test/viewmodels/profile_viewmodel_test.dart | 11 + .../prompt_to_favo_page_viewmodel_test.dart | 11 + ...ompt_to_query_favorite_viewmodel_test.dart | 11 + .../prompt_to_select_viewmodel_test.dart | 11 + .../storyly_instagram_viewmodel_test.dart | 11 + .../storyly_instaram_viewmodel_test.dart | 11 + .../viewmodels/travelcard_viewmodel_test.dart | 11 + .../travelstory_viewmodel_test.dart | 11 + test/widget_models/bottom_nav_model_test.dart | 11 + .../bottom_navigation_bar_model_test.dart | 11 + test/widget_models/popmenu_model_test.dart | 11 + .../sider_bar_page_model_test.dart | 11 + .../widget_models/translation_model_test.dart | 11 + web/favicon.png | Bin 0 -> 917 bytes web/icons/Icon-192.png | Bin 0 -> 5292 bytes web/icons/Icon-512.png | Bin 0 -> 8252 bytes web/icons/Icon-maskable-192.png | Bin 0 -> 5594 bytes web/icons/Icon-maskable-512.png | Bin 0 -> 20998 bytes web/index.html | 38 + web/manifest.json | 35 + windows/.gitignore | 17 + windows/CMakeLists.txt | 108 + windows/flutter/CMakeLists.txt | 109 + .../flutter/generated_plugin_registrant.cc | 23 + windows/flutter/generated_plugin_registrant.h | 15 + windows/flutter/generated_plugins.cmake | 27 + windows/runner/CMakeLists.txt | 40 + windows/runner/Runner.rc | 121 + windows/runner/flutter_window.cpp | 71 + windows/runner/flutter_window.h | 33 + windows/runner/main.cpp | 43 + windows/runner/resource.h | 16 + windows/runner/resources/app_icon.ico | Bin 0 -> 33772 bytes windows/runner/runner.exe.manifest | 20 + windows/runner/utils.cpp | 65 + windows/runner/utils.h | 19 + windows/runner/win32_window.cpp | 288 + windows/runner/win32_window.h | 102 + 328 files changed, 31560 insertions(+) create mode 100644 .env create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 .metadata create mode 100644 .vscode/settings.json create mode 100644 LICENSE create mode 100644 README.md create mode 100644 analysis_options.yaml create mode 100644 android/.gitignore create mode 100644 android/app/build.gradle create mode 100644 android/app/src/debug/AndroidManifest.xml create mode 100644 android/app/src/main/AndroidManifest.xml create mode 100644 android/app/src/main/kotlin/com/example/hung/MainActivity.kt create mode 100644 android/app/src/main/res/drawable-v21/launch_background.xml create mode 100644 android/app/src/main/res/drawable/launch_background.xml create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-ldpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/values-night/styles.xml create mode 100644 android/app/src/main/res/values/styles.xml create mode 100644 android/app/src/profile/AndroidManifest.xml create mode 100644 android/build.gradle create mode 100644 android/gradle.properties create mode 100644 android/gradle/wrapper/gradle-wrapper.properties create mode 100644 android/settings.gradle create mode 100644 cache.dart create mode 100644 devtools_options.yaml create mode 100644 fonts/GabrielaStencil-Bold.ttf create mode 100644 fonts/GabrielaStencil-Light.ttf create mode 100644 fonts/Poppins-Bold.ttf create mode 100644 fonts/Poppins-ExtraLight.ttf create mode 100644 fonts/Poppins-Regular.ttf create mode 100644 fonts/Poppins-SemiBold.ttf create mode 100644 fonts/Roboto.ttf create mode 100644 fonts/hero-icons-outline.ttf create mode 100644 images/avatars/carmela.jpg create mode 100644 images/avatars/chris.jpg create mode 100644 images/avatars/ludovico.jpg create mode 100644 images/avatars/meritt.jpg create mode 100644 images/avatars/oliver.jpg create mode 100644 images/avatars/rebecca.jpg create mode 100644 images/avatars/roberta.jpg create mode 100644 images/avatars/romain.jpg create mode 100644 images/avatars/russel.jpg create mode 100644 images/avatars/valentina.jpg create mode 100644 images/close_icon.png create mode 100644 images/coca.jpg create mode 100644 images/debug_icon.png create mode 100644 images/dev.png create mode 100644 images/email_icon.png create mode 100644 images/france-bg.jpg create mode 100644 images/france.png create mode 100644 images/gemini.png create mode 100644 images/generating.json create mode 100644 images/gift.json create mode 100644 images/gift_icon.png create mode 100644 images/googlechat.jpg create mode 100644 images/hypeBard.png create mode 100644 images/iceland-bg.jpg create mode 100644 images/iceland.png create mode 100644 images/key_icon.png create mode 100644 images/loading.json create mode 100644 images/loading2.json create mode 100644 images/loading3.json create mode 100644 images/london.jpg create mode 100644 images/microphone_active_icon.png create mode 100644 images/microphone_icon.png create mode 100644 images/mykonos.jpg create mode 100644 images/nassau.jpg create mode 100644 images/privacy_policy_icon.png create mode 100644 images/refresh_icon.png create mode 100644 images/rio-bg.jpg create mode 100644 images/rio.png create mode 100644 images/rome.jpg create mode 100644 images/share_icon.png create mode 100644 images/share_message_icon.png create mode 100644 images/splash.json create mode 100644 images/star_icon.png create mode 100644 images/uu1.jpg create mode 100644 images/uu10.jpg create mode 100644 images/uu11.jpg create mode 100644 images/uu12.jpg create mode 100644 images/uu2.jpg create mode 100644 images/uu3.jpg create mode 100644 images/uu4.jpg create mode 100644 images/uu5.jpg create mode 100644 images/uu6.jpg create mode 100644 images/uu7.jpg create mode 100644 images/uu8.jpg create mode 100644 images/uu9.jpg create mode 100644 images/voice_icon.png create mode 100644 images/you.png create mode 100644 ios/.gitignore create mode 100644 ios/Flutter/AppFrameworkInfo.plist create mode 100644 ios/Flutter/Debug.xcconfig create mode 100644 ios/Flutter/Release.xcconfig create mode 100644 ios/Runner.xcodeproj/project.pbxproj create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 ios/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 ios/Runner/AppDelegate.swift create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md create mode 100644 ios/Runner/Base.lproj/LaunchScreen.storyboard create mode 100644 ios/Runner/Base.lproj/Main.storyboard create mode 100644 ios/Runner/Info.plist create mode 100644 ios/Runner/Runner-Bridging-Header.h create mode 100644 ios/RunnerTests/RunnerTests.swift create mode 100644 lib/app/app.bottomsheets.dart create mode 100644 lib/app/app.dart create mode 100644 lib/app/app.dialogs.dart create mode 100644 lib/app/app.locator.dart create mode 100644 lib/app/app.router.dart create mode 100644 lib/main.dart create mode 100644 lib/services/chat_message.dart create mode 100644 lib/services/chat_message.g.dart create mode 100644 lib/services/gemini_services_service.dart create mode 100644 lib/services/image_data.dart create mode 100644 lib/services/image_data.g.dart create mode 100644 lib/services/image_repository_service.dart create mode 100644 lib/services/select_img_favo_service.dart create mode 100644 lib/ui/Allutils.dart create mode 100644 lib/ui/animationartical/animation/animation.dart create mode 100644 lib/ui/animationartical/animation/back_page_rect_tween.dart create mode 100644 lib/ui/animationartical/animation/front_page_rect_tween.dart create mode 100644 lib/ui/animationartical/apartments_grid.dart create mode 100644 lib/ui/animationartical/balloon_icon.dart create mode 100644 lib/ui/animationartical/box_decoration.dart create mode 100644 lib/ui/animationartical/breakpoint_layout.dart create mode 100644 lib/ui/animationartical/breakpoints.dart create mode 100644 lib/ui/animationartical/bulb_icon.dart create mode 100644 lib/ui/animationartical/focus_detector.dart create mode 100644 lib/ui/animationartical/formatters.dart create mode 100644 lib/ui/animationartical/models/apartment.dart create mode 100644 lib/ui/animationartical/models/host.dart create mode 100644 lib/ui/animationartical/models/mocks.dart create mode 100644 lib/ui/animationartical/models/models.dart create mode 100644 lib/ui/animationartical/passport.dart create mode 100644 lib/ui/animationartical/passport_dialog.dart create mode 100644 lib/ui/animationartical/passport_dialog_route.dart create mode 100644 lib/ui/animationartical/passport_spread.dart create mode 100644 lib/ui/animationartical/star_icon.dart create mode 100644 lib/ui/animationartical/stars_icon.dart create mode 100644 lib/ui/animationartical/theme/demo_colors.dart create mode 100644 lib/ui/animationartical/theme/demo_text_styles.dart create mode 100644 lib/ui/animationartical/theme/theme.dart create mode 100644 lib/ui/bottom_sheets/notice/notice_sheet.dart create mode 100644 lib/ui/bottom_sheets/notice/notice_sheet_model.dart create mode 100644 lib/ui/common/app_colors.dart create mode 100644 lib/ui/common/app_strings.dart create mode 100644 lib/ui/common/bottom_nav_btn.dart create mode 100644 lib/ui/common/clipper.dart create mode 100644 lib/ui/common/constants.dart create mode 100644 lib/ui/common/sample_widget.dart create mode 100644 lib/ui/common/size_config.dart create mode 100644 lib/ui/common/ui_helpers.dart create mode 100644 lib/ui/dialogs/info_alert/info_alert_dialog.dart create mode 100644 lib/ui/dialogs/info_alert/info_alert_dialog_model.dart create mode 100644 lib/ui/utils/BackgroundAnimation.dart create mode 100644 lib/ui/utils/flutter_vertical_slider.dart create mode 100644 lib/ui/utils/hero-icons-outline_icons.dart create mode 100644 lib/ui/utils/travel_cards.dart create mode 100644 lib/ui/views/article/article_view.dart create mode 100644 lib/ui/views/article/article_viewmodel.dart create mode 100644 lib/ui/views/chat/chat_view.dart create mode 100644 lib/ui/views/chat/chat_viewmodel.dart create mode 100644 lib/ui/views/chatsity/chatsity_view.dart create mode 100644 lib/ui/views/chatsity/chatsity_viewmodel.dart create mode 100644 lib/ui/views/geminichat_screen/geminichat_screen_view.dart create mode 100644 lib/ui/views/geminichat_screen/geminichat_screen_viewmodel.dart create mode 100644 lib/ui/views/geminichat_screen/widgets/content_widget.dart create mode 100644 lib/ui/views/geminichat_screen/widgets/theme.dart create mode 100644 lib/ui/views/home/home_view.dart create mode 100644 lib/ui/views/home/home_viewmodel.dart create mode 100644 lib/ui/views/profile/profile_view.dart create mode 100644 lib/ui/views/profile/profile_viewmodel.dart create mode 100644 lib/ui/views/promotetowords/promotetowords_view.dart create mode 100644 lib/ui/views/promotetowords/promotetowords_viewmodel.dart create mode 100644 lib/ui/views/prompt_to_favo_page/prompt_to_favo_page_view.dart create mode 100644 lib/ui/views/prompt_to_favo_page/prompt_to_favo_page_viewmodel.dart create mode 100644 lib/ui/views/prompt_to_query_favorite/prompt_to_query_favorite_view.dart create mode 100644 lib/ui/views/prompt_to_query_favorite/prompt_to_query_favorite_viewmodel.dart create mode 100644 lib/ui/views/prompt_to_real/UItools/SimpleScrollView.dart create mode 100644 lib/ui/views/prompt_to_real/UItools/imagetitle.dart create mode 100644 lib/ui/views/prompt_to_real/UItools/pinterestgrid.dart create mode 100644 lib/ui/views/prompt_to_real/prompt_to_real_view.dart create mode 100644 lib/ui/views/prompt_to_real/prompt_to_real_viewmodel.dart create mode 100644 lib/ui/views/prompt_to_select/prompt_to_select_view.dart create mode 100644 lib/ui/views/prompt_to_select/prompt_to_select_viewmodel.dart create mode 100644 lib/ui/views/prompt_to_translate/prompt_to_translate_view.dart create mode 100644 lib/ui/views/prompt_to_translate/prompt_to_translate_viewmodel.dart create mode 100644 lib/ui/views/startup/startup_view.dart create mode 100644 lib/ui/views/startup/startup_viewmodel.dart create mode 100644 lib/ui/views/storyly_instagram/storyly_instagram_view.dart create mode 100644 lib/ui/views/storyly_instagram/storyly_instagram_viewmodel.dart create mode 100644 lib/ui/views/travelcard/travelcard_view.dart create mode 100644 lib/ui/views/travelcard/travelcard_viewmodel.dart create mode 100644 lib/ui/views/travelstory/travelstory_view.dart create mode 100644 lib/ui/views/travelstory/travelstory_viewmodel.dart create mode 100644 lib/ui/webviewsite/musicsite.dart create mode 100644 lib/ui/webviewsite/shopsite.dart create mode 100644 lib/ui/widgets/common/bottom_nav/bottom_nav.dart create mode 100644 lib/ui/widgets/common/bottom_nav/bottom_nav_model.dart create mode 100644 lib/ui/widgets/common/bottom_navigation_bar/bottom_navigation_bar.dart create mode 100644 lib/ui/widgets/common/bottom_navigation_bar/bottom_navigation_bar_model.dart create mode 100644 lib/ui/widgets/common/popmenu/popmenu.dart create mode 100644 lib/ui/widgets/common/popmenu/popmenu_model.dart create mode 100644 lib/ui/widgets/common/sider_bar_page/sider_bar_page.dart create mode 100644 lib/ui/widgets/common/sider_bar_page/sider_bar_page_model.dart create mode 100644 lib/ui/widgets/common/translation/translation.dart create mode 100644 lib/ui/widgets/common/translation/translation_model.dart create mode 100644 linux/.gitignore create mode 100644 linux/CMakeLists.txt create mode 100644 linux/flutter/CMakeLists.txt create mode 100644 linux/flutter/generated_plugin_registrant.cc create mode 100644 linux/flutter/generated_plugin_registrant.h create mode 100644 linux/flutter/generated_plugins.cmake create mode 100644 linux/main.cc create mode 100644 linux/my_application.cc create mode 100644 linux/my_application.h create mode 100644 macos/.gitignore create mode 100644 macos/Flutter/Flutter-Debug.xcconfig create mode 100644 macos/Flutter/Flutter-Release.xcconfig create mode 100644 macos/Flutter/GeneratedPluginRegistrant.swift create mode 100644 macos/Runner.xcodeproj/project.pbxproj create mode 100644 macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 macos/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 macos/Runner/AppDelegate.swift create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png create mode 100644 macos/Runner/Base.lproj/MainMenu.xib create mode 100644 macos/Runner/Configs/AppInfo.xcconfig create mode 100644 macos/Runner/Configs/Debug.xcconfig create mode 100644 macos/Runner/Configs/Release.xcconfig create mode 100644 macos/Runner/Configs/Warnings.xcconfig create mode 100644 macos/Runner/DebugProfile.entitlements create mode 100644 macos/Runner/Info.plist create mode 100644 macos/Runner/MainFlutterWindow.swift create mode 100644 macos/Runner/Release.entitlements create mode 100644 macos/RunnerTests/RunnerTests.swift create mode 100644 pubspec.lock create mode 100644 pubspec.yaml create mode 100644 riv/app.riv create mode 100644 riv/expressionui.riv create mode 100644 stacked.json create mode 100644 test/helpers/test_helpers.dart create mode 100644 test/helpers/test_helpers.mocks.dart create mode 100644 test/services/gemini_services_service_test.dart create mode 100644 test/services/select_img_favo_service_test.dart create mode 100644 test/viewmodels/article_viewmodel_test.dart create mode 100644 test/viewmodels/chat_viewmodel_test.dart create mode 100644 test/viewmodels/chatgpt_screen_viewmodel_test.dart create mode 100644 test/viewmodels/geminichat_screen_viewmodel_test.dart create mode 100644 test/viewmodels/home_viewmodel_test.dart create mode 100644 test/viewmodels/info_alert_dialog_model_test.dart create mode 100644 test/viewmodels/notice_sheet_model_test.dart create mode 100644 test/viewmodels/profile_viewmodel_test.dart create mode 100644 test/viewmodels/prompt_to_favo_page_viewmodel_test.dart create mode 100644 test/viewmodels/prompt_to_query_favorite_viewmodel_test.dart create mode 100644 test/viewmodels/prompt_to_select_viewmodel_test.dart create mode 100644 test/viewmodels/storyly_instagram_viewmodel_test.dart create mode 100644 test/viewmodels/storyly_instaram_viewmodel_test.dart create mode 100644 test/viewmodels/travelcard_viewmodel_test.dart create mode 100644 test/viewmodels/travelstory_viewmodel_test.dart create mode 100644 test/widget_models/bottom_nav_model_test.dart create mode 100644 test/widget_models/bottom_navigation_bar_model_test.dart create mode 100644 test/widget_models/popmenu_model_test.dart create mode 100644 test/widget_models/sider_bar_page_model_test.dart create mode 100644 test/widget_models/translation_model_test.dart create mode 100644 web/favicon.png create mode 100644 web/icons/Icon-192.png create mode 100644 web/icons/Icon-512.png create mode 100644 web/icons/Icon-maskable-192.png create mode 100644 web/icons/Icon-maskable-512.png create mode 100644 web/index.html create mode 100644 web/manifest.json create mode 100644 windows/.gitignore create mode 100644 windows/CMakeLists.txt create mode 100644 windows/flutter/CMakeLists.txt create mode 100644 windows/flutter/generated_plugin_registrant.cc create mode 100644 windows/flutter/generated_plugin_registrant.h create mode 100644 windows/flutter/generated_plugins.cmake create mode 100644 windows/runner/CMakeLists.txt create mode 100644 windows/runner/Runner.rc create mode 100644 windows/runner/flutter_window.cpp create mode 100644 windows/runner/flutter_window.h create mode 100644 windows/runner/main.cpp create mode 100644 windows/runner/resource.h create mode 100644 windows/runner/resources/app_icon.ico create mode 100644 windows/runner/runner.exe.manifest create mode 100644 windows/runner/utils.cpp create mode 100644 windows/runner/utils.h create mode 100644 windows/runner/win32_window.cpp create mode 100644 windows/runner/win32_window.h diff --git a/.env b/.env new file mode 100644 index 0000000..897c4fa --- /dev/null +++ b/.env @@ -0,0 +1,2 @@ +// .env +OPEN_AI_API_KEY=sk-proj-Sn48Q2j1ctzgeG6eZ9yUT3BlbkFJqVe4k8dgR3QOqGUqeV0Z \ No newline at end of file diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..dfe0770 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Auto detect text files and perform LF normalization +* text=auto diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..10283f6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,44 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ +migrate_working_dir/ + +# 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 +\.idea\.wiseGPT\ diff --git a/.metadata b/.metadata new file mode 100644 index 0000000..cbf1dc0 --- /dev/null +++ b/.metadata @@ -0,0 +1,45 @@ +# 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: "a14f74ff3a1cbd521163c5f03d68113d50af93d3" + channel: "stable" + +project_type: app + +# Tracks metadata for the flutter migrate command +migration: + platforms: + - platform: root + create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + - platform: android + create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + - platform: ios + create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + - platform: linux + create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + - platform: macos + create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + - platform: web + create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + - platform: windows + create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 + + # 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/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..300f944 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,8 @@ +{ + "explorer.fileNesting.enabled": true, + "explorer.fileNesting.patterns": { + "*.dart": "${capture}.mobile.dart, ${capture}.tablet.dart, ${capture}.desktop.dart, ${capture}.form.dart, ${capture}.g.dart, ${capture}.freezed.dart, ${capture}.logger.dart, ${capture}.locator.dart, ${capture}.router.dart, ${capture}.dialogs.dart, ${capture}.bottomsheets.dart" + }, + "java.configuration.updateBuildConfiguration": "interactive" +} + diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..b09cd78 --- /dev/null +++ b/LICENSE @@ -0,0 +1,201 @@ +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/README.md b/README.md new file mode 100644 index 0000000..d593fd1 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# hung + +A new Flutter project. diff --git a/analysis_options.yaml b/analysis_options.yaml new file mode 100644 index 0000000..f9b3034 --- /dev/null +++ b/analysis_options.yaml @@ -0,0 +1 @@ +include: package:flutter_lints/flutter.yaml diff --git a/android/.gitignore b/android/.gitignore new file mode 100644 index 0000000..6f56801 --- /dev/null +++ b/android/.gitignore @@ -0,0 +1,13 @@ +gradle-wrapper.jar +/.gradle +/captures/ +/gradlew +/gradlew.bat +/local.properties +GeneratedPluginRegistrant.java + +# Remember to never publicly share your keystore. +# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app +key.properties +**/*.keystore +**/*.jks diff --git a/android/app/build.gradle b/android/app/build.gradle new file mode 100644 index 0000000..2290d1f --- /dev/null +++ b/android/app/build.gradle @@ -0,0 +1,90 @@ +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" +} + +def localProperties = new Properties() +def localPropertiesFile = rootProject.file("local.properties") +if (localPropertiesFile.exists()) { + localPropertiesFile.withReader("UTF-8") { reader -> + localProperties.load(reader) + } +} + +def flutterVersionCode = localProperties.getProperty("flutter.versionCode") +if (flutterVersionCode == null) { + flutterVersionCode = "1" +} + +def flutterVersionName = localProperties.getProperty("flutter.versionName") +if (flutterVersionName == null) { + flutterVersionName = "1.0" +} + +//android { +// namespace = "com.example.hung" +// compileSdk = 35 +// ndkVersion = flutter.ndkVersion +// +// compileOptions { +// sourceCompatibility = JavaVersion.VERSION_1_8 +// targetCompatibility = JavaVersion.VERSION_1_8 +// } +// +// defaultConfig { +// // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). +// applicationId = "com.example.hung" +// // You can update the following values to match your application needs. +// // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. +// minSdk = 21 +// targetSdk = flutter.targetSdkVersion +// versionCode = flutterVersionCode.toInteger() +// versionName = flutterVersionName +// } +// +// buildTypes { +// release { +// // TODO: Add your own signing config for the release build. +// // Signing with the debug keys for now, so `flutter run --release` works. +// signingConfig = signingConfigs.debug +// } +// } +//} + + +android { + namespace = "com.example.hung" + compileSdk = flutter.compileSdkVersion + ndkVersion = flutter.ndkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + } + + defaultConfig { + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). + applicationId = "com.example.hung" + // You can update the following values to match your application needs. + // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. +// minSdk = flutter.minSdkVersion + minSdk = 21 + targetSdk = flutter.targetSdkVersion + versionCode = flutterVersionCode.toInteger() + versionName = flutterVersionName + } + + buildTypes { + release { + // TODO: Add your own signing config for the release build. + // Signing with the debug keys for now, so `flutter run --release` works. + signingConfig = signingConfigs.debug + } + } +} + +flutter { + source = "../.." +} 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..ab3b9cf --- /dev/null +++ b/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/android/app/src/main/kotlin/com/example/hung/MainActivity.kt b/android/app/src/main/kotlin/com/example/hung/MainActivity.kt new file mode 100644 index 0000000..ef953a0 --- /dev/null +++ b/android/app/src/main/kotlin/com/example/hung/MainActivity.kt @@ -0,0 +1,5 @@ +package com.example.hung + +import io.flutter.embedding.android.FlutterActivity + +class MainActivity: FlutterActivity() diff --git a/android/app/src/main/res/drawable-v21/launch_background.xml b/android/app/src/main/res/drawable-v21/launch_background.xml new file mode 100644 index 0000000..f74085f --- /dev/null +++ b/android/app/src/main/res/drawable-v21/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/android/app/src/main/res/drawable/launch_background.xml b/android/app/src/main/res/drawable/launch_background.xml new file mode 100644 index 0000000..304732f --- /dev/null +++ b/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..90e33c17d81ac2ab5f17e75a52207133b46ab3dd GIT binary patch literal 5261 zcmV;86msi{P)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 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 ARR910 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..233766af5585828ec66051074f2a31d0bb7e8a1e GIT binary patch literal 13445 zcmZu&WmMc;6W+z0rC4!yDems>6nBbSad$87P@Lkf1&X`7LxIJMyUVxl|L-I>ImyjQ z=1yjwJM&BurJ^K_iiD2@002;BWhB%f`-J}*0vu#}D7DiH*}+(fDvAOC_3_BBCa{oW zQZpGfMF7B?8UP3k1puBQrvi@v05=u@;Mf=d;L892aGkQ-RRtg&aHjIo5`d5Ymi*4r zWB`EuT~`8lGWhGW3tY}X#6jE@o26S*3etW_U6y>i?_b%b{oHk2~sqD-)*_jJHL;ojMkEsct zv6qSUDPHy-*me=zBPfG>WY-|(ng4&FktgAQ0atgX{c^`9tq{XMweM66MH!`bOq~)M zZGFTB1-NdztpAk_4M5BvOHI5AdC~b1WgM z@DGc({uM*}Eh#-P<>|F+p0n$Cj4Qwz55Y*{0~GwydA!+i|C1wP??_UF8D54au!$Ti z7O3o=VZ_o<%r<~Uni9IYI#>m*bOkMqmlg8|;FM3Vr0Nf2O` zzWq%y4BkRiI3y4;pMMztWWf9&1Le#PxoKF$XN2GHqLd&9th>)Q<zTAEyUh5SELBN!@iNoDVPk^!Xs5$L4CuXU~}Vx}8k zLbvfi1M>;#pTlutV>})SVI@8H`iGsn_idl{Q&hx-W(d_IpX&DId`t|{u@{O68T?Eh zN0zT2Y3*lHY^TbP5p#aPlTA|&QGGa@EB(tSsA<({32>`nInE*j1{NDl-g77@`(y@g zpo5}b_Hr#1Dd#}#*WPU6&GQmm>jYPs!TFvqkC{6({F_@9^!g?_)X?7v{S(^W(!tg>2U>Gl|yLO3l>A9zGg_z&+py{pSV&Uw1^#u0H}Ha&kLl_H-`r9 z-4Gfw%h)ja`UxJyHD{_!JT2f$2nc0&BopP0e2$UxDpnkn)23XU7s?ilO1tD^V78H$@&o7J~EK-1?O?>Q;eiIYgVnp^0OLzKTq`JWtuJO&n z0G8}tTkGfd^`T};Y$CXCg%=5>2^EIuG(!3C(sNkk6?Qk>5IQCX!l;2#nTX=`<*=u4=8x5 zXU&C$bv(PQYY@nTnA=RJG<;IxsuL2~5fyTzE*3LYRbUK9;hq(C(Rg#)u zwjdHL&OBY7rJ;8XCPLfX05$2j<`#kWBNTuP3+NKvQK-FF%lNDTwV^U7B}@3_`7ca_ z`ZKo(l^Odlq2YN@6<)o=6pyb02Zkqpywe)lf&`RH$)d#9iOjJGv*{de7iwO@sQ}zp zTWKhU^=Fs_u~@cw>OfNYuRknE)sVx?rb0>C*u|yptS0bKj%U%@@kl7xVf@<)`jO+D zVB?xUQ_g0x19TMUvXmlm;N53RNN+3M*x8elF+D=WGS?ey!b8dYJI$+@mejT6MNw`f zxY(D58ZXkGv}@t9Eyt$~7w&6t295Jzkj*ur%NO(@4kM1mVfgKnoh^A=syhe9?Y^pn zrH1j;UIMR7NZHk5{+b?iKo5F!zN`;jlf~@JRe1YZxP{c7C-T!u6?~*}w6b?3jcsL5 z9ZLR(|GSNvlHrfee3^N{)q>5P`0}WQ{a(_+`rYC0rvr$m{H~zE;drpjm1;JhAHL?I zX4%yeDF`Jf90U~wq8y;g_p)H;P?{D=mQtLdXFyjZ;1(}}LnXtIEtmckWjEcM(;eeB zdQQQAQk0X#l-`b|GsyxJlF=t5! z9i@NNyZ1{~{cXkQ#>QTSQs9t45cU5`TyyFT`|R397^}vf;=cT}kx7*|qK#>NQjk(( z<*q(vT-I^l4unAB0kapAAj6+gV4$Z$SS?4pJ8859&ejF;b_A2&)xOqvz1gw@OgU9R z-P9=9Dc`_>Uw__%$J^r+v9w>4-^Icq9OY4)%Tn_t8maL`U~M03#YsiPf?5H#E{58= zQ)Ii|JiPCi{a4Ug27B3LLRFfH!<0>jkZa4d#Gq99QhDlNZAA)`L2m^xQ*?Ufa3hmd#KAcIOuTFh8<|Sm~3Wg$If^lETt|e ztfL^ZhoUe2M}H4u2txE1=uTxyk09tm5thJ45RKe$J(juyQE3 zOv&j96ppD^la}~m{x9m|=H}fV=!ObsW?tX@YdAH1C@9}##Fxb;ky8sMTu8NSV}+(r z-(~2kTEph2v3l=PS=eVx%#e-^{U+OGG#wqCk+Cr`C3m!)otKVauJ0KmVSL?{pa zaBTehsWvMT@&So^1j0$nN#g`VB*s1QZPbF&&ge3 z)oC_U0jJ#x== z?JiT^I3j+yKTU@!WW>482*iKxSa1KWz&FTSBTA_9FEvQbr~YYRcToeTu!R^SP$r@e zJPVu89&__^*krfsqvZp<0;NfOfbi(V7)T@g&IQZg3|Q?(NL?@d z@dR=`TTM;D?!!I*oP$87$P!X}4=<`JDuL5NA1Fr5I>E=sHhK@3Vl3VxOs)2h_Tbz# zgsT&JGeyK``RI1n&WEJD{QIC*QZ{_D)DLJ8-P^aH2KW}gY7W1|90t)o3nUT=Z3TQl zZ+e>H|Hec_y!y;mCmfD;8lRGa<**qBLS*(p**O0U5nbvML`SKkJl#XIG;r%l2@cfNX;E6*ilM!Q55Wz7{2WQ&daZ(JqZYi4gT+!PG+FGfME%<96*;fgH4g7(ygvSd&&2GOFpP z%e>|HSoFiGAs>=1^xA1lzJqb@s-6rJvxLMfjH#-%QSF-|_WRtKM^%HNtmE&dGD|=S zaRMoFFbM}~@Eo9x^;m%&g?&jbDHBKmfPoSPAwd*sOC}T%Pb@KW2~2)MGfP#23Bdve zfJEiMt~_KIh@TQazlKKek^ccXrItko!_nH%SAwgn!mG%_AMj&dhj=}~XXz@=EfPEj zLB@a=|Med+3sQ+)tohQ91$D{wC1CgPKup!DP#{LJ==f|%Y#U44cMQcMI1F%FKWXT) zHTft123n`R-)0&7C-SF{ZX_af%r?nCeh#BZySq1z(BfNjNF{6QAgQV9L&%C->rO$%3#&7kRV2GR)cVU!Z_o0OoSBPR4ZSEQ z#obEGQ3WcXC%z(!Ub|p#V9zP9-)v+rs^>B^39})OX6}lN9u=#rM<`H(Hl_;Ad=mS3 zBm2$0^>aYLs}b#&S`A3V`if7s24u(*tlR{qvnf>Z0b#ZU0xhl_uEk*LKWQ zO;eL+Um=aJnqUQMIy6F|U)k|Do-_Y;(2fGUj9lAWq4ky0zrVv3+`p@}5(Ru5N#&7`BaBYDCC;z6>I- zw00xi$!t6l*?WMmvwZ>fOP#LOqeF0+Iei=;;T!Rw@5PJ5tRG$5^^Rj$+jfJGnwrfU zyZYk*ocztmcwrmd>M(-PYT!U6u+?P=pX=vGPG32xsAZ}TMJ>#RVc)PWqRMSY+QVwe zH_RvJGIXj@zX!jnJw?V&eFsPGHYU1(cD8}13V@dUFZx(>gU#SNqew|j-St(G{03|B zB`djMpa)1RBK#XjEX;dH>IRxsG&_UcU4dU$pA<;*7fJ6LhxjxMTC=qy z5@HEEEo@Q5P*w0tc~%?35zqrG2qWzRqEZ@t9oqd^K7HDCZ65YEWqFRX&GhbLQoBMV z!o?;U-g>`3zJMdn4DKaOtJSd{J(P`69@y&^ivQt!oyv+RjGxGAHoRpepU6mLA)kQ-j`IzIBTY(W>TlI3Ps`Z*}*z1Soo;&T=Gfy0!LloXti@fi>}eK;Q_Qray;7ziVhugV{#N#gMZzQld->wY^7bBR-!3YP_rIB)rQ zl5p9rM~;ojnRAYcbvtO0FAA1pV?=oko6U$dB>57aweFU>jZW>mPBOSkOG zNhM@$@U6-D@gaa=zL*X+pg~XY&A}e#gVIfeR<;H?c3&A03YylyQp)z_eY{%wUJaVY z;B(3Wh-Z1q0)_?$O(rr}Gambp({w1QDUEj?EobQY(RGca5BGvi$M35%TAWId1OQHD zM0?dU6}7s*P5+4F;nhnzLVH8t z32L`yF_I}%V?(@SxN)(z%S-cG23T2zP;#>cyhIl8Y@t%a0aV)c{>5b7OzQyyj>G=q zKZcm{r!nzt$;DkP#9shh90}KO_@8F!?>SXD$b^i4MNQ>0_g6g#bK3i;seQ7T&J80I z4_^Vqw?FV9HLiAiV;_nmh`4sXktn8F3JFl~M5=an;l(E(NS1*?ONVBTCt!^t9w;6v z>a(@W3gL)c)LUYiszp_lSh?D_CUV4o+1Jv&lO;>fK#wu}1gh^l!3B z4{ITECX)s6EmcwLKF%(em4RrEAO_Cj_spU1{jWIfk4-8P7w&e=pQ<1lUS2%Mu2-Zr z{RMoqQfRaY%%pk5h<;$iJaF`1;GUC{7SBQR)Nlz&0L$K+K`;IW+il4RftZ~Yd8$Hx zR#|SgRT+^fufPn?5b(VmNI*>tz`hZLHv~}uR3T87sTatd!)zWG}Du?f-S8e6n-G!bTmW8sM7#* zvh3Ki+3BOIstN=|#>Y$h`xATLpGFmkN9+tlVSeVnXO{o5udb%X;8nqm7*666VVSFu@|oH+)LM{s$&>(SNR)h{by=w7)`Dx6mzK_G`=8_knd;p z5{1ErZ{r|@BT*eg!?@kyc(b!LH_x-?Ww0wBlRdS95=2+l^AKIZ|Fv2JCXVm-^;Fgl zWw*JY);@ik{?dAWoOrCCY2bomh@|!+)NqX zyx9tp(85OXr1Ylwg?N!nN=vq_Jm3lY3w-+YDRfyy?rM}KZ+q1;PrWG?4;Bi@Jkpes zogI_OZjtZzau4TJ4`0~j_kskxwFSGwShKwL!42u-Wi&b+%#kXa8$hpSDQGHg029l` z$_Ss2PH)TEQgT^w(&qn3So9x6ejn^5YZHn5we~1YHyFLYg`l@qW5AC>#3!*qAa}Lt za{;a&9@2x0*OY^dcOsL0w#(0FpU{YM33l;nF0QXbQ)iI()%`TmV(JH{^zl&)eFJzu zsw%m2R3ijri1=GG*+Zi(0(Le?aOZbuv(+rr72?$pwC30F$)CRwykhX!;m{()Jtt}M ze1p>sz1yaYvj3X}@YqX=-l)=##%!PqAxTG*!(Uy`$=THriGvD zSLZ?vZSi$?`_TRMmN!bqi?wEkq@?7qWra+(#kAFiB;Q+40gOvp?qCLFq-|GOM1NXZ z02xfWTQ>?F-6+dVl(VyQ=zhcxGUq0UZH6azDsJ+4Y`8=LIF?Ecp6h97thqprM6BB_|7{qDX9;SyG#TN z1&-Bh2&Lod;HMlVE-r4wRebDlwb>9tuMJ%OPV%sE6QbIYw(YX^^0;}$P^hHs)C7mh ze2HSLo(LU8WmFv>N%t6AA*GS&j5?EA4I!Ee?O9t>;U~xVg1Fl}SN8 zbH(ycVKE|*053AVR6(^ENYB8)`h8BqxAWCDazZ+JLcxS!jA6Y0jf+c*zRhVeQxMbQ zq8W35I#R>MkWBb!L&xkxGKtchV~T~bG^MaZ-_ARWTg#T^%&E$#+t4$>-(LuaQ9BR_ z4M$2xhbSv6`D3RINQY8kTj+d~(l^xW>pw0p&&T&-CacJa6 zQNoA1sQGsrkzBD5B~g;YBrKm`cMZ@{bKzWF4av%NZ^bMAjIn&=wqK)+8QIyz1QCqS z2NnoLUTXoio&TT~*3G>6V*+H8U}U31|9OK((Hncy$jUD2#acc^@qx-YFy;~LrTBaq zc_}@2%ur4)pM1-SA)?u6K4Ks};7&nreQHKw=e@Ez0YO1Qw!>jMVXy07m+u3iFsW^GH9ROpI;@s=1woN( z`jYs@)7ey%Q9uoSI~0IeV0N}0_)Ykob~BdG?nq_cs{wMu7$P5BKKIj52rXoCy7EV% zch`wWp;VrSqStlL&1#f44T^GL2sr2x3f)6Z9^3m3HJ7`?HY6tn2Ynf+ zO<(nVJLP*MRbv9rq;p$mQde0lPyOvv=`dL55(E2m8u~u%r}y#cHdzJXQg?y&(NHJr zK*5K30fynJFB2Uq`m;~% z85blpt4e?|gtnZKY>I#;p9f+yX?zi1F@bj1GsZnu+a*R59&|vFRBT_evY-wF2t(}h z5fU+*4m9_jR8&^72D}gV*?Ql$q7W;u2=8%}cXVtlppQ@5ATGuLh7VcMt`-lg)HJ9S zx~GOGvL&a!aVU%WCVi(pzj>;YtTT=Q1=~ua;I`au2ZcOdBiG}QhZ=9Re)qg<*1{lh z{5T`Hy852MclQnQx=ZO04yQjpOH${p6Y{y1l>{Br5THObneCy3w z!%>Lr@N zhR4uF>gx}05yVLyKjy=HiC?aXW@Xk`TBq!+Ml>!F#RS(^Y6Zyx4>UP<&{pr@1+Y*mSPo<%(Ir z;5GL6<&vJGvoEoqV6QRgO9u-^sZ!Jy{9CE;8(kA}m^9^W*U>)1R|GHDj>k{bP9{XA zil0`3c`Nf`!;pCPnD{14Sr?g6+NwJq#3J0Cn$8*Bd6ctxf)oh?L@vgC@C;pEh<<~M zcyB^&{N6jBj+Uwkq+;=l8Ia+i5!Bqiax+xIp0`~PZ@6p;7Q}`vUJvzs_6yJCAJQPE zRgq)$IM-)1pf~I|xbk#bw>RTZSft-hH}dbDE!v?pAHF~9Wu{iImEm~i@Getwx1_go zIH}KpH&smbovPur&D{dUW)&k;>b^eV_FYpevRxe#)Lm6boEIUl_*R%)5e{lZm@aJ@a69T^z`8L~TW`kHv@hQJjdpx|8d z;}o%1YE)uJ@nH@Tst1`V62j!X93b1iJXd1(* zWRsW(Syb@l+v%e@SlVsQ*u=h6B4g@K0EG68Uj>Q zRfFn1;s$pH^C&<~&$(8}q;ovkDQb+`b%2Mh4?so5#Mam|B(g#X4w~_t%w(6gDnTS` zt#Bln)Ki$CR*G#_H!tbMUo}#(XeGy}+ts#gc8E-~AE z+qW&B44TEqNsIPc_`Gqx4yt(eELR)FLm*;m?shm5V>xRoCp9H|Xrqk;vDP~ECjpny zfvi|DF7@cpvn(YW^+*lx?tWCH#LUIBd>Ch1YEFOCgJm>7sjTOF*rCGVNT5pGzqb#C z#Ad}<6MjnsC7mh_s zT+%4P@@vHso-n`NBqlNECTDTph@Y-fO!ZJxQ}3L4e1zTJy3YHbuC%H16dTX@^wxr4 ztwBBy=bZZ~xw&x=-z1QwM&A1`g5Y&IK&rJ~U?J-CabKnaN**v?qe-AfBDfg%?FRwM zvYB(K)y5bhNmmS}*54Ib?MjGN1_Bhg{zfPN{2B6({UgLYSuqS1p96I6tLZII=PN`4 zSv^WaaU?=P;9!5!2A4&-8K{7RTyl5M`%xRSn zTv>B!#$sRsl(0CMAYaW@Sd`X;%Nik%)UQX=_gVf{vZ$Q<_z6rPKKaZ%TT)*`0^2(|l}E{~ZDPdG+tuUQMmL zPzvelFZgULQgA^d1m0=!9Q_97N3?S|tQs?+2!ELjhSnFM%h?M&`u&%N^(oE^;c*bn z0RoiZzYm*S8z0|(aFAX<`5tXHmx3!#HXOKH9M(}hVt(@bQjc1Pn8YpkEkn@6{fsYi z1nguywpW^%{u4F#vN|}D<-zKSkf{NU^ye4+2v62b)kw#>#RycQpGFHHXlV~F`=Paq zWpEUta{uAYItmZ0UvyUCw05Hh1ZAz~%+)UeJ!Od@iRsH~X5r+Cb($_xyazFp+Im!a zN*o@NP2$JGJQ-*m4Z%n^cE~;OyJda9Uuf+6M&kYq8>;bchDp5ttbKKL<@p+g*cS^S z_3Z?Y^B_dFvfv$-#pEaDRX_nY5Pc(nV8fx5@AhjDLS1E4)4mN}R`O(Q7)yrV@6S2q zNr}ELklYVAB=C1yjm>tpPxlLCFOQ>m*3@V z$46G^_Wgv8wKd)Op9`Sx^S{HiERQWevl+Gb(>AUEb$OSP*r`)1@}GGfzf?Lo7G13os3&gGce^9+_n(bT zPxtd*bXIqa^!{_z-IMPnH+o}Wi{tk=9|%DgAoo>=m#2_M6{{Wp)8~|f4$^TMe8Guw zAWC?xyAjs5J2Yw9mpEBU&}OqNjNwG#oE`D;DLky>Iyi%>vt4%3=RSse^|;rEVVaQ4 zyu(BYTHALH>jK#$rwnD$LZIjU6}A;T&8-8c{4mZuI9XH+Y{d^=iigbf3LF&fU{f~R zxMm(RR1o6l8*^d(wPD{REXY(+an*N|?6kb%Q}^2`uh<8roVc)2&lv9Y(oP&|P}y=_OP!oyEiQX$Kw#wy`cS315$^eKTs0;U4d)7& z+OBJSIDJmgMJM;z^;$w8GN<V%Fz>j(3XHyhIYefW zW3Cs+`SM*Q&g{%pw)HIYT}I(2T zxl%q%L&1iK+O1ww9QbjNjCUIbL5jU6ccIpMchFAr8DNE>+{4T8Nr4wp?9d#u8Z)M8 z9EtOYsd}{WFc3_z|9Bh5IEB}_f?H;ca~o&d1aF!T;LGgk6ki2z=o*c6yOt#J!Ay0*glystA_% zKTBT!*Y6Bp1AfEVey#0=uz2<%Z~%et^{qF#Co_j*HPNsICL$m>iTsHvWE=@FD_7hU z`51j)1T01hd}C8n)r8HT>ZveUGov%i?3m zn=8o^3-3m$ro|7ov2Sg_{?JwMy2&fW&^1uz3`hgQg!)oKiL^gnAJk)}Z+0Yu=0a&8 zRxp5BWwFmlLIKj$dcJ(}A*eszwMT%n$&p$}96v(>(th@4Em^F+T_GDKGnuK|Y`tnB zi;Rk5&G57c`|@K5MuKr$LF89XF}&pL3Ounxqt{7`jRe5_@mOaZ0JW{J&1aI?Pj^QK z*9Ys_!vc-L)5Dt4cDT^^aA-P_*^VTQG^iK&Zk4iL!F%57h~=!;3_{X}A+L5^Y5pMn%%1J2XjhRZcHNgy>z$eUvZzSW}_lB%U}p?TQ$WIk}R8+ zV}5@U<||}^!H#E}xAi+V1SsBcQ;)5ys@q6LJ$0v2b|tb`RBZ#cDPkvzwBuQl7-AW& zPlK0t{&Y*YiDLk-AIh2c7VLQ7I9OgNjFW)>i^}BjPAh+F`#drV(N7WsPF2&~*956h z#ubjbOjTN!1tyV?uPCLk>U9H-eWuR*mJg}#$;f7t?@r;q7|#O}q$N|@?%w@6G@ED@>tbh$SqS@Jhv< z$Je9Bi=D_fK$zbZWOAr)=Oz)kOj<;ZiA9m|0xfX98vSS*)!I*glPkN8jDjMcK0VCt zb$kjVgW*~Zo|6`KX(xPZ?Ls-p*NL54q0LW=YhDs96^$;0E>*ppB*yY>L>>;{*V9wb zE{vfrKUye4eb)brIN3-L(TRC;@9c-C*v2`mi>+C{PwrIZ=l@aR&{<0i?1`AMk>Emt zHvS8*_9QgH>wT`U7@Q)7_(tA%qEar_$vf}A(Cj~nHy$Aaqv$d>J16Bx0?z3WaLibiJII2p8SMcYO%h{`_S1dtnyyrNv7Y-|grlRH34px^eE@P~f`sRgdQ_&I4zvCq1)J`ZPb4}W;`bmv| znxfg{Q`R?bG51R95vwGeHCqeLHE@d-Vb+gAdOhSLRB|EwU!_~#KDrS)jfZ(sGA|i5 z5iL-pPXUNAcrO=M@H9hIg97F_S<6DJBhYcJ#NsT@NonLly#PrTP-s6GWis3r#=*fN zqeTxcF^YFL{PETMl$v0CoMG#D{$kCtfXk?gWB@i{aa02*tk>;_d$&AYHA^lJtf%8i zoiLDqx0DG!=1Jm#*p`!IRCL>wpKMgF{!-fB^#m%168z5YhYwX`VA)5ZDBSHYk6`hjBja2*Orwd9 zZ^w`rjA%>KimzysqXD7JQPg(7p9}JPV1E^JY%ynpNySE$;0@@-o)2IaY^XFBfDL9V zJlV+B`O8MRt^RYGEs*ZehCWsnyrd4P!OCD>9kXs@3V2>#J}L_t=pwxjl$Ucw4~5P; zeG9r0w5Y9OtjsLHT5RSudj_51pG3AFWU!-=6nyD#iK>Pt1dI0!r}54M`WGH{LL%XZ zuA`&ze#dkLP(AXJ$eX{Lns*|qPr*W`5We5-4G|Yz`^ch|moF+bu4PMR)-R=D{_z!i zh#YVBML8zRG7JB`HevNh>RiR7mC4W;(_BM*psOh8oH>2?0WPO8YX8{orC3yvHefsM z;f=!=IsK?`8T6Tk6Noy$&~+Opq?P>zoQE#BTvW%!@g*+=n*q>RNv86D2B%W^f+jm{ z@?;n{tVCdlNDKsLmdsEJjY(Sr&aoP9iX5dfDr75%B1 zZFF0lj_E=vprp@U-l(DD(Y+OB)p)W6X4TlC--dPb%TdCnaa*-pXKl!Vk*)aX?cTw? z##dV7U$|NoY5E;8E4L6%(M3@lxG^VHf@Bo2_14B3gyS;DnFDpP0 zx`2ewdBm6dRKD!FxmSnG93rK1>pkX^0*_x8ZuwCXcUAx!MNCNP8p+6GD7g01za|8U zW9LL(v#h>_-MeQbq3pJ!wB=GIGtPM0>k4(u5@G|P3_##}`}6NH1A^$TBQ{E!(X;Pv zD*8C%ea*&GFuqkk8?6X!p*_|Oj+wZD3whg_j|KhC7*)iMV8SM<4GC(wBQ zS;jn24)(5@0QUTIk~<%*bU4jhr`wf`=*RG82(&WA+CkJlhhd0p?TDi>*2yi1)SfpC zi|-Oxqrx{8+TpD=CiOI5zV}m(|8wWa038&Fi!s>`t)fBAs0+}6!T?zQ278U}ZXO31 zg~Wu`hbHheJKgonD)!_aaxUqDj~}g$S>X}|w^x8gEyVUdqN+O1*QZTd)SVv}oR$8x zsL;dop2yfCx|emspI}7rIScfX3m)9s*^5nHQ6-Y_wQ=Pe%ZYT^NyDUJieDoQuly)r&<(s>;b>t^5Dsd653Hl74hHV$KfrT6xyh%rxs%a z2eMGx+frEv4(=qN$sdFL zb$4!_(KS-EKD0`FDN>&mgaqoBCik8UUPP4P$jWh7riZh{}>6-3f|< zr@s&A13z^u=?aIzh9WS2y%tanfiL3+VocRzL{3Z@0MPS1N#}w`PYK7ReF(7^n-gN1 zFnk!F=Qq{!?B9woIeBQHk}!;qHBRa@NW?I#Dekpz{|K!=e2`x?g=45l^vn`3XC2Fn z4D78SXm@bE)rLgkzqVAE9HR<|ydg`&z_G{PbfXb6Wd@1Cr0~JVDIChnSm=gncU%Od zmJQwcAdJP`~JlJM5wFEVWE?v0{{Rl1$k)=#J20dHy9PM)>yVfLu^3S5-Jh^Ky@s} zqZta~Gt5F>Lj?fvW&i*JLjiz$#8-iP0Dv180B~Rm0K7>90Eiv4THcBven2%>l9L9! z{P)UjFH8ggWR?`9CEj`dIWqDveWx||vQk_Ol@Gc6)%v>>{Yxa%h(4|a{NLUmBO?r& z(jukJK18J%|@mWFfZ{Jb>`f-cK z^0P6k>N&WDDKMgHQu8loML1?abu{S8^j2Z?2RdAgX%WRVWOQ5Kz*w)L^QgU8t7tc{ zC>8(%R9z3!&kcOd^T9JGRR|=5E1&`-EtA!-K^+<;FlbkW$$5X8SsCSDf)w0w$k3Qc1OqETpdQ5qTX9B<5fMXYAQ0Gh~Et^+nSK57goGA0t5mAXKlJaUyZ)W9N$R? z{b)R4#iHo(#Wz=ic^eP02UR^^VSps6LB{?D-zqZD^rMxQ4~vSglYiwZeI9<7iF2X& zH$Qfb%i&Mkqh4))8y2YjiTx*KvuFKy>L4--Jl*zMxPk2oOKZ$w(N^LG;sw6L@B(iM zZ@4f+%EAe#n4jO(7_QgSzn7$|XuhpI(oPZj@=jFx@rNa__z>XV&Tci@koY3{@~?+j zJ57(Gn7yPt{4V=q>9fODPjBxIZrtJ3ZD&tS0Fn~yxtvl7*0EC$Que9SH)$URGAqFW z>XFIYTH6)|U)9)538??hNA#%vI#N*i`xQdSO}B%{ z_L!ir9}EB1!7=oLmC)l0Y7;)sBlXUS3vbd2wfQd!Jd=wSsbJgkW9ZWKz%q5LufD-p z%B)b1Nt2{vxTM5)P@u`32V3i$CBrClT+vRgrZ#*TmOC~rNrqn(4CiNvJN?%06g`y& z_bo>P1yL3aq`?(-GT?ChafXZYWlj!5)&iyOpX%J#t)jvy#%BEKDab#nTfg}pN17|= z9;nWQq`?O$%*Wb!5d*-jN*SMf*uI1vmu!Juo^A5tM|iooCyU3(1D&lZpCxkBBmC!?rpNA`+mv-(kD@2 zsr~a=7dQ+MEJ_JP9mE5W!-{;A;NXhR;*&3hV+>K?lmTWEWl-|H+e6QUd+R4w5!YMiKdh(!)gw-q(q-TH*^g&;Ka8k) zwHtski$cm(wd)DJ{OL@=as9~_AJk#J7XeAb)^=@-?gzaqe@=j5Xeh&uLvn*)p4>=a zZQZu0Qm>cvb`U0^%R)WVSd zSpqdE$@V)2=z9a`pUdHQdam@LzVeq<;;n7E`_c%uH~zH#Pz8CrH|U`Z!FcNGP)UHI zUqAEr>@s8&-!-oa(Ew(V@N~~kT7o1z=xrtPozJM(1=RnUAbXAHeZhf5`zuVL=iJ=T zz}sxJmlKiBvxbmuHD(zv85G6Q5yyKwN@vyGP4kbC5mpv;J*}{j5yf}fT0mHpK3kP8 zTU8qSmzZc-XLG#Y3BRGl_))U)U!kukktCIS?rWVd>IW;wLX)|vb7!VCeok!iHw6$c zs3q{6Z3o}pJ&a2Hdim|gGJA7+u4G4<$&22F33if^p3g|u8+8B!+Ai;D8xG|R>%RuN zUMo=H?Q?jB9X8AP6#y$2*PJ*rPhB)OD-Cf9?nevdi!qp(*=4k^ng5A;LJKFeC5-*W z5T~72mPejsbAXQ|BO^^+?uD+AK~F2nOmSpTCnc-#CXXg>MUgfoKKEPRvHANSPDjv6 zWgFWgXu(3O=TmBX_U$e8iFOTKJT;^a2+#7TvGvcH=VTN4r?W{$`5gk1_{Lbo2L)_z zCkr}13c5d6qlL#(_Q!7xzSS}+c$;<4B*I31#IuyAS&F^4*vzQ^vmtcc{52{trdv^e z2mP>KvTktUq4a#@yi^}inIU%T`_mw?-xz?kwJRUu$0bXC(H`;if?VJ4s6pM+u#%Ee zr}cHSvZW^6&Xd)zQS|hr{lug;M5$l=Q*ZinjghC`l=HD!jlP7^JGNv|6~@@ydw^n| z>wy5CkAL#b=9hm3P$3P+l@>XN)VY2kdhSN)-hb_-dv~ECqurYHhm8=q z<+?YnLn>~S4J$*!bOCP3)MaXS*oe1Z)Zi*l^HG%X7C%0Tv$15r%^)F zny!sTLnN6jv>G**(a;~g*n>jtr=qrr@9R1RKB2j`NO;%6K>$cp6_&FtEPkRc5KQas zWQDZqygo(;=aGVozK_VI{FMxGYBpSG`@~4(*G|A#>*D&Q&_8Z;yC+4w!F-g;V5&pL zXPNI(^>Y6=nw9zaXy_3dKgNJBXDWrpcnwl+_6gnH;Sl!QNr$u!#*OP!34l9~3XUF> z%`pIw<}ZADC%|A%I`Nvc$N>1_;Z1D7JTH|l&eWeRj&0tZ=iqcZ#Ql_^6I-lV8k5Gg zY3yphBGe_*_KrOW0gK|jb*2rFnsR%wcrFNn)$fo3qshg`{@B7(=Oe63X_3~2lb5$} zA)(4?R`~IO3$pk-l(=FURr74(Z}n&la6UfoP7-glzdR6N5V1>i-$|;*8+s?1cw(0} zmPyR*v(+iuewB@%@)x33-;rKEDr0-~s`OgaAYn*+a!ugh$&ZI5FMDad_ltwV&&xXm zqH(s4yY+z0sT?-lD^(kP*^3asKZ(Ty9l4a;vNGVy?e5{wuxKxHWGAZ3XF2m_6$_^e zErD)3eks+R)Ij>8H~u@i53JdH@mQTG>kYt`d0;Bn-hSSCcTC{BD z>n=Y2nFo_$Z}1(bL3N30(wZetw^i+bi)G0X@_k@UB#&?1o`uLww|Jb}J>6eRj%NR; zMz#J?ncOZD_Z5ar8*mTRj6_^{EkR2fT3OW$f}1Yd-O3A+DdilGpWu^5cqxINoqVrS>$&1aKq#X0G= zaCoBFvL}tgMRxeSXcxbyd8PsO1X^^GH>c(RdY-RO!zqeGX7g@>vKDo4o{=d7^3r(Sa%du*VQE_kco_l zkZ81D`PHh!d3mx%#XLOxB{I_7S4TVgz;!&18nC>W6-CUsdAUEmQ0Mj9f9*`z{og`R zUS3`z4h3xB`il zl@By3ev|RYNM^DwDk)tTWF;t|Uv>~f4&p4;!hw_rW-&3!5LB!lw|V2J3ZvG%x30YS zm?On+P&mPW#!>=&{1C+bb=~`gbfc0M`1`lUKk+ImR&C$#9RFv??qtsV3Tn#SQwMh8 zL{^W|%@h8*s773mucih9bpgg~ZzjFgY`DegZuL37oOSasX?*&Ap;xvyK|=^lJOz(9ObWHV&I?LXS6S)L&4fmtv(dVG(kGkL$w&j-ii zcj>g&3M8sOnmVMS?`v;`gpEc*c%o}K07Mi;sGUg#)oy*MoVB?qe3W+#gfsVdONF22 zyo_~~PzB6jffQG0OIK_LYb|oRb16e~A*?JPxp3Hi0fRF#G8Pes&-?-f1j;}1A#qiT zo-WD}Mco-+Ma~5%Re7G>+@6oVPXJcwvp0GF0xZATl%?w%94R~`xQ%)*{RN_3I*x@( z#nm>?pT$a@l zXuKV8s`>?q9QF$xa3a#;briHnrN@@ybH`$XfUA#g20-+G3(dqB#2kYW_{Xl!cGC=d zYn6-@RBuQk&dyjK>qFqrw>ZGWMaS*6G!Nn%+i4&*bJso6*6m$h=UQTW_Ci4yG~!@0 zZX-ES4ImDaxwmSDPHnThsthx}iwsZDrgvdVoW;tqrY|BWIM;+=}I;UBW4r{e>iC(){fG0DLfHw!P!pU z9^rv}ur|%nn5uVOvyE@=q?-}V0Pt8L`6?xT=OQJk1sywOPU0mcYp?fJlOr}Tu@2_n zzY|Ss_4o{c#jh;Dyn+dzi)VM`ohrEdlhg}p>v#-~c+U6Y(r+A$7pkxcoms^icr=C4`4>_4SWS%`bjffE6 zjbAx(PBe!Es#zjoh=kqbSPjzB8hQ9U&hVO4z&!-U&Ww`k_Ak`E{7;^jY86cb1Rt~pRA=col7_|=#6zWUl6>J2#p#Q3O1kuFV{xt!`B-@e0-|D zkKI7KM>lKu(L|P5_|4Dp?oc#`LAQAm>Q9hhP%vpBvYwvMLd_?%hEHo@%df3nk7!(4 zvY6OdB+cI9#$*cy)sxNl+VRseSHG$_n5GK3H;U-H1*Q3t8FXO<;|npKZeHp*b?EwV z`O4fNab=DlTi*sR+?zo{F?Q?XkpNZCCEQT?W}Kj?q90|bRcG@Q2_q-;siR?cE~%R} z6-QHLdReA3;Lr3-%*=zIzZz5@6uJp|vG58HA?jI;+V19sLuXH_Qm1U8JB8zTa>%bv zIjV(EW`-#+Rz?iY4gtN?^TGZ;^GmG!v<@@FvwKqrW}H1h9d7nOduafK>qB`I?=NsN z-yQ1fy$xHN`_y|x8(wT*`4^=-41->`#*T2V%qTV?fk*0FZdeuv@iqBExG387#>K77 z?b5G}rkzL$L{Oxb2WZ<98T;zwoDUB0_RlaH%NZu>s$J-%1M00Hu$=hPOp?He^$--G zIF4gbZb=QPwQ9~*$x(#GA~c%xjfA?4FIB1RDTSUkl&^G7^ESEY+)80E;52of7N~ zF2HQVomVMFYFOqfUalTgYf2Ic(?@1o#=w+Q6lyTFa9#;EYYiqHZ0$1Lvai@43* zXNQ*{qp1K>ojcSFWfIY620H%OPF>8@fM_ zk2YRLIStN+Pr-i*CxRCpmN#8)>e5B~nf7{&&^6z(>50(#j6fr-vK4$!t+5 zF)>b*jL~wE#*Cm%Tw-R(Cxb?_?Gmkp4!_m|JoNS?lGMQYob=EiR^uqnVN4eqJ}H3? zHOhdrHwqyE+%O3HPQIul=$h z+??`j!jmX9NV}9U{Z;zV*ihd$kL94UM8;~*Gjrd1PwvQI&o^$8h9W=3ZdelV5`6uj zo+*Wm#?Z^+(fyu*Z<*Cj^Hy1$VmO)oksO~md$Dw|rSiXg*h52VVjT5#<2OZ`sgg?T zTn%6V>`=Wto=TODw^M(%mP>ln`+jO|mRnQ&c|$>Z65r0-%=6r?iy9HNVo|9tXC23S zD}8;^%2~JI=j%pXFb<9Yle_%&M>8{OB2MFIHLHof{wQL%*=Z&F?VRWzeLIwTBSTp$ zbz658Wo_isR%(MkSAvAcH#7UTX61|}mM;0D+ZOqiE^cm$P59e(N8gagO#WG(+k6Xd zl=glZmY-HZjitkvyZegu4dJcdslw4`TOQ6Bsk~ZRT_mVSj1S{Neo3?WY=6A7Fqju&fJ~?<7i2_z2V&M%YuJ*ZB1h0NpjY; zpZlz6=+To>vl8qVYrnD{*0>*X7P-H}K+XQ82Yj*w10wTLH8<|jfF9vVsal)UIGw+J z`_{1pFng_Y#%0@1>cIIwPJMrdygXj0MU#nB?oOPs11y;v6f~8+j%DcR8Ag=(nGJyE zG+aw#OqC_;-o_GVUjIZ}aLnnk!sv^7d5cD@-t)UaL;tC3z2~zbSCy6xd(ceFn~l}4 zks9qZ4!J<-&&UvU-E;GNIBGO)Tyl$2%^*1U>MMV=82mb2@Cb1_OM4uoE%hfXBddWv$8y}l zeLqYO>99sfisC{{Cr{+gR(jUr+%7Q@6v}+dg3EMhyUAW!JTz?4FESqm6t>H0x{W@O zeW{)!*3SLu&r;RWr+fMemf5aV5!XGgfkW~;O-)Vi!^HHVp&Q1pv`Bq)3`OZb=M3l-<{Tdk5@l33 z){Yp7wE3GoGMG2%-*Y%QA?aim@yq0|Yj_H~amWbz^Ke03-MhAzXV=j1aL8e4Vw>Fe z)TE@Y4M)$U>A#fUMPJ6OUdK?1Mndoz_B5W8k_g7qMajzb8-x38oMQK~rRp!UMdm9V zOn4(AHdqXNt4RVLn{^m`@PDM`PNYcQYShuxNn+2c*MT+*CX(>}ExSUacFR!R6j+z4 zdxdT<+Z|3X|N1P4OL#f=+N9(bodW%ho`gL#%e7fo{U6x-`um5`dn?seCs*IjJvCQV zLCN^-x_+u;Rt3Bu{oUPtu<|%^7skWK|Mgu;4#AXhkWn$=c6Myo6mLSSEe1FKE!JkV zGSbtdxQIVsrl+Tm8KDS7CDPE+ayzcW+4NeHN*^brT7Q))sevzPhf;DUu94-BrwKm! z{yNV?c3;6M;3(5=GSW?%ZrG9h0JTR0uXR>^+}h1}$MoQMHn>h=QF zBb*7)0zv1$OjZ+F5n83%-=#PD|J>c(Ewp-25wYus?(KcRq!b}BXt0|qf4tZklaQ7D zY}xq=rTeSE@(@;_U%)Y10S9zbESc8RHasm2;h6vy$45}vCHDKBvqVa=Gd-G_uusIp zt|<(9?P|KsYnop&%Cjf4JF{)AvHCyrz3kXq+t{E}20S{AS8}tkvi4r?pO`&A-et_6 zB_$=9F4nwnxu<7lhWvMIZ`semC1leXtL;9t{QN10?I68EwN1%InLcSgRI(;gAQBk} zW0~oQAe6!k96>)Ml#V0khNYuIny%@ncYkI0Uf|Q8;6%N}<#ONiVMbhB+-@UEKn#_5 zOgN=CNjMJG9H%iwQdU;9m&-2Aw^w&kNWrJ4j;=?42upP;wb>1{jKaigV{&y0DNj)< zWZ4nuJ32ln-82@uNG=Q|X&XWndOrC9+`3Lm)w1s3?% zgAw}zIoIgH-Ef;chP3SAJ%zwpwZ%!$_(0CNi2tMDakDiWIyyQg`a81bpE$4+lel#VUy#I^C57uwA z30wH-Te&kLmWWL3*8HGr31O4}D@YT25|y%#%@z>*`SYjwu_41!J`W5HALQO@1hr+F zy4#dYN=dzU*juzv{=ps;PrzjA$;X5xU2m_n{?btP1DH%WYdE{NP>kHjyjt(Vs3Qa* z5&Qu2SfrJUF-L?`iwxvLPV!ZSG#1I7kc7IHR#;gXo8>o={YCF$qj-JGhIJO5w^~6i zVY`3b1}=0e>5KAJ&Y+eqU4N}NApd5uGw>>}&g?7M*w)wn#mC1_XvJtmS`5axB!B(# z1^(jy)O11j+Ij+WF-1n`V70yVLqZg_m6){h_WSo~d_Mdg`fVhLK?MuV)vL84dF{-RVZTN-N6c!t0hi-ETBgci0VS}M{}Se?Gza*_X=`qYHP#Oe=IG=?tY ze8HC`<5sHOs)4MIo|#zQ3_l@UvLm6l9U$5^gywM zt;mc`zA(wiBFW`-ZmHntRs4Q5C5`7jx(D3%bRB6D&&Lh=Z>bSycJ?45Y;)6`Tzune za?+h_XgCI20bX*l4=P`C2O}z*#J3+3?ZrxG$20*KbZkhPdMHpq3g5v5&s407XpsJL zQql}T|4BPvc}2y*Vy&+MzNUtTK?!SoLPAgfYjN?Mw>IzTnb^0f0HGCm zA||aX6YbnXSb+MDc^gQyCe$kU<1hB0kPAb~#E7oHWbDZj>YBaQS^(HsMKQJCsEkFjXSPseaxEcsAAi$X^{`e=*VNV`_Dh$ay&tYcM&ZkCsySl4 zE6=)CcGBPMPWG-w(N`aIJ$7bXs@Z7-L37i)S@la+5ss! z-jV{k>L1h8`v&^+J|;2@P3njnnY{!(6%`k6IA@|_k^~~4!ZEL{y* z;d~B$fN~%^iNZsUJj8B$8lf6a|0QN)EjTUNEuqvT+R07n9=6 zyTm=Ff}x3tfrDAwD(@>&OKWReV{E^p`uX8XWV|T^sA`VYLKrFWnEwiFQaw^$L}o)5 zJi}%Rxs}uf@XZnku~e1g(nx!a!te)cZ%Y&dud{>)OG-+rK9Rk6ea8_wg@aWi6B%1q zVjhlLQ(GUekCvK|=86-2m1%e43OD*9Jx}6!yd|Jd!2yE*THODEJ4bKw3K_wL}tEuSHs`j++0*v_LpU8 z`u3)To>p{sFc0+oZ`_tu^P3{7SZp)F*`n*|! zn8UCudnLdzxn7sO$xQIYOWgWm!u4~1h^^OB1B`3l347pmVmX;J6lYE+r z)xLKgd-I)~I^P^Rx3tGHgveyFXdj48e1razk#w-y6zeHDbiO)-u~5Sg=h)A73^dP{ zT_(-92EHz|d0}8v3hoI}uC%|Iv2UcNrbapvu9I8q@Z-u22;lwtspL1JS);ZKNBl7` zne|TKU~phybAU_;4F&jkyA`|q9FU4lvC_4fHuXMMbyrxTuQk1c1Htz49D0~u`+m(U zfyMbRp|O5(U(u+(XYHu%2mkduvOr$y4~7s>sFIYuyg> z=6~5nmFKNRGY9gKKdV)^AAfF;_)j|qYP{1CR@X8@0d`r{_FC1V4ltk(X5Lz|1G~?* z2G0&k6Zyv3Vk!Lu^78XvWe1Wskz=E2R~q+@w;H5!9P3BMcH%IA4=kBO)nqmHnL52( zQWIUmb4l>)jIf&>t{1sop1k6>M#6FyKQuX)uBf4ytB`URx&sN^Evc1eUyP%|TZHTEH zrUG)cN>iF1j^8eC$C3->`4izvNue6=2l&Kz5(1`ejG>^%Ib!MgFcfGG1_6!IukSi< zdW7atgvhbSvV<~QA?~ddi42`(cSoF={PsP2t#Y)SCzx5P9Y=|h=#*g9Z*Rg{Pbfnu zgl{KBQI_|InKg~K7FZ6be(g+r8*N7}LpaagZifs`&!zrQ_yFFF7ba9u2}<-)rZLDD zqZ44-UvuIZ=^;lP*zt64IE{x@tS#>t5@ntH*B)m&p@GRbOJ%mXIS@p9G&B3qg=hib@#*g`%pPbHIWV}~QZ zMzr8CW1PnlXZLO!aZa;^{KtvzFK@0Qp)C^Y-#u2-C;V2Km5f?k2NKo9x=obO5!wpc zauha_=}>Md?4Rb(_dKj2NXRL0##biT<>4tY)ol3+Lpp?S4!LimX zllfYJ;=m56!2T_^BnMu%CzrUy_FsoYCiOBrKwcg$mlC`qKO>VE|LKt zED9oMiGa^gKpG$Fl%j@K=N3cMV%dHHDSsxGL+2C2{pChLGsU{tXTRy6zqL4Y-U^l`wBVH_AMP|2%^mG+NsaP(C>*g@#(v63S(0MCbGu|$zHrQ6Ym&8 z*Ha8$KJTA&h7>Vfq1Xw;l2m*QQAD6NN^eJ+idJ_LO7C@Ck;ipu!+;g6G{=)CK_?m| z*fgB^ftiN|uW{8q>fnNghKB3YAKqo(3zZBuSrrv51{LpQpE+W{?`e%+oepY4UuQDR zfj?(UU`4ed)$asYUG#ycdO&kjS&;=C2K)dy4wD8TMu%?EM*>9oZTUXGKE3!NAsPIr zfaiCA-Q6cgwXu_#nHe>ef831_P*7UyY;0_*%${VUNrgxU{d}@!B~FKEalXsN9@k7N zDJ%D73Dt7jEvQe1669bq73fx(BKbe3ix2UqE0YN9sOpvz$#~Gy!HP23;yhXY1k%IW zV1Pe2$}+ppkF9wK>EZgib)nv+(Te+OZ;@h+!ytO;xM_B!+R?++S5jm^jU@bK>=F8Q zD&CM5T0l^#;!hzYbdF|1NI+ovo3)aMNa+>m?c29$Pm63K_Y2Z}gM$yUw+M2N*|{(4 z`*39bLTRFa{kzU#O|0$V*eAnswopgFwY@Cys8!WhaUUSP*eqlqmxy}mnW__}j=l4GEAz&|3A=UH#z@{*U$unkb{RGqF@Z?-=*7jw$HXomf~4InL=?>%2`jq=R1918M4qJNeO>=@3Gdhxo}HZ) z^uA<5C_7UnT1vbTAM<{*?6+hKdtiI4xCzwM)HH45<5I@#PaDg;o)juR@S|EN1e|e} zT3Z&Ey*_@xmK(P=s@%U}0x$xIADiFLMgT)N;y(Pf$|-1h2xn(}T}}PkhVI9}`T*ol z%_~N=>>gSi(VzP&+{QGaFi}ygl@#2W|`xk z5n^br^(1B1i3;{i1fpFNVX34sY@-EsekF;tia1+8^f6X~Q=d|%b=Hafknp4Pl8=Av zp|3V&l165nAMWm27v_+{zbRM==T(sptt4+d4i3N`3F1PnrD^7IMrW?_znC0PLZpt@yN(cbQ` zn+`M1@`r65k%!BRAXB%+ zHT`GG=kV~2jqu~3{sSR}U^37eBt}cB%Kz z4l2NO8>jU2fVI*oCpG^YP$DiNBbc?KP4X(W-TOv*RGWSKu4ENA9vzJ613P=X;Qa6h zep1jXyBb|rM>qVgfk>%~n1od~xWxdAwCG1r5fL9lQA*bl`c>QKfXTqr4*fb3HPJIR z78VxF2zYiVg%r4(HPKjFG4j#p>(=Hb*Im5=i-R#HB^V*hp8ZW!vlvb&$S|01_pwH> zF7;p9N3dV7@DW{=+4WEDesN<5{|8V`yQFT<tS~jhDxM=LAr8e`}2G$qS3(W6xYKgnKaY zu@mZ;h>}QsHvAeL?Mg8+Ir4TtCI{iX5V1d^ZwfzQIXBYdeL*7TB=Rl0=2I2u$^Jv^66H~) z(jp>(-aWA_yN`a;z3VN3>W2J54!Ws82pb6wshdAH1hz6AI%XdkNC7ZV)8R1!@LtRY zM-=`F4BQxm{3o+$wl!vS*MpFXHFF&A*t+XIJbG1bZh}7d#{x&jhx^y4{P4C;nsLx@ z$Y%<8&)+G*atQ`wD0^?6@K68MzN~u-WRS0LpQA22Ke*-XhC)Ho*`0>&@|>@h@W*(y zbLgQI&V9a&-!9&>IPH4tn`&wB-y)R;H9Q$EV5M!lHP3T~ciE|&sBwAk9;-zOz$ zxi)q!cTzjU0;|d#*42?D*36Eei-MT7#>NF7uZq&hXR+Dt+?i9@jbg<7e73Ty^QS5U zOvZh_^lR{<2P2Z{W6QAsn_&~!fZstzRiEUw4QGC@8R(kmr*xr3c&D0l+{&uLGpzaRYnx@yEiTt1ccB}8#dtc=@$E(?LPElYMh~jF3Zw9o&IgI<3U)r5 zY=YRq9I~hs_UW#e#~?+0gOsj(B_0?uli^H(UqofNt6HdE`pt~y#@mK~Vl`hbJ35A1 z-}xjjy3yEl0_r?lI4>lhN6)>w2>9aX$9G*Oj>{W%=B{pDEA4u+N{C36l9Smh@$u>1 z^|vZ;JXmg0URfFDe?@6k{2D#IJ6P_I_^ECXvx`ms*<+=u#q@4Q?U2 zAlyM(fg4`c-E0X}RsQP}@h|v{s_UC!Q3I?DQrBE$$D}^U6=eK@df|PgKjKJ+f^mR5 znSo;L9iC?$r4^k{NUi{QBgQ*p4L6=Q{A^v8`(GiUKe6oBR5=*pzEF8u0HbC@adECC z3dQzyxjs?U#O|r#jKm`v%@=E}ov#1s*{$GtnwIyQ2d&tL4@<8*zeN;Db;S)wK}lYG zcD0YM#?RKbJo20D=#0dU)A6erVbgD=}1^3lKT2qH8pehKh=cdaxEP0g?TnN+VX!*G5d& zoRGiq%>rjb*dlF;C1O?ki1|K3P*9s^!NEKG3FdZZbpt`#Z6Ge-XYe$=R*0+{DTX9z zGqRI|%&QCOP`1Z(sTU7v*CQ(l>1~pWL0>uP`R7gF$8n<9f3DaK0krH%d6f$usm6Jn`yadY&m9h*m*oeAgH#iqDfNY6<$4kI%kPyS{PyGZU` zpALsy_&8yj0!{S{AIE5-W_gvxJR!!)fGRP|Q*+>npJGtRlB(I_*tlQ^XIi51RXC46 z!`57Dc&<-Q3>U70hh*Xy-yjJ6F$5Q1kepBavdwwu8^C7$`bCNo`8G{kOOW57?AlE6 zBU?`M`8z`s<@L83vp0&>+(G=$p#Tc+!hFA2-hYN31Z$IvL5=Fz7aonB6;}6?-8c9)BOd4aNGq#q^7pz9WdcYxv+;Ghxl)sqP4gzFw^t?KNi7% zkdWXKV<1t~M%f#Qawo?J<}%|t3?BjOpcW3%wIZ2J0?gJc^vmYF*ZH^R+nO=G%g7Dt zJ8mezs`sKsIUd*l9LiK}=-D}->+XJS_HoTG1C2-Pu>FlCO#l~nLnv`^9(WqG4M`_)QyruZ&Ltc%uRcBCdcF@wx4QjVB6hID8cL@r;Snlxwz$dK; z0}|(`pZ(FHd3%j0)C{LqkRM}BDFn>GH9pqP1$41z?bcUD_ttqzFUs$d-feU>XbRT7 zCX>6#9!M{{C~}%XxT}^l^71y39HIvKwmA(SR;aPeHtY*-LbU&UI~B}r*|GXzNonUX zghK=&*4Ith$rii#D&Jfn#@ZrlLlnp^l@_q79M{|%m~=X?z1los$?tYa_^hM{bbFpb zNg_zz>gyIEf7;@8j?L*!*9>FgV3KkxsMbo?&P4f|Ax%>+L&LMgD`%BS_oLn}Chg~2 zu1xl4{TiOsG?|xDJz(l|{Y#Ks_NykB8!E!nR`CoTcn?u=Dm54s^eWJ8qF9dd13A@M z!@9_z5*%Ts~BqlUzUE2CK zl^b2*DgMxDA;|OSS4-V-Vsq%G;`_Mx2JL(|0rKMzZ^-1JoS6kJ0r#ceWLMDgn3a*; zrTbV+Lb(3iYtL{mW0ah8**+%tClwn{tcs zU{IsixzNHHUOtIa{ z`TfL4mL~+us)j++GU-q3Ia$OE_}Qx@e(@g+>j6W7p!$yxgf|+xfX6kTQReW;02n(q z`HeG+-(xk8rutce@gquL*02+jV>|z2Ca0}UmN4uo)Tq@=hSP zR*}9tXA}=K*SV?-R2Q_daTmE>5bu=Eoy6G#A#(zf#-eaQh1bOIj*L>D2vADGthB;~ zXG|f|JZ85}%?9AVlkXvxhU(x-eAvhEazl?`x$UR zX5L4~#|W6RMhwOfjmNpO$fU!Fbl$UV--w*AruiYa87r`E!&Y&gSUNlAm--Wq3z3_b z{>Q)kvs_XcV^&xaqQ2tE>uQ&0I!TZv4oEuK`K&Bj`VrLZSv~e$YUj=Syt=m|`_2?O zSNp--h-M$oAo1PGpQp=kE+F8{4+(~CKUO~0CSvB|e8?aW7$^TRC_+~eTy_laa;M`2 zlgtubq}mn&188A!2@wp?y>(8u!Kp%|BZBk%q-=wi!;~q9P9a*10L^xd6jK7Z#4F`e;Oen|>Ollew}aUs_>`Hq zBOG9BpMIpORM&oxEE3Gk1a7-~B);OOyVJoio>zg48COll1%TRj-p}-x|L#AX(k^ygO4}w^5|gQkw7}S(@Qxa_YzZ`hK&K^;;eTmc z0;a!Y_&c4h6Khv*9P{L3Q+7eP%2RH!Tb)?|Q4ez6$L1wR3M)#gmvXY!a% z#Zk|YB~TfaMA!N)feZ+gECCTI%U{V75NVlIRaUS4=!5y={ylxpN$|Nna#lbS5j{VW z_$^_sP0Y1#;|%lH+BhM?Hf_`B2V#?>o+ThQ-%o3EDK!Nje-TeTN3H-0`w3+ByXxbw zE)%^=sfGNR`g8M_D~Ia*yz|q>jeK@yVPSDKgd@MyMi+L!Z{Re!MlxanSPAi70|2cm zbI=w4-mx>eZPTBUTE%oWTTIOrMca9Ql>j_#0M!rggfBNPH%ue_ku#{cL9c zC1f-Tdu7FKcQnh4dBS8iHFGyd#uA7|r3On7BugL|(Y4E5t0izbU3t0LXWxJP!6{#z z$<42XU+Kke5AQ~oIs<^1hY|=_Fa!YM%8~7wjGl7kxTejc?lGB7@qwn3>7*d-LXz${ zg$|cD>rp43+_Rw2K+}a{mztX^rl(SS{_~HJr5>6KDc~7XC&ofeHvXEP<+$N`i$$Cd&M& z!%=f6?{vYJvp)Q4>CZoGEQYkJQ|rplwkQ~+6$DaXuz3EO6EkD%6Q&KitWB?^;ZZSR zgUuFG3aHnKY_J5{K_JavSpT3|0_v=B<&<0~Tf2YH(G?%OId4yH_Sq`<6<$2ED^~hi zQGT{H!6F_I@Bl%OIZE#oZ@=xiK5bifZ{D|2Ttp9BxV59%WQrvO_D~+k+h7UUYYBe- z@2Xri^n6ui_5R|blHU*haeVWCKUsSC*q^6ZrRN##m1cT_uKa9Ef=Rp}5Q9Mu2mv68 zO^&t>zPnR=n_fxDu}RS>5z%1@ws1>~*=&v=gjfkccobgPsZ2F}E00A=BJo=}(7E|4 zJ%_y~R$S>(Sx^&6FiL|!4lvTs@$!|l9F$V(aMrlWt12DE<)sz*=gt)69N2R-_lG6x z&z(D4=zz3x%PGE+(uZ96g%S@gDS?3f%qqWk3W)zIDLaqC|78Fm_dF#f);i)Vfvkaylag}sS_HM<$vrD%R2ND@ z6z&m?_ZpPGZb(jHd6isF@#XG?jOtQhh{`>!pX<6k|4YPU4R}8*-3vL@2Zd1s0?&1Q zYR~@yQO^53u1%dNzL)Bg!e~|M1`yN@@hZRG`?X5-Raw;PRbT7aOL|L9qEz P00000NkvXXu0mjf0?Qky literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/values-night/styles.xml b/android/app/src/main/res/values-night/styles.xml new file mode 100644 index 0000000..06952be --- /dev/null +++ b/android/app/src/main/res/values-night/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..cb1ef88 --- /dev/null +++ b/android/app/src/main/res/values/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/android/app/src/profile/AndroidManifest.xml b/android/app/src/profile/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/android/app/src/profile/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/android/build.gradle b/android/build.gradle new file mode 100644 index 0000000..4a8b468 --- /dev/null +++ b/android/build.gradle @@ -0,0 +1,19 @@ +allprojects { + ext.kotlin_version = '2.0.20' + repositories { + google() + mavenCentral() + } +} + +rootProject.buildDir = "../build" +subprojects { + project.buildDir = "${rootProject.buildDir}/${project.name}" +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean", Delete) { + delete rootProject.buildDir +} diff --git a/android/gradle.properties b/android/gradle.properties new file mode 100644 index 0000000..4f432d5 --- /dev/null +++ b/android/gradle.properties @@ -0,0 +1,6 @@ +org.gradle.jvmargs=-Xmx4G -XX:+HeapDumpOnOutOfMemoryError +android.useAndroidX=true +android.enableJetifier=true +org.gradle.java.home=C:\\Program Files\\Java\\jdk-17 +kotlin.version=2.0.0 + diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..e1ca574 --- /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-7.6.3-all.zip diff --git a/android/settings.gradle b/android/settings.gradle new file mode 100644 index 0000000..4905f4a --- /dev/null +++ b/android/settings.gradle @@ -0,0 +1,25 @@ +pluginManagement { + def flutterSdkPath = { + def properties = new Properties() + file("local.properties").withInputStream { properties.load(it) } + def flutterSdkPath = properties.getProperty("flutter.sdk") + assert flutterSdkPath != null, "flutter.sdk not set in local.properties" + return 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 "7.3.0" apply false + id "org.jetbrains.kotlin.android" version "2.0.20" apply false +} + +include ":app" diff --git a/cache.dart b/cache.dart new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/cache.dart @@ -0,0 +1 @@ + diff --git a/devtools_options.yaml b/devtools_options.yaml new file mode 100644 index 0000000..fa0b357 --- /dev/null +++ b/devtools_options.yaml @@ -0,0 +1,3 @@ +description: This file stores settings for Dart & Flutter DevTools. +documentation: https://docs.flutter.dev/tools/devtools/extensions#configure-extension-enablement-states +extensions: diff --git a/fonts/GabrielaStencil-Bold.ttf b/fonts/GabrielaStencil-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..636a57bc3774adaa150c33e0408671ec7e96c1d1 GIT binary patch literal 112984 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