From 8655e0321230d551ccc820580be61a364e674b5c Mon Sep 17 00:00:00 2001 From: Shash0501 Date: Thu, 25 Apr 2024 20:27:21 +0530 Subject: [PATCH 1/2] Initialise new project --- cping-old/.gitignore | 50 + .../executionHistory/executionHistory.lock | Bin .../.gradle/6.1.1/fileChanges/last-build.bin | Bin .../.gradle/6.1.1/fileHashes/fileHashes.lock | Bin .../.gradle/6.1.1/gc.properties | 0 .../buildOutputCleanup.lock | Bin .../buildOutputCleanup/cache.properties | 0 .../.gradle/checksums/checksums.lock | Bin .../.gradle/vcs-1/gc.properties | 0 cping-old/.metadata | 10 + cping-old/analysis_options.yaml | 29 + cping-old/android/.gitignore | 13 + .../.gradle/6.7/fileHashes/fileHashes.lock | Bin .../buildOutputCleanup.lock | Bin .../buildOutputCleanup/cache.properties | 0 .../android/.gradle/checksums/checksums.lock | Bin .../.gradle/checksums/md5-checksums.bin | Bin .../.gradle/checksums/sha1-checksums.bin | Bin {cping => cping-old}/android/android/gradlew | 0 .../android/android/gradlew.bat | 0 .../android/android/local.properties | 0 cping-old/android/app/build.gradle | 78 ++ .../android/app/google-services.json | 0 .../android/app/release-key.keystore | Bin .../android/app/src/debug/AndroidManifest.xml | 7 + .../com/kid116sashank/cp_ing/BuildConfig.java | 0 .../android/app/src/main/AndroidManifest.xml | 47 + .../com/kid116sashank/cp_ing/BuildConfig.java | 0 .../com/neumannics/cping/MainActivity.java | 0 .../res/drawable-v21/launch_background.xml | 12 + .../main/res/drawable/launch_background.xml | 12 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 0 .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 2896 bytes .../mipmap-hdpi/ic_launcher_adaptive_back.png | Bin .../mipmap-hdpi/ic_launcher_adaptive_fore.png | Bin .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1476 bytes .../mipmap-mdpi/ic_launcher_adaptive_back.png | Bin .../mipmap-mdpi/ic_launcher_adaptive_fore.png | Bin .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 3883 bytes .../ic_launcher_adaptive_back.png | Bin .../ic_launcher_adaptive_fore.png | Bin .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 7124 bytes .../ic_launcher_adaptive_back.png | Bin .../ic_launcher_adaptive_fore.png | Bin .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 9547 bytes .../ic_launcher_adaptive_back.png | Bin .../ic_launcher_adaptive_fore.png | Bin .../app/src/main/res/values-night/styles.xml | 18 + .../app/src/main/res/values/styles.xml | 18 + .../app/src/profile/AndroidManifest.xml | 7 + .../com/kid116sashank/cp_ing/BuildConfig.java | 0 cping-old/android/build.gradle | 35 + .../gradle/wrapper/gradle-wrapper.properties | 5 + .../android/ios/Flutter/Generated.xcconfig | 0 .../ios/Flutter/flutter_export_environment.sh | 0 .../ios/Runner/GeneratedPluginRegistrant.h | 0 .../ios/Runner/GeneratedPluginRegistrant.m | 0 cping-old/android/settings.gradle | 11 + .../assets/images/atcoder_icon.png | Bin {cping => cping-old}/assets/images/bg_one.jpg | Bin {cping => cping-old}/assets/images/bg_two.jpg | Bin .../assets/images/cc_icon.png | Bin .../assets/images/codechef_icon.png | Bin .../assets/images/codeforces_icon.png | Bin {cping => cping-old}/assets/images/cp_ing.png | Bin {cping => cping-old}/assets/images/empty.png | Bin {cping => cping-old}/assets/images/empty.svg | 0 {cping => cping-old}/assets/images/error.png | Bin {cping => cping-old}/assets/images/google.png | Bin {cping => cping-old}/assets/images/robot.png | Bin .../lib/blocs/authentication/bloc.dart | 0 .../lib/blocs/authentication/event.dart | 0 .../lib/blocs/authentication/state.dart | 0 .../lib/blocs/website/bloc.dart | 0 .../lib/blocs/website/event.dart | 0 .../lib/blocs/website/state.dart | 0 {cping => cping-old}/lib/calendar/client.dart | 0 {cping => cping-old}/lib/config/colors.dart | 0 {cping => cping-old}/lib/config/theme.dart | 0 {cping => cping-old}/lib/firestore/cache.dart | 0 .../lib/firestore/user_data.dart | 0 cping-old/lib/main.dart | 57 ++ {cping => cping-old}/lib/models/contest.dart | 0 {cping => cping-old}/lib/pages/home.dart | 0 {cping => cping-old}/lib/pages/sign_in.dart | 0 {cping => cping-old}/lib/pages/website.dart | 0 .../lib/repositories/website.dart | 0 .../lib/widgets/contest_card.dart | 0 {cping => cping-old}/local.properties | 0 cping-old/pubspec.lock | 962 ++++++++++++++++++ cping-old/pubspec.yaml | 105 ++ cping/.gitignore | 9 +- cping/.metadata | 39 +- cping/README.md | 16 + cping/analysis_options.yaml | 3 +- cping/android/.gitignore | 4 +- cping/android/app/build.gradle | 63 +- .../android/app/src/debug/AndroidManifest.xml | 6 +- .../android/app/src/main/AndroidManifest.xml | 39 +- .../kotlin/com/example/cping/MainActivity.kt | 5 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 2896 -> 544 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 1476 -> 442 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 3883 -> 721 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 7124 -> 1031 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 9547 -> 1443 bytes .../app/src/main/res/values-night/styles.xml | 4 +- .../app/src/main/res/values/styles.xml | 4 +- .../app/src/profile/AndroidManifest.xml | 6 +- cping/android/build.gradle | 25 +- cping/android/gradle.properties | 5 +- .../gradle/wrapper/gradle-wrapper.properties | 2 +- cping/android/settings.gradle | 31 +- cping/ios/.gitignore | 34 + cping/ios/Flutter/AppFrameworkInfo.plist | 26 + cping/ios/Flutter/Debug.xcconfig | 1 + cping/ios/Flutter/Release.xcconfig | 1 + cping/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 + cping/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 + .../Runner/Base.lproj/LaunchScreen.storyboard | 37 + cping/ios/Runner/Base.lproj/Main.storyboard | 26 + cping/ios/Runner/Info.plist | 49 + cping/ios/Runner/Runner-Bridging-Header.h | 1 + cping/ios/RunnerTests/RunnerTests.swift | 12 + cping/lib/main.dart | 156 ++- cping/linux/.gitignore | 1 + cping/linux/CMakeLists.txt | 145 +++ cping/linux/flutter/CMakeLists.txt | 88 ++ .../flutter/generated_plugin_registrant.cc | 11 + .../flutter/generated_plugin_registrant.h | 15 + cping/linux/flutter/generated_plugins.cmake | 23 + cping/linux/main.cc | 6 + cping/linux/my_application.cc | 124 +++ cping/linux/my_application.h | 18 + cping/macos/.gitignore | 7 + cping/macos/Flutter/Flutter-Debug.xcconfig | 1 + cping/macos/Flutter/Flutter-Release.xcconfig | 1 + .../Flutter/GeneratedPluginRegistrant.swift | 10 + cping/macos/Runner.xcodeproj/project.pbxproj | 705 +++++++++++++ .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 98 ++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + cping/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 cping/macos/Runner/Base.lproj/MainMenu.xib | 343 +++++++ cping/macos/Runner/Configs/AppInfo.xcconfig | 14 + cping/macos/Runner/Configs/Debug.xcconfig | 2 + cping/macos/Runner/Configs/Release.xcconfig | 2 + cping/macos/Runner/Configs/Warnings.xcconfig | 13 + cping/macos/Runner/DebugProfile.entitlements | 12 + cping/macos/Runner/Info.plist | 32 + cping/macos/Runner/MainFlutterWindow.swift | 15 + cping/macos/Runner/Release.entitlements | 8 + cping/macos/RunnerTests/RunnerTests.swift | 12 + cping/pubspec.lock | 776 ++------------ cping/pubspec.yaml | 51 +- cping/test/widget_test.dart | 30 + cping/web/favicon.png | Bin 0 -> 917 bytes cping/web/icons/Icon-192.png | Bin 0 -> 5292 bytes cping/web/icons/Icon-512.png | Bin 0 -> 8252 bytes cping/web/icons/Icon-maskable-192.png | Bin 0 -> 5594 bytes cping/web/icons/Icon-maskable-512.png | Bin 0 -> 20998 bytes cping/web/index.html | 59 ++ cping/web/manifest.json | 35 + cping/windows/.gitignore | 17 + cping/windows/CMakeLists.txt | 108 ++ cping/windows/flutter/CMakeLists.txt | 109 ++ .../flutter/generated_plugin_registrant.cc | 11 + .../flutter/generated_plugin_registrant.h | 15 + cping/windows/flutter/generated_plugins.cmake | 23 + cping/windows/runner/CMakeLists.txt | 40 + cping/windows/runner/Runner.rc | 121 +++ cping/windows/runner/flutter_window.cpp | 71 ++ cping/windows/runner/flutter_window.h | 33 + cping/windows/runner/main.cpp | 43 + cping/windows/runner/resource.h | 16 + cping/windows/runner/resources/app_icon.ico | Bin 0 -> 33772 bytes cping/windows/runner/runner.exe.manifest | 20 + cping/windows/runner/utils.cpp | 65 ++ cping/windows/runner/utils.h | 19 + cping/windows/runner/win32_window.cpp | 288 ++++++ cping/windows/runner/win32_window.h | 102 ++ 217 files changed, 5974 insertions(+), 887 deletions(-) create mode 100644 cping-old/.gitignore rename {cping => cping-old}/.gradle/6.1.1/executionHistory/executionHistory.lock (100%) rename {cping => cping-old}/.gradle/6.1.1/fileChanges/last-build.bin (100%) rename {cping => cping-old}/.gradle/6.1.1/fileHashes/fileHashes.lock (100%) rename {cping => cping-old}/.gradle/6.1.1/gc.properties (100%) rename {cping => cping-old}/.gradle/buildOutputCleanup/buildOutputCleanup.lock (100%) rename {cping => cping-old}/.gradle/buildOutputCleanup/cache.properties (100%) rename {cping => cping-old}/.gradle/checksums/checksums.lock (100%) rename {cping => cping-old}/.gradle/vcs-1/gc.properties (100%) create mode 100644 cping-old/.metadata create mode 100644 cping-old/analysis_options.yaml create mode 100644 cping-old/android/.gitignore rename {cping => cping-old}/android/android/.gradle/6.7/fileHashes/fileHashes.lock (100%) rename {cping => cping-old}/android/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock (100%) rename {cping => cping-old}/android/android/.gradle/buildOutputCleanup/cache.properties (100%) rename {cping => cping-old}/android/android/.gradle/checksums/checksums.lock (100%) rename {cping => cping-old}/android/android/.gradle/checksums/md5-checksums.bin (100%) rename {cping => cping-old}/android/android/.gradle/checksums/sha1-checksums.bin (100%) rename {cping => cping-old}/android/android/gradlew (100%) rename {cping => cping-old}/android/android/gradlew.bat (100%) rename {cping => cping-old}/android/android/local.properties (100%) create mode 100644 cping-old/android/app/build.gradle rename {cping => cping-old}/android/app/google-services.json (100%) rename {cping => cping-old}/android/app/release-key.keystore (100%) create mode 100644 cping-old/android/app/src/debug/AndroidManifest.xml rename {cping => cping-old}/android/app/src/debug/gen/com/kid116sashank/cp_ing/BuildConfig.java (100%) create mode 100644 cping-old/android/app/src/main/AndroidManifest.xml rename {cping => cping-old}/android/app/src/main/gen/com/kid116sashank/cp_ing/BuildConfig.java (100%) rename {cping => cping-old}/android/app/src/main/java/com/neumannics/cping/MainActivity.java (100%) create mode 100644 cping-old/android/app/src/main/res/drawable-v21/launch_background.xml create mode 100644 cping-old/android/app/src/main/res/drawable/launch_background.xml rename {cping => cping-old}/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml (100%) create mode 100644 cping-old/android/app/src/main/res/mipmap-hdpi/ic_launcher.png rename {cping => cping-old}/android/app/src/main/res/mipmap-hdpi/ic_launcher_adaptive_back.png (100%) rename {cping => cping-old}/android/app/src/main/res/mipmap-hdpi/ic_launcher_adaptive_fore.png (100%) create mode 100644 cping-old/android/app/src/main/res/mipmap-mdpi/ic_launcher.png rename {cping => cping-old}/android/app/src/main/res/mipmap-mdpi/ic_launcher_adaptive_back.png (100%) rename {cping => cping-old}/android/app/src/main/res/mipmap-mdpi/ic_launcher_adaptive_fore.png (100%) create mode 100644 cping-old/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png rename {cping => cping-old}/android/app/src/main/res/mipmap-xhdpi/ic_launcher_adaptive_back.png (100%) rename {cping => cping-old}/android/app/src/main/res/mipmap-xhdpi/ic_launcher_adaptive_fore.png (100%) create mode 100644 cping-old/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png rename {cping => cping-old}/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_adaptive_back.png (100%) rename {cping => cping-old}/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_adaptive_fore.png (100%) create mode 100644 cping-old/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png rename {cping => cping-old}/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_adaptive_back.png (100%) rename {cping => cping-old}/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_adaptive_fore.png (100%) create mode 100644 cping-old/android/app/src/main/res/values-night/styles.xml create mode 100644 cping-old/android/app/src/main/res/values/styles.xml create mode 100644 cping-old/android/app/src/profile/AndroidManifest.xml rename {cping => cping-old}/android/app/src/profile/gen/com/kid116sashank/cp_ing/BuildConfig.java (100%) create mode 100644 cping-old/android/build.gradle create mode 100644 cping-old/android/gradle/wrapper/gradle-wrapper.properties rename {cping => cping-old}/android/ios/Flutter/Generated.xcconfig (100%) rename {cping => cping-old}/android/ios/Flutter/flutter_export_environment.sh (100%) rename {cping => cping-old}/android/ios/Runner/GeneratedPluginRegistrant.h (100%) rename {cping => cping-old}/android/ios/Runner/GeneratedPluginRegistrant.m (100%) create mode 100644 cping-old/android/settings.gradle rename {cping => cping-old}/assets/images/atcoder_icon.png (100%) rename {cping => cping-old}/assets/images/bg_one.jpg (100%) rename {cping => cping-old}/assets/images/bg_two.jpg (100%) rename {cping => cping-old}/assets/images/cc_icon.png (100%) rename {cping => cping-old}/assets/images/codechef_icon.png (100%) rename {cping => cping-old}/assets/images/codeforces_icon.png (100%) rename {cping => cping-old}/assets/images/cp_ing.png (100%) rename {cping => cping-old}/assets/images/empty.png (100%) rename {cping => cping-old}/assets/images/empty.svg (100%) rename {cping => cping-old}/assets/images/error.png (100%) rename {cping => cping-old}/assets/images/google.png (100%) rename {cping => cping-old}/assets/images/robot.png (100%) rename {cping => cping-old}/lib/blocs/authentication/bloc.dart (100%) rename {cping => cping-old}/lib/blocs/authentication/event.dart (100%) rename {cping => cping-old}/lib/blocs/authentication/state.dart (100%) rename {cping => cping-old}/lib/blocs/website/bloc.dart (100%) rename {cping => cping-old}/lib/blocs/website/event.dart (100%) rename {cping => cping-old}/lib/blocs/website/state.dart (100%) rename {cping => cping-old}/lib/calendar/client.dart (100%) rename {cping => cping-old}/lib/config/colors.dart (100%) rename {cping => cping-old}/lib/config/theme.dart (100%) rename {cping => cping-old}/lib/firestore/cache.dart (100%) rename {cping => cping-old}/lib/firestore/user_data.dart (100%) create mode 100644 cping-old/lib/main.dart rename {cping => cping-old}/lib/models/contest.dart (100%) rename {cping => cping-old}/lib/pages/home.dart (100%) rename {cping => cping-old}/lib/pages/sign_in.dart (100%) rename {cping => cping-old}/lib/pages/website.dart (100%) rename {cping => cping-old}/lib/repositories/website.dart (100%) rename {cping => cping-old}/lib/widgets/contest_card.dart (100%) rename {cping => cping-old}/local.properties (100%) create mode 100644 cping-old/pubspec.lock create mode 100644 cping-old/pubspec.yaml create mode 100644 cping/README.md create mode 100644 cping/android/app/src/main/kotlin/com/example/cping/MainActivity.kt create mode 100644 cping/ios/.gitignore create mode 100644 cping/ios/Flutter/AppFrameworkInfo.plist create mode 100644 cping/ios/Flutter/Debug.xcconfig create mode 100644 cping/ios/Flutter/Release.xcconfig create mode 100644 cping/ios/Runner.xcodeproj/project.pbxproj create mode 100644 cping/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 cping/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 cping/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 cping/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 cping/ios/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 cping/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 cping/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 cping/ios/Runner/AppDelegate.swift create mode 100644 cping/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 cping/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png create mode 100644 cping/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png create mode 100644 cping/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png create mode 100644 cping/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png create mode 100644 cping/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png create mode 100644 cping/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png create mode 100644 cping/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png create mode 100644 cping/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png create mode 100644 cping/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png create mode 100644 cping/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png create mode 100644 cping/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png create mode 100644 cping/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png create mode 100644 cping/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png create mode 100644 cping/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png create mode 100644 cping/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png create mode 100644 cping/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json create mode 100644 cping/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png create mode 100644 cping/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png create mode 100644 cping/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png create mode 100644 cping/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md create mode 100644 cping/ios/Runner/Base.lproj/LaunchScreen.storyboard create mode 100644 cping/ios/Runner/Base.lproj/Main.storyboard create mode 100644 cping/ios/Runner/Info.plist create mode 100644 cping/ios/Runner/Runner-Bridging-Header.h create mode 100644 cping/ios/RunnerTests/RunnerTests.swift create mode 100644 cping/linux/.gitignore create mode 100644 cping/linux/CMakeLists.txt create mode 100644 cping/linux/flutter/CMakeLists.txt create mode 100644 cping/linux/flutter/generated_plugin_registrant.cc create mode 100644 cping/linux/flutter/generated_plugin_registrant.h create mode 100644 cping/linux/flutter/generated_plugins.cmake create mode 100644 cping/linux/main.cc create mode 100644 cping/linux/my_application.cc create mode 100644 cping/linux/my_application.h create mode 100644 cping/macos/.gitignore create mode 100644 cping/macos/Flutter/Flutter-Debug.xcconfig create mode 100644 cping/macos/Flutter/Flutter-Release.xcconfig create mode 100644 cping/macos/Flutter/GeneratedPluginRegistrant.swift create mode 100644 cping/macos/Runner.xcodeproj/project.pbxproj create mode 100644 cping/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 cping/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 cping/macos/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 cping/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 cping/macos/Runner/AppDelegate.swift create mode 100644 cping/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 cping/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png create mode 100644 cping/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png create mode 100644 cping/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png create mode 100644 cping/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png create mode 100644 cping/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png create mode 100644 cping/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png create mode 100644 cping/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png create mode 100644 cping/macos/Runner/Base.lproj/MainMenu.xib create mode 100644 cping/macos/Runner/Configs/AppInfo.xcconfig create mode 100644 cping/macos/Runner/Configs/Debug.xcconfig create mode 100644 cping/macos/Runner/Configs/Release.xcconfig create mode 100644 cping/macos/Runner/Configs/Warnings.xcconfig create mode 100644 cping/macos/Runner/DebugProfile.entitlements create mode 100644 cping/macos/Runner/Info.plist create mode 100644 cping/macos/Runner/MainFlutterWindow.swift create mode 100644 cping/macos/Runner/Release.entitlements create mode 100644 cping/macos/RunnerTests/RunnerTests.swift create mode 100644 cping/test/widget_test.dart create mode 100644 cping/web/favicon.png create mode 100644 cping/web/icons/Icon-192.png create mode 100644 cping/web/icons/Icon-512.png create mode 100644 cping/web/icons/Icon-maskable-192.png create mode 100644 cping/web/icons/Icon-maskable-512.png create mode 100644 cping/web/index.html create mode 100644 cping/web/manifest.json create mode 100644 cping/windows/.gitignore create mode 100644 cping/windows/CMakeLists.txt create mode 100644 cping/windows/flutter/CMakeLists.txt create mode 100644 cping/windows/flutter/generated_plugin_registrant.cc create mode 100644 cping/windows/flutter/generated_plugin_registrant.h create mode 100644 cping/windows/flutter/generated_plugins.cmake create mode 100644 cping/windows/runner/CMakeLists.txt create mode 100644 cping/windows/runner/Runner.rc create mode 100644 cping/windows/runner/flutter_window.cpp create mode 100644 cping/windows/runner/flutter_window.h create mode 100644 cping/windows/runner/main.cpp create mode 100644 cping/windows/runner/resource.h create mode 100644 cping/windows/runner/resources/app_icon.ico create mode 100644 cping/windows/runner/runner.exe.manifest create mode 100644 cping/windows/runner/utils.cpp create mode 100644 cping/windows/runner/utils.h create mode 100644 cping/windows/runner/win32_window.cpp create mode 100644 cping/windows/runner/win32_window.h diff --git a/cping-old/.gitignore b/cping-old/.gitignore new file mode 100644 index 0000000..544fe57 --- /dev/null +++ b/cping-old/.gitignore @@ -0,0 +1,50 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +**/ios/Flutter/.last_build_id +.dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies +.packages +.pub-cache/ +.pub/ +/build/ + +# Web related +lib/generated_plugin_registrant.dart + +# Symbolication related +app.*.symbols + +# Obfuscation related +app.*.map.json + +# Android Studio will place build artifacts here +/android/app/debug +/android/app/profile +/android/app/release + +.fvm/ + +/android/gradle.properties \ No newline at end of file diff --git a/cping/.gradle/6.1.1/executionHistory/executionHistory.lock b/cping-old/.gradle/6.1.1/executionHistory/executionHistory.lock similarity index 100% rename from cping/.gradle/6.1.1/executionHistory/executionHistory.lock rename to cping-old/.gradle/6.1.1/executionHistory/executionHistory.lock diff --git a/cping/.gradle/6.1.1/fileChanges/last-build.bin b/cping-old/.gradle/6.1.1/fileChanges/last-build.bin similarity index 100% rename from cping/.gradle/6.1.1/fileChanges/last-build.bin rename to cping-old/.gradle/6.1.1/fileChanges/last-build.bin diff --git a/cping/.gradle/6.1.1/fileHashes/fileHashes.lock b/cping-old/.gradle/6.1.1/fileHashes/fileHashes.lock similarity index 100% rename from cping/.gradle/6.1.1/fileHashes/fileHashes.lock rename to cping-old/.gradle/6.1.1/fileHashes/fileHashes.lock diff --git a/cping/.gradle/6.1.1/gc.properties b/cping-old/.gradle/6.1.1/gc.properties similarity index 100% rename from cping/.gradle/6.1.1/gc.properties rename to cping-old/.gradle/6.1.1/gc.properties diff --git a/cping/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/cping-old/.gradle/buildOutputCleanup/buildOutputCleanup.lock similarity index 100% rename from cping/.gradle/buildOutputCleanup/buildOutputCleanup.lock rename to cping-old/.gradle/buildOutputCleanup/buildOutputCleanup.lock diff --git a/cping/.gradle/buildOutputCleanup/cache.properties b/cping-old/.gradle/buildOutputCleanup/cache.properties similarity index 100% rename from cping/.gradle/buildOutputCleanup/cache.properties rename to cping-old/.gradle/buildOutputCleanup/cache.properties diff --git a/cping/.gradle/checksums/checksums.lock b/cping-old/.gradle/checksums/checksums.lock similarity index 100% rename from cping/.gradle/checksums/checksums.lock rename to cping-old/.gradle/checksums/checksums.lock diff --git a/cping/.gradle/vcs-1/gc.properties b/cping-old/.gradle/vcs-1/gc.properties similarity index 100% rename from cping/.gradle/vcs-1/gc.properties rename to cping-old/.gradle/vcs-1/gc.properties diff --git a/cping-old/.metadata b/cping-old/.metadata new file mode 100644 index 0000000..0301ca1 --- /dev/null +++ b/cping-old/.metadata @@ -0,0 +1,10 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: 0b5d99eae6174b54ecca0a3fef6ba69228adc552 + channel: master + +project_type: app diff --git a/cping-old/analysis_options.yaml b/cping-old/analysis_options.yaml new file mode 100644 index 0000000..61b6c4d --- /dev/null +++ b/cping-old/analysis_options.yaml @@ -0,0 +1,29 @@ +# This file configures the analyzer, which statically analyzes Dart code to +# check for errors, warnings, and lints. +# +# The issues identified by the analyzer are surfaced in the UI of Dart-enabled +# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be +# invoked from the command line by running `flutter analyze`. + +# The following line activates a set of recommended lints for Flutter apps, +# packages, and plugins designed to encourage good coding practices. +include: package:flutter_lints/flutter.yaml + +linter: + # The lint rules applied to this project can be customized in the + # section below to disable rules from the `package:flutter_lints/flutter.yaml` + # included above or to enable additional rules. A list of all available lints + # and their documentation is published at + # https://dart-lang.github.io/linter/lints/index.html. + # + # Instead of disabling a lint rule for the entire project in the + # section below, it can also be suppressed for a single line of code + # or a specific dart file by using the `// ignore: name_of_lint` and + # `// ignore_for_file: name_of_lint` syntax on the line or in the file + # producing the lint. + rules: + # avoid_print: false # Uncomment to disable the `avoid_print` rule + # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule + +# Additional information about this file can be found at +# https://dart.dev/guides/language/analysis-options diff --git a/cping-old/android/.gitignore b/cping-old/android/.gitignore new file mode 100644 index 0000000..606f576 --- /dev/null +++ b/cping-old/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 \ No newline at end of file diff --git a/cping/android/android/.gradle/6.7/fileHashes/fileHashes.lock b/cping-old/android/android/.gradle/6.7/fileHashes/fileHashes.lock similarity index 100% rename from cping/android/android/.gradle/6.7/fileHashes/fileHashes.lock rename to cping-old/android/android/.gradle/6.7/fileHashes/fileHashes.lock diff --git a/cping/android/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/cping-old/android/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock similarity index 100% rename from cping/android/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock rename to cping-old/android/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock diff --git a/cping/android/android/.gradle/buildOutputCleanup/cache.properties b/cping-old/android/android/.gradle/buildOutputCleanup/cache.properties similarity index 100% rename from cping/android/android/.gradle/buildOutputCleanup/cache.properties rename to cping-old/android/android/.gradle/buildOutputCleanup/cache.properties diff --git a/cping/android/android/.gradle/checksums/checksums.lock b/cping-old/android/android/.gradle/checksums/checksums.lock similarity index 100% rename from cping/android/android/.gradle/checksums/checksums.lock rename to cping-old/android/android/.gradle/checksums/checksums.lock diff --git a/cping/android/android/.gradle/checksums/md5-checksums.bin b/cping-old/android/android/.gradle/checksums/md5-checksums.bin similarity index 100% rename from cping/android/android/.gradle/checksums/md5-checksums.bin rename to cping-old/android/android/.gradle/checksums/md5-checksums.bin diff --git a/cping/android/android/.gradle/checksums/sha1-checksums.bin b/cping-old/android/android/.gradle/checksums/sha1-checksums.bin similarity index 100% rename from cping/android/android/.gradle/checksums/sha1-checksums.bin rename to cping-old/android/android/.gradle/checksums/sha1-checksums.bin diff --git a/cping/android/android/gradlew b/cping-old/android/android/gradlew similarity index 100% rename from cping/android/android/gradlew rename to cping-old/android/android/gradlew diff --git a/cping/android/android/gradlew.bat b/cping-old/android/android/gradlew.bat similarity index 100% rename from cping/android/android/gradlew.bat rename to cping-old/android/android/gradlew.bat diff --git a/cping/android/android/local.properties b/cping-old/android/android/local.properties similarity index 100% rename from cping/android/android/local.properties rename to cping-old/android/android/local.properties diff --git a/cping-old/android/app/build.gradle b/cping-old/android/app/build.gradle new file mode 100644 index 0000000..79a3ec9 --- /dev/null +++ b/cping-old/android/app/build.gradle @@ -0,0 +1,78 @@ +def localProperties = new Properties() +def localPropertiesFile = rootProject.file('local.properties') +if (localPropertiesFile.exists()) { + localPropertiesFile.withReader('UTF-8') { reader -> + localProperties.load(reader) + } +} + +def flutterRoot = localProperties.getProperty('flutter.sdk') +if (flutterRoot == null) { + throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") +} + +def flutterVersionCode = localProperties.getProperty('flutter.versionCode') +if (flutterVersionCode == null) { + flutterVersionCode = '1' +} + +def flutterVersionName = localProperties.getProperty('flutter.versionName') +if (flutterVersionName == null) { + flutterVersionName = '1.0' +} + +apply plugin: 'com.android.application' +apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" + +def keystoreProperties = new Properties() +def keystorePropertiesFile = rootProject.file('key.properties') +if (keystorePropertiesFile.exists()) { + keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) +} + +android { + compileSdkVersion 32 + + 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.neumannics.cping" + minSdkVersion 21 + targetSdkVersion 32 + versionCode flutterVersionCode.toInteger() + versionName flutterVersionName + } + + signingConfigs { + release { + storeFile file(RELEASE_STORE_FILE) + storePassword RELEASE_STORE_PASSWORD + keyAlias RELEASE_KEY_ALIAS + keyPassword RELEASE_KEY_PASSWORD + } + } + buildTypes { + release { + signingConfig signingConfigs.release + } + } +} + +flutter { + source '../..' +} + +apply plugin: 'com.google.gms.google-services' +dependencies { + // Import the Firebase BoM + implementation platform('com.google.firebase:firebase-bom:30.2.0') + // Add the dependency for the Firebase SDK for Google Analytics + // When using the BoM, don't specify versions in Firebase dependencies + implementation 'com.google.firebase:firebase-analytics' + // Add the dependencies for any other desired Firebase products + // https://firebase.google.com/docs/android/setup#available-libraries +} \ No newline at end of file diff --git a/cping/android/app/google-services.json b/cping-old/android/app/google-services.json similarity index 100% rename from cping/android/app/google-services.json rename to cping-old/android/app/google-services.json diff --git a/cping/android/app/release-key.keystore b/cping-old/android/app/release-key.keystore similarity index 100% rename from cping/android/app/release-key.keystore rename to cping-old/android/app/release-key.keystore diff --git a/cping-old/android/app/src/debug/AndroidManifest.xml b/cping-old/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 0000000..889f331 --- /dev/null +++ b/cping-old/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/cping/android/app/src/debug/gen/com/kid116sashank/cp_ing/BuildConfig.java b/cping-old/android/app/src/debug/gen/com/kid116sashank/cp_ing/BuildConfig.java similarity index 100% rename from cping/android/app/src/debug/gen/com/kid116sashank/cp_ing/BuildConfig.java rename to cping-old/android/app/src/debug/gen/com/kid116sashank/cp_ing/BuildConfig.java diff --git a/cping-old/android/app/src/main/AndroidManifest.xml b/cping-old/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..5205ee1 --- /dev/null +++ b/cping-old/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cping/android/app/src/main/gen/com/kid116sashank/cp_ing/BuildConfig.java b/cping-old/android/app/src/main/gen/com/kid116sashank/cp_ing/BuildConfig.java similarity index 100% rename from cping/android/app/src/main/gen/com/kid116sashank/cp_ing/BuildConfig.java rename to cping-old/android/app/src/main/gen/com/kid116sashank/cp_ing/BuildConfig.java diff --git a/cping/android/app/src/main/java/com/neumannics/cping/MainActivity.java b/cping-old/android/app/src/main/java/com/neumannics/cping/MainActivity.java similarity index 100% rename from cping/android/app/src/main/java/com/neumannics/cping/MainActivity.java rename to cping-old/android/app/src/main/java/com/neumannics/cping/MainActivity.java diff --git a/cping-old/android/app/src/main/res/drawable-v21/launch_background.xml b/cping-old/android/app/src/main/res/drawable-v21/launch_background.xml new file mode 100644 index 0000000..f74085f --- /dev/null +++ b/cping-old/android/app/src/main/res/drawable-v21/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/cping-old/android/app/src/main/res/drawable/launch_background.xml b/cping-old/android/app/src/main/res/drawable/launch_background.xml new file mode 100644 index 0000000..304732f --- /dev/null +++ b/cping-old/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/cping/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/cping-old/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml similarity index 100% rename from cping/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml rename to cping-old/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml diff --git a/cping-old/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/cping-old/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..a9978bfa61a7dcf41bb26b1d874bdaff9697cf86 GIT binary patch literal 2896 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 literal 0 HcmV?d00001 diff --git a/cping/android/app/src/main/res/mipmap-xhdpi/ic_launcher_adaptive_back.png b/cping-old/android/app/src/main/res/mipmap-xhdpi/ic_launcher_adaptive_back.png similarity index 100% rename from cping/android/app/src/main/res/mipmap-xhdpi/ic_launcher_adaptive_back.png rename to cping-old/android/app/src/main/res/mipmap-xhdpi/ic_launcher_adaptive_back.png diff --git a/cping/android/app/src/main/res/mipmap-xhdpi/ic_launcher_adaptive_fore.png b/cping-old/android/app/src/main/res/mipmap-xhdpi/ic_launcher_adaptive_fore.png similarity index 100% rename from cping/android/app/src/main/res/mipmap-xhdpi/ic_launcher_adaptive_fore.png rename to cping-old/android/app/src/main/res/mipmap-xhdpi/ic_launcher_adaptive_fore.png diff --git a/cping-old/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/cping-old/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..43c3c8f470d2ee56e8bf30297ec0637eec634ad9 GIT binary patch literal 7124 zcmc(E^;gti(Epp(rBj-vk%pD7RceuL5dmQ-2}$YL6_H**r27LR(hG<*0!ycqbc2Mj zG)R8={sGT`@$uk*fJ<-QZHU636HJbGK$J!-u`9_QX!SjaFHdllRnkMX zlOx86*6Y^%ba}EM<-CN|Sg$!yC!1=w)fan%J#W2hySu^O&F9gm;`+dT4xyZrHEAD0 zaT0KGo4E3TUg5*Xj|2b%(buW?G{6kE;)V?Y6h!#<69O09g!%fa41l#GEU5GV+tiEC zF|@#A`YKIa5aKUYuIHg1;K;ZCZSZpt)m9SLB;lPv7#`}teE63CyxIbn+5G~jX43Mk zB486ear50m_657JReOG6rdq~}xGl$nE)@aX4GMuc7~}`MxRU1U4zCcLr@JlklgCE< z#`RmQhdBgIY{b9fKmrB>Pq-)*w#I)`naypo_Ic#1mAdZi`5VkmO*M*0NZ9?rQF$qY zuq8)G9~4Kv1A#ze|G{lS%S}qh97ltLFE#Q+q;&e<;)QzMjkJ<-COU}Mzu8c6+jr}{ zBbJ5T*xyLd6oi1TM97?cY<||?UEY#j^&5_#W!s^4Yea-Pe}reL=dvlqvW56Hw**g7buTM@NmQ9o(F%Jp+{FlV z^&Gsjx2GV*DQVAu;FYJ)Ft9Vg!Jx_UM%u$7q`JCzg9c5rZw5K5*z1Wxwp`ep2RW}7 zqDi?fW{lb*UQcPyk7beCx*Vt3bBvQZYNDT7gi1TAF~PNv}I*q2TwvTL=)_A%*V*eUCXV$4(iN<^33!4RUR6G z5Epgvyg=@*)UI&J!lZR=tY_;GCvzow=ymfJUBwll3t^Jh_UFmejl;A$f33<6LH4Jm zlaf6;@i_!}19|-)1_EQC)dbMO)@I;hN@~7wNa(j}yYWFDxsp;etqy~aWG44FCT3$3 zle)rgoBueU;m8w?avH~J5KzdFJcKR+*E>6z8G~Z+UA$&f#;Gz&@idtZKk>MuH6kV! zUi-_Z+$g@EOhw9+E6f|hIr>)S+703V?SajK^`|=nKptUIHiQ>%aYvQ)Yre#ivb?eMTfh&Li~5ajHnWm|{?E$r@1V-*JyafXQWTKGcy5-tPFkeFB@+ipCe z?&H7A2bpJhW+!)%4tbA(SyB>AdAEuJuK`0OIry&evPd?D`E_?Mb4=BYzrp~nXr%3T|G{#dvVX|3i(vc^fuuD?gSj59I|7u1 zhGatTtt>6nWt!t!emFnac}F|zQFPlm_dY1oaTFDEK|SiQZa~>tu0xRUh1Yn|!pHe2 zdGmZbwHk-TAZ_BM?)txl2}2pM{y+$LfYs6ZE(-)M7*0D#A`#gX`*N$Ibzb!&_+lr1 zylWK>xtD1Mnk(b6njT-hsM~glzN2ioTz%=okLbNk+%l#->>aS^iiY<`TMUy2BsDo4 z&AT1!X!dvR$^(-Ulj+s+>y**on_l2{Ew>1-*k|iwavES7UokfiOyQRvXOKkX(Z<1@ zbS`oy_6BMr7~)*zK8WQA>@Vdx0`+(=*$Q-LCy!Zug^Z3q*Df1^U-n7#$lrV?6`Qj$ zNm7RB46H%^oTIsKdtTjT6Xv<$lRSBXo3d8X9YW>o%WM|Hc7sE>@)U4}uiq&?2e^K1 zGI)rMYzq3rnP56|J=>C_z1Cpr5Gu|1t;nORgDG>#v$-yMM?ROF6&fsOw*&ZWKGpS5 zse`qi9#QD%=Jk#{pa`Gm6WUZ2b=wCesz!F@{d1Q-tn!;Ttn;BCW-|t)eb%}5 z7n+tt;EG(Gyb;#h(W;TbPW*VEnwmaC9(EkM%O+{&an&LP{qy3E1*5{V8UhLukb>Xj zsBNf>*dnppodpr)_5L?ZS&Hw-Qk^UQBbP0nH@@FOWKutDJZ6{j?D* zjW#}Z&_6Od3i?_P(Q?eY8nA`~Q#iLPM^b{oGOnyq4s#0#6iO$^tAO=UKfgzQGbo|C&jQ<*{K<^@*3=14Au&f|#Pu)qB7Q-W0~8t!*ua(*n-7^dl=I- z-VFsUbrgZw8yGA)H8CzW-DIDB&l(qu*5aBzrtIEJyP9)6wd0v9O`qNzTlHMupN&V= z^^AUEFEe15^x;ogx8>lM1%=$g)A;2Qd}&ObD#e!_zrR$zd=VVFoq?Hw9QHelbc_#B zV;osn_Uc1UnV97QKvETpA1W%z`F(u}3$d+r1iD?iKMQ@g5Nn#FN@Av@HZZVrO4lt}w_i|4!>LlGAf|%~7l9WY^}lcqEu2I8Ys2%(JKP zZ;!39API*n#UC>xT?9|#?mm8y<~WjSRj}Oa;TITaJ#(b$7qI7=T+gqc7u!!k@X2K;R6E@Gi@u%E^7$K`g`MN}ZXBxwjx%JoAW=6GSzb|d>>hcN8#i@aD83OG3qnja_mgQtbjrQp=B?V!n$UN z({OIKdFAfoB15~rwVqwxQ@r)A!1dttH0-7Jzgi$pEe3_^;ghwDEr=jaCoNQ`TgGA| zCY@6`<#>txugGea`odZo*r0U@2?TBN*4W{cCNe`{#&J9?#!ND4*m!I)<#oI>InEZ0 z9Tykx5=W)O#ic&{Jtwb6`57atqKj&-Ih)bj{aCYVFFN)BCoWFRuBjWx-PXe=Qcsji z$I;9Ki2fPPJC1D8bi=fq?}kXbHK=ZQ0CE3$uVX?gzC zfSXfQGS!#qRx76Pwxn@!iRdF=yr=IT8e&PNO?BTi65H9$99>jPUj&xK6eA;12(d`tsv2N_a3b6BU(DJvuoPK2~E_%vbqLIhZq`@$u67PqZr= z8=F=XN~M3^EDhpDCu}^qx)$&A(_#blMUBLpL^t5c^wGi}^lSDONleyKk6-10pU8-J zSxrmRey34*lz#_iTAB(2cXD$+Sov^^V!-1gA{HM%*l=i&wt9)2W)QnKj{=Vt$XfH* zJZ`9%k5lBG#9OHaWM&gn2PY5Qq+g3`Bt1MT>DhGfNUG8DTKsK)%DJW|-D<nxF1(dWb?bk}N$(NVz z6@|>9*IR~lv47}`^Ka>7XXPj;Wf($kTXEe^4i4`@5Qqxu)iOzPTzeswIJhuG50$ys z(mBl1z$a@w2%NOAy;Xi@FrW9EPa(gYOiIcxAb{j@FGxd1@pj9QlW?`s_x#MFSV3VX zB*Rrzl!`Ll#MN0nG}+4)+~C3-hCjG4oKv$K=(F#jRvU^?GO6SS80fcbAFfqkZw|gc z1*)I0W1!54`32*_C1w6t=0t9Xk%DzC20A+tsM?f#l-Tf5*6}A0&mY|0-ih_bw~vjU z?i^q?Ue|h?!T}-d4`j5?SSCsflHdq@GwQXhqZnzaBI8A6cjveLSz8HHpFa8I&fs>4 z`smBHGvrgyoS{6ZIP3t1NTNIxnWC^`6zP@fWi#49zfzf1H#MG6uU1cL?w)EQ5^3pw zBL~ygt*Z)qEC0{dC0Cf=8U+I>aw<{aZ1p1H(rKyjJ@IT1-6yIdAXC$nC9Fg(tAiJX z4+oya6hqsEnN1LiMx4=wF0wTPC-NFfNUH|Sp85;xWJ?e1uWamv(+bp}{mgipn_JS| zdW?QKd6O{Xe})sNjyeY9dz#kJ{_Y-f_E?AFkZsWBg#jmHgn|;DT+!RYZV6A9pJBKyPtE2B}+Y-|)l)3lA!F*?jPp71|wMuhMwYV9&6+ z3K#4CP0pVjG7^m#U;KqEAx?Ea*yVJ5u zj;dKprxtZN;yT&(b}V-5{n_)@F8l9daDa2@|DK0AH!!OI`%i;U`_x8>LY;BWX{sURDm*(X-lMwH-+NbE_Z|I1^UCiE9I!((sI94X zG|xqMH$FWYd*t;<|E0mlDU;xqRLjK=sxu5>E_wOASU4$oD#TY9QFf}+kM)_BNy+$D z-tcjL;VL~f9d%HwAP>DVs})L=7GPad?p|5UzH)hEX=WBvbjd@rV&=3ZoV8=*7{e0q<^0C>zTYn2KsIX zr7?Bz=&CpcfQW;$>6kj7y?C7Uz4k(0*s8I6;?cM78u{$79691Q$A84-o=X(+n(fhm zut#EwPJfzR>ckBsaNgWN!-OH%^xa;-=>(m2le`4hO$synh;7UFGBM- z77gAksU?-76oXo6?PSye{#SWBHWHv?-8H8@341NWd_$%hL#jlyJ8MpK=0^me`SkQi zyZM!`0l@Y2lkIYyydOr#ew|I&wj^TFUpMfjw@Sn_(>KPdnWY#(3=|&Jvut7rK{4~G zY=kq;w|J#?5qvY|SLxDfKQf*fOwu-g#2NnXg2NEt!hyb;S>MfhxTD76TFWc|{?waLQE9iRJ^UJ*Ij; zOrD&rnvAmq-KJUy(nY#(f>sVr^lFmn{j<&6TnSi6IV51e2S;FCn?g*Y)?@g7exm}m z>OT4a*Z6gEmJl4;=yj!NUcMa@@U^10k9rjv-4BzG2oe3Wr2SDKZxUGfnO=Od%BaMj{(eRnJ(2~HiK`9Monv;EDznc-|6t58GtiOM z>ZP5nT{!$ILaE4|_2n}=5x0NiW1gr>5yAVQPRNk#K~^z1I!)jdFK<0`xyw~*@9`y> zpK14B`|(8NRaX1^`MayIcz5)Dj^n}>1DWV?*{x-)%WU0?EAM?N&*sz~Lbn%~Ep76F zC3JDpDtD}156rk1{41L;f3xkTrw#ER%kddY$I+x_RY>Rf0}?XZuX2q|fmL>E&S^=q zOn29d=4HeCBCYRJfAA8^Qg42@ywM_)4E#5V=-vDa2zdwsbzCH%Q4~vgl4>k?Hy&4HG|VzctKb7eIz^|7>(#Gq)*ebq|7My5 zBQ)KTJ)BBu9t=0cV@GslI;!{eCeL-7|B6!Kd2z;}>cQ=0)LMJ&nneZiCfu;44Tr&bnIe8tYhW7{E3rwaSC zp-W@nIVed8UJ`?+IUO^sK_Zbbh4Lru&_@HM2S;^74@f|mC7-+O>;u?{R#$#=P|9Eu z983ny&bFuz*(21adZ+33ZIoPov-O&?rC)cnKvoNuv;7kE=;=E(BOR&ZTR^%T=P z5*6LQ_paFWxftf>zwJtUo9|?xDN~xV{G;twfnUI>$}9H?@QW%-$9=Rv%Ea}gAFtZ1 zSDFk2vUQR4SoLeZoEjJ;W6dC&`D_Ik&UYV_buLRb+?(oZrPbYl?A%4kYMQTSq{`(iB%mqeA&&^FFpz##v zqzFWi`b$ncAot{1!KAneWr;>Ghpxmii+-da!FtjHr{IYkx1YNSLo(o*a*t~k{{yc5 zFR=H2A@*cM%+5CL)@#vL@J;^`<&h0%TE^~uJ`evVA-N#LD)si&mLo-NDGL4N%Z882 z1;)GIM47i7=VUDKszifoUw6tEnIeq@6qbeC{ zY`l?Q>;Jg&7%23>M>IdC?mydOQ))YG&}O^5ASrytQ1{6|RuYD5VPP>{b2Z?*=m(z@ z2I99d^+@EFvFd-839iI=`T@eSz1j@iH=4u7e|5BAS_YdA>l%3_jV0nj68~g?Jwo7g zRA2%iVL&`^|LhoHIiem#aI+YQwHjXv+RarYCuQl?5<60nxeN%p@_{H`E-kfPWG-Eo zOy{+3CC7c%eqR%6>j3^FP6VzFOJn4uxVgL`H!U}By6rq%Q_d@{Ss_(3Fehi7?=ihP zZ#iD`U6OGG$gP4swv|7UKy6`Of-2qQ$lh}zrHfzlq$6*Gq&PUlk&C?dmGtr4SWmy0 ziPJ!J&C~sT;o2X*d1!RLtS>g_JoLP2DMzYU2$#IPRr-wbo~R{qJQaQnK}ObuKTs(g z-kQ6*Iahim0bv)DllJ?o#m1KV(BN&w1PkLs?|1JO0#CNAwYA?(qJ2-xl)J@|A1CO7 ziCx+B|H6q8_0AV1v47bO9OffPTns!g2KY}dVPaDeYS9JQ3g!oq`di8+Q9<(fbhs4f z?3*iBAu3@#CV}~yXdb7JPKqay!@9`_%NFo^63LGE=lkM7(Vl*`@7;E zGCT^2ZZQ&MtrRy4}hvgGPZ_m_ly@xl>Uc7o*q6$F>!=??eqC4>+iwe=0ld|rrMPh?xrUG zT7H|+u9nc z)E*X3C1fL!p7OdVm7Mt)0KTrZ*M#N8Qrtc*DS!wEb=m?Yg%W%ToSYBd8U92JgScq1{cN-WKrv)eyFv;IOaR8?FS_rm zhmtEC78@1wQ`XnlKXPzgb#8NFJqX>GY{9?~-Fex!p(eWyQvLvzcNxc#Xlw?HYAP-> z%QJQw@~?AqdK8pY!+#sN*GIC&n;jDZJA&Z0IFqg8rK=Rc)G#-%1iUfp^=IPJ%=B9` z4Kv@4E7)jjE`|MQ+6rh&sa$55RBn0mB!-(1xCTrY2rl_m1!RmI*OcjS|0 zV_ANOaJ$#wCWv3%dtQFfb@^ns*WK6m?9SmzQvavJZ8QOx0jI^u)GIy{0JtBX_hOT@ zJ1$;Hy(`suA~RfRyUs7y;R}doam=(>FaUaaZ>Hx0H-)(u`~Nzv_eI8T@O*YeTJaxDx%DRjSVVl8la;kAGCq zG4g!ZNfK}Y1H%__%#!fn)^;o9$e6F~)xpJdgUm!$`(-GTA`NKJPl>N@zsvfWPJH_y zs%r~ZM`%t2&ELM@vKhqY0nYONeZf?DBK!**2Eqn!kr-eFJ_SCcN#K&RC_Aj|ryEOB zP`eUUzUwR?f2kPDTNC;vpPS$qLgQs*{PAc(ry~6l^HVf`$P~Vnd^%oYH6BoplmXsgs5`Gb4nM7~ z=AEW^TPN>$&m$DDE86BAUGDu|XT5eXL6GuV7YP(u3z&yo?vkE>HUjk{P+|MOh}+h` zJ(;n`WQ>^vV*prRKB*+$EOP-ATg32!D9C$km22s;FQFPVqpEHjt)pXV#Kp)K z;g8~dX?M~1IKfQVerj>~p@e%g;8;!woZkGWkZFXn2hfox2|5o0sw9~>C;OMPcdC%{ zN*_LX6IMVHZR_5SMCxC?k9Cxm3%JOaT3biu0)I-({)+Mep8VmWw(NW6)POQ17O4e- zx%38>L(Klr_l{jG8$-p5co|dOd;v)P@A&2e{1Zq)tEr)>?2McI-5h!WZ$2QEw%Z<< z+(7#d=+1;MkgtYM`skm)9)6=VSabu@|3PRI(rA8fCJ;C{z)y8eY$uz|AfJ{qC}^kG zAOWYJC$;{=I22tq2`~~?tqj8{tlr%S650%LM{CO^FtL4Jp9RMa(hJalt?KCn%NJo- z@CDMJbquQlfaaBrZ+6Mr=(+4yaHV%(Wp0lJ7{=jXN9L+kN}p0f+?r{Z>jo>_{k(nUKWpP*%Q$3Sa+OsLx(1eVpo2PIabF zuXQ2oEyQwPjEVxT;0GrmTZtt6U?mzgtufzdrwBc&h1mH2m5Wi2ZsTaN`HjsZ#676_ zLpYE^0!9;V5C`al>v+2>M~C-i4tRR*ej6CgaLbgyCuLMih2cRvlHym2h!I{BoNUc9 zo3AFmMK*EV=Bq*TCE!JgVGJUT-+skp1r0t@BaUgBGrQ(tkJxe;+XG z=(kNPD`W%o9A_c03BZbOlXsATEBvmRVRD-j%N zc4t#qca19Z>byjIkNRUl8Y#(chtR^m$H)*ypF5N|HZTE^Z|6ecq?+ra7go$SDfopKb`>R+&uKRhjR!!C0Ttn}Z4mTx~2gl(~5z(nFjPFoqYXu^$x&zLq# z^}T~>9QTtC!(+ZGlnIR#a>})y@7%rda0v*_4+LOvX|A70cZYyq++IUlj;X@-q|ppW z89J4R(97}S755MGzuwb=JM{#Hm6uU(WScR7t_U21m2(6iBT@z#ryswv{X30+p60c+ z7+=6_n{=++kTuQ4%|l75b~QnuX&787ef|}aQqF7~XYr=!>Pp1^oF6weA?s_}%4px% zzR;Q>gVi~{gx&d0OCp8auE(p}i)IGg2)F&j$ryeK_)(e(wyu8&`N75g+e7qOrDRxF zY;SCs4HX@xzVhQ5%^u)#rVtZiq3UTf$CQ14U23FG*|4-sU9tERW{&yGzf&b9-rxH8 zp`JgUjW00D4lC)9jw>K0;reE8$u>F3on~Dk8@?XEkTN=6I@uxgae^c$n+ERcg?Y2_ z`&7jHCe`qTNH$G3LMKZ=>~bl;#O=|`<3>LJM;o!#{&3|uKs5HQJ00z&WsbB!7}3+t zmiH?bi!)hl92^@r%T7@8^_96}Q30oUX7!BJZvs7E=2w_F_hScPU@|hYKe-k@7rUQd zmgF#+xXj863kp_~Uw`a+p7K*l zlg}z&_)Ns&Tw!mNn~7<4$dd%H4x@=Ui>pTpf1LX=K;ACrLG*VXL9trR%e&+3D6F`r zTmI(##)F!f*)yt9qbNK|&VLL0%}gvpjYP3oSwXf5Hs%j|Dkrv<<7z4uQP|KXYLyJ( zXpCxsg{fi_=Jm(D(L^SICh3C8(O2dVGy!?{P6)MZa<$g%^|spQx{{5HgJ|L8EJ=jg zWC3gT@+i=oa1X01-K(iduVzP~T(5@gm6un%X@zDzpLe{+&N3z1FE;7a4G(@Vn*{vs zYCc%#M5-# zs6?xQ=->J-ST%qyUT{~^qBB$O=KRLwu~!80noEeP_3ol;y7gD?1d{zHyXB9-{=NtC z5)j`tQjXFmO3Ax+bJIh{v0vBfrOrZ?;qhEjR_T^>*6zrlSTOO*gK$kPd-?9lIa%y5 zZ^zTmD8i?&O;}!9S8w;P<)_~CXw&!i%W61RyREsx-L>rdbCl@{++|8)~=+xIU2JFFq{7ejcapxiif`=uT}`CmFki9^z?{)9&H!V zDYWDG(VUAd>fS_8DH0H9^F;j#c5{wEvGy+;e>UgHHJq)y(d0)L8FBRc*fhl3y zQ{$$bL66aKDSRc}{@4n6dGO#a$?~xMgkIdO+!BM81xwdsKYai0V&dC2H6^mj_mo)g z?15OseNW&+Pvghdg~s*l#}9LSkP9K)4@VD>&a1{8_3ixR$d@bS$Fi_HFe_I z>opMT96Pi_)lky6&A;rLhT9}P+E&XNljTE4&}W22$`B++5-LoZA>@GTyQQGfE+tOj zZrMLmeRyAq^7 z^eeRfhgF+i>$dJ)xf8R8U#K)38&Ic{fRmmN26t--7JChZEG@abhg8jAi+Qq&dhC*T z&IdlUTP)4tiuj#Hb%~i_{@C%PJ!-tRW@csO6!qM?p!K~(QXI^+m051&K&15b30s72 zkpQ4mTuGQXD;%gi&a`379-yGae{?KG9&U>cXO?!1vp#LQP4cpFTd zivmPK2tJ41bv$dZ;tG<-bkzutu%rE<+k~~yPwI)VLvNF>mk)*weNRuXq6Xuo9k*as zd}frYQ6+5Bn($<|k9yWLpP;QbEv|9k#qIbc7b?V$AXLZmuPLo79<90P0$4j?zhyN}q% ziOf|6pzQw$W3hkEZzpLi06a_&Q$R_Y4ur`H+OZPd*7SjUEXLzvSQ(YYweJsnFpjhA zEz(shg=k79j&KWCxx1R+nq+UhYcnXMm)U~)flsB2 zU;HO|?^+@nFxoo7RnGiS z+jN*UO`$3jnNrftMqu zq2kKPn_kkCdjbn&m7tO)>lH#4nHd;wKK2FNRP zr%Zm1jKag^bQ03`EvCzemSn-Gmxoo6^B-!N`mP0uncmSv!_6 z2<`jSn@tK!>%p`QUzmOcg8Trx<8xqmi!&iYShCc|Z$1~Qr5$N#Hfs-mpsgV`{Uq7; zT=AoaQw$_NM}^%MSZE*fr78lkwMicAlJ*acXbt;IoB!uMFwdx2rY+P>8$d4}+VfS% zbXsj+LtDK>&%M;Bn9A7CB2^#{SxY@c*TLE zXN{iKJAWLIfM>3b8a*uLrua61&#k$^6}P3(g@;$Gxy|D>?)c2i!KziQg!dhGR4QdXm!L_k4R;FC5dgow#MN5euisS_w~)uRKb}SLSm35;(a7t{lA$ z(mSOhDzkAEAgO1Pm$&3~&$4g#s0-h?_ zN=LhfaW1^w_72dm#xf9cOgIak_&v0?^)g-Q`(%a?@e$|Xz(5c2kbl>K6E)l5oeDx- z;Xf}tHeCH=8{d)9uXiBE3XH|20H>e+7|+|hzxW$g(`m8z8+7qBu6E(`xZRLzMnfNK zzFt6Ql{otzgO2z3M>C5yMhUd4Hwu^ud@m&GY-csOHfCAEh@bXgANxfnu&S~foP*TF zuW9rf9E(msFAguAHKr6)0M`bt@g8VW5)SrfX*BjW_pb~Wg(-y0JPb_%x>3rKa=K0s; z^_@7$cVGU7ZEP?vIXeZo9nL7mO{Wd#MxcZ#n|~flnQ6qCd>K+!U~OmH-iC)A$zS4g z<3z1juCrGA&MOV4OF)rc+Z6a)Q?PI8)OnwC>%Dm?r}LqCBAa`Nf)r-&_xj_)-kAhNM(TiP> zjz;AshV{&ywi|h_*9RyCOeSP%Ylv=4Ak13fNZF#HU(=H7D;BJ9myk2!deve7AxGg{ z)KkCMSdxgZ0!z3|Ab@&w$f^D4_pt4Gp&?9SKF;cI)YtRvla_}c8GjmWc|McyUPe1M zlTcIR^O@W%n*MZJ3_*uU7Gt9(U`E^@v3&@Gn9;^vr`dethhJO;@|Mla0LlAX{f~ch ze!D`7)Y85MMbe`lS=i4eueX*Pk9xD8>4w^ZqRj8!wxgbP-1vs=373EM!CH#;NMUPu zt#?$1&4~vz`cCW+@zl(t?ly%r@!U4EmEU+h9MgV!^5gKY3~#(sds&deV*o9@Y9gubH0L(lU1!fZHOd!c)dn2c8v?d}JXP1z z4!?lTn4umaH460froPf(^s+`uf&NnNn}3vIVmnVi;sGM66a7Lri^~L2C`+*aSbsd9 zOv;;kEj~i3f9vZ~TcfeLF$n7ly0}9`pFTBkG8e4z*_PB{J+y-6`VR&wZh(w8YgJN{ zqtLX!HU^=xn5;qhmshj`49K%@cDdM$W_FhE;xpH>-Ib&KL06e3NMFO1;$k<+s-~V7 z)IyA}cTeLne;SdN+bJ&9P~_SVwYV)9)|s}Cm%r`3ep6o8IzwdT2M zb?Nup)$8FAm|P|Pf##^#kgdF;NB}maTu)O%g^2-Rn8*sEhdl4wo>fc$gZTe;M!y<3 zSvp-J!Z3f2F%4)Mx!NeHERG&DGvf2mHjmfi0#bHK_&8HHu7?zlR7;a^d+1 zrToxZxH#95Vak;`OEGee(7w9K30NENWYSd4?Z$h~-GiXul&oA~zO3~cDw=Riyg)0= z1ZnLyc_k%!!WM>Kbw)IrT%OB3aFj`d0U`FBl#H*WV==wQ*fq@7>XP>XI~$anH>}ov z_EXq~8i)7flpM@T-xWpO94Z&zf~Pusu*()W--j$~R!d_lr=K=mJijzs4}G~a(~6Hp z{8Zcg4r3Gl*YVG==Wk-@9`f9%yiiWGG^br3HY~~KWW*meV!ZdC_aLn@3Zmb*gMbXn zzxC(TEmvJ1cJu5Of~kC`Y#Mw&Ocgvk@>}(w1uU2c7D`q4BTlCZ+11o^ww}2iEP=+_ zZVEnf*N$ziw*G;#pJDs~rIQC_!3vd<)GMV9VOQ9q6f%qj+evFqrn5v7vaoAoqtot5 zB@zqSDKk(GhF~x*e?x)`$i9& z3m*-q^Et7I{q!c3K!l8G{M-nYW*yJdc@4yCEDWHImUZt89Eat3JrXnCRflx~fvY;O zA3)Q7gkXkD5XR|V??kfZ&@w+<4}^uS9i-KQ23d=l*Ry!@DF$lhQVKv+30OGza1);U z&1WK>Cp;{Ef-0rUt+Pp4#NzpIm_k@D&oaKFVZmG!@iitP59T{#GlTQI&+qcvHkuP5 zyCy+LPy(gG{_Mo__|wkzywl^^(T9ZlQ z)9m`h{tk=c8EA^mbbss6^Su6=@}YQ#6ceMLnPBTbLD_UoZf3wVVZ%ePW9Ql=NjiHk zOgYwWT9dN)7vB|%D}-TQ#&&dns;qEVMh^tkzr}58d)#}nOPTe{Bi4odly0?WTi%Sg z7}T$vr_ORR=$s$)+lj~Xk^~7!262T{MGxcUK~=7O3}UEA6G&AU zjK}Mrn;c(-Ivs5P5S=`z{E9OMI&NNgQvn&mAA5GVc=Y~thk}3XK-t~VfQG}ZE zVGSlwrnJYE;BYW4>(c_vM(#&(4UNr|zdp`8s~Xy6#*~f=KXH5&yd($Oiu<6L3lMAY zDPim@0c86M){IapxpJTuI=1PRszO`PnU631)!*w{`d>qbocK2z?phSCDEa-*0P){)ND)9IEaHIpRS;b~? z+87a4i%cQRjF$YbS6~AbJIh?&p{)WU2RdP&jD`nBEoaia?YY5FS|Thrs%Mb=p_iZLl-MSD+(NN5)h@g@-SD}vEbesf zB@F_bUnT5t(3;fBpRGtTttj67Qz9z z5nkkNb`csB7pu7~bD=MS15Nd*YXLM66ZgwI_dr`RlaSm3p!3uJ^#c5VXWps~zzlu^ zj`h7&UT(YbMD-B-Bc=Eh4-N?l5oy=#2?chn6AS?)fCm~^33eM%3@=lazV7<&^92{6 z#QmQDyqKzAsPv8%n`?oLf)OuM%=uqsUEN;FAkgpn9C&Q-yRMV}M)#RSi-m1f0Mq}@ z@ix#BIx=3XGD(EI6d+Sumz(Nh5vo>wCjxHIzs3tq7H z+oa_pEq83R)bQ22;Zy|NfdF-y>#kF~en9T_~ay30{UfB`EkfX?s*fCa~^Valv= zKn|+CcHdi?tp4*gG%p*BuE!eB)G7$qyhw%kMniyC?Hf25{s$tR1ONtj0tkFFjuy}w zeC$s6`S+&2+y9cu`+|U{gVWO5*Ym5POJ}=t)dufK87F}5n-_SN>7F_u7`J(fRRR{G z(WZkS@56ZGsmZdBN~JM(Vc|62Uv>>Cb-2drcy5qhjoa={9|P@;VBh`leJ%-G8Z22F z5fxFPnbH0-TR4b~UdbM;XyPZhTdkV)TAW27@Ew`LXYu%Zd!0(!>ki0uRKlTuBpwb%RiC~V&q>xH@8XUA7%C*{?cz!NR5VJ^ezxU& zW1U!S+SK146gB@?MBRxl!V3p^+N1`;0hlBu1C2)5-~6Mw%k49OWPQ@f`l{rq$=jkBEnu}C;H}mtuR38H zyB7mINgC}uWNnl}z+&g;fGMNt7E!{j-GI|qWY!623ieN`qbvV~?BFodt>h#?0H|IS zYFn$ebW>q^_F7pJK!8fj@U?kjgVW6shFP>O#$r0k3xQbp-l92f7;1(!|Brp_-IfYt z?^M(PEzXYc*iAHF0CNG?*l>%GX%Q*Pz!8NHct(dgeojq;*=dDW9G$fzd$<;n*dWqy~A(}t2tn3|cU9)#> zc}U}K#ghKRgsaoBBzDKRNs0~7YK+^~v*%+$m;xF-gR2)%D + + + + + + diff --git a/cping-old/android/app/src/main/res/values/styles.xml b/cping-old/android/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..d74aa35 --- /dev/null +++ b/cping-old/android/app/src/main/res/values/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/cping-old/android/app/src/profile/AndroidManifest.xml b/cping-old/android/app/src/profile/AndroidManifest.xml new file mode 100644 index 0000000..889f331 --- /dev/null +++ b/cping-old/android/app/src/profile/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/cping/android/app/src/profile/gen/com/kid116sashank/cp_ing/BuildConfig.java b/cping-old/android/app/src/profile/gen/com/kid116sashank/cp_ing/BuildConfig.java similarity index 100% rename from cping/android/app/src/profile/gen/com/kid116sashank/cp_ing/BuildConfig.java rename to cping-old/android/app/src/profile/gen/com/kid116sashank/cp_ing/BuildConfig.java diff --git a/cping-old/android/build.gradle b/cping-old/android/build.gradle new file mode 100644 index 0000000..b84ce19 --- /dev/null +++ b/cping-old/android/build.gradle @@ -0,0 +1,35 @@ +buildscript { + repositories { + google() + mavenCentral() + maven { + url 'https://maven.google.com/' + name 'Google' + } + } + + dependencies { + classpath 'com.android.tools.build:gradle:7.2.1' + classpath 'com.google.gms:google-services:4.3.13' + } +} + +allprojects { + repositories { + mavenCentral() + maven { + url 'https://maven.google.com/' + name 'Google' + } + } +} + +rootProject.buildDir = '../build' +subprojects { + project.buildDir = "${rootProject.buildDir}/${project.name}" + project.evaluationDependsOn(':app') +} + +task clean(type: Delete) { + delete rootProject.buildDir +} diff --git a/cping-old/android/gradle/wrapper/gradle-wrapper.properties b/cping-old/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..aa991fc --- /dev/null +++ b/cping-old/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-bin.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/cping/android/ios/Flutter/Generated.xcconfig b/cping-old/android/ios/Flutter/Generated.xcconfig similarity index 100% rename from cping/android/ios/Flutter/Generated.xcconfig rename to cping-old/android/ios/Flutter/Generated.xcconfig diff --git a/cping/android/ios/Flutter/flutter_export_environment.sh b/cping-old/android/ios/Flutter/flutter_export_environment.sh similarity index 100% rename from cping/android/ios/Flutter/flutter_export_environment.sh rename to cping-old/android/ios/Flutter/flutter_export_environment.sh diff --git a/cping/android/ios/Runner/GeneratedPluginRegistrant.h b/cping-old/android/ios/Runner/GeneratedPluginRegistrant.h similarity index 100% rename from cping/android/ios/Runner/GeneratedPluginRegistrant.h rename to cping-old/android/ios/Runner/GeneratedPluginRegistrant.h diff --git a/cping/android/ios/Runner/GeneratedPluginRegistrant.m b/cping-old/android/ios/Runner/GeneratedPluginRegistrant.m similarity index 100% rename from cping/android/ios/Runner/GeneratedPluginRegistrant.m rename to cping-old/android/ios/Runner/GeneratedPluginRegistrant.m diff --git a/cping-old/android/settings.gradle b/cping-old/android/settings.gradle new file mode 100644 index 0000000..44e62bc --- /dev/null +++ b/cping-old/android/settings.gradle @@ -0,0 +1,11 @@ +include ':app' + +def localPropertiesFile = new File(rootProject.projectDir, "local.properties") +def properties = new Properties() + +assert localPropertiesFile.exists() +localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) } + +def flutterSdkPath = properties.getProperty("flutter.sdk") +assert flutterSdkPath != null, "flutter.sdk not set in local.properties" +apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle" diff --git a/cping/assets/images/atcoder_icon.png b/cping-old/assets/images/atcoder_icon.png similarity index 100% rename from cping/assets/images/atcoder_icon.png rename to cping-old/assets/images/atcoder_icon.png diff --git a/cping/assets/images/bg_one.jpg b/cping-old/assets/images/bg_one.jpg similarity index 100% rename from cping/assets/images/bg_one.jpg rename to cping-old/assets/images/bg_one.jpg diff --git a/cping/assets/images/bg_two.jpg b/cping-old/assets/images/bg_two.jpg similarity index 100% rename from cping/assets/images/bg_two.jpg rename to cping-old/assets/images/bg_two.jpg diff --git a/cping/assets/images/cc_icon.png b/cping-old/assets/images/cc_icon.png similarity index 100% rename from cping/assets/images/cc_icon.png rename to cping-old/assets/images/cc_icon.png diff --git a/cping/assets/images/codechef_icon.png b/cping-old/assets/images/codechef_icon.png similarity index 100% rename from cping/assets/images/codechef_icon.png rename to cping-old/assets/images/codechef_icon.png diff --git a/cping/assets/images/codeforces_icon.png b/cping-old/assets/images/codeforces_icon.png similarity index 100% rename from cping/assets/images/codeforces_icon.png rename to cping-old/assets/images/codeforces_icon.png diff --git a/cping/assets/images/cp_ing.png b/cping-old/assets/images/cp_ing.png similarity index 100% rename from cping/assets/images/cp_ing.png rename to cping-old/assets/images/cp_ing.png diff --git a/cping/assets/images/empty.png b/cping-old/assets/images/empty.png similarity index 100% rename from cping/assets/images/empty.png rename to cping-old/assets/images/empty.png diff --git a/cping/assets/images/empty.svg b/cping-old/assets/images/empty.svg similarity index 100% rename from cping/assets/images/empty.svg rename to cping-old/assets/images/empty.svg diff --git a/cping/assets/images/error.png b/cping-old/assets/images/error.png similarity index 100% rename from cping/assets/images/error.png rename to cping-old/assets/images/error.png diff --git a/cping/assets/images/google.png b/cping-old/assets/images/google.png similarity index 100% rename from cping/assets/images/google.png rename to cping-old/assets/images/google.png diff --git a/cping/assets/images/robot.png b/cping-old/assets/images/robot.png similarity index 100% rename from cping/assets/images/robot.png rename to cping-old/assets/images/robot.png diff --git a/cping/lib/blocs/authentication/bloc.dart b/cping-old/lib/blocs/authentication/bloc.dart similarity index 100% rename from cping/lib/blocs/authentication/bloc.dart rename to cping-old/lib/blocs/authentication/bloc.dart diff --git a/cping/lib/blocs/authentication/event.dart b/cping-old/lib/blocs/authentication/event.dart similarity index 100% rename from cping/lib/blocs/authentication/event.dart rename to cping-old/lib/blocs/authentication/event.dart diff --git a/cping/lib/blocs/authentication/state.dart b/cping-old/lib/blocs/authentication/state.dart similarity index 100% rename from cping/lib/blocs/authentication/state.dart rename to cping-old/lib/blocs/authentication/state.dart diff --git a/cping/lib/blocs/website/bloc.dart b/cping-old/lib/blocs/website/bloc.dart similarity index 100% rename from cping/lib/blocs/website/bloc.dart rename to cping-old/lib/blocs/website/bloc.dart diff --git a/cping/lib/blocs/website/event.dart b/cping-old/lib/blocs/website/event.dart similarity index 100% rename from cping/lib/blocs/website/event.dart rename to cping-old/lib/blocs/website/event.dart diff --git a/cping/lib/blocs/website/state.dart b/cping-old/lib/blocs/website/state.dart similarity index 100% rename from cping/lib/blocs/website/state.dart rename to cping-old/lib/blocs/website/state.dart diff --git a/cping/lib/calendar/client.dart b/cping-old/lib/calendar/client.dart similarity index 100% rename from cping/lib/calendar/client.dart rename to cping-old/lib/calendar/client.dart diff --git a/cping/lib/config/colors.dart b/cping-old/lib/config/colors.dart similarity index 100% rename from cping/lib/config/colors.dart rename to cping-old/lib/config/colors.dart diff --git a/cping/lib/config/theme.dart b/cping-old/lib/config/theme.dart similarity index 100% rename from cping/lib/config/theme.dart rename to cping-old/lib/config/theme.dart diff --git a/cping/lib/firestore/cache.dart b/cping-old/lib/firestore/cache.dart similarity index 100% rename from cping/lib/firestore/cache.dart rename to cping-old/lib/firestore/cache.dart diff --git a/cping/lib/firestore/user_data.dart b/cping-old/lib/firestore/user_data.dart similarity index 100% rename from cping/lib/firestore/user_data.dart rename to cping-old/lib/firestore/user_data.dart diff --git a/cping-old/lib/main.dart b/cping-old/lib/main.dart new file mode 100644 index 0000000..3b59ea7 --- /dev/null +++ b/cping-old/lib/main.dart @@ -0,0 +1,57 @@ +import 'package:firebase_app_check/firebase_app_check.dart'; +import 'package:firebase_auth/firebase_auth.dart'; +import 'package:firebase_core/firebase_core.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_bloc/flutter_bloc.dart'; + +import 'pages/home.dart'; +import 'pages/sign_in.dart'; +import 'blocs/authentication/bloc.dart'; + +Future main() async { + WidgetsFlutterBinding.ensureInitialized(); + await Firebase.initializeApp(); + await FirebaseAppCheck.instance.activate( + webRecaptchaSiteKey: '6LdqlusgAAAAAKaBWWsn0Pf5KoUJJNy5JX2M6IOu', + ); + runApp(const MyApp()); +} + +class MyApp extends StatelessWidget { + const MyApp({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + return MultiBlocProvider( + providers: [ + BlocProvider( + create: (context) => AuthenticationBloc(), + ), + ], + child: MaterialApp( + debugShowCheckedModeBanner: false, + title: 'CPing', + theme: ThemeData( + primarySwatch: Colors.blue, + ), + home: StreamBuilder( + stream: FirebaseAuth.instance.authStateChanges(), + builder: (context, snapshot) { + if (snapshot.connectionState == ConnectionState.waiting) { + return const Center( + child: CircularProgressIndicator(), + ); + } else if (snapshot.hasError) { + return const Center( + child: Text("Error"), + ); + } else if (snapshot.hasData) { + return const HomePage(); + } else { + return const SignInPage(); + } + }), + ), + ); + } +} diff --git a/cping/lib/models/contest.dart b/cping-old/lib/models/contest.dart similarity index 100% rename from cping/lib/models/contest.dart rename to cping-old/lib/models/contest.dart diff --git a/cping/lib/pages/home.dart b/cping-old/lib/pages/home.dart similarity index 100% rename from cping/lib/pages/home.dart rename to cping-old/lib/pages/home.dart diff --git a/cping/lib/pages/sign_in.dart b/cping-old/lib/pages/sign_in.dart similarity index 100% rename from cping/lib/pages/sign_in.dart rename to cping-old/lib/pages/sign_in.dart diff --git a/cping/lib/pages/website.dart b/cping-old/lib/pages/website.dart similarity index 100% rename from cping/lib/pages/website.dart rename to cping-old/lib/pages/website.dart diff --git a/cping/lib/repositories/website.dart b/cping-old/lib/repositories/website.dart similarity index 100% rename from cping/lib/repositories/website.dart rename to cping-old/lib/repositories/website.dart diff --git a/cping/lib/widgets/contest_card.dart b/cping-old/lib/widgets/contest_card.dart similarity index 100% rename from cping/lib/widgets/contest_card.dart rename to cping-old/lib/widgets/contest_card.dart diff --git a/cping/local.properties b/cping-old/local.properties similarity index 100% rename from cping/local.properties rename to cping-old/local.properties diff --git a/cping-old/pubspec.lock b/cping-old/pubspec.lock new file mode 100644 index 0000000..033cbed --- /dev/null +++ b/cping-old/pubspec.lock @@ -0,0 +1,962 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + _discoveryapis_commons: + dependency: transitive + description: + name: _discoveryapis_commons + sha256: "50d83f715747fd9f41bcdc87eec93fa300c63dd9ca16bb884bbe7864a2a547bd" + url: "https://pub.dev" + source: hosted + version: "1.0.3" + _fe_analyzer_shared: + dependency: transitive + description: + name: _fe_analyzer_shared + sha256: "6824874a3ddeb1530a8b59c8f3cb1181f38717d0c88ff920962125ffbd65babe" + url: "https://pub.dev" + source: hosted + version: "41.0.0" + analyzer: + dependency: transitive + description: + name: analyzer + sha256: "33f7fdac2d5f7cd0a34adb9ec09282edd45c87135b176174dbf3c83388a9934e" + url: "https://pub.dev" + source: hosted + version: "4.2.0" + args: + dependency: transitive + description: + name: args + sha256: b003c3098049a51720352d219b0bb5f219b60fbfb68e7a4748139a06a5676515 + url: "https://pub.dev" + source: hosted + version: "2.3.1" + async: + dependency: transitive + description: + name: async + sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" + url: "https://pub.dev" + source: hosted + version: "2.11.0" + bloc: + dependency: transitive + description: + name: bloc + sha256: "318e6cc6803d93b8d2de5f580e452ca565bcaa44f724d5156c71961426b88e03" + url: "https://pub.dev" + source: hosted + version: "8.0.3" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + build: + dependency: transitive + description: + name: build + sha256: "29a03af98de60b4eb9136acd56608a54e989f6da238a80af739415b05589d6df" + url: "https://pub.dev" + source: hosted + version: "2.3.0" + build_config: + dependency: transitive + description: + name: build_config + sha256: ad77deb6e9c143a3f550fbb4c5c1e0c6aadabe24274898d06b9526c61b9cf4fb + url: "https://pub.dev" + source: hosted + version: "1.0.0" + build_daemon: + dependency: transitive + description: + name: build_daemon + sha256: "6bc5544ea6ce4428266e7ea680e945c68806c4aae2da0eb5e9ccf38df8d6acbf" + url: "https://pub.dev" + source: hosted + version: "3.1.0" + build_resolvers: + dependency: transitive + description: + name: build_resolvers + sha256: "9aae031a54ab0beebc30a888c93e900d15ae2fd8883d031dbfbd5ebdb57f5a4c" + url: "https://pub.dev" + source: hosted + version: "2.0.9" + build_runner: + dependency: "direct dev" + description: + name: build_runner + sha256: "361d73f37cd48c47a81a61421eb1cc4cfd2324516fbb52f1bc4c9a01834ef2de" + url: "https://pub.dev" + source: hosted + version: "2.1.11" + build_runner_core: + dependency: transitive + description: + name: build_runner_core + sha256: f4d6244cc071ba842c296cb1c4ee1b31596b9f924300647ac7a1445493471a3f + url: "https://pub.dev" + source: hosted + version: "7.2.3" + 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: "9334e4d598ea41862dd812f64b6ce959e83afab265e59d3248802c05d7cef109" + url: "https://pub.dev" + source: hosted + version: "8.3.3" + characters: + dependency: transitive + description: + name: characters + sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" + url: "https://pub.dev" + source: hosted + version: "1.3.0" + checked_yaml: + dependency: transitive + description: + name: checked_yaml + sha256: dd007e4fb8270916820a0d66e24f619266b60773cddd082c6439341645af2659 + url: "https://pub.dev" + source: hosted + version: "2.0.1" + clock: + dependency: transitive + description: + name: clock + sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf + url: "https://pub.dev" + source: hosted + version: "1.1.1" + cloud_firestore: + dependency: "direct main" + description: + name: cloud_firestore + sha256: "1e8c8ffca5a543cf26dea2d5b408d0df9783e02415bfec2405e7ddd08ba93016" + url: "https://pub.dev" + source: hosted + version: "3.2.1" + cloud_firestore_platform_interface: + dependency: transitive + description: + name: cloud_firestore_platform_interface + sha256: "72cdaa9ca869725d4370c59175d0264d66f2cd1e02f972de92a6cd30fe677264" + url: "https://pub.dev" + source: hosted + version: "5.5.10" + cloud_firestore_web: + dependency: transitive + description: + name: cloud_firestore_web + sha256: "62868db09f6cb6e5c68f73124d80fb33395d6ec76076d6a5b122427e55f058a5" + url: "https://pub.dev" + source: hosted + version: "2.6.19" + code_builder: + dependency: transitive + description: + name: code_builder + sha256: bdb1ab29be158c4784d7f9b7b693745a0719c5899e31c01112782bb1cb871e80 + url: "https://pub.dev" + source: hosted + version: "4.1.0" + collection: + dependency: transitive + description: + name: collection + sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a + url: "https://pub.dev" + source: hosted + version: "1.18.0" + colorful_iconify_flutter: + dependency: transitive + description: + name: colorful_iconify_flutter + sha256: "5ebc63d10c3e97279849162b415fda8e71b7ff24ddd663539d7328279dae9c1d" + url: "https://pub.dev" + source: hosted + version: "0.0.2" + convert: + dependency: transitive + description: + name: convert + sha256: "196284f26f69444b7f5c50692b55ec25da86d9e500451dc09333bf2e3ad69259" + url: "https://pub.dev" + source: hosted + version: "3.0.2" + crypto: + dependency: transitive + description: + name: crypto + sha256: aa274aa7774f8964e4f4f38cc994db7b6158dd36e9187aaceaddc994b35c6c67 + url: "https://pub.dev" + source: hosted + version: "3.0.2" + cupertino_icons: + dependency: "direct main" + description: + name: cupertino_icons + sha256: e35129dc44c9118cee2a5603506d823bab99c68393879edb440e0090d07586be + url: "https://pub.dev" + source: hosted + version: "1.0.5" + dart_style: + dependency: transitive + description: + name: dart_style + sha256: "8aff82f9b26fd868992e5430335a9d773bfef01e1d852d7ba71bf4c5d9349351" + url: "https://pub.dev" + source: hosted + version: "2.2.3" + equatable: + dependency: "direct main" + description: + name: equatable + sha256: c6094fd1efad3046334a9c40bee022147e55c25401ccd89b94e373e3edadd375 + url: "https://pub.dev" + source: hosted + version: "2.0.3" + fake_async: + dependency: transitive + description: + name: fake_async + sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" + url: "https://pub.dev" + source: hosted + version: "1.3.1" + ffi: + dependency: transitive + description: + name: ffi + sha256: a38574032c5f1dd06c4aee541789906c12ccaab8ba01446e800d9c5b79c4a978 + url: "https://pub.dev" + source: hosted + version: "2.0.1" + file: + dependency: transitive + description: + name: file + sha256: b69516f2c26a5bcac4eee2e32512e1a5205ab312b3536c1c1227b2b942b5f9ad + url: "https://pub.dev" + source: hosted + version: "6.1.2" + firebase_app_check: + dependency: "direct main" + description: + name: firebase_app_check + sha256: "187e233738c2e41576c547860453300809153a764eacb533c022862c60f69bf6" + url: "https://pub.dev" + source: hosted + version: "0.0.6+17" + firebase_app_check_platform_interface: + dependency: transitive + description: + name: firebase_app_check_platform_interface + sha256: "7671fd1a6fedf7b1e7b4f5beea7fe4426229eefd1edd8de5db45ba8883c8e3cf" + url: "https://pub.dev" + source: hosted + version: "0.0.4+11" + firebase_app_check_web: + dependency: transitive + description: + name: firebase_app_check_web + sha256: f399d0dc6b4e5a51ce21cf0ed337dc81798d250f9d2eb2bf7bfc216a08fe54a5 + url: "https://pub.dev" + source: hosted + version: "0.0.6" + firebase_auth: + dependency: "direct main" + description: + name: firebase_auth + sha256: f60f19dc91aacaac2f0c1f8ada801f0630a1ef036cd8c582329dc91a8235165a + url: "https://pub.dev" + source: hosted + version: "3.4.1" + firebase_auth_platform_interface: + dependency: transitive + description: + name: firebase_auth_platform_interface + sha256: "981c4840d063531b9fbd0df1cbbae6c7a1de6d6ca3317bc80448b6a685bb4fcb" + url: "https://pub.dev" + source: hosted + version: "6.3.1" + firebase_auth_web: + dependency: transitive + description: + name: firebase_auth_web + sha256: "2569fb466a015fe944dd71927f8ddc09fc11a577dc45a480cc68ac1cee9930a4" + url: "https://pub.dev" + source: hosted + version: "3.3.19" + firebase_core: + dependency: transitive + description: + name: firebase_core + sha256: "776fc0d7a0da72adfb7e486c6be05798b7f4290a8be4819cb1e6cc93077e60f2" + url: "https://pub.dev" + source: hosted + version: "1.19.0" + firebase_core_platform_interface: + dependency: transitive + description: + name: firebase_core_platform_interface + sha256: "195560eedebc480157aa60fc75d1a81e881a5c417482387ff60be2ca4a2fe645" + url: "https://pub.dev" + source: hosted + version: "4.4.3" + firebase_core_web: + dependency: transitive + description: + name: firebase_core_web + sha256: "69a95a15d0452aff672214993323a7a472cbac93fe51d60f3612e26de7e75869" + url: "https://pub.dev" + source: hosted + version: "1.7.0" + fixnum: + dependency: transitive + description: + name: fixnum + sha256: "04be3e934c52e082558cc9ee21f42f5c1cd7a1262f4c63cd0357c08d5bba81ec" + url: "https://pub.dev" + source: hosted + version: "1.0.1" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_bloc: + dependency: "direct main" + description: + name: flutter_bloc + sha256: "7b84d9777db3e30a5051c6718331be57e4cfc0c2424be82ac1771392cad7dbe8" + url: "https://pub.dev" + source: hosted + version: "8.0.1" + flutter_lints: + dependency: "direct dev" + description: + name: flutter_lints + sha256: b543301ad291598523947dc534aaddc5aaad597b709d2426d3a0e0d44c5cb493 + url: "https://pub.dev" + source: hosted + version: "1.0.4" + flutter_spinkit: + dependency: "direct main" + description: + name: flutter_spinkit + sha256: "77a2117c0517ff909221f3160b8eb20052ab5216107581168af574ac1f05dff8" + url: "https://pub.dev" + source: hosted + version: "5.1.0" + flutter_svg: + dependency: transitive + description: + name: flutter_svg + sha256: "69043137413dbe1e5daa557c840af307fd784da0f2a89e1e25b3cd8edd788d3e" + url: "https://pub.dev" + source: hosted + version: "1.1.1+1" + flutter_test: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + flutter_web_plugins: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + fluttertoast: + dependency: "direct main" + description: + name: fluttertoast + sha256: b528e78a4e69957bb8a33d9e8ceaa728801bb7c6ce599e811e49cf6d94d17fef + url: "https://pub.dev" + source: hosted + version: "8.0.9" + font_awesome_flutter: + dependency: "direct main" + description: + name: font_awesome_flutter + sha256: "7811c8b4e7455d2f60ef30022a6a07376de2858b47aecbe2861965b348fe2016" + url: "https://pub.dev" + source: hosted + version: "10.1.0" + frontend_server_client: + dependency: transitive + description: + name: frontend_server_client + sha256: "4f4a162323c86ffc1245765cfe138872b8f069deb42f7dbb36115fa27f31469b" + url: "https://pub.dev" + source: hosted + version: "2.1.3" + glob: + dependency: transitive + description: + name: glob + sha256: c51b4fdfee4d281f49b8c957f1add91b815473597f76bcf07377987f66a55729 + url: "https://pub.dev" + source: hosted + version: "2.1.0" + google_fonts: + dependency: "direct main" + description: + name: google_fonts + sha256: "8729bcb3d4226758859855dd7b9124a49d6acb4d197f58a18a34597ca10056e8" + url: "https://pub.dev" + source: hosted + version: "2.2.0" + google_sign_in: + dependency: "direct main" + description: + name: google_sign_in + sha256: a8a411a395935e0cef56172298dfeaa7f3556babc56912d98a3b761106a470c2 + url: "https://pub.dev" + source: hosted + version: "5.4.0" + google_sign_in_android: + dependency: transitive + description: + name: google_sign_in_android + sha256: "23f5f2ac9c007bf0cf02380baaa67fff039efbf38b7a2a285c376c753f9767fa" + url: "https://pub.dev" + source: hosted + version: "6.0.1" + google_sign_in_ios: + dependency: transitive + description: + name: google_sign_in_ios + sha256: "8b80074ccda41b62553010b311506f5022f7d2701e4f22765546b3125450f9f3" + url: "https://pub.dev" + source: hosted + version: "5.4.0" + google_sign_in_platform_interface: + dependency: transitive + description: + name: google_sign_in_platform_interface + sha256: "252d0fadcd1e7939f1e00602eca1020b585d448aaa4b87c33137ca8717cd9e87" + url: "https://pub.dev" + source: hosted + version: "2.2.0" + google_sign_in_web: + dependency: transitive + description: + name: google_sign_in_web + sha256: "5b35c221169a7b3e0fc15043ac09102ef542300ef92f2e1f05d5d8efde263af5" + url: "https://pub.dev" + source: hosted + version: "0.10.2" + googleapis: + dependency: "direct main" + description: + name: googleapis + sha256: "0140b42e942daf5fcf316645435c572fe968233c9e6841208b4ed28184ead48e" + url: "https://pub.dev" + source: hosted + version: "9.1.0" + graphs: + dependency: transitive + description: + name: graphs + sha256: ae0b3d956ff324c6f8671f08dcb2dbd71c99cdbf2aa3ca63a14190c47aa6679c + url: "https://pub.dev" + source: hosted + version: "2.1.0" + http: + dependency: "direct main" + description: + name: http + sha256: "2ed163531e071c2c6b7c659635112f24cb64ecbebf6af46b550d536c0b1aa112" + url: "https://pub.dev" + source: hosted + version: "0.13.4" + http_multi_server: + dependency: transitive + description: + name: http_multi_server + sha256: "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b" + url: "https://pub.dev" + source: hosted + version: "3.2.1" + http_parser: + dependency: transitive + description: + name: http_parser + sha256: db3060f22889f3d9d55f6a217565486737037eec3609f7f3eca4d0c67ee0d8a0 + url: "https://pub.dev" + source: hosted + version: "4.0.1" + iconify_flutter: + dependency: "direct main" + description: + name: iconify_flutter + sha256: "28e41d51ad4f1551c4105e007c200a3872532621a368ecf28fbad6c707a61acf" + url: "https://pub.dev" + source: hosted + version: "0.0.4" + intl: + dependency: transitive + description: + name: intl + sha256: "910f85bce16fb5c6f614e117efa303e85a1731bb0081edf3604a2ae6e9a3cc91" + url: "https://pub.dev" + source: hosted + version: "0.17.0" + io: + dependency: transitive + description: + name: io + sha256: "0d4c73c3653ab85bf696d51a9657604c900a370549196a91f33e4c39af760852" + url: "https://pub.dev" + source: hosted + version: "1.0.3" + js: + dependency: transitive + description: + name: js + sha256: a5e201311cb08bf3912ebbe9a2be096e182d703f881136ec1e81a2338a9e120d + url: "https://pub.dev" + source: hosted + version: "0.6.4" + json_annotation: + dependency: transitive + description: + name: json_annotation + sha256: cb314f00b2488de7bc575207e54402cd2f92363f333a7933fd1b0631af226baa + url: "https://pub.dev" + source: hosted + version: "4.6.0" + leak_tracker: + dependency: transitive + description: + name: leak_tracker + sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa" + url: "https://pub.dev" + source: hosted + version: "10.0.0" + leak_tracker_flutter_testing: + dependency: transitive + description: + name: leak_tracker_flutter_testing + sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0 + url: "https://pub.dev" + source: hosted + version: "2.0.1" + leak_tracker_testing: + dependency: transitive + description: + name: leak_tracker_testing + sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47 + url: "https://pub.dev" + source: hosted + version: "2.0.1" + lints: + dependency: transitive + description: + name: lints + sha256: a2c3d198cb5ea2e179926622d433331d8b58374ab8f29cdda6e863bd62fd369c + url: "https://pub.dev" + source: hosted + version: "1.0.1" + logger: + dependency: transitive + description: + name: logger + sha256: "5076f09225f91dc49289a4ccb92df2eeea9ea01cf7c26d49b3a1f04c6a49eec1" + url: "https://pub.dev" + source: hosted + version: "1.1.0" + logging: + dependency: transitive + description: + name: logging + sha256: "293ae2d49fd79d4c04944c3a26dfd313382d5f52e821ec57119230ae16031ad4" + url: "https://pub.dev" + source: hosted + version: "1.0.2" + matcher: + dependency: transitive + description: + name: matcher + sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb + url: "https://pub.dev" + source: hosted + version: "0.12.16+1" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" + url: "https://pub.dev" + source: hosted + version: "0.8.0" + meta: + dependency: transitive + description: + name: meta + sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04 + url: "https://pub.dev" + source: hosted + version: "1.11.0" + mime: + dependency: transitive + description: + name: mime + sha256: dab22e92b41aa1255ea90ddc4bc2feaf35544fd0728e209638cad041a6e3928a + url: "https://pub.dev" + source: hosted + version: "1.0.2" + nested: + dependency: transitive + description: + name: nested + sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20" + url: "https://pub.dev" + source: hosted + version: "1.0.0" + package_config: + dependency: transitive + description: + name: package_config + sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd" + url: "https://pub.dev" + source: hosted + version: "2.1.0" + path: + dependency: transitive + description: + name: path + sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" + url: "https://pub.dev" + source: hosted + version: "1.9.0" + path_drawing: + dependency: transitive + description: + name: path_drawing + sha256: a19347362f85a45aadf6bdfa3c04f18ff6676c445375eecd6251f9e09b9db551 + url: "https://pub.dev" + source: hosted + version: "1.0.0" + path_parsing: + dependency: transitive + description: + name: path_parsing + sha256: "9508ebdf1c3ac3a68ad5fb15edab8b026382999f18f77352349e56fbd74183ac" + url: "https://pub.dev" + source: hosted + version: "1.0.0" + path_provider: + dependency: transitive + description: + name: path_provider + sha256: "050e8e85e4b7fecdf2bb3682c1c64c4887a183720c802d323de8a5fd76d372dd" + url: "https://pub.dev" + source: hosted + version: "2.0.11" + path_provider_android: + dependency: transitive + description: + name: path_provider_android + sha256: cf7c403a541fc68cd398fb91a7eea8ec234813547d5b55245eed644d1246c5d8 + url: "https://pub.dev" + source: hosted + version: "2.0.16" + path_provider_ios: + dependency: transitive + description: + name: path_provider_ios + sha256: "641df59948e0fda05ca71f1dd6768d6da7f0ceb52aab734bf9050db54fca7f4c" + url: "https://pub.dev" + source: hosted + version: "2.0.10" + path_provider_linux: + dependency: transitive + description: + name: path_provider_linux + sha256: ab0987bf95bc591da42dffb38c77398fc43309f0b9b894dcc5d6f40c4b26c379 + url: "https://pub.dev" + source: hosted + version: "2.1.7" + path_provider_macos: + dependency: transitive + description: + name: path_provider_macos + sha256: "2a97e7fbb7ae9dcd0dfc1220a78e9ec3e71da691912e617e8715ff2a13086ae8" + url: "https://pub.dev" + source: hosted + version: "2.0.6" + path_provider_platform_interface: + dependency: transitive + description: + name: path_provider_platform_interface + sha256: "27dc7a224fcd07444cb5e0e60423ccacea3e13cf00fc5282ac2c918132da931d" + url: "https://pub.dev" + source: hosted + version: "2.0.4" + path_provider_windows: + dependency: transitive + description: + name: path_provider_windows + sha256: "999d3dc2ac03ca3f8433018efa40b73558fa4f9759bf8383a217861d120c7d74" + url: "https://pub.dev" + source: hosted + version: "2.1.0" + petitparser: + dependency: transitive + description: + name: petitparser + sha256: "2ebb289dc4764ec397f5cd3ca9881c6d17196130a7d646ed022a0dd9c2e25a71" + url: "https://pub.dev" + source: hosted + version: "5.0.0" + platform: + dependency: transitive + description: + name: platform + sha256: "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76" + url: "https://pub.dev" + source: hosted + version: "3.1.0" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + sha256: "075f927ebbab4262ace8d0b283929ac5410c0ac4e7fc123c76429564facfb757" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + pool: + dependency: transitive + description: + name: pool + sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a" + url: "https://pub.dev" + source: hosted + version: "1.5.1" + process: + dependency: transitive + description: + name: process + sha256: "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09" + url: "https://pub.dev" + source: hosted + version: "4.2.4" + provider: + dependency: transitive + description: + name: provider + sha256: "8d7d4c2df46d6a6270a4e10404bfecb18a937e3e00f710c260d0a10415ce6b7b" + url: "https://pub.dev" + source: hosted + version: "6.0.3" + pub_semver: + dependency: transitive + description: + name: pub_semver + sha256: "816c1a640e952d213ddd223b3e7aafae08cd9f8e1f6864eed304cc13b0272b07" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + pubspec_parse: + dependency: transitive + description: + name: pubspec_parse + sha256: "3686efe4a4613a4449b1a4ae08670aadbd3376f2e78d93e3f8f0919db02a7256" + url: "https://pub.dev" + source: hosted + version: "1.2.0" + quiver: + dependency: transitive + description: + name: quiver + sha256: "93982981971e812c94d4a6fa3a57b89f9ec12b38b6380cd3c1370c3b01e4580e" + url: "https://pub.dev" + source: hosted + version: "3.1.0" + rename: + dependency: "direct dev" + description: + name: rename + sha256: "2e3f2800712e00c66fee8eb6285d290c418e99fe3f69ca794d9fa09654bb005e" + url: "https://pub.dev" + source: hosted + version: "2.0.1" + shelf: + dependency: transitive + description: + name: shelf + sha256: f27c6406c89ab3921ed4a3bbdc38d48676f8b78fe537cbdbeb0d2c0f661026d7 + url: "https://pub.dev" + source: hosted + version: "1.3.1" + shelf_web_socket: + dependency: transitive + description: + name: shelf_web_socket + sha256: "6db16374bc3497d21aa0eebe674d3db9fdf82082aac0f04dc7b44e4af5b08afc" + url: "https://pub.dev" + source: hosted + version: "1.0.2" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.99" + source_span: + dependency: transitive + description: + name: source_span + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" + url: "https://pub.dev" + source: hosted + version: "1.10.0" + stack_trace: + dependency: transitive + description: + name: stack_trace + sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" + url: "https://pub.dev" + source: hosted + version: "1.11.1" + stream_channel: + dependency: transitive + description: + name: stream_channel + sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 + url: "https://pub.dev" + source: hosted + version: "2.1.2" + stream_transform: + dependency: transitive + description: + name: stream_transform + sha256: ed464977cb26a1f41537e177e190c67223dbd9f4f683489b6ab2e5d211ec564e + url: "https://pub.dev" + source: hosted + version: "2.0.0" + string_scanner: + dependency: transitive + description: + name: string_scanner + sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" + url: "https://pub.dev" + source: hosted + version: "1.2.0" + term_glyph: + dependency: transitive + description: + name: term_glyph + sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 + url: "https://pub.dev" + source: hosted + version: "1.2.1" + test_api: + dependency: transitive + description: + name: test_api + sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b" + url: "https://pub.dev" + source: hosted + version: "0.6.1" + timing: + dependency: transitive + description: + name: timing + sha256: c386d07d7f5efc613479a7c4d9d64b03710b03cfaa7e8ad5f2bfb295a1f0dfad + url: "https://pub.dev" + source: hosted + version: "1.0.0" + typed_data: + dependency: transitive + description: + name: typed_data + sha256: "26f87ade979c47a150c9eaab93ccd2bebe70a27dc0b4b29517f2904f04eb11a5" + url: "https://pub.dev" + source: hosted + version: "1.3.1" + 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: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957 + url: "https://pub.dev" + source: hosted + version: "13.0.0" + watcher: + dependency: transitive + description: + name: watcher + sha256: e42dfcc48f67618344da967b10f62de57e04bae01d9d3af4c2596f3712a88c99 + url: "https://pub.dev" + source: hosted + version: "1.0.1" + web_socket_channel: + dependency: transitive + description: + name: web_socket_channel + sha256: "3a969ddcc204a3e34e863d204b29c0752716f78b6f9cc8235083208d268a4ccd" + url: "https://pub.dev" + source: hosted + version: "2.2.0" + win32: + dependency: transitive + description: + name: win32 + sha256: "6b75ac2ddd42f5c226fdaf4498a2b04071c06f1f2b8f7ab1c3f77cc7f2285ff1" + url: "https://pub.dev" + source: hosted + version: "2.7.0" + xdg_directories: + dependency: transitive + description: + name: xdg_directories + sha256: "060b6e1c891d956f72b5ac9463466c37cce3fa962a921532fc001e86fe93438e" + url: "https://pub.dev" + source: hosted + version: "0.2.0+1" + xml: + dependency: transitive + description: + name: xml + sha256: ac0e3f4bf00ba2708c33fbabbbe766300e509f8c82dbd4ab6525039813f7e2fb + url: "https://pub.dev" + source: hosted + version: "6.1.0" + yaml: + dependency: transitive + description: + name: yaml + sha256: "23812a9b125b48d4007117254bca50abb6c712352927eece9e155207b1db2370" + url: "https://pub.dev" + source: hosted + version: "3.1.1" +sdks: + dart: ">=3.2.0-0 <4.0.0" + flutter: ">=3.0.0" diff --git a/cping-old/pubspec.yaml b/cping-old/pubspec.yaml new file mode 100644 index 0000000..baff754 --- /dev/null +++ b/cping-old/pubspec.yaml @@ -0,0 +1,105 @@ +name: cping +description: An android to app to remind you of upcoming coding contests. + +# The following line prevents the package from being accidentally published to +# pub.dev using `flutter pub publish`. This is preferred for private packages. +publish_to: 'none' # Remove this line if you wish to publish to pub.dev + +# The following defines the version and build number for your application. +# A version number is three numbers separated by dots, like 1.2.43 +# followed by an optional build number separated by a +. +# Both the version and the builder number may be overridden in flutter +# build by specifying --build-name and --build-number, respectively. +# In Android, build-name is used as versionName while build-number used as versionCode. +# Read more about Android versioning at https://developer.android.com/studio/publish/versioning +# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. +# Read more about iOS versioning at +# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html +version: 1.0.0+1 + +environment: + sdk: ">=2.12.0 <3.0.0" + +# Dependencies specify other packages that your package needs in order to work. +# To automatically upgrade your package dependencies to the latest versions +# consider running `flutter pub upgrade --major-versions`. Alternatively, +# dependencies can be manually updated by changing the version numbers below to +# the latest version available on pub.dev. To see which dependencies have newer +# versions available, run `flutter pub outdated`. +dependencies: + flutter: + sdk: flutter + firebase_auth: ^3.4.1 + google_sign_in: + flutter_bloc: + equatable: + font_awesome_flutter: + http: + googleapis: + iconify_flutter: ^0.0.4 + # The following adds the Cupertino Icons font to your application. + # Use with the CupertinoIcons class for iOS style icons. + cupertino_icons: ^1.0.2 + cloud_firestore: ^3.2.1 + flutter_spinkit: ^5.1.0 + google_fonts: 2.2.0 + fluttertoast: ^8.0.9 + firebase_app_check: ^0.0.6+17 +dev_dependencies: + build_runner: + # The "flutter_lints" package below contains a set of recommended lints to + # encourage good coding practices. The lint set provided by the package is + # activated in the `analysis_options.yaml` file located at the root of your + # package. See that file for information about deactivating specific lint + # rules and activating additional ones. + flutter_lints: ^1.0.0 + rename: ^2.0.1 + +# For information on the generic Dart part of this file, see the +# following page: https://dart.dev/tools/pub/pubspec + +# The following section is specific to Flutter. +flutter: + + # The following line ensures that the Material Icons font is + # included with your application, so that you can use the icons in + # the material Icons class. + uses-material-design: true + + # To add assets to your application, add an assets section, like this: + assets: + - assets/ + - assets/images/ + + # An image asset can refer to one or more resolution-specific "variants", see + # https://flutter.dev/assets-and-images/#resolution-aware. + + # For details regarding adding assets from package dependencies, see + # https://flutter.dev/assets-and-images/#from-packages + + # To add custom fonts to your application, add a fonts section here, + # in this "flutter" section. Each entry in this list should have a + # "family" key with the font family name, and a "fonts" key with a + # list giving the asset and other descriptors for the font. For + # example: + # fonts: + # - family: Schyler + # fonts: + # - asset: fonts/Schyler-Regular.ttf + # - asset: fonts/Schyler-Italic.ttf + # style: italic + # - family: Trajan Pro + # fonts: + # - asset: fonts/TrajanPro.ttf + # - asset: fonts/TrajanPro_Bold.ttf + # weight: 700 + # + # fonts: + # - family: Kaisei + # fonts: + # - asset: assets/fonts/kaisei.ttf + # - family: Roboto + # fonts: + # - asset: assets/fonts/roboto.ttf + # For details regarding fonts from package dependencies, + # see https://flutter.dev/custom-fonts/#from-packages diff --git a/cping/.gitignore b/cping/.gitignore index 544fe57..29a3a50 100644 --- a/cping/.gitignore +++ b/cping/.gitignore @@ -8,6 +8,7 @@ .buildlog/ .history .svn/ +migrate_working_dir/ # IntelliJ related *.iml @@ -26,14 +27,10 @@ .dart_tool/ .flutter-plugins .flutter-plugins-dependencies -.packages .pub-cache/ .pub/ /build/ -# Web related -lib/generated_plugin_registrant.dart - # Symbolication related app.*.symbols @@ -44,7 +41,3 @@ app.*.map.json /android/app/debug /android/app/profile /android/app/release - -.fvm/ - -/android/gradle.properties \ No newline at end of file diff --git a/cping/.metadata b/cping/.metadata index 0301ca1..d2765fc 100644 --- a/cping/.metadata +++ b/cping/.metadata @@ -4,7 +4,42 @@ # This file should be version controlled and should not be manually edited. version: - revision: 0b5d99eae6174b54ecca0a3fef6ba69228adc552 - channel: master + revision: "54e66469a933b60ddf175f858f82eaeb97e48c8d" + channel: "stable" project_type: app + +# Tracks metadata for the flutter migrate command +migration: + platforms: + - platform: root + create_revision: 54e66469a933b60ddf175f858f82eaeb97e48c8d + base_revision: 54e66469a933b60ddf175f858f82eaeb97e48c8d + - platform: android + create_revision: 54e66469a933b60ddf175f858f82eaeb97e48c8d + base_revision: 54e66469a933b60ddf175f858f82eaeb97e48c8d + - platform: ios + create_revision: 54e66469a933b60ddf175f858f82eaeb97e48c8d + base_revision: 54e66469a933b60ddf175f858f82eaeb97e48c8d + - platform: linux + create_revision: 54e66469a933b60ddf175f858f82eaeb97e48c8d + base_revision: 54e66469a933b60ddf175f858f82eaeb97e48c8d + - platform: macos + create_revision: 54e66469a933b60ddf175f858f82eaeb97e48c8d + base_revision: 54e66469a933b60ddf175f858f82eaeb97e48c8d + - platform: web + create_revision: 54e66469a933b60ddf175f858f82eaeb97e48c8d + base_revision: 54e66469a933b60ddf175f858f82eaeb97e48c8d + - platform: windows + create_revision: 54e66469a933b60ddf175f858f82eaeb97e48c8d + base_revision: 54e66469a933b60ddf175f858f82eaeb97e48c8d + + # 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/cping/README.md b/cping/README.md new file mode 100644 index 0000000..83d0e8b --- /dev/null +++ b/cping/README.md @@ -0,0 +1,16 @@ +# cping + +A new Flutter project. + +## Getting Started + +This project is a starting point for a Flutter application. + +A few resources to get you started if this is your first Flutter project: + +- [Lab: Write your first Flutter app](https://docs.flutter.dev/get-started/codelab) +- [Cookbook: Useful Flutter samples](https://docs.flutter.dev/cookbook) + +For help getting started with Flutter development, view the +[online documentation](https://docs.flutter.dev/), which offers tutorials, +samples, guidance on mobile development, and a full API reference. diff --git a/cping/analysis_options.yaml b/cping/analysis_options.yaml index 61b6c4d..0d29021 100644 --- a/cping/analysis_options.yaml +++ b/cping/analysis_options.yaml @@ -13,8 +13,7 @@ linter: # The lint rules applied to this project can be customized in the # section below to disable rules from the `package:flutter_lints/flutter.yaml` # included above or to enable additional rules. A list of all available lints - # and their documentation is published at - # https://dart-lang.github.io/linter/lints/index.html. + # 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 diff --git a/cping/android/.gitignore b/cping/android/.gitignore index 606f576..6f56801 100644 --- a/cping/android/.gitignore +++ b/cping/android/.gitignore @@ -9,5 +9,5 @@ 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 \ No newline at end of file +**/*.keystore +**/*.jks diff --git a/cping/android/app/build.gradle b/cping/android/app/build.gradle index 79a3ec9..a496311 100644 --- a/cping/android/app/build.gradle +++ b/cping/android/app/build.gradle @@ -1,3 +1,9 @@ +plugins { + id "com.android.application" + id "kotlin-android" + id "dev.flutter.flutter-gradle-plugin" +} + def localProperties = new Properties() def localPropertiesFile = rootProject.file('local.properties') if (localPropertiesFile.exists()) { @@ -6,11 +12,6 @@ if (localPropertiesFile.exists()) { } } -def flutterRoot = localProperties.getProperty('flutter.sdk') -if (flutterRoot == null) { - throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") -} - def flutterVersionCode = localProperties.getProperty('flutter.versionCode') if (flutterVersionCode == null) { flutterVersionCode = '1' @@ -21,43 +22,40 @@ if (flutterVersionName == null) { flutterVersionName = '1.0' } -apply plugin: 'com.android.application' -apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" - -def keystoreProperties = new Properties() -def keystorePropertiesFile = rootProject.file('key.properties') -if (keystorePropertiesFile.exists()) { - keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) -} - android { - compileSdkVersion 32 + namespace "com.example.cping" + compileSdk flutter.compileSdkVersion + ndkVersion flutter.ndkVersion compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } + kotlinOptions { + jvmTarget = '1.8' + } + + sourceSets { + main.java.srcDirs += 'src/main/kotlin' + } + defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). - applicationId "com.neumannics.cping" - minSdkVersion 21 - targetSdkVersion 32 + applicationId "com.example.cping" + // 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. + minSdkVersion flutter.minSdkVersion + targetSdkVersion flutter.targetSdkVersion versionCode flutterVersionCode.toInteger() versionName flutterVersionName } - signingConfigs { - release { - storeFile file(RELEASE_STORE_FILE) - storePassword RELEASE_STORE_PASSWORD - keyAlias RELEASE_KEY_ALIAS - keyPassword RELEASE_KEY_PASSWORD - } - } buildTypes { release { - signingConfig signingConfigs.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 } } } @@ -66,13 +64,4 @@ flutter { source '../..' } -apply plugin: 'com.google.gms.google-services' -dependencies { - // Import the Firebase BoM - implementation platform('com.google.firebase:firebase-bom:30.2.0') - // Add the dependency for the Firebase SDK for Google Analytics - // When using the BoM, don't specify versions in Firebase dependencies - implementation 'com.google.firebase:firebase-analytics' - // Add the dependencies for any other desired Firebase products - // https://firebase.google.com/docs/android/setup#available-libraries -} \ No newline at end of file +dependencies {} diff --git a/cping/android/app/src/debug/AndroidManifest.xml b/cping/android/app/src/debug/AndroidManifest.xml index 889f331..399f698 100644 --- a/cping/android/app/src/debug/AndroidManifest.xml +++ b/cping/android/app/src/debug/AndroidManifest.xml @@ -1,6 +1,6 @@ - - diff --git a/cping/android/app/src/main/AndroidManifest.xml b/cping/android/app/src/main/AndroidManifest.xml index 5205ee1..ab1a3c5 100644 --- a/cping/android/app/src/main/AndroidManifest.xml +++ b/cping/android/app/src/main/AndroidManifest.xml @@ -1,7 +1,7 @@ - + - - - - - - - - - + @@ -39,9 +30,15 @@ android:name="flutterEmbedding" android:value="2" /> - - - - - + + + + + + + diff --git a/cping/android/app/src/main/kotlin/com/example/cping/MainActivity.kt b/cping/android/app/src/main/kotlin/com/example/cping/MainActivity.kt new file mode 100644 index 0000000..d03029e --- /dev/null +++ b/cping/android/app/src/main/kotlin/com/example/cping/MainActivity.kt @@ -0,0 +1,5 @@ +package com.example.cping + +import io.flutter.embedding.android.FlutterActivity + +class MainActivity: FlutterActivity() diff --git a/cping/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/cping/android/app/src/main/res/mipmap-hdpi/ic_launcher.png index a9978bfa61a7dcf41bb26b1d874bdaff9697cf86..db77bb4b7b0906d62b1847e87f15cdcacf6a4f29 100644 GIT binary patch literal 544 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!h8bpbvhu0Wd6uZuB!w&u2PAxD2eNXD>P5D~Wn-+_Wa#27Xc zC?Zj|6r#X(-D3u$NCt}(Ms06KgJ4FxJVv{GM)!I~&n8Bnc94O7-Hd)cjDZswgC;Qs zO=b+9!WcT8F?0rF7!Uys2bs@gozCP?z~o%U|N3vA*22NaGQG zlg@K`O_XuxvZ&Ks^m&R!`&1=spLvfx7oGDKDwpwW`#iqdw@AL`7MR}m`rwr|mZgU`8P7SBkL78fFf!WnuYWm$5Z0 zNXhDbCv&49sM544K|?c)WrFfiZvCi9h0O)B3Pgg&ebxsLQ05GG~ AQ2+n{ literal 2896 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 literal 3883 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 diff --git a/cping/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/cping/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png index 43c3c8f470d2ee56e8bf30297ec0637eec634ad9..d5f1c8d34e7a88e3f88bea192c3a370d44689c3c 100644 GIT binary patch literal 1031 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q8Ax83A=Cw=BuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFa`(sgt!6~Yi|1%a`XoT0ojZ}lNrNjb9xjc(B0U1_% zz5^97Xt*%oq$rQy4?0GKNfJ44uvxI)gC`h-NZ|&0-7(qS@?b!5r36oQ}zyZrNO3 zMO=Or+<~>+A&uN&E!^Sl+>xE!QC-|oJv`ApDhqC^EWD|@=#J`=d#Xzxs4ah}w&Jnc z$|q_opQ^2TrnVZ0o~wh<3t%W&flvYGe#$xqda2bR_R zvPYgMcHgjZ5nSA^lJr%;<&0do;O^tDDh~=pIxA#coaCY>&N%M2^tq^U%3DB@ynvKo}b?yu-bFc-u0JHzced$sg7S3zqI(2 z#Km{dPr7I=pQ5>FuK#)QwK?Y`E`B?nP+}U)I#c1+FM*1kNvWG|a(TpksZQ3B@sD~b zpQ2)*V*TdwjFOtHvV|;OsiDqHi=6%)o4b!)x$)%9pGTsE z-JL={-Ffv+T87W(Xpooq<`r*VzWQcgBN$$`u}f>-ZQI1BB8ykN*=e4rIsJx9>z}*o zo~|9I;xof literal 7124 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 literal 9547 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