From 43c7853ff1be236dba7230c29060ba005b364134 Mon Sep 17 00:00:00 2001 From: abiyasa05 Date: Tue, 31 Dec 2024 09:30:06 +0700 Subject: [PATCH] create: new folder --- assets.rar | Bin 122165 -> 0 bytes assets/facebook.png | Bin 0 -> 33521 bytes assets/fonts/Billabong.ttf | Bin 0 -> 132528 bytes assets/images/account_active_icon.svg | 1 + assets/images/account_icon.svg | 1 + assets/images/camera_icon.svg | 1 + assets/images/comment_icon.svg | 1 + assets/images/home_active_icon.svg | 1 + assets/images/home_icon.svg | 1 + assets/images/love_active_icon.svg | 1 + assets/images/love_icon.svg | 1 + assets/images/loved_icon.svg | 1 + assets/images/message_icon.svg | 1 + assets/images/save_icon.svg | 1 + assets/images/search_active_icon.svg | 2 + assets/images/search_icon.svg | 1 + assets/images/upload_active_icon.svg | 1 + assets/images/upload_icon.svg | 1 + assets/instagram_logo.png | Bin 0 -> 20129 bytes clone-instagram-login-Refactoring.zip | Bin 560868 -> 0 bytes clone-instagram-login-Refactoring/.gitignore | 46 + clone-instagram-login-Refactoring/.metadata | 45 + clone-instagram-login-Refactoring/README.md | 16 + .../analysis_options.yaml | 29 + .../android/.gitignore | 13 + .../android/app/build.gradle | 71 + .../android/app/src/debug/AndroidManifest.xml | 8 + .../android/app/src/main/AndroidManifest.xml | 34 + .../example_widget_testing/MainActivity.kt | 6 + .../res/drawable-v21/launch_background.xml | 12 + .../main/res/drawable/launch_background.xml | 12 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 544 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 442 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 721 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 1031 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 1443 bytes .../app/src/main/res/values-night/styles.xml | 18 + .../app/src/main/res/values/styles.xml | 18 + .../app/src/profile/AndroidManifest.xml | 8 + .../android/build.gradle | 31 + .../android/gradle.properties | 3 + .../gradle/wrapper/gradle-wrapper.properties | 5 + .../android/settings.gradle | 11 + .../assets/facebook.png | Bin 0 -> 33521 bytes .../assets/fonts/Billabong.ttf | Bin 0 -> 132528 bytes .../assets/images/account_active_icon.svg | 1 + .../assets/images/account_icon.svg | 1 + .../assets/images/camera_icon.svg | 1 + .../assets/images/comment_icon.svg | 1 + .../assets/images/home_active_icon.svg | 1 + .../assets/images/home_icon.svg | 1 + .../assets/images/love_active_icon.svg | 1 + .../assets/images/love_icon.svg | 1 + .../assets/images/loved_icon.svg | 1 + .../assets/images/message_icon.svg | 1 + .../assets/images/save_icon.svg | 1 + .../assets/images/search_active_icon.svg | 2 + .../assets/images/search_icon.svg | 1 + .../assets/images/upload_active_icon.svg | 1 + .../assets/images/upload_icon.svg | 1 + .../assets/instagram_logo.png | Bin 0 -> 20129 bytes .../integration_test/app_test.dart | 206 ++ .../integration_test/calculator_test.dart | 61 + .../ios/.gitignore | 34 + .../ios/Flutter/AppFrameworkInfo.plist | 26 + .../ios/Flutter/Debug.xcconfig | 1 + .../ios/Flutter/Release.xcconfig | 1 + .../ios/Runner.xcodeproj/project.pbxproj | 481 ++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 87 + .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../ios/Runner/AppDelegate.swift | 13 + .../AppIcon.appiconset/Contents.json | 122 + .../Icon-App-1024x1024@1x.png | Bin 0 -> 10932 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 0 -> 564 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 0 -> 1283 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 0 -> 1588 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 0 -> 1025 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 0 -> 1716 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 0 -> 1920 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 0 -> 1283 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 0 -> 1895 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 0 -> 2665 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 0 -> 2665 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 0 -> 3831 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 0 -> 1888 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 0 -> 3294 bytes .../Icon-App-83.5x83.5@2x.png | Bin 0 -> 3612 bytes .../LaunchImage.imageset/Contents.json | 23 + .../LaunchImage.imageset/LaunchImage.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@2x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@3x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/README.md | 5 + .../Runner/Base.lproj/LaunchScreen.storyboard | 37 + .../ios/Runner/Base.lproj/Main.storyboard | 26 + .../ios/Runner/Info.plist | 51 + .../ios/Runner/Runner-Bridging-Header.h | 1 + .../lib/app/data/models/navbar_menu.dart | 31 + .../lib/app/data/models/post.dart | 48 + .../lib/app/data/models/profile.dart | 50 + .../lib/app/modules/account/account_page.dart | 116 + .../account/components/account_name.dart | 42 + .../account/components/account_stat.dart | 31 + .../account/components/account_tab.dart | 49 + .../account/components/grey_button.dart | 23 + .../account/components/highlight_item.dart | 58 + .../account/components/highlight_list.dart | 81 + .../account/components/profile_buttons.dart | 63 + .../components/profile_information.dart | 43 + .../account/components/profile_pic.dart | 23 + .../account/components/tab_delegate.dart | 32 + .../app/modules/activity/activity_page.dart | 40 + .../lib/app/modules/calculator.dart | 66 + .../modules/home/components/story_item.dart | 63 + .../modules/home/components/user_story.dart | 76 + .../lib/app/modules/home/home_page.dart | 126 + .../login/components/facebook_login.dart | 30 + .../login/components/forgot_access.dart | 40 + .../login/components/language_dropdown.dart | 38 + .../login/components/login_button.dart | 41 + .../modules/login/components/or_divider.dart | 40 + .../login/components/password_textbox.dart | 46 + .../login/components/signup_section.dart | 47 + .../login/components/username_textbox.dart | 49 + .../lib/app/modules/login/login_page.dart | 133 ++ .../lib/app/modules/post/post_page.dart | 76 + .../components/search_category_item.dart | 30 + .../app/modules/search/search_list_page.dart | 43 + .../lib/app/modules/search/search_page.dart | 73 + .../lib/app/modules/upload/upload_page.dart | 40 + .../lib/app/widgets/bottom_navbar.dart | 41 + .../lib/app/widgets/post_item.dart | 303 +++ .../lib/app/widgets/post_thumbnail.dart | 23 + .../lib/app/widgets/root_app.dart | 20 + .../lib/core/theme/colors.dart | 10 + .../core/values/constant/navbarmenu_json.dart | 42 + .../lib/core/values/constant/post_json.dart | 68 + .../core/values/constant/profile_json.dart | 14 + .../values/constant/profile_tabs_json.dart | 14 + .../lib/core/values/constant/search_json.dart | 28 + .../lib/core/values/constant/story_json.dart | 38 + .../lib/main.dart | 44 + .../linux/.gitignore | 1 + .../linux/CMakeLists.txt | 138 ++ .../linux/flutter/CMakeLists.txt | 88 + .../flutter/generated_plugin_registrant.cc | 11 + .../flutter/generated_plugin_registrant.h | 15 + .../linux/flutter/generated_plugins.cmake | 23 + .../linux/main.cc | 6 + .../linux/my_application.cc | 104 + .../linux/my_application.h | 18 + .../macos/.gitignore | 7 + .../macos/Flutter/Flutter-Debug.xcconfig | 1 + .../macos/Flutter/Flutter-Release.xcconfig | 1 + .../Flutter/GeneratedPluginRegistrant.swift | 10 + .../macos/Runner.xcodeproj/project.pbxproj | 572 +++++ .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 87 + .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../macos/Runner/AppDelegate.swift | 9 + .../AppIcon.appiconset/Contents.json | 68 + .../AppIcon.appiconset/app_icon_1024.png | Bin 0 -> 102994 bytes .../AppIcon.appiconset/app_icon_128.png | Bin 0 -> 5680 bytes .../AppIcon.appiconset/app_icon_16.png | Bin 0 -> 520 bytes .../AppIcon.appiconset/app_icon_256.png | Bin 0 -> 14142 bytes .../AppIcon.appiconset/app_icon_32.png | Bin 0 -> 1066 bytes .../AppIcon.appiconset/app_icon_512.png | Bin 0 -> 36406 bytes .../AppIcon.appiconset/app_icon_64.png | Bin 0 -> 2218 bytes .../macos/Runner/Base.lproj/MainMenu.xib | 343 +++ .../macos/Runner/Configs/AppInfo.xcconfig | 14 + .../macos/Runner/Configs/Debug.xcconfig | 2 + .../macos/Runner/Configs/Release.xcconfig | 2 + .../macos/Runner/Configs/Warnings.xcconfig | 13 + .../macos/Runner/DebugProfile.entitlements | 12 + .../macos/Runner/Info.plist | 32 + .../macos/Runner/MainFlutterWindow.swift | 15 + .../macos/Runner/Release.entitlements | 8 + .../pubspec.lock | 476 ++++ .../pubspec.yaml | 100 + .../test.rar | Bin 19450 -> 21503 bytes .../test/account_page_test.dart | 2128 +++++++++++++++++ .../test/calculator_test.dart | 39 + .../test/helper.dart | 27 + .../test/search_page_test.dart | 326 +++ .../test/task_2_test.dart | 358 +++ .../test/task_3_test.dart | 348 +++ .../test/task_4_test.dart | 1199 ++++++++++ .../test/task_5_test.dart | 1295 ++++++++++ .../test/test_library.dart | 157 ++ .../web/favicon.png | Bin 0 -> 917 bytes .../web/icons/Icon-192.png | Bin 0 -> 5292 bytes .../web/icons/Icon-512.png | Bin 0 -> 8252 bytes .../web/icons/Icon-maskable-192.png | Bin 0 -> 5594 bytes .../web/icons/Icon-maskable-512.png | Bin 0 -> 20998 bytes .../web/index.html | 58 + .../web/manifest.json | 35 + .../windows/.gitignore | 17 + .../windows/CMakeLists.txt | 101 + .../windows/flutter/CMakeLists.txt | 104 + .../flutter/generated_plugin_registrant.cc | 11 + .../flutter/generated_plugin_registrant.h | 15 + .../windows/flutter/generated_plugins.cmake | 23 + .../windows/runner/CMakeLists.txt | 39 + .../windows/runner/Runner.rc | 121 + .../windows/runner/flutter_window.cpp | 61 + .../windows/runner/flutter_window.h | 33 + .../windows/runner/main.cpp | 43 + .../windows/runner/resource.h | 16 + .../windows/runner/resources/app_icon.ico | Bin 0 -> 33772 bytes .../windows/runner/runner.exe.manifest | 20 + .../windows/runner/utils.cpp | 64 + .../windows/runner/utils.h | 19 + .../windows/runner/win32_window.cpp | 245 ++ .../windows/runner/win32_window.h | 98 + test/account_page_test.dart | 2128 +++++++++++++++++ test/helper.dart | 27 + test/home_page_test.dart | 1090 +++++++++ test/login_page_test.dart | 434 ++++ test/post_page_test.dart | 0 test/search_page_test.dart | 326 +++ 225 files changed, 17275 insertions(+) delete mode 100644 assets.rar create mode 100644 assets/facebook.png create mode 100644 assets/fonts/Billabong.ttf create mode 100644 assets/images/account_active_icon.svg create mode 100644 assets/images/account_icon.svg create mode 100644 assets/images/camera_icon.svg create mode 100644 assets/images/comment_icon.svg create mode 100644 assets/images/home_active_icon.svg create mode 100644 assets/images/home_icon.svg create mode 100644 assets/images/love_active_icon.svg create mode 100644 assets/images/love_icon.svg create mode 100644 assets/images/loved_icon.svg create mode 100644 assets/images/message_icon.svg create mode 100644 assets/images/save_icon.svg create mode 100644 assets/images/search_active_icon.svg create mode 100644 assets/images/search_icon.svg create mode 100644 assets/images/upload_active_icon.svg create mode 100644 assets/images/upload_icon.svg create mode 100644 assets/instagram_logo.png delete mode 100644 clone-instagram-login-Refactoring.zip create mode 100644 clone-instagram-login-Refactoring/.gitignore create mode 100644 clone-instagram-login-Refactoring/.metadata create mode 100644 clone-instagram-login-Refactoring/README.md create mode 100644 clone-instagram-login-Refactoring/analysis_options.yaml create mode 100644 clone-instagram-login-Refactoring/android/.gitignore create mode 100644 clone-instagram-login-Refactoring/android/app/build.gradle create mode 100644 clone-instagram-login-Refactoring/android/app/src/debug/AndroidManifest.xml create mode 100644 clone-instagram-login-Refactoring/android/app/src/main/AndroidManifest.xml create mode 100644 clone-instagram-login-Refactoring/android/app/src/main/kotlin/com/example/example_widget_testing/MainActivity.kt create mode 100644 clone-instagram-login-Refactoring/android/app/src/main/res/drawable-v21/launch_background.xml create mode 100644 clone-instagram-login-Refactoring/android/app/src/main/res/drawable/launch_background.xml create mode 100644 clone-instagram-login-Refactoring/android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 clone-instagram-login-Refactoring/android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 clone-instagram-login-Refactoring/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 clone-instagram-login-Refactoring/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 clone-instagram-login-Refactoring/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 clone-instagram-login-Refactoring/android/app/src/main/res/values-night/styles.xml create mode 100644 clone-instagram-login-Refactoring/android/app/src/main/res/values/styles.xml create mode 100644 clone-instagram-login-Refactoring/android/app/src/profile/AndroidManifest.xml create mode 100644 clone-instagram-login-Refactoring/android/build.gradle create mode 100644 clone-instagram-login-Refactoring/android/gradle.properties create mode 100644 clone-instagram-login-Refactoring/android/gradle/wrapper/gradle-wrapper.properties create mode 100644 clone-instagram-login-Refactoring/android/settings.gradle create mode 100644 clone-instagram-login-Refactoring/assets/facebook.png create mode 100644 clone-instagram-login-Refactoring/assets/fonts/Billabong.ttf create mode 100644 clone-instagram-login-Refactoring/assets/images/account_active_icon.svg create mode 100644 clone-instagram-login-Refactoring/assets/images/account_icon.svg create mode 100644 clone-instagram-login-Refactoring/assets/images/camera_icon.svg create mode 100644 clone-instagram-login-Refactoring/assets/images/comment_icon.svg create mode 100644 clone-instagram-login-Refactoring/assets/images/home_active_icon.svg create mode 100644 clone-instagram-login-Refactoring/assets/images/home_icon.svg create mode 100644 clone-instagram-login-Refactoring/assets/images/love_active_icon.svg create mode 100644 clone-instagram-login-Refactoring/assets/images/love_icon.svg create mode 100644 clone-instagram-login-Refactoring/assets/images/loved_icon.svg create mode 100644 clone-instagram-login-Refactoring/assets/images/message_icon.svg create mode 100644 clone-instagram-login-Refactoring/assets/images/save_icon.svg create mode 100644 clone-instagram-login-Refactoring/assets/images/search_active_icon.svg create mode 100644 clone-instagram-login-Refactoring/assets/images/search_icon.svg create mode 100644 clone-instagram-login-Refactoring/assets/images/upload_active_icon.svg create mode 100644 clone-instagram-login-Refactoring/assets/images/upload_icon.svg create mode 100644 clone-instagram-login-Refactoring/assets/instagram_logo.png create mode 100644 clone-instagram-login-Refactoring/integration_test/app_test.dart create mode 100644 clone-instagram-login-Refactoring/integration_test/calculator_test.dart create mode 100644 clone-instagram-login-Refactoring/ios/.gitignore create mode 100644 clone-instagram-login-Refactoring/ios/Flutter/AppFrameworkInfo.plist create mode 100644 clone-instagram-login-Refactoring/ios/Flutter/Debug.xcconfig create mode 100644 clone-instagram-login-Refactoring/ios/Flutter/Release.xcconfig create mode 100644 clone-instagram-login-Refactoring/ios/Runner.xcodeproj/project.pbxproj create mode 100644 clone-instagram-login-Refactoring/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 clone-instagram-login-Refactoring/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 clone-instagram-login-Refactoring/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 clone-instagram-login-Refactoring/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 clone-instagram-login-Refactoring/ios/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 clone-instagram-login-Refactoring/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 clone-instagram-login-Refactoring/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 clone-instagram-login-Refactoring/ios/Runner/AppDelegate.swift create mode 100644 clone-instagram-login-Refactoring/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 clone-instagram-login-Refactoring/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png create mode 100644 clone-instagram-login-Refactoring/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png create mode 100644 clone-instagram-login-Refactoring/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png create mode 100644 clone-instagram-login-Refactoring/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png create mode 100644 clone-instagram-login-Refactoring/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png create mode 100644 clone-instagram-login-Refactoring/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png create mode 100644 clone-instagram-login-Refactoring/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png create mode 100644 clone-instagram-login-Refactoring/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png create mode 100644 clone-instagram-login-Refactoring/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png create mode 100644 clone-instagram-login-Refactoring/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png create mode 100644 clone-instagram-login-Refactoring/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png create mode 100644 clone-instagram-login-Refactoring/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png create mode 100644 clone-instagram-login-Refactoring/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png create mode 100644 clone-instagram-login-Refactoring/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png create mode 100644 clone-instagram-login-Refactoring/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png create mode 100644 clone-instagram-login-Refactoring/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json create mode 100644 clone-instagram-login-Refactoring/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png create mode 100644 clone-instagram-login-Refactoring/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png create mode 100644 clone-instagram-login-Refactoring/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png create mode 100644 clone-instagram-login-Refactoring/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md create mode 100644 clone-instagram-login-Refactoring/ios/Runner/Base.lproj/LaunchScreen.storyboard create mode 100644 clone-instagram-login-Refactoring/ios/Runner/Base.lproj/Main.storyboard create mode 100644 clone-instagram-login-Refactoring/ios/Runner/Info.plist create mode 100644 clone-instagram-login-Refactoring/ios/Runner/Runner-Bridging-Header.h create mode 100644 clone-instagram-login-Refactoring/lib/app/data/models/navbar_menu.dart create mode 100644 clone-instagram-login-Refactoring/lib/app/data/models/post.dart create mode 100644 clone-instagram-login-Refactoring/lib/app/data/models/profile.dart create mode 100644 clone-instagram-login-Refactoring/lib/app/modules/account/account_page.dart create mode 100644 clone-instagram-login-Refactoring/lib/app/modules/account/components/account_name.dart create mode 100644 clone-instagram-login-Refactoring/lib/app/modules/account/components/account_stat.dart create mode 100644 clone-instagram-login-Refactoring/lib/app/modules/account/components/account_tab.dart create mode 100644 clone-instagram-login-Refactoring/lib/app/modules/account/components/grey_button.dart create mode 100644 clone-instagram-login-Refactoring/lib/app/modules/account/components/highlight_item.dart create mode 100644 clone-instagram-login-Refactoring/lib/app/modules/account/components/highlight_list.dart create mode 100644 clone-instagram-login-Refactoring/lib/app/modules/account/components/profile_buttons.dart create mode 100644 clone-instagram-login-Refactoring/lib/app/modules/account/components/profile_information.dart create mode 100644 clone-instagram-login-Refactoring/lib/app/modules/account/components/profile_pic.dart create mode 100644 clone-instagram-login-Refactoring/lib/app/modules/account/components/tab_delegate.dart create mode 100644 clone-instagram-login-Refactoring/lib/app/modules/activity/activity_page.dart create mode 100644 clone-instagram-login-Refactoring/lib/app/modules/calculator.dart create mode 100644 clone-instagram-login-Refactoring/lib/app/modules/home/components/story_item.dart create mode 100644 clone-instagram-login-Refactoring/lib/app/modules/home/components/user_story.dart create mode 100644 clone-instagram-login-Refactoring/lib/app/modules/home/home_page.dart create mode 100644 clone-instagram-login-Refactoring/lib/app/modules/login/components/facebook_login.dart create mode 100644 clone-instagram-login-Refactoring/lib/app/modules/login/components/forgot_access.dart create mode 100644 clone-instagram-login-Refactoring/lib/app/modules/login/components/language_dropdown.dart create mode 100644 clone-instagram-login-Refactoring/lib/app/modules/login/components/login_button.dart create mode 100644 clone-instagram-login-Refactoring/lib/app/modules/login/components/or_divider.dart create mode 100644 clone-instagram-login-Refactoring/lib/app/modules/login/components/password_textbox.dart create mode 100644 clone-instagram-login-Refactoring/lib/app/modules/login/components/signup_section.dart create mode 100644 clone-instagram-login-Refactoring/lib/app/modules/login/components/username_textbox.dart create mode 100644 clone-instagram-login-Refactoring/lib/app/modules/login/login_page.dart create mode 100644 clone-instagram-login-Refactoring/lib/app/modules/post/post_page.dart create mode 100644 clone-instagram-login-Refactoring/lib/app/modules/search/components/search_category_item.dart create mode 100644 clone-instagram-login-Refactoring/lib/app/modules/search/search_list_page.dart create mode 100644 clone-instagram-login-Refactoring/lib/app/modules/search/search_page.dart create mode 100644 clone-instagram-login-Refactoring/lib/app/modules/upload/upload_page.dart create mode 100644 clone-instagram-login-Refactoring/lib/app/widgets/bottom_navbar.dart create mode 100644 clone-instagram-login-Refactoring/lib/app/widgets/post_item.dart create mode 100644 clone-instagram-login-Refactoring/lib/app/widgets/post_thumbnail.dart create mode 100644 clone-instagram-login-Refactoring/lib/app/widgets/root_app.dart create mode 100644 clone-instagram-login-Refactoring/lib/core/theme/colors.dart create mode 100644 clone-instagram-login-Refactoring/lib/core/values/constant/navbarmenu_json.dart create mode 100644 clone-instagram-login-Refactoring/lib/core/values/constant/post_json.dart create mode 100644 clone-instagram-login-Refactoring/lib/core/values/constant/profile_json.dart create mode 100644 clone-instagram-login-Refactoring/lib/core/values/constant/profile_tabs_json.dart create mode 100644 clone-instagram-login-Refactoring/lib/core/values/constant/search_json.dart create mode 100644 clone-instagram-login-Refactoring/lib/core/values/constant/story_json.dart create mode 100644 clone-instagram-login-Refactoring/lib/main.dart create mode 100644 clone-instagram-login-Refactoring/linux/.gitignore create mode 100644 clone-instagram-login-Refactoring/linux/CMakeLists.txt create mode 100644 clone-instagram-login-Refactoring/linux/flutter/CMakeLists.txt create mode 100644 clone-instagram-login-Refactoring/linux/flutter/generated_plugin_registrant.cc create mode 100644 clone-instagram-login-Refactoring/linux/flutter/generated_plugin_registrant.h create mode 100644 clone-instagram-login-Refactoring/linux/flutter/generated_plugins.cmake create mode 100644 clone-instagram-login-Refactoring/linux/main.cc create mode 100644 clone-instagram-login-Refactoring/linux/my_application.cc create mode 100644 clone-instagram-login-Refactoring/linux/my_application.h create mode 100644 clone-instagram-login-Refactoring/macos/.gitignore create mode 100644 clone-instagram-login-Refactoring/macos/Flutter/Flutter-Debug.xcconfig create mode 100644 clone-instagram-login-Refactoring/macos/Flutter/Flutter-Release.xcconfig create mode 100644 clone-instagram-login-Refactoring/macos/Flutter/GeneratedPluginRegistrant.swift create mode 100644 clone-instagram-login-Refactoring/macos/Runner.xcodeproj/project.pbxproj create mode 100644 clone-instagram-login-Refactoring/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 clone-instagram-login-Refactoring/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 clone-instagram-login-Refactoring/macos/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 clone-instagram-login-Refactoring/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 clone-instagram-login-Refactoring/macos/Runner/AppDelegate.swift create mode 100644 clone-instagram-login-Refactoring/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 clone-instagram-login-Refactoring/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png create mode 100644 clone-instagram-login-Refactoring/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png create mode 100644 clone-instagram-login-Refactoring/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png create mode 100644 clone-instagram-login-Refactoring/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png create mode 100644 clone-instagram-login-Refactoring/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png create mode 100644 clone-instagram-login-Refactoring/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png create mode 100644 clone-instagram-login-Refactoring/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png create mode 100644 clone-instagram-login-Refactoring/macos/Runner/Base.lproj/MainMenu.xib create mode 100644 clone-instagram-login-Refactoring/macos/Runner/Configs/AppInfo.xcconfig create mode 100644 clone-instagram-login-Refactoring/macos/Runner/Configs/Debug.xcconfig create mode 100644 clone-instagram-login-Refactoring/macos/Runner/Configs/Release.xcconfig create mode 100644 clone-instagram-login-Refactoring/macos/Runner/Configs/Warnings.xcconfig create mode 100644 clone-instagram-login-Refactoring/macos/Runner/DebugProfile.entitlements create mode 100644 clone-instagram-login-Refactoring/macos/Runner/Info.plist create mode 100644 clone-instagram-login-Refactoring/macos/Runner/MainFlutterWindow.swift create mode 100644 clone-instagram-login-Refactoring/macos/Runner/Release.entitlements create mode 100644 clone-instagram-login-Refactoring/pubspec.lock create mode 100644 clone-instagram-login-Refactoring/pubspec.yaml rename test.rar => clone-instagram-login-Refactoring/test.rar (54%) create mode 100644 clone-instagram-login-Refactoring/test/account_page_test.dart create mode 100644 clone-instagram-login-Refactoring/test/calculator_test.dart create mode 100644 clone-instagram-login-Refactoring/test/helper.dart create mode 100644 clone-instagram-login-Refactoring/test/search_page_test.dart create mode 100644 clone-instagram-login-Refactoring/test/task_2_test.dart create mode 100644 clone-instagram-login-Refactoring/test/task_3_test.dart create mode 100644 clone-instagram-login-Refactoring/test/task_4_test.dart create mode 100644 clone-instagram-login-Refactoring/test/task_5_test.dart create mode 100644 clone-instagram-login-Refactoring/test/test_library.dart create mode 100644 clone-instagram-login-Refactoring/web/favicon.png create mode 100644 clone-instagram-login-Refactoring/web/icons/Icon-192.png create mode 100644 clone-instagram-login-Refactoring/web/icons/Icon-512.png create mode 100644 clone-instagram-login-Refactoring/web/icons/Icon-maskable-192.png create mode 100644 clone-instagram-login-Refactoring/web/icons/Icon-maskable-512.png create mode 100644 clone-instagram-login-Refactoring/web/index.html create mode 100644 clone-instagram-login-Refactoring/web/manifest.json create mode 100644 clone-instagram-login-Refactoring/windows/.gitignore create mode 100644 clone-instagram-login-Refactoring/windows/CMakeLists.txt create mode 100644 clone-instagram-login-Refactoring/windows/flutter/CMakeLists.txt create mode 100644 clone-instagram-login-Refactoring/windows/flutter/generated_plugin_registrant.cc create mode 100644 clone-instagram-login-Refactoring/windows/flutter/generated_plugin_registrant.h create mode 100644 clone-instagram-login-Refactoring/windows/flutter/generated_plugins.cmake create mode 100644 clone-instagram-login-Refactoring/windows/runner/CMakeLists.txt create mode 100644 clone-instagram-login-Refactoring/windows/runner/Runner.rc create mode 100644 clone-instagram-login-Refactoring/windows/runner/flutter_window.cpp create mode 100644 clone-instagram-login-Refactoring/windows/runner/flutter_window.h create mode 100644 clone-instagram-login-Refactoring/windows/runner/main.cpp create mode 100644 clone-instagram-login-Refactoring/windows/runner/resource.h create mode 100644 clone-instagram-login-Refactoring/windows/runner/resources/app_icon.ico create mode 100644 clone-instagram-login-Refactoring/windows/runner/runner.exe.manifest create mode 100644 clone-instagram-login-Refactoring/windows/runner/utils.cpp create mode 100644 clone-instagram-login-Refactoring/windows/runner/utils.h create mode 100644 clone-instagram-login-Refactoring/windows/runner/win32_window.cpp create mode 100644 clone-instagram-login-Refactoring/windows/runner/win32_window.h create mode 100644 test/account_page_test.dart create mode 100644 test/helper.dart create mode 100644 test/home_page_test.dart create mode 100644 test/login_page_test.dart create mode 100644 test/post_page_test.dart create mode 100644 test/search_page_test.dart diff --git a/assets.rar b/assets.rar deleted file mode 100644 index 297775c1f394b09c754ec04f16926d8c3e999473..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 122165 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⪼8IQ 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�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 diff --git a/assets/facebook.png b/assets/facebook.png new file mode 100644 index 0000000000000000000000000000000000000000..8f4936483d35bc5ae14c527c1608d0b5ea5d0ad0 GIT binary patch literal 33521 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%0AR_89-CMO<|y2~P<{6wkR3D~p|e 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 Kb{6j-U;H19uDBTh literal 0 HcmV?d00001 diff --git a/assets/fonts/Billabong.ttf b/assets/fonts/Billabong.ttf new file mode 100644 index 0000000000000000000000000000000000000000..0df4bf6a86b58a799fc94802fc6cbf83ff003ccb GIT binary patch literal 132528 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%0D{`@C;9oin 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 literal 0 HcmV?d00001 diff --git a/assets/images/account_active_icon.svg b/assets/images/account_active_icon.svg new file mode 100644 index 0000000..69ae99a --- /dev/null +++ b/assets/images/account_active_icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/account_icon.svg b/assets/images/account_icon.svg new file mode 100644 index 0000000..2b017b9 --- /dev/null +++ b/assets/images/account_icon.svg @@ -0,0 +1 @@ +image (5) \ No newline at end of file diff --git a/assets/images/camera_icon.svg b/assets/images/camera_icon.svg new file mode 100644 index 0000000..0279244 --- /dev/null +++ b/assets/images/camera_icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/images/comment_icon.svg b/assets/images/comment_icon.svg new file mode 100644 index 0000000..c50fdf9 --- /dev/null +++ b/assets/images/comment_icon.svg @@ -0,0 +1 @@ +icon instagram \ No newline at end of file diff --git a/assets/images/home_active_icon.svg b/assets/images/home_active_icon.svg new file mode 100644 index 0000000..a1e5803 --- /dev/null +++ b/assets/images/home_active_icon.svg @@ -0,0 +1 @@ +homeCreated with Sketch. \ No newline at end of file diff --git a/assets/images/home_icon.svg b/assets/images/home_icon.svg new file mode 100644 index 0000000..f6b1ffa --- /dev/null +++ b/assets/images/home_icon.svg @@ -0,0 +1 @@ +icon instagram \ No newline at end of file diff --git a/assets/images/love_active_icon.svg b/assets/images/love_active_icon.svg new file mode 100644 index 0000000..04fefb6 --- /dev/null +++ b/assets/images/love_active_icon.svg @@ -0,0 +1 @@ +like \ No newline at end of file diff --git a/assets/images/love_icon.svg b/assets/images/love_icon.svg new file mode 100644 index 0000000..3b65caf --- /dev/null +++ b/assets/images/love_icon.svg @@ -0,0 +1 @@ +like \ No newline at end of file diff --git a/assets/images/loved_icon.svg b/assets/images/loved_icon.svg new file mode 100644 index 0000000..c70376e --- /dev/null +++ b/assets/images/loved_icon.svg @@ -0,0 +1 @@ +like \ No newline at end of file diff --git a/assets/images/message_icon.svg b/assets/images/message_icon.svg new file mode 100644 index 0000000..2f96bc5 --- /dev/null +++ b/assets/images/message_icon.svg @@ -0,0 +1 @@ +Untitled-1 \ No newline at end of file diff --git a/assets/images/save_icon.svg b/assets/images/save_icon.svg new file mode 100644 index 0000000..a141198 --- /dev/null +++ b/assets/images/save_icon.svg @@ -0,0 +1 @@ +icon instagram \ No newline at end of file diff --git a/assets/images/search_active_icon.svg b/assets/images/search_active_icon.svg new file mode 100644 index 0000000..1d5b6b3 --- /dev/null +++ b/assets/images/search_active_icon.svg @@ -0,0 +1,2 @@ + + diff --git a/assets/images/search_icon.svg b/assets/images/search_icon.svg new file mode 100644 index 0000000..6a1fd2f --- /dev/null +++ b/assets/images/search_icon.svg @@ -0,0 +1 @@ +icon instagram \ No newline at end of file diff --git a/assets/images/upload_active_icon.svg b/assets/images/upload_active_icon.svg new file mode 100644 index 0000000..954ba39 --- /dev/null +++ b/assets/images/upload_active_icon.svg @@ -0,0 +1 @@ +upload_icon \ No newline at end of file diff --git a/assets/images/upload_icon.svg b/assets/images/upload_icon.svg new file mode 100644 index 0000000..ec71556 --- /dev/null +++ b/assets/images/upload_icon.svg @@ -0,0 +1 @@ +icon instagram \ No newline at end of file diff --git a/assets/instagram_logo.png b/assets/instagram_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..6b66c8253aa359a69d9c5fa9b22b9bd971ddda13 GIT binary patch literal 20129 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 Vw}BNoqL5+0WNZM{uh4ai`8U`U(47DP literal 0 HcmV?d00001 diff --git a/clone-instagram-login-Refactoring.zip b/clone-instagram-login-Refactoring.zip deleted file mode 100644 index 8bfb817211c25115e87689109540cdd22f065601..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 560868 zcmeFZWmINa(j|<$O9F`}4v8l2?(XjH?(VLMySr=R?(T`ZyE`9M)!pCpR98*)+r8%3 zu-4(>`4e$(#EyOTjT0AXF<=lVfM0$rqR5ng{o`-Hz5qZ1=$Ttt8c>>8+S%(E+3HwO znp+u}SW?Ow80zTRTiKde8c{3Ag8~4)J*FE-|IHA@uZ9S`j7QP|0RRSp006%JB|}t3 zCiW&qmR7a~|1fDGyIe6#1LHoSq|9n1WPSx3Oh6coAROjgzS3(kR$%jeq~h+}rWp$% z5p5xa1ZSd2>LR4H5S=#W#x$cmN_l{3xP*4St>1N|zdfzcE{?ZfH*OV!%_)*cC&f~| z-kzyJGwvH(B`Br@6B(N1F-jA&Ud9HW>2NP@w)Cv)1)k@QCMn zRuQ3YUDGRxobQTnC%(=>$*Y4ZC2oDH8r-RHb|i59U>S;g* zqCT-k)24!6UAKcz?pFs)*k(K9O@15bSMKXZAt$(u?UKPPYO60YrNDPCny#W(>bx`Y ziQ~&66~J`)e!mIB6d;YC#XZWe$k=cq23}p}Ai`&E1Kbm5;fq3Kb7UXNV#C~{zLhadO zPJ6j5b>H#2)zU`q6u!oBP9<036|s$^(eLXbOG(Kwvztp;9dLLxx#J!s456_!!fZX2 zPp2k0wlX+^tXWT%pThO^oRU4M!KgY8K>I2%n=t+$iabGxyv}dS5PhZUjUO zd(CKJ4a`(+4fmmZxr#p5Ftd{B<|-X*`i!5>LKyShUTST<)W7RHq`7d&It1CC}cnNry~lIqemTYm)Q=vr1PS=2U}m(Mn_;S#Li_q$97IX zx%4P64wTD^1v7V%hmR)V8$5CMM99`+tPm){ve%A>D;6hqCDwxM6lKrK&JkY4bjc)) zd=oE3X`MPDW1Jfdk?H5vV^sEr%tL%AxD@7rUISEuR9oybDQOqEuHkoS+pYSEjM*?V1QjfFnhT5B$BelA&Akv zT>9*RCy;+a+R_G;UB21E8Z>0QCmUE2{>$^)(R~kEOU`xky!sdwlaO}Ou zIrAb5`#q6hW}|qt(`W~uP{8uj64@(e7z1GV1ft}iG|Kp8$YCIg5mB8@#=@Blt2o1; zxHXnLr9iVe_kd+B93%hvcI}RFM0LP;!9@`m-6s>S>?~dDrjnczj}9Ozv38xZzD1I6 zTP15-$HMr)Qha(F-AI6b5eznP;k2wO0aa8Yq?9%DC}ov!_ey22OE)|!&$p#5Nk6R^ zuW$=q!Lr8i*V!u)#}oVHw!dyA5%u93hnYI*Mwn9B6f86{kO}U=gvNH-3K!>o#Z;qR zN8xl`#F~dw#=q#u`BoEw2AK5r!-p}*^XX)ZyW?O64l?LlFCU4(|tnvd;bR(y{ z75%KETD|93Ts{=F2M4fPYIR!Di5}`=!w~j#-o#l0y^;o3Q3>TC$IWcqIH&T zYpY9V>jG{#ss?m*w?V#bM!`Bz$E&*tb8Wo|GdLa7r}G6duuC zJrwD7HPk`qtULk#UK+m_JLG?{H1ut)O!WUq^r)$wxORT1C+rXEqyM)I{tNLV5!Gec zLj%Ki{ssly1{&;e4u8UGua(s+zBOMBt0EcGkvWyqV>#<599>!!g`U}+&%Kh~7p zIXNnjniZSP|(vT9DlVcu%uhW?W(I^{REcn4pNt4 z**`aIx&VF8d8xU&Gvh~y$3|HSXa$=mKud9gE0L4ljI+ykt-PotkRW1*dF^pLw zi-ejoQhy1hIQBcXUd;O%qQJ-%cxX9wNTAhPD+Xr-$fqpv@i`+i(>l!@KP{eZ97&%c zd%_AGcv*a&a@q`E%ux;sQhE`f$T<$01u(*;knWv_-55X2u$(`7Eh3a;3lUw}smh8CX*`)O zxD~J6N5t$^V5r(?hYbv@J81`-2WSru(Q_SRh2Hnu;_`Vb>~_+G{_)XZx{ug|?kI$Z{>0+&<+qnWWM z^-Xy;X=Dokyae2^GJEPO6KwN!2=0P8XlUtqX{<(k15Uwgc8!^SYxGf2IIjG2F+ZcV ztmwX(Rx#Nz1-v9KXt)~m7DeSz)qD5)t|nB<@O19AY~ptIL5Bn|3rT$a22KwnX}GMR z6!)Ud+$7^gAlUA;!@^7!4kZCfBw948{pOCNjWZb?U zZqv4jLzZs2y1|U0Jh`&WGT-D01gvc0+3r=|^QN`#>K8AE9SQO=8TG*8kO6VE?5OnS zT`(AL0x3yAsDf?3c+1xl@d1U_sw-yqw-tvtM~( zwq`}sB+!0J^oUT+8aLp=`}y?4L3F>Px|(P?OH0L71N(SwL1m?49GXb!P|(~fx$RhY z#FwUKMj*gU$^Fjthqs;7@mt89|!%4SW&s39RpD^|Y59iksp+P2X^ zj!emEE{wC_-W=DGl~H#g-74SWlIvymnK=>yH)#9qx{8ap8%x-q831*Ulp~#?cBfYCcl8jLdV4N_sIFJcj498;NAHl znX^BhWkvr-sr}XZpJg^cp-Xa^8=>tQRjpK(I)d^xI5rre9Qb9 zGrq;sIrg#*FA|@UFyl6pmEnHdDhxEu_Z*{JRpaf6F2ZqHIw;${EA~+LG(AAhmHwW^ zPl(^CWB70_^tzH`6?k8OFd~6?{2!nMimTnmmA>l_+9j~+*J!I7!DN4B=SM`KyOHW1+(WynIy zph@`!&Y*ZhQx;lqWxhi=otPu)o!-*XJtLwhwc5;s@rWmB7=mx}Me98JDnm$=Lm4jB zvp8AHXqWzhkdK3ZVCs;$rgdA@Ml7Z%(#m_wWi=oDx2Fh9E$?}{)1RDq7BH$fRSl?G zF+ENAV&#bPulW)kX6;t~izE7ssB@{uROCu-k&$?3KnKqqGIR*Q9fT~ zr{p<&x7(<+sI&k?RDt6U@bFNL&mu(CS3S}idzj@NH`y~cK&tOl*A;T$V?f6mtL6^m z0fG@yfRh6GNn@eH`}I>2q3-@_J#D=t)|}n~N7xE!gYD(o7VZwe5O%DN%{?9wL*0YO4y|$RB}IY-4b_XG<=~ zrIhXlV`!gf>j!@Z*U#{w%sQgt+$}vwz4e-YxqRZ*Y*1VnADpD$mv~)lC**R7k8$Y? zXJ?C!VDCYKE4zqmOW4P<{=ab@5+5YYqi1j8Xkza|WoG}69)m_G3tTrh z41illHxa!j0Ja3{8bWftipoj828lO<7dV+HAH(!0J)BcyXtv=r$$oFN~u>hxAcI=z;{4q8aqjVbSp;&_(@gBPHGuii#L`N^5T*UVXc4ym zc>rt;?EXrsh5s`T`nEbwI=bctl#XP7xXCz5!f~j~szT9Uk_2RL z?t-)>9B1wy7p-HxixX}%4>Hos!#dNNzR73!~*Fe`)!;4gc7B{XNf-8)TdJfLi> z)XiR`L~0hcd_3#`cs}|QaPj|la`8uLuQmeo2Kh*N&Bs#tFS+_ZrCdVxmz3YL1YB@3 zoFqxc*#g3KhRR^qUv6ZE=hgYoY_nSY%!&|N7j~VnYJ86b9Piz-I~pC?`w2jl2%agK zo_xF5p5n27lCkt@4Vr^0D;JIVi8~8p?|C!P)A}v%2DVhzmPY>|=wp}*yZznREnRKxjoTY* zNT6vPywNTg!np8sF`w`HA!hs{)}E>&F1j-0etM#wvL(Jomb$K{(x$qi2Af0jm{~av zfSmXh+$mF)VYKcIdkt3jLSEd${Z%Rmh>gJOKI&D2;#tA`KV^e~mK~xn!oOgAl|`>_ z!+`b0IK4tYy~0>M#^6Xr_gLZqdvf^pbV~y!sSlIVi%y?R>kOrLVBbH95w7#CGth6; zs7BJrmQ>r8O7F^C`_4k|?pzn{;L}JFUIv$3jc&61D%jzk#k56>{?a`FrNd8n+o9zE z*#>Sj=tPi5&~Fd`Jlxzs5cFx_KF_g0Ql5bMTCUB^f&5sWZhNd+aem%>+JmWWkmoI~ z`t@F~jZ$Wt8+VGVjgjw* zUkvL|l&sqgWmd19UBjR5(}UXPCDu}y)?L>Sp=li!e49k}S=xw)o9t9(O{kvO`*J)= zV(TYb2QtFOU7+JfoEtncbT^z1r%VMf<~oDyG?&XcXn7`7=Y@@j_G{|E5)#!2wd|n9 z&)qyOL@`IEds4&q(}pfDXi{G1D?MSq1ufK6y;P1Ye*ToFf7>4SLk2`|l`>Z5^rSjwQT(GW!Z*3;Q&kpHf6_$Hkwwil`cO8>RoErEp9A(47seZE z$fnq#8b@wQ7RmU$y_Rt=1SkB8UkFlCbaeEaiOdeq_s8q~bwBR60#BVR-~0@!NPL`u zbxjtsS$(_>*J{7Vm7IbC0kilA*0=Y{z2nx@o^OruY)w};@##uVc7&eq*IibQeJscK zURP!#9C;M&XJM5)Wo;vijhdtVnYXSS3nNFTsTJvtPd^Sib60P3s2Mej#|S8WA<5@Qn8@RBg^()CpBuhbg{Q#7d%#@_&;xX z_`{o@kn2Gp7q9nvy6G;K6VQ?*0%MPE93Ji0jFV+U{s{*ELuK_hzIFaH!cABTPptVM z+o_MG^j{&|-`xFm6hi)r!pi1)KSDw=bplb}>lx8u`XV@hB)DKI*r+Oa z&nkHDDj4M|IAJJQ`AIO-Q7{uuPz&!!|K?ct=3Ecvzz8N~@K=ha8?1;f4$q#!=rN=T z9MgwM?L&v-uT2goNGg*}KDkax8%bIzP3AaGYWtkrmfB1A)K^<5j4~Eirc9;KB3WWn zYk$pnIFJ1cZMVPyV4u|B?u2#2nxO%BP$?qqppD{XX#;=&LPCOq!d~xBaJ}PzIM(Jt z(b3R6xqYy={)(I1b@RFoxX*kL+-K+xBZb{>PlOB{nkiqu-)>m3FPkKqESx(O=-1k) zvR6K-avj%K3PB(>v~o1D6eD(v)GPk69e|#nVniz6o#0%44q$|K#>U6pRYmF>cr?7*3A!ddM{p6o;(ZABh! zhMdW$Sj!n~O3Vp3$tSMJX*_XTJo43}M$IX5%BVfcTg-i{pX0t!$M)9*;2T2160MDr zqyYt^@DhpEqVe|FkB|!|j*pycWLmH44UK}*ZhMby zf5^PrkW*7T7A%&uXr?4G+Du$^elOUyA+wkukZn#V#lVLDl>W$H%hqkUZi4pS{hAo1 z^(p=K<>k(ME+g!&qQm_uU!_{i;icvwzps#xs@=_VTEOfPWlX^Cbt0^CjD^JJa{1C9 zX-0cK8LH6}QvO6-bk#m?gy2lfp(ZliYgUXbs)+h${iiS0rHfLIbElS zUgu`-Dv5;WacW{2B1J{-Pfn*^0TIH5OXLCFVH1Y$hMFgt750|{$CGpKD5$`w$4rSv z-)HsXDfKT!VI2%rcW%xXS3FLJBS@^?*pY}%&QPun$4i~2>D)Pm{91dNDxI&d=9r#8 zcU{y(XsBLWE)#R2sK=Vv$N-i@{VQtsKj;ts(k1%4(s2G$E*o2uc%}Ln-^u-0|Ka2O z|K{+I$gDi>m1))mWq|8mt>jxx>3mYsopfPt{;08>KJm8_w);f|}bkoedZ_9K$r_OYn*at~G zEfJz2#`C{fSxsxRsZ`-SR^0p?s6=ae?$BX_X3eYW0xhe`6Op=`j zxf34|i*Umk1}m7R>pQn z9CQXrCk0xo^%yYYxQKQp5Zt)Q#vX7ZKoj`}Du7fyJFZpQx6T0;=oh=rcS!efANUG^ z4YfLU+;!axN`>-N)BSVsAXh&Hf z?P7F3rZ(e!e-xnOkkN!o$LNL%U!pM*C14OKU=V3Binf`$w~i}&t}?g9lo=Bntr1eF z4XQK_s+8}XET`5ki%Xhvp7&iR#+UOPvbwkMhcKl^-AI%xh7Y;3GGF%fO9~$&s2ZG~ zooo;s;~uMwyayUZQ#u;XC*bBhF)ga2t&1%z>>DWVl_(maXd$A_-^s+Tm8d}9>PVF- zGPO&49fW#1RO{>F$Wn{M#o9wE940m6&h33(V|B zR$@Re^$rzv4R3NX951+H(iQc!2cO5b9&z*3V)RoB$ z>cWZlCPaxnc6en?QBj>Rj#AG~2RGQ|S%?)v)f0Sw7&>Kwus;nJco{A7F>eYenVyf< z_i8+mmY72y*5t@9TAM>KcuxRLihN8qb3-p5g)6Zx@|o&&7ly?$jaQ<}lzEjmOVr1R z=r)x*${{3hleQQZDb;b5gpg;vDjh9E<{@9WI~&VfWW5PcTve+L;XmC0AoDc!E=q?Y z>65bi8YDREOFuE}IcfjRIYm>js-QBQ?xrCinyvKNbb0hy{#)Cf&DDuG?@1t{07kvn zo6MRJ-@8Ci0o!m&Ib79se zkhKb33nJ5$zyiBvGxWO~*p#L0vy!71Y*_55818}Ior(I;Ze5$f&lF)Q$tPUA}{nLS#0JWh}{wYSWG3Zv%DSCd)WiJaK-|(fjp_E6caTmq)U`yot%+s^;8zt zq5A*`5EJ$@QiAqzspViHh1blzmC%C}@8D{{sr#5r-UIv}H~#*^2T?~Ia|Z)EN=p+X zWBWhq{E2;S>+AXGglvC^UD^Lk=>C&CJ9`&%1G|6f>*vQwM9px+1fIX55~EQOf=WW< zpIQb)M{Bc~`w-ZEv(!7)Cr+{XJX|@DoQKPM0@bU&r~RCMU(K<5B&4^=jbGywcA{`e z2W%V9baEF~7N_w>tVU^Mkaf@^Eu%ipE%o?yLPt)H&)dQ*873IK7}7EwG6U9K&&VC# zV=O^73s!T4z}lY_oga6S^asj|`#XC#8w~u#5T>ti>{iM#_Riyt@%P+N7IWhmkKSs89CdV_-X-}*huIT3ZuXy*}1xlMg@wd?i-M^vm#b%31|S_b`v1j;AFJXzHf-fyH`nn z^GQc|n(eH2T?b!hiKDav!(Sm!lDJrJ+}CEoMJZq$Lw@CggL3$)S$x}`p%^jKG>C#W zDKSPSp#V!}lAENbv0Dzm;S_b=Epva6V{bZ_2;UhQFm)vrN)3j|p~AMJR#MM7r%@PX zx-=K2e2_L%PiEM`g8eu{cX-lVB+*ocCkCsf1)o4-v)UVHW7?n}SSkJD0(tIkJo$Ex z^fq^)R49FP@pL$pcwPGb1pUWQ{SS^*e^D~OVdsxPDleB2-TML3oez+T|2IHN{jcCD z_W@5DgtmJnm><^JWY)YzxGku>ys8O33A@1smw7nldP;YB*)Oidl27;`5dPGhqodbu z*BSezRuO){eZ5`Op-Q_WK!ZwMRqK?Yibsd3y7g(J1o@Nwq0_cNu6q*&a*N8Q5Y`<| z;$Vc{%D!q=y4t{6i>Z@5Mn7e!PV^=(LDKLb1*gF4L^;v8IM}5w;I@(7VFK}DcAD=3 zn*$H+-5G{trq~(lNYAQn()?4QgI*}$wv(?wHo)g+~*0x%~A|* z-w#kqsCg8QJuDLYrl{$51rGXcE#>6-O6p{id(=_YgO8TZd#q>iG@>O-pI!hLYiU^D zBo76oatZdI+{6_3uU8zNy$jUZy!+kya3{|J|VckpM!KL2lw>vv;ZzlEP0UHug0gBGMeny8HbR`~zr>~6k{gxSX- zWZS+{5`wi|QOj8sk9Og1`>S7e?-#pc<$lF(!9%ai>nWbbGkOhw|Fs!6*>C8jdYIux zHpBc-FWL@-4gGBq=sEZ#8U8D!;PoAG*Zka4Q#7D{HlPwyhz_5acAavA5Ldsk!f7wu zv82WcMoH$HRbr?@)4Far;j0~?GGh-K_wh597|N2{P*vo)4Zc0VP7fpT9 z`%!c71F6xT@a7+9(7y#-O^l5LPS`K zHH(RoO_GZR5Lo`CS4jJB!Q!{8{QWNU`(rAW|A}2E+mG=<1KZ!*|1G+;AU_V=J|a8# zYlQ#G%ac044S!Pq?YjSN|F^G{fBX8cf-W}nm5OXwoSbrKbiz*bt7N?cysiDEO$0ow zBW&pX#l6F>D32^+v~sMDn&x+9>1fqF_*l}tlHsoqR72FFeH9qQVFCm-Ke7c_8Zd~6 zK>KJFpPu@P1q_mhiu+s-1wzPJid`QC4xa`?!*21Bn)h6Zn?qPwT)D-X{*kNS?%6V! zfBxp=Plg)htl zAszz>6dh?A2&9?0J#YSOl;xFvt^qva!z_un)z)^$rEyC7*0NCies6wwFrwzr)% z-q-k3Lwo~T9++DUO`GoP{(jN+{lr+m{~{;IZ%gm#r|3GtzRo_cp$_V8G}P|;o6UNj zE`iKamniH!Ex$g^r?+y!Jck*K<_%6qJS(sLIn8>%BieZkt3{Sj2i)((WpVYF^mqM? za<%jp_<0Y1GEPVK*Klh05zT)wbo5(}lHb1i>)QhWT>5^zk@xS|`*_ROK-bF3?4Qp5 z(^|ph02ZGG)}XhdbYE?gI85JWN5dRnktKxiZ>`QM-?>wpc^H+9NpVxkT`d zlW>*YjReFk!{xHJNwwv(jNBmJ3fGd+>eK~|>i0vLYuFKYiA}SYn!7-U5yGkLJxs?f zruiR>ILbz-h=(2H+#}L6N`hr1z^p~gRTYo zS5C6a5FH!d5AO-Ho$?b8Trs>W50CuMFJ4H`k11gM{DIHhrG7mgK(F-%02 z7ZF`H-kI+iNS=u8(E}ZG-c+{?H`kX_gqRq(^EXVhO!M@23kx$alN{z{=lg}ncFOk` z>nkS&emaUz{;xt6O^Tk;x%fZVd%59F&&@XWf$M#7rn8vj{WrB z*JH6?qXd^9dY^>^U%wGKK7zbmD=1%hSro5rOzUxuFywAU9l6d&J8~eOft(d*D zWv%z*zG@K^zG{UYtS4$4XcE7-5Op%Wo07lL53(XPgpaMdbOB(gwVW@cM+#l{f7(84 zhqq5hX)tHx%Ah7c>@Xm?9?&&FO4x;US@%)neHm(yocScLSCIyIkPJVH;iAZuZl2MV^ z5fTKlY6w4Q%y%I80+fL3%tmHqR5?o18%q0~nRbp}Mk47I`8l+$n{ElZ#g|a1#quXA zmRjskMP2LKfeJFSfpnr<+1I=wdiRn7C4-z;+mLCC+~F=9okm*y#l$VFl-1qCBa@4A z7Wq{+Qybuxt0_M!^qodN3T@^MY72Kmd?}ue381EkvKE zy~n-^jXYfBBU=`?URxiD}e$>x|5 zw#?5|I{M4vKLMjPqJbY}FH*&@yw<%lxrF*?%T2N$~^Xl&SuLc zhUfG}t(xkSNI!rU!>ldOaye61&EB19QhPg>`HE|P8i5vtQDonJXwX#4$(9&(N%irW z{u&kJ;02m;%T-&UaKSt)-=_I!jMaf*_66~5E_ybelN9L4kPN^!4{LaT^Uz2-Pik1- z?YwoBTTK2KEIYeAwBtrFaVUbwY~%9y!Z|Dcav$=9P{bqRa#pn8&N&Hln|sp<^oKpn zJiTkrw+UC|jtn*eX{F~_5e9jT<)Vs>&1reKsK6^DS&B%tcv72tfIJ}bv3AX`T$u@v z;cKf??C$8VJC(TGJ=~w3x)VdfA3ohxS(YFZuke z9|n0(1dD5tQaC8s6b?II4&J{!9oK~MC65%5^0U&t9c{l*{C88Y8|&ls8YJn`&AiWd z3l#P;@bDJNM`n!F20|3MEJut?l$mGR`H|Krm;!C25)sD>bG074QD%tTdz?wMrShiR z{?Nr`k7Wpn6Mpf>0ui|dFwu~W5ZgemW3E%VA}<5Qb=x*zE{yW}*hOmK01DoesChMe zh9*4cvN?}l+Mn`zRVLo*GLlL;LxPj1Ap>cIW!*bR?7S_Z`e+y}z&Z^Q{cdC%bPeGL z+Hd_YuxC`YPN}o{4Sq(^!CaEh~QQP*&o!p&=`~EzD77ndn@Jnq5Teq|!ple1XJ?it&l#xb+7JkIGY4HusAoLW z{KS)F)kfCLGEv_CQT5m(oif!l|K`hXG;G2uVqDV~vpY*2o+Ha_)Y9Vw0f}y(`AoSw zw&<3ECpRv$*c<)?OSs(?F(p=>6B2+(SP&;yo4#3nYYw>wHb;Mc#3Gv^2Gd!Ej5CQ{ z0atcp*^s(Ch+qzI42s1;>SD}A@j7+vCkbU;YatqRw|m+}JN=Q+T<}Mar2N>`sQzO@ zzy*+_Ql!IJQgZ``colj`PXC8Q24C+;eB7OoX^(!9gNjQDnwWd$JZg07ecSnkKK0IihLGT??^h$y-Z#%rcX3Z=UOr{s25 zM;}9pbBB7Z4+Cb%pJg|V42Dmy5zDjY#ev^SjH{6>+Y#j~dM#*Q}2)XZ7nYcl4Yl~p& z_V`1Jm}3FKmQU4P=7tO9ko)ehd=+>-jm4LeF-Vo*@rJ`-%)pFND0i_d6g^}^FFg67 z7-D;qnqtygG10w+(d>}Cg>RIx+&H}beTzPH>wWUr+Fl5I`R!^|YHC-|5C<(ms{`Vb zydz=y6T9u@E%tJCuBJiqOysFexX_oG|_egl5Wcb$nENMsF?iu61ef%5lq6B_Dk4k zQZu~*)HID7abLAs>|pRZM5l1!y7UPCwQg6~>@hU*KCB$~33o~kw#k`miC^CPVHu?txdXOUZ2a4@=%kLYcR51;3f8GoTCzmQ{(FEy znJcfp@>F;Dy?cYwXT&zOvjRM*l6ziFCQ&J9wB)766f43>y{h$B$iZv6;hpmQ7CtQu zLC;wSeXRq<)RE87cljligDXR?qmSMwVl=N*A+uuY%_$qWcDC4qh<-dv=6cTzy9@JX zye9MZYRM=?uXwz&iHn-)Rn){UHCTgHV0Z+0{u~d8sC;CS0pH&qF!uo!UKh(j*gU}) z2g_6_p_uOg!WnqusdC#zQ$fi9uf(`>9aCisMtQxC9As#LWUD^|NDiK|d~ELlO0rVW z12!_%9F~gSIQ6#aq`@4JaStTU;q9=^89*A9NIh-TFbc6+C2}QeFt+v=Be54X6VYD> zBOJEO;vBzFGK%TAX^RCk%xfy91w(HtWebi6JQh;&Eav7ov@-9J=08t3c$fJ#4~;arKTy5Koj735~lc$ zys7LG)({IZ>jW5mFZBG1@{Ep8zZE-UoG@aVHAQ-yv}LN95seZDYf$c8)4&=|Jr+3E zfjFNfB6_dWhG|hEZf$8m;4qFfiRqSwpEqJ@=cfP}^w6V>Xrd0G?N^RpTj z0;mT8-W=gqcLAhW-sHl$s~q0h=M4}(3P-Q-&_odMU94%kIr>0J_$JmsYe_w212Ikw zl@}yA37}RU1x>BSl*4%oWMhc${rmDDv>29w%9wyJ@?!Y8nG7>#mNCjq>TWyACBAo#BY>V@HsvPI zkMl-ypYn#HaIZ1W6FXmKW=((1f2HV((*j(?^`;G2pR^>gnt01&BLT?eVr;ra?@48_ zE>ch7W{C06$&&C9WOU!e8`3dxSM|MYUn(sYxj<116Fp%9`b=~5d0_b*T1!VE?-6vw zG?PcH^DH->GM*1!u$os2(2+wPjBI?zZcFvmKfaOp2H0F@jebosxL)<~Q8bBu`)0x$ zzd&n-2&-orl>#K8e_ITo*t8@N>*K#a`GA$ZeP%he3h>fBSB`UIk@gOW$(=N_Q8J_4 zMnSUzDpDl;tQoNb`T4iC7g9`>0>BUrh91;5R$FG=z#M?WT#pBBK>;Z7 zqECF*=bBke!`cKevc2Z-0zli#3rn*&lfqfubvdC6dNtO2&%%24&zQb2%%3er=ag$I z>$D*gs*rKqA@MRLfmuMlD9^kNizFQ|AAH}z{kGX1gc^=LZ2BX96ss9Xg@=3)(hH{lEedrQx zWU5;Me4otl+DVI;VJ|>PVH)Ywcr7VNkEwZ%l*xn#;>Zmc#~(%voHn$=EC`WUU+??A zf5j8yb5$F>2#(l`UHZmKp5_^%wML9g#n9;gXoX~;9`tmyxG|29fX0EvW`iK9(wgOi z<2n~iF}x0Xq;p5M?l*Yo&`@biW#aBz2}k?5Tzl|&bis# z6n4JRj0eOjDM(8~5z7MU_PoB9$f6D9>{Vy>ZW-BtQ8xH?r+w>^4(*hF1VbE*jq$JXacbzO}BPHH#)LLgHNU0w@--QcpjiO=`>eiq(->+YBi_ zlns>S?T#|^xB1eH+T<{+x>Dmr{xAU#>b-@Dpi6>qDMq9CGHhaq|1ddM)C*%@cXMGc zg8Jk13l#m8sM$ziJl+1DR-UClkh2heEPE`_V_#{Axt{a8RImYs;bxrv0YeMiC%f1~ z2W_-yE=U)nx(K}z(`tyjc)({ z06##$zsrh9q!1H27kbv-hQ~v_4kcOhZ?7hjEjs|U0!O^-q8Gmbj|`im+DqSsq*Trr zuV=&`{_?;h$8=;;k6A(~B;#(=sFt9#xF)&AoL|X^hhZPF^*UhBEO1$j<^Q4ci2xYb z0<13)x9k*%WLe0)*w$;WefXNMvoFzn+;l+u_!tXhdY4rg$}wF1CD-YNLp)atic>dI zI#sGw;Ue^pPjL1~zAd1ymHBII6(DC9zbT=)kF%PaOhfSs!<(ZqlUs)FqYokCYmLPi zuCZyU7lo4@xa)i3e&eHPrE{EGgS_zu70~f#J1T5K?H#>)KJWSgfa$|ca6Ao1Q$7-@ z&RinWkrOiClGq9^baie038JDhC7kiKj!1zu4_`?SwmG#tzhM9sl7E(@)acoA)pVaE0$~V;Wre$Kl$Mvz6vbe6jt!8k zMU#)zSW6;sUKnGRDl`gT|8XL@<0uLMQt`%p@fiOm+P(|K<^qOi6!)#LThXluj+K|k z%9Be40?cte;Ov8xId|Flj^?F4lK*&U3BVI96Sa4;x06J)Rs;6CVtJvr$6{nmC0^4Q zU-I1-{dVEoI6i8>6^<&o6#&4ro_C9hqIz}-v)wSL&?57M`B%JFC# zKl}StJMJs#XDO`Y&3H0#X`?geRwAp8hn<0W841myuoBNwND#?)qF8F7#sTv`uLtVC z0i@WriMPF3P=h7Ea}t45=FnYCxLK4c4ad~SucV*08H{~vnOt`Jp`PB)5ueqa5>J7! zi_qlUgyZqi{7-0G#xmcVP3Tf;c|BAH4*W{G{QFZ^u}duJM=WswF1~3}9HE;x!;^V{ z@$O2(&iEazkomGk&)7fBj^-}(dPw4XfN^oD!udq~yU4LOxK!X^QS1{sA+|}BHwRUE zfVc53We(g}dGcC8^#^7dtBLe5IO2y)y*)CIsWZDOXENO2ZTioJhZcW}>4LYT;q9QQ zYe#yqHfCi<7ersj?XI8?qFnb~AhY9Iru*f)E_trwtOAdGT|C*5FJr+U-YlNMVmEf* z&sYuU(r{7?Mva^Xo%1aM%ppPQc<_gT#UjkG5g0>*a&5iV*;O>(g|*4>x;*}v@%2`? zcMW>xLr-3T#X&ytltrbW6zhBb4+5-oZ!<76#S;vNQ$TqGpeB3~u0@6A6WhHEAZtUH z;1AehA*#9_I3>RB?oNxFF&+wEYumJP`)xrJR=VKaYf5BRH9<16h8_EB7IVdq@LXGrGP}<{_L)stuEM# zIxr*3?Nsn~OsyL$ZN39XN}Kh_)GDBHu2g+4o2hoIQ?XJJ-W4rz9CS>IiuuP%YJ;&j zeV>ham1UD4AM;u^Cu6LYq;jw8)@v2n`Z;Bh`eUkZ=%T;l*`iU`>jZPHB5ws-Llo?% zPWf514Ar+tKPrc)%2_o^v2-v$Hf+k>L}Z8=!J+9Ty>IYc+wx5v*$7EOXSWy|;zl}b zO4I_*d#S;N(2}%7kJea5uM|N(7f^TF7SyXddH0h0-rd3L00=;f-Vs_jrk;}cG9(>@ zNzJ>Wvd(oX%ZAA0xh3s~rB-!4ayW7Y@5JSVYhDKyefU@Lf(J%AcB9#>lv|P8d2i_} zcyCQx5<>8jfsFLkycrz!1Nk6*H(>ABY~NYUQVWkPP>1(6o8J(8#Aq-eKSL{Y;tv%# zC%N*3rXoy>Z(Y{x5 zU*uSWl@sR6NILQD0H1^wUMONrhb1L>0&*8DLbIhyR};pTGfNsPM=6fl+Ut?Kkv|}Z zjq7|q6yiQ-%S{Z@A9KI?D%^i92}WM|SP7f`ULA(DaQAGfZ7T7K1i3{NL_x>Q?ndhZ zKEPVXo`&Er#{AYJ$5z8;(&i{E@sY+q^s+N67gS(pV$!9vJERCm-sSD>ot4SI$O&P0 z=#TN@!x7cG;-uUPG5a z$QaOu`caCLc3IlW)ch1E;@5P{)I8RV*1;`?s?SIc^s#EM0mrV=*5{$+< zl}Hl;P6Dc*gZ(M{^5$yOq&qP1a5gJ|tCIFFCBzOQ0ST+O=C_jC0^kjee^e{ki5>k_ zituPNSo3^1O_-5dn`5uK%u(eF1CwC&W_kW~TMlIS{qjw44c;_gPI>lqi@Jp0V$N$Z zzDR;SWWI>-4{TnsSO{-vFdbMzPxFc}u{BS&`YNy=bcS=Kr;&4?pdPfQ#%qnore^lm zZBwrcWrngou~^L9&4rfaZwqHpG_7A)!E{bL57*{dj znBUC?#+5!YtJ%k1v%HxzPTk%Mj%(l2T)n*&z*upq;Uzdh_K+9Vz?!z*s2OY4z~fAU z@YQ${w7`OVI9xhnvbp9$DwTJ)y_ch(_j`0VM$7K?R4-WKYTfZlef^GBs%2&=fp1qX`wNP^%`#whbhOjz&M( z!8@>nKG;6qapV_~%y+Y_h|-GHU~D_oAxP9Ef^+PoQMx(ze z>l9(OFu~gxylX7>F?{p#HwDB_4vd|Lk{7TnR$C^-XvbMu1C6iVPECyo@3Ex|by@DK z(*vL%5*=l4sp>bFUrnHEaS>X)JKvH;`2oaUT>j`pSVFOUNuSsR=%JrT^E=>Fm&jk8 zp7iKW+~Avd(oUp^&bxmeP!98ZHUY&Fvi{oJ|9F2oz=`jbO5G+ZpTHtm zE$;m-Qv>Hd9lspuvgPxU?B0!vT8e~LX9nD?8^Xl6w7=;i_u-#HICgpVw?y*);v*hC zoQUzS*a=LBbR6+zakAWg%=pxgDo})50oMzjBEwet=9xfP{?1thn7wTxt)H!CU8DGY9v5vIObx?ql{$OI*X-Rq4n5 zZ^KAjCix)hltS)GnLLA#gY0UkB7w*VH$(-(GVD2C@!ad&7UNsdrIfgvY5}d#`z89( zV#lV2XQUcFKX@BYfwocpTuC*P1hvoozNGxde~HGOg{aA6e^N@FgL_8_y0}fkxk~&AISkQUZS~8g8xmLv353lQ+e4EB@>oF}xhIC>+CtPNQdGC(X;D7%a%lUx#Ne zo%N7ri{Z7SkL}NUskrNSn_~%dPhQR^W&|sl6-@}c0I0b(L?2GPFSA%3q%)^u<=m-MGVcq?TDCwR8hS+NWL}zJB}J&+g@4?JZ}e&v$!ybjxUuu* zyxbQ<_#IGocc$kGHfLtSo#V?t)jryBmO*|p?L+WJ)GM9S7IBS zsxv=6O7*>v93CTl+;Y})1zBnHw20O%i|X|&kJ_|)Y|Gh1ak4L6x)n{x+d@F(ZHbIt zrxY$*s0IR_ZbB<5Ej5iP{xM^R89lWyHYOx@F$>nvU|rnWx()R`ET%SdU@I`zfkJZ{ zArR0m#}a&6?|aN)6_zJQK%p@kyNMk|`{I!6tgdp4k_2x3PdhCsN!~HnS5l`%fje0W zsJ^CKOeNv-7;UBzD@CiFVYytxSwlSnAs(A-weoWVNqvQ}EB-8--@;6h2Vn((Cu%D% z3^cssn2g?f2oT7z*K+ z;^=LBcq=%-e}Or`+I$S|eQb9q)x)VNe9YA4x57h7{xyLi;g7^Ge~v%gS=rp=wib@X z7hkhjlim=l_Pz>4jdJS@Pq6%59c<*^Xu_iC+T#rBefvx*>D;*mik)A!E4`szw$TUi+A5GFkGu(NZR3M+) z;PNJ+Z{$lcy0R(AoE%I2^`jkhE3zwLC;usAIIul-Jy60;EWnCW4dml&|`TZtf=U5zAtb~3pq(Q!y=PBEK6$okZj(jIn)e~5&1LN96!xc+< zLq9Uczjk0dab<&`vUZF`VaGKq5rXy>cS7bPdB(<^1vcDIY7-v7gk|s0Dl53%nDTzI zO$#o%3-dXyF+W$=KfS)``kJ_*F9`200%C-3}wDIlyrf!~Xs)Lc3)Mg{At$EKO; ze`+x{J}1!q0u6q)j#Go+85x*oR=Ps)+^v#^tGFr1@gLPMd%x7w=r`;ZkSW91n0Soe z098l&=CiRPc_DI*3vuj)jz6k^4OEV)z10(>y(EzRr&^DAwenh`;CjO_iS_5>op*^2 zEvmgtV04^(sW<|*mn8H;B>boXU!kWtZEQop!xs`D`{xf|v8|~2vR${m7LV~up&nYwoHYzj=+@~Ed8t~A z-cLlADL};}cn(bMHB~=?ktc5a8!-BV4KP^6Rp|uoCUKx!X>l{*u!%gqRD^Nn0+!1( zgUbXUO%=hhyxE4LvA87%*XCFyz!~)CM^}g%<Yi4GpVPwd!UZ1*&kCUih8jWRtY5e*!NW0(a@!rl*ev3B&bufpx#it{=lGoy_LR>D!DU_Ss#fnZ%a_L9|xPQfJ>QXL6_$?dtP zLWI#XrHzi_BT+2$e!!nHKpy>#Z;Ot%Y5CP@IDpSp=;&F9KfQ-<)p%=Q*EC}ZK2&{T zsC+$x%01FLT&Hmikb~bFR|_6top?E0Q8g!F+?+Q0AxysaGTQA}=bai3q}71Uv0bfy zT7z3YZ-jE1ON7i%L%s@t!;@omRXi*dV?QGxuTWtn?aWLJpxabNBz6_(I2Gq?PaapJwrZ_`0o!EMmEk_D#W+m@9*Yt@@+Ezb zZ{8{}PVsD50fW(#Z51N1?WLs9w$lYlb!-B1iX{Y&p55$Gp$hJFYt=XGEhqfH+`>{` zy^SSk_yHbf2^?OtD&1hoIS)%tj-IR<6y#sx?2QuRa0>DeByk#SfqCN!>kc_>1@K#& z6vl6;$?*iz3czMbJ^vgO^J)^#bUl_(=_qU!G<&1*D>3#T>O>7k7_Vo?4p%IRXmAvq z28|)bbP$|rvy}n>qMP8ypL4qlP5J?BwqrGKrw9obdv>D=FscnlV6;YFom316xu9&E#CF~$2I_Y27z%PtJI=FzC@b3p2%ny zW@Iz9+tCz;KYs+sE$0c z$huIK&RF{;m{iiC`KtobCjrw@uD~(h5|-JF(KM*|-2hzb16=Wdzj{!Le%=c5?1%-( znfs7BlL9VwO|yh%P)F(EbI_%FBP~v9?$d)})j0?=>v17wh9OC#$V3jrBab2$q;)d3hHaRLUPQEy5-k{xjfAG zkrt8RIopl5i7;HNc37llnKa8-74pf6f#Lhp+apABdI5FnQnDAn#f<@{UBmZ}v0QkL zN-)PuUusfv>(;eVp)^?e+WhxQA-V!uxe%D$Zz&)8Fwsj+q0u;CL>J^N_!sum`6=r& zeF3%As~$ot82Xldbp<$ez1Jb>NKAK?w8_D!wJ@QM@%Q1~uA;FhVT!vOXplv~5LeYX zDfVd~^e8MyEyFJr#mRYkGy^bp+uH@=xV9=CxcrJQ7B!7exG_kE*-anK1P)}mDhlFt z`<;aQkQ1AwRgoNt8=AusvUSubNsqa^^L}rDIHU+?9qmIhXFUOZS2I4IzFC$$FZA)H zIVA0i8MzxSlEZ>E)9ZWP;9&33$t+J%9+X@}}BOV+AT+dHv z-SWx`rH6JC5_xEQiIFm3u zr`7Q`jc46{WGRJv7XrF$0uI1R2KEF*3@yPMFK46}OKXF1-1p)3X}Rg&Q|-xYzlxpr4l-Kmk2r}fZS}z?K&dkCf$Mm4v*vt zyohodC!zP1=U-U3>8oW20-8nwG#Aj{@JfR&py_|O+kd=(-!s#U@EtAY%8 zlG=SY1Zp&mYvhXW6V9zI4advpx!AkVSPlq)m=!z`Orqv{;Hccs4~5Cd_EWv$>dyA; ztgvWVn{4+KR>~tKsV&>V#n$(z8jgnZRYJAe?sqUrJs&*p@Bri(K3vz*&bs^nIG<$U zgyDgw_WnmwfZa5Ku8)u$YMdgt3{AE2B0TE%@ zuZ8Ix`?LiXoA_xQoZ0wO8I~$OEHPAj{MPWwE~9{_$KovGbHu0(=agjATGflpxRpXr zZx4l@{spGu`@X6oeF1AXMuHpP{6%bst_y_iUxn{&q!r_FHfrldD6-<%y z^(lBYIr7&B0^+#sK_I104UUGf-QJm=09l=gXVH1%CP5$e)s-twPJjWugtdH6@Jc)s zYsdTRYSrE0E|zr2N*(zSunEka!gempYA8#1jt8Q2-WlI4_WMO-OAq+Q5i%5EhkR!r z9wan6{UbGg;p|5txZVKQJZgKMV^Tm&r^b)EwOLFHy!~*UQVekSjp4<9|A%u=k+HMS ziHy?MY4+uvYAhKL+aH5k;?Vl8?CM5OD+Q!Lr;d=(PoO*VUD2%@VY#1(e-7>bgxBRW z9|7aY_KL=LIbsx>J@750@AhObX%tp&$y z`0Q0`YK;DpMK!7iK1;Yn!a;Rc|24hj?lI_6zS_4_m<(re4rKfWgI6C7kowMBONlYq z8d(cx31nPxMkvDefDj>oCm|3bO{gbaZ9Y_?=50rLo+MCQv1D16@Qh|*2(BkSfrjqK zllF}H;V~kE*%={8h)q&L)~J9)MK@KN(S2VLa)AOK-}5h*WUGf>Vb#o+ar4L9Btd6r z&M`?O@>^Y%G*r?QP-C|jH+Io1KUBc6xtyfnsMh43C5?0(ea;mF8YU`$Y&J0Rv@vqCP_5ypN4Wc0=7-!TH`OAhGxkpTU0N7y>nV9mKpqSl!KRZ4&C^0}sCc(C$h zK#n=5nM5@bVf0c8@1$o*AYt{z3Cl5PkcRLyzGm&HR^u*Pn@d2fm=Y6j-x0`4UQMvM zA~+2TR*24u3A0!gWL3Vmc|x6PSepo=v}r}*!Tjo%kXuK54{m5fnnB(pv5o=<#acpM zqf!)zWr^_mFo(F0RUk)GxSZb;unYs`m)Co5`kKaV14no8uX-kEfPi!Wz6YI`Gtr}! z|EkKJfRs4Jac{N}sj(ilP!$!t#0)DFB&)~oq{>atjD0m^sF1+shl7SM;pB(1@IrMN z=2>ijm5~;?*P^2Flbz*Xv}n+$-j)fi=w6OxVo(e|4Yb9yq#n;V3o#-xvMM`!Pqz`M zGk0mr?t+e%4RkK_sx#gf(L3$}$Xf+>QWu4XtQqfbh(Il~;Fv^hwP;o;$gg{;0%rfJ z+6bOtk1*S11;ZYm{`Q53U5}e0*!8rVMYt>sCZ(ytMdIs4*aP9dBg$^VTinf|!MIUM zTyVWxOdDpGJsV-xknh=FY}!;*!~g2rH(rDC9a5T$8-1ph_$Z2AK;H~6veYNNP57fM zrmWK?=Sv28yCSLkg;h~B{4p;pEyGiS?K7&s;#o?&XY=f1tz@jHcL|uS1~zZtR8rVi z}l zK`4daj6WAt8&4kLwmITmpY4;#v=5TBuN*id!EKjem^o(++?$u6)~*GTQB}dNJFlRO1aa#N}&>D_@M%dXu|0QE}G=4y90c@eI6U@#^OlIelJ~rXz4lxM}A4 z43p{X&U7Zx#octT$m%{YmWV>xQn5pX#d@O+h00g;_IU>Zwc zhe0RK-@tmA!snf8{EpZCRYg|sUY1zY;v*u9MRBYQmJ}a|JaL=}UDx8w%&IJ??r$T| zK53`5FA1}i+~nz0DX4t%t`(K-sRAh+i$tE3sb>!46yX5o_-j(mT(qWFoVU3^U^$fMlw z6hWvHKhIo7+DsA=B9VM)zz{klXtTp&%XL8& zR(9@*Pi@}7GpVVZ)WTKNrF=Zpm(kWB&4BLLw;(`_N>k|997t!$8(iGn$(O8oQJZHIwtQVKzrc> zji7#ZSR9xFo-w|gzkDW0dCjc>WTOdZIIbB=@J@*^T4#iVA5U!q)N?rm&^B8`YEu_M z_T(Q-8griXW8uTX%m$bmJ50ntCSI1z94*abRY1p0Yf4GPdzsosdP_L}56uAykUm7M zF@=tKmwd-G0?uqX`)5PBKhW>jDuTXhpEU$<;c1T0Sao&+84rpGB3r-<1XOtq-Adzw@AYo8UZ}q?rzO zUw>xE!J%9>b`PH|m*5EGpKrpS42<=%9PkCcVfHzyV*fR_?gfEfm#PWC0k{&a!uzQm z-wF5Zu6jyLmfYeVNPX!vKqWnQSIuO4(JGSZv^X+!e_7mWab z_~34JNSfxx05;iFX6NA#o;ne^sPeS2v!KP2R_rL$O`OB{&436`x#l1-}s?J)XqyvsJTmFrzPk=hq zS1PCcSIRX4vdF5o|C~s0u~AdSA8FWke6|F&gC9xmQ%2#i*uMJXcp9Z7|1S|D`;Q9z z>2g1WbH=v?IL=Xh%x{^-RG$R)H$-?H*gf^nNkF4Q7G`z_p4pwZ3dqo*8fEiNb%SF@ z`FjD~tMwTH82>tN+4tfd92Akx21;vKv#rTFz^g#}?RfLR#RK~3Vu3N7e>Cn~u;ckP z%Si!MkNg&y04#O^ zfY9o#bMw0D;2l-e)9{-)(6Dd^yp0y|xa1$|g1O>spIj19)sJ5Za%y3zBug)+a7-HR z+^u;7e(6hlBnY%EAg8f9s}t-1G+O{pX2GEiTzs6Qc!ELdv5`PrNmk;3M^~~;5tr}v zh0`VD=G1diwZPC%kAU>xzcYJ#8@w8DN(O+~m;Fq$@UQ7ca-h#Z1Q3jM-GNI2{=uhP zQU?wiM_TV@tydA7LH*!xCxJ&Nf;HkgmoJDSG*gz343a8NP&I<;WY0SXh82;4{3QUe zB8Y0_P{NLw$9tOT*Hu7CfY1_H$5LT()xhM^+W~#C2BIloqj&vtz%$G?6JxYC2xLVF z0QefWn8tm--iN8GyQ~1|<5RGDto?#4dpF;`KkEB!FH##IB13nC)nD;(?t0@quJ504 zPHsAX)jgl1TEbLngl-mvPWarfjKM)xz(XrWNfy+sd1y{@@ z7=sJp8W3h10I&u`az*x=Vi}+g09~UNuwUWUnJMfCYX%ot4q1G$Hg|5}o8j#{f$=|l z)r_UnyU-L6aL?MQMCFrorUJ-&4buTwN73CuC z0YmJ_gKZjsd@V|87sK7e4bWdb0DzHO4rdCWJd%gSS_>XLCo-a{ujb$IR%avl8!tYmr1f1zm_%gdx6dJ0La&2}Ba zuXLQQW?g8tJPK)Qtp&Sqv08cP=33Clbi(iFNUJ-=S-g;tjZ4E`sc1{UOI#^fTPKeG znI(dA9I{JG;RV4i9^3p~>Abi(iOe72dE4dl+v-?$4Nqph;-{Cd{;~t39MP!ob*P8Ai3K#`@(;o#DMZ0DY$70xoRq)CH{Lqpb2);L=kQ zx%@Xc*oXQ91R`k?ATZh`9X~;ivkNws;sw;=Z;-bprLCz8YN{a5GykqT{%uKM_Vxxg zla@k#GcLDGa@VZXbo8^V4QFwc1^&mcItrsog!H+?LPNB`bDJ1$@YXhE;!!XBkA46b z(Yn$`XpXB&gUGUdDS?zgRYB_z0cqg4;byQMI&ayTe@*)ccz+h3$HPXgP^l5&eGS83 zGj<;diJ2<0%!}r#cXIjPjiA4hVdyb?ClXASziVlH^LjMMJCtAh>HV_8LwT9c3GCZ{ zzZ=ek^Tms=>iE%y*vOcPBFhi>9mc~uCD+3U#tlP1<8P@;~XKZLtfFBhqQYF|DDk1$l;c zn)rJelk)bvEzm_W?_S}49n*)s0A63s{vd&WYjoXrgJPzU6vDC+71gHqw=T!)a6@>u zgAo5~Wq>XEpMTil&#UE*&==>ttM|?*zn4vv5$?i&B?Af?e$E8-HOrs1&BHcA*U0YP zTIrPc2fl20!2u}-Jn>DCM(#l}Jkwr5-Tg>4INR+j2%`Vi>A(H)FeW_4SL(ZqJe~Rv ze22;p-+vHa5)eVqayFTTn1Z=y|9)LhyYtI;1YF(MCWImb^W5F^XLKyd-?HUFS4OV}X82_nVf=MX z#(3KnUR1?>t0g~(&%scw@)p9zWr6%9lGd+RgRu<~is(kub8fFaB^@qXXf!wxfDv2l z?M3;f0O^X=Bw!>D+wJ&>4~stV0f$2vEg$H-B!px(bE~}m=RpD;3x8qQDN1KBLpJ`7 zZ>RvCwf{r7Z{fqc|4+zExn)Nss4J;xs1;-U?_~gUAkd6DmjV~kc*p{ro;|Jl0_j%( zMuTi8Orj^l%VK^U=wO5_0|hRUXR22r<@7~I@)e-7NYh(bq{u=bxeOyCQr=Z7L&$<= z9G|gK8?l=1@KO#ig4Gsd(qdj*X7Nol1vnYlcV!)P3_ zk@FH%oTLMvfL)w`@Xv49h~1!)ndKA8FS(#nX9o^BoEocrUZ=6_rLuI$99wPL>s^>B zrK(!w_i_w`EkU-_7Oz0kvg*~p_80IZc~wsQPf9jg`XJo@R;)YYED3WOZ3%GT1K#)z5!1z32-oV=d~!D~ zY=46y7CIul_7`^DxCRP7L)7jGL0gRT!#u`8<$d4F*qrLk&R!7(#yvX$=WhhZ^x(+? zhHaOsrZMI{_-zCh(O(yoU+kMy zcOOSB`vW*O?4zi7g!9jNvGppxhgyKjf)*vraUXZp*fZ8w)Gh%?3!bRBwy^3vEINlE zT=zcDG?PNM-(32AX>{fUcoH??r-eCxi_GP~OQEf+siM;@L#8wLzyhW; zYEJsR7Bcbh$wH$~3&phyFIRbXGa_SbU?6PQU~bSFklyPt#pmX>Z&pKtkA@a7uu5E# zbzicYD^`z;)ymY;nVH`%2MUy-Q>6`rUl>I0=We=!OQ`jY&`nSa7xnqbEwiN09c$S3 z$Fc7;F!497%#Z3%*n|Wb_F~|Zv@D!I2^k32H#vD}HS8}$&p9Cb zN!3+D&UMO9Zv&1%?wA7dYu1ys?CQP0Gxx$`xl}!9^;tCCVlGl=@MFHWS)?FZdV;EAkC}A=ej)4pi#ywwABgb z6Qlk&)}P9O4^4OIs2l-H3EHjA4^K8v)S$=2PlhgE2+njuzQEzjd%e8z;BKL)_YUBs zaBo|O)uZiX2b^jTS5KbShn|*3VakuQqEU|dVD4Jn0Z`5^mjLnYxSlRw6nu)rLY6b? z?@frx%wVvce0>68w8&l6l{t`LJ&+GLKjTu-IG@kn`=fpI|BLJ+Q1ewTsje?ILW+BN zCdW5-K+gKaS8Fz8t(n_z9VtR9>@*6Fhst;(0aPtFR3P)TVpy8Db@nNt_d_XHGS$m* zpDLBFA+BY8*YbZ5qEeJ{93n()VI~^LF{4 zk59Js?Tdboz5~4KC3e+!vaU?zF5vfsn^e4^?a`=~^3n4oN1x?EZiMx9bpxxdPj*!N z?usMEWj~dUd_f)M6sYg!WLM$*;w|Wac{Gp?Wk1kcXG1yWD+_crwL5?}+*>;> z>J`XSpJH=Ir)gZnYC+CnF%Vyl^E7*L7~wB{yYJHrRZ*9Q`SO@$ z)f1xidnE1Hl61<_@5PXE9|O_;+VHEAC~0D5k-Rp%|BRLhv3^^mE99FlKi^HDHtZop z3PNm=v%WfFlhi3Be+~!E(NCg;m#-mlRDW-hTgm!+yEMp6N&f1bmb4!$iXV*8Cp39X>_Q!O$^-JI>P5N z^+J&{yamzW-wQki%%w1<&wJSGV>!&j8A~x>c2tExm7!BKs}ZYKTZ}^_jDtFyp#xO^ z(ao0JVSt>+o<<&<>}uKO1UGbp8}iuo*SxTt>b(X{HOZ^-Mq2;~bL5S4YYRw;L6K<+^uVOdmbgeiAYk1X`NHErk++Lzcpg_P(o(Cwu55Y+s!P??SPMf* zYI7gGzVOcmerT_!1h`rMtyR4WgkZ-pL24t}{9ka&--tk6O(EBYjH5!-Epn1BEdBC} zOKGQou>ChhILxes_t7UMK~0~aVI{PZT|+gBm%tk;eUI5@w9GF&IQ#^Zexcl)36_^` zs)!nem+tzC2u0yp$#Ow_B?0OMN6o|u9S6iCvm}#kF z8vZgMCwEh%>X-CP5h`KvuN3YE?Nl`5&};`cJHQmm^a4_H@Xq617#OL~!tHsYgGC!o z$)L|O*BJ+-zemE;A70NMWDi5Ni9@w{x(GsK);(5&zpJ>$0Y4xecnJ{xOZ0?J z8+5?x(3cf&AwOH7LaMM7@N#zr3tosNP+LSrWe~Mx*a=*pxMfd-IpTGEvWzC!{U?np zj(I0m+re47sEmW7Vp}I4UX56VLOYF=7^cH46xOKBaVdsdpwAGWs%GCthwlJO_E|B% zof~~v^{Ix+X6WtaxmuWeq~3u+ajQ_kBeh8puuD{{)rPtt;Pp=R1`q=U4TYN(oIAt8lw(Byg@=cQK=~<-Ka9(|?0eF%r zlGHk$K0VvDAQ@G!-Y}jhqgZBX13Kp*r1L3qzDOF0lON^s8VviPa^3@8}gi63MK=%>!^eNilPN8CXRZoi+Gx1i7RvoXBxQ7%Oq&@w5CAq6qjQQej3QE`#n zW@o{{@Jmf1I}ql;3{ICl8-|%nPl_$m+ayA%WGgT+CH~t*w>_@57%g=^DwOBJ<}rkn ze*vd!pxZ=exEBimJ|E;QPDj*7jsN491pTe^y5HUGQ&=paD*xhgzq708q6!^g^|X~v zZZAeD>#vcjxaX8fjq2;}@Oqo`Kfjsml4j(*sg6;5c;hF>2X9D$We z@Isw3ntCp^t--OBcI$2n4N2EL`vGebP=up6*A{sSY}IkB{ksLMO%J2qVR{Y=3T4EU zRJ9C?zKMaCGtarIAGX8AOcFz$#5{~@g^O*(u}pXC?&t_!w-bZw&kJ$WltR(VmB1>w zMd59@T!YSlX$X4yvHMxU{ljxlZ;YkO;HgRH!tFg0Vi7MTLwjkI)g+PSKah@iIkEYQ z1yoLbiF?==S~NSThGTs>pTobz{fSP812?~JQhl!?zGw@cDwnbAR@MQ*4~$rY>aXkF z)1L9`PvEJJ>GMAQZ?BtgI0UKknTgKf*JD5)kOF(!GHK)xEA(WK+W$*LQ%$3bGIc@E zqkOF*+khT<6kGm_+;;QBM+2edl)ZC|FI^NRdb|5;+qP}nw(Z;ewQbwBZQFg@wr$&* ze)BRf@1L1ul3kTkd*@V6CA%sod)Hb^?{O&P%09vUj91<<3O1Aw>xJ5T7{G@;zohyQ z<{LZFPcxr4pF$ahrT=sU$FvM{xmQnx{{7PNLt+80iiw%ZU zQO&Mh+{7r5#!C9A;+&W{pc|UidKA&XIdTovzX>Rn%c^VDA388nu-9h9EK?)Lp-Qnw z7Zw+FJqm)^)CuJh{F6T8(#0sw4~8PZk%RS%YvbUacGlOpvc2(UYX+zO3!XZ7G=O_G z)BW7HStHMsB;yk)?hed#Q*nVJ6-ikG)!zZ+b>=h8E3DqVMVc`ynEe;9KsgVR|2Nk6Xs2YQQOn7o#wiitDk77k} zwQT_gL9zWEAV`$cF`4CRUlYAikGmEYTiNHo0%e;eVAlP!dv2}>)TJ|tT3oyAfh1gc zj#=WB42FoCe!fr)dOC^z*vbIvKH2^I8u(+BJ!>uu$RE;~J}_FDf20nKI_SD&h;tHy z5_L@E^`vR+3#nEVKls|^3hiC&mFr#D;D`RS+FjM_fsodV5fX!%(y9mpW3ZBnG^{Z+;%ks9dnOBem;MGEI=q#6|y8zlmcI&M6(FY$FD8o)o_h&DAuhToF;$v|*!Z znk2btc*^W4wtvd}InVpf1qKoS5#mZAUjr2SxeQotmU#=#EiZJi!<=91Fn%ysNT8fB zkTGe%0Gw~{wYZCpUtRSj6uYLcKoFD;mWgG5w!IQ+cm9gu7fp~GS1_Okv7`9<8=W%* zRGHdv&589@j4^hgZJBE}8!<)2Xo-O`aw^g@c5Z)NBL3)R6>O!QRxp`YPOkWFRL~*r zT0~r#XzEV({>Q6VU=Bi~1Ofic*Dw`Z{}${u0guhaA1)0*$_{mqGFLnv9{S=&j5tcM zA&(aBy{i0RkrC{c)r%$xLUv!jtPl2-OMJ9QRfx6}g)SSmwpC&Ye!*${T3oSy)KU&EvnqCIfbb~5^l&RUjb)Q)?fq3Tns{=Zn<_jFRG1G1}M=Ju|#>!fVgQ&a{_mA>8d-Ty`!S*Qig-#aG zw*Mae2N-!t*2qOpZoN3_(u?3Z2)bI1OPZwUV(2o&r$)%u2<4;tmTu_d{=8xkrGQn@ zAcl+|QTNVv!ttZ4J(2SM*m#$&^vm3r{X#^4W`#_A%p;n96kOFZ>QVvv|w`FWP+tz^2w zI?pn0KnE-5`X2QAHXMhil(?4=N^YGJE~EQ$9?eCGqxkqwZVx_FBoqxKkeqgWVM<3e z8d?R<@(JwI1E6aSkJd4REu6GVD3u1v7#mVV=r=$mi3W&Rit98Q-6};qb0=)oBCZ5a zK-O2j;-z;_ASyL*UOomA*(11`x#nur&q^#(D%9PHIpkLbU?;Td8)EC*IRDJxi;W z#_CA*-B=HK#@*c)<*J@8R|ae36VByBiv2*^F&BNO!&iRZIk$?Mc9!WdOyz&M8@Uje zQRc;Ma2+dZQ8V$a2jzu`AJ|%c=FDQ&zqE?BnA!(V3`4qDMJ_H>&=*VD8YyXSD7q{K zOLK*C0{v-w8j;L}As5hU5uz>zQ5ueyN7Im^Fd&BOyt@ng8qjP)t zaGugcqA-^+;7NhNtxS=@+R4tJifMhnI6?ITzkAswU-|}NNl$1@tg;IfGppXlzRtZZ zgO~m{<(^MufE>?tz?O@WU%B^EfcIYhi~CT63HrR{TWp$ zg?Ad#{4q8?%%F6u;G)Xgk%JV9{8qwYP-pl;5#CgpyqWLE^)-uU_f0dM7EG~Z5!h(` z>1to^fC6`Lg=Xf09PtEq^mIv{%?(HwQgyf;I!iyWfU`WiH|UfZSp zX|?oz?6h{f#hmazjj5UGZ>LZ?Pnn7WGxUlhbNIOYMgFM7`mCf=4lfC(oHBlwej!+5 zU+W?fLoR(08@ic|;j{WJ&P0@+meVIw+jXIRe?}4o|xUaAn9@FZS;0Qnh1eh``5KNaW0IBd3A3 zA&tq-e@^seQ9nQVKAI!vCPc*ymj(OZZX;z|%0jc8j)}73CW#3KAIhKa(;%u3m7y}N zdDRNg=7(KU(26VTJRNf^WLvzsfvBA^btb_l!Y#0{?1BADBPb*=!QbJk5hHoRbbF0* zDdwq6l4kG%n;l|@;3zkbWy`oTAw{565QU$)Q zAd@<&H1Xc%2y0;?nx3MzXq*+{KHt{9e!nN-Nnz9s_ZG(L20k-v2tFtyfnjoH<>g8> zhek=LwU;hA)akq_VC?+%eK6?8(E+Mvt7R1UVqZ3`Z%7!U!?i4*!r3NRw4w$o7Zi!a zkd#NWsefN;f%&#F5Vbi`Yn)_KmJ)082_u;@tt(wY(1;5|KqLQ&f0`5t23l2PsrHxx zH;Qs7;NCyvLfQKB&%^<`K?GTh2=t8Q9Tx>jE(Rm|4y7U|`y8*uTZ*O2(AJyHKy-h9 zt4xIpJY)pnS+yDVWOPie6ucSsxQN!5Q&C4;GGkw}qy|CO>Y=)*gihDN_5%)#6$jAr z)78XrmJoHEL+qtq(2BZ5!yPl?e~Svxf^V#)kVK3ywbezSNTd#LkJ}i6R&aO!SQ2(h zz$nao7ucUUK@AQ%o)7p~q$zKycvC{XlA&SF#epdIIH?}wtwr1|uMDo?=kw@Tr3Q5U0H^_x2v>Znvz>ce4GvO^Q=%Y3}w&$(l4B? zF_@HG-C1_oiGy2hv?q^6Q67?ydD_ja&~>q|F*!x|&w)rPv?!?>URf6g;!onlRwbRHQXn9~ z$2vjrCCzt3;Is!g)`zB#r6o}F#qZ~d?%7e0RX&uii=K0>gcJmKhTpZo$hg3L&p}@r ztWIwk5RSgqQe%SdADELD6!DY@pbXm~M#V(ndpE&`OKV~>K;sJXt*t*UnZ-p5pwcDY zIIj5ziwW1^rfG<4f!{RWn7f#)(#=$iQ8fsZzMDHZH`is^?l{v0s0X5CKDJ))%Z~vc zFC(nE3nTfeWM0#~H7o*Ihf6$^601(!fi=U|_4hH#XDj7nKQH=%Q{y;~n&iS0LgqXA zIgBVgP4IwJz|Xwbg9z5K%23<;>!^;sSjHbGHa+7|;Z4Ks`ntB|jM!En^QN`Dd&)`X z^f1%*a(H={m?DvMz#86k>F1;|q}Kr0qJ+fx^wrD5*~K-EG~c!fUfE1G%=%Cw6K|8B z3-K%-?9O{YH=SVJZ2%uoI7;F$8EG_0oJ@@X{W;Z8CzA8FRxFt)Pu}RSaG#vnU#4i@ z_n*NCj9)@s=Af`(=oLlc(3aYlpnLi#xN@JOaQdjiy$$0Vj&#YjHAe>_E4fhR96ldQ z{hl03&K#JpB8+&+kuHU0!a!}jTR{Q3P~+2#PuCyWjUDb59JAI(+K?GEFZw%_WiYA= z6I5J?AKuX$z&x2<7&;Gb4TqQyc;@}9?}+DA;f>)ipw5I_)8OkG)obROcEK^W_WJa# z@d%eaa!nRaRRL!YKNecP=l6F|Vts;Qn<2^x_1vTOt}iG*f6ol_YFgTuyc|L?R<82! zlhoI8%}fUjFl`BR4k@qRkGM@+vw5IM3w?UeI{CxHhiOwgPShTulWLK2nh#zrFDB~V zv^@V7^4DUwuuA=g^2QP;$%biVL@(Ck8U5_g1ETS!Sjj^Qo(0>V{_17y*z6mo3Ri^b z9F`yynjU`$D6q7e#ldj$01Z82rgnir4*=s}5Dpd8fj28P!7p;xwkhy*<{tY7c6#b% z;xI8}iT8$8AEhfXrchc1og78Mzis@yTc}ul&xX3Vvw={0&LvS(d}rLwaiwB!Fb^~l z;NSxg_<*jycXOXDbWQB)+$cVf+#>dYOtr-dd!Le?SIri6+IfE`+aLhoKzOA2zP7QC z9b@`Z5Oh5NDQyE<>fg5Jcj((V?ZO!0qLj6x&a5of{LdVe;oE2y&w8py=hJyKk{%xf zefF_ZhK%|WdYONG4*0N-6=dn(V3*(&z78f{hO>52?FvmOc(M2Upx>eeU9vFI4-A?~ z8$}_E&-N36c9c%A+d6l{8nG4Oo6|n@O#FMlp#8(p+P3~cZS>72&jXCUOFK>2wxzNA z3Q|%z6d{BM@~i-MKr%Hg@=p{xvr?k9(k=gTAw`4QU1JyrMqJk4Md%|yXEXXr28 z3sq|3e^t!njx-AE%!6ZqZQS=P1h?eq5wmQtxqI$nw{rg-yvKTUK0}6;qvlO|+wtJ1 z59_N#hF#%@N5e?=iTrtu`}4WYrQMK5=V>u8UJ=#;^Cuzn%8k_?k*IpvkhWLFTsHef zxJ(C~)BEn>#I0OnLJi>PRPFajiTH4k7NFS)CGip+8; znwr;~zl`M|F?dmeqDdA#O7!}gsw$A9wqC3q_4+=#F;y<(d z>ol`%JhsOVrmR{g@W(aI9C)8d<2Enl)~Ceg9I18Q2mK&fza`L zV6FyhzRrj(*1JD^wm9?(xQi2zC#|<6YjmUU>y{(tPcjg9gdZXi@>{L~sPG@p5y5If zbfs<*&K&_oNA|XfFNzvN?V(ztlO=PpsNdq>%uf;E?|C4sZE`9wj)zC}s*)|&dTOWa z7<{T|x9;|1^kBKu!|Z~%Wlhd{W>alp_aaG-W-4&G_O^VCw$*ON(We0-ktNw5`i9SV z5%|syFml%Jc-eInMGjVgk_HEJ*q_^_uk|)?moHv=yvqsq%=N`!eh&h(oz{aFeCYXc zY4Mw$-Ur=h71^TMZ>;ONZg#+l68Y23yc?i28n#TSN!ssq6Vfs-c{n1>GzVv`v=B$45rW{0<{RLOd`WpvG zN+XSZ3R!7vG8*<*zi4b)!HXrg_?N<(!C*@j3GXmmsc_sBi^SKnfA=CrFaPvL2!nPzlU*N%?rXv#?gRMm};Nu1vW>?>3?R__H6i6 zI5O)gs9h7pZ}As~b^F}K1|Y#ZjyW0bZ}1!~X?An5jx=(i8g5>aBt1%14acfuR1{r- zt=7G#%h%s_IaDJ|w~QI{N9GO#4v)G4%1%8O<8P;OWY#Sy z+3(yxFV`7}7kURN8r*RAYYN#6LkvrlxovS4 z;ndRZS7|zF=ncQwDU<#r$1L2H#Cu!a9NicLRY*bX8=^#)JA?vX>EseQ znw>b)8J~B(M?I?juPL)NBl_O7#&!Fm!wMTfP)QcJL*xEEZ(p3F9p#Kr9^EHms75-u z56p)4+K8EMcAvCCfvXj<#2 zsAz}Sr1O~u3-@t`S$$$6MX&s`G&)n}?js>oN7u49li~cv@)t5dNU8n8G(nY-VPp>u zgXrz3DCD%s-Yr+omsmfSi~YO0U%seqs=x%|k#z)b8F(03p_km{`G|hkjbZdl3nq(~ zkfZmeI|9LdJ7TAm05Y~VM;R-FhU$lKwaFidM|>S(e%1IO1@;F2!=>#*=>}XHF{7N* zmp-&i7h+?!!ic%xGB*rPFZ%D2A5I67BC*1kkB)x6%4=UmB4x#iCb_FqLfMihxIX^X zC%p5uls4m`;uYo=+P{|{OFxxU zR$A06(4%&{TTf&O`?X|QtTvS{5R`nN5kPWMa$B<2j7RNllK9JZja~K?`S?B0KPa~& zlTxVBJh|ygB=MBJt3UprW|{0&w|)?9q#i> z)6cXdA|x9v1vv4v`i*NZ*5idNu)Mt)@}6v81fDToJV!Ti_hryRDWhJu6(+_QXLo{3 zY5FFp*l+3>J)>lI|IO{qQ6b%V|9AK}$8@TSB8yuX77M=|DT;+|dywT* z7i}6Q&q$vlaZ2?H@`dP6N;pQ|BOj8*$5mgVyqh99%n>k~=r$LUTYLr}#I;iX-;@l_-+ICdg@E6P;Y?wb# z=2KUR>qeO7y_AO2YEI4P0~qoj$k$N+EAIGk5CqX#Pt0{E>OC;1*U)~9res(A=U zM*V3D{lwS^K9q#Eq>%D`O;w5aR01WlYiXBX#|^V>bU0*VD16aj2QRThgljV7QVB_D zDFqn+vi&!o$P^>-X_6{6ZpS}VmTh$RkInE{!fOx6OC_|HnM<@qvD6_uG+u^7 z1T5`*=+@Y$){PH??3y1qO&zO%?$HN@>D?LU##Se%uRJdpM-#}6a(6{XAW!?PU3xiw zYCb_!eoD5leN4KeT{xlGOR`P!fl}Vy(sVJrH7=1sv9_iDEosu4{WCkHF9$uzvVVPO zn#Hmc3&kV!X#2_z;6)`Yr7{sHX4R!t5g0k)R$)LN`Rz_UZUA7fOW`r(iO>VG+pJx& zZjGa$WOR}{=?V0!$=Sy|yv{80yi;2_8PZ!d=d#+A_Htxv=t3*MhC+Jjp^=|G?$*FJ zU731|aDPDYe1@m=k>$U!1n#AaWH0LoEAcMxB$-@gD9{JWY-fehH_2AO_|OaIf}5`f z7G&_Nq_C;msw{#;z{O06A%O zs(Gb>*0X<-^gDWmtHuWo^rE#>PyH>nEz!sW!h=;FUF&C~*4cKn6!6#lg-`{_gM7+b zS@fOb=PYuQ>v~s=kj(IjOuV~=cm*zB2E7II@`8U&`Q2YiElSc}P$tqKB$xUzSEwq+ z!h);F{?TPb>|WyZOx>FT46~olw%^@Wg1>O=V}5R(O%*tL40s~vOqRe#R>p4F(rK10ahO^rAvT_D)H5Fimmi}9Ir;}#@R{fF9-OkWt{LO_?s-!U|_ zA+tCH5M6PyoDhAjh5bR>TJ5#V3Ty++s15V;p@07$WWeeFuk=f8ZT|PFs0Qxi7o)^L zf9gPi|M2|Z-&M%M+S<^_*2av^$?5O^Cx(34?VhHi?o8h?!!x4{d$P#mq#C#)2H(PgtXOKf}`Fei3$#-5j z2=D2U2bOF&_;^1ETnA$bzbtfo-zW=Lv zoAR8_t&E3<_z{xu#XCv8_I>q7pTu(?`wEKMie$?9=-Z-qPa_c-{EFT4eDM#}v+wdz|GB3YS9k%K-ww|7-VD)O@67%3a@1}{b-jh^In8Y0XSW>%2YomI<+k?j zUZ?WY&`5;ZeTnMmd+u$~x6QnLl@kYjoMS^E_I%$)>N#9rW4ruN@AUwELE!to4!!Vt z9lGv39Rxip;NKJEcLd{n45q_x9$mh&E1~oR;oO6R(Ko!P9q8^*`FKismCufdN8gh0 z+eOdzI&jKdFm4I)0wth!^08Fm$!dPBRuuP*EFZ<_jyEc>3&*?iHyL{z&v^2=xN^ggltBvC(?X@A2FW0 z^$9iU2cO~t;$$BW&(53wjqzGr+jrnUHwBu!gWePLyo>1SnZl{}7nBNR@FP9sa4#6Z z_v-QrA%5^DoD(Ip?ysv`nODgj=&(3$@9T^=7$4uKBnzWkIsd&!PUDNfoE~$@nFIyh z$L9k7EpfJ0bX`Z__#eAqEId+RFSNUH-#PFhEW$Y9uJnwVo6@#|Os^VK`Ym-5YyYbjSJUpDPVfKh-BZ?DOjNIxx-=A<%rcY4{@UC*%>s`e;M@XV@F``4+t{wASVecIRLBx8a3t z8^72)hg&Pm#w*wPtLbR1pbzf7y%Ewq;1PXCtoQCpe_vnv8N!O>fHXmX9P)>?AvVrz zH|ZOM?_FEe1}5v9=@azHrO?>eIPG-Oe$&tkPhV4TpJ6KFKrN0V%eU9TEik9MzG;AV zE_M^_>-ct$H0v36WZ2Ng3Dwp6{O5-83pW_&mn~2}mjB}4prdr#8(8(@@Ho`AdfT9M zX#3qXQl)W(72Ez`C^mNJiTR-73o6Sg1Awt-bC>NH&b1BIZ8zu_UrUID7y2(Ufn*-U zqR2!tiJ+ip6p8n?nrOVhFA)7yvVh=D;*N%N9~yOyLiA8nvrk;IkNmIz1=1b(p5(Xe zsv^0&wq@Qf%&DzThN6D`c@DH0JZdqVlI_X}%f=U`H)S>y4D0ms0zJcUG zAZGGgMYUKxoI^0qR8+}S^@udRlvWIgBM(EgzugUe7W+JfWf8tRYdQVIA`(T7#4_Y# z-c!I3YTWb+CG;Kf6x^@~A67Lv-3J9xf6i)7Ct8o}PR3A%{}Jy|=shNbS>j(M*SK?H zrO0y4x!I}=izE__OESr*(6&+uzTkq14#e& zQ*h@#$N)O!F9xCT1|p`fSucy#!<)re4zAm5y4dNs2N2THfat%BzX7`pdx=^52C*mO z!zERV?z@6rq<3=aD%^~cIgh;bj68wR4B)TPBx#k{ijsK(@g+Mh9FC>fvr*x%sKveq zC}KR?lmLmFKf{W;)F?7%osYuNiYQJ^ntSDlWeg(mXW;FROzHLEEn|*}3ZnsFsj8@()!8__t>5 zQCU4?gV<1X=bqwyP|Rb`!~<(6V@2Xd9ZZFEq2$KG1Jo80%CyoTFQB;1(U!OYg^vIPoKSfp6yg}a`@b9san_?jvzS@Ko`ab~j9x=~K5;_WsL$rNOr54Ruy z8Yu-4^ym;D3h6t{HbuDb*;pfmFO4@*^NND~V9U_;j08u>_x>-+SFXpxeCH4#VPpz- z6ww9N>~nBa3*j%09wGCg)o#t~crm3B@P$vE#uq{7FXx!mWL4$Pc&soO=Czm8{PSq1vI zoI@qCV&KtuR|Pd|w#>u1NxYFJ@;o#_c^(#|nwhpKiw#dby~N)j97C-JAClyLK!<-3 zr}i9N62w&L%X}7IVbHI$u%iV-%w!yQ0NsL*)|Ev~oi(wniD@IXD zV4sBPRm|f%Y9`dZVJ^-|-JNz@-~vN3px4V667T4OL*(8F6p{Lr^BQJj|NAm$TZ+xp zH_71G$%A5|kXLyRP^R4&Pz5Xd_gJVoDmWq9gr?O*GZ>&JqrEhl?-QUwycl_^G>t5a zEUF^LnvXJ0xHSy8m1lKAMib-3eJoVSt!k7@1cQ^Yg_D}4M7zcQgRv|jZ|B4SFq zF%h`Pw-gyuk`V&Lm$%-AKrV>cR(LSbt^A<~SgVt1nilKUJg^S{WU}S+X)XXB^_e74 zP@RRS|4P6Re-c&;*DG{GI%Cq=1o~!JtakLjgPe~eu+KwLCCNcKsx?T%Y8A;1l>7&_ z0mDHyQP{}$_j z|3V-)4f--J-9z^BUlxS|)i7k6WfCI{6?x4&O!HMsE(W`?cQcMDUbS3dR}%A_ns6*# zalwU+jXXQ{_H{#;sZ7Z7)r`i$l$$L267#U&_|_xh$i8i@eW?7Jpf)2Q&MI^efbh6QTVOX;M3Y#uT9`!Hxsk>hxY)5+2 zSj+(va>3`s0ecD7v6b}(rBe24k}zDwZb!{=TZ__zjyOBbkiS_y?k-pWmK4s0OO(wz z#U9cKo7ax>W}mC>MxboIMNQ;0hdmNz#}&}nZy|Oj=8{1v&ne5lv48<04PH6B_A#~mcIuK3(AtY?ou!x=^u=U z@n@Bh23$lsYxa=_l%~#U#NTMnpiHv451571m9Z)i(?zA-r%Y-yK^VRQA3gesN8XWF z9FTXm+X9s`kiE+z9@vix6{9S0V^GpI>pV&E@6GTJ7HAzM%hZGQic6xAHJ03;c~Pt$ z7bNnCIR{X)-6{?!;!{!qO~%*4{#8prs=}!b>Jc#6>+iO$McC_BP=X!kgh%JXGybBV zq7U{J&Q8L958R^E;*_rWs^D)Y-D$o?{8^u7MhkQSYWFG>&d|IwcnO@ao$jo5;mLZ< z4fte`xf#QG*{NWo&dLl13j;bd)m{s8yy5Vjh9F|4|5>RL5;I0(u3N4{SV}(M| zjg~#myCBMdkr4mmX*ckQ>!(rspAwN-^#XAFQ`GLFpp?owu{c`Ef*`rxRNYpA0}+mV z5Av1R(qkTbUC}$89Y{fGe5d;e^Z%{`CX81aL*5z7eR$SO`ydbB=OPVyD;2)}sqo{~ z1p7$I@KY_so}9ejmHGHpg_8M}`lLyhXy%}+@OUVE{RhO$&JZxWz-4%?N1{~&LHGoScgiHy6-C2n!(B9J zN&mBvhlt;V@L50L%g=Ys^C!b&Ip|+_&(HiX2fw`qxoB4h z6}B~u&y>G-?dfhHFilnfXaQ&owt0ybWQ5D5h22XIYTr$Hk1cqZ>?VO-AcS5rE|{ZG z(~8k~gTa{~0&AHZu%)r0$V~Jk1>B=O%a)55uh0*2P#-OWw|cEwKpxR~#R60S15}n0 zWB9&O0CYbj#b~VYEk)HL6GQPIvZSdZ6^I6cYI6co8pfDUhjNtwJt$Rv3C;mbyX7xI zky8fJd0~%NLkM|nQXfjF0TR3JHmK}@$~Q?RIOG+7;sDz^L;~~ru`cpeT=!cY=Y?1y zRJj4^?7jw~l~|{Vs*!SS2&X!Ny290#CI$!M35HLK`$FI+tj9VED~eE>3o$XEZxSh;ii279%qb4bu#n@Y0uDJNdg;huBej5DO7uK3 zej2nwp*R*T=b7kUUdX^-VJo!;s7GZnO;$L2qO7?^BcZ24QZboW zh8R{_$p}NOumq(;(BQx2VZM?YRBHPL@Z6y6I`SaVP))eE5;cjhF;>l!6ydDrBvg8b ztKsNmApj?+r92$W9)P%wl3o7NKWPMpAW0-NsbVH(LZ_6%n5^>1zoe4oxqmW&*Y|}< ziyhi8lXm&g7Esu7(@4SLK)#73FFESCvPsS)O7LVzf{DTuD@%$Unt^>2lN*c(W#&6e_3`+0kO-|Np>^7<=*A(MWrb%88yH#t|281_jaaWTeUJcKpr?uGrVDB5|Eq%dtl!`&0uoh^Y)6=qI zNk^O{xw2-^A{cuVtYBuIw{}kXl&)BsJk{50b*}4alPaV zEKwV8yunODl1Q*7L2PN_9&TCw7mZe1^tb5AY1@m9N}ei*;5 z)I51ISJzkR$jmcP46>8Su>-+`NsNP1G@#hVo?n$HS9c@}wkuLN&1;Rw7c5=tI2WAx zgGMWrYE$LiHYElbb}y8>zI$tc@*-I(E)FC8JsOqd&i)n)#UqedzHxm=Mn(?)Heu&t zWL=tQa9IsKxq4Je6Pd3Ot*p$RuE26z`pUl6=+)Lu%f`x0%RHBLGJ97xzS1&tXxOrS zR$FdWpTCx=R@+FCnVyNNc1l$XbXmA*#ZElP20T1O&Q45fwKmGMNNoP4z80d}7ammo zLCKBV=N37B+I#lDS)~_v0fABGdHdnJrv|MNxhC!vgp22HXKGKqBnBUiJ|rVbI1nLX zM^2{@A;p>t7nCtV%;fkt^#Tz$@sIpNQa}hPK8>VEAfiZQyv$6Dsz}PRNDiw=QmaUo zt4MlSBKC2NBb}f%ZetYEAz@R_hBVP6LM9QDiJ;LWW-<}9K_X?8twE+G5w#((DuJ~j zu_{s5gndnzZIoY~wkax?h&`(4 z5QSrC))o6n<&JQJPw-pIN*I*zj`GU-;6?8@Yk z+ZOgo?@IlIawl~6%Oa#FpeOAW*Atpfdf@ye6jo<{M@W3rn4!kwL>R%~=FWV;cr&3|i4l6{Lm06HO?c7|1pMjvhBz7v6z|*r(VJ)%0^yDPD{0s};N9x& z^~G-p&v{aNauXJb4~k5YhzA_V_g~huzdXKhwhyfJD`?(_%kYxCUv)2p(>74i4yVZb zOa9smLz6EWts7%qNmwsb+80pMHx_|AP_;WP#}`r4DdKHL!@J`DbBgW1$o!-HwhP-2QvTAq*V{$nHS2E=nb2a!idosFi4#%!2#EXu? zsQI7dF%}fKmWZCk2!SfZFud!#Adtgzp#%# zC6e2xcr}-}`7Wgo)J;R3)4aqhJSfE!!l2mS&xt?CPrW1e{+t#biO%)Bdlklw?mJts-tH-F-@5-XF97~9D>;t%i?hP7$Kup=4P32;gQSN`{dxCRAF9NhaW4Sy#(oqa>`g;a@`=L6K^&A3@Oy_Z$&>BBP7;)PK9PnE zdml>?ALO(-$b{u^+CbGBr>L*JLqDd!5b8156|;E9CzY6iN#{?oBc@N++(ADm#|;&; z8rrlB^zxTC%P1b0&dfz>D(-^PN2oSpY)s{0VLC~!Et-h_#*zR#aV%{4A~z4RcAs!8 z-F_dhZSZS6g0>nyNLMM#a(bO-`vYFChCb1yFCWHHa7S&J5DrPI&ea;XSQyl0{t?`F z37G2<*TE|2N7cS3e1rUdte+F~+a;d&z&;4SO6?0LUN7}X2)BhZPWZwRB;1aPEQm{^ zvk*8ZM7;j01836~#!Q5zrXYgT7B-o>g_??xOxyxb)NPn*95L+&m>OlRlM+U0gxJ#| ze=mwM`FC39O-5TVS?5Y^l+Hiv3K)w%Sp#PG5`3U<|$dtHYu>Rhkv3aZ!?_s(ZzIx|Xv5u7Uz^ zo4Stn(zZ_R)m5D*9^>b}si|>V@zinS1wkgkyUopa?t79S50MN!Ksp3EvC=iCfxHkl z%R<^d8V`aQqb(fzn$BVHU82#PG((RH%vk(aU*dl`3rPw}prS|HjthgZgLXWcETqm< z?GA>P=-0(I0DJj6+W>Um8B!tFML0Y9vTsTfKHxq1tAfl_a0p*;2zzh=<3FMNepdK> zig3GC;C7859LGR9_ka4LZ|^Ai_=e2V5a*&!JED-LD0EZf=b~sron}-em<1|8<|F^L z@i6ZSX-5rUn5+K5me{f$g>AP05x10u87OA8Fzi`qBK6`e;C@*=9EQbCEdQJ?yQD<2 zwQxCoJAOU;#j4_pu86koy*qBS$R>?cBs!K~8LC{ru-jxqq@Z(eo>+><;H|S7j~5t} zk_zu~$e~;rk&q5)I5BTz>ulCL{%)4q$6pP2XoI!_H!_pcRhxteab6I=lMnUix`RT( zFeqmKp4r&&n`E4I!h64nzh4XQc(WC0gy8sP1!ehn0pE*_&IoNoGs-Dec1pP97wImz zm%s4y4)oE5 zg>V93^w$Zbv9~<2b^l`Px?pDmuyx(Ab)7Ol*$xNedPBSr?_t9{EmNO$gMXD2F1sZ* zrEDEjfF`I>39&k;ENgdNVLS%4PC~Ac45*bisl)|kYmOO()vXOhfLzl1yh$wN(V>;A ziyB>ujL|OL0G{;qmg(gXDM~WZS{z&Q*bi0~gvzEJU-C^8;?HmaQrx2+nt2czBy9}D zQ>@8jQ<>|Ltwj;#5u3T{$0M07Na`aKflDDn_Fb7SP(BJUu$kA!d&zlvG_FXxD2EAT z5Qc~L#o<>=LPLqsZHlu*s!cMqG{sUK0H*9LChv2L@>*KJZ$pst8$~Q4bd;N(PzAOB zKPbeb=oz;IiWHTyT4w|NrKF_&=lRw#B4)9a*VvK@O#$ zM4G2(&jIK_ofdwzMHBAyE$F`(f3s3?xfJ+9g_3c7T&+DKW+B5skOBE?vgUZ%}5q-P!HKE{I#ZWcCbGd|d z3W2jfER)jk`{uVNyDy*E*{<#IlgbFd7q+xHgk;wE%hoUn<7QGf36qlE&-8l@HZf_C zj!DBDX!^HqGO8kd-vOo#2ZV0K?^ojB5yOrXOeY2?)wu8I{~bpEPY0t;O#90FoH4@) z+FOmHJ2jz^E6rHCQ3EX250OCYbx5d#2F~LVgf;_`_C0{E$!9!^k*W zfso^mOQDcsZ2>F0%trZqXU{RH2b@xcs}04g4NU&SN*B)aY6tD>!!Mh_HLlh=FvlAw z$8kRysozrWI>nJ4B z9q|wJrCk!W+p|;iaN;rNN#{i@v)b2r-E5hHuf{z6cz4%w5NDqK%sl%Vf5&*Y*6?mE z;5-{3Iafgc%bhosnAGkb)C|!=8vuyB+|e7Yj{6`yA&eE+26M+@GT9(nZ5dr{fmnqD zX&Gc0ppy4Rp9#SPn__U-r-cs>eGqH~dOytqpQzGI3ScLMM^%oKAkZB}GQmG&8wH6= z71V=&!yNS_s4~JA*%wCmUR)B0aeksP!hXJQPmLY;$jLx%f1&=vrI8oj`n(3 z?w4`Qov{iI|688gAur;{Y}{dCx707Cl|lb>({bRoMD3ZNcunJE%~2~j;XJ>p*Z#)o z%)PkzZ@If|I9Aq$s;f9-*`!x1N5gMs=lz#X%Axj%ADnb5kc5Sx?-Y_q*l0CwHf$~- zSTp>|KFm908V#)(VbZmPvm&|jyJh6Tfb@lWEbYXko)$byhbnlJ*mx*cZBJoNo%H)T z8ibXX8vN6YA~4u@=Wd|=ZUYX`=**#{$fk=cYNy|zx?QAg;g+8B4_(^{_Yd*^Ancu^ zD{HWB?}}~Pwr$(Com6aBY}>Z&q++9D+jc6+mwKLl`|EqVZ@**w#@chvwac+5kCfqF%aRwf6`m))eG_1V)t!ZZY zbbEvmw*S8pO}&TzMMI=nkaXfZ^{UPo&5!szE{6t=_n^42$cY^#jTWopC=Yu>XP(C2 zrPxr*R0Y^quzE>3nB%J~~sp?;(>uXiFHDpIXm7niA( z>6#U6rcHBbZ>006e+}Wm6 zaWFndtz;LY8BZWw$(}*E@E{M1)c|^{$uGKnt}Hz&kDZUvH?2q}9g@1%l4`g|A2Q)& z!=}m3!c7k9663Hf-ggINW)FgFFnf)0xIDz8wlYl80uWqh4OLiAvM=%ZA%|m|JZi-t z{+g-*h(gWi~4qKue z_D+t-Ktj@yic1JTUM8K+=A7$LVlo;`JJe@rc(?ooD`Ro9?AZR$ls3jyg|Cb(#adyq zb?*%g;XXNEAd$7#jgRGEwZT9eGAOFh(2xP4fDFlUoIrR zCBf3nVVKIFM7%FaDJX$^XW;0RA3qp>KYK`cM#rLUm5+^-;&Cm4@|@4@dhQ^*#!(nU z;BEa%;YS-QbI83)9jckS+wQQpg7BuzOViA}H6e!~Q#Zpmc09OJ#Jy`64eV2FC57;W z(WVr`q>CzL6}FPP#s=QrG{Yh^PreA%C93etSeLwMgZ#mA&t%|$S*=M>7H}L%OcK%` z3vH{Hs+|@h*k*R)%x4*QZE5#8%*cv{#xi*#SDOxvQ^}s95Uxt1+H?kjPFB3d%&}&< zTI+s?P-YJL1G z>9Rmz5p|(#6k)njZGaLH6*~yAY#-$Rle$n-zD=6onUD4S$AZfDg8Dy|+=_2(HRj*t zCw)FbcAgSTD6U2r41T&!@w}N_9P6n!lY>U$yx8BI&x+Oj#Xpn31fB?ow=jqIV$4P) zBVOn44M%sU`cN>tGFw@{uxT7wES{81edoOOt{sO>*SGDhh-GbS+|ut7xE1?2h*&oY zF|DZ~#7q6FEcQVKWb=0jeUXmdvUy0&23|CwaT?^%F0=#@HEKtTRtG0PWcB5))LC6l zx^99;Ks_>t+B#feoYoj@f^s4c)76kOBLsiho(UH>H{d8tc`Fd6k`^o1+ z#5ie9!uvp^9;x0X%Whd>PyMGb4CihEx22z06haK_W%*>EHU981^E?+HsE6?B74x=xdz4)A-;X#O-^bdm%%ICE)D{zj_@h7537x^4N$9nwM z2QZw#Q=e|3f!c*v06}T=Xa22JA^eFA(HphffdxzSMcL1D+0RGpTVYy~&|S3)6@$gY zslrn%_9GqrW$ldpd2;80IR7r%oByN!%GCAYP?rNi9`*fs)b+p4{QA5$w#+nTP(YrW|88p)o^5CSH7vr>|FR(KBUv%2H_t6h z6%z-zu?-!?!dRKBYUxMg1o>6MALGFH}2qf-7SFo2?e3E z`4hF|OvmA?@DI>_Cf}%m^fBb8{X9Sym~yib+IOFsVxRbZux<@T^n|*>UqFpRUmKt> z^0V{0F@(IiEqK$V4?WONV;;fR>%BawEWrBAmF+&!a7CI!UCOt80q*Y?Wv+FK+ldXF1t1CqV zcFbC#H?LWtK@Iz!L?x9Ii|F=6OC`^wpZmtAu*;-?_#7N7Z?hd?RjJLYQs4b{q1Ol^_vUs2n;jVS-RyrZ6R5O!ExGqMoFYI!RPI&jg9| z}fig zy{^YdZzHtcu&)VQW!sqQrYjchnc8B4?Kc;)8qK0tk+Oo0h_c9|Q(dtz6Wb*@wXCtd zIY;2@zP5(D29Is!25U|GX?6(glk`%G2pt7xupSks|73^6taW0$=aq)LV-nhce$>0B;G$$=MnkI%JhA1qM<*8-Oo2HKg1OR>xM`IldG z*x4^ai6{?oE$v~5JEVr%CPS_=Wvb?)Bqd{a0ujdS5yJ%-9;9wHw&XOtz1=N z+3n)lF;~+wkK4&laA!Ay?fiqBn34#!VGh#9dBf)Hb0<@D)ei1U4Zx2E3u`#E#@r89;VPuo}YAR0% zyJ5XeqDdr;8_gS;WPehu&5_h8-lC4L0Y~r_AifoUm-5V8x~2rJ@ervw{|)=Rlzw2# z0vR9G*L+pFn4}l`i(Qr{iEfEdgPYn2p5`pPcd@kP!{uy#9q!I-$00g4Mh}p@|2wZC zQkg_@eBT(+Kr3I4SpHT2ftNwxloYbqUKC`jCV(2%wk3#mm0tyl-@lloIJEL!C>3#?X`Jb1UD*7-IT^Zn_Dj;z6$?e(dr zRX7g4nz!E!?udmnm}=dL_gJF+WiJhZ7di>$*b=0)@>>#0dp(r0s^1u-yaoUz6~D<> z82OikM&ayfJYv-PRY-y(AR#6{hmhz5{O>YO;ZHBF!n0dek&l5@CS{*v(V(8?;P88g zm>GLjl&pb;5BM@7yiz~yyzMndEzdhtKRIvp1c(ePWtRv`WAVIfhvn; zpbHJTij;s+dFR#)NEK1Hz%~vKtTdOTQ`nw~tEEe`Rw)Y=(?xuVPj55ZR;vb&{k#jh zy{`i$bPLTiXJChrm4C_Hl#$coC1mG#S#-dHC7-?wD@vG*rS_X0E)=?LO_) zaUq@TG|%L&rOL6AqfvdDX`T{aJPr}wANKIGvOG7wC>b)FSZZb5R-R^jHc4>zroym} zheH)%(zL7hMsnRw#cnxsmS&A^5-$tx?SY)C>KreICE67^%kFiuzC?p{2&de}xA}gR zYk|E{Wo_wKC!DXxnSD2mHqUdhn&Ya-EoSK>VBrmOmNt?Dus8m34E()+F5DjlB!CD0 z%0B}Z!26FVc-yKs<|q(vI;WU{??4nSr+wZD3J2XWt-AQ|1fr0v_)hnReQr49L@T!2 zB$d}bP1M2tHF})c!_$RMa-1XNo`VyUhf4+tZ4`0?kJ)g7JIMEglecm{^6Q4qV9_2D z=hqCEi@ri$R&-iLKpp=}Efq%EuaT0D-?(rG?R7W-MtH0ieGQ^6q0V&KdijY*T*3|b zIUq5%j;!U{TG2r*Cg&jQKAmT)65*3>-h;~9dOE)kaQ9q{7>>`mpDZC_`n zRGK{Mw==M^Rfy@ZPF7A&#e@;Y;5yB!x;3PZBok{@qrF6xO)MBkq&WYoWfoZAxkNhs zsocQBQ}(X6x_&9+^ZREXNkIxm-eD7^|Gt%?M4;Ktt{)v{b8#z4kG8W&+`N=axIB}! zNj}t@K}GNR%#{q(Qne=3m{9U&cY=8*Eb#l2UM+ZQqYYj{B|e2{j&$eSPJo$m^6 zZw1$nVmlWxh*2IdEd)30Kc;m)6k2~5xXTzXa0NTzN5po;Y7smMO$p)pcf#DV8!sDV z4*WV&54pK3o!CP~5clU8f}Nj5FkEk2>26 zzQqG-^&Pcc18CLFnt8|vI`70Nlo2D(BBxy zck8@t9hoVMrD%3o3Uady%$U>Sr(>c_7tjt%exB_n#zA>M?x)4hn6O^HK47n^M9bn1 zvNL>2(~Y->(S9%9TWkLsk(!HY0O(|gOm|aWJi{}}J#7IK6BCdBnIx{@h*-m`9Z6wT1!-KCua0~zKtPj%>&^e&yl@4IAbd6YNs zCTZ#IRj-rE^__a2^CI#?vLKv31#hhxvqf&JemBX=197_Yp?c@MDC650(60kmbWl;E`M;{OddoU%}R79*Nr`+(W#u@Y}%_9z$v{ z4;d^?hO4nIbgvhZ;cMv&-D7~y3JMnd*9G@F%#ZbZkjiKvd>hT-^ zZ@EXt3GDnjac;-0O?>%3kZ&zUQt-F1t603u2zFOWX1ZsqPAZ>X;vRBBcCte-rw6`I z54`^G#8iH+1VLAQay$9@n7=QbyBKt*b@-{P?(Y=9x_>xxc_(+r)Tuqw8-h+ld$nc{ zoqL9ua?CwD^-pNP?*3$Bp33dfMI%i=Hz7}Mw~4~yGvq4Kx2LbO9R)J=AmVM4Jt-I9UvwzUv!Y+Q*d09yjwFyY${ zH;}K|ue#U}hu!R9!aDED%a44p%FNYluMG9#Y-r%PTgN)e7p1!`J~||-;N!vh>Du+I zy_F<2Sxic^{yP9Cl-LrG?C7n$XG~`Y58uSWZ%r1=6Kyo_#0&31;JZ>uM^1@_H6wP? z$G46$$BGHFp*aQRl>WK-xT2EUd*tNo{yC*<77#rpbq`1>IfD}lYM!8?66*uE;16QX zj7fEz;_f9%=>X9~@886VYs(|mqmP8M0<;Imhvp`xNMv>ax*54kr0new(Y65v8QaJI zlm$s?GPeXH<^wCv(;C_vW-pc9CKP&RMm&m}aCKd#YL-^6mD_YG`Kp6jmgoX`m~xld zp)umB>#60WzxW@lkVJZluO;hLRr1qDi!Db)9hdsgC3TJ>v*56?v9LSLXg3_US={?MXL?eun@sHoY(d2RSA3g~GP_ z)fPx7%f4y09Owc|X~mA%6l=PU8v$HBz;yB2TE5dqMltGjigFwS(&H75Fqcay zxa_R8%6YXbYECLDk*Q0-t{>SMtaOr zF!H|CQG3#PNU1kZ;@VQwKo@Mv2%sXTR8VOzdqZQ0zTT1OqciNk)5Hz-#`!mF^)-&Q zHI9{Fynbt0M$I3m29~C^!fcY>E}LD4yV$XFKw)*Di>sUY*D)6OXl>Xpqd2t-I_+73>+t-iXSIe1mIUS2_W_l zy~g!8J@R#z>*{(~+FCGNsQYR!^0&U89o=-(pPo8c&>NpHG=IR{v3!W?tise;vocTa zIHbYtbbMO@lq&GyIj`QBu~~O8kN#MsC&Le&Cv!Q! z!u6P)^)FK4+_O*nK#ig((=FR>wz7BkGO%4w)KPe3p}Xc!2eBa2dX)-9krv@oG^#@=X9m${2_Q8w&1h zN7Wr;4ROYq(tS&ea}DybM3)WUQ`Q?P+(Zf6dacsW)|Hw5*Hh&&?|jeiVsfel`8+Iq zTXYup3@fFI7v~+`i(w>ndeex` z2G$P4lx%F%_7W#j&79rMDU*XT*6*lKuD=KTb`w(kBIwVJA_|TI$v=3uw}AeXj&?ww zfBwFG4OR{Ig?oNV?W)P|#04^TPOo;Iac+cl$WoAF0CSm$T4o4&o7x%Us5OFBNe5bY z)E~xP{?qWs`6G?Q5a99hnRb+%;HWAdZ3~?aYmaMnJYF?Je4Obfnl|?DDXOhD*w$R^ zZ3bw*ANj<5z}BA$ciqgXuSmYGVXe%$m9@B(u5h<|b}k)MEuIIMIdL82F48fxp<;FE zh^?KRYV&M&m(TZUwcxUO7}ywi)T7Hx&@QbpVN5vJ>spjDzT*(+DQ-AyFJ#d4blMD8 zFV4lKso#xt>r4!5=IrtI@};czZrmZKk#vY!o!tBKrUhY|`43ZHr-I-%^ctbMO#sGd zY%@S{o9=j+eIZt%*RX#FzZ!9c$=f6yY(RJcW4(&Cyo4*8Wg5OdknMJu-PYW0Ak<{v zos;?DARU>FFDeILKo&ZS^z#_P@E(}KBLJO8;42<7{{!v?STi6ui=Fth(kFzw3(S7S0wKJqlYPgg-LHLL>%qJ&=wu8}05bVIfM(HK4yEnh z`Nr+G$D9T%3{)1>mhmc9Sid9{aQS#soU>Yyx!Q4JR66-u){J;smK`SDYyuS12vJYdV_3vOO4)VEIJ9G<29Xpd7Ru&hG>`yGlyUXtN)Bcc%ae+F=aqL)|Va$5pL^gK< zB9X(Nkxc#&cr24Y4T;JC`Q>8~W~r%cv6fpq@FhwIk~ed{qY&A$osVlxs#;0yCYxQ`V} zz?7pi5}QUgL%DuH?VLHE7aIw5-Ek77$M@d^cAY&uHk z&7(EJ9a&IkLrc=Lh9UZ>OR)lNG!r|CO4ha8@+N@V(7Xan*PuOXCIo!UP47 zQvs4&Hu2v;8HfQ$^UHF2D7|lhZhGIYptijMI_dnLK(4#LZK8dJd2*Q_7(d6z96BbR zX7z?Of1C%cL$>9}SUdGi(>||&@O2RRxO~aI-vo*Ae4ipmZMG$uP9-O*Lbk159AOKH z1v}LhQs~z2ss{4}qsL_c(NmtfPegEAuC)8B+~7S!9O0^x^UI>Cb;|G+7sch_^(Vl2 zv?K!d)J+_}>Q)uSeIM!IkC{W)G;&U8T`k0SR^oLm?!(h5N~_Cm$2-lyD#T>h-H(K; z%qYY4QH=7?h%<(5JM8uPBv02KT@NZXw^8QVl$8+98rGnij@Ijq>_2sD9N#X6E5^}$ z?wi(xmcDCKTs?jG`!anh-h$fRAZh^lyfmkI?zG+7Fj3yp(o64fgr-j)w-vDDg`H)C zm6X*dMTJc-MgjNC6vEVm@{#^81#)Q}UE42CXM;hTC=%Ri-!k{CGw#`8o$$bPu ze+-E31OVOs4OHh_Ag!MOT5m3t{>3736CT~2~r3j=czZ=0v1bk27;4Cu&2&Y z(}Tq7CFqO7;^mqS=Ybraw6}gLTVYtQIit4F&xjimxh-#kiUuQnwofuqsM-DW@~M+v+9)P+1UO(wjoKnCk`k z9%eZoy(#}0(X1CGnHn4_dwXehhPz#(wtj$SEJQ%BdK}3 z&58EI_6N&Wr7EM2O_P$|ffCztQ`^8}imEHLCAL}qRGZ%NHps`uzQQG*MJe4(m%#u^ z$V#3b{EDrYX`YR`xu@};iiNrw9Mo*^@6r@?)kVx+JbS7O;tt0_Iq|-Wfm+m+eeANW&HD6S9>Jcf z*37>rQ7+4k_OfvZ!wTTTk|qXHPSP=5%Xjeai#^Kne;BA&nMV0dy;S(DRut})Rb_D2 zyi{wkk{$sQIk70QArCYS2rrdeR#~HH&99vmEyNK?%o6LiI5qY$LfP-92N2)nQKCo^ z)I5JgAJH}IbvphYddTj*^Oz$S*DX^W1LZnv`W25*ezMu*Q`aM(?S9$yG@0>WiH)gL zvtg$?KT{hSZpwA7AJ4W_iOcI@?%8lIkzLsMW;FEkqGgMrOr^r!^(bzjV_>y98pEod zy#5n8yyv!tzOv8FYNbup%RQKBeQY71hidX{)Vk{@GW8Hx4%6|m*8F!} zD$cTUF~nr(W=}ERzY{x@HQc;+1Y z;FJlyuF2ray9>PEJcS#JOI}Sm3&c=Eb{_B}`vDyU%x-LtrQ9x`vGCZB$r%L|^(5k6 z1PgAK&;u*j%Uy?{o>3k}ly5(2V*R#=VRqekR-Le~1Mb@8ufD2TB$Ir4EEvm;I}Ekd3qbK>n%* z)O5-dIO@7XFN~>+F69rQe*52u1w_IJA?1gZ_CrqnMnNAZ?jM!#Q&Ar<+bqE2Liihw zIIY_^AJ2dArT;hZ+qQ=!cA*%rF_U#gWXMR>Suy9;!*{>0R{M&$=G;-w^|a4k3F7t2 z79%2u2#-pn2!<)=OQ-?2x7_WmtHcQ_hQUG^mY%^4UEddHPF zDun&u$xvh3slt?D5f$Q)Tmz1t^?NCFA`P-6zE103DON%rWe928{0_DNO=e({$UV{?>HsL~2MBCc8?c1>%VKhOpout#i5Q{kJy z@5%c;5hW%lzN9b>ph5)y0^xs@hJp)NWMN^NKb%o4SQ8+h=%wGIAlC)s9#?PBZ_KY- z(EUcnEY*lzfD-oDZT;_!XE{~L4`oik@ zn~QTQispc0{C=2#+YW{^#uFoCl*!BYRVj(wcMt=!kOyIcqRmOWH`C_jNZDXkJhljz zC_p+79^0`vtDWX#;!tn}urctKnw@EgA%d*Lo5tvAawp;0i9&TC6V3I+EKFf-IE$^2 z9|i7?Bu^&DN+aosDIJ6LA!Z->+^F7w6W_TqM{^7lXEe#UFg7pcg0oM*kYeJFl}#bpF-&8ogo=waRaMF*WpzL6|9d zGwaqMMiUhi#NYzUF_eEyo?sr1ZO&R^*{qaR>Uq!@6sv?i5z$=f5mYNLmjOsO`nXrV zW1<7n`879-5^rKc=J7zR`RNzz1#Z*4$&%!Bq$)k_$Vw#M158lzVYl23W`Pi6&FSD` zuE-R5Ph0W#t=^b73kmNqz#a~s)MaG6(DGEU+Krsm@Av){E9{8LCb7RXYe zZe2HTKLgt{+~l*SSOS1WVOzm1tAo(Z<7Ni$($g=8Zj{j36MK6VvcCRc4U)dGGDJxG z2tn&?#P>1Q7AQ)}i20XV#^ZNHS9`|M0{hcgTK1)QFI^)GG;q&@*Z+bH8yidpRJsdQ zGa;(wU&eezzN-pcx!G^nOEB2a%F*&GmvOv8JIQZZMs_CV4<^1APi_u-cY_f zE#Mli!?)-Oy*sERH=iVv+ZANdJGI6vi|=H4dS!5edljKq*&6ABF^bkveHIB?vPjBEf*-|K-2 zqR#Ml;O5HsER1BPf!M9x-)Sn3YXcR;AbyI!G;+%uAXKtI$~mE!9Z^e9spbEQ_*KmO z%clVUZYVn^U!uYTZ$~K0#d2)bkL_-bKJ@f>F4pFVN5AuU+{iM1H=F(@2HKkK&y6wi z1idiI-({AY1AWhA?*#E9Rz~j~9VCLZrW?=pT$%8Ptp9IzklQ`vkr*ZXF9XjBB6y4p zp7&o&82l=`1oaQuzPYS?)Oc`@4h1lwBbg&>!e^*vnW3 zo$4dBJwE0PZ6Go-xt`o4_;roCMX_nPl*=!s#>h^QBI9yv`frD4dHF|N-T@YCg7Pw2 z`2yc|$t^+E^~7nqRA#)!YmBXRo1<#6PxqndC-eRDsYTnFEWUT3UX_c6s2C|`&V{sCa172GZV$9f_72}$*{=d@hO*wByDmp(rutlN{fz| zZ0$Wh)!7$PE;BMApa^OTt3NxLIvgo#ii9dy8BOm*ovFr4Xe!@%UKwhoE`?3%E4?B& zB+l=BE5NlJlWabb&53b#bz9f1*zbT zydcjfb0yOP>+o-P0dl@5#?l9N{RD5EpUL)n#BQXT;RU4mx{f~iPTGjBKp>F=61Mua z{Lm>usU~y|ZDi@;uI_RQ@NRPk#TYGktf-xikmv$SJi>a^-btgGTW{=8SOo!mHT)oi zLdGsUfHJ~ZZWS`1vf?(sxZpt(7)WaZcbe5&=0tGRVzX)dygfWeaXTJW|B@=T0+b>IL18ddYv zt-yTmD^RBrI<;B7Mow=)_|GVbBJV=T&~J=}D-7?6g;?9;tE{g$8Ytg6$F0WG>H@fxhX{FO!d*HDAyE8+vW#V>g`8{ z(!wP9k;B)G5rG=fjF&fsgD*fZn!l88tbwP0$5R0G8Wf{7-AHX0{=nluOp<|TmNRp) z#Bt7YtaBHv5(b>GG5#sWu?Pn5qDmeSzSmVQt2vgBPM+*6wU=up)LT1|LIu}07#F|k z#kaI3AY;@~@eKe*E3lDD9Q+0szlqg9rt}w1uBxk_<_3VJ^B)tYxxp?`sk-9hlL<2r zOY(zNa>@rwx^ecKn8O4bsYL(;tjf}q-DBakqJ4;LAenJ7<%!cMTU9TMh=6p2h~B-U zt>~jJEe&d>DYZan{`i)5zeT=$~JyRF38az0k|e0xf* z^X3S5qL>)1YJ97FeDO4)r;R1$w~RsUE(=g2qWAPv$i!Zz@I9`xFt~HVxexiKSv>$M>^wQ132|-k%%kS|;GC!0ygqc^&7ItJjqN zfcy2-Q%zvcSt2MTw%?*mqMlkin&H4hIPOi@5|lOo#vz>j(TKCvl!a6sJb+y|{p|oa z&QpU$P9w+1#g&aGW8JlHAcM_D>usmbd+Zoln%o_y@XqPR!&7lnsbOmXymyad>6 z1G~J&-OlnPU)Vq}FUjKpxZp5X%k>7{p37>(Wq9IUG;|}i$aGPaq8bS2hA~26a&*+5q)@9z{M^mgf z*Wx@@;?rXOUKmfU12j%Zhn1e>04>0bLhp8=?c2PNqxebCGKexh8B9PaYFpb_$&MaF zeMy6;7$@R5-uya>V+laT4Hy1s7dRRw5Ooxm_!&znbJ4~F2(=91bZ+%hmb|2P{o8>{ zk}8*L;^f4?|JX~$)TMNazzNL*EA~US9=JEcCV5k{L|4v1QSx@TLueYE1f3Az#?h&3*A-lc+Q{ZtQE2;VNrv$k>rEs4de8_u$SK zJ$b`3bl;JHv*9I(vB~`RJjisgYo5&>0_idkI9x5x8LKwXD95-q$*b(5u$q5&YmZU*_N zxv03(p3ATgobY_~ylhzMTu9NgOHDq@g6RP7yEWr?cTAAUdb57obYYNVUS6uAGbZUp zv(yATck^cCwZn-Od&Gf0e-e9r32b#lu;icrCh4)U|Aow---waBi!%r7O*i%L92>4o;QA{nNP~sJ~>SEuTYPB3sI9`7ES}PcC6;#A8 zqE7)ivarEl7s<@Q@rwqjt-CPfm$o~8fp>Wmw+=)@d)}#~yRnkTvgIP9Rtz7fy_)=l zDgWar@RM5eO?EFlzo$feEM?C)CT@9S3+-Vk%}k8x%rt;~&Q5k0Xw2mBFnAHJUeiJY zlwRPK$ruP@WHyNx^VZ67>R3&7_)13=BTR~39=B>BUwVu|snuk;@b+u|0`kUjY(iG_ z=t-CM*DMH{&I>u#_NR;%`9gmJ)J-uf6)V z&XfXrm=FP>Zfh*a0X@YPPb)t7hvBHA;Z{`nta@r?U?+BL<0tlEQ?#{`nY$ zzvcFF)=KnAa^P@uzy4ss2E9HP%S!x0u*1XzNE*zg4f8!>2B-^v&vi#3TFN@mWl|at zJK`Nx^Yr!wE%}heGk_iq(#ID!Yz;!2bvroX1?2+Mx^-}32#$J!KE`rRa$12QV>^Jm z^u1C1O=aDavvG*{ZG%zyi^dY8N=Q_X7Vb88H}f^a#H$Tp9amBXus+eeu_G5#TQBIqSwRPuvVz#hLK&;q{d7qpOlm$3gAWy3>*%?98(0~P1|)H(Q_owN(h zT3K_-+YBKc{ZGC`w%&%9Px-$Z$h)%r3TdCmA8vd7EMb@(tMfw?HkBL{s(MgiY_gu# z%S%0zbIsee$6ZZ19ZxFzkU&Z+qK}S~lP1xus-$g*?bQ8|i?lV8!1DFK*UH>I_?lhx zm_Bc+dXhK?^}24m=LFb1+b{Id z<>FKG&K8@q?-m|yGIimfnD6u+P%Tk!kfTA!yOkrVnM!XSci9YH&85kN50mkn;=r>` zuSu$C)qLq=Q!`l0gR_GG2@DchQA~3DMhXw1B8-buj8sZMr`+qGG z2J%o*_^qw`H4gJTJ^n+Bm8Z*l6*WYCp4S9cr5P=60Xwm2>v2%^m55PQ=1FS%u^Enr zLTKgf;s^AF=+-ojAgs_e!Hmo<)eqSqJCf46YZ$My8pMb+H?lh6vOr-1mC7@Gh0~3A zYdC&S>{YJZF1*$0nQb{rh10Ltz9}L*U4R&yG^=vRBP}-r_8wx{iP~JVmYhaC5tUjJ z3bhC%VlF_$qA$NuU*R7ycslC8ph{@|bx{op6I3g!lswIrP@Fm>&b;_W1Gzw8D|UBC zQM}!}AK8MHmcq{^Awh(wyhua_J8ev|8a90x@S*QcJQ0}awkwe!wOXb@*}w$8CW8}| z;kjPF>$&sbhVav54M0c;`ltokPPck|nb5TGSCPg3^H;pf7_3KT2dbuy@4iZ|oz*F9v2POwR@lN(|W`$RNCqUq2}Rv9nU{(&;AEMPj?X@FI4TOm58Qm`Y>-!h(_218TXLRJz2Rk)h7f>E8G zyn5Q0s9-eyNKp&wj`#^Xw7uM1bUU-CX{OH9!b&ZL0IUN~41q`AGUe<5R8R$oh!T-0 zgCaCaRRq@0JWJ(U`*?P|cf8c**>-h+ey)1OQQ{GSnA(Lx*8m%5T(=$1ar;TyXkp$W zzy)~0+(?$o19kz~7{ea{k^&tdWeQ0uu6S?QW^%(Au?mEc><1)MlOj(H-^p+?9i|*# zSIDd0#}_X{m&6*FSrZ5a$O{2ZS3tk{6X{N)TYWMDoZ4xr!S~y_{X7H>1{8@*P4u*| z!IY9a0p){AeY_5mKNImZOEBoTUf+sGN4D%QP_JL|&{Dfivp1xg%Mqf7&6?`ps{7(8 zeU&h=ExraqXhb!d`$$zRU^f1cuF`-|>L#|#=3w2FdlH^JOPRrbrFR8$<)f@y4I9|l z2y;Ljc+es8)COU5PJLykrj8lu_U`3)+vQy`qvN8+pb&H18@YtT;Ak83u@ApqbPEa9 zLlt#CYv=>TFsBz$1u(@b3AZN53jxXfZv_3oMfJl)JqB9Gm|mnpUUJQdH%isjAADes z{1If7I8S(5C*4fQ42FtsUxQtk0otssge;d|B>QC=do{v^-#e`Q~#$v*GjFfAC)Gy{^x2 zb!L?)P}9*wO-$Yf`459Z&0>k4F_qJv!5Jb)E9n1L}T%piPljqlyTG?uy}>PzcCkeyugsA8~whG^mtspS~_d58?rjkTOfxSR=$B?+9N^nXDdV>96C zu*1`KovrOAN83q;wwVBRHF{udXv+Cd$sfDWNC*I8cV%mDOT^q7HLGt4v=D=8 z*K3dtH~L+1YXOF)JyBgVh2K&eu)Y=Q(pnGJ~nf-PZJRg3FW4}aafv!9iLKvm;trgV0pBqf(KZfwA$ zVWd4Oz#QF7rNXARYiZtESDUj_mM4>N>)jS*S@9+$T_=}WLPwWrYxaj#S}ol6SEe0y zR%UM4;{x5;$;^}T4N3gT=cSz5k$_y{o_T#llMB>3GhL4Q_Q1bXHFs2&#_mn50X#Dx zkvi70u2#4-Ggg|c2sV6guPYNEMRenv6ba7PTu-iVp4QnkH{PG~4&ye6j9^N7F#U-q zU?WAR?wfHERC0Ydk|r}C(fw1^oEhdR(*_&w-aLvD)7QT)r+~dOR<-GfXbsfHr!`fq zUl|49+4EI^eAxMKrV^1&*4$sSK!8^yobDoR)XUyLz@-{W)H|KKm=X^UvfVUc99+x^8Qt4XvjW|4R-ke^1%uFV+N@ctbsbr zgEF4{3&{8X!oU6hw8DKQa6KimrELx=aCa`-PHWy_?eHI}G^4_vxNQpkYyTrCodpn_ z1>}NzX3>2!RlHZ`Ghh8$Zg^+>tC4}!*0JP$@BK$B>^nN5R(Du#Pju&0aRRIUsPy33$gV76ogSN zf1MahPxhp9)o1DT870!0Yr{(1lC9T7N18qpw@Cz0&7<;V*eDz=67%_jyekr*EsRgPvBa%==z zFT*0pZ0sloc+LWgwzTRwd?`jH`S0fO#>o$F2C!jikkNK_Rgm5Av@$Hdjr35ELU*SY z!#@VA4<;ju3Q}%_RL09=Nd}K5ad4@h4hiw2C@f6gWaJ2jfbd#O^x9(HE5b zCU)5xop_W`z1`fy-4*Q3;B|oO&d-lPb}i!rpVW-HOZJmS7o0{{w!{VHe?^=UHDGa8 zv*W=tr|4Et?$A(f3XCli%8DDw-I1{5nD^)Ge+Xz_)SOG!NeoI$_pQp`XctLUjBV{b z?8K+&Ljq7wL9g^oe_9s^CGXwLa`jgCURBKl@@2HQZS`TZ&QU&Hh4JnoK9~YR#rNEP zAc*wBWw`e#jv=u!Oz4(4N*4k}Be^~NvjlTQV+RSig>O)!JTw=-!{y&g!a0Y#Mozkt z42C&d6#TWhwvhuxZV47}c#&gR8QL>`oame+Pu5oc44dl$yo@k$uV`jvf>JfpT{hvPEy zN=)>t2p9%x*c>)2d*ygz#o%uG3^}SLEea5tS10#*{GE^VMOllxVJv~CY*xCIPwo^d zN8muOPa!rO2VYZw)O}%>ad8{WSmC^|WX&9!CRs;&44s)*>R66i{JZJ4R5v=RDBJQ+ z3QZ;iq1aIOvNoI@`yN-|?j5&wFKefCQ?12O1U8Xj+}2R){EwTx3H4=cetQ*DVrk zw5kcp1@cHE1j)iMUUB3Dv-PZra}-IaM2Q)?n?x#n)w)w&Zhov#>aH-J%)g+0Ss*Y2EMvpHZ;NN#HL<8k&Yiinh7h z1dZ+qj40T}m&Qzx8D!h6n|5Br9hWnm-66jCDUb~Jq4^wk#LG`=aX zY#{pGlHPjm_u9zSbd!v>?<{;bAiQn+tIp@QGng573Dl9Kr}nmFQ>lay+0!GmIl}s~ zn)HiNYT!Z+&^gY_^vEofhG|JqhJlL})NXUGaP+dJTYMA>MEr(faxF%LES&tti4Hlep&atHfmz2eEr>)m5(23KKfRP>hw6=BC=1T&ISB4sy1T069^DZ z{Sh*1Dp^bl!n0n43rS=V%!rFeq%a0B-%~b|o}rxpbOq8uC~6H)-L&PB&;{>azSJVw zJw{k6fYfU!9Y$wy*9zP<*%IWP-hx(4S#|J_uAtj%5M^#m(WT)U-_;{F3s?H2o)_7X znRN(^>TFN+czou!^A{j)zq~--M4blt|Nil_NCn3bZV$_@RnWuS9e}JZ%#e3@<>)YO z8{PW{t&7&hV&OX(dClMW6|ZYNlb^LWAfu3`+ePKi8R>G?fF4@4p9~({8h7W@k)YAV zA%4oSD(kErvdDh`=Xlm!Z+zD7({rkBWwK9lq@-bX<;YzM z;MhDsd>jm8&$&J&I7LrUJ*+1_4@xQMq`gXaft#V(C|QwPPh>74AspTMScK|6p^A$e z^Ph;H-0o11hNQHb_|Wslm^#y-X?21znmNOCKx51!Cb+vl5MJY;d}aW`denbx38A)| zqy|l|i(J1Crm7r^Ba$qvR^e}r$1%k6!|@&Y?`l%w3_hEDsfC``Cgv$g-cYTx5Xa|M zuDE1G>NNROCME?#@}%+Syr}FQesgKU(S5}uIBr!2*Tkr`y40p+B$6W3msYu@O8`R- zC}mQ1Ili(m-Vuqx27KCifz`vuZT&=5MXBS!6b4PVLM_L0qaTG=hP8xV6J7Co)+Kq7 zu@>LPRG?O^ENj$mn87d?#1xTx3?9}2+qJTe4GcL<@G%wdgpU|+)K!DNktCk(Q)gY) z1#Cqtd^5lcYS= zb9r>>-1vN1d|rLTEC#5ll%T`0-rN1HXQ!+Gprggtp02oh^YWM5Zw!A3q>lY=_4)Jv zYl<(e!d`0CWZ(IlMGtkIBZO(X0V`5;NO#S{tqHICx#kCpTX_|8yp<>z z=C>}H5N*>aiys9ft;)0O+?b^W3(XCBZ}pCFPDIwAwTC+NrkHh!b0`&p!Y7cuD+L7` zXG&hn;L_FHg2!itJd=~E+_I<()aRe2K!5j3&%hES*mRd#fFs%l-9m!A>wg? zKo-{CJJyPOOO4anntzmjt?ZCS{;!!mgbHrRPwHYrZ87j`!?M$Ijt2ZviM^~OS%n=P zu1Sd^WLMUreVb4PH}YPQzy3^bSeq!ymM;zE>6ti-Y`6eO5$=2Zl)gdTWqu%=i)nMz zVdtJz@gNR$l_-+Fmo!G{yS)vU!&KaQ>G;*i9A*FLc6`O0 z1jqi2%xZ`zfz6?~bq~&n2G~2BY7*S}bPoX@O$yZN;^(aO6H^4ORp9x%>t4`f?AKRs zsB{8M?jald?$ax#)$~>yz9x4a@p??W&8xqkmW%K2WmSgs2!yjmd=kIK&EGRDuucgI z&;p1QlIWB{{AuaZeu$4l5`FD;?1Q~azbP_nmjMl%!mu{sfY4lU_{Vi#3eS_I;t9UA zP*`BI?4req6Q4t`^RmS#)3U(niPbpye%KwE2#ssQT((s1Z{TA$pkB~ZjxjmwbYr;- zeD;2f)AIONL{M+TAfJx-y-@=2=O7j_BHmC9k0P%)7EGUxJ^uLn0yiu1+*53nrMKgG zVG(z0hsZkSk$)#e2$W>vBISZIHl&9)L|cAHw%9=#))7RGzHA>5g)2-k3Mt#^7nb~e zob4vNUwxoF z?sbi;!7>P<(0$6Y<_@F+FKojTuQK;89Em-XMMhxDll4|+T8wp#Qs1g(ZI5l@A#0;J zEhD$gOK~;r(xto0S9t2rH1vORVc}~i$2>HlS^#zpjgvVW*0aS^ChbtD?n1EWj+H$N z>m~IcBu8_1<=f%mOgqD`Hb%W^tpC{@#)DlF9g*Fq^DGeytl4k$A4qs&x*(4ai}DDt z6P&oy2!ir*AwOo(cuR7@FFN@89c@oH1s8C}6a-{-(Oph` z*7)^%R$_e;e++*20hCO1DAJ!StCF_tG3@YYSAktlOW8io^N$bya}=&nrK~K3{;t5^ zQ?XG#OntBn;)7-M$>N82(zb`P%55L&^8Ad7c6NtG5Zfj8jLfj)2e6rk{E_~Fa4oT- zlrVy;!s*7|N!DR<5mgq!;hBz-Q9Le$ z=lQpY4zqM3EeI37!Qj79@zMr*>Uq&o86>Y~N7!g<7qiSlk2v&Jy9WP6a&xkJ*&nHY zHsZZKWpYm zy(iHh@s9dKIU_~zR}*9b-8(%TgV?wC6o~yZ22VrBc4g6#^7W+P%Gc+vOj}1^r&I|} z?Rl%zicQu+ZeC7v?xa#KF0{de%O3{;Y0~DECD)#XiAo}D4$7^GM6GInF%m!2s8*WP z3NDXWEb!fXbf^cs4f)sWP1xMgNRX?gztRTgJQ(m9*T(VHo-JCC?=kAl_HYBu+EOzJ zS;46DB|u(Khk~6(@7EJ6CA&_|ZI-X-=;!O*R}>bhmwDvYtu|R?(8!$HK;ri2yIBZh5e_)TAw6pT4Jcz2MM6Js6-t=Uel)L;I@HC3neg&`EZFaWb z&yu)ofy{zK!o-MBK|UhnSv?;m-*ATP$dTQFFg@}I7qNw0v9mByJ`u7|5Nd}%2LtNm zP?J?`$On2#l7h#R(iCKyJSBW!-wiL}jGE@;kM*>r^g4CGuUs-)bdMQu=|PTNGiyZu z!zJ(T4}3|ZrPyPMRV)Bm+#2ohfL3q3&;sWLv?vO*z`ERD}y?Bins z=+8pZTJ>S}gL@weQk70&c-7-7&c*WQK*-8eW4g7#R4z=Q{CfR$b1L!kqaAplRav7K zqosb|@`4J}os!TV23SF1UkAlr{t#!ExEs6x07yA<$N*>Ledw~P%#vr<63yv!_&}10 z{)>=aBg(3+nx!HbWpq-|ogzI#&Ozrw@*}SP_wCa48F50N6^#RMy_v7BS)WaJ5Z_ko zd8BuK1iYy8lSi>hvYhOEguOL-a z(wjZoH_Q4%MO0s~|4)X&oDeRfg*cP^3s{}5skTY9IMO#QZ zuBYJLl$rQBYZ;MZlL;swT~sCMkP>44x9q%pZ?molE*SJJ;z{|)pA^p?bk?3KdEKw0 zS%y{J=npR9axEqQ_tlGUc~TGV%bw!ys@+2F?u{=%hu99sjxgH`Et2&$iaM>`4;;P$ zTT&{;C~WFr!S9sQ0r=N;Qe4Ecn{dGf9+ja#Kksn2vi(jPh54>Cx*k+*auuB0TV7k> zjxdyJLyP0Es;k?Oo39Ig`rensqz6=cU;o~OwzmrmM}r6npBp4EIRqm&7uu6N{4~u; zeEBgjbLa*#jh;YtNNG(r3dI7DSVY|$TXTFVH?#gfN^oSh$Hj0o#Ge3fyaJwj58E-0(r zPAoUa2PpPA$wRzVk#>_s2bk{isuZeN<6hWi-oT%HoluDPQu)=%sY|{!Ij$kES`#Zu zWAhI0kdZ1`XbT_UuSY3DahY3_3DVKv?v%0~JJ6L)3jyp9wlFJ(7Dzx?c!>bY=x+-6 zAX%L8R|6bUzdc(sHZmZ!z^$n zjQ@cKRyg%+2(7gL4!Ii-Gl0A~bteCeYpdRlSvyVZZx>(`75SYk6^60``lpS^i?6Sh zQC&JrQft*j6F#C{y7~s*0pI^3WD~fAK&(=^lDQa zkfjn;Fr<_+fXHIBDWH_XUU6~JG}}Lp(V3USsm3%a+=^Iwqxm9o(M8+nj#7ndvw`xy zuabzypjP;3^4X}krSfECC2c#hvQb*{?WxwX6J6)xE1IvXjm`P`J($f=583p*(V2J2$yAIMUZ7m9w_=#ykj1+7@i|3SH z9+fMG{qNttLU{Gr-EYpj4a@OAhdV zPH^R zO-PRg$0Oz>%Gq&Z7&$HdVYLN2e-krc>=;ifS7N;;NT@t3RhlMBi^{z$sdML0JPnV= zoO=W3CoWmYor?clu(X+1thtO>BnxItA57IvLFOWDNDc@+QjZX2n4S6DOl2 zb1R#;+^mV^`!76xtWPY8lu^3AHjlYlRz+0WH(w1EZZAc$CGa=KAPQc{27B*&Ci3xI zu3i?kcf+e2>Dg zX@f=MIe9oC=@X}Fjo3DXNFmwN<$mJdiuFm8hs{!Ki|AMLW=#Z;G}v%Dx!WlgzK~D84rJ{qeGzvCSlOx?BdOOv;h}hzxpYT} z21ldLqVE=)xw)z7foM^$7xx2_H$tEXfaw+L9sFv;`{P!~{f+mLi+R#?Q5-mYjpqnf z5*0M>v)0J<2Wmw>uX}s!&p>|srocCTsMN!l#Si$)!OdTue-Ux~V_z+Jr#=N2k6mf; z+b`V7Pr?`u!ZH3zFsp;#%i>Kqy^r%l7 z0;02MfjbyC-7o|C9mL3~nQN%e_$Xx?VXyUxvo^EKf7aBvfBkaThmMI)4G*D!`rE6# z`&+L^hS3)A)XscS)q6O`Wf4P=Mj&_9-tG87Nca%^m&ZB7Gu)Hmh1^6>`)a z#aQH+@Bh98{_;R4AIK*rA%uXrrjq@jk_?p)66S^dw>ra_XG^@NLDBulGa5Fd%BZz; zG`7YPW_travSPlamkpx%`j7XV1(N0iX>!g&Z2g}c>c6Fu3SV@yt`2Et`f4Wu>?xll zZ~hC4SKRu6lRxLzn_e*^NPr3-nhj8K^rEkS`qN!G;mOwoDqQrlzQkz9IxZ;LgCR$# ze^m;w`jw%is9q29YwlZ63kakm82k<-_5i{K8jv6CTn5+$8AYeifmP!e|Fr<5I#(!W zVzi5?wUGRGRK{v|l$MkLG{-n8>?Yo0PaENPpfya_9_y0W-dj}appqmztOfKj0;kdh zcAWu1LiI0;)bR<KrySMbjdC~tjdvFaZ)2y%jepUffX&p6}_r`BSPOejl=j&^|dB3^unTIQPP7- zqlG#+HU-f#{l80TroFzQfr}*zA*N#-{S!Qx;p32CuVO!gv}$>E>QF$CBb^||p#6C| zogK@^WGi?6p3jbdpkgRbzY5b9yFbqlEPCI~tG6<^+$+q@3lswwx`F$bPLGdB4*EGh zvi>pE?*5<1bWd0x5PT0%*4@81WDiFNcfTG-|8S14o_@xB;zI(`_ZmO4J}1_%o0UBK zhmf2F8h)rhsi{{X6TS<(ubo9_9}u2C`A{24JSONLk8@;sm-xQ|=(7J7tc!4NAe0%tlcT-S z-4W?g5KlWWAdWr;LB1d6eu@A;bDw^EfN|kzoy7{qXT1TGMMblWNN+NUv9pWpk5TUk zi@pNHa=*vPEORg17qW6XvBUU!J;Nfq9;c9GEPZ6LQdnyJY@c^j!Dn; zCI^?lKOTo!V!inx{GBOKI@JSSssrXaK$UJ`LpNxNy{f-W=zvUnLx^5tylhJ3_=2vO z=lH^`Eavzo^b9diw>!pb-01=CyM%iUKM8m*3NI?(pJ=>Cvb9V1$R#=bvC7X7fO#2%(aN^?VmW_HZDOeXM!%%ct6@T98^TmMd=JO z6|8x^q>*=w%JPVJDbyF=buF--HG2BG^+qsq-^{qiETPf+Pa1t%Oe^6kQhH@%gaFQ_Ox@(d2PQCp;&Wz_XjQPwJZKMmH+tQ(VW z8PDtGZY*qDZTXn=%1pGMaBoU(K4NoC+umKQ{^Wmw^&)D9fj*yM+gXo8FxJvy2+PTR z(}VP*RH}!6(+jz0=zmE8Y>xF@nr=NZUwPv^b!Ply$KAqU^7) zwMXnvR$8dL-l%2sNKWD}*Ruq}@w%^O5?ep5RCiS3blO#H9cnCTl*%M)q~oY=0(01Y zOT4gheOon8f1pphP@_x>g__T#2b z)^W!a^_5;{fCzMgdy-)PM}YX7=7lo&^pU2A_Zcz3q+GwC6U*>y*y56m@d5N4VW5$! zIu2abOKWOeIa_!* z+1T5(?`w0BY-Xilcc@ytc5|*q<(_};#B6#hFMF^1s1qjWw@hwLViv&cSPKMiagGlh%Csh%UGr+UFRCJjmF3ON7vvGGT8i3 zV>hQxUQ4-Vexd(4g%o&UL@VUSRne41+)CO927Ry(&TS}kak$h(I&^Me{!|H_ZnkL^ae z=(nQxtk(JnXal!=!`ig6Cd`Uve7@N$zsz2~6(1$sFVi^v4M}#+jH}yJFXa?AC_mOw zQ;0h1$P2zbzWb>cE5?IN@yzy~W{k+Ol@?ok9CsT{Cyf1MN|{Pbf?uTWvr8C_%nA*2+q=A`C;%6MNh5t5E^n zO_7o5PV}bVSKm;NvLFXj1}WRU5s_pq_8u2MA@zokZn-0ohHf8cH5fEag@Rw%pfDEB+xh^O7^ye0K z=8m(-0Eol|Kg6@QO|URmT=VeqU;Fj-8Y?A?cMG=5IPE~nY-I!4D4GKz) zitLPU2}=v)w+;=%mz3`X(jdZQ zij@Wah%bjb{1Jv8z7{fPc3FX`S>czFVuf|hSH1%?YqKOp+p2byi^J!+Uqu#eoyBdP z9K(F5hErpniLgpSBSsT=TQRb-aT;?)tNFsI*4=vRk-u0g7N?~Dh!xb_>|Ih?G;mM# zU|aqaA>i(j7d3T|9CN{iCSgL`L-@r@Z);eXBU4q0<|5{7A~WAmru|!NJsN+Dbh(Lq zk*U^1GCl3+MZom_C&fH>eqp)Fn)4V7;@Rz{>jxRs;X z?E_>?^=GEd6)ZzZ^2MIagbpi9aIlj%xeLd{M9V-_Uvx(HBd==txEyI*HK9%D%PPuW zJ1vb=@o=Aae>2LuLR(WI86-B^`V=Q^Wo^REoyi8y5c*rtv|hO8(DUL{SP-!DQxH0{ zX$Kc5Gb`Mv_$@yL%g3;yTtK=RrUXLLo_5UimS0ON1m@Z$bt6COnmyh;3g()Ac+e}# zqxRA55y2C(P*E5YjS`bR^HRc6TFjKqbc^6Oz8SgAkyW(~ngf|&7MC%g(S(-B(;ch7bO&8UK!<#&+lwMGjnFsJk*&_CTNJAUi>^Ih79BwJ~ujqy_-g zil{iqKi3{G+bsb5l^~u+4gxO_lF)+kAM0L^h}7#tyG|QxlMU4#w=*WHz`)|{MoaZ% zrh^u=g)uNK2+^_+>ZAA#MS06E$PIkO(n3Md8*v50f(U>q0fy1C`Ab}I)K?e?uh<=c z`bQiuSgHt<&PL~f>?G>uJ9Z80LvnD?)x_vPby_3~e-{;wRhhB%OQ(hso$d|8bC)G{ zW^gZK8oyuq+r?N}5lOGoz3_sr*PU*JHX#>pG^-TBN>g`my|F6E-(MYgEm@VXWl2e{ zXAjR7cgua)VHO{S`~|p01|$91DK26eoL+u*cfcm@Hs9aJo`6bDGnEI4hp9wZ9wM$1 zbTg-*$FpM-Iy%d$XC}=!Qz>L!^*Qi@BiPdGkHN;69iAs#PQ+rMSn}`KOSRdP3(0Q8 zH<cKz)Sp(l)I9<^7{RQCiI4gS4ds*=i*FDihWk$UfY2?ua{wJlg zMCsWD*otnXj4I04u(sbt5Cwh2^Sf8b00birt&~kB#*01fxgh-CYB!`{62%~i#MxH_ zdZrFWMHU5eC=rqhx66TpGJl4BT8vj~XaS38*v7Aycp#&>R{FEM)t_N; zG3*NSP)&3PwV~7A{q(oa`4r0Avk~;GjQ8kjp5{9rJO@PSs1h7e;Yvj_R~*z;$Hn)5 zZHkM`Po$el^S~92yeOf)7t^zeUYE68Pvg94`_VK#k1h<=X6d6|t`xVP^k3Dj+fc+d zD^DN%rE!{pa(`RyQ(Jp4iz2mI3g2erOxGY!mRr$c)>VeiPx(yOs{CtuPzy7ccah8xooh_mh0hbs zcaaO$E-N-x_$Z452V0;XC^YaH#5& z$+Ft$1lvtd_!Ya!p|}!DHelSYMSbEX-S{N#JU}=KTV?IW67(`GW%aYmeLBa#I%<7T`6%clp>X@P1s zfY(`2$BBKVM3_#ab|g@wbpS%1wS=YTYGT;L;0>b|U10 zs1;P{W%M&n((&xmBx(zIHWU@(p60e5dM7WgD-8C@^ptx4!srqVq>Y^_>bC(WwTV-P z#8;clBEq9(rX9$l`Wr6slHBGp=+u7ZoJv!CQy^P=?tGL#lxSLf&z+2&q74reWw}uf zss!|uV!R#qn~Pih)^^%TPoq6{Tz^KY@+DC1jb4YueW3EX!*%yw940>szIEXf_vRhL zn}$n>OJm<^4J8BTR8C_`f1idPLS+ZF%(JhNjj?Gkai~D6-ncBFXkT?qge3 zi6Y{Z>zR;Tg>A%WTW%(ITDtI;pLER~g~kgioiEH$G5DP_=nFN-dt!i}w4eY*PBtn~ z;lI!uj8O!`&lG{)wB>c7 zy>K^Rs46j&@*Res(A4?oYU}uarSiV3x%2WR%+0DnbKAKtl6jYxS+B&?5Gy8b2wT~h zLpIO(lzY6t0594~pp{L*1_Tzn-ICO=pty)^+Mt9O2uUn)ZbdK~Ev$v}DtRWk(cpe2Mm`Sl)LJ<4}?$ zN~&7E!|CxlimhKTZTNYHhIH{DYt`5rHt~>&XxpkuJ1n3z3Dlsv%`d;nA5=8R<`xCK zKb^fFyLJ)k>+L;;H#(=*1zr~et55lLL^m3E&r&Ge=9GM?2PaKnbJLs}X9h+zm`t%j z)aab_tc_X7xZ0ZWND{Ly5;JTD?`ao5O?Ij%vE29_U3}h-(0H)2I;=q(y%<2T#0ZAn z==S!k{2WVAq22f@0}keDPts8~1z56QOAdK1#x$ID>Fe;=nRV%YrO~-F&*H#TxJWp| z!+hTKJ@fFSU-;hkO%5Z*DG0~vYGr~x9=ctSwX{fmh+?6#*SoLir zJ$YK@Bzvx^)W5xvk8Me@$J38OlfW3)m<072 z)kJ}@huQKPfWm^K83~(HK}krf&m7AioxGGO(j>(qtEI;aq*MzfXD~`XJEyoF z*D03~!)|drZy#1KGdd?b&EKsnJ0EeGS>5;HSL7SgffwRDK@ZR?EEWuTgB|f8)h4KV zr2us+nCiJ6TDB``gbpRJ>N&we$S)SeYAXrX<6ka?Pa9IhBjAA_xUo34>ddi%(;xxN z67oi&FY5dfC>rb`&b852nrEnS@qt*@aLKKU%OH13@+EJUz6U}@etLJa#hW- zX>NN?SdJr^o~@{KGXI&!#&8;AaBp6ac$`wj)3$rZN$$*OOY?`SI^bPUG-U^hPO*H= z3oLjWi0<7fitEtFffk;Bw2mNay*cpRy>+*#Jj6cO)Ez92SiHgdnj$&)CgDcH27z+T z6F1b!#&03ZDJ`l{JQE{&BB7^ohfux!zk&6T-yn2o)A4tIAtITY9k7<0Fh`QT{!B{yE?Jbo!k3al7g1@E=KpMu zATpbE4FxJbC%X#AQJBqcko{g-Wa(2oU#polF)@EF5k)R+%qddO7QOD{kzi;N2-4j| zIb2h*RhlLk-WGq`_&z>W+rA|5t)`8UFi$eRzzAnKg9!T+u0negtsk}YJuTlx4^vKi z;$ov!YTH)R8OQdc%~#*QQs|+XOPfWtnWtN4hHbd7pTn)%X0r2uYMF7#bN_Pbve*u) zIjW#3s9JBzI$sbH))!2d85jkbr!{abzZ;_$!MS1SqTDSe4Zn$!sbtgIK!_=06cIlm zx-Efk+=Z76Yt(k(X!Mh=T$+8C@r_L+W!XC9WFY*;M1D(C=uu9})#qLUH~g_zyL8i3 z(hr%wN|5eu|LW4eXS4I+`JsEEK(@?pzgfz5s{E#Z>SOj4bZ(P4lfM+sVZS-`l`4~? z3J&PQ_qSRfYpZL~x9Iae`?|qi1v6ksyX&uS6kn3pkNf?(#Z)YYB7Q^)|BwqMy4}O! zQodIF<*+dzU@Qz#2T~;^7wkVkQvCn;|0XSq=4dA3UY<81iG~+%cM9R|F6X;6LU00O zQ~5{eVgbPxC_Xudt~aHe?NHaEhNA~|Xa1B+JO@t^NI+?Haq+xZzz0x6e#B2oy}n`rfR5Po628*|{zt7|lq4^I2T|Ab zRV?f{Jt~@eowkv1pDMhv`_lDYz4o2ewrcBTt0G+(sRCZg^dy^~4m2X36J{z{Lri3X zmBGo#MwQ*Ru8l1uZaYLD0?An9fLU3Ql&(H#A3GY3mgB~+=}O;W|4_~A=siev{4$L5 zfSJaG?_OS>H(1Jjmyx3=IdoyrpD@?Tw^W)_LJUp4 zuCihSOYz$MIJl5Y!7fSx0c$z?_{{!~<+5fG-qbSfXZZcn>>OcdCQ6=_`6aRAQ*}JJ z%X?C8=poOw1m(r|`Ufwy?VgX6r9o*iQK~H$P|i*y047ciDLCd%Lxf_^zD6~7ZH1kgA7o>fQn6d_D77i9&>XkHF_2xb!0OQl{u<6N1G=CaxIu;;p+dCdt1$YqlDxi@0^B zL~gNs4Rfdm{Pah+vu?-NSo)iI3;T6<h8u2al@=$ zib8TkNQ|QThn5|aEMaU;Aqxza`4f5Pd99+8TWndq*1SQ7yg`c|kk!|+Mo}4nuRDf* zpMkWpsAy$Ic>nAo=XxCqPp%z0)vvpI_OCh=MJS~sgS+g?u+8^rXUGe{9a8jQ;!}Jd zd%5u-;j1a-=hvT~cOg67!(Vo@omFQB?5l{w&hl`(F}9Ukdoi*l${vN?mxl1PyU8@x zwU~OF-xSSfHmVH=fHT#rc^9_t1H3P~TxX-+gZu}hvK_J=i;7gmatmEpZdQw6QuOQZ2v;*zLy(w2T8ziQ)#9m=nIDlPY54H`Lx$nsIY8PKG z9!cK61oGA{8y4RcQzeOmDM)4pI}@LN5lFGZn?D+b2^QBHwk3gImWPih(~?hjDs|4uDy8+I~FC|y&El=7S3P8Jg5#LJ{fxd=W|8LC0iJBS$VC0J+)^lU87Mv*;ZzT9a%d^a-Id?TR;eXtU$l zWBvK}2TP$hP}1(E!}~$;!r?JiA$>4uc$EmNf zIS>{M;u=_F4G8E8P;fPnH^qP+8bO2qivul>g|7H&a1C1i4WODM@x$69Bt5SY3?}J7 z3Nn`yop$HXg~=H>D%_8qRCH}a`OO2PIJ3;C7}GzW5-5!eK#TGo>%xxVnrJ&DcbX2f z*Jt7evDDGTkVD)m;xr-ZidA?@DR_N^`#N|S^O08gNZVWww`?2iWExZ9-@1GC6LIok zi>Krib$Yn=_?~+qZB~Em><&WYRyS&684eEIkqR+F8p)F?+wVK_v5N$gVGfA)`JH~s zzZTiFl|^1^b>EnuF|gs(7;{sj#S7@(*IJ{C{`+ z+_J%l%DcA)N3}BKp3q!z%h_JZS|YcO3^%NyH%4MFteQ|Sj;6bC8UV^g{)le>(nFaV zKPN1t$auhX7l7WxKxVV2En$^yen!t&CLHnXJ6Jmz_5Fh$>cqNzW5~J@+8En+58TD9 zp~hmzb4z4igur5mnak*d>>6tm%A6RXHTcK6P$P$|3@H1UK2~V0K zoJ)0qMGiD$^|JExdmY!d-gPHHheFOy^Cc#eeFZ~n=-^(vBXkw^qseg-aH|y>&{bW{ znOSdlg^7j?H#VSV72AfZc=Q^ltxynnk`6`$Qydn0aDR~MSk!bTMfcTLk9 zKYfy=@88*vUTwp=HX(hx5$gQ$?*55^kE=PC%|e^@LH`zB{InA%Ccne&Y6znflfcFz zLr8`SE6i;~xj~+zG?)YRL?b9fK~VDqDMXc~Jkv9upirOBhMVYcgsE3XdIfMH^OY0;}eC z>yo-RMmwr&>Vv*t2I86~R9&b8c1IPtI?w}SpqyCmzo_|NPeW4whp@K{iZfceg>fek z+}#2McLodYZo%CpxVt-pJHg%E-Q6X)yF>7g+7u@K73WkX>PjE9VVPm>=T>d1WX+a>}pw670TkwbrY9Qu`dS;(XaE>7&r zCTU;oIMt$|rNR}z-!7Irz%spFo*p^!SgA*!PHOBdoJRK(yTrG~=0b=sbH*6ITd#Huo5x_M zSgvNcK^gdQa`1kxv)N$Bhf&~CWf)29k#wUdMEInfXw%$I1@UvzLhXslt9geTeT~rK z0D)7@Z1&adY{XmN+mAS{Sho5i#L_q8higIKtUg$~Vtb3yxFP0#mKD65>uf-q8O3!0 z>|gS2orTyYHHKY!D2-xQ8ueeYg6nMEA~-pv8x4g5CwW2(r}}tS&r2cjQC9CwG5H;> zf-~@6bf53vG$ZSjNfdoOckTGu%qk+7@hK&9T%P#)=L{u71JJkJ6a0kxez%UT8ndCJ z-p)TylmhpJ*})7mj>nfd%bgs^@}bzI zbNH#64#V;#dw8Po_Kh9Z$uTyjk2RhxN%e+UaJ0j6KcS@k#$g1TvD3J#b~Ps8nz_Y<42{GcG*T%|gJvC4-Bb0e(LUKM zE9#o@e4@+Oe&k)%4|$)HI~HiTlQlu9m!KAqpcanmgqng$z0Y0? z6G6%RSD{8apGtw(kTM0Fj-Ti>Zx}nI)^m<@-9CG3Q`Tq*4v18QAQbP;YvY`oArN=5 zL@l5jPs}iajMYSgf@K5~!L-J^h9}#s4HZg@x$ghw9)e0Zocf$8^cwwnGqU|NOVUu+ zjD>!JM^ygY_ZQ9_0_&>b@2o*cp+u%WH@KTGP@A(L9ymU-;Fo3~yogb=)Q%ohEZp47){~vGS#n^xq+$b+TC^Xtyap{bSrfupPPTmIE&n$h9~!+GmO&kP&siQn@HVT?<3BdHUkfo`LF98x9@ zGYajo8+8{2HGFD_9O4OW-Ps)q@K8nC^OY~3-J{6Q#|~0#P}@fexvCL|xAq29oGFE= z^ZJ%fK-|d$yr3&P!A~81+CL#GdxM-Y)*VcDgo#uwRxifQt1Af>x1-L&Gk7N{Ajw0K zEUvkKc{&ljy2*`|otov}{e#Wt!fp^*f6z=QlB_?#`X^-S9%eyyX6IxmnLT4odun}t zL8B~5qasK@_?n|)FU_$}k%5nkk*=d)dPkI<$SSUJAgVl|syuY(^ES;vCq3yp5|*9& z&wEz2M5lRFwIF>s$GmE5(526R9m=wfAHd{!PY;ExoHGA|SCGIbmtWyhYlgVnv-fVX zaiZ?m6eGt^fbwMdN^;l2d@nj#^TS&fb+l_d^7``$pJ#QxTX%Jf5T{mMAEApbSeigg zT6PDcQ?ien=A?4AoZ{sE804G&d5@CGw_V4?i|wv@?qI32CD{!u#Nq)EnA^tH_^@p; zG4SY2MGy@ZEs6>tfc#5*2Xni2zKb5BqUG}WC0kB<-mT?R@p0c=<3;ekH<)?KZrL)uIMKKwvC zei#@R3$Oqm5MrVaiVXH2^cxAppHY#ZpoB`Z4A9CI~EaUI2o?F?i8$jUX4I1yH;%~s8BmtN+S^J~l_g`5_2Qt>BHIm|Y z+e&Jbp%RyrEQN%de>VW#%uHXeFm5USw-|Xc#%qTKqxelK_$hhft0VJ}sT0YmKk&A(WSpO>6;X>dGtOzjU)@Bk6Svnan{ze zHrAHxvu2XZBf0P|7r7lxixeG(dCAiy^oE|be*0nRrfc_b=PDd47D0b{@jl@d|5`pb zsFY-)pHcerIJtObp8!f$|YTDFtFaHa4M3Lfd0UHyq=0hMLJ zcfhSC#|w+;U`uEpfRJ*-U^vkm!-*vLp9#46zw!jmi@r(qk=6@5(t5p6)~n1V>n2Qv zouBLLtATT}o5Q)s+owLGx4kESU-$OC$*@}1oPI16?0k7nEk7qV+N+4wsG*tH>WcI_oQad}&mfwsw z%59d^As_6MtlwK)_B+{sq494fXLqO=b_yc3wZM|q{Aw6K)qI@ReccoNW4g_K(pws0 z6QMN-_CBjN_{0mpz1A*i%%&qScCF0<_+JjbX>_);kk&2#Bc^Q{e~fMZqaehRPDo;+q9_Yg`R7`ZtwJlNC(7Po_$Wm`HLEti zB8^w5K}pUQb}Btk;m0i?G|qwVBFv9!w51dtm;)d7^$La3G_gcIF<(NVMRRuEas^eh z-4b%IZkW047-L3ddSX{fW)exYH%ee+{0Hz*X`F#ZtcO>a9kOz_v`zm=yIT=^z=T8H z0r2tM2Fv*dM$6fhim(;}xP`3;fT~iv)5Ja!&y8`pds*Vy%0k0`B_Q`ZFnQdi!0Nay zF3@8dd{s$_QgI4G!CyS?ZbDZBx4z*bbr`0swv?@73J%RTN$SUW6w)cjy|zqZ|H6#9 z8YU4rtUH0ez3e})GXRf^xae^ zZu?kT#j*fn8mKWdtTA(!WspkdYD5F{nM&RNG#~Tz)OJtVuk<=%sJF45<@ULy^5Bhl zNfgCcW$e}{-QBK9A!-Q4&3F(tq@m8w!S6tsY>B|`o)s+9Tkoy8sW&8IjX=<#`1L+Q zj1h=B6teC|_{;ux5b^s{P8wpmJi|s)Cwn_3y(LB8As`s1ptPv221Gp%{&?p&Cma-v z*dZRcLf&x+`2pzTAkfD{V$8%E-C;-^Jlgh+*NK>ci=n6eY0t-d{G0=`h*&6aN~`_| zjHeer(%c?z(e92&JIi;ARJN%Bq4W*C!bqsQ+QhcEgs{H!#!$j4Wui$7N^?dJsy32N zL>O(%mUNVvMORnov#C*w1Af&GNt7h8c=w(aSXC88r5;dU(`ZP0@RJWNQ zcre=(+Cx6{%Nw{^mp@|%qN9aE-hy@7uZ@(Yl|H(t3A5^rJBg6Bh8lI0A<9H7 zcc0^H4WT<7wrC6x>vK$_v9<4zT3o$ddK(0%WXY_>awR+=+m8yPZ16Kp3pH_pYi58} zOn|7GbYcI&WyQplcXT$7|Gob9*%K32r+B;8PDDze1#@5@I2^Xzf+9kDlHU`D8#h%c z{ffMiLe6^#-<@I4ecWb~xa}`84r>%VcG##ih(T$;9g6NB|CE=!P%Qai8?qo)W&O@5 zQ5!Zm#K-RAe%r=5@KE)ojC={d7_5ITZXKarp{q-qUJrG`IFsLw@w-Q_OYVR0?|)Fl z(CGs>>u2UAzlsD8IK+d0nc>#lT}Y-X{0*pW44vyd!|8W#M0J@WSG{N)qPI&HN3z0A ztNcpqu>U>Eut2)q%sh$?H%BM#dRlt1nq|x%Amno+81RSyaS)Ozd5c z+r$>Rur9)|OIF#lumro}W$&L=HO-tXK6b@xX))jCFz%aVW!gYavGRqDa2wE`E zaQ-fRzdv?t$E!bE>=9tx4(SS8S)z8alo=Jn`_t>el(+NtxC5EMn49ao3lR~xKtM9? zcHMxy<4mJ%Wq^mGz_HkFRL_3Q5LqGg758LLlolg0Qdt8 zV#g`KnpU1K_?*KJ!$*$bozjm|9l4RlGb6o%Yb7wW!>Sj^c+?9N|%m2P6$as1ls@leqf!`Bf=*eg*Vu>~7U zd#p425=KkoU6cxClCLLJoi|hIyBFQ3^Ol*1jjdX1L{pciaXN((To@U<6}I<1(1W3B z3Byu(B1xizjdOnglCQCAnVA`XVHS;>bZJ~dw}oyJCbz!FcOF|^S*?M$ww>+(UOhHR zxwrEOd~(AOsqv=3!rXhT=c7tIDb2>wAvb|Qd%n!1a=^5=1*@u%KX6!tk|F-W(>ex7 zck@2p8I#0Rpd1#*T{KJ1WF%&A`2 z;HOOkX#NIpqE*nCGms%C5JPT|8hnuDPd=9aDU%VcepChi8gMlqt4$9M4TKI5Pc+=R zgxec3<=faK;Id|U0<;IFI^e)41c3_HbunRmU-+&H!z1$5P+8fjV~uJ8lgc?rFyKlI ziqb7jfu!J&5x=mGf@-idcvUyL`VA81S|H4q*=6(y0^Gl=OV`g=Kvx$T3kw1Y%J-kN4^1s6 znrh zcwoHc>p1H0+I5Q5pt;%?N1y|8hf2Gole_kdO{-KNxsQH)f!iG4p~LEga@rEWVRH-A6#F`L^+-*J#9`IF{_U38&o2!clbLj(TV>`ao~fwLbQCDa*zmy<+E{;;rlD zOOVYYQiB$^f+;wc*!s1??8j&CUDFaAAaa)BElCqm@l|P(*yorcLgj?;Cvgn8dT0J; z<5E>T=_%(~wOt$W*jbVxGvOgl2(~CEvWrNbZ=@{3IQd~&NQ#NPhLx%!=I!%t0dtle z#eB^A?(ISnZJ>y6Qhu523_onf1sdwa>-UyInWTFR4;?*03vO>)mT8J5QyvNXvK5i+ zK2_Ips7%wwDQZd@4R=Q>n>jEYb(dT$P?V~Ch9l;d)7Mg17IBm=Es5&~9~CpBJAq5h zxRW@GXi52u$V2s9vh&*&^W=QgyPv8Acwbd=Z`W{3SlikV<#)HYVoPp9LqQpa*DDd^ zHF_0TqL@iItdS7<{pKE*Enm{8KQ-`YKU_ynp4M9J$>K%pPtp=VVHHYcSeE@DSK#)L z1BKGHx{dxv8E1LaNhG**J7&}9dvC|4N-(sT%S=M2G0hmJ!b3iRu_%2H*uEJ06R}-{ zN6N*1x}{TXM~R;6<-PnLZ2yUEH@PkcqTQA-4y{rUFGj#1QfA#Zj+6Uc4_YZkjNTEyVLAS&`=d~tj`ce8xQYm-4H;E*; z2JR`k1BX(|%jzQ9(@<9@AZyjVACu3o@=6Qs?AbJ3JR%yc+*TBzBraa4)mM!gId=pI zzo%NMHPsOy%@^qWce{IF@T2+Qk!R|tSTnU@h&qpjYPr2aQDOBFVAuqzVEv?#E&X&+ zA<~GJAiDoYqJa1)GopStaVQ>18A`^uS;>)!oYPww8_bOPX2a}OGAb-yK3W8oXTCtt?NTKBp1NB7?r~!gi1KzL~VLXu?h88 z!YP4S5bge9mVwfVnC$|`^$KZLb^lp>Eu~(S*m-ghUC>TfLE`GZf_+1);@X{|)>Y|1 zN}~k4@p;qlAcB>!U;2Pq$ zC71^r=!cvo?K4TyWrDg{3wycz4>|U7`QvZ!*Xv`n0%I)>`8w-ts*d^W%y$HQE?LW` zqA}XFCX=3+s>4!1Ls(oV+9*t!WM1nwpH1Q%fC;NmSG*REtC#GBti(Isi~_TOWl%F5 ztcXg~lHaU%2>Jn*G_54amxnDSGCl_pIgKFvibiUY7txZ<_4CX6keR<#?~LQ9u2Oe} zN{Q2sl{-aELYSp9B@RNrXbPdZ!rDIGo&Bu+D4HKFC^`s}P8?dX9eZ6SZFNU`=SX#Cdv4+sMSsCo%*DIed zS7HMeqkR6K5K?Rp{k?klYfG=EIL<(xSOn-EKG$eQk*+}&@!cc0{|3=;Gsx7ZX%|lh z>o)@(H^TZ~K=C5{{~?{>^5fNp;*GF*u#Fe3H<74)O?%W8?HOSG(L4O|Bw~(?znP*b zr)$b_ImX0XpNW(T@$;(PQWiJzVk5~x!#AZIqGFoB!lV>^nf4e+%;e=rq|4gCHGAzE zdl!bN>d%;A@|t6P_-*BCChwSbELBE6ZI~hGtEqL&13JJZch}i?U$fgWVsrz8mGq3N z#yGH`4_R`|Pw(_7rCVjz9xMZsBhh5|%3~>o?y*0xILF!?qn z+*U(|xwX@t%%I;aM29I_STC?G^4HXBkcRGRSSH5El^L+ya;Xrg5`z+tjnyd7 z(6hcIC`!4b$Z(9%lQ(%&bB^5xs`tG(WWn8Tw zUqdBmQB&|5asEMTbu-Z6kcy!U?c`b=NW{QEChs(pIK&{ZG=y#VymX70ViM*@avi;( z0`JDg;38A5lD>ChV_EZa%_?PWxFD@k{YYkb*m1z`*h(!uX%xuKGe3|@Sst2cfq+i2 z?s^04GfU)fUNblLC<0X10WdFt6gqDgYMQU@yDXx?!qZfB&<=^6FE$y=d--y=Jh==@ z_*Nk-&@1ReQSL7#EN{xUXL;W!y#_TVXA|6j?yJ2zNFUE}+Pb>8 zCn6nX3B8j&x!&^Gez7BdVCWSTM>rDfy89<|D}%eVkw6#!7s#8uV4A$BxLnB~V6}(8 z^@%*Y_{~#;YS$x$x(|1)4}DLI%9x^`X)iZw38Cqtb;0ddq&XKZ9tk=W5WUkGvbrV9 zJd$f$btk?91x(2qw#<`F>sNqwDb=0aroMRJ^}Mn^b~-CWmFDvnn6RC{vpL|G`jj$G zLHpX-Q=xu}*R14JY`iw4F>iuNi^hcLSC}Q0DK_n-gBVMv=WN)Qkaz>feSEv#fZ^i& z9`GgEJ|Uuuna>Lm25Xt4T-I?F0({GbGOYsfDWBVV4Fzp9m6ba(kVkc%Y)}cedD?x$ zb`>h-)_L9``$;>RZs=lB#K6A7%=DY=FDwF>|~Y zfxyL^VW2nP?b>T-M=Rmexz}Oq^UsU(;D0Beh5wPeL8%W+ilVeTfy96EIr-%Cj`Y8< z3wrtf0pEbXx||bEmpy*=DGP%L3M8@=FIc)K0>|@`+T6QY&TNIO?PtnuwZVQ?U%WU& zT_zltQB;TcE6YViH0$#_>uC4NymjX#ZY&v7P<>uzeq0~(6c;(Dnf zj6Z(AH+ig&DQ#n5oV`nsDavOBi+7gVTNnh0*lZ+=PY@?@>^mb&V$Lf})B>^|W)puh z{$hfiV`Y|(Bz>-$Po&XBM1{bJLod%UJq}W>3IWHU)L3>Km{jwlFdwI&X%;B5|4CcO zBN#8d4gM`cLS{yd@60a35WAq*yo6TUOC-Tjbnk2mn5?7Z5Q^!js*0e@U>Ro=Fxr_~ z>8{XGqB3$caZY+uwxq?wksZ?~7D1BSki%3#kx~O_ci$M1Tf(}97J0p27qBR9E3ay5 zKDoxD9|0U7l$T>g+POL0O;muq4g$xR#`=scsuYJ3Yf8wN-bFbWI%=5HN5^HN6=^+@ z)Sg&vucPxb4R{?H9g$(44C&*p{D)Ugh!|{F3A1!OuIL#t+}dqvtpEW>OZ*VJ3i(A(XOxBKm_HBCJz^&D;M1^CTet!6b!yFB(2L z1U|S;yr*F%!dR#LM<;ikshC3wVL+|=QK{15<3Um4$z3=$ifdk6gC# zFAcxG725a$cO>e_6yiN-oa#eIT-cf`k!tlM8o-1#2Ao2m&|Ox9Z5G~(fgenjj2 z5?r$<^s6@>r0;u<-2zAmD~LX#j~Y19|4FG$5dQ;T<^K#2R+g!27F3$pA~Fg2}=R!9I)r4i-Ze^B8eUnOL z@1+}u8sk6#eTM7?)oXz~*hbbp_7r0dVs5O<6y~R+E>K@KsuK`|485;fLmJ!)Cre@` zmCMVx2k6=2R5Ha?xy%!`cBwIF${Z2{4uQ&b5*_F8FwcYK=)_Cx$;qQL3Qvl>F}IF* zpzG|X%puWzqp)YO?-Q;u&AX~3Tf`NmS&937Y`VwK#H~aZdkQDdca8t^DI4B%3ewx* zCsGT~!AY=>0Ii7e<>#8^wG|bDNIn!P`h&Y%nvGgIsRo%+0dXbret`00x>S)KiHz1U+R{_IXL?$)Z zMuB|&5+FZKwlD_E zC5if@B>_C8W4%pps9U8oei9R4EoQ#XH`Ufwz zS|?+lRb9t(uWgp>FsMABBUUy+t)#5Mc!PS{z#?UP885bxBVIa_r+`W6M8oH8YrKF+ zzn#qXhI);@#~+G)>pkQHU`)RV-oD4=9IGmL3#mdH-acc!zNw*+zJcF*`@Ahqy@zKu zKDF%V0jeSqEZwCmOFs78RSau+MUswsF;(&Ttz_}LC>=h(GVwp8)fN8y=n7v9-egI| zcZ&~Q#l`GU5)aCL!%pwRbVfO~M;X~9`!J~d&3l%{!1NKXV%vxziSl#7G&?Ynk=d3DK{%v0a zo70b#er0b;AlPtIlzzsPl1<_$JWC*Y$0E7s@I|Wa5JF{GF4#BiONsn!)QvLQ82_fm8AMd;9|L;GUoy8tUYA4Q}Xk(z9!$TszRsGo{U1=eJj?xF!j$nNwU@_nqr-rMT@Ao z4);*B&TNziNU>j-D51|_WascPKzg5J_?RYo{_PHs4=MBLk4f}H$EVNJSK-QJy3gbf?khI$ZJY$9Jl12!iuG@N~WZz-jPr?s>y;nl^Y<&zrf#9xcemD|3bm zoPCfVdo)eoNK%scUA?66{&4vI+$2i|czjg-{itd%Jutj6<$Rs<3fFsU_{N$TBLY>| z;cH>HrDJff6K8jkN(NY@MOYZ>`o7^K1+^7JlCUeerjt3IkY~828$!=)D-Tm%AsFFnAKgZMObgF%`|Z2J@WrZ!G+N+C zJFrJPO(z`ZTv4r2{2%(R5h&=J~qCdnK-cNr-mv4XD(jRiV#0w>T ztU)1sm)tc><)-u-qsY6<+H5A-5%E?3YY$(sCcrZiF8Nre$<~o}R9x3k;WpBeS5(0@ zB~ogk0xP9}XD~k7rZz=ATH^@wO(>F#QDYIOdU2n5s|nKB*t|uS-1dM)(d1V|X(M9L z-kEtdvj%I%fMpsL6wT1G8)MdfdyUP3XM)}t%48xrpB!gmwOGevm>>&Cg)#>({x?0_ z2+Nd`asw97nbOG+AO36@yem2D4g!!;4&S)4thBD|%cphRRi{i+tih)_YB4j8bfRTEr08=czVnoW!cFrq4 z&NXwFN>|fB92?ihJc{%!m=WFJWk}3Zlqa2la7t}Kl{0pH>+xhsAxlWnaPws$`UOthlXC}HPV!Eq= zeC@DyD$eiQk%r*gX14I5tdDZX@*_vPw8I@}_y=fbWGoR9<4MG0(!O+}2o6iLkLw zaerfA|5n-Pax0n^_AsWnyHTq18l~{s%?le2R2?oY%BPc4KG>O|pVsCk2+xU`ps2YN zm4$gith34S#65F2qta`XEU%y8SLFS>?to2tZ3 zqJb!%D1&3VezA6F7Kax%SH!*bsXYu=d`=6G`21lWy>M^7tV0NCtHmcAWyXF>`C8hK ztbn^9Ckx?+GRmGJ<(uaLW!j0_pJ20$d@(qvh_J*&`Ndn>qS9O?e>M5Di_1Z#vLO zWlq^{h9+pdnn4j^_S5pd2^Q{&ZP3=9=ERP$T~)T2@rp{wQ7K11T(5l&MQN25WWsy! zv(%t|p8glDoBo;sv(%S^Hf5Nvb~09b0CLpiWXo(TW&9xKnxm@I5%{CB3B-kn@0?9~ zX*i~h>cZnw@HGZ4X$2Z;R|ntdi$1x$9Ul7h16k-x=0z0f-6GxPWp%M*$2VubB zSTrw8j>Itw2HyJ=8*CBboFn>?9w=q7tJSN(&gL`Sy((0^Q0{Z?KPbu^6AXk>uSMT7 ziEE0wi|P~JnkIERgp%pF)N1=L>J_{u4Z*RGoW#tD1N`3FD+lfZ-C7GzERGtR?CLR% zZcfacIve-uhU8Rdu=vQBD%TqQ=T*D7w%m`$xLO%ikVZ#t3ngVNB3Mt13wo&|NK7ll z!z9EL>1)z6am)78eo`<3DZ`KI1j9&yN>HiW`K$^6{8HY_U2A6O^+39$?mm(QUWA*n z;yU{RV71tQ_SH4#`a}6jpXH|4lv2v@!>?+!%w+oX31!!^YC|o9*_Pxl%4fgSNYy&d z#F#Z;5#$wJ^ysT89dxY6PH}3eT}7wSU=e<5K7!gOKeBqrHWtbhzFiE3QQ`)Z@kNC+ zeu;|Jr|k=qIkrdc{8_9jE@8#UDtx0`LD9^n+AUrROIhw0r}9BI^OS98s5#8g)9c`5 zzC->?j*nwXzPls`3R70k?(~69wC> zS{PS|j3t!a2#W+UAhXg`Va+nw1yS(Cv0H$bX|wr3(fp`EK0W(|pXlOCnG{yJUXq;0HcI|6rMro?6itVcrGyG^cwn&1y;x>!%SUk>8 zV#orJX|Y$G%ky_|?yeWNW2!`RSq8%J>&SPPbSwt-K@kA|z2VUC@3cw3Oo)zm4pU3F zgt;m*Gi|!O^S(NbqMo%|dWAxApxpt(b2EV`&$r)uvAj_&6veaShMW8BBi9bn<$>r- zRWs~W{s^Zo88dLoOGJ%|;FmHlWePz&zM?L9(RzhPBwL8dPVIgwno?pCqM13hKN6xi zHj}Ha`?zSrd1R*-xA&O86D2VrBrhlQ5mll0i~%W5mZ!E{gjIgyjYEP4)oF1fxCSO= zTRvU`SZYhYM8#FMzU{h5nnf8af4T686soEM%1n@GA$bZj?b4&24KP?JMOO7ws|!nQ zFp%s?LUL+s5p|KlRPoPZN-oEy^0hVXx~+vqA&5{yCxm6(FyGkES~r`|AxXUM6P_HxotTp?Rl&SH3gfWN+HgimJtmX@QZ2_9!BQYiEx_83IebVMR!6`Z& za`Yv!_G7yFxZS=EoK`XAow$4U*2Zsu2=Tg?&o53KB_9u^8pvlTyw*=(IJ)Dza$Uv* zR!fjn2F%IICvpO3cIx<}?+19%quYT`2&0f<}9+{terQH!J8ni=qZrZ!j zvo%tJDu|Jc%r%EYZF>e*hdl^DHio?OL$k@RC{tPAnT6Q{-Q5qgoW{GmZOjX_=5T$Eb3Z@4*Z?b{=45ZG zHSnGn%l)@vO1i()gaE|>QJj6uFz3)No}t|*CQj($q<_dLe|`BBsT{}E%@nq#Gyi)x z%ioN*(YfAuuNtRhqsG)s;My91ieQ0Q=72_)atAbndLXi9cRfv$6Xarr&n6tq|2>fX z?LKOPcB8i#IN@dSWN$v}{`zP^YU%h}u`uKn@msu$D7YwdJuJ;;sdPdBc2FTR)13p9 z&SmKt^-hOFhP_p7g6FGIe(UUViqDgCRt7>!BDcH6epXr?im#@ffkU-I|3x3V{(?Yx zs*S9^Bpz9J_vu!etIsLH4w+$L|eayVnkE zxtj@`b2pgz;gqeNxj@Bl!8VPg=PUkPO*21$2Xw$t@Iu!jqU1(O9jYa2_={>_jP8r3pB*!+c#HE{V>xF#@nyVhT^Ik4clrH49&I z-a(xc^5<8H)V|n0s+#<;T&L`-GD~c1jfIzt;PVan_N}LKI$94E?61Ws$6`i%hTM3U z@xI+*TLtL%M+ZSRt=1wK2^2b6ztTs~v|Bq)4bhZU;2<}u5V2_a=#@*Fr?qTs9&>x~ zX@1=`Xc#QN>m-{jPfn?oK`XvX#*cGKKeqd?PYZ2#e&LnA&R+kt&IQ5CEwti9T9 z25#J^8hn|=mEcC{-u^Jq?uZo2XuLzyDS|dY?22opPT^Lco;B1)K5(KDB8<+MY(m^z zR<&(Wmc#zlq$|%RSWG~@Spv?y;S>1umTO8Am@t8}A5oWi(~BU_{e2n?+_yW=b?o|nDa9lE%(`Z6ooIF`=J>ZbxeHh-gASCNaBsrp0lmY-1hk_@AwvSDOUeDV-85hd9r$oW{=~Y)rJPW7F)lXPjzX{w?CRzG$Q(?6#Z)6kS4fo81AHOatCxv-uZ>oT+e$0u?#1?zYuPyE3V$()C3Av`J;lF% z?5&=UlTqK7CE}ExdV8n=7YC5L`9*kRDm($W#U`n3a`O%OE4e|IDlK`b#zCug0fBi; z|CqL(i%*RS4c>3QFOur}EoK7K7ker^LL1WFGMBT1_dW{Q8)teWiZX^WX_R zb%t}j)diKeR6Jw#&U{op`_4h(#uKN;8wXQX@LtycqM+M(Hs7oWi)=?Nr;M34rX#5ScH{o#rJ z)IFuLa6P*6wKmUfSTLqQt7W@0(oipd7$02^D1^fj!^BRJty&=h;+;Pp_F+H1nc#LYX6r8tfCB3*2B zG&u-o$i@ba;OMLm`lbyY2?*j4o-6gJ6?XkUfil1aIlv{Hb)O}z(8L1E!i=w5vchFkE!4C{$ zearByM9<523twc;?EkDozi5a(pa3BVTDJ`&0yy32cN=6FFSOYvt#pfsa$w*!?m4rO~ zZn{TlZB#QK*#5b+C&?Ya{#_U)N{j|77Hu(FVJz0O(H(Vc4SsAbP4`^;1DDI~UBCW2 z(Ci=lgqtM$ghHGkG{Y)(12PPeLhjRZQH@dbh0C^(rc0k>o5XoXG2L{VC`^pJ^KO(` zo#=sNJuKEyzkk;h%gQtSvZ*{!To0~}zK=>mqC|e2u0`rY=0pg=8(0+575Uaj5Ps0^ zbHV=8cIkZeGsOFYuU_KE1Iz9{d?;w!=JoRRK5x?D9H$>ci%Bq2uuyn@ycg2u2KnOW z`ZCWWjQ-%`!tlUVW%l6GQ4%$jK_81a*zM(C6rw1qYuk6|f6A)#hnWrmxtc8~J*pkG z#~8IAyRA3^k0?aHMx+7tTgGt%CxXf8D@p0LVtz7g9ET6u(O!h*B4^ha;qp`cbo*;c z)AeTF$F>nw$W*%)nb>c0i|gKLpSu{TFjK}e#g%aQZM?9e(8V;bL+a{MuO=TY2~lSf zX(3w$B=j-0+cB~z1ZTOl6^-+_Bdg-L!;-STrl|fBtM9kL+*q=}YN!+H%9^Rk6oG&{ z)R}PI(svhxux-X;(QB|w>XC<6y|Kpx)tx54(8b6~&4+A?z`SLSlyZDZ6w+uO0RvdN zP5F;@HTX7lrVDNySv_H=5J?(+9`9`Hec*b19^SKjnY=?Z_`;q(T@!9ENa{EYC*CMA)VZ@#T-t65mP1u#Iy3B2R|<*q(f+1yivw zrkPw)+tGJ(($7NcX!>aEa-6zJS0w1>_q|I!! zheQ2)@1!hpxVIwPtorEpYSf^oz%hsQdC%0^`tG_9>hD5Ulg+3)NQ%H{J|p0=FAuQ>4Y3w1c@F-*4h`}8-tGyli`RemFqUZH-ni&K zU7V3RpQc>4O)_j3*NwG`QWHqF3Py@MT!T0O$q>}XMzQ1@gZ!N#4;ha#!1$XO__tKS zZ;0YP0Vp$KZvki{o}DRcJj0RKd+(mfuBof587XP5o$NNo8*S{M5Yiw5sQgn9$SnV$ zP<|9X*{~IDRSI-G1AraAA*~H*TQ*~PK_mtiL|m~{fT(LcC;8Szb`+RryyetR0E}EY zR=~u7RWBY!()LLIlY6$78*MZNrUvy1$TGCgDLDTlL%%T%oeV{(#`Z8>!%bX?gKNCY1hj3(DC%Y70sMM) zk`-kb?cA?Y#X_jKdFz>ipb%h)8;g<+G88|1S6KRqn2_=J|nUw%??NYXw$w z?^6nMtmvf|vi~pHut@u^a(;nQUq6-XY;-D9NVxC+2c56CLmP9J9#As)*}VMtA@;`i!bwK);X9AwVsIx3MxkA2Z0CwKdPEJ`=mIEix zPz3z-7pK6e!Hn(bXFQ-`{W2L&B%F3dgT>6u%*~m_~ih?fXrCeP@33)QZY{;*DIHYsHS-8Ic)KeCf2i%D-6d{j_+OKtJ?n2`q-5 zD{hZ7ZV#q@RX7EI*a=eGE@|_hk)X&m;gn1=8~A5~ox|&>iv!qrPY4+%mTzc~)c?BC zv+4vtl9QIFtZg>U8tc7_%{se3Wm4X{p)DA3JWv+`t=8vH=_ANTXRaD$xr{ zcR~h?atwYPz_y1cQ2uQnKJs;5F^T^>Pov&Oq`~CA3MI*Y&fS?ac!zQxe6ZK|0OvO4 zU$Ioqw`WESVSM`IYb5syw^utMC*5U}WHnAJpf43$;PvyL$aPhQG<}*d zU2P=@{(*CK{~P`znMAtzIMX^2c2kjk&FKBP6vi)|7P(Qu^mRCs{U&BrV<^_$I+$Bo;;V+H$|DG&90D>mw3+eiZ%#q2l}*Nx-W_qr5*!i%SH&xvP1 zHk0tNVoN*YW}!4gJn6j-vv;4&rGkf~yv6gFUyYu(m|G-I&_BXq(i1F>+ZWk9%nK+C`uY00>ztJvo1d8&B#<|7STj7Rx!k`WlLYO*CljuQZ@n7& zKVT}f{sW&B7sssip7a``*(tQ@Jw%yzz+9K`u>r9wQ(Qathg@_np>)Ra7mvla&kjtU z)@tDo));A>i`!g40WJpTyIzjlTD^$+>2GE|QUY|Dg38=tVgZA$c7zv;IMLpm{j z^PwPuc8l1if8&$A&2sZH>4DjO1zYm_W-BDzOhmkb8h0jD_w4DCOc!4*)sB87STq#p zLVN)mckfK>p1=C)rDVn9)_n&4QwR1M>evV;SC|0(hbe@sd|nLv97_N%rScHeaT@bC zesE%&6EMw5timh?Y74~Cr9h|VynjcNqz33c+bv)x$t+^-RHI`b2d-i4*~gHV7a&eJ zA6w7C`FPhj_R{A<0;%a3GRvXQjXQA5j!X&jgXEyy6d0v^bEeO<;9aaPh$qd@2KM5HFRc!e8yZBzw`*%#9V-wMwt?Zs?{%E`!F)SH1)ft&B!v`yT zDOQG3>L+$hmHj9S-M+9sH%DPJX{1GM0-1q-cdS*n;bE+9xLoGO-1-i0)^c_G`TEiE<|1z z^hD*~u}$`_Of!Yj?Npaaaas>=nBKp8J2&ezBHbdw2YwMh#Vn{aKJld!tS2IQYSkjr zv6Hy)rJ&8a?vRZJ-4IalcwM%`J~B$gyjh2(%N%a1f-_?N&l_ZivIk^Z`#S@6H~Tg_ z1h1Zcxna7tO5ce5XLlO&t+?;Csz`I(NEe8V6~Ck&ujwJG;)qK0+9Oh(r5ni2jDo= zb>kTHl1W0JapY#wuJW*4ogH&J`GC1&!vup0+Nq{4_hv~TG$LeazcoPfu710I3DVA{ zc37&$l(xMxElXRar08CLehc#uotG${ze9t>N=Jch!skQTus#Of{ zDoN%Fk#m+?*{A5RVlye0hVqu-zyUyw^_g_addSaHby`-Wb&h&i4s&Rp%D*O~fznnJPEQfEko>_k?QM_GfnW+7430ct`pt16^9B4GpS!<2|wF$X$ z8AcQMx6JI`YbXuM>HeWsSCB ze+TW6W<0TX<@mPEqB0F(jaY;>9^DaMu2@06(x5SNYK9VOm7~T2ubF5$G8QQU*;J=y zrfD$@X;&vpyJk_7Y0yVdk1b(VF+#}1lDTL0Gk#AKUDMjVE$N#{4(K2!E7e|hU;LV` z;xyv)v-*C^@hiyi=mz8+2houRoOFu9*ybmfwB=hyfdb3}M)V!V*(5eBs_dxTF~;%v2PUgaL$u07s1x$v zzA_*9k_z=sp`!BlzSsZ1rN3}yvu6kK_v6P4aT%w`FIZY!Bgy$J?8CpDGjH`Iic^8B z_|KG|f{Ax>OtwhW>Q3=4W73_b=oT4hswaTjfU?Ziw*>){iA$Jv2B z$B=7;wXH9?3d&?p&5;}CoQO#}8nFtjh?Ia@=@zvCV~ghN-Vp+Hu44Rb3Q8bTp>{&q z1BouxR`VUDVg1jK;oSm&7QO~gQW^uT^U4hJl%N!81GEI86!~s4Y_8@Zh=vZpy};-sIU2SU{LQR@(O1@#z(Tp+-^H7Us!?h*gOwOx^bukh zp`}v)mSO$^9#)JbtFFj6^ukcX2AEUb2W?(nLLzI zTAeJy{m+YLO_>wr5=hT!_E;+WDga-~iunSo4a$;avFB#*M2Uc5B(1!`jjo(Zgh-NzYbhQvoUv&6&Ob5wDtF}R6a(Br(jRTe&s-3K81TyYtYSXfS48Y zM4sO>#%j)f^gvIb@Km^Mx)PqL@emE5U)tA3EB{fBGL(UbPg-vj$!bt?bTG>_gJ%4F zoXk{ei70WR+5DoymeEY?dni>*V`@{z%tNbel@tx38mOE7m7^Xw^FGAWXc*Uqom&PU z21gbzmYl2jONwgwl|NtlwP#>}Yw?fjc`H2%%Q;xB?7?eFcn-xPE%ImL-D>wCEe|-5 z$<1q}+B`O#Ps=iD6B`iT&XeO2NJNjEN$t5k5*AuL4yPj2?+j1N>Df^)qelWGSr`^3 z<@Q_XddEcODJr%s8cse?;&xc&9e;NGq$em}HXn1ml=h20x5OWwE7i6#nzN- zw@yRk4E!-2Np)?USA}CRW}f`23L7;j5$S2?%C8};iBunJUH*X#KJYN%LokA;fMpJ@>>U6ll`|%{mushm&wj zbN*o1Ww3X9e4}Rz9%psfWF@x6{Q$Uh^G~c}#AYcX!}LLM+At&yNTPsrlE30R&Jvsm zx+O%+<75*V1Z%K10yO636*fyw$T(SJ7%pf0o6w`Mu!~{N)IZ5bB(ermy zkR2Nh)d(a6-3C@zO|oM^HOM;e>5gaD*mqX*xc66wGPF$*^%RD$Rvd;bE50qRy0 z3_TWvY8+^-sK9^9)!Cq(3;8oBnoJv37JEf69^PR_B_ z;q)H!|3p4zQa-Pa50zPVH2}>$%ddVGg?o(1^H{BT+z&2d`{2L>jOBH~NMntLYT#=# z8@cRs8B5s}BL7VEpzYFQxY|dLhcK>;oqO^=!o(%~sJ2HRn$db`pc84?{ts$g@JmWV zd1qNsET@Pe$q4AAPtyx>X_Ow0mNkWSZBzD4;ZaskH-SgRg00fRc2hC4H=EO;6nWJO z(tY`7HYZZ^f1?9cW*txukX>u|8@a0+f8I^3<|34H?jOu+!3BDmlOAr&d;|YNP-k6J9ug@QgE z^{sLzoUteaS$Y%9+%qF9P~=YsnohUqFSOz^%K(1>BhF+*9j zCcQ|q7EnZ%hXVIwr;tckrt1{gY8URtuyc2#ICe%w1FP0g#by}TfdqF7A$9)mVLQ}p zk!&s8g=of9`oHS21Q0{m1!6|nerwgU=eJfmmXk$vfs$(_Z`|+dpO#+A)WwlfJL>TW$!a;&~wv5n`Xs zz||o3!D|lPbdQGC_2d;2U)fehp>=ob@ovoZflKx9NLYn@iXkD@2PmKiBuU zHH|CgqajW^i-+wZz>*RE{xUw=C^eY5E4-2lpW|)82Z>3vI{RQ!$_`Tt zd=i!^y;loRS>5^I_BpqG#j$AzN4Le=UC$#6X!89^Ra%WQML1o#ZQ*2~*m$CzCNFv? zyoQ+4kSpslG(b_mE^D6yvgDbTgxG7_(}0%l{E}v!*eIf;)Q``ou+)pkNHa_G%_(o3 z>30YqlMJHGnPpU!f@vGS8jSdKYkqkoPemD*=n4~&PNDE!VCMqh67ehep88GcSA6)=+;8Ve6zq{ z(hI>sQE{u3ZAo$N6ru6KuBa|a&OyPxK|!a{JbS67_5l0Cx(L!D`5Ngl7G1mjTA5rp zU1AoUhtVFwGV~+cA`a=y_-gTX!Xrg;UsBs%@jrbMTUbfXZ1;;6+%Og>{X(v`GZY56 z48xVOpzo?gKfleCwZ?W?EGQY^9n8M&L(OZAYbVJumDpWBL~a*#(lCqqJY-PcAK_jW zWkm4uLMx^8f2N5b7;2)7{Ml@zG|*Ze`>dbV*HXS{oKU;jltECSpzJhJAf6m7ce$@l zSqG*?C9IoZS^fG-?p<5gloiI(eU8$s{32as zjnw^3tuzU^8OuNT<8-$bocAJ;R4S@_*xKs48vP-cz%76iLtC;S4<>eGeCB}j!4cXC zb=zm>8;||Q8*s(}oY<8ZD{pby^V#tlQ4hB|Klx3+8P_Nt!N^PEc6fkXABr^iA zzu;RXr0@bb@d;R*E7&kE*gs|Ndb^KaeZ7jb{sH;sr2$Ea+cAm~qZ|+O1~C|z_os82 z_={w?gYT(veXG{EiVtQ2P8hkM`@C@hYG>5Z)gab?N6J@$G|;`#%tnxmKk7$hu*mRg>he^baM%e5fXpbe-^d*hUx@y&vCYbDe@fMWgCIVP6;26fLX@med_ly2c4e z*CGRoE=Ri%%n(SoOX|W$Hz%-B-4LxiMe$tkP*jP^R4C8TCNd;T;}yH-gQJ=3CnF$1W6U;ZR{sN zr|O6QSu^f{w62@Li-LVc8Ne7}y4uC`SX%N~&eYelyqi3$&J8RITwXX;gDCTQTk@nj zw(0Fm2y7*nK3_dGD-O@TfLpF=g3eJNHjn>8vjjs7uj%^KN8zYOeTX6+G)L*}WO_cc z53nd;;Id_@bz$m?JT0~-qA>p%?KTJGbaKT-v}ecw129G90BA8tc5uA`K&7~@y&q%^ z$id0r*ycYaa2Zqn-aDwk=q2T+v2GS1wNkVF6?4>^YopxxQLAka_4pZ?tRoI@9}-AZ!cf?$q$NAVj#>%GVLdD|nfG2o zJJM0VA}KDc+n4uf+?pkEyTwZJmYvD7R%gER)tKYv!uGQtc6{Y4|BCpU1uG*J(t(63 zr`M(#R(J5iW)@6>Pjj3D74%ZL^}UHx0rJRK6PUWa=sBN@G%FpH0&{E&t7pf}crQi#x_4SE#w8)uPqPAzXeb@S)OQ7X4X^j#?p=C#nuVzwWd z&)m;}YHqWj6kv=T;fJ=Bm^~o~6iAAoK(ttVOu$r7!Eb8oCwo z_8nL>E@3RpS8EGMxyUH{;(KAGG=8MOKG;#+X}uxJ@+J2BfJLc#sn|rOki8UKOvui1{^Z~BzDY+tvuG$D%y4VE#&g$2Hug6Z&Pta#h5s_~jaUH6S2 zk9dnHO7cKs{dL&J%TzB!)ajT^paNSaW?_J7=F|c5YNzAJ)FuRqk1i8p&vw4=THDS? z6Gcg_p3i^A=tjAEne#E!fJ^ApcZ-luBU;YsmG)IV_l@%>jnH3hO8np6s0jVd94}J$ z%M~+^IS){PZQJNtlWFg_OoqD0wDgQ#?^=`^w@~EP$yIjqlPL1K*Jst=W@(K?Op?ov zk-v&(n#|uZ0E%lqO=3oXEpWw}Y*~6#RWF*B670ptFGq9KLEx6)u*wG@sZDPon597k z6fy@<4KqWt${S0ilk{T@GlzuBP-?x#Rrn2S2VrV!i%SK1-{wcb`E6u#KlQ(opuo|Rt*h>vE z!ti275Woo`j1ona%!e(U{#(ZR3$~V(A!SduC}8x*TSbLt=fJBEnOh4W^?r-sh;cXs z)u7msas|44<{~}^({lMn$NR9-$i@cbzsJd3hvRee;63;W(LtPb-TGUGQ4hBpYVFF4 z&xu8FS43@avrf?UWw@Ter+Fm~_kEmC(+e%LHpnldOmVv6EC8?Jqes4Clz)a5Ck;wu z)5AD~O>f@>uBIhEg0?BoW6sYAZLImk6Xh@C+np{}T2*9CY1Mo&4PH9e<~%jC{a>X7 zDS4RVx%DaisgF68ek3fOBYCNJ7^(v)OTXC4YOpJqXWt>X%Pg@g^(%i>RnO%+ZQgI8 zr=PSd;L08j+`1ONYKt~vyLnC(K60*zu*NL3%e7A#FjvtNY}uaMm56%@eiQxy@%{x+ z9x`4fon_3StJ067&lAG(l4j8s_v2jRnz_x zfz=dht>KuQ^!TLw;d=1UP^z&tzk+?<08>rWGhQC`K!Hio0~j(#%PUYe*tf6Pz;_Do zQ6^lMlA98N8BAachIWHBVKaWCl&O8pFo~>)8@O!d`dqnCm9Tj;ueI;Sv5ao)E{s`~ zVCmGBSmsb3?9kA~Q=tDq*qBcF0!pSQZFGYG_3)jPc}5*`(o3WrCI0jphts7$*`IIM z#4FV6F`|W;FAfo`z%81}()3_#x`C(Xmm$An;nNwHZAet=E zd#?OqH(!$>X7J3ITJFKm*kPW|CDoixtE(zFUri01FUcDz{^R4AyPH4@*zLIdT0~tY z9?Y++tYZ3!8o;4)VWUBa`I{!~Of&U!etsmIW?W;5`f7-J!{1v84goDRBnF`vpjy`>nqYck>d||IcC*3E#Kb# zv4e$Z`Z7B`SH~0cDTWkzRX6V$<9@X5uIFRP1tg8h$2;-<>CS}fYKrZsPH3KZO#M5v zRs8W9?p@_m%_S2=N`%6;Y?&6KtfYPwyk66 zCd?ZfQ^aK`?aRG3)tjCCh=O0r zf6A?ZdN6;)hf4+{{#Sm+&Vb@o|Fj^1MX&dbC z{BFrJxkcCezXz*-jc(B)qZq=Y7+N_zyf+D;&+fX=wOH|n<$|Nw&vB_j)dwC(x*#9> zv96dyDVhmUNJ@foSrrak_nGYvaaM}C0~UoSE981-Zyqr?-R0{&^LC^9R_{i+cdln9 zpCFn%BnCP|0!|@fTcl<7HMAyqJjS%9j=G(0qoDch484LWCGjR}8gzSiE(Ceq->GUW zg-*`!vCnbSSqlAw=GeVeZ0Gg7`A-D{1}s{5*ETQp2Df_qmV0|YqT7U^OI?=r)aHb?c`;*C07ATd)GEE z{KGcr3Q@oHq{cPvns~jcxShw2={38~_Pd6QuBjDJdUIV}TqDao8p;?b@Ph5=@R?l6 z=vf1+Q>M(x=bVmDi`!HqXFhrzan8300`5Y%BWXvgy5{uf-6)vv#RsMXrHd)YTSlN&bIySGWpHz)0MdXL&~9uha|Z;H(n z7#$fuhQl$a^y;otP7f0z7P@W{G(6YynEu4CIf%H5xQp4j^%q>X?*ZHDMq{=k8cf>G zK2L79ghrmAL!a$^uGFTxrcI>P-&H1^trq}T45JUvJm?V<9QnuhAawl12JY4ujx*ri zS5NRr0#KN)ke#zfnm?I4L?Ok*v(&P3OTr8dZ{jR%;^2NEbME>&*$F>w>)r@Xk+IU8 z=!3CHoLEJ`zun;rZupaEoZ561NpdA=YjU7dZAS-yqV)`+qj zcmD3GXCev14@@$(3Kk#>_@{>810o|Eyh?jjI@i%cYLRc{9D)S>h+8wMg}2U8rV!rDI71fe>dz5bp?B61qb|kXZ#+lQe&-_9!O+!;HL**vo0(w?y(4$w?f0Z^W`wtPo zFLck#Z7w=B<@rfsq~JI|9wJVc{z_WeSFhYs2bLSFe7yr`$)heMhS!elhGV99ZAZH) zIr>Q>4`ykWa_zc4^hH$E<$uqo*EC5{Ky!ry$oUvsn4dTL(9XN0JVA-16n~TYBq3M5 zRWXEAyg- z-;3O({bUyalo#;f@$6Fkk8*+Oo;lrz@; zdQuB1MX?7M#fTuAO1E^O~_+- zsq7S)Ire_ek{eM{x)v?#vwpYZ*ns<~ZnwJ?XU*}pc2ln*cfR7ukZgBX!Hwj@_M(%m zYX1q}+765L#z(#bp>|;%ZeJBsr92D3RJ4GQ{;5u<^%XGE-+%v@?Sl7aoGwg{A zWH{rm@!tEUdwEg)_Wazl;a~Y4^0uhe#qBWBHXvqpsMNn$WoO`fcC4lK?tA-eV`~Fp zjKujR)F_}%eMo%-7kasB{j0{hHeidWOChpr}#tNo@-rv7xq4z9a5!00>)N|?PO>DVXNfd;TyweOCOUh zxP3WawWbd|-dc{hgbn52aX}P0{yeXEhZo$h0zGdCJ#W@e6w`|j$%~$EhWzjLZ)g59 z_JQ5~Hy76@7gsOO{J8*6**K+qU`+$pc^0SR6OvAvXa&y4B>M+Eub8EkAvBF~zf-w= z)72LGFm#5mYc5|ZvbqOrIwy~MxL>(S-?u;n>!I$RZvu)N2U;_y+Kr#Is0Wf&XZlb~ z6FBvliXospXfQpER#QN_dBBIRJ$31K)G~7O2h8Lm-d9FThH9;ZClHYczDIZZ#%#(P z$6+9dttcU)RdqtHddryJMmZI`5&4!guW=)w{uy7yA4Q=8?VgL|oo;%GJiJ4fS)pZf z)cNaOV{tC!*#ky@-wzI7{6~uOcQQ-#!Fz4LDWWt-WKV2%2u)91EjV};&H&4I4om)D zWth2*oj=83tUTlGF|9q}?!N^q1Jw{0)T4k)!}q0+v^LPO8HcnU?`&!%?Ewx;Ve6@Kojq zYrgW7uC(Z%vIG6r14@Al%JNGNfs5YTFpH`Uhu?pOGn()dLxLnmD6oMzip{aHHAG)< z|8VmQGH7e4sA#3w8n!Tw*yAb1AjhJ{0`UlGGkNOm)_%5~NG)cubOKD)e&Tq$T#pQz z?LSKzNbm2=Y}H-G-xiLH)<;AjylFU@xtQ$?gO%eLaPcz>X0>r7%EUxb!6x7j!Gwk~ z;o$HIwfWtKGcfRN-Go<-`A{|td({UJ#Sv|h{N@T=M0g~rA>V(Dyj){;I#Z4tbUYvy za_RiMILNXrLw`kg8QZmIabMZrvzwGK_(2};c4>>Ab2gY2V=%pkJP47c$LD$}4k1WWP!wffa zPZ@Q-8JuiJJR`q+a?m<{;Fo#k;hGs?I;v+=9DSdvJByAVrQex04v|}@J&$H&S5a&h zWLdJ@>F(#vd%kJa9+`8Jdy~g%)>YAr36mLAU$#V0VzL=#+^g#~@-_VMk^V0j?ON1p z`)~YGgrr(=6=hH(&WJpsb`-g!J(Q`5hVdJD7BG*)mHT?5f%ZAEgdJdA191){2g%W^ zOpG^XuAke|Y$;OXfM$G4B5nzCBU&SCyUdSxjR!+@mi~b+-(S*Rf?tweqP~y`Q7I)D z3Zn=~1AtESEtp*Ce+8$n^S=`t&0g#xgF{GELGl zX^@(YWxPNpL&4dSaiZ{%T>{aPgrQ)dF<7y%xG^ea7C}d*!jhvZzo{{1VfLsofOCd& zS>8ez8(0i%%$_W2IJD&rbDLINmN=NP>; z5Su|IDMd@WOgD$zZ%TF&1`{U5g%XR5IufacQn_Ne-6$&<^csKQ%p0p>Y^09!hZrde z9&)E7AbPnN-q@jvxls`Z4?8q0WQ)YuV~(AFvNAxA%K>TkG069aCpC}G4y5yh&+0Jsvm80=mZLM8)t({)0k)FX+ zzo1$_c|9Rc#!4dW#hv}z%srMjWX9;&F�kYD~@;M0_p;bkh=r7aLEucaxjiTF>lS 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 z zu>9)Jy&$pNdbWbn2i>;*KC^Q5z#;r@eU^Gtzek$eRdSQjE2bOb%0!uR`>c@?2YZ8G zy6^?Hg&9dt<8TY|rIT~Sf{2NGTvCbS zO09?8#kBhX^ShElj)x?T2)99_IMw(}iLBel>XSn*vZE*s!FX%ow2^r+uiPuH$|Qsy zbs1Qf2-G8Ah20in33a)Ka#W#Jl2?$_&D3U~2fj7OLJIFewN!r;J75RsuCkc}jSxRh&3~98<|;*DA`6FOQkvm5KY04p-*tUpDncd|QlCJT4wqBQvPRNsiHc{Ct}i zw_?zEh0y#oa@@&Kx|S7~We!*gjnVi^np-ke9lb+vfGh+l;o;!;{Ox0AuhiB8}7C`3{d<@_Ne zYsH5PUk)eZPoFd{&wk%I9w2VFBCEeooBqU6_fpYZxrwUc{PpVYL2eA?H|33nQ5VVn zOp$EF*E!r{lZDa$LvC|{3&*Yi0t3jJFA9~lhi&etRwsifKJT z?=)K)zp21&3*-PM=xJP4OthDOq<-8qbzA*@&MCA_4zYTw65rCH#t>3hTb051Oovy3 zJ>UyU?eHvynv%-D?)rA!jF~BVI#%Tjiz3p$L;v#P32>&Bti;FagDnQ59H+|1lygia~gMd5)2gGwT{pv za>Zq}*fHp7*{|Q_-jfDFlgwH8iutN}{NV`Gb2E;;-UAU`Gvi^uPNMRJJ2-->bAL^g zc(wbwX(x@L&rl{QLQG}j(WL%xMK2K|V6!mpCxXl2o~$6OA;BePT;C^k8Z@)@%0eoB1>X&Zsha zPo^6M=Q9$9V)3^(mN}{)XvwiH1hDFxOXkzkydqx*RpBEO`A8|9832UNiK!N8?P|6L zlbtVKCa~z$`0G6loS$7z!{0e9YWsv$+AM*F%v7G`d=G*V;9Gow90jRQiY8)u>?=xp zUP*`dJZ7A(oO*jxxVzGAATl?-2xXMYb@sE@V== zjA#=?DATl-dl`hx+RGQNs!rmEvr2{IKyvvQ<-ZVdbQ-|YD{9{2I3k>ON_e)L3^q_hJ?9Dl5li~_`4B$(%<76 zpNkhsQ~T#%Db{;QnUCwx9{RXZP3gSd^z9}9TKWn?VM*iVyV>Eou9b#ELH;78b44L! zu=9@{JLJ|*C8N%`uVM|IvPh`xH)SP_F%bzHiJXmT=9lZouZde%84*H*QiX(^DXk9> z*~!`AW?F6N`_W$wFr&Ml%Z6ySm;-&(ZM#Z5QwRJxPTT8t06pY4EDstnMrIvCYTSdS>$S>Z%S|%}{@#0@%PpnWj<~mYqJ7D!om}*Ixz~DX57%P4Nu{g< z=xaQg9-JMc=Il2J4ig}q&nfQ>M%PaPtn&x<=SVp6hUFkX0?{e`V=?!1vZ`b(J15Kd@b;lLsnkzT=HnZ<+FM;K27wz z1r6sZia3gT5>vnIYmQBXQ*=--iqT~u7+1RSV(cTw;g*B=)caBj#HH+Do}``noigT4 zwC2$?+tq#Qg%AWy+nH&OdN3aI!BJr}>?D$6Q^hWVKLWqUTeM8K728I~Y%&dUYCqnm z`LS*=@4Vs8wo@2n4=j+Uhw!*5&v4xdHQRb;%&(449a!Nz$*SB>g}H$Sa#YWr?tE;7 zr;wUc5J6!OH$tgv|F&dt2gEvFZP916WT+oJ#yWzW%@$a)=|tUl)i|$`xLr8KuW3Dl zl}q0D*fu}S2xgz`u#Dm};`bnoUWtT5Z&j3KF?S9c;;mFA^D(r!Q0UqX?zJ*ilbQF^ zO=piJ8EYz29NfJW->xie3GT>$=`mHIu!}K$!?Lw8XJEBLRG0Vff6wY-aOG zOWRHP+?A*Ve(UVK&!d6Cp9dU`%O;YX#r5s?`V_(8`dr3e*abHR&|`VB?!86$!hZ z5+2S{))mpoZ$Z4p@%=k9S(Fs8ZHG2%0Aml086|CwM{BqTro!1)n)eAnw?8+g#q-Uw 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̗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

!}B9Tk3x0UPS&tm-^1 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­P}Hs208!8V}iN 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

1{`U_6Lq#o=*Bz7JNpkTJR3 zXlG~UGSU{vWrJVK{ zm-W>@u$EYT+agY-Jz>g;`n_vsd+Q!mF2GcgOQZz^*m%&bFh-@{F06o7X(>Z|c#Y)s zJvha^jD9s>yuP+A{pWsY45#7qi2o~xodm!)AIuHQ9vD#Nrx>vax@lY zfx8>DhLH0dIZ$J^B~{m>`#IZZ3I&sP)tj-PT$TLCVlufH^pBIX9l(bDZ-Y>L*1VnK z{a-4aUV7K&e%uoN+E!cy`K42$V-t@RBknarQISMHl$G>>*SMxy-8tG;c8V*2=lA%9>5s7Pf7J@ef*Ke}7O&)tbZnBR^7WsUZ}93fXSP zuI&nWM~RcNf8ciGrS0AH(VEyS$S3c4SmzJ-bNVkPlEZA?Z-YrrC}l)pGyA>cjqfzgXsUZ{X}p#cdF6+zvLoB=;=tN4?s=uAahpRb}{E=miv zIF4(rCZ)S^C_(<7->Dff>hyeXHx?|#nN`!^TIpD`Gw%sYNckBQnV)g^u4hdqdJ=ak z$*tEU(hp(=)|70%mg`j73U;V%x}SoX#=5cMEtz)Ie-`bA;S#u~FVchiTca^b<=(gU zJotf-;MQkOM1o~Q@GpI{zHr}W?JI76oNqbPQ2tx(tY;2wGf+Y?(M8a+{Rb`^Z~hcBk9$vWSrQsE4pDZi(oj2m@Fvm&0bnFN~ z2b-_(1#bEN?_?Db<_c`K43m@!M)A)(NevL4;?V_yC9)bk-f`H`kAx8D`yOoCCie=y z4Rz&TSkHEq-fyh5+AZ);}Zl-ddbC7f8#>e?S zKSh44ZLT}UC2BfG2sF_L_bP{36|?bN9jdXmV&#Y=D>$>h6G)t|`nn$! zx2!wD1MR3=r<**Xyqg%u8yFa%LaXbfYj4faUeMBtBOz54aVt7*?1kMN!XjLq>iqgl zLEbJxD;5|7tg6(iWjcT-&uy~cQ-a7>D{x?HQ;O(8F7zQ0ZFf1oMBeeZ3PgT5RX3~6O!=d` zpBSb=-O&$A6bP8UkqeQ{z6&x75H6RxS(IR@`uI^BEPLd25@r&T0Fn2>5w3EBvPj97 z(7?sXy0n!{byTZ&Pm971mB@sbz<$dL{?rBltuT&c<-r36#`ws8)fJhftb?mov|sE$ z`k}`H=6H=Tk}~^i@8up?$fBuB{`>&%m8vCF$d9eyI=Fs?jn`p|2 z+m>c&O{T89PVy4B-frEjIc^iAk4!$Pk;n@R;bsy~#9$-NNv~~(;>+;k3*q8pAa!B3 zXt*eETUq4Jq3XWoo79;Fh*I)I=pYtowmklh}stUHBZ zDI7Sj6C!Lfo{2zeDWV$b8)LeTvwbEq@^+N_cRD4~q0r|$IqU94M~0Eizr0`z9{FH$Q&h*R!8oAS}J69SL1rNaKH|n zf+iz>y}XLCsCpF#2%#0B7@UDkmJCqB@xgr!T44mmq2ekxdf#6q1)EGnhPp4#Unwmv z3&vY7Iy^C->^wg|n`<83t%(Sc)yVb4&`)4o^(H*2d&Pgc{Q(IlG|g)uX1PT!=wiYy zZ&4I&6gDu*sJu-P?cCLDhIx#;Vpo~}3W+5p%XBta7^PR*Vbl$X4EyvkjJ@)|;<^=i zokPbhRQ}?ITy~(G-{#({X>x@_U#=XCWL-;{93!q2#23Huk+*nz#aJWtdF6a~j#d%r zSsTOlXIhy!-j&2jk|Hf{UXhsXTLE$9;^2su_GN2sE9*O18x~i zn$T|KALxfm`NuKW`q#y&S(w>AP(g5sHii*3iFGOlw~obuzQA4>1lJU@4_>fe|}iA&|?&xBLSHVOnhpaYo0; z80wk!OKFYhz~F1L9?e;`h<{P1N8nt=!-5?3;T0pBX*wc4<1f#b1n*Ug_@xBdtQGg^ zr_alq7}2jQ==!Z{4f~~)Z#C}VBdyngAx4{j9*QsaL*l%j+yRS8l!?unt~_hCgAAmV z7QbASr#`-zh>j{TO9kqOOmN4TVfaQ`S!S`zhF)bw!RsNkL;IsA^q&=NF?68?#bf%r z=*OU)bItbRNsZx>*X44}t^dj#HVD+jUB5HKOCg1w08#=Piaiqi=}5Ap^X?SXD>R-% zs*(-^;q^*v*y81eOHtb84bQu}Amm`gSa(@a!)(!<1|3vr^e$Yn2m^hcsZBoAVGSNC z!}clGscRiwwU5AC00cOEY>s8rn1yJ3IJXrz?V~SA^h(XtBwV{YLv3~rV+~YPP~2|= zPPq$5Df>iqoj)N^eib2>C*3Y{A1>?D*Jr36;P$oGbVUT#KT%&jDr>RSXu_+MR>KRZ zMV^MgMeRW~Jhc5@QxwS6w$u~%b?VftRY4eSM8=@0Rc?)_AO{lXfY4;5e#olhpxz!P z9c5WHl5mAXRyt@-NSQ5W3MiG?80(4bWzsSPHVDvLPnlZT2BY@hafbw9T@B^Q5wK^+ zd(_6`V})87U&Kqoaakep{PSF1xcS%AcNTkgqDntv7V>Ehmo=S{A}a+kyiN$kkraPC zfK8)mL_yxvA> z%>evTKGr%2Va^ou^Zts2cEL*{a;HJaA$)2L`|mZ01Iu9V)MU0-82Hck(bSu7kg1KP zSysrmFYcuQAm&(@-$O>60@=%!8e!*anOj=#OU=*7GY}J{U^Zzb*!4&mAU=QhqdMoV zo6^J2_&yzSSYhhO{~0J&BtD0JU~2+1Ns=F9X0G@D{OOHJ;9#Dh*98{{znb>?1uhW4 zzOy*SYt}E6y^b6N)PG&5QOHz!okQmt`Syy{E;{A@T?;16aRbcxCv>9>gX?EWE^HOR z;H>^((m$~inmNu{_;6Ho;YmBvjzwVO<6q45X^eD}hZjyEzO)?L4UjlTZNpE(ApA7K z>S?E$POFm+1=$2|sEBnBCD3@J5`}|X5%%`}lOMk*Y)=d>w&NsMrG*=`mFG=fC8n&| zyD(zZXg`~blTzXZQP$&Tfq2Z8r^c)JAmr== zPeB({yjR{;*R6XsMS`f`k6jmRZ@d$T>W17^M_AkxH~b)V7KvVjmKOnf&Ia7kq|s+!WZC_=(p-y^_<0 zZNPP`(xw00aV03$lH2OLU|mQumWRmOmE9c78fC!RDYB#H6+9OblWIWrw%nV+sE)6 zk*YUINl}`Dj3_a)Vxll;D+x6db=heT0zmh(%%C@4RdUqzXm3ln`uru^vmbgc-JZ7n zp+8D7+5*Tb>H4xIok1-P%)9s~I=tdspDdI#pVu`QArh^oqsQ zT@@yl5{$CMHtHyw*wH#h=EB3%cd1+z%cQh8l5wa({V5WD?vY9Jlil4OWe&M%*WcRs z{XkAn)BJx_ZYskM;`?*VV(12SPLU*ME+G>Yna?$!n`3kg_p;!i@QtYQO?7;lV^Li0BIrA zGQ~FU>%{gQ&a82ZClK`X3WHPwNFi8e9Rltl4zrj%T?k? z6wjj{BZSTnD^i+6+IrmhNfPlfa)!r)S_>Y(yumAW+333oo)cfe#OW&g)13R^cd(~o zCw5mOXllc|Qvpys9qLI+1&bD2NpjeY8$40J3;)6gYzPSIfsp$cGsFaN&3IFCiz4QN zO+O|N>8m|y1hTS3MGo!dSd@R#p|Y!msB^H@=NMRrcE?lkfdYc%K#S?T<@DYiMs zdw-3*_Sw#dE*6l$xgLGy?tk=RgHD1`rPpkzj%feczTnN_=_W^ofi`AKf1@PKM=1z= zcGbrX23TrYNoVD#>z6;2URj+@+^tZj?o^ylK4+7dT~;9ifz{vP<@jC=%Iu$7#Y$IJ z{M(hx7F_}XN_1FW)I+YTrt$5?TT_B$+PIModMV}a`GfJBaKXzFVU4&a;b>~+OFiV>?Yp%f4P=GtE z+v*|nyRc%x^IIlCvB2Y|)_wHGEPo57v0CG--~+YqBMWU05Pk;0W)$ADZz~^(>%JTS z(_kQWnz;}OWqU{-c~k;Lib8-^+yF)OeqSU`V%6cg9{`z-P?%fYC{c`tN9mH5D3HeA z1;NtppmiHptNOK!mku?hE_opZA`R|u#vyw)Rx3)`nF@Gy^GbaXNy8ky=M-wylA#G7 z1i%RpWaRY+$&b~&ZM@2TGMgCm_v=-4tblke++*b>vXtCkR)-yfXCTb&&bnS2G~#E5 z--;Lxo$g-Hl`}k4iOQk}fWe1@r&EvmF^>N7&=cW|N!HBLE6wx@rQz~?k0yFZkxw0W z)h-|ov$IG5V>Z)O>w-TZfhB3IIbigeobJm)up$@gP%cx?4;Nt_K z98}pIWzW9OMKK;{lr%1jakqdWJ4wG@^bxe5O_s6)$61Os`$jJCUnV$$7gbBof ze@?pHyBrP;zE>XpsT`FtQ!E(1(!KvB=rzeIPC*XV8Ma(zb30j?@N`7xw z4SVyh-Q=g4V)7<)_rqEpcKE27&&^7W%PvYdmA##*CKAHp#hgeCJ7!0DQiutnr_??D z+&~kMnrS&NhP#SCk=up5i@Wkfkn1g-=>s zzjCSXkuXT-cg{>Q60WEk5-#$K#5bXnP&-7P=G@sd&E+p0nJt|C4W&nFDU^Y*{GnaK zKsHKiDtx+~$Sgc2(i*`pK7I8%r#gEgScK864ZVSgsNpbJ-IYY~rb6j&mfEkg>apNGVTPadUa)FZfhU5@FOlz};X z-5}4f@ybJ|{q|acmsAQ=83&vMYO(_BeAS6j5;`>v6>tq}%ml74k|S7s9uDhCFAJQb zVB-(8*yO>@2LX85c3`{u(X7_HKM#vhpgNLM9rmvx2tj=w#MIien;9QZ@2xzmOnUFE zoA+J{9(5^v3?hfS+I-{*GucO@_>MkZp{c@#PLdBQTEFMS-n-t#WM_`*pmWnAi&}B^ z+&rI{YI1W&){P2FX3LCgVCWhEr>+dIq#gKW zdfu4$&dFYFZGoJcL#@||Mc4|hIko3nS3Hrx!~#N=6Ui6C zR{~k`hps#^5Ctu!m;`S4m>wm}bb&jBpg>u@#&c%50OaefFl#(l>~4y=>gw_?@+S}L zcTDythge12r*7>noUc(F0k}_Vi1&eZxr4X!*IMY!TX*&oM+RRy(iG(OB2lSVyOjAW z@63ySR67k@D_on)L*le;X?$Z6&+Y7|VAGVcl=+YhgsBIm<3HOR&e#vbCAqwx0PSR> zpMjkkC>>`V+wT_q*hpZ`Oyb~$ID|PDDOySeDtwTFUD>LXSFYcWa@`7#!WJd?B7gd3 zOJhVwjrulK!?=1Y=xA1(o`Yhu0mNv1RGZ@1Ss|Nh-Fs;r?2O+e`mb9(|y5=zF$a< z);_aJa{Q)5G-QLw_`=E3b!V$sXKzhN6G7%YA)s!eV%MyA8m+rFdhH>cagH3v%!Vj1 z>pTC%O=;Fo`#ag6dw(g7p{4+yfCIHSQt@_hb_OTgbRt+OMSoAm_9=v7? zZVyAMI=8{jiu$?8TZ32IgCE8jtQ!LTxEfLHuq7~J-duB9H?IeZZvsa!O|0UZI*X@f zOpa)A_fnSZmNFu_j-Qc8Uz~fr=*f0|Zzc^UX#Ab#h2g{!67dD~LEz%-Gd>Ae=DGu0 zKH|kUarg(3`?MXhiI!AQqB4L#z<4*3tXkDt4|Fp@+P*;tOeDcZ!G*E|DU_o43Z3zF zOMu~#_U@|EL{Dmg+av8vr@!dNgzmeOn31Qp^yg=xgNSM@aPn;crmV*a>sLI%;8!m2 z(+0P-C}P3SQ5IN2m=&YVD2Sry_hSzU$UJE@9Nf4&&?T}5dcCEpnnj+VLz9LC5c{GV zdW=OazHQrbqLFM&u_`K1@`TA;I&tXW&108skLWe!i{$o z9cpAr0+h|EFhQ6sOGNliG||xmxuF8qAI4i_uFbMYBavriIg6A7l8B*4tOlg3w3yvB z+(%h23u}QDJZW1!q@YXnFJL8|uVYO9tJ|)+aXz|26SQ3v#GJohJPug4uWmE;F18{$2iHR*HedX%tt|&Bf*EW z8B-%9$ONYb=OIn&b5sFVLCZ%m7s*R64U(qJ0KjXxKuKR`U0kgi^Sm_~Nc(0~GS=3i zSkFYd9ARR1R#vFVQ6EXb!|4RYDdL{7gncjx*sh_tJzyEjlN9uiydl**BqP&`WUjOE-X)gJcs7=+yq}A?WDW(u;A&8%I zf|T127?yvVpf<3eT*2k_W|E-@xpD4x>dkOoO%wO?9&t3rkhgsMhIf&@4VyeM&mh}q zys=yo2Og=DNHqD|M-u}?$8DtsPS?g?Fqe|Fx5zH&Gm5O7{IUKjV(u8*ay z_7ls-zK{nueIY1kxg~gwH0b5cIlzw|Y%vCBn>4H>^ue zbkH$K@$nK)ZqO68+jX0`CoaeS9cALE1JC8;)-bpyLpcPy9smAs9dJahbyw!-W$g6W z@`(rP{U-e9QBE<aNb~{kXw9v@wt`S=qeloh>WWMp|3NIU6!A{kw$0byv zR>0$gYrcMD-{`WPUR41h53B}Sa8YN$8%MD^hta0xZ=u=yahOhh-Ax%Zb?llJYTuFV z3uKRne@U9}9hYc=S#aGY1C{~Tso8d8)sFCwH;g33ZSPvU2N(p{ePX+Lp z+LTVDK}{e&R+ZfK=Ga>k2jV^OTGWvz?6W)&tpLg0N@Ixpy|MG)yyQZwr=QZ7i$Lzq zP9qVU9aDuVox1sZD_6d;+<9B-C)2WkEx3-8;c}S~s_t!>pX@$Nv+c#@&<+zjPLLbzi@3TJ+N=k~suTKM}(g{@iKR`Dys~ zY8u+7ZZL!(GgF=X2=Fx;ah3En8SjVlFlzV*8Jd`jw`8gP5CQe@I^ zJ-XEMm_pohHLao1noq!~Jp1-3`)VZZ@qF$pPfbcW*zf*6W~kV~C$?n-l?j@mEtu); z_2}iu5M?z3$Phl(Rpc!$`X>O7rgC-~hvZ%DQ7u}GCF!+XVB3Qm@_MiPy`p~$$jJ%OwcLQ zUC&~Sw|V>~FH%2Mu5Q1;L27e&Ke)+AIPzVExxw_J05|TL)owQbto_qIR0~wkvhR)be_gzoZ#{dZ3&8tdZ*Xk-Oh3n>| zlJBtU1_LFEw$e-C;;J#9EYqNUqmEh4@An1{3e}N#-q4NHt&NtbA1G_{e{&3s_u?2c z*lfio8q+y3TFwQErW@`%im3Ok=M$+bC}dMfsX5c-H#LO3W!o_PtriProku$3jH2BX z-sTUyz-KATI>8EhR+wBH<*)Q6p_}Zs@isJ3)wNZMlBCTA$Q=yb4muXQKW@3(#3KC- zw)Q2F`-|{Pgb(G+aft}8tMGQ1X2r%$SkJW+$h=9LfyxZz*Dnf$t->$oAKZ~HTkGa6 zl_XD;_q-mT3qzkyw1tBDyO&B%Yg%23C@`<7MQvc<4!atM)jw3raI=z}WouXXD{w<| zn$y`+eYmfi2JVQPc}`-dHmeUgV>Vo1pcfv5Gb4JZg<8fCKJZyQq8?lhQ zTum~=3A9z6xry4Og7wZ8^VPKUd+nEFapOKor0&C`&r9#RgzM$;pJAtboHv6FIEU-J zC`Wpcb3pwDUv26gfWn>P+kCj#K$aPm&jF4%DRHMn#|V~@KnH-o0-b<7J1jrF2q=R; zbr8>;+XV+0;Sh0k$nX(za zwISUdYU$t@w!&lPep-(TCS;cl99_NlfAw18-yh$U`C>acFYvBGvVyz0jF&(&8vXN) zo%?8DXY75o`u;)RRTo%|l3-h!UzO8Q%Wc`T)i-Bd9*b~e>ex`q8BfRuPN-JFpJvFUvN~Aw(FoA5K)_li2us%BcV~Xx1 zXItW!Qmtcem7jAd-8|*s?^#AGv7H@Eq3$x%{NuJb*_Hk=o@Ns#0@8;CT|4%NXMkIg zCLQ^_mgSSym&o_T%hb~NZc-1I$%#4K4r0b+=aSPtbg4BFQ;jP*8wqGn)N-%vN9n4~uvt&i30Q!9!X|oeN~Z=!^aG9akFalf z!7Jg1GOF`H(-N1Ps+_U8+ukv=w=25$a&7QR2WZWI0X;y%zw6FOWIa*4x_7P2GxGXi zw%tR}G!n|OgkD@Pk~r-&9G7O0f0yDyq|Eh`eAEX#-M=c0amUq<%xKrfyJo1@%C+HJ zfNs`qmKac(qn%5!VJHt#d75*Yf1YFXaPlSGj)l3gpo3}BnKZ_F4cQ?{CYnmY_mR?P zDID+uni|h=25vJ0oAGK1KH%}T7Rh0PZ(Vy{7h01fF`?h4iY1*lYEThKldHw5Mh$)R z?6U6HTUzg%Z+DK{8p){`^g?CW^O`19kON4{#>Pa92FegLUo({{epXw&~JD*an9^K({^Rhbvv%$0cHxl%AiRk%k$) z5)(e#zjWyhZj#@4%u_vRdiAXT7t`BBbOg4dp66vPTs1}ierJreWzk8gf1=Z8Spjjp z=P4Aw(C_EZFC%7n8r<%q+zf+5-(k~4i_6Z&yG|&!rp6}1(_62*UYDO{chXD#-~R&0 zJK6UliCUk(3w>-R;ixI3f3M-vaC%d{(JRk6-yw@SDUUg;b>Mr|{*9AzpMe*T@1*MSv5fYlJ(eHD=zlpTZR{tls@-9JGOge4 zwiKkY04q|Se8=$l9$8XE;Y2l~F3Gn?u%{cJ=z5ub-o4ryd5ndQlfL8LJ=*6TAzDgS zg+B3B1ZMDur@w82OVSA@JV*v}n}6S@o>g8bGkLwuEm-0(R0__38hPp7U+z1_SJ~0pae(WgxpQXhrM`xz zlD1rtC)YJ>n3i`3UidvI%MAFeJ-i&>_4j0e?sd=VZ)A42X?*I_*m@{;I5LatInOeV zv1~R0!J!713}@X};){z1j~4K}eiAC=s?WcIjC{#PMa9`;9IrFSQi!|7;8@_}SY3&~ z9W+sPUurnG){5-zR^*SJKYGmUT3%edO!-Pg@1q)7r9|&(D(L}}#4{|JYC{#W%&?+j z(co0gP7{O^85`p7HTd4oEyGG@n#Za2Wz%(367Nz=1kyZMYH7J%PjsTVNWeqH>7zz; z-Mg3fIV3q>N?UsEy|F2j445!K4OuXuB|=YEvwdH!$;>A;_un!7DEWn zN^o8DO#K<5;#-l#i&>x&bU^0W*SMD1Ctp^dek=Ue)p>YWpctX?*6mYeu~+z>;O4N! z;0hJP^K}~k&ijCb6QYU5iS22)ABBbTNx7)R3lEd+GbvmBwqaZOdJNt6+08!kE2` z+)Mq3hKZ2-!bvO(kA{hDkWg-~D~BF?42|)LHrahvU5zR> zWl~sUcpZ7ADubUWX!gmQC_-d1MO6fL{xom*qTom8($3$%(f%B??VM}6lqp`=ovYf` z78O#WV5bj%w~=#4@J`8I_Ls?b`NULfNoZHT4Gf_ki3|dIyO%5f#p&tRLtkuawt&Fq z$e|R+=hK8?BG3uRdnk;+{ zy-d)&1nSV#K@o}_Po>B4w&RnUUhrsHUBRWNk;mFna-S;j!TY^E0S}?l*z4ruGeAF6 zy?T-U;QemA@o^nzwGCvKbqQUhw)b;N3?r?97M7HFQ{nBIM;-qFeTew(koT#*+N!TZ zq>4L2{?%lqc5F=@vFEAz5N3U;7_fzC{vGm| zfrkMo9%RYr z^qA+!6w^j2DQS6z2$7hhb5V_xl?9`5o;_r2v7le4#@599`(*gff%v`n@ZHjHNLbdl z05fcnGeOQ&H(D$|x9PurjILY?-eh)F`34grw4N@{cj^T(fqMoi&I z%()BoF|;6n!JcTD!k-*s(dlV+Vr53eCn8dOaG{_wHp2_yp*!5(ZY`mIMECy?^_Fo> zzVH9=Hbx0ZhjfF4bjMHx1e8!hKsuD}jt!KM?k?#RBn5#XD$*d`-QBsk$LIU|zwT#y zuwB;~$N7$3$8{W~f+AK&morf#-YRKYc#{=L+MTkOG=iV(q74UF28qc}=Qj`!#RGCNbL1TmMET z3sG(i3!%T4c{xiz1X|S`hD(9t+tsu`D}N?E7P9?(^o0Cm*42^i6-vZf)gsr>OKTQ# z-JjobuHj=!Q_TeM+d^X31X z_Esk96pa`N5=pQ`iDhr&#{t3tU6vE#YP0~ykJ5U|L-IiX41C(Fo5w z^eNNF&E3!}(A1>_mPra{7?z-rmOd_XPIo!WNVI;LkKoy8?H97<)SjBQJB-~gwMt?- ze|f?RT8LFJ4+BIth}V}9b40_?b}QL{=o{!uJ*H?!O%+9+iBCf4EUO%Jv4Dj$+K11P zp^9&WTo5`~TdxTVoAEetvoq#Nd9~2sHd^;_X;FBEcu$c*4=w5G{@WcT{@ZAw-Nt$cHk0g(<9w~* zM7nU5kS<16%34?(`gXZ^^(Q=u??NV2<@NztTOup7J7CmLCn+*fGSHk5P@deyH~8XR z<)ino!>Oc_)BzLnyEh5vo|d-*Qlr&brEG!!X3@b_XXq7mI&3Um-G3_zefi_kT%Gn7 zX6y4hmE!%P!fR?F`EJk6%Ps6O%Y`?ghq-|*!Vh)5T4xmVU$hV2r^_7SqycS?l<*Vr zegRASn%ctIWz}d@ZiDRN5EyzqNcy;0aWlOrfmgizy;jxU9h8{a(<8Xiq&Y1NW)mVK z2ol%COu(JC8}WuJfL;AILcxi&=Lb;Bf6AK7%!&7l5w?mZ2KiQLfp-z7e-k=d>~5mS zx))JPSrTtc%L-(%oH(dC`5%%P);0-qF%z~6ygG60>Q(FXPp{)zqLL)%ARamK zwLeJiuUpA~2^i1sNx^joq12;c?VLEn_%3@n41bd`hZv*Z&@W@p+qXksy;eCS!`7!O zyP$r#!w}VAUnK=x)RF)4@A-wfFquQzugf?s_A7J$rLp3TVYa{|OVx*e?w|Cz?ukoq z>`}8VpD*x|VSAhg9yIDl_rZxW(Z1Mykl7R+^z4ohms##UIfGn0YJK}h?9$26D(XOsE z=V25H&)i+?<|4{OP>2s3EQv3OO)_Tl6pPvM`P?wEJ191O1>iunUhI6CD1^4OVhTP% z+BUNo=}*>i&(S@xabZRNy5{5-4u$?30@fB0(p41Rh~cs* zX+S_YEm8ZI&altG=bhxiU4+0F&Cx*wvIKpd0rz~V(*L_duFCPF_P6Q9tM&35!@f|i zQ)n(;4MJPvj=HpaTojaNLw$+w)6%M`u+ViQ_&H0+`%h`_Yv1xHVGPNT*HI+*En&+# ze^vm1F#I)*MWWR&71ia^IaB9&Ot%4Gc{jFUmUm|5Z)$Lumqoyj&Wkuj-ymH0p}ID% z1QF-AQC(P-SlLoQR_7d2l2BDVL$R07;%^f_+;sMLW4=B-yq&bg7V|Ek{yq3UUs~$6 z2**+ri=gL!pv8_r=Z(3dW1=uXSi#;u8{*r5@-1g`2rqnCK)HUla zrXNU3mevCWSQ20^*zLEhBrY?n8M`I}5Mvxq(l7+b*mQN#p%Yv#Jm&AbyFBu}`{P1l zllxm<<<6)&Y33O9{$eLuSzV`NzlH6@8|R(NEl!9nvpVBKBw!2RVLwKuIItKzyK>r!JbIeJw;rfx%lQE;Hgwx1QS z?zf0mtsB5P!U@htIQz9aJV{~;Jn%$S)Q*z;(u1kqh$Y##CvQ<2utpR{{xTW#3EL?2 z@Umapj1fYUTMa;EQTZn@8A`zh)x$&z)Av#D#0m2RLWO;o8HNHhG0zTh~xIFIi__GklFP0ieIGI?rp5}8a z0>b(MH!qqAfDC6C5ZuOop$@DN)@?T4IO$i}h))0vO95?D=x**#x;{aw&hmPMpl~}2 zNz#ZI1#?2!G@c*}X#@;Fff7J#i&N|TMd-Sg(*^4?*p8lyiyW(U4f9sJC%brR!1UX4 zp!D#j+Z2gI@5F;Z&4h!zmLbT)f|rWmOg1eVESMr-kT;8>_x>TyJB+Y8akCyUP0@Y# zHPd9_dw^(8R@|M*PSK@0S_Gv%^GL6U@^{^h3G&lG>IlvXcF%C?Ob{nXqzU5yhQ!1p1Q!HLY8+(`9L z#VpM?|Id~vTi{Fi^7{;f@-9`I=gf0>W+3{@OZba!M3PBUNGN0noAFWrA6|R9%)O#N zNyH@#(y{5Oyy+sDR)2UYrIC8;8V+X{>usoh4yyzhes+4fxZ#%Rn3(=d&|rl`p&31# zTV}e&R2**-sX=K%A#c)Pd-~0HCa5NWG%OG!Afg9#H5b&&4r0xntq`wg-HplW#k@;FAUWrNd?Rn1PN!6SJdANP;1EVWTt z4zF}obfJY-E(fM^y5D6sHk7K{+E)!3O5Dn$I6?$eB$c$rX55A{N9;9HW>AGjo>bp* z9wF}w^xS8N*4n-~tDmwjE(ym2Gs9BRM4CjIN7Cv@5T3ENS6UM<&uR6Ktxk1UWg8y+ z(N)VWV=1+_n_#e@3Pq6NlcI1a2Hd|5KIt=(#CO~Lr;ZcDal?gen1CMd(bvue zh^?Rb4&xuZB5qf91**wPdWTcVPj>=o3{sjhWGjWZ0P0}5^jY)W@Kb0`)fq(H>$>pt z3J~)&LrH-XSn?gGr2Y?IG_aEeHYEQ-sfU4oI!~TO9l05vbwJEf@__%~bdG<6-S>l` zXJOAHF`_W6b8d5)YGbNFrg|g<@^JwbiEGR{f)9RR3Ge{PZW_?vKP)Z8#M;Rzr@@wU zrNEJJNP$#}w_%M|R^Gu?K@9C?G3?jzh=+Ecfs~rh`aYnh&MXK0xo+Iq0lrD1OgnmC z8bthmJQIIe_)iY;U)l$nz?8=J=0{3yp!40>bNt;}%C^E&a676XmAGk)HrTae_;;tR zrT^fG?5G4!RnagBsKEY#WeZg|;2!zgS)|CY`_Q;`?MHvU3PE+dwLbaH1QDsP@<5vD z!nu5=1NQH@5y>jkqK89?jKGJodQqe>j*!d7B#df1j}BtovH$oCdPuUYtT0niSGH8; zpsHyr9R_GcLQk%qp7n>a?O~4kEOE*~98Xn_9@51Ts*`JSF8Fr*!$~CZ19escijKe; zoS%N#47IIwnw=e^2k4od>BXs%k~}<;U=3ESWJZ|zL!ig0P~ZDSxT&Dk6Mx$ggAN*NTT+DXQ~S4uH)Z=3J!{9WlEs;Y#0d-=17dDQF0Dm!Rc^b>X-il@{EGSi%kS^c zP3RI{e80zd*1>;kXeh5cVz$?fWDu$(3ew5& zqkMdTJ2p5Rc*KF#rPEz|9u$!6VqTzTYAkR&I@@S-Qxmj-vA@?uiQ9AVpnvaN7i#|C zmC@jM$=;ve2I}B8I)GTiG?v!KkX#x(Gs$IkA<)CTdDCXo_QAgD=Z%!P6^Ye0AI?0s z?EA+Dh#xshW&OkL<}CyiBxd)1TMxz^>{9BdEo*pb+Il4A-YdYE;w!UFy{rU24aK-B z;kTwpB=RCER)m{PsZShK_#5xKD=2VNPzV(AMAu4{!kq-&u&Og8iP)!-N8A#u>Keiq z`Pz^V>#hD&Fbi`X8pREXn6{le(E?v3us)q6Ste1Kw0pij!(AWaOB!5sKj5>wOEE%R zg^U7VmD6YdVw6jJwr^|@>q=X|c!~H=4T_nuSj>LlG@KD5KrcM4c%qELV#tnv{iRAL z2s&jB$J!-Xdo@WK&j{-}&!#S6rU&)h+9xsHDEIbtlD`+%Ak^U~aWdopL6Cn|Z2K+m z){aL-y`q><`IX)ahV?JI5!6o%7@tp);Ib_vR5p9FVM{I+W?0gM%%JLfd!|sXV|SWi zCzn3(MG`NXifwsZPJL6$fR)B#TSo8aNoUE)NJW6Euh^S&lhEJk=+V1Fi72Y6xEqzn zbJW%vo!F4Tp5&J2BLo&<*2KX@HHJ27Iy6|!A`!3SyO;&Fc3o5PI-JjzrGVN5^h#1V zCwlU`IRC_>>Qmqc#A;LZK{*D3@4p(uYc7TEeNAEo-XxaRcA>8*1r_1)6)|w1 z+@;%u!@cv9i#rIBZ2ZOuzyB z?=EQhvm+zFEATefw%6JVP;o_oX#1VXufp$_rTv%TEB}5tp1}JJ>BJm#A=;tVmE#wv||n)VAZ`OI`m^{-HtmO zw1y)nx4@$LzhDp9NH$3iYa>?bN`WK~xn7e7(}HLoc4hngtGQremS<3xJ3~r+d zqkc=chX^!-$o&Mcb#XO{b@_~VPPSXKCad@q?pxydIERjNFkG~}GSdy)|+ z1a0}$^5#j}aZ0UP*s=YQ0x|nj1zjqx4F3HW$=4NWa$lxq6gXX*I zT0U=T^YeT;ykpVM%jJQ05eiNuoizKRuFDT{NmJ`T z$T)63-khGOeMkZ6FfLi7;c6+w};QzL!?uiVUvL=>XzixiYIt)Emni0RAvH&}jg^nqL4PyZMzy@0LQ!bE{ zve`>G4N&B6U?uA!<2zMTT5Q8F2dG7vOVN?>RXRt_b~=3Un{<>ZW&QUi(tQ4aS1bGY z`4XAkLQF0n<*?{WEx^;EwMa@b(~X+_m7vST_k({R(BBTLE-)ejPo(^H@m9vM-81Z1@XkSf7$<$(9qNK4QQue z?lbw-*dD50Fu`5^Ss{u10OYS_RWp#Eby-`+8k|&@j z4%T^lu_pv+BGES|1UP|pBDTK8hjwPe#;*1y!h6V`s@UqOm#ZxvG|_?`j(+T4O4-~X zI1(w7Yf}oZRjhsw_ON$EmN@B553$Re3t2pmKCWuGt$f6NR58c4Mn5#%Cm%c2O^o4@ zGYD~}TZ`b*wq(5ED}w)2Mzk2^Pk>9ulh<4mH7^P5bE`fpyaX%v>cDE?j9J*aX?U%< zdb$=uGvS(?{AlaCA?QTp#FNm2*XMntZo8Uov%BGs%=)X`aY>d$_#ziH){=Ems_QN_ zh@_=j4Y#s7YOYJ`Z*D#TR}unQ!~NP_bmFJnE7SSHUj#sPtAvxqXF7Le8|(#mI4~@+ zG~nj?=RFG{jK9tfydC&AnGG=d+(e%_VL#C4eAULJ-tM7c+)J|IJy!el z-0B)s&kQQn}y}mxl{@q(@rIEZGn;dYE<|gYU;X@Q^ggx!vO}X8j-wX?Q2931 z^^VYm*OhXDpRu?yQ8yZtv-^fxgEf z`tR=S8JX8{$$nX~XdM6*45#KuqKs9@DZ2sjx&Zp~z3sx^1HV{dQo#3z3(kv@EQ@46 zZEi#ZQi^y3PF~dy_UWhE{erHK>6WTiR$uX8>27NTk?GM5dt2utzgTNue-xesdiUtv zPRPa+!Xt(LRZ*Z$JX!COq=Ya~D|I%(v?#FQg}=bgPY@Bj-2=%XHPOQ2hoS&XCy0}vo!HiOINV&G;WX)Ku&=lg}U7tyPfSBuUjDX)UED=Wso{I>Uq#YNk( ztm?wQr(y`Q$l6rp5majE~EqKeFku-y^2Lra?ANTEGbP%&&uyMdPTTv0f|xs1v9j?ockqOYgZ z(-+*rjc`t>R!sP$EfzJrfX+^~pUy_Dd>s5BWa2{_EQ#mB1d}Xl6d$bh=r20{{GmF2 zT?5=k0wZ;~>_BejfBv`cDtmkwzSy!<`;V_>lk;phr0=J^MlO}PBRmLyY`O1Ro|~6t z1gUjP_m@x-u0{=4zfn}2vfWX$a~WZhRPLzyU8}olVz$;HD0JM`e<-G?7;5{wC93C+ zij6tu)gHd1s|~-+kzb)vwvpfdf%n|W7~lo*J2yKBD4qPc8o5F7lco}DzeYQb@4`sv z?qR)N?0G2d*ZqD|{`gZ=>TN2KnBx0ByW9~3chzy>}mE+ zBqi^IdUCS{`M-oyvs6Y7!A|YE?d|R4B7B@mY@lGg=v0mnE{s}B5jGFJtm~En2K7~| zv?9}%T+&iiw1Kz zMC)ji7S4#h#tv6_DCQ#DziPvWU+Z|xnKA4+sX{D-6@n$eN`ezCWd0t5kqc`c}?b^+%0LPTa^xG^TPdq-Ork6y3z~tT4GmkeESY|$EW(pnNza};{b1PtVWWmZ{ zL3)?Ns=lV5w<+3FC5OJAjRsQwUk#f5kP*UE&vM4YIsEDVK1{zL|J&o-@YwR;OT*^R z{>@Ug>CFQg621PV#g{5$6-H@Kx?&3RINXWl7&6uK3FDXk&|6Q4rb|Z`euBGhATg9D zy1MY{yW57Eto$urd6v2sM%|`s7ZxeKdD73h)fS;3L_)(M2jsHUfO&esjD_EKEiDLd z*3=^_^H|@%H03;%QZqHY`?$UNH?_^nB5mojJ4NyJa>b~Q{N=&!(t>LVyO`&NNN|QVh$FV8NsSzQ9~JvS7h` z6Hg%oT9j)U9&fLrlgKP?9uTTDdAHAfS=Znp5pyVFFF|KNscO&Ee^nbzoK{`C(tN}V zCM$>}OVF!a`dm|D`=T^Kd)`hj(>S?EoZsps88`am?86OPdx`ec=FOuFa+eiNrc_@b z{li+sDq&z1NV)@jRuyRhRV@mOj#RhkX8f-Gf2Z4XtMRFAR2fdmA-zk5=+mFm_M7iyC$G zabDa9%y?UY*CU(mDU7ehMD6JwrMXB1qdhJ_#2~7whwZe_NrEwkBo~%s0$I#H3FFV{ z4LEGP4K`&HsNPEeJiWfTq<#LJY{t);Av7jD{h~MLCHo7JIc4S(Sm*9eec4S?;vNI zT%v?`-hYd7kCht_Sj+h#zG-G}dL5VyM{d+1V+enRPaA}5iaoRKUy&g+f4`ck9dRxm zM>=#8kWTLMkBK^6JqRVZ1^)f9R;zq{AmdNEGiRvUnb01MvabYyLbCK36~E!{KmY}4 zYp9A@a@7%JCjx8GH@xj@-E)%2e;wy03wGJa3%BChH!7!d(o(OVQGcr$#m%v?;0>&F zFz>TSTS#d<;-|t6($FA9^bW#B=)~PTVFFslB;TACTCFj+)6Z6U?2d;KtYz(20&v9X z>;TKl;0Of*QWz<$eIL^Lm#SpyUvA^nPm!tRx5Mng!4*kZpPwoB{d?{?SRrk|uXMy{ z1YigX`b9%)`d6UgCFQeYdH12Q&8|FI?wP+U6vB#$*0eyW2R;U#kMjF6_QF|?a9|vJ}+LWbEa%uqHztm;m2kW`o8Xy> zinMvz?XAeb7nZnra$Aqjs+r`N-^YJS;qlUYnNA8u-A=)sNVFTeCI%xs{{89s0nF!6 zRw8unxY_(QDtA_NUpa9h;+|I52D~$BIs(&N{t#bBmp}BH|71AftJ=;!`ciZ#P++CQ zR_s*@PBV!}{tIT?2;yH$svkJIV}q$tyZ2TaSa1HT#86c3kJ9pendkzNJ6GGwGHcps zRvLieqdF10;p5px`@BKXRf<@=1|ZOZ%41d=H^Z56^P47225R)pD6bwz&f!ms!S#YY znJ3*2d-u>1>#?RKscw6|?jI)392@-ElJgGmFPq{96eMuTeUnQ98S4(Btt{4Jk;GNd z%bXzxT=e2y&{&g3x6uI%ft^%+&<{7K8^iBOKlD8Z&&I$+xR!e)vWDAiaYdvD`22jc zvIQQ!yBmyrEcv#q;KC~SrNTPmxCRwjFp}_E3cP7+O&V$PdAS1KSLkN+S@NO@n$BBu zCl*K6bj+Wre+lq$_{)&9AaP-tfMNXhcL#;NjF;lAhU)1mtq4s!NXP0ifVenVXvOlATrrq3$jYi zILaLKKW$5swHWYPBQ6UCGLQP3e(p(eF~1aBkF;6o3f27j_FI=Yz>Nc*R*QkIbB6IN z*X;xqMuQ_=tuWGHCuIOeee}A(avAb(-!5cM#^5J*z=(S7AH9gqW73|;^SYBbF2~s> zIHG2v`05M(H~weBy5x?c!q-AOhxR@ zzemz!zead5cF4*K*MN0jUqvKeWKrr%>88L3uf}K4f@!A6vd8X{onahPK|99Xu4f}6 zp*z^zi9lGhhtFPhv$z}IF?#SKNqOb|Z;b7#z zD^Nf2ZAT6|2Nn7QrW+66+}&_nFJgAll-CL`Nz^3pV&d;95K_zzI#2<)gX9AdMuW{u zx-;UEvEbX)n-WjF3LP(E1+m}~{i(FL=iD)^PaC}Gx3fx4*gL`SgeTA}O$OhEm>l;% zagHD1m)o-LHv&u>*)U}vH_F#f($e_e)&l$iwYbb|Vx={C9eEmmdZY*I943$dM)$lB zicsLZUs-bWnZntH_dc1beBg{|LdT~eIf`}^i57MFW5c6XYr+)EoGLA}G@mxLP*)!p z4cKekuSLrJaBP#y%?ltwKpQOJ++p3Hy3m2VoKtl8akun!w~ewlK?0-bxxqYNE|Vf@ zbLIRm2{d-D}o&~lbR&!jqgY@;`uWDqM!&;Ix76fe- z$UmEWo~X8djem^)aG;3gRmxVmn^)%_h=2MV&XnL#nhGZxsiy%PHwH9P140#2?sWY( z2{OE~6oSJmQ-nQ!5lNVlF(2NSVkd#Y>K%`{9!lgv`!#?%DcpfGw0MnCrpDC4&eBY+ zwdY=^FKj^(fy%ckbq`+1JX`-l%DyngR~P44(dIVoQLl}xO+8w zqd;lNx3v(2lV7`jGfTB{r!F+*!+O)I`z+e)MsyI*9P6$Gn5k#X>kKy6=xl}tz^7k7 z2`PzI9dQC zMx#Zc3D`|_HjRguBw_ZgT!?uQVWPAR9PuXjDgtJ9dPEM~uv$*EBJ0YRG}UBGkS-HPX+sQOZ8J;WJd?oM>gZ5i>{Q1ZzgYjrKEhSa;Bc2R zS6-hd3TZ`2ykp3RS@oo_!I+@C<)u0+m7^+RcDfZ=EaktVUSnKA@x+62A|T={4^5xE z0fQ3}V?X{3Agv|sw0XKk?_DNkJt^*0dsbI2?RYVzd1D{s8L}PIffP^RtQyskMxHEr z+8XM+j5uNullbG{xR%Gs_+tcT7Nl({Is6!ZErk+XMCyCc*$J@I_l#;K5i+m#?nqV= z0cf$<6%!c;-E34^B@(qd-nURA!2<4+AER?zzu#<{|CkIs2{90yj#UHky(aE9j<%{bhdyFjGx2tXC2Sz ztgPv{B_5VNi;hKCIz4R+tDYUgV-%iZC6xYoIF&bq)u~p3n(DZ0L^2_kak*mXB%Frh zed41rC`S$A$RMvhI%lxb=rnY{f~2)r>^Yz4{_dx_*rOTosTo!{+6OnmX=@w<%Z>K%FWJE<9F4HYzTihlpbU!?&azZer zQ+>e&)D$8WsfqX+>-d&v0uU#EkEkH`g&WB3(=53deDiO*vb;qtWt$Ka)FihgDDJcp zrA#ebv0$>wy#!iqPwCm5NtF>=^}K6CJ*qEtm+EBV2nq~A{}F==fBbkIeX>gdQcvY; zF&`~b6$@l_o0bFQknv6gM2%np6pmx}h^@P7H1$B|=!+Vtao}k$7n4y8bvQK!09;A9 zQ~U;l?+&fR`QKSE`nskRV(lf{6P9RYCiq@+mSwMOJy!k{ty3ytRY;oq=r?ybF%uYa zI^ZVK;8X5<79{his&9EB2pn`0Wt#1O&^YyEslhhs2d=^vP}G-oR=|CnKFSJ^zwh&A zHwug1!2=sI0mM&dCNcg z@&iI7)w%eFDldQ~y#$~6Q351{cx(tNpgeiqSd%GnSpVizGW#nm;10_426Y8TtIYsO z`j$*UZ_7*o!&`DhfVlyzjZR`5qDvqR2i)~KhC#*)5lU_H{g*0Njz`q||Jvu>*RqI! zRk7Y}!V&%OdA=WgU#XrUCVPm(2Y!nGDpHsZu$>F+s%zKRzD;cqUbef67IA+Q2JADv z>C;b5?%$w12u*GIzeY-oq~Es-q7KP7h#3kXjyH;MicOwKU_NC54uFRMQhHiMozJH( z^+cbw_5by@Y$JIK4?-qMECq-dBAQOa<^NH^#U;_uYmycI50!&CZN_HHc6DzL8h2}(9{Ex z-lYHi>NF1KK(8-Kior(+q?L*aQSHyospft^_m)&sPGK)qlUeF<0umzVF?V{c`{M3q3`{ z56*n`|LfZcz(dTzk#jOmEgPx&e=0@LLezkMfa`;NN4y?KR87GJ-~)BcC1_f2p3`8i zW#{XU!&^O6WemsvHT4oDef!;IMF4eP3fXamk1&{&0!lKh|N2r60<;t+03%X>A)naj zJ;Gd!M;z`+?EItlBJKa$hTgZ&5-oc8PAzalkz+nfS#LN%HjaK}eF0rE%9ey)V~d2;%+U9U#b zZ8*S6t^bz7RcQqNuSJ*!IP5v~I|GKh@YQB6;4|kkpwKK!Pqd&2K6; z0AaI`oOO0cAGMu*C7{c%K?IUV<=#vcwB;hx$d{!6hdRpI$RfWO!1jX~`=n&9QUY56 zO>J1}^`!eA;^qwcNE#nR0t0{_JYOD^SVGKTgfBhA*Xd7^fpKUVzjtY2OKC0t)N=Yn zyAqVaJlercO-MNT9ca76dq1=j6VM-DL*cbpw}8x)&rqqJ14 z+`CJ3_xf+)R29CU^LSV3-b1x0Bu_*4kbBfx6u6z{^uzlv836u4)wkyJfmaI4v&kLON!{8)@nkoG4Vk6~)|ILIVI5sxcd2O!-@>z9} z@#-qjWb_Mk1_ZxsE*UyIm#0_t+k8A>M*(7(8~us0lra%96no5gi9Mv3Aw|H+a#U-<%*QX=B#=Qp8J z5nb-~u=Kc}2MNtASg*zeIeg!4F|yjIxo=tqar6zku|d%TbkUIDK_I84o}oF{X(r_buRt${7h1dIb1ArMM%I)b(y2B* ze^G9IINzeaI`@y*N0I%%Z6PEAols4sP@4vv1fD#hrh{Ig9IsP`MNpvx$h*jvzk30s z#gBaU;Zn?mQA$U+G^FYq3xJ%~zAOuq&OFU5@q^eA)&D}yvlojcFJLn z2#Voysvc#y50*SX`ipvCkMQh`0MMsjCny8gIV!e}xM5J)Q|7C|bRo-sw-b@w={&uq29su{sIA_G&0DPhhJ$>S@7{!lKc9w+$)D|&Ip&^t z51U@O@vEiYxnm=vuw0HquL58n)rp5Zr9f_=)g2haiO;hC`y5ZIBYeqpa;f`^U_CRt zyF3`qgQ9NWv)^4U?c1uw4sNyvuhX!WSxgv+yWwXQ%K(p%7oTzf{p0o?25IE^D&VzW zPyLl+Xd8WQ&v&4DPtwG+Q#YiA zQxbq5{X8Z3XeZn)p1d~T=Cu7}XeSL5Cs%(52M5;@o3#Fmp=Ck*?O*bmvM0YCo9Es7 zD}G;>lB4GD^fTyT4%_fj|66lL^8?32M#lq&n@*;0GuI~yf%0$T@E*qfiNiCjn1b*X z0A68m-PRBTtZ{2eU64rO|KS!rCopjIswB&)_3pkatyh04|L(<)t(wISe{^E`iT9+v z1C(aHwasQU-n;I9zB}{HT66E5wf2)dCug1H z?ChOn?wYmu6u_T|mLXzK`&=lAOIXwVsO|hhEdK0B z;{3*P8~B*K^Xo;|w>-IeboofSC-Z7El&(c9(1)i6D-fC}G_?}kh?{Q!+O4axJH+j& zg#OgO!ew)|cR*bmv?Gb4!Evl@D3qJ?c@&^D8gvLORPq4TTLEq`T791Z0u)5NX#<*$ ze!4_mehP>xBG{WgvW4$b!+CUW4;;UGh*a3I8u#&4|E8~XWaLXoi6pk1y>+N8yx4tW z(_ZL}g4&+PtcM0S-0Gq3&)S5jGD z*zIB_8yAi4TouP>8VMA*F7SDdup?mTW{!b+L zPTY~Pnf&Q*prAS&G}NDD{N48I~E*K&egROOV9GKnhT; zJ*nG&BI(OTr=8ZROPe9OiobYMu(A-P^@XLc#Td;;_GSy3DO)*B))J z59Ym10%rW{g}}fEdn$}4{fR$*?>-@<5rdDBT`@Rbs@v|6f?lN=;?@`% z?>R9#$13E*-|UyB1h*|XiyVgEvhj{f%;PI{p^ug3q~>&MHg;`+KX}S>z^g<_uFISd z!iLi0&m0r`z&^VU>bS`L?YG0$Wb#FKsVcDv4lO7P>ofCkUgtK=7W~}OEN!x&+vs#bi-3Be(0b&1c8HDle-a8Co68LtxAeHCLtt>$JgT9G|513BTI{Vvk-p(Z60F-k zXT0aB{0E|{QZf*94S#1Q54~KVA1z>-|8yt)QR`!pjNYe1PjXX^z}MxrLuK?%O?F-) zn%v8pedR#Xaa$Pzn$LDk+fA&AAZt)rmo6?lPjn?4gEiRW;}jok7VJ^LWlccZT62x> z_GiX4TiQ^Kna(s^0ohLr9s3C&86@o6LF)U~m-`fWi-=AHZz-|~r`PRjR{j|TUCW1P zo$D;->N2mls=%H%Z~90i{LKQ-nOuP`8(FjX5~$(GmU35Ai->Z!tYpn{|GGHY_F5qbEJ6V*V>8 zuSu^BA6|&ejz@*bs2~QCDq)ZQPzGme%kz7 zsRXuZ<&CboG>!Wz@xzB>H7;;r+j^BbjxCvg!w+(;*-e7so!_=E0~Yc!c%w0jz-RC+ z#l00FZCt(tz0-!X&Wd zie+*eP{!DI*pgrw--Kp>hGbSCqiL|z3leilPpn2qnjnaLXfJ#nvXR{tDzV$Hpsf7y zHt2xjp>q_w)MZ0x95Kf6LxTL8e5P{Hhg%%iGh}?qqo&<1PD(IySh!*PUVPw4Du}sP zvo~rvweYOXRy!AJ0-YG2yavjxZOj`-?2IRZq3xYmn`UVeW?oYKN;JM6PE6(tqiNU> z#=F!*us6j+zt_s)`Ge(n{tf>)D_j-=i(JTE3`Trw;dWreW#faS*ht1@J2Hc2#UI}X z=Qrp%_u#%K6zhR=8s6)0|GUG`%!ERQ*j~@0Oh{*|MCR)c);lphjevd1-Kxg`YIlMZ z8}vQWxTzH9?f1}xNCuKNe0Z^^Fd>QKW3!%q}}RCWTK>R(qb% z0KY}m-h{#)KFxIgb^jG4AzTkc8C;+1mkqd(k3|jA3g5%ciaR|LsPI!HaW2sdHq{-3 z_0zg-w2+tP!U>!W;qH-?*f=yfh`2YK50p=f-v=ZA-_m?4; z(_&8Y@%Y^ldMuxYFM~I;w_o=_y-vBYONp-QN5xAofe5C1+GmUNOXHKYDx!#Jlfie3 zK|C;cm8>3eSJExuAR}0_zJXMP#~=j)N>@jVf%vcw;X--xG4X+N*_M-a)nCRQZ{4q* zZ{07QFRlEl-SXX68fN3YKnx%LD6FM{i4hK1>5`g?X%H$EOF1>)plZwUtNsripxu;> zW*qmWcS0$DVb6ZqFMVVQ*o^-zo&?4azS@o?4A_0~HMgd|^RrU$N<8e7A4y1+P+CD_ zx&sHnua2C^_`0Wr(n~fUyka^Mm$%=pgz_c9_sG#r@MGon{#?zSDlp4h>ZFx$g!fQS zO-?@Kh_Lg>&YGgyOuWOTdl<=TqP-4j7?ApsC2xjO>4d6Ymam*lN zHLDmI^I5i@fZf5A;TA;&lU|PLOZmADhVsJ=JVJ=?2CF*q&!R({*CXci+^<~)M-z4& z5Ia~u`RCv^$ZphP3HcpBtW2PZd4=Wz6S0ZrTLR|@!I*KMd$s;gh!gCMg^+-WFv=?{ z`9I%>Gr&*2h-?;>1=Y2LCv9oIEwHZsjvk;E{ey}ZXB)HpJC*(kxhc>7`sShEKG45# zM{4wmzS@*<=?A*r*zjArtj4h9g{TH~E%&pqgyo76IMpe{m?dmx^?_@~b?3F!Ja!sf znca>5lIIyxT664@3fk>WBxs2?w}(t#wM@4tj_{nPU{e{-USdG)NMOYZf=><~{ratg z1aJ)M^>4|I{0z1nz$7Vw@1a=8C~4y8VrGWNd5rmiAEjKk3C=* zp(ipQ23<_5pgIjC*hTDGmJ|K`(TeUY{019vB^x_RW`JLuEO1UKYZj5Gs=m4=_ zB|K-|_~Ar)$;GK7^)tfQYE^2HmO55mpW-W}W>urr2l~QN31ZzdSwDgA_Ht7aDg&7T zaZzQg6lb85U$pguS6o~F*k32Qu!;i$<7DgReq=E~q2ZlY`Pmvb!P+nmOkb*5teie* zOV@r&=(ZB=K)2GcDrnQcRTf}Vh{sqPP3nRht#bWKI`EZ#@i6X1s`IQ(E$dWavQn82 zZi)kBVV(k7*>`tn%D;0FxJH2L(Vq++xv;R%)RYr6I^(a9)N9fZ5w2?2NH1|~nz2@J z&4r-l8tvpkeDWj{iu%ROfNOlq6@L?pPG%;ENPBHQebAq2bQ~H;+-)%b?m36RRHB3! zX4pI}#^w5e75>*TXG^oT7m?f@$CD0C@0Aexul)d!fJiqNZ@sGI6k{H*$2e z`VPMn8NQis4?%)||CU=h zZG8toF3J+Zfa+=7)9*i`W|~swa&iFb?>Hm?DBKDF`p+ZZg#Aqb07xDX0OUIa`sZFA z@V`<8^FaP*{GSKKm4s`*Ux6wmDx~TObg5(WjcJ6+&(pC{T&zqPVF{qRN~J6wB_aPL zAumxvi4kH%6%s{ErhLCi#=Msh^N+_gVGWgxj>81G1wqLf9xW^`Zf3m)6GlR;Rn(>} ze!Jyq=xS(4P4Bpzwzb;NIk@=aWAV4^`0X#(6H_*_8R>vvSP(1-7Wiimtf%r1{1|bG z!oR{Ns3(*se6s*n7-~`b+&keRmLnTftbFITQHX?-(5=u=(2{Z;^56ki(d) zj5MHEL6l@94+N~U_fOcMZ@i;4s-|8tD4;V;Iz0cbk{Thfo_duNgEaKQ)+~@(D>@Sd zjd$N0RJ$LFN9qX3tdw)5x*q3n7jiCk!RYlt+c(}5&$N$DPjo8^?LMT;pL$d!V^eRU zb+H%39E*#}Xao6A?#j#E{9U!Vh+u0KmF!4$IBe~oAb>4-@72xhD-?eQm+k@wau=&9 zvZQ5wc_DNVm^#`Y>T_t64@Y)zeL%B~PyA7S)4uP$qV-Oj)>f_7&!2#;-C{A!_rG^W z>t70^n06hpz<{su5dI7nWwUZUyF%akghXV1Du?OY$7Q!j!`7aWQ3C78kxo4de$bP4 zV1g;^T}WOIhbS>Iz}2N5TI|c^ZxYu=Hm+yd==b)Uh!@|H9jpOF9zts1$#CqBS3de4 zxR&iT+>*ky>%<{m1<#7zN8CI5NIG;igyv*#8`P0^`oL|UCG5_0M20_~#dZADuIP95 zkz9IJKxx{T2cO=ac;M?b|Z-Jn+a7nKa2(AlDBx2ujHH!02tTt48T1nUKMAaL_tPSea;t;W}C|%+Afm zZ&`U$c-*H3;@t?ivj`p6zBJKq<&S%pj()ebb;cdiW)7A5+aV74{;<}ME6ydYnD#Yz za0BLHpOrsbwox>o*YH;owhjoC%`L_UYnK{^{h0#gR}{P~jtTCv-#l$$tJ~O6@N~Lf z-Q88?IHn)&1khK{9wIVU}cM-k^yDqRB*z`mn_; zE8NdF`ab>HnhYdC*a-vXWbR@TD=g?7w47h@YULxa?F}K)1AM)dF(z+EbaVk|LJ$lO zw$nj_!@1ZOP7LHrwTJhXS;mGdGR;srRXIt;f#Y}?-0C+xKnokoh()*cVU=~BiY)GD zr-BJdwrl2wBl+<72VuuSJ^c|znFP!rfcn+d{0{lt-#jKl8c}pi=P(VXtjKqXB_o0<{Xw$!2>5@w zm)e&@DlVPR@ws0d8CJqzwQ|jDoT`M=P*o%gJfG-D(EtHe!f#+$-VZWP#v=l0>pn1> zR^tiC$FR9In%)7GSHH;wG}rj6g4Slo{*YR|u1(Fs3c@4NMv1wtW(qbjwbA0ztFX(1 z{F7HrA~|EXr9fewiT6aqM%bSGb1BI%?g_}Fks9s5-0S2aonM<3H3y(_Pv=4^e3?v9 zT8zETu%j@DkBAr}UWz3%e5V7i{E;rBOcPsAg%s~O?zAW{XBdC&PqYO%9PZEW>I~MV zwx$dgkw=t~Nc$oTbRkX}Annv_kDJcvIjhwu^p*y7#ahynzUDVN=OsXESzI`L6+fGV zQye{(gM|6}v#QGas=$KdGQYhf%KqLyN{kJnv16{`4>&;{J1<|%mcMN!{I9;-(sQFe zE54Z?(SSd&^Dx(;>tQh7TYU%t45n1n!1K-IaMMt;I%IJR<5(n8QATWm`vb6>irJ7w z&^$n%>Q(}#t%KYNF6oQoACWmVpzkvjFr%7pP zHf1cP^`w?^ygPn2|Auqr1y9yBh%*)Wylj;t2=EG&o-nSf{`QQ*W@*jdZLXX~4@hCP!G`o3jtjCt z)u!?aZ(4g0#|cz#Jv_Y>KWl$(p#Chf>DK|y?`&}hxrLA8;Cg3ZNjc~J`#-y5X4qB6 zYl2q|XJq3pa=w4Y2~uM6qSeBN!T)*0^iRrvT-^Wl5tFcyiy6JGqqBoG!@q_?|B(UY zzYWQJ%{8If;Q)X--S45w|5FBXMppK6X7+CMo>s>H%Ir{g!+nn%*-yY=cW9zh*3AVb zo@I zC{sYAyq~UC$gE(KTzNYY3f=}7$;{3@6Z5`8QS$v|#DRkti5AU<++v-(TMkn6Bg|E= zZ`(Q}GKLEII-87!n4NiBT9oi)L*IK6({ z^iI<9A%~Xx<1lui+ng)|9h*CHF6W1 zS6{H!LTO~0CQ5px9DXJ;k^@SCZLLqFfdBq#E)LT9_x&m6lC9z?vmdL~W6T{k<0@D< zEl_Asq1DLWdjS{GY}6Nod)5)+EYvgkh;4v;n+-w1U?e3_v=Zbp7ve)E!$8NC8heQ; zY_h0~{zlIIXanXT3;Q_<`g>ek0Mu=FL;ZT{skDn@5RAss4^h;7%?@~;eq9_yjxnT% zn&z3{mkk}8tt}w~RmA*;XoH4n%0w`X*PdJnMXDt>%Glr8Ydi&n3Dw%R;w-FaG+q&M z6YaspUu+sjcE*y7_Zo(*(oh<0Z*EZLAfxd5ALtsQueAA$*EtK9Kp2XVF-)oSafL=Q*>_TYMC|C#{ z3vMBxL>h=KFq}`ZL?F#&-lSn&Rcxj60*pv9fMBL7|VKk2ojo9r2=1;0rI7 zkgI3U4}>@o^#UU-mtklEQr=^etI;FYVdlMQJ~-t8*b8}%vp3D zYZ2_2vf$5gag4y)KPnt9C1OY#aYZ2fi8VQ&5`EILmQ!8nj9?e?*~~hn!n}_0+zpQw zfE^6wLdFQ&x8@Js1?8^T3R>nz$%yX^5kh+dbq<(PLSGA((riQy0kc~&tX?+Z%ZY%U zV{3?Et$go3HSTgfTGi1yRrC%cQjb$+?W9ety9Cab@r&U=Bqhu>b$P`x^#{eR8gYa!Ov4(YzJ@z$is%!(ii2sEy|3&>(px(TB*=e5C5&&c5%F^Pdz>$5{_*I)%cviwE5S-9Y`WHCH4>O29+P^ zz{Ml3Q2PxaQ7CTJtIqdHgJjwx;Aa!PCxvDzqVRS9Hq%A{cB z8y+HvbwH2WR#t8XAb|y&4Kp%Un~b96x#RKhASb+n`Rfq3;{nNCH|m+8I|d-!T3)N= zF_{@Fb|}d0b_2N?=fYUqiDtL8;;o{8qAt}!hR`b3-H6qm#7RR96_jBh9Sn9V=s4&RyPNnN)j)n z)U0|139D-{K9gyLWnEM(kAY1AmW{w(oyr&A+$(e=ZDV2~3EBqxv(XhCAKuj9s-u28 zw{-{0rPvdM(@SesIQ)+e^G8f~;TZg@z1@*mm#0}4C)ZXydyI2vWXHgadw%<2G@LVp z*<5@UFFgB?3GQ9RhTqPSN?agMEUnbtZ|#KhCuMpCV?W`ykqZ2GdTjjU^amOd_;3uQ zquD1w+h=N9{h!E$i{?~N=Gm`>$ZYpf60SCjKt6dHviKZVtp_jOB|4b8m0K=z}bU%_c8TKP*2B9%B znoj13a><-VZp9=2Y|=_g2%85;Z<^?GFCJMOGfN!CAPgZg=^Yzs0)r5+{Xn)pM-{!u zB}-#X6%%=%rpW-X~#-{fgaB|6#4ND|ntwGh`WI z$%1cLDm|+Kb+6;gd>f8qBlH5#lJ67a5tkvP1F*>Y6Rx52s>`xOJsdym_D)O=)oan6 z*4RF^#e+Ovzt{Dh<19_@Eu@Sn%wW^^M>1r#`pxY#9SODFGn+ZDY=a?82M@+}s$bnZ z_hXL;166un%Z~Ts&58}h?-n8(ms~xgwLo`h{R4!VV}1IL*cY>uUr%a_PxbK0u&QHw ziKTQTC{8(AgV$?p9pER#Me8FMMvyW+n(lbG@O2wacHME0wSr6VX2$@#0+|$Xj6^R>~pO;4=^NUNMm- z$!O4!7r3xIBkuYFywpc?xGo@iBj6gsiv+8*i$n*aqdmUQG1FjT`G=TvjF}R)j<_hU zjdVf*@S2U&tS5ggj9+Zy%_0*IV0e|c6NHHIGX(ZpOwujRyTRRwg2*=3(nVG*ggSz%HN#b5{|QGg7y^q9 z{QH;-AD>Y$-8D3wjiP3AG1Q1OG`Dl1$G&DD7l`9on%?u_oy{a(1ljB#nN`H=37 zk$RvtMxmQ-X5=Ovk)X~#B`_sy+~!f(Bk2{E6MabTdI=R#`r_)e<>M+KHMR=&z^vBh ziheyB(aWMWDo^vu5P4cJY$wuIbw02?-nZOFwCQ5 z!;rr%6U88~GN_CYc}d)=`_C?LqV^|{5H9KhP1l28sQvse2=$+1$)4e4jqzQVe^pGW z{B^+*)ZnsR$0Za@K5p*J`Dp(X;&1te*mu9eMrF3grU#MBtNhh)+b9O3$4&$9xyk`K zr=PmVG!>fAt(l;2y*Fdlp!Z8ZHx1SqFQD2ahn9NO>c5pWHp-SEM~Eo2UusECafKgj z{`m5yqxW zD4>~iVF#y`IdovX)Q`b$KTkt}1&y=28lQT)tXt&R=Abb6y4m;w{D+D5?_Tr&u>bxE zIsWS=nuvqFxs`>>|H%L}8cNg%{`O(J0RsRM|NXcBW>JZKKVnY4r@dYmV6IgZPNGSMq##q(8{;Yd(p^v2bT?=Sf zuqir4vq&w%fz!D5*ohMvWZEOMLdNTs%dNyqr8f63zr4#AOL?BamlcL14J@V;P=8|c zUq57xYIVp;MbpD#3cG`cS!d&gfH-GlEwu56IjAyq{)H5gL0Oc4qL!i)Qg}DJWN!GS zCYE@SVt7^rP2TjZhcDFAXr6AK*1!2&kd?;VC}Xr-Zzcix(AgF+jIf-^SUR-7YxLGg z75DaVjJFliZ8JCLR4bn0Z7QuYW1y5<&mr6##=Ehu+&TL<=W#=!!=!HWa$>K06%Uk7 ztlZ)~_hrJC>MKb#pPSp5Jp6?CoVDi9THcjRghLT%r$b#P0dCj zs6-QL!sPV@k5bDe%G2Tc;~s%KKDadHl=S1W;7NOe=1MD(ygRpuaR0yItKjaDenmbw zuQPuIwL3#+yF+8AK%zu+bE2Q0?6XD%d)snL`0>9H_Y?+#Vm5uTNHPVsxRD|DgfZgo zBIWKRR~yGTpWw)D+^FJd7%4l&e*Cc#Nq@BDP%Tc2${9~Q0CicFvg`bz%>5EQoZ6%u zFG;rfIo{|#ZOs^*RSV)ZsH!j#4{W)xSipI@#}DPK>aD9>rK)0Ip6W$tP;{h9P1c7}@2DxD-lIpKLb zf{m%4ir}@deb#{`4w5VO`aa6IfO8A!69{8Zz$n+9k+jn(f(oM$hTkmGNb{&BP^+-m zM0(VRMs~fLxUt@5L>K;f!E*u`UEJIbXACWz{N=k=?=LE)XbHG4M&_G7?cBBBeHBE% znci9%qBN;Lhd_0`p`Skss=NOeh1?Lwf*Jm1AnErUDA#{o(*LbvaJ02@as3z9{E~zm z3K3EE#B{O+=x~(una%wY{_8N61%BRhl-*F@GcfpDCpfwpxr zNPN+WZWK`DR;MM2I_`&*0S z;Or6NzqYgg5gfkd$wc|6dcy_DM=bEWI(&}az0gctla(3KrN5wiaWl%Iuft0&k(}}A zbb7+1^gK*a0STN)I<;cr82qfr6}=LNU>Zw5_)C*R<}+gWL^OXa6>wn)V8iXLq=ugO7z2bp-5nD9^U(uO*XPW@1^>fG<8 zc@dEE&A&Gb?AwK0!J`}A^39nKE3=lz9oFkm-a@peR~1It;W(aFG?7r4(G^yfZM?sa z2|6M#5P+GhAFt8eHhA5$ZP!y`bi=-1unoEETHA4rnLfk&&#Gp%18=?Xt!k0qlJehh zCI90;7PobCbv1L=u(CIG@Su0`urmLjB4ZaXX1{_a<7M>s5fkwZpQ!0&$*Q#n36UG&e9V(My8z9rtwP0q;de$DCWZ9j_-{< z8fMk@H-;}xpd&GoJyiPv-A;tTqT~sOZ|Rvaz_Dmn4vnY839D1uF&1>|@96PM7N3op zK)*>JTQJ|DBKz?I%Qye7ze(i3u4Vtx-TnWz zQfjev@WG6Tf)+17*YV^zOrS-9P>>5q`*$K5=fv~mbU;71i0NZJyskDA9Bpy#&81!D zUOdn37>)JlD6jDO>7$Z528?#%-Fzc|>f{ivIoc`e<2SGhuYz$(t}zC-MkwVJuK=%s z3px)&3dAJ%1R7y>T9@gqn;Ni#fy6L_<&QZNcUIUl?TEp1hjr8ACH?7M(M{`I?l8}!3vYe&x$;0*wa3QguDmjIoZsPT56NtRIm zXK^xCuRSU!$wBYrr;%lku?@Q@rIltbfz~Z)l&uhoo(&de3!1L{k%l^kr z`|1AizI_Xq?=S-Ywyk?O$W^ZY_QipXfx~@^PfCq%VK_sNo?caZwdX|U?|@T(x7Ne1 z=9`-(wFRF|_RaBy)QbI_mhcCskJ8^Y@bw1U1S=hv6Am@i&Az`4wqV>}@xMff{M%j+ zI-g8UE~k|D@MWvcT#8Z}Jk~oMnx0p+o#;WgTy9#UnF;u z%FlTnYktecd7B5-MQ=5zv36NwQrBc|m|49J8*d;_moy;{7fs>2el`^3g^ovC>U`GB z=D#R7;%5cc7frvbO@Ww)bm5AHhhM_Z*cxU})^nXbJlDrTo1I>ObuY1#+{deQpxK(1 zMY)ur^HE_MBiGQ#4I;+M;QBO4TNJ(QRaoGra=e*q$v(fg6a^*Kwe*Kolh}Y6A@@-jNmkI_hh?+KHuEvlBW*;*;u3SKQY!DG4sirs!lewgRA#D_F66U033ZxtvFtOA0=F9~G@5et32S-bt;YAd zV-%`!2-XEOu}R&waTvg~yHBJw;ntXWQkoELr7Y@g9s^ zftq9;Mlkr}9Y0~hq+zcqq5kovodZ>u64F7ncaI!Uk#H16Q3P3eR>v*$cN>-u#NLC;dDRx*v0M zF_*9~fU+iQ@k__oH!J8FcZWD;(^QpUP_SX{0kYdw-x|{oVi;~*5v)Aj4hma$tojEj z_|901qNV;~HjVq2Yrr459iMK0ptwHb94r+CS*-$z?U%pI&`rJ0Mc8(uRa~R$jtDHS zNP|e-74(w7(n|W$F@~rSo;)AVFYTMe@wavt73{hsfb=(Syx&d*03S@ti8^|l63=@inAc~tHfU!>qH-zI$8kSXh%X4L%MKKf)&2w91dP;TzE3v}R1$(^1 zGzQoc{59{5IcKn3(s0ujEDl0-!{{f(V=cVIw;Ym|u{C1pNIfaa7wRiVY-$27k!Ro) zC+Ie{zjNg6{tfh*K(S*<27V9>;ezdAz|Yw)3x`SAEmA^ZB8^~vet z073^5uCBt;8Q?Z17>gbR`amX)@(c~NG>2GN_jA`?)QEZBF=I=j6ivu?>BHaSj}X*nuKLxKxkf;??eNmX`-`Cn z+%;YmI7*{%lh@?CJaN9zU>kU$QM4Ns1^{mZ%!~L!{ua>^-0;$QKz*~hfDTWdD{7N z0p(}l@+Wou)98gtFC!f$Gg1gzFEgCE36VoEn>rjQ@;xIHH=Z@;4@epK9u|DzL&ZP7 zky$6U4IOP-4%_+lJ+N0~y@#z}f%1fQ63P`p?%~No!C`Oqj816kbc7CU(3Bh4zJ_-7 zaQ>S%S?VY?-EXmR&O9b<3PAJ+%D5DyV9xq__0Z`$vm1CvnRpZw`XJCq4U+lDMjP#% zt=K1Gb!027a`U4EuYa-$&-|w{>uNSGH4sJ~z*}7l%)co2_J{;ewBvpaRa;Ji55-X^ zrm=_xEn{GInln}@_k}Pq#W2SWJ6~ye6AOGm${*8scppI3w!RvJ!VKy1QFXc<0o14I zco6)QgoUowZT;Z14ZVHCwXT5RE}R!jPkdHXJ&XtqL+tNWrR6a6;+aZ*m9oaSl&*BC@waMRI z2ioZG;5%3d;ya`ssL0%%@KB8=5vVY=es=09StOz6y4*}#F&=<@AH%p-tk2s={;VjF zCvpl4OCQxE7cWir9`Q1we`?(> z9L4%toH69C;*~{_uR3lY-NJMrlMv%GkCT&!KvYKxzM#}|I-diRhuR)@1;=zoklE8w zAyNdHd7PsGR6qPHqBhikY0~RXjKvJu!9H6j2C=+#*71G-T zrl`_WGXb9vcXh`IR0TTjM*9ds=fq4WOhz4|>un8hCJxiUgw{xSo=xtA-NJB0dW6z6 zVr`I4QgSE~T$0zo7g}&RFJ0HHIaIX3_cB~|!Xn1!`L%JLE^BzkjxV6UKjk>9^WEI7 z5XC~{dqNNYx1t)X7L^b;POAp1YY}KtuPj%Zwe&+)SOX;8^Qs=pFk1qsgD9B-3a;L7 z4nl+{-Z*DaEqU`&$!!$I=d+FquJjAtM=9UNH9>_E!&cX6XewYa;uG>ov+`+o=sOA5 z!yh9E5|V{z*Q0~w?{e{G?Ag&Rql^*4Kl08>D7G78F~CS&DT*-rsQPieGV9e_z1}yl z!U#+;qpZ>%2c5$A^CvN z@ljcJsu{}{A1=W?uI>*_1i=FgAGpw7+u$h&>C_7+460vC`x@`2f@kOz6FOr$v=FZu zf>kmp+PFyY_of*tv4?^X6Qeu?$(+)=W+$q}CG{ZKY(16E?oDR(TAFTy8A0F3TF?k1 zAURxbA|rf?n9$FpKRkkAx;v1*-w5-XxwbA3#QS<i$^g1@3yaVlHYCd-I9snB`r=g2qtzTeY>Wxp=D5ktSXtMetE^aRtMSn|UU0 z_qKpIg{O7(7z=mBZ+S3MzQA&pfze!~2#fetFp0JC8Wd7=u&Q7 zIWRElD6WV`P>U>(Eg-NZ1baoW!cxBL6AdPN0t$-?4EBJUE$1kLv|nc!AFFZRF2hvT z568q+Z|rx>82Z48O|5P|<;&Gm_+aNw_j&ozOX>CL*E?Hi?U%K(ze7m+0dl{#PwNFC#nKe_4FV8g>dK9EhJe21Y;P zQf&h()~T&&fHcZgmL5S@9yh=&E=j>_@Yc2tZm-@ZS35{aXVroGtB()U(=E(#DRB7E zUMp;u)n}T;>D)5N@RFP+g68Ys&9kFDRGi4NwtnhtloW+%LVT5;tHOa>?A=L6{b*Ts z$S19I!XEK1)cZ-iYfE=d(H1Iu9g}8*oaknU3R={}Q)hp?JeaIb?3FfPQhYDom_SN^ zo;~8eCB?6LZB@{VfJ^5JIjiR>Y{t&~fN#P^iQRDU+xVn&LBxstuj@Vs_NrmvZpM$* z7j;`ADA?@GTZSMmc$HHyR+m5=JYr|kA{FB;?21sEOfE(ga!h#P>XqfiL}snNMYS4b zP&h1T?bKt+0{w|VMMFo5UkXm3MGD%ws;NsHS4PAnW5@GQGir&CvtL1IR9gvGHo58& zrKjm^`KqosZ6bA`$Y{Yzlqrnzzl?ijA3++Ns%#oomE?y_{CV67(K0U$YR3{FGm4Vd zEIUYO39?(AsXYtDjTO+=EJ*|>R)gNN^&K>Zt?L|aidSPaGA_2P%0%};6es;Mxhb+S zSr{YLq|Z6CWfcwVKD5K7&D+W!r$|fGu>`1e(|9Y){~X1=tuSu?(QlF0^6R-J`bd8G zt3p^qAT*zmRMF5n}kEy_5c`rjgMTSW@G<-;IRK|dw6AD7}w^Y5CQ>v z|0IO6KBY{5*Fh3V{he4LdPhx%0$o#aSbFrv0C{ymbI`qx(V#*|DXYL~y5i0QBP7Tj z2c@%+R2D*5^dWTYdLb@#Y3OOGWiR}Rl%vT1D{o~z=&4C46C(wN6=AA?*fLG@VhnnV(mQO2CI`;{d0q`lxNCI#r0;ue9c|OE^=wK9Srx7j(7!#%R>v zGMfiGDSP)O?T+s+DicQyZD`gc9cOScNB|r8SXTMLda$C~LZQA?3#r0eVPU4a%e8&x z?<0nCxZFqrF&rZZ@0$c=IHc54?2&=2=yxona4M4~jj4>LWTsop93b^o?Au2js6(0g5pn9ILlE1~Erpu%C_NyK95Th;t+#XmvfImk&E* z8wKulaGR{foc8YnjM!?W>=`W^5;}jv`#R<- zPv;|!Z0=%e7&Z*PO6D*9xXPjaVFv;}tiodSYetVkd0v&?Q58;Flz(!HlU^ZdfWm(G z_7=8gq9JRSpEI+CNHxx;i`TC+QI6kiQiDF%d?E{@n*+ty5w3%Jn@JHgP8;a5wdTZ; zBmv6W<_KZqd{r5GB6KWogz%x2kZXg5qJ{YvD6&WLuxKq3d@6Hk?8kkA%di2OeAVDr zOb~4h4>i7OtvyLIQ_^`AH+oR)h31#HYFe631&;rKdyU%k`rk(YQ5 zrQ?DE?Sr<=9>A?I5e6OuOITSeJ9@`T$7C}|KHs=J&(ZBokw&?)c5SBq|qxtDo<@L9LCE{wtlmE*w%YyKf#UJ!XksI*w(0u(epjz+A$%)9Bpp!*UU~mH0xH_ zQq)v+mzqRv^E#~t;^*J@tgW6o&h(rb4%mwM9f2jrHi%)Y`6&Gti2vNB(Z=mO)u{jg zU*AOif91q0oRZsU*HMzc-ozeSsyCSDahoC&y} z+`3{bqq&mGY)?c(;ebGQaFd9BfB}bq3Ic%0Qo+Chs0*a;ZGl3D%_D$3u9mz|zbBV7 zAVL5xhKdCSxQK~~j|LBhAB2dD%EwpRY$hgmn_vi_rSUzZ9^Mupr&W~%DO?*-TYpyA zcKW2`abe*6d#7|vG#{-dl9Q){EkQoIMA-g$yo08l5Wpi@y`6LZ9{^22vcC;_9uMTF8f{QS z0_A$V_i#75ADmrp)bl$zdo})hHk0^5fh}OVdUV+L?~;gPw>q8fSX+q!WC)r$JWmF`n)xshJgkWR8eHLq1z3k8s5#KqY6n;%6wUu=f9Fb-)a(P)k12ebBL&H76&c|CYgv}T_spu#lTOzX_0od;XEM9aQRKLa z!y2T-SexNdzv5L?C%hz0%`#}O7p{Q;)Hx%%2QmVxWWEuXBqfAzpzEXt^r`L7&2!&R z3kyy6(XPMu>J*Xw75x7qKz`lMr((d@72e92&A^DS`|0L^e)OYPvVd*z=gvOgq(urV z^ouJQK-#Xw*ok8(`I<-dVz@mYtb{#)(q)8HaoJJ06l$r;Bt-z&$>@<@BXxZOq8A*u zsjZfkXz|o1Klw3JOSwWxA1~oc_cKMEdbJ(0Cesh@k^qm$r61+hvkbKMwO5Z=Y6(K} zr(dp7c9$2|i}Z-HI|Nm{afX!38$509N2hs*!j!d7w-A~recHV#SYJs+aYZbrg=_QM z%#hxBQ-##VWd82V&OS80f8N&f0VhTCdhTWDbscEV!fX;Mc)5PRzY}}IDe|idZK24r zM53H#9TZ`aofXzoZWv(e$!K*SXA{&Mgm!_EOEO%D4e`?3YS$rIiq!CGxuKlI#eb9j za&%w=*+A!AEC&S>Y!os260N1Z*9v722$sa*v1IFJu@b-d1>m3Foq}z-|6nm0!!WF; zPNFKH)A#Y=jUm-8>_{^SSF^9V4GEqm46oXt`U~@wdYljvOSQGcQ@3z;SKyeUU;OiN zy7~t~+3_*BSn%RU=TdzI6Uyu*JnqSCUd!n9F+g~AG83mLZF7q7S!S;2tG>iSy7Lv- z_H+?Sx2BwtDF=dh+wzk+-|&y5v?@kBJoE3LcY zuj=ecSf|3Jm9E@qN`h(uBA(mX?PcXR-Re^xHl!An`hef?%9~yfTfC(Gm67mafC-Z0 zx|8yT81;HGRqfnWQeU2+)I)`Q)slNq9<=W+n2y5R@!SS3V&_()3`!7^gE@Pjga!M1 zR1RHKqSuJ4m3ifMe1WHKz1MZFia}!J7zYcv8j0m6=|<#p7?ADuoD=Uw#;+|`v(cz_ zV$9+w{)FHl6;h{}qLEcLuc*c=PiZ16m8__$t#JIxD#aXvxxGRigP;+vhsS>GqtNZ8 z$2crD|Bp06Uml7qTza8?)ujQs$(g&KF^bo&d$@Fec$5vEt+bYwa7fktJ1wdNDSWEq zU1b7+Mw?zeUV7R7v)z(fC1u1CBQGwA+liP68#r-v{*b?4c1*yxKCTe0W~klIk?GOa zVtP)!Hxp+dyOMZJI@qq79SwK{3}@24*cmXTbC7}G=`KQZv{1n@amX5oYC540tC5mcL_H*^`XFZ? zo&-L{B)KypSIQuaXw>bJAm)in6B51}wQrU|u(roR88jhzDGCmKa%q}p?=)IiM45Nc zV;wQG8^<$T$9lN6PlDOo(IL&x#V)EJYGAX=z>2q!2?|M2K0(;a!$Sz6114c0tWns* zWBHDzpT1JrjqI9LVZCa}%5$k-y<>UCZ%Wkr>OOU?+S2S~jC3ovll9aNlfs3eTw*D; zD|jl(AsUlpD9VcZt-(aFVy)8sMd4qgQ9yFsO(x{P4QZ5=^8kCBR1G{%3AO}zJ?D1k zlmk4hgeI6yvaRx4C<^KjKUkod&gR-XH~XU9L#<3V$E>Qdb`*nvSy6O8mLgUXS26r) zm0I_$>}bFo?g5vdQB!uwi2fhtF@?EW-A-~U!)O{R2dM8BGjzR_dhejYpI>)q->)5C zUjCQk>#|>nx!v>hz5%I7{`tk+z5@?R#C6npqhtfsDg%*JxXyG?O?El6JUT#YVHifg z)B6;nfn(A3aS{8(QX(24QR4N;~Rx9 z2wgx#I+|3a4g&VBVNxljQD#+Ah;qE62lSNK*Rq(MS1-3CAzaKB(47sMtd<>aQi!U7 zZ+0JwXkd7f2AZD;uv1?UyAm-XcO+L_bqrl1Wu}VBDipU(sW0*0J@C}iM=Rw5V3oZn zlQy?5quV{|lE)b73=E%1rE`^vCry|*Ug>OK!Ze~AjHS!*gf|R8nk&RT_eR$n71D2) zzVlUq>X%B6;6xA9%MA7C2jShAvf~TTNj>cJI~!L`{+0gFg6K_IprsmQp~Pfdhdd1O zB!|XfjpyHdqMOwHy0UHMxs?HEN@yr`)fp|d9O?!S<uS@hPaoMqBe`eiIo}(;8+e+ zmy=BevLK5DA0EG#DB`p z#Nl=ylO;q`Li_en01jFB=w{`Yt(VQ#0D2mD@cpiyR3wQ$2Y(@roFP7Wp z<8Zbyo8EX!4c+Dv)4%rJ5X;#~vyQ}p>TOF`ce>MK43S^6fRyK6=RM6Xu7A>i!5pom zul~WmD2|9aHsayDtnRo2EM$`JLAMkr{(6ibQ-ADZIcWzx%MfKH(2aYH2<#~N@v)Q* zdz`_{kUESOZ>qqO>M=QEFWN+XsTGh1v+iU4#H6juv|Xo(%+~XD^Vb5 z-w$Q_o8-<1&S@7$iXfT7tJ6;@Q!-ftlYV*xnPFP5;Z|L+Lt0c{YGp6F)ZxRU3qgO2 zh?>}X&Axn(eUgzjg{@3RT2|&B3jjHCjQ!$w%CF?p{GU|gdiI8g#!Hh)k~o2T@jEH! zD{v^BDfOTeJrRiy=y5};P1jSOCMPJOL1mR}int9MJAO+Q<@)DfW3-#!ySLR{%o_MQ z)SUO$CHuaXd13TE8Eun`PozX$bkvF3V3x!}99(doR*O`qYUr`mUxy2I{+S{IoZ57x zcv2S0b6VQ?4}5Kr^L3*wBp;FUDyCkQGxg%%!f_tet0@^HZbKD>RZK^5lu-=i8XYy5 zeTjVt&|$7N8@IUJSKt9nI3 z4p)j1&exYRlN*i$wmnZ3ddY{}U)V;IpO;|M=?m*SXVtKG>ziFr{m@SoqSRmA z?z)q?zxUWqHT7&@U-qJSO2C&m4fM2gx!l3D1quG`@ctvUAuY=hJ&C-Pk z?T>g79IoLZW{f0xw!N@rf({vVI7e=aG$(aetC6T<{;?LxkZ0neOkmiopV!urO*WDf zbEoMBhE?CwjXRX3z>I=Bq*g%^al@%RBuP(~kN1$-y=FpKQ=3c81L z4xX$0{pt9FH6iy{5-}*TTqoN}qq0P_bF*la{+=U* zs3EC6lJkAuL;IA|wO;?dZRJw4~6;bgrrdd8X|PY)*n$cNSybk#WCEkaj#(v_B# zP6BtaN5tF0Ry0OjZ}ma-B2$vW)6gnh8ctj7$j1XTxHy$oz-IFe%OH9ci&4d@mYIuXINo>{q z>)%&(`S$=Yq3y&&q6=cz&lKUqfxOWKkN~sZ8y*QnShHCB(T*-??E0oE2tiGuSwZ+U z216Hla>r^u5OH$dd-5EoM=R#6 zWO;eRJAywGY&yr-q42r41>YVjEIF$JP|Q}Jf$kGle2u#!Y9vb1-lQkjEqjk0S+i2XcDudwFzGf*>3QU&qN~$PwRv zod(~C%FV{^SA{AM{19^k27f1<_+{CA4{TyiGz~;C?9vT7z!xcTxxlltjUKkp_b7%^ ziCTIXPhpIAw%{$n?C!#O60dz0pd(9hAAkr*hw=pvOTtC-mA1Kc5JsbcPGwBa;nHt%vA1(`aL%MXsz9WouQ{WYrybQ>&70-PSn=-pKPRF`G)EmkTV zyj=t*?K%O2XcjQaqEO`WpCi}>muILjMG<)gS|Jzku7Po+GY8qMW%caq@H)i2nfimN zZ5peYdE{tV>qQtK^m+W#BzZCvo3Hj;B2+J*iEi~!r%H+K0<76Qtc?TIO9qw?JnnLf?h;F6yRn$ovO-IP%M2p4GGDvGYxP$+SJ$oCi4X9DcPWW{RV z9vJrbk`&+NOi~NDJjYFHX~0k3uG8HRywn-1VtnTJU?@V}L*xo4s~%ce%U21|RE(V? zv+=3W-y|#zDl!m*F6^ME!j|9gsL~@{x8~rKgOGfpmAS#~{gP=}a7#9{gOWN7N3>EM zMpPZS0Va(D{(*TIvGAs5nCAP5NEPa-PDzcOpp}v?&1Y6b2DtXD6<&6-fHe>u4kmDy zFRswU0$i>lK^eB=jsE?R+`ah<3{Xd}{@JOujn#1EIAz$XPT8`^mC)B)24YD~lEM;( zl%iY7!y?~XuUG+Am34W4#$E_?zj(uI2q5#)^p3N%n)k!8v?fh_y%ayny;vR=BdDC! zU_V{K?1V*?>Px>6qqDoLF3(l?TedF^^Q+=h`1PsbF|X-h11Y_Gx$AQf5q9J6OGmp0 zjBuT%FWT2ite%PIM$jN!Mn;_x1y5P1@Cq7IB+&k}dR)msu@|C3 zFaTLSv*3i&wKy15X8wtrp*=fjIHx5Wv<|Kk{b7D$>2yoor&EClt(#>30-jcp3}a0S z93lpZo4KrfpBe5(ku+bR=N^AR2ST-6&P-@tgcN@Lcs_{M?zc%zXFExsY(8L#zyU`6 z{1msG~SP-{j1npExLylncsaFeEsBk)*ftUT{!`o}0Bm+d?awalS)5-1h!LJc4d} z`tm+X*j2kcuw7K$%-?H|1TpLZrDv%YD}1qRvJ`9r(t>YH{HdMywiHpZ)PKBySFs9h zDzX`!RsFDDW3{8toIzj8DY<-Zr#}J%qC11kcf6<#XZy(EPHa+i{6JcTQ7uM3+hm~P zzO)LZ!g?VN54AQuMu0I~nXAF5u;}Wkjt@>s-2IdqF&b!C{$!+7vk+&^x zjeSDqhGraF*I#@^(yk5+kjxk*-Eh*tS*9UdAEwb(156m#)9_^}y;N8{s zA3x)kh7sHHW)ew?3GY9D7Or+zk6--g3GkL5HyeGiZfpk?h+FBw!%JYUg`B`QfNUe{ zI5IB9xDeq3q@HO#lAzVI!MQ|l`{tQ|l#>^9S`7RPF0;uJmCHQT2$TVg<*J#r0V(5G zyhD%DhOQRj3t-5x(F+Vw5ecvw#ANt9NW#>O4oQFgELH5+uuqZd@4s1MVYQw{q|VF{ z|72W^YG5Y^YLd{=N#PB>E71EZf~rFA1pSPe_s{<#D>42WR3I0ty$Ww0JBNk;EA==f z*g0_BXHd1vnj8z^BL8V;WP@{ZTvVLEi52KgQdfvfq?Y?&Jy_)H!gUEJU6*~4*A9

Mpe_Lpnk|7vu1uzxO%EA^zUVA-6k@;H3O`#O+Ez;Ky`AV;86 zr%Ai?CNhcD}YUr^u+^L&nCx1$Mnw%J4baw|&Svx!N7@K)j3 zxW?ITi{z4ayIizFeQGlrkA1W5xklRX_8~w&df0W?YRcw-cfL?akXX-AfoUxYeqb2l z69vzddL>DbfOW(7x(my;6|(&PID!;}cO@tbA}!VgCDdN8;y!3rEB2(rPAG@)QRO-4 zG`Zi|d={>qth&-= zb>ytGX5#N!mQAqT(mTKitLHCakk{&wSORg1_88+nVUZht8YmWw2bdeOP{rm)W-s?l z;W}J9rF3`V(ot8t-Ms~WwzdtVUL;V!Mv@G~7MFB>c8mVkYcBG>p~q|FIWU~&K2uYP z_mDd4uQdgkKA$l6EPQ?^x3&cCh7SqCnC-iN^H7}g9@=$e&&>BL%|BMRoxgcaGYtDz z=f)lF+)2`p%+H+jwuo*ukRMiLFmU)EKLsGB+mMN;j_qWz{B6<~#z^(InScN=AzW*@ zyuABZA(Qnk$^?^bU2X#T4T+Kj9xtOqCZO=@_&ccH`lcpPL(&FF_EU{blmx2GjWb0g zT-x-3q}xqhWC}!+Tlw|~@sE)?d-V=0Sp&=rn|6N5`!M)Fx)S#Y+qJ&qTXK-&uyoPd6E>kEc<5x%;7cYis{(#cHF=#@=Zkx2N4TLU*sr zvtwJfE-9%dAnG40(ESvBvx^ z-tWiVZ?n(cug3UPxpt+NWq1v#Bhe3U-L~AN=?Hd5vo%ytpe&Y3=d|FRZc4ImiuP^_ zhQPKcB8rD^k9KL1>}vV1cr9-{-)_1j&>{d&85^Ugq6-8XN^Zd(%z}BM@$#p)`Y6uv zo(Ot)DDc}1>lL*QP$Mw4_SMn5*91lA;eRp0csMXLypX?s!8BWX(-`|` z-}=A=(M+9*!P27>ZkE+h`L-$-I~Z%@>!xU}`jxZVRhYZxFzF2_ZjnzlI7czWUwm|9 z@cdXc%D1GP6trbdyrmsN4F(dvObM~Y|68OC7 z^CsHN7jej=w^1ae03If6K?#_r5%Z%i9k)B|zpZxC)8ljAB1(#E>IqSFiJm?OE;Rp3 z9}gdXcndPHQ|;N!Cmo#Utj*4zjO`akx&i+;SkyT_dJnOOusQH3p{v^t&w~UdmdlL9 z(_$Iv-_{y+4ghXiGChp*dGW92XVsL)Y=n1Cl5z(MM# zi99L%&bQfY_`b7>0D8;ZWKV3<~01M(U2=5WIwMy*cYC}FOxx^^A0;P zp|{i?oCj$(lv>u4Q83GR53Kx^0$s4--+~`p-QsAwtyAc$JOnf9bW(Quxiu&<*y^c!) z>`13w8YRq7COopkD|Js4yLYbLc^pZ9KQ?5#u)A?CM?iPRJqwD~_We0v7`5oW`~n>c z8WE78F&&j7L^TrhFomPE?^2AQ75^-j=DOQq}rIWRz|+ z05sa>9z0Eap!KSIwC_j?<59mL)W9+%76mE75h!|y)b-@Za!2DaHN)21N9I}0E8W=U z?<9tIN-T@o@^0R>rOwyl_8pi?l! znZQ?2G~HICev|%aS&TMzzrq_%d%Jm=^>SIvN35X&w!1BWg&pqRRpE_9i%GiB>6GpU zHipBwA4ox9nrH9LC^1H#e*U8$pce& zSY|SG9WmApgUyqK+9!}4_sy{%Z}Q#Rp*vBO>Y$EBOa->N&sSn{X`U$yWuTg4Mx6%_ zW!SLUx)qu&>^QKYG}Lyp;_Vx9Wj$+!4$vX=IR|G6jFD~?nMwEH?7!0LftLV;X~PDi zKyXmaYK#=t9I=SNAuj$qBwrt`lg13WS?UMY`bK66jDQbAyCIxG#!>qQKe-H_J@=?1 zr|8pxZppm#?X_{!C47v;kCc{ZOb17C&A+KiRCv%b6cBjs@qR&vVoR*wlugt_87!H< z@?tvH>e?mZs6-ONzMCi#3sjnftRQ50d0CFM^a4p(K*f#(tGbu`r&$73EQm4t0>GI( z0C5J7;HlU4?+?7L6$_0Uz?#4LwSHkB<#LQ1@=dwxj8yDo17N#i@e1i4ziDydhxoN6 z5zMPZ8Nm5qw8e`cE+LVLOIE_cOS0v`t3#>$euNV-P>alW=yqsrUF6}1Yguvz#mGEL z^@Hq5)Kw=v!`pj6sp6G>yWMT@m5W?%l$3Zyk)_=SG3_x--Z-59Sr#@KV@2!M%PhyV zNQs!$tA}fmpVQLiQOy{%EmGUEp*{z_jR~BY)_H)yj8)ZjwH#BGFp;|N(A9O$uBXke z*3qTa8JoSen%M=*UVG4Wt|FR*o*TF|Wjnk}c=Sio1#O;m$3t%yNZ;++)dp(s2Kz=9 z)^;QH&^_#@s7BM{Noe%$S{Ui;oq2tvr@y6b699PundUde)rk6<+ zq%l`ej|otEui0t&CQE#O=cE9HL~v28wEP47g}(m*cW2!b9f8YrC?^I9ln?w~*bb2J zknChK6ZdeEt-B2$v}j1d6#zcDpDr3e{fPWNdOIJ;0}fG{V|^=<*GBBdm%dF2Y#OY= znJ}|3ir-RO957suIomG@kzZ+@Kt{i*s==k>?cw}5X(P3zzW*{0gMdZaxlEv8yrUI6 z*(wW^88#=76p`oXiX!f$T!wg*PA)zw8!}(Z_ z{b(o@VmBj475&Ig&uxz?mT&4HM_uUx9>#?7qeUJ#oLxxhP{nYZg>6BD%c1=T z5HoqDmoH@YX5SMhE7`ga-#!uXU*g#oW1k^y~{=p2)Wd1P_Jbeev7xDuHDAFNs(jRXr zEz?9WCMK@a=G^MYl|9gTGr-x9#?9h#rV*1CJ%to1w0cLAm{R|dhL&R(DC5_4v9*@( z&Vs#Bv?58Lvcc-~g4jxqh(IY;AQ*G_OGoh5Bm))MkkzjnFWWmecJ_)q_lIoD&vE9Sy@sO)ExQCAj`X8+LGg}|e<>MzsA}c)VpIJb zBM`(#s&cx-D863j9$6j9>5(~wpxA)DPsUw34uzq^SS>LfZwVwt$%R3z2jX|8)As&A z_-%3dSB|>2nX)~A;6=)y(kgCURP82CO^>XVxXw_Du?p%pfF@h$AQ|0M|KrB$s`mkQ?`)9I9H3eQS5}~X3^%!6 ztyS=MC#et;k+NC}2bwgvz@k~eBb4LC3=dO!P)TkI(1X&yosi9yz3|Fv&LWh{Hg_Ok zfHfNndm7h!H3w=IQx8z}|fw z%pCMKrCgaVA>JjI3fN=8-LZ!A?I2;i@I8>Irwo$)8&Kp@n5=Alrt9-tVbcNIk~-l) z2V>P#KOw-8f-mLQR7A?G!@9WCzD}HhxG{+$h#I}1q(XM#l&5c23Vg>jdr_NYvi@bMDotYTM$6Zrss~$G7 ztbO#yF0gw?lHumt=n}hq4Xck#TQ=j5CkRxC&~g$jE@&}WRFz?63|GFARQr=m`9yT? zh=ix%Bwc&Br0pqXrpsxPKr7Nz5HSJ2Esc1K3Ucl^BfK7W7mlp`h#}Uf=bzNxcd$Xq zRNf{*Kk<wHvHK=-jgnT**%$+Vl zWq~vdrKX5?AI~Ediw#ips`^H}CbQk?mlfa}FA@G-2blGPGCaT$n~T0O?QI>S?uAux ziD6tJAhCKDB~M7KAexC5{J9*Q0b?GfuM@UksgF52!D|+^L#RogGD;#gO#`<=>cC*eh|TmL}Q2!I`Ek`Jk2m4mwkRfi}jL{xC9$AOb2?|Mz>yVX*tpb8q<0C zmtoPm#r9$>_718qD+J_`4Zr$|YK#a?jwW%jfsBT_LQS-FbWg9QD1B2_*6JS>1s<_t z(R<{FUlzT40=pBs5k?+nX+(aopw&JzH*D`h@4d%zO-tJ~sjmjzB8fh@Ac4t75!;zz zPnh`?-Nt0{NxAgo9Bu)n__11cD_4Joc_K;eh&F3HkIeE`{Q$dkRgA7zoD1cNm}bJD zeHr$(lH0UJ(E^{@bBGM)8~gY`C!((9rI7~ah-?4zv~!*6F zHgodK8XPmWDw~t4MLR<9RM#QZcYf(gEz-9B^U?*-Yg$=Fg5}Xcy*26;6SJi27;3aQ zybO5YeqVbko0Cmi4~%b$xQ6Y>xhtKKM@%&+;VNvaxkGQ_ljG5rD=8*SHA0wAS1xN$)2%GT;P1lh^)lW$f&%cUw#jDUtP^1Mi^BzSc!`&X^L zbN*FRLRXn=>fi{SKgab-d3Eu5mNb5$TWkSp2wRLOIgK>ie&kKeCaY)78Ybvxa|QI5 zK5JBy3zltw3^vK^Ig<$DQk25Hd8=IZNBzPz2<)XB#@RJJugoy5#B)qfhYM}J{eeE;( zZd~R0!S9s4lApKfX2P<4W*>DLrL^ZKPiFuR+ve%U`m_T)JIJ$Bna#?s3>C`q^BT{3 z%w{}Ifk*C(zB!DjhAE7IS~GzHqdyidGyQ- z>J$CDcVZ2;gGA7<4om|G*K_EpeElcLdl}|lWJhFmnbvj`%lPhjOZ=QwTNk=R=Tg*R z#EfH|?pxCx%WYirDfexH`2f0gJ%XVf+=4At>EPLM787s=>@l14`!FLn_%FaeuRn(E zV=_8-=)S1&-h`(aWNys36n$MJHdCdRveb37_r-i-b(|N6-F1WoHc)gr2(k%2p0F6m zafB2G-A#bcAdQDCIdDrHvwN69sr%yLe3A9|ls*F)cdQX2cW`d2|h7z1Q+q4XPkksl>c1{@~BHKt7oM6(!4mX(K5b02(?9 zAmpEI3jZ%{p#5*!a4~eY)@S}dL1Qc?hth0t185=>0h|$xm4!ut-Bj-z#D{?N!uC8+ zg7)3Eiws!{e+S26on5G{FcMRa*0Dgv66`*fuh4tS&Y2(PETXt58pb}DM>N6=WoXbL zDI?ZnTpGG!Llc8T@-Mz+Z5|6tR0G8_#7xyff$<8yMmVdI+A8bIjz&#Cwow4{zTVi6+c6>rXO# zcC-0vMCmiWiUo6QdWL5@-2qMr>cXlI$9QRnys;u^VN&~JAS%P_)BTrY`Ci4-;JxU@ zYzi@?jcI!NHE{J0zTa>aLo%KLv8cKmu3d4CE#f9i8&B=lFi_MLMgL~os?ole#CX8s zi@41>3njfCrcLrOh#7M$>`q4xv@VNcVVrip0U*2SOSNCK=Rh6>ONh&$_ddZy_B`06 z*sPQ{E*hJ|g|ObC?}^CBFNNudsX&SH+e{n_(X0(C+>R~IIi~$(_t@hy_`(@I6O5Rc zPal4jJa_?}Y+{y=Nh-!5`3=IRONOyLDX>9hn-_V)%b61PP7gd_IAjZpUF-spqjt{T z5aqzW$Gy1do`fRnmAEi6m@9^_{&iMF(RntopYJ7_K(|FI;yAV zUw^O|PJ^wfsa$$0E#5n-F?egaM$0>{U9Ul0OEZhH2LZW_Q_AqozoF=JN;c2m zX{^HG4=vah`%wn~VH%rFLBC>gz4@lc%9k*1v7?5P?X>(8tu7uK%o<&5MCpLbMis02 zPMejmKk&TXwYGG}kL21{!%UO1@kjl{r3cWQ&g??;NI{$R*Dz?fo=3{m>@fm&4l~5d zDn(VjKZ*w|MfYi<38LCNJmOh}o0-V!0~I7Pl^yTe+>5ii*ly}`r87&(QjHg$;sp_n zG-FyCFdR_09xd9H5RCl83>ez3CxMdTAoHn1sub5DvJm@duVV@u&hWvBy?J5zkomHe z$igxIy3-b>0;)&utd7fdrAO2FlpiY3vMR~7RW7NK|ISz`-NT3A4WT0z@RZvko@g=Y z=Xy}~Bg69Y43)-Sad422s1pC_ItWJ~AR%b~+OCsH*{|C^hFp1C$GC;EEKSX(WOuF~ z(Dy66t&r~RM4of6BSuBA`U@T!ZZ9)fvy{9bgp=*0vwt@>Br|@S{JUWIg(|e`Dag7x2CCFp7lyWA?C~K`f z@J`Vh%|7p>xHyC=?ic0U+R+YA`klFo`>I5OA&!2jxq43Wy9y=A2$|jw73%YE$=#Z6 zv*A6jPT^mjDXqjLe|bB9@Vqmdq4m*-336y{)C_AS&;)`b5i&D`e~t^ccyv#4(PfNt zuU80H3Qt}C)@X%G)<%$@PzxZC#-h#9;UUQS zz&j|rY;820QiBN;&{R?j`3fN31t=M5uCDH$Y3WkAZ2lo1{S7YE)zA+V`jMC?M#rLK z&*Tz}9h(w|p3}Oqt+Z2-8l)-f%=)BC`hMsiVX$eBgP&;+gKB?qgOqFt18~=KpcI-n z0J<}EdoOL!Sx<)VVMdr$kv=skXMTG%&inT z=h6D7d5Hcy4uR?fgotKW1n12|;1ch6NhBN`13rlB?j=FTzHx7w@vd+Y;0E-1hRLK) zXmaDT&D;PdsZ3Z4ID&17R9vP}$Qj^{kA_QQ0>yBJ`Qamom!T>AMYM=@XoE{FgY#;YV|UQAAu=QM^{jj?PiHWhmuw#$9}W&k&?>`{Co(*}%h@m|~7=j?|aU_1liCbcMY9tv$y=mL~BAM1$<^)zYlpCOCPl!=kj7tx>}7i zK;4pGeBWFdN!C=sZrhoS>3=O@oNisNsOhj)1hor_)lEUgv*{2;sm!i~u$k0Y7LsL+ z<_e4EEefLUV=;rKJCeiy06LkRV1Du`dbQ1L^kmTOYRvOtp8h3ud$gm*wvi_5qUSoq zM0$alo9t{IBgQ#qwIDz=K(TZ`(P1qxk67o`UpW3#kV3RrPm2YGZy$eCA}3rQBb*eeG9dE zb-*&hn=C}`Vnef>npT~S8SG;=T(0A_#5VE6tM*6$u4w2gs!Sie=x20 z2v%pI#LbkL2o`U3nK695c+MNKdvieqszLKlQxhmy64OG3@gsw^YB902wR4bNRm`nG zW*an*kYSB!oY9Kr6tpm(u(t?$->L|b(6QR6CiuC-8J+R11m5-~)^oNeg{Acf&b8!* zLHJHSqgsv*Aavs~O}^OD{H?Dv2MHo;_c6o4_7?~G2aWlVW)0$@=40$3{wKpUm5MRc z#RIIFH_$#0udY~VY_mj{mX3L@7PlVUhF(Xe#i|tg(y*>%Z_n@AOM3j4 zQ{mI4Zz+ND2I=T&w_sYuhshKlD~Pl3N5RRA9j191jm3Ole5wz6Qbyr)E0UB_i;ALf zP)8D!>Yz0Y`$MmUctDabr2P}c?6x3FA=<_)5r`Y;z#U4fJ6@8ceDY}^52u59Dl{60 zBmF!~ALwE4Xrp#LWSVI_xZ;iWQ3Y%1Uj&6vpwu6F2+~ouX-O(;PbFx~D%={6iZUn0 zwAp2n>UAz582mLNmY~^s+bmDsNCJ(F*-_P_~T{%@f=iU~^`~rUB%7bHB3m#q( zpXN{uObI)diyot2VzIcDqShZ6ND}V13R<+wb`xbo6GoMY1$eYx!4^D zUI=jNQoafgcV9St)IIw%+`fJI47WKmb6Dh#<96#}$US75vQfIA=Y(<67FudeFSfch z_U@fGRpWNM3ZGljHkQ`O8m?syZvCgaEjSS0Gmk9Fvt*;G?M@{dzRBzQcy92{+%hIL z=1$}00M^vz2hbnr3ww$EP#Z7ii?^L$S=UORdp{M_!>P$JjQJL^*i zrnv$y09ZHCEM9khGE35-n(E>>!U#9aNYmEQASN`g~C1Mdj} zulgWVbYEA@q?%jmw9z8f?E9F6O(wOJJMffQF^CI*z(1dDG|m)$gRnu>QE9Y9FO~aR z$E zd#)F|$?*&yX`#oo+5i2aNGfqN#mbb+!Wi9X^BTQP_>s6;tQ*d)JH%3W9?#^svlBUt>?4)IYP3_D^V`8dr##Fa%8j|70G3v{|-uXSB z6`lo?ks&L~7RSx_kiCgcw{J@K;#RU+d@VnCeNht@L&JpNJBKXL4B{`Xn<{epR)F-4}GgZ1|#__t2S3m=|t zaGpPL(gN5j_~E^Z5aE`7wsAcv`5fMA-!FZNmzD)dKcFGruN_aFkfXUb*40$d=pB1N z@Hs-O1iB7DES-T6fmM&GKB6`th4|t9#M$9?)rrL*Pg^t$3!nff+i%f#>xAl@{vVh5 zNAK*FG(q2SOst`tM?v_oao@#eT@nk!m$#93NsxOHJB3!$Ca->;T1B@zPCxIHB7R-3 zsoS^y%B9h@cKzN4GRn7Z3(Ds3Sp8@?8Tj0Ov5qkTiFZgQ1jzj7eSOEde|!DPq;=iD zy5H05gsuSD0HM0SFTMp^lL#pBezG-Rt-ob%d$=mB0yP)M9C1W2b@nm1%8WrRtWwZc z1y0ael6T($!zM29!bLjR(jy zKc5DM0M+7@BS@!IigN%2^x9hws~B8(#0{1KxNi^8&kVX}caqCwzc0jte8FQW<+4UG z`Sg5(5gbo4dO!_Abb`f}m$rjq`4gHXxGj+t8?k`0RHYn`3gLidrgpL)r$58!zn!YR zROphBiV@-Ooh5SZZ0xtff#(eJ@zeHPe>LEYE^!(B@QUx)lep!aalAO5z1d&4^77KX zMSwjeh0jE8c&|a!>6YNA-9qAYt?kM5H*h@;u!C+L;j8d9p66b~`w5h6lwX|IgxC}g ztJN{J?v*pWVsnPDL~wgooKDGSaZqgUimKEAAxQq1$|FU*&j@O8VhBZQgEZVl`pw0T z)Jh@(k27Hu5lQYBK)?_+)uM6|WjE8-8C|L#$ ziD;E6ISDO7(0{zW2oRql8!gaHW|rtd*S{G}kd2e?m+v?*~2|iT=1H$71deD`T zZX#ZDJq#~s?-whZZ+O7N^sC|juavt8iUVj9FpOJp8Qfh48Qg;m5}e=!4ess`9D-Yr zK?ir65G1&}1$PN9!Gnh7->p6DdHc|puKJEo*L(S-GO<{c?T`oPryswf;mUvjcMr+E z&wy!v^hkRkZHsiJauGU=NDu#=NT(*NM$)sW^gv62KjTX%25L9RJXrwl2aV{Lf*Hh< zog%s8>e39F2@3u3oCAuPP2P&&l^`Yim^BIFhC?f()+@?9qyyv9Q%qc){(&EwViv{x3#&2~+Lky7A42Q8P zY*GgPWi|i##5Iq`>R)z+g|QFlKy(ExRX3ujTz^e=Y2^7+v;(95pfN5=BwY{#CZ~Qf zY={rlFgVy8;G)z!`Bo%M$1&l`$KT|Fcmwq67ah+fA`-L>XpSm z8tYJ3??)p60S04~vAAF({m>I~T&k<6i+j#F!+h0+bq5^OM>i!pWtI@G5EBP|)u%FL z40aK&SLDKILNsivYh4kvGoE1^vfp;yq~Hzc{6so}ynE@6zxo)4WF_~G#yi4&iEp}f z9aAVymKr3n!|e%$368=AaIxOiA=WQ{BFdgyD7HXNAE`PiUdM0wyv z^KA)T8Uy$MuDTsJUB;5;iT!Af<`dOfBq2!rV(|DQuC`T@tmO9AdYJp^snNHa#SqIl z*|vDAnD_Q%ks`;?LPJPP8OBMZPcgvzPt0o%gg zNzq6>N)xzuSW1d!OQmI$@i`BynL;1evbYv?gQASCFy4OFdel_(8u?ycT_BZprCdwt%_{EB zl)^SG3IVGFW!ze?IQoUmCwgn=2#zBX#`f|{q75Z8zaHJ47?_Nt3y}2$m%5xfk+7{# z2+CD3HZ9JCeLvSC0Q2|;v>V~Rwn%ZKPNldkP2l1VgrEWueYBlV4Dx!3R)7pxqd8$F zRg(Cjr4WZg%=ue>+)UDawxUz?H4|ojXgJKNE4n-#h1Tq59jQ&BNrlki%NDSQ&M1G6 zDb*$&UmSPCNSV@BOeuI4RVZxrf2m7kB;JA$1F;POE41~$Pn}BW!s=3WbEMf6x;N%^ z1tuwi=6ajY<|5^!^9Uy#sfW%{1jO?z&CMiuGSUpwB9-%7waT+5S9c!o3)r7Hnn5RU zi}RQ~au?l4$7;xL+=f{R(~;^w+1X>VoW^5~f;1R7@$t=1{a1<>{9+U}7A8G@r{fo{ zFQ(v2j~b&?%XgUE3t=M#Q=p18B@UvG#FcX7WSoC!bJzaaGdvh`YN;a4%!K@(T z;2&ui8ZK4zZ>zj>`1a7b9YClfjd!lMIK&bD`M8>&RM);&(EeP)BySq#2$u!o9%Vec zL7m_Umj^4mZs!LN`~p0^S%MFABPcOElgj_#oOxemw)mMpCTur>%qpyrS&sSKfTk?O zv%X#3>UtYr=6Z2X0e$NfRH7~#5v!8@X2udcYiPEWpzcuz3mVy$KR0e5hXL@w7)~?( zV0t>KF$=&$Jc%NvaqApZ>pkgx%Ir1ID?yo(KbThG=!Wn^tOL?f>N514nqA9S2v1_X zuAa~==~7blahR*Zu^=S)h%&epu~zHkIcPD$%mUWiavi3{!aJ2jcbP?hX;X6ZG%k96%%@m<=5 zc4kUJsah>Nxc*}E$F`(Eq-m8OD84Jn>HS?8z+tfb7DCA~)2F5X5f*0hCYT-7A@4l! z$9Z+K6$H_>zSPYzP3;`8a}~-DN_`-hcfC+};xSj)cUTxu%#-3j1$fvtcy5nKl7g!; zz8n_B$!&JY{|B^l2X{eCw=1_RU`TK|%+8fvKX5Nx_GOS8{yX<`c?A)x-W?Zi#W(IV zecL%QA=-NDY0Fzv_+mW$;gPSHarp1CU~+5#AVlZK2t2to z3Pzozeb6mhAJ}G1PKdtn6@}fM#|wFS*6-=z;_Ksbib-Kl6dbZq^M{-_98oewO3&&O zaA>IZC9|F6`5FnVanLFlvo8zoZFUMZ`pSo+8wYM8)zl6r5>6VX%M7dt1nBlD*6?eP z+a=L<`RsU)w|;2>0e6)X>$i1(?=*P$V%R{U=>~)BfgpnDz^-I6VEdp@CVEBR|g%`!^(yG!;j2uWk9}}Py9C{oYt;S9;dk@IW!K8?0~eGwf+@^N2WxC)jU?0i8l7Q(m`Q)1-EWG zr*(!Uxa*KSVY5dd6&#nmr%CJ>Mc<}AZ5g^}tH{1HA*5s54oLb6>@Mt6#@^Fle5n`- z*8?4LCoglj*ah1qeJ^mXV?5t9&{MnSO%s4`S|-5ux5y~wNuuIHBMkfC?Dt63^v}DF z)$^liSIE|$y}52Pv!{F^0vYYPSY(sQ;wc%@Wo4NJNku9?hBwl|8?(IGMW~%TA>EDC z_M{ngVp*LU*O;UZNxy`0iRM=9(xGIlQt-c1Q!j-arB7;gq$WWdHBY%GE5|vyF@Q@f zQdcjW8s|8LAEFoY9D8PC)Ic}{Bu9&h0A6xo9h@jaaRz_?d`!aJ$21ScN`R@(>A-qW z4yFwFC?^Q=IoU<(4P>|fQnzQ>|2 zl)W@gPIu1GLR1iPVUfv}*HD}z?&H4rvIINX&TuD94c~^qUws8a4HI_lt+tz$SUEDg zXHdDj<|M zzL*4ya_E@y@x&NDwYNjv@23Y&hZMJ6Elc%+d@hK|k{ zp|PsLOpJ)>OKrp%-r?9OZg|rL`s7bHs3AtQ6MJ?J#vbF>wpB`|Z)F9QnjSL*-;10DiyQMT`q_VD`0Yo&2kxqp=B!5q>ez`*>WYQ7Cu78SsZ=fc^;2kX zmI{_JL%I<-SSL9Xs6@@}L9L4E&b?4owE~0~m|X=MhQigh^z9C}d3|qE8bH1)%v}$k zaGbf6rHo_>k)_RWH4JVnLD+IVRMiKc3ft>Eptw+!xsfB$kpOT3pzTzWAFHaZ0Ag6l zh?Os;S_!fltcf3)8UrNXGa4cet3K^f1CY@i^OzL31ux)nhLBI{>#nIo z*j3$$Tb5^|?4dmYi_|HcS2g4uX7!~M|j7>HAxtcSHqHnqRFUXsTe=bvK;9LyjiHUvZ zo5mIa@JqC?Wpb!*b!&Qh`q_u;({kO|q~1H)TJez{TEw~%7dSTu0Yfd}#?>%+_DZw3)rGs)I< zUDt2q&M*`h-A~No^`#VQQ6x{a{ITu?0wOZF2e2({ktbK7kmz|(EG5PCY`Nv!7bF5$=))}9Vuk~Hr zHc!U@GwT7u6cE!T>`5jtaVjqF4r3mj9GUE8(@IN9`4&6dxGrB@GEOW$Q(xPhinPtu zxwmmYl2xQ4!9Ce4(%U;o>NP|X&Gof8?`WeW!@DGHgJ7}XF*8L799}tl^!dQ*&(uV3 z6NQBA8W3l)v2Hm>$%wlCA}?3d%LIe;_!X$21+$-hWwFGS?-F3h{bs;CH(02(X+|tU zXzI9rQ|p38=|9kC&hE~yp`$!*L?&6Ry?Hkh%U_Le@{s80V??Z0A@Ato{BIJZNPD-yi-VBbOex`P!LW;J(IgrLOzTH5HARJ;=) zXlB8^Y_8l1b8K+3m=gnl!^1RTt4+KoiP5nR#1F~q_q7Z)#V7(=`%P%HFp6d2YjR!+Aewnlo!MD?W~+t2$y|SNM{!sUvMV7C zW1xkr6Z#`LE-dC$H7NV}6k)3dz&zOp`M(x`g*l=y=nxLowD#FSnp zeytLRO4TIz(|8PG0bjGedreTIQ>Lyn6Bkb8r^N@hBidL+P`u+qnb+c z{xK!r<&!Tp2r4Ohay4C>+d4>fI>@?lfMnJT%WgWmd%RpcG7t_eoE2lZfqLTs%MXB zuhVlk1uSw3{LA=e&R^*2pg_&4_GVU5*xqrK_aH>d10c-F3V0IyPoX1hPGj#?Oh_*ncrwvU#r+vt8gdS&iAn zh<~MlCx+zYfn(RK-L80IO5Coc8C`*J>LIN0zL(Ugnb~SM@l$i-7jhFeAFUxgN2VU- z2C2rmm|+MQz2z+<1{QktAnA#cx%b$~PLiRm~S5%+;;)B(CnOrbFa0KT$ zY@FI+Orn#ZZ1*)lFmy23lcUehUi{nsCaSYrM+~Vy$LP(RG6KO$I7yGaeec&tWL|zE zg{?N(ACfX4_4WJer098Nj!#H5@QwE01knH2=SlV-6F~nre`n?q*&!<_0Kg0_AOO#Q zzM8>5*`SN9v!1viuofyL6= zww0G?Qr8ze@SvvV)+eDw$W985-ofv8!Zw}nbo@}twN+FbzoCVQBQHDlEOeN0<7Tl2 z0=8}8$Jse)Z+M?@)eK|q4p~%Idpe4PF7Z{?k$Dq`uCR!6wjR-vPnm`>bVz)O&b=#E5hZH>ZVb#ry$tdOxPA_E%Z@Y0h$Q_1`--jju zWNk+EXjBxaZ2WOy!cdW&2$6=ibrTC!>$K6&X~H*EV;H2cM%5aj1`$~#sMAjj!8%A0 zCSZjuH~FF)$fx@fS7W|f4^<VOGFod8MOz|`NFeNHJgKQqF$D&NCA zjVHR>MdJZ*$<-dj-+!44nGuevA3Z)b!uQy|k1M-4Y+kesxDvs09N#goR5t|~s=U-7 zwX7MHWCvcmMs_pE^LjdQh(KM9BqpL+VWsY@qAvrUI`nrTiVQ(b&-RCQm4UrTDf2SMBs8+I#TFKd-Zy=JcqBKR-i+Lz_ui{90| z*ecFxIU~>ZQ%r=775jc&~CvW%tbl0M^|X;Q#cW&k*A{9tO*7u&|r9V2cRj3)ad zdEWLd#(e4Pxy&dLo4m`vL z^cPn(7}QlRfq*>*+DdDqT&m|=l{gT+#8hR7lt8?hdOi}5YSZwVb?fU_Oc$%VFpi~1 zM{Cy2!w-MK&A+5=9elH>(KNbosgGV{9Jb&@TjS!sm4sZPx#LPBI8rM6x`N7T=^ z#u=0Hp<*F&Acg)kjRLy;c?}ve?v-W>6H{M7P-daSO?^-cx^mX>4)5Swg7Y=!g{xgW z5ljV%zgDaM_`F;Ce9>Ax%U6#FAv%po&O#Kt*oTGo!b|pvBRNxJoT;%YIQMRImiRVCY-S zR)#KcVnzFmUYL3jlr~%%hZ;b;Bu2gk&`sg=gRXT7r+bu_Wr9f~?;>zDv!U8-ND0|w zr{$ikYx?coI+eWCxTZ`L&VCNvASbM>xVN*TP3m;ot6`Dz>OisZFnBCt6PV%myE6D= zC6{*r;qx@ZhFolnSku&`DYIGzpYo5LR*9@!ya;dEFm!tS#2X4}C%SHE78&Ra?v^_i z(lr;P&%A7cBxI!2I=cPY6)eR+n%xBlYLXE zZg&+*-l-BGsZ>|Az*ME?&$Po*EoxsPFRwX<`U1HxvR2<6E7Vr#W296E;3Ky3Kv7VdfB)#DHgIUZI!wD%ZGb$FbTx2?U6!@TdaQ~ zz<0hQWiWXbDK|;~>#Q(|+Lf2s{jP=>M9|KONOB=y(Vf{ni1+Nm)Z)1_R9Tm2xVJgXfCV#ijj#$b`<|tVjl<=Gv0-O4{3Fmo>MxU4=19ox*LY}uSzOrH z)7Hw&0a;J_=*t+|{Ml$!xn$Q@IHW=XW5Tb7H@I!{Y6fA<#oowr-J)Faiz{7FStHwt zh`Ysl6>2Zl_y9Ig|LMX#kvb15@MMS&z%vG5vs9OT%^)OOr!eE7_VxQI7PdiF#HxNc zriC!(Ju&Enh5{BbF^=+~L&h`?Zc_3mdB}`@U5Nz@(}ja*kBt-Cp7+MTvLVDp(k-GV z8HzKi3UrG?SBtqw|0otHwgjLVEMPV|GSm%!z8*>b&3QUZT1PB1NXz;-B5jgm333m8 z1v?cRKT}bUNR{1CKhAjz17;)A-X@LrL=J0kq+Fy>5I86owZ6&;vx?;p?+W8hKfoB& z=sb1Q*~sHTz68_P(M(TT%%4jYW=5s5gSY$@IlTn4!`4~1i_Y*w7wA)nRU@S3^d=7- z6{t>#9w2^uiwuV&$^3JKAUN0k8~zan8(zb|@{Vxw))tZF6~&f?l>nkLPY5bpjvh3l zcQFikWm$!?D@Exy0M!BT<3 zR0tSE;pdIdKGVq+@>jM7hDtI@=@PI;l3H3&cme>sr;;$-;mjc&i>fJpXGSs>Y7f09 z$mlNf1?~b<*1*0u{R~p$m)P2c3is&8Z3(#`{Qx~jc3@A$S#&9QE5d@^P4CHXtZTaJ zfmCEde<}xy*!}@xk+s-iZiM0W*dqXI;EHMYjqhPs{vqli$qewqCY2o*&U9Xd6zO-I z)ofS_+!C!z)Q9xQGy#xF>x3cCD;t}P&6CB^5FDsCLsZo&SUG1UuZN%V++mohgJe-)*O<2+Al251O9cUxPRX&a}2+geS+^oG0T zy|h9O8{6eDsa6Av^JZcQ0kn2J9jFya>vNuM+zVG*kqLsXEdf9xsp`b~s=2Qd+pA`Mqrktm&cYthZV3v+Tnzdjps~-(>opd>O=yViP z1M;??7XDOkM_*{N4D~NHUdoo{V+6x5c|1h>6Sw<^u2KDN&V)G)d-In+Y4B5Bd8{Lm zL%<3RmXC?ICIP0ScG2af08q1z8G~1ZHf9>trRQ9#Q6&r$+TaR-A^Xh>yu8>Mvh&Oq zs${SewI*>~qbfsdRhu70^I0|ue6(M%TK~aF24$(7unM>9TJ%0D-nkQ?ll#5nj=D|sWt`aD+R97$lpC5Z%8q?D z6_hMy-@*5lvqkRhk%~ZvlaQy!(LLV@+k7ZFqtLyTQ>S(J;JBCsC52T2JJMzk^CpxA z&%enhE4pOna+h34#Jr!WC1D!)YBp9}7Z67v-_;V$;p1%Z-{ljIkYARfl_~eEAGURA zTBjI-Ll3t?7bD8qr+||Sx0}1MMEE2H%H~3Ky(AEO^fPV#dIOfJ+0g#Xa;S78%#~<+ zbou+xpamXeDv-uNg&T=SQ*-oN1(38iTk*UtPul^)?=A(_0*Nr^XjSCjp}vW3TFJa2 zORlN<-*lH(StPs0xFy(Xu)(FLBv&UL3h3Ui_&#bV^5Ae#Yzjj;XvYV1G?!=cRjV>I z^_}%>F-!f-T+wzsz6zRL3y0KqZy63MXR^P9A20}~vIBMy3eVc#3{Y*kLZHW!qh3@T zW~w`-CsUI~RaW3xoKZ{zS(YktJ-!6k#55X6JAkgqvNQn*dw26Vm90ZkcQogX?BY< zbwVLVcEsdQ6T}vxA+!UL=h3iTU)89ZnXJs>pc(gLHGDdn@jtKez1{^4LcT=r7KM-ly8#3l`J9a%^w zJC9+)cM`Tay+8>KtW(lcE|J3BObHG8li6zic0?J^k}^QNqG#mafCj(5y9|nW`@vHI zbMDk8U3i)A&u1)McC9W+so*j%Fvq4+Ug@UMnde&}h+<}za_3n-An*!Y0j~r3S=~@Y z1I`u5bx7Ae11bU<`>bxMiU%*_MOxCW4qgD_Q%Q;26#;MjF!QCZ!VWVLhTI_2MtvTs zl1*_M1J%M4D$iV6t}OT|Zgt>g*p%zV(zAt(8l=X0j!O^G}Oo_@vqPbGhB#J44yP&$aiMoG+a!C+(RAS4Y&I>s8aUr^3%(a@gHcvzNs^-?C0Fk5Bk!7iYJ1@zFtuHC1If z+rD?t9g%jR_g3W*`?0jpMa22~E^^d&48}AyDeMWe4-c3vi__zlUVZYrnOhyn7Ij5*jc&b1fz+Z z^+h8k>WxjS(aW8Ea%@b$_B5bD@Tqg6_dLLj_rpA!8s)>ggR%{~_H{X|*I&4s{pAD$ zqW&s~w|46n&gsnQ@zNK^4h(<)?b2VzvO~N6Bt{dX&>6iL9V%{?PKv4=*$`!pNKdw{ zgBpysl+VQqfH0)R*%%rug4m#?rOyLDNOh4)X^$F^q1Dz5+PL^Ku=%eT_2DeBoLcZUIl_Zx+8 zm18X(ac0U5+hya!EYK=8Dc1KW_XB2Ikh#8}8o>_-R5cV9B-LH4SOEu_&4YRej_YvF z$M6rl+AIin^NS&Om=`X_hY%r(Yy+|YcY**#q%AJlkxgl$QA@_Z*XLA?5i>;n(*!dp zmQ6LPRE=PZG1>?6PR|U{QgiQB11ikF-bAsu$egcLfLOK{kF>WBM*@f1Sx;0v(^%i^ zIIt;Dfy6jp=+hkuXwS@AmI!(_cC<~xY_xEfUBVu|&iyS@dgufLEJm^s|CUQ=Rykxj) z*>V*T)n_Alt^>h-4oc=l;AO$6o?1|ygpH~0zvOmBr?*mFj|EH#eeh#VVkzX^>2dPc{ss*uvL@u54Sr` z1j!HvUzI}!d!WOCCnB1_2$?{vVQR1t1KpTLnU{a@Z|gs<^wV|*eA|kneCD>%FL$Fr z$#B_vCq?c97kcgWKk`F20{!gcvZs{TMY*T2CB}m73qFa%z!MndWvW&%cJ}KP(8$6U zn%cM7rnvL5EdpW#GYE)by+Tw`(0cIZgEY?Y=GWET_X05GPFPV7FYNI88=8B7j7oEn zE~4K-BjlG%o2&RH_aP=43trP3`+Mi{@RYzR)IZ3WHYk|N>2<861I+(fJ)Qee^lFz> zjK9t7Mu_c43VAP*XBAgvQx_;e=f$l@1RM2PK3U>uBgPJZav=5mVkQCe?G8r^42Fg| zgc0%2QKpJjixOE%$dMuGm0s?4%#iAihE6f2i5Z#oO$u=y)@QU@hdU(C za53DJW;bzen&3_sx-!Bl>CeDM`6NtVmh3nP#~KOaW0ZWTYI%@(Ca6=B#)INCR2AWNRqEkUkKfa&tkKXo1X!G5f)n zMH=Om`qx;KB;a)G&kD(2fk1-}AtHK68V)S$Fb@|;aNUb9;!HyH^BW)o~jU9 zUw^(?SSc^xN;5RbhTq!B!xY@CCTKR}m2_W`b1dUk^??){>xcgZDnLy+MY+X%LW`;c zx_+vl#Ja)?MR`!3X<1n%WgN7d(a)Ypf(~3m+7rVIR!e1b>*lV`S%5&?DDYFcmEpw5%r*qT> zlZB^wT1MP1^DAxV3u)&_b%p2sKd@E3o)5&Wdt*7!TZ+JokXu6)tIG?-jk{%KfVx79 zDLd=7z*(fQ8H>boSIt`7btgjPH0v?9qngi}iv-P4fKRk?slV;H(oJR{tw|-Gy%|h~ zNbm|zJ%n-HnCy0uy?inOT{-}p@JgIfi9K{J@}@^12rdXa&pSFzS`UNG!cxE`MEmI} z|4Mfv#E5dR#MSz_Gaq@7lss(m2~}tOtlRc>Nn-iV{)+B~3ulVm1?LXZ#D3!{u6S=u z73YrmPs1j*4#JKv3GRWw{P^D36Ejkp4CDPxnrxU+FxmbO6&M~GjC?ucT0NvG@75(} zg6)=xm<{}njo2wjrGN;tia`5RDbudTcqt4{_5!V zl9(GT6zh%8RO?9kTe5T{hF}JJypg@RIeRo>rG}t{$CCjV1KR8+aX<%7yKw?y=71oR z#=MY&kHs6K&TEbcn?M}fBk7Rot~zvfl?n6jHadHe4xFT;2n8o?{*zhTi<4mPBW=~$ z7X(>;-!_fi#@0W+fGpH`pqO0Z`gM=zY+es_ZkimsK%xqS_T!wNsGRo&C)j$d_rDLl z9RaKo^vgW@TW_Ri&WXbDw`9uG<2!%qLh9t@h!^4R0=BoQR{7!k8H%;! z)`29vu3*k__x76d`>+MucqqP`l9^!;@%KQ5AZf0P7Mfx&$EptiOb1H%)$~%X)}#;u zp6`AikzF>|vZNgJrbk}b2*sddd^P^A5+NZ2IW&^-IHU-(+%7#&YDyzdRK7!f0d6+5 zf2YM)f#(roql*N7fDB)=;gS8v{!jZ-SLnqyXA~b735*NW{0Hnv&L1aSFr6@@&%v`> z2*E(@t%&7b2F5jpWu3%8?sMN&badD4=H-fmi}?coO0H3nAK5mNBqd|00vv129Aluh z6Oqd%ThIr`4C_Z?vQJLiWFH=u0LHbTLq$bwvxg^tit;}X-rqwhHNsI$^%Sw^6o*;s z6HVE}I&caB1H0X_F^#dcWy2VLzfC0FxblS+v$3lceMKt(-#PAD^JleW1`#rgb8h#h z6ciJYceB;7Oz-Sp$~H2oQTILlni-B>_8R5f@>34lsP5{iuF9xodZ{R(<0APsC8z#$ ze_Vi=9>8gKyB!x=kG`nCt3xP7F7iVLf788wXFjhEoSI~@=ulWz+5=Pz-hT{`-jG!# zJV7|90lQVd#6u-H!=Xqaxk98UZ1#S!awTsGVmWT^X`K4#yd~j-^G@<K&@xXA9zXU)L zu)hkh6+$HPT)L=d5yoEE@1L<#(D!QU$63{{)k%<~RyYMlCg=sb8$#LYCRx8Tte4tm zGSjx=_LqbNjx99!TLA%yKl8_2DCi}~1b1Knouq!Bvy_ts^j^Lcj;_PkZ%Md-3?2E8y7> zh9$filYsFR3X*`$89JWPam>{?DIIX9{;?SKr3Dc!WSSXA(B{d)Tw+gUJ)X8{9bKHW zKGW3qZxF^~9x3B+{GpN}WP0eY{);s4b7+0FGm{d`wlrX_Fpxx@c43b;HIf(?giZ$^ z_G&qh&uyQ<;3<+w!vsUq3N3u4gvCsb0$e3pW5t!XoW{vN1dJLqy26o~G3ZbHNxG!4 zw`yI+t+rLG05>hs1hks!70D0rl0i0ju|CNsDR?34G=dDSzjXhQORvpQ5DQ{zHTU#p z=X4YDYnnh&j}<-&!_e2Sfq|)7Tm^T*2&X8^-MY3}PNg$616$AQw+^u2uc1UUctPP1 zAO0pSL+FuA2$zo@ZZ&Iu2DQ~etJk++lQ*^8J2xUjMd(&?Jn^1TXYz)^g8^;s9**KCIA!rQkh(lhn*I_nNS7lwMYRh($+NmLQxI+c|gdLFOLlPfMxwM|nDUIsV$ zwBfNn<{-!jgr|ZLNbX7sxG6^RVZMQh`#`_pM8kd~e#InO#1%8gNLc{s#mlp>xnd^V=-|F>&H};;_*)2xuJ<8$u-p^$%c{RPsEHQ7l-}Oi2;|Io{C9 zTr*}-(kzkNdW5o6Y$Ct%hK9PZ(zK`5eW1!6G)6Xg(6mdhuJFy_E&-&+rHd%Y^L{x#?|C_v>v}jdyIG2YU1E4+{&}h-7#*3Nx z&%XUrSFH;b$~^9)?zBA%5T?E?WR4Viu`jvWA9jL_t3vKw1pezC5I~(^@~+@t(H76| z@PQkBO|Ebq>EgC)+#d)C!=-q48boQ!#9fjoTY>8ZczcEIX5}kklT;|w0b7Nq4Vu*y zZ>{&uG8ty`n~@}1hw}w^ZTWmb+J!b7=?jV5!6|tHeSJ_d{V9zUO>K<-aHAzvI(0gbnf~j5NM9i zTMg&6YGdI_e{9fbP4(e~_2GG62MjubdNNe29n|V1{=ZnXw1niMQ1hWnssZCjq>@{q zcM6b2@XEug++b=8Ur#clkkrG_!MK^(BOaaIQC=Pcn&SgAHOUmypXlcb;I~UHNGg@? ztU*2^16b_uGYFr`eHVxP+~PCo>BAoN^DDFS3mlZ}mjwt#^Y`20X2>#Nam7Dj1Lj?`<^%75naFJU#mzFcY(R7^F>7E9j zxBt4*@Ax2ZB2HeK_U>xN-c*(2lOJZS#w@V5QHDu+*m!n{9=$p+tZfzvr(;DE_jZNL zQ%^yS0Y^p+^%vE zFV~}#srTwvp%KmSqy`TtN+3PH5qES%G8hxCy&yNzB1@?y^%_N6R4jN+bd&v*iOM)t zj|+eDe>x`?uZ%JL@K6>+zEAEtIwSe#-zPM6D)}mQpN>o_nGoD-1!sN#sz(K2S7J%- z|Da+EbL^SBQ*(0hofgj(dL(R*3_9Z-yRm^OhCtN|DmB6ZLfZg5u}_}1>Ec&Wy50B47Y5?&N5JUcgnsl_UzzLkQT(k%W@MdB%3>_WG?^c! z)xfFga8Osxt;yPCDy7-{b`KNt2VvyA&mK8O5 zBHyaX@>%@WXADqx+N_v?v)uPeu+1>z5MPZpl6U|Z;2;`I_$F*v0JF4~w47dVhOvv& z9bFp{>9;P;=fpN8#(^E;L%TR71Sb=dZHQ;|<&cP<^u=InB##cuC%uZm7!WU7Tt4l?-7;H)ULQF^?BX^asK|U+sb@At0f%#cNm}oVRZ+OZC=a0NO z`b&vw#&usDYYE)bkSotxn=~cMn4}C~YxT$N?I~jh+7@-HHeOP2tGbZ%R-(9z9i;!g z++Tg8AeoOhMyWeQS{{rnuSAt;IPfHruNgGfu%1IC6%~Y1$3Xsy$8#|=8J6r`DHI}- zQDFiBYWDNw zo;A#h7Sp9R(4mu3PmEX=^`fQDNVcY#5}6 zI}ci}3e?hC7G;L?QE*UUi3B@x9MBQxl{?l*EU^^iS6j}`O{{V|+|-FYN^1j%F|gY9 zq_y(QS}WB=ODhG$y-0VcJsxyu!^^=U0$J9!OdZ^V;D`RZ6!}W+;XYsq;|Kv)q#BQ# z8dDp{oXMGJJUondm2Wn<(4sM4(*LciW~1w`L3Ul`w9HVn<<}lm`7p3NHfyI16%rd6 zg}&#Afe-n2L&7^6@_U+{)jDTz$LC+tI&0Il1lrbr(j0GJj4!031q`h}s^S4P*BJXv zfK;l9!BqP-s=2OOs_P)xxxijhGZAiiQA!O%2Tx8L)~86Y+3)g3s-lC_I7>n~@XHwW z!|)g9t(xeF5@RTlxhFL3H!O`vHnq3ZY&!%);e2VQ7}+ zto@*}AZcvTn*vAY;x1)iQ?ni0?L(}gaj&X*%FaE*f{GzNQD6Jr8@e)V&*w}|i{AN;a1iryDpuwNy z#)kGXbi^w`PUB?JU^1lpS4NZkJ+S&j#9ulzH2bV0i7Y6&D_F=w8cHH&@HzaOI?b#9 zpkcgspsDhjf3vZ#mLW8*3sZq~*+M^f^2fud@O$=Md9iP1q*c0 zw_#=S1C7}t$7&S0ucWu55Bsd0H~WD{tAebL>7cRywx`{QGk1K{*9zG^cE?)v^_l#l z*9{g=?sZed4$A5ZOhI)``u}uzU4J}*tJqAw+R4NzvooT@D7mwGFFncZO%uEW{m(4;~1FMF-!A+R*wzKVE1^6d?ibzeK5dwaBq+e z6bY~JBPL)oG$vmq#<#x`i}r)~0sVw9KM^HBV@K}L^}8pxCTx2~A^^t%MgJ*lSGb0@ zon@;kaNPr;9l^SUlL03{*b3*FvjC8L!gtIIdnv*0=+{N!Bdu276O(a9$RL6TV(lym9E((0xs0;n@Q(zKpd`s|F8B5w`O{?|j)=Oz_G?EOBi%Ir5LXm-8I7 z3=hC<*6ZeG=z^781mm++gg9GMmHAi4e?y6`OL4=$27XaQLDx zTyt)^2S8SyF`Guas0OL-ExU8w511YUxNmX>09bNkO6BU=@Slz5p_m~WAv5_@HPbz~ zi}+ceZD9wE#w;g+_O~Jvf^pV!eRltB$a&)U_7${zXQp2N5Wd4fFkdssF(zo8mm+WJ z8}$(a#kg_5JnNxZ7v@rs9nh2tb2Ek915Wx@2zCPw;_^-^i;j?>P(O5ZX_1{*Bk~fm zsLI9U0zZ~TVeZ=XBAFZd7UUOJc;{Q3*aj;{CP%^OOWKR#7U5jAK3}1L`-JVcJ;s#} znQm88%uGKbx)v(vIa#Q)Ww1|T;E5M9)i_&Z7=O`s09VF+WvOiw3+%HuWv4T_BO)$? z1sA5%H7AOwL?OpSCECq#0`n$yYNF%o%IcL*;f|ASNy?{*SvBAHrL5(zasU|4r&AZh zCJ^mOF-k^tt2v3t;I71arbKPD#brCh5rWce(}Jr^NHOVZUVcugpD01zA<))A!tKr00IV(V5e`JR>%S;_ zrx;P9ZsE3V+wR_N8@p}Wwr$(CZQHhO+qVCG{)d}<_nw=a^H518m8`0lT63@GNyd!2CBgzjA9u@u#Q7Ie)gZf9b~M7O z{`HI$-t|ov_=OFtu2)||X5?3qVx8dVNR03@${COe`tP-&0jl>wej^hi?+JzeL=N#R z-2w?^j9BkHg$OG^G2;Ec5$A^vzqW4o53A#w zFX5%)L3KNw;x`3bck-sbidvED&M0U8Asio^8|DN%v#|Bk^+z~gsnLeXib#jE;-blq zVEAkXNzHRkD6$Rye)P2IpWdCvtD>~E&NZ$H*N;A(9>x0&`Ucl|<+kh&+zCQd?!5W3 z19x3i)bx%V4}}W}*1AsinC*lJ96)XtQBdaU%q}Zme+p;wSo+G6&ZcUaV)@0%Lgr<0 zPRK`SWK)*>TOEf=nSnXcE_J;ZWv+(b(iAD5iv;P}?vEv>=#k_xaas6VP)M@xjWQH{ zI73Bxe709P=CqHA0c<{=9+PfgL~@W!{~DNy;@`|8+&R~_<55ru9i?BG_u zY)059ozp3PkOa-KRJdXoFo^Zx8zd}Z7DRgw#Dkaz2ir6MPG*J1Qe$Q|g;+W{& zSY-iEZx0pP(N(gRAB+sy8E{A4PV!V zj29v$qIfv$lOED}@rrjtkH*Dbw9OPSh`Z6{sd>?0IS=k4jlr~>SWICHpMfwYA*Z{^5piD>P0MtZ($c{|FtIOfNB>}2s zDSkr-RWH(_w*)SM3M(lNN}{bE9+|MK8GhAazf>@(He@dJegIu`pNSju0+`` zUd7(&j4rw%uKIARd=-OyWMda|d69R06JIGi;7&czf$D#Q4xJ7wcP2{W3zEcP0dmElBEfU4DdLo0+d)(Ukf#SE8*Sj4z6qo)?|Aoj|l--+QU!R8AX zBeSKNQw{3e+@JCPGvz1`jSuVr0{}3g003b7pQjv7`i_>mjQ`EC8eeYpNsL1|maF#aa4(I&}=BG~%I7#xs<0^HyIq+g%m^txx* zFv4^iPzR_PKl3jS0KZ57DTAz;Z2vF&nLQNnkI!735e%en!zl#FlbL=te;+}62s8xb zRbbvA`T>v;f@1?QsBcHs7OM4!lhN!mAit)^$OqjE&f636H#oZ_O;7=m#JC!WJ_<1m z3B>&wfVKv713bU;43G#IzxtOE@DcJy3i)49>pCe8ZIobqLP*0Qok|@$PzG?US=p3G zA?!m7Rm{ZM#G&j(P!G_*`)un56MPWaQY*(WH&C&+`_k z0?-USE=-p(QmwAcC0Ay4a<&cHC#e8YF(2_Cl^iExt?t5~mR68AmVy(j44hBEk&ugO zMZ1rt?TFT_d1_NIqe)w%Fz`^0GXDTZ&aE{2C z(I9$M>|P91kx%sKnY;|TVT7y62Jl(kfDe&$z^ML>jazcH8}h++%^Ycm>`8<)(zLFM zz-ww|b<&b2b)7sNGzCHbx~k@6uUT-A?1dsG?c=Dw>tY7@)!G!G_Zx!U$P~Xm~a7 z(Bd*dfPOEAU0W*XrXd*dT-|Wrq#DyT%hsQ;jhW98(-p-S&OgLVta1x(9-3HcN)sEd zKO#@+fi{au!OSCxtpCxJ!Vked-_s31rls2BixJfV7#2 z5r)7-Aak0bGybI`ViGy&l7h=icgJ?30<`EPto}yT+HtBvh#B?SL7FN%R*nvHJ=S%WrF4CX}RTky(w=>GvK5APUM< za)||cnIBH-`Q$4ePaF!dbgCI&%qS}pcb4q#nO`~9wt%gGe9DJQ$324zCD^Y9ferLA zG)nZ6tyCSfO>jCq_w7OumQIbylMk2N4U>%QT z8CW5Cm~8y>*qAYMl|{Ru$}cD^(p&5U?W*qkOkaBYV)0)9?}>Z!&Mvd2ciB6aX5SEn5*Leq0ih{K#2Uc_rH!sh#%Xr6M;M(bCis-?bbk-2S z422J#%4}Z#3gPr&i9&1tDW^XcPS=r!s2wSpE=0xN?B&@~_@W+BjfXOMK)SMY;Zzs! z4bWwEYb3`Wg{@9hQ>X0;uM3UMFD`|*3NSIUx?N#8S4uD+>WgYfDy4<;s|j%jnCd^= zlC`X_P@oSu+X;U(ToWvgS5WHt*zBNHBtuK6-$QFQfCYQrvv&`kxY72Y8Iaw*)Yhtq zdV%zp{@Ox+@o7`6%@klUR)QIOIpfYCymNlENIqirX6)m?)Z^pf7{>A)v!uSUJnr}qJ2q=BVV;lYD%*8+bONVz~2~nIr zIkQ{r8pR{6uHLjyi+)W-2s(-9IpmOkGq~w~=~A!Q+!HG9?PC8Kqua^y8FAnhjtPev zbL~MlM3FT@4pPZMlzB>1FJ*OeNGJ$EgVeL5Q7whByo37!nU=lc8iH! zfE_P$FG@ZO%q>VY)Mh3hSPT0YLyZ^{obsR!W*+WD+AdpH8Phr18E}sEuuktG+fg~*V!e% zJmOy=xn6avm4PDDd(m{RKqE&cZOuZNs6MHryi%%=te~e@m6Mg#ixVpeSlct6;Ou(G z`=7C~HhR2j9~=Onhw^_P8=3yQ*r=f%yUB{+Gh3_oGK{1*h7Hbffir9pYqHn`*`awv z2mzx}VC_OGPjLR+A^hVR8cLg);01an__&ummTr54DFG$TI6``1%-%J~#7G3sK5oFM zvtTB2q=rOj&WXK8jZH$WF(d?IM}E$eTzO!S1!#((PwQEWH@^*dN=+CT2WTjvKmjJe z*n_1go*>A-Je$8UY$c-j*a@#R#*Vpl=msc9C>cCdj$@Q1O)>XFsG`9t_{Tlu8Vvwql|ASaB2pR4!YHUlYL1q}lv}U-CvqoGIKyxos6)p)c9ERyE7@dF zQi@ce|6@DoRzp};i{a+D!29W>8Wqzhl7y+^XcNNxG;h}`B->cMJvfds2l3;drkx4E z)2DZhn)W)_mKn&~KI$OrFroxeKBdnCMM|Z$GRh4!=NK}XZugu=_?LoIWt;^=`Ulqs zJ23xAxI#b~gMbkzL%g=P_jeGK#7<$GyX8|8_ZQEnd6$X{qMRCy__0)Xmx1RPNRoTP z_Ag(@YPpiM0uaPYK}V;x->C|dsh4AO=YS^odCbixQO902SO^_TfMRI-z(35?+ts|m>9YuIKQojlf0EPfC|8HiCs zoJpBx(qx8z?h3(Tgq^&X>H@0d6)Oqj!6iarCh+~Nk$6OBNxUM&rJ8I`z5xD^b7Ito z=5=39MtHCgUG(BtMMUYz52iP^>~VK|9{Y6Xl5&YoDB5h(&yk_L6#*b?@{1dNwhO+e zU#Abm#d0JM@2jgbb49dKE68A$mV}Wk8ZK;2&~-wjAZ3V+jtzXPbu}!k0Tkpv=9=bB zuY!u`f4(bZUP}1rB1Sp;ci2{~v%fFT*$Q)KE-l@3DxFeskRo^OO1%2sNa0R%N}1iy zh`qUAtz%Zd%KRL3QyQ2z*^avfHmD{qtF}-wiWWVFG0U_o2Ul}C&b=Qs_stkBMFOXR zU}~VNZZ%s#tQjyM>qr6wIZjEE?kz$cVVlOGf&P+spbN{HkcDs_+mfgfi}7xMj~m+A z*wPx4i3Iw42SDxJd*;0c_BN>BE|WDnBp7`4oltb>6`3A(d3s)4$a-=&r{yTUEd&xo zK{uBwAR-ad!XlF(A z2L@A-r7y|h-x02Fx_4`XltXGIa}$o4ILS!5=_fj2CkB7(N$CfibY<^6?slA zz0_co?ruD{C%oSl4+{UygmcBN)(%XMZ&ek0VnaOhBa ziwCFc^6GlQYJeSrr^N!yna6cmgZ`MBA(f4}qHEu&nnJ~FlembNSZP<4R(c(-(o&$t zfN{cqNt!@SsxYDCeE9?qQ;k7|%`-9NxT0i-2l3g16uX;eVV(_3nL7|=IwNibeCe8I z^-}q<(l(Q_rS*6>39mH1#uBtGd7-V~qR&p3qpU69p_D+Yd$c3p7kRqra7kC~ryju1 zYyb}~_j5+nxHM;T{m8;ermdyD7J@kM>V_6pahIY#aw6&@>tgs^C0_}D@+GzqEZ%{#`E9%g zlqANStZeO?;>51_sn5eI$H-yg7)PP5KfV+gI?R-w$8BfWRSKk_<**Hj#{q-KxNh%8ivBpi3x zC$r*?*02)--2vlZigncQhf{imqKp~Z*qg5o8k8L>LZx% znXG?12zjsg6W@qDp{s{t9Knl!*rV0#x2|)h`{LZkPRuCV2HB$px0=WORgQiYZ@XLJ z$9M(b$<=ko1Nw+=lj(JB0eXzpaXamXZ;0I)f@Zp1b^*X z>{EQ;8{k{NQ;s$(m`|9Q;49b?9QCNmk0&)r$2%xLA&@_h4HTCD#@CvG<)&;$)?_>0 zGSfw!z@M)q004H9%D*A>>w35J2QKpOa|H-v;9e{L26i0@A%bN52xS2{#XP}ZzIb?z zGTyt}0hAC-B;5Q*w^EE4B2h7|(s8h&cSY-lKuwIu6!V5?bW?I392jVZ5ifUu=P@$=4E>`KVGOJ&;l1cZc~ti zEUx|B@cDd2i^^%oyNNI8&ZqNXPowtvzuLyr1(&gMz4wf|u-$_3YNZ$zDU}z&-&4zE zAXJ74FhkHOfLYxv#Fw<;1xJ7xt|}nm>KWW-q3FTtd`L)z07{0J)(-?M2qOGa83Ag> z1kYt8EB;tTZj?PrYgEW+668IT-J#b%`d)%>o}qZU1L>s4holn(p14+Va0yS`X|*5T zL*s{YgN`-)@p%|LL_)>1mKtrFunRiE*Y5MGXS@tJ6$0n-viQwt++Jt-blsW$NZM^W z6ZQQgP?%p@`yWb_fo?mU+`{(|vQs|N#N>vy$)}lCoLH!hiug5xB5m8h-i=p0r(DE3 z@}s$l%2(YIe6@K5;`fg8Rru$=)Aw=!+6tgeTq+zi?p5xpn#{ck6ND z&8Fg6gA^1vwny$SC0QuaU;%_-Wjf%{D6K4jc{<1aAdy^Y(LON&8PK<(650nh74-4| z7NVd0g#G*+g@}m>%^$+A4cTVrI0_w6Ol1~lGV_YOu&I?^7t$kwx2)s&iqhSK_B_r= z=Kv+|*PN_uLpXz(oBkuSqeH3$nS)yZtBzhyN#tTv9SWTB{^v84pGfS^b=CKn#~?1u z(lPAuZ)?2q6RI#g@qn1B``2nuSM`dPnul{9I1-qP^>i%=fdbY=Kus{m5%v(C`AM5N zrmz+dF8G&B!MTrDmiUHTmAOlmiUlvJNNBqb+#MU@3{MGqKviNrn{39iI8ylozp zfd|^x0{akPzU1M+(XijUNh3OfHzP`Fa9}I(k)$;muwY}XO8#ypyqGTe!&A-2& zkGF~jVjq)$%cgBRlCBq{8cU5Pja!ILm&S_~+!F}29FkBHl>=T-X5%rPKeYuGEo-E) zo?oU(>#{zKm4MSen2|y8qddnxr7NFi*0`q(7s#|IL~I*tfrDLxxoO=5e&-LmInFJL|-Oanta2U^y0_{u`d-LWn(QhndmUXv!U zb^yIs5IiIjLJsk?C?H~-sKpeU|GUz82k*zFZt`tC@0-F861jO)@4bUgn;h(wF-`*I zB;Zuh6$^llpn$JUqOL0@4=$|W4f$+kWh9}*Vc%*9=h@nvucm@p`maBHN{v`y9fAM+ zx)tJq&!#6M0cl87O#-4z*ft|;F04B;A@qehDNTa>=`Qsk9ln5k%Shj(HNt!rMMh0G zF$hL%1He8E1618*ktZIx56jKYLm4kAj zAVw+d>DO5y=ppwZDOA3>@MTM+K5%a!0fTTLZXhC@`7jIv_ko0kSR8~d1>j)@P%~Lj z4Ds+SOh186Z%?Gdi3S4)gMv%IE*ed|U#QjO>D&Sl+Vp5Ip`zdf(uT2bG zio-|(bDfpZj8Y;rE#$;n+L*0S@` zKPK~S05x293)BIUXX2Te#&+8G6%{^{*7`W(!Oymbs6kQ+g!mRZ!7mPwdz_ZjizJgW z_=8oH$Ph52MwH@}vxXJ?vu&*G$#4rGvQM4W(Pi)yQE|+fF|1N zTtHBGjR*&O(7-6OD?9yvd_a3g4j{Ef0+#AT^bYtQ_G$C20n8A98vdk7Juqjz?q|@$ zpYjJ0^&^~YF@FK?^Y6xj#`Dui8ya>a>#xDOShHuE4XTSDSU=2-l-`R^zU)vhMrCOO zwHZft|);H*vJuWl`=m;J9spK#by*KyXiT0KeaFA(x}Ym2qXwDTzt{BSh011`J=m8WKr5y=tfF&p4l31jJvjVP&SB1R*zQMo%(O5uo7IYL2wzR6dA+`#*GP8@!LC@&X#I1bP7 zxl}fcbSxnIq0(XMV7E2B6eiWUwwUMB?bN1n$>SGfU@b=0{v3oGf#p$1+%r4nu7s?9?w9BzoT&9)}=yvOu3-0$qBCqs^T3-#Qca`9_eVAetwTAeu3(k6# zX=UK#4%=~9#7%@Eaz1?&Jqs?ylrjpInLh9oKF%ODI3SiDiBq++N;_xZ%CF@Z5>jfq$JCo6MZE)Fec}+w*bhy<+H7M6`pQd{3sdL30g;+dKtx zK(%(swM=6R9#;H1x{rU$fIF!#yuD*0lzACpCX{9=9&cvu{w#%uXp9z;U8j;!eF8_T_z8M7zoQ( zR2zcBlp^fQ>xQzCyj5F5cA6DfLF1wbDJ2;yk z()scdcwgrB7=uo?*dE)jssWpz1J0nQt2W_$+;Qh=%)4XFs@;-dNHqkquv}i}HwpJy z(!!1?!-Az2Fm|u-W5$OzhR3G}=M?CIR5DG&%AUj{6VMY_PB&N+SCHl6OrmVL67R0} zLhU<7p{$X=y=F7&_@di6UylFz7<>~UiKg8qrh$0uh>=YFJJc2(^EB>wTdOmBi8&Gr zcKH&8-6%cN%qHUDT-UCPXO(lHi2E#lMd1kaxxTh13}qoRlu7Ne%FgT(El@rJ!{OFn zgmKV(U8!1dwRDI4iMNgMv(|U_+ehcruNkKvNrB-(C#60z_F|8x-rt&BwxkjdWL&vj zFf$WIfx!&&gG8o|D>nb`6iIf-x@!Q=r;1FQT*Ew-89^C!WstC|81Qqq^;%uMQ+Z!Z4%ne^OwPkX%L?U|sx?id~nbzw!w)Bh@wuN|Cw zWPISa2i=40rT_#Q0^?>Ztji2{)Kt`s&w9ePZStNab0HXnhuWSDH(xj>`VdR%0y4;MH_6 z;Ic;Rn4tPf)QrGyR)`G}zGH??5&x!A?WB}|eq%-wKl=tU@_b9D22_TX6J0hAPT5*; zFn_Ljs25{W5P1fou<9ut+9W9ni0eVg{Jic=AsmS)pKWAz)wf@jbWqK?+KGtv%|Y<_ zd0PGj_)mD%hAr%viwpojUi80*S1kVxyt>Anbl7Bn_^aD*Z=GDEfoeT@Phx)}-(q;{ zwldz9Fm$$1BC9B2_fkc1}A5dfhpBP9SAMI0!%?B)3 zr!gvi0<*GnwWIka`jgnI5&HAQkVf}qmGN$lCKRb{+r6Vb{3v}^+BxZVd^=;XME_7o zy)E6y?w$jd-s^CxlK{Kpg{nq0>|0{_Pjy{DuLFYkZ5bKySHgAGK4X21B@)?}P4h!Y zT0g6Z^%}p+E^sJ)SU$sDUL^gUCAv^1j`UvJPp@-8RGTmOns&=5J@=}H`-$yN0CtPn zTkXmr*Lg3kQ~M{fivP$o*4}{^_MfHF33c|y^)goNuz+QR9X4=tNHQlf72clSRYeB@ zR&?f8mje#$LrU9}on8B*(eqE6<6rmlZYKMHrFQ570_~5-{xwX6HrcY^+_(@QMu)B^ zjtoSl7)Kdn4#@;|`@^uWTdz|qq7cwSQd!@p0{62&wqi`T^U#dolXp21&i=s?vxi1v zJ6v!EFP*oJ2{#^%8j31wmZO9s&O660oI16Wsxg6{XYr2Vo~x(=+&IyZsl%gRgJBLq zZ_fgMjA&*8&29|E=N{WVKfli1ui>G++%qv%b|BqD_kCl&vc{pXfPO%~l`Vhuus3cc zz9oi#!+wyu9c^*ILqndze%R1<=X`!vCcB7Vj{hu43X^Yn0^{qC@!r`=!*)$^0AEk8 zt)#08F-{~)K<4#%9gr$N`M&0cF6rNw^2hU)Kzyx8f)U4)03lI4s1bUEA;BMfus;w& z!;0Q$$K}xr77{z)ou>8KACZSwlIVPjzi4GxouUmF2qW1Ryi>@)a~)=ZeePBRL}e>x zh}Z}|6_CvfQ$ieu^stG>dqj2pylp}kW#5Jpi?v8XsfLYV8R*+FwUcuJdT1MRjh-H) z8U_$Lo9;}=c9o->XtXpEKzmO-QDCXQg$G^BV$>LAFb`5MieOO|)pKcr?Pn!?9Pt__ z#bt2WrhtkOY@9KQHQJtk-cF8mb~f>ZLl3S7vpkmY5`2q9T5-6%5Z1>)Dp9D;N4%w1 zOOvbgla%963xkQhtUOh9vcnvT8ts_lk(7vkm0j!LnD~(pjR2N?tc1SFTMz^UWH8?o zC;KmTCuo41#~o7qD(KNkrBM<7(!S!=zd!H59^VrCc=?N@WW_Qi>3qy+8sZL(r?Y9o zg{CEz)(ehk6>{@KdJKi7(MoC*t;4S9@Lx;spgrY6I4jF}Y%L7iI^xxUzfJC$6bYeM zp*dKc8T-R{)7p9KPvqsiGDzBS69G5sCLoNntC_5G@@#BRi?`>6`o> ztBEz2+9%}`Qe4<+Q><&U+0N`J(qt1#pvy-nMQ>4f;gR(lq~mfVcGo*%n~s&oWPNu# zoPnGJ6u(bXGO`Ut_5Gt*qq?!-w%<-64!{|+%Y}tP{PdR+=LEoy(aJByb{Be@2TT)? z2DTYEOF|W+KjBI}U6=e|C|bofqg}^*I2vp$aJ8fLNesB3b-^Gg7R1MS)JaqygciYy zHqE)pW#hY@Lb;G1S;e}YAe-jzMOoPj&ACIeUz^GZ-XkU+jqy&Rhe~;+vYRb*$zpRvNm z#zWOzoG6>5KpaNBmf2*dWVDI26bi+qm<(Cs_`Dwg!b^^D0TLEI?czm2!fZU3xF!wg zMKW*Pi1W&D?uLE;XzmRE0Q8VSU~iM<_Y&(I)cUf->LdeK%vFJYX~)`_#!Ys9p-z)% zgX#}jpOYQZ`v{-^lKfx+KEbdF>wk_BT26dL{1RWcApfXm@PzI_GInd5*xB7u>^ zt$7gqp@w`}f}Jb{>1ZcTIL%^%quH_-;y7SF)JuaxJO}xQu^zI}b9Jo`{x8OwlP0Kk z2)=XBKIHBL4gt5x1HwE`U6Q@yTp8VC%VoAmduDV0G><@-vOO$)amUZ14E%?&KtMSW zvMFy3`#1uYMA5}pz$q^B%qmRf=w73w!m0kexJ=1iwy*{nE8ANTBuqq+5+%bjB<=V( z(mfuXP*G6uYefa~$B}w09tC+`X=CuVnELA*$i3~)zB8@D59(!unK!CSd6tL`d}PcR zVH_PIwdbALJF)0?7{RX`94EV}k&I0}Nrh<3MZ{z}T+}EMOGkIvLAREWrjL zi|l9PlS2!A;LxB6Dh%KlL!3?HBT(X5C8M%tE>mbTmMMq@Y;QBwhWdV`&1`0B=cMWM zDX5pDp|uqm6{35pbsKkg&qN)O*fmk9DkD6;SOhTEljC_0PF`40pl!h*`TG}b*15@Y z%K_$}_8(CP-YFoBgc-ob{Zr8Pu6Tt?X&}A&)Nh`Vq(>`2%;jvivPt$~gue*98=h3_ zqH80v#u;&q<;f!ZC7?);-w_IfVDX$@%Vv}STUeZ6Uo{^C((^duy!?hdyRj(qSDEN} zaF>MFeEDP}qRIiw1(kg&s+A$eO!r1Iih`^1X2_}l%OuWn2K7;>w`!H>o{Y|y zP;R)6!j^VuR^KFZl?wZrlPOY18D6*5UyY?K6U9GUl=g{?vA<0(^dUOPF4@Y>YA4B5Vnq_i6AD?J zv(D*8&QuUG2lKa|RT|@vYF7Qo8p_ax7v6=LD`sl{YK*~%%3=VKA^!Vf1Xrh%5yYKgRVlS3!mBcEv%{M0-Na^~FPb2U} zDpG;zqX|A4hfaY7h7$}Mo+Je5yc(nx?4gQiXvfsKkD3f)v_}F=p zw#QG^h!>MU`nDyohH5~h)(u%5tkVRRV|1R}GfN|*yKwG4TynW6c+iJjJ*a|*&xt$jN9sA!oW(EPZk;HG>UMNczW zUYevpgxSl|_-MdzPY^&fgrL3h!rfnXLq3~sGO{~T|Mu$hA66jfp>FXV1DZBtZPbYX zF50c6S+OmO-WJ|c!+``$E7CYWQx{4MnRAsT)^^g}>5l3rg~K(azwU13`B$v7c4wYq zEG#F_cAHY{tXI!TF6>An>7xBAy5pk)h8rkN#3!&llLt%nh6zo4}Y|2rzzjdPZ)C!#p9;neE?cC7lJL`FcK)R<%PnBwpT4@YuF+Sk|Kf)8zbd))`Y|pI ze<+g+Ox0DQR;_jrnb#*yUuUqHzPwFEu>G4V31s@cw{QB+gHO=aYHUy3l~}&nX~b+#F9I0jCVQ1Bj319ys-@p3!aC5RgpU3 z=ce84d?+7mh%uUI3IvUsDCas@vHm2)GkmrV^J(|cL!2DHX+BY>%NJtYWE*CwOh^bJ zBMfa>Q8PUQPV#;7X*i$DuVYtQYG~D2FZ(opmx~fVQ4=*9z>?3~_k&{Qo6O|MWc+j}L=7Ww&np#kg%Q-(o{nYMI_C$(FGJGi#S|JQ!Idv1#=ng-q z5RIS^2dYnAF+P(%Ao!ov;cRBCzft{MAKnpxJU_1#a9B8Jaao#IqCIH5>hY3lKG*c| zttj=UosLIA*E5n5_Y|=*8FusQ&79ilC54eL8FPp=8}ZsLhSnJC=0b)u8Cj6l6X+zK zkBj+z?K3oQq0g8Kidz|nMbl1OUquEoP16s!yd)OAZhx@hDbiUG zCC@Rt>DKv+mgol@wgI{wxm(CiJ8tsa^{$PjX9Q}jYev@_S7$Y}xO_O(LO=cX+uP0O z|Fq52=&tmMUGSdoymu)Xt>_s{V4azi5E*2apG&%p6O2O7NW&i+CQ8~is^wH4=mKv7 z;26Lt;uoGVLquj^U8b=nA;b(L4Ezi*2uVYefgS%}N(2H_Z^a$M<=~oyfmZ$JqJw!P zazy{y3qF@+tLAc9ofTR3z|Gl-=R-R?4X)zE`S)VrlKSmz>QrX@XwKr0ZAP%j8GW-y zI;(o3(qAs2-UL)$*0l;SDT$zu#*qrJ6;;NM7nmPF7YyO~Bas4thg1w4RjORYDuJZY`tu6HTwo$k z2BzHDQ#MeU@!>V$QuCGFKOjJZAnIX>EbR!+E+& zH-OkJW($7#pI3_Q{Z5|e#|mL}55h{0Ls*Hht(GY5Lx)k5l_;G}9yz-#%w|RZY8o4H zI1jJ05VLuqUWB0QWE^WwZepvok-&)CAvKY}$! zMELT&S}mcrI_^MB<;N{6;%zK#dcz_Es;#hES9rLkt~f`~QEXbdJ@n)}czLFE@Wk|I z?VNjOE2IZIE>~?jhh`KC_i+*y-$u~Z#db>B*=dVHSA>^6jE!`E{d;ZP^5%_rQ!$j+ z^j?EA3M`FYH#DTv{SehGnFwVM7N$CQ%wQ(@}7$Lsn3 zRrrpNu^~$Q&sCA|4*;_NFPg%P9i4Qo%ncm$9o+v@A+W5bX}iga@~`rJ52i4IVOYJh zb<5Amx<1bg+p7O%4i=aOce9E_f}os4Xa2WmFjGj}<;ui+?LkkI8{Ox0KsHq0SQ}Ef zAftpsyZ^kwED6ZIp$aQUewgy_Y?<8rI^t%&y26)H(^}zcDp0x10JyDPl8P4PLnTsF zt=Pzo8d!i<+}VM+??&Nc^56-2U#=ZEk&9)6g%A|e!+Thq3~Xy75HnejeKC5iI~Y8j z{;(TW4paAwKBny79MQz}b-s6&*_JYqR9_3_>P`~--FsK`qc;xs7ntA=I;SV*`D1|h z*CSDE>hoca)M!OMYww8+8;Ig6FBva55 zE-g>chz5a#DIZO4PIMc6ICzSsj&+DclBO#IobnlE<4g3}lQn+wW5yUt>gR^Co5J+i zjRBj&F}?XJn>m@`8Am5*qCysBkf{`wY4Y((7%`fP;xHEjO5BH#b2@eQeBF%k- zuP!tKf2zklLzZ_XOZn|sL8yn05aw2wj$SD$Qj$$OjfSK?LD=$uD$RbuFtULWt6}@n z<08nDfQg9QgfTL7!4>fMI}4c-6L?%u19pyj2pt<6HkK~_d2qPiMk`RtzE)wZ%Rk)R zl8?swPcdvhDKDpv-b24&^6{RAl=qs|;R2~fNZHq{Uiq+pNKB}7Fy))IB!ZO=ai@tC zp@#UNLyvI9%2{Z&rmrp51b{9AO6-(T?EM%B<(mXw2F9jjX!lpl4YDR#Ny9f6PJJAJ zy?~)R*hy9Vr9Lri)kPeS_(6>m6=R}L+3gvznZ;E7UN;wVF>DUHOV0G2R2WYh1Lbdm zSD$Az*RE``^Y5s*Oc`%*q-`^jUz=h|4o5RgAMkDPUW?v)&pu zvT#hm3V%2u z=Gzp2#qp>4jj;kb+jOo^3LRicerd(QQKy;5nzwc)e0W}J&392WbvIKQw-oxER@^1L2JFBZ9GO!2f9hXS zrFjZI4}+{IF(=rP^ZU@mCE3elzC2)&f_#?jKz$0VA5XSv>etij=V2 zQ*DSZqwPeOSs+*-JGtua#j0QDbpEt(K$t`tnEV@pLfeS z7Ytw}%QXZXPl*nUE#02Ma!}nBudUQo=V-GD-$I>R;7NP7y)K`i7Wt(j_jHQY^1&%- zuvV1!ZI0JzbZ>1Iw}xg1uS{_67#M>JQmNJv^J-2vqB&~O$ZBSh#hSTX#FJHz+ZkY` zu#w+Lvu^~U+Q^FzVxm8eM_5(LXXcp|xZ=s2u>swvEstqZK3cvjDzAXY5*oQ1c_boFub-orT)AIqR%n)QJVuhAzrTc>beeK(7`6g;tWkM_oPwfm zVU>=KZk38{Ws*)}m943%X^D+~fsJtiv|^5?W{OI@YHpfJB?JSAX_T~?y`8)6h;*tv9!E2iN@r2RH{@?upxKL>zen}e? z(hGLfoVM22tMvBO!xQLJ^qZEQZ=c(#>tUHxcqfvXQ^u-x^66LQ^wC=Lg^^zY8fs%a zd~}+xyY;B!?*~cn9&NPxdbAbACYX3TUgM4j5B$eXjh%#0S)AHlXc|OvF5U94!-n1^ zA;RnP+IAn^W2Oy-b5{#*H|dFD;bV6&?|6I%+V4qA6!^b(bz!I4lKMsK4d>Az*Wi_@ zYi>CoQwnU~kE6(&ovl1l3>i6gdgtEx&zB17C*>-;y1$kK31w2%r2mJrZ;TNw2(xV4 z-LGxiwr$(C&DXYV+qP}Lwr#t6dv=mZCX-Ee_s9KPxyh|_t8%`B`luYS-08;GxOA_n z0H%|F(xj2CpUL;_3Lih(+^#kilRZ+|x)fO3qSa;`*!43Trmo|Ic|p@ikScE2vB_w* z@@x8!E%Q&SwVi_8Y^I;~|JrXt=YV^0Ff^+poj5&H9aDmwrR#I_2UMR+M@GkNZ0DnD z(VV*UXdr9eo`f8$yNM*>g zQzo>?mUUMh%M~BZTbn}FeD;_I8LwAylRZv4FM?w(xz8JD6inN7^+wm)kv0AyaclGH z=nd%1j_DJdwGcXb!jsp!cf7Y(IZ2uW{nse9y_JM%JprXgyo!8zzttkyOb%Z)hM?W4Eos za9K1Fxf_;Gt^=@F(zXE32B z%^XMv|3&IXv0E3jj3DHtL0Fs6j#gLNe$Wc|BE8Xu=$Ir4`u&wHQxU& zgI8&YLRZzm?lRpi8dEOhUQ~oEa@g>FgF;Bw0s#4z&v{5$2S->BFmL zX8D;cpW$846G*3IUkAtcTM~Aon5zMt`Ho=xvzMDT=Fl2!_czW1yZ-n$K$b-Dk^^x% zJ>C01%x%^8mOngKPYNzTEQFoDVy_F!T2TpNZWQub1CU2#d(Irb|i=N z_4|V`RU1PihM09{;UbjR7*K1>#(*tP99)z33myseE892>4{A*Jp0$p9GZdGJ?KQJw zu9SK&q3na6w?BKd4&kJ=H86h_ni$nB)}gZ71A>HSU}(2VHn%UG`8(}uO)h%58*>~# zI8|e_=PEgD=hy|oT<#w!!gl;`lrODp{w=f?o3EFN1L+klXWZm1M_*M|zyVwAdz;uK znb`kg>5|D|Y=*Nz=2^gC4OQCubowX zYIinnOMVJN1niYU(8B7jPT`x;;Y|W#*35(E@1Q`AF7>tP26ETQeQ6b}XZ|GJQzOXK zf}n+Or+YtIG&l!CI?#Zo9$sR_=(@gr~9?}O~lq1iC| zC45hUm5HRujicgh@Qx{$DO@O~?W7)Q&G7o`2(BK_g&kS(6UE;gAPssdlVr8tNswH6+Ar`BBeI9RW7T|HoxC$@5NCN5c-@^|RPiaz+ap9szu6Yy z1!g&k4QzekT6Q`yevZexSFuu7X5reNhx zYr&y>Ope3CAIxT$IF;m8^r((KK(ceNXU}MdeijjGikN5_1{Kg{o{ej(sO$-LQa+dS ze5Y*Oxr~sk(OA;Y2-c8-I=+Fo?Nvn_wzntu&{rriWQ*e(grG5@DY>v4?|@iaxwCwK zvCKTWGGg2Fo`IDLQ_IdjA0AkoMZL{1z{(8!wzxy#wGznsp?BYT);@FjG^3CDnest9 z>n51lf=Ww*<**cvG1cT%D4zq2OOw^6#%9D`hRwSV5ojqq`LF+ybWh?J)2(!H!tCGR zS}6GPkpl4(g)DrMw_l;kW3#ZoChRS~#IViJwmBECF_wp&K{)21+gdg8K+Zb_v`8_P z+D|l$BwmihjsO`|ACTm;vM(eW!#bpewPX?K@9ZHII48CeWDrUPXp!LK@M$zLxS zh43n>+f?hph9lw)=z^W4Z*8gaKI5f>t6PfQKQ42 zGL&U*Cw^1vcnOvVb-77_)uj&y_Yll?4!^h6*7_?Qqsh{c3`3BF`j~_d9PXfR`fV5N zQSt+dv(RO2#wDw6t&oJhCk(gc;4e>rAjw*4)M*g%U303WD-0^U#zR!TQJ2=w8#)#+fKwK++58)# zBE@wsvIowILs^>oDHvPml;roLrdeo40Bi4Xx%XSIB0`?@jN?VerQ$lPK^~V2VzGp8 zR5|{6^NR1t0qkAht|8Yr3U}>Z9FQ_6fuIQG2@?^IDyuUwQf*8yOypVij<4RX&Rdm& z2*gcr=ox}eB8CA3;Tb*-1w$NjdnHlNJ}6{<@YOQsHLqp$zUl)m?cgNYVg}$_;*2G= zh*WCm4pI%?0bqIgr%2&0_|tVF0~=cIhrO4L}cq`-u=-n1TThXDWyP>OZ%U zAB~j|z05;~ZD=RUnGNX>pBtV9G486Xx%ojs$zdy0d)Z$PO}q@6wh3Hgvv#`QKeiBY z7@43@K-}?wDkN85?Q^K?Z4u0ZDy5@%k?|s%(=#7$^&41!zetJuctz7|@tKAn$R56q z^TY%KX5IB|IHhhf=TNjB*Vt$-XoET|E)@5UQkh3`*)+RVRz2Amquz^`$DDWuY3?h) z4qHbDo=194^*HCGwsaJ8FtNt@X*~j^WP-xF6(0?vbLj&im_Kf@8v0egLW)K?@=_RcF?Gk^xnMwLm<>EeM` zg)U+vg54qK0@7`Oz|H0-7ONF*ap6*Nv9kIHC=NB1_#d;K+gXX>R!q|J z8?@z9Ouj^e<-$I!kYWaH=fKq7oSK4!G2G~E?xt#F9b{e_quJqq=yE)g&f@RswE#|( z?VCcI%X;3oQB5iH#&Y9wrhjimgryHJl5}{CSAm{uhlzhOdE8L62T6UMD+%baxSYA6 z7s$-eh2CT6YBg}lRKUUp8RVS#*ng7(evOM$05@d&h+~MgHR)U~?ESCY-ZaLypAJnr ztC5-had95CmX4Kar9t8N3Jv_#Qqz)+yLOz$;#>Uz6p*%zhfqv1qm@Nol6pnr{@>U_ zW_Q4Z1JZ?5&Z6`o5yo(M61^_PC>dd+!$bK11rX8OI+Fu`dESVYHFQmmn&YT>*64ZWGc1ra%>yIFM{Z>C4R7`cGvmb(x3_0`TREz3_&$$!2_y%&&` zE+jBtxN`YTX-^^|;t)?K&4#y6;l(IPcVJ~BAbtMt>*TydQrF70;t)O3+9 zA8H;~#p7-uvm*U-IM9))Pd9zf6e+hIfo-@E6?6`4bq*311Xbs-d0a>}r0_Ah-4t1vt~UK!2OZZdg|&N>}WnSlLu+YNr?{8t`#6W0LN$S z#{k3vKM>FmuVO!RuXs+UsG)s!A(k zhM3@&o#|tejzj9_6~h^G?C}P*%YPVbuxvVj(B%v8DzX;!0>DfVfl9!-WbK9OyJS6L zmGtlNrKw4;e9}niRFXD`6k+~_rApT<12ALLa_E_Fyw?gOzL5M5Iq6vftf?%LHcnpI z>;0x0-2SA+u6JGhoPCo$a4phPi!vVhF|xQf|4d5zGEmR3=Lkv=y3^%Y}SguLDC%-#>nT00~BYSL2SM`$np@nYO*lssN#JLR|-}zal zgM>&p^xUj1dHnu%Qz{h=KjIv&(SC8~Otp&v8eD9n6X86+ zwjDhF(wen0rV@K==G%CA$E*oaZ`I?*e25cFoEqh}vB>CJSKck?EXP&9h5#?^+*dj6 z3w=A@FS0$^VIFroNTTWs^?0-iQH%Tg*I8npA#!~LghJ~B>H|}3E(G{_L2jHug`&06 zELVkJ=Cboq@7o&&Z6iRMI@`kBwqL&eI>#uoin==CWB5jtdpjce;DY@-TCW7H&l-E{ zLnWS6DQ3<$c2oyW>L|k~o?hKXwf#gdX=Pmd80dtt1`1w?_s@n@L1*+0C_kmQX8D-( z9&B?l$)Tr5-SQHY_t+ys;&Dd3LQUZwH`EUnwNri_9(_a(Ic!KZ$OD_o2BM@Q$oVrWf>8yltD>UC`5m?M+F^@YKv(8y|ZqKW$qY` zk2ITbv+@X2c|R*E1TSIV3gYhXE)BDgfaf)V-7rf9$M=7gGbc7=$Yoh@)_JIed~5DL zBS!QuxA1z;<6nT!M;^>Gt*^fm;|JQ1xJ7^w#v8PgE%5Q1zrIFQ>#XumlgFaQ4pua% zA=HhXg&$}yd4kFP9PFTV_UsYabRUbwkh*+L_>)T&*$sN!2@0+erxJ{=6 zwEoAnAMO`7?AK6cK|2O*u+%%9BaBM7El7K^#mh;3R^MgL6C%^QE3AFHGE9>kN_ zGIcqq$26DRlE3wj;xA~OItEMPR^?L+I_q81h>LYZX%pY0XK!uk$0)pfrI$<_v;Rh! z9+$JmRpO!^jvjao`XCfF5i5RJn>bTn!syh2C93r~iaMKP{&alr%03{AX7a6^1`C zKL($;Hu`Hw5R1i|nb@Hwr;$MBl-9fK{Zrf>Krr63-szr^A^lVRR!W3Q=A=KY_2FN? zJj=*`7}(`Y6J;j2H6$7|eqXsog0Q&^9p zS23jro5V<+))>Db=J@}g{3Hv*f9EHs-5{BletKWr##GmW!-V5WPztCE z>09Dh3dT5HS)N@Y5-zhD@wK>=>U_t;*z-;C3f?r!wb;}{&=_^v|M6jgAEWQ3ut@1wVI zFDXNPLX0(F$f@|Wej-Ny*!agfrR7)U`)xwx_S3FM|pXmDi%@xKYFfz+Z zu`g9^e`$|B$$aE%oRs9|rpfSp+qjNWTG%5vaUgr&n+2`(_&0e1ewkP&acKT1YxXT0 zYqq=e?i#3Hk*0Pk3q4e68{q4+aWI_{IT5oAPj^OHbr*DQ+%K9#=Z0ezAkzN=TMbq! z66NTXw#&WlK69(q>UU;7UlX`^(Ebv?0Av!$kui-dc+OJlVi)D{u1 ziM!V(hDua5+_Tjjk&_i^qVI)Hi@~Y6MR2tKIOx3FJWKJWf48cYi!km>6bfWgCZp&Pl#NYS!Am>PgV4YPI?sj_WSn%>3ui8I7&&#r~n|Yvk6#Gg{%4zcAlT{ns4p)Zw_ZeQLI;@;fBQ^ekf{&Qu?$FohZOI5m=_3k?f#(FO-gknc^ z?PelnWzE37IGvBY7{A>!h1TtVxRuTv(>`Jd@z>!Tl?v8;Nk&MvhunJ#H=RAb`)Vr^ z%c0qh-utUmsmhpPa5%v!1vX{16VBgpaYoUZTdupu<1pXLMAfvfp5>!8@su&C6*+#~ z&G(I)&=vjv&<8^S!ENa2-)&xI*Ns+2vX#RXsGT@3M@J>p!CZe53v)F<648?(FR-cs zfZdB&bB*;Ux!cZ+kXNfX+Ipp0*yh=ewnFl$o1;e3ah0ZK;59Ae6r!6m@H*w8)P#q} zKueF-gZJS>d_NsK1V@P&RGc*jeX2OSGt`=H`Xdz6-$`Y0xf~?CTbn9sCX5ws+fYJv zW$AC-aaZMOI&_tXh?)EtDDW+AwP4%a4_#$t@&qD*g!OX0P}X0L3eT_blvKq>PC1rz zr-6-1SEioQn&%>CLO9_;pn6oVm3Ktnx+%4h8Pj@pJomMuCli)qU|#@Epi1**-i+-% zI)r2nd*a)Akii@Ed4hezhVopYA7uY!2mRyCAyUbvPGJ_0+P<}&M1Gm0UW?Nrvr=r< z-Hy;p>9EhMMvMahmUf1x3yPRy=aZTHu(5GLTK9gbLKe>2LKWho z(x9pg3@};s-mMyEGC}Ku;DRZ`)1A(%{3ym*BnmdD-zE7tV@LW>+ME>WL~(Ps0ah&l zT%1iqgr!dyxTkz`;gTdKriN?XU`lbr+Rz}AYtnI)tr@Srd@E6-c2lRJ;!D?sOoG5| zZi}sC+z~5MpBAT-F8jl$w{`ZY(H869fEnB;?a8%DH|aX8LVYWzi0xxI8lG&k)f*Ex zg$-T&CC%I4_J`*4Pr@!bbR$Oa-+2$;*i;0sv*_mQTGst^vNV_SY{tU@80r|JIUpHfwSuqmuwz7lIZyLmieEl3g-yTB{Q-c6_4>@%#2Hv2_cGBRQzi6##ag&Cxi z9TXB(=8jCPZKr5gAHY~Xr^k}-ZR_>qD6OgD`^U7BHGyyCPfJEnaabH>_fI|&KKTa2bD%$iJz z@1y~wfB{5WLllHy;y4m>%;6XvAV?!IajQo;C$5&;@i4#+I2T2EC(`+#>tZC;ltL@v zuXe?*$hg)TZYD^Dv2Lm{{44kmPYNzcWd!G_IXM~LcV%51QS|MyuGpE?_=rX09XzkQbG#fMfh3J3zcwNIZS*1YCE)As94kLIJYudR|y)~j;#`g#As7V`QtkB-2J$k zCYi$Cg_DHu;2HL7X72<{B-z0Qw^h#YAZH+R_{!-5w`G&>z)*Tm?wdsSi!vBNZ8Jo~ zN~S-sg1|t6Z>^MeCf!TV{c6IE6lQSbb6Jacs6(q*+NEl;R%WY`T0u}Cw|yt6vPKb5VV@>NonXwkA7*}A}u?0&&<;2zcA|9@7rIOrwBc0a7viBU+gxU zBVWK%S6UvlJe|D_;Y_1J^`YB>+6cqhBpf- zFgjbsh?wq#i^c?V1+UCv)^Bfy?K-6iM>d_Qc(>GnL2{(Z&t2P3oOXd09K^a{vd<&l zu@r_Fx`)K4oE+1b&o2|{D5upNx(Wj(QO)Vy_@y3mmt2t?SvQpT<7ZQeDPeuDKj7_L z9sxDYp@#$1!px(djuke_MjcRh!+L*%vu(Li>RMgdw7@Tf=fff{jfaCyK;PH$`q6z~1FGe_Ju{={<$85MBvEVcr!p z^@MeMFZZvd#oE8AxcziR1GWR=NZIvbcTzbpO85&YDnUIN%)bnK9_5v+we;1wRPJuU zu2RL`7|4>6w#G1`Ko>n0JQ?Bis@(5$vl`G(!MiocVH@K#HusOHjpQAt7*YG%S-5)~ z$MDTZQ;V5>IIBxk-9U*9?E8;zvo8uiSS8bH*c+YcusC+LeAjpq+e8Ul)uk)O!0g)` zGZ>*G9H0CS>~5>brqsYc$Sk(pKH&@9Cni45NY|SyY3NVBpQz~=DtBAwX+*QCy0*Fk zxyF;6471TJ@a3Q(Ebn!2@NMpRT&dofY0(756$)Vz)74mP){DUTIbA%REv^PGcgNiA zf2Y1=ft16gjZ)R6_@pvpwr(y9_}ofgR@DD8bv7GC+f}j08ZSMd;$EgwhYXAIN%F8l zgw<<`B$~E(@G;4=TYGy)F?^eP)O0#rR$c^4#$vp~K!xDKovNKnWPfevx?iVwO#TIf zX6L$?pkj4H&2`8?n>qNNNj%6Ut^?f2JR{f7scEYo)l@2OkyOy2v*aa`<8!>|^2Y-2 z){Tp)a9^2@@#gRxT>KMrKEYC-)AS^R$I+_hb7Wkh$x85YAMxN|_gnz8nc;x)=GIAxkHv>h6PJTe7vV{jGnFixn>aO8b<5n-c<0(uQlfw{b{SbAohl2_cns+pkPoA2 z3_4vH`D@3hRAfzI`vHChTeUxbvr+aLo zvvPlkrI7np5IcbANnKM7NrT)L3Er!Jn!h$w9ygC#p(rWcvqcK$@$Tz@(c>7%ocxT@ z%&J%X-S6%My%8F9Zu!@l09#(8kOWppB*=h=tOw02aD*AAco8&1X7Q=Ct7>0aN*Y`g zv-!!6|I7liT35xbQn?4TJ6TP40CQ=}Jv4|@DWRb{ zlq*}LpVSK>imXQ6 zyr@x1bgrk4XwQ$LxVWT((Vxth2@By41Ts1^0}=*6_$`bt&W-k8B7Tvh+Nxr{CV&Ei z{jFIN6#_Me$x^Z%hPzyq+=XzFr+u@Xo$Y&3X%yG$icY(fEk0zvnrTYLL4HE$gabV+ z2=v&;DUG+;)Un?mSE>fmfD>Z6Sb?{=msVs=>R`|C-6Bl(Sm3{8DFWfv{B-5rR~PH6 z&7^2_otoi9y&(ZD8`$#KMLmTmozA%zgSgs#Km*a3?0^9H{D=VP{=J|-I~hy>_I^T~ z@^?-2h9qV4;wdrSr}r=VtQf^i0G*NQq6UkJ-8r_aiPO`F;~UH13)=bS-;U7Mr$*Ej zdlRszjQSwKd%)CnB)fjFIfMhGyE_8x9oYcUfe}AQH64Z&{`;g&lygxGu$*^p1pTl9 z0P_?(d~knc{F~X&d!ZpI;sr&J3sMfEevlF(?sgE)xdAoxcYch*20#)czU6lLuKqC0 zjCsg2jX+I8palLPv3}Jy{S3o`~m{@ej!|e(H#00$3I->L>j8f&a*r zO?Pq+f%8y&^uj{gWP%_Ncsh{rMKwEF+R5HEl8L4h6Ed zG+Jv)NJ9tz=mxiv?o6J4!fhnANi7Y$r0$ue$a7)H-YzH;1nXQcSHLngK<$?;$Qex; z@ZP}KF@BlKnzLEZhE)^Ea2afi;}AOE>8ap<6xyH1{zadAxKLB4As`q)r4*&Wp7xel zDwV?T2HkFD2qd78(1Ic2b zFazWe*H#7`Ki)z4VSFUc@WMs$d~7Wo@jDDV@psJ6IRv<#wFn4qM}T$9+B@YXp3f^pWd_nEq$nVd zzAMlAL5^U%{*yG}Z(dg$XRqMmhy4+mUUjO@=y#?iV9| z^F!yvUicdLTy@A@BOiAo+W$##)m02+m=-i~iU^Lux;u3u20>+XSL+bQzX)`aeEYRb zW7~*(U#h$6uilx%T~+qI-Ij)Q?plDl<5t2JiG+V$27(o}?=c{5L%0DIBkViQ8E=oQ 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 z zW2{}&uGvy|-kJ z0=36YRZ`+A4$g8x0`iXea}Dt4NP57sDJE||bZ`y|pQJC!=FUifmP5|$l2HhorFt?X z^M(A>q_m}__#gTLw=(*3yHg2Nd*p7;gBSM^z<1ef(dMk3*3or!FR-Rwj*KYjIG;Mi z0kc)xv$eTwx7*+3`&2#?Fla6)2_|QoM^M#ip^MTH=Moj#63=Z)J+8!^ewxnU(pM!bbA;rD?c_s6#%G%8h}x?!p2mX;UUo+gdlTcx+T# zdByQ5vvbN$hEpeRzY|wd{%jihoxX#ad(YUdtWUI|KaWu_@9Mkxzj(V2c&xwgZ)7A{ zQTB+Cy+`)Q42A6Q*n7|Hgp!6CGNV$FmF&GKLRN@SG^`|>|9yJ$?e|n>`hQ;ED^Go2 z&-rrs|a9w1%rL69FkB`d9`@b|cT9;nM zYQFf!C?R8_J*6nf-CxJpik(h_$zZq+=UQK8{`IQG-aAHeb&ylR0R*g?{F51sx)GCk|JrcI5;?MXvZ`Lm3)^j9Z*X;UfS1xSXI5L9K;~43Uo-sXmyz3Cfd)TuV8d1~Zw2ony1o@2^##k&?J;h;Q~Tq15C4 z!1c0DbKFP_>=xDgnH6yYS-5u|dpa}=-q89$o!#_I$lVJ`4R4WIY0kNur{v2=3H9+f zs)&<=J+%#zco@ZJ-@bTLzWVjNLnfYmS-kF&Jxzh899gvECRm-Lkj5AK~T ztI)mJcLp!nX&_w(=cA46N6CTKY}crr{zXUf=r)vk&7tjx#WwL?i6%>u=|f6ufght>_Y8*7~)a>(5%w5Y(X(q#JS# zwamDr&Qx{w1_y|rIC0&eQkozS-|}PUd404zNlTc0_S97>u9A~t`N0z59Z~po#ahn2N_%rQvXEs^>llPg{9~OAh`LI93r#|xX zjEp-ab9UQoQPYh+4|0}6&IkLlqIyaw^KvI1wqM8o^x43+c3JiF;Eb-WMDgpl{)3(c z)#W3}@6Kdg$WhHi`ofat|Ayp5#IPhhr?6xS01$LqC5Sd}} z)gvSfCo%W}7>>B>UZmCY%!=?5dS7M`%QE;z``&D80y8)h86^Er!JS0h60u!Kq3 z2x_TE$s^8pPgstX5qH)0)?A&Rk$S)wt=+$dWBGLI%-I!Z#7eaOnf6&^BXjFEXX0xQ zzLdYc;qg?=%3pL0-|L1yg+?Rw!JV@uzXUEoA*(A zL#F=wCsfI!H6BL!m5>(=^Z6Lp8V|Hn7v*qcHsU74xY&L>SBfp%uK)V;B42;*jOUVH z{M<28b;x@+fuw$3qi)&OcjviZMbv(pBPo5DY5YOf-uT9NaeqtW5u;o~j~9`n*M}=t zil4EmJ$xLmk0}tGk#Ql>$!PFBfrEkmKnC7X0=k$-nXI|o*Fm3<7xN5p`u)j4RVi1> zXwHzxnHC#1dgeY=x|1Mn;k-ELHAI0|d*K8l@eN`1*K1tgbl2}#+XNlM$n~quXb(Ab zL!Y-3cbIG;_9>%{z2~GEujrT?{ajah8{I+v&&Ih|Gsd4PX0K1{u$${9us86#Ro)-_ zV6Q2=!Z808q4oNw#LSx~afih|jq#x-wZ1!jp%afm_@PI>46R%?}3)y z#75p;4Oc%&xhpm`+KqhucJqQ!0Pzd1qppgP;v@Alon=w4Y5KVAq~jLL5!I=+4*DHIWl#DjY{>3t z`*+E!6Qff+jvvj#&R^v>we<*o@Fev*OXr0f=gy%8+!nSUW3pr zD+ZshJG5t9&so7W=8q(Pk;4%ZOePeRQgB`)Muu1THaQmE*=N;^^tdr7rlwbqy6faD zshZc`5R1o5xi2swrsRJ=?ap{y)r-n!_kt483a!e|b;>X_rfWnat>@m@W*=gr8l_r z-YaD@syXLK0o^DU^;hq`Jk+IcN01*Z_7P5~D5wrC&u+f-LY@OdzvmJ&w#^AuLiPTq zLNnPH^YWvKYLDl{eSK#z8@86)H5aDnDyMas&n2~0T5phF;xmm%?7>TJ0qG?o5VAak&9U;Pn*NzkW>XPfQ<@xO?+rbHCED?8Co~0%{WbgJ z4szCJSW37kr>ngQTy}hrXA}Hw*wWrvdvqK^H+j*agUms_a_or`#Qa55>A{;{dxi_* zs^&EB<}Bvxs96iChl`@roe8+B*Inw-+y{v-y?HwB`sMPGD~``-o+}M#7+rhIJ2;nf zW+3mR%V6;pnZS{`;H$^S*&;sK4;c2ItL%7u|U{I_a(keTD)6TYtYP9w@h@dQt9rc>KeJcHzJ*3_Cwg` z&o+m}UV4ufb}WQ_%!T8x}H?*MBUsni|>h9#oqN3 zP4U@gRt)6U)%u+1B|oho6617&yPaBS5q{% zv0lA-%SQLU6&?XT{yj*>w?#w3HF}qpmAnNe1r=U}Z}EhNLu6$OPvvq0wRJx}CrNxS zO~WYMpTVUrFE83iEM&{$9BQxJHOt%iIEVLdpV8-as#0V=2S(UYs@JGqkn<$*EalJYA>i6G0X_kLU=d1dj zmI&=pMgyv=dss|akh$-jV#PD_0uHSbtY@4ax#3Tb=y`qg)~*$6d{jL!rNjK-cHCLR zw&+rIWwhFiLgpdwzT49M(GfObLYl8UPNk6E(h|I;o?2O*_Ouf3ooX+1{0}$2yeNY zdZ?e6sgZ}6_4XTsE35-Wom3P3m(+5chdGv4rd?I$5=^@Jg^JXDw|l@BJcMtZI8)DZ{I6^^liq<#aI}TtwJSp&B^#K zkFDkPM%tiEq13Jytq+bJb+jy;OBZXykFgo!_5i92}(=aH+ji6DKr%iZ@kj68Fj)w1*D z<|9}n5lfW14%(d2pBKoB|J3Su(K$meJ3IA+WfT>!$aIvRU9{@AFmASPcHfT2;dXfw zxzfpLn7kwnw+fk#y}lilc60u5cIz>X;`igppBxu6PdJq6TyDJ;)2**K;W+Kyhj?6d z;1ZK0_Scdpx&#kAP04O^t3*8M4(Tqu_>%ufckP5Vrux^8-oE?6;l&Z!79Ay__T8H5 z&H3tAqy1+%_*dw2dy5?0?{vn<#cNE`+mRpWM?^Sr$@7r!V4Fpj`or=A&r)zHFLx2F zBVE$>WIQ=-0?0=;=W$p%S&W))CZ>h=W?EZK^R$Pu&{m5 z$)fy-QfpoX&EllyQzVg7H{if0d`?`hd{1^K0H} z_Y<=@y`iue;k3syI~gQo-VQcj6P-!NT%vN2#X>>I8=a z8W~5to%5|QzSPza2QVJ(Z_nkY5AvKr>hY5|MFR&QB|EHlk_1DNs7h==QxKs ziV`E)j^@sCR-Z@JLHL$F>Twe}MAO$bC#{}W&->pd716u>!qdVqVtMgYW|Z3@!^qhVB9)J zB99h#vy=w|p&3_{<%|^4ErU}CwA6@;4<91?mYhS-h>MN=LhY-I#psRjvRNevfoc#@ z+0bV^*6&LM$>8mE7SSd*-yVB}>=6XzI>givv@2w2I09IdE~KKL`Ftbn5l(`CFsMg; z*<6o+8L`gxU>2>(rv%*qt%=H4D#aNY34twRDe7XoO8eO+QHgeMwuqdU9h0^v{Swr? z!m@DXi{*ZHJJ6QHq?8kqDOIM}FB?~K_uB-?@#nf;_5_Cm9<}M!cNKL() zxP_Lo^)hZJt>szj$44g4e7z^F+6Ue*kiwQjEcY?(qQJ7@!xYSK%U;a^RVAf~gSW&S z=(+gpT5KCAX=v~lIgM^%+S)Y?QX!9$69q?L5mMf+%6o~6n(dF0MO1{ml!wQ0={c{z zSTf0FMSZ&o4{WMIqLAkg>acE+n%glOJq@y?N;xbwrt$&%QYfm-T0c7S#Wf9vI2XHw z2i5#a;_u7p;_lluRh@iu_<;vwvnY4i@x@hoEfHK@Jiejc>nCuvG-V1Hq8O|gA7$p; z5$?d{bKs|%#K}h|w_qH$wL&&ZaKvtzOMEdK>L~c>N=<6lS!xvb=P1J;WUoZvGls>T z3%zTq@b&a9nuZ!0Bg%3Y#uXAz%7!;s_q|!DSX#70dmSi8KWoy=k+Df&ptdI?4OSxQ z-L6Ce{~a5{c}?YJom;VtbM#I4(A2NtL!r}Gg=UaHdx=EAtx^FE@g?a4^z#R~>KXl5 z&k9UE_H8jbpJs8kGr8qJ{6npzS;V`q&yM*`KCn!#nz?9!T9k{+9b|!6k9|%)P3>%k znCs-lG#=kD%jFLCRi(A?b)%=xS7NdZaUhqgDk`Q`5V}V>`cfOns@o~WqJ`&c1J8qT0>SU2452ch`;Z_!l5Kl z-)PE1$9Sh`CU7rD<6yJ0PK~C2K(L4C>P}w$JW~LTBK+8R3m__I@*tery%y zy+mZyBuwP{tt!2}elt4sS$MJugjFhW2uT4l!B`jb8D< z*;Ukqt7&43#=fsJ5nf3jr$srtZd`$0lZm8Ci@o4YN{dFwzDRrMYy#7eHgY&ph?Rbr zFJ!q9K?*MxQ~%b>q}34cJ5DS+Q3d+4ETU8&qXHJ2l?ZF4>ueg8qV|TtbrmykiJ)J8nB|5&Lk?~%iEf5hAy>*#L>K8h%AoAAt zbY8mTgp630{TLUyC}27wkr@42@C}Hs#2Wg+gBZbAu3m@uRv%6kKR!HcNceJI^XvMM z&5Shiif@Q1<<*8;el^&rVg4NB`W49O>y<-y0z&vy+uow4CWY`UDAID>iXwkX_<)>P z2AeqK6QlycrE>w*39Z2Xu=k{>Nl&F4IV$N;9XFu`!sOd}_UI(t_u8ce3vQ?qa|R=X zo{y!arl*z$AS=#IF9n>8tnrF&%=HP(CUeV1v6356)UGb92^eFIpE>QsGTy>L<~FrD zs5L6GsI*p&H$w$6l1vG79JWiYyh7fR10jr#3C#Wc*(#l>T5~j>xXT)&_K=X$ z+PFuLE(xBk&mYW&tW7YR$ByL#EP76wKp{h zD&fSLq;?Kt#}|LM?B5S5=aiUy{uI%8Nz4Zit!lM(t{CNzfam+0L&C~*A;~x&6GvO5 z#%wCZm+yz)1Rp8xaK<+_S@Dt`;26@n#uL0gIxJc+yTU(d@i~4zlJm|8zWHry6mwu% z-shW|eh1U-^KoF@wC1o&jI5p1t@c25DJH zbB<&_lwD`wxzZucYB7QGsQ9CSHTvHqFmDOWCXOYf%PrrhHoT&K_d;J4Z^b}d7k^ln)#=DS5W9Ji1lt&z3LK8d_yDzWyF2ze#Q36DM1qOBo4yJ}ZRY zc=gDamrrTAKI2!-EvG>}>~{D$DRtn~uv?PQrQ$`~o5=$8!DJt!9bNQEZxOz#zanOR ztC(oia)xYu@Cfqg3si38kB(`EZ>EO$LavB;am|0GnxvkauVL$%LU(eaeM&q~+d| z&x0h@N`>o!Q8Sqz1_`TKXV%$o*w;h8IDSA|^En=vo%z8^p3vWz>6K}<1$$C2b*Ja$ z*ux(b(yYpHke6BO*+}aP*jE%kwB-4X=p!3uB_IC8T033;?F6-f{yKZ0Yz=!Q_iC|W z(&+0OxYY;jS5A*0Eap~S!E{t>|kG2ToSF_g6xYkyDYi7qB)IL?-rfba>&{T*CCV`%ozytkLRrV5~2S)ikpzHv9|4wW@dW+HPiKD?bEN9)faAtR1Vt`24&CN zADNZ@79oS_Q^^;See(|KdNSeKCHn;%5h3@rhJ-SlkApbX(|jw$(7z8Xyj*hgdEC$% z=TRTYL|4;0>ugwG9cg+h9ZwWgI?^JK$yHSFhkGNSw%$uZZGFgwnV=0J60E;OCfI$6 zL~xA5?g~&ys=`LCMYnax~}Z62*0W^snzxTc&VOTc?J=&_`>X%EC+-gb)gr`!Agww6({o9ax%J!K+U5 zCjOY8?7h;JDY1HHOkk-WYfUdv;_dr0E+U?m99_KX_vwp$%B)R_r^*S4KHZ`2SrZw2 zhH`D-=AdUtr6F0h$eV8irI%brd^|XU!3UQyFM{H4mx-Phd)$B7a>uTMN27jmE#O0< zt$=2y&A99Gw*$tnOTARa2Yo3Avo7CU2}EhR=5udi%G*_%k7n|i-$eF}6_=4g+hqZ) z`3nI-WqJ$8UaQ^VZL=MkxZ3n|rGs;I{lha{bLp~jB{hNh+`-{ujwtG>uL4Oe%e;Iq zb!|mkkU|5(#rbyR$vHY#EGZ3X5WumXy zp-b_->?5Dgk6OQutmEHvJ^Lt8ZSvd`+VLi~Q@m?Mqdp@D-Qq4O^I<7Y_(3<$IF3HA z7pe1m^X;<7Y#V99am(92SE>sp)*B3+L`M78E?1`w_ODHm2D*m~ztqh_e48YkbQC#O zDD}O+MPS-W&4|7sZ{z&=^#!kQw!@;0d3krH2L^11r#t3tePXMpOF!~D5I)BCE>T(| zA*CJnA8dg13omr@hYX^rl?PN$uR`w5i$tw+1Rd;?PC!{d9)#O^ZKiKsh}8Ry@E5@q zSN=2o!e5xkYav5+%npG^hs;)eMMbo)#buvvd9B8dnNVt+G`2jCOnjci%|#wTobl+; zBMq4zhCrt%HC2M<>1>@U*D)8OGLd|F!u5WZHJ=+4lXG@+-RxvJIKP|ErB9E#VOD*={1r2RhUjTeU@9_bRxikIt0vl<_rm+&a~oWf@`r3U?f z$SNL_k>_E{#Yim2S&g2;#cDZ3dKX#vmBhHP^4QCw+%rL479%YxeC0S+ok>^=GVvth z>)vj!VyC1j>~0Jvsa-EndxYbI?9D7u_M+3?Go%VzZre+~^!%lFG^_~iLWpVNZw7`@t#Gst`0KC# zQmi%l6^Skk6sK5#%09_G)j7bb;EmmkSvK0V{#WF1JzUJTpAsivYMGIKp1n?=Bol2wW1WuspO#POZ(`Tg>IH+RoKKF!AS?L&_0#pZ#+Aj^IUnB-rYBAWM5!Ib~n5dMe1e2 zN)yh1zLd;*Mbv_>b$!&8Z5ge&TNp8^y64J!dgf1gspv!RAa2p7<&qg?R&9|Vrm5YZPI{KYbS{tEI*BK8!#G0me3iM+H>IdkIwgx9 zjT<|CE;g|A{mlA}#>TGp$XjEaz3JZnH79}9MGum(o81GIdUrrw^qyKEI6IkJfhIBk zQx2UMF=+dm4X1u^Ry}U~RX|jGdk{vzGd%g`z?#=r+h^Dm)M5#qgAp=e8!u5(~ zRl!99O8ghlxj;_dB z&gw3!H)|h8*d7zfz~_BW$!2s(RA{CLr=BQVa#b*W%*6h5Cv|Y`EfYvS@iF2lCWUuM z-EUscT4kTOey+iB*~XVsxb*T(d#qp2{ck7 za+D$G_@jz!TfPZXZY$ef1f3-myZHNuB2bKF&&gvI6SMZXWpSpChZ}i?DI}7$`W1Q@ z9qN03SvG(K3+JT%g05ya@<^yB68Q`3bs|C$|B5r^88_VH1js9}un)b>Onj|l#!ZcV zZe@IMBy}L%z$PJsvu};}Tj^T65)P&$={+IYhjU#S!*TUb5`xL>OC{z)dipv0&tN*4 z(6D@Yrx=xC`@9;3fZEQ(PYUz2flUp*sS8;hQ*tuD1C8(}{N5nCRBvy;D%P5GtzyKH zTRPZ5sXnuL0^@q2(<-iR-D&7nqbH>^q^KSu(%qXEH+`THP=cb88sAN?W-UL05?3)h z8}+5x!N8Gxl`?phY4!9w(r1rM@tfSkUZ=~M=g**?|NMkTVU0B-CxND_L8r7|J2Vg3 zxbBluGHUN2Q;p@Vt~a(D#bmHmKKBmr&jT! z3bL+>3}3>LkU_t0jW=8|q!UnguT2Y$AM41Vx9lMjBo={t?p~~my^77Fsq8^>E_oL( zJm`B-|Ao^_DO?Tb@Z0!=roS|E>Lo0Eqo_D$T!&^# zlqx^#z!qoGP*f>vz8X@#wk~<*K&4UrXET)4&JL#c(ndaCy=AG_&mzZ)_w8P9_OJ>o zzg9|XeydEYq^jC;lFQ#ZcD(C$wtL z$8PrtF?~nuReS`e>V!X5E*YGt_(=KS(*cc3Ix+2>-@+`t7#GbdpJ9B`@3~zc?IBmlSMclj$8_`k>V;Wa(TU|bP)T?{G1>MN{_pL zA!bDGAtRx%qhUP!qC*8% znDBYNzp%)zSWR=2p1-g5LuUEHw17eJWT5eS&ex`7bj${MQvQqkLlk~l${Iq#wOKs}*+A3o>RQjqi)HzQ zH{Z58u%QMFx%%V?F85fJ`Y65EmTO<}KFtrY%uyvyp|4U~Pf5m?v_Y1wigS!@8om0m zUZcTAzCpB(>Z*z?k2g-!f?sU&0#!3)F3i*Shy(5elHvQ649SL3r(`jemox(QuI~bI-Z_!eGL2ERL}v6cMcd!jIT&<7m-Ep^{`P)76q9S+AeJF zqY-KdX=Vv;=^854R4qpzFwIFEzD!}9&5AMj(kd9&_r4%9;+19DuWv4B21F1w(N{wdjFyOvU5!GVFC4b@kUH>f0Tlxhx%|qJp!P-~?z^Tgi(`HV4jalo^ONxj zqdzP-OJ!2%dqwA5Y?LRLGR`Z!yfUZLuJ<@FG*eOT@G0MuH_?uw!3jA z;zb7@neZz-F4cWO!G@((C%CgJd7n7buLROwC$NQt9o3r$2EPX**{W zJ3FvY9yCm-VU0SMC4uTypD$#aW5t_A8?&H%)DFi^qk}}_vS&MgZ_HwTLf`!76N~rD z`rqD0y4pYbYiA&bFxmnm}Z#ca!I^2#fCliWA(p$l2tVl;po@c~; zXzEtzYLEb7tB@;?rrQn6!%N7635u(JoJ9E~N*XgtVhiro$?I1X=`-2L+qigfZYOkz z7APX3pBMFg5@zWklpAs;!T#vid$W%)Qw+m98L&TUpDfozlNkx*$nt88k5U z_G9vAtcS!O@1?yG(=1$CyT<=zoqf+ZAv%ku`2bTZ#Iee)kU9zFm9maor`zs{~PBoU}p`v+EqrXlw)B7S~S2h1fn}Dp8-$UVYsO zvPScqbNmzR1f!J%%^0)0OK9$YDhYgcKE>>Oryso(YWb9I-?g`%!bHV9m%r+Gyb*th zO@?=+u+9&iZG}k_)iu!jb1Z>ShH*=W&SB=FNAi^Kg%-zb2e64L2cE|gV=SI4zGg4% zFV=aS%;~lbx+8i-A(m##N@M(|!&Gkzyhx)dbE`fM=<_UaIUS<3_obhncopQU=(YU8 zu9#M0@to^1X$KGSVA`H`x7=Z+tYe%8pOsC=M< z!Iab~whQMu#!=cE;DnhIFG3tni$z4s^R??!TOh>*V*@%_wlB{@MqKm5iQbgqmrO&I ztJ<1D=es0xpCz~5y-D@LsF#<}tKkHGaHxn2X=~n?4dVR-r;uDf*LTSn?I|&+?k0}5 zZ=XX#*i9iQF$6^V4ec-RNncS)+eB4AERQbK9Zcw>n{;vt3%2w*HU9)yhhyrpfl={~ zQcjbUR*z@uA?b8|k*F=1(hU!oce6&|R=iU4vE~{hwaeoHbpl$Qmx{9V1rK;c&qs=% zxAWp=eOzJ`H+V(F&Oy-hGOc8jP({E40vibimxrjQ6Q9huO^jqZB4-}FeKAznO#jLZ2iW=XJ`&Uz#lG>lCS4p0cxI0xcc&kwzH2g2JzDq zJV;Z0@eV`{>pY^lVQ4`$Ivo7CM1kewwSyO$B__4w-(vTwpOJI%X~2$b?@tS(K{&j6 zKUo>|2G#^=b;UKWmlC#Zaq$PB>N)rrQG7-Cm~e} zMA<=i8Pl#!nFSPGiS&L&_~AiSghw!K%~u=qXQk*3)02nRu0G~|iecq3cnGzihWn7C zz3A%jhfL$V<7Rq|Hnl@JO4i0_EK%spOSRQpA5omusd-7nNcQp-YJQ#57pu#OZnB3} z4ERUN?-7YCeyJ&W`uP0a*Q+-_wVh*hx}|cR;6{#8=`=CPo05mpW{Eji1;HtCHDVMe zomKR3l8|o}Gr4qj`guIk<&$q_a*^>*c8bg7S9~Mw_vVqbA(eE;9ljb6bU9J z_rB>}DSFw#bN)OovCDaOW+BP$VEW+n?(=L4)^BT8N)wTuV#*X7x*&F5F^UtasTDaP zS=K&6Krm1`xiFb>ZbVMa?Qzdo*C4!?d_r$r2E0TG;V9_iy{CqgaE{kcXE`3c??RjR zd(S*PJPegsxd~p-cM(au%}n2qfr7feyD{&5kLxp5D$An5vf1IwBuPgsQpK}cm)#Q_ z`wfeyBQ+~Vo83IwV-#5Hrv}?vXFq-T-0^vwa4Ma5uvqxiGu`569MiL}ml)DJlGb{J zEuH3qgPVFhcajjB55NCh-F(c^A6uyd4*%GR||c z<*ls>EM2{UX7?etQk9_r@qHksrrsShPI6`gjY?1IK!r;>k1;LpSl}sMZ&Tx6zFC=~ z<8Pya#mIrvNQr{lq;B@aob%N}=i9c>1C8u5=+krPu`ZM8!U9MYJz$B@Y9xLD(F!G( z4~I3Irl;R7_DZ#AJaDBS@Hy^|VLJWNgKwhxevpsnYGCZ3Fsaa~vU{Go)5XuuKhc}M zK*D4bb*OzpsQY7is(lmjSNu0?&%<|k+nstXCpFQzfQpnJ;4`-tNVrYN+gbRXUE=$+T zQwH+6tr#z*o*bq;ton%~{Zc-EjhI+GA)nAyAxg|2PqL>Xckxn%X zHrb9sO*rAroxQzUd_GA1`D^4-XcVEQ;&HxTCwxvEETq#Z5xPiQM-*8=(3bjAO5ugv zNwem2oNhEE7)!!E7%hiUkMZ2ZDf!x16Q_U8CQU@!Ky>^ll84c^rF`0(7M~u4%FGKZ z)Q_E274Wk+?`_ceP;S-|AzLMJA3^fP%pI4b=a1ZE46ponX~MVZ-1A7jv*+EcXFEF@3i8C~aud|HCa>9ip~Fg6@k7ZkznOesI1Ir?NmTN~Uz3lwl~k9y)$} zjtYyxq4804&6S%$ZVXrT?Q`0C<~V1Zk04V$dmcrol`5`m@Hq8Zl}DcB!MhC%Pp_m7 zV2q2jQ*e>99KKVD!Yz7$KX>$DUN{RCoeiT+Md4MPNd+gd^Esh4I=xz{+1lz_i%3_+ zOf_^BSZvC51}aUjo+UntVu`onn%2JRSx7oaFd1=1FPW>9NHH+++Uufo=Q4DYojW@n z(w#AcqtUEmOA_ar_>Z4ZY^ZKSjQS{g+p9tkqJSbdq0^N$x=c$f9mnD&M#+s_z|5f` ztwWwsEqtizXwwODQ>H6ETDOblj6;s=^9Q%^e3aC9Ut?%>!K-dHPbB&TpUqSoaiuLT zt_i{CL|nr4D`iU0+uN(@CP{~fj*oC14?cFWDZ=LMHNyZ|xmn|=Ga{{ZDQ%+$Zm!w4 zwYt^1QS{97`S?)Urz^`puw9XSABdw`YL;lNXMMcJMdbBS35* zR_>1Gj(WCsPUfKapT!;WKd&_W$QL!L&I)FVDOUHw5<|cYt`HVep^) zJlQpffwQ@l5eryHMpi%jrf)Sv(3h>i9_S1?VC|MGM+d_{arV3TprOs5K+SssGBP%B z-ohL(e3C~y1T^6>81is}WB{*6+udwI`GUcT*?dnQi z0BuG1C-K5;lTZFL-wLpF zHK?Jj^`FH3JMf0MVUv4+;BUEw0vo$QtnI9fcSZmNj&tXICEy1kAWCgyYV4%v1YUi) zEPuYra4WM1?b-)>po??u=$_{f zG)Uapgvr1m>L2?nL?Z`?E5yLcnAwGc{ZH^P`%w7waU(jgh0nma05>nK`v`9Zakeou z(=&h=TADi8I@=hr?9@U+FZ_Q_f;Q2|N1rPath{AeHQRtS*K8yiMQ3M9OC{p(ieJ`Sbw;4s0`ymRqt<@sxb;#`; zpb~9hsKcqnNvi#W--|Gy?-YVPP?N1mvoF+aBMlWdEwp~%nxlb}n8ttjP%0Yt6Mrw_ zfcHRXPVSF5wvoq+HwvpP;LMl;#)b)n%}M0G60jG6z%LdF*1r;n3&hIV*pb=B+|Kyw4yi49Uj?XZ+{07%vNU(FTH8KCQ8xC`;{`Z)v0LSyxUjgpyY&gy^H6P^N4Hzse!2$$qXYAl)ZVbxi zQ4kQ<7UPY#a@C=)ErUH!yC1-}d&EDf@9%yG^j!fzaR&B+;T^N){P3m7(~HdiFOz5*gzz&vg+4x3W;Q@bI=(bx%kHgw!g z$mt}UpaTSUgy#s5{&>=Y@e{MgblJ!W0b%A62&De^{m|*`+|Bocn6t5gt*zybomJNV zu%OBrnY9aEOl)no;z-}U=~DwWB0?4l5`y4=C{T_*?H)zk+{y}KU~6N_;^btqqgBWD zA0(8qqn(I5Igr36$=n)Z`sY(IY_2fvYO1Gfd{ zF2=A<_l_=qI%@ntFDpD`2H;);bm$AAp$`n5xqJ6aZlHf}u)h^7z2dWUNw7)21F<^j z{q;}Sm7d+h8bYkWi&VE~mdn$3juLQJ1qM8`_d#X+4vv^`GYW!K*2X~8+cF#8JIHke z$Tu0d%^QdOA2NQkdss7DYvUbHFLTe0x(OiMGXPHrPR@^q_6WT#yWNsHA8-NQO)%iu zU3t5EOeFcq8fyK7uFb-QF;b zwpS@b2MT6$fFcV(;WfE#Z1m%T4DF-K>!TG`xJHKI|UW5wa5t)pTJs z4Qiq809K{oRJiKn9x#m|4j??YQ-zueVWe0A3nR;8%%Lm9CEBK~hI zFHYc+jf9=JER-Lc=o`9rT@2c;-sq#bMq<~B~oz|(|Y0e`;}_>)@=+hb|voXzk-h~NhC zuZwkhZ%EL0*g&r#Sd1VJe+ux!V4uHHW;hBau>|a~@Q#J0{M!^-t1c#>qtK*-4c82O1dpKfPQU!G?z_unb_ye9KCtfFJ0<2oP#Yj(c6L%AX~fvo*1=NN#sn+?EAT@3O+DO}yYp%w zq>BI@8%{M$j74(0g_eX~Mzgp9_tVD2{7?QSOfCKw5`MQ7kl!t&vayvh#L;+rP^e;T zJn;9>WjhA_@qS@9Lt7(baAddGe7PrknU-dQ*BD=s`E|o0J+o65e?x;p8XG#X*crG% zf8BISH`s*!xpC?`;9Hf<92)qSoCXXh4UdnK5wHH`l1yuf46$z?NtatPlJR zcl5p!@t=`^QMIEv*$Az{1k(=LwP1E&ejvQ2CXPVt(O{f|Q&$dyzrgz|W3zE=f$>dd z_!o3+r;V^R`@g0|7fuMl`v(43hQt7lsAi-6lE`114Q9Bti)ykv!Zu%;%%8o6TmGTkL(V&6kwV5@~}8hZZS z5T1n-<^i+6!~~4Xf_2COjz7@zB-jo%m$z<;?j1TH>uz9*;Z32(KOjS5!xgb`w6*zz zDTJ-cJ{lY8c#s12lmP+3{6En^XNcBf|3w286*CYSGdmjxmmBnlD7)L1Ct|hbighlq zeL#mX9DORj|ByZoHa8Bo?P!yXm`q0oXK3hvr|pRUKc|gjYq=>-&ggT2LpF54({}gD zKc|gzYuc_#FcBhxxHELX(`InqbJ zEF9{KhJXMa@NzSX{pYl8GpC!c1-rZdkTxzhH?D2hDRtY@5mO*D=zy2o`h$N?+ct9= zgi#u74r&OX1D>`ong5)&ZRT`y+Qy3hA#FTtZai$F+sLhncICo6s8E0oc)9i0{&U*4 zk((?TWw1WbHRyn+O|SDG(#Ff<#>=z0eS^6|CXYph-+-eSbimUlKk(0K+h$IuP8|y+ z1@j3V@V-di$A3s0A14d98}!F^I`^O73Vzv04S~6?kj1~G@67iMZCU8GJPYh{ek(`P zlP|k33=k0noJqYOP7(MOJg@%=Av<#=hYD;oMF0)ZJfxqs4^XPUEd2}d{IAUZoVg6! z(*Kt(BRChbaQPq8wYf%ZN1Ff2zb0){BL*X_HLS$H4b0tHpjg^)I;ODtFG$;}M)LPl z9DJ!-(%LR55{HK9t+o!CQ=|lBUIF(Xvf#9)1Sf#?zkq`&t%{+8v9S${Be=G5H?V~` zY+e`|I}((W1kOIEf4eYSMMB;&DiOl{Bspw|KPjY|rcp*aMuhISLV zXWhZok9KVy1ualH=r|20@jmojqQN48%;FB9J_;niG0PZ3j6i|I&!!Svr8B}`4O$=E z3AUBF!JiKPziTdhy=~EszZ?V@b_M{S?{)}dr_@6MHoF}7osEr*)*t)d?oq74ot4!V zapUvcelD~?*ML{@ONvF=p22J&E(Q<>J&+;gy!AD8=qo-%696s)PN?wt2Inw$EzcjE z+SzV*Ij+xm)!YrBo(8BJDdMozMuxR#R9LF?X6*hxvGCQ#YuLL12An#BJougIDSRTh zI?i5ze&qK32@tl6NqMc-`vY;Rf$HLot4Ekf3;qglBdO31>acB+@$kEBH;fu=(PR+( z4a*?Y&kl5D*fK#?L`;aa0kE3{l>nSUB|5rK*c*bd0XO`c2?911H|@{Vdjeu&!JZ0F zj4t6m69f8GY?Fub;!Uif60j`wAk=dnPBQAm`%H`z#9(W|+~T=@^8yfzJ)j4kmg8jm zM2o3|vAdoDNcsSg>P@s2Hc3(MQerIu9Yo;hx^W#1TQAGx`$UTwDA=)r7VYSnI~iMV zO%9r6%T+p{FK&l^CFdR0zLNt@OWB&7$VV61P66pCf;JEvwN)_bTsyH(+hLmThr9?$Xi4T&;*ioe$nOvhJB_9 z+_-E_%N2$0y7PdRX+R6S$+^h1Pqcv5tp^+#*v;1_OY8TIV539_wh^3R*&8vidiu>b zKe`rAo?gJdATa;%RZvg<4)J@YDk$aG+iLrR85A8(h@l@4e?BlMVsM6bnQbpz|IGK> zZ0diP_QuHtChbwqz2HJK-2Wu$-_bTaHyD~Y*PhXKvcrpNt-rbqU1>nP@R{)A4|JKLp_HXzZZ(otVw09j0z~UuxZs0qWij{Jjlt3#X`zQ7{eopDD3|*qAy)t0F+ZBReBo*KK4oB$S+0 z4P=7{=uw3;zWUPpLl1O*cH~%EIX>jI2c$qt^*3VY;3IevWcP&>kN|E3`pZD0JX`7u zu^3G}w1xp2_)PE~?iKlcA;b=3qkx<+Ban~o=44>&wlz7+CUb(IY6F1>kORM#NEG*l z97l6g8)rK`N06usssgqq=2P&j4;7G&%5So{e0E=mftqpXNpWYgAtS5x-~g(-2wG*q z7Yop+?46wNi)u^H<#%%q??Ke4?*$zi|M`YI%E`ZhCo;cM+^9k>$t|A(V&pK zUmoMX!240xwmW{| zL$0BwyTOMwfcs;}6~?Ie>-J)WAN$?LVuMZW$2|cV*n%jMwH_>#zV&t@QdCKp32u(a z8Go%YyKAu*9>1Hj?Sn?*E*e41fJJ7&HM}V;u-`MRlbN%%fepmmYHOCM%Mug$05$`_ z{^jDpaWB{owoup8&Tcc*-woh0s7TeDzn%UT_R;t!y1Ob=rRy9{ftobJ-PZu!cl`;_Y`J_y7==>t2AM>BdeF zn=PD*RN`-5(1c@JVC3Mhuqr+31f3K7t3&@9!vp=2GlH z1n*`F`>}xts=>yzaa9f@fX;uX1VDTKZl?3UuXTF3;7mxs&QNTe-8MHRt!Fb&;6Y^u z#)i#;G10e+uivuT7`Ar1EH80GZ##7Ge{EtV6}WRgBorW)#%F*d>d4~cwzJZZjS6bm zHa2r(=U^t=6*tRd3S>0_i?|L_ZsE&bWNz*rW?SB1f>c!|XS)byD;W%UC*L(<_n@Z6 zHlVqTld+MWos}~*1mj?A3dHLGb^{he!%a^=C6Olv3IGADKv&=|1WY3LmxwvHb`B|BRqa-wPvjyIf=!tVL07sVr$VTKDhS#02XS_d6 z;daIiIcXt@b8eQhXc0cQ_dE z9%#Vb-SaNJVfM~`w|dGyjo!{{4mZ{#Y-2G`**O*eRTppDZQ;_Pmm20^?fa{M6f!s~ z)A%=dAU9yw{T4RNJdEAsoWEdq1O9(n8*J{OfcgIK(Smb;2y*wChTWGRJHX9J)ITL? z7bVHRTcr(i0h_%~Pya%4+eztnaQI4DjlBH=-$By==jicE4ZuNwwk&}!aA^GpWc;_V zchNQg{s2!_xCi0vvT=Y4oYMOI9U_Pw?7dIPhDn2IrB%^i@xGm2!uFB>Z62TxCy2g% zg#W9xy5Ua3q(WY@TdDlXmcp2CyA)^}3#@4u81RktoOX{Qwx>${jaVj(Ip@+{GqD$B7$-l=s@?M zc%WNtM)|*>3Y-lrQ=Y`&}!PlkDp8mIl@oY&~-u$A=VbBU(7QWs28$f8ingXM4B+Yyk*1LO|ch5mB3)}q@p=jsp#o9{jHw-tN`YL5}r57Pl8Z1}<8SMaRU?;8HQ zz|a1u&;q4A=1x}Nb`+HK{6WWIvhR~3I#dVnXn<+nh-ARvB^h=Nzhy}#49|QB%L3{I zT?HT;hfx@w1=FtapsV;t_)6W}2Ba@;+A0bLetVV~J0E~ggRzm}3Il({yle0c1>2FB z4T>Ur;(;A=;zB^!c&R81xtV1r$ac;Kj&{a|ELOILmYdFH>Oo{pZ*U7m0y^@+gOm#H z24s_0y~1S3baQAv8-$_O!T4Ev3IvL9OJXM=-&^`RKpg(S#qU;^?mveVu!InHd#3=K zAAMp+=!SVfJ@5+_#9x|w5AFQhH)_{#P`+*SkaG+5uVt$!W*LBM1oeslTEzPwWnjdk1I~gs-Kk!3qci zi12qx42Wnu@M)ojgBAKi4`j6i1LD4!X8vwQ;OpVGV#5O;N}L=>KGfD7`Tj22V-Me zpo}0OH187PdoMnA{>@G{Fv<1P;1ydD0b@b=E1V_8?l}4mxA{Q|1~;i}Mi~J(dks1g zZd8kXXAXgfe-Cihz-)Yf2kUlhHkbRdUX}v=&Xs?~-y8(y}}5c%DBY+QT8jEB$N-N2b_m;Vxp{7`xnoF6^{2Nyn^+_NX3ZTW+Vv&@4- z)*H+m*u4-ou9jfpq)yule|yYw`H=dSew9vi_r+PFi2O*(7( z9&mQ3Y7bAC^aTT3cNknBZp6J{sP>tAK>cw)=&*TW)x=T6@ovE8Fkln@q^gs<2f!ao z7`)y6`zhJb&h8He7p6$Qlk-8ffH#n^^52dLV>SNS-y?6Xz}1W-57Pn1NWeve4@5K- z>;V^+QMCo1G(95rb3i?_0CVt%vj5w)-DKDYyn{Qxv?w{1$P=MpHbTl{-Mtjph^KB- zn#nM;%7B64O*3L(4d`Vc=%>s^*i?xguyKhqB|Z7Vqz;@^VgPQ + localProperties.load(reader) + } +} + +def flutterRoot = localProperties.getProperty('flutter.sdk') +if (flutterRoot == null) { + throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.") +} + +def flutterVersionCode = localProperties.getProperty('flutter.versionCode') +if (flutterVersionCode == null) { + flutterVersionCode = '1' +} + +def flutterVersionName = localProperties.getProperty('flutter.versionName') +if (flutterVersionName == null) { + flutterVersionName = '1.0' +} + +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' +apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" + +android { + compileSdkVersion flutter.compileSdkVersion + 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.example.example_widget_testing" + // You can update the following values to match your application needs. + // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration. + minSdkVersion flutter.minSdkVersion + targetSdkVersion flutter.targetSdkVersion + versionCode flutterVersionCode.toInteger() + versionName flutterVersionName + } + + buildTypes { + release { + // TODO: Add your own signing config for the release build. + // Signing with the debug keys for now, so `flutter run --release` works. + signingConfig signingConfigs.debug + } + } +} + +flutter { + source '../..' +} + +dependencies { + implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" +} diff --git a/clone-instagram-login-Refactoring/android/app/src/debug/AndroidManifest.xml b/clone-instagram-login-Refactoring/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 0000000..d606aaa --- /dev/null +++ b/clone-instagram-login-Refactoring/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,8 @@ + + + + diff --git a/clone-instagram-login-Refactoring/android/app/src/main/AndroidManifest.xml b/clone-instagram-login-Refactoring/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..27601fa --- /dev/null +++ b/clone-instagram-login-Refactoring/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + diff --git a/clone-instagram-login-Refactoring/android/app/src/main/kotlin/com/example/example_widget_testing/MainActivity.kt b/clone-instagram-login-Refactoring/android/app/src/main/kotlin/com/example/example_widget_testing/MainActivity.kt new file mode 100644 index 0000000..4d5c3cc --- /dev/null +++ b/clone-instagram-login-Refactoring/android/app/src/main/kotlin/com/example/example_widget_testing/MainActivity.kt @@ -0,0 +1,6 @@ +package com.example.example_widget_testing + +import io.flutter.embedding.android.FlutterActivity + +class MainActivity: FlutterActivity() { +} diff --git a/clone-instagram-login-Refactoring/android/app/src/main/res/drawable-v21/launch_background.xml b/clone-instagram-login-Refactoring/android/app/src/main/res/drawable-v21/launch_background.xml new file mode 100644 index 0000000..f74085f --- /dev/null +++ b/clone-instagram-login-Refactoring/android/app/src/main/res/drawable-v21/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/clone-instagram-login-Refactoring/android/app/src/main/res/drawable/launch_background.xml b/clone-instagram-login-Refactoring/android/app/src/main/res/drawable/launch_background.xml new file mode 100644 index 0000000..304732f --- /dev/null +++ b/clone-instagram-login-Refactoring/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/clone-instagram-login-Refactoring/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/clone-instagram-login-Refactoring/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..db77bb4b7b0906d62b1847e87f15cdcacf6a4f29 GIT binary patch literal 544 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAj~WQl7;NpOBzNqJ&XDuZK6ep0G} zXKrG8YEWuoN@d~6R2!h8bpbvhu0Wd6uZuB!w&u2PAxD2eNXD>P5D~Wn-+_Wa#27Xc zC?Zj|6r#X(-D3u$NCt}(Ms06KgJ4FxJVv{GM)!I~&n8Bnc94O7-Hd)cjDZswgC;Qs zO=b+9!WcT8F?0rF7!Uys2bs@gozCP?z~o%U|N3vA*22NaGQG zlg@K`O_XuxvZ&Ks^m&R!`&1=spLvfx7oGDKDwpwW`#iqdw@AL`7MR}m`rwr|mZgU`8P7SBkL78fFf!WnuYWm$5Z0 zNXhDbCv&49sM544K|?c)WrFfiZvCi9h0O)B3Pgg&ebxsLQ05GG~ AQ2+n{ literal 0 HcmV?d00001 diff --git a/clone-instagram-login-Refactoring/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/clone-instagram-login-Refactoring/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..17987b79bb8a35cc66c3c1fd44f5a5526c1b78be GIT binary patch literal 442 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-sk|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*D5Xx&nMcT!A!W`0S9QKQy;}1Cl^CgaH=;G9cpY;r$Q>i*pfB zP2drbID<_#qf;rPZx^FqH)F_D#*k@@q03KywUtLX8Ua?`H+NMzkczFPK3lFz@i_kW%1NOn0|D2I9n9wzH8m|-tHjsw|9>@K=iMBhxvkv6m8Y-l zytQ?X=U+MF$@3 zt`~i=@j|6y)RWMK--}M|=T`o&^Ni>IoWKHEbBXz7?A@mgWoL>!*SXo`SZH-*HSdS+ yn*9;$7;m`l>wYBC5bq;=U}IMqLzqbYCidGC!)_gkIk_C@Uy!y&wkt5C($~2D>~)O*cj@FGjOCM)M>_ixfudOh)?xMu#Fs z#}Y=@YDTwOM)x{K_j*Q;dPdJ?Mz0n|pLRx{4n|)f>SXlmV)XB04CrSJn#dS5nK2lM zrZ9#~WelCp7&e13Y$jvaEXHskn$2V!!DN-nWS__6T*l;H&Fopn?A6HZ-6WRLFP=R` zqG+CE#d4|IbyAI+rJJ`&x9*T`+a=p|0O(+s{UBcyZdkhj=yS1>AirP+0R;mf2uMgM zC}@~JfByORAh4SyRgi&!(cja>F(l*O+nd+@4m$|6K6KDn_&uvCpV23&>G9HJp{xgg zoq1^2_p9@|WEo z*X_Uko@K)qYYv~>43eQGMdbiGbo>E~Q& zrYBH{QP^@Sti!`2)uG{irBBq@y*$B zi#&(U-*=fp74j)RyIw49+0MRPMRU)+a2r*PJ$L5roHt2$UjExCTZSbq%V!HeS7J$N zdG@vOZB4v_lF7Plrx+hxo7(fCV&}fHq)$ literal 0 HcmV?d00001 diff --git a/clone-instagram-login-Refactoring/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/clone-instagram-login-Refactoring/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..d5f1c8d34e7a88e3f88bea192c3a370d44689c3c GIT binary patch literal 1031 zcmeAS@N?(olHy`uVBq!ia0vp^6F``Q8Ax83A=Cw=BuiW)N`mv#O3D+9QW+dm@{>{( zJaZG%Q-e|yQz{EjrrIztFa`(sgt!6~Yi|1%a`XoT0ojZ}lNrNjb9xjc(B0U1_% zz5^97Xt*%oq$rQy4?0GKNfJ44uvxI)gC`h-NZ|&0-7(qS@?b!5r36oQ}zyZrNO3 zMO=Or+<~>+A&uN&E!^Sl+>xE!QC-|oJv`ApDhqC^EWD|@=#J`=d#Xzxs4ah}w&Jnc z$|q_opQ^2TrnVZ0o~wh<3t%W&flvYGe#$xqda2bR_R zvPYgMcHgjZ5nSA^lJr%;<&0do;O^tDDh~=pIxA#coaCY>&N%M2^tq^U%3DB@ynvKo}b?yu-bFc-u0JHzced$sg7S3zqI(2 z#Km{dPr7I=pQ5>FuK#)QwK?Y`E`B?nP+}U)I#c1+FM*1kNvWG|a(TpksZQ3B@sD~b zpQ2)*V*TdwjFOtHvV|;OsiDqHi=6%)o4b!)x$)%9pGTsE z-JL={-Ffv+T87W(Xpooq<`r*VzWQcgBN$$`u}f>-ZQI1BB8ykN*=e4rIsJx9>z}*o zo~|9I;xof literal 0 HcmV?d00001 diff --git a/clone-instagram-login-Refactoring/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/clone-instagram-login-Refactoring/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..4d6372eebdb28e45604e46eeda8dd24651419bc0 GIT binary patch literal 1443 zcmb`G{WsKk6vsdJTdFg%tJav9_E4vzrOaqkWF|A724Nly!y+?N9`YV6wZ}5(X(D_N(?!*n3`|_r0Hc?=PQw&*vnU?QTFY zB_MsH|!j$PP;I}?dppoE_gA(4uc!jV&0!l7_;&p2^pxNo>PEcNJv za5_RT$o2Mf!<+r?&EbHH6nMoTsDOa;mN(wv8RNsHpG)`^ymG-S5By8=l9iVXzN_eG%Xg2@Xeq76tTZ*dGh~Lo9vl;Zfs+W#BydUw zCkZ$o1LqWQO$FC9aKlLl*7x9^0q%0}$OMlp@Kk_jHXOjofdePND+j!A{q!8~Jn+s3 z?~~w@4?egS02}8NuulUA=L~QQfm;MzCGd)XhiftT;+zFO&JVyp2mBww?;QByS_1w! zrQlx%{^cMj0|Bo1FjwY@Q8?Hx0cIPF*@-ZRFpPc#bBw{5@tD(5%sClzIfl8WU~V#u zm5Q;_F!wa$BSpqhN>W@2De?TKWR*!ujY;Yylk_X5#~V!L*Gw~;$%4Q8~Mad z@`-kG?yb$a9cHIApZDVZ^U6Xkp<*4rU82O7%}0jjHlK{id@?-wpN*fCHXyXh(bLt* zPc}H-x0e4E&nQ>y%B-(EL=9}RyC%MyX=upHuFhAk&MLbsF0LP-q`XnH78@fT+pKPW zu72MW`|?8ht^tz$iC}ZwLp4tB;Q49K!QCF3@!iB1qOI=?w z7In!}F~ij(18UYUjnbmC!qKhPo%24?8U1x{7o(+?^Zu0Hx81|FuS?bJ0jgBhEMzf< zCgUq7r2OCB(`XkKcN-TL>u5y#dD6D!)5W?`O5)V^>jb)P)GBdy%t$uUMpf$SNV31$ zb||OojAbvMP?T@$h_ZiFLFVHDmbyMhJF|-_)HX3%m=CDI+ID$0^C>kzxprBW)hw(v zr!Gmda);ICoQyhV_oP5+C%?jcG8v+D@9f?Dk*!BxY}dazmrT@64UrP3hlslANK)bq z$67n83eh}OeW&SV@HG95P|bjfqJ7gw$e+`Hxo!4cx`jdK1bJ>YDSpGKLPZ^1cv$ek zIB?0S<#tX?SJCLWdMd{-ME?$hc7A$zBOdIJ)4!KcAwb=VMov)nK;9z>x~rfT1>dS+ zZ6#`2v@`jgbqq)P22H)Tx2CpmM^o1$B+xT6`(v%5xJ(?j#>Q$+rx_R|7TzDZe{J6q zG1*EcU%tE?!kO%^M;3aM6JN*LAKUVb^xz8-Pxo#jR5(-KBeLJvA@-gxNHx0M-ZJLl z;#JwQoh~9V?`UVo#}{6ka@II>++D@%KqGpMdlQ}?9E*wFcf5(#XQnP$Dk5~%iX^>f z%$y;?M0BLp{O3a(-4A?ewryHrrD%cx#Q^%KY1H zNre$ve+vceSLZcNY4U(RBX&)oZn*Py()h)XkE?PL$!bNb{N5FVI2Y%LKEm%yvpyTP z(1P?z~7YxD~Rf<(a@_y` literal 0 HcmV?d00001 diff --git a/clone-instagram-login-Refactoring/android/app/src/main/res/values-night/styles.xml b/clone-instagram-login-Refactoring/android/app/src/main/res/values-night/styles.xml new file mode 100644 index 0000000..06952be --- /dev/null +++ b/clone-instagram-login-Refactoring/android/app/src/main/res/values-night/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/clone-instagram-login-Refactoring/android/app/src/main/res/values/styles.xml b/clone-instagram-login-Refactoring/android/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..cb1ef88 --- /dev/null +++ b/clone-instagram-login-Refactoring/android/app/src/main/res/values/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/clone-instagram-login-Refactoring/android/app/src/profile/AndroidManifest.xml b/clone-instagram-login-Refactoring/android/app/src/profile/AndroidManifest.xml new file mode 100644 index 0000000..d606aaa --- /dev/null +++ b/clone-instagram-login-Refactoring/android/app/src/profile/AndroidManifest.xml @@ -0,0 +1,8 @@ + + + + diff --git a/clone-instagram-login-Refactoring/android/build.gradle b/clone-instagram-login-Refactoring/android/build.gradle new file mode 100644 index 0000000..83ae220 --- /dev/null +++ b/clone-instagram-login-Refactoring/android/build.gradle @@ -0,0 +1,31 @@ +buildscript { + ext.kotlin_version = '1.6.10' + repositories { + google() + mavenCentral() + } + + dependencies { + classpath 'com.android.tools.build:gradle:7.1.2' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" + } +} + +allprojects { + repositories { + google() + mavenCentral() + } +} + +rootProject.buildDir = '../build' +subprojects { + project.buildDir = "${rootProject.buildDir}/${project.name}" +} +subprojects { + project.evaluationDependsOn(':app') +} + +task clean(type: Delete) { + delete rootProject.buildDir +} diff --git a/clone-instagram-login-Refactoring/android/gradle.properties b/clone-instagram-login-Refactoring/android/gradle.properties new file mode 100644 index 0000000..94adc3a --- /dev/null +++ b/clone-instagram-login-Refactoring/android/gradle.properties @@ -0,0 +1,3 @@ +org.gradle.jvmargs=-Xmx1536M +android.useAndroidX=true +android.enableJetifier=true diff --git a/clone-instagram-login-Refactoring/android/gradle/wrapper/gradle-wrapper.properties b/clone-instagram-login-Refactoring/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..cb24abd --- /dev/null +++ b/clone-instagram-login-Refactoring/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip diff --git a/clone-instagram-login-Refactoring/android/settings.gradle b/clone-instagram-login-Refactoring/android/settings.gradle new file mode 100644 index 0000000..44e62bc --- /dev/null +++ b/clone-instagram-login-Refactoring/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/clone-instagram-login-Refactoring/assets/facebook.png b/clone-instagram-login-Refactoring/assets/facebook.png new file mode 100644 index 0000000000000000000000000000000000000000..8f4936483d35bc5ae14c527c1608d0b5ea5d0ad0 GIT binary patch literal 33521 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%0AR_89-CMO<|y2~P<{6wkR3D~p|e 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 Kb{6j-U;H19uDBTh literal 0 HcmV?d00001 diff --git a/clone-instagram-login-Refactoring/assets/fonts/Billabong.ttf b/clone-instagram-login-Refactoring/assets/fonts/Billabong.ttf new file mode 100644 index 0000000000000000000000000000000000000000..0df4bf6a86b58a799fc94802fc6cbf83ff003ccb GIT binary patch literal 132528 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%0D{`@C;9oin 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 literal 0 HcmV?d00001 diff --git a/clone-instagram-login-Refactoring/assets/images/account_active_icon.svg b/clone-instagram-login-Refactoring/assets/images/account_active_icon.svg new file mode 100644 index 0000000..69ae99a --- /dev/null +++ b/clone-instagram-login-Refactoring/assets/images/account_active_icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/clone-instagram-login-Refactoring/assets/images/account_icon.svg b/clone-instagram-login-Refactoring/assets/images/account_icon.svg new file mode 100644 index 0000000..2b017b9 --- /dev/null +++ b/clone-instagram-login-Refactoring/assets/images/account_icon.svg @@ -0,0 +1 @@ +image (5) \ No newline at end of file diff --git a/clone-instagram-login-Refactoring/assets/images/camera_icon.svg b/clone-instagram-login-Refactoring/assets/images/camera_icon.svg new file mode 100644 index 0000000..0279244 --- /dev/null +++ b/clone-instagram-login-Refactoring/assets/images/camera_icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/clone-instagram-login-Refactoring/assets/images/comment_icon.svg b/clone-instagram-login-Refactoring/assets/images/comment_icon.svg new file mode 100644 index 0000000..c50fdf9 --- /dev/null +++ b/clone-instagram-login-Refactoring/assets/images/comment_icon.svg @@ -0,0 +1 @@ +icon instagram \ No newline at end of file diff --git a/clone-instagram-login-Refactoring/assets/images/home_active_icon.svg b/clone-instagram-login-Refactoring/assets/images/home_active_icon.svg new file mode 100644 index 0000000..a1e5803 --- /dev/null +++ b/clone-instagram-login-Refactoring/assets/images/home_active_icon.svg @@ -0,0 +1 @@ +homeCreated with Sketch. \ No newline at end of file diff --git a/clone-instagram-login-Refactoring/assets/images/home_icon.svg b/clone-instagram-login-Refactoring/assets/images/home_icon.svg new file mode 100644 index 0000000..f6b1ffa --- /dev/null +++ b/clone-instagram-login-Refactoring/assets/images/home_icon.svg @@ -0,0 +1 @@ +icon instagram \ No newline at end of file diff --git a/clone-instagram-login-Refactoring/assets/images/love_active_icon.svg b/clone-instagram-login-Refactoring/assets/images/love_active_icon.svg new file mode 100644 index 0000000..04fefb6 --- /dev/null +++ b/clone-instagram-login-Refactoring/assets/images/love_active_icon.svg @@ -0,0 +1 @@ +like \ No newline at end of file diff --git a/clone-instagram-login-Refactoring/assets/images/love_icon.svg b/clone-instagram-login-Refactoring/assets/images/love_icon.svg new file mode 100644 index 0000000..3b65caf --- /dev/null +++ b/clone-instagram-login-Refactoring/assets/images/love_icon.svg @@ -0,0 +1 @@ +like \ No newline at end of file diff --git a/clone-instagram-login-Refactoring/assets/images/loved_icon.svg b/clone-instagram-login-Refactoring/assets/images/loved_icon.svg new file mode 100644 index 0000000..c70376e --- /dev/null +++ b/clone-instagram-login-Refactoring/assets/images/loved_icon.svg @@ -0,0 +1 @@ +like \ No newline at end of file diff --git a/clone-instagram-login-Refactoring/assets/images/message_icon.svg b/clone-instagram-login-Refactoring/assets/images/message_icon.svg new file mode 100644 index 0000000..2f96bc5 --- /dev/null +++ b/clone-instagram-login-Refactoring/assets/images/message_icon.svg @@ -0,0 +1 @@ +Untitled-1 \ No newline at end of file diff --git a/clone-instagram-login-Refactoring/assets/images/save_icon.svg b/clone-instagram-login-Refactoring/assets/images/save_icon.svg new file mode 100644 index 0000000..a141198 --- /dev/null +++ b/clone-instagram-login-Refactoring/assets/images/save_icon.svg @@ -0,0 +1 @@ +icon instagram \ No newline at end of file diff --git a/clone-instagram-login-Refactoring/assets/images/search_active_icon.svg b/clone-instagram-login-Refactoring/assets/images/search_active_icon.svg new file mode 100644 index 0000000..1d5b6b3 --- /dev/null +++ b/clone-instagram-login-Refactoring/assets/images/search_active_icon.svg @@ -0,0 +1,2 @@ + + diff --git a/clone-instagram-login-Refactoring/assets/images/search_icon.svg b/clone-instagram-login-Refactoring/assets/images/search_icon.svg new file mode 100644 index 0000000..6a1fd2f --- /dev/null +++ b/clone-instagram-login-Refactoring/assets/images/search_icon.svg @@ -0,0 +1 @@ +icon instagram \ No newline at end of file diff --git a/clone-instagram-login-Refactoring/assets/images/upload_active_icon.svg b/clone-instagram-login-Refactoring/assets/images/upload_active_icon.svg new file mode 100644 index 0000000..954ba39 --- /dev/null +++ b/clone-instagram-login-Refactoring/assets/images/upload_active_icon.svg @@ -0,0 +1 @@ +upload_icon \ No newline at end of file diff --git a/clone-instagram-login-Refactoring/assets/images/upload_icon.svg b/clone-instagram-login-Refactoring/assets/images/upload_icon.svg new file mode 100644 index 0000000..ec71556 --- /dev/null +++ b/clone-instagram-login-Refactoring/assets/images/upload_icon.svg @@ -0,0 +1 @@ +icon instagram \ No newline at end of file diff --git a/clone-instagram-login-Refactoring/assets/instagram_logo.png b/clone-instagram-login-Refactoring/assets/instagram_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..6b66c8253aa359a69d9c5fa9b22b9bd971ddda13 GIT binary patch literal 20129 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 Vw}BNoqL5+0WNZM{uh4ai`8U`U(47DP literal 0 HcmV?d00001 diff --git a/clone-instagram-login-Refactoring/integration_test/app_test.dart b/clone-instagram-login-Refactoring/integration_test/app_test.dart new file mode 100644 index 0000000..1ada004 --- /dev/null +++ b/clone-instagram-login-Refactoring/integration_test/app_test.dart @@ -0,0 +1,206 @@ +import 'package:example_widget_testing/app/modules/account/account_page.dart'; +import 'package:example_widget_testing/app/modules/activity/activity_page.dart'; +import 'package:example_widget_testing/app/modules/home/home_page.dart'; +import 'package:example_widget_testing/app/modules/login/login_page.dart'; +import 'package:example_widget_testing/app/modules/post/post_page.dart'; +import 'package:example_widget_testing/app/modules/search/search_page.dart'; +import 'package:example_widget_testing/app/modules/upload/upload_page.dart'; +import 'package:example_widget_testing/core/values/constant/post_json.dart'; +import 'package:example_widget_testing/core/values/constant/profile_json.dart'; +import 'package:example_widget_testing/core/values/constant/search_json.dart'; +import 'package:example_widget_testing/core/values/constant/story_json.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:integration_test/integration_test.dart'; + +void main() { + IntegrationTestWidgetsFlutterBinding.ensureInitialized(); + + var routes = { + '/login': (context) => const LoginPage(), + '/home': (context) => + HomePage(posts: posts, stories: stories, profileData: profileJson), + '/search': (context) => SearchPage(searchPosts: searchImages), + '/upload': (context) => const UploadPage(), + '/activity': (context) => const ActivityPage(), + '/account': (context) => + AccountPage(profileData: profileJson, posts: posts, stories: stories), + '/post': (context) => PostPage(posts: posts), + }; + + group('end-to-end test', () { + testWidgets('Change dropdown value', (tester) async { + await tester.pumpWidget(MaterialApp( + home: const LoginPage(), + routes: routes, + )); + + // find DropdownButton with key language_dropdown + final Finder dropdownButton = find.byKey(const Key('language_dropdown')); + + // expect DropdownButton is found + expect(dropdownButton, findsOneWidget); + + expect(find.text('English'), findsOneWidget); + + // tap on DropdownButton + await tester.tap(dropdownButton); + + // move to next frame + await tester.pumpAndSettle(); + + // find DropdownMenuItem with key language_dropdown_item_Arabic + final Finder dropdownMenuItem = + find.byKey(const Key("language_dropdown_item_Italian")); + + expect(dropdownMenuItem, findsNWidgets(2)); + + // tap on DropdownMenuItem + await tester.tap(dropdownMenuItem.last); + + // move to next frame + await tester.pumpAndSettle(); + + // expect find text Arabic + expect(find.text('Italian'), findsOneWidget); + }); + + testWidgets('Fill username and password then tap on login button', + (tester) async { + await tester.pumpWidget(MaterialApp( + home: const LoginPage(), + routes: routes, + )); + + // find TextField with key password_textfield + final Finder passwordTextField = + find.byKey(const Key('password_textfield')); + + // enter text into TextField + await tester.enterText(passwordTextField, 'test'); + + // find ElevatedButton with key login_button_elevated_button + final Finder loginButton = + find.byKey(const Key('login_button_elevated_button')); + + // tap on ElevatedButton + await tester.tap(loginButton); + + // expect nothing happen + await tester.pumpAndSettle(); + + // find AppBar with key home_page_appbar + final Finder appBar = find.byKey(const Key('home_page_appbar')); + + // check if AppBar is not found + expect(appBar, findsNothing); + }); + + testWidgets('Fill username and password then tap on login button', + (tester) async { + // Load app widget. + await tester.pumpWidget(MaterialApp( + home: const LoginPage(), + routes: routes, + )); + + // find TextField with key username_textfield + final Finder usernameTextField = + find.byKey(const Key('username_textfield')); + + // enter text into TextField + await tester.enterText(usernameTextField, 'test'); + + // find TextField with key password_textfield + final Finder passwordTextField = + find.byKey(const Key('password_textfield')); + + // enter text into TextField + await tester.enterText(passwordTextField, 'test'); + + // find ElevatedButton with key login_button_elevated_button + final Finder loginButton = + find.byKey(const Key('login_button_elevated_button')); + + // tap on ElevatedButton + await tester.tap(loginButton); + + // move to next frame + await tester.pumpAndSettle(); + + // find AppBar with key home_page_appbar + final Finder appBar = find.byKey(const Key('home_page_appbar')); + + // check if AppBar is found + expect(appBar, findsOneWidget); + }); + + testWidgets('Open home page then navigate to search page', (tester) async { + // Load app widget. + await tester.pumpWidget(MaterialApp( + home: HomePage( + posts: posts, + stories: stories, + profileData: profileJson, + ), + routes: routes, + )); + + // scroll to bottom + await tester.fling( + find.byKey(const Key('home_page_single_child_scroll_view')), + const Offset(0, 300), + 1000, + ); + + // find search icon in bottom navbar + final Finder searchIcon = find.byKey(const Key('bottom_item_1')); + + // tap on search icon + await tester.tap(searchIcon); + + // move to next frame + await tester.pumpAndSettle(const Duration(seconds: 5)); + + // navigate to search page + expect(find.byKey(const Key('search_page_app_bar_preferred_size')), + findsOneWidget); + + // find search up icon in search page + final Finder uploadIcon = find.byKey(const Key('bottom_item_2')); + + // tap on upload icon + await tester.tap(uploadIcon); + + // move to next frame + await tester.pumpAndSettle(); + + // navigate to upload page + expect(find.byKey(const Key('upload_page_appbar')), findsOneWidget); + + // find activity icon in bottom navbar + final Finder activityIcon = find.byKey(const Key('bottom_item_3')); + + // tap on activity icon + await tester.tap(activityIcon); + + // move to next frame + await tester.pumpAndSettle(); + + // navigate to activity page + expect(find.byKey(const Key('activity_page_appbar')), findsOneWidget); + + // find account icon in bottom navbar + final Finder accountIcon = find.byKey(const Key('bottom_item_4')); + + // tap on account icon + await tester.tap(accountIcon); + + // move to next frame + await tester.pumpAndSettle(); + + // navigate to account page + expect(find.byKey(const Key('app_bar_account')), findsOneWidget); + }); + }); +} diff --git a/clone-instagram-login-Refactoring/integration_test/calculator_test.dart b/clone-instagram-login-Refactoring/integration_test/calculator_test.dart new file mode 100644 index 0000000..ba8b78b --- /dev/null +++ b/clone-instagram-login-Refactoring/integration_test/calculator_test.dart @@ -0,0 +1,61 @@ +import 'package:example_widget_testing/app/modules/calculator.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:integration_test/integration_test.dart'; + +void main() { + IntegrationTestWidgetsFlutterBinding.ensureInitialized(); + + group('end-to-end test', () { + testWidgets('Change dropdown value', (tester) async { + await tester.pumpWidget( + const MaterialApp( + home: SimpleCalculator(), + ), + ); + + const variableA = '2'; + const variableB = '3'; + const result = '5'; + + // find text field with key variableA + final Finder variableAField = find.byKey(const Key('variableA')); + + // expect text field is found + expect(variableAField, findsOneWidget); + + // find text field with key variableB + final Finder variableBField = find.byKey(const Key('variableB')); + + // expect text field is found + expect(variableBField, findsOneWidget); + + // enter text 2 + await tester.enterText(variableAField, variableA); + + // enter text 3 + await tester.enterText(variableBField, variableB); + + // find button with key addButton + final Finder addButton = find.byKey(const Key('addButton')); + + // expect button is found + expect(addButton, findsOneWidget); + + // tap on button + await tester.tap(addButton); + + // move to next frame + await tester.pumpAndSettle(); + + // find text with key result + final Finder resultTextFinder = find.byKey(const Key('result')); + + // expect text is found + expect(resultTextFinder, findsOneWidget); + + // expect text is 5 + expect(find.text(result), findsOneWidget); + }); + }); +} diff --git a/clone-instagram-login-Refactoring/ios/.gitignore b/clone-instagram-login-Refactoring/ios/.gitignore new file mode 100644 index 0000000..7a7f987 --- /dev/null +++ b/clone-instagram-login-Refactoring/ios/.gitignore @@ -0,0 +1,34 @@ +**/dgph +*.mode1v3 +*.mode2v3 +*.moved-aside +*.pbxuser +*.perspectivev3 +**/*sync/ +.sconsign.dblite +.tags* +**/.vagrant/ +**/DerivedData/ +Icon? +**/Pods/ +**/.symlinks/ +profile +xcuserdata +**/.generated/ +Flutter/App.framework +Flutter/Flutter.framework +Flutter/Flutter.podspec +Flutter/Generated.xcconfig +Flutter/ephemeral/ +Flutter/app.flx +Flutter/app.zip +Flutter/flutter_assets/ +Flutter/flutter_export_environment.sh +ServiceDefinitions.json +Runner/GeneratedPluginRegistrant.* + +# Exceptions to above rules. +!default.mode1v3 +!default.mode2v3 +!default.pbxuser +!default.perspectivev3 diff --git a/clone-instagram-login-Refactoring/ios/Flutter/AppFrameworkInfo.plist b/clone-instagram-login-Refactoring/ios/Flutter/AppFrameworkInfo.plist new file mode 100644 index 0000000..9625e10 --- /dev/null +++ b/clone-instagram-login-Refactoring/ios/Flutter/AppFrameworkInfo.plist @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + App + CFBundleIdentifier + io.flutter.flutter.app + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + App + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + MinimumOSVersion + 11.0 + + diff --git a/clone-instagram-login-Refactoring/ios/Flutter/Debug.xcconfig b/clone-instagram-login-Refactoring/ios/Flutter/Debug.xcconfig new file mode 100644 index 0000000..592ceee --- /dev/null +++ b/clone-instagram-login-Refactoring/ios/Flutter/Debug.xcconfig @@ -0,0 +1 @@ +#include "Generated.xcconfig" diff --git a/clone-instagram-login-Refactoring/ios/Flutter/Release.xcconfig b/clone-instagram-login-Refactoring/ios/Flutter/Release.xcconfig new file mode 100644 index 0000000..592ceee --- /dev/null +++ b/clone-instagram-login-Refactoring/ios/Flutter/Release.xcconfig @@ -0,0 +1 @@ +#include "Generated.xcconfig" diff --git a/clone-instagram-login-Refactoring/ios/Runner.xcodeproj/project.pbxproj b/clone-instagram-login-Refactoring/ios/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000..1d56de4 --- /dev/null +++ b/clone-instagram-login-Refactoring/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,481 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 9705A1C41CF9048500538489 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; + 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; + 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 97C146EB1CF9000F007C117D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 9740EEB11CF90186004384FC /* Flutter */ = { + isa = PBXGroup; + children = ( + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 9740EEB31CF90195004384FC /* Generated.xcconfig */, + ); + name = Flutter; + sourceTree = ""; + }; + 97C146E51CF9000F007C117D = { + isa = PBXGroup; + children = ( + 9740EEB11CF90186004384FC /* Flutter */, + 97C146F01CF9000F007C117D /* Runner */, + 97C146EF1CF9000F007C117D /* Products */, + ); + sourceTree = ""; + }; + 97C146EF1CF9000F007C117D /* Products */ = { + isa = PBXGroup; + children = ( + 97C146EE1CF9000F007C117D /* Runner.app */, + ); + name = Products; + sourceTree = ""; + }; + 97C146F01CF9000F007C117D /* Runner */ = { + isa = PBXGroup; + children = ( + 97C146FA1CF9000F007C117D /* Main.storyboard */, + 97C146FD1CF9000F007C117D /* Assets.xcassets */, + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, + 97C147021CF9000F007C117D /* Info.plist */, + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, + ); + path = Runner; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 97C146ED1CF9000F007C117D /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 9740EEB61CF901F6004384FC /* Run Script */, + 97C146EA1CF9000F007C117D /* Sources */, + 97C146EB1CF9000F007C117D /* Frameworks */, + 97C146EC1CF9000F007C117D /* Resources */, + 9705A1C41CF9048500538489 /* Embed Frameworks */, + 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Runner; + productName = Runner; + productReference = 97C146EE1CF9000F007C117D /* Runner.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 97C146E61CF9000F007C117D /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1300; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 97C146ED1CF9000F007C117D = { + CreatedOnToolsVersion = 7.3.1; + LastSwiftMigration = 1100; + }; + }; + }; + buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 97C146E51CF9000F007C117D; + productRefGroup = 97C146EF1CF9000F007C117D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 97C146ED1CF9000F007C117D /* Runner */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 97C146EC1CF9000F007C117D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Thin Binary"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + }; + 9740EEB61CF901F6004384FC /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 97C146EA1CF9000F007C117D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 97C146FA1CF9000F007C117D /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C146FB1CF9000F007C117D /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C147001CF9000F007C117D /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 249021D3217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Profile; + }; + 249021D4217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.exampleWidgetTesting; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Profile; + }; + 97C147031CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 97C147041CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 97C147061CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.exampleWidgetTesting; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 97C147071CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.exampleWidgetTesting; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147031CF9000F007C117D /* Debug */, + 97C147041CF9000F007C117D /* Release */, + 249021D3217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147061CF9000F007C117D /* Debug */, + 97C147071CF9000F007C117D /* Release */, + 249021D4217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 97C146E61CF9000F007C117D /* Project object */; +} diff --git a/clone-instagram-login-Refactoring/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/clone-instagram-login-Refactoring/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/clone-instagram-login-Refactoring/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/clone-instagram-login-Refactoring/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/clone-instagram-login-Refactoring/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/clone-instagram-login-Refactoring/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/clone-instagram-login-Refactoring/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/clone-instagram-login-Refactoring/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/clone-instagram-login-Refactoring/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/clone-instagram-login-Refactoring/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/clone-instagram-login-Refactoring/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 0000000..c87d15a --- /dev/null +++ b/clone-instagram-login-Refactoring/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/clone-instagram-login-Refactoring/ios/Runner.xcworkspace/contents.xcworkspacedata b/clone-instagram-login-Refactoring/ios/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..1d526a1 --- /dev/null +++ b/clone-instagram-login-Refactoring/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/clone-instagram-login-Refactoring/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/clone-instagram-login-Refactoring/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/clone-instagram-login-Refactoring/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/clone-instagram-login-Refactoring/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/clone-instagram-login-Refactoring/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/clone-instagram-login-Refactoring/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/clone-instagram-login-Refactoring/ios/Runner/AppDelegate.swift b/clone-instagram-login-Refactoring/ios/Runner/AppDelegate.swift new file mode 100644 index 0000000..70693e4 --- /dev/null +++ b/clone-instagram-login-Refactoring/ios/Runner/AppDelegate.swift @@ -0,0 +1,13 @@ +import UIKit +import Flutter + +@UIApplicationMain +@objc class AppDelegate: FlutterAppDelegate { + override func application( + _ application: UIApplication, + didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? + ) -> Bool { + GeneratedPluginRegistrant.register(with: self) + return super.application(application, didFinishLaunchingWithOptions: launchOptions) + } +} diff --git a/clone-instagram-login-Refactoring/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/clone-instagram-login-Refactoring/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..d36b1fa --- /dev/null +++ b/clone-instagram-login-Refactoring/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,122 @@ +{ + "images" : [ + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "20x20", + "idiom" : "iphone", + "filename" : "Icon-App-20x20@3x.png", + "scale" : "3x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "Icon-App-29x29@3x.png", + "scale" : "3x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "Icon-App-40x40@3x.png", + "scale" : "3x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@2x.png", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "Icon-App-60x60@3x.png", + "scale" : "3x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@1x.png", + "scale" : "1x" + }, + { + "size" : "20x20", + "idiom" : "ipad", + "filename" : "Icon-App-20x20@2x.png", + "scale" : "2x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@1x.png", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "ipad", + "filename" : "Icon-App-29x29@2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@1x.png", + "scale" : "1x" + }, + { + "size" : "40x40", + "idiom" : "ipad", + "filename" : "Icon-App-40x40@2x.png", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@1x.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-App-76x76@2x.png", + "scale" : "2x" + }, + { + "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "Icon-App-83.5x83.5@2x.png", + "scale" : "2x" + }, + { + "size" : "1024x1024", + "idiom" : "ios-marketing", + "filename" : "Icon-App-1024x1024@1x.png", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/clone-instagram-login-Refactoring/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/clone-instagram-login-Refactoring/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..dc9ada4725e9b0ddb1deab583e5b5102493aa332 GIT binary patch literal 10932 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 literal 0 HcmV?d00001 diff --git a/clone-instagram-login-Refactoring/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/clone-instagram-login-Refactoring/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..f091b6b0bca859a3f474b03065bef75ba58a9e4c GIT binary patch literal 1588 zcmV-42Fv-0P)C1SqPt}wig>|5Crh^=oyX$BK<}M8eLU3e2hGT;=G|!_SP)7zNI6fqUMB=)y zRAZ>eDe#*r`yDAVgB_R*LB*MAc)8(b{g{9McCXW!lq7r(btRoB9!8B-#AI6JMb~YFBEvdsV)`mEQO^&#eRKx@b&x- z5lZm*!WfD8oCLzfHGz#u7sT0^VLMI1MqGxF^v+`4YYnVYgk*=kU?HsSz{v({E3lb9 z>+xILjBN)t6`=g~IBOelGQ(O990@BfXf(DRI5I$qN$0Gkz-FSc$3a+2fX$AedL4u{ z4V+5Ong(9LiGcIKW?_352sR;LtDPmPJXI{YtT=O8=76o9;*n%_m|xo!i>7$IrZ-{l z-x3`7M}qzHsPV@$v#>H-TpjDh2UE$9g6sysUREDy_R(a)>=eHw-WAyfIN z*qb!_hW>G)Tu8nSw9yn#3wFMiLcfc4pY0ek1}8(NqkBR@t4{~oC>ryc-h_ByH(Cg5 z>ao-}771+xE3um9lWAY1FeQFxowa1(!J(;Jg*wrg!=6FdRX+t_<%z&d&?|Bn){>zm zZQj(aA_HeBY&OC^jj*)N`8fa^ePOU72VpInJoI1?`ty#lvlNzs(&MZX+R%2xS~5Kh zX*|AU4QE#~SgPzOXe9>tRj>hjU@c1k5Y_mW*Jp3fI;)1&g3j|zDgC+}2Q_v%YfDax z!?umcN^n}KYQ|a$Lr+51Nf9dkkYFSjZZjkma$0KOj+;aQ&721~t7QUKx61J3(P4P1 zstI~7-wOACnWP4=8oGOwz%vNDqD8w&Q`qcNGGrbbf&0s9L0De{4{mRS?o0MU+nR_! zrvshUau0G^DeMhM_v{5BuLjb#Hh@r23lDAk8oF(C+P0rsBpv85EP>4CVMx#04MOfG z;P%vktHcXwTj~+IE(~px)3*MY77e}p#|c>TD?sMatC0Tu4iKKJ0(X8jxQY*gYtxsC z(zYC$g|@+I+kY;dg_dE>scBf&bP1Nc@Hz<3R)V`=AGkc;8CXqdi=B4l2k|g;2%#m& z*jfX^%b!A8#bI!j9-0Fi0bOXl(-c^AB9|nQaE`*)Hw+o&jS9@7&Gov#HbD~#d{twV zXd^Tr^mWLfFh$@Dr$e;PBEz4(-2q1FF0}c;~B5sA}+Q>TOoP+t>wf)V9Iy=5ruQa;z)y zI9C9*oUga6=hxw6QasLPnee@3^Rr*M{CdaL5=R41nLs(AHk_=Y+A9$2&H(B7!_pURs&8aNw7?`&Z&xY_Ye z)~D5Bog^td-^QbUtkTirdyK^mTHAOuptDflut!#^lnKqU md>ggs(5nOWAqO?umG&QVYK#ibz}*4>0000U6E9hRK9^#O7(mu>ETqrXGsduA8$)?`v2seloOCza43C{NQ$$gAOH**MCn0Q?+L7dl7qnbRdqZ8LSVp1ItDxhxD?t@5_yHg6A8yI zC*%Wgg22K|8E#!~cTNYR~@Y9KepMPrrB8cABapAFa=`H+UGhkXUZV1GnwR1*lPyZ;*K(i~2gp|@bzp8}og7e*#% zEnr|^CWdVV!-4*Y_7rFvlww2Ze+>j*!Z!pQ?2l->4q#nqRu9`ELo6RMS5=br47g_X zRw}P9a7RRYQ%2Vsd0Me{_(EggTnuN6j=-?uFS6j^u69elMypu?t>op*wBx<=Wx8?( ztpe^(fwM6jJX7M-l*k3kEpWOl_Vk3@(_w4oc}4YF4|Rt=2V^XU?#Yz`8(e?aZ@#li0n*=g^qOcVpd-Wbok=@b#Yw zqn8u9a)z>l(1kEaPYZ6hwubN6i<8QHgsu0oE) ziJ(p;Wxm>sf!K+cw>R-(^Y2_bahB+&KI9y^);#0qt}t-$C|Bo71lHi{_+lg#f%RFy z0um=e3$K3i6K{U_4K!EX?F&rExl^W|G8Z8;`5z-k}OGNZ0#WVb$WCpQu-_YsiqKP?BB# vzVHS-CTUF4Ozn5G+mq_~Qqto~ahA+K`|lyv3(-e}00000NkvXXu0mjfd`9t{ literal 0 HcmV?d00001 diff --git a/clone-instagram-login-Refactoring/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/clone-instagram-login-Refactoring/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..d0ef06e7edb86cdfe0d15b4b0d98334a86163658 GIT binary patch literal 1716 zcmds$`#;kQ7{|XelZftyR5~xW7?MLxS4^|Hw3&P7^y)@A9Fj{Xm1~_CIV^XZ%SLBn zA;!r`GqGHg=7>xrB{?psZQs88ZaedDoagm^KF{a*>G|dJWRSe^I$DNW008I^+;Kjt z>9p3GNR^I;v>5_`+91i(*G;u5|L+Bu6M=(afLjtkya#yZ175|z$pU~>2#^Z_pCZ7o z1c6UNcv2B3?; zX%qdxCXQpdKRz=#b*q0P%b&o)5ZrNZt7$fiETSK_VaY=mb4GK`#~0K#~9^ zcY!`#Af+4h?UMR-gMKOmpuYeN5P*RKF!(tb`)oe0j2BH1l?=>y#S5pMqkx6i{*=V9JF%>N8`ewGhRE(|WohnD59R^$_36{4>S zDFlPC5|k?;SPsDo87!B{6*7eqmMdU|QZ84>6)Kd9wNfh90=y=TFQay-0__>=<4pk& zYDjgIhL-jQ9o>z32K)BgAH+HxamL{ZL~ozu)Qqe@a`FpH=oQRA8=L-m-1dam(Ix2V z?du;LdMO+ooBelr^_y4{|44tmgH^2hSzPFd;U^!1p>6d|o)(-01z{i&Kj@)z-yfWQ)V#3Uo!_U}q3u`(fOs`_f^ueFii1xBNUB z6MecwJN$CqV&vhc+)b(p4NzGGEgwWNs z@*lUV6LaduZH)4_g!cE<2G6#+hJrWd5(|p1Z;YJ7ifVHv+n49btR}dq?HHDjl{m$T z!jLZcGkb&XS2OG~u%&R$(X+Z`CWec%QKt>NGYvd5g20)PU(dOn^7%@6kQb}C(%=vr z{?RP(z~C9DPnL{q^@pVw@|Vx~@3v!9dCaBtbh2EdtoNHm4kGxp>i#ct)7p|$QJs+U z-a3qtcPvhihub?wnJqEt>zC@)2suY?%-96cYCm$Q8R%-8$PZYsx3~QOLMDf(piXMm zB=<63yQk1AdOz#-qsEDX>>c)EES%$owHKue;?B3)8aRd}m~_)>SL3h2(9X;|+2#7X z+#2)NpD%qJvCQ0a-uzZLmz*ms+l*N}w)3LRQ*6>|Ub-fyptY(keUxw+)jfwF5K{L9 z|Cl_w=`!l_o><384d&?)$6Nh(GAm=4p_;{qVn#hI8lqewW7~wUlyBM-4Z|)cZr?Rh z=xZ&Ol>4(CU85ea(CZ^aO@2N18K>ftl8>2MqetAR53_JA>Fal`^)1Y--Am~UDa4th zKfCYpcXky$XSFDWBMIl(q=Mxj$iMBX=|j9P)^fDmF(5(5$|?Cx}DKEJa&XZP%OyE`*GvvYQ4PV&!g2|L^Q z?YG}tx;sY@GzMmsY`7r$P+F_YLz)(e}% zyakqFB<6|x9R#TdoP{R$>o7y(-`$$p0NxJ6?2B8tH)4^yF(WhqGZlM3=9Ibs$%U1w zWzcss*_c0=v_+^bfb`kBFsI`d;ElwiU%frgRB%qBjn@!0U2zZehBn|{%uNIKBA7n= zzE`nnwTP85{g;8AkYxA68>#muXa!G>xH22D1I*SiD~7C?7Za+9y7j1SHiuSkKK*^O zsZ==KO(Ua#?YUpXl{ViynyT#Hzk=}5X$e04O@fsMQjb}EMuPWFO0e&8(2N(29$@Vd zn1h8Yd>6z(*p^E{c(L0Lg=wVdupg!z@WG;E0k|4a%s7Up5C0c)55XVK*|x9RQeZ1J@1v9MX;>n34(i>=YE@Iur`0Vah(inE3VUFZNqf~tSz{1fz3Fsn_x4F>o(Yo;kpqvBe-sbwH(*Y zu$JOl0b83zu$JMvy<#oH^Wl>aWL*?aDwnS0iEAwC?DK@aT)GHRLhnz2WCvf3Ba;o=aY7 z2{Asu5MEjGOY4O#Ggz@@J;q*0`kd2n8I3BeNuMmYZf{}pg=jTdTCrIIYuW~luKecn z+E-pHY%ohj@uS0%^ z&(OxwPFPD$+#~`H?fMvi9geVLci(`K?Kj|w{rZ9JgthFHV+=6vMbK~0)Ea<&WY-NC zy-PnZft_k2tfeQ*SuC=nUj4H%SQ&Y$gbH4#2sT0cU0SdFs=*W*4hKGpuR1{)mV;Qf5pw4? zfiQgy0w3fC*w&Bj#{&=7033qFR*<*61B4f9K%CQvxEn&bsWJ{&winp;FP!KBj=(P6 z4Z_n4L7cS;ao2)ax?Tm|I1pH|uLpDSRVghkA_UtFFuZ0b2#>!8;>-_0ELjQSD-DRd z4im;599VHDZYtnWZGAB25W-e(2VrzEh|etsv2YoP#VbIZ{aFkwPrzJ#JvCvA*mXS& z`}Q^v9(W4GiSs}#s7BaN!WA2bniM$0J(#;MR>uIJ^uvgD3GS^%*ikdW6-!VFUU?JV zZc2)4cMsX@j z5HQ^e3BUzOdm}yC-xA%SY``k$rbfk z;CHqifhU*jfGM@DkYCecD9vl*qr58l6x<8URB=&%{!Cu3RO*MrKZ4VO}V6R0a zZw3Eg^0iKWM1dcTYZ0>N899=r6?+adUiBKPciJw}L$=1f4cs^bio&cr9baLF>6#BM z(F}EXe-`F=f_@`A7+Q&|QaZ??Txp_dB#lg!NH=t3$G8&06MFhwR=Iu*Im0s_b2B@| znW>X}sy~m#EW)&6E&!*0%}8UAS)wjt+A(io#wGI@Z2S+Ms1Cxl%YVE800007ip7{`C_J2TxPmfw%h$|%acrYHt)Re^PB%O&&=~a zhS(%I#+V>J-vjIib^<+s%ludY7y^C(P8nmqn9fp!i+?vr`bziDE=bx`%2W#Xyrj|i z!XQ4v1%L`m{7KT7q+LZNB^h8Ha2e=`Wp65^0;J00)_^G=au=8Yo;1b`CV&@#=jIBo zjN^JNVfYSs)+kDdGe7`1&8!?MQYKS?DuHZf3iogk_%#9E|5S zWeHrmAo>P;ejX7mwq#*}W25m^ZI+{(Z8fI?4jM_fffY0nok=+88^|*_DwcW>mR#e+ zX$F_KMdb6sRz!~7KkyN0G(3XQ+;z3X%PZ4gh;n-%62U<*VUKNv(D&Q->Na@Xb&u5Q3`3DGf+a8O5x7c#7+R+EAYl@R5us)CIw z7sT@_y~Ao@uL#&^LIh&QceqiT^+lb0YbFZt_SHOtWA%mgPEKVNvVgCsXy{5+zl*X8 zCJe)Q@y>wH^>l4;h1l^Y*9%-23TSmE>q5nI@?mt%n;Sj4Qq`Z+ib)a*a^cJc%E9^J zB;4s+K@rARbcBLT5P=@r;IVnBMKvT*)ew*R;&8vu%?Z&S>s?8?)3*YawM0P4!q$Kv zMmKh3lgE~&w&v%wVzH3Oe=jeNT=n@Y6J6TdHWTjXfX~-=1A1Bw`EW8rn}MqeI34nh zexFeA?&C3B2(E?0{drE@DA2pu(A#ElY&6el60Rn|Qpn-FkfQ8M93AfWIr)drgDFEU zghdWK)^71EWCP(@(=c4kfH1Y(4iugD4fve6;nSUpLT%!)MUHs1!zJYy4y||C+SwQ! z)KM&$7_tyM`sljP2fz6&Z;jxRn{Wup8IOUx8D4uh&(=O zx-7$a;U><*5L^!%xRlw)vAbh;sdlR||& ze}8_8%)c2Fwy=F&H|LM+p{pZB5DKTx>Y?F1N%BlZkXf!}JeGuMZk~LPi7{cidvUGB zAJ4LVeNV%XO>LTrklB#^-;8nb;}6l;1oW&WS=Mz*Az!4cqqQzbOSFq`$Q%PfD7srM zpKgP-D_0XPTRX*hAqeq0TDkJ;5HB1%$3Np)99#16c{ zJImlNL(npL!W|Gr_kxl1GVmF5&^$^YherS7+~q$p zt}{a=*RiD2Ikv6o=IM1kgc7zqpaZ;OB)P!1zz*i3{U()Dq#jG)egvK}@uFLa`oyWZ zf~=MV)|yJn`M^$N%ul5);JuQvaU1r2wt(}J_Qgyy`qWQI`hEeRX0uC@c1(dQ2}=U$ tNIIaX+dr)NRWXcxoR{>fqI{SF_dm1Ylv~=3YHI)h002ovPDHLkV1g(pWS;;4 literal 0 HcmV?d00001 diff --git a/clone-instagram-login-Refactoring/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/clone-instagram-login-Refactoring/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c8f9ed8f5cee1c98386d13b17e89f719e83555b2 GIT binary patch literal 1895 zcmV-t2blPYP)FQtfgmafE#=YDCq`qUBt#QpG%*H6QHY765~R=q zZ6iudfM}q!Pz#~9JgOi8QJ|DSu?1-*(kSi1K4#~5?#|rh?sS)(-JQqX*}ciXJ56_H zdw=^s_srbAdqxlvGyrgGet#6T7_|j;95sL%MtM;q86vOxKM$f#puR)Bjv9Zvz9-di zXOTSsZkM83)E9PYBXC<$6(|>lNLVBb&&6y{NByFCp%6+^ALR@NCTse_wqvNmSWI-m z!$%KlHFH2omF!>#%1l3LTZg(s7eof$7*xB)ZQ0h?ejh?Ta9fDv59+u#MokW+1t8Zb zgHv%K(u9G^Lv`lh#f3<6!JVTL3(dCpxHbnbA;kKqQyd1~^Xe0VIaYBSWm6nsr;dFj z4;G-RyL?cYgsN1{L4ZFFNa;8)Rv0fM0C(~Tkit94 zz#~A)59?QjD&pAPSEQ)p8gP|DS{ng)j=2ux)_EzzJ773GmQ_Cic%3JJhC0t2cx>|v zJcVusIB!%F90{+}8hG3QU4KNeKmK%T>mN57NnCZ^56=0?&3@!j>a>B43pi{!u z7JyDj7`6d)qVp^R=%j>UIY6f+3`+qzIc!Y_=+uN^3BYV|o+$vGo-j-Wm<10%A=(Yk^beI{t%ld@yhKjq0iNjqN4XMGgQtbKubPM$JWBz}YA65k%dm*awtC^+f;a-x4+ddbH^7iDWGg&N0n#MW{kA|=8iMUiFYvMoDY@sPC#t$55gn6ykUTPAr`a@!(;np824>2xJthS z*ZdmT`g5-`BuJs`0LVhz+D9NNa3<=6m;cQLaF?tCv8)zcRSh66*Z|vXhG@$I%U~2l z?`Q zykI#*+rQ=z6Jm=Bui-SfpDYLA=|vzGE(dYm=OC8XM&MDo7ux4UF1~0J1+i%aCUpRe zt3L_uNyQ*cE(38Uy03H%I*)*Bh=Lb^Xj3?I^Hnbeq72(EOK^Y93CNp*uAA{5Lc=ky zx=~RKa4{iTm{_>_vSCm?$Ej=i6@=m%@VvAITnigVg{&@!7CDgs908761meDK5azA} z4?=NOH|PdvabgJ&fW2{Mo$Q0CcD8Qc84%{JPYt5EiG{MdLIAeX%T=D7NIP4%Hw}p9 zg)==!2Lbp#j{u_}hMiao9=!VSyx0gHbeCS`;q&vzeq|fs`y&^X-lso(Ls@-706qmA z7u*T5PMo_w3{se1t2`zWeO^hOvTsohG_;>J0wVqVe+n)AbQCx)yh9;w+J6?NF5Lmo zecS@ieAKL8%bVd@+-KT{yI|S}O>pYckUFs;ry9Ow$CD@ztz5K-*D$^{i(_1llhSh^ zEkL$}tsQt5>QA^;QgjgIfBDmcOgi5YDyu?t6vSnbp=1+@6D& z5MJ}B8q;bRlVoxasyhcUF1+)o`&3r0colr}QJ3hcSdLu;9;td>kf@Tcn<@9sIx&=m z;AD;SCh95=&p;$r{Xz3iWCO^MX83AGJ(yH&eTXgv|0=34#-&WAmw{)U7OU9!Wz^!7 zZ%jZFi@JR;>Mhi7S>V7wQ176|FdW2m?&`qa(ScO^CFPR80HucLHOTy%5s*HR0^8)i h0WYBP*#0Ks^FNSabJA*5${_#%002ovPDHLkV1oKhTl@e3 literal 0 HcmV?d00001 diff --git a/clone-instagram-login-Refactoring/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/clone-instagram-login-Refactoring/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..a6d6b8609df07bf62e5100a53a01510388bd2b22 GIT binary patch literal 2665 zcmV-v3YPVWP)oFh3q0MFesq&64WThn3$;G69TfjsAv=f2G9}p zgSx99+!YV6qME!>9MD13x)k(+XE7W?_O4LoLb5ND8 zaV{9+P@>42xDfRiYBMSgD$0!vssptcb;&?u9u(LLBKmkZ>RMD=kvD3h`sk6!QYtBa ztlZI#nu$8lJ^q2Z79UTgZe>BU73(Aospiq+?SdMt8lDZ;*?@tyWVZVS_Q7S&*tJaiRlJ z+aSMOmbg3@h5}v;A*c8SbqM3icg-`Cnwl;7Ts%A1RkNIp+Txl-Ckkvg4oxrqGA5ewEgYqwtECD<_3Egu)xGllKt&J8g&+=ac@Jq4-?w6M3b*>w5 z69N3O%=I^6&UL5gZ!}trC7bUj*12xLdkNs~Bz4QdJJ*UDZox2UGR}SNg@lmOvhCc~ z*f_UeXv(=#I#*7>VZx2ObEN~UoGUTl=-@)E;YtCRZ>SVp$p9yG5hEFZ!`wI!spd)n zSk+vK0Vin7FL{7f&6OB%f;SH22dtbcF<|9fi2Fp%q4kxL!b1#l^)8dUwJ zwEf{(wJj@8iYDVnKB`eSU+;ml-t2`@%_)0jDM`+a46xhDbBj2+&Ih>1A>6aky#(-SYyE{R3f#y57wfLs z6w1p~$bp;6!9DX$M+J~S@D6vJAaElETnsX4h9a5tvPhC3L@qB~bOzkL@^z0k_hS{T4PF*TDrgdXp+dzsE? z>V|VR035Pl9n5&-RePFdS{7KAr2vPOqR9=M$vXA1Yy5>w;EsF`;OK{2pkn-kpp9Pw z)r;5JfJKKaT$4qCb{TaXHjb$QA{y0EYy*+b1XI;6Ah- zw13P)xT`>~eFoJC!>{2XL(a_#upp3gaR1#5+L(Jmzp4TBnx{~WHedpJ1ch8JFk~Sw z>F+gN+i+VD?gMXwcIhn8rz`>e>J^TI3E-MW>f}6R-pL}>WMOa0k#jN+`RyUVUC;#D zg|~oS^$6%wpF{^Qr+}X>0PKcr3Fc&>Z>uv@C);pwDs@2bZWhYP!rvGx?_|q{d`t<*XEb#=aOb=N+L@CVBGqImZf&+a zCQEa3$~@#kC);pasdG=f6tuIi0PO-y&tvX%>Mv=oY3U$nD zJ#gMegnQ46pq+3r=;zmgcG+zRc9D~c>z+jo9&D+`E6$LmyFqlmCYw;-Zooma{sR@~ z)_^|YL1&&@|GXo*pivH7k!msl+$Sew3%XJnxajt0K%3M6Bd&YFNy9}tWG^aovK2eX z1aL1%7;KRDrA@eG-Wr6w+;*H_VD~qLiVI`{_;>o)k`{8xa3EJT1O_>#iy_?va0eR? zDV=N%;Zjb%Z2s$@O>w@iqt!I}tLjGk!=p`D23I}N4Be@$(|iSA zf3Ih7b<{zqpDB4WF_5X1(peKe+rASze%u8eKLn#KKXt;UZ+Adf$_TO+vTqshLLJ5c z52HucO=lrNVae5XWOLm!V@n-ObU11!b+DN<$RuU+YsrBq*lYT;?AwJpmNKniF0Q1< zJCo>Q$=v$@&y=sj6{r!Y&y&`0$-I}S!H_~pI&2H8Z1C|BX4VgZ^-! zje3-;x0PBD!M`v*J_)rL^+$<1VJhH*2Fi~aA7s&@_rUHYJ9zD=M%4AFQ`}k8OC$9s XsPq=LnkwKG00000NkvXXu0mjfhAk5^ literal 0 HcmV?d00001 diff --git a/clone-instagram-login-Refactoring/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/clone-instagram-login-Refactoring/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..a6d6b8609df07bf62e5100a53a01510388bd2b22 GIT binary patch literal 2665 zcmV-v3YPVWP)oFh3q0MFesq&64WThn3$;G69TfjsAv=f2G9}p zgSx99+!YV6qME!>9MD13x)k(+XE7W?_O4LoLb5ND8 zaV{9+P@>42xDfRiYBMSgD$0!vssptcb;&?u9u(LLBKmkZ>RMD=kvD3h`sk6!QYtBa ztlZI#nu$8lJ^q2Z79UTgZe>BU73(Aospiq+?SdMt8lDZ;*?@tyWVZVS_Q7S&*tJaiRlJ z+aSMOmbg3@h5}v;A*c8SbqM3icg-`Cnwl;7Ts%A1RkNIp+Txl-Ckkvg4oxrqGA5ewEgYqwtECD<_3Egu)xGllKt&J8g&+=ac@Jq4-?w6M3b*>w5 z69N3O%=I^6&UL5gZ!}trC7bUj*12xLdkNs~Bz4QdJJ*UDZox2UGR}SNg@lmOvhCc~ z*f_UeXv(=#I#*7>VZx2ObEN~UoGUTl=-@)E;YtCRZ>SVp$p9yG5hEFZ!`wI!spd)n zSk+vK0Vin7FL{7f&6OB%f;SH22dtbcF<|9fi2Fp%q4kxL!b1#l^)8dUwJ zwEf{(wJj@8iYDVnKB`eSU+;ml-t2`@%_)0jDM`+a46xhDbBj2+&Ih>1A>6aky#(-SYyE{R3f#y57wfLs z6w1p~$bp;6!9DX$M+J~S@D6vJAaElETnsX4h9a5tvPhC3L@qB~bOzkL@^z0k_hS{T4PF*TDrgdXp+dzsE? z>V|VR035Pl9n5&-RePFdS{7KAr2vPOqR9=M$vXA1Yy5>w;EsF`;OK{2pkn-kpp9Pw z)r;5JfJKKaT$4qCb{TaXHjb$QA{y0EYy*+b1XI;6Ah- zw13P)xT`>~eFoJC!>{2XL(a_#upp3gaR1#5+L(Jmzp4TBnx{~WHedpJ1ch8JFk~Sw z>F+gN+i+VD?gMXwcIhn8rz`>e>J^TI3E-MW>f}6R-pL}>WMOa0k#jN+`RyUVUC;#D zg|~oS^$6%wpF{^Qr+}X>0PKcr3Fc&>Z>uv@C);pwDs@2bZWhYP!rvGx?_|q{d`t<*XEb#=aOb=N+L@CVBGqImZf&+a zCQEa3$~@#kC);pasdG=f6tuIi0PO-y&tvX%>Mv=oY3U$nD zJ#gMegnQ46pq+3r=;zmgcG+zRc9D~c>z+jo9&D+`E6$LmyFqlmCYw;-Zooma{sR@~ z)_^|YL1&&@|GXo*pivH7k!msl+$Sew3%XJnxajt0K%3M6Bd&YFNy9}tWG^aovK2eX z1aL1%7;KRDrA@eG-Wr6w+;*H_VD~qLiVI`{_;>o)k`{8xa3EJT1O_>#iy_?va0eR? zDV=N%;Zjb%Z2s$@O>w@iqt!I}tLjGk!=p`D23I}N4Be@$(|iSA zf3Ih7b<{zqpDB4WF_5X1(peKe+rASze%u8eKLn#KKXt;UZ+Adf$_TO+vTqshLLJ5c z52HucO=lrNVae5XWOLm!V@n-ObU11!b+DN<$RuU+YsrBq*lYT;?AwJpmNKniF0Q1< zJCo>Q$=v$@&y=sj6{r!Y&y&`0$-I}S!H_~pI&2H8Z1C|BX4VgZ^-! zje3-;x0PBD!M`v*J_)rL^+$<1VJhH*2Fi~aA7s&@_rUHYJ9zD=M%4AFQ`}k8OC$9s XsPq=LnkwKG00000NkvXXu0mjfhAk5^ literal 0 HcmV?d00001 diff --git a/clone-instagram-login-Refactoring/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/clone-instagram-login-Refactoring/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..75b2d164a5a98e212cca15ea7bf2ab5de5108680 GIT binary patch literal 3831 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 literal 0 HcmV?d00001 diff --git a/clone-instagram-login-Refactoring/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/clone-instagram-login-Refactoring/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..c4df70d39da7941ef3f6dcb7f06a192d8dcb308d GIT binary patch literal 1888 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 iW8Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/clone-instagram-login-Refactoring/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/clone-instagram-login-Refactoring/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/clone-instagram-login-Refactoring/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/clone-instagram-login-Refactoring/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/clone-instagram-login-Refactoring/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/clone-instagram-login-Refactoring/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md new file mode 100644 index 0000000..89c2725 --- /dev/null +++ b/clone-instagram-login-Refactoring/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md @@ -0,0 +1,5 @@ +# Launch Screen Assets + +You can customize the launch screen with your own desired assets by replacing the image files in this directory. + +You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. \ No newline at end of file diff --git a/clone-instagram-login-Refactoring/ios/Runner/Base.lproj/LaunchScreen.storyboard b/clone-instagram-login-Refactoring/ios/Runner/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..f2e259c --- /dev/null +++ b/clone-instagram-login-Refactoring/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/clone-instagram-login-Refactoring/ios/Runner/Base.lproj/Main.storyboard b/clone-instagram-login-Refactoring/ios/Runner/Base.lproj/Main.storyboard new file mode 100644 index 0000000..f3c2851 --- /dev/null +++ b/clone-instagram-login-Refactoring/ios/Runner/Base.lproj/Main.storyboard @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/clone-instagram-login-Refactoring/ios/Runner/Info.plist b/clone-instagram-login-Refactoring/ios/Runner/Info.plist new file mode 100644 index 0000000..5dfe479 --- /dev/null +++ b/clone-instagram-login-Refactoring/ios/Runner/Info.plist @@ -0,0 +1,51 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Example Widget Testing + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + example_widget_testing + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + + CADisableMinimumFrameDurationOnPhone + + UIApplicationSupportsIndirectInputEvents + + + diff --git a/clone-instagram-login-Refactoring/ios/Runner/Runner-Bridging-Header.h b/clone-instagram-login-Refactoring/ios/Runner/Runner-Bridging-Header.h new file mode 100644 index 0000000..308a2a5 --- /dev/null +++ b/clone-instagram-login-Refactoring/ios/Runner/Runner-Bridging-Header.h @@ -0,0 +1 @@ +#import "GeneratedPluginRegistrant.h" diff --git a/clone-instagram-login-Refactoring/lib/app/data/models/navbar_menu.dart b/clone-instagram-login-Refactoring/lib/app/data/models/navbar_menu.dart new file mode 100644 index 0000000..eba0bd9 --- /dev/null +++ b/clone-instagram-login-Refactoring/lib/app/data/models/navbar_menu.dart @@ -0,0 +1,31 @@ +import 'package:flutter/material.dart'; + +class NavbarMenu { + int? id; + String? name; + String? activeIcon; + String? inactiveIcon; + String? path; + Widget? widget; + + NavbarMenu( + {this.id, this.name, this.activeIcon, this.inactiveIcon, this.path}); + + NavbarMenu.fromJson(Map json) { + id = json['id']; + name = json['name']; + activeIcon = json['active_icon']; + inactiveIcon = json['inactive_icon']; + path = json['path']; + } + + Map toJson() { + final Map data = {}; + data['id'] = id; + data['name'] = name; + data['active_icon'] = activeIcon; + data['inactive_icon'] = inactiveIcon; + data['path'] = path; + return data; + } +} diff --git a/clone-instagram-login-Refactoring/lib/app/data/models/post.dart b/clone-instagram-login-Refactoring/lib/app/data/models/post.dart new file mode 100644 index 0000000..f7f3f6f --- /dev/null +++ b/clone-instagram-login-Refactoring/lib/app/data/models/post.dart @@ -0,0 +1,48 @@ +class Post { + int? id; + String? name; + String? profileImg; + String? postImg; + String? caption; + bool? isLoved; + String? commentCount; + String? likedBy; + String? timeAgo; + + Post( + {this.id, + this.name, + this.profileImg, + this.postImg, + this.caption, + this.isLoved, + this.commentCount, + this.likedBy, + this.timeAgo}); + + Post.fromJson(Map json) { + id = json['id']; + name = json['name']; + profileImg = json['profileImg']; + postImg = json['postImg']; + caption = json['caption']; + isLoved = json['isLoved']; + commentCount = json['commentCount']; + likedBy = json['likedBy']; + timeAgo = json['timeAgo']; + } + + Map toJson() { + final Map data = {}; + data['id'] = id; + data['name'] = name; + data['profileImg'] = profileImg; + data['postImg'] = postImg; + data['caption'] = caption; + data['isLoved'] = isLoved; + data['commentCount'] = commentCount; + data['likedBy'] = likedBy; + data['timeAgo'] = timeAgo; + return data; + } +} diff --git a/clone-instagram-login-Refactoring/lib/app/data/models/profile.dart b/clone-instagram-login-Refactoring/lib/app/data/models/profile.dart new file mode 100644 index 0000000..2ee7c58 --- /dev/null +++ b/clone-instagram-login-Refactoring/lib/app/data/models/profile.dart @@ -0,0 +1,50 @@ +class Profile { + String? name; + String? bio; + String? profilePic; + List? stats; + + Profile({this.name, this.bio, this.profilePic, this.stats}); + + Profile.fromJson(Map json) { + name = json['name']; + bio = json['bio']; + profilePic = json['profilePic']; + if (json['stats'] != null) { + stats = []; + json['stats'].forEach((v) { + stats!.add(Stats.fromJson(v)); + }); + } + } + + Map toJson() { + final Map data = {}; + data['name'] = name; + data['bio'] = bio; + data['profilePic'] = profilePic; + if (stats != null) { + data['stats'] = stats!.map((v) => v.toJson()).toList(); + } + return data; + } +} + +class Stats { + int? count; + String? label; + + Stats({this.count, this.label}); + + Stats.fromJson(Map json) { + count = json['count']; + label = json['label']; + } + + Map toJson() { + final Map data = {}; + data['count'] = count; + data['label'] = label; + return data; + } +} diff --git a/clone-instagram-login-Refactoring/lib/app/modules/account/account_page.dart b/clone-instagram-login-Refactoring/lib/app/modules/account/account_page.dart new file mode 100644 index 0000000..e80f4f5 --- /dev/null +++ b/clone-instagram-login-Refactoring/lib/app/modules/account/account_page.dart @@ -0,0 +1,116 @@ +import 'package:example_widget_testing/app/modules/account/components/account_name.dart'; +import 'package:example_widget_testing/app/modules/account/components/account_tab.dart'; +import 'package:example_widget_testing/app/modules/account/components/highlight_list.dart'; +import 'package:example_widget_testing/app/modules/account/components/profile_buttons.dart'; +import 'package:example_widget_testing/app/widgets/bottom_navbar.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_svg/svg.dart'; +import '../../data/models/profile.dart'; +import '../../widgets/post_thumbnail.dart'; +import 'components/account_stat.dart'; + +class AccountPage extends StatefulWidget { + const AccountPage( + {super.key, + required this.profileData, + required this.posts, + required this.stories}); + final Map profileData; + final List posts; + final List stories; + + @override + AccountPageState createState() => AccountPageState(); +} + +class AccountPageState extends State { + int pageIndex = 0; + + void updateIndex(int index) { + setState(() => pageIndex = index); + } + + @override + Widget build(BuildContext context) { + final Profile profile = Profile.fromJson(widget.profileData); + return Scaffold( + backgroundColor: Colors.black, + appBar: AppBar( + key: const Key('app_bar_account'), + backgroundColor: Colors.black, + automaticallyImplyLeading: false, + title: Row( + key: const Key('app_bar_row'), + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + key: const Key('app_bar_row_name'), + children: const [ + Text( + key: Key('app_bar_row_name_text'), + "iclop", + style: TextStyle(fontWeight: FontWeight.bold), + ), + Icon( + key: Key('app_bar_row_name_arrow_down_icon'), + Icons.keyboard_arrow_down, + ), + ], + ), + Row( + key: const Key('app_bar_row_menu'), + children: [ + SvgPicture.asset( + key: const Key('app_bar_row_menu_upload_icon'), + "assets/images/upload_icon.svg", + width: 27, + ), + const SizedBox( + width: 10, + ), + const Icon( + key: Key('app_bar_row_menu_hamburger_icon'), + Icons.menu, + size: 35, + ), + ], + ) + ], + ), + ), + body: ListView( + key: const Key('account_page_listview'), + children: [ + AccountStat(key: const Key("account_stat"), profile: profile), + AccountName(key: const Key("account_name"), profile: profile), + const ProfileButtons(key: Key("profile_buttons")), + HighlightList( + key: const Key("highlight_list"), stories: widget.stories), + AccountTab( + key: const Key("account_tab"), + updateIndex: updateIndex, + pageIndex: pageIndex, + ), + Wrap( + key: const Key('account_page_post_wrap'), + spacing: 1.5, + runSpacing: 1.5, + children: List.generate(widget.posts.length, (index) { + return InkWell( + key: Key("account_post_inkwell_$index"), + onTap: () { + Navigator.pushNamed(context, '/post'); + }, + child: PostThumbnail( + key: Key("account_post_thumbnail_$index"), + imageUrl: widget.posts[index]['postImg'], + ), + ); + }), + ) + ], + ), + bottomNavigationBar: const BottomNavbar(pageIndex: 4), + ); + } +} diff --git a/clone-instagram-login-Refactoring/lib/app/modules/account/components/account_name.dart b/clone-instagram-login-Refactoring/lib/app/modules/account/components/account_name.dart new file mode 100644 index 0000000..f3a8fd5 --- /dev/null +++ b/clone-instagram-login-Refactoring/lib/app/modules/account/components/account_name.dart @@ -0,0 +1,42 @@ +import 'package:flutter/material.dart'; + +import '../../../data/models/profile.dart'; + +class AccountName extends StatelessWidget { + const AccountName({super.key, required this.profile}); + final Profile profile; + + @override + Widget build(BuildContext context) { + return Container( + key: const Key('account_name_container'), + width: double.infinity, + padding: const EdgeInsets.symmetric(horizontal: 15), + margin: const EdgeInsets.symmetric(vertical: 10), + child: Column( + key: const Key('account_name_column'), + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + key: const Key('account_name_text'), + profile.name!, + style: const TextStyle( + fontSize: 18, + fontWeight: FontWeight.w400, + color: Colors.white, + ), + ), + Text( + key: const Key('account_bio_text'), + profile.bio!, + style: const TextStyle( + fontSize: 15, + fontWeight: FontWeight.w400, + color: Colors.white, + ), + ), + ], + ), + ); + } +} diff --git a/clone-instagram-login-Refactoring/lib/app/modules/account/components/account_stat.dart b/clone-instagram-login-Refactoring/lib/app/modules/account/components/account_stat.dart new file mode 100644 index 0000000..0db3a23 --- /dev/null +++ b/clone-instagram-login-Refactoring/lib/app/modules/account/components/account_stat.dart @@ -0,0 +1,31 @@ +import 'package:example_widget_testing/app/modules/account/components/profile_information.dart'; +import 'package:example_widget_testing/app/modules/account/components/profile_pic.dart'; +import 'package:flutter/widgets.dart'; + +import '../../../data/models/profile.dart'; + +class AccountStat extends StatelessWidget { + final Profile profile; + + const AccountStat({super.key, required this.profile}); + + @override + Widget build(BuildContext context) { + return Row( + key: const Key('account_page_profile_row'), + children: [ + ProfilePic( + key: const Key("profile_pic"), + pictureUrl: profile.profilePic!, + ), + Expanded( + key: const Key('account_page_profile_information_expanded'), + child: ProfileInformation( + key: const Key("profile_information"), + profileStats: profile.stats!, + ), + ), + ], + ); + } +} diff --git a/clone-instagram-login-Refactoring/lib/app/modules/account/components/account_tab.dart b/clone-instagram-login-Refactoring/lib/app/modules/account/components/account_tab.dart new file mode 100644 index 0000000..53b416c --- /dev/null +++ b/clone-instagram-login-Refactoring/lib/app/modules/account/components/account_tab.dart @@ -0,0 +1,49 @@ +import 'package:flutter/material.dart'; + +import '../../../../core/values/constant/profile_tabs_json.dart'; + +class AccountTab extends StatelessWidget { + final Function(int index) updateIndex; + final int pageIndex; + + const AccountTab( + {super.key, required this.updateIndex, required this.pageIndex}); + + @override + Widget build(BuildContext context) { + final size = MediaQuery.of(context).size; + return Row( + key: const Key("account_tab_row"), + children: List.generate( + tabs.length, + (index) { + return DecoratedBox( + key: Key('account_tab_decorated_box_$index'), + decoration: BoxDecoration( + border: Border( + bottom: BorderSide( + color: pageIndex == index ? Colors.white : Colors.transparent, + width: 2, + ), + ), + ), + child: ElevatedButton( + key: Key('account_tab_elevated_button_$index'), + onPressed: () => updateIndex(index), + style: ElevatedButton.styleFrom( + elevation: 0, + backgroundColor: Colors.transparent, + minimumSize: Size(size.width / tabs.length, 40), + ), + child: Icon( + tabs[index]['icon'], + key: Key('account_tab_icon_$index'), + color: Colors.white, + ), + ), + ); + }, + ), + ); + } +} diff --git a/clone-instagram-login-Refactoring/lib/app/modules/account/components/grey_button.dart b/clone-instagram-login-Refactoring/lib/app/modules/account/components/grey_button.dart new file mode 100644 index 0000000..3b4c318 --- /dev/null +++ b/clone-instagram-login-Refactoring/lib/app/modules/account/components/grey_button.dart @@ -0,0 +1,23 @@ +import 'package:flutter/material.dart'; + +class GreyButton extends StatelessWidget { + final Function onPressed; + final Widget child; + + const GreyButton({super.key, required this.onPressed, required this.child}); + @override + Widget build(BuildContext context) { + return ElevatedButton( + key: Key('${key}_elevated_button'), + onPressed: () => {}, + style: ElevatedButton.styleFrom( + minimumSize: const Size(0, 30), + backgroundColor: Colors.grey[800], + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(5), + ), + ), + child: child, + ); + } +} diff --git a/clone-instagram-login-Refactoring/lib/app/modules/account/components/highlight_item.dart b/clone-instagram-login-Refactoring/lib/app/modules/account/components/highlight_item.dart new file mode 100644 index 0000000..0c6177a --- /dev/null +++ b/clone-instagram-login-Refactoring/lib/app/modules/account/components/highlight_item.dart @@ -0,0 +1,58 @@ +import 'package:example_widget_testing/core/theme/colors.dart'; +import 'package:flutter/material.dart'; + +class HighlightItem extends StatelessWidget { + final String img; + final String name; + + const HighlightItem({super.key, required this.img, required this.name}); + + @override + Widget build(BuildContext context) { + return Padding( + key: const Key('highlight_item_padding'), + padding: const EdgeInsets.only(right: 10, bottom: 10), + child: Column( + key: const Key('highlight_item_column'), + children: [ + Container( + key: const Key('highlight_item_container'), + width: 68, + height: 68, + padding: const EdgeInsets.all(3.0), + margin: const EdgeInsets.only(bottom: 8), + decoration: BoxDecoration( + shape: BoxShape.circle, + border: Border.all( + color: (Colors.grey[800])!, + width: 1, + ), + ), + child: Container( + key: const Key('highlight_item_image_container'), + decoration: BoxDecoration( + border: Border.all(color: Colors.black, width: 2), + shape: BoxShape.circle, + image: DecorationImage( + image: NetworkImage(img), + fit: BoxFit.cover, + ), + ), + ), + ), + SizedBox( + key: const Key('highlight_item_text_sized_box'), + width: 70, + child: Text( + key: const Key('highlight_item_text'), + name, + overflow: TextOverflow.ellipsis, + style: const TextStyle(color: white), + textAlign: TextAlign.center, + ), + ) + ], + ), + ); + } +} diff --git a/clone-instagram-login-Refactoring/lib/app/modules/account/components/highlight_list.dart b/clone-instagram-login-Refactoring/lib/app/modules/account/components/highlight_list.dart new file mode 100644 index 0000000..eafecca --- /dev/null +++ b/clone-instagram-login-Refactoring/lib/app/modules/account/components/highlight_list.dart @@ -0,0 +1,81 @@ +import 'package:example_widget_testing/app/modules/account/components/highlight_item.dart'; +import 'package:flutter/material.dart'; + +class HighlightList extends StatelessWidget { + const HighlightList({super.key, required this.stories}); + final List stories; + + @override + Widget build(BuildContext context) { + return SingleChildScrollView( + key: const Key('highlight_list_scroll_view'), + padding: const EdgeInsets.only(left: 15, top: 10, bottom: 10), + scrollDirection: Axis.horizontal, + child: Row( + key: const Key('highlight_list_parent_row'), + children: [ + Row( + key: const Key('highlight_list_child_row'), + children: List.generate( + stories.length, + (index) { + return HighlightItem( + key: Key('highlight_item_$index'), + img: stories[index]['img'], + name: stories[index]['name'], + ); + }, + ), + ), + Padding( + key: const Key('highlight_list_add_highlight'), + padding: const EdgeInsets.only(right: 10, bottom: 10), + child: Column( + key: const Key('highlight_list_add_highlight_column'), + children: [ + Container( + key: const Key('highlight_list_add_highlight_container'), + width: 68, + height: 68, + padding: const EdgeInsets.all(3.0), + margin: const EdgeInsets.only(bottom: 8), + decoration: BoxDecoration( + shape: BoxShape.circle, + border: Border.all( + color: Colors.white, + width: 1, + ), + ), + child: Container( + key: const Key( + 'highlight_list_add_highlight_icon_container'), + decoration: BoxDecoration( + border: Border.all(color: Colors.black, width: 2), + shape: BoxShape.circle, + ), + child: const Icon( + key: Key('highlight_list_add_highlight_icon'), + Icons.add, + color: Colors.white, + ), + ), + ), + const SizedBox( + key: Key('highlight_list_add_highlight_text_sized_box'), + width: 70, + child: Text( + key: Key('highlight_list_add_highlight_text'), + 'New', + overflow: TextOverflow.ellipsis, + style: TextStyle(color: Colors.white), + textAlign: TextAlign.center, + ), + ) + ], + ), + ), + ], + ), + ); + } +} diff --git a/clone-instagram-login-Refactoring/lib/app/modules/account/components/profile_buttons.dart b/clone-instagram-login-Refactoring/lib/app/modules/account/components/profile_buttons.dart new file mode 100644 index 0000000..32c9322 --- /dev/null +++ b/clone-instagram-login-Refactoring/lib/app/modules/account/components/profile_buttons.dart @@ -0,0 +1,63 @@ +import 'package:example_widget_testing/app/modules/account/components/grey_button.dart'; +import 'package:flutter/material.dart'; + +class ProfileButtons extends StatelessWidget { + const ProfileButtons({super.key}); + + @override + Widget build(BuildContext context) { + return Padding( + key: const Key('profile_buttons_padding'), + padding: const EdgeInsets.symmetric(horizontal: 15), + child: Row( + key: const Key('profile_buttons_row'), + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Expanded( + key: const Key('profile_buttons_edit_profile_button_expanded'), + child: GreyButton( + key: const Key('profile_buttons_edit_profile_button'), + onPressed: () {}, + child: const Text( + key: Key('profile_buttons_edit_profile_button_text'), + "Edit Profile", + style: TextStyle( + fontSize: 15, + fontWeight: FontWeight.w500, + color: Colors.white, + ), + ), + ), + ), + const SizedBox(width: 5), + Expanded( + key: const Key('profile_buttons_share_profile_button_expanded'), + child: GreyButton( + key: const Key('profile_buttons_share_profile_button'), + onPressed: () {}, + child: const Text( + key: Key('profile_buttons_share_profile_button_text'), + "Share profile", + style: TextStyle( + fontSize: 15, + fontWeight: FontWeight.w500, + color: Colors.white, + ), + ), + ), + ), + const SizedBox(width: 5), + GreyButton( + key: const Key('profile_buttons_discover_people_button'), + onPressed: () {}, + child: const Icon( + key: Key("profile_buttons_discover_people_icon"), + Icons.person_add_outlined, + color: Colors.white, + ), + ), + ], + ), + ); + } +} diff --git a/clone-instagram-login-Refactoring/lib/app/modules/account/components/profile_information.dart b/clone-instagram-login-Refactoring/lib/app/modules/account/components/profile_information.dart new file mode 100644 index 0000000..c2e769f --- /dev/null +++ b/clone-instagram-login-Refactoring/lib/app/modules/account/components/profile_information.dart @@ -0,0 +1,43 @@ +import 'package:example_widget_testing/app/data/models/profile.dart'; +import 'package:flutter/material.dart'; + +class ProfileInformation extends StatelessWidget { + const ProfileInformation({super.key, required this.profileStats}); + final List profileStats; + + @override + Widget build(BuildContext context) { + return Row( + key: const Key('profile_information_row'), + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: List.generate( + profileStats.length, + (index) { + return Column( + key: Key('profile_information_column_$index'), + children: [ + Text( + key: Key('profile_information_${index}_amount_text'), + profileStats[index].count.toString(), + style: const TextStyle( + fontSize: 20, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + ), + Text( + profileStats[index].label!, + key: Key('profile_information_${index}_label_text'), + style: const TextStyle( + fontSize: 15, + fontWeight: FontWeight.w400, + color: Colors.white, + ), + ), + ], + ); + }, + ), + ); + } +} diff --git a/clone-instagram-login-Refactoring/lib/app/modules/account/components/profile_pic.dart b/clone-instagram-login-Refactoring/lib/app/modules/account/components/profile_pic.dart new file mode 100644 index 0000000..c7fa599 --- /dev/null +++ b/clone-instagram-login-Refactoring/lib/app/modules/account/components/profile_pic.dart @@ -0,0 +1,23 @@ +import 'package:flutter/material.dart'; + +class ProfilePic extends StatelessWidget { + const ProfilePic({super.key, required this.pictureUrl}); + final String pictureUrl; + + @override + Widget build(BuildContext context) { + return Container( + key: const Key('profile_pic_container'), + width: 80, + height: 80, + margin: const EdgeInsets.only(left: 15, right: 30), + decoration: BoxDecoration( + shape: BoxShape.circle, + image: DecorationImage( + image: NetworkImage(pictureUrl), + fit: BoxFit.cover, + ), + ), + ); + } +} diff --git a/clone-instagram-login-Refactoring/lib/app/modules/account/components/tab_delegate.dart b/clone-instagram-login-Refactoring/lib/app/modules/account/components/tab_delegate.dart new file mode 100644 index 0000000..00495e1 --- /dev/null +++ b/clone-instagram-login-Refactoring/lib/app/modules/account/components/tab_delegate.dart @@ -0,0 +1,32 @@ +import 'package:flutter/material.dart'; + +class MyPersistentHeaderDelegate extends SliverPersistentHeaderDelegate { + final double height; + final Widget child; + + MyPersistentHeaderDelegate({ + required this.height, + required this.child, + }); + + @override + Widget build( + BuildContext context, double shrinkOffset, bool overlapsContent) { + return Container( + color: Colors.white, // Set the background color of the header + height: height, + child: child, + ); + } + + @override + double get maxExtent => height; + + @override + double get minExtent => height; + + @override + bool shouldRebuild(covariant MyPersistentHeaderDelegate oldDelegate) { + return height != oldDelegate.height || child != oldDelegate.child; + } +} diff --git a/clone-instagram-login-Refactoring/lib/app/modules/activity/activity_page.dart b/clone-instagram-login-Refactoring/lib/app/modules/activity/activity_page.dart new file mode 100644 index 0000000..bb4cad5 --- /dev/null +++ b/clone-instagram-login-Refactoring/lib/app/modules/activity/activity_page.dart @@ -0,0 +1,40 @@ +import 'package:example_widget_testing/app/widgets/bottom_navbar.dart'; +import 'package:flutter/material.dart'; + +class ActivityPage extends StatelessWidget { + const ActivityPage({super.key}); + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.black, + appBar: AppBar( + key: const Key("activity_page_appbar"), + backgroundColor: Colors.black, + title: const Text("Activity"), + ), + body: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: const [ + Icon( + Icons.favorite_border, + color: Colors.white, + size: 100.0, + ), + SizedBox(height: 20.0), + Text( + "No Activity", + style: TextStyle( + fontSize: 20, + fontWeight: FontWeight.bold, + color: Colors.white, + ), + ), + ], + ), + ), + bottomNavigationBar: const BottomNavbar(pageIndex: 3), + ); + } +} diff --git a/clone-instagram-login-Refactoring/lib/app/modules/calculator.dart b/clone-instagram-login-Refactoring/lib/app/modules/calculator.dart new file mode 100644 index 0000000..2d9845f --- /dev/null +++ b/clone-instagram-login-Refactoring/lib/app/modules/calculator.dart @@ -0,0 +1,66 @@ +import 'package:flutter/material.dart'; + +class SimpleCalculator extends StatefulWidget { + const SimpleCalculator({Key? key}) : super(key: key); + + @override + State createState() => SimpleCalculatorState(); +} + +class SimpleCalculatorState extends State { + TextEditingController variableA = TextEditingController(); + TextEditingController variableB = TextEditingController(); + String result = '0'; + + void add() { + setState(() { + result = + (int.parse(variableA.text) + int.parse(variableB.text)).toString(); + }); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar(title: const Text('Simple Calculator')), + body: Padding( + padding: const EdgeInsets.all(10), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + TextField( + key: const Key('variableA'), + style: const TextStyle(color: Colors.black), + decoration: const InputDecoration( + border: OutlineInputBorder(), + ), + controller: variableA, + keyboardType: TextInputType.number, + ), + const SizedBox(height: 10), + TextField( + key: const Key('variableB'), + // add border + style: const TextStyle(color: Colors.black), + decoration: const InputDecoration( + border: OutlineInputBorder(), + ), + controller: variableB, + keyboardType: TextInputType.number, + ), + ElevatedButton( + key: const Key('addButton'), + onPressed: () => add(), + child: const Text('Add'), + ), + Text( + key: const Key('result'), + result, + style: const TextStyle(fontSize: 35), + ), + ], + ), + ), + ); + } +} diff --git a/clone-instagram-login-Refactoring/lib/app/modules/home/components/story_item.dart b/clone-instagram-login-Refactoring/lib/app/modules/home/components/story_item.dart new file mode 100644 index 0000000..287ad74 --- /dev/null +++ b/clone-instagram-login-Refactoring/lib/app/modules/home/components/story_item.dart @@ -0,0 +1,63 @@ +import 'package:example_widget_testing/core/theme/colors.dart'; +import 'package:flutter/material.dart'; + +class StoryItem extends StatelessWidget { + final String img; + final String name; + + const StoryItem({ + super.key, + required this.img, + required this.name, + }); + + @override + Widget build(BuildContext context) { + return Padding( + key: const Key('story_item_padding'), + padding: const EdgeInsets.only(right: 20, bottom: 10), + child: Column( + key: const Key('story_item_column'), + children: [ + Container( + key: const Key('story_item_container'), + width: 68, + height: 68, + margin: const EdgeInsets.only(bottom: 8), + decoration: const BoxDecoration( + shape: BoxShape.circle, + gradient: LinearGradient( + begin: Alignment.topCenter, + end: Alignment.bottomCenter, + colors: storyBorderColor), + ), + child: Container( + key: const Key('story_item_image_container'), + margin: const EdgeInsets.all(3), + width: 65, + height: 65, + decoration: BoxDecoration( + border: Border.all(color: black, width: 2), + shape: BoxShape.circle, + image: DecorationImage( + image: NetworkImage(img), + fit: BoxFit.cover, + ), + ), + ), + ), + SizedBox( + key: const Key('story_item_username_sizedbox'), + width: 70, + child: Text( + name, + key: const Key('story_item_username_text'), + overflow: TextOverflow.ellipsis, + style: const TextStyle(color: white), + ), + ) + ], + ), + ); + } +} diff --git a/clone-instagram-login-Refactoring/lib/app/modules/home/components/user_story.dart b/clone-instagram-login-Refactoring/lib/app/modules/home/components/user_story.dart new file mode 100644 index 0000000..de68441 --- /dev/null +++ b/clone-instagram-login-Refactoring/lib/app/modules/home/components/user_story.dart @@ -0,0 +1,76 @@ +import 'package:example_widget_testing/core/theme/colors.dart'; +import 'package:example_widget_testing/core/values/constant/story_json.dart'; +import 'package:flutter/material.dart'; + +class UserStory extends StatelessWidget { + const UserStory({super.key}); + + @override + Widget build(BuildContext context) { + return Padding( + key: const Key('user_story_padding'), + padding: const EdgeInsets.only(right: 20, left: 15, bottom: 10), + child: Column( + key: const Key('user_story_column'), + children: [ + SizedBox( + key: const Key('user_story_sized_box'), + width: 65, + height: 65, + child: Stack( + key: const Key('user_story_stack'), + children: [ + Container( + key: const Key('user_story_container'), + width: 65, + height: 65, + decoration: BoxDecoration( + shape: BoxShape.circle, + image: DecorationImage( + image: NetworkImage(profile), + fit: BoxFit.cover, + ), + ), + ), + Positioned( + key: const Key('user_story_positioned'), + bottom: 0, + right: 0, + child: Container( + key: const Key('user_story_outline_container'), + width: 19, + height: 19, + decoration: const BoxDecoration( + shape: BoxShape.circle, + color: Colors.white, + ), + child: const Icon( + key: Key('user_story_add_circle_icon'), + Icons.add_circle, + color: buttonFollowColor, + size: 19, + ), + ), + ) + ], + ), + ), + const SizedBox( + key: Key('user_story_sized_box_spacer'), + height: 8, + ), + SizedBox( + key: const Key('user_story_sized_box_name'), + width: 70, + child: Text( + key: const Key('user_story_text_name'), + name, + overflow: TextOverflow.ellipsis, + style: const TextStyle(color: Colors.white), + ), + ) + ], + ), + ); + } +} diff --git a/clone-instagram-login-Refactoring/lib/app/modules/home/home_page.dart b/clone-instagram-login-Refactoring/lib/app/modules/home/home_page.dart new file mode 100644 index 0000000..0a903a8 --- /dev/null +++ b/clone-instagram-login-Refactoring/lib/app/modules/home/home_page.dart @@ -0,0 +1,126 @@ +import 'package:example_widget_testing/app/modules/home/components/user_story.dart'; +import 'package:example_widget_testing/app/widgets/post_item.dart'; +import 'package:example_widget_testing/app/modules/home/components/story_item.dart'; +import 'package:flutter/material.dart'; + +import '../../../core/theme/colors.dart'; +import '../../data/models/profile.dart'; +import '../../widgets/bottom_navbar.dart'; + +class HomePage extends StatefulWidget { + const HomePage({ + super.key, + required this.posts, + required this.stories, + required this.profileData, + }); + final List posts; + final List stories; + final Map profileData; + + @override + HomePageState createState() => HomePageState(); +} + +class HomePageState extends State { + List posts = []; + @override + void initState() { + super.initState(); + posts = widget.posts; + } + + void updatePostLike(index) { + setState(() { + posts[index]['isLoved'] = !posts[index]['isLoved']; + }); + } + + @override + Widget build(BuildContext context) { + final Profile profile = Profile.fromJson(widget.profileData); + return Scaffold( + key: const Key('home_page_scaffold'), + backgroundColor: Colors.black, + appBar: AppBar( + key: const Key("home_page_appbar"), + backgroundColor: Colors.black, + leading: const Icon( + key: Key('home_page_camera_icon'), + Icons.camera_alt, + ), + title: const Center( + key: Key('home_page_title_center'), + child: Text( + key: Key('home_page_title_text'), + "Instagram", + style: TextStyle(fontFamily: 'Billabong', fontSize: 35), + ), + ), + actions: const [ + Icon(key: Key('home_page_send_icon'), Icons.send), + ], + ), + body: SingleChildScrollView( + key: const Key('home_page_single_child_scroll_view'), + child: Column( + key: const Key('home_page_column'), + children: [ + SingleChildScrollView( + key: const Key('stories_scroll_view'), + scrollDirection: Axis.horizontal, + child: Row( + key: const Key('stories_row'), + children: [ + const UserStory(key: Key('user_story')), + Row( + key: const Key('following_stories_row'), + children: List.generate( + widget.stories.length, + (index) { + return StoryItem( + key: Key('story_item_$index'), + img: widget.stories[index]['img'], + name: widget.stories[index]['name'], + ); + }, + ), + ), + ], + ), + ), + Divider( + key: const Key('home_page_divider'), + color: white.withOpacity(0.3), + ), + Column( + key: const Key('posts_column'), + children: List.generate( + widget.posts.length, + (index) { + return PostItem( + key: Key('post_item_$index'), + postImg: posts[index]['postImg'], + profileImg: posts[index]['profileImg'], + name: posts[index]['name'], + caption: posts[index]['caption'], + isLoved: posts[index]['isLoved'], + viewCount: posts[index]['commentCount'], + likedBy: posts[index]['likedBy'], + dayAgo: posts[index]['timeAgo'], + userPhoto: profile.profilePic!, + onPressed: () => updatePostLike(index), + ); + }, + ), + ) + ], + ), + ), + bottomNavigationBar: const BottomNavbar( + key: Key('home_page_bottom_navbar'), + pageIndex: 0, + ), + ); + } +} diff --git a/clone-instagram-login-Refactoring/lib/app/modules/login/components/facebook_login.dart b/clone-instagram-login-Refactoring/lib/app/modules/login/components/facebook_login.dart new file mode 100644 index 0000000..63ad0d5 --- /dev/null +++ b/clone-instagram-login-Refactoring/lib/app/modules/login/components/facebook_login.dart @@ -0,0 +1,30 @@ +import 'package:flutter/material.dart'; + +class FacebookLogin extends StatelessWidget { + final double width; + const FacebookLogin({super.key, required this.width}); + @override + Widget build(BuildContext context) { + return Row( + key: const Key('facebook_login'), + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Image.asset( + 'assets/facebook.png', + height: width * .060, + key: const Key('facebook_logo'), + ), + const SizedBox(width: 5), + Text( + 'Login with facebook', + key: const Key('facebook_login_text'), + style: TextStyle( + color: const Color(0xff1877f2), + fontSize: width * .040, + fontWeight: FontWeight.w800, + ), + ), + ], + ); + } +} diff --git a/clone-instagram-login-Refactoring/lib/app/modules/login/components/forgot_access.dart b/clone-instagram-login-Refactoring/lib/app/modules/login/components/forgot_access.dart new file mode 100644 index 0000000..8cd99e0 --- /dev/null +++ b/clone-instagram-login-Refactoring/lib/app/modules/login/components/forgot_access.dart @@ -0,0 +1,40 @@ +import 'package:flutter/material.dart'; + +class ForgotAccess extends StatelessWidget { + final double width; + const ForgotAccess({super.key, required this.width}); + + @override + Widget build(BuildContext context) { + return Row( + key: const Key('forgot_access_row'), + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const Text( + 'Forgot your login details? ', + style: TextStyle( + fontSize: 13, + fontWeight: FontWeight.normal, + color: Colors.black, + ), + key: Key('forgot_access_text'), + ), + GestureDetector( + key: const Key('get_help_gesture_detector'), + onTap: () { + debugPrint('Get help'); + }, + child: const Text( + 'Get help', + style: TextStyle( + fontSize: 13, + color: Color(0xff002588), + fontWeight: FontWeight.bold, + ), + key: Key('get_help_text'), + ), + ), + ], + ); + } +} diff --git a/clone-instagram-login-Refactoring/lib/app/modules/login/components/language_dropdown.dart b/clone-instagram-login-Refactoring/lib/app/modules/login/components/language_dropdown.dart new file mode 100644 index 0000000..c885717 --- /dev/null +++ b/clone-instagram-login-Refactoring/lib/app/modules/login/components/language_dropdown.dart @@ -0,0 +1,38 @@ +import 'package:flutter/material.dart'; + +class LanguageDropdown extends StatefulWidget { + const LanguageDropdown({super.key}); + + @override + LanguageDropdownState createState() => LanguageDropdownState(); +} + +class LanguageDropdownState extends State { + String dropdownValue = 'English'; + final List languages = ['English', 'Arabic', 'Italian', 'French']; + @override + Widget build(BuildContext context) { + return DropdownButton( + key: const Key('language_dropdown'), + dropdownColor: Colors.white, + value: dropdownValue, + icon: const Icon(Icons.arrow_drop_down), + iconSize: 24, + elevation: 10, + style: const TextStyle(color: Colors.black54), + underline: Container(), + onChanged: (String? newValue) => + setState(() => dropdownValue = newValue!), + items: languages.map>((String value) { + return DropdownMenuItem( + key: Key('language_dropdown_item_$value'), + value: value, + child: Text( + value, + style: const TextStyle(fontSize: 16), + ), + ); + }).toList(), + ); + } +} diff --git a/clone-instagram-login-Refactoring/lib/app/modules/login/components/login_button.dart b/clone-instagram-login-Refactoring/lib/app/modules/login/components/login_button.dart new file mode 100644 index 0000000..c6fb3b1 --- /dev/null +++ b/clone-instagram-login-Refactoring/lib/app/modules/login/components/login_button.dart @@ -0,0 +1,41 @@ +import 'package:flutter/material.dart'; + +class LoginButton extends StatelessWidget { + final double width; + final bool inputTextNotNull; + final VoidCallback onPressed; + + const LoginButton({ + super.key, + required this.width, + required this.inputTextNotNull, + required this.onPressed, + }); + + @override + Widget build(BuildContext context) { + return SizedBox( + key: const Key('login_button_sized_box'), + width: width * .90, + height: width * .14, + child: ElevatedButton( + key: const Key('login_button_elevated_button'), + onPressed: onPressed, + style: ElevatedButton.styleFrom( + backgroundColor: inputTextNotNull + ? const Color(0xff26A9FF) + : const Color(0xff78C9FF), + ), + child: Text( + key: const Key('login_button_text'), + 'Log In', + style: TextStyle( + color: Colors.white, + fontSize: width * .040, + fontWeight: FontWeight.bold, + ), + ), + ), + ); + } +} diff --git a/clone-instagram-login-Refactoring/lib/app/modules/login/components/or_divider.dart b/clone-instagram-login-Refactoring/lib/app/modules/login/components/or_divider.dart new file mode 100644 index 0000000..05b16cb --- /dev/null +++ b/clone-instagram-login-Refactoring/lib/app/modules/login/components/or_divider.dart @@ -0,0 +1,40 @@ +import 'package:flutter/material.dart'; + +class ORDivider extends StatelessWidget { + final double width; + const ORDivider({super.key, required this.width}); + @override + Widget build(BuildContext context) { + return Row( + key: const Key('or_divider_row'), + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + key: const Key('or_divider_container_left'), + height: 1, + width: width * .40, + color: const Color(0xffA2A2A2), + ), + const SizedBox( + width: 10, + ), + Text( + key: const Key('or_divider_text'), + 'OR', + style: TextStyle( + fontSize: width * .040, + ), + ), + const SizedBox( + width: 10, + ), + Container( + key: const Key('or_divider_container_right'), + height: 1, + width: width * .40, + color: const Color(0xffA2A2A2), + ), + ], + ); + } +} diff --git a/clone-instagram-login-Refactoring/lib/app/modules/login/components/password_textbox.dart b/clone-instagram-login-Refactoring/lib/app/modules/login/components/password_textbox.dart new file mode 100644 index 0000000..6ef86dd --- /dev/null +++ b/clone-instagram-login-Refactoring/lib/app/modules/login/components/password_textbox.dart @@ -0,0 +1,46 @@ +import 'package:flutter/material.dart'; + +class PasswordTextbox extends StatelessWidget { + const PasswordTextbox({ + super.key, + required this.width, + required this.checkInputNotNull, + required this.passwordController, + }); + + final double width; + final TextEditingController passwordController; + final VoidCallback checkInputNotNull; + @override + Widget build(BuildContext context) { + return Container( + key: const Key('password_textbox_container'), + width: width * .90, + height: width * .14, + decoration: const BoxDecoration( + color: Color(0xffE8E8E8), + borderRadius: BorderRadius.all(Radius.circular(5)), + ), + child: Padding( + key: const Key('password_textbox_padding'), + padding: const EdgeInsets.symmetric(horizontal: 15), + child: Center( + child: TextField( + key: const Key('password_textfield'), + onChanged: (text) { + checkInputNotNull(); + }, + controller: passwordController, + obscureText: true, + style: const TextStyle( + fontSize: 15, + ), + decoration: const InputDecoration.collapsed( + hintText: 'Password', + ), + ), + ), + ), + ); + } +} diff --git a/clone-instagram-login-Refactoring/lib/app/modules/login/components/signup_section.dart b/clone-instagram-login-Refactoring/lib/app/modules/login/components/signup_section.dart new file mode 100644 index 0000000..bea18a1 --- /dev/null +++ b/clone-instagram-login-Refactoring/lib/app/modules/login/components/signup_section.dart @@ -0,0 +1,47 @@ +import 'package:flutter/material.dart'; + +class SignupSection extends StatelessWidget { + final double width; + + const SignupSection({super.key, required this.width}); + + @override + Widget build(BuildContext context) { + return Column( + key: const Key('signup_section_column'), + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + key: const Key('signup_section_container'), + width: width, + height: 1, + color: const Color(0xffA2A2A2), + ), + const SizedBox(height: 5), + Row( + key: const Key('signup_section'), + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + "Don't have an account? ", + key: const Key('signup_section_text'), + style: TextStyle(fontSize: width * .040), + ), + TextButton( + key: const Key('signup_section_button'), + child: Text( + 'Sign up', + style: TextStyle( + color: const Color(0xff00258B), + fontSize: width * .040, + fontWeight: FontWeight.bold, + ), + ), + onPressed: () => debugPrint('Sign Up'), + ), + ], + ), + ], + ); + } +} diff --git a/clone-instagram-login-Refactoring/lib/app/modules/login/components/username_textbox.dart b/clone-instagram-login-Refactoring/lib/app/modules/login/components/username_textbox.dart new file mode 100644 index 0000000..6274589 --- /dev/null +++ b/clone-instagram-login-Refactoring/lib/app/modules/login/components/username_textbox.dart @@ -0,0 +1,49 @@ +import 'package:flutter/material.dart'; + +class UsernameTextbox extends StatelessWidget { + const UsernameTextbox({ + super.key, + required this.width, + required this.checkInputNotNull, + required this.usernameController, + }); + + final double width; + final TextEditingController usernameController; + final VoidCallback checkInputNotNull; + + @override + Widget build(BuildContext context) { + return Container( + key: const Key('username_textbox_container'), + width: width * .90, + height: width * .14, + decoration: const BoxDecoration( + color: Color(0xffE8E8E8), + borderRadius: BorderRadius.all( + Radius.circular(5), + ), + ), + child: Padding( + key: const Key('username_textbox_padding'), + padding: const EdgeInsets.symmetric(horizontal: 15), + child: Center( + key: const Key('username_textbox_center'), + child: TextField( + key: const Key('username_textfield'), + onChanged: (text) { + checkInputNotNull(); + }, + controller: usernameController, + style: const TextStyle( + fontSize: 15, + ), + decoration: const InputDecoration.collapsed( + hintText: 'Phone number , email or username', + ), + ), + ), + ), + ); + } +} diff --git a/clone-instagram-login-Refactoring/lib/app/modules/login/login_page.dart b/clone-instagram-login-Refactoring/lib/app/modules/login/login_page.dart new file mode 100644 index 0000000..22457f8 --- /dev/null +++ b/clone-instagram-login-Refactoring/lib/app/modules/login/login_page.dart @@ -0,0 +1,133 @@ +import 'components/facebook_login.dart'; +import 'components/forgot_access.dart'; +import 'components/or_divider.dart'; +import 'components/signup_section.dart'; +import 'components/login_button.dart'; +import 'components/password_textbox.dart'; +import 'package:flutter/material.dart'; + +import 'components/language_dropdown.dart'; +import 'components/username_textbox.dart'; + +class LoginPage extends StatefulWidget { + const LoginPage({super.key}); + + @override + LoginPageState createState() => LoginPageState(); +} + +class LoginPageState extends State { + TextEditingController usernameController = TextEditingController(); + TextEditingController passwordController = TextEditingController(); + + bool inputTextNotNull = false; + + void checkInputNotNull() { + setState(() { + if (usernameController.text.length >= 2 && + passwordController.text.length >= 2) { + inputTextNotNull = true; + } else { + inputTextNotNull = false; + } + }); + } + + void openHomePage() { + inputTextNotNull ? Navigator.pushNamed(context, '/home') : null; + } + + @override + Widget build(BuildContext context) { + final width = MediaQuery.of(context).size.width; + final height = MediaQuery.of(context).size.height; + + double getAvailableHeight() { + return height - + MediaQuery.of(context).padding.top - + MediaQuery.of(context).padding.bottom; + } + + return Scaffold( + key: const Key('login_page_scaffold'), + body: SafeArea( + key: const Key('login_page_safe_area'), + child: SingleChildScrollView( + key: const Key('login_page_scroll_view'), + child: ConstrainedBox( + key: const Key('login_page_constrained_box'), + constraints: BoxConstraints(minHeight: getAvailableHeight()), + child: Column( + key: const Key('login_page_column'), + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Container( + key: const Key('login_page_language_dropdown_container'), + width: width, + alignment: Alignment.topCenter, + child: const LanguageDropdown(), + ), + Column( + key: const Key('login_page_content_column'), + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Image.asset( + key: const Key('login_page_instagram_logo'), + 'assets/instagram_logo.png', + width: width * .5, + ), + const SizedBox(height: 15), + UsernameTextbox( + key: const Key('login_page_username_textbox'), + width: width, + checkInputNotNull: checkInputNotNull, + usernameController: usernameController, + ), + const SizedBox(height: 10), + PasswordTextbox( + key: const Key('login_page_password_textbox'), + width: width, + checkInputNotNull: checkInputNotNull, + passwordController: passwordController), + const SizedBox(height: 10), + LoginButton( + key: const Key('login_page_login_button'), + width: width, + inputTextNotNull: inputTextNotNull, + onPressed: () { + openHomePage(); + }, + ), + const SizedBox( + height: 15, + ), + ForgotAccess( + key: const Key('login_page_forgot_access'), + width: width, + ), + const SizedBox(height: 15), + ORDivider( + key: const Key('login_page_or_divider'), + width: width, + ), + const SizedBox( + height: 20, + ), + FacebookLogin( + key: const Key('login_page_facebook_login'), + width: width, + ), + ], + ), + SignupSection( + key: const Key('login_page_signup_section'), + width: width, + ), + ], + ), + ), + ), + ), + ); + } +} diff --git a/clone-instagram-login-Refactoring/lib/app/modules/post/post_page.dart b/clone-instagram-login-Refactoring/lib/app/modules/post/post_page.dart new file mode 100644 index 0000000..57232eb --- /dev/null +++ b/clone-instagram-login-Refactoring/lib/app/modules/post/post_page.dart @@ -0,0 +1,76 @@ +import 'package:example_widget_testing/app/widgets/bottom_navbar.dart'; +import 'package:example_widget_testing/app/widgets/post_item.dart'; +import 'package:example_widget_testing/core/values/constant/post_json.dart'; +import 'package:example_widget_testing/core/values/constant/story_json.dart'; +import 'package:flutter/material.dart'; + +import '../../data/models/post.dart'; + +class PostPage extends StatefulWidget { + final List posts; + const PostPage({super.key, required this.posts}); + + @override + PostPageState createState() => PostPageState(); +} + +class PostPageState extends State { + final List listPost = posts.map((e) => Post.fromJson(e)).toList(); + void updatePostLike(id) { + setState(() { + for (var element in listPost) { + if (element.id == id) { + element.isLoved = !element.isLoved!; + } + } + }); + } + + @override + void initState() { + super.initState(); + posts = widget.posts; + } + + @override + Widget build(BuildContext context) { + return Scaffold( + key: const Key('post_page_scaffold'), + backgroundColor: Colors.black, + appBar: AppBar( + backgroundColor: Colors.black, + title: const Text("Post"), + ), + body: SingleChildScrollView( + key: const Key('post_page_single_child_scroll_view'), + child: Column( + key: const Key('post_page_column'), + children: [ + Column( + key: const Key('post_page_column'), + children: listPost.map((post) { + return PostItem( + key: Key('post_item_${post.id}'), // add key for testing + postImg: post.postImg!, + profileImg: post.profileImg!, + name: post.name!, + caption: post.caption!, + isLoved: post.isLoved!, + viewCount: post.commentCount!, + likedBy: post.likedBy!, + dayAgo: post.timeAgo!, + userPhoto: profile, + onPressed: () => updatePostLike(post.id!), + ); + }).toList(), + ) + ], + ), + ), + bottomNavigationBar: const BottomNavbar( + key: Key('post_page_bottom_navbar'), + pageIndex: 4, + ), + ); + } +} diff --git a/clone-instagram-login-Refactoring/lib/app/modules/search/components/search_category_item.dart b/clone-instagram-login-Refactoring/lib/app/modules/search/components/search_category_item.dart new file mode 100644 index 0000000..c867bfc --- /dev/null +++ b/clone-instagram-login-Refactoring/lib/app/modules/search/components/search_category_item.dart @@ -0,0 +1,30 @@ +// import 'package:example_widget_testing/core/theme/colors.dart'; +// import 'package:flutter/material.dart'; + +// class CategoryStoryItem extends StatelessWidget { +// final String name; + +// const CategoryStoryItem({super.key, required this.name}); + +// @override +// Widget build(BuildContext context) { +// return Padding( +// padding: const EdgeInsets.only(right: 10), +// child: Container( +// decoration: BoxDecoration( +// borderRadius: BorderRadius.circular(10), +// color: black, +// border: Border.all(color: white.withOpacity(0.2))), +// child: Padding( +// padding: +// const EdgeInsets.only(left: 20, right: 25, top: 10, bottom: 10), +// child: Text( +// name, +// style: const TextStyle( +// color: white, fontWeight: FontWeight.w500, fontSize: 15), +// ), +// ), +// ), +// ); +// } +// } diff --git a/clone-instagram-login-Refactoring/lib/app/modules/search/search_list_page.dart b/clone-instagram-login-Refactoring/lib/app/modules/search/search_list_page.dart new file mode 100644 index 0000000..73012fd --- /dev/null +++ b/clone-instagram-login-Refactoring/lib/app/modules/search/search_list_page.dart @@ -0,0 +1,43 @@ +// import 'package:example_widget_testing/core/theme/colors.dart'; +// import 'package:flutter/material.dart'; + +// class SearchListPage extends StatefulWidget { +// const SearchListPage({super.key}); + +// @override +// SearchListPageState createState() => SearchListPageState(); +// } + +// class SearchListPageState extends State { +// @override +// Widget build(BuildContext context) { +// return getBody(); +// } + +// Widget getBody() { +// var size = MediaQuery.of(context).size; +// return ListView( +// children: [ +// Container( +// margin: const EdgeInsets.only(bottom: 15, left: 15, right: 15), +// width: size.width - 30, +// height: 45, +// decoration: BoxDecoration( +// borderRadius: BorderRadius.circular(10), +// color: textFieldBackground), +// child: TextField( +// decoration: InputDecoration( +// border: InputBorder.none, +// prefixIcon: Icon( +// Icons.search, +// color: white.withOpacity(0.3), +// ), +// ), +// style: TextStyle(color: white.withOpacity(0.3)), +// cursorColor: white.withOpacity(0.3), +// ), +// ), +// ], +// ); +// } +// } diff --git a/clone-instagram-login-Refactoring/lib/app/modules/search/search_page.dart b/clone-instagram-login-Refactoring/lib/app/modules/search/search_page.dart new file mode 100644 index 0000000..51a1149 --- /dev/null +++ b/clone-instagram-login-Refactoring/lib/app/modules/search/search_page.dart @@ -0,0 +1,73 @@ +import 'package:example_widget_testing/app/widgets/bottom_navbar.dart'; +import 'package:example_widget_testing/core/theme/colors.dart'; +// import 'package:example_widget_testing/core/values/constant/search_json.dart'; +import 'package:flutter/material.dart'; + +import '../../widgets/post_thumbnail.dart'; + +class SearchPage extends StatefulWidget { + const SearchPage({super.key, required this.searchPosts}); + final List searchPosts; + + @override + SearchPageState createState() => SearchPageState(); +} + +class SearchPageState extends State { + @override + Widget build(BuildContext context) { + return Scaffold( + key: const Key('search_page_scaffold'), + backgroundColor: Colors.black, + appBar: const PreferredSize( + key: Key('search_page_app_bar_preferred_size'), + preferredSize: Size.fromHeight(0), + child: SizedBox( + height: 20, + ), + ), + body: ListView( + key: const Key('search_page_listview'), + children: [ + Container( + key: const Key('search_page_textfield_container'), + margin: const EdgeInsets.only(bottom: 15, left: 15, right: 15), + height: 45, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: textFieldBackground), + child: TextField( + key: const Key('search_page_textfield'), + onTap: () { + debugPrint('clicked'); + }, + decoration: InputDecoration( + border: InputBorder.none, + prefixIcon: Icon( + Icons.search, + color: white.withOpacity(0.3), + ), + ), + style: TextStyle(color: white.withOpacity(0.3)), + cursorColor: white.withOpacity(0.3), + ), + ), + Wrap( + key: const Key('search_page_wrap'), + spacing: 1, + runSpacing: 1, + children: widget.searchPosts.map((imageUrl) { + return PostThumbnail( + imageUrl: imageUrl, + ); + }).toList(), + ) + ], + ), + bottomNavigationBar: const BottomNavbar( + key: Key('search_page_bottom_navbar'), + pageIndex: 1, + ), + ); + } +} diff --git a/clone-instagram-login-Refactoring/lib/app/modules/upload/upload_page.dart b/clone-instagram-login-Refactoring/lib/app/modules/upload/upload_page.dart new file mode 100644 index 0000000..1f40e79 --- /dev/null +++ b/clone-instagram-login-Refactoring/lib/app/modules/upload/upload_page.dart @@ -0,0 +1,40 @@ +import 'package:example_widget_testing/app/widgets/bottom_navbar.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_svg/svg.dart'; + +class UploadPage extends StatelessWidget { + const UploadPage({super.key}); + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.black, + appBar: AppBar( + key: const Key("upload_page_appbar"), + backgroundColor: Colors.black, + title: const Text("Upload"), + ), + body: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + SvgPicture.asset( + "assets/images/upload_icon.svg", + width: 60, + ), + const SizedBox(height: 20.0), + const Text( + "Upload Page", + style: TextStyle( + fontSize: 20, + fontWeight: FontWeight.bold, + color: Colors.white, + ), + ), + ], + ), + ), + bottomNavigationBar: const BottomNavbar(pageIndex: 2), + ); + } +} diff --git a/clone-instagram-login-Refactoring/lib/app/widgets/bottom_navbar.dart b/clone-instagram-login-Refactoring/lib/app/widgets/bottom_navbar.dart new file mode 100644 index 0000000..e80c884 --- /dev/null +++ b/clone-instagram-login-Refactoring/lib/app/widgets/bottom_navbar.dart @@ -0,0 +1,41 @@ +import 'package:example_widget_testing/core/values/constant/navbarmenu_json.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_svg/svg.dart'; + +class BottomNavbar extends StatelessWidget { + final int pageIndex; + const BottomNavbar({super.key, required this.pageIndex}); + + @override + Widget build(BuildContext context) { + void navigateToPage(int index) { + Navigator.pushNamed(context, navbarMenuList[index].path!); + } + + return Container( + key: const Key("bottom_navigation_bar_container"), + width: double.infinity, + height: 55, + color: Colors.black, + padding: const EdgeInsets.only(left: 20, right: 20, bottom: 20, top: 15), + child: Row( + key: const Key("bottom_navigation_bar_row"), + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: List.generate(navbarMenuList.length, (index) { + return InkWell( + key: Key("bottom_item_$index"), + onTap: () { + navigateToPage(index); + }, + child: SvgPicture.asset( + pageIndex == index + ? navbarMenuList[index].activeIcon! + : navbarMenuList[index].inactiveIcon!, + width: 27, + ), + ); + }), + ), + ); + } +} diff --git a/clone-instagram-login-Refactoring/lib/app/widgets/post_item.dart b/clone-instagram-login-Refactoring/lib/app/widgets/post_item.dart new file mode 100644 index 0000000..7dfafcc --- /dev/null +++ b/clone-instagram-login-Refactoring/lib/app/widgets/post_item.dart @@ -0,0 +1,303 @@ +import 'package:example_widget_testing/core/theme/colors.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +// import 'package:line_icons/line_icons.dart'; + +class PostItem extends StatelessWidget { + final String profileImg; + final String name; + final String postImg; + final String caption; + final bool isLoved; + final String likedBy; + final String viewCount; + final String dayAgo; + final String userPhoto; + final VoidCallback onPressed; + + const PostItem({ + super.key, + required this.profileImg, + required this.name, + required this.postImg, + required this.caption, + required this.isLoved, + required this.likedBy, + required this.viewCount, + required this.dayAgo, + required this.userPhoto, + required this.onPressed, + }); + + @override + Widget build(BuildContext context) { + return Padding( + key: const Key('post_item_padding'), + padding: const EdgeInsets.only(bottom: 10), + child: Column( + key: const Key('post_item_column'), + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + key: const Key('post_item_user_info_container'), + padding: const EdgeInsets.symmetric(vertical: 10, horizontal: 15), + margin: const EdgeInsets.only(bottom: 12), + child: Row( + key: const Key('post_item_user_info_row'), + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Container( + key: const Key('post_item_user_profile_img_container'), + width: 40, + height: 40, + margin: const EdgeInsets.only(right: 15), + decoration: BoxDecoration( + shape: BoxShape.circle, + image: DecorationImage( + image: NetworkImage(profileImg), + fit: BoxFit.cover, + ), + ), + ), + Expanded( + key: const Key('post_item_user_name_expanded'), + child: Text( + key: const Key('post_item_user_name_text'), + name, + style: const TextStyle( + color: white, + fontSize: 15, + fontWeight: FontWeight.w500, + ), + ), + ), + const Icon( + key: Key('post_item_user_more_icon'), + Icons.more_horiz, + color: white, + ) + ], + ), + ), + Stack( + children: [ + Material( + child: InkWell( + onDoubleTap: () => onPressed(), + child: Container( + key: const Key('post_item_image_container'), + height: 400, + margin: const EdgeInsets.only(bottom: 10), + decoration: BoxDecoration( + image: DecorationImage( + image: NetworkImage(postImg), + fit: BoxFit.cover, + ), + ), + ), + ), + ), + // put love icon here + Positioned( + key: const Key('post_item_love_icon_positioned'), + bottom: 20, + right: 20, + child: Material( + color: Colors.transparent, + child: InkWell( + onTap: onPressed, + child: SvgPicture.asset( + key: const Key('post_item_love_icon'), + isLoved + ? "assets/images/loved_icon.svg" + : "assets/images/love_icon.svg", + width: 27, + ), + ), + ), + ), + ], + ), + Container( + key: const Key('post_item_actions_container'), + padding: const EdgeInsets.fromLTRB(15, 3, 15, 0), + margin: const EdgeInsets.only(bottom: 12), + child: Row( + key: const Key('post_item_actions_row'), + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + key: const Key('post_item_actions_left_row'), + children: [ + Material( + color: Colors.transparent, + child: InkWell( + onTap: onPressed, + child: SvgPicture.asset( + key: const Key('post_item_actions_love_icon'), + isLoved + ? "assets/images/loved_icon.svg" + : "assets/images/love_icon.svg", + width: 27, + ), + ), + ), + const SizedBox( + key: Key('post_item_actions_left_row_sized_box_1'), + width: 20), + SvgPicture.asset( + "assets/images/comment_icon.svg", + key: const Key('post_item_actions_comment_icon'), + width: 27, + ), + const SizedBox( + key: Key('post_item_actions_left_row_sized_box_2'), + width: 20), + SvgPicture.asset( + "assets/images/message_icon.svg", + key: const Key('post_item_actions_message_icon'), + width: 27, + ), + ], + ), + SvgPicture.asset( + "assets/images/save_icon.svg", + key: const Key('post_item_actions_save_icon'), + width: 27, + ), + ], + ), + ), + Container( + key: const Key('post_item_likes_container'), + padding: const EdgeInsets.symmetric(horizontal: 15), + margin: const EdgeInsets.only(bottom: 12), + child: RichText( + key: const Key('post_item_likes_rich_text'), + text: TextSpan( + children: [ + TextSpan( + text: "Liked by $likedBy and Other", + style: const TextStyle( + fontSize: 15, + fontWeight: FontWeight.w500, + ), + ), + ], + ), + ), + ), + Container( + key: const Key('post_item_caption_container'), + padding: const EdgeInsets.symmetric(horizontal: 15), + margin: const EdgeInsets.only(bottom: 12), + child: RichText( + key: const Key('post_item_caption_rich_text'), + text: TextSpan( + children: [ + TextSpan( + text: "$name ", + style: const TextStyle( + fontSize: 15, fontWeight: FontWeight.w700), + ), + TextSpan( + text: caption, + style: const TextStyle( + fontSize: 15, fontWeight: FontWeight.w500), + ), + ], + ), + ), + ), + Container( + key: const Key('post_item_view_comments_container'), + padding: const EdgeInsets.symmetric(horizontal: 15), + margin: const EdgeInsets.only(bottom: 12), + child: Text( + key: const Key('post_item_view_comments_text'), + "View $viewCount comments", + style: TextStyle( + color: white.withOpacity(0.5), + fontSize: 15, + fontWeight: FontWeight.w500), + ), + ), + Container( + key: const Key('post_item_add_comment_container'), + padding: const EdgeInsets.symmetric(horizontal: 15), + margin: const EdgeInsets.only(bottom: 12), + child: Row( + key: const Key('post_item_add_comment_row'), + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + key: const Key('post_item_add_comment_left_row'), + children: [ + Container( + key: const Key('post_item_add_comment_avatar_container'), + width: 30, + height: 30, + margin: const EdgeInsets.only(right: 15), + decoration: BoxDecoration( + shape: BoxShape.circle, + image: DecorationImage( + image: NetworkImage(userPhoto), + fit: BoxFit.cover, + ), + ), + ), + Text( + key: const Key('post_item_add_comment_text'), + "Add a comment...", + style: TextStyle( + color: white.withOpacity(0.5), + fontSize: 15, + fontWeight: FontWeight.w500, + ), + ), + ], + ), + Row( + key: const Key('post_item_add_comment_right_row'), + children: [ + const Text( + key: Key('post_item_add_laugh_emoji_text'), + "😂", + style: TextStyle(fontSize: 20), + ), + const SizedBox(width: 10), + const Text( + key: Key('post_item_add_love_emoji_text'), + "😍", + style: TextStyle(fontSize: 20), + ), + const SizedBox(width: 10), + Icon( + key: const Key('post_item_add_circle_icon'), + Icons.add_circle, + color: white.withOpacity(0.5), + size: 18, + ) + ], + ) + ], + ), + ), + Padding( + key: const Key('post_item_day_ago_padding'), + padding: const EdgeInsets.symmetric(horizontal: 15), + child: Text( + key: const Key('post_item_day_ago_text'), + dayAgo, + style: TextStyle( + color: white.withOpacity(0.5), + fontSize: 15, + fontWeight: FontWeight.w500, + ), + ), + ) + ], + ), + ); + } +} diff --git a/clone-instagram-login-Refactoring/lib/app/widgets/post_thumbnail.dart b/clone-instagram-login-Refactoring/lib/app/widgets/post_thumbnail.dart new file mode 100644 index 0000000..1808aa8 --- /dev/null +++ b/clone-instagram-login-Refactoring/lib/app/widgets/post_thumbnail.dart @@ -0,0 +1,23 @@ +import 'package:flutter/widgets.dart'; + +class PostThumbnail extends StatelessWidget { + final String imageUrl; + + const PostThumbnail({super.key, required this.imageUrl}); + + @override + Widget build(BuildContext context) { + final size = MediaQuery.of(context).size; + return Container( + key: Key(imageUrl), + width: (size.width - 3) / 3, + height: (size.width - 3) / 3, + decoration: BoxDecoration( + image: DecorationImage( + image: NetworkImage(imageUrl), + fit: BoxFit.cover, + ), + ), + ); + } +} diff --git a/clone-instagram-login-Refactoring/lib/app/widgets/root_app.dart b/clone-instagram-login-Refactoring/lib/app/widgets/root_app.dart new file mode 100644 index 0000000..b892978 --- /dev/null +++ b/clone-instagram-login-Refactoring/lib/app/widgets/root_app.dart @@ -0,0 +1,20 @@ +// import 'package:example_widget_testing/core/values/constant/navbarmenu_json.dart'; +// import 'package:flutter/material.dart'; +// import 'package:flutter_svg/svg.dart'; + +// class BottomNavbar extends StatelessWidget { +// final int pageIndex; +// const BottomNavbar({ +// super.key, +// required this.pageIndex, +// }); + +// @override +// Widget build(BuildContext context) { +// void navigateToPage(int index) { +// Navigator.pushNamed(context, navbarMenuList[index].path!); +// } + +// throw UnimplementedError(); +// } +// } diff --git a/clone-instagram-login-Refactoring/lib/core/theme/colors.dart b/clone-instagram-login-Refactoring/lib/core/theme/colors.dart new file mode 100644 index 0000000..898ce74 --- /dev/null +++ b/clone-instagram-login-Refactoring/lib/core/theme/colors.dart @@ -0,0 +1,10 @@ +import 'package:flutter/material.dart'; + +const appBarColor = Color(0xFF131313); +const appFooterColor = Color(0xFF131313); +const primary = Color(0xFF000000); +const white = Color(0xFFFFFFFF); +const black = Color(0xFF000000); +const textFieldBackground = Color(0xFF262626); +const buttonFollowColor = Color(0xFF0494F5); +const storyBorderColor = [Color(0xFF9B2282), Color(0xFFEEA863)]; diff --git a/clone-instagram-login-Refactoring/lib/core/values/constant/navbarmenu_json.dart b/clone-instagram-login-Refactoring/lib/core/values/constant/navbarmenu_json.dart new file mode 100644 index 0000000..4544952 --- /dev/null +++ b/clone-instagram-login-Refactoring/lib/core/values/constant/navbarmenu_json.dart @@ -0,0 +1,42 @@ +import '../../../app/data/models/navbar_menu.dart'; + +List navbarmenu = [ + { + "id": 1, + "name": "Home", + "active_icon": "assets/images/home_active_icon.svg", + "inactive_icon": "assets/images/home_icon.svg", + "path": "/home", + }, + { + "id": 2, + "name": "Search", + "active_icon": "assets/images/search_active_icon.svg", + "inactive_icon": "assets/images/search_icon.svg", + "path": "/search" + }, + { + "id": 3, + "name": "Upload", + "active_icon": "assets/images/upload_active_icon.svg", + "inactive_icon": "assets/images/upload_icon.svg", + "path": "/upload" + }, + { + "id": 4, + "name": "Activity", + "active_icon": "assets/images/love_active_icon.svg", + "inactive_icon": "assets/images/love_icon.svg", + "path": "/activity" + }, + { + "id": 5, + "name": "Account", + "active_icon": "assets/images/account_active_icon.svg", + "inactive_icon": "assets/images/account_icon.svg", + "path": "/account" + } +]; + +List navbarMenuList = + navbarmenu.map((e) => NavbarMenu.fromJson(e)).toList(); diff --git a/clone-instagram-login-Refactoring/lib/core/values/constant/post_json.dart b/clone-instagram-login-Refactoring/lib/core/values/constant/post_json.dart new file mode 100644 index 0000000..6a10e35 --- /dev/null +++ b/clone-instagram-login-Refactoring/lib/core/values/constant/post_json.dart @@ -0,0 +1,68 @@ +List posts = [ + { + "id": 1, + "name": "Kal El", + "profileImg": + "https://images.unsplash.com/photo-1634861949375-3fc4bd412f2f?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=687&q=80", + "postImg": + "https://images.unsplash.com/photo-1634861949375-3fc4bd412f2f?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=687&q=80", + "caption": " Nice cape, Clark.", + "isLoved": true, + "commentCount": "10", + "likedBy": "whereavygoes", + "timeAgo": "1 day ago" + }, + { + "id": 2, + "name": "Martian", + "profileImg": + "https://images.unsplash.com/photo-1614935981447-893ce3858657?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=735&q=80", + "postImg": + "https://images.unsplash.com/photo-1614935981447-893ce3858657?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=735&q=80", + "caption": + " Home is where the heart is. And my heart is in the middle of nowhere.", + "isLoved": true, + "commentCount": "10", + "likedBy": "sonitakhoun", + "timeAgo": "1 day ago" + }, + { + "id": 3, + "name": "Arthur Curry", + "profileImg": + "https://images.unsplash.com/photo-1584102534935-a63e84096e83?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1469&q=80", + "postImg": + "https://images.unsplash.com/photo-1584102534935-a63e84096e83?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1469&q=80", + "caption": " G'day, mate.", + "isLoved": false, + "commentCount": "60", + "likedBy": "Amber Heard", + "timeAgo": "3 day ago" + }, + { + "id": 4, + "name": "Victor Stone", + "profileImg": + "https://images.unsplash.com/photo-1616142914433-71120bc70202?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1528&q=80", + "postImg": + "https://images.unsplash.com/photo-1616142914433-71120bc70202?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1528&q=80", + "caption": "It's all encoded", + "isLoved": false, + "commentCount": "70", + "likedBy": "sonitakhoun", + "timeAgo": "3 day ago" + }, + { + "id": 5, + "name": "Bruce Wayne", + "profileImg": + "https://images.unsplash.com/photo-1497124401559-3e75ec2ed794?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1470&q=80", + "postImg": + "https://images.unsplash.com/photo-1497124401559-3e75ec2ed794?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1470&q=80", + "caption": "I'm Batman", + "isLoved": false, + "commentCount": "70", + "likedBy": "sonitakhoun", + "timeAgo": "3 day ago" + } +]; diff --git a/clone-instagram-login-Refactoring/lib/core/values/constant/profile_json.dart b/clone-instagram-login-Refactoring/lib/core/values/constant/profile_json.dart new file mode 100644 index 0000000..aa1666e --- /dev/null +++ b/clone-instagram-login-Refactoring/lib/core/values/constant/profile_json.dart @@ -0,0 +1,14 @@ +final profileJson = { + "username": "iclop", + "name": "IClop Student", + "bio": "Apperentice", + "profilePic": + "https://images.unsplash.com/photo-1614935981447-893ce3858657?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=735&q=80", + "profileBackground": "assets/images/profile_background.jpg", + "profileBackgroundBlur": "assets/images/profile_background_blur.jpg", + "stats": [ + {"count": 0, "label": "Posts"}, + {"count": 0, "label": "Followers"}, + {"count": 0, "label": "Following"} + ] +}; diff --git a/clone-instagram-login-Refactoring/lib/core/values/constant/profile_tabs_json.dart b/clone-instagram-login-Refactoring/lib/core/values/constant/profile_tabs_json.dart new file mode 100644 index 0000000..9d0680f --- /dev/null +++ b/clone-instagram-login-Refactoring/lib/core/values/constant/profile_tabs_json.dart @@ -0,0 +1,14 @@ +import 'package:flutter/material.dart'; + +final List tabs = [ + { + "id": 0, + "title": "posts", + "icon": Icons.grid_on_outlined, + }, + { + "id": 1, + "title": "tags", + "icon": Icons.person_pin_outlined, + } +]; diff --git a/clone-instagram-login-Refactoring/lib/core/values/constant/search_json.dart b/clone-instagram-login-Refactoring/lib/core/values/constant/search_json.dart new file mode 100644 index 0000000..0bc5ba4 --- /dev/null +++ b/clone-instagram-login-Refactoring/lib/core/values/constant/search_json.dart @@ -0,0 +1,28 @@ +List searchCategories = [ + "Shop", + "Decor", + "Travel", + "Architechture", + "Food", + "Art", + "Style", + "TV & Movies", + "Music", + "DIY", + "Comics" +]; + +List searchImages = [ + "https://images.unsplash.com/photo-1504123010103-b1f3fe484a32?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1470&q=80", + "https://images.unsplash.com/photo-1497316730643-415fac54a2af?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=764&q=80", + "https://images.unsplash.com/photo-1576092762793-c0e9395ec4b9?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=687&q=80", + "https://images.unsplash.com/photo-1597182322624-232ca7819eaa?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=688&q=80", + "https://images.unsplash.com/photo-1581091007718-0c50d599bfd0?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=687&q=80", + "https://images.unsplash.com/photo-1503428593586-e225b39bddfe?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1470&q=80", + "https://images.unsplash.com/photo-1497124401559-3e75ec2ed794?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1470&q=80", + "https://images.unsplash.com/photo-1616142914433-71120bc70202?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1528&q=80", + "https://images.unsplash.com/photo-1584102534935-a63e84096e83?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1469&q=80", + "https://images.unsplash.com/photo-1614935981447-893ce3858657?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=735&q=80", + "https://images.unsplash.com/photo-1634861949375-3fc4bd412f2f?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=687&q=80", + "https://images.unsplash.com/photo-1506901437675-cde80ff9c746?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=800&q=60", +]; diff --git a/clone-instagram-login-Refactoring/lib/core/values/constant/story_json.dart b/clone-instagram-login-Refactoring/lib/core/values/constant/story_json.dart new file mode 100644 index 0000000..1450ae5 --- /dev/null +++ b/clone-instagram-login-Refactoring/lib/core/values/constant/story_json.dart @@ -0,0 +1,38 @@ +// user prfile +String profile = + "https://images.unsplash.com/photo-1504123010103-b1f3fe484a32?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1470&q=80"; +String name = "Barry Allen"; + +// stories +List stories = [ + { + "id": 1, + "img": + "https://images.unsplash.com/photo-1503428593586-e225b39bddfe?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1470&q=80", + "name": "Lois Lane" + }, + { + "id": 2, + "img": + "https://images.unsplash.com/photo-1581091007718-0c50d599bfd0?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=687&q=80", + "name": "Silas Stone" + }, + { + "id": 3, + "img": + "https://images.unsplash.com/photo-1597182322624-232ca7819eaa?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=688&q=80", + "name": "Mera" + }, + { + "id": 4, + "img": + "https://images.unsplash.com/photo-1576092762793-c0e9395ec4b9?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=687&q=80", + "name": "Pennyworth" + }, + { + "id": 5, + "img": + "https://images.unsplash.com/photo-1497316730643-415fac54a2af?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=764&q=80", + "name": "Jimmy Olsen" + } +]; diff --git a/clone-instagram-login-Refactoring/lib/main.dart b/clone-instagram-login-Refactoring/lib/main.dart new file mode 100644 index 0000000..6c30e19 --- /dev/null +++ b/clone-instagram-login-Refactoring/lib/main.dart @@ -0,0 +1,44 @@ +import 'package:example_widget_testing/app/modules/account/account_page.dart'; +import 'package:example_widget_testing/app/modules/activity/activity_page.dart'; +import 'package:example_widget_testing/app/modules/home/home_page.dart'; +import 'package:example_widget_testing/app/modules/login/login_page.dart'; +import 'package:example_widget_testing/app/modules/post/post_page.dart'; +import 'package:example_widget_testing/app/modules/search/search_page.dart'; +import 'package:example_widget_testing/core/values/constant/post_json.dart'; +import 'package:example_widget_testing/core/values/constant/profile_json.dart'; +import 'package:example_widget_testing/core/values/constant/search_json.dart'; +import 'package:flutter/material.dart'; + +import 'app/modules/upload/upload_page.dart'; +import 'core/values/constant/story_json.dart'; + +void main() { + runApp(const MyApp()); +} + +class MyApp extends StatelessWidget { + const MyApp({super.key}); + + @override + Widget build(BuildContext context) { + return MaterialApp( + debugShowCheckedModeBanner: false, + title: 'Flutter Demo', + theme: ThemeData( + primarySwatch: Colors.blue, + ), + home: const LoginPage(), + routes: { + '/login': (context) => const LoginPage(), + '/home': (context) => + HomePage(posts: posts, stories: stories, profileData: profileJson), + '/search': (context) => SearchPage(searchPosts: searchImages), + '/upload': (context) => const UploadPage(), + '/activity': (context) => const ActivityPage(), + '/account': (context) => AccountPage( + profileData: profileJson, posts: posts, stories: stories), + '/post': (context) => PostPage(posts: posts), + }, + ); + } +} diff --git a/clone-instagram-login-Refactoring/linux/.gitignore b/clone-instagram-login-Refactoring/linux/.gitignore new file mode 100644 index 0000000..d3896c9 --- /dev/null +++ b/clone-instagram-login-Refactoring/linux/.gitignore @@ -0,0 +1 @@ +flutter/ephemeral diff --git a/clone-instagram-login-Refactoring/linux/CMakeLists.txt b/clone-instagram-login-Refactoring/linux/CMakeLists.txt new file mode 100644 index 0000000..a81fd7a --- /dev/null +++ b/clone-instagram-login-Refactoring/linux/CMakeLists.txt @@ -0,0 +1,138 @@ +# Project-level configuration. +cmake_minimum_required(VERSION 3.10) +project(runner LANGUAGES CXX) + +# The name of the executable created for the application. Change this to change +# the on-disk name of your application. +set(BINARY_NAME "example_widget_testing") +# The unique GTK application identifier for this application. See: +# https://wiki.gnome.org/HowDoI/ChooseApplicationID +set(APPLICATION_ID "com.example.example_widget_testing") + +# Explicitly opt in to modern CMake behaviors to avoid warnings with recent +# versions of CMake. +cmake_policy(SET CMP0063 NEW) + +# Load bundled libraries from the lib/ directory relative to the binary. +set(CMAKE_INSTALL_RPATH "$ORIGIN/lib") + +# Root filesystem for cross-building. +if(FLUTTER_TARGET_PLATFORM_SYSROOT) + set(CMAKE_SYSROOT ${FLUTTER_TARGET_PLATFORM_SYSROOT}) + set(CMAKE_FIND_ROOT_PATH ${CMAKE_SYSROOT}) + set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) + set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) + set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) + set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) +endif() + +# Define build configuration options. +if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) + set(CMAKE_BUILD_TYPE "Debug" CACHE + STRING "Flutter build mode" FORCE) + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS + "Debug" "Profile" "Release") +endif() + +# Compilation settings that should be applied to most targets. +# +# Be cautious about adding new options here, as plugins use this function by +# default. In most cases, you should add new options to specific targets instead +# of modifying this function. +function(APPLY_STANDARD_SETTINGS TARGET) + target_compile_features(${TARGET} PUBLIC cxx_std_14) + target_compile_options(${TARGET} PRIVATE -Wall -Werror) + target_compile_options(${TARGET} PRIVATE "$<$>:-O3>") + target_compile_definitions(${TARGET} PRIVATE "$<$>:NDEBUG>") +endfunction() + +# Flutter library and tool build rules. +set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter") +add_subdirectory(${FLUTTER_MANAGED_DIR}) + +# System-level dependencies. +find_package(PkgConfig REQUIRED) +pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0) + +add_definitions(-DAPPLICATION_ID="${APPLICATION_ID}") + +# Define the application target. To change its name, change BINARY_NAME above, +# not the value here, or `flutter run` will no longer work. +# +# Any new source files that you add to the application should be added here. +add_executable(${BINARY_NAME} + "main.cc" + "my_application.cc" + "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" +) + +# Apply the standard set of build settings. This can be removed for applications +# that need different build settings. +apply_standard_settings(${BINARY_NAME}) + +# Add dependency libraries. Add any application-specific dependencies here. +target_link_libraries(${BINARY_NAME} PRIVATE flutter) +target_link_libraries(${BINARY_NAME} PRIVATE PkgConfig::GTK) + +# Run the Flutter tool portions of the build. This must not be removed. +add_dependencies(${BINARY_NAME} flutter_assemble) + +# Only the install-generated bundle's copy of the executable will launch +# correctly, since the resources must in the right relative locations. To avoid +# people trying to run the unbundled copy, put it in a subdirectory instead of +# the default top-level location. +set_target_properties(${BINARY_NAME} + PROPERTIES + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/intermediates_do_not_run" +) + +# Generated plugin build rules, which manage building the plugins and adding +# them to the application. +include(flutter/generated_plugins.cmake) + + +# === Installation === +# By default, "installing" just makes a relocatable bundle in the build +# directory. +set(BUILD_BUNDLE_DIR "${PROJECT_BINARY_DIR}/bundle") +if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE) +endif() + +# Start with a clean build bundle directory every time. +install(CODE " + file(REMOVE_RECURSE \"${BUILD_BUNDLE_DIR}/\") + " COMPONENT Runtime) + +set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data") +set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib") + +install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +foreach(bundled_library ${PLUGIN_BUNDLED_LIBRARIES}) + install(FILES "${bundled_library}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) +endforeach(bundled_library) + +# Fully re-copy the assets directory on each build to avoid having stale files +# from a previous install. +set(FLUTTER_ASSET_DIR_NAME "flutter_assets") +install(CODE " + file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\") + " COMPONENT Runtime) +install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}" + DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime) + +# Install the AOT library on non-Debug builds only. +if(NOT CMAKE_BUILD_TYPE MATCHES "Debug") + install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) +endif() diff --git a/clone-instagram-login-Refactoring/linux/flutter/CMakeLists.txt b/clone-instagram-login-Refactoring/linux/flutter/CMakeLists.txt new file mode 100644 index 0000000..d5bd016 --- /dev/null +++ b/clone-instagram-login-Refactoring/linux/flutter/CMakeLists.txt @@ -0,0 +1,88 @@ +# This file controls Flutter-level build steps. It should not be edited. +cmake_minimum_required(VERSION 3.10) + +set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral") + +# Configuration provided via flutter tool. +include(${EPHEMERAL_DIR}/generated_config.cmake) + +# TODO: Move the rest of this into files in ephemeral. See +# https://github.com/flutter/flutter/issues/57146. + +# Serves the same purpose as list(TRANSFORM ... PREPEND ...), +# which isn't available in 3.10. +function(list_prepend LIST_NAME PREFIX) + set(NEW_LIST "") + foreach(element ${${LIST_NAME}}) + list(APPEND NEW_LIST "${PREFIX}${element}") + endforeach(element) + set(${LIST_NAME} "${NEW_LIST}" PARENT_SCOPE) +endfunction() + +# === Flutter Library === +# System-level dependencies. +find_package(PkgConfig REQUIRED) +pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0) +pkg_check_modules(GLIB REQUIRED IMPORTED_TARGET glib-2.0) +pkg_check_modules(GIO REQUIRED IMPORTED_TARGET gio-2.0) + +set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/libflutter_linux_gtk.so") + +# Published to parent scope for install step. +set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE) +set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE) +set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE) +set(AOT_LIBRARY "${PROJECT_DIR}/build/lib/libapp.so" PARENT_SCOPE) + +list(APPEND FLUTTER_LIBRARY_HEADERS + "fl_basic_message_channel.h" + "fl_binary_codec.h" + "fl_binary_messenger.h" + "fl_dart_project.h" + "fl_engine.h" + "fl_json_message_codec.h" + "fl_json_method_codec.h" + "fl_message_codec.h" + "fl_method_call.h" + "fl_method_channel.h" + "fl_method_codec.h" + "fl_method_response.h" + "fl_plugin_registrar.h" + "fl_plugin_registry.h" + "fl_standard_message_codec.h" + "fl_standard_method_codec.h" + "fl_string_codec.h" + "fl_value.h" + "fl_view.h" + "flutter_linux.h" +) +list_prepend(FLUTTER_LIBRARY_HEADERS "${EPHEMERAL_DIR}/flutter_linux/") +add_library(flutter INTERFACE) +target_include_directories(flutter INTERFACE + "${EPHEMERAL_DIR}" +) +target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}") +target_link_libraries(flutter INTERFACE + PkgConfig::GTK + PkgConfig::GLIB + PkgConfig::GIO +) +add_dependencies(flutter flutter_assemble) + +# === Flutter tool backend === +# _phony_ is a non-existent file to force this command to run every time, +# since currently there's no way to get a full input/output list from the +# flutter tool. +add_custom_command( + OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS} + ${CMAKE_CURRENT_BINARY_DIR}/_phony_ + COMMAND ${CMAKE_COMMAND} -E env + ${FLUTTER_TOOL_ENVIRONMENT} + "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.sh" + ${FLUTTER_TARGET_PLATFORM} ${CMAKE_BUILD_TYPE} + VERBATIM +) +add_custom_target(flutter_assemble DEPENDS + "${FLUTTER_LIBRARY}" + ${FLUTTER_LIBRARY_HEADERS} +) diff --git a/clone-instagram-login-Refactoring/linux/flutter/generated_plugin_registrant.cc b/clone-instagram-login-Refactoring/linux/flutter/generated_plugin_registrant.cc new file mode 100644 index 0000000..e71a16d --- /dev/null +++ b/clone-instagram-login-Refactoring/linux/flutter/generated_plugin_registrant.cc @@ -0,0 +1,11 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#include "generated_plugin_registrant.h" + + +void fl_register_plugins(FlPluginRegistry* registry) { +} diff --git a/clone-instagram-login-Refactoring/linux/flutter/generated_plugin_registrant.h b/clone-instagram-login-Refactoring/linux/flutter/generated_plugin_registrant.h new file mode 100644 index 0000000..e0f0a47 --- /dev/null +++ b/clone-instagram-login-Refactoring/linux/flutter/generated_plugin_registrant.h @@ -0,0 +1,15 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#ifndef GENERATED_PLUGIN_REGISTRANT_ +#define GENERATED_PLUGIN_REGISTRANT_ + +#include + +// Registers Flutter plugins. +void fl_register_plugins(FlPluginRegistry* registry); + +#endif // GENERATED_PLUGIN_REGISTRANT_ diff --git a/clone-instagram-login-Refactoring/linux/flutter/generated_plugins.cmake b/clone-instagram-login-Refactoring/linux/flutter/generated_plugins.cmake new file mode 100644 index 0000000..2e1de87 --- /dev/null +++ b/clone-instagram-login-Refactoring/linux/flutter/generated_plugins.cmake @@ -0,0 +1,23 @@ +# +# Generated file, do not edit. +# + +list(APPEND FLUTTER_PLUGIN_LIST +) + +list(APPEND FLUTTER_FFI_PLUGIN_LIST +) + +set(PLUGIN_BUNDLED_LIBRARIES) + +foreach(plugin ${FLUTTER_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin}) + target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) + list(APPEND PLUGIN_BUNDLED_LIBRARIES $) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) +endforeach(plugin) + +foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) +endforeach(ffi_plugin) diff --git a/clone-instagram-login-Refactoring/linux/main.cc b/clone-instagram-login-Refactoring/linux/main.cc new file mode 100644 index 0000000..e7c5c54 --- /dev/null +++ b/clone-instagram-login-Refactoring/linux/main.cc @@ -0,0 +1,6 @@ +#include "my_application.h" + +int main(int argc, char** argv) { + g_autoptr(MyApplication) app = my_application_new(); + return g_application_run(G_APPLICATION(app), argc, argv); +} diff --git a/clone-instagram-login-Refactoring/linux/my_application.cc b/clone-instagram-login-Refactoring/linux/my_application.cc new file mode 100644 index 0000000..d312ba8 --- /dev/null +++ b/clone-instagram-login-Refactoring/linux/my_application.cc @@ -0,0 +1,104 @@ +#include "my_application.h" + +#include +#ifdef GDK_WINDOWING_X11 +#include +#endif + +#include "flutter/generated_plugin_registrant.h" + +struct _MyApplication { + GtkApplication parent_instance; + char** dart_entrypoint_arguments; +}; + +G_DEFINE_TYPE(MyApplication, my_application, GTK_TYPE_APPLICATION) + +// Implements GApplication::activate. +static void my_application_activate(GApplication* application) { + MyApplication* self = MY_APPLICATION(application); + GtkWindow* window = + GTK_WINDOW(gtk_application_window_new(GTK_APPLICATION(application))); + + // Use a header bar when running in GNOME as this is the common style used + // by applications and is the setup most users will be using (e.g. Ubuntu + // desktop). + // If running on X and not using GNOME then just use a traditional title bar + // in case the window manager does more exotic layout, e.g. tiling. + // If running on Wayland assume the header bar will work (may need changing + // if future cases occur). + gboolean use_header_bar = TRUE; +#ifdef GDK_WINDOWING_X11 + GdkScreen* screen = gtk_window_get_screen(window); + if (GDK_IS_X11_SCREEN(screen)) { + const gchar* wm_name = gdk_x11_screen_get_window_manager_name(screen); + if (g_strcmp0(wm_name, "GNOME Shell") != 0) { + use_header_bar = FALSE; + } + } +#endif + if (use_header_bar) { + GtkHeaderBar* header_bar = GTK_HEADER_BAR(gtk_header_bar_new()); + gtk_widget_show(GTK_WIDGET(header_bar)); + gtk_header_bar_set_title(header_bar, "example_widget_testing"); + gtk_header_bar_set_show_close_button(header_bar, TRUE); + gtk_window_set_titlebar(window, GTK_WIDGET(header_bar)); + } else { + gtk_window_set_title(window, "example_widget_testing"); + } + + gtk_window_set_default_size(window, 1280, 720); + gtk_widget_show(GTK_WIDGET(window)); + + g_autoptr(FlDartProject) project = fl_dart_project_new(); + fl_dart_project_set_dart_entrypoint_arguments(project, self->dart_entrypoint_arguments); + + FlView* view = fl_view_new(project); + gtk_widget_show(GTK_WIDGET(view)); + gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(view)); + + fl_register_plugins(FL_PLUGIN_REGISTRY(view)); + + gtk_widget_grab_focus(GTK_WIDGET(view)); +} + +// Implements GApplication::local_command_line. +static gboolean my_application_local_command_line(GApplication* application, gchar*** arguments, int* exit_status) { + MyApplication* self = MY_APPLICATION(application); + // Strip out the first argument as it is the binary name. + self->dart_entrypoint_arguments = g_strdupv(*arguments + 1); + + g_autoptr(GError) error = nullptr; + if (!g_application_register(application, nullptr, &error)) { + g_warning("Failed to register: %s", error->message); + *exit_status = 1; + return TRUE; + } + + g_application_activate(application); + *exit_status = 0; + + return TRUE; +} + +// Implements GObject::dispose. +static void my_application_dispose(GObject* object) { + MyApplication* self = MY_APPLICATION(object); + g_clear_pointer(&self->dart_entrypoint_arguments, g_strfreev); + G_OBJECT_CLASS(my_application_parent_class)->dispose(object); +} + +static void my_application_class_init(MyApplicationClass* klass) { + G_APPLICATION_CLASS(klass)->activate = my_application_activate; + G_APPLICATION_CLASS(klass)->local_command_line = my_application_local_command_line; + G_OBJECT_CLASS(klass)->dispose = my_application_dispose; +} + +static void my_application_init(MyApplication* self) {} + +MyApplication* my_application_new() { + return MY_APPLICATION(g_object_new(my_application_get_type(), + "application-id", APPLICATION_ID, + "flags", G_APPLICATION_NON_UNIQUE, + nullptr)); +} diff --git a/clone-instagram-login-Refactoring/linux/my_application.h b/clone-instagram-login-Refactoring/linux/my_application.h new file mode 100644 index 0000000..72271d5 --- /dev/null +++ b/clone-instagram-login-Refactoring/linux/my_application.h @@ -0,0 +1,18 @@ +#ifndef FLUTTER_MY_APPLICATION_H_ +#define FLUTTER_MY_APPLICATION_H_ + +#include + +G_DECLARE_FINAL_TYPE(MyApplication, my_application, MY, APPLICATION, + GtkApplication) + +/** + * my_application_new: + * + * Creates a new Flutter-based application. + * + * Returns: a new #MyApplication. + */ +MyApplication* my_application_new(); + +#endif // FLUTTER_MY_APPLICATION_H_ diff --git a/clone-instagram-login-Refactoring/macos/.gitignore b/clone-instagram-login-Refactoring/macos/.gitignore new file mode 100644 index 0000000..746adbb --- /dev/null +++ b/clone-instagram-login-Refactoring/macos/.gitignore @@ -0,0 +1,7 @@ +# Flutter-related +**/Flutter/ephemeral/ +**/Pods/ + +# Xcode-related +**/dgph +**/xcuserdata/ diff --git a/clone-instagram-login-Refactoring/macos/Flutter/Flutter-Debug.xcconfig b/clone-instagram-login-Refactoring/macos/Flutter/Flutter-Debug.xcconfig new file mode 100644 index 0000000..c2efd0b --- /dev/null +++ b/clone-instagram-login-Refactoring/macos/Flutter/Flutter-Debug.xcconfig @@ -0,0 +1 @@ +#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/clone-instagram-login-Refactoring/macos/Flutter/Flutter-Release.xcconfig b/clone-instagram-login-Refactoring/macos/Flutter/Flutter-Release.xcconfig new file mode 100644 index 0000000..c2efd0b --- /dev/null +++ b/clone-instagram-login-Refactoring/macos/Flutter/Flutter-Release.xcconfig @@ -0,0 +1 @@ +#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/clone-instagram-login-Refactoring/macos/Flutter/GeneratedPluginRegistrant.swift b/clone-instagram-login-Refactoring/macos/Flutter/GeneratedPluginRegistrant.swift new file mode 100644 index 0000000..cccf817 --- /dev/null +++ b/clone-instagram-login-Refactoring/macos/Flutter/GeneratedPluginRegistrant.swift @@ -0,0 +1,10 @@ +// +// Generated file. Do not edit. +// + +import FlutterMacOS +import Foundation + + +func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { +} diff --git a/clone-instagram-login-Refactoring/macos/Runner.xcodeproj/project.pbxproj b/clone-instagram-login-Refactoring/macos/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000..a35d500 --- /dev/null +++ b/clone-instagram-login-Refactoring/macos/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,572 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 51; + objects = { + +/* Begin PBXAggregateTarget section */ + 33CC111A2044C6BA0003C045 /* Flutter Assemble */ = { + isa = PBXAggregateTarget; + buildConfigurationList = 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */; + buildPhases = ( + 33CC111E2044C6BF0003C045 /* ShellScript */, + ); + dependencies = ( + ); + name = "Flutter Assemble"; + productName = FLX; + }; +/* End PBXAggregateTarget section */ + +/* Begin PBXBuildFile section */ + 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; }; + 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; }; + 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; + 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; + 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 33CC10E52044A3C60003C045 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 33CC111A2044C6BA0003C045; + remoteInfo = FLX; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 33CC110E2044A8840003C045 /* Bundle Framework */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Bundle Framework"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; + 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; }; + 33CC10ED2044A3C60003C045 /* example_widget_testing.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "example_widget_testing.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = ""; }; + 33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; + 33CC10F72044A3C60003C045 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Runner/Info.plist; sourceTree = ""; }; + 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainFlutterWindow.swift; sourceTree = ""; }; + 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Debug.xcconfig"; sourceTree = ""; }; + 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Release.xcconfig"; sourceTree = ""; }; + 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Flutter-Generated.xcconfig"; path = "ephemeral/Flutter-Generated.xcconfig"; sourceTree = ""; }; + 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; }; + 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; }; + 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 33CC10EA2044A3C60003C045 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 33BA886A226E78AF003329D5 /* Configs */ = { + isa = PBXGroup; + children = ( + 33E5194F232828860026EE4D /* AppInfo.xcconfig */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 333000ED22D3DE5D00554162 /* Warnings.xcconfig */, + ); + path = Configs; + sourceTree = ""; + }; + 33CC10E42044A3C60003C045 = { + isa = PBXGroup; + children = ( + 33FAB671232836740065AC1E /* Runner */, + 33CEB47122A05771004F2AC0 /* Flutter */, + 33CC10EE2044A3C60003C045 /* Products */, + D73912EC22F37F3D000D13A0 /* Frameworks */, + ); + sourceTree = ""; + }; + 33CC10EE2044A3C60003C045 /* Products */ = { + isa = PBXGroup; + children = ( + 33CC10ED2044A3C60003C045 /* example_widget_testing.app */, + ); + name = Products; + sourceTree = ""; + }; + 33CC11242044D66E0003C045 /* Resources */ = { + isa = PBXGroup; + children = ( + 33CC10F22044A3C60003C045 /* Assets.xcassets */, + 33CC10F42044A3C60003C045 /* MainMenu.xib */, + 33CC10F72044A3C60003C045 /* Info.plist */, + ); + name = Resources; + path = ..; + sourceTree = ""; + }; + 33CEB47122A05771004F2AC0 /* Flutter */ = { + isa = PBXGroup; + children = ( + 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */, + 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */, + 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */, + 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */, + ); + path = Flutter; + sourceTree = ""; + }; + 33FAB671232836740065AC1E /* Runner */ = { + isa = PBXGroup; + children = ( + 33CC10F02044A3C60003C045 /* AppDelegate.swift */, + 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */, + 33E51913231747F40026EE4D /* DebugProfile.entitlements */, + 33E51914231749380026EE4D /* Release.entitlements */, + 33CC11242044D66E0003C045 /* Resources */, + 33BA886A226E78AF003329D5 /* Configs */, + ); + path = Runner; + sourceTree = ""; + }; + D73912EC22F37F3D000D13A0 /* Frameworks */ = { + isa = PBXGroup; + children = ( + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 33CC10EC2044A3C60003C045 /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 33CC10E92044A3C60003C045 /* Sources */, + 33CC10EA2044A3C60003C045 /* Frameworks */, + 33CC10EB2044A3C60003C045 /* Resources */, + 33CC110E2044A8840003C045 /* Bundle Framework */, + 3399D490228B24CF009A79C7 /* ShellScript */, + ); + buildRules = ( + ); + dependencies = ( + 33CC11202044C79F0003C045 /* PBXTargetDependency */, + ); + name = Runner; + productName = Runner; + productReference = 33CC10ED2044A3C60003C045 /* example_widget_testing.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 33CC10E52044A3C60003C045 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0920; + LastUpgradeCheck = 1300; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 33CC10EC2044A3C60003C045 = { + CreatedOnToolsVersion = 9.2; + LastSwiftMigration = 1100; + ProvisioningStyle = Automatic; + SystemCapabilities = { + com.apple.Sandbox = { + enabled = 1; + }; + }; + }; + 33CC111A2044C6BA0003C045 = { + CreatedOnToolsVersion = 9.2; + ProvisioningStyle = Manual; + }; + }; + }; + buildConfigurationList = 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 33CC10E42044A3C60003C045; + productRefGroup = 33CC10EE2044A3C60003C045 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 33CC10EC2044A3C60003C045 /* Runner */, + 33CC111A2044C6BA0003C045 /* Flutter Assemble */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 33CC10EB2044A3C60003C045 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */, + 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3399D490228B24CF009A79C7 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "echo \"$PRODUCT_NAME.app\" > \"$PROJECT_DIR\"/Flutter/ephemeral/.app_filename && \"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh embed\n"; + }; + 33CC111E2044C6BF0003C045 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + Flutter/ephemeral/FlutterInputs.xcfilelist, + ); + inputPaths = ( + Flutter/ephemeral/tripwire, + ); + outputFileListPaths = ( + Flutter/ephemeral/FlutterOutputs.xcfilelist, + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 33CC10E92044A3C60003C045 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */, + 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */, + 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 33CC11202044C79F0003C045 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 33CC111A2044C6BA0003C045 /* Flutter Assemble */; + targetProxy = 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 33CC10F42044A3C60003C045 /* MainMenu.xib */ = { + isa = PBXVariantGroup; + children = ( + 33CC10F52044A3C60003C045 /* Base */, + ); + name = MainMenu.xib; + path = Runner; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 338D0CE9231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Profile; + }; + 338D0CEA231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + }; + name = Profile; + }; + 338D0CEB231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Manual; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Profile; + }; + 33CC10F92044A3C60003C045 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 33CC10FA2044A3C60003C045 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Release; + }; + 33CC10FC2044A3C60003C045 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + 33CC10FD2044A3C60003C045 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; + 33CC111C2044C6BA0003C045 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Manual; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 33CC111D2044C6BA0003C045 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC10F92044A3C60003C045 /* Debug */, + 33CC10FA2044A3C60003C045 /* Release */, + 338D0CE9231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC10FC2044A3C60003C045 /* Debug */, + 33CC10FD2044A3C60003C045 /* Release */, + 338D0CEA231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC111C2044C6BA0003C045 /* Debug */, + 33CC111D2044C6BA0003C045 /* Release */, + 338D0CEB231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 33CC10E52044A3C60003C045 /* Project object */; +} diff --git a/clone-instagram-login-Refactoring/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/clone-instagram-login-Refactoring/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/clone-instagram-login-Refactoring/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/clone-instagram-login-Refactoring/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/clone-instagram-login-Refactoring/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 0000000..d6d7e7a --- /dev/null +++ b/clone-instagram-login-Refactoring/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/clone-instagram-login-Refactoring/macos/Runner.xcworkspace/contents.xcworkspacedata b/clone-instagram-login-Refactoring/macos/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..1d526a1 --- /dev/null +++ b/clone-instagram-login-Refactoring/macos/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/clone-instagram-login-Refactoring/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/clone-instagram-login-Refactoring/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/clone-instagram-login-Refactoring/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/clone-instagram-login-Refactoring/macos/Runner/AppDelegate.swift b/clone-instagram-login-Refactoring/macos/Runner/AppDelegate.swift new file mode 100644 index 0000000..d53ef64 --- /dev/null +++ b/clone-instagram-login-Refactoring/macos/Runner/AppDelegate.swift @@ -0,0 +1,9 @@ +import Cocoa +import FlutterMacOS + +@NSApplicationMain +class AppDelegate: FlutterAppDelegate { + override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { + return true + } +} diff --git a/clone-instagram-login-Refactoring/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/clone-instagram-login-Refactoring/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..a2ec33f --- /dev/null +++ b/clone-instagram-login-Refactoring/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,68 @@ +{ + "images" : [ + { + "size" : "16x16", + "idiom" : "mac", + "filename" : "app_icon_16.png", + "scale" : "1x" + }, + { + "size" : "16x16", + "idiom" : "mac", + "filename" : "app_icon_32.png", + "scale" : "2x" + }, + { + "size" : "32x32", + "idiom" : "mac", + "filename" : "app_icon_32.png", + "scale" : "1x" + }, + { + "size" : "32x32", + "idiom" : "mac", + "filename" : "app_icon_64.png", + "scale" : "2x" + }, + { + "size" : "128x128", + "idiom" : "mac", + "filename" : "app_icon_128.png", + "scale" : "1x" + }, + { + "size" : "128x128", + "idiom" : "mac", + "filename" : "app_icon_256.png", + "scale" : "2x" + }, + { + "size" : "256x256", + "idiom" : "mac", + "filename" : "app_icon_256.png", + "scale" : "1x" + }, + { + "size" : "256x256", + "idiom" : "mac", + "filename" : "app_icon_512.png", + "scale" : "2x" + }, + { + "size" : "512x512", + "idiom" : "mac", + "filename" : "app_icon_512.png", + "scale" : "1x" + }, + { + "size" : "512x512", + "idiom" : "mac", + "filename" : "app_icon_1024.png", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/clone-instagram-login-Refactoring/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png b/clone-instagram-login-Refactoring/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png new file mode 100644 index 0000000000000000000000000000000000000000..82b6f9d9a33e198f5747104729e1fcef999772a5 GIT binary patch literal 102994 zcmeEugo5nb1G~3xi~y`}h6XHx5j$(L*3|5S2UfkG$|UCNI>}4f?MfqZ+HW-sRW5RKHEm z^unW*Xx{AH_X3Xdvb%C(Bh6POqg==@d9j=5*}oEny_IS;M3==J`P0R!eD6s~N<36C z*%-OGYqd0AdWClO!Z!}Y1@@RkfeiQ$Ib_ z&fk%T;K9h`{`cX3Hu#?({4WgtmkR!u3ICS~|NqH^fdNz>51-9)OF{|bRLy*RBv#&1 z3Oi_gk=Y5;>`KbHf~w!`u}!&O%ou*Jzf|Sf?J&*f*K8cftMOKswn6|nb1*|!;qSrlw= zr-@X;zGRKs&T$y8ENnFU@_Z~puu(4~Ir)>rbYp{zxcF*!EPS6{(&J}qYpWeqrPWW< zfaApz%<-=KqxrqLLFeV3w0-a0rEaz9&vv^0ZfU%gt9xJ8?=byvNSb%3hF^X_n7`(fMA;C&~( zM$cQvQ|g9X)1AqFvbp^B{JEX$o;4iPi?+v(!wYrN{L}l%e#5y{j+1NMiT-8=2VrCP zmFX9=IZyAYA5c2!QO96Ea-6;v6*$#ZKM-`%JCJtrA3d~6h{u+5oaTaGE)q2b+HvdZ zvHlY&9H&QJ5|uG@wDt1h99>DdHy5hsx)bN`&G@BpxAHh$17yWDyw_jQhhjSqZ=e_k z_|r3=_|`q~uA47y;hv=6-o6z~)gO}ZM9AqDJsR$KCHKH;QIULT)(d;oKTSPDJ}Jx~G#w-(^r<{GcBC*~4bNjfwHBumoPbU}M)O za6Hc2ik)2w37Yyg!YiMq<>Aov?F2l}wTe+>h^YXcK=aesey^i)QC_p~S zp%-lS5%)I29WfywP(r4@UZ@XmTkqo51zV$|U|~Lcap##PBJ}w2b4*kt7x6`agP34^ z5fzu_8rrH+)2u*CPcr6I`gL^cI`R2WUkLDE5*PX)eJU@H3HL$~o_y8oMRoQ0WF9w| z6^HZDKKRDG2g;r8Z4bn+iJNFV(CG;K-j2>aj229gl_C6n12Jh$$h!}KVhn>*f>KcH z;^8s3t(ccVZ5<{>ZJK@Z`hn_jL{bP8Yn(XkwfRm?GlEHy=T($8Z1Mq**IM`zxN9>-yXTjfB18m_$E^JEaYn>pj`V?n#Xu;Z}#$- zw0Vw;T*&9TK$tKI7nBk9NkHzL++dZ^;<|F6KBYh2+XP-b;u`Wy{~79b%IBZa3h*3^ zF&BKfQ@Ej{7ku_#W#mNJEYYp=)bRMUXhLy2+SPMfGn;oBsiG_6KNL8{p1DjuB$UZB zA)a~BkL)7?LJXlCc}bB~j9>4s7tlnRHC5|wnycQPF_jLl!Avs2C3^lWOlHH&v`nGd zf&U!fn!JcZWha`Pl-B3XEe;(ks^`=Z5R zWyQR0u|do2`K3ec=YmWGt5Bwbu|uBW;6D8}J3{Uep7_>L6b4%(d=V4m#(I=gkn4HT zYni3cnn>@F@Wr<hFAY3Y~dW+3bte;70;G?kTn4Aw5nZ^s5|47 z4$rCHCW%9qa4)4vE%^QPMGf!ET!^LutY$G zqdT(ub5T5b+wi+OrV}z3msoy<4)`IPdHsHJggmog0K*pFYMhH!oZcgc5a)WmL?;TPSrerTVPp<#s+imF3v#!FuBNNa`#6 z!GdTCF|IIpz#(eV^mrYKThA4Bnv&vQet@%v9kuRu3EHx1-2-it@E`%9#u`)HRN#M? z7aJ{wzKczn#w^`OZ>Jb898^Xxq)0zd{3Tu7+{-sge-rQ z&0PME&wIo6W&@F|%Z8@@N3)@a_ntJ#+g{pUP7i?~3FirqU`rdf8joMG^ld?(9b7Iv z>TJgBg#)(FcW)h!_if#cWBh}f+V08GKyg|$P#KTS&%=!+0a%}O${0$i)kn9@G!}En zv)_>s?glPiLbbx)xk(lD-QbY(OP3;MSXM5E*P&_`Zks2@46n|-h$Y2L7B)iH{GAAq19h5-y0q>d^oy^y+soJu9lXxAe%jcm?=pDLFEG2kla40e!5a}mpe zdL=WlZ=@U6{>g%5a+y-lx)01V-x;wh%F{=qy#XFEAqcd+m}_!lQ)-9iiOL%&G??t| z?&NSdaLqdPdbQs%y0?uIIHY7rw1EDxtQ=DU!i{)Dkn~c$LG5{rAUYM1j5*G@oVn9~ zizz{XH(nbw%f|wI=4rw^6mNIahQpB)OQy10^}ACdLPFc2@ldVi|v@1nWLND?)53O5|fg`RZW&XpF&s3@c-R?aad!$WoH6u0B|}zt)L($E^@U- zO#^fxu9}Zw7Xl~nG1FVM6DZSR0*t!4IyUeTrnp@?)Z)*!fhd3)&s(O+3D^#m#bAem zpf#*aiG_0S^ofpm@9O7j`VfLU0+{$x!u^}3!zp=XST0N@DZTp!7LEVJgqB1g{psNr za0uVmh3_9qah14@M_pi~vAZ#jc*&aSm$hCNDsuQ-zPe&*Ii#2=2gP+DP4=DY z_Y0lUsyE6yaV9)K)!oI6+*4|spx2at*30CAx~6-5kfJzQ`fN8$!lz%hz^J6GY?mVH zbYR^JZ(Pmj6@vy-&!`$5soyy-NqB^8cCT40&R@|6s@m+ZxPs=Bu77-+Os7+bsz4nA3DrJ8#{f98ZMaj-+BD;M+Jk?pgFcZIb}m9N z{ct9T)Kye&2>l^39O4Q2@b%sY?u#&O9PO4@t0c$NUXG}(DZJ<;_oe2~e==3Z1+`Zo zFrS3ns-c}ZognVBHbg#e+1JhC(Yq7==rSJQ8J~}%94(O#_-zJKwnBXihl#hUd9B_>+T& z7eHHPRC?5ONaUiCF7w|{J`bCWS7Q&xw-Sa={j-f)n5+I=9s;E#fBQB$`DDh<^mGiF zu-m_k+)dkBvBO(VMe2O4r^sf3;sk9K!xgXJU>|t9Vm8Ty;fl5pZzw z9j|}ZD}6}t;20^qrS?YVPuPRS<39d^y0#O1o_1P{tN0?OX!lc-ICcHI@2#$cY}_CY zev|xdFcRTQ_H)1fJ7S0*SpPs8e{d+9lR~IZ^~dKx!oxz?=Dp!fD`H=LH{EeC8C&z-zK$e=!5z8NL=4zx2{hl<5z*hEmO=b-7(k5H`bA~5gT30Sjy`@-_C zKM}^so9Ti1B;DovHByJkTK87cfbF16sk-G>`Q4-txyMkyQS$d}??|Aytz^;0GxvOs zPgH>h>K+`!HABVT{sYgzy3CF5ftv6hI-NRfgu613d|d1cg^jh+SK7WHWaDX~hlIJ3 z>%WxKT0|Db1N-a4r1oPKtF--^YbP=8Nw5CNt_ZnR{N(PXI>Cm$eqi@_IRmJ9#)~ZHK_UQ8mi}w^`+4$OihUGVz!kW^qxnCFo)-RIDbA&k-Y=+*xYv5y4^VQ9S)4W5Pe?_RjAX6lS6Nz#!Hry=+PKx2|o_H_3M`}Dq{Bl_PbP(qel~P@=m}VGW*pK96 zI@fVag{DZHi}>3}<(Hv<7cVfWiaVLWr@WWxk5}GDEbB<+Aj;(c>;p1qmyAIj+R!`@#jf$ zy4`q23L-72Zs4j?W+9lQD;CYIULt%;O3jPWg2a%Zs!5OW>5h1y{Qof!p&QxNt5=T( zd5fy&7=hyq;J8%86YBOdc$BbIFxJx>dUyTh`L z-oKa=OhRK9UPVRWS`o2x53bAv+py)o)kNL6 z9W1Dlk-g6Ht@-Z^#6%`9S9`909^EMj?9R^4IxssCY-hYzei^TLq7Cj>z$AJyaU5=z zl!xiWvz0U8kY$etrcp8mL;sYqGZD!Hs-U2N{A|^oEKA482v1T%cs%G@X9M?%lX)p$ zZoC7iYTPe8yxY0Jne|s)fCRe1mU=Vb1J_&WcIyP|x4$;VSVNC`M+e#oOA`#h>pyU6 z?7FeVpk`Hsu`~T3i<_4<5fu?RkhM;@LjKo6nX>pa%8dSdgPO9~Jze;5r>Tb1Xqh5q z&SEdTXevV@PT~!O6z|oypTk7Qq+BNF5IQ(8s18c=^0@sc8Gi|3e>VKCsaZ?6=rrck zl@oF5Bd0zH?@15PxSJIRroK4Wa?1o;An;p0#%ZJ^tI=(>AJ2OY0GP$E_3(+Zz4$AQ zW)QWl<4toIJ5TeF&gNXs>_rl}glkeG#GYbHHOv-G!%dJNoIKxn)FK$5&2Zv*AFic! z@2?sY&I*PSfZ8bU#c9fdIJQa_cQijnj39-+hS@+~e*5W3bj%A}%p9N@>*tCGOk+cF zlcSzI6j%Q|2e>QG3A<86w?cx6sBtLNWF6_YR?~C)IC6_10SNoZUHrCpp6f^*+*b8` zlx4ToZZuI0XW1W)24)92S)y0QZa);^NRTX6@gh8@P?^=#2dV9s4)Q@K+gnc{6|C}& zDLHr7nDOLrsH)L@Zy{C_2UrYdZ4V{|{c8&dRG;wY`u>w%$*p>PO_}3`Y21pk?8Wtq zGwIXTulf7AO2FkPyyh2TZXM1DJv>hI`}x`OzQI*MBc#=}jaua&czSkI2!s^rOci|V zFkp*Vbiz5vWa9HPFXMi=BV&n3?1?%8#1jq?p^3wAL`jgcF)7F4l<(H^!i=l-(OTDE zxf2p71^WRIExLf?ig0FRO$h~aA23s#L zuZPLkm>mDwBeIu*C7@n@_$oSDmdWY7*wI%aL73t~`Yu7YwE-hxAATmOi0dmB9|D5a zLsR7OQcA0`vN9m0L|5?qZ|jU+cx3_-K2!K$zDbJ$UinQy<9nd5ImWW5n^&=Gg>Gsh zY0u?m1e^c~Ug39M{{5q2L~ROq#c{eG8Oy#5h_q=#AJj2Yops|1C^nv0D1=fBOdfAG z%>=vl*+_w`&M7{qE#$xJJp_t>bSh7Mpc(RAvli9kk3{KgG5K@a-Ue{IbU{`umXrR3ra5Y7xiX42+Q%N&-0#`ae_ z#$Y6Wa++OPEDw@96Zz##PFo9sADepQe|hUy!Zzc2C(L`k9&=a8XFr+!hIS>D2{pdGP1SzwyaGLiH3j--P>U#TWw90t8{8Bt%m7Upspl#=*hS zhy|(XL6HOqBW}Og^tLX7 z+`b^L{O&oqjwbxDDTg2B;Yh2(fW>%S5Pg8^u1p*EFb z`(fbUM0`afawYt%VBfD&b3MNJ39~Ldc@SAuzsMiN%E}5{uUUBc7hc1IUE~t-Y9h@e7PC|sv$xGx=hZiMXNJxz5V(np%6u{n24iWX#!8t#>Ob$in<>dw96H)oGdTHnU zSM+BPss*5)Wz@+FkooMxxXZP1{2Nz7a6BB~-A_(c&OiM)UUNoa@J8FGxtr$)`9;|O z(Q?lq1Q+!E`}d?KemgC!{nB1JJ!B>6J@XGQp9NeQvtbM2n7F%v|IS=XWPVZY(>oq$ zf=}8O_x`KOxZoGnp=y24x}k6?gl_0dTF!M!T`={`Ii{GnT1jrG9gPh)R=RZG8lIR| z{ZJ6`x8n|y+lZuy${fuEDTAf`OP!tGySLXD}ATJO5UoZv|Xo3%7O~L63+kw}v)Ci=&tWx3bQJfL@5O18CbPlkR^IcKA zy1=^Vl-K-QBP?9^R`@;czcUw;Enbbyk@vJQB>BZ4?;DM%BUf^eZE+sOy>a){qCY6Y znYy;KGpch-zf=5|p#SoAV+ie8M5(Xg-{FoLx-wZC9IutT!(9rJ8}=!$!h%!J+vE2e z(sURwqCC35v?1>C1L)swfA^sr16{yj7-zbT6Rf26-JoEt%U?+|rQ zeBuGohE?@*!zR9)1P|3>KmJSgK*fOt>N>j}LJB`>o(G#Dduvx7@DY7};W7K;Yj|8O zGF<+gTuoIKe7Rf+LQG3-V1L^|E;F*}bQ-{kuHq}| ze_NwA7~US19sAZ)@a`g*zkl*ykv2v3tPrb4Og2#?k6Lc7@1I~+ew48N&03hW^1Cx+ zfk5Lr4-n=#HYg<7ka5i>2A@ZeJ60gl)IDX!!p zzfXZQ?GrT>JEKl7$SH!otzK6=0dIlqN)c23YLB&Krf9v-{@V8p+-e2`ujFR!^M%*; ze_7(Jh$QgoqwB!HbX=S+^wqO15O_TQ0-qX8f-|&SOuo3ZE{{9Jw5{}>MhY}|GBhO& zv48s_B=9aYQfa;d>~1Z$y^oUUaDer>7ve5+Gf?rIG4GZ!hRKERlRNgg_C{W_!3tsI2TWbX8f~MY)1Q`6Wj&JJ~*;ay_0@e zzx+mE-pu8{cEcVfBqsnm=jFU?H}xj@%CAx#NO>3 z_re3Rq%d1Y7VkKy{=S73&p;4^Praw6Y59VCP6M?!Kt7{v#DG#tz?E)`K95gH_mEvb z%$<~_mQ$ad?~&T=O0i0?`YSp?E3Dj?V>n+uTRHAXn`l!pH9Mr}^D1d@mkf+;(tV45 zH_yfs^kOGLXlN*0GU;O&{=awxd?&`{JPRr$z<1HcAO2K`K}92$wC}ky&>;L?#!(`w z68avZGvb728!vgw>;8Z8I@mLtI`?^u6R>sK4E7%=y)jpmE$fH!Dj*~(dy~-2A5Cm{ zl{1AZw`jaDmfvaB?jvKwz!GC}@-Dz|bFm1OaPw(ia#?>vF7Y5oh{NVbyD~cHB1KFn z9C@f~X*Wk3>sQH9#D~rLPslAd26@AzMh=_NkH_yTNXx6-AdbAb z{Ul89YPHslD?xAGzOlQ*aMYUl6#efCT~WI zOvyiewT=~l1W(_2cEd(8rDywOwjM-7P9!8GCL-1<9KXXO=6%!9=W++*l1L~gRSxLVd8K=A7&t52ql=J&BMQu{fa6y zXO_e>d?4X)xp2V8e3xIQGbq@+vo#&n>-_WreTTW0Yr?|YRPP43cDYACMQ(3t6(?_k zfgDOAU^-pew_f5U#WxRXB30wcfDS3;k~t@b@w^GG&<5n$Ku?tT(%bQH(@UHQGN)N|nfC~7?(etU`}XB)$>KY;s=bYGY#kD%i9fz= z2nN9l?UPMKYwn9bX*^xX8Y@%LNPFU>s#Ea1DaP%bSioqRWi9JS28suTdJycYQ+tW7 zrQ@@=13`HS*dVKaVgcem-45+buD{B;mUbY$YYULhxK)T{S?EB<8^YTP$}DA{(&)@S zS#<8S96y9K2!lG^VW-+CkfXJIH;Vo6wh)N}!08bM$I7KEW{F6tqEQ?H@(U zAqfi%KCe}2NUXALo;UN&k$rU0BLNC$24T_mcNY(a@lxR`kqNQ0z%8m>`&1ro40HX} z{{3YQ;2F9JnVTvDY<4)x+88i@MtXE6TBd7POk&QfKU-F&*C`isS(T_Q@}K)=zW#K@ zbXpcAkTT-T5k}Wj$dMZl7=GvlcCMt}U`#Oon1QdPq%>9J$rKTY8#OmlnNWBYwafhx zqFnym@okL#Xw>4SeRFejBnZzY$jbO)e^&&sHBgMP%Ygfi!9_3hp17=AwLBNFTimf0 zw6BHNXw19Jg_Ud6`5n#gMpqe%9!QB^_7wAYv8nrW94A{*t8XZu0UT&`ZHfkd(F{Px zD&NbRJP#RX<=+sEeGs2`9_*J2OlECpR;4uJie-d__m*(aaGE}HIo+3P{my@;a~9Y$ zHBXVJ83#&@o6{M+pE9^lI<4meLLFN_3rwgR4IRyp)~OF0n+#ORrcJ2_On9-78bWbG zuCO0esc*n1X3@p1?lN{qWS?l7J$^jbpeel{w~51*0CM+q9@9X=>%MF(ce~om(}?td zjkUmdUR@LOn-~6LX#=@a%rvj&>DFEoQscOvvC@&ZB5jVZ-;XzAshwx$;Qf@U41W=q zOSSjQGQV8Qi3*4DngNMIM&Cxm7z*-K`~Bl(TcEUxjQ1c=?)?wF8W1g;bAR%sM#LK( z_Op?=P%)Z+J!>vpN`By0$?B~Out%P}kCriDq@}In&fa_ZyKV+nLM0E?hfxuu%ciUz z>yAk}OydbWNl7{)#112j&qmw;*Uj&B;>|;Qwfc?5wIYIHH}s6Mve@5c5r+y)jK9i( z_}@uC(98g)==AGkVN?4>o@w=7x9qhW^ zB(b5%%4cHSV?3M?k&^py)j*LK16T^Ef4tb05-h-tyrjt$5!oo4spEfXFK7r_Gfv7#x$bsR7T zs;dqxzUg9v&GjsQGKTP*=B(;)be2aN+6>IUz+Hhw-n>^|`^xu*xvjGPaDoFh2W4-n z@Wji{5Y$m>@Vt7TE_QVQN4*vcfWv5VY-dT0SV=l=8LAEq1go*f zkjukaDV=3kMAX6GAf0QOQHwP^{Z^=#Lc)sh`QB)Ftl&31jABvq?8!3bt7#8vxB z53M{4{GR4Hl~;W3r}PgXSNOt477cO62Yj(HcK&30zsmWpvAplCtpp&mC{`2Ue*Bwu zF&UX1;w%`Bs1u%RtGPFl=&sHu@Q1nT`z={;5^c^^S~^?2-?<|F9RT*KQmfgF!7=wD@hytxbD;=9L6PZrK*1<4HMObNWehA62DtTy)q5H|57 z9dePuC!1;0MMRRl!S@VJ8qG=v^~aEU+}2Qx``h1LII!y{crP2ky*R;Cb;g|r<#ryo zju#s4dE?5CTIZKc*O4^3qWflsQ(voX>(*_JP7>Q&$%zCAIBTtKC^JUi@&l6u&t0hXMXjz_y!;r@?k|OU9aD%938^TZ>V? zqJmom_6dz4DBb4Cgs_Ef@}F%+cRCR%UMa9pi<-KHN;t#O@cA%(LO1Rb=h?5jiTs93 zPLR78p+3t>z4|j=<>2i4b`ketv}9Ax#B0)hn7@bFl;rDfP8p7u9XcEb!5*PLKB(s7wQC2kzI^@ae)|DhNDmSy1bOLid%iIap@24A(q2XI!z_hkl-$1T10 z+KKugG4-}@u8(P^S3PW4x>an;XWEF-R^gB{`t8EiP{ZtAzoZ!JRuMRS__-Gg#Qa3{<;l__CgsF+nfmFNi}p z>rV!Y6B@cC>1up)KvaEQiAvQF!D>GCb+WZsGHjDeWFz?WVAHP65aIA8u6j6H35XNYlyy8>;cWe3ekr};b;$9)0G`zsc9LNsQ&D?hvuHRpBxH)r-1t9|Stc*u<}Ol&2N+wPMom}d15_TA=Aprp zjN-X3*Af$7cDWMWp##kOH|t;c2Pa9Ml4-)o~+7P;&q8teF-l}(Jt zTGKOQqJTeT!L4d}Qw~O0aanA$Vn9Rocp-MO4l*HK)t%hcp@3k0%&_*wwpKD6ThM)R z8k}&7?)YS1ZYKMiy?mn>VXiuzX7$Ixf7EW8+C4K^)m&eLYl%#T=MC;YPvD&w#$MMf zQ=>`@rh&&r!@X&v%ZlLF42L_c=5dSU^uymKVB>5O?AouR3vGv@ei%Z|GX5v1GK2R* zi!!}?+-8>J$JH^fPu@)E6(}9$d&9-j51T^n-e0Ze%Q^)lxuex$IL^XJ&K2oi`wG}QVGk2a7vC4X?+o^z zsCK*7`EUfSuQA*K@Plsi;)2GrayQOG9OYF82Hc@6aNN5ulqs1Of-(iZQdBI^U5of^ zZg2g=Xtad7$hfYu6l~KDQ}EU;oIj(3nO#u9PDz=eO3(iax7OCmgT2p_7&^3q zg7aQ;Vpng*)kb6=sd5?%j5Dm|HczSChMo8HHq_L8R;BR5<~DVyU$8*Tk5}g0eW5x7 z%d)JFZ{(Y<#OTKLBA1fwLM*fH7Q~7Sc2Ne;mVWqt-*o<;| z^1@vo_KTYaMnO$7fbLL+qh#R$9bvnpJ$RAqG+z8h|} z3F5iwG*(sCn9Qbyg@t0&G}3fE0jGq3J!JmG2K&$urx^$z95) z7h?;4vE4W=v)uZ*Eg3M^6f~|0&T)2D;f+L_?M*21-I1pnK(pT$5l#QNlT`SidYw~o z{`)G)Asv#cue)Ax1RNWiRUQ(tQ(bzd-f2U4xlJK+)ZWBxdq#fp=A>+Qc%-tl(c)`t z$e2Ng;Rjvnbu7((;v4LF9Y1?0el9hi!g>G{^37{ z`^s-03Z5jlnD%#Mix19zkU_OS|86^_x4<0(*YbPN}mi-$L?Z4K(M|2&VV*n*ZYN_UqI?eKZi3!b)i z%n3dzUPMc-dc|q}TzvPy!VqsEWCZL(-eURDRG4+;Eu!LugSSI4Fq$Ji$Dp08`pfP_C5Yx~`YKcywlMG;$F z)R5!kVml_Wv6MSpeXjG#g?kJ0t_MEgbXlUN3k|JJ%N>|2xn8yN>>4qxh!?dGI}s|Y zDTKd^JCrRSN+%w%D_uf=Tj6wIV$c*g8D96jb^Kc#>5Fe-XxKC@!pIJw0^zu;`_yeb zhUEm-G*C=F+jW%cP(**b61fTmPn2WllBr4SWNdKe*P8VabZsh0-R|?DO=0x`4_QY) zR7sthW^*BofW7{Sak&S1JdiG?e=SfL24Y#w_)xrBVhGB-13q$>mFU|wd9Xqe-o3{6 zSn@@1@&^)M$rxb>UmFuC+pkio#T;mSnroMVZJ%nZ!uImi?%KsIX#@JU2VY(`kGb1A z7+1MEG)wd@)m^R|a2rXeviv$!emwcY(O|M*xV!9%tBzarBOG<4%gI9SW;Um_gth4=gznYzOFd)y8e+3APCkL)i-OI`;@7-mCJgE`js(M} z;~ZcW{{FMVVO)W>VZ}ILouF#lWGb%Couu}TI4kubUUclW@jEn6B_^v!Ym*(T*4HF9 zWhNKi8%sS~viSdBtnrq!-Dc5(G^XmR>DFx8jhWvR%*8!m*b*R8e1+`7{%FACAK`7 zzdy8TmBh?FVZ0vtw6npnWwM~XjF2fNvV#ZlGG z?FxHkXHN>JqrBYoPo$)zNC7|XrQfcqmEXWud~{j?La6@kbHG@W{xsa~l1=%eLly8B z4gCIH05&Y;6O2uFSopNqP|<$ml$N40^ikxw0`o<~ywS1(qKqQN!@?Ykl|bE4M?P+e zo$^Vs_+x)iuw?^>>`$&lOQOUkZ5>+OLnRA)FqgpDjW&q*WAe(_mAT6IKS9;iZBl8M z<@=Y%zcQUaSBdrs27bVK`c$)h6A1GYPS$y(FLRD5Yl8E3j0KyH08#8qLrsc_qlws; znMV%Zq8k+&T2kf%6ZO^2=AE9>?a587g%-={X}IS~P*I(NeCF9_9&`)|ok0iiIun zo+^odT0&Z4k;rn7I1v87=z!zKU(%gfB$(1mrRYeO$sbqM22Kq68z9wgdg8HBxp>_< zn9o%`f?sVO=IN#5jSX&CGODWlZfQ9A)njK2O{JutYwRZ?n0G_p&*uwpE`Md$iQxrd zoQfF^b8Ou)+3BO_3_K5y*~?<(BF@1l+@?Z6;^;U>qlB)cdro;rxOS1M{Az$s^9o5sXDCg8yD<=(pKI*0e zLk>@lo#&s0)^*Q+G)g}C0IErqfa9VbL*Qe=OT@&+N8m|GJF7jd83vY#SsuEv2s{Q> z>IpoubNs>D_5?|kXGAPgF@mb_9<%hjU;S0C8idI)a=F#lPLuQJ^7OnjJlH_Sks9JD zMl1td%YsWq3YWhc;E$H1<0P$YbSTqs`JKY%(}svsifz|h8BHguL82dBl+z0^YvWk8 zGy;7Z0v5_FJ2A$P0wIr)lD?cPR%cz>kde!=W%Ta^ih+Dh4UKdf7ip?rBz@%y2&>`6 zM#q{JXvW9ZlaSk1oD!n}kSmcDa2v6T^Y-dy+#fW^y>eS8_%<7tWXUp8U@s$^{JFfKMjDAvR z$YmVB;n3ofl!ro9RNT!TpQpcycXCR}$9k5>IPWDXEenQ58os?_weccrT+Bh5sLoiH zZ_7~%t(vT)ZTEO= zb0}@KaD{&IyK_sd8b$`Qz3%UA`nSo zn``!BdCeN!#^G;lK@G2ron*0jQhbdw)%m$2;}le@z~PSLnU-z@tL)^(p%P>OO^*Ff zNRR9oQ`W+x^+EU+3BpluwK77|B3=8QyT|$V;02bn_LF&3LhLA<#}{{)jE)}CiW%VEU~9)SW+=F%7U-iYlQ&q!#N zwI2{(h|Pi&<8_fqvT*}FLN^0CxN}#|3I9G_xmVg$gbn2ZdhbmGk7Q5Q2Tm*ox8NMo zv`iaZW|ZEOMyQga5fts?&T-eCCC9pS0mj7v0SDkD=*^MxurP@89v&Z#3q{FM!a_nr zb?KzMv`BBFOew>4!ft@A&(v-kWXny-j#egKef|#!+3>26Qq0 zv!~8ev4G`7Qk>V1TaMT-&ziqoY3IJp8_S*%^1j73D|=9&;tDZH^!LYFMmME4*Wj(S zRt~Q{aLb_O;wi4u&=}OYuj}Lw*j$@z*3>4&W{)O-oi@9NqdoU!=U%d|se&h?^$Ip# z)BY+(1+cwJz!yy4%l(aLC;T!~Ci>yAtXJb~b*yr&v7f{YCU8P|N1v~H`xmGsG)g)y z4%mv=cPd`s7a*#OR7f0lpD$ueP>w8qXj0J&*7xX+U!uat5QNk>zwU$0acn5p=$88L=jn_QCSYkTV;1~(yUem#0gB`FeqY98sf=>^@ z_MCdvylv~WL%y_%y_FE1)j;{Szj1+K7Lr_y=V+U zk6Tr;>XEqlEom~QGL!a+wOf(@ZWoxE<$^qHYl*H1a~kk^BLPn785%nQb$o;Cuz0h& za9LMx^bKEbPS%e8NM33Jr|1T|ELC(iE!FUci38xW_Y7kdHid#2ie+XZhP;2!Z;ZAM zB_cXKm)VrPK!SK|PY00Phwrpd+x0_Aa;}cDQvWKrwnQrqz##_gvHX2ja?#_{f#;bz`i>C^^ zTLDy;6@HZ~XQi7rph!mz9k!m;KchA)uMd`RK4WLK7)5Rl48m#l>b(#`WPsl<0j z-sFkSF6>Nk|LKnHtZ`W_NnxZP62&w)S(aBmmjMDKzF%G;3Y?FUbo?>b5;0j8Lhtc4 zr*8d5Y9>g@FFZaViw7c16VsHcy0u7M%6>cG1=s=Dtx?xMJSKIu9b6GU8$uSzf43Y3 zYq|U+IWfH;SM~*N1v`KJo!|yfLxTFS?oHsr3qvzeVndVV^%BWmW6re_S!2;g<|Oao z+N`m#*i!)R%i1~NO-xo{qpwL0ZrL7hli;S z3L0lQ_z}z`fdK39Mg~Zd*%mBdD;&5EXa~@H(!###L`ycr7gW`f)KRuqyHL3|uyy3h zSS^td#E&Knc$?dXs*{EnPYOp^-vjAc-h4z#XkbG&REC7;0>z^^Z}i8MxGKerEY z>l?(wReOlXEsNE5!DO&ZWyxY)gG#FSZs%fXuzA~XIAPVp-%yb2XLSV{1nH6{)5opg z(dZKckn}Q4Li-e=eUDs1Psg~5zdn1>ql(*(nn6)iD*OcVkwmKL(A{fix(JhcVB&}V zVt*Xb!{gzvV}dc446>(D=SzfCu7KB`oMjv6kPzSv&B>>HLSJP|wN`H;>oRw*tl#N) z*zZ-xwM7D*AIsBfgqOjY1Mp9aq$kRa^dZU_xw~KxP;|q(m+@e+YSn~`wEJzM|Ippb zzb@%;hB7iH4op9SqmX?j!KP2chsb79(mFossBO-Zj8~L}9L%R%Bw<`^X>hjkCY5SG z7lY!8I2mB#z)1o;*3U$G)3o0A&{0}#B;(zPd2`OF`Gt~8;0Re8nIseU z_yzlf$l+*-wT~_-cYk$^wTJ@~7i@u(CZs9FVkJCru<*yK8&>g+t*!JqCN6RH%8S-P zxH8+Cy#W?!;r?cLMC(^BtAt#xPNnwboI*xWw#T|IW^@3|q&QYY6Ehxoh@^URylR|T zne-Y6ugE^7p5bkRDWIh)?JH5V^ub82l-LuVjDr7UT^g`q4dB&mBFRWGL_C?hoeL(% zo}ocH5t7|1Mda}T!^{Qt9vmA2ep4)dQSZO>?Eq8}qRp&ZJ?-`Tnw+MG(eDswP(L*X3ahC2Ad0_wD^ff9hfzb%Jd`IXx5 zae@NMzBXJDwJS?7_%!TB^E$N8pvhOHDK$7YiOelTY`6KX8hK6YyT$tk*adwN>s^Kp zwM3wGVPhwKU*Yq-*BCs}l`l#Tej(NQ>jg*S0TN%D+GcF<14Ms6J`*yMY;W<-mMN&-K>((+P}+t+#0KPGrzjP zJ~)=Bcz%-K!L5ozIWqO(LM)l_9lVOc4*S65&DKM#TqsiWNG{(EZQw!bc>qLW`=>p-gVJ;T~aN2D_- z{>SZC=_F+%hNmH6ub%Ykih0&YWB!%sd%W5 zHC2%QMP~xJgt4>%bU>%6&uaDtSD?;Usm}ari0^fcMhi_)JZgb1g5j zFl4`FQ*%ROfYI}e7RIq^&^a>jZF23{WB`T>+VIxj%~A-|m=J7Va9FxXV^%UwccSZd zuWINc-g|d6G5;95*%{e;9S(=%yngpfy+7ao|M7S|Jb0-4+^_q-uIqVS&ufU880UDH*>(c)#lt2j zzvIEN>>$Y(PeALC-D?5JfH_j+O-KWGR)TKunsRYKLgk7eu4C{iF^hqSz-bx5^{z0h ze2+u>Iq0J4?)jIo)}V!!m)%)B;a;UfoJ>VRQ*22+ncpe9f4L``?v9PH&;5j{WF?S_C>Lq>nkChZB zjF8(*v0c(lU^ZI-)_uGZnnVRosrO4`YinzI-RSS-YwjYh3M`ch#(QMNw*)~Et7Qpy z{d<3$4FUAKILq9cCZpjvKG#yD%-juhMj>7xIO&;c>_7qJ%Ae8Z^m)g!taK#YOW3B0 zKKSMOd?~G4h}lrZbtPk)n*iOC1~mDhASGZ@N{G|dF|Q^@1ljhe=>;wusA&NvY*w%~ zl+R6B^1yZiF)YN>0ms%}qz-^U-HVyiN3R9k1q4)XgDj#qY4CE0)52%evvrrOc898^ z*^)XFR?W%g0@?|6Mxo1ZBp%(XNv_RD-<#b^?-Fs+NL^EUW=iV|+Vy*F%;rBz~pN7%-698U-VMfGEVnmEz7fL1p)-5sLT zL;Iz>FCLM$p$c}g^tbkGK1G$IALq1Gd|We@&TtW!?4C7x4l*=4oF&&sr0Hu`x<5!m zhX&&Iyjr?AkNXU_5P_b^Q3U9sy#f6ZF@2C96$>1k*E-E%DjwvA{VL0PdU~suN~DZo zm{T!>sRdp`Ldpp9olrH@(J$QyGq!?#o1bUo=XP2OEuT3`XzI>s^0P{manUaE4pI%! zclQq;lbT;nx7v3tR9U)G39h?ryrxzd0xq4KX7nO?piJZbzT_CU&O=T(Vt;>jm?MgC z2vUL#*`UcMsx%w#vvjdamHhmN!(y-hr~byCA-*iCD};#l+bq;gkwQ0oN=AyOf@8ow>Pj<*A~2*dyjK}eYdN);%!t1 z6Y=|cuEv-|5BhA?n2Db@4s%y~(%Wse4&JXw=HiO48%c6LB~Z0SL1(k^9y?ax%oj~l zf7(`iAYLdPRq*ztFC z7VtAb@s{as%&Y;&WnyYl+6Wm$ru*u!MKIg_@01od-iQft0rMjIj8e7P9eKvFnx_X5 zd%pDg-|8<>T2Jdqw>AII+fe?CgP+fL(m0&U??QL8YzSjV{SFi^vW~;wN@or_(q<0Y zRt~L}#JRcHOvm$CB)T1;;7U>m%)QYBLTR)KTARw%zoDxgssu5#v{UEVIa<>{8dtkm zXgbCGp$tfue+}#SD-PgiNT{Zu^YA9;4BnM(wZ9-biRo_7pN}=aaimjYgC=;9@g%6< zxol5sT_$<8{LiJ6{l1+sV)Z_QdbsfEAEMw!5*zz6)Yop?T0DMtR_~wfta)E6_G@k# zZRP11D}$ir<`IQ`<(kGfAS?O-DzCyuzBq6dxGTNNTK?r^?zT30mLY!kQ=o~Hv*k^w zvq!LBjW=zzIi%UF@?!g9vt1CqdwV(-2LYy2=E@Z?B}JDyVkluHtzGsWuI1W5svX~K z&?UJ45$R7g>&}SFnLnmw09R2tUgmr_w6mM9C}8GvQX>nL&5R#xBqnp~Se(I>R42`T zqZe9p6G(VzNB3QD><8+y%{e%6)sZDRXTR|MI zM#eZmao-~_`N|>Yf;a;7yvd_auTG#B?Vz5D1AHx=zpVUFe7*hME z+>KH5h1In8hsVhrstc>y0Q!FHR)hzgl+*Q&5hU9BVJlNGRkXiS&06eOBV^dz3;4d5 zeYX%$62dNOprZV$px~#h1RH?_E%oD6y;J;pF%~y8M)8pQ0olYKj6 zE+hd|7oY3ot=j9ZZ))^CCPADL6Jw%)F@A{*coMApcA$7fZ{T@3;WOQ352F~q6`Mgi z$RI6$8)a`Aaxy<8Bc;{wlDA%*%(msBh*xy$L-cBJvQ8hj#FCyT^%+Phw1~PaqyDou^JR0rxDkSrmAdjeYDFDZ`E z)G3>XtpaSPDlydd$RGHg;#4|4{aP5c_Om z2u5xgnhnA)K%8iU==}AxPxZCYC)lyOlj9as#`5hZ=<6<&DB%i_XCnt5=pjh?iusH$ z>)E`@HNZcAG&RW3Ys@`Ci{;8PNzE-ZsPw$~Wa!cP$ye+X6;9ceE}ah+3VY7Mx}#0x zbqYa}eO*FceiY2jNS&2cH9Y}(;U<^^cWC5Ob&)dZedvZA9HewU3R;gRQ)}hUdf+~Q zS_^4ds*W1T#bxS?%RH&<739q*n<6o|mV;*|1s>ly-Biu<2*{!!0#{_234&9byvn0* z5=>{95Zfb{(?h_Jk#ocR$FZ78O*UTOxld~0UF!kyGM|nH%B*qf)Jy}N!uT9NGeM19 z-@=&Y0yGGo_dw!FD>juk%P$6$qJkj}TwLBoefi;N-$9LAeV|)|-ET&culW9Sb_pc_ zp{cXI0>I0Jm_i$nSvGnYeLSSj{ccVS2wyL&0x~&5v;3Itc82 z5lIAkfn~wcY-bQB$G!ufWt%qO;P%&2B_R5UKwYxMemIaFm)qF1rA zc>gEihb=jBtsXCi0T%J37s&kt*3$s7|6)L(%UiY)6axuk{6RWIS8^+u;)6!R?Sgap z9|6<0bx~AgVi|*;zL@2x>Pbt2Bz*uv4x-`{F)XatTs`S>unZ#P^ZiyjpfL_q2z^fqgR-fbOcG=Y$q>ozkw1T6dH8-)&ww+z?E0 zR|rV(9bi6zpX3Ub>PrPK!{X>e$C66qCXAeFm)Y+lX8n2Olt7PNs*1^si)j!QmFV#t z0P2fyf$N^!dyTot&`Ew5{i5u<8D`8U`qs(KqaWq5iOF3x2!-z65-|HsyYz(MAKZ?< zCpQR;E)wn%s|&q(LVm0Ab>gdmCFJeKwVTnv@Js%!At;I=A>h=l=p^&<4;Boc{$@h< z38v`3&2wJtka@M}GS%9!+SpJ}sdtoYzMevVbnH+d_eMxN@~~ zZq@k)7V5f8u!yAX2qF3qjS7g%n$JuGrMhQF!&S^7(%Y{rP*w2FWj(v_J{+Hg*}wdWOd~pHQ19&n3RWeljK9W%sz&Y3Tm3 zR`>6YR54%qBHGa)2xbs`9cs_EsNHxsfraEgZ)?vrtooeA0sPKJK7an){ngtV@{SBa zkO6ORr1_Xqp+`a0e}sC*_y(|RKS13ikmHp3C^XkE@&wjbGWrt^INg^9lDz#B;bHiW zkK4{|cg08b!yHFSgPca5)vF&gqCgeu+c82%&FeM^Bb}GUxLy-zo)}N;#U?sJ2?G2BNe*9u_7kE5JeY!it=f`A_4gV3} z`M!HXZy#gN-wS!HvHRqpCHUmjiM;rVvpkC!voImG%OFVN3k(QG@X%e``VJSJ@Z7tb z*Onlf>z^D+&$0!4`IE$;2-NSO9HQWd+UFW(r;4hh;(j^p4H-~6OE!HQp^96v?{9Zt z;@!ZcccV%C2s6FMP#qvo4kG6C04A>XILt>JW}%0oE&HM5f6 zYLD!;My>CW+j<~=Wzev{aYtx2ZNw|ptTFV(4;9`6Tmbz6K1)fv4qPXa2mtoPt&c?P zhmO+*o8uP3ykL6E$il00@TDf6tOW7fmo?Oz_6GU^+5J=c22bWyuH#aNj!tT-^IHrJ zu{aqTYw@q;&$xDE*_kl50Jb*dp`(-^p={z}`rqECTi~3 z>0~A7L6X)=L5p#~$V}gxazgGT7$3`?a)zen>?TvAuQ+KAIAJ-s_v}O6@`h9n-sZk> z`3{IJeb2qu9w=P*@q>iC`5wea`KxCxrx{>(4{5P+!cPg|pn~;n@DiZ0Y>;k5mnKeS z!LIfT4{Lgd=MeysR5YiQKCeNhUQ;Os1kAymg6R!u?j%LF z4orCszIq_n52ulpes{(QN|zirdtBsc{9^Z72Ycb2ht?G^opkT_#|4$wa9`)8k3ilU z%ntAi`nakS1r10;#k^{-ZGOD&Z2|k=p40hRh5D7(&JG#Cty|ECOvwsSHkkSa)36$4 z?;v#%@D(=Raw(HP5s>#4Bm?f~n1@ebH}2tv#7-0l-i^H#H{PC|F@xeNS+Yw{F-&wH z07)bj8MaE6`|6NoqKM~`4%X> zKFl&7g1$Z3HB>lxn$J`P`6GSb6CE6_^NA1V%=*`5O!zP$a7Vq)IwJAki~XBLf=4TF zPYSL}>4nOGZ`fyHChq)jy-f{PKFp6$plHB2=;|>%Z^%)ecVue(*mf>EH_uO^+_zm? zJATFa9SF~tFwR#&0xO{LLf~@}s_xvCPU8TwIJgBs%FFzjm`u?1699RTui;O$rrR{# z1^MqMl5&6)G%@_k*$U5Kxq84!AdtbZ!@8FslBML}<`(Jr zenXrC6bFJP=R^FMBg7P?Pww-!a%G@kJH_zezKvuWU0>m1uyy}#Vf<$>u?Vzo3}@O% z1JR`B?~Tx2)Oa|{DQ_)y9=oY%haj!80GNHw3~qazgU-{|q+Bl~H94J!a%8UR?XsZ@ z0*ZyQugyru`V9b(0OrJOKISfi89bSVR zQy<+i_1XY}4>|D%X_`IKZUPz6=TDb)t1mC9eg(Z=tv zq@|r37AQM6A%H%GaH3szv1L^ku~H%5_V*fv$UvHl*yN4iaqWa69T2G8J2f3kxc7UE zOia@p0YNu_q-IbT%RwOi*|V|&)e5B-u>4=&n@`|WzH}BK4?33IPpXJg%`b=dr_`hU z8JibW_3&#uIN_#D&hX<)x(__jUT&lIH$!txEC@cXv$7yB&Rgu){M`9a`*PH} zRcU)pMWI2O?x;?hzR{WdzKt^;_pVGJAKKd)F$h;q=Vw$MP1XSd<;Mu;EU5ffyKIg+ z&n-Nb?h-ERN7(fix`htopPIba?0Gd^y(4EHvfF_KU<4RpN0PgVxt%7Yo99X*Pe|zR z?ytK&5qaZ$0KSS$3ZNS$$k}y(2(rCl=cuYZg{9L?KVgs~{?5adxS))Upm?LDo||`H zV)$`FF3icFmxcQshXX*1k*w3O+NjBR-AuE70=UYM*7>t|I-oix=bzDwp2*RoIwBp@r&vZukG; zyi-2zdyWJ3+E?{%?>e2Ivk`fAn&Ho(KhGSVE4C-zxM-!j01b~mTr>J|5={PrZHOgO zw@ND3=z(J7D>&C7aw{zT>GHhL2BmUX0GLt^=31RRPSnjoUO9LYzh_yegyPoAKhAQE z>#~O27dR4&LdQiak6={9_{LN}Z>;kyVYKH^d^*!`JVSXJlx#&r4>VnP$zb{XoTb=> zZsLvh>keP3fkLTIDdpf-@(ADfq4=@X=&n>dyU0%dwD{zsjCWc;r`-e~X$Q3NTz_TJ zOXG|LMQQIjGXY3o5tBm9>k6y<6XNO<=9H@IXF;63rzsC=-VuS*$E{|L_i;lZmHOD< zY92;>4spdeRn4L6pY4oUKZG<~+8U-q7ZvNOtW0i*6Q?H`9#U3M*k#4J;ek(MwF02x zUo1wgq9o6XG#W^mxl>pAD)Ll-V5BNsdVQ&+QS0+K+?H-gIBJ-ccB1=M_hxB6qcf`C zJ?!q!J4`kLhAMry4&a_0}up{CFevcjBl|N(uDM^N5#@&-nQt2>z*U}eJGi}m5f}l|IRVj-Q;a>wcLpK5RRWJ> zysdd$)Nv0tS?b~bw1=gvz3L_ZAIdDDPj)y|bp1;LE`!av!rODs-tlc}J#?erTgXRX z$@ph%*~_wr^bQYHM7<7=Q=45v|Hk7T=mDpW@OwRy3A_v`ou@JX5h!VI*e((v*5Aq3 zVYfB4<&^Dq5%^?~)NcojqK`(VXP$`#w+&VhQOn%;4pCkz;NEH6-FPHTQ+7I&JE1+Ozq-g43AEZV>ceQ^9PCx zZG@OlEF~!Lq@5dttlr%+gNjRyMwJdJU(6W_KpuVnd{3Yle(-p#6erIRc${l&qx$HA z89&sp=rT7MJ=DuTL1<5{)wtUfpPA|Gr6Q2T*=%2RFm@jyo@`@^*{5{lFPgv>84|pv z%y{|cVNz&`9C*cUely>-PRL)lHVErAKPO!NQ3<&l5(>Vp(MuJnrOf^4qpIa!o3D7( z1bjn#Vv$#or|s7Hct5D@%;@48mM%ISY7>7@ft8f?q~{s)@BqGiupoK1BAg?PyaDQ1 z`YT8{0Vz{zBwJ={I4)#ny{RP{K1dqzAaQN_aaFC%Z>OZ|^VhhautjDavGtsQwx@WH zr|1UKk^+X~S*RjCY_HN!=Jx>b6J8`Q(l4y|mc<6jnkHVng^Wk(A13-;AhawATsmmE#H%|8h}f1frs2x@Fwa_|ea+$tdG2Pz{7 z!ox^w^>^Cv4e{Xo7EQ7bxCe8U+LZG<_e$RnR?p3t?s^1Mb!ieB z#@45r*PTc_yjh#P=O8Zogo+>1#|a2nJvhOjIqKK1U&6P)O%5s~M;99O<|Y9zomWTL z666lK^QW`)cXV_^Y05yQZH3IRCW%25BHAM$c0>w`x!jh^15Zp6xYb!LoQ zr+RukTw0X2mxN%K0%=8|JHiaA3pg5+GMfze%9o5^#upx0M?G9$+P^DTx7~qq9$Qoi zV$o)yy zuUq>3c{_q+HA5OhdN*@*RkxRuD>Bi{Ttv_hyaaB;XhB%mJ2Cb{yL;{Zu@l{N?!GKE7es6_9J{9 zO(tmc0ra2;@oC%SS-8|D=omQ$-Dj>S)Utkthh{ovD3I%k}HoranSepC_yco2Q8 zY{tAuPIhD{X`KbhQIr%!t+GeH%L%q&p z3P%<-S0YY2Emjc~Gb?!su85}h_qdu5XN2XJUM}X1k^!GbwuUPT(b$Ez#LkG6KEWQB z7R&IF4srHe$g2R-SB;inW9T{@+W+~wi7VQd?}7||zi!&V^~o0kM^aby7YE_-B63^d zf_uo8#&C77HBautt_YH%v6!Q>H?}(0@4pv>cM6_7dHJ)5JdyV0Phi!)vz}dv{*n;t zf(+#Hdr=f8DbJqbMez)(n>@QT+amJ7g&w6vZ-vG^H1v~aZqG~u!1D(O+jVAG0EQ*aIsr*bsBdbD`)i^FNJ z&B@yxqPFCRGT#}@dmu-{0vp47xk(`xNM6E=7QZ5{tg6}#zFrd8Pb_bFg7XP{FsYP8 zbvWqG6#jfg*4gvY9!gJxJ3l2UjP}+#QMB(*(?Y&Q4PO`EknE&Cb~Yb@lCbk;-KY)n zzbjS~W5KZ3FV%y>S#$9Sqi$FIBCw`GfPDP|G=|y32VV-g@a1D&@%_oAbB@cAUx#aZ zlAPTJ{iz#Qda8(aNZE&0q+8r3&z_Ln)b=5a%U|OEcc3h1f&8?{b8ErEbilrun}mh3 z$1o^$-XzIiH|iGoJA`w`o|?w3m*NX|sd$`Mt+f*!hyJvQ2fS*&!SYn^On-M|pHGlu z4SC5bM7f6BAkUhGuN*w`97LLkbCx=p@K5RL2p>YpDtf{WTD|d3ucb6iVZ-*DRtoEA zCC5(x)&e=giR_id>5bE^l%Mxx>0@FskpCD4oq@%-Fg$8IcdRwkfn;DsjoX(v;mt3d z_4Mnf#Ft4x!bY!7Hz?RRMq9;5FzugD(sbt4up~6j?-or+ch~y_PqrM2hhTToJjR_~ z)E1idgt7EW>G*9%Q^K;o_#uFjX!V2pwfpgi>}J&p_^QlZki!@#dkvR`p?bckC`J*g z=%3PkFT3HAX2Q+dShHUbb1?ZcK8U7oaufLTCB#1W{=~k0Jabgv>q|H+GU=f-y|{p4 zwN|AE+YbCgx=7vlXE?@gkXW9PaqbO#GB=4$o0FkNT#EI?aLVd2(qnPK$Yh%YD%v(mdwn}bgsxyIBI^)tY?&G zi^2JfClZ@4b{xFjyTY?D61w@*ez2@5rWLpG#34id?>>oPg{`4F-l`7Lg@D@Hc}On} zx%BO4MsLYosLGACJ-d?ifZ35r^t*}wde>AAWO*J-X%jvD+gL9`u`r=kP zyeJ%FqqKfz8e_3K(M1RmB?gIYi{W7Z<THP2ihue0mbpu5n(x_l|e1tw(q!#m5lmef6ktqIb${ zV+ee#XRU}_dDDUiV@opHZ@EbQ<9qIZJMDsZDkW0^t3#j`S)G#>N^ZBs8k+FJhAfu< z%u!$%dyP3*_+jUvCf-%{x#MyDAK?#iPfE<(@Q0H7;a125eD%I(+!x1f;Sy`e<9>nm zQH4czZDQmW7^n>jL)@P@aAuAF$;I7JZE5a8~AJI5CNDqyf$gjloKR7C?OPt9yeH}n5 zNF8Vhmd%1O>T4EZD&0%Dt7YWNImmEV{7QF(dy!>q5k>Kh&Xy8hcBMUvVV~Xn8O&%{ z&q=JCYw#KlwM8%cu-rNadu(P~i3bM<_a{3!J*;vZhR6dln6#eW0^0kN)Vv3!bqM`w z{@j*eyzz=743dgFPY`Cx3|>ata;;_hQ3RJd+kU}~p~aphRx`03B>g4*~f%hUV+#D9rYRbsGD?jkB^$3XcgB|3N1L& zrmk9&Dg450mAd=Q_p?gIy5Zx7vRL?*rpNq76_rysFo)z)tp0B;7lSb9G5wX1vC9Lc z5Q8tb-alolVNWFsxO_=12o}X(>@Mwz1mkYh1##(qQwN=7VKz?61kay8A9(94Ky(4V zq6qd2+4a20Z0QRrmp6C?4;%U?@MatfXnkj&U6bP_&2Ny}BF%4{QhNx*Tabik9Y-~Z z@0WV6XD}aI(%pN}oW$X~Qo_R#+1$@J8(31?zM`#e`#(0f<-AZ^={^NgH#lc?oi(Mu zMk|#KR^Q;V@?&(sh5)D;-fu)rx%gXZ1&5)MR+Mhssy+W>V%S|PRNyTAd}74<(#J>H zR(1BfM%eIv0+ngHH6(i`?-%_4!6PpK*0X)79SX0X$`lv_q>9(E2kkkP;?c@rW2E^Q zs<;`9dg|lDMNECFrD3jTM^Mn-C$44}9d9Kc z#>*k&e#25;D^%82^1d@Yt{Y91MbEu0C}-;HR4+IaCeZ`l?)Q8M2~&E^FvJ?EBJJ(% zz1>tCW-E~FB}DI}z#+fUo+=kQME^=eH>^%V8w)dh*ugPFdhMUi3R2Cg}Zak4!k_8YW(JcR-)hY8C zXja}R7@%Q0&IzQTk@M|)2ViZDNCDRLNI)*lH%SDa^2TG4;%jE4n`8`aQAA$0SPH2@ z)2eWZuP26+uGq+m8F0fZn)X^|bNe z#f{qYZS!(CdBdM$N2(JH_a^b#R2=>yVf%JI_ieRFB{w&|o9txwMrVxv+n78*aXFGb z>Rkj2yq-ED<)A46T9CL^$iPynv`FoEhUM10@J+UZ@+*@_gyboQ>HY9CiwTUo7OM=w zd~$N)1@6U8H#Zu(wGLa_(Esx%h@*pmm5Y9OX@CY`3kPYPQx@z8yAgtm(+agDU%4?c zy8pR4SYbu8vY?JX6HgVq7|f=?w(%`m-C+a@E{euXo>XrGmkmFGzktI*rj*8D z)O|CHKXEzH{~iS+6)%ybRD|JRQ6j<+u_+=SgnJP%K+4$st+~XCVcAjI9e5`RYq$n{ zzy!X9Nv7>T4}}BZpSj9G9|(4ei-}Du<_IZw+CB`?fd$w^;=j8?vlp(#JOWiHaXJjB0Q00RHJ@sG6N#y^H7t^&V} z;VrDI4?75G$q5W9mV=J2iP24NHJy&d|HWHva>FaS#3AO?+ohh1__FMx;?`f{HG3v0 ztiO^Wanb>U4m9eLhoc_2B(ca@YdnHMB*~aYO+AE(&qh@?WukLbf_y z>*3?Xt-lxr?#}y%kTv+l8;!q?Hq8XSU+1E8x~o@9$)zO2z9K#(t`vPDri`mKhv|sh z{KREcy`#pnV>cTT7dm7M9B@9qJRt3lfo(C`CNkIq@>|2<(yn!AmVN?ST zbX_`JjtWa3&N*U{K7FYX8})*D#2@KBae` zhKS~s!r%SrXdhCsv~sF}7?ocyS?afya6%rDBu6g^b2j#TOGp^1zrMR}|70Z>CeYq- z1o|-=FBKlu{@;pm@QQJ_^!&hzi;0Z_Ho){x3O1KQ#TYk=rAt9`YKC0Y^}8GWIN{QW znYJyVTrmNvl!L=YS1G8BAxGmMUPi+Q7yb0XfG`l+L1NQVSbe^BICYrD;^(rke{jWCEZOtVv3xFze!=Z&(7}!)EcN;v0Dbit?RJ6bOr;N$ z=nk8}H<kCEE+IK3z<+3mkn4q!O7TMWpKShWWWM)X*)m6k%3luF6c>zOsFccvfLWf zH+mNkh!H@vR#~oe=ek}W3!71z$Dlj0c(%S|sJr>rvw!x;oCek+8f8s!U{DmfHcNpO z9>(IKOMfJwv?ey`V2ysSx2Npeh_x#bMh)Ngdj$al;5~R7Ac5R2?*f{hI|?{*$0qU- zY$6}ME%OGh^zA^z9zJUs-?a4ni8cw_{cYED*8x{bWg!Fn9)n;E9@B+t;#k}-2_j@# zg#b%R(5_SJAOtfgFCBZc`n<&z6)%nOIu@*yo!a% zpLg#36KBN$01W{b;qWN`Tp(T#jh%;Zp_zpS64lvBVY2B#UK)p`B4Oo)IO3Z&D6<3S zfF?ZdeNEnzE{}#gyuv)>;z6V{!#bx)` zY;hL*f(WVD*D9A4$WbRKF2vf;MoZVdhfWbWhr{+Db5@M^A4wrFReuWWimA4qp`GgoL2`W4WPUL5A=y3Y3P z%G?8lLUhqo@wJW8VDT`j&%YY7xh51NpVYlsrk_i4J|pLO(}(b8_>%U2M`$iVRDc-n zQiOdJbroQ%*vhN{!{pL~N|cfGooK_jTJCA3g_qs4c#6a&_{&$OoSQr_+-O^mKP=Fu zGObEx`7Qyu{nHTGNj(XSX*NPtAILL(0%8Jh)dQh+rtra({;{W2=f4W?Qr3qHi*G6B zOEj7%nw^sPy^@05$lOCjAI)?%B%&#cZ~nC|=g1r!9W@C8T0iUc%T*ne z)&u$n>Ue3FN|hv+VtA+WW)odO-sdtDcHfJ7s&|YCPfWaVHpTGN46V7Lx@feE#Od%0XwiZy40plD%{xl+K04*se zw@X4&*si2Z_0+FU&1AstR)7!Th(fdaOlsWh`d!y=+3m!QC$Zlkg8gnz!}_B7`+wSz z&kD?6{zPnE3uo~Tv8mLP%RaNt2hcCJBq=0T>%MW~Q@Tpt2pPP1?KcywH>in5@ zx+5;xu-ltFfo5vLU;2>r$-KCHjwGR&1XZ0YNyrXXAUK!FLM_7mV&^;;X^*YH(FLRr z`0Jjg7wiq2bisa`CG%o9i)o1`uG?oFjU_Zrv1S^ipz$G-lc^X@~6*)#%nn+RbgksJfl{w=k31(q>7a!PCMp5YY{+Neh~mo zG-3dd!0cy`F!nWR?=9f_KP$X?Lz&cLGm_ohy-|u!VhS1HG~e7~xKpYOh=GmiiU;nu zrZ5tWfan3kp-q_vO)}vY6a$19Q6UL0r znJ+iSHN-&w@vDEZ0V%~?(XBr|jz&vrBNLOngULxtH(Rp&U*rMY42n;05F11xh?k;n_DX2$4|vWIkXnbwfC z=ReH=(O~a;VEgVO?>qsP*#eOC9Y<_9Yt<6X}X{PyF7UXIA$f)>NR5P&4G_Ygq(9TwwQH*P>Rq>3T4I+t2X(b5ogXBAfNf!xiF#Gilm zp2h{&D4k!SkKz-SBa%F-ZoVN$7GX2o=(>vkE^j)BDSGXw?^%RS9F)d_4}PN+6MlI8*Uk7a28CZ)Gp*EK)`n5i z){aq=0SFSO-;sw$nAvJU-$S-cW?RSc7kjEBvWDr1zxb1J7i;!i+3PQwb=)www?7TZ zE~~u)vO>#55eLZW;)F(f0KFf8@$p)~llV{nO7K_Nq-+S^h%QV_CnXLi)p*Pq&`s!d zK2msiR;Hk_rO8`kqe_jfTmmv|$MMo0ll}mI)PO4!ikVd(ZThhi&4ZwK?tD-}noj}v zBJ?jH-%VS|=t)HuTk?J1XaDUjd_5p1kPZi6y#F6$lLeRQbj4hsr=hX z4tXkX2d5DeLMcAYTeYm|u(XvG5JpW}hcOs4#s8g#ihK%@hVz|kL=nfiBqJ{*E*WhC zht3mi$P3a(O5JiDq$Syu9p^HY&9~<#H89D8 zJm84@%TaL_BZ+qy8+T3_pG7Q%z80hnjN;j>S=&WZWF48PDD%55lVuC0%#r5(+S;WH zS7!HEzmn~)Ih`gE`faPRjPe^t%g=F ztpGVW=Cj5ZkpghCf~`ar0+j@A=?3(j@7*pq?|9)n*B4EQTA1xj<+|(Y72?m7F%&&& zdO44owDBPT(8~RO=dT-K4#Ja@^4_0v$O3kn73p6$s?mCmVDUZ+Xl@QcpR6R3B$=am z%>`r9r2Z79Q#RNK?>~lwk^nQlR=Hr-ji$Ss3ltbmB)x@0{VzHL-rxVO(++@Yr@Iu2 zTEX)_9sVM>cX$|xuqz~Y8F-(n;KLAfi*63M7mh&gsPR>N0pd9h!0bm%nA?Lr zS#iEmG|wQd^BSDMk0k?G>S-uE$vtKEF8Dq}%vLD07zK4RLoS?%F1^oZZI$0W->7Z# z?v&|a`u#UD=_>i~`kzBGaPj!mYX5g?3RC4$5EV*j0sV)>H#+$G6!ci=6`)85LWR=FCp-NUff`;2zG9nU6F~ z;3ZyE*>*LvUgae+uMf}aV}V*?DCM>{o31+Sx~6+sz;TI(VmIpDrN3z+BUj`oGGgLP z>h9~MP}Pw#YwzfGP8wSkz`V#}--6}7S9yZvb{;SX?6PM_KuYpbi~*=teZr-ga2QqIz{QrEyZ@>eN*qmy;N@FCBbRNEeeoTmQyrX;+ zCkaJ&vOIbc^2BD6_H+Mrcl?Nt7O{xz9R_L0ZPV_u!sz+TKbXmhK)0QWoe-_HwtKJ@@7=L+ z+K8hhf=4vbdg3GqGN<;v-SMIzvX=Z`WUa_91Yf89^#`G(f-Eq>odB^p-Eqx}ENk#&MxJ+%~Ad2-*`1LNT>2INPw?*V3&kE;tt?rQyBw? zI+xJD04GTz1$7~KMnfpkPRW>f%n|0YCML@ODe`10;^DXX-|Hb*IE%_Vi#Pn9@#ufA z_8NY*1U%VseqYrSm?%>F@`laz+f?+2cIE4Jg6 z_VTcx|DSEA`g!R%RS$2dSRM|9VQClsW-G<~=j5T`pTbu-x6O`R z98b;}`rPM(2={YiytrqX+uh65f?%XiPp`;4CcMT*E*dQJ+if9^D>c_Dk8A(cE<#r=&!& z_`Z01=&MEE+2@yr!|#El=yM}v>i=?w^2E_FLPy(*4A9XmCNy>cBWdx3U>1RylsItO z4V8T$z3W-qqq*H`@}lYpfh=>C!tieKhoMGUi)EpWDr;yIL&fy};Y&l|)f^QE*k~4C zH>y`Iu%#S)z)YUqWO%el*Z)ME#p{1_8-^~6UF;kBTW zMQ!eXQuzkR#}j{qb(y9^Y!X7&T}}-4$%4w@w=;w+>Z%uifR9OoQ>P?0d9xpcwa>7kTv2U zT-F?3`Q`7xOR!gS@j>7In>_h){j#@@(ynYh;nB~}+N6qO(JO1xA z@59Pxc#&I~I64slNR?#hB-4XE>EFU@lUB*D)tu%uEa))B#eJ@ZOX0hIulfnDQz-y8 z`CX@(O%_VC{Ogh&ot``jlDL%R!f>-8yq~oLGxBO?+tQb5%k@a9zTs!+=NOwSVH-cR zqFo^jHeXDA_!rx$NzdP;>{-j5w3QUrR<;}=u2|FBJ;D#v{SK@Z6mjeV7_kFmWt95$ zeGaF{IU?U>?W`jzrG_9=9}yN*LKyzz))PLE+)_jc#4Rd$yFGol;NIk(qO1$5VXR)+ zxF7%f4=Q!NzR>DVXUB&nUT&>Nyf+5QRF+Z`X-bB*7=`|Go5D1&h~ zflKLw??kpiRm0h3|1GvySC2^#kcFz^5{79KKlq@`(leBa=_4CgV9sSHr{RIJ^KwR_ zY??M}-x^=MD+9`v@I3jue=OCn0kxno#6i>b(XKk_XTp_LpI}X*UA<#* zsgvq@yKTe_dTh>q1aeae@8yur08S(Q^8kXkP_ty48V$pX#y9)FQa~E7P7}GP_CbCm zc2dQxTeW(-~Y6}im24*XOC8ySfH*HMEnW3 z4CXp8iK(Nk<^D$g0kUW`8PXn2kdcDk-H@P0?G8?|YVlIFb?a>QunCx%B9TzsqQQ~HD!UO7zq^V!v9jho_FUob&Hxi ztU1nNOK)a!gkb-K4V^QVX05*>-^i|{b`hhvQLyj`E1vAnj0fbqqO%r z6Q;X1x0dL~GqMv%8QindZ4CZ%7pYQW~ z9)I*#Gjref-q(4Z*E#1c&rE0-_(4;_M(V7rgH_7H;ps1s%GBmU z{4a|X##j#XUF2n({v?ZUUAP5k>+)^F)7n-npbV3jAlY8V3*W=fwroDS$c&r$>8aH` zH+irV{RG3^F3oW2&E%5hXgMH9>$WlqX76Cm+iFmFC-DToTa`AcuN9S!SB+BT-IA#3P)JW1m~Cuwjs`Ep(wDXE4oYmt*aU z!Naz^lM}B)JFp7ejro7MU9#cI>wUoi{lylR2~s)3M!6a=_W~ITXCPd@U9W)qA5(mdOf zd3PntGPJyRX<9cgX?(9~TZB5FdEHW~gkJXY51}?s4ZT_VEdwOwD{T2E-B>oC8|_ZwsPNj=-q(-kwy%xX2K0~H z{*+W`-)V`7@c#Iuaef=?RR2O&x>W0A^xSwh5MsjTz(DVG-EoD@asu<>72A_h<39_# zawWVU<9t{r*e^u-5Q#SUI6dV#p$NYEGyiowT>>d*or=Ps!H$-3={bB|An$GPkP5F1 zTnu=ktmF|6E*>ZQvk^~DX(k!N`tiLut*?3FZhs$NUEa4ccDw66-~P;x+0b|<!ZN7Z%A`>2tN#CdoG>((QR~IV_Gj^Yh%!HdA~4C3jOXaqb6Ou z21T~Wmi9F6(_K0@KR@JDTh3-4mv2=T7&ML<+$4;b9SAtv*Uu`0>;VVZHB{4?aIl3J zL(rMfk?1V@l)fy{J5DhVlj&cWKJCcrpOAad(7mC6#%|Sn$VwMjtx6RDx1zbQ|Ngg8N&B56DGhu;dYg$Z{=YmCNn+?ceDclp65c_RnKs4*vefnhudSlrCy6-96vSB4_sFAj# zftzECwmNEOtED^NUt{ZDjT7^g>k1w<=af>+0)%NA;IPq6qx&ya7+QAu=pk8t>KTm` zEBj9J*2t|-(h)xc>Us*jHs)w9qmA>8@u21UqzKk*Ei#0kCeW6o z-2Q+Tvt25IUkb}-_LgD1_FUJ!U8@8OC^9(~Kd*0#zr*8IQkD)6Keb(XFai5*DYf~` z@U?-{)9X&BTf!^&@^rjmvea#9OE~m(D>qfM?CFT9Q4RxqhO0sA7S)=--^*Q=kNh7Y zq%2mu_d_#23d`+v`Ol263CZ<;D%D8Njj6L4T`S*^{!lPL@pXSm>2;~Da- zBX97TS{}exvSva@J5FJVCM$j4WDQuME`vTw>PWS0!;J7R+Kq zVUy6%#n5f7EV(}J#FhDpts;>=d6ow!yhJj8j>MJ@Wr_?x30buuutIG97L1A*QFT$c ziC5rBS;#qj=~yP-yWm-p(?llTwDuhS^f&<(9vA9@UhMH2-Fe_YAG$NvK6X{!mvPK~ zuEA&PA}meylmaIbbJXDOzuIn8cJNCV{tUA<$Vb?57JyAM`*GpEfMmFq>)6$E(9e1@W`l|R%-&}38#bl~levA#fx2wiBk^)mPj?<=S&|gv zQO)4*91$n08@W%2b|QxEiO0KxABAZC{^4BX^6r>Jm?{!`ZId9jjz<%pl(G5l));*`UU3KfnuXSDj2aP>{ zRIB$9pm7lj3*Xg)c1eG!cb+XGt&#?7yJ@C)(Ik)^OZ5><4u$VLCqZ#q2NMCt5 z6$|VN(RWM;5!JV?-h<JkEZ(SZF zC(6J+>A6Am9H7OlOFq6S62-2&z^Np=#xXsOq0WUKr zY_+Ob|CQd1*!Hirj5rn*=_bM5_zKmq6lG zn*&_=x%?ATxZ8ZTzd%biKY_qyNC#ZQ1vX+vc48N>aJXEjs{Y*3Op`Q7-oz8jyAh>d zNt_qvn`>q9aO~7xm{z`ree%lJ3YHCyC`q`-jUVCn*&NIml!uuMNm|~u3#AV?6kC+B z?qrT?xu2^mobSlzb&m(8jttB^je0mx;TT8}`_w(F11IKz83NLj@OmYDpCU^u?fD{) z&=$ptwVw#uohPb2_PrFX;X^I=MVXPDpqTuYhRa>f-=wy$y3)40-;#EUDYB1~V9t%$ z^^<7Zbs0{eB93Pcy)96%XsAi2^k`Gmnypd-&x4v9rAq<>a(pG|J#+Q>E$FvMLmy7T z5_06W=*ASUyPRfgCeiPIe{b47Hjqpb`9Xyl@$6*ntH@SV^bgH&Fk3L9L=6VQb)Uqa z33u#>ecDo&bK(h1WqSH)b_Th#Tvk&%$NXC@_pg5f-Ma#7q;&0QgtsFO~`V&{1b zbSP*X)jgLtd@9XdZ#2_BX4{X~pS8okF7c1xUhEV9>PZco>W-qz7YMD`+kCGULdK|^ zE7VwQ-at{%&fv`a+b&h`TjzxsyQX05UB~a0cuU-}{*%jR48J+yGWyl3Kdz5}U>;lE zgkba*yI5>xqIPz*Y!-P$#_mhHB!0Fpnv{$k-$xxjLAc`XdmHd1k$V@2QlblfJPrly z*~-4HVCq+?9vha>&I6aRGyq2VUon^L1a)g`-Xm*@bl2|hi2b|UmVYW|b+Gy?!aS-p z86a}Jep6Mf>>}n^*Oca@Xz}kxh)Y&pX$^CFAmi#$YVf57X^}uQD!IQSN&int=D> zJ>_|au3Be?hmPKK)1^JQ(O29eTf`>-x^jF2xYK6j_9d_qFkWHIan5=7EmDvZoQWz5 zZGb<{szHc9Nf@om)K_<=FuLR<&?5RKo3LONFQZ@?dyjemAe4$yDrnD zglU#XYo6|~L+YpF#?deK6S{8A*Ou;9G`cdC4S0U74EW18bc5~4>)<*}?Z!1Y)j;Ot zosEP!pc$O^wud(={WG%hY07IE^SwS-fGbvpP?;l8>H$;}urY2JF$u#$q}E*ZG%fR# z`p{xslcvG)kBS~B*^z6zVT@e}imYcz_8PRzM4GS52#ms5Jg9z~ME+uke`(Tq1w3_6 zxUa{HerS7!Wq&y(<9yyN@P^PrQT+6ij_qW3^Q)I53iIFCJE?MVyGLID!f?QHUi1tq z0)RNIMGO$2>S%3MlBc09l!6_(ECxXTU>$KjWdZX^3R~@3!SB zah5Za2$63;#y!Y}(wg1#shMePQTzfQfXyJ-Tf`R05KYcyvo8UW9-IWGWnzxR6Vj8_la;*-z5vWuwUe7@sKr#Tr51d z2PWn5h@|?QU3>k=s{pZ9+(}oye zc*95N_iLmtmu}H-t$smi49Y&ovX}@mKYt2*?C-i3Lh4*#q5YDg1Mh`j9ovRDf9&& zp_UMQh`|pC!|=}1uWoMK5RAjdTg3pXPCsYmRkWW}^m&)u-*c_st~gcss(`haA)xVw zAf=;s>$`Gq_`A}^MjY_BnCjktBNHY1*gzh(i0BFZ{Vg^F?Pbf`8_clvdZ)5(J4EWzAP}Ba5zX=S(2{gDugTQ3`%!q`h7kYSnwC`zEWeuFlODKiityMaM9u{Z%E@@y1jmZA#ⅅ8MglG&ER{i5lN315cO?EdHNLrg? zgxkP+ytd)OMWe7QvTf8yj4;V=?m172!BEt@6*TPUT4m3)yir}esnIodFGatGnsSfJ z**;;yw=1VCb2J|A7cBz-F5QFOQh2JDQFLarE>;4ZMzQ$s^)fOscIVv2-o{?ct3~Zv zy{0zU>3`+-PluS|ADraI9n~=3#Tvfx{pDr^5i$^-h5tL*CV@AeQFLxv4Y<$xI{9y< zZ}li*WIQ+XS!IK;?IVD0)C?pNBA(DMxqozMy1L#j+ba1Cd+2w&{^d-OEWSSHmNH>9 z%1Ldo(}5*>a8rjQF&@%Ka`-M|HM+m<^E#bJtVg&YM}uMb7UVJ|OVQI-zt-*BqQ zG&mq`Bn7EY;;+b%Obs9i{gC^%>kUz`{Qnc=ps7ra_UxEP$!?f&|5fHnU(rr?7?)D z$3m9e{&;Zu6yfa1ixTr;80IP7KLgkKCbgv1%f_weZK6b7tY+AS%fyjf6dR(wQa9TD zYG9`#!N4DqpMim|{uViKVf0B+Vmsr7p)Y+;*T~-2HFr!IOedrpiXXz+BDppd5BTf3 ztsg4U?0wR?9@~`iV*nwGmtYFGnq`X< zf?G%=o!t50?gk^qN#J(~!sxi=_yeg?Vio04*w<2iBT+NYX>V#CFuQGLsX^u8dPIkP zPraQK?ro`rqA4t7yUbGYk;pw6Z})Bv=!l-a5^R5Ra^TjoXI?=Qdup)rtyhwo<(c9_ zF>6P%-6Aqxb8gf?wY1z!4*hagIch)&A4treifFk=E9v@kRXyMm?V*~^LEu%Y%0u(| z52VvVF?P^D<|fG)_au(!iqo~1<5eF$Sc5?)*$4P3MAlSircZ|F+9T66-$)0VUD6>e zl2zlSl_QQ?>ULUA~H?QbWazYeh61%B!!u;c(cs`;J|l z=7?q+vo^T#kzddr>C;VZ5h*;De8^F2y{iA#9|(|5@zYh4^FZ-3r)xej=GghMN3K2Y z=(xE`TM%V8UHc4`6Cdhz4%i0OY^%DSguLUXQ?Y3LP+5x3jyN)-UDVhEC}AI5wImt; zHY|*=UW}^bS3va-@L$-fJz2P2LbCl)XybkY)p%2MjPJd-FzkdyWW~NBC@NlPJkz{v z+6k6#nif`E>>KCGaP34oY*c#nBFm#G8a0^px1S6mm6Cs+d}E8{J;DX=NEHb|{fZm0 z@Ors@ebTgbf^Jg&DzVS|h&Or)56$+;%&sh0)`&6VkS@QxQ=#6WxF5g+FWSr7Lp9uF zV#rc`yLe?f*u6oZoi3WpOkKFf^>lHb2GC6t!)dyGaQbK7&BNZ7oyP)hUX1Y(LdW-I z6LI2$i%+g!zsjT(5l}5ROLb)8`9kkldbklcq6tfLSrAyh#s(C1U2Sz9`h3#T9eX#Hryi1AU^!uv*&6I~qdM_B7-@`~8#O^jN&t7+S zTKI6;T$1@`Kky-;;$rU1*TdY;cUyg$JXalGc&3-Rh zJ&7kx=}~4lEx*%NUJA??g8eIeavDIDC7hTvojgRIT$=MlpU}ff0BTTTvjsZ0=wR)8 z?{xmc((XLburb0!&SA&fc%%46KU0e&QkA%_?9ZrZU%9Wt{*5DCUbqIBR%T#Ksp?)3 z%qL(XlnM!>F!=q@jE>x_P?EU=J!{G!BQq3k#mvFR%lJO2EU2M8egD?0r!2s*lL2Y} zdrmy`XvEarM&qTUz4c@>Zn}39Xi2h?n#)r3C4wosel_RUiL8$t;FSuga{9}-%FuOU z!R9L$Q!njtyY!^070-)|#E8My)w*~4k#hi%Y77)c5zfs6o(0zaj~nla0Vt&7bUqfD zrZmH~A50GOvk73qiyfXX6R9x3Qh)K=>#g^^D65<$5wbZjtrtWxfG4w1f<2CzsKj@e zvdsQ$$f6N=-%GJk~N7G(+-29R)Cbz8SIn_u|(VYVSAnlWZhPp8z6qm5=hvS$Y zULkbE?8HQ}vkwD!V*wW7BDBOGc|75qLVkyIWo~3<#nAT6?H_YSsvS+%l_X$}aUj7o z>A9&3f2i-`__#MiM#|ORNbK!HZ|N&jKNL<-pFkqAwuMJi=(jlv5zAN6EW`ex#;d^Z z<;gldpFcVD&mpfJ1d7><79BnCn~z8U*4qo0-{i@1$CCaw+<$T{29l1S2A|8n9ccx0!1Pyf;)aGWQ15lwEEyU35_Y zQS8y~9j9ZiByE-#BV7eknm>ba75<_d1^*% zB_xp#q`bpV1f9o6C(vbhN((A-K+f#~3EJtjWVhRm+g$1$f2scX!eZkfa%EIZd2ZVG z6sbBo@~`iwZQC4rH9w84rlHjd!|fHc9~12Il&?-FldyN50A`jzt~?_4`OWmc$qkgI zD_@7^L@cwg4WdL(sWrBYmkH;OjZGE^0*^iWZM3HBfYNw(hxh5>k@MH>AerLNqUg*Og9LiYmTgPw zX9IiqU)s?_obULF(#f~YeK#6P>;21x+cJ$KTL}|$xeG?i`zO;dAk0{Uj6GhT-p-=f zP2NJUcRJ{fZy=bbsN1Jk3q}(!&|Fkt_~GYdcBd7^JIt)Q!!7L8`3@so@|GM9b(D$+ zlD&69JhPnT>;xlr(W#x`JJvf*DPX(4^OQ%1{t@)Lkw5nc5zLVmRt|s+v zn(25v*1Z(c8RP@=3l_c6j{{=M$=*aO^ zPMUbbEKO7m2Q$4Xn>GIdwm#P_P4`or_w0+J+joK&qIP#uEiCo&RdOaP_7Z;PvfMh@ zsXUTn>ppdoEINmmq5T1BO&57*?QNLolW-8iz-jv7VAIgoV&o<<-vbD)--SD%FFOLd z>T$u+V>)4Dl6?A24xd1vgm}MovrQjf-@YH7cIk6tP^eq-xYFymnoSxcw}{lsbCP1g zE_sX|c_nq(+INR3iq+Oj^TwkjhbdOo}FmpPS2*#NGxNgl98|H0M*lu)Cu0TrA|*t=i`KIqoUl(Q7jN zb6!H-rO*!&_>-t)vG5jG>WR6z#O9O&IvA-4ho9g;as~hSnt!oF5 z6w(4pxz|WpO?HO<>sC_OB4MW)l`-E9DZJ$!=ytzO}fWXwnP>`8yWm5tYw`b1KDdg zp@oD;g===H+sj+^v6DCpEu7R?fh7>@pz>f74V5&#PvBN+95?28`mIdGR@f*L@j2%% z%;Rz5R>l#1U zYCS_5_)zUjgq#0SdO#)xEfYJ)JrHLXfe8^GK3F*CA(Y)jsSPJ{j&Ae!SeWN%Ev727 zxdd3Y0n^OBOtBSKdglEBL)i5=NdKfqK=1n~6LX`ja;#Tr!II$AAH{Z#sp%`rwNGT5 zvHT%(LJB+kD{5N}7c_Rk6}@tikIeq%@MqxX%$P!(238YD(H<_d;xxo*oMiv^1io>g zt5z&6`}cjci90q2r0hutQXr!UA~|4e*u=k81D(Cp7n{4LVCa+u0%-8Uha+sqI#Om~ z!&)KN(#Zone^~&@Ja{|l?X64Dxk)q>tLRv{=0|t$`Kdaj z#{AJr>{_BtpS|XEgTVJ4WMvBRk-(mk@ZYGdY1VwI z81;z(MBGV|2j*Cj%dvl8?b2{{B#e0B7&7wfv+>g`R2^Ai5C_WUx|CnTrHm+RFGXrt zs<~zBtk@?Niu%|o6IEL+y60Q>zJlv``ePCa07C%*O~lj?74|}&A0!uA)3V7ST8b_- z6CBP1;x+S@xTzgOY2#s%@=bhZ@i@BwmS)neQG&=9KUtRf^K=MvjC5JnqLqykCE_P0 zjf#V4SdH2#%2EuDb!>FLHK7j;nd6VLW|$3gJuegpEl3DZ`BpJU$<}}A(rW?<6OB@9 zKP9G3An?T5BztrLdlximA;{>Tr7GAeSU=^<*y;%RHj+7;v+tonyh(8d;Izn}2{oz& zW)fsZ9gHYpI?B|uekS3zHUue3mI zb7?0+&Zm>Kq(F>~%VYEn)0b32I3~O^?Wx-HI|Zu?1-OA2yfyJ;gWygLOeU;)vRm3u z5J4vDIQYztnEm=QauX2(WJO{yzI0HUFl+oO&isMf!Yh2pu@p}65)|0EdWRbg(@J6qo5_Els>#|_2a1p0&y&UP z8x#Z69q=d663NPPi>DHx3|QhJl5Ka$Cfqbvl*oRLYYXiH>g8*vriy!0XgmT~&jh3l z+!|~l=oCj<*PD>1EY*#+^a{rVk3T(66rJ^DxGt|~XTNnJf$vix1v1qdYu+d@Jn~bh z!7`a`y+IEcS#O*fSzA;I`e_T~XYzpW7alC%&?1nr);tSkNwO&J`JnX+7X1Q8fRh_d zx%)Xh_YjI3hwTCmGUeq_Z@H#ovkk_b(`osa$`aNmt`9A#t&<^jvuf z1E1DrW(%7PpAOQGwURz@luEW9-)L!`Jy*aC*4mcD?Si~mb=3Kn#M#1il9%`C0wkZ` zbpJ-qEPaOE5Y5iv_z%Wr{y4jh#U+o^KtP{pPCq-Qf&!=Uu)cEE(Iu9`uT#oHwHj+w z_R=kr7vmr~{^5sxXkj|WzNhAlXkW^oB4V)BZ{({~4ylOcM#O>DR)ZhD;RWwmf|(}y zDn)>%iwCE=*82>zP0db>I4jN#uxcYWod+<;#RtdMGPDpQW;riE;3cu``1toL|FaWa zK)MVA%ogXt3q55(Q&q+sjOG`?h=UJE9P;8i#gI*#f}@JbV(DuGEkee;La*9{p&Z?;~lE!&-kUFCtoDHY*MS zzj+S$L9+aTs(F^4ufZe6>SBg;m@>0&+kEZMFmD*~p~sx?rx=!>Ge;KYw<33y#*&77 zFZI`YE(Iz?+tH;Fq;y=MaSqT{Ayh*HFv0(z{_?Q+7@nE%p?S8%X6c!+y;!0NLXwJV8Co_}R3*7>n+oMsQpv8}8ZS-P@(Rg|gmxZHzf=nMOUAAY}AZGfWVzZjE@4$=7xkIrs8BE%606aVU%kxz_04ipig51k& z(>c9rJL2q%xvU%Zj#GR9C9)HLCR;#zQBB@x;e_9$ayn(JmSg_*0G?+wOF?&iu@}S{ zt$;TPf*Lj$3=d<}Q3o!Hq@3~lFxoiCyeEt}o3fihIn{x2s1)e2@3##&GYDq~YO|!q zUs0P-zy)+ohl-VQ`bhvUpC{-d$lkpML_M%Kl6@#_@A}w{jWCDsPa#cSbWA#C4Sf|*C*&Z{ zz?hOU7Cc`?>H$WGqITA2P~fYudnQHxB8^;0ZFKC;19F#~n_2P@{cE{Czq-#K5L_8| zc3aOEwq4%zL5>YU_mc9fc-p~{fBTWUkxTiZvxt9FOqC{s#TBp(#dWc+{Ee{dZ#B!g zHnaOJ8;KO1G;QU2ciodE+#Z$Wuz*Hc6NRO!AUMi|gov=>=cwcZeL&`>Jfn!35hV1J z;B2@0!bIR853w%T*m6)gQ?DPnQ)o6EtKaN3L;o?*q<83d&lG&U=A|6hcT?f0)4h6{ zGIZ0|!}-?*n{zr}-}cC}qWxEN%g60+{my)o^57{QEn(tSrmD7o)|r0+HVpQPopFu; z0<S}pW8W2vXzSxEqGD+qePj^x?R$e2LO&*ewsLo{+_Z)Wl|Z1K47j zsKoNRlX)h2z^ls_>IZ0!2X5t&irUs%RAO$Dr>0o$-D+$!Kb9puSgpoWza1jnX6(eG zTg-U z6|kf1atI!_>#@|=d01Ro@Rg)BD?mY3XBsG7U9%lmq>4;Gf&2k3_oyEOdEN&X6Hl5K zCz^hyt67G;IE&@w1n~%ji_{sob_ssP#Ke|qd!Xx?J&+|2K=^`WfwZ-zt|sklFouxC zXZeDgluD2a?Zd3e{MtE$gQfAY9eO@KLX;@8N`(?1-m`?AWp!a8bA%UN>QTntIcJX zvbY+C-GD&F?>E?jo$xhyKa@ps9$Dnwq>&)GB=W~2V3m)k;GNR$JoPRk%#f3#hgVdZ zhW3?cSQ*((Fog26jiEeNvum-6ID-fbfJ?q1ZU#)dgnJ^FCm`+sdP?g;d4VD$3XKx{ zs|Y4ePJp|93fpu)RL+#lIN9Ormd;<_5|oN!k5CENnpO>{60X;DN>vgHCX$QZYtgrj z*1{bEA1LKi8#U%oa!4W-4G+458~`5O4S1&tuyv>%H9DjLip7cC~RRS@HvdJ<|c z$TxEL=)r)XTfTgVxaG!gtZhLL`$#=gz1X=j|I@n~eHDUCW39r=o_ml@B z0cDx$5;3OA2l)&41kiKY^z7sO_U%1=)Ka4gV(P#(<^ z_zhThw=}tRG|2|1m4EP|p{Swfq#eNzDdi&QcVWwP+7920UQB*DpO0(tZHvLVMIGJl zdZ5;2J%a!N1lzxFwAkq05DPUg2*6SxcLRsSNI6dLiK0&JRuYAqwL}Z!YVJ$?mdnDF z82)J_t=jbY&le6Hq$Qs}@AOZGpB1}$Ah#i;&SzD1QQNwi6&1ddUf7UG0*@kX?E zDCbHypPZ9+H~KnDwBeOXZ-W-Y80wpoGB*A) z_;26Z`#s0tKrf~QBi2rl2=>;CS1w)rcD3-sB!8NI*1iQo59PJ>OLnqeV4iK7`RBi^ zFW{*6;nlD&cSunmU3v4JKj|K4xeN(q>H%;SsY8yDdw5BJ75q8>Ov)&D5OPZ`XiRHl z;)mAA0Woy6f!xCK(9H2rq?qzp83liZAIpBPl-dQ&$2=&H?Im~%g;vnIw1I+8q|kr! z36&^9}CMmR(U2rf|j12oG=vb%Ypsq8u9Kq}U*ANX*)9uK}fAi8;V_7Z;0_4*iydDxN-? zv?qJ=T*{MzL~-xUv{_Kh_q9#F{8gPV!yPUUS8pEq*=}2-#1d=sC_|U-rX~F0 zBLawgCWy#?#ax{~DAnDvh^`}wyUO`ioMK~jgh%L7^}#h?beSyvQ_g>+`2`}`-1h7# zg*?qJdm=53hwN8~B=^|LPmYtOVrQ(W{sNm4uofq=4P@dUA%$onWbw_m-KWia&n9iv zi)!9#OJ#^}eg8tE{wSb9(c0D^PS1 z9EBS5*ypSiVRS_G0v?$hyoZOS7hFWlp4qbYkf9Y&{%OzhsIdHskLptn96@k6@^K@U zszd8POehITDK+AyW#JKpnWY;ju#MC$JjB1Y*~(E6N%{p#kO+bVxG3X<34n3fW=k{A zCZt|KP%x^GQ9%mU)KE0{LA=vaZvRQbxSlK~eAkwWo2Z<{j5eS5NVTMe`m%re8%~7K zZLtU&b~YDN%~uA9wPf>x2=PI=MA6_oVe>Ek$s5&&Z=8vvF5EODP4Av(b|dlNgF1O8 zy83W0WRdzjz2iNA~t1piEqlyU&`$yZtqR`6X_PmuP>W+D|8iH;FQ zN{JuU#Tz9mV=4R_IewROL1|mK^`lLat#LcIBfggzM(iO$pQT*-c_ z94^LUWw#5B9~sp2W1p`c)Y(xfR<{O^9n4E6vDDw{#-R4UMBKo{>Hqlqn*a9rl_>+0 zS5MwJC~nCC`1X%VCyWFsiDX;bfAJQAUkU#105f_s5U-8rqO}n8fA1{b>Fr6Q|Ea(V z5B11Lo^ooWF?`^{-U#?iatokWI-e$632frzY?Yzzx(xJc@LFM4A~-eg!u|tl{)8Nx ztZLXsSC*68g%9TFu(f&J9nmc^9hgyy#uUOMJFCaifSaDcyQ&6=8e9=t zIFEAQ{EK{|73{($!a4=!wj4ABcQrUQp#+gGM?wEUp(w@+Fzi{!lt}|3`PM%&d-seeR zB$}BrFGD3R10CE>Hsb>;PrP}pd` zaY4}6+Wu(`#uAV+E5SV7VIT7ES#b(U0%%DgN1}USJH>)mm;CHPv>}B18&0F~Kj@1= z&^Jyo+z-E)GRT4U*7$8wJO1OibWg0Jw>C$%Ge|=YwV@Y1(4fR>cV#6aGtRoF@I`*w_V4;)V231NzNqb6g@jdpjmjv*<2j02yU$F8ZS$fTvCC`%|Yn#x< zXUnP&b!GLpOY-TY3d?<-Hhxom_LM9`JC9LEX2{t1P-Nj%nG+0Vq)vQwvO^}coPH-> zAo8w#s>Je^Yy*#PlK=XDxpVS~pFe-j#jN-(As&LRewOf(kN-aKF(H+s*{*!0xrlZw zchJu@XAvQWX7DI1E8?F}Wc8m46eT+C<0eXVB+Z^(g=Kl@FG-cn@u$suj)1V2(KNg_ zh29ws6&6(q~+sOAoHY^o86A<#n*?Pg2)cK$+y;cY$hJLq4)4V84=j+3ShSr##Tk5kgmxB zkW+8A1GtceEx~^Ebhwm36U?oA)h)!mt=eg0QE$D1QsLNZ_T3NH?=B&0j~#298!6iv zhc0|-{46*3`Rx&nKSXnf1&w-Rs>#PGAGuY@cBTU-j|Fxbn3z49S#6KBaP^Lx*AOXxIibr z!1ysMi(&kr!1wwQB5w`BDH2~>T4bI`T1}A2RM0zd7ikC&kuBRsB`Z2@J!Udm{AmSN zrr0k6_qCZL**=)xRW`MFu(OY=OT;3G8eF~ z2mmkXZ9X(sjuKmq+_<=LSjphB$~R1o^Yb=rO!j!(4ErIox^x55o{pXSE9X$!76^*$ zoKhlAX6y%n^U=C~@!vIlEgXQGD@>oOU=_(aXF-Sjas*$AKESfRzxQ8#3yOj|y0OCU z>6Z-0%LCcjla&7I+CXm&caKp@@jQ!5M`(_{CL=@4#JJ}cHeZw>^b6fpv269LSV?gV5Q{kk?4;;y9RIsy5vk%DIRiL(9xe1aA@4!VX zDh2}xgUd5X?6nji%&7-%QuyKSYA-Z{PwJijUQ}In+EJl|x@dF1P<5bPa5W3&&?^h$ zZCo8LepKo0a(Fsln*cHL;D(gu9MMkoiM0*n31u)jHqX5x^F95tnI&^}^yKx3YwEm@ zo8?EZ710ykx@19{=yz5IXb8w4yjdveWb{IVL6Z(Cs>!a_0X^1E27o!4e&b43+J*u2Gb(59k2uK0goLwhO{ujLS ziI9LA9`&x~Y$6JNX!aEXR``}LUI}Gr#=<^wBHmg%v<)zRWDVtq)kT$-P7iU1R)2XZ zi~bYhV@EZ`@prgK(cs{>2jn$pxg$<|KjJ7%26Km>%KcXh^bU@y@V_Lf@=j1x%R4{v zOcQn{I}!2W<~08FOVnoV>zOTH=+>v9!jFo|q)ucqIe!N4{U5_G`>>*sVD{8I~4FqyU8imZ**-Gy`~Xd z4w35GMf%7^i65HdX{Iz|f2Kg193#KhPIeR)-=eYx3Z!%RM=JjwLrdk^B#6rg!ym2w zPbFqYyO4>W_Z6PonAwiu7?!h=x%sR-T+_*xZOGh2wWhWr%}%2^$$ zQvACIB~pi=m|`hXIMvoq`TOCx=J_D2>pi6$NPy3&8#vy|oX)=kM0Z}$BR$r0G}MzOk-OqG+VmZtOZoj6x4(tLh|5h) zBv64Y{DPHsy&_H(5_l(&Y}FhVvr9m_*_Q~Zy-}V9+VmGnvndEjYW4qt4K~N&Y&6g| zfpz*V=A#^mVmuOAz)(KVI<%v5NY0%Goy!{9&o41upsPWk(yFuRP|A4q6NMnX%V~MT zi_Rb-Bno2kI+j0Cw`@ydy{e%ARS#Z%b6I%_yfo_ZKXr4BLVoHzBKJ^ZG z-2>2IzU)55@9C|?_P$ew^-7zEiAKG1XAi{!3h%1m#9s%^pGy6S9wKFYY4<$djeoJP z{GI}Vd%idY$4_fh(7NXm7#;cC!DS&-{tGr!Qze{^%bUx2jgG@-kMta^q-EwrKB}d8 z{%FT>rFk_bzW<{lc%eYlrsiYTZXGgzD1&lmRyp+c1O=0=zAX=KV62bx-a~JP{cPF4 zU$-XT#(9&T>l@bMu3nSr{)%-5lV+0t&bxip4DVJ~vlL$J2P6X~ zd{FS8vm{Lhrieul*7&(AgPuXhjpGila%6_?-+k#b)cdk#M1jB*nE>G6NGOr+Ek{`= z9b%S1`$`=g0CC$>0$Db;l_szReLYVmce*(()9%Zz1`*fNXhI*oRlerWHarD(v^W^c zuc1Vuw6Gbp7ZsoRH>QGt#&lv;5G~Ovt$%7VFd*-rN2>UjbOWBFGNGO`bru7CFB4tn zL`^?69Lj_g_TA&`9`dSI8s|)K|QM0 zybvV7!>xDY|6c6y;Q}qs`){1+WQu_5Dgd8Qe|q}}bxjH+joQQtqs1IVZn6{e7T{ia zF|=^xa%eWO%(x<7j*QZbcU_;aVaVP!arexOLOtoSNt*hvsRL%}%)jPetSich(`b-^ zMZ$PM9%s@%*jPVz0Z^W*cK_>G4f}+eEVX`HOaHg#!B`<4v;x}zDLMR*M27`kNfp!! zOfdt(>k-g>7jf^{Se@3$8<+;R*cYtw+wD_Z8Pl~!JDCUEPq{Ea*!J9`%ihyNJZ30i zmfve}S5<$Uso}_?SuI$ks|{-ddGLu9WR9`^9)Kdi@Vs;x#SY-xp}wHPU0|vEA7234 z@BN1z7OF=OOQtPF$4twn3!HTVlUVD_)ubMM7PEPoiC6lQgL2q9PK4~e8v-OuH%lie z?NgBLkIdPMG$QBq(>r^AOHB`|*1#*!2Z? zuU8H|FD`OBRu^(R?Z-Vhr0j;FLpS~a34KREnd}B=EYHS*>Hm+f%tgJt!4J8Q`qn^4 z9F=tO#JRJ}tzA`vx$nZ)O%wC?Uiv0+_nz}5Lj4ki*&=K&*#U`=rv z`Q@Q{+IhAj@6lrNK2B=8Yln!O2%zomfRehFT~;!O@(@Xy|1Jlw*uOB-M$#6K^)QBm z_7%#QVUDPwnW{iOV-grMQQU|3{=BQMh}c5(yMGdoQf*)k9-B zMQ(^GdJh+y)>qJprknS!%WxqM>HlHOP#7UVdy>%PW$!l72J`n-p7j(DBKoGxXWh(Y z>BFDZl|7knU_jg_SSbvFk8)39%2)Hu5W0}HKlh>EaqvFoXI&56Yy)3) zQkE4X^P0QnPn?iUUVHJZXzPp`s5uv?pG{K9IgGoHvcmlBxubi|iF7n{)mhenIcxGs zgr0OpQy#Y#u=5lOyiECfE_Sn?Fj1LyoRKcbTgX{p<T*v!CGkPc)pcA2D=4Ekp0Gb*wpy7S88C%Ywsbr?MI(3UdsCM?XJ1X%*hNjB)XqZ*W(qDdtSb z<3XN74ARXL3=c^bfW~F%NM^5*Zx92>Wq`&M625p~j$8mYwLbk%Kf)jbn#<2z$%vP5 zy#b>-tF-S2_AB4;R^K&^-1LJrUmi@9rB^FLF)-k&YHK8P+k@RCJ1qSTZ@=kHxA3l$ zmK_ZG)l6(nmCR1a8|;QF-B5e_ELnjJ1$m-;4UXX?WytF_wz7#&AjwZYTMVieLbq@R z3t-q|G4^BB#EpNu4uyfDebB+-uu_$9>y-dzB30Y9F=R zrW-Heqnj*InPTWHgR9v^R7~hokldh&h8=HDhMW(EFfim1*{)5Lc1-+eBVkK-2!u=N zuZKABgJs3I--NbjE;>Undg6uK`^U>AQ6V zhc!RhYgvrmeGNsftr+(C<_MtuV$`5RZTf#5r=DR?gWG->#})#=(td%C3`oO+2B7im zUqY}&a_QNTn?s+?=mNXiREN%x_=(H)L|DtYPY>SR3pQfBOel7G_jR_{!9`dSj8Up-`JgcB;=Oor)U=_EVjF3C5{Sqh8cq=~bRjoBpoc$kJCgtTyZGSpQ4= zYi$6b$-dGmuTDF&@amhV?cU05g(AZV&v2$4m&j_~GZk;&keSO(@LRESRZ&p`dV*6w z2$em~p*8yM6j;SYorw`M5K2mluJq7P5Yn$VtZj8DEs2Zk=O@4T&Q}>~f31Z{uk}`E z{Dp{KObh1kk~~MfLUod72{Pk6G@T$_0_N??lOrdR=Z;VV#m0l)&@hz{Z?)@sgImi-&i1@95g53rON83v!yVPDHRU*Mzc4yZ(-Fr z{8{WXmIJf7jeswk$;6s~Qac6QyM3W&`}m#gRt=rr95A+Ad&wSAgvXZ|F))rBJVJ5W1CsjN`QaOzct2ocq#0!v zmj#075)C!3oS>&N;aHS@<+c>RHL)8j^p)k(8#7$LEx!1g_1^02!4_qA=;uhKW=+ix zGX%+vBMiRiF^^jm{mdO(?GdWJ#unO#_F^7mhT8)s(z_WlwFyJ#Xh)k5+RG2f;LC*K**1dr`#}~6A=0B=I&V;%zDA1)d@G!X#Rng)7G*2k8Kg447r0ox> z5NK`d(H-afBwo9feDOUi>;BbPsu!2|=@g=3j*PY}@YrOb+SX6?#Yb2xaaK!?>SX1J z_!VsB`2n1=wwSftkydm!39|-1?c%Epx?TO<(#GO~I&{f4+)XwRk<7RQ1~5>QcKH|D z?!}j1ueO0Lk;FZ{k4FA_(S`Ot0w~tl&m0duID*f6RY#bkw||o;kZ# zISYNTb|{~|X$m$Q-Jv#uxyw)eM0gIv`V#wOAp&Vv@>X4_tSZ&L#juM@$S9 zx_X_tLh<_^-F;LAQ09s@sPb%PMTrcw*HUV0P=RYSlM&AXEOI&&R&YCm_S<7DRBx^L zA^R^iwW+LMk(r*$Pq-fKU5X@=mQ=`ErO30H@@&qqnI7zJcrbSh+H<V ze&7Uli0xj@WrW#&-9%*FP~kPYF_YYM_hs5~|ExMynQ%qvq`leRB6W0yhC@pCb8>_P zlf=F~WMv_u*-DV=UaVu#2rlzK{q8D95VwZrfV?gj@rSNWXFvktUq)V5+YrlxwX302ae(;aG4e>L-M@3J+-f3IT{b9l!kg*2M zC1+ND9}6m^()LE87Mt+^Q|)!y#suc&v26C=0W88%a{?)E8Yvo@kM&KNMaOst#|-_CbUTm}WS@-c>nRb;&z^ zYr)+IE$1=jov(CZ%3uR+`~NI>1&Gs6W(jaamjcN$a`2!*nO}l|b%?)Q%%UWzw>A`C zR@px(P*7j$TK?jbv*%x)e^|jcLsv}aF(Z0=7(%Oa7+1wY>{B>d+i&ZA$}k(qgZPZY z;VkW~8eWnU&HPIAbco?&tc2O1$6=7n{u|^Y*nXoac{o1W-6aXfy~KlNbJfLoq~6;+ zDYmnv--Fhqrl+UV#k@_(1=gWNtqhyVKN=9CZ-{Ohi>e=~bm4IKbhM%%W zW8oXE!rGpV7Wt(_^4nndH1_imheaWzDi|I})9ZVZ9>pN+P%dVc5wG`Ze*4`@rjn1^ z`ln(;vPBHQUb}y8S>=8q__r7g+=z$>!pReVB0@XKchAvyGjLQs-u>+w%`frV4FeIG zj=7n~hGrwx*&5aHy(7X$bDZ7YhcP%(*>G^lAYMK;qG~V8Jz@b7oNg;IA1z$9@TbzW z;@I51@Ekef#qbxnG$Y8Z%bm~ibZ=4#%yKr%#b)CDrfKN`ujIY?tA4h9)i~dZ4E;ZM znvb$n2)zn$Wx&zlW%mJZDh28ox$@%`w3i7YFepXUChw}$UXKI=-TM51`M#FH=tdr*mQ!c=aB1296Lu>iTTKZWss0f z5~ihdImPN$aTle_AdbYC^31}_^EK|9R&l#%3hbx;8vJ+Gp^tm{9JDILu*1PW!rh^Dn9p<)h#Sl4kKM%nm<+!ESSk* zC;lLNT$fgr-!+{aBsSx$41b}yy6o>r3F#1&iv3cfY2N<+`0qJ+>=&Qxs}JOEkD?^l-F5i`t5+zNuvJf z3Fh4$mNqiFXL-aq4U4K@Ae$fq-TDT`rvrx;gqx96w^*@s=mcthCaIyPe(w)6kI{EqV10tcShHU9eeAPs)s?6#vrq}>y3FeTJu$Udha+z zs7}rmA@yR(L&>35sNjQqrw}o^)UitMU!5g6nnG)(tgst!^`FKJEzI1(d@j_w@;^hr zgYxlIRYjho4U$bhczfq&YySCqCE(5_d>l(4tk1v9!V7PB%Vx{QO=G2NC@c1%3rEzw zN<6i?h;CJX>h)kn49Sr)g#Em6km6ESP`1qc5C3ZHizN>r>V-fSS=X1nT{+Thh@kC! z(H=PlqDt7V6gOYezXUK-dretz!1?IUD6&eL2b!4=9h+HUO&DYZKMM>|YhlEEg?q?S z^XT4$2Fd|zT=x3U#L1|F;-#`to-Y6hiYkWdO=rRC)meY72pIfl`3zEGDU8($iWR^K zI$nq80aSJII<;#W5Pj>^_T&013BJ*O89Uoq z5>;Paa^E}xar^r=!pexg&OTM8wluk4R~Ru=)Hgk`Y#i_$jk{jc8hx}?(dW*X!l4vs z6_%$s#duJJFmaFc-5#>v6Yea=I~)s_pXGS>Tkz?s+WS}>Qp<9MappMLXpkXpSM~SmH6u)`Z5>o02kJs;w@KhdiZ3}29y*xr|6tMo zBHzGic+b+dTd!xOJ;p{Rguh^corJ;K?R6daayQKm+0rf7|AXg0qs!R9eS7t4{G=fs z1$=?kK1Ih=gEkI>@jgXDWHZt*C7FUEWs|u^pE3Z``^K|1KEC^sbN*4nQUfRc_AyE0 zn)?RrGjgPkzfE~_s!rDB!fDsV+*|kEX4+DyS#8%!cshn;s8svwBXSsDGX2ZRa0={* z=`p1F{zD17*Rk>Uk_cw3t5j=9-d6$}MoM~z{v{t^M!g75-+o8_XkP@CZWUQ2z!^26 zCNOu~hgrrK)y>bgqb{`Q_1^zrG4;cGarP!nb4E~(ZKWc`LVeEq;IewVneLp^ZU2+% z95PgN*M5v7Q;ZlGvM#`&u2NdHm%&gZ{bZM5wBCp&?HeZhwU87wyT_z!n4z+1?=RvXZ^72d*%+R1s1$KbAFtR|= zw;MEq=O7pMIKpFwKH6$OOszJAf<_Z<1)36cB>D>|Z6$gJL~jH`n3MMou$#Si%rDAu z4pSkJspG|^CJ86vg6kkfXsA_`8@8iOryOe!Qhn8SV6}mPlof3=WJRVqAr_b;e->`Z zMR(p|K|$L0^6;u~USxg#B6-ZNc%E1dv*^P=|2k*^NOBni#G%9Y?##{=)8KZwh85OL zSBG9|gb|hdmY^gn(ziY&O5#@I?W)W;361Yb^VQNpz0A7&^(7HRAsUvw#)fvhocvja zLxV65J0_$>&cVRctJFsn^qLos^tG`+B0_gQ{NeOwKt-!C^gGFufdtPT*Vi>l#X1|V z2XxsAcixN)Ekq=a##_^=k_^BFH5_zpvPDRP>u6+3$}i&b zy0@FdzAHw?i9OqnlTts_w5D@Nd#eM)KKEuN#m{|AJyscxa}(eA?z4&4yvXo{OBS65 z-?gW;<+;+ntM}U_yTmHm6*2zj0Imj<&ZgE9Wj|gfsXhrVH-c0p$7HXnR8bxDYOi z=_r3FA~u`L&2;Vir8}P3)k|@c?sK1U@&iWo{HEXcoy>6wQSuJ+b4l%aTBuigs&k@Y<2c=S3Ef?p zH>ki4yDuXdo_eu>X1{E$g(Q-u#zVXN^&%70guoizo7x(kQ0OZ}H$O9UB}(FaX8Ct1 zFpx~}EbHf2r6V;x=@8GH$C2|6*?K~?LrtMYd^bw*WYXhA z_))@RMH;nZedW3+qfWbv<|_#BYOxX^rhbN+!za)|!|8K*LRs(R$O*2SDM{g9k7e{u zN4VIdi}e#0&h?sBxu$>Yy%)j(k1V2fuhp8r!}gfF@b;F?U`6}YnnMh1&sSU&lR^?# zu!61+lGsuFEfDraX3+$QZibCbKzc{75G^T7@WZSQ)j5898G1AOXB*H*TSd`f<`IK# zm1%&t?i|2Z-a&r!pJehzg@!awNp)R)aa?q_SqGrxE5u+T#f?K2;GAHV?O&>!W@Q*k)7=g2vDW+7K zbyY9i{|nOF*SbMYoRQSAbSH2y$bE5(@d6xKxcF#@TE~X#3o=;`0sc!RupdRmQsML? z&>SCwS{FOpSr+@6Uuz3m`hj}(^g`Jz|6?({!%WVJn$H|ugxW+x-GEA?J&U^ugj3Nb z;65~)W<}iH2PJ@st8LtLfSOLXYgj=9<;?ih7rq$bXW9J#!B8!Wu6#U`A$wlcoC*&` z_9Js~7%m79#+edeT&P`@_Ng@e&5J+pqpx%31tAF71)pcz~-yJ>P5yX(nuM4;bUHDa8E(~~l{j~JeCGkX>nHJDpgSf&bTHEf)qw8{Q~CBPEVen|MW2P3vmf`8X9-g|>>ddp zcgfjbl~(?3Wa*NzQH>4nsM$3}Ul>pX1xC0oF3TZXe7=V!9!n?WgvH|R zpbruczmB%z=zkZ>=1R|gXwGThLELqD5KCUhtiRGT*JwKIvzbzV%ZU!e!VcNHSSX3> zObH|oohc8nvQZ2}q??C}@>!fe3gH+HF@4(qWqi>;ag~md#D;cl8&gQb^?2a@5cikT z=7r78@&5gV3Ggc9f=<<8v~yz`NcEGvbX1V_`IL(&+Z>LB zM~$ok2qXzod@1$TEl*U~H$V5g$er{Uj^($sWb7Nr{gsIbE(`$LRGECTOraXiU%=uq z0zvpi1S%)RxTjzoVcR4#10)fs()4Mtsa@e?9j)Bk!LsYyXIZga2q7d%`vQE!V@<1Y zmkpH3LeXJNO9f7l>F84g;huc=4nk(UnU}RLZmYk2TtB#lv34K(?8~gyx-mN%g=U44 zOPdr_!j-;IEbe|l9-buuKEy^Q9MLjSKG$S6dz)!U_32{1)N}L)3+COmlg=nY1@od$ zJ<0z-B%sisAR1yh>z-RfQQb6M4i-d#vxvb~f69M{JLPZv1JSCh1$gQ*LxOF-tH9!k zbQ0ZW)S7)qCSF|=2`q_A3}OHBNBueZwTTz^ar~gz#2KA74&&D)KHt~m4F_nK<^*7_ z!!pN@xiGkq%>1N(rNxw$zu-=1t*IpAy$ z4~dD0w%9;E?(greVWZ3(o9ux`elM>Rek#0 zO=#-(4p5B+wFzlEU7^k{3EdL6sIp|K*>xrriI`}E8ze|z-$YpN`^_teL_7P`%e>IN z7tNiH619P+0Q1hBR|W#POOta)1|LkIRtgz zMJ9VOxXN#o)mlXS=u%`Q>~PBuKEmOWsIuQRp{y%!ty{fEyL0gV)$LQeL#pqX3L@SR zJ2Gb^E9+KVd?;joVOXlGie3?z6>(>u(i!(qGz(W( ze~^xj&IRF<98ypEis{Y_FoHn%C0bW(XeF#Lj=2WUEBqKNPPFppEH?_a3}-h906X}C zSYKcZFU`Om5YlWhh@ogzCn3NvuM~F9jOX|xe-X*!YL+#ceh_tJoHXz`aTnvSrOAZ| zOtdGz?QdT!oAJr3(XL2G(p%2X4{xEohU&vd_zQ(U%ihHOlKPWnb$&YYhx48?|R++>`5?sxvM?!;ru|9 zZ#nwuTK^S%ce<+ggdJBE&fRrXN7O!{nu`%q`M{2Ef_+IRad2cf01P9pST9AOK>y75c!9}~)Et^6$`&Nm{wzWcm4c0j9DF!xJTpGrMp3esI4D_iiDe`sswXSu{dQZE_`^A11 z?Z@Hw=65mVu^%X`>;$mciK}XiZ{xw7I_!t)S00^JuxdCXhIRO~S*lPS(S^je`DH4E zxbKNs8RL`N?gCQ@YSOU=>0FE#Ku#DRO7JA&fu-X8b;3!^#{=7`WsDXUxfUsE(FKSQ z&=N`A7IwLq%+vt(F;z+T=uZNl=@K4|E%p{p^o5(BGjsE|WOR`%8+XgGW8xJTFJc4L zVY#L`OdnSM{HyS$fX1)3_JuNNH1aDsDqi>CzCT5=kY5zV<~29bX)c^I8R5n&ymHkx zj(QC4t#mDK;2xi8O%V;C{HqDQeM64=b4@sa*N_K0a&ro4+8LY6cFHz< ze|!g}zF|tDrP=`+U7KwKl20gdW1%!iN>1=uxA|NZJ2peruBOj?RBPb~8G;s6xIi6- z?_odhafsxoxiBf zwZZ)c*)FLc0#wE~bXw0TPBYl+h9hs|DYr_B4LR_YL@S1hQs=p zNEh%_fUvWZCbJtaF#kP5=(O#{8|g&Kmz1&8{@Lufw^DhtvKx955~aqxi2C=)Z-!Kd z+m-u+#^U4(HYn6a1w652kO0bYBt&goyx(n?MR^kI+{Q?0Y{G~W2) z0dS3fuJ?SU(6ZDp=kUley%PK}K_;YQyK|U|?7t9SHiyIfpT4a_kUVIhH4PSaj@3mo z`z}|mHhx1Pq?@(3vTBb5HTXuFAzFZEt0D-fw_kd=XvwIUh3VXTm{wbDA~cESd5cI1 zd>6=&AvG3yu+)`9oxmfrDQ(1fzv(_0l?bp{a364dXLRRBI8kBv!KsL;brY)#E3`o{ z3TlWUsS0{Voci?6MejccG9x_KiqN>So*1{25r6BSl9jUyR}1TgXBLL7Pr6Wv~Nu47;fbiU7TbL}>qmtl36YSZ() zVf@nqW(As~#`@bIC+AxSw!O5Pocf&rYaCFm?Jd?XR)p#@{!|5^Ws@wd855)mI^8y{ zws+VvGXW6%xoj@JkGb=~%oJ~7m6+uhOv?bH+jJJ~eFgp+}~*^C+3>R-MY!IZQoabCh( zN(T+z@Oyc^C)WqQESmh{d!!T8zS(!wX=R#hEKxMXy(eg zZ+Cwm1a%?;RH$h2_ws|nRjn8ZY!>3gn+6Ep4xT|AeFox7!rac2Lw?jsz}JqPE?5JG zok0}q1P;cuzs%Yrze|&d$oTr<`Lx{fbq2OV=!3v-ODq(n?|WxuhtmwJBIoW^^FB+D z-?Ok9HBKc5@)L(W&vmI{prL?4^OE9TR)bELS=<>*w%&aKjzi*@;5#P3moG@dm{Eke zhE#Is;&=o|{2GWai}7LYEI+gmc^Kj4K7w7n)+9godg?yB2?xs}pF1<*!Sv?D~Uvbkgs9xx9s#6zBv9l@ox>d#H6eqw^KZO;Vg}h!q zI33^$4}yF*q+q{DsJsa(SsV!YQ#zi^IF9MQV6i{SiN4dWWCi%YQ+hNc1r!^+<(YnB zG62-D`M3w3Q2;@X{S`n`{QO>migDpz0FK`->sYDOESs6u>-~<}_XN_6><2g7U#XC{ z$#Ig;n{_yEMnlvx-lP*;ts#DHV0r8j518>~33?Ak#jocW>uk>6V||p7{4rov#RS9c zdPD6r`qF1om9r!zS4Jk1>7fn#GCnmD=JIt1Na`X)=*LP7R!3XATgk`;&U*P<(0d z9p<0T&eYqQ9jot39FxpfuPSPYlfQ$s-*;+c1KL+cHIVcG5`H~^Ryu1Hk7%Nf$TCwR!SzG31@NHpm`mcp8v!wyWM49TjTxASJ-8JP*MTHLC}hF==PUOh8kaaXeGFGd<|e29vSDaS ztPeu&zv0^wN}Hahi`$pcDs~FVt2F;K!q}q*Y@{7i#stWfU`u2La4aerBKhV`^zG~j zJWvtZpcHIP7x*tfLSQcng6D(`HVp4=LWp_0Xt=2wEHjK)!DSz_Z?5J@>awRyk?azj zU-kdSs~cp))*pfJ_q7u`IsCq8F|OShB~D56S(Mwwlt?{yURE7#eI&WcpVq(@9Fd~g zeUiD!a4w51Nj(YzLnau+O3MDub|?loF0=<#jLztAM>PruE7yNDD0L}y=Ayuc?^?Ni zf~%GK=iEhn2}xKp7GonJx!JpDmDsco$|$XtRdUDwbM9$9s7x9-of2nKNj~?b@UOKz z9{`=Irz^ba-c&1vSQxSh;I2`cKc8-4)aCy%#bam;3_8vSJ-jw`_}lyukEC~z00EbC zI*dU3F21A)dSZr{qA5QF+{a%D`h#?8o%M?)*hWxuqnQD(TpcmfNq&UN$BmB)0!r8) zxno@Q?$_D&*4(rW6b+?-Y^5|*P`DHmJ%pI<6*yP)o}2^?>d7P#bd2j=vvx2mfLW@R zQLD`%buR*}nzNYNf%68w-D$7%v|=bXg1mYrdZy~}(@RRZ-U+Gx=nmCjVxr5Ag# zLw3R29-MHJl|`mRxj#sv@EfyR#-q>BE-XFEENbV$#dWM?!VjU8~kKZsd@G=HPrI{HiqN&j<92*-3$^M*;n@rG*i! zvi#?j;lc5w>@+r!6*CVUrN9as=S3?(ZBT979$5R#ZpPm?2VjIyQcEFp9orGR>f;G? zK<~FiYY6ow-&}|v7k?+03TC++so$)2~rN``u z>N%j$AbNQLX_!evzG8abf=15260vIXdz7K^a$YS)iw{@x5<|Rr#ii|ov=LJ{eu>dZYe_ip$ZuzvRu1dpjQK1BvP zH~m#t=2_wy>9+YkdNF-z` zQ*#7=^r%R*pIi2AI`>n9>(QJVE1k8?Ilav<)NUjW^O$}^yZZ{_Uwn!4Fq1`aslX;Y zj`XDIm`E1sz|wShA=?a@ZGKDSMU#Z3$E!1nZ)g^Eg3ZDoSN6@RXrGVCHvMIauS7d> zuJltXf9)LdTWdF!n%-iA9b#2$W#i??K)zYho^((ZqluvhAr@{H{diy0%@-~VW zKYC|2Ma)2^=skdLT@ZVqJfiCDqS@~qIGexL(BKy6Aw9ch0hoHN&E+m3*uka9+AIh3gTWdSe~W({-&^oFw`!j7$DcsF$7`pO?kRMK<9h=SV?cmyJIe`$4|zoI(6u9#qY9zM?#zNe^!Dl2>Z^dH`>`wSY# ztU;V*+g0R0DH6EnJA$U{QL&T~&s{`smeC2I-5mzv=v$l@iF;yN0hMibU=CG^e>J;+9k`Si9PzLaj$>}QKI6lWmO_o+_( zmhxA*0|-Na`+*J1qEMIXZf9rb#;pcOw>EDeDjb!|GumQ2!1ac;YqU|X;F@l1_lemzTN0J|U zFJF(kO21aHg)*KfuKT=BA{VDkOvlx(b{f|A9D69_BHUm#S$F>~`Mt@GesjLp3;reY zP~q>6Tt;`XkjqV?i7lqPbWGh`y<7dq<}pDHl-dDA4QG6`QDq)+vq_&HfW!}P6Cp4d zt>Qnli5ri*I1ILEOGD~3Y!@2^Jmcy1xDXmKolC?at}_6;neEfca0rLHT}NLpoUYh` zDbCtfZnYN&>}m-(F{5d1=)bBuZ?OcP`GmsQV@kn%JMJUIep`Avon#8=ATpEo-@hg& z12f-)R=HCD%pUjvbWa|P!}u)=wInpZG*LHKrZDMeC>Qils^IyY)x;kDRs4c3!DDOG zAptSsf#1X>kSli|Qka@S)6O4un-2aKL?bcV;$*>KSxHovjrfZ^-+c#>;(42yj71K| zzRyFiLrwv$rPcNA{mtv=o(*JDA0kS93>OE0D{KMJzLk$cc_5dCLWnJcFJd6_>BpE< z?aW9;^!;arQcIjloW&YL+~MkNO&a>N=pmhg>{SM<@`a&VeUA`ay*P@R$_+WS2%r?_ zs&Z%c`>ie+%!I=Lz>$9$7a`-`hoc&*dl60^whsaQ;~9~@JYn1Oc_bmgVVyAzUOYgZ z#j{`#D_YZ)(wa5;qzR#zo4a|-ANJjBB90r4Iun3*BkMxw_Ti>SjhktsmR|BPCLt>9 zZ_3eQjweI*-8+HNt)$9^s|+10w@sU!PY{`#BnF!ULS=#{k0Zr5`yOS?p8PfWbKT`6 z@T+PeRJ4`fj5t8bMs)0>o9|C>mBTlfQ*nFG#Rri-Q7}E}+eaz`LmO!`Y_pHkoAruu z`&!5VNnA3IG$}Pz)V&pt&AF!$E{J-;or3vWv3&Sl&9KzG+ae73Zf}=aP*SCI1{?0T z9SAC)W(?DSKOkcmW$(K5Bl?c@(5#>J#j@eq#ctX~$TIjkl>Wrfv%Ey+bl1Z-v?NxJ zwZ9!ae-MsHPUx&_W22?9$mCE%&~lzVG?hDXM%~gXGk+Q!Jf0BspkMWxy;^!n<6JIrSYjv z6F%~$8)0^qbUho9Sdf97b_n({$;|XH9-RHrohHuPcro@03KEPFejN&q?&nJFoIQY; zSI#uL6>2^^yOR!51OLO65xGas55dPG;3=uQ35ZYW04#+~byXQf^7Vq`G z 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 Pe7HEdAEg|=c=LY&YVNkY literal 0 HcmV?d00001 diff --git a/clone-instagram-login-Refactoring/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png b/clone-instagram-login-Refactoring/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png new file mode 100644 index 0000000000000000000000000000000000000000..13b35eba55c6dabc3aac36f33d859266c18fa0d0 GIT binary patch literal 5680 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 literal 0 HcmV?d00001 diff --git a/clone-instagram-login-Refactoring/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png b/clone-instagram-login-Refactoring/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png new file mode 100644 index 0000000000000000000000000000000000000000..0a3f5fa40fb3d1e0710331a48de5d256da3f275d GIT binary patch literal 520 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 literal 0 HcmV?d00001 diff --git a/clone-instagram-login-Refactoring/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png b/clone-instagram-login-Refactoring/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png new file mode 100644 index 0000000000000000000000000000000000000000..2f1632cfddf3d9dade342351e627a0a75609fb46 GIT binary patch literal 2218 zcmV;b2vzrqP)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91K%fHv1ONa40RR91KmY&$07g+lumAuE6iGxuRCodHTWf3-RTMruyW6Fu zQYeUM04eX6D5c0FCjKKPrco1(K`<0SL=crI{PC3-^hZU0kQie$gh-5!7z6SH6Q0J% zqot*`H1q{R5fHFYS}dje@;kG=v$L0(yY0?wY2%*c?A&{2?!D*x?m71{of2gv!$5|C z3>qG_BW}7K_yUcT3A5C6QD<+{aq?x;MAUyAiJn#Jv8_zZtQ{P zTRzbL3U9!qVuZzS$xKU10KiW~Bgdcv1-!uAhQxf3a7q+dU6lj?yoO4Lq4TUN4}h{N z*fIM=SS8|C2$(T>w$`t@3Tka!(r!7W`x z-isCVgQD^mG-MJ;XtJuK3V{Vy72GQ83KRWsHU?e*wrhKk=ApIYeDqLi;JI1e zuvv}5^Dc=k7F7?nm3nIw$NVmU-+R>> zyqOR$-2SDpJ}Pt;^RkJytDVXNTsu|mI1`~G7yw`EJR?VkGfNdqK9^^8P`JdtTV&tX4CNcV4 z&N06nZa??Fw1AgQOUSE2AmPE@WO(Fvo`%m`cDgiv(fAeRA%3AGXUbsGw{7Q`cY;1BI#ac3iN$$Hw z0LT0;xc%=q)me?Y*$xI@GRAw?+}>=9D+KTk??-HJ4=A>`V&vKFS75@MKdSF1JTq{S zc1!^8?YA|t+uKigaq!sT;Z!&0F2=k7F0PIU;F$leJLaw2UI6FL^w}OG&!;+b%ya1c z1n+6-inU<0VM-Y_s5iTElq)ThyF?StVcebpGI znw#+zLx2@ah{$_2jn+@}(zJZ{+}_N9BM;z)0yr|gF-4=Iyu@hI*Lk=-A8f#bAzc9f z`Kd6K--x@t04swJVC3JK1cHY-Hq+=|PN-VO;?^_C#;coU6TDP7Bt`;{JTG;!+jj(` zw5cLQ-(Cz-Tlb`A^w7|R56Ce;Wmr0)$KWOUZ6ai0PhzPeHwdl0H(etP zUV`va_i0s-4#DkNM8lUlqI7>YQLf)(lz9Q3Uw`)nc(z3{m5ZE77Ul$V%m)E}3&8L0 z-XaU|eB~Is08eORPk;=<>!1w)Kf}FOVS2l&9~A+@R#koFJ$Czd%Y(ENTV&A~U(IPI z;UY+gf+&6ioZ=roly<0Yst8ck>(M=S?B-ys3mLdM&)ex!hbt+ol|T6CTS+Sc0jv(& z7ijdvFwBq;0a{%3GGwkDKTeG`b+lyj0jjS1OMkYnepCdoosNY`*zmBIo*981BU%%U z@~$z0V`OVtIbEx5pa|Tct|Lg#ZQf5OYMUMRD>Wdxm5SAqV2}3!ceE-M2 z@O~lQ0OiKQp}o9I;?uxCgYVV?FH|?Riri*U$Zi_`V2eiA>l zdSm6;SEm6#T+SpcE8Ro_f2AwxzI z44hfe^WE3!h@W3RDyA_H440cpmYkv*)6m1XazTqw%=E5Xv7^@^^T7Q2wxr+Z2kVYr + + + + + + + + + + + + + + + + + + + + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/clone-instagram-login-Refactoring/macos/Runner/Configs/AppInfo.xcconfig b/clone-instagram-login-Refactoring/macos/Runner/Configs/AppInfo.xcconfig new file mode 100644 index 0000000..3fb7d2f --- /dev/null +++ b/clone-instagram-login-Refactoring/macos/Runner/Configs/AppInfo.xcconfig @@ -0,0 +1,14 @@ +// Application-level settings for the Runner target. +// +// This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the +// future. If not, the values below would default to using the project name when this becomes a +// 'flutter create' template. + +// The application's name. By default this is also the title of the Flutter window. +PRODUCT_NAME = example_widget_testing + +// The application's bundle identifier +PRODUCT_BUNDLE_IDENTIFIER = com.example.exampleWidgetTesting + +// The copyright displayed in application information +PRODUCT_COPYRIGHT = Copyright © 2023 com.example. All rights reserved. diff --git a/clone-instagram-login-Refactoring/macos/Runner/Configs/Debug.xcconfig b/clone-instagram-login-Refactoring/macos/Runner/Configs/Debug.xcconfig new file mode 100644 index 0000000..36b0fd9 --- /dev/null +++ b/clone-instagram-login-Refactoring/macos/Runner/Configs/Debug.xcconfig @@ -0,0 +1,2 @@ +#include "../../Flutter/Flutter-Debug.xcconfig" +#include "Warnings.xcconfig" diff --git a/clone-instagram-login-Refactoring/macos/Runner/Configs/Release.xcconfig b/clone-instagram-login-Refactoring/macos/Runner/Configs/Release.xcconfig new file mode 100644 index 0000000..dff4f49 --- /dev/null +++ b/clone-instagram-login-Refactoring/macos/Runner/Configs/Release.xcconfig @@ -0,0 +1,2 @@ +#include "../../Flutter/Flutter-Release.xcconfig" +#include "Warnings.xcconfig" diff --git a/clone-instagram-login-Refactoring/macos/Runner/Configs/Warnings.xcconfig b/clone-instagram-login-Refactoring/macos/Runner/Configs/Warnings.xcconfig new file mode 100644 index 0000000..42bcbf4 --- /dev/null +++ b/clone-instagram-login-Refactoring/macos/Runner/Configs/Warnings.xcconfig @@ -0,0 +1,13 @@ +WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings +GCC_WARN_UNDECLARED_SELECTOR = YES +CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES +CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE +CLANG_WARN__DUPLICATE_METHOD_MATCH = YES +CLANG_WARN_PRAGMA_PACK = YES +CLANG_WARN_STRICT_PROTOTYPES = YES +CLANG_WARN_COMMA = YES +GCC_WARN_STRICT_SELECTOR_MATCH = YES +CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES +CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES +GCC_WARN_SHADOW = YES +CLANG_WARN_UNREACHABLE_CODE = YES diff --git a/clone-instagram-login-Refactoring/macos/Runner/DebugProfile.entitlements b/clone-instagram-login-Refactoring/macos/Runner/DebugProfile.entitlements new file mode 100644 index 0000000..dddb8a3 --- /dev/null +++ b/clone-instagram-login-Refactoring/macos/Runner/DebugProfile.entitlements @@ -0,0 +1,12 @@ + + + + + com.apple.security.app-sandbox + + com.apple.security.cs.allow-jit + + com.apple.security.network.server + + + diff --git a/clone-instagram-login-Refactoring/macos/Runner/Info.plist b/clone-instagram-login-Refactoring/macos/Runner/Info.plist new file mode 100644 index 0000000..4789daa --- /dev/null +++ b/clone-instagram-login-Refactoring/macos/Runner/Info.plist @@ -0,0 +1,32 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIconFile + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSMinimumSystemVersion + $(MACOSX_DEPLOYMENT_TARGET) + NSHumanReadableCopyright + $(PRODUCT_COPYRIGHT) + NSMainNibFile + MainMenu + NSPrincipalClass + NSApplication + + diff --git a/clone-instagram-login-Refactoring/macos/Runner/MainFlutterWindow.swift b/clone-instagram-login-Refactoring/macos/Runner/MainFlutterWindow.swift new file mode 100644 index 0000000..2722837 --- /dev/null +++ b/clone-instagram-login-Refactoring/macos/Runner/MainFlutterWindow.swift @@ -0,0 +1,15 @@ +import Cocoa +import FlutterMacOS + +class MainFlutterWindow: NSWindow { + override func awakeFromNib() { + let flutterViewController = FlutterViewController.init() + let windowFrame = self.frame + self.contentViewController = flutterViewController + self.setFrame(windowFrame, display: true) + + RegisterGeneratedPlugins(registry: flutterViewController) + + super.awakeFromNib() + } +} diff --git a/clone-instagram-login-Refactoring/macos/Runner/Release.entitlements b/clone-instagram-login-Refactoring/macos/Runner/Release.entitlements new file mode 100644 index 0000000..852fa1a --- /dev/null +++ b/clone-instagram-login-Refactoring/macos/Runner/Release.entitlements @@ -0,0 +1,8 @@ + + + + + com.apple.security.app-sandbox + + + diff --git a/clone-instagram-login-Refactoring/pubspec.lock b/clone-instagram-login-Refactoring/pubspec.lock new file mode 100644 index 0000000..e34e65e --- /dev/null +++ b/clone-instagram-login-Refactoring/pubspec.lock @@ -0,0 +1,476 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + _fe_analyzer_shared: + dependency: transitive + description: + name: _fe_analyzer_shared + sha256: "3444216bfd127af50bbe4862d8843ed44db946dd933554f0d7285e89f10e28ac" + url: "https://pub.dev" + source: hosted + version: "50.0.0" + analyzer: + dependency: transitive + description: + name: analyzer + sha256: "68796c31f510c8455a06fed75fc97d8e5ad04d324a830322ab3efc9feb6201c1" + url: "https://pub.dev" + source: hosted + version: "5.2.0" + archive: + dependency: transitive + description: + name: archive + sha256: "80e5141fafcb3361653ce308776cfd7d45e6e9fbb429e14eec571382c0c5fecb" + url: "https://pub.dev" + source: hosted + version: "3.3.2" + args: + dependency: transitive + description: + name: args + sha256: "4cab82a83ffef80b262ddedf47a0a8e56ee6fbf7fe21e6e768b02792034dd440" + url: "https://pub.dev" + source: hosted + version: "2.4.0" + async: + dependency: transitive + description: + name: async + sha256: bfe67ef28df125b7dddcea62755991f807aa39a2492a23e1550161692950bbe0 + url: "https://pub.dev" + source: hosted + version: "2.10.0" + 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: "3fbda25365741f8251b39f3917fb3c8e286a96fd068a5a242e11c2012d495777" + url: "https://pub.dev" + source: hosted + version: "2.3.1" + 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: "31b7c748fd4b9adf8d25d72a4c4a59ef119f12876cf414f94f8af5131d5fa2b0" + url: "https://pub.dev" + source: hosted + version: "8.4.4" + characters: + dependency: transitive + description: + name: characters + sha256: e6a326c8af69605aec75ed6c187d06b349707a27fbff8222ca9cc2cff167975c + url: "https://pub.dev" + source: hosted + version: "1.2.1" + clock: + dependency: transitive + description: + name: clock + sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf + url: "https://pub.dev" + source: hosted + version: "1.1.1" + code_builder: + dependency: transitive + description: + name: code_builder + sha256: "0d43dd1288fd145de1ecc9a3948ad4a6d5a82f0a14c4fdd0892260787d975cbe" + url: "https://pub.dev" + source: hosted + version: "4.4.0" + collection: + dependency: transitive + description: + name: collection + sha256: cfc915e6923fe5ce6e153b0723c753045de46de1b4d63771530504004a45fae0 + url: "https://pub.dev" + source: hosted + version: "1.17.0" + convert: + dependency: transitive + description: + name: convert + sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592" + url: "https://pub.dev" + source: hosted + version: "3.1.1" + 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: "5be16bf1707658e4c03078d4a9b90208ded217fb02c163e207d334082412f2fb" + url: "https://pub.dev" + source: hosted + version: "2.2.5" + fake_async: + dependency: transitive + description: + name: fake_async + sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" + url: "https://pub.dev" + source: hosted + version: "1.3.1" + file: + dependency: transitive + description: + name: file + sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d" + url: "https://pub.dev" + source: hosted + version: "6.1.4" + 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_driver: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + flutter_lints: + dependency: "direct dev" + description: + name: flutter_lints + sha256: aeb0b80a8b3709709c9cc496cdc027c5b3216796bc0af0ce1007eaf24464fd4c + url: "https://pub.dev" + source: hosted + version: "2.0.1" + flutter_svg: + dependency: "direct main" + description: + name: flutter_svg + sha256: "6ff9fa12892ae074092de2fa6a9938fb21dbabfdaa2ff57dc697ff912fc8d4b2" + url: "https://pub.dev" + source: hosted + version: "1.1.6" + flutter_test: + dependency: "direct dev" + description: flutter + source: sdk + version: "0.0.0" + fuchsia_remote_debug_protocol: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + glob: + dependency: transitive + description: + name: glob + sha256: "4515b5b6ddb505ebdd242a5f2cc5d22d3d6a80013789debfbda7777f47ea308c" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + integration_test: + dependency: "direct dev" + description: flutter + source: sdk + version: "0.0.0" + js: + dependency: transitive + description: + name: js + sha256: "5528c2f391ededb7775ec1daa69e65a2d61276f7552de2b5f7b8d34ee9fd4ab7" + url: "https://pub.dev" + source: hosted + version: "0.6.5" + lints: + dependency: transitive + description: + name: lints + sha256: "5e4a9cd06d447758280a8ac2405101e0e2094d2a1dbdd3756aec3fe7775ba593" + url: "https://pub.dev" + source: hosted + version: "2.0.1" + logging: + dependency: transitive + description: + name: logging + sha256: "04094f2eb032cbb06c6f6e8d3607edcfcb0455e2bb6cbc010cb01171dcb64e6d" + url: "https://pub.dev" + source: hosted + version: "1.1.1" + matcher: + dependency: transitive + description: + name: matcher + sha256: "16db949ceee371e9b99d22f88fa3a73c4e59fd0afed0bd25fc336eb76c198b72" + url: "https://pub.dev" + source: hosted + version: "0.12.13" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724 + url: "https://pub.dev" + source: hosted + version: "0.2.0" + meta: + dependency: transitive + description: + name: meta + sha256: "6c268b42ed578a53088d834796959e4a1814b5e9e164f147f580a386e5decf42" + url: "https://pub.dev" + source: hosted + version: "1.8.0" + mockito: + dependency: transitive + description: + name: mockito + sha256: "2a8a17b82b1bde04d514e75d90d634a0ac23f6cb4991f6098009dd56836aeafe" + url: "https://pub.dev" + source: hosted + version: "5.3.2" + network_image_mock: + dependency: "direct dev" + description: + name: network_image_mock + sha256: "855cdd01d42440e0cffee0d6c2370909fc31b3bcba308a59829f24f64be42db7" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + 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: db9d4f58c908a4ba5953fcee2ae317c94889433e5024c27ce74a37f94267945b + url: "https://pub.dev" + source: hosted + version: "1.8.2" + path_drawing: + dependency: transitive + description: + name: path_drawing + sha256: bbb1934c0cbb03091af082a6389ca2080345291ef07a5fa6d6e078ba8682f977 + url: "https://pub.dev" + source: hosted + version: "1.0.1" + path_parsing: + dependency: transitive + description: + name: path_parsing + sha256: e3e67b1629e6f7e8100b367d3db6ba6af4b1f0bb80f64db18ef1fbabd2fa9ccf + url: "https://pub.dev" + source: hosted + version: "1.0.1" + petitparser: + dependency: transitive + description: + name: petitparser + sha256: "49392a45ced973e8d94a85fdb21293fbb40ba805fc49f2965101ae748a3683b4" + url: "https://pub.dev" + source: hosted + version: "5.1.0" + platform: + dependency: transitive + description: + name: platform + sha256: "4a451831508d7d6ca779f7ac6e212b4023dd5a7d08a27a63da33756410e32b76" + url: "https://pub.dev" + source: hosted + version: "3.1.0" + process: + dependency: transitive + description: + name: process + sha256: "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09" + url: "https://pub.dev" + source: hosted + version: "4.2.4" + pub_semver: + dependency: transitive + description: + name: pub_semver + sha256: "307de764d305289ff24ad257ad5c5793ce56d04947599ad68b3baa124105fc17" + url: "https://pub.dev" + source: hosted + version: "2.1.3" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.99" + source_gen: + dependency: transitive + description: + name: source_gen + sha256: c2bea18c95cfa0276a366270afaa2850b09b4a76db95d546f3d003dcc7011298 + url: "https://pub.dev" + source: hosted + version: "1.2.7" + source_span: + dependency: transitive + description: + name: source_span + sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 + url: "https://pub.dev" + source: hosted + version: "1.9.1" + stack_trace: + dependency: transitive + description: + name: stack_trace + sha256: c3c7d8edb15bee7f0f74debd4b9c5f3c2ea86766fe4178eb2a18eb30a0bdaed5 + url: "https://pub.dev" + source: hosted + version: "1.11.0" + stream_channel: + dependency: transitive + description: + name: stream_channel + sha256: "83615bee9045c1d322bbbd1ba209b7a749c2cbcdcb3fdd1df8eb488b3279c1c8" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + string_scanner: + dependency: transitive + description: + name: string_scanner + sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" + url: "https://pub.dev" + source: hosted + version: "1.2.0" + sync_http: + dependency: transitive + description: + name: sync_http + sha256: "7f0cd72eca000d2e026bcd6f990b81d0ca06022ef4e32fb257b30d3d1014a961" + url: "https://pub.dev" + source: hosted + version: "0.3.1" + 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: ad540f65f92caa91bf21dfc8ffb8c589d6e4dc0c2267818b4cc2792857706206 + url: "https://pub.dev" + source: hosted + version: "0.4.16" + test_cov_console: + dependency: "direct dev" + description: + name: test_cov_console + sha256: "73519e8be3689d73f5cffb652c12c310acacf48379396d834da937094836e65e" + url: "https://pub.dev" + source: hosted + version: "0.2.2" + 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: e7fb6c2282f7631712b69c19d1bff82f3767eea33a2321c14fa59ad67ea391c7 + url: "https://pub.dev" + source: hosted + version: "9.4.0" + watcher: + dependency: transitive + description: + name: watcher + sha256: "6a7f46926b01ce81bfc339da6a7f20afbe7733eff9846f6d6a5466aa4c6667c0" + url: "https://pub.dev" + source: hosted + version: "1.0.2" + webdriver: + dependency: transitive + description: + name: webdriver + sha256: ef67178f0cc7e32c1494645b11639dd1335f1d18814aa8435113a92e9ef9d841 + url: "https://pub.dev" + source: hosted + version: "3.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: ">=2.18.6 <3.0.0" + flutter: ">=2.11.0-0.1.pre" diff --git a/clone-instagram-login-Refactoring/pubspec.yaml b/clone-instagram-login-Refactoring/pubspec.yaml new file mode 100644 index 0000000..b3637b1 --- /dev/null +++ b/clone-instagram-login-Refactoring/pubspec.yaml @@ -0,0 +1,100 @@ +name: example_widget_testing +description: A new Flutter project. + +# 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 is used as CFBundleVersion. +# Read more about iOS versioning at +# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html +# In Windows, build-name is used as the major, minor, and patch parts +# of the product and file versions while build-number is used as the build suffix. +version: 1.0.0+1 + +environment: + sdk: ">=2.18.6 <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 + + # The following adds the Cupertino Icons font to your application. + # Use with the CupertinoIcons class for iOS style icons. + cupertino_icons: ^1.0.2 + flutter_svg: ^1.1.6 + +dev_dependencies: + flutter_test: + sdk: flutter + integration_test: + sdk: flutter + network_image_mock: ^2.0.1 + test_cov_console: ^0.2.2 + + # 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: ^2.0.0 + +# 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 packages. +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/ + # - images/a_dot_burr.jpeg + # - images/a_dot_ham.jpeg + + # An image asset can refer to one or more resolution-specific "variants", see + # https://flutter.dev/assets-and-images/#resolution-aware + + # 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: Billabong + fonts: + - asset: assets/fonts/Billabong.ttf + # fonts: + # - family: Schyler + # fonts: + # - asset: fonts/Schyler-Regular.ttf + # - asset: fonts/Schyler-Italic.ttf + # style: italic + # - family: Trajan Pro + # fonts: + # - asset: fonts/TrajanPro.ttf + # - asset: fonts/TrajanPro_Bold.ttf + # weight: 700 + # + # For details regarding fonts from package dependencies, + # see https://flutter.dev/custom-fonts/#from-packages diff --git a/test.rar b/clone-instagram-login-Refactoring/test.rar similarity index 54% rename from test.rar rename to clone-instagram-login-Refactoring/test.rar index 8f18d11be6fb790ce4c05d7c8f2a809466364761..f6e184df7dccca3b5618eb3420498bcd0c424973 100644 GIT binary patch delta 9736 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 delta 7649 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 Gfd2zae|s+g diff --git a/clone-instagram-login-Refactoring/test/account_page_test.dart b/clone-instagram-login-Refactoring/test/account_page_test.dart new file mode 100644 index 0000000..c3ce248 --- /dev/null +++ b/clone-instagram-login-Refactoring/test/account_page_test.dart @@ -0,0 +1,2128 @@ +import 'package:example_widget_testing/app/data/models/profile.dart'; +import 'package:example_widget_testing/app/modules/account/account_page.dart'; +import 'package:example_widget_testing/app/modules/account/components/account_name.dart'; +import 'package:example_widget_testing/app/modules/account/components/account_stat.dart'; +import 'package:example_widget_testing/app/modules/account/components/account_tab.dart'; +import 'package:example_widget_testing/app/modules/account/components/grey_button.dart'; +import 'package:example_widget_testing/app/modules/account/components/highlight_item.dart'; +import 'package:example_widget_testing/app/modules/account/components/highlight_list.dart'; +import 'package:example_widget_testing/app/modules/account/components/profile_buttons.dart'; +import 'package:example_widget_testing/app/modules/account/components/profile_information.dart'; +import 'package:example_widget_testing/app/modules/account/components/profile_pic.dart'; +import 'package:example_widget_testing/app/widgets/post_thumbnail.dart'; +import 'package:example_widget_testing/core/values/constant/post_json.dart'; +import 'package:example_widget_testing/core/values/constant/profile_json.dart'; +import 'package:example_widget_testing/core/values/constant/profile_tabs_json.dart'; +import 'package:example_widget_testing/core/values/constant/story_json.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:network_image_mock/network_image_mock.dart'; + +import 'helper.dart'; + +bool checkError(int index, dynamic expected, dynamic matcher) { + if (expected == null) { + debugPrint('Account Page Test-$index failed: expected is null'); + return false; + } + try { + expect(expected, matcher); + } catch (e) { + debugPrint('Account Page Test-$index failed:'); + debugPrint(e.toString()); + return false; + } + return true; +} + +final Profile profile = Profile.fromJson(profileJson); + +void main() { + final states = {}; + testWidgets('Check if Account page Appbar is present', + (WidgetTester tester) async { + FlutterError.onError = ignoreOverflowErrors; + + await mockNetworkImagesFor( + () => tester.pumpWidget( + MaterialApp( + home: AccountPage( + posts: posts, + stories: stories, + profileData: profileJson, + ), + ), + ), + ); + + final appBarFinder = find.byKey(const Key('app_bar_account')); + checkError(2, appBarFinder, findsOneWidget); + + final appBar = appBarFinder.evaluate().first.widget as AppBar; + checkError(3, appBar.backgroundColor, Colors.black); + checkError(4, appBar.automaticallyImplyLeading, false); + final appBarRowFinder = find.byKey(const Key('app_bar_row')); + if (checkError(5, appBarRowFinder, findsOneWidget)) { + final appBarRow = appBarRowFinder.evaluate().first.widget as Row; + checkError( + 6, appBarRow.mainAxisAlignment, MainAxisAlignment.spaceBetween); + checkError(7, appBarRow.children.length, 2); + + final appBarRowNameFinder = find.byKey(const Key('app_bar_row_name')); + if (checkError( + 8, + find.descendant(of: appBarRowFinder, matching: appBarRowNameFinder), + findsOneWidget, + )) { + final appBarRowName = + appBarRowNameFinder.evaluate().first.widget as Row; + checkError(9, appBarRowName.children.length, 2); + + final appBarRowNameTextFinder = + find.byKey(const Key('app_bar_row_name_text')); + if (checkError( + 10, + find.descendant( + of: appBarRowNameFinder, matching: appBarRowNameTextFinder), + findsOneWidget)) { + final appBarRowNameText = + appBarRowNameTextFinder.evaluate().first.widget as Text; + checkError(11, appBarRowNameText.data, 'iclop'); + checkError(12, appBarRowNameText.style!.fontWeight, FontWeight.bold); + + final appBarRowNameArrowDownIconFinder = + find.byKey(const Key('app_bar_row_name_arrow_down_icon')); + if (checkError( + 13, + find.descendant( + of: appBarRowNameFinder, + matching: appBarRowNameArrowDownIconFinder), + findsOneWidget)) { + final appBarRowNameArrowDownIcon = appBarRowNameArrowDownIconFinder + .evaluate() + .first + .widget as Icon; + checkError( + 14, appBarRowNameArrowDownIcon.icon, Icons.keyboard_arrow_down); + } + } + } + + final appBarRowMenuFinder = find.byKey(const Key('app_bar_row_menu')); + bool appBarRowMenuIsAvailable = checkError( + 15, + find.descendant(of: appBarRowFinder, matching: appBarRowMenuFinder), + findsOneWidget); + if (appBarRowMenuIsAvailable) { + final appBarRowMenu = + appBarRowMenuFinder.evaluate().first.widget as Row; + checkError(16, appBarRowMenu.children.length, 3); + + final appBarRowMenuUploadIconFinder = + find.byKey(const Key('app_bar_row_menu_upload_icon')); + bool appBarRowMenuUploadIconIsAvailable = checkError( + 17, + find.descendant( + of: appBarRowMenuFinder, + matching: appBarRowMenuUploadIconFinder), + findsOneWidget); + bool appBarRowMenuUploadIconIsSvgPicture = checkError( + 18, + appBarRowMenuUploadIconFinder.evaluate().first.widget, + isA()); + if (appBarRowMenuUploadIconIsAvailable && + appBarRowMenuUploadIconIsSvgPicture) { + final appBarRowMenuUploadIcon = appBarRowMenuUploadIconFinder + .evaluate() + .first + .widget as SvgPicture; + checkError(19, appBarRowMenuUploadIcon.width, 27); + bool appBarRowMenuUploadIconIsAssetPicture = checkError( + 20, + appBarRowMenuUploadIcon.pictureProvider.runtimeType, + ExactAssetPicture); + if (appBarRowMenuUploadIconIsAssetPicture) { + final appBarRowMenuUploadIconAssetPicture = + appBarRowMenuUploadIcon.pictureProvider as ExactAssetPicture; + checkError(21, appBarRowMenuUploadIconAssetPicture.assetName, + "assets/images/upload_icon.svg"); + } + } + + final appBarRowMenuHamburgerIconFinder = + find.byKey(const Key('app_bar_row_menu_hamburger_icon')); + bool appBarRowMenuHamburgerIconIsAvailable = checkError( + 22, + find.descendant( + of: appBarRowMenuFinder, + matching: appBarRowMenuHamburgerIconFinder), + findsOneWidget); + bool appBarRowMenuHamburgerIconIsIcon = checkError( + 23, + appBarRowMenuHamburgerIconFinder.evaluate().first.widget, + isA()); + if (appBarRowMenuHamburgerIconIsAvailable && + appBarRowMenuHamburgerIconIsIcon) { + final appBarRowMenuHamburgerIcon = + appBarRowMenuHamburgerIconFinder.evaluate().first.widget as Icon; + checkError(24, appBarRowMenuHamburgerIcon.size, 35); + checkError(25, appBarRowMenuHamburgerIcon.icon, Icons.menu); + } + } + } + }); + testWidgets("Check if Account page body is present", (widgetTester) async { + FlutterError.onError = ignoreOverflowErrors; + + await mockNetworkImagesFor( + () => widgetTester.pumpWidget( + MaterialApp( + home: AccountPage( + posts: posts, + stories: stories, + profileData: profileJson, + ), + ), + ), + ); + + final accountPageListViewFinder = find.byKey( + const Key('account_page_listview'), + ); + checkError(26, accountPageListViewFinder, findsOneWidget); + + final accountStatFinder = find.byKey(const Key('account_stat')); + checkError(27, accountStatFinder, findsOneWidget); + + final accountNameFinder = find.byKey(const Key('account_name')); + checkError(28, accountNameFinder, findsOneWidget); + + final profileButtons = find.byKey(const Key('profile_buttons')); + checkError(29, profileButtons, findsOneWidget); + + final highlightList = find.byKey(const Key('highlight_list')); + checkError(30, highlightList, findsOneWidget); + + final accountTab = find.byKey(const Key('account_tab')); + checkError(31, accountTab, findsOneWidget); + + final accountPagePostWrapFinder = + find.byKey(const Key('account_page_post_wrap')); + bool isAccountPagePostWrapAvailable = checkError( + 32, + accountPagePostWrapFinder, + findsOneWidget, + ); + if (isAccountPagePostWrapAvailable) { + final accountPagePostWrap = + accountPagePostWrapFinder.evaluate().first.widget as Wrap; + checkError(33, accountPagePostWrap.spacing, 1.5); + checkError(34, accountPagePostWrap.runSpacing, 1.5); + checkError(35, accountPagePostWrap.children.length, posts.length); + posts.asMap().forEach((key, value) { + final accountPostInkWellFinder = find.byKey( + Key('account_post_inkwell_$key'), + ); + bool isAccountPostInkWellAvailable = checkError( + 351, + accountPostInkWellFinder, + findsOneWidget, + ); + if (isAccountPostInkWellAvailable) { + checkError( + 352, + accountPostInkWellFinder.evaluate().first.widget, + isA(), + ); + final accountPostThumbnailFinder = find.byKey( + Key('account_post_thumbnail_$key'), + ); + bool isAccountPostThumbnailAvailable = checkError( + 353, + accountPostThumbnailFinder, + findsOneWidget, + ); + if (isAccountPostThumbnailAvailable) { + bool accountPostThumbnailIsPostThumbnail = checkError( + 354, + accountPostThumbnailFinder.evaluate().first.widget, + isA(), + ); + if (accountPostThumbnailIsPostThumbnail) { + final accountPostThumbnail = accountPostThumbnailFinder + .evaluate() + .first + .widget as PostThumbnail; + checkError( + 355, + accountPostThumbnail.imageUrl, + posts[key]['postImg'], + ); + } + } + } + }); + } + }); + testWidgets("Check if account stats is present", (widgetTester) async { + FlutterError.onError = ignoreOverflowErrors; + + await mockNetworkImagesFor( + () => widgetTester.pumpWidget( + MaterialApp( + home: AccountStat(profile: profile), + ), + ), + ); + + final accountPageProfileRowFinder = + find.byKey(const Key('account_page_profile_row')); + bool accounntPageListViewIsAvailable = checkError( + 26, + accountPageProfileRowFinder, + findsOneWidget, + ); + bool accounntPageListViewIsRow = checkError( + 27, + accountPageProfileRowFinder.evaluate().first.widget, + isA(), + ); + if (accounntPageListViewIsAvailable && accounntPageListViewIsRow) { + final accountPageProfileRow = + accountPageProfileRowFinder.evaluate().first.widget as Row; + checkError(28, accountPageProfileRow.children.length, 2); + + final profilePicFinder = find.byKey(const Key('profile_pic')); + checkError(29, profilePicFinder, findsOneWidget); + + final accountPageProfileInformationExpandedFinder = find.byKey( + const Key('account_page_profile_information_expanded'), + ); + bool accountPageProfileInformationExpandedIsAvailable = checkError( + 30, + accountPageProfileInformationExpandedFinder, + findsOneWidget, + ); + + checkError( + 31, + accountPageProfileInformationExpandedFinder.evaluate().first.widget, + isA(), + ); + + if (accountPageProfileInformationExpandedIsAvailable) { + final profileInformationFinder = find.byKey( + const Key('profile_information'), + ); + checkError( + 32, + find.descendant( + of: accountPageProfileInformationExpandedFinder, + matching: profileInformationFinder, + ), + findsOneWidget, + ); + } + } + }); + testWidgets("Check if profile picture is rendered correctly", + (widgetTester) async { + FlutterError.onError = ignoreOverflowErrors; + + await mockNetworkImagesFor( + () => widgetTester.pumpWidget( + MaterialApp( + home: ProfilePic(pictureUrl: profile.profilePic!), + ), + ), + ); + + final profilePicContainerFinder = find.byKey( + const Key('profile_pic_container'), + ); + bool profilePicContainerIsAvailable = checkError( + 33, + profilePicContainerFinder, + findsOneWidget, + ); + if (profilePicContainerIsAvailable) { + bool profilePicContainerIsContainer = checkError( + 34, + profilePicContainerFinder.evaluate().first.widget, + isA(), + ); + if (profilePicContainerIsContainer) { + final profilePicContainer = + profilePicContainerFinder.evaluate().first.widget as Container; + checkError( + 35, + profilePicContainer.constraints!.widthConstraints(), + const BoxConstraints(minWidth: 80, maxWidth: 80), + ); + checkError( + 36, + profilePicContainer.constraints!.heightConstraints(), + const BoxConstraints(minHeight: 80, maxHeight: 80), + ); + checkError( + 37, + profilePicContainer.margin, + const EdgeInsets.only(left: 15, right: 30), + ); + final profilePicDecoration = + profilePicContainer.decoration as BoxDecoration; + bool profilePicDecorationIsBoxDecoration = checkError( + 38, + profilePicDecoration, + isA(), + ); + + if (profilePicDecorationIsBoxDecoration) { + final profilePicDecoration = + profilePicContainer.decoration as BoxDecoration; + checkError( + 39, + profilePicDecoration.shape, + BoxShape.circle, + ); + + bool profilePicDecorationImageIsDecorationImage = checkError( + 40, + profilePicDecoration.image, + isA(), + ); + if (profilePicDecorationImageIsDecorationImage) { + final profilePicDecorationImage = + profilePicDecoration.image as DecorationImage; + checkError(41, profilePicDecorationImage.fit, BoxFit.cover); + bool profilePicDecorationImageIsNetworkImage = checkError( + 42, + profilePicDecorationImage.image, + isA(), + ); + if (profilePicDecorationImageIsNetworkImage) { + final profilePicDecorationImageNetworkImage = + profilePicDecorationImage.image as NetworkImage; + checkError( + 43, + profilePicDecorationImageNetworkImage.url, + profile.profilePic!, + ); + } + } + } + } + } + }); + testWidgets("Check if profile informations is rendered correctly", + (widgetTester) async { + FlutterError.onError = ignoreOverflowErrors; + + await mockNetworkImagesFor( + () => widgetTester.pumpWidget( + MaterialApp( + home: ProfileInformation(profileStats: profile.stats!), + ), + ), + ); + + final profileInformationRowFinder = find.byKey( + const Key('profile_information_row'), + ); + bool profileInformationRowIsAvailable = checkError( + 44, + profileInformationRowFinder, + findsOneWidget, + ); + if (profileInformationRowIsAvailable) { + bool profileInformationRowIsRow = checkError( + 45, profileInformationRowFinder.evaluate().first.widget, isA()); + if (profileInformationRowIsRow) { + final profileInformationRow = + profileInformationRowFinder.evaluate().first.widget as Row; + checkError( + 46, profileInformationRow.children.length, profile.stats!.length); + checkError( + 47, + profileInformationRow.mainAxisAlignment, + MainAxisAlignment.spaceAround, + ); + + profile.stats!.asMap().forEach((index, value) { + final profileInformationColumnFinder = find.byKey( + Key('profile_information_column_$index'), + ); + bool profileInformationColumnIsAvailable = checkError( + 48, + profileInformationColumnFinder, + findsOneWidget, + ); + if (profileInformationColumnIsAvailable) { + bool profileInformationColumnIsColumn = checkError( + 49, + profileInformationColumnFinder.evaluate().first.widget, + isA(), + ); + if (profileInformationColumnIsColumn) { + final profileInformationColumn = profileInformationColumnFinder + .evaluate() + .first + .widget as Column; + checkError(50, profileInformationColumn.children.length, 2); + + final profileInformationAmountTextFinder = find.byKey( + Key('profile_information_${index}_amount_text'), + ); + bool profileInformationAmountTextIsAvailable = checkError( + 51, + profileInformationAmountTextFinder, + findsOneWidget, + ); + if (profileInformationAmountTextIsAvailable) { + bool profileInformationAmountTextIsText = checkError( + 52, + profileInformationAmountTextFinder.evaluate().first.widget, + isA(), + ); + if (profileInformationAmountTextIsText) { + final profileInformationAmountText = + profileInformationAmountTextFinder.evaluate().first.widget + as Text; + checkError(53, profileInformationAmountText.data, + profile.stats![index].count.toString()); + checkError( + 54, + profileInformationAmountText.style, + const TextStyle( + fontSize: 20, + fontWeight: FontWeight.w700, + color: Colors.white), + ); + } + } + + final profileInformationLabelTextFinder = find.byKey( + Key('profile_information_${index}_label_text'), + ); + bool profileInformationLabelTextIsAvailable = checkError( + 55, + profileInformationLabelTextFinder, + findsOneWidget, + ); + if (profileInformationLabelTextIsAvailable) { + bool profileInformationLabelTextIsText = checkError( + 56, + profileInformationLabelTextFinder.evaluate().first.widget, + isA(), + ); + if (profileInformationLabelTextIsText) { + final profileInformationLabelText = + profileInformationLabelTextFinder.evaluate().first.widget + as Text; + checkError(57, profileInformationLabelText.data, + profile.stats![index].label); + checkError( + 58, + profileInformationLabelText.style, + const TextStyle( + fontSize: 15, + fontWeight: FontWeight.w400, + color: Colors.white, + ), + ); + } + } + } + } + }); + } + } + }); + testWidgets("Check if account's name is rendered correctly", + (widgetTester) async { + FlutterError.onError = ignoreOverflowErrors; + + await mockNetworkImagesFor( + () => widgetTester.pumpWidget( + MaterialApp( + home: AccountName(profile: profile), + ), + ), + ); + + final accountNameContainerFinder = find.byKey( + const Key('account_name_container'), + ); + bool accountNameContainerIsAvailable = checkError( + 59, + accountNameContainerFinder, + findsOneWidget, + ); + if (accountNameContainerIsAvailable) { + bool accountNameContainerIsContainer = checkError( + 60, + accountNameContainerFinder.evaluate().first.widget, + isA(), + ); + if (accountNameContainerIsContainer) { + final accountNameContainer = + accountNameContainerFinder.evaluate().first.widget as Container; + checkError( + 61, + accountNameContainer.constraints!.widthConstraints(), + const BoxConstraints( + minWidth: double.infinity, maxWidth: double.infinity), + ); + checkError( + 62, + accountNameContainer.padding, + const EdgeInsets.symmetric(horizontal: 15), + ); + checkError( + 63, + accountNameContainer.margin, + const EdgeInsets.symmetric(vertical: 10), + ); + + final accountNameColumnFinder = find.byKey( + const Key('account_name_column'), + ); + bool accountNameColumnIsAvailable = checkError( + 64, + find.descendant( + of: accountNameContainerFinder, + matching: accountNameColumnFinder), + findsOneWidget, + ); + + if (accountNameColumnIsAvailable) { + bool accountNameColumnIsColumn = checkError( + 65, + accountNameColumnFinder.evaluate().first.widget, + isA(), + ); + + if (accountNameColumnIsColumn) { + final accountNameColumn = + accountNameColumnFinder.evaluate().first.widget as Column; + checkError( + 66, + accountNameColumn.crossAxisAlignment, + CrossAxisAlignment.start, + ); + checkError(67, accountNameColumn.children.length, 2); + + final accountNameTextFinder = find.byKey( + const Key('account_name_text'), + ); + + bool accountNameTextIsAvailable = checkError( + 68, + find.descendant( + of: accountNameColumnFinder, matching: accountNameTextFinder), + findsOneWidget, + ); + + if (accountNameTextIsAvailable) { + bool accountNameTextIsText = checkError( + 69, + accountNameTextFinder.evaluate().first.widget, + isA(), + ); + + if (accountNameTextIsText) { + final accountNameText = + accountNameTextFinder.evaluate().first.widget as Text; + checkError(70, accountNameText.data, profile.name); + checkError( + 71, + accountNameText.style, + const TextStyle( + fontSize: 18, + fontWeight: FontWeight.w400, + color: Colors.white, + ), + ); + } + } + + final accountBioText = find.byKey(const Key('account_bio_text')); + bool accountBioTextIsAvailable = checkError( + 72, + find.descendant( + of: accountNameColumnFinder, matching: accountBioText), + findsOneWidget, + ); + + if (accountBioTextIsAvailable) { + bool accountBioTextIsText = checkError( + 73, + accountBioText.evaluate().first.widget, + isA(), + ); + + if (accountBioTextIsText) { + final accountBioTextWidget = + accountBioText.evaluate().first.widget as Text; + checkError(74, accountBioTextWidget.data, profile.bio); + checkError( + 75, + accountBioTextWidget.style, + const TextStyle( + fontSize: 15, + fontWeight: FontWeight.w400, + color: Colors.white, + ), + ); + } + } + } + } + } + } + }); + testWidgets("Check if profile buttons is rendered correctly", + (widgetTester) async { + FlutterError.onError = ignoreOverflowErrors; + + await mockNetworkImagesFor( + () => widgetTester.pumpWidget( + const MaterialApp( + home: ProfileButtons(), + ), + ), + ); + + final profileButtonsPaddingFinder = find.byKey( + const Key('profile_buttons_padding'), + ); + + bool accountPageProfileButtonsPaddingIsAvailable = checkError( + 76, + profileButtonsPaddingFinder, + findsOneWidget, + ); + + if (accountPageProfileButtonsPaddingIsAvailable) { + bool accountPageProfileButtonsPaddingIsPadding = checkError( + 77, + profileButtonsPaddingFinder.evaluate().first.widget, + isA(), + ); + + if (accountPageProfileButtonsPaddingIsPadding) { + final accountPageProfileButtonsPadding = + profileButtonsPaddingFinder.evaluate().first.widget as Padding; + checkError( + 78, + accountPageProfileButtonsPadding.padding, + const EdgeInsets.symmetric(horizontal: 15), + ); + + final profileButtonsRowFinder = + find.byKey(const Key('profile_buttons_row')); + bool profileButtonsRowIsAvailable = checkError( + 79, + find.descendant( + of: profileButtonsPaddingFinder, + matching: profileButtonsRowFinder), + findsOneWidget, + ); + + if (profileButtonsRowIsAvailable) { + bool profileButtonsRowIsRow = checkError( + 80, + profileButtonsRowFinder.evaluate().first.widget, + isA(), + ); + + if (profileButtonsRowIsRow) { + final profileButtonsRow = + profileButtonsRowFinder.evaluate().first.widget as Row; + checkError( + 81, + profileButtonsRow.mainAxisAlignment, + MainAxisAlignment.spaceBetween, + ); + checkError(82, profileButtonsRow.children.length, 5); + + final profileButtonsEditProfileButtonExpandedFinder = find.byKey( + const Key('profile_buttons_edit_profile_button_expanded'), + ); + bool profileButtonsEditProfileButtonExpandedIsAvailable = + checkError( + 83, + find.descendant( + of: profileButtonsRowFinder, + matching: profileButtonsEditProfileButtonExpandedFinder, + ), + findsOneWidget, + ); + + if (profileButtonsEditProfileButtonExpandedIsAvailable) { + checkError( + 84, + profileButtonsEditProfileButtonExpandedFinder + .evaluate() + .first + .widget, + isA(), + ); + + final profileButtonsEditProfileButtonFinder = find.byKey( + const Key('profile_buttons_edit_profile_button'), + ); + bool profileButtonsEditProfileButtonIsAvailable = checkError( + 85, + find.descendant( + of: profileButtonsEditProfileButtonExpandedFinder, + matching: profileButtonsEditProfileButtonFinder), + findsOneWidget, + ); + if (profileButtonsEditProfileButtonIsAvailable) { + checkError( + 86, + profileButtonsEditProfileButtonFinder.evaluate().first.widget, + isA(), + ); + + final profileButtonsEditProfileButtonTextFinder = find.byKey( + const Key('profile_buttons_edit_profile_button_text'), + ); + bool profileButtonsEditProfileButtonTextIsAvailable = + checkError( + 87, + find.descendant( + of: profileButtonsEditProfileButtonFinder, + matching: profileButtonsEditProfileButtonTextFinder), + findsOneWidget, + ); + if (profileButtonsEditProfileButtonTextIsAvailable) { + bool profileButtonsEditProfileButtonTextIsText = checkError( + 88, + profileButtonsEditProfileButtonTextFinder + .evaluate() + .first + .widget, + isA(), + ); + if (profileButtonsEditProfileButtonTextIsText) { + final profileButtonsEditProfileButtonText = + profileButtonsEditProfileButtonTextFinder + .evaluate() + .first + .widget as Text; + checkError( + 89, + profileButtonsEditProfileButtonText.data, + 'Edit Profile', + ); + checkError( + 90, + profileButtonsEditProfileButtonText.style, + const TextStyle( + fontSize: 15, + fontWeight: FontWeight.w500, + color: Colors.white, + ), + ); + } + } + } + } + + final profileButtonsShareProfileButtonExpandedFinder = find.byKey( + const Key('profile_buttons_share_profile_button_expanded'), + ); + bool profileButtonsShareProfileButtonExpandedIsAvailable = + checkError( + 91, + find.descendant( + of: profileButtonsRowFinder, + matching: profileButtonsShareProfileButtonExpandedFinder, + ), + findsOneWidget, + ); + if (profileButtonsShareProfileButtonExpandedIsAvailable) { + checkError( + 92, + profileButtonsShareProfileButtonExpandedFinder + .evaluate() + .first + .widget, + isA(), + ); + + final profileButtonsShareProfileButtonFinder = find.byKey( + const Key('profile_buttons_share_profile_button'), + ); + bool profileButtonsShareProfileButtonIsAvailable = checkError( + 93, + find.descendant( + of: profileButtonsShareProfileButtonExpandedFinder, + matching: profileButtonsShareProfileButtonFinder), + findsOneWidget, + ); + if (profileButtonsShareProfileButtonIsAvailable) { + checkError( + 94, + profileButtonsShareProfileButtonFinder + .evaluate() + .first + .widget, + isA(), + ); + + final profileButtonsShareProfileButtonTextFinder = find.byKey( + const Key('profile_buttons_share_profile_button_text'), + ); + bool profileButtonsShareProfileButtonTextIsAvailable = + checkError( + 95, + find.descendant( + of: profileButtonsShareProfileButtonFinder, + matching: profileButtonsShareProfileButtonTextFinder), + findsOneWidget, + ); + if (profileButtonsShareProfileButtonTextIsAvailable) { + bool profileButtonsShareProfileButtonTextIsText = checkError( + 96, + profileButtonsShareProfileButtonTextFinder + .evaluate() + .first + .widget, + isA(), + ); + if (profileButtonsShareProfileButtonTextIsText) { + final profileButtonsShareProfileButtonText = + profileButtonsShareProfileButtonTextFinder + .evaluate() + .first + .widget as Text; + checkError( + 97, + profileButtonsShareProfileButtonText.data, + 'Share profile', + ); + checkError( + 98, + profileButtonsShareProfileButtonText.style, + const TextStyle( + fontSize: 15, + fontWeight: FontWeight.w500, + color: Colors.white, + ), + ); + } + } + } + } + + final profileButtonsDiscoverPeopleButtonFinder = find.byKey( + const Key('profile_buttons_discover_people_button'), + ); + bool profileButtonsDiscoverPeopleButtonIsAvailable = checkError( + 99, + find.descendant( + of: profileButtonsRowFinder, + matching: profileButtonsDiscoverPeopleButtonFinder), + findsOneWidget, + ); + if (profileButtonsDiscoverPeopleButtonIsAvailable) { + checkError( + 100, + profileButtonsDiscoverPeopleButtonFinder + .evaluate() + .first + .widget, + isA(), + ); + + final profileButtonsDiscoverPeopleIconFinder = find.byKey( + const Key('profile_buttons_discover_people_icon'), + ); + bool profileButtonsDiscoverPeopleIconIsAvailable = checkError( + 101, + find.descendant( + of: profileButtonsDiscoverPeopleButtonFinder, + matching: profileButtonsDiscoverPeopleIconFinder), + findsOneWidget, + ); + if (profileButtonsDiscoverPeopleIconIsAvailable) { + bool profileButtonsDiscoverPeopleIconIsIcon = checkError( + 102, + profileButtonsDiscoverPeopleIconFinder + .evaluate() + .first + .widget, + isA(), + ); + if (profileButtonsDiscoverPeopleIconIsIcon) { + final profileButtonsDiscoverPeopleIcon = + profileButtonsDiscoverPeopleIconFinder + .evaluate() + .first + .widget as Icon; + checkError( + 103, + profileButtonsDiscoverPeopleIcon.icon, + Icons.person_add_outlined, + ); + checkError( + 104, + profileButtonsDiscoverPeopleIcon.color, + Colors.white, + ); + } + } + } + } + } + } + } + }); + testWidgets("Check if Grey buttons is rendered correctly", + (widgetTester) async { + FlutterError.onError = ignoreOverflowErrors; + const mockKey = Key('grey_button'); + const mockWidget = Text('Grey Button'); + + await mockNetworkImagesFor( + () => widgetTester.pumpWidget( + MaterialApp( + home: GreyButton( + key: mockKey, + onPressed: () {}, + child: mockWidget, + ), + ), + ), + ); + + final greyButtonElevatedButtonFinder = find.byKey( + Key('${mockKey}_elevated_button'), + ); + bool greyButtonElevatedButtonIsAvailable = checkError( + 105, + greyButtonElevatedButtonFinder, + findsOneWidget, + ); + if (greyButtonElevatedButtonIsAvailable) { + bool greyButtonElevatedButtonIsElevatedButton = checkError( + 106, + greyButtonElevatedButtonFinder.evaluate().first.widget, + isA(), + ); + if (greyButtonElevatedButtonIsElevatedButton) { + final greyButtonElevatedButton = greyButtonElevatedButtonFinder + .evaluate() + .first + .widget as ElevatedButton; + try { + checkError( + 107, + greyButtonElevatedButton.style!.backgroundColor!.resolve(states), + Colors.grey[800], + ); + } catch (e) { + debugPrint( + "Account Page Test-107 failed: backgroundColor is not set", + ); + } + + try { + checkError( + 108, + greyButtonElevatedButton.style!.minimumSize!.resolve(states), + const Size(0, 30), + ); + } catch (e) { + debugPrint( + "Account Page Test-108 failed: minimumSize is not set", + ); + } + + try { + checkError( + 109, + greyButtonElevatedButton.style!.shape!.resolve(states), + RoundedRectangleBorder( + borderRadius: BorderRadius.circular(5), + ), + ); + } catch (e) { + debugPrint( + "Account Page Test-109 failed: shape is not set", + ); + } + } + } + }); + testWidgets("Check if Highlight list is rendered correctly", + (widgetTester) async { + FlutterError.onError = ignoreOverflowErrors; + + await mockNetworkImagesFor( + () => widgetTester.pumpWidget( + MaterialApp( + home: HighlightList(stories: stories), + ), + ), + ); + + final highlightListScrollViewFinder = find.byKey( + const Key('highlight_list_scroll_view'), + ); + + bool highlightListScrollViewIsAvailable = checkError( + 110, + highlightListScrollViewFinder, + findsOneWidget, + ); + + if (highlightListScrollViewIsAvailable) { + bool highlightListScrollViewIsScrollView = checkError( + 111, + highlightListScrollViewFinder.evaluate().first.widget, + isA(), + ); + if (highlightListScrollViewIsScrollView) { + final highlightListScrollView = highlightListScrollViewFinder + .evaluate() + .first + .widget as SingleChildScrollView; + checkError( + 112, + highlightListScrollView.scrollDirection, + Axis.horizontal, + ); + checkError( + 113, + highlightListScrollView.padding, + const EdgeInsets.only(left: 15, top: 10, bottom: 10), + ); + } + final highlightListParentRowFinder = find.byKey( + const Key("highlight_list_parent_row"), + ); + bool highlightListParentRowIsAvailable = checkError( + 114, + find.descendant( + of: highlightListScrollViewFinder, + matching: highlightListParentRowFinder, + ), + findsOneWidget, + ); + if (highlightListParentRowIsAvailable) { + checkError( + 115, + highlightListParentRowFinder.evaluate().first.widget, + isA(), + ); + final highlightListChildRowFinder = find.byKey( + const Key("highlight_list_child_row"), + ); + bool highlightListChildRowIsAvailable = checkError( + 116, + find.descendant( + of: highlightListParentRowFinder, + matching: highlightListChildRowFinder, + ), + findsOneWidget, + ); + if (highlightListChildRowIsAvailable) { + bool highlightListChildRowIsRow = checkError( + 117, + highlightListChildRowFinder.evaluate().first.widget, + isA(), + ); + if (highlightListChildRowIsRow) { + final highlightListChildRow = + highlightListChildRowFinder.evaluate().first.widget as Row; + bool highlightItemsFinder = checkError( + 118, + highlightListChildRow.children.length, + stories.length, + ); + + if (highlightItemsFinder) { + stories.asMap().forEach((key, value) { + final highlightItemFinder = find.byKey( + Key("highlight_item_$key"), + ); + bool highlightItemIsAvailable = checkError( + 119, + find.descendant( + of: highlightListChildRowFinder, + matching: highlightItemFinder, + ), + findsOneWidget, + ); + + if (highlightItemIsAvailable) { + bool highlightItemIsHighlightItem = checkError( + 120, + highlightItemFinder.evaluate().first.widget, + isA(), + ); + if (highlightItemIsHighlightItem) { + final highlightItem = highlightItemFinder + .evaluate() + .first + .widget as HighlightItem; + checkError( + 121, + highlightItem.img, + value["img"], + ); + checkError( + 122, + highlightItem.name, + value["name"], + ); + } + } + }); + } + } + } + + final highightListAddHighlightFinder = find.byKey( + const Key("highlight_list_add_highlight"), + ); + bool highightAddHighlightIsAvailable = checkError( + 123, + find.descendant( + of: highlightListParentRowFinder, + matching: highightListAddHighlightFinder, + ), + findsOneWidget, + ); + + if (highightAddHighlightIsAvailable) { + bool highightAddHighlightIsPadding = checkError( + 124, + highightListAddHighlightFinder.evaluate().first.widget, + isA(), + ); + if (highightAddHighlightIsPadding) { + final highightAddHighlight = highightListAddHighlightFinder + .evaluate() + .first + .widget as Padding; + checkError( + 125, + highightAddHighlight.padding, + const EdgeInsets.only(right: 10, bottom: 10), + ); + } + + final highlightListAddHighlightColumnFinder = find.byKey( + const Key("highlight_list_add_highlight_column"), + ); + bool highlightListAddHighlightColumnIsAvailable = checkError( + 126, + find.descendant( + of: highightListAddHighlightFinder, + matching: highlightListAddHighlightColumnFinder, + ), + findsOneWidget, + ); + if (highlightListAddHighlightColumnIsAvailable) { + bool highlightListAddHighlightColumnIsColumn = checkError( + 127, + highlightListAddHighlightColumnFinder.evaluate().first.widget, + isA(), + ); + if (highlightListAddHighlightColumnIsColumn) { + final highlightListAddHighlightColumn = + highlightListAddHighlightColumnFinder.evaluate().first.widget + as Column; + checkError( + 129, + highlightListAddHighlightColumn.children.length, + 2, + ); + // final highlightListAddHighlightIconFinder = find.byKey( + // const Key("highlight_list_add_highlight_icon"), + // ); + // bool highlightListAddHighlightIconIsAvailable = checkError( + // 130, + // find.descendant( + // of: highlightListAddHighlightColumnFinder, + // matching: highlightListAddHighlightIconFinder, + // ), + // findsOneWidget, + // ); + // if (highlightListAddHighlightIconIsAvailable) { + // bool highlightListAddHighlightIconIsIcon = checkError( + // 131, + // highlightListAddHighlightIconFinder.evaluate().first.widget, + // isA(), + // ); + // if (highlightListAddHighlightIconIsIcon) { + // final highlightListAddHighlightIcon = + // highlightListAddHighlightIconFinder + // .evaluate() + // .first + // .widget as Icon; + // checkError( + // 132, + // highlightListAddHighlightIcon.icon, + // Icons.add, + // ); + // checkError( + // 133, + // highlightListAddHighlightIcon.color, + // Colors.white, + // ); + // } + // } + // final highlightListAddHighlightTextFinder = find.byKey( + // const Key("highlight_list_add_highlight_text"), + // ); + // bool highlightListAddHighlightTextIsAvailable = checkError( + // 134, + // find.descendant( + // of: highlightListAddHighlightColumnFinder, + // matching: highlightListAddHighlightTextFinder, + // ), + // findsOneWidget, + // ); + // if (highlightListAddHighlightTextIsAvailable) { + // bool highlightListAddHighlightTextIsText = checkError( + // 135, + // highlightListAddHighlightTextFinder.evaluate().first.widget, + // isA(), + // ); + // if (highlightListAddHighlightTextIsText) { + // final highlightListAddHighlightText = + // highlightListAddHighlightTextFinder + // .evaluate() + // .first + // .widget as Text; + // checkError( + // 136, + // highlightListAddHighlightText.data, + // "New", + // ); + // } + // } + } + + final highlightListAddHighlightContainerFinder = find.byKey( + const Key("highlight_list_add_highlight_container"), + ); + bool highlightAddHighlightContainerIsAvailable = checkError( + 137, + find.descendant( + of: highlightListAddHighlightColumnFinder, + matching: highlightListAddHighlightContainerFinder, + ), + findsOneWidget, + ); + if (highlightAddHighlightContainerIsAvailable) { + bool highlightAddHighlightContainerIsContainer = checkError( + 138, + highlightListAddHighlightContainerFinder + .evaluate() + .first + .widget, + isA(), + ); + if (highlightAddHighlightContainerIsContainer) { + final highlightAddHighlightContainer = + highlightListAddHighlightContainerFinder + .evaluate() + .first + .widget as Container; + checkError( + 139, + highlightAddHighlightContainer.padding, + const EdgeInsets.all(3), + ); + checkError( + 140, + highlightAddHighlightContainer.margin, + const EdgeInsets.only(bottom: 8), + ); + checkError( + 141, + highlightAddHighlightContainer.constraints! + .widthConstraints(), + const BoxConstraints(minWidth: 68, maxWidth: 68), + ); + checkError( + 142, + highlightAddHighlightContainer.constraints! + .heightConstraints(), + const BoxConstraints(minHeight: 68, maxHeight: 68), + ); + + bool highlightAddHighlightContainerDecorationBoxDecoration = + checkError( + 143, + highlightAddHighlightContainer.decoration, + isA(), + ); + if (highlightAddHighlightContainerDecorationBoxDecoration) { + final highlightAddHighlightContainerDecoration = + highlightAddHighlightContainer.decoration + as BoxDecoration; + checkError( + 144, + highlightAddHighlightContainerDecoration.shape, + BoxShape.circle); + checkError( + 145, + highlightAddHighlightContainerDecoration.border, + Border.all(color: Colors.white, width: 1), + ); + } + } + + final highlightListAddHighlightIconContainerFinder = find.byKey( + const Key("highlight_list_add_highlight_icon_container"), + ); + + bool highlightListAddHighlightIconContainerIsAvailable = + checkError( + 146, + find.descendant( + of: highlightListAddHighlightContainerFinder, + matching: highlightListAddHighlightIconContainerFinder, + ), + findsOneWidget, + ); + if (highlightListAddHighlightIconContainerIsAvailable) { + bool highlightListAddHighlightIconContainerIsContainer = + checkError( + 147, + highlightListAddHighlightIconContainerFinder + .evaluate() + .first + .widget, + isA(), + ); + if (highlightListAddHighlightIconContainerIsContainer) { + final highlightListAddHighlightIconContainer = + highlightListAddHighlightIconContainerFinder + .evaluate() + .first + .widget as Container; + bool highlightListAddHighlightIconContainerIsBoxDecoration = + checkError( + 148, + highlightListAddHighlightIconContainer.decoration, + isA(), + ); + if (highlightListAddHighlightIconContainerIsBoxDecoration) { + final highlightListAddHighlightIconContainerDecoration = + highlightListAddHighlightIconContainer.decoration + as BoxDecoration; + checkError( + 149, + highlightListAddHighlightIconContainerDecoration.shape, + BoxShape.circle, + ); + checkError( + 150, + highlightListAddHighlightIconContainerDecoration.border, + Border.all(color: Colors.black, width: 2), + ); + } + } + + final highlightListAddHighlightIconFinder = find.byKey( + const Key("highlight_list_add_highlight_icon"), + ); + bool highlightListAddHighlightIconIsAvailable = checkError( + 151, + find.descendant( + of: highlightListAddHighlightIconContainerFinder, + matching: highlightListAddHighlightIconFinder, + ), + findsOneWidget, + ); + + if (highlightListAddHighlightIconIsAvailable) { + bool highlightListAddHighlightIconIsIcon = checkError( + 152, + highlightListAddHighlightIconFinder.evaluate().first.widget, + isA(), + ); + if (highlightListAddHighlightIconIsIcon) { + final highlightListAddHighlightIcon = + highlightListAddHighlightIconFinder + .evaluate() + .first + .widget as Icon; + checkError( + 153, + highlightListAddHighlightIcon.icon, + Icons.add, + ); + checkError( + 154, + highlightListAddHighlightIcon.color, + Colors.white, + ); + } + } + } + } + + final highlightListAddHighlightTextSizedBoxFinder = find.byKey( + const Key("highlight_list_add_highlight_text_sized_box"), + ); + bool highlightListAddHighlightTextSizedBoxIsAvailable = checkError( + 155, + find.descendant( + of: highlightListAddHighlightColumnFinder, + matching: highlightListAddHighlightTextSizedBoxFinder, + ), + findsOneWidget, + ); + + if (highlightListAddHighlightTextSizedBoxIsAvailable) { + bool highlightListAddHighlightTextSizedBoxIsSizedBox = checkError( + 156, + highlightListAddHighlightTextSizedBoxFinder + .evaluate() + .first + .widget, + isA(), + ); + if (highlightListAddHighlightTextSizedBoxIsSizedBox) { + final highlightListAddHighlightTextSizedBox = + highlightListAddHighlightTextSizedBoxFinder + .evaluate() + .first + .widget as SizedBox; + checkError( + 157, highlightListAddHighlightTextSizedBox.width, 70); + } + + final highlightListAddHighlightTextFinder = find.byKey( + const Key("highlight_list_add_highlight_text"), + ); + bool highlightListAddHighlightTextIsAvailable = checkError( + 158, + find.descendant( + of: highlightListAddHighlightTextSizedBoxFinder, + matching: highlightListAddHighlightTextFinder, + ), + findsOneWidget, + ); + + if (highlightListAddHighlightTextIsAvailable) { + bool highlightListAddHighlightTextIsText = checkError( + 159, + highlightListAddHighlightTextFinder.evaluate().first.widget, + isA(), + ); + if (highlightListAddHighlightTextIsText) { + final highlightListAddHighlightText = + highlightListAddHighlightTextFinder + .evaluate() + .first + .widget as Text; + checkError(160, highlightListAddHighlightText.data, "New"); + checkError( + 161, + highlightListAddHighlightText.overflow, + TextOverflow.ellipsis, + ); + checkError( + 162, + highlightListAddHighlightText.textAlign, + TextAlign.center, + ); + bool highlightListAddHighlightTextIsTextStyle = checkError( + 163, + highlightListAddHighlightText.style, + isA(), + ); + if (highlightListAddHighlightTextIsTextStyle) { + final highlightListAddHighlightTextStyle = + highlightListAddHighlightText.style as TextStyle; + checkError( + 164, + highlightListAddHighlightTextStyle.color, + Colors.white, + ); + } + } + } + } + } + } + } + } + }); + testWidgets("Check if Highlight Item is rendered correctly", + (widgetTester) async { + FlutterError.onError = ignoreOverflowErrors; + final img = stories[0]["img"]; + final name = stories[0]["name"]; + await widgetTester.pumpWidget( + MaterialApp( + home: HighlightItem( + img: img, + name: name, + ), + ), + ); + + final highlightItemPaddingFinder = find.byKey( + const Key("highlight_item_padding"), + ); + bool highlightItemPaddingIsAvailable = checkError( + 165, + find.descendant( + of: find.byType(HighlightItem), + matching: highlightItemPaddingFinder, + ), + findsOneWidget, + ); + + if (highlightItemPaddingIsAvailable) { + bool highlightItemPaddingIsPadding = checkError( + 166, + highlightItemPaddingFinder.evaluate().first.widget, + isA(), + ); + if (highlightItemPaddingIsPadding) { + final highlightItemPadding = + highlightItemPaddingFinder.evaluate().first.widget as Padding; + checkError( + 167, + highlightItemPadding.padding, + const EdgeInsets.only(right: 10, bottom: 10), + ); + } + final highlightItemColumnFinder = find.byKey( + const Key("highlight_item_column"), + ); + bool highlightItemColumnIsAvailable = checkError( + 168, + find.descendant( + of: highlightItemPaddingFinder, + matching: highlightItemColumnFinder, + ), + findsOneWidget, + ); + + if (highlightItemColumnIsAvailable) { + bool highlightItemColumnIsColumn = checkError( + 169, + highlightItemColumnFinder.evaluate().first.widget, + isA(), + ); + if (highlightItemColumnIsColumn) { + final highlightItemColumn = + highlightItemColumnFinder.evaluate().first.widget as Column; + checkError(170, highlightItemColumn.children.length, 2); + } + + final highlightItemContainerFinder = find.byKey( + const Key("highlight_item_container"), + ); + bool highlightItemContainerIsAvailable = checkError( + 171, + find.descendant( + of: highlightItemColumnFinder, + matching: highlightItemContainerFinder, + ), + findsOneWidget, + ); + if (highlightItemContainerIsAvailable) { + bool highlightItemContainerIsContainer = checkError( + 172, + highlightItemContainerFinder.evaluate().first.widget, + isA(), + ); + if (highlightItemContainerIsContainer) { + final highlightItemContainer = highlightItemContainerFinder + .evaluate() + .first + .widget as Container; + checkError( + 173, + highlightItemContainer.constraints!.widthConstraints(), + const BoxConstraints(minWidth: 68, maxWidth: 68), + ); + checkError( + 174, + highlightItemContainer.constraints!.heightConstraints(), + const BoxConstraints(minHeight: 68, maxHeight: 68), + ); + checkError( + 175, + highlightItemContainer.padding, + const EdgeInsets.all(3.0), + ); + checkError( + 176, + highlightItemContainer.margin, + const EdgeInsets.only(bottom: 8), + ); + + bool highlightItemContainerDecorationIsBoxDecoration = checkError( + 177, + highlightItemContainer.decoration, + isA(), + ); + + if (highlightItemContainerDecorationIsBoxDecoration) { + final highlightItemContainerDecoration = + highlightItemContainer.decoration as BoxDecoration; + checkError( + 178, highlightItemContainerDecoration.shape, BoxShape.circle); + checkError( + 179, + highlightItemContainerDecoration.border, + Border.all(color: Colors.grey[800]!, width: 1), + ); + } + } + } + final highlightItemImageContainerFinder = find.byKey( + const Key("highlight_item_image_container"), + ); + bool highlightItemImageContainerIsAvailable = checkError( + 180, + find.descendant( + of: highlightItemContainerFinder, + matching: highlightItemImageContainerFinder, + ), + findsOneWidget, + ); + if (highlightItemImageContainerIsAvailable) { + bool highlightItemImageContainerIsContainer = checkError( + 181, + highlightItemImageContainerFinder.evaluate().first.widget, + isA(), + ); + if (highlightItemImageContainerIsContainer) { + final highlightItemImageContainer = + highlightItemImageContainerFinder.evaluate().first.widget + as Container; + bool highlightItemImageContainerDecorationIsBoxDecoration = + checkError(182, highlightItemImageContainer.decoration, + isA()); + if (highlightItemImageContainerDecorationIsBoxDecoration) { + final highlightItemImageContainerDecoration = + highlightItemImageContainer.decoration as BoxDecoration; + checkError(183, highlightItemImageContainerDecoration.shape, + BoxShape.circle); + checkError( + 184, + highlightItemImageContainerDecoration.border, + Border.all(color: Colors.black, width: 2), + ); + bool highlightItemImageContainerDecorationImageIsDecorationImage = + checkError( + 185, + highlightItemImageContainerDecoration.image, + isA(), + ); + + if (highlightItemImageContainerDecorationImageIsDecorationImage) { + final highlightItemImageContainerDecorationImage = + highlightItemImageContainerDecoration.image + as DecorationImage; + checkError(186, highlightItemImageContainerDecorationImage.fit, + BoxFit.cover); + bool highlightItemImageContainerDecorationImageIsNetworkImage = + checkError( + 187, + highlightItemImageContainerDecorationImage.image, + isA(), + ); + + if (highlightItemImageContainerDecorationImageIsNetworkImage) { + final highlightItemImageContainerDecorationImageNetworkImage = + highlightItemImageContainerDecorationImage.image + as NetworkImage; + checkError( + 188, + highlightItemImageContainerDecorationImageNetworkImage.url, + img, + ); + } + } + } + } + } + + final highlightItemTextSizedBoxFinder = find.byKey( + const Key("highlight_item_text_sized_box"), + ); + bool highlightItemTextSizedBoxIsAvailable = checkError( + 189, + find.descendant( + of: highlightItemColumnFinder, + matching: highlightItemTextSizedBoxFinder, + ), + findsOneWidget, + ); + + if (highlightItemTextSizedBoxIsAvailable) { + bool highlightItemTextSizedBoxIsSizedBox = checkError( + 190, + highlightItemTextSizedBoxFinder.evaluate().first.widget, + isA(), + ); + if (highlightItemTextSizedBoxIsSizedBox) { + final highlightItemTextSizedBox = highlightItemTextSizedBoxFinder + .evaluate() + .first + .widget as SizedBox; + checkError(191, highlightItemTextSizedBox.width, 70); + } + final highlightItemTextFinder = find.byKey( + const Key("highlight_item_text"), + ); + bool highlightItemTextIsAvailable = checkError( + 192, + find.descendant( + of: highlightItemTextSizedBoxFinder, + matching: highlightItemTextFinder, + ), + findsOneWidget, + ); + if (highlightItemTextIsAvailable) { + bool highlightItemTextIsText = checkError( + 193, + highlightItemTextFinder.evaluate().first.widget, + isA(), + ); + if (highlightItemTextIsText) { + final highlightItemText = + highlightItemTextFinder.evaluate().first.widget as Text; + checkError( + 194, highlightItemText.overflow, TextOverflow.ellipsis); + checkError(195, highlightItemText.textAlign, TextAlign.center); + bool highlightItemTextIsTextStyle = checkError( + 196, + highlightItemText.style, + isA(), + ); + if (highlightItemTextIsTextStyle) { + final highlightItemTextStyle = + highlightItemText.style as TextStyle; + checkError(197, highlightItemTextStyle.color, Colors.white); + } + checkError(198, highlightItemText.data, name); + } + } + } + } + } + }); + testWidgets("Check if Account tab is rendered correctly", + (widgetTester) async { + FlutterError.onError = ignoreOverflowErrors; + const pageIndex = 0; + + await mockNetworkImagesFor( + () => widgetTester.pumpWidget( + MaterialApp( + home: AccountTab( + pageIndex: pageIndex, + updateIndex: (updateIndex) {}, + ), + ), + ), + ); + + final accountTabRowFinder = find.byKey( + const Key("account_tab_row"), + ); + bool accountTabRowIsAvailable = checkError( + 199, + accountTabRowFinder, + findsOneWidget, + ); + if (accountTabRowIsAvailable) { + bool accountTabRowIsRow = checkError( + 200, + accountTabRowFinder.evaluate().first.widget, + isA(), + ); + if (accountTabRowIsRow) { + final accountTabRow = + accountTabRowFinder.evaluate().first.widget as Row; + checkError(201, accountTabRow.children.length, tabs.length); + } + + tabs.asMap().forEach((key, value) { + final accountTabDecoratedBoxFinder = find.byKey( + Key("account_tab_decorated_box_$key"), + ); + bool accountTabDecoratedBoxIsAvailable = checkError( + 202, + find.descendant( + of: accountTabRowFinder, + matching: accountTabDecoratedBoxFinder, + ), + findsOneWidget, + ); + + if (accountTabDecoratedBoxIsAvailable) { + bool accountTabDecoratedBoxIsDecoratedBox = checkError( + 203, + accountTabDecoratedBoxFinder.evaluate().first.widget, + isA(), + ); + if (accountTabDecoratedBoxIsDecoratedBox) { + final accountTabDecoratedBox = accountTabDecoratedBoxFinder + .evaluate() + .first + .widget as DecoratedBox; + bool accountTabDecoratedBoxDecorationIsBoxDecoration = checkError( + 204, + accountTabDecoratedBox.decoration, + isA(), + ); + if (accountTabDecoratedBoxDecorationIsBoxDecoration) { + final accountTabDecoratedBoxDecoration = + accountTabDecoratedBox.decoration as BoxDecoration; + bool accountTabDecoratedBoxDecorationBorderIsBorder = checkError( + 205, + accountTabDecoratedBoxDecoration.border, + isA(), + ); + if (accountTabDecoratedBoxDecorationBorderIsBorder) { + final accountTabDecoratedBoxDecorationBorder = + accountTabDecoratedBoxDecoration.border as Border; + bool accountTabDecoratedBoxDecorationBorderBottomIsBorderSide = + checkError( + 206, + accountTabDecoratedBoxDecorationBorder.bottom, + isA(), + ); + if (accountTabDecoratedBoxDecorationBorderBottomIsBorderSide) { + final accountTabDecoratedBoxDecorationBorderBottom = + accountTabDecoratedBoxDecorationBorder.bottom; + checkError( + 207, + accountTabDecoratedBoxDecorationBorderBottom.color, + (pageIndex == key) ? Colors.white : Colors.transparent, + ); + checkError( + 208, + accountTabDecoratedBoxDecorationBorderBottom.width, + 2, + ); + } + } + } + } + final accountTabElevatedButtonFinder = find.byKey( + Key("account_tab_elevated_button_$key"), + ); + bool accountTabElevatedButtonIsAvailable = checkError( + 209, + find.descendant( + of: accountTabDecoratedBoxFinder, + matching: accountTabElevatedButtonFinder, + ), + findsOneWidget, + ); + if (accountTabElevatedButtonIsAvailable) { + bool accountTabElevatedButtonIsElevatedButton = checkError( + 210, + accountTabElevatedButtonFinder.evaluate().first.widget, + isA(), + ); + if (accountTabElevatedButtonIsElevatedButton) { + final accountTabElevatedButton = accountTabElevatedButtonFinder + .evaluate() + .first + .widget as ElevatedButton; + bool accountTabElevatedButtonStyleIsButtonStyle = checkError( + 211, + accountTabElevatedButton.style, + isA(), + ); + if (accountTabElevatedButtonStyleIsButtonStyle) { + final accountTabElevatedButtonStyle = + accountTabElevatedButton.style as ButtonStyle; + checkError( + 212, + accountTabElevatedButtonStyle.backgroundColor! + .resolve(states), + Colors.transparent, + ); + checkError( + 213, + accountTabElevatedButtonStyle.elevation!.resolve(states), + 0, + ); + } + } + final accountTabIconFinder = find.byKey( + Key("account_tab_icon_$key"), + ); + bool accountTabIconIsAvailable = checkError( + 214, + find.descendant( + of: accountTabElevatedButtonFinder, + matching: accountTabIconFinder, + ), + findsOneWidget, + ); + if (accountTabIconIsAvailable) { + bool accountTabIconIsIcon = checkError( + 215, + accountTabIconFinder.evaluate().first.widget, + isA(), + ); + if (accountTabIconIsIcon) { + final accountTabIcon = + accountTabIconFinder.evaluate().first.widget as Icon; + checkError(216, accountTabIcon.color, Colors.white); + checkError(217, accountTabIcon.icon, tabs[key]['icon']); + } + } + } + } + }); + } + }); + testWidgets('Check if Account posts thumbnail is present', + (WidgetTester tester) async { + FlutterError.onError = ignoreOverflowErrors; + const String imageUrl = "https://picsum.photos/250?image=9"; + // mock screen size + tester.binding.window.physicalSizeTestValue = const Size(375, 812); + await mockNetworkImagesFor( + () => tester.pumpWidget( + const MaterialApp( + home: PostThumbnail(imageUrl: imageUrl), + ), + ), + ); + + final postThumbnailContainerFinder = find.byKey( + const Key(imageUrl), + ); + checkError(218, postThumbnailContainerFinder, findsOneWidget); + + final postThumbnailContainer = + postThumbnailContainerFinder.evaluate().single.widget as Container; + checkError(219, postThumbnailContainer.decoration, isA()); + + final postThumbnailContainerDecoration = + postThumbnailContainer.decoration as BoxDecoration; + checkError( + 220, + postThumbnailContainerDecoration.image, + isA(), + ); + + final postThumbnailContainerDecorationImage = + postThumbnailContainerDecoration.image as DecorationImage; + checkError( + 221, + postThumbnailContainerDecorationImage.image, + isA(), + ); + checkError( + 222, + postThumbnailContainerDecorationImage.fit, + BoxFit.cover, + ); + + final postThumbnailContainerDecorationImageNetworkImage = + postThumbnailContainerDecorationImage.image as NetworkImage; + checkError( + 223, + postThumbnailContainerDecorationImageNetworkImage.url, + imageUrl, + ); + }); + + testWidgets('Check if Bottom Navbar is present', (WidgetTester tester) async { + FlutterError.onError = ignoreOverflowErrors; + + await mockNetworkImagesFor( + () => tester.pumpWidget( + MaterialApp( + home: AccountPage( + posts: posts, + stories: stories, + profileData: profileJson, + ), + ), + ), + ); + + int pageIndex = 4; + + List bottomItems = [ + pageIndex == 0 + ? "assets/images/home_active_icon.svg" + : "assets/images/home_icon.svg", + pageIndex == 1 + ? "assets/images/search_active_icon.svg" + : "assets/images/search_icon.svg", + pageIndex == 2 + ? "assets/images/upload_active_icon.svg" + : "assets/images/upload_icon.svg", + pageIndex == 3 + ? "assets/images/love_active_icon.svg" + : "assets/images/love_icon.svg", + pageIndex == 4 + ? "assets/images/account_active_icon.svg" + : "assets/images/account_icon.svg", + ]; + + final bottomNavigationBarContainer = + find.byKey(const Key('bottom_navigation_bar_container')); + checkError(224, bottomNavigationBarContainer, findsOneWidget); + + final bottomNavigationBarContainerFinder = + bottomNavigationBarContainer.evaluate().first.widget as Container; + checkError( + 225, bottomNavigationBarContainerFinder.constraints!.maxHeight, 55); + checkError(226, bottomNavigationBarContainerFinder.constraints!.maxWidth, + double.infinity); + checkError(227, bottomNavigationBarContainerFinder.color, Colors.black); + checkError(228, bottomNavigationBarContainerFinder.padding, + const EdgeInsets.only(left: 20, right: 20, bottom: 20, top: 15)); + + final bottomNavigationBarRowFinder = + find.byKey(const Key('bottom_navigation_bar_row')); + checkError( + 229, + find.descendant( + of: bottomNavigationBarContainer, + matching: bottomNavigationBarRowFinder), + findsOneWidget); + + final bottomNavigationBarRow = + bottomNavigationBarRowFinder.evaluate().first.widget as Row; + checkError(230, bottomNavigationBarRow.mainAxisAlignment, + MainAxisAlignment.spaceBetween); + checkError(231, bottomNavigationBarRow.children, hasLength(5)); + + bottomItems.asMap().forEach((index, value) { + final bottomItem = bottomNavigationBarRow.children[index] as InkWell; + checkError(232, bottomItem.onTap, isA()); + checkError(233, bottomItem.child, isA()); + + final bottomItemSvgPicture = bottomItem.child as SvgPicture; + checkError(234, bottomItemSvgPicture.pictureProvider.runtimeType, + ExactAssetPicture); + checkError(235, bottomItemSvgPicture.width, 27); + final bottomItemSvgPicturePictureProvider = + bottomItemSvgPicture.pictureProvider as ExactAssetPicture; + checkError(236, bottomItemSvgPicturePictureProvider.assetName, + bottomItems[index]); + }); + }); +} diff --git a/clone-instagram-login-Refactoring/test/calculator_test.dart b/clone-instagram-login-Refactoring/test/calculator_test.dart new file mode 100644 index 0000000..b128e0d --- /dev/null +++ b/clone-instagram-login-Refactoring/test/calculator_test.dart @@ -0,0 +1,39 @@ +import 'package:example_widget_testing/app/modules/calculator.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:network_image_mock/network_image_mock.dart'; + +import 'test_library.dart'; + +void main() { + testWidgets('Check if Calculator is functioning', + (WidgetTester tester) async { + FlutterError.onError = customFlutterErrorHandler; + + await mockNetworkImagesFor( + () => tester.pumpWidget( + const MaterialApp( + home: SimpleCalculator(), + ), + ), + ); + + const variableA = '2'; + const variableB = '3'; + const result = '5'; + final variableAField = find.byKey(const Key('variableA')); + final variableBField = find.byKey(const Key('variableB')); + var resultTextFinder = find.byKey(const Key('result')); + checkByKeyFindOneWidget(resultTextFinder); + + await tester.enterText(variableAField, variableA); + await tester.enterText(variableBField, variableB); + await tester.tap(find.byKey(const Key('addButton'))); + await tester.pumpAndSettle(); + + var resultText = resultTextFinder.evaluate().first.widget as Text; + checkByKeyIsWidget(resultText, isA()); + // expect(find.text(result), findsOneWidget); + checkWidgetProperty("data", resultTextFinder, resultText.data, result); + }); +} diff --git a/clone-instagram-login-Refactoring/test/helper.dart b/clone-instagram-login-Refactoring/test/helper.dart new file mode 100644 index 0000000..906fa9a --- /dev/null +++ b/clone-instagram-login-Refactoring/test/helper.dart @@ -0,0 +1,27 @@ +import 'package:flutter/material.dart'; + +void ignoreOverflowErrors( + FlutterErrorDetails details, { + bool forceReport = false, +}) { + bool ifIsOverflowError = false; + bool isUnableToLoadAsset = false; + + // Detect overflow error. + var exception = details.exception; + if (exception is FlutterError) { + ifIsOverflowError = !exception.diagnostics.any( + (e) => e.value.toString().startsWith("A RenderFlex overflowed by"), + ); + isUnableToLoadAsset = !exception.diagnostics.any( + (e) => e.value.toString().startsWith("Unable to load asset"), + ); + } + + // Ignore if is overflow error. + if (ifIsOverflowError || isUnableToLoadAsset) { + debugPrint('Ignored Error'); + } else { + FlutterError.dumpErrorToConsole(details, forceReport: forceReport); + } +} diff --git a/clone-instagram-login-Refactoring/test/search_page_test.dart b/clone-instagram-login-Refactoring/test/search_page_test.dart new file mode 100644 index 0000000..7be9110 --- /dev/null +++ b/clone-instagram-login-Refactoring/test/search_page_test.dart @@ -0,0 +1,326 @@ +import 'package:example_widget_testing/app/modules/search/search_page.dart'; +import 'package:example_widget_testing/app/widgets/post_thumbnail.dart'; +import 'package:example_widget_testing/core/theme/colors.dart'; +import 'package:example_widget_testing/core/values/constant/search_json.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:network_image_mock/network_image_mock.dart'; + +import 'helper.dart'; + +void checkError(int index, dynamic expected, dynamic matcher) { + try { + expect(expected, matcher); + } catch (e) { + debugPrint('Searchpage Test-$index failed:'); + debugPrint(e.toString()); + } +} + +void main() { + testWidgets('Check if Search page is present', (WidgetTester tester) async { + FlutterError.onError = ignoreOverflowErrors; + await mockNetworkImagesFor( + () => tester.pumpWidget( + MaterialApp( + home: SearchPage(searchPosts: searchImages), + ), + ), + ); + + final searchPageListviewFinder = find.byKey( + const Key('search_page_listview'), + ); + checkError( + 1, + searchPageListviewFinder, + findsOneWidget, + ); + }); + + testWidgets('Check if search textfield is present', + (WidgetTester tester) async { + FlutterError.onError = ignoreOverflowErrors; + await mockNetworkImagesFor( + () => tester.pumpWidget( + MaterialApp( + home: SearchPage(searchPosts: searchImages), + ), + ), + ); + + final searchPageListviewFinder = find.byKey( + const Key('search_page_listview'), + ); + + final searchPageTextfieldContainerFinder = find.byKey( + const Key('search_page_textfield_container'), + ); + // mock screen size + tester.binding.window.physicalSizeTestValue = const Size(375, 812); + checkError( + 2, + find.descendant( + of: searchPageListviewFinder, + matching: searchPageTextfieldContainerFinder, + ), + findsOneWidget); + final searchPageTextfieldContainer = searchPageTextfieldContainerFinder + .evaluate() + .single + .widget as Container; + + checkError( + 3, + searchPageTextfieldContainer.margin, + const EdgeInsets.only( + bottom: 15, + left: 15, + right: 15, + ), + ); + + checkError(4, searchPageTextfieldContainer.constraints!.maxHeight, 45.0); + checkError( + 5, + searchPageTextfieldContainer.decoration, + isA(), + ); + + final searchPageTextfieldContainerDecoration = + searchPageTextfieldContainer.decoration as BoxDecoration; + checkError( + 6, + searchPageTextfieldContainerDecoration.borderRadius, + const BorderRadius.all(Radius.circular(10)), + ); + checkError( + 7, + searchPageTextfieldContainerDecoration.color, + const Color(0xff262626), + ); + + final searchPageTextfieldFinder = find.byKey( + const Key('search_page_textfield'), + ); + checkError( + 8, + find.descendant( + of: searchPageListviewFinder, + matching: searchPageTextfieldFinder, + ), + findsOneWidget, + ); + + final searchPageTextfield = + searchPageTextfieldFinder.evaluate().single.widget as TextField; + checkError(9, searchPageTextfield.cursorColor, white.withOpacity(0.3)); + checkError(10, searchPageTextfield.style, isA()); + + final searchPageTextfieldStyle = searchPageTextfield.style as TextStyle; + checkError(11, searchPageTextfieldStyle.color, white.withOpacity(0.3)); + + checkError(12, searchPageTextfield.decoration, isA()); + + final searchPageTextfieldDecoration = + searchPageTextfield.decoration as InputDecoration; + checkError(13, searchPageTextfieldDecoration.border, InputBorder.none); + checkError(14, searchPageTextfieldDecoration.prefixIcon, isA()); + + final searchPageTextfieldPrefixIcon = + searchPageTextfieldDecoration.prefixIcon as Icon; + checkError(15, searchPageTextfieldPrefixIcon.icon, Icons.search); + checkError(16, searchPageTextfieldPrefixIcon.color, white.withOpacity(0.3)); + + final searchPageWrapFinder = find.byKey( + const Key('search_page_wrap'), + ); + checkError( + 17, + find.descendant( + of: searchPageListviewFinder, + matching: searchPageWrapFinder, + ), + findsOneWidget, + ); + + final searchPageWrap = + searchPageWrapFinder.evaluate().single.widget as Wrap; + checkError(18, searchPageWrap.spacing, 1); + checkError(19, searchPageWrap.runSpacing, 1); + checkError(20, searchPageWrap.children.length, searchImages.length); + }); + + testWidgets('Check if search posts is present', (WidgetTester tester) async { + FlutterError.onError = ignoreOverflowErrors; + await mockNetworkImagesFor( + () => tester.pumpWidget( + MaterialApp( + home: SearchPage(searchPosts: searchImages), + ), + ), + ); + + final searchPageListviewFinder = find.byKey( + const Key('search_page_listview'), + ); + final searchPageWrapFinder = find.byKey( + const Key('search_page_wrap'), + ); + checkError( + 21, + find.descendant( + of: searchPageListviewFinder, + matching: searchPageWrapFinder, + ), + findsOneWidget, + ); + checkError( + 22, + find.descendant( + of: searchPageWrapFinder, + matching: find.byType(Container), + ), + findsNWidgets(searchImages.length), + ); + }); + + testWidgets('Check if search posts thumbnail is present', + (WidgetTester tester) async { + FlutterError.onError = ignoreOverflowErrors; + const String imageUrl = "https://picsum.photos/250?image=9"; + // mock screen size + tester.binding.window.physicalSizeTestValue = const Size(375, 812); + await mockNetworkImagesFor( + () => tester.pumpWidget( + const MaterialApp( + home: PostThumbnail(imageUrl: imageUrl), + ), + ), + ); + + final postThumbnailContainerFinder = find.byKey( + const Key(imageUrl), + ); + checkError(23, postThumbnailContainerFinder, findsOneWidget); + + final postThumbnailContainer = + postThumbnailContainerFinder.evaluate().single.widget as Container; + checkError(24, postThumbnailContainer.decoration, isA()); + + final postThumbnailContainerDecoration = + postThumbnailContainer.decoration as BoxDecoration; + checkError( + 25, + postThumbnailContainerDecoration.image, + isA(), + ); + + final postThumbnailContainerDecorationImage = + postThumbnailContainerDecoration.image as DecorationImage; + checkError( + 26, + postThumbnailContainerDecorationImage.image, + isA(), + ); + checkError( + 27, + postThumbnailContainerDecorationImage.fit, + BoxFit.cover, + ); + + final postThumbnailContainerDecorationImageNetworkImage = + postThumbnailContainerDecorationImage.image as NetworkImage; + checkError( + 28, + postThumbnailContainerDecorationImageNetworkImage.url, + imageUrl, + ); + }); + + testWidgets('Check if Bottom Navbar is present', (WidgetTester tester) async { + FlutterError.onError = ignoreOverflowErrors; + + await mockNetworkImagesFor( + () => tester.pumpWidget( + MaterialApp( + home: SearchPage(searchPosts: searchImages), + ), + ), + ); + + int pageIndex = 1; + + final bottomItem2Finder = find.byKey( + const Key('bottom_item_1'), + ); + checkError(29, bottomItem2Finder, findsOneWidget); + + await tester.ensureVisible(bottomItem2Finder); + await tester.pumpAndSettle(); + await tester.tap(bottomItem2Finder); + + List bottomItems = [ + pageIndex == 0 + ? "assets/images/home_active_icon.svg" + : "assets/images/home_icon.svg", + pageIndex == 1 + ? "assets/images/search_active_icon.svg" + : "assets/images/search_icon.svg", + pageIndex == 2 + ? "assets/images/upload_active_icon.svg" + : "assets/images/upload_icon.svg", + pageIndex == 3 + ? "assets/images/love_active_icon.svg" + : "assets/images/love_icon.svg", + pageIndex == 4 + ? "assets/images/account_active_icon.svg" + : "assets/images/account_icon.svg", + ]; + + final bottomNavigationBarContainer = + find.byKey(const Key('bottom_navigation_bar_container')); + checkError(188, bottomNavigationBarContainer, findsOneWidget); + + final bottomNavigationBarContainerFinder = + bottomNavigationBarContainer.evaluate().first.widget as Container; + checkError( + 189, bottomNavigationBarContainerFinder.constraints!.maxHeight, 55); + checkError(190, bottomNavigationBarContainerFinder.constraints!.maxWidth, + double.infinity); + checkError(191, bottomNavigationBarContainerFinder.color, black); + checkError(192, bottomNavigationBarContainerFinder.padding, + const EdgeInsets.only(left: 20, right: 20, bottom: 20, top: 15)); + + final bottomNavigationBarRowFinder = + find.byKey(const Key('bottom_navigation_bar_row')); + checkError( + 193, + find.descendant( + of: bottomNavigationBarContainer, + matching: bottomNavigationBarRowFinder), + findsOneWidget); + + final bottomNavigationBarRow = + bottomNavigationBarRowFinder.evaluate().first.widget as Row; + checkError(194, bottomNavigationBarRow.mainAxisAlignment, + MainAxisAlignment.spaceBetween); + checkError(195, bottomNavigationBarRow.children, hasLength(5)); + + bottomItems.asMap().forEach((index, value) { + final bottomItem = bottomNavigationBarRow.children[index] as InkWell; + checkError(196, bottomItem.onTap, isA()); + checkError(197, bottomItem.child, isA()); + + final bottomItemSvgPicture = bottomItem.child as SvgPicture; + checkError(198, bottomItemSvgPicture.pictureProvider.runtimeType, + ExactAssetPicture); + checkError(199, bottomItemSvgPicture.width, 27); + final bottomItemSvgPicturePictureProvider = + bottomItemSvgPicture.pictureProvider as ExactAssetPicture; + checkError(200, bottomItemSvgPicturePictureProvider.assetName, + bottomItems[index]); + }); + }); +} diff --git a/clone-instagram-login-Refactoring/test/task_2_test.dart b/clone-instagram-login-Refactoring/test/task_2_test.dart new file mode 100644 index 0000000..40fdbe4 --- /dev/null +++ b/clone-instagram-login-Refactoring/test/task_2_test.dart @@ -0,0 +1,358 @@ +import 'package:example_widget_testing/app/modules/login/login_page.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'test_library.dart'; + +const List languages = [ + 'English', + 'Arabic', + 'Italian', + 'French' +]; + +void main() { + final states = {}; + + testWidgets('Check if language dropdown is present', (tester) async { + FlutterError.onError = customFlutterErrorHandler; + await tester.pumpWidget(const MaterialApp(home: LoginPage())); + final dropdownButtonFinder = find.byType(DropdownButton); + final dropdownButton = + dropdownButtonFinder.evaluate().first.widget as DropdownButton; + + checkByTypeFindOneWidget(dropdownButtonFinder); + checkWidgetProperty( + "dropdownColor", + dropdownButtonFinder, + dropdownButton.dropdownColor, + Colors.white, + ); + + checkWidgetProperty( + "color", + dropdownButtonFinder, + dropdownButton.style!.color, + Colors.black54, + ); + checkWidgetProperty( + "elevation", + dropdownButtonFinder, + dropdownButton.elevation, + 10, + ); + for (var language in languages) { + checkWidgetProperty( + "Text.data", + dropdownButtonFinder, + (dropdownButton.items! + .where((item) => item.value == language) + .first + .child as Text) + .data, + language, + ); + } + for (var language in languages) { + checkWidgetProperty( + "fontSize", + dropdownButtonFinder, + (dropdownButton.items! + .where((item) => item.value == language) + .first + .child as Text) + .style! + .fontSize, + 16, + ); + } + }); + + testWidgets('Check if username textbox is present', (tester) async { + FlutterError.onError = customFlutterErrorHandler; + tester.binding.window.physicalSizeTestValue = const Size(360, 640); + addTearDown(tester.binding.window.clearPhysicalSizeTestValue); + + await tester.pumpWidget(const MaterialApp(home: LoginPage())); + final usernameTextboxFinder = find.byKey(const Key('username_textfield')); + + final usernameTextbox = + usernameTextboxFinder.evaluate().first.widget as TextField; + checkByKeyFindOneWidget(usernameTextboxFinder); + checkWidgetProperty( + "hintText", + usernameTextboxFinder, + usernameTextbox.decoration!.hintText, + 'Phone number , email or username', + ); + checkWidgetProperty( + "fontSize", + usernameTextboxFinder, + usernameTextbox.style!.fontSize, + 15, + ); + }); + + testWidgets('Check if password textbox is present', (tester) async { + FlutterError.onError = customFlutterErrorHandler; + tester.binding.window.physicalSizeTestValue = const Size(360, 640); + addTearDown(tester.binding.window.clearPhysicalSizeTestValue); + + await tester.pumpWidget(const MaterialApp(home: LoginPage())); + + final passwordTextboxFinder = find.byKey(const Key('password_textfield')); + checkByKeyFindOneWidget(passwordTextboxFinder); + + final passwordTextbox = + passwordTextboxFinder.evaluate().first.widget as TextField; + checkWidgetProperty( + "hintText", + passwordTextboxFinder, + passwordTextbox.decoration!.hintText, + 'Password', + ); + + await tester.enterText(passwordTextboxFinder, 'password'); + checkWidgetProperty( + "obscureText", + passwordTextboxFinder, + passwordTextbox.obscureText, + true, + ); + }); + + testWidgets('Check if login button is present', (tester) async { + FlutterError.onError = customFlutterErrorHandler; + await tester.pumpWidget(const MaterialApp(home: LoginPage())); + + final loginButtonFinder = find.byKey( + const Key('login_button_elevated_button'), + ); + + final loginButton = + loginButtonFinder.evaluate().first.widget as ElevatedButton; + checkByKeyFindOneWidget(loginButtonFinder); + checkWidgetProperty( + "backgroundColor", + loginButtonFinder, + loginButton.style!.backgroundColor!.resolve(states), + const Color(0xff78c9ff), + ); + }); + + testWidgets('Check Forgot Login Text', (tester) async { + FlutterError.onError = customFlutterErrorHandler; + await tester.pumpWidget(const MaterialApp(home: LoginPage())); + + final forgotAccessFinder = find.byKey(const Key('forgot_access_text')); + checkByKeyFindOneWidget(forgotAccessFinder); + + final forgotAccessText = forgotAccessFinder.evaluate().first.widget as Text; + checkWidgetProperty( + "Text.data", + forgotAccessFinder, + forgotAccessText.data, + 'Forgot your login details? ', + ); + checkWidgetProperty( + "fontSize", + forgotAccessFinder, + forgotAccessText.style!.fontSize, + 13, + ); + checkWidgetProperty( + "color", + forgotAccessFinder, + forgotAccessText.style!.color, + Colors.black, + ); + checkWidgetProperty( + "fontWeight", + forgotAccessFinder, + forgotAccessText.style!.fontWeight, + FontWeight.normal, + ); + }); + + testWidgets('Check if Get Help text is present', (tester) async { + FlutterError.onError = customFlutterErrorHandler; + + await tester.pumpWidget(const MaterialApp(home: LoginPage())); + + final getHelpFinder = find.byKey(const Key('get_help_text')); + checkByKeyFindOneWidget(getHelpFinder); + + final getHelpText = getHelpFinder.evaluate().first.widget as Text; + checkWidgetProperty( + "Text.data", + getHelpFinder, + getHelpText.data, + 'Get help', + ); + checkWidgetProperty( + "fontSize", + getHelpFinder, + getHelpText.style!.fontSize, + 13, + ); + checkWidgetProperty( + "color", + getHelpFinder, + getHelpText.style!.color, + const Color(0xff002588), + ); + checkWidgetProperty( + "fontWeight", + getHelpFinder, + getHelpText.style!.fontWeight, + FontWeight.bold, + ); + }); + + testWidgets('Check if Facebook login is present', (tester) async { + FlutterError.onError = customFlutterErrorHandler; + + await tester.pumpWidget(const MaterialApp(home: LoginPage())); + + final facebookLoginFinder = find.byKey(const Key('facebook_login')); + checkByKeyFindOneWidget(facebookLoginFinder); + + final facebookLogo = find.byKey(const Key('facebook_logo')); + checkByKeyFindOneWidget(facebookLogo); + + final facebookTextFinder = find.byKey(const Key('facebook_login_text')); + checkByKeyFindOneWidget(facebookTextFinder); + + final facebookText = facebookTextFinder.evaluate().first.widget as Text; + checkWidgetProperty( + "Text.data", + facebookTextFinder, + facebookText.data, + 'Login with facebook', + ); + checkWidgetProperty( + "color", + facebookTextFinder, + facebookText.style!.color, + const Color(0xff1877f2), + ); + checkWidgetProperty( + "fontWeight", + facebookTextFinder, + facebookText.style!.fontWeight, + FontWeight.w800, + ); + }); + + testWidgets('Check if signup text is present', (tester) async { + FlutterError.onError = customFlutterErrorHandler; + + await tester.pumpWidget(const MaterialApp(home: LoginPage())); + + final signupSectionFinder = find.byKey(const Key('signup_section')); + checkByKeyFindOneWidget(signupSectionFinder); + + final signupSection = signupSectionFinder.evaluate().first.widget as Row; + checkWidgetProperty( + "mainAxisAlignment", + signupSectionFinder, + signupSection.mainAxisAlignment, + MainAxisAlignment.center, + ); + + final signupText = signupSection.children[0] as Text; + checkWidgetProperty( + "Text.data", + signupSectionFinder.first, + signupText.data, + "Don't have an account? ", + ); + + checkWidgetProperty( + "fontSize", + signupSectionFinder, + signupText.style!.fontSize, + tester.binding.window.physicalSize.width * .040 / 3, + ); + + final signupButton = signupSection.children[1] as TextButton; + final signupButtonText = signupButton.child as Text; + checkWidgetProperty( + "Text.data", + signupSectionFinder, + signupButtonText.data, + 'Sign up', + ); + checkWidgetProperty( + "color", + signupSectionFinder, + signupButtonText.style!.color, + const Color(0xff00258B), + ); + checkWidgetProperty( + "fontWeight", + signupSectionFinder, + signupButtonText.style!.fontWeight, + FontWeight.bold, + ); + checkWidgetProperty( + "fontSize", + signupSectionFinder, + signupButtonText.style!.fontSize, + tester.binding.window.physicalSize.width * .040 / 3, + ); + }); + + // test if login button is disabled when username and password are empty + testWidgets( + 'Check if login button is disabled when username and password are empty', + (tester) async { + FlutterError.onError = customFlutterErrorHandler; + await tester.pumpWidget(const MaterialApp(home: LoginPage())); + + final loginButtonFinder = find.byKey( + const Key('login_button_elevated_button'), + ); + + final loginButton = + loginButtonFinder.evaluate().first.widget as ElevatedButton; + checkByKeyFindOneWidget(loginButtonFinder); + checkWidgetProperty( + "backgroundColor", + loginButtonFinder, + loginButton.style!.backgroundColor!.resolve(states), + const Color(0xff78c9ff), + ); + }); + + // test if login button is enabled when username and password are not empty + // testWidgets( + // "Check if login button is enabled when username and password are filled", + // (tester) async { + // FlutterError.onError = customFlutterErrorHandler; + // await tester.pumpWidget(const MaterialApp(home: LoginPage())); + + // final loginButtonFinder = find.byKey( + // const Key('login_button_elevated_button'), + // ); + + // // find username textbox + // final usernameTextboxFinder = find.byKey(const Key('username_textfield')); + // // find password textbox + // final passwordTextboxFinder = find.byKey(const Key('password_textfield')); + + // // enter username + // await tester.enterText(usernameTextboxFinder, 'username'); + // // enter password + // await tester.enterText(passwordTextboxFinder, 'password'); + + // final loginButton = + // loginButtonFinder.evaluate().first.widget as ElevatedButton; + // checkByKeyFindOneWidget(loginButtonFinder); + // checkWidgetProperty( + // "backgroundColor", + // loginButtonFinder, + // loginButton.style!.backgroundColor!.resolve(states), + // const Color(0xff26A9FF), + // ); + // }); +} diff --git a/clone-instagram-login-Refactoring/test/task_3_test.dart b/clone-instagram-login-Refactoring/test/task_3_test.dart new file mode 100644 index 0000000..8330c93 --- /dev/null +++ b/clone-instagram-login-Refactoring/test/task_3_test.dart @@ -0,0 +1,348 @@ +import 'package:example_widget_testing/app/modules/activity/activity_page.dart'; +import 'package:example_widget_testing/app/modules/home/components/story_item.dart'; +import 'package:example_widget_testing/app/modules/home/home_page.dart'; +import 'package:example_widget_testing/app/modules/login/login_page.dart'; +import 'package:example_widget_testing/core/values/constant/profile_json.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:network_image_mock/network_image_mock.dart'; +import 'package:example_widget_testing/core/values/constant/story_json.dart'; +import 'package:example_widget_testing/core/theme/colors.dart'; +import 'package:example_widget_testing/core/values/constant/post_json.dart'; +import 'test_library.dart'; + +void main() { + testWidgets('Check if previous task 2 is finished', + (WidgetTester tester) async { + FlutterError.onError = unfinishedTaskErrorHandler; + await mockNetworkImagesFor( + () => tester.pumpWidget( + const MaterialApp( + home: LoginPage(), + ), + ), + ); + final loginPageFinder = find.byType(LoginPage); + checkByTypeFindOneWidget(loginPageFinder); + }); + + testWidgets('Check if home page is present', (WidgetTester tester) async { + FlutterError.onError = customFlutterErrorHandler; + await mockNetworkImagesFor( + () => tester.pumpWidget( + MaterialApp( + home: HomePage( + posts: posts, + profileData: profileJson, + stories: stories, + ), + ), + ), + ); + final homePageFinder = find.byType(HomePage); + checkByTypeFindOneWidget(homePageFinder); + }); + + testWidgets('Check if Home page Appbar is present', + (WidgetTester tester) async { + FlutterError.onError = customFlutterErrorHandler; + await mockNetworkImagesFor( + () => tester.pumpWidget( + MaterialApp( + home: HomePage( + posts: posts, profileData: profileJson, stories: stories), + ), + ), + ); + + final appBarFinder = find.byKey(const Key('home_page_appbar')); + checkByKeyFindOneWidget(appBarFinder); + + final appBar = appBarFinder.evaluate().first.widget as AppBar; + checkWidgetProperty( + "backgroundColor", appBar, appBar.backgroundColor, Colors.black); + checkByKeyIsWidget(appBar.leading, isA()); + + final appBarLeading = appBar.leading as Icon; + checkWidgetProperty("icon", appBar, appBarLeading.icon, Icons.camera_alt); + checkByKeyIsWidget(appBar.title, isA
()); + + final appBarTitle = appBar.title as Center; + checkByKeyIsWidget(appBarTitle.child, isA()); + checkByKeyIsWidget(appBar.actions, isA>()); + // checkError(9, appBar.actions?.length, 1); + + final appBarAction = appBar.actions?.first as Icon; + checkWidgetProperty("icon", appBar, appBarAction.icon, Icons.send); + }); + + testWidgets('Check if Story is present', (WidgetTester tester) async { + FlutterError.onError = customFlutterErrorHandler; + await mockNetworkImagesFor( + () => tester.pumpWidget( + MaterialApp( + home: HomePage( + posts: posts, + profileData: profileJson, + stories: stories, + ), + ), + ), + ); + + final storyFinder = find.byKey(const Key('following_stories_row')); + checkByKeyFindOneWidget(storyFinder); + + final story = storyFinder.evaluate().first.widget as Row; + checkByKeyIsWidget(story.children, isA>()); + checkWidgetProperty( + "length", storyFinder, story.children.length, stories.length); + checkByKeyIsWidget(story.children[0], isA()); + + stories.asMap().forEach((index, value) { + final storyItem = story.children[index] as StoryItem; + checkWidgetProperty("name", storyFinder, storyItem.name, value['name']); + checkWidgetProperty("img", storyFinder, storyItem.img, value['img']); + }); + }); + + testWidgets('Check if StoryItem rendered correctly', + (WidgetTester tester) async { + // Define test data + const String imageUrl = 'https://example.com/image.jpg'; + const String name = 'John Doe'; + + FlutterError.onError = customFlutterErrorHandler; + + await mockNetworkImagesFor(() => tester.pumpWidget( + const MaterialApp(home: StoryItem(img: imageUrl, name: name)))); + + // checkError(17, find.byType(Container), findsNWidgets(2)); + + final storyItemPaddingFinder = find.byKey(const Key('story_item_padding')); + checkByKeyFindOneWidget(storyItemPaddingFinder); + + final storyItemPadding = + storyItemPaddingFinder.evaluate().first.widget as Padding; + checkWidgetProperty( + "padding", + storyItemPaddingFinder, + storyItemPadding.padding, + const EdgeInsets.only(right: 20, bottom: 10), + ); + + final storyItemColumnFinder = find.byKey(const Key('story_item_column')); + checkByKeyFindOneWidget(storyItemColumnFinder); + checkWidgetDescendantProperty( + storyItemPaddingFinder, storyItemColumnFinder); + + final storyItemColumn = + storyItemColumnFinder.evaluate().first.widget as Column; + checkByKeyIsWidget(storyItemColumn.children, isA>()); + // checkError(23, storyItemColumn.children.length, 2); + + final storyItemContainerFinder = find.byKey( + const Key('story_item_container'), + ); + checkWidgetDescendantProperty( + storyItemColumnFinder, storyItemContainerFinder); + + final storyItemContainer = + storyItemContainerFinder.evaluate().first.widget as Container; + + checkWidgetProperty( + "width", + storyItemContainerFinder, + storyItemContainer.constraints!.widthConstraints(), + const BoxConstraints(minWidth: 68, maxWidth: 68), + ); + + checkWidgetProperty( + "margin", + storyItemContainerFinder, + storyItemContainer.margin, + const EdgeInsets.only(bottom: 8), + ); + + checkWidgetProperty( + "height", + storyItemContainerFinder, + storyItemContainer.constraints!.heightConstraints(), + const BoxConstraints(minHeight: 68, maxHeight: 68), + ); + + checkByKeyIsWidget(storyItemContainer.decoration, isA()); + + final storyItemContainerDecoration = + storyItemContainer.decoration as BoxDecoration; + checkWidgetProperty( + "shape", + storyItemContainerFinder, + storyItemContainerDecoration.shape, + BoxShape.circle, + ); + + checkByKeyIsWidget( + storyItemContainerDecoration.gradient, isA()); + final storyItemContainerGradient = + storyItemContainerDecoration.gradient as LinearGradient; + checkWidgetProperty( + "begin", + storyItemContainerFinder, + storyItemContainerGradient.begin, + Alignment.topCenter, + ); + checkWidgetProperty( + 'end', + storyItemContainerFinder, + storyItemContainerGradient.end, + Alignment.bottomCenter, + ); + checkWidgetProperty( + "colors", + storyItemContainerFinder, + storyItemContainerGradient.colors, + const [Color(0xFF9B2282), Color(0xFFEEA863)], + ); + + final storyItemImageContainerFinder = find.byKey( + const Key('story_item_image_container'), + ); + + checkWidgetDescendantProperty( + storyItemContainerFinder, storyItemImageContainerFinder); + + final storyItemImageContainer = + storyItemImageContainerFinder.evaluate().first.widget as Container; + + checkWidgetProperty( + "width", + storyItemImageContainerFinder, + storyItemImageContainer.constraints!.widthConstraints(), + const BoxConstraints(minWidth: 65, maxWidth: 65), + ); + + checkWidgetProperty( + "height", + storyItemImageContainerFinder, + storyItemImageContainer.constraints!.heightConstraints(), + const BoxConstraints(minHeight: 65, maxHeight: 65), + ); + + checkWidgetProperty( + "margin", + storyItemImageContainerFinder, + storyItemImageContainer.margin, + const EdgeInsets.all(3), + ); + + checkByKeyIsWidget( + storyItemImageContainer.decoration, isA()); + + final storyItemImageContainerDecoration = + storyItemImageContainer.decoration as BoxDecoration; + checkWidgetProperty( + "shape", + storyItemImageContainerFinder, + storyItemImageContainerDecoration.shape, + BoxShape.circle, + ); + checkWidgetProperty( + "border", + storyItemImageContainerFinder, + storyItemImageContainerDecoration.border, + const Border.fromBorderSide( + BorderSide( + color: black, + width: 2, + style: BorderStyle.solid, + ), + ), + ); + + checkByKeyIsWidget( + storyItemImageContainerDecoration.image, isA()); + + final storyItemImageContainerDecorationImage = + (storyItemImageContainer.decoration as BoxDecoration).image + as DecorationImage; + checkByKeyIsWidget( + storyItemImageContainerDecorationImage.image, isA()); + + checkWidgetProperty( + "fit", + storyItemImageContainerFinder, + storyItemImageContainerDecorationImage.fit, + BoxFit.cover, + ); + + final storyItemUsernameSizeBoxFinder = find.byKey( + const Key('story_item_username_sizedbox'), + ); + + checkWidgetDescendantProperty( + storyItemColumnFinder, storyItemUsernameSizeBoxFinder); + + final storyItemUsernameSizeBox = + storyItemUsernameSizeBoxFinder.evaluate().first.widget as SizedBox; + checkWidgetProperty( + "width", + storyItemUsernameSizeBoxFinder, + storyItemUsernameSizeBox.width, + 70, + ); + + final storyItemUsernameTextFinder = find.byKey( + const Key('story_item_username_text'), + ); + + checkWidgetDescendantProperty( + storyItemUsernameSizeBoxFinder, storyItemUsernameTextFinder); + + final storyItemUsernameText = + storyItemUsernameTextFinder.evaluate().first.widget as Text; + checkWidgetProperty( + "data", + storyItemUsernameTextFinder, + storyItemUsernameText.data, + name, + ); + checkWidgetProperty( + "overflow", + storyItemUsernameTextFinder, + storyItemUsernameText.overflow, + TextOverflow.ellipsis, + ); + checkWidgetProperty( + "color", + storyItemUsernameTextFinder, + storyItemUsernameText.style!.color, + white, + ); + }); + + testWidgets('Check if divider is present', (WidgetTester tester) async { + FlutterError.onError = customFlutterErrorHandler; + + await tester.pumpWidget( + MaterialApp( + home: HomePage( + posts: posts, + profileData: profileJson, + stories: stories, + ), + ), + ); + + final dividerFinder = find.byKey(const Key('home_page_divider')); + checkByKeyFindOneWidget(dividerFinder); + + final divider = dividerFinder.evaluate().first.widget as Divider; + checkWidgetProperty( + "color", + dividerFinder, + divider.color, + white.withOpacity(0.3), + ); + }); +} diff --git a/clone-instagram-login-Refactoring/test/task_4_test.dart b/clone-instagram-login-Refactoring/test/task_4_test.dart new file mode 100644 index 0000000..defa422 --- /dev/null +++ b/clone-instagram-login-Refactoring/test/task_4_test.dart @@ -0,0 +1,1199 @@ +import 'package:example_widget_testing/app/modules/home/components/story_item.dart'; +import 'package:example_widget_testing/app/modules/home/home_page.dart'; +import 'package:example_widget_testing/app/modules/login/login_page.dart'; +import 'package:example_widget_testing/app/widgets/post_item.dart'; +import 'package:example_widget_testing/core/theme/colors.dart'; +import 'package:example_widget_testing/core/values/constant/post_json.dart'; +import 'package:example_widget_testing/core/values/constant/profile_json.dart'; +import 'package:example_widget_testing/core/values/constant/story_json.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:network_image_mock/network_image_mock.dart'; + +import 'test_library.dart'; + +void main() { + testWidgets('Check if Task 2 is finished', (WidgetTester tester) async { + FlutterError.onError = unfinishedTaskErrorHandler; + await mockNetworkImagesFor( + () => tester.pumpWidget( + const MaterialApp( + home: LoginPage(), + ), + ), + ); + final loginPageFinder = find.byType(LoginPage); + checkByTypeFindOneWidget(loginPageFinder); + }); + + testWidgets('Check if Task 3 is finished', (WidgetTester tester) async { + FlutterError.onError = unfinishedTaskErrorHandler; + + await mockNetworkImagesFor( + () => tester.pumpWidget( + MaterialApp( + home: HomePage( + posts: posts, + profileData: profileJson, + stories: stories, + ), + ), + ), + ); + final homePageFinder = find.byType(HomePage); + checkByTypeFindOneWidget(homePageFinder); + + final appBarFinder = find.byKey(const Key('home_page_appbar')); + checkByKeyFindOneWidget(appBarFinder); + + final appBar = appBarFinder.evaluate().first.widget as AppBar; + checkWidgetProperty( + "backgroundColor", appBar, appBar.backgroundColor, Colors.black); + checkByKeyIsWidget(appBar.leading, isA()); + + final appBarLeading = appBar.leading as Icon; + checkWidgetProperty("icon", appBar, appBarLeading.icon, Icons.camera_alt); + checkByKeyIsWidget(appBar.title, isA
()); + + final appBarTitle = appBar.title as Center; + checkByKeyIsWidget(appBarTitle.child, isA()); + checkByKeyIsWidget(appBar.actions, isA>()); + // checkError(9, appBar.actions?.length, 1); + + final appBarAction = appBar.actions?.first as Icon; + checkWidgetProperty("icon", appBar, appBarAction.icon, Icons.send); + + final storyFinder = find.byKey(const Key('following_stories_row')); + checkByKeyFindOneWidget(storyFinder); + + final story = storyFinder.evaluate().first.widget as Row; + checkByKeyIsWidget(story.children, isA>()); + checkWidgetProperty( + "length", storyFinder, story.children.length, stories.length); + checkByKeyIsWidget(story.children[0], isA()); + + stories.asMap().forEach((index, value) { + final storyItem = story.children[index] as StoryItem; + checkWidgetProperty("name", storyFinder, storyItem.name, value['name']); + checkWidgetProperty("img", storyFinder, storyItem.img, value['img']); + }); + + const String imageUrl = 'https://example.com/image.jpg'; + const String name = 'John Doe'; + + FlutterError.onError = customFlutterErrorHandler; + + await mockNetworkImagesFor(() => tester.pumpWidget( + const MaterialApp(home: StoryItem(img: imageUrl, name: name)))); + + // checkError(17, find.byType(Container), findsNWidgets(2)); + + final storyItemPaddingFinder = find.byKey(const Key('story_item_padding')); + checkByKeyFindOneWidget(storyItemPaddingFinder); + + final storyItemPadding = + storyItemPaddingFinder.evaluate().first.widget as Padding; + checkWidgetProperty( + "padding", + storyItemPaddingFinder, + storyItemPadding.padding, + const EdgeInsets.only(right: 20, bottom: 10), + ); + + final storyItemColumnFinder = find.byKey(const Key('story_item_column')); + checkByKeyFindOneWidget(storyItemColumnFinder); + checkWidgetDescendantProperty( + storyItemPaddingFinder, storyItemColumnFinder); + + final storyItemColumn = + storyItemColumnFinder.evaluate().first.widget as Column; + checkByKeyIsWidget(storyItemColumn.children, isA>()); + // checkError(23, storyItemColumn.children.length, 2); + + final storyItemContainerFinder = find.byKey( + const Key('story_item_container'), + ); + checkWidgetDescendantProperty( + storyItemColumnFinder, storyItemContainerFinder); + + final storyItemContainer = + storyItemContainerFinder.evaluate().first.widget as Container; + + checkWidgetProperty( + "width", + storyItemContainerFinder, + storyItemContainer.constraints!.widthConstraints(), + const BoxConstraints(minWidth: 68, maxWidth: 68), + ); + + checkWidgetProperty( + "margin", + storyItemContainerFinder, + storyItemContainer.margin, + const EdgeInsets.only(bottom: 8), + ); + + checkWidgetProperty( + "height", + storyItemContainerFinder, + storyItemContainer.constraints!.heightConstraints(), + const BoxConstraints(minHeight: 68, maxHeight: 68), + ); + + checkByKeyIsWidget(storyItemContainer.decoration, isA()); + + final storyItemContainerDecoration = + storyItemContainer.decoration as BoxDecoration; + checkWidgetProperty( + "shape", + storyItemContainerFinder, + storyItemContainerDecoration.shape, + BoxShape.circle, + ); + + checkByKeyIsWidget( + storyItemContainerDecoration.gradient, isA()); + final storyItemContainerGradient = + storyItemContainerDecoration.gradient as LinearGradient; + checkWidgetProperty( + "begin", + storyItemContainerFinder, + storyItemContainerGradient.begin, + Alignment.topCenter, + ); + checkWidgetProperty( + 'end', + storyItemContainerFinder, + storyItemContainerGradient.end, + Alignment.bottomCenter, + ); + checkWidgetProperty( + "colors", + storyItemContainerFinder, + storyItemContainerGradient.colors, + const [Color(0xFF9B2282), Color(0xFFEEA863)], + ); + + final storyItemImageContainerFinder = find.byKey( + const Key('story_item_image_container'), + ); + + checkWidgetDescendantProperty( + storyItemContainerFinder, storyItemImageContainerFinder); + + final storyItemImageContainer = + storyItemImageContainerFinder.evaluate().first.widget as Container; + + checkWidgetProperty( + "width", + storyItemImageContainerFinder, + storyItemImageContainer.constraints!.widthConstraints(), + const BoxConstraints(minWidth: 65, maxWidth: 65), + ); + + checkWidgetProperty( + "height", + storyItemImageContainerFinder, + storyItemImageContainer.constraints!.heightConstraints(), + const BoxConstraints(minHeight: 65, maxHeight: 65), + ); + + checkWidgetProperty( + "margin", + storyItemImageContainerFinder, + storyItemImageContainer.margin, + const EdgeInsets.all(3), + ); + + checkByKeyIsWidget( + storyItemImageContainer.decoration, isA()); + + final storyItemImageContainerDecoration = + storyItemImageContainer.decoration as BoxDecoration; + checkWidgetProperty( + "shape", + storyItemImageContainerFinder, + storyItemImageContainerDecoration.shape, + BoxShape.circle, + ); + checkWidgetProperty( + "border", + storyItemImageContainerFinder, + storyItemImageContainerDecoration.border, + const Border.fromBorderSide( + BorderSide( + color: black, + width: 2, + style: BorderStyle.solid, + ), + ), + ); + + checkByKeyIsWidget( + storyItemImageContainerDecoration.image, isA()); + + final storyItemImageContainerDecorationImage = + (storyItemImageContainer.decoration as BoxDecoration).image + as DecorationImage; + checkByKeyIsWidget( + storyItemImageContainerDecorationImage.image, isA()); + + checkWidgetProperty( + "fit", + storyItemImageContainerFinder, + storyItemImageContainerDecorationImage.fit, + BoxFit.cover, + ); + + final storyItemUsernameSizeBoxFinder = find.byKey( + const Key('story_item_username_sizedbox'), + ); + + checkWidgetDescendantProperty( + storyItemColumnFinder, storyItemUsernameSizeBoxFinder); + + final storyItemUsernameSizeBox = + storyItemUsernameSizeBoxFinder.evaluate().first.widget as SizedBox; + checkWidgetProperty( + "width", + storyItemUsernameSizeBoxFinder, + storyItemUsernameSizeBox.width, + 70, + ); + + final storyItemUsernameTextFinder = find.byKey( + const Key('story_item_username_text'), + ); + + checkWidgetDescendantProperty( + storyItemUsernameSizeBoxFinder, storyItemUsernameTextFinder); + + final storyItemUsernameText = + storyItemUsernameTextFinder.evaluate().first.widget as Text; + checkWidgetProperty( + "data", + storyItemUsernameTextFinder, + storyItemUsernameText.data, + name, + ); + checkWidgetProperty( + "overflow", + storyItemUsernameTextFinder, + storyItemUsernameText.overflow, + TextOverflow.ellipsis, + ); + checkWidgetProperty( + "color", + storyItemUsernameTextFinder, + storyItemUsernameText.style!.color, + white, + ); + + await tester.pumpWidget( + MaterialApp( + home: HomePage( + posts: posts, + profileData: profileJson, + stories: stories, + ), + ), + ); + + final dividerFinder = find.byKey(const Key('home_page_divider')); + checkByKeyFindOneWidget(dividerFinder); + + final divider = dividerFinder.evaluate().first.widget as Divider; + checkWidgetProperty( + "color", + dividerFinder, + divider.color, + white.withOpacity(0.3), + ); + }); + + testWidgets('Check if Posts Column is present', (WidgetTester tester) async { + FlutterError.onError = customFlutterErrorHandler; + + await mockNetworkImagesFor( + () => tester.pumpWidget( + MaterialApp( + home: HomePage( + posts: posts, + profileData: profileJson, + stories: stories, + ), + ), + ), + ); + + final homePageColumnFinder = find.byKey(const Key('home_page_column')); + final postsColumnFinder = find.byKey(const Key('posts_column')); + checkWidgetDescendantProperty(homePageColumnFinder, postsColumnFinder); + checkByKeyFindOneWidget(postsColumnFinder); + + final postsColumn = postsColumnFinder.evaluate().first.widget as Column; + checkError(53, postsColumn.children.length, posts.length); + }); + + testWidgets( + 'Check if PostItem rendered correctly', + (WidgetTester tester) async { + FlutterError.onError = customFlutterErrorHandler; + await mockNetworkImagesFor( + () => tester.pumpWidget( + MaterialApp( + home: PostItem( + postImg: posts[0]['postImg'], + profileImg: posts[0]['profileImg'], + name: posts[0]['name'], + caption: posts[0]['caption'], + isLoved: posts[0]['isLoved'], + viewCount: posts[0]['commentCount'], + likedBy: posts[0]['likedBy'], + dayAgo: posts[0]['timeAgo'], + userPhoto: profile, + onPressed: () {}, + ), + ), + ), + ); + + final postItemPaddingFinder = find.byKey(const Key('post_item_padding')); + checkByKeyFindOneWidget(postItemPaddingFinder); + + final postItemPadding = + postItemPaddingFinder.evaluate().first.widget as Padding; + checkWidgetProperty( + "padding", + postItemPaddingFinder, + postItemPadding.padding, + const EdgeInsets.only(bottom: 10), + ); + + final postItemColumnFinder = find.byKey(const Key('post_item_column')); + checkWidgetDescendantProperty( + postItemPaddingFinder, postItemColumnFinder); + + final postItemColumn = + postItemColumnFinder.evaluate().first.widget as Column; + checkWidgetProperty( + "crossAxisAlignment", + postItemColumnFinder, + postItemColumn.crossAxisAlignment, + CrossAxisAlignment.start, + ); + // checkError(58, postItemColumn.children.length, 8); + + final postItemUserInfoContainerFinder = find.byKey( + const Key('post_item_user_info_container'), + ); + checkWidgetDescendantProperty( + postItemColumnFinder, postItemUserInfoContainerFinder); + + final postItemUserInfoContainer = + postItemUserInfoContainerFinder.evaluate().first.widget as Container; + checkWidgetProperty( + "padding", + postItemUserInfoContainerFinder, + postItemUserInfoContainer.padding, + const EdgeInsets.symmetric(vertical: 10, horizontal: 15), + ); + + checkWidgetProperty( + "margin", + postItemUserInfoContainerFinder, + postItemUserInfoContainer.margin, + const EdgeInsets.only(bottom: 12), + ); + + final postItemUserInfoRowFinder = find.byKey( + const Key('post_item_user_info_row'), + ); + checkWidgetDescendantProperty( + postItemUserInfoContainerFinder, postItemUserInfoRowFinder); + + final postItemUserInfoRow = + postItemUserInfoRowFinder.evaluate().first.widget as Row; + checkWidgetProperty( + "mainAxisAlignment", + postItemUserInfoRowFinder, + postItemUserInfoRow.mainAxisAlignment, + MainAxisAlignment.spaceBetween, + ); + // checkError(64, postItemUserInfoRow.children.length, 3); + + final postItemUserImgContainerFinder = find.byKey( + const Key('post_item_user_profile_img_container'), + ); + checkWidgetDescendantProperty( + postItemUserInfoRowFinder, postItemUserImgContainerFinder); + + final postItemUserImgContainer = + postItemUserImgContainerFinder.evaluate().first.widget as Container; + checkWidgetProperty( + "width", + postItemUserImgContainerFinder, + postItemUserImgContainer.constraints!.maxWidth, + 40, + ); + checkWidgetProperty( + "height", + postItemUserImgContainerFinder, + postItemUserImgContainer.constraints!.maxHeight, + 40, + ); + checkWidgetProperty( + "margin", + postItemUserImgContainerFinder, + postItemUserImgContainer.margin, + const EdgeInsets.only(right: 15), + ); + checkByKeyIsWidget( + postItemUserImgContainer.decoration, isA()); + + final postItemUserImgContainerDecoration = + postItemUserImgContainer.decoration as BoxDecoration; + checkWidgetProperty( + "shape", + postItemUserImgContainerFinder, + postItemUserImgContainerDecoration.shape, + BoxShape.circle, + ); + checkByKeyIsWidget( + postItemUserImgContainerDecoration.image, + isA(), + ); + + final postItemUserImgContainerDecorationImage = + postItemUserImgContainerDecoration.image as DecorationImage; + checkByKeyIsWidget( + postItemUserImgContainerDecorationImage.image, isA()); + checkWidgetProperty( + "fit", + postItemUserImgContainerFinder, + postItemUserImgContainerDecorationImage.fit, + BoxFit.cover, + ); + + final postItemUserImgContainerDecorationImageNetworkImage = + postItemUserImgContainerDecorationImage.image as NetworkImage; + checkWidgetProperty( + "ImageNetworkImage.url", + postItemUserImgContainerFinder, + postItemUserImgContainerDecorationImageNetworkImage.url, + posts[0]['profileImg'], + ); + + final postItemUserNameExpendedFinder = find.byKey( + const Key('post_item_user_name_expanded'), + ); + checkWidgetDescendantProperty( + postItemUserInfoRowFinder, postItemUserNameExpendedFinder); + + final postItemUserNameTextFinder = find.byKey( + const Key('post_item_user_name_text'), + ); + checkWidgetDescendantProperty( + postItemUserNameExpendedFinder, postItemUserNameTextFinder); + + final postItemUserNameText = + postItemUserNameTextFinder.evaluate().first.widget as Text; + checkWidgetProperty( + "data", + postItemUserNameTextFinder, + postItemUserNameText.data, + posts[0]['name'], + ); + checkByKeyIsWidget(postItemUserNameText.style, isA()); + + final postItemUserNameTextStyle = postItemUserNameText.style as TextStyle; + checkWidgetProperty( + "color", + postItemUserNameTextFinder, + postItemUserNameTextStyle.color, + Colors.white, + ); + checkWidgetProperty( + "fontWeight", + postItemUserNameTextFinder, + postItemUserNameTextStyle.fontWeight, + FontWeight.w500, + ); + checkWidgetProperty( + "fontSize", + postItemUserNameTextFinder, + postItemUserNameTextStyle.fontSize, + 15, + ); + + final postItemUserMoreIconFinder = find.byKey( + const Key('post_item_user_more_icon'), + ); + checkWidgetDescendantProperty( + postItemUserInfoRowFinder, postItemUserMoreIconFinder); + + final postItemUserMoreIcon = + postItemUserMoreIconFinder.evaluate().first.widget as Icon; + checkWidgetProperty( + "icon", + postItemUserMoreIconFinder, + postItemUserMoreIcon.icon, + Icons.more_horiz, + ); + checkWidgetProperty( + "color", + postItemUserMoreIconFinder, + postItemUserMoreIcon.color, + Colors.white, + ); + + final postItemImageContainerFinder = find.byKey( + const Key('post_item_image_container'), + ); + checkWidgetDescendantProperty( + postItemColumnFinder, postItemImageContainerFinder); + + final postItemImageContainer = + postItemImageContainerFinder.evaluate().first.widget as Container; + checkWidgetProperty( + "height", + postItemImageContainerFinder, + postItemImageContainer.constraints!.maxHeight, + 400, + ); + checkWidgetProperty( + "margin", + postItemImageContainerFinder, + postItemImageContainer.margin, + const EdgeInsets.only(bottom: 10), + ); + checkByKeyIsWidget( + postItemImageContainer.decoration, isA()); + + final postItemImageContainerDecoration = + postItemImageContainer.decoration as BoxDecoration; + checkByKeyIsWidget( + postItemImageContainerDecoration.image, isA()); + + final postItemImageContainerDecorationImage = + postItemImageContainerDecoration.image as DecorationImage; + checkByKeyIsWidget( + postItemImageContainerDecorationImage.image, isA()); + checkWidgetProperty( + "fit", + postItemImageContainerFinder, + postItemImageContainerDecorationImage.fit, + BoxFit.cover, + ); + + final postItemImageContainerDecorationImageNetworkImage = + postItemImageContainerDecorationImage.image as NetworkImage; + checkWidgetProperty( + "ImageNetworkImage.url", + postItemImageContainerFinder, + postItemImageContainerDecorationImageNetworkImage.url, + posts[0]['postImg'], + ); + + final postItemActionContainerFinder = + find.byKey(const Key('post_item_actions_container')); + checkWidgetDescendantProperty( + postItemColumnFinder, postItemActionContainerFinder); + + final postItemActionContainer = + postItemActionContainerFinder.evaluate().first.widget as Container; + checkWidgetProperty( + "padding", + postItemActionContainerFinder, + postItemActionContainer.padding, + const EdgeInsets.fromLTRB(15, 3, 15, 0), + ); + checkWidgetProperty( + "margin", + postItemActionContainerFinder, + postItemActionContainer.margin, + const EdgeInsets.only(bottom: 12), + ); + + final postItemActionRowFinder = find.byKey( + const Key('post_item_actions_row'), + ); + checkWidgetDescendantProperty( + postItemActionContainerFinder, + postItemActionRowFinder, + ); + + final postItemActionRow = + postItemActionRowFinder.evaluate().first.widget as Row; + checkWidgetProperty( + "mainAxisAlignment", + postItemActionRowFinder, + postItemActionRow.mainAxisAlignment, + MainAxisAlignment.spaceBetween, + ); + // checkError(98, postItemActionRow.children.length, 2); + + final postItemActionsLeftRowFinder = find.byKey( + const Key('post_item_actions_left_row'), + ); + checkWidgetDescendantProperty( + postItemActionRowFinder, postItemActionsLeftRowFinder); + + // final postItemActionsLeftRow = + // postItemActionsLeftRowFinder.evaluate().first.widget as Row; + // checkError(100, postItemActionsLeftRow.children.length, 5); + + final postItemActionsLoveIconFinder = find.byKey( + const Key('post_item_actions_love_icon'), + ); + checkWidgetDescendantProperty( + postItemActionsLeftRowFinder, postItemActionsLoveIconFinder); + + final postItemActionsLoveIcon = + postItemActionsLoveIconFinder.evaluate().first.widget as SvgPicture; + checkByKeyIsWidget(postItemActionsLoveIcon, isA()); + checkWidgetProperty( + "width", + postItemActionsLoveIconFinder, + postItemActionsLoveIcon.width, + 27, + ); + checkWidgetProperty( + "pictureProvider.runtimeType", + postItemActionsLoveIconFinder, + postItemActionsLoveIcon.pictureProvider.runtimeType, + ExactAssetPicture, + ); + + final postItemActionsLoveIconPictureProvider = + postItemActionsLoveIcon.pictureProvider as ExactAssetPicture; + checkWidgetProperty( + "assetName", + postItemActionsLoveIconFinder, + postItemActionsLoveIconPictureProvider.assetName, + posts[0]['isLoved'] + ? 'assets/images/loved_icon.svg' + : 'assets/images/love_icon.svg', + ); + final postItemActionsLeftRowSizeBox1Finder = find.byKey( + const Key('post_item_actions_left_row_sized_box_1'), + ); + checkWidgetDescendantProperty( + postItemActionsLeftRowFinder, postItemActionsLeftRowSizeBox1Finder); + + final postItemActionsLeftRowSizeBox1 = + postItemActionsLeftRowSizeBox1Finder.evaluate().first.widget + as SizedBox; + checkWidgetProperty( + "width", + postItemActionsLeftRowSizeBox1Finder, + postItemActionsLeftRowSizeBox1.width, + 20, + ); + + final postItemActionsCommentIconFinder = find.byKey( + const Key('post_item_actions_comment_icon'), + ); + checkWidgetDescendantProperty( + postItemActionsLeftRowFinder, postItemActionsCommentIconFinder); + + final postItemActionsCommentIcon = postItemActionsCommentIconFinder + .evaluate() + .first + .widget as SvgPicture; + checkByKeyIsWidget(postItemActionsCommentIcon, isA()); + checkWidgetProperty( + "width", + postItemActionsCommentIconFinder, + postItemActionsCommentIcon.width, + 27, + ); + checkWidgetProperty( + "pictureProvider.runtimeType", + postItemActionsCommentIconFinder, + postItemActionsCommentIcon.pictureProvider.runtimeType, + ExactAssetPicture, + ); + + final postItemActionsCommentIconPictureProvider = + postItemActionsCommentIcon.pictureProvider as ExactAssetPicture; + checkWidgetProperty( + "assetName", + postItemActionsCommentIconFinder, + postItemActionsCommentIconPictureProvider.assetName, + "assets/images/comment_icon.svg", + ); + + final postItemActionsLeftRowSizeBox2Finder = find.byKey( + const Key('post_item_actions_left_row_sized_box_2'), + ); + checkWidgetDescendantProperty( + postItemActionsLeftRowFinder, postItemActionsLeftRowSizeBox2Finder); + + final postItemActionsLeftRowSizeBox2 = + postItemActionsLeftRowSizeBox2Finder.evaluate().first.widget + as SizedBox; + checkWidgetProperty( + "width", + postItemActionsLeftRowSizeBox2Finder, + postItemActionsLeftRowSizeBox2.width, + 20, + ); + + final postItemActionsMessageIconFinder = find.byKey( + const Key('post_item_actions_message_icon'), + ); + checkWidgetDescendantProperty( + postItemActionsLeftRowFinder, postItemActionsMessageIconFinder); + + final postItemActionsMessageIcon = postItemActionsMessageIconFinder + .evaluate() + .first + .widget as SvgPicture; + checkByKeyIsWidget(postItemActionsMessageIcon, isA()); + checkWidgetProperty( + "width", + postItemActionsMessageIconFinder, + postItemActionsMessageIcon.width, + 27, + ); + checkWidgetProperty( + "pictureProvider.runtimeType", + postItemActionsMessageIconFinder, + postItemActionsMessageIcon.pictureProvider.runtimeType, + ExactAssetPicture, + ); + + final postItemActionsMessageIconPictureProvider = + postItemActionsMessageIcon.pictureProvider as ExactAssetPicture; + checkWidgetProperty( + "assetName", + postItemActionsMessageIconFinder, + postItemActionsMessageIconPictureProvider.assetName, + "assets/images/message_icon.svg", + ); + + final postItemActionsSaveIconFinder = find.byKey( + const Key('post_item_actions_save_icon'), + ); + checkWidgetDescendantProperty( + postItemActionRowFinder, postItemActionsSaveIconFinder); + + final postItemActionsSaveIcon = + postItemActionsSaveIconFinder.evaluate().first.widget as SvgPicture; + checkByKeyIsWidget(postItemActionsSaveIcon, isA()); + checkWidgetProperty( + "width", + postItemActionsSaveIconFinder, + postItemActionsSaveIcon.width, + 27, + ); + checkWidgetProperty( + "pictureProvider.runtimeType", + postItemActionsSaveIconFinder, + postItemActionsSaveIcon.pictureProvider.runtimeType, + ExactAssetPicture); + + final postItemActionsSaveIconPictureProvider = + postItemActionsSaveIcon.pictureProvider as ExactAssetPicture; + checkWidgetProperty( + "assetName", + postItemActionsSaveIconFinder, + postItemActionsSaveIconPictureProvider.assetName, + "assets/images/save_icon.svg", + ); + + final postItemCaptionContainerFinder = find.byKey( + const Key('post_item_caption_container'), + ); + checkWidgetDescendantProperty( + postItemColumnFinder, + postItemCaptionContainerFinder, + ); + + final postItemCaptionContainer = + postItemCaptionContainerFinder.evaluate().first.widget as Container; + checkByKeyIsWidget(postItemCaptionContainer, isA()); + checkWidgetProperty( + "padding", + postItemCaptionContainerFinder, + postItemCaptionContainer.padding, + const EdgeInsets.symmetric(horizontal: 15), + ); + checkWidgetProperty( + "margin", + postItemCaptionContainerFinder, + postItemCaptionContainer.margin, + const EdgeInsets.only(bottom: 12), + ); + + final postItemCaptionRichTextFinder = find.byKey( + const Key('post_item_caption_rich_text'), + ); + checkWidgetDescendantProperty( + postItemCaptionContainerFinder, postItemCaptionRichTextFinder); + + final postItemCaptionRichText = + postItemCaptionRichTextFinder.evaluate().first.widget as RichText; + checkByKeyIsWidget(postItemCaptionRichText.text, isA()); + + final postItemCaptionRichTextTextSpan = + postItemCaptionRichText.text as TextSpan; + // checkError(131, postItemCaptionRichTextTextSpan.children, hasLength(2)); + + final postItemCaptionRichTextTextSpanTextSpan1 = + postItemCaptionRichTextTextSpan.children![0] as TextSpan; + checkWidgetProperty( + "text", + postItemCaptionRichTextTextSpanTextSpan1, + postItemCaptionRichTextTextSpanTextSpan1.text, + posts[0]['name'] + ' '); + checkWidgetProperty( + "text", + postItemCaptionRichTextTextSpanTextSpan1, + postItemCaptionRichTextTextSpanTextSpan1.style, + const TextStyle(fontSize: 15, fontWeight: FontWeight.w700), + ); + + final postItemCaptionRichTextTextSpanTextSpan2 = + postItemCaptionRichTextTextSpan.children![1] as TextSpan; + checkWidgetProperty("text", postItemCaptionRichTextTextSpanTextSpan2, + postItemCaptionRichTextTextSpanTextSpan2.text, posts[0]['caption']); + checkWidgetProperty( + "text", + postItemCaptionRichTextTextSpanTextSpan2, + postItemCaptionRichTextTextSpanTextSpan2.style, + const TextStyle(fontSize: 15, fontWeight: FontWeight.w500), + ); + + final postItemViewCommentsContainerFinder = find.byKey( + const Key('post_item_view_comments_container'), + ); + checkWidgetDescendantProperty( + postItemColumnFinder, postItemViewCommentsContainerFinder); + + final postItemViewCommentsContainer = postItemViewCommentsContainerFinder + .evaluate() + .first + .widget as Container; + checkWidgetProperty( + "padding", + postItemViewCommentsContainerFinder, + postItemViewCommentsContainer.padding, + const EdgeInsets.symmetric(horizontal: 15), + ); + checkWidgetProperty( + "margin", + postItemViewCommentsContainerFinder, + postItemViewCommentsContainer.margin, + const EdgeInsets.only(bottom: 12), + ); + + final postItemViewCommentsTextFinder = find.byKey( + const Key('post_item_view_comments_text'), + ); + checkWidgetDescendantProperty( + postItemViewCommentsContainerFinder, postItemViewCommentsTextFinder); + + final postItemViewCommentsText = + postItemViewCommentsTextFinder.evaluate().first.widget as Text; + checkWidgetProperty( + "data", + postItemViewCommentsTextFinder, + postItemViewCommentsText.data, + "View ${posts[0]['commentCount']} comments", + ); + checkByKeyIsWidget(postItemViewCommentsText.style, isA()); + checkWidgetProperty( + "color", + postItemViewCommentsTextFinder, + postItemViewCommentsText.style!.color, + white.withOpacity(0.5), + ); + checkWidgetProperty( + "fontSize", + postItemViewCommentsTextFinder, + postItemViewCommentsText.style!.fontSize, + 15, + ); + checkWidgetProperty( + "fontWeight", + postItemViewCommentsTextFinder, + postItemViewCommentsText.style!.fontWeight, + FontWeight.w500, + ); + + final postItemAddCommentContainerFinder = find.byKey( + const Key('post_item_add_comment_container'), + ); + checkWidgetDescendantProperty( + postItemColumnFinder, postItemAddCommentContainerFinder); + + final postItemAddCommentContainer = postItemAddCommentContainerFinder + .evaluate() + .first + .widget as Container; + checkWidgetProperty( + "padding", + postItemAddCommentContainerFinder, + postItemAddCommentContainer.padding, + const EdgeInsets.symmetric(horizontal: 15), + ); + checkWidgetProperty( + "margin", + postItemAddCommentContainerFinder, + postItemAddCommentContainer.margin, + const EdgeInsets.only(bottom: 12), + ); + + final postItemAddCommentRowFinder = find.byKey( + const Key('post_item_add_comment_row'), + ); + checkWidgetDescendantProperty( + postItemAddCommentContainerFinder, postItemAddCommentRowFinder); + + final postItemAddCommentRow = + postItemAddCommentRowFinder.evaluate().first.widget as Row; + checkWidgetProperty( + "mainAxisAlignment", + postItemAddCommentRowFinder, + postItemAddCommentRow.mainAxisAlignment, + MainAxisAlignment.spaceBetween, + ); + // checkError(150, postItemAddCommentRow.children, hasLength(2)); + + final postItemAddCommentLeftRowFinder = find.byKey( + const Key('post_item_add_comment_left_row'), + ); + checkWidgetDescendantProperty( + postItemAddCommentRowFinder, postItemAddCommentLeftRowFinder); + + // final postItemAddCommentLeftRow = + // postItemAddCommentLeftRowFinder.evaluate().first.widget as Row; + // checkError(152, postItemAddCommentLeftRow.children, hasLength(2)); + + final postItemAddCommentAvatarContainerFinder = find.byKey( + const Key('post_item_add_comment_avatar_container'), + ); + checkWidgetDescendantProperty(postItemAddCommentLeftRowFinder, + postItemAddCommentAvatarContainerFinder); + + final postItemAddCommentAvatarContainer = + postItemAddCommentAvatarContainerFinder.evaluate().first.widget + as Container; + checkWidgetProperty( + "width", + postItemAddCommentAvatarContainerFinder, + postItemAddCommentAvatarContainer.constraints!.widthConstraints(), + const BoxConstraints(minWidth: 30, maxWidth: 30), + ); + checkWidgetProperty( + "height", + postItemAddCommentAvatarContainerFinder, + postItemAddCommentAvatarContainer.constraints!.heightConstraints(), + const BoxConstraints(minHeight: 30, maxHeight: 30), + ); + checkWidgetProperty( + "margin", + postItemAddCommentAvatarContainerFinder, + postItemAddCommentAvatarContainer.margin, + const EdgeInsets.only(right: 15), + ); + checkByKeyIsWidget( + postItemAddCommentAvatarContainer.decoration, isA()); + + final postItemAddCommentAvatarContainerDecoration = + postItemAddCommentAvatarContainer.decoration as BoxDecoration; + checkWidgetProperty( + "shape", + postItemAddCommentAvatarContainerFinder, + postItemAddCommentAvatarContainerDecoration.shape, + BoxShape.circle, + ); + checkByKeyIsWidget(postItemAddCommentAvatarContainerDecoration.image, + isA()); + + final postItemAddCommentAvatarContainerDecorationImage = + postItemAddCommentAvatarContainerDecoration.image as DecorationImage; + checkByKeyIsWidget(postItemAddCommentAvatarContainerDecorationImage.image, + isA()); + checkWidgetProperty( + "DecorationImage.fit", + postItemAddCommentAvatarContainerFinder, + postItemAddCommentAvatarContainerDecorationImage.fit, + BoxFit.cover, + ); + + final postItemAddCommentAvatarContainerDecorationImageNetworkImage = + postItemAddCommentAvatarContainerDecorationImage.image + as NetworkImage; + checkWidgetProperty( + "DecorationImageNetworkImage.url", + postItemAddCommentAvatarContainerFinder, + postItemAddCommentAvatarContainerDecorationImageNetworkImage.url, + profile, + ); + + final postItemAddCommentTextFinder = find.byKey( + const Key('post_item_add_comment_text'), + ); + checkWidgetDescendantProperty( + postItemAddCommentLeftRowFinder, postItemAddCommentTextFinder); + + final postItemAddCommentText = + postItemAddCommentTextFinder.evaluate().first.widget as Text; + checkWidgetProperty( + "data", + postItemAddCommentTextFinder, + postItemAddCommentText.data, + 'Add a comment...', + ); + checkByKeyIsWidget(postItemAddCommentText.style, isA()); + checkWidgetProperty( + "color", + postItemAddCommentTextFinder, + postItemAddCommentText.style!.color, + white.withOpacity(0.5), + ); + checkWidgetProperty( + "fontSize", + postItemAddCommentTextFinder, + postItemAddCommentText.style!.fontSize, + 15, + ); + checkWidgetProperty( + "fontWeight", + postItemAddCommentTextFinder, + postItemAddCommentText.style!.fontWeight, + FontWeight.w500, + ); + + final postItemAddCommentRightRowFinder = + find.byKey(const Key('post_item_add_comment_right_row')); + checkWidgetDescendantProperty( + postItemAddCommentRowFinder, postItemAddCommentRightRowFinder); + + // final postItemAddCommentRightRow = + // postItemAddCommentRightRowFinder.evaluate().first.widget as Row; + // checkError(170, postItemAddCommentRightRow.children, hasLength(5)); + + final postItemAddLaughEmojiTextFinder = find.byKey( + const Key('post_item_add_laugh_emoji_text'), + ); + checkWidgetDescendantProperty( + postItemAddCommentRightRowFinder, postItemAddLaughEmojiTextFinder); + + final postItemAddLaughEmojiText = + postItemAddLaughEmojiTextFinder.evaluate().first.widget as Text; + checkWidgetProperty( + "data", + postItemAddLaughEmojiTextFinder, + postItemAddLaughEmojiText.data, + '😂', + ); + checkWidgetProperty( + "style", + postItemAddLaughEmojiTextFinder, + postItemAddLaughEmojiText.style, + const TextStyle(fontSize: 20), + ); + + final postItemAddLoveEmojiTextFinder = find.byKey( + const Key('post_item_add_love_emoji_text'), + ); + checkWidgetDescendantProperty( + postItemAddCommentRightRowFinder, postItemAddLoveEmojiTextFinder); + + final postItemAddLoveEmojiText = + postItemAddLoveEmojiTextFinder.evaluate().first.widget as Text; + checkWidgetProperty( + "data", + postItemAddLoveEmojiTextFinder, + postItemAddLoveEmojiText.data, + '😍', + ); + checkWidgetProperty( + "style", + postItemAddLoveEmojiTextFinder, + postItemAddLoveEmojiText.style, + const TextStyle(fontSize: 20), + ); + + final postItemAddCircleIconFinder = find.byKey( + const Key('post_item_add_circle_icon'), + ); + checkWidgetDescendantProperty( + postItemAddCommentRightRowFinder, postItemAddCircleIconFinder); + + final postItemAddCircleIcon = + postItemAddCircleIconFinder.evaluate().first.widget as Icon; + checkWidgetProperty( + "icon", + postItemAddCircleIconFinder, + postItemAddCircleIcon.icon, + Icons.add_circle, + ); + checkWidgetProperty( + "size", + postItemAddCircleIconFinder, + postItemAddCircleIcon.size, + 18, + ); + checkWidgetProperty( + "color", + postItemAddCircleIconFinder, + postItemAddCircleIcon.color, + white.withOpacity(0.5), + ); + + final postItemDayAgoPaddingFinder = find.byKey( + const Key('post_item_day_ago_padding'), + ); + checkWidgetDescendantProperty( + postItemColumnFinder, postItemDayAgoPaddingFinder); + + final postItemDayAgoPadding = + postItemDayAgoPaddingFinder.evaluate().first.widget as Padding; + checkWidgetProperty( + "padding", + postItemDayAgoPaddingFinder, + postItemDayAgoPadding.padding, + const EdgeInsets.symmetric(horizontal: 15), + ); + + final postItemDayAgoTextFinder = find.byKey( + const Key('post_item_day_ago_text'), + ); + checkWidgetDescendantProperty( + postItemDayAgoPaddingFinder, postItemDayAgoTextFinder); + + final postItemDayAgoText = + postItemDayAgoTextFinder.evaluate().first.widget as Text; + checkWidgetProperty( + "data", + postItemDayAgoTextFinder, + postItemDayAgoText.data, + posts[0]['timeAgo'], + ); + checkWidgetProperty( + "color", + postItemDayAgoTextFinder, + postItemDayAgoText.style!.color, + white.withOpacity(0.5), + ); + checkWidgetProperty( + "fontSize", + postItemDayAgoTextFinder, + postItemDayAgoText.style!.fontSize, + 15, + ); + checkWidgetProperty( + "fontWeight", + postItemDayAgoTextFinder, + postItemDayAgoText.style!.fontWeight, + FontWeight.w500, + ); + }, + ); +} diff --git a/clone-instagram-login-Refactoring/test/task_5_test.dart b/clone-instagram-login-Refactoring/test/task_5_test.dart new file mode 100644 index 0000000..e8f4798 --- /dev/null +++ b/clone-instagram-login-Refactoring/test/task_5_test.dart @@ -0,0 +1,1295 @@ +import 'package:example_widget_testing/app/modules/home/components/story_item.dart'; +import 'package:example_widget_testing/app/modules/home/home_page.dart'; +import 'package:example_widget_testing/app/modules/login/login_page.dart'; +import 'package:example_widget_testing/app/widgets/post_item.dart'; +import 'package:example_widget_testing/core/theme/colors.dart'; +import 'package:example_widget_testing/core/values/constant/post_json.dart'; +import 'package:example_widget_testing/core/values/constant/profile_json.dart'; +import 'package:example_widget_testing/core/values/constant/story_json.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:network_image_mock/network_image_mock.dart'; + +import 'test_library.dart'; + +void main() { + testWidgets('Check if Task 2 is finished', (WidgetTester tester) async { + FlutterError.onError = unfinishedTaskErrorHandler; + await mockNetworkImagesFor( + () => tester.pumpWidget( + const MaterialApp( + home: LoginPage(), + ), + ), + ); + final loginPageFinder = find.byType(LoginPage); + checkByTypeFindOneWidget(loginPageFinder); + }); + + testWidgets('Check if Task 3 is finished', (WidgetTester tester) async { + FlutterError.onError = unfinishedTaskErrorHandler; + + await mockNetworkImagesFor( + () => tester.pumpWidget( + MaterialApp( + home: HomePage( + posts: posts, + profileData: profileJson, + stories: stories, + ), + ), + ), + ); + final homePageFinder = find.byType(HomePage); + checkByTypeFindOneWidget(homePageFinder); + + final appBarFinder = find.byKey(const Key('home_page_appbar')); + checkByKeyFindOneWidget(appBarFinder); + + final appBar = appBarFinder.evaluate().first.widget as AppBar; + checkWidgetProperty( + "backgroundColor", appBar, appBar.backgroundColor, Colors.black); + checkByKeyIsWidget(appBar.leading, isA()); + + final appBarLeading = appBar.leading as Icon; + checkWidgetProperty("icon", appBar, appBarLeading.icon, Icons.camera_alt); + checkByKeyIsWidget(appBar.title, isA
()); + + final appBarTitle = appBar.title as Center; + checkByKeyIsWidget(appBarTitle.child, isA()); + checkByKeyIsWidget(appBar.actions, isA>()); + // checkError(9, appBar.actions?.length, 1); + + final appBarAction = appBar.actions?.first as Icon; + checkWidgetProperty("icon", appBar, appBarAction.icon, Icons.send); + + final storyFinder = find.byKey(const Key('following_stories_row')); + checkByKeyFindOneWidget(storyFinder); + + final story = storyFinder.evaluate().first.widget as Row; + checkByKeyIsWidget(story.children, isA>()); + checkWidgetProperty( + "length", storyFinder, story.children.length, stories.length); + checkByKeyIsWidget(story.children[0], isA()); + + stories.asMap().forEach((index, value) { + final storyItem = story.children[index] as StoryItem; + checkWidgetProperty("name", storyFinder, storyItem.name, value['name']); + checkWidgetProperty("img", storyFinder, storyItem.img, value['img']); + }); + + const String imageUrl = 'https://example.com/image.jpg'; + const String name = 'John Doe'; + + FlutterError.onError = customFlutterErrorHandler; + + await mockNetworkImagesFor(() => tester.pumpWidget( + const MaterialApp(home: StoryItem(img: imageUrl, name: name)))); + + // checkError(17, find.byType(Container), findsNWidgets(2)); + + final storyItemPaddingFinder = find.byKey(const Key('story_item_padding')); + checkByKeyFindOneWidget(storyItemPaddingFinder); + + final storyItemPadding = + storyItemPaddingFinder.evaluate().first.widget as Padding; + checkWidgetProperty( + "padding", + storyItemPaddingFinder, + storyItemPadding.padding, + const EdgeInsets.only(right: 20, bottom: 10), + ); + + final storyItemColumnFinder = find.byKey(const Key('story_item_column')); + checkByKeyFindOneWidget(storyItemColumnFinder); + checkWidgetDescendantProperty( + storyItemPaddingFinder, storyItemColumnFinder); + + final storyItemColumn = + storyItemColumnFinder.evaluate().first.widget as Column; + checkByKeyIsWidget(storyItemColumn.children, isA>()); + // checkError(23, storyItemColumn.children.length, 2); + + final storyItemContainerFinder = find.byKey( + const Key('story_item_container'), + ); + checkWidgetDescendantProperty( + storyItemColumnFinder, storyItemContainerFinder); + + final storyItemContainer = + storyItemContainerFinder.evaluate().first.widget as Container; + + checkWidgetProperty( + "width", + storyItemContainerFinder, + storyItemContainer.constraints!.widthConstraints(), + const BoxConstraints(minWidth: 68, maxWidth: 68), + ); + + checkWidgetProperty( + "margin", + storyItemContainerFinder, + storyItemContainer.margin, + const EdgeInsets.only(bottom: 8), + ); + + checkWidgetProperty( + "height", + storyItemContainerFinder, + storyItemContainer.constraints!.heightConstraints(), + const BoxConstraints(minHeight: 68, maxHeight: 68), + ); + + checkByKeyIsWidget(storyItemContainer.decoration, isA()); + + final storyItemContainerDecoration = + storyItemContainer.decoration as BoxDecoration; + checkWidgetProperty( + "shape", + storyItemContainerFinder, + storyItemContainerDecoration.shape, + BoxShape.circle, + ); + + checkByKeyIsWidget( + storyItemContainerDecoration.gradient, isA()); + final storyItemContainerGradient = + storyItemContainerDecoration.gradient as LinearGradient; + checkWidgetProperty( + "begin", + storyItemContainerFinder, + storyItemContainerGradient.begin, + Alignment.topCenter, + ); + checkWidgetProperty( + 'end', + storyItemContainerFinder, + storyItemContainerGradient.end, + Alignment.bottomCenter, + ); + checkWidgetProperty( + "colors", + storyItemContainerFinder, + storyItemContainerGradient.colors, + const [Color(0xFF9B2282), Color(0xFFEEA863)], + ); + + final storyItemImageContainerFinder = find.byKey( + const Key('story_item_image_container'), + ); + + checkWidgetDescendantProperty( + storyItemContainerFinder, storyItemImageContainerFinder); + + final storyItemImageContainer = + storyItemImageContainerFinder.evaluate().first.widget as Container; + + checkWidgetProperty( + "width", + storyItemImageContainerFinder, + storyItemImageContainer.constraints!.widthConstraints(), + const BoxConstraints(minWidth: 65, maxWidth: 65), + ); + + checkWidgetProperty( + "height", + storyItemImageContainerFinder, + storyItemImageContainer.constraints!.heightConstraints(), + const BoxConstraints(minHeight: 65, maxHeight: 65), + ); + + checkWidgetProperty( + "margin", + storyItemImageContainerFinder, + storyItemImageContainer.margin, + const EdgeInsets.all(3), + ); + + checkByKeyIsWidget( + storyItemImageContainer.decoration, isA()); + + final storyItemImageContainerDecoration = + storyItemImageContainer.decoration as BoxDecoration; + checkWidgetProperty( + "shape", + storyItemImageContainerFinder, + storyItemImageContainerDecoration.shape, + BoxShape.circle, + ); + checkWidgetProperty( + "border", + storyItemImageContainerFinder, + storyItemImageContainerDecoration.border, + const Border.fromBorderSide( + BorderSide( + color: black, + width: 2, + style: BorderStyle.solid, + ), + ), + ); + + checkByKeyIsWidget( + storyItemImageContainerDecoration.image, isA()); + + final storyItemImageContainerDecorationImage = + (storyItemImageContainer.decoration as BoxDecoration).image + as DecorationImage; + checkByKeyIsWidget( + storyItemImageContainerDecorationImage.image, isA()); + + checkWidgetProperty( + "fit", + storyItemImageContainerFinder, + storyItemImageContainerDecorationImage.fit, + BoxFit.cover, + ); + + final storyItemUsernameSizeBoxFinder = find.byKey( + const Key('story_item_username_sizedbox'), + ); + + checkWidgetDescendantProperty( + storyItemColumnFinder, storyItemUsernameSizeBoxFinder); + + final storyItemUsernameSizeBox = + storyItemUsernameSizeBoxFinder.evaluate().first.widget as SizedBox; + checkWidgetProperty( + "width", + storyItemUsernameSizeBoxFinder, + storyItemUsernameSizeBox.width, + 70, + ); + + final storyItemUsernameTextFinder = find.byKey( + const Key('story_item_username_text'), + ); + + checkWidgetDescendantProperty( + storyItemUsernameSizeBoxFinder, storyItemUsernameTextFinder); + + final storyItemUsernameText = + storyItemUsernameTextFinder.evaluate().first.widget as Text; + checkWidgetProperty( + "data", + storyItemUsernameTextFinder, + storyItemUsernameText.data, + name, + ); + checkWidgetProperty( + "overflow", + storyItemUsernameTextFinder, + storyItemUsernameText.overflow, + TextOverflow.ellipsis, + ); + checkWidgetProperty( + "color", + storyItemUsernameTextFinder, + storyItemUsernameText.style!.color, + white, + ); + + await tester.pumpWidget( + MaterialApp( + home: HomePage( + posts: posts, + profileData: profileJson, + stories: stories, + ), + ), + ); + + final dividerFinder = find.byKey(const Key('home_page_divider')); + checkByKeyFindOneWidget(dividerFinder); + + final divider = dividerFinder.evaluate().first.widget as Divider; + checkWidgetProperty( + "color", + dividerFinder, + divider.color, + white.withOpacity(0.3), + ); + }); + + testWidgets('Check if Task 4 is finished', (WidgetTester tester) async { + FlutterError.onError = unfinishedTaskErrorHandler; + + await mockNetworkImagesFor( + () => tester.pumpWidget( + MaterialApp( + home: HomePage( + posts: posts, + profileData: profileJson, + stories: stories, + ), + ), + ), + ); + + final homePageColumnFinder = find.byKey(const Key('home_page_column')); + final postsColumnFinder = find.byKey(const Key('posts_column')); + checkWidgetDescendantProperty(homePageColumnFinder, postsColumnFinder); + checkByKeyFindOneWidget(postsColumnFinder); + + final postsColumn = postsColumnFinder.evaluate().first.widget as Column; + checkError(53, postsColumn.children.length, posts.length); + + await mockNetworkImagesFor( + () => tester.pumpWidget( + MaterialApp( + home: PostItem( + postImg: posts[0]['postImg'], + profileImg: posts[0]['profileImg'], + name: posts[0]['name'], + caption: posts[0]['caption'], + isLoved: posts[0]['isLoved'], + viewCount: posts[0]['commentCount'], + likedBy: posts[0]['likedBy'], + dayAgo: posts[0]['timeAgo'], + userPhoto: profile, + onPressed: () {}, + ), + ), + ), + ); + + final postItemPaddingFinder = find.byKey(const Key('post_item_padding')); + checkByKeyFindOneWidget(postItemPaddingFinder); + + final postItemPadding = + postItemPaddingFinder.evaluate().first.widget as Padding; + checkWidgetProperty( + "padding", + postItemPaddingFinder, + postItemPadding.padding, + const EdgeInsets.only(bottom: 10), + ); + + final postItemColumnFinder = find.byKey(const Key('post_item_column')); + checkWidgetDescendantProperty(postItemPaddingFinder, postItemColumnFinder); + + final postItemColumn = + postItemColumnFinder.evaluate().first.widget as Column; + checkWidgetProperty( + "crossAxisAlignment", + postItemColumnFinder, + postItemColumn.crossAxisAlignment, + CrossAxisAlignment.start, + ); + // checkError(58, postItemColumn.children.length, 8); + + final postItemUserInfoContainerFinder = find.byKey( + const Key('post_item_user_info_container'), + ); + checkWidgetDescendantProperty( + postItemColumnFinder, postItemUserInfoContainerFinder); + + final postItemUserInfoContainer = + postItemUserInfoContainerFinder.evaluate().first.widget as Container; + checkWidgetProperty( + "padding", + postItemUserInfoContainerFinder, + postItemUserInfoContainer.padding, + const EdgeInsets.symmetric(vertical: 10, horizontal: 15), + ); + + checkWidgetProperty( + "margin", + postItemUserInfoContainerFinder, + postItemUserInfoContainer.margin, + const EdgeInsets.only(bottom: 12), + ); + + final postItemUserInfoRowFinder = find.byKey( + const Key('post_item_user_info_row'), + ); + checkWidgetDescendantProperty( + postItemUserInfoContainerFinder, postItemUserInfoRowFinder); + + final postItemUserInfoRow = + postItemUserInfoRowFinder.evaluate().first.widget as Row; + checkWidgetProperty( + "mainAxisAlignment", + postItemUserInfoRowFinder, + postItemUserInfoRow.mainAxisAlignment, + MainAxisAlignment.spaceBetween, + ); + // checkError(64, postItemUserInfoRow.children.length, 3); + + final postItemUserImgContainerFinder = find.byKey( + const Key('post_item_user_profile_img_container'), + ); + checkWidgetDescendantProperty( + postItemUserInfoRowFinder, postItemUserImgContainerFinder); + + final postItemUserImgContainer = + postItemUserImgContainerFinder.evaluate().first.widget as Container; + checkWidgetProperty( + "width", + postItemUserImgContainerFinder, + postItemUserImgContainer.constraints!.maxWidth, + 40, + ); + checkWidgetProperty( + "height", + postItemUserImgContainerFinder, + postItemUserImgContainer.constraints!.maxHeight, + 40, + ); + checkWidgetProperty( + "margin", + postItemUserImgContainerFinder, + postItemUserImgContainer.margin, + const EdgeInsets.only(right: 15), + ); + checkByKeyIsWidget( + postItemUserImgContainer.decoration, isA()); + + final postItemUserImgContainerDecoration = + postItemUserImgContainer.decoration as BoxDecoration; + checkWidgetProperty( + "shape", + postItemUserImgContainerFinder, + postItemUserImgContainerDecoration.shape, + BoxShape.circle, + ); + checkByKeyIsWidget( + postItemUserImgContainerDecoration.image, + isA(), + ); + + final postItemUserImgContainerDecorationImage = + postItemUserImgContainerDecoration.image as DecorationImage; + checkByKeyIsWidget( + postItemUserImgContainerDecorationImage.image, isA()); + checkWidgetProperty( + "fit", + postItemUserImgContainerFinder, + postItemUserImgContainerDecorationImage.fit, + BoxFit.cover, + ); + + final postItemUserImgContainerDecorationImageNetworkImage = + postItemUserImgContainerDecorationImage.image as NetworkImage; + checkWidgetProperty( + "ImageNetworkImage.url", + postItemUserImgContainerFinder, + postItemUserImgContainerDecorationImageNetworkImage.url, + posts[0]['profileImg'], + ); + + final postItemUserNameExpendedFinder = find.byKey( + const Key('post_item_user_name_expanded'), + ); + checkWidgetDescendantProperty( + postItemUserInfoRowFinder, postItemUserNameExpendedFinder); + + final postItemUserNameTextFinder = find.byKey( + const Key('post_item_user_name_text'), + ); + checkWidgetDescendantProperty( + postItemUserNameExpendedFinder, postItemUserNameTextFinder); + + final postItemUserNameText = + postItemUserNameTextFinder.evaluate().first.widget as Text; + checkWidgetProperty( + "data", + postItemUserNameTextFinder, + postItemUserNameText.data, + posts[0]['name'], + ); + checkByKeyIsWidget(postItemUserNameText.style, isA()); + + final postItemUserNameTextStyle = postItemUserNameText.style as TextStyle; + checkWidgetProperty( + "color", + postItemUserNameTextFinder, + postItemUserNameTextStyle.color, + Colors.white, + ); + checkWidgetProperty( + "fontWeight", + postItemUserNameTextFinder, + postItemUserNameTextStyle.fontWeight, + FontWeight.w500, + ); + checkWidgetProperty( + "fontSize", + postItemUserNameTextFinder, + postItemUserNameTextStyle.fontSize, + 15, + ); + + final postItemUserMoreIconFinder = find.byKey( + const Key('post_item_user_more_icon'), + ); + checkWidgetDescendantProperty( + postItemUserInfoRowFinder, postItemUserMoreIconFinder); + + final postItemUserMoreIcon = + postItemUserMoreIconFinder.evaluate().first.widget as Icon; + checkWidgetProperty( + "icon", + postItemUserMoreIconFinder, + postItemUserMoreIcon.icon, + Icons.more_horiz, + ); + checkWidgetProperty( + "color", + postItemUserMoreIconFinder, + postItemUserMoreIcon.color, + Colors.white, + ); + + final postItemImageContainerFinder = find.byKey( + const Key('post_item_image_container'), + ); + checkWidgetDescendantProperty( + postItemColumnFinder, postItemImageContainerFinder); + + final postItemImageContainer = + postItemImageContainerFinder.evaluate().first.widget as Container; + checkWidgetProperty( + "height", + postItemImageContainerFinder, + postItemImageContainer.constraints!.maxHeight, + 400, + ); + checkWidgetProperty( + "margin", + postItemImageContainerFinder, + postItemImageContainer.margin, + const EdgeInsets.only(bottom: 10), + ); + checkByKeyIsWidget(postItemImageContainer.decoration, isA()); + + final postItemImageContainerDecoration = + postItemImageContainer.decoration as BoxDecoration; + checkByKeyIsWidget( + postItemImageContainerDecoration.image, isA()); + + final postItemImageContainerDecorationImage = + postItemImageContainerDecoration.image as DecorationImage; + checkByKeyIsWidget( + postItemImageContainerDecorationImage.image, isA()); + checkWidgetProperty( + "fit", + postItemImageContainerFinder, + postItemImageContainerDecorationImage.fit, + BoxFit.cover, + ); + + final postItemImageContainerDecorationImageNetworkImage = + postItemImageContainerDecorationImage.image as NetworkImage; + checkWidgetProperty( + "ImageNetworkImage.url", + postItemImageContainerFinder, + postItemImageContainerDecorationImageNetworkImage.url, + posts[0]['postImg'], + ); + + final postItemActionContainerFinder = + find.byKey(const Key('post_item_actions_container')); + checkWidgetDescendantProperty( + postItemColumnFinder, postItemActionContainerFinder); + + final postItemActionContainer = + postItemActionContainerFinder.evaluate().first.widget as Container; + checkWidgetProperty( + "padding", + postItemActionContainerFinder, + postItemActionContainer.padding, + const EdgeInsets.fromLTRB(15, 3, 15, 0), + ); + checkWidgetProperty( + "margin", + postItemActionContainerFinder, + postItemActionContainer.margin, + const EdgeInsets.only(bottom: 12), + ); + + final postItemActionRowFinder = find.byKey( + const Key('post_item_actions_row'), + ); + checkWidgetDescendantProperty( + postItemActionContainerFinder, + postItemActionRowFinder, + ); + + final postItemActionRow = + postItemActionRowFinder.evaluate().first.widget as Row; + checkWidgetProperty( + "mainAxisAlignment", + postItemActionRowFinder, + postItemActionRow.mainAxisAlignment, + MainAxisAlignment.spaceBetween, + ); + // checkError(98, postItemActionRow.children.length, 2); + + final postItemActionsLeftRowFinder = find.byKey( + const Key('post_item_actions_left_row'), + ); + checkWidgetDescendantProperty( + postItemActionRowFinder, postItemActionsLeftRowFinder); + + // final postItemActionsLeftRow = + // postItemActionsLeftRowFinder.evaluate().first.widget as Row; + // checkError(100, postItemActionsLeftRow.children.length, 5); + + final postItemActionsLoveIconFinder = find.byKey( + const Key('post_item_actions_love_icon'), + ); + checkWidgetDescendantProperty( + postItemActionsLeftRowFinder, postItemActionsLoveIconFinder); + + final postItemActionsLoveIcon = + postItemActionsLoveIconFinder.evaluate().first.widget as SvgPicture; + checkByKeyIsWidget(postItemActionsLoveIcon, isA()); + checkWidgetProperty( + "width", + postItemActionsLoveIconFinder, + postItemActionsLoveIcon.width, + 27, + ); + checkWidgetProperty( + "pictureProvider.runtimeType", + postItemActionsLoveIconFinder, + postItemActionsLoveIcon.pictureProvider.runtimeType, + ExactAssetPicture, + ); + + final postItemActionsLoveIconPictureProvider = + postItemActionsLoveIcon.pictureProvider as ExactAssetPicture; + checkWidgetProperty( + "assetName", + postItemActionsLoveIconFinder, + postItemActionsLoveIconPictureProvider.assetName, + posts[0]['isLoved'] + ? 'assets/images/loved_icon.svg' + : 'assets/images/love_icon.svg', + ); + final postItemActionsLeftRowSizeBox1Finder = find.byKey( + const Key('post_item_actions_left_row_sized_box_1'), + ); + checkWidgetDescendantProperty( + postItemActionsLeftRowFinder, postItemActionsLeftRowSizeBox1Finder); + + final postItemActionsLeftRowSizeBox1 = postItemActionsLeftRowSizeBox1Finder + .evaluate() + .first + .widget as SizedBox; + checkWidgetProperty( + "width", + postItemActionsLeftRowSizeBox1Finder, + postItemActionsLeftRowSizeBox1.width, + 20, + ); + + final postItemActionsCommentIconFinder = find.byKey( + const Key('post_item_actions_comment_icon'), + ); + checkWidgetDescendantProperty( + postItemActionsLeftRowFinder, postItemActionsCommentIconFinder); + + final postItemActionsCommentIcon = + postItemActionsCommentIconFinder.evaluate().first.widget as SvgPicture; + checkByKeyIsWidget(postItemActionsCommentIcon, isA()); + checkWidgetProperty( + "width", + postItemActionsCommentIconFinder, + postItemActionsCommentIcon.width, + 27, + ); + checkWidgetProperty( + "pictureProvider.runtimeType", + postItemActionsCommentIconFinder, + postItemActionsCommentIcon.pictureProvider.runtimeType, + ExactAssetPicture, + ); + + final postItemActionsCommentIconPictureProvider = + postItemActionsCommentIcon.pictureProvider as ExactAssetPicture; + checkWidgetProperty( + "assetName", + postItemActionsCommentIconFinder, + postItemActionsCommentIconPictureProvider.assetName, + "assets/images/comment_icon.svg", + ); + + final postItemActionsLeftRowSizeBox2Finder = find.byKey( + const Key('post_item_actions_left_row_sized_box_2'), + ); + checkWidgetDescendantProperty( + postItemActionsLeftRowFinder, postItemActionsLeftRowSizeBox2Finder); + + final postItemActionsLeftRowSizeBox2 = postItemActionsLeftRowSizeBox2Finder + .evaluate() + .first + .widget as SizedBox; + checkWidgetProperty( + "width", + postItemActionsLeftRowSizeBox2Finder, + postItemActionsLeftRowSizeBox2.width, + 20, + ); + + final postItemActionsMessageIconFinder = find.byKey( + const Key('post_item_actions_message_icon'), + ); + checkWidgetDescendantProperty( + postItemActionsLeftRowFinder, postItemActionsMessageIconFinder); + + final postItemActionsMessageIcon = + postItemActionsMessageIconFinder.evaluate().first.widget as SvgPicture; + checkByKeyIsWidget(postItemActionsMessageIcon, isA()); + checkWidgetProperty( + "width", + postItemActionsMessageIconFinder, + postItemActionsMessageIcon.width, + 27, + ); + checkWidgetProperty( + "pictureProvider.runtimeType", + postItemActionsMessageIconFinder, + postItemActionsMessageIcon.pictureProvider.runtimeType, + ExactAssetPicture, + ); + + final postItemActionsMessageIconPictureProvider = + postItemActionsMessageIcon.pictureProvider as ExactAssetPicture; + checkWidgetProperty( + "assetName", + postItemActionsMessageIconFinder, + postItemActionsMessageIconPictureProvider.assetName, + "assets/images/message_icon.svg", + ); + + final postItemActionsSaveIconFinder = find.byKey( + const Key('post_item_actions_save_icon'), + ); + checkWidgetDescendantProperty( + postItemActionRowFinder, postItemActionsSaveIconFinder); + + final postItemActionsSaveIcon = + postItemActionsSaveIconFinder.evaluate().first.widget as SvgPicture; + checkByKeyIsWidget(postItemActionsSaveIcon, isA()); + checkWidgetProperty( + "width", + postItemActionsSaveIconFinder, + postItemActionsSaveIcon.width, + 27, + ); + checkWidgetProperty( + "pictureProvider.runtimeType", + postItemActionsSaveIconFinder, + postItemActionsSaveIcon.pictureProvider.runtimeType, + ExactAssetPicture); + + final postItemActionsSaveIconPictureProvider = + postItemActionsSaveIcon.pictureProvider as ExactAssetPicture; + checkWidgetProperty( + "assetName", + postItemActionsSaveIconFinder, + postItemActionsSaveIconPictureProvider.assetName, + "assets/images/save_icon.svg", + ); + + final postItemCaptionContainerFinder = find.byKey( + const Key('post_item_caption_container'), + ); + checkWidgetDescendantProperty( + postItemColumnFinder, + postItemCaptionContainerFinder, + ); + + final postItemCaptionContainer = + postItemCaptionContainerFinder.evaluate().first.widget as Container; + checkByKeyIsWidget(postItemCaptionContainer, isA()); + checkWidgetProperty( + "padding", + postItemCaptionContainerFinder, + postItemCaptionContainer.padding, + const EdgeInsets.symmetric(horizontal: 15), + ); + checkWidgetProperty( + "margin", + postItemCaptionContainerFinder, + postItemCaptionContainer.margin, + const EdgeInsets.only(bottom: 12), + ); + + final postItemCaptionRichTextFinder = find.byKey( + const Key('post_item_caption_rich_text'), + ); + checkWidgetDescendantProperty( + postItemCaptionContainerFinder, postItemCaptionRichTextFinder); + + final postItemCaptionRichText = + postItemCaptionRichTextFinder.evaluate().first.widget as RichText; + checkByKeyIsWidget(postItemCaptionRichText.text, isA()); + + final postItemCaptionRichTextTextSpan = + postItemCaptionRichText.text as TextSpan; + // checkError(131, postItemCaptionRichTextTextSpan.children, hasLength(2)); + + final postItemCaptionRichTextTextSpanTextSpan1 = + postItemCaptionRichTextTextSpan.children![0] as TextSpan; + checkWidgetProperty("text", postItemCaptionRichTextTextSpanTextSpan1, + postItemCaptionRichTextTextSpanTextSpan1.text, posts[0]['name'] + ' '); + checkWidgetProperty( + "text", + postItemCaptionRichTextTextSpanTextSpan1, + postItemCaptionRichTextTextSpanTextSpan1.style, + const TextStyle(fontSize: 15, fontWeight: FontWeight.w700), + ); + + final postItemCaptionRichTextTextSpanTextSpan2 = + postItemCaptionRichTextTextSpan.children![1] as TextSpan; + checkWidgetProperty("text", postItemCaptionRichTextTextSpanTextSpan2, + postItemCaptionRichTextTextSpanTextSpan2.text, posts[0]['caption']); + checkWidgetProperty( + "text", + postItemCaptionRichTextTextSpanTextSpan2, + postItemCaptionRichTextTextSpanTextSpan2.style, + const TextStyle(fontSize: 15, fontWeight: FontWeight.w500), + ); + + final postItemViewCommentsContainerFinder = find.byKey( + const Key('post_item_view_comments_container'), + ); + checkWidgetDescendantProperty( + postItemColumnFinder, postItemViewCommentsContainerFinder); + + final postItemViewCommentsContainer = postItemViewCommentsContainerFinder + .evaluate() + .first + .widget as Container; + checkWidgetProperty( + "padding", + postItemViewCommentsContainerFinder, + postItemViewCommentsContainer.padding, + const EdgeInsets.symmetric(horizontal: 15), + ); + checkWidgetProperty( + "margin", + postItemViewCommentsContainerFinder, + postItemViewCommentsContainer.margin, + const EdgeInsets.only(bottom: 12), + ); + + final postItemViewCommentsTextFinder = find.byKey( + const Key('post_item_view_comments_text'), + ); + checkWidgetDescendantProperty( + postItemViewCommentsContainerFinder, postItemViewCommentsTextFinder); + + final postItemViewCommentsText = + postItemViewCommentsTextFinder.evaluate().first.widget as Text; + checkWidgetProperty( + "data", + postItemViewCommentsTextFinder, + postItemViewCommentsText.data, + "View ${posts[0]['commentCount']} comments", + ); + checkByKeyIsWidget(postItemViewCommentsText.style, isA()); + checkWidgetProperty( + "color", + postItemViewCommentsTextFinder, + postItemViewCommentsText.style!.color, + white.withOpacity(0.5), + ); + checkWidgetProperty( + "fontSize", + postItemViewCommentsTextFinder, + postItemViewCommentsText.style!.fontSize, + 15, + ); + checkWidgetProperty( + "fontWeight", + postItemViewCommentsTextFinder, + postItemViewCommentsText.style!.fontWeight, + FontWeight.w500, + ); + + final postItemAddCommentContainerFinder = find.byKey( + const Key('post_item_add_comment_container'), + ); + checkWidgetDescendantProperty( + postItemColumnFinder, postItemAddCommentContainerFinder); + + final postItemAddCommentContainer = + postItemAddCommentContainerFinder.evaluate().first.widget as Container; + checkWidgetProperty( + "padding", + postItemAddCommentContainerFinder, + postItemAddCommentContainer.padding, + const EdgeInsets.symmetric(horizontal: 15), + ); + checkWidgetProperty( + "margin", + postItemAddCommentContainerFinder, + postItemAddCommentContainer.margin, + const EdgeInsets.only(bottom: 12), + ); + + final postItemAddCommentRowFinder = find.byKey( + const Key('post_item_add_comment_row'), + ); + checkWidgetDescendantProperty( + postItemAddCommentContainerFinder, postItemAddCommentRowFinder); + + final postItemAddCommentRow = + postItemAddCommentRowFinder.evaluate().first.widget as Row; + checkWidgetProperty( + "mainAxisAlignment", + postItemAddCommentRowFinder, + postItemAddCommentRow.mainAxisAlignment, + MainAxisAlignment.spaceBetween, + ); + // checkError(150, postItemAddCommentRow.children, hasLength(2)); + + final postItemAddCommentLeftRowFinder = find.byKey( + const Key('post_item_add_comment_left_row'), + ); + checkWidgetDescendantProperty( + postItemAddCommentRowFinder, postItemAddCommentLeftRowFinder); + + // final postItemAddCommentLeftRow = + // postItemAddCommentLeftRowFinder.evaluate().first.widget as Row; + // checkError(152, postItemAddCommentLeftRow.children, hasLength(2)); + + final postItemAddCommentAvatarContainerFinder = find.byKey( + const Key('post_item_add_comment_avatar_container'), + ); + checkWidgetDescendantProperty(postItemAddCommentLeftRowFinder, + postItemAddCommentAvatarContainerFinder); + + final postItemAddCommentAvatarContainer = + postItemAddCommentAvatarContainerFinder.evaluate().first.widget + as Container; + checkWidgetProperty( + "width", + postItemAddCommentAvatarContainerFinder, + postItemAddCommentAvatarContainer.constraints!.widthConstraints(), + const BoxConstraints(minWidth: 30, maxWidth: 30), + ); + checkWidgetProperty( + "height", + postItemAddCommentAvatarContainerFinder, + postItemAddCommentAvatarContainer.constraints!.heightConstraints(), + const BoxConstraints(minHeight: 30, maxHeight: 30), + ); + checkWidgetProperty( + "margin", + postItemAddCommentAvatarContainerFinder, + postItemAddCommentAvatarContainer.margin, + const EdgeInsets.only(right: 15), + ); + checkByKeyIsWidget( + postItemAddCommentAvatarContainer.decoration, isA()); + + final postItemAddCommentAvatarContainerDecoration = + postItemAddCommentAvatarContainer.decoration as BoxDecoration; + checkWidgetProperty( + "shape", + postItemAddCommentAvatarContainerFinder, + postItemAddCommentAvatarContainerDecoration.shape, + BoxShape.circle, + ); + checkByKeyIsWidget(postItemAddCommentAvatarContainerDecoration.image, + isA()); + + final postItemAddCommentAvatarContainerDecorationImage = + postItemAddCommentAvatarContainerDecoration.image as DecorationImage; + checkByKeyIsWidget(postItemAddCommentAvatarContainerDecorationImage.image, + isA()); + checkWidgetProperty( + "DecorationImage.fit", + postItemAddCommentAvatarContainerFinder, + postItemAddCommentAvatarContainerDecorationImage.fit, + BoxFit.cover, + ); + + final postItemAddCommentAvatarContainerDecorationImageNetworkImage = + postItemAddCommentAvatarContainerDecorationImage.image as NetworkImage; + checkWidgetProperty( + "DecorationImageNetworkImage.url", + postItemAddCommentAvatarContainerFinder, + postItemAddCommentAvatarContainerDecorationImageNetworkImage.url, + profile, + ); + + final postItemAddCommentTextFinder = find.byKey( + const Key('post_item_add_comment_text'), + ); + checkWidgetDescendantProperty( + postItemAddCommentLeftRowFinder, postItemAddCommentTextFinder); + + final postItemAddCommentText = + postItemAddCommentTextFinder.evaluate().first.widget as Text; + checkWidgetProperty( + "data", + postItemAddCommentTextFinder, + postItemAddCommentText.data, + 'Add a comment...', + ); + checkByKeyIsWidget(postItemAddCommentText.style, isA()); + checkWidgetProperty( + "color", + postItemAddCommentTextFinder, + postItemAddCommentText.style!.color, + white.withOpacity(0.5), + ); + checkWidgetProperty( + "fontSize", + postItemAddCommentTextFinder, + postItemAddCommentText.style!.fontSize, + 15, + ); + checkWidgetProperty( + "fontWeight", + postItemAddCommentTextFinder, + postItemAddCommentText.style!.fontWeight, + FontWeight.w500, + ); + + final postItemAddCommentRightRowFinder = + find.byKey(const Key('post_item_add_comment_right_row')); + checkWidgetDescendantProperty( + postItemAddCommentRowFinder, postItemAddCommentRightRowFinder); + + // final postItemAddCommentRightRow = + // postItemAddCommentRightRowFinder.evaluate().first.widget as Row; + // checkError(170, postItemAddCommentRightRow.children, hasLength(5)); + + final postItemAddLaughEmojiTextFinder = find.byKey( + const Key('post_item_add_laugh_emoji_text'), + ); + checkWidgetDescendantProperty( + postItemAddCommentRightRowFinder, postItemAddLaughEmojiTextFinder); + + final postItemAddLaughEmojiText = + postItemAddLaughEmojiTextFinder.evaluate().first.widget as Text; + checkWidgetProperty( + "data", + postItemAddLaughEmojiTextFinder, + postItemAddLaughEmojiText.data, + '😂', + ); + checkWidgetProperty( + "style", + postItemAddLaughEmojiTextFinder, + postItemAddLaughEmojiText.style, + const TextStyle(fontSize: 20), + ); + + final postItemAddLoveEmojiTextFinder = find.byKey( + const Key('post_item_add_love_emoji_text'), + ); + checkWidgetDescendantProperty( + postItemAddCommentRightRowFinder, postItemAddLoveEmojiTextFinder); + + final postItemAddLoveEmojiText = + postItemAddLoveEmojiTextFinder.evaluate().first.widget as Text; + checkWidgetProperty( + "data", + postItemAddLoveEmojiTextFinder, + postItemAddLoveEmojiText.data, + '😍', + ); + checkWidgetProperty( + "style", + postItemAddLoveEmojiTextFinder, + postItemAddLoveEmojiText.style, + const TextStyle(fontSize: 20), + ); + + final postItemAddCircleIconFinder = find.byKey( + const Key('post_item_add_circle_icon'), + ); + checkWidgetDescendantProperty( + postItemAddCommentRightRowFinder, postItemAddCircleIconFinder); + + final postItemAddCircleIcon = + postItemAddCircleIconFinder.evaluate().first.widget as Icon; + checkWidgetProperty( + "icon", + postItemAddCircleIconFinder, + postItemAddCircleIcon.icon, + Icons.add_circle, + ); + checkWidgetProperty( + "size", + postItemAddCircleIconFinder, + postItemAddCircleIcon.size, + 18, + ); + checkWidgetProperty( + "color", + postItemAddCircleIconFinder, + postItemAddCircleIcon.color, + white.withOpacity(0.5), + ); + + final postItemDayAgoPaddingFinder = find.byKey( + const Key('post_item_day_ago_padding'), + ); + checkWidgetDescendantProperty( + postItemColumnFinder, postItemDayAgoPaddingFinder); + + final postItemDayAgoPadding = + postItemDayAgoPaddingFinder.evaluate().first.widget as Padding; + checkWidgetProperty( + "padding", + postItemDayAgoPaddingFinder, + postItemDayAgoPadding.padding, + const EdgeInsets.symmetric(horizontal: 15), + ); + + final postItemDayAgoTextFinder = find.byKey( + const Key('post_item_day_ago_text'), + ); + checkWidgetDescendantProperty( + postItemDayAgoPaddingFinder, postItemDayAgoTextFinder); + + final postItemDayAgoText = + postItemDayAgoTextFinder.evaluate().first.widget as Text; + checkWidgetProperty( + "data", + postItemDayAgoTextFinder, + postItemDayAgoText.data, + posts[0]['timeAgo'], + ); + checkWidgetProperty( + "color", + postItemDayAgoTextFinder, + postItemDayAgoText.style!.color, + white.withOpacity(0.5), + ); + checkWidgetProperty( + "fontSize", + postItemDayAgoTextFinder, + postItemDayAgoText.style!.fontSize, + 15, + ); + checkWidgetProperty( + "fontWeight", + postItemDayAgoTextFinder, + postItemDayAgoText.style!.fontWeight, + FontWeight.w500, + ); + }); + testWidgets('Check if Bottom Navbar is present', (WidgetTester tester) async { + FlutterError.onError = customFlutterErrorHandler; + + await mockNetworkImagesFor( + () => tester.pumpWidget( + MaterialApp( + home: HomePage( + posts: posts, + profileData: profileJson, + stories: stories, + ), + ), + ), + ); + + int pageIndex = 0; + + List bottomItems = [ + pageIndex == 0 + ? "assets/images/home_active_icon.svg" + : "assets/images/home_icon.svg", + pageIndex == 1 + ? "assets/images/search_active_icon.svg" + : "assets/images/search_icon.svg", + pageIndex == 2 + ? "assets/images/upload_active_icon.svg" + : "assets/images/upload_icon.svg", + pageIndex == 3 + ? "assets/images/love_active_icon.svg" + : "assets/images/love_icon.svg", + pageIndex == 4 + ? "assets/images/account_active_icon.svg" + : "assets/images/account_icon.svg", + ]; + + final bottomNavigationBarContainer = + find.byKey(const Key('bottom_navigation_bar_container')); + checkByKeyFindOneWidget(bottomNavigationBarContainer); + + final bottomNavigationBarContainerFinder = + bottomNavigationBarContainer.evaluate().first.widget as Container; + checkWidgetProperty( + "maxHeight", + bottomNavigationBarContainerFinder, + bottomNavigationBarContainerFinder.constraints!.maxHeight, + 55, + ); + checkWidgetProperty( + "maxWidth", + bottomNavigationBarContainerFinder, + bottomNavigationBarContainerFinder.constraints!.maxWidth, + double.infinity, + ); + checkWidgetProperty( + "color", + bottomNavigationBarContainerFinder, + bottomNavigationBarContainerFinder.color, + black, + ); + checkWidgetProperty( + "padding", + bottomNavigationBarContainerFinder, + bottomNavigationBarContainerFinder.padding, + const EdgeInsets.only(left: 20, right: 20, bottom: 20, top: 15), + ); + + final bottomNavigationBarRowFinder = + find.byKey(const Key('bottom_navigation_bar_row')); + checkWidgetDescendantProperty( + bottomNavigationBarContainer, + bottomNavigationBarRowFinder, + ); + + final bottomNavigationBarRow = + bottomNavigationBarRowFinder.evaluate().first.widget as Row; + checkWidgetProperty( + "mainAxisAlignment", + bottomNavigationBarRow, + bottomNavigationBarRow.mainAxisAlignment, + MainAxisAlignment.spaceBetween, + ); + // checkError(195, bottomNavigationBarRow.children, hasLength(5)); + + bottomItems.asMap().forEach((index, value) { + final bottomItem = bottomNavigationBarRow.children[index] as InkWell; + checkByKeyIsWidget(bottomItem.onTap, isA()); + checkByKeyIsWidget(bottomItem.child, isA()); + + final bottomItemSvgPicture = bottomItem.child as SvgPicture; + checkWidgetProperty( + "runtimeType", + bottomItemSvgPicture.pictureProvider, + bottomItemSvgPicture.pictureProvider.runtimeType, + ExactAssetPicture, + ); + checkWidgetProperty( + "width", + bottomItemSvgPicture, + bottomItemSvgPicture.width, + 27, + ); + + final bottomItemSvgPicturePictureProvider = + bottomItemSvgPicture.pictureProvider as ExactAssetPicture; + checkWidgetProperty( + "assetName", + bottomItemSvgPicturePictureProvider, + bottomItemSvgPicturePictureProvider.assetName, + bottomItems[index], + ); + }); + }); +} diff --git a/clone-instagram-login-Refactoring/test/test_library.dart b/clone-instagram-login-Refactoring/test/test_library.dart new file mode 100644 index 0000000..3f7aae1 --- /dev/null +++ b/clone-instagram-login-Refactoring/test/test_library.dart @@ -0,0 +1,157 @@ +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; + +const String divider = '======================================================'; + +String keyRetriever(String source) { + String key = source; + + int keyIndexBegin = source.indexOf("[<'"); + int keyIndexEnd = source.indexOf("'>]"); + + if (keyIndexBegin != -1 && + keyIndexEnd != -1 && + keyIndexEnd != -1 && + keyIndexEnd > keyIndexBegin + 3) { + key = source.substring(keyIndexBegin + 3, keyIndexEnd); + } + + return key; +} + +void customFlutterErrorHandler(FlutterErrorDetails details) { + if (details.exception is FlutterError && + details.exception.toString().contains('overflow')) { + return; + } + + debugPrint( + 'Terdapat error pada kode program anda\n${details.exceptionAsString()}'); + + FlutterError.presentError(details); + throw details.exception; +} + +void checkError(int index, dynamic expected, dynamic matcher) { + expect(expected, matcher, reason: 'Error at test no. $index'); +} + +// checkByTypeFindOneWidget +void checkByTypeFindOneWidget(Finder finder) { + const String trimString1 = 'zero widgets with type "'; + const String trimString2 = '" (ignoring offstage widgets)'; + + final finderMessage = + finder.toString().replaceAll(trimString1, '').replaceAll(trimString2, ''); + + expect(finder, findsOneWidget, + reason: "Penyebab: Widget $finderMessage Tidak ditemukan\n$divider"); +} + +void checkByTypeFindNWidget(Finder finder, int n) { + expect(finder, findsNWidgets(n), + reason: "Penyebab: Widget $finder Tidak ditemukan\n$divider"); +} + +// checkByKeyFindOneWidget +void checkByKeyFindOneWidget(Finder finder) { + const String trimString1 = "zero widgets with key [<'"; + const String trimString2 = "'>] (ignoring offstage widgets)"; + + final finderMessage = + finder.toString().replaceAll(trimString1, '').replaceAll(trimString2, ''); + + expect(finder, findsOneWidget, + reason: + "Penyebab: Widget dengan key '$finderMessage' tidak ditemukan, pastikan sudah menambahkan key pada widget dan pastikan key pada kode program sesuai dengan guide\n$divider"); +} + +// checkByKeyFindNWidget +void checkByKeyFindNWidget(Finder finder, int n, String reason) { + expect(finder, findsNWidgets(n), reason: reason); +} + +// checkByKeyFindNothing +void checkByKeyFindNothing(Finder finder, String reason) { + expect(finder, findsNothing, reason: reason); +} + +// checkFindTextOneWidget +void checkFindTextOneWidget(String text, String reason) { + expect(find.text(text), findsOneWidget, reason: reason); +} + +// checkFindTextNWidget +void checkFindTextNWidget(String text, int n, String reason) { + expect(find.text(text), findsNWidgets(n), reason: reason); +} + +// checkFindTextNothing +void checkFindTextNothing(String text, String reason) { + expect(find.text(text), findsNothing, reason: reason); +} + +// checkByKeyIsWidget +void checkByKeyIsWidget(dynamic finder, dynamic matcher) { + const matcherString1 = "Instance of 'TypeMatcher<"; + const matcherString2 = ">'"; + final matcherString = matcher + .toString() + .replaceAll(matcherString1, '') + .replaceAll(matcherString2, ''); + + String trimmedFinder = finder.toString(); + + var index = finder.toString().indexOf("-[<"); + if (index != -1) { + trimmedFinder = finder.toString().substring(0, index); + } + + String key = keyRetriever(finder.toString()); + + expect(finder, matcher, + reason: + "Penyebab: Widget yang seharusnya adalah : '$matcherString', namun ditemukan widget dengan tipe: '$trimmedFinder' untuk widget dengan key: '$key'\n$divider"); +} + +// checkWidgetProperty +void checkWidgetProperty(String property, dynamic finderWidget, + dynamic propertyValue, dynamic matcher) { + String key = keyRetriever(finderWidget.toString()); + + expect(propertyValue, matcher, + reason: + "Penyebab: Widget dengan key '$key' seharusnya memiliki properti $property dengan nilai '$matcher', namun nilai yang ditemukan adalah '$propertyValue'\n$divider"); +} + +// checkWidgetDecendantProperty +void checkWidgetDescendantProperty(dynamic parent, dynamic finder) { + String finderKey = keyRetriever(finder.toString()); + String parentKey = keyRetriever(parent.toString()); + expect( + find.descendant(of: parent, matching: finder), + findsOneWidget, + reason: + "Penyebab: Pada widget dengan key '$parentKey' Tidak ditemukan child widget dengan key '$finderKey'", + ); +} + +void checkPreviousTaskIsCompleted( + int index, dynamic expected, dynamic matcher) { + expect(expected, matcher, + reason: 'Task no. $index belum selesai, silahkan cek kembali\n$divider'); +} + +void unfinishedTaskErrorHandler(FlutterErrorDetails details) { + if (details.exception is FlutterError && + details.exception.toString().contains('overflow')) { + return; + } + + debugPrint( + 'Anda belum menyelesaikan task-task sebelumnya, silahkan kerjakan terlebih dahulu sebelum melanjutkan'); + + FlutterError.presentError(details); + throw details.exception; +} diff --git a/clone-instagram-login-Refactoring/web/favicon.png b/clone-instagram-login-Refactoring/web/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..8aaa46ac1ae21512746f852a42ba87e4165dfdd1 GIT binary patch literal 917 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|I14-?iy0X7 zltGxWVyS%@P(fs7NJL45ua8x7ey(0(N`6wRUPW#JP&EUCO@$SZnVVXYs8ErclUHn2 zVXFjIVFhG^g!Ppaz)DK8ZIvQ?0~DO|i&7O#^-S~(l1AfjnEK zjFOT9D}DX)@^Za$W4-*MbbUihOG|wNBYh(yU7!lx;>x^|#0uTKVr7USFmqf|i<65o z3raHc^AtelCMM;Vme?vOfh>Xph&xL%(-1c06+^uR^q@XSM&D4+Kp$>4P^%3{)XKjo zGZknv$b36P8?Z_gF{nK@`XI}Z90TzwSQO}0J1!f2c(B=V`5aP@1P1a|PZ!4!3&Gl8 zTYqUsf!gYFyJnXpu0!n&N*SYAX-%d(5gVjrHJWqXQshj@!Zm{!01WsQrH~9=kTxW#6SvuapgMqt>$=j#%eyGrQzr zP{L-3gsMA^$I1&gsBAEL+vxi1*Igl=8#8`5?A-T5=z-sk46WA1IUT)AIZHx1rdUrf zVJrJn<74DDw`j)Ki#gt}mIT-Q`XRa2-jQXQoI%w`nb|XblvzK${ZzlV)m-XcwC(od z71_OEC5Bt9GEXosOXaPTYOia#R4ID2TiU~`zVMl08TV_C%DnU4^+HE>9(CE4D6?Fz oujB08i7adh9xk7*FX66dWH6F5TM;?E2b5PlUHx3vIVCg!0Dx9vYXATM literal 0 HcmV?d00001 diff --git a/clone-instagram-login-Refactoring/web/icons/Icon-192.png b/clone-instagram-login-Refactoring/web/icons/Icon-192.png new file mode 100644 index 0000000000000000000000000000000000000000..b749bfef07473333cf1dd31e9eed89862a5d52aa GIT binary patch literal 5292 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 literal 0 HcmV?d00001 diff --git a/clone-instagram-login-Refactoring/web/icons/Icon-512.png b/clone-instagram-login-Refactoring/web/icons/Icon-512.png new file mode 100644 index 0000000000000000000000000000000000000000..88cfd48dff1169879ba46840804b412fe02fefd6 GIT binary patch literal 8252 zcmd5=2T+s!lYZ%-(h(2@5fr2dC?F^$C=i-}R6$UX8af(!je;W5yC_|HmujSgN*6?W z3knF*TL1$|?oD*=zPbBVex*RUIKsL<(&Rj9%^UD2IK3W?2j>D?eWQgvS-HLymHo9%~|N2Q{~j za?*X-{b9JRowv_*Mh|;*-kPFn>PI;r<#kFaxFqbn?aq|PduQg=2Q;~Qc}#z)_T%x9 zE|0!a70`58wjREmAH38H1)#gof)U3g9FZ^ zF7&-0^Hy{4XHWLoC*hOG(dg~2g6&?-wqcpf{ z&3=o8vw7lMi22jCG9RQbv8H}`+}9^zSk`nlR8?Z&G2dlDy$4#+WOlg;VHqzuE=fM@ z?OI6HEJH4&tA?FVG}9>jAnq_^tlw8NbjNhfqk2rQr?h(F&WiKy03Sn=-;ZJRh~JrD zbt)zLbnabttEZ>zUiu`N*u4sfQaLE8-WDn@tHp50uD(^r-}UsUUu)`!Rl1PozAc!a z?uj|2QDQ%oV-jxUJmJycySBINSKdX{kDYRS=+`HgR2GO19fg&lZKyBFbbXhQV~v~L za^U944F1_GtuFXtvDdDNDvp<`fqy);>Vw=ncy!NB85Tw{&sT5&Ox%-p%8fTS;OzlRBwErvO+ROe?{%q-Zge=%Up|D4L#>4K@Ke=x%?*^_^P*KD zgXueMiS63!sEw@fNLB-i^F|@Oib+S4bcy{eu&e}Xvb^(mA!=U=Xr3||IpV~3K zQWzEsUeX_qBe6fky#M zzOJm5b+l;~>=sdp%i}}0h zO?B?i*W;Ndn02Y0GUUPxERG`3Bjtj!NroLoYtyVdLtl?SE*CYpf4|_${ku2s`*_)k zN=a}V8_2R5QANlxsq!1BkT6$4>9=-Ix4As@FSS;1q^#TXPrBsw>hJ}$jZ{kUHoP+H zvoYiR39gX}2OHIBYCa~6ERRPJ#V}RIIZakUmuIoLF*{sO8rAUEB9|+A#C|@kw5>u0 zBd=F!4I)Be8ycH*)X1-VPiZ+Ts8_GB;YW&ZFFUo|Sw|x~ZajLsp+_3gv((Q#N>?Jz zFBf`~p_#^${zhPIIJY~yo!7$-xi2LK%3&RkFg}Ax)3+dFCjGgKv^1;lUzQlPo^E{K zmCnrwJ)NuSaJEmueEPO@(_6h3f5mFffhkU9r8A8(JC5eOkux{gPmx_$Uv&|hyj)gN zd>JP8l2U&81@1Hc>#*su2xd{)T`Yw< zN$dSLUN}dfx)Fu`NcY}TuZ)SdviT{JHaiYgP4~@`x{&h*Hd>c3K_To9BnQi@;tuoL z%PYQo&{|IsM)_>BrF1oB~+`2_uZQ48z9!)mtUR zdfKE+b*w8cPu;F6RYJiYyV;PRBbThqHBEu_(U{(gGtjM}Zi$pL8Whx}<JwE3RM0F8x7%!!s)UJVq|TVd#hf1zVLya$;mYp(^oZQ2>=ZXU1c$}f zm|7kfk>=4KoQoQ!2&SOW5|JP1)%#55C$M(u4%SP~tHa&M+=;YsW=v(Old9L3(j)`u z2?#fK&1vtS?G6aOt@E`gZ9*qCmyvc>Ma@Q8^I4y~f3gs7*d=ATlP>1S zyF=k&6p2;7dn^8?+!wZO5r~B+;@KXFEn^&C=6ma1J7Au6y29iMIxd7#iW%=iUzq&C=$aPLa^Q zncia$@TIy6UT@69=nbty5epP>*fVW@5qbUcb2~Gg75dNd{COFLdiz3}kODn^U*=@E z0*$7u7Rl2u)=%fk4m8EK1ctR!6%Ve`e!O20L$0LkM#f+)n9h^dn{n`T*^~d+l*Qlx z$;JC0P9+en2Wlxjwq#z^a6pdnD6fJM!GV7_%8%c)kc5LZs_G^qvw)&J#6WSp< zmsd~1-(GrgjC56Pdf6#!dt^y8Rg}!#UXf)W%~PeU+kU`FeSZHk)%sFv++#Dujk-~m zFHvVJC}UBn2jN& zs!@nZ?e(iyZPNo`p1i#~wsv9l@#Z|ag3JR>0#u1iW9M1RK1iF6-RbJ4KYg?B`dET9 zyR~DjZ>%_vWYm*Z9_+^~hJ_|SNTzBKx=U0l9 z9x(J96b{`R)UVQ$I`wTJ@$_}`)_DyUNOso6=WOmQKI1e`oyYy1C&%AQU<0-`(ow)1 zT}gYdwWdm4wW6|K)LcfMe&psE0XGhMy&xS`@vLi|1#Za{D6l@#D!?nW87wcscUZgELT{Cz**^;Zb~7 z(~WFRO`~!WvyZAW-8v!6n&j*PLm9NlN}BuUN}@E^TX*4Or#dMMF?V9KBeLSiLO4?B zcE3WNIa-H{ThrlCoN=XjOGk1dT=xwwrmt<1a)mrRzg{35`@C!T?&_;Q4Ce=5=>z^*zE_c(0*vWo2_#TD<2)pLXV$FlwP}Ik74IdDQU@yhkCr5h zn5aa>B7PWy5NQ!vf7@p_qtC*{dZ8zLS;JetPkHi>IvPjtJ#ThGQD|Lq#@vE2xdl%`x4A8xOln}BiQ92Po zW;0%A?I5CQ_O`@Ad=`2BLPPbBuPUp@Hb%a_OOI}y{Rwa<#h z5^6M}s7VzE)2&I*33pA>e71d78QpF>sNK;?lj^Kl#wU7G++`N_oL4QPd-iPqBhhs| z(uVM}$ItF-onXuuXO}o$t)emBO3Hjfyil@*+GF;9j?`&67GBM;TGkLHi>@)rkS4Nj zAEk;u)`jc4C$qN6WV2dVd#q}2X6nKt&X*}I@jP%Srs%%DS92lpDY^K*Sx4`l;aql$ zt*-V{U&$DM>pdO?%jt$t=vg5|p+Rw?SPaLW zB6nvZ69$ne4Z(s$3=Rf&RX8L9PWMV*S0@R zuIk&ba#s6sxVZ51^4Kon46X^9`?DC9mEhWB3f+o4#2EXFqy0(UTc>GU| zGCJmI|Dn-dX#7|_6(fT)>&YQ0H&&JX3cTvAq(a@ydM4>5Njnuere{J8p;3?1az60* z$1E7Yyxt^ytULeokgDnRVKQw9vzHg1>X@@jM$n$HBlveIrKP5-GJq%iWH#odVwV6cF^kKX(@#%%uQVb>#T6L^mC@)%SMd4DF? zVky!~ge27>cpUP1Vi}Z32lbLV+CQy+T5Wdmva6Fg^lKb!zrg|HPU=5Qu}k;4GVH+x z%;&pN1LOce0w@9i1Mo-Y|7|z}fbch@BPp2{&R-5{GLoeu8@limQmFF zaJRR|^;kW_nw~0V^ zfTnR!Ni*;-%oSHG1yItARs~uxra|O?YJxBzLjpeE-=~TO3Dn`JL5Gz;F~O1u3|FE- zvK2Vve`ylc`a}G`gpHg58Cqc9fMoy1L}7x7T>%~b&irrNMo?np3`q;d3d;zTK>nrK zOjPS{@&74-fA7j)8uT9~*g23uGnxwIVj9HorzUX#s0pcp2?GH6i}~+kv9fWChtPa_ z@T3m+$0pbjdQw7jcnHn;Pi85hk_u2-1^}c)LNvjdam8K-XJ+KgKQ%!?2n_!#{$H|| zLO=%;hRo6EDmnOBKCL9Cg~ETU##@u^W_5joZ%Et%X_n##%JDOcsO=0VL|Lkk!VdRJ z^|~2pB@PUspT?NOeO?=0Vb+fAGc!j%Ufn-cB`s2A~W{Zj{`wqWq_-w0wr@6VrM zbzni@8c>WS!7c&|ZR$cQ;`niRw{4kG#e z70e!uX8VmP23SuJ*)#(&R=;SxGAvq|&>geL&!5Z7@0Z(No*W561n#u$Uc`f9pD70# z=sKOSK|bF~#khTTn)B28h^a1{;>EaRnHj~>i=Fnr3+Fa4 z`^+O5_itS#7kPd20rq66_wH`%?HNzWk@XFK0n;Z@Cx{kx==2L22zWH$Yg?7 zvDj|u{{+NR3JvUH({;b*$b(U5U z7(lF!1bz2%06+|-v(D?2KgwNw7( zJB#Tz+ZRi&U$i?f34m7>uTzO#+E5cbaiQ&L}UxyOQq~afbNB4EI{E04ZWg53w0A{O%qo=lF8d zf~ktGvIgf-a~zQoWf>loF7pOodrd0a2|BzwwPDV}ShauTK8*fmF6NRbO>Iw9zZU}u zw8Ya}?seBnEGQDmH#XpUUkj}N49tP<2jYwTFp!P+&Fd(%Z#yo80|5@zN(D{_pNow*&4%ql zW~&yp@scb-+Qj-EmErY+Tu=dUmf@*BoXY2&oKT8U?8?s1d}4a`Aq>7SV800m$FE~? zjmz(LY+Xx9sDX$;vU`xgw*jLw7dWOnWWCO8o|;}f>cu0Q&`0I{YudMn;P;L3R-uz# zfns_mZED_IakFBPP2r_S8XM$X)@O-xVKi4`7373Jkd5{2$M#%cRhWer3M(vr{S6>h zj{givZJ3(`yFL@``(afn&~iNx@B1|-qfYiZu?-_&Z8+R~v`d6R-}EX9IVXWO-!hL5 z*k6T#^2zAXdardU3Ao~I)4DGdAv2bx{4nOK`20rJo>rmk3S2ZDu}))8Z1m}CKigf0 z3L`3Y`{huj`xj9@`$xTZzZc3je?n^yG<8sw$`Y%}9mUsjUR%T!?k^(q)6FH6Af^b6 zlPg~IEwg0y;`t9y;#D+uz!oE4VP&Je!<#q*F?m5L5?J3i@!0J6q#eu z!RRU`-)HeqGi_UJZ(n~|PSNsv+Wgl{P-TvaUQ9j?ZCtvb^37U$sFpBrkT{7Jpd?HpIvj2!}RIq zH{9~+gErN2+}J`>Jvng2hwM`=PLNkc7pkjblKW|+Fk9rc)G1R>Ww>RC=r-|!m-u7( zc(a$9NG}w#PjWNMS~)o=i~WA&4L(YIW25@AL9+H9!?3Y}sv#MOdY{bb9j>p`{?O(P zIvb`n?_(gP2w3P#&91JX*md+bBEr%xUHMVqfB;(f?OPtMnAZ#rm5q5mh;a2f_si2_ z3oXWB?{NF(JtkAn6F(O{z@b76OIqMC$&oJ_&S|YbFJ*)3qVX_uNf5b8(!vGX19hsG z(OP>RmZp29KH9Ge2kKjKigUmOe^K_!UXP`von)PR8Qz$%=EmOB9xS(ZxE_tnyzo}7 z=6~$~9k0M~v}`w={AeqF?_)9q{m8K#6M{a&(;u;O41j)I$^T?lx5(zlebpY@NT&#N zR+1bB)-1-xj}R8uwqwf=iP1GbxBjneCC%UrSdSxK1vM^i9;bUkS#iRZw2H>rS<2<$ zNT3|sDH>{tXb=zq7XZi*K?#Zsa1h1{h5!Tq_YbKFm_*=A5-<~j63he;4`77!|LBlo zR^~tR3yxcU=gDFbshyF6>o0bdp$qmHS7D}m3;^QZq9kBBU|9$N-~oU?G5;jyFR7>z hN`IR97YZXIo@y!QgFWddJ3|0`sjFx!m))><{BI=FK%f8s literal 0 HcmV?d00001 diff --git a/clone-instagram-login-Refactoring/web/icons/Icon-maskable-192.png b/clone-instagram-login-Refactoring/web/icons/Icon-maskable-192.png new file mode 100644 index 0000000000000000000000000000000000000000..eb9b4d76e525556d5d89141648c724331630325d GIT binary patch literal 5594 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 X>c!)3PgKfL&lX^$Z>Cpu&6)6jvi^Z! literal 0 HcmV?d00001 diff --git a/clone-instagram-login-Refactoring/web/icons/Icon-maskable-512.png b/clone-instagram-login-Refactoring/web/icons/Icon-maskable-512.png new file mode 100644 index 0000000000000000000000000000000000000000..d69c56691fbdb0b7efa65097c7cc1edac12a6d3e GIT binary patch literal 20998 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 MPgg&ebxsLQ025IeI{*Lx literal 0 HcmV?d00001 diff --git a/clone-instagram-login-Refactoring/web/index.html b/clone-instagram-login-Refactoring/web/index.html new file mode 100644 index 0000000..386fd27 --- /dev/null +++ b/clone-instagram-login-Refactoring/web/index.html @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + example_widget_testing + + + + + + + + + + diff --git a/clone-instagram-login-Refactoring/web/manifest.json b/clone-instagram-login-Refactoring/web/manifest.json new file mode 100644 index 0000000..b4c7477 --- /dev/null +++ b/clone-instagram-login-Refactoring/web/manifest.json @@ -0,0 +1,35 @@ +{ + "name": "example_widget_testing", + "short_name": "example_widget_testing", + "start_url": ".", + "display": "standalone", + "background_color": "#0175C2", + "theme_color": "#0175C2", + "description": "A new Flutter project.", + "orientation": "portrait-primary", + "prefer_related_applications": false, + "icons": [ + { + "src": "icons/Icon-192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "icons/Icon-512.png", + "sizes": "512x512", + "type": "image/png" + }, + { + "src": "icons/Icon-maskable-192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "icons/Icon-maskable-512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable" + } + ] +} diff --git a/clone-instagram-login-Refactoring/windows/.gitignore b/clone-instagram-login-Refactoring/windows/.gitignore new file mode 100644 index 0000000..d492d0d --- /dev/null +++ b/clone-instagram-login-Refactoring/windows/.gitignore @@ -0,0 +1,17 @@ +flutter/ephemeral/ + +# Visual Studio user-specific files. +*.suo +*.user +*.userosscache +*.sln.docstates + +# Visual Studio build-related files. +x64/ +x86/ + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!*.[Cc]ache/ diff --git a/clone-instagram-login-Refactoring/windows/CMakeLists.txt b/clone-instagram-login-Refactoring/windows/CMakeLists.txt new file mode 100644 index 0000000..82b4152 --- /dev/null +++ b/clone-instagram-login-Refactoring/windows/CMakeLists.txt @@ -0,0 +1,101 @@ +# Project-level configuration. +cmake_minimum_required(VERSION 3.14) +project(example_widget_testing LANGUAGES CXX) + +# The name of the executable created for the application. Change this to change +# the on-disk name of your application. +set(BINARY_NAME "example_widget_testing") + +# Explicitly opt in to modern CMake behaviors to avoid warnings with recent +# versions of CMake. +cmake_policy(SET CMP0063 NEW) + +# Define build configuration option. +get_property(IS_MULTICONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) +if(IS_MULTICONFIG) + set(CMAKE_CONFIGURATION_TYPES "Debug;Profile;Release" + CACHE STRING "" FORCE) +else() + if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) + set(CMAKE_BUILD_TYPE "Debug" CACHE + STRING "Flutter build mode" FORCE) + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS + "Debug" "Profile" "Release") + endif() +endif() +# Define settings for the Profile build mode. +set(CMAKE_EXE_LINKER_FLAGS_PROFILE "${CMAKE_EXE_LINKER_FLAGS_RELEASE}") +set(CMAKE_SHARED_LINKER_FLAGS_PROFILE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE}") +set(CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_RELEASE}") +set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_RELEASE}") + +# Use Unicode for all projects. +add_definitions(-DUNICODE -D_UNICODE) + +# Compilation settings that should be applied to most targets. +# +# Be cautious about adding new options here, as plugins use this function by +# default. In most cases, you should add new options to specific targets instead +# of modifying this function. +function(APPLY_STANDARD_SETTINGS TARGET) + target_compile_features(${TARGET} PUBLIC cxx_std_17) + target_compile_options(${TARGET} PRIVATE /W4 /WX /wd"4100") + target_compile_options(${TARGET} PRIVATE /EHsc) + target_compile_definitions(${TARGET} PRIVATE "_HAS_EXCEPTIONS=0") + target_compile_definitions(${TARGET} PRIVATE "$<$:_DEBUG>") +endfunction() + +# Flutter library and tool build rules. +set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter") +add_subdirectory(${FLUTTER_MANAGED_DIR}) + +# Application build; see runner/CMakeLists.txt. +add_subdirectory("runner") + +# Generated plugin build rules, which manage building the plugins and adding +# them to the application. +include(flutter/generated_plugins.cmake) + + +# === Installation === +# Support files are copied into place next to the executable, so that it can +# run in place. This is done instead of making a separate bundle (as on Linux) +# so that building and running from within Visual Studio will work. +set(BUILD_BUNDLE_DIR "$") +# Make the "install" step default, as it's required to run. +set(CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD 1) +if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE) +endif() + +set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data") +set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}") + +install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +if(PLUGIN_BUNDLED_LIBRARIES) + install(FILES "${PLUGIN_BUNDLED_LIBRARIES}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) +endif() + +# Fully re-copy the assets directory on each build to avoid having stale files +# from a previous install. +set(FLUTTER_ASSET_DIR_NAME "flutter_assets") +install(CODE " + file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\") + " COMPONENT Runtime) +install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}" + DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime) + +# Install the AOT library on non-Debug builds only. +install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" + CONFIGURATIONS Profile;Release + COMPONENT Runtime) diff --git a/clone-instagram-login-Refactoring/windows/flutter/CMakeLists.txt b/clone-instagram-login-Refactoring/windows/flutter/CMakeLists.txt new file mode 100644 index 0000000..930d207 --- /dev/null +++ b/clone-instagram-login-Refactoring/windows/flutter/CMakeLists.txt @@ -0,0 +1,104 @@ +# This file controls Flutter-level build steps. It should not be edited. +cmake_minimum_required(VERSION 3.14) + +set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral") + +# Configuration provided via flutter tool. +include(${EPHEMERAL_DIR}/generated_config.cmake) + +# TODO: Move the rest of this into files in ephemeral. See +# https://github.com/flutter/flutter/issues/57146. +set(WRAPPER_ROOT "${EPHEMERAL_DIR}/cpp_client_wrapper") + +# === Flutter Library === +set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/flutter_windows.dll") + +# Published to parent scope for install step. +set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE) +set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE) +set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE) +set(AOT_LIBRARY "${PROJECT_DIR}/build/windows/app.so" PARENT_SCOPE) + +list(APPEND FLUTTER_LIBRARY_HEADERS + "flutter_export.h" + "flutter_windows.h" + "flutter_messenger.h" + "flutter_plugin_registrar.h" + "flutter_texture_registrar.h" +) +list(TRANSFORM FLUTTER_LIBRARY_HEADERS PREPEND "${EPHEMERAL_DIR}/") +add_library(flutter INTERFACE) +target_include_directories(flutter INTERFACE + "${EPHEMERAL_DIR}" +) +target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}.lib") +add_dependencies(flutter flutter_assemble) + +# === Wrapper === +list(APPEND CPP_WRAPPER_SOURCES_CORE + "core_implementations.cc" + "standard_codec.cc" +) +list(TRANSFORM CPP_WRAPPER_SOURCES_CORE PREPEND "${WRAPPER_ROOT}/") +list(APPEND CPP_WRAPPER_SOURCES_PLUGIN + "plugin_registrar.cc" +) +list(TRANSFORM CPP_WRAPPER_SOURCES_PLUGIN PREPEND "${WRAPPER_ROOT}/") +list(APPEND CPP_WRAPPER_SOURCES_APP + "flutter_engine.cc" + "flutter_view_controller.cc" +) +list(TRANSFORM CPP_WRAPPER_SOURCES_APP PREPEND "${WRAPPER_ROOT}/") + +# Wrapper sources needed for a plugin. +add_library(flutter_wrapper_plugin STATIC + ${CPP_WRAPPER_SOURCES_CORE} + ${CPP_WRAPPER_SOURCES_PLUGIN} +) +apply_standard_settings(flutter_wrapper_plugin) +set_target_properties(flutter_wrapper_plugin PROPERTIES + POSITION_INDEPENDENT_CODE ON) +set_target_properties(flutter_wrapper_plugin PROPERTIES + CXX_VISIBILITY_PRESET hidden) +target_link_libraries(flutter_wrapper_plugin PUBLIC flutter) +target_include_directories(flutter_wrapper_plugin PUBLIC + "${WRAPPER_ROOT}/include" +) +add_dependencies(flutter_wrapper_plugin flutter_assemble) + +# Wrapper sources needed for the runner. +add_library(flutter_wrapper_app STATIC + ${CPP_WRAPPER_SOURCES_CORE} + ${CPP_WRAPPER_SOURCES_APP} +) +apply_standard_settings(flutter_wrapper_app) +target_link_libraries(flutter_wrapper_app PUBLIC flutter) +target_include_directories(flutter_wrapper_app PUBLIC + "${WRAPPER_ROOT}/include" +) +add_dependencies(flutter_wrapper_app flutter_assemble) + +# === Flutter tool backend === +# _phony_ is a non-existent file to force this command to run every time, +# since currently there's no way to get a full input/output list from the +# flutter tool. +set(PHONY_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/_phony_") +set_source_files_properties("${PHONY_OUTPUT}" PROPERTIES SYMBOLIC TRUE) +add_custom_command( + OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS} + ${CPP_WRAPPER_SOURCES_CORE} ${CPP_WRAPPER_SOURCES_PLUGIN} + ${CPP_WRAPPER_SOURCES_APP} + ${PHONY_OUTPUT} + COMMAND ${CMAKE_COMMAND} -E env + ${FLUTTER_TOOL_ENVIRONMENT} + "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.bat" + windows-x64 $ + VERBATIM +) +add_custom_target(flutter_assemble DEPENDS + "${FLUTTER_LIBRARY}" + ${FLUTTER_LIBRARY_HEADERS} + ${CPP_WRAPPER_SOURCES_CORE} + ${CPP_WRAPPER_SOURCES_PLUGIN} + ${CPP_WRAPPER_SOURCES_APP} +) diff --git a/clone-instagram-login-Refactoring/windows/flutter/generated_plugin_registrant.cc b/clone-instagram-login-Refactoring/windows/flutter/generated_plugin_registrant.cc new file mode 100644 index 0000000..8b6d468 --- /dev/null +++ b/clone-instagram-login-Refactoring/windows/flutter/generated_plugin_registrant.cc @@ -0,0 +1,11 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#include "generated_plugin_registrant.h" + + +void RegisterPlugins(flutter::PluginRegistry* registry) { +} diff --git a/clone-instagram-login-Refactoring/windows/flutter/generated_plugin_registrant.h b/clone-instagram-login-Refactoring/windows/flutter/generated_plugin_registrant.h new file mode 100644 index 0000000..dc139d8 --- /dev/null +++ b/clone-instagram-login-Refactoring/windows/flutter/generated_plugin_registrant.h @@ -0,0 +1,15 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#ifndef GENERATED_PLUGIN_REGISTRANT_ +#define GENERATED_PLUGIN_REGISTRANT_ + +#include + +// Registers Flutter plugins. +void RegisterPlugins(flutter::PluginRegistry* registry); + +#endif // GENERATED_PLUGIN_REGISTRANT_ diff --git a/clone-instagram-login-Refactoring/windows/flutter/generated_plugins.cmake b/clone-instagram-login-Refactoring/windows/flutter/generated_plugins.cmake new file mode 100644 index 0000000..b93c4c3 --- /dev/null +++ b/clone-instagram-login-Refactoring/windows/flutter/generated_plugins.cmake @@ -0,0 +1,23 @@ +# +# Generated file, do not edit. +# + +list(APPEND FLUTTER_PLUGIN_LIST +) + +list(APPEND FLUTTER_FFI_PLUGIN_LIST +) + +set(PLUGIN_BUNDLED_LIBRARIES) + +foreach(plugin ${FLUTTER_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) + target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) + list(APPEND PLUGIN_BUNDLED_LIBRARIES $) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) +endforeach(plugin) + +foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) +endforeach(ffi_plugin) diff --git a/clone-instagram-login-Refactoring/windows/runner/CMakeLists.txt b/clone-instagram-login-Refactoring/windows/runner/CMakeLists.txt new file mode 100644 index 0000000..17411a8 --- /dev/null +++ b/clone-instagram-login-Refactoring/windows/runner/CMakeLists.txt @@ -0,0 +1,39 @@ +cmake_minimum_required(VERSION 3.14) +project(runner LANGUAGES CXX) + +# Define the application target. To change its name, change BINARY_NAME in the +# top-level CMakeLists.txt, not the value here, or `flutter run` will no longer +# work. +# +# Any new source files that you add to the application should be added here. +add_executable(${BINARY_NAME} WIN32 + "flutter_window.cpp" + "main.cpp" + "utils.cpp" + "win32_window.cpp" + "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" + "Runner.rc" + "runner.exe.manifest" +) + +# Apply the standard set of build settings. This can be removed for applications +# that need different build settings. +apply_standard_settings(${BINARY_NAME}) + +# Add preprocessor definitions for the build version. +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION=\"${FLUTTER_VERSION}\"") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MAJOR=${FLUTTER_VERSION_MAJOR}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MINOR=${FLUTTER_VERSION_MINOR}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_PATCH=${FLUTTER_VERSION_PATCH}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_BUILD=${FLUTTER_VERSION_BUILD}") + +# Disable Windows macros that collide with C++ standard library functions. +target_compile_definitions(${BINARY_NAME} PRIVATE "NOMINMAX") + +# Add dependency libraries and include directories. Add any application-specific +# dependencies here. +target_link_libraries(${BINARY_NAME} PRIVATE flutter flutter_wrapper_app) +target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}") + +# Run the Flutter tool portions of the build. This must not be removed. +add_dependencies(${BINARY_NAME} flutter_assemble) diff --git a/clone-instagram-login-Refactoring/windows/runner/Runner.rc b/clone-instagram-login-Refactoring/windows/runner/Runner.rc new file mode 100644 index 0000000..9ea8d1e --- /dev/null +++ b/clone-instagram-login-Refactoring/windows/runner/Runner.rc @@ -0,0 +1,121 @@ +// Microsoft Visual C++ generated resource script. +// +#pragma code_page(65001) +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "winres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (United States) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE +BEGIN + "#include ""winres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDI_APP_ICON ICON "resources\\app_icon.ico" + + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +#if defined(FLUTTER_VERSION_MAJOR) && defined(FLUTTER_VERSION_MINOR) && defined(FLUTTER_VERSION_PATCH) && defined(FLUTTER_VERSION_BUILD) +#define VERSION_AS_NUMBER FLUTTER_VERSION_MAJOR,FLUTTER_VERSION_MINOR,FLUTTER_VERSION_PATCH,FLUTTER_VERSION_BUILD +#else +#define VERSION_AS_NUMBER 1,0,0,0 +#endif + +#if defined(FLUTTER_VERSION) +#define VERSION_AS_STRING FLUTTER_VERSION +#else +#define VERSION_AS_STRING "1.0.0" +#endif + +VS_VERSION_INFO VERSIONINFO + FILEVERSION VERSION_AS_NUMBER + PRODUCTVERSION VERSION_AS_NUMBER + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK +#ifdef _DEBUG + FILEFLAGS VS_FF_DEBUG +#else + FILEFLAGS 0x0L +#endif + FILEOS VOS__WINDOWS32 + FILETYPE VFT_APP + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904e4" + BEGIN + VALUE "CompanyName", "com.example" "\0" + VALUE "FileDescription", "example_widget_testing" "\0" + VALUE "FileVersion", VERSION_AS_STRING "\0" + VALUE "InternalName", "example_widget_testing" "\0" + VALUE "LegalCopyright", "Copyright (C) 2023 com.example. All rights reserved." "\0" + VALUE "OriginalFilename", "example_widget_testing.exe" "\0" + VALUE "ProductName", "example_widget_testing" "\0" + VALUE "ProductVersion", VERSION_AS_STRING "\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1252 + END +END + +#endif // English (United States) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED diff --git a/clone-instagram-login-Refactoring/windows/runner/flutter_window.cpp b/clone-instagram-login-Refactoring/windows/runner/flutter_window.cpp new file mode 100644 index 0000000..b43b909 --- /dev/null +++ b/clone-instagram-login-Refactoring/windows/runner/flutter_window.cpp @@ -0,0 +1,61 @@ +#include "flutter_window.h" + +#include + +#include "flutter/generated_plugin_registrant.h" + +FlutterWindow::FlutterWindow(const flutter::DartProject& project) + : project_(project) {} + +FlutterWindow::~FlutterWindow() {} + +bool FlutterWindow::OnCreate() { + if (!Win32Window::OnCreate()) { + return false; + } + + RECT frame = GetClientArea(); + + // The size here must match the window dimensions to avoid unnecessary surface + // creation / destruction in the startup path. + flutter_controller_ = std::make_unique( + frame.right - frame.left, frame.bottom - frame.top, project_); + // Ensure that basic setup of the controller was successful. + if (!flutter_controller_->engine() || !flutter_controller_->view()) { + return false; + } + RegisterPlugins(flutter_controller_->engine()); + SetChildContent(flutter_controller_->view()->GetNativeWindow()); + return true; +} + +void FlutterWindow::OnDestroy() { + if (flutter_controller_) { + flutter_controller_ = nullptr; + } + + Win32Window::OnDestroy(); +} + +LRESULT +FlutterWindow::MessageHandler(HWND hwnd, UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept { + // Give Flutter, including plugins, an opportunity to handle window messages. + if (flutter_controller_) { + std::optional result = + flutter_controller_->HandleTopLevelWindowProc(hwnd, message, wparam, + lparam); + if (result) { + return *result; + } + } + + switch (message) { + case WM_FONTCHANGE: + flutter_controller_->engine()->ReloadSystemFonts(); + break; + } + + return Win32Window::MessageHandler(hwnd, message, wparam, lparam); +} diff --git a/clone-instagram-login-Refactoring/windows/runner/flutter_window.h b/clone-instagram-login-Refactoring/windows/runner/flutter_window.h new file mode 100644 index 0000000..6da0652 --- /dev/null +++ b/clone-instagram-login-Refactoring/windows/runner/flutter_window.h @@ -0,0 +1,33 @@ +#ifndef RUNNER_FLUTTER_WINDOW_H_ +#define RUNNER_FLUTTER_WINDOW_H_ + +#include +#include + +#include + +#include "win32_window.h" + +// A window that does nothing but host a Flutter view. +class FlutterWindow : public Win32Window { + public: + // Creates a new FlutterWindow hosting a Flutter view running |project|. + explicit FlutterWindow(const flutter::DartProject& project); + virtual ~FlutterWindow(); + + protected: + // Win32Window: + bool OnCreate() override; + void OnDestroy() override; + LRESULT MessageHandler(HWND window, UINT const message, WPARAM const wparam, + LPARAM const lparam) noexcept override; + + private: + // The project to run. + flutter::DartProject project_; + + // The Flutter instance hosted by this window. + std::unique_ptr flutter_controller_; +}; + +#endif // RUNNER_FLUTTER_WINDOW_H_ diff --git a/clone-instagram-login-Refactoring/windows/runner/main.cpp b/clone-instagram-login-Refactoring/windows/runner/main.cpp new file mode 100644 index 0000000..c099f0e --- /dev/null +++ b/clone-instagram-login-Refactoring/windows/runner/main.cpp @@ -0,0 +1,43 @@ +#include +#include +#include + +#include "flutter_window.h" +#include "utils.h" + +int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev, + _In_ wchar_t *command_line, _In_ int show_command) { + // Attach to console when present (e.g., 'flutter run') or create a + // new console when running with a debugger. + if (!::AttachConsole(ATTACH_PARENT_PROCESS) && ::IsDebuggerPresent()) { + CreateAndAttachConsole(); + } + + // Initialize COM, so that it is available for use in the library and/or + // plugins. + ::CoInitializeEx(nullptr, COINIT_APARTMENTTHREADED); + + flutter::DartProject project(L"data"); + + std::vector command_line_arguments = + GetCommandLineArguments(); + + project.set_dart_entrypoint_arguments(std::move(command_line_arguments)); + + FlutterWindow window(project); + Win32Window::Point origin(10, 10); + Win32Window::Size size(1280, 720); + if (!window.CreateAndShow(L"example_widget_testing", origin, size)) { + return EXIT_FAILURE; + } + window.SetQuitOnClose(true); + + ::MSG msg; + while (::GetMessage(&msg, nullptr, 0, 0)) { + ::TranslateMessage(&msg); + ::DispatchMessage(&msg); + } + + ::CoUninitialize(); + return EXIT_SUCCESS; +} diff --git a/clone-instagram-login-Refactoring/windows/runner/resource.h b/clone-instagram-login-Refactoring/windows/runner/resource.h new file mode 100644 index 0000000..66a65d1 --- /dev/null +++ b/clone-instagram-login-Refactoring/windows/runner/resource.h @@ -0,0 +1,16 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by Runner.rc +// +#define IDI_APP_ICON 101 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 102 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1001 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/clone-instagram-login-Refactoring/windows/runner/resources/app_icon.ico b/clone-instagram-login-Refactoring/windows/runner/resources/app_icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..c04e20caf6370ebb9253ad831cc31de4a9c965f6 GIT binary patch literal 33772 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 literal 0 HcmV?d00001 diff --git a/clone-instagram-login-Refactoring/windows/runner/runner.exe.manifest b/clone-instagram-login-Refactoring/windows/runner/runner.exe.manifest new file mode 100644 index 0000000..a42ea76 --- /dev/null +++ b/clone-instagram-login-Refactoring/windows/runner/runner.exe.manifest @@ -0,0 +1,20 @@ + + + + + PerMonitorV2 + + + + + + + + + + + + + + + diff --git a/clone-instagram-login-Refactoring/windows/runner/utils.cpp b/clone-instagram-login-Refactoring/windows/runner/utils.cpp new file mode 100644 index 0000000..f5bf9fa --- /dev/null +++ b/clone-instagram-login-Refactoring/windows/runner/utils.cpp @@ -0,0 +1,64 @@ +#include "utils.h" + +#include +#include +#include +#include + +#include + +void CreateAndAttachConsole() { + if (::AllocConsole()) { + FILE *unused; + if (freopen_s(&unused, "CONOUT$", "w", stdout)) { + _dup2(_fileno(stdout), 1); + } + if (freopen_s(&unused, "CONOUT$", "w", stderr)) { + _dup2(_fileno(stdout), 2); + } + std::ios::sync_with_stdio(); + FlutterDesktopResyncOutputStreams(); + } +} + +std::vector GetCommandLineArguments() { + // Convert the UTF-16 command line arguments to UTF-8 for the Engine to use. + int argc; + wchar_t** argv = ::CommandLineToArgvW(::GetCommandLineW(), &argc); + if (argv == nullptr) { + return std::vector(); + } + + std::vector command_line_arguments; + + // Skip the first argument as it's the binary name. + for (int i = 1; i < argc; i++) { + command_line_arguments.push_back(Utf8FromUtf16(argv[i])); + } + + ::LocalFree(argv); + + return command_line_arguments; +} + +std::string Utf8FromUtf16(const wchar_t* utf16_string) { + if (utf16_string == nullptr) { + return std::string(); + } + int target_length = ::WideCharToMultiByte( + CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, + -1, nullptr, 0, nullptr, nullptr); + std::string utf8_string; + if (target_length == 0 || target_length > utf8_string.max_size()) { + return utf8_string; + } + utf8_string.resize(target_length); + int converted_length = ::WideCharToMultiByte( + CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, + -1, utf8_string.data(), + target_length, nullptr, nullptr); + if (converted_length == 0) { + return std::string(); + } + return utf8_string; +} diff --git a/clone-instagram-login-Refactoring/windows/runner/utils.h b/clone-instagram-login-Refactoring/windows/runner/utils.h new file mode 100644 index 0000000..3879d54 --- /dev/null +++ b/clone-instagram-login-Refactoring/windows/runner/utils.h @@ -0,0 +1,19 @@ +#ifndef RUNNER_UTILS_H_ +#define RUNNER_UTILS_H_ + +#include +#include + +// Creates a console for the process, and redirects stdout and stderr to +// it for both the runner and the Flutter library. +void CreateAndAttachConsole(); + +// Takes a null-terminated wchar_t* encoded in UTF-16 and returns a std::string +// encoded in UTF-8. Returns an empty std::string on failure. +std::string Utf8FromUtf16(const wchar_t* utf16_string); + +// Gets the command line arguments passed in as a std::vector, +// encoded in UTF-8. Returns an empty std::vector on failure. +std::vector GetCommandLineArguments(); + +#endif // RUNNER_UTILS_H_ diff --git a/clone-instagram-login-Refactoring/windows/runner/win32_window.cpp b/clone-instagram-login-Refactoring/windows/runner/win32_window.cpp new file mode 100644 index 0000000..c10f08d --- /dev/null +++ b/clone-instagram-login-Refactoring/windows/runner/win32_window.cpp @@ -0,0 +1,245 @@ +#include "win32_window.h" + +#include + +#include "resource.h" + +namespace { + +constexpr const wchar_t kWindowClassName[] = L"FLUTTER_RUNNER_WIN32_WINDOW"; + +// The number of Win32Window objects that currently exist. +static int g_active_window_count = 0; + +using EnableNonClientDpiScaling = BOOL __stdcall(HWND hwnd); + +// Scale helper to convert logical scaler values to physical using passed in +// scale factor +int Scale(int source, double scale_factor) { + return static_cast(source * scale_factor); +} + +// Dynamically loads the |EnableNonClientDpiScaling| from the User32 module. +// This API is only needed for PerMonitor V1 awareness mode. +void EnableFullDpiSupportIfAvailable(HWND hwnd) { + HMODULE user32_module = LoadLibraryA("User32.dll"); + if (!user32_module) { + return; + } + auto enable_non_client_dpi_scaling = + reinterpret_cast( + GetProcAddress(user32_module, "EnableNonClientDpiScaling")); + if (enable_non_client_dpi_scaling != nullptr) { + enable_non_client_dpi_scaling(hwnd); + FreeLibrary(user32_module); + } +} + +} // namespace + +// Manages the Win32Window's window class registration. +class WindowClassRegistrar { + public: + ~WindowClassRegistrar() = default; + + // Returns the singleton registar instance. + static WindowClassRegistrar* GetInstance() { + if (!instance_) { + instance_ = new WindowClassRegistrar(); + } + return instance_; + } + + // Returns the name of the window class, registering the class if it hasn't + // previously been registered. + const wchar_t* GetWindowClass(); + + // Unregisters the window class. Should only be called if there are no + // instances of the window. + void UnregisterWindowClass(); + + private: + WindowClassRegistrar() = default; + + static WindowClassRegistrar* instance_; + + bool class_registered_ = false; +}; + +WindowClassRegistrar* WindowClassRegistrar::instance_ = nullptr; + +const wchar_t* WindowClassRegistrar::GetWindowClass() { + if (!class_registered_) { + WNDCLASS window_class{}; + window_class.hCursor = LoadCursor(nullptr, IDC_ARROW); + window_class.lpszClassName = kWindowClassName; + window_class.style = CS_HREDRAW | CS_VREDRAW; + window_class.cbClsExtra = 0; + window_class.cbWndExtra = 0; + window_class.hInstance = GetModuleHandle(nullptr); + window_class.hIcon = + LoadIcon(window_class.hInstance, MAKEINTRESOURCE(IDI_APP_ICON)); + window_class.hbrBackground = 0; + window_class.lpszMenuName = nullptr; + window_class.lpfnWndProc = Win32Window::WndProc; + RegisterClass(&window_class); + class_registered_ = true; + } + return kWindowClassName; +} + +void WindowClassRegistrar::UnregisterWindowClass() { + UnregisterClass(kWindowClassName, nullptr); + class_registered_ = false; +} + +Win32Window::Win32Window() { + ++g_active_window_count; +} + +Win32Window::~Win32Window() { + --g_active_window_count; + Destroy(); +} + +bool Win32Window::CreateAndShow(const std::wstring& title, + const Point& origin, + const Size& size) { + Destroy(); + + const wchar_t* window_class = + WindowClassRegistrar::GetInstance()->GetWindowClass(); + + const POINT target_point = {static_cast(origin.x), + static_cast(origin.y)}; + HMONITOR monitor = MonitorFromPoint(target_point, MONITOR_DEFAULTTONEAREST); + UINT dpi = FlutterDesktopGetDpiForMonitor(monitor); + double scale_factor = dpi / 96.0; + + HWND window = CreateWindow( + window_class, title.c_str(), WS_OVERLAPPEDWINDOW | WS_VISIBLE, + Scale(origin.x, scale_factor), Scale(origin.y, scale_factor), + Scale(size.width, scale_factor), Scale(size.height, scale_factor), + nullptr, nullptr, GetModuleHandle(nullptr), this); + + if (!window) { + return false; + } + + return OnCreate(); +} + +// static +LRESULT CALLBACK Win32Window::WndProc(HWND const window, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept { + if (message == WM_NCCREATE) { + auto window_struct = reinterpret_cast(lparam); + SetWindowLongPtr(window, GWLP_USERDATA, + reinterpret_cast(window_struct->lpCreateParams)); + + auto that = static_cast(window_struct->lpCreateParams); + EnableFullDpiSupportIfAvailable(window); + that->window_handle_ = window; + } else if (Win32Window* that = GetThisFromHandle(window)) { + return that->MessageHandler(window, message, wparam, lparam); + } + + return DefWindowProc(window, message, wparam, lparam); +} + +LRESULT +Win32Window::MessageHandler(HWND hwnd, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept { + switch (message) { + case WM_DESTROY: + window_handle_ = nullptr; + Destroy(); + if (quit_on_close_) { + PostQuitMessage(0); + } + return 0; + + case WM_DPICHANGED: { + auto newRectSize = reinterpret_cast(lparam); + LONG newWidth = newRectSize->right - newRectSize->left; + LONG newHeight = newRectSize->bottom - newRectSize->top; + + SetWindowPos(hwnd, nullptr, newRectSize->left, newRectSize->top, newWidth, + newHeight, SWP_NOZORDER | SWP_NOACTIVATE); + + return 0; + } + case WM_SIZE: { + RECT rect = GetClientArea(); + if (child_content_ != nullptr) { + // Size and position the child window. + MoveWindow(child_content_, rect.left, rect.top, rect.right - rect.left, + rect.bottom - rect.top, TRUE); + } + return 0; + } + + case WM_ACTIVATE: + if (child_content_ != nullptr) { + SetFocus(child_content_); + } + return 0; + } + + return DefWindowProc(window_handle_, message, wparam, lparam); +} + +void Win32Window::Destroy() { + OnDestroy(); + + if (window_handle_) { + DestroyWindow(window_handle_); + window_handle_ = nullptr; + } + if (g_active_window_count == 0) { + WindowClassRegistrar::GetInstance()->UnregisterWindowClass(); + } +} + +Win32Window* Win32Window::GetThisFromHandle(HWND const window) noexcept { + return reinterpret_cast( + GetWindowLongPtr(window, GWLP_USERDATA)); +} + +void Win32Window::SetChildContent(HWND content) { + child_content_ = content; + SetParent(content, window_handle_); + RECT frame = GetClientArea(); + + MoveWindow(content, frame.left, frame.top, frame.right - frame.left, + frame.bottom - frame.top, true); + + SetFocus(child_content_); +} + +RECT Win32Window::GetClientArea() { + RECT frame; + GetClientRect(window_handle_, &frame); + return frame; +} + +HWND Win32Window::GetHandle() { + return window_handle_; +} + +void Win32Window::SetQuitOnClose(bool quit_on_close) { + quit_on_close_ = quit_on_close; +} + +bool Win32Window::OnCreate() { + // No-op; provided for subclasses. + return true; +} + +void Win32Window::OnDestroy() { + // No-op; provided for subclasses. +} diff --git a/clone-instagram-login-Refactoring/windows/runner/win32_window.h b/clone-instagram-login-Refactoring/windows/runner/win32_window.h new file mode 100644 index 0000000..17ba431 --- /dev/null +++ b/clone-instagram-login-Refactoring/windows/runner/win32_window.h @@ -0,0 +1,98 @@ +#ifndef RUNNER_WIN32_WINDOW_H_ +#define RUNNER_WIN32_WINDOW_H_ + +#include + +#include +#include +#include + +// A class abstraction for a high DPI-aware Win32 Window. Intended to be +// inherited from by classes that wish to specialize with custom +// rendering and input handling +class Win32Window { + public: + struct Point { + unsigned int x; + unsigned int y; + Point(unsigned int x, unsigned int y) : x(x), y(y) {} + }; + + struct Size { + unsigned int width; + unsigned int height; + Size(unsigned int width, unsigned int height) + : width(width), height(height) {} + }; + + Win32Window(); + virtual ~Win32Window(); + + // Creates and shows a win32 window with |title| and position and size using + // |origin| and |size|. New windows are created on the default monitor. Window + // sizes are specified to the OS in physical pixels, hence to ensure a + // consistent size to will treat the width height passed in to this function + // as logical pixels and scale to appropriate for the default monitor. Returns + // true if the window was created successfully. + bool CreateAndShow(const std::wstring& title, + const Point& origin, + const Size& size); + + // Release OS resources associated with window. + void Destroy(); + + // Inserts |content| into the window tree. + void SetChildContent(HWND content); + + // Returns the backing Window handle to enable clients to set icon and other + // window properties. Returns nullptr if the window has been destroyed. + HWND GetHandle(); + + // If true, closing this window will quit the application. + void SetQuitOnClose(bool quit_on_close); + + // Return a RECT representing the bounds of the current client area. + RECT GetClientArea(); + + protected: + // Processes and route salient window messages for mouse handling, + // size change and DPI. Delegates handling of these to member overloads that + // inheriting classes can handle. + virtual LRESULT MessageHandler(HWND window, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept; + + // Called when CreateAndShow is called, allowing subclass window-related + // setup. Subclasses should return false if setup fails. + virtual bool OnCreate(); + + // Called when Destroy is called. + virtual void OnDestroy(); + + private: + friend class WindowClassRegistrar; + + // OS callback called by message pump. Handles the WM_NCCREATE message which + // is passed when the non-client area is being created and enables automatic + // non-client DPI scaling so that the non-client area automatically + // responsponds to changes in DPI. All other messages are handled by + // MessageHandler. + static LRESULT CALLBACK WndProc(HWND const window, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept; + + // Retrieves a class instance pointer for |window| + static Win32Window* GetThisFromHandle(HWND const window) noexcept; + + bool quit_on_close_ = false; + + // window handle for top level window. + HWND window_handle_ = nullptr; + + // window handle for hosted content. + HWND child_content_ = nullptr; +}; + +#endif // RUNNER_WIN32_WINDOW_H_ diff --git a/test/account_page_test.dart b/test/account_page_test.dart new file mode 100644 index 0000000..c3ce248 --- /dev/null +++ b/test/account_page_test.dart @@ -0,0 +1,2128 @@ +import 'package:example_widget_testing/app/data/models/profile.dart'; +import 'package:example_widget_testing/app/modules/account/account_page.dart'; +import 'package:example_widget_testing/app/modules/account/components/account_name.dart'; +import 'package:example_widget_testing/app/modules/account/components/account_stat.dart'; +import 'package:example_widget_testing/app/modules/account/components/account_tab.dart'; +import 'package:example_widget_testing/app/modules/account/components/grey_button.dart'; +import 'package:example_widget_testing/app/modules/account/components/highlight_item.dart'; +import 'package:example_widget_testing/app/modules/account/components/highlight_list.dart'; +import 'package:example_widget_testing/app/modules/account/components/profile_buttons.dart'; +import 'package:example_widget_testing/app/modules/account/components/profile_information.dart'; +import 'package:example_widget_testing/app/modules/account/components/profile_pic.dart'; +import 'package:example_widget_testing/app/widgets/post_thumbnail.dart'; +import 'package:example_widget_testing/core/values/constant/post_json.dart'; +import 'package:example_widget_testing/core/values/constant/profile_json.dart'; +import 'package:example_widget_testing/core/values/constant/profile_tabs_json.dart'; +import 'package:example_widget_testing/core/values/constant/story_json.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:network_image_mock/network_image_mock.dart'; + +import 'helper.dart'; + +bool checkError(int index, dynamic expected, dynamic matcher) { + if (expected == null) { + debugPrint('Account Page Test-$index failed: expected is null'); + return false; + } + try { + expect(expected, matcher); + } catch (e) { + debugPrint('Account Page Test-$index failed:'); + debugPrint(e.toString()); + return false; + } + return true; +} + +final Profile profile = Profile.fromJson(profileJson); + +void main() { + final states = {}; + testWidgets('Check if Account page Appbar is present', + (WidgetTester tester) async { + FlutterError.onError = ignoreOverflowErrors; + + await mockNetworkImagesFor( + () => tester.pumpWidget( + MaterialApp( + home: AccountPage( + posts: posts, + stories: stories, + profileData: profileJson, + ), + ), + ), + ); + + final appBarFinder = find.byKey(const Key('app_bar_account')); + checkError(2, appBarFinder, findsOneWidget); + + final appBar = appBarFinder.evaluate().first.widget as AppBar; + checkError(3, appBar.backgroundColor, Colors.black); + checkError(4, appBar.automaticallyImplyLeading, false); + final appBarRowFinder = find.byKey(const Key('app_bar_row')); + if (checkError(5, appBarRowFinder, findsOneWidget)) { + final appBarRow = appBarRowFinder.evaluate().first.widget as Row; + checkError( + 6, appBarRow.mainAxisAlignment, MainAxisAlignment.spaceBetween); + checkError(7, appBarRow.children.length, 2); + + final appBarRowNameFinder = find.byKey(const Key('app_bar_row_name')); + if (checkError( + 8, + find.descendant(of: appBarRowFinder, matching: appBarRowNameFinder), + findsOneWidget, + )) { + final appBarRowName = + appBarRowNameFinder.evaluate().first.widget as Row; + checkError(9, appBarRowName.children.length, 2); + + final appBarRowNameTextFinder = + find.byKey(const Key('app_bar_row_name_text')); + if (checkError( + 10, + find.descendant( + of: appBarRowNameFinder, matching: appBarRowNameTextFinder), + findsOneWidget)) { + final appBarRowNameText = + appBarRowNameTextFinder.evaluate().first.widget as Text; + checkError(11, appBarRowNameText.data, 'iclop'); + checkError(12, appBarRowNameText.style!.fontWeight, FontWeight.bold); + + final appBarRowNameArrowDownIconFinder = + find.byKey(const Key('app_bar_row_name_arrow_down_icon')); + if (checkError( + 13, + find.descendant( + of: appBarRowNameFinder, + matching: appBarRowNameArrowDownIconFinder), + findsOneWidget)) { + final appBarRowNameArrowDownIcon = appBarRowNameArrowDownIconFinder + .evaluate() + .first + .widget as Icon; + checkError( + 14, appBarRowNameArrowDownIcon.icon, Icons.keyboard_arrow_down); + } + } + } + + final appBarRowMenuFinder = find.byKey(const Key('app_bar_row_menu')); + bool appBarRowMenuIsAvailable = checkError( + 15, + find.descendant(of: appBarRowFinder, matching: appBarRowMenuFinder), + findsOneWidget); + if (appBarRowMenuIsAvailable) { + final appBarRowMenu = + appBarRowMenuFinder.evaluate().first.widget as Row; + checkError(16, appBarRowMenu.children.length, 3); + + final appBarRowMenuUploadIconFinder = + find.byKey(const Key('app_bar_row_menu_upload_icon')); + bool appBarRowMenuUploadIconIsAvailable = checkError( + 17, + find.descendant( + of: appBarRowMenuFinder, + matching: appBarRowMenuUploadIconFinder), + findsOneWidget); + bool appBarRowMenuUploadIconIsSvgPicture = checkError( + 18, + appBarRowMenuUploadIconFinder.evaluate().first.widget, + isA()); + if (appBarRowMenuUploadIconIsAvailable && + appBarRowMenuUploadIconIsSvgPicture) { + final appBarRowMenuUploadIcon = appBarRowMenuUploadIconFinder + .evaluate() + .first + .widget as SvgPicture; + checkError(19, appBarRowMenuUploadIcon.width, 27); + bool appBarRowMenuUploadIconIsAssetPicture = checkError( + 20, + appBarRowMenuUploadIcon.pictureProvider.runtimeType, + ExactAssetPicture); + if (appBarRowMenuUploadIconIsAssetPicture) { + final appBarRowMenuUploadIconAssetPicture = + appBarRowMenuUploadIcon.pictureProvider as ExactAssetPicture; + checkError(21, appBarRowMenuUploadIconAssetPicture.assetName, + "assets/images/upload_icon.svg"); + } + } + + final appBarRowMenuHamburgerIconFinder = + find.byKey(const Key('app_bar_row_menu_hamburger_icon')); + bool appBarRowMenuHamburgerIconIsAvailable = checkError( + 22, + find.descendant( + of: appBarRowMenuFinder, + matching: appBarRowMenuHamburgerIconFinder), + findsOneWidget); + bool appBarRowMenuHamburgerIconIsIcon = checkError( + 23, + appBarRowMenuHamburgerIconFinder.evaluate().first.widget, + isA()); + if (appBarRowMenuHamburgerIconIsAvailable && + appBarRowMenuHamburgerIconIsIcon) { + final appBarRowMenuHamburgerIcon = + appBarRowMenuHamburgerIconFinder.evaluate().first.widget as Icon; + checkError(24, appBarRowMenuHamburgerIcon.size, 35); + checkError(25, appBarRowMenuHamburgerIcon.icon, Icons.menu); + } + } + } + }); + testWidgets("Check if Account page body is present", (widgetTester) async { + FlutterError.onError = ignoreOverflowErrors; + + await mockNetworkImagesFor( + () => widgetTester.pumpWidget( + MaterialApp( + home: AccountPage( + posts: posts, + stories: stories, + profileData: profileJson, + ), + ), + ), + ); + + final accountPageListViewFinder = find.byKey( + const Key('account_page_listview'), + ); + checkError(26, accountPageListViewFinder, findsOneWidget); + + final accountStatFinder = find.byKey(const Key('account_stat')); + checkError(27, accountStatFinder, findsOneWidget); + + final accountNameFinder = find.byKey(const Key('account_name')); + checkError(28, accountNameFinder, findsOneWidget); + + final profileButtons = find.byKey(const Key('profile_buttons')); + checkError(29, profileButtons, findsOneWidget); + + final highlightList = find.byKey(const Key('highlight_list')); + checkError(30, highlightList, findsOneWidget); + + final accountTab = find.byKey(const Key('account_tab')); + checkError(31, accountTab, findsOneWidget); + + final accountPagePostWrapFinder = + find.byKey(const Key('account_page_post_wrap')); + bool isAccountPagePostWrapAvailable = checkError( + 32, + accountPagePostWrapFinder, + findsOneWidget, + ); + if (isAccountPagePostWrapAvailable) { + final accountPagePostWrap = + accountPagePostWrapFinder.evaluate().first.widget as Wrap; + checkError(33, accountPagePostWrap.spacing, 1.5); + checkError(34, accountPagePostWrap.runSpacing, 1.5); + checkError(35, accountPagePostWrap.children.length, posts.length); + posts.asMap().forEach((key, value) { + final accountPostInkWellFinder = find.byKey( + Key('account_post_inkwell_$key'), + ); + bool isAccountPostInkWellAvailable = checkError( + 351, + accountPostInkWellFinder, + findsOneWidget, + ); + if (isAccountPostInkWellAvailable) { + checkError( + 352, + accountPostInkWellFinder.evaluate().first.widget, + isA(), + ); + final accountPostThumbnailFinder = find.byKey( + Key('account_post_thumbnail_$key'), + ); + bool isAccountPostThumbnailAvailable = checkError( + 353, + accountPostThumbnailFinder, + findsOneWidget, + ); + if (isAccountPostThumbnailAvailable) { + bool accountPostThumbnailIsPostThumbnail = checkError( + 354, + accountPostThumbnailFinder.evaluate().first.widget, + isA(), + ); + if (accountPostThumbnailIsPostThumbnail) { + final accountPostThumbnail = accountPostThumbnailFinder + .evaluate() + .first + .widget as PostThumbnail; + checkError( + 355, + accountPostThumbnail.imageUrl, + posts[key]['postImg'], + ); + } + } + } + }); + } + }); + testWidgets("Check if account stats is present", (widgetTester) async { + FlutterError.onError = ignoreOverflowErrors; + + await mockNetworkImagesFor( + () => widgetTester.pumpWidget( + MaterialApp( + home: AccountStat(profile: profile), + ), + ), + ); + + final accountPageProfileRowFinder = + find.byKey(const Key('account_page_profile_row')); + bool accounntPageListViewIsAvailable = checkError( + 26, + accountPageProfileRowFinder, + findsOneWidget, + ); + bool accounntPageListViewIsRow = checkError( + 27, + accountPageProfileRowFinder.evaluate().first.widget, + isA(), + ); + if (accounntPageListViewIsAvailable && accounntPageListViewIsRow) { + final accountPageProfileRow = + accountPageProfileRowFinder.evaluate().first.widget as Row; + checkError(28, accountPageProfileRow.children.length, 2); + + final profilePicFinder = find.byKey(const Key('profile_pic')); + checkError(29, profilePicFinder, findsOneWidget); + + final accountPageProfileInformationExpandedFinder = find.byKey( + const Key('account_page_profile_information_expanded'), + ); + bool accountPageProfileInformationExpandedIsAvailable = checkError( + 30, + accountPageProfileInformationExpandedFinder, + findsOneWidget, + ); + + checkError( + 31, + accountPageProfileInformationExpandedFinder.evaluate().first.widget, + isA(), + ); + + if (accountPageProfileInformationExpandedIsAvailable) { + final profileInformationFinder = find.byKey( + const Key('profile_information'), + ); + checkError( + 32, + find.descendant( + of: accountPageProfileInformationExpandedFinder, + matching: profileInformationFinder, + ), + findsOneWidget, + ); + } + } + }); + testWidgets("Check if profile picture is rendered correctly", + (widgetTester) async { + FlutterError.onError = ignoreOverflowErrors; + + await mockNetworkImagesFor( + () => widgetTester.pumpWidget( + MaterialApp( + home: ProfilePic(pictureUrl: profile.profilePic!), + ), + ), + ); + + final profilePicContainerFinder = find.byKey( + const Key('profile_pic_container'), + ); + bool profilePicContainerIsAvailable = checkError( + 33, + profilePicContainerFinder, + findsOneWidget, + ); + if (profilePicContainerIsAvailable) { + bool profilePicContainerIsContainer = checkError( + 34, + profilePicContainerFinder.evaluate().first.widget, + isA(), + ); + if (profilePicContainerIsContainer) { + final profilePicContainer = + profilePicContainerFinder.evaluate().first.widget as Container; + checkError( + 35, + profilePicContainer.constraints!.widthConstraints(), + const BoxConstraints(minWidth: 80, maxWidth: 80), + ); + checkError( + 36, + profilePicContainer.constraints!.heightConstraints(), + const BoxConstraints(minHeight: 80, maxHeight: 80), + ); + checkError( + 37, + profilePicContainer.margin, + const EdgeInsets.only(left: 15, right: 30), + ); + final profilePicDecoration = + profilePicContainer.decoration as BoxDecoration; + bool profilePicDecorationIsBoxDecoration = checkError( + 38, + profilePicDecoration, + isA(), + ); + + if (profilePicDecorationIsBoxDecoration) { + final profilePicDecoration = + profilePicContainer.decoration as BoxDecoration; + checkError( + 39, + profilePicDecoration.shape, + BoxShape.circle, + ); + + bool profilePicDecorationImageIsDecorationImage = checkError( + 40, + profilePicDecoration.image, + isA(), + ); + if (profilePicDecorationImageIsDecorationImage) { + final profilePicDecorationImage = + profilePicDecoration.image as DecorationImage; + checkError(41, profilePicDecorationImage.fit, BoxFit.cover); + bool profilePicDecorationImageIsNetworkImage = checkError( + 42, + profilePicDecorationImage.image, + isA(), + ); + if (profilePicDecorationImageIsNetworkImage) { + final profilePicDecorationImageNetworkImage = + profilePicDecorationImage.image as NetworkImage; + checkError( + 43, + profilePicDecorationImageNetworkImage.url, + profile.profilePic!, + ); + } + } + } + } + } + }); + testWidgets("Check if profile informations is rendered correctly", + (widgetTester) async { + FlutterError.onError = ignoreOverflowErrors; + + await mockNetworkImagesFor( + () => widgetTester.pumpWidget( + MaterialApp( + home: ProfileInformation(profileStats: profile.stats!), + ), + ), + ); + + final profileInformationRowFinder = find.byKey( + const Key('profile_information_row'), + ); + bool profileInformationRowIsAvailable = checkError( + 44, + profileInformationRowFinder, + findsOneWidget, + ); + if (profileInformationRowIsAvailable) { + bool profileInformationRowIsRow = checkError( + 45, profileInformationRowFinder.evaluate().first.widget, isA()); + if (profileInformationRowIsRow) { + final profileInformationRow = + profileInformationRowFinder.evaluate().first.widget as Row; + checkError( + 46, profileInformationRow.children.length, profile.stats!.length); + checkError( + 47, + profileInformationRow.mainAxisAlignment, + MainAxisAlignment.spaceAround, + ); + + profile.stats!.asMap().forEach((index, value) { + final profileInformationColumnFinder = find.byKey( + Key('profile_information_column_$index'), + ); + bool profileInformationColumnIsAvailable = checkError( + 48, + profileInformationColumnFinder, + findsOneWidget, + ); + if (profileInformationColumnIsAvailable) { + bool profileInformationColumnIsColumn = checkError( + 49, + profileInformationColumnFinder.evaluate().first.widget, + isA(), + ); + if (profileInformationColumnIsColumn) { + final profileInformationColumn = profileInformationColumnFinder + .evaluate() + .first + .widget as Column; + checkError(50, profileInformationColumn.children.length, 2); + + final profileInformationAmountTextFinder = find.byKey( + Key('profile_information_${index}_amount_text'), + ); + bool profileInformationAmountTextIsAvailable = checkError( + 51, + profileInformationAmountTextFinder, + findsOneWidget, + ); + if (profileInformationAmountTextIsAvailable) { + bool profileInformationAmountTextIsText = checkError( + 52, + profileInformationAmountTextFinder.evaluate().first.widget, + isA(), + ); + if (profileInformationAmountTextIsText) { + final profileInformationAmountText = + profileInformationAmountTextFinder.evaluate().first.widget + as Text; + checkError(53, profileInformationAmountText.data, + profile.stats![index].count.toString()); + checkError( + 54, + profileInformationAmountText.style, + const TextStyle( + fontSize: 20, + fontWeight: FontWeight.w700, + color: Colors.white), + ); + } + } + + final profileInformationLabelTextFinder = find.byKey( + Key('profile_information_${index}_label_text'), + ); + bool profileInformationLabelTextIsAvailable = checkError( + 55, + profileInformationLabelTextFinder, + findsOneWidget, + ); + if (profileInformationLabelTextIsAvailable) { + bool profileInformationLabelTextIsText = checkError( + 56, + profileInformationLabelTextFinder.evaluate().first.widget, + isA(), + ); + if (profileInformationLabelTextIsText) { + final profileInformationLabelText = + profileInformationLabelTextFinder.evaluate().first.widget + as Text; + checkError(57, profileInformationLabelText.data, + profile.stats![index].label); + checkError( + 58, + profileInformationLabelText.style, + const TextStyle( + fontSize: 15, + fontWeight: FontWeight.w400, + color: Colors.white, + ), + ); + } + } + } + } + }); + } + } + }); + testWidgets("Check if account's name is rendered correctly", + (widgetTester) async { + FlutterError.onError = ignoreOverflowErrors; + + await mockNetworkImagesFor( + () => widgetTester.pumpWidget( + MaterialApp( + home: AccountName(profile: profile), + ), + ), + ); + + final accountNameContainerFinder = find.byKey( + const Key('account_name_container'), + ); + bool accountNameContainerIsAvailable = checkError( + 59, + accountNameContainerFinder, + findsOneWidget, + ); + if (accountNameContainerIsAvailable) { + bool accountNameContainerIsContainer = checkError( + 60, + accountNameContainerFinder.evaluate().first.widget, + isA(), + ); + if (accountNameContainerIsContainer) { + final accountNameContainer = + accountNameContainerFinder.evaluate().first.widget as Container; + checkError( + 61, + accountNameContainer.constraints!.widthConstraints(), + const BoxConstraints( + minWidth: double.infinity, maxWidth: double.infinity), + ); + checkError( + 62, + accountNameContainer.padding, + const EdgeInsets.symmetric(horizontal: 15), + ); + checkError( + 63, + accountNameContainer.margin, + const EdgeInsets.symmetric(vertical: 10), + ); + + final accountNameColumnFinder = find.byKey( + const Key('account_name_column'), + ); + bool accountNameColumnIsAvailable = checkError( + 64, + find.descendant( + of: accountNameContainerFinder, + matching: accountNameColumnFinder), + findsOneWidget, + ); + + if (accountNameColumnIsAvailable) { + bool accountNameColumnIsColumn = checkError( + 65, + accountNameColumnFinder.evaluate().first.widget, + isA(), + ); + + if (accountNameColumnIsColumn) { + final accountNameColumn = + accountNameColumnFinder.evaluate().first.widget as Column; + checkError( + 66, + accountNameColumn.crossAxisAlignment, + CrossAxisAlignment.start, + ); + checkError(67, accountNameColumn.children.length, 2); + + final accountNameTextFinder = find.byKey( + const Key('account_name_text'), + ); + + bool accountNameTextIsAvailable = checkError( + 68, + find.descendant( + of: accountNameColumnFinder, matching: accountNameTextFinder), + findsOneWidget, + ); + + if (accountNameTextIsAvailable) { + bool accountNameTextIsText = checkError( + 69, + accountNameTextFinder.evaluate().first.widget, + isA(), + ); + + if (accountNameTextIsText) { + final accountNameText = + accountNameTextFinder.evaluate().first.widget as Text; + checkError(70, accountNameText.data, profile.name); + checkError( + 71, + accountNameText.style, + const TextStyle( + fontSize: 18, + fontWeight: FontWeight.w400, + color: Colors.white, + ), + ); + } + } + + final accountBioText = find.byKey(const Key('account_bio_text')); + bool accountBioTextIsAvailable = checkError( + 72, + find.descendant( + of: accountNameColumnFinder, matching: accountBioText), + findsOneWidget, + ); + + if (accountBioTextIsAvailable) { + bool accountBioTextIsText = checkError( + 73, + accountBioText.evaluate().first.widget, + isA(), + ); + + if (accountBioTextIsText) { + final accountBioTextWidget = + accountBioText.evaluate().first.widget as Text; + checkError(74, accountBioTextWidget.data, profile.bio); + checkError( + 75, + accountBioTextWidget.style, + const TextStyle( + fontSize: 15, + fontWeight: FontWeight.w400, + color: Colors.white, + ), + ); + } + } + } + } + } + } + }); + testWidgets("Check if profile buttons is rendered correctly", + (widgetTester) async { + FlutterError.onError = ignoreOverflowErrors; + + await mockNetworkImagesFor( + () => widgetTester.pumpWidget( + const MaterialApp( + home: ProfileButtons(), + ), + ), + ); + + final profileButtonsPaddingFinder = find.byKey( + const Key('profile_buttons_padding'), + ); + + bool accountPageProfileButtonsPaddingIsAvailable = checkError( + 76, + profileButtonsPaddingFinder, + findsOneWidget, + ); + + if (accountPageProfileButtonsPaddingIsAvailable) { + bool accountPageProfileButtonsPaddingIsPadding = checkError( + 77, + profileButtonsPaddingFinder.evaluate().first.widget, + isA(), + ); + + if (accountPageProfileButtonsPaddingIsPadding) { + final accountPageProfileButtonsPadding = + profileButtonsPaddingFinder.evaluate().first.widget as Padding; + checkError( + 78, + accountPageProfileButtonsPadding.padding, + const EdgeInsets.symmetric(horizontal: 15), + ); + + final profileButtonsRowFinder = + find.byKey(const Key('profile_buttons_row')); + bool profileButtonsRowIsAvailable = checkError( + 79, + find.descendant( + of: profileButtonsPaddingFinder, + matching: profileButtonsRowFinder), + findsOneWidget, + ); + + if (profileButtonsRowIsAvailable) { + bool profileButtonsRowIsRow = checkError( + 80, + profileButtonsRowFinder.evaluate().first.widget, + isA(), + ); + + if (profileButtonsRowIsRow) { + final profileButtonsRow = + profileButtonsRowFinder.evaluate().first.widget as Row; + checkError( + 81, + profileButtonsRow.mainAxisAlignment, + MainAxisAlignment.spaceBetween, + ); + checkError(82, profileButtonsRow.children.length, 5); + + final profileButtonsEditProfileButtonExpandedFinder = find.byKey( + const Key('profile_buttons_edit_profile_button_expanded'), + ); + bool profileButtonsEditProfileButtonExpandedIsAvailable = + checkError( + 83, + find.descendant( + of: profileButtonsRowFinder, + matching: profileButtonsEditProfileButtonExpandedFinder, + ), + findsOneWidget, + ); + + if (profileButtonsEditProfileButtonExpandedIsAvailable) { + checkError( + 84, + profileButtonsEditProfileButtonExpandedFinder + .evaluate() + .first + .widget, + isA(), + ); + + final profileButtonsEditProfileButtonFinder = find.byKey( + const Key('profile_buttons_edit_profile_button'), + ); + bool profileButtonsEditProfileButtonIsAvailable = checkError( + 85, + find.descendant( + of: profileButtonsEditProfileButtonExpandedFinder, + matching: profileButtonsEditProfileButtonFinder), + findsOneWidget, + ); + if (profileButtonsEditProfileButtonIsAvailable) { + checkError( + 86, + profileButtonsEditProfileButtonFinder.evaluate().first.widget, + isA(), + ); + + final profileButtonsEditProfileButtonTextFinder = find.byKey( + const Key('profile_buttons_edit_profile_button_text'), + ); + bool profileButtonsEditProfileButtonTextIsAvailable = + checkError( + 87, + find.descendant( + of: profileButtonsEditProfileButtonFinder, + matching: profileButtonsEditProfileButtonTextFinder), + findsOneWidget, + ); + if (profileButtonsEditProfileButtonTextIsAvailable) { + bool profileButtonsEditProfileButtonTextIsText = checkError( + 88, + profileButtonsEditProfileButtonTextFinder + .evaluate() + .first + .widget, + isA(), + ); + if (profileButtonsEditProfileButtonTextIsText) { + final profileButtonsEditProfileButtonText = + profileButtonsEditProfileButtonTextFinder + .evaluate() + .first + .widget as Text; + checkError( + 89, + profileButtonsEditProfileButtonText.data, + 'Edit Profile', + ); + checkError( + 90, + profileButtonsEditProfileButtonText.style, + const TextStyle( + fontSize: 15, + fontWeight: FontWeight.w500, + color: Colors.white, + ), + ); + } + } + } + } + + final profileButtonsShareProfileButtonExpandedFinder = find.byKey( + const Key('profile_buttons_share_profile_button_expanded'), + ); + bool profileButtonsShareProfileButtonExpandedIsAvailable = + checkError( + 91, + find.descendant( + of: profileButtonsRowFinder, + matching: profileButtonsShareProfileButtonExpandedFinder, + ), + findsOneWidget, + ); + if (profileButtonsShareProfileButtonExpandedIsAvailable) { + checkError( + 92, + profileButtonsShareProfileButtonExpandedFinder + .evaluate() + .first + .widget, + isA(), + ); + + final profileButtonsShareProfileButtonFinder = find.byKey( + const Key('profile_buttons_share_profile_button'), + ); + bool profileButtonsShareProfileButtonIsAvailable = checkError( + 93, + find.descendant( + of: profileButtonsShareProfileButtonExpandedFinder, + matching: profileButtonsShareProfileButtonFinder), + findsOneWidget, + ); + if (profileButtonsShareProfileButtonIsAvailable) { + checkError( + 94, + profileButtonsShareProfileButtonFinder + .evaluate() + .first + .widget, + isA(), + ); + + final profileButtonsShareProfileButtonTextFinder = find.byKey( + const Key('profile_buttons_share_profile_button_text'), + ); + bool profileButtonsShareProfileButtonTextIsAvailable = + checkError( + 95, + find.descendant( + of: profileButtonsShareProfileButtonFinder, + matching: profileButtonsShareProfileButtonTextFinder), + findsOneWidget, + ); + if (profileButtonsShareProfileButtonTextIsAvailable) { + bool profileButtonsShareProfileButtonTextIsText = checkError( + 96, + profileButtonsShareProfileButtonTextFinder + .evaluate() + .first + .widget, + isA(), + ); + if (profileButtonsShareProfileButtonTextIsText) { + final profileButtonsShareProfileButtonText = + profileButtonsShareProfileButtonTextFinder + .evaluate() + .first + .widget as Text; + checkError( + 97, + profileButtonsShareProfileButtonText.data, + 'Share profile', + ); + checkError( + 98, + profileButtonsShareProfileButtonText.style, + const TextStyle( + fontSize: 15, + fontWeight: FontWeight.w500, + color: Colors.white, + ), + ); + } + } + } + } + + final profileButtonsDiscoverPeopleButtonFinder = find.byKey( + const Key('profile_buttons_discover_people_button'), + ); + bool profileButtonsDiscoverPeopleButtonIsAvailable = checkError( + 99, + find.descendant( + of: profileButtonsRowFinder, + matching: profileButtonsDiscoverPeopleButtonFinder), + findsOneWidget, + ); + if (profileButtonsDiscoverPeopleButtonIsAvailable) { + checkError( + 100, + profileButtonsDiscoverPeopleButtonFinder + .evaluate() + .first + .widget, + isA(), + ); + + final profileButtonsDiscoverPeopleIconFinder = find.byKey( + const Key('profile_buttons_discover_people_icon'), + ); + bool profileButtonsDiscoverPeopleIconIsAvailable = checkError( + 101, + find.descendant( + of: profileButtonsDiscoverPeopleButtonFinder, + matching: profileButtonsDiscoverPeopleIconFinder), + findsOneWidget, + ); + if (profileButtonsDiscoverPeopleIconIsAvailable) { + bool profileButtonsDiscoverPeopleIconIsIcon = checkError( + 102, + profileButtonsDiscoverPeopleIconFinder + .evaluate() + .first + .widget, + isA(), + ); + if (profileButtonsDiscoverPeopleIconIsIcon) { + final profileButtonsDiscoverPeopleIcon = + profileButtonsDiscoverPeopleIconFinder + .evaluate() + .first + .widget as Icon; + checkError( + 103, + profileButtonsDiscoverPeopleIcon.icon, + Icons.person_add_outlined, + ); + checkError( + 104, + profileButtonsDiscoverPeopleIcon.color, + Colors.white, + ); + } + } + } + } + } + } + } + }); + testWidgets("Check if Grey buttons is rendered correctly", + (widgetTester) async { + FlutterError.onError = ignoreOverflowErrors; + const mockKey = Key('grey_button'); + const mockWidget = Text('Grey Button'); + + await mockNetworkImagesFor( + () => widgetTester.pumpWidget( + MaterialApp( + home: GreyButton( + key: mockKey, + onPressed: () {}, + child: mockWidget, + ), + ), + ), + ); + + final greyButtonElevatedButtonFinder = find.byKey( + Key('${mockKey}_elevated_button'), + ); + bool greyButtonElevatedButtonIsAvailable = checkError( + 105, + greyButtonElevatedButtonFinder, + findsOneWidget, + ); + if (greyButtonElevatedButtonIsAvailable) { + bool greyButtonElevatedButtonIsElevatedButton = checkError( + 106, + greyButtonElevatedButtonFinder.evaluate().first.widget, + isA(), + ); + if (greyButtonElevatedButtonIsElevatedButton) { + final greyButtonElevatedButton = greyButtonElevatedButtonFinder + .evaluate() + .first + .widget as ElevatedButton; + try { + checkError( + 107, + greyButtonElevatedButton.style!.backgroundColor!.resolve(states), + Colors.grey[800], + ); + } catch (e) { + debugPrint( + "Account Page Test-107 failed: backgroundColor is not set", + ); + } + + try { + checkError( + 108, + greyButtonElevatedButton.style!.minimumSize!.resolve(states), + const Size(0, 30), + ); + } catch (e) { + debugPrint( + "Account Page Test-108 failed: minimumSize is not set", + ); + } + + try { + checkError( + 109, + greyButtonElevatedButton.style!.shape!.resolve(states), + RoundedRectangleBorder( + borderRadius: BorderRadius.circular(5), + ), + ); + } catch (e) { + debugPrint( + "Account Page Test-109 failed: shape is not set", + ); + } + } + } + }); + testWidgets("Check if Highlight list is rendered correctly", + (widgetTester) async { + FlutterError.onError = ignoreOverflowErrors; + + await mockNetworkImagesFor( + () => widgetTester.pumpWidget( + MaterialApp( + home: HighlightList(stories: stories), + ), + ), + ); + + final highlightListScrollViewFinder = find.byKey( + const Key('highlight_list_scroll_view'), + ); + + bool highlightListScrollViewIsAvailable = checkError( + 110, + highlightListScrollViewFinder, + findsOneWidget, + ); + + if (highlightListScrollViewIsAvailable) { + bool highlightListScrollViewIsScrollView = checkError( + 111, + highlightListScrollViewFinder.evaluate().first.widget, + isA(), + ); + if (highlightListScrollViewIsScrollView) { + final highlightListScrollView = highlightListScrollViewFinder + .evaluate() + .first + .widget as SingleChildScrollView; + checkError( + 112, + highlightListScrollView.scrollDirection, + Axis.horizontal, + ); + checkError( + 113, + highlightListScrollView.padding, + const EdgeInsets.only(left: 15, top: 10, bottom: 10), + ); + } + final highlightListParentRowFinder = find.byKey( + const Key("highlight_list_parent_row"), + ); + bool highlightListParentRowIsAvailable = checkError( + 114, + find.descendant( + of: highlightListScrollViewFinder, + matching: highlightListParentRowFinder, + ), + findsOneWidget, + ); + if (highlightListParentRowIsAvailable) { + checkError( + 115, + highlightListParentRowFinder.evaluate().first.widget, + isA(), + ); + final highlightListChildRowFinder = find.byKey( + const Key("highlight_list_child_row"), + ); + bool highlightListChildRowIsAvailable = checkError( + 116, + find.descendant( + of: highlightListParentRowFinder, + matching: highlightListChildRowFinder, + ), + findsOneWidget, + ); + if (highlightListChildRowIsAvailable) { + bool highlightListChildRowIsRow = checkError( + 117, + highlightListChildRowFinder.evaluate().first.widget, + isA(), + ); + if (highlightListChildRowIsRow) { + final highlightListChildRow = + highlightListChildRowFinder.evaluate().first.widget as Row; + bool highlightItemsFinder = checkError( + 118, + highlightListChildRow.children.length, + stories.length, + ); + + if (highlightItemsFinder) { + stories.asMap().forEach((key, value) { + final highlightItemFinder = find.byKey( + Key("highlight_item_$key"), + ); + bool highlightItemIsAvailable = checkError( + 119, + find.descendant( + of: highlightListChildRowFinder, + matching: highlightItemFinder, + ), + findsOneWidget, + ); + + if (highlightItemIsAvailable) { + bool highlightItemIsHighlightItem = checkError( + 120, + highlightItemFinder.evaluate().first.widget, + isA(), + ); + if (highlightItemIsHighlightItem) { + final highlightItem = highlightItemFinder + .evaluate() + .first + .widget as HighlightItem; + checkError( + 121, + highlightItem.img, + value["img"], + ); + checkError( + 122, + highlightItem.name, + value["name"], + ); + } + } + }); + } + } + } + + final highightListAddHighlightFinder = find.byKey( + const Key("highlight_list_add_highlight"), + ); + bool highightAddHighlightIsAvailable = checkError( + 123, + find.descendant( + of: highlightListParentRowFinder, + matching: highightListAddHighlightFinder, + ), + findsOneWidget, + ); + + if (highightAddHighlightIsAvailable) { + bool highightAddHighlightIsPadding = checkError( + 124, + highightListAddHighlightFinder.evaluate().first.widget, + isA(), + ); + if (highightAddHighlightIsPadding) { + final highightAddHighlight = highightListAddHighlightFinder + .evaluate() + .first + .widget as Padding; + checkError( + 125, + highightAddHighlight.padding, + const EdgeInsets.only(right: 10, bottom: 10), + ); + } + + final highlightListAddHighlightColumnFinder = find.byKey( + const Key("highlight_list_add_highlight_column"), + ); + bool highlightListAddHighlightColumnIsAvailable = checkError( + 126, + find.descendant( + of: highightListAddHighlightFinder, + matching: highlightListAddHighlightColumnFinder, + ), + findsOneWidget, + ); + if (highlightListAddHighlightColumnIsAvailable) { + bool highlightListAddHighlightColumnIsColumn = checkError( + 127, + highlightListAddHighlightColumnFinder.evaluate().first.widget, + isA(), + ); + if (highlightListAddHighlightColumnIsColumn) { + final highlightListAddHighlightColumn = + highlightListAddHighlightColumnFinder.evaluate().first.widget + as Column; + checkError( + 129, + highlightListAddHighlightColumn.children.length, + 2, + ); + // final highlightListAddHighlightIconFinder = find.byKey( + // const Key("highlight_list_add_highlight_icon"), + // ); + // bool highlightListAddHighlightIconIsAvailable = checkError( + // 130, + // find.descendant( + // of: highlightListAddHighlightColumnFinder, + // matching: highlightListAddHighlightIconFinder, + // ), + // findsOneWidget, + // ); + // if (highlightListAddHighlightIconIsAvailable) { + // bool highlightListAddHighlightIconIsIcon = checkError( + // 131, + // highlightListAddHighlightIconFinder.evaluate().first.widget, + // isA(), + // ); + // if (highlightListAddHighlightIconIsIcon) { + // final highlightListAddHighlightIcon = + // highlightListAddHighlightIconFinder + // .evaluate() + // .first + // .widget as Icon; + // checkError( + // 132, + // highlightListAddHighlightIcon.icon, + // Icons.add, + // ); + // checkError( + // 133, + // highlightListAddHighlightIcon.color, + // Colors.white, + // ); + // } + // } + // final highlightListAddHighlightTextFinder = find.byKey( + // const Key("highlight_list_add_highlight_text"), + // ); + // bool highlightListAddHighlightTextIsAvailable = checkError( + // 134, + // find.descendant( + // of: highlightListAddHighlightColumnFinder, + // matching: highlightListAddHighlightTextFinder, + // ), + // findsOneWidget, + // ); + // if (highlightListAddHighlightTextIsAvailable) { + // bool highlightListAddHighlightTextIsText = checkError( + // 135, + // highlightListAddHighlightTextFinder.evaluate().first.widget, + // isA(), + // ); + // if (highlightListAddHighlightTextIsText) { + // final highlightListAddHighlightText = + // highlightListAddHighlightTextFinder + // .evaluate() + // .first + // .widget as Text; + // checkError( + // 136, + // highlightListAddHighlightText.data, + // "New", + // ); + // } + // } + } + + final highlightListAddHighlightContainerFinder = find.byKey( + const Key("highlight_list_add_highlight_container"), + ); + bool highlightAddHighlightContainerIsAvailable = checkError( + 137, + find.descendant( + of: highlightListAddHighlightColumnFinder, + matching: highlightListAddHighlightContainerFinder, + ), + findsOneWidget, + ); + if (highlightAddHighlightContainerIsAvailable) { + bool highlightAddHighlightContainerIsContainer = checkError( + 138, + highlightListAddHighlightContainerFinder + .evaluate() + .first + .widget, + isA(), + ); + if (highlightAddHighlightContainerIsContainer) { + final highlightAddHighlightContainer = + highlightListAddHighlightContainerFinder + .evaluate() + .first + .widget as Container; + checkError( + 139, + highlightAddHighlightContainer.padding, + const EdgeInsets.all(3), + ); + checkError( + 140, + highlightAddHighlightContainer.margin, + const EdgeInsets.only(bottom: 8), + ); + checkError( + 141, + highlightAddHighlightContainer.constraints! + .widthConstraints(), + const BoxConstraints(minWidth: 68, maxWidth: 68), + ); + checkError( + 142, + highlightAddHighlightContainer.constraints! + .heightConstraints(), + const BoxConstraints(minHeight: 68, maxHeight: 68), + ); + + bool highlightAddHighlightContainerDecorationBoxDecoration = + checkError( + 143, + highlightAddHighlightContainer.decoration, + isA(), + ); + if (highlightAddHighlightContainerDecorationBoxDecoration) { + final highlightAddHighlightContainerDecoration = + highlightAddHighlightContainer.decoration + as BoxDecoration; + checkError( + 144, + highlightAddHighlightContainerDecoration.shape, + BoxShape.circle); + checkError( + 145, + highlightAddHighlightContainerDecoration.border, + Border.all(color: Colors.white, width: 1), + ); + } + } + + final highlightListAddHighlightIconContainerFinder = find.byKey( + const Key("highlight_list_add_highlight_icon_container"), + ); + + bool highlightListAddHighlightIconContainerIsAvailable = + checkError( + 146, + find.descendant( + of: highlightListAddHighlightContainerFinder, + matching: highlightListAddHighlightIconContainerFinder, + ), + findsOneWidget, + ); + if (highlightListAddHighlightIconContainerIsAvailable) { + bool highlightListAddHighlightIconContainerIsContainer = + checkError( + 147, + highlightListAddHighlightIconContainerFinder + .evaluate() + .first + .widget, + isA(), + ); + if (highlightListAddHighlightIconContainerIsContainer) { + final highlightListAddHighlightIconContainer = + highlightListAddHighlightIconContainerFinder + .evaluate() + .first + .widget as Container; + bool highlightListAddHighlightIconContainerIsBoxDecoration = + checkError( + 148, + highlightListAddHighlightIconContainer.decoration, + isA(), + ); + if (highlightListAddHighlightIconContainerIsBoxDecoration) { + final highlightListAddHighlightIconContainerDecoration = + highlightListAddHighlightIconContainer.decoration + as BoxDecoration; + checkError( + 149, + highlightListAddHighlightIconContainerDecoration.shape, + BoxShape.circle, + ); + checkError( + 150, + highlightListAddHighlightIconContainerDecoration.border, + Border.all(color: Colors.black, width: 2), + ); + } + } + + final highlightListAddHighlightIconFinder = find.byKey( + const Key("highlight_list_add_highlight_icon"), + ); + bool highlightListAddHighlightIconIsAvailable = checkError( + 151, + find.descendant( + of: highlightListAddHighlightIconContainerFinder, + matching: highlightListAddHighlightIconFinder, + ), + findsOneWidget, + ); + + if (highlightListAddHighlightIconIsAvailable) { + bool highlightListAddHighlightIconIsIcon = checkError( + 152, + highlightListAddHighlightIconFinder.evaluate().first.widget, + isA(), + ); + if (highlightListAddHighlightIconIsIcon) { + final highlightListAddHighlightIcon = + highlightListAddHighlightIconFinder + .evaluate() + .first + .widget as Icon; + checkError( + 153, + highlightListAddHighlightIcon.icon, + Icons.add, + ); + checkError( + 154, + highlightListAddHighlightIcon.color, + Colors.white, + ); + } + } + } + } + + final highlightListAddHighlightTextSizedBoxFinder = find.byKey( + const Key("highlight_list_add_highlight_text_sized_box"), + ); + bool highlightListAddHighlightTextSizedBoxIsAvailable = checkError( + 155, + find.descendant( + of: highlightListAddHighlightColumnFinder, + matching: highlightListAddHighlightTextSizedBoxFinder, + ), + findsOneWidget, + ); + + if (highlightListAddHighlightTextSizedBoxIsAvailable) { + bool highlightListAddHighlightTextSizedBoxIsSizedBox = checkError( + 156, + highlightListAddHighlightTextSizedBoxFinder + .evaluate() + .first + .widget, + isA(), + ); + if (highlightListAddHighlightTextSizedBoxIsSizedBox) { + final highlightListAddHighlightTextSizedBox = + highlightListAddHighlightTextSizedBoxFinder + .evaluate() + .first + .widget as SizedBox; + checkError( + 157, highlightListAddHighlightTextSizedBox.width, 70); + } + + final highlightListAddHighlightTextFinder = find.byKey( + const Key("highlight_list_add_highlight_text"), + ); + bool highlightListAddHighlightTextIsAvailable = checkError( + 158, + find.descendant( + of: highlightListAddHighlightTextSizedBoxFinder, + matching: highlightListAddHighlightTextFinder, + ), + findsOneWidget, + ); + + if (highlightListAddHighlightTextIsAvailable) { + bool highlightListAddHighlightTextIsText = checkError( + 159, + highlightListAddHighlightTextFinder.evaluate().first.widget, + isA(), + ); + if (highlightListAddHighlightTextIsText) { + final highlightListAddHighlightText = + highlightListAddHighlightTextFinder + .evaluate() + .first + .widget as Text; + checkError(160, highlightListAddHighlightText.data, "New"); + checkError( + 161, + highlightListAddHighlightText.overflow, + TextOverflow.ellipsis, + ); + checkError( + 162, + highlightListAddHighlightText.textAlign, + TextAlign.center, + ); + bool highlightListAddHighlightTextIsTextStyle = checkError( + 163, + highlightListAddHighlightText.style, + isA(), + ); + if (highlightListAddHighlightTextIsTextStyle) { + final highlightListAddHighlightTextStyle = + highlightListAddHighlightText.style as TextStyle; + checkError( + 164, + highlightListAddHighlightTextStyle.color, + Colors.white, + ); + } + } + } + } + } + } + } + } + }); + testWidgets("Check if Highlight Item is rendered correctly", + (widgetTester) async { + FlutterError.onError = ignoreOverflowErrors; + final img = stories[0]["img"]; + final name = stories[0]["name"]; + await widgetTester.pumpWidget( + MaterialApp( + home: HighlightItem( + img: img, + name: name, + ), + ), + ); + + final highlightItemPaddingFinder = find.byKey( + const Key("highlight_item_padding"), + ); + bool highlightItemPaddingIsAvailable = checkError( + 165, + find.descendant( + of: find.byType(HighlightItem), + matching: highlightItemPaddingFinder, + ), + findsOneWidget, + ); + + if (highlightItemPaddingIsAvailable) { + bool highlightItemPaddingIsPadding = checkError( + 166, + highlightItemPaddingFinder.evaluate().first.widget, + isA(), + ); + if (highlightItemPaddingIsPadding) { + final highlightItemPadding = + highlightItemPaddingFinder.evaluate().first.widget as Padding; + checkError( + 167, + highlightItemPadding.padding, + const EdgeInsets.only(right: 10, bottom: 10), + ); + } + final highlightItemColumnFinder = find.byKey( + const Key("highlight_item_column"), + ); + bool highlightItemColumnIsAvailable = checkError( + 168, + find.descendant( + of: highlightItemPaddingFinder, + matching: highlightItemColumnFinder, + ), + findsOneWidget, + ); + + if (highlightItemColumnIsAvailable) { + bool highlightItemColumnIsColumn = checkError( + 169, + highlightItemColumnFinder.evaluate().first.widget, + isA(), + ); + if (highlightItemColumnIsColumn) { + final highlightItemColumn = + highlightItemColumnFinder.evaluate().first.widget as Column; + checkError(170, highlightItemColumn.children.length, 2); + } + + final highlightItemContainerFinder = find.byKey( + const Key("highlight_item_container"), + ); + bool highlightItemContainerIsAvailable = checkError( + 171, + find.descendant( + of: highlightItemColumnFinder, + matching: highlightItemContainerFinder, + ), + findsOneWidget, + ); + if (highlightItemContainerIsAvailable) { + bool highlightItemContainerIsContainer = checkError( + 172, + highlightItemContainerFinder.evaluate().first.widget, + isA(), + ); + if (highlightItemContainerIsContainer) { + final highlightItemContainer = highlightItemContainerFinder + .evaluate() + .first + .widget as Container; + checkError( + 173, + highlightItemContainer.constraints!.widthConstraints(), + const BoxConstraints(minWidth: 68, maxWidth: 68), + ); + checkError( + 174, + highlightItemContainer.constraints!.heightConstraints(), + const BoxConstraints(minHeight: 68, maxHeight: 68), + ); + checkError( + 175, + highlightItemContainer.padding, + const EdgeInsets.all(3.0), + ); + checkError( + 176, + highlightItemContainer.margin, + const EdgeInsets.only(bottom: 8), + ); + + bool highlightItemContainerDecorationIsBoxDecoration = checkError( + 177, + highlightItemContainer.decoration, + isA(), + ); + + if (highlightItemContainerDecorationIsBoxDecoration) { + final highlightItemContainerDecoration = + highlightItemContainer.decoration as BoxDecoration; + checkError( + 178, highlightItemContainerDecoration.shape, BoxShape.circle); + checkError( + 179, + highlightItemContainerDecoration.border, + Border.all(color: Colors.grey[800]!, width: 1), + ); + } + } + } + final highlightItemImageContainerFinder = find.byKey( + const Key("highlight_item_image_container"), + ); + bool highlightItemImageContainerIsAvailable = checkError( + 180, + find.descendant( + of: highlightItemContainerFinder, + matching: highlightItemImageContainerFinder, + ), + findsOneWidget, + ); + if (highlightItemImageContainerIsAvailable) { + bool highlightItemImageContainerIsContainer = checkError( + 181, + highlightItemImageContainerFinder.evaluate().first.widget, + isA(), + ); + if (highlightItemImageContainerIsContainer) { + final highlightItemImageContainer = + highlightItemImageContainerFinder.evaluate().first.widget + as Container; + bool highlightItemImageContainerDecorationIsBoxDecoration = + checkError(182, highlightItemImageContainer.decoration, + isA()); + if (highlightItemImageContainerDecorationIsBoxDecoration) { + final highlightItemImageContainerDecoration = + highlightItemImageContainer.decoration as BoxDecoration; + checkError(183, highlightItemImageContainerDecoration.shape, + BoxShape.circle); + checkError( + 184, + highlightItemImageContainerDecoration.border, + Border.all(color: Colors.black, width: 2), + ); + bool highlightItemImageContainerDecorationImageIsDecorationImage = + checkError( + 185, + highlightItemImageContainerDecoration.image, + isA(), + ); + + if (highlightItemImageContainerDecorationImageIsDecorationImage) { + final highlightItemImageContainerDecorationImage = + highlightItemImageContainerDecoration.image + as DecorationImage; + checkError(186, highlightItemImageContainerDecorationImage.fit, + BoxFit.cover); + bool highlightItemImageContainerDecorationImageIsNetworkImage = + checkError( + 187, + highlightItemImageContainerDecorationImage.image, + isA(), + ); + + if (highlightItemImageContainerDecorationImageIsNetworkImage) { + final highlightItemImageContainerDecorationImageNetworkImage = + highlightItemImageContainerDecorationImage.image + as NetworkImage; + checkError( + 188, + highlightItemImageContainerDecorationImageNetworkImage.url, + img, + ); + } + } + } + } + } + + final highlightItemTextSizedBoxFinder = find.byKey( + const Key("highlight_item_text_sized_box"), + ); + bool highlightItemTextSizedBoxIsAvailable = checkError( + 189, + find.descendant( + of: highlightItemColumnFinder, + matching: highlightItemTextSizedBoxFinder, + ), + findsOneWidget, + ); + + if (highlightItemTextSizedBoxIsAvailable) { + bool highlightItemTextSizedBoxIsSizedBox = checkError( + 190, + highlightItemTextSizedBoxFinder.evaluate().first.widget, + isA(), + ); + if (highlightItemTextSizedBoxIsSizedBox) { + final highlightItemTextSizedBox = highlightItemTextSizedBoxFinder + .evaluate() + .first + .widget as SizedBox; + checkError(191, highlightItemTextSizedBox.width, 70); + } + final highlightItemTextFinder = find.byKey( + const Key("highlight_item_text"), + ); + bool highlightItemTextIsAvailable = checkError( + 192, + find.descendant( + of: highlightItemTextSizedBoxFinder, + matching: highlightItemTextFinder, + ), + findsOneWidget, + ); + if (highlightItemTextIsAvailable) { + bool highlightItemTextIsText = checkError( + 193, + highlightItemTextFinder.evaluate().first.widget, + isA(), + ); + if (highlightItemTextIsText) { + final highlightItemText = + highlightItemTextFinder.evaluate().first.widget as Text; + checkError( + 194, highlightItemText.overflow, TextOverflow.ellipsis); + checkError(195, highlightItemText.textAlign, TextAlign.center); + bool highlightItemTextIsTextStyle = checkError( + 196, + highlightItemText.style, + isA(), + ); + if (highlightItemTextIsTextStyle) { + final highlightItemTextStyle = + highlightItemText.style as TextStyle; + checkError(197, highlightItemTextStyle.color, Colors.white); + } + checkError(198, highlightItemText.data, name); + } + } + } + } + } + }); + testWidgets("Check if Account tab is rendered correctly", + (widgetTester) async { + FlutterError.onError = ignoreOverflowErrors; + const pageIndex = 0; + + await mockNetworkImagesFor( + () => widgetTester.pumpWidget( + MaterialApp( + home: AccountTab( + pageIndex: pageIndex, + updateIndex: (updateIndex) {}, + ), + ), + ), + ); + + final accountTabRowFinder = find.byKey( + const Key("account_tab_row"), + ); + bool accountTabRowIsAvailable = checkError( + 199, + accountTabRowFinder, + findsOneWidget, + ); + if (accountTabRowIsAvailable) { + bool accountTabRowIsRow = checkError( + 200, + accountTabRowFinder.evaluate().first.widget, + isA(), + ); + if (accountTabRowIsRow) { + final accountTabRow = + accountTabRowFinder.evaluate().first.widget as Row; + checkError(201, accountTabRow.children.length, tabs.length); + } + + tabs.asMap().forEach((key, value) { + final accountTabDecoratedBoxFinder = find.byKey( + Key("account_tab_decorated_box_$key"), + ); + bool accountTabDecoratedBoxIsAvailable = checkError( + 202, + find.descendant( + of: accountTabRowFinder, + matching: accountTabDecoratedBoxFinder, + ), + findsOneWidget, + ); + + if (accountTabDecoratedBoxIsAvailable) { + bool accountTabDecoratedBoxIsDecoratedBox = checkError( + 203, + accountTabDecoratedBoxFinder.evaluate().first.widget, + isA(), + ); + if (accountTabDecoratedBoxIsDecoratedBox) { + final accountTabDecoratedBox = accountTabDecoratedBoxFinder + .evaluate() + .first + .widget as DecoratedBox; + bool accountTabDecoratedBoxDecorationIsBoxDecoration = checkError( + 204, + accountTabDecoratedBox.decoration, + isA(), + ); + if (accountTabDecoratedBoxDecorationIsBoxDecoration) { + final accountTabDecoratedBoxDecoration = + accountTabDecoratedBox.decoration as BoxDecoration; + bool accountTabDecoratedBoxDecorationBorderIsBorder = checkError( + 205, + accountTabDecoratedBoxDecoration.border, + isA(), + ); + if (accountTabDecoratedBoxDecorationBorderIsBorder) { + final accountTabDecoratedBoxDecorationBorder = + accountTabDecoratedBoxDecoration.border as Border; + bool accountTabDecoratedBoxDecorationBorderBottomIsBorderSide = + checkError( + 206, + accountTabDecoratedBoxDecorationBorder.bottom, + isA(), + ); + if (accountTabDecoratedBoxDecorationBorderBottomIsBorderSide) { + final accountTabDecoratedBoxDecorationBorderBottom = + accountTabDecoratedBoxDecorationBorder.bottom; + checkError( + 207, + accountTabDecoratedBoxDecorationBorderBottom.color, + (pageIndex == key) ? Colors.white : Colors.transparent, + ); + checkError( + 208, + accountTabDecoratedBoxDecorationBorderBottom.width, + 2, + ); + } + } + } + } + final accountTabElevatedButtonFinder = find.byKey( + Key("account_tab_elevated_button_$key"), + ); + bool accountTabElevatedButtonIsAvailable = checkError( + 209, + find.descendant( + of: accountTabDecoratedBoxFinder, + matching: accountTabElevatedButtonFinder, + ), + findsOneWidget, + ); + if (accountTabElevatedButtonIsAvailable) { + bool accountTabElevatedButtonIsElevatedButton = checkError( + 210, + accountTabElevatedButtonFinder.evaluate().first.widget, + isA(), + ); + if (accountTabElevatedButtonIsElevatedButton) { + final accountTabElevatedButton = accountTabElevatedButtonFinder + .evaluate() + .first + .widget as ElevatedButton; + bool accountTabElevatedButtonStyleIsButtonStyle = checkError( + 211, + accountTabElevatedButton.style, + isA(), + ); + if (accountTabElevatedButtonStyleIsButtonStyle) { + final accountTabElevatedButtonStyle = + accountTabElevatedButton.style as ButtonStyle; + checkError( + 212, + accountTabElevatedButtonStyle.backgroundColor! + .resolve(states), + Colors.transparent, + ); + checkError( + 213, + accountTabElevatedButtonStyle.elevation!.resolve(states), + 0, + ); + } + } + final accountTabIconFinder = find.byKey( + Key("account_tab_icon_$key"), + ); + bool accountTabIconIsAvailable = checkError( + 214, + find.descendant( + of: accountTabElevatedButtonFinder, + matching: accountTabIconFinder, + ), + findsOneWidget, + ); + if (accountTabIconIsAvailable) { + bool accountTabIconIsIcon = checkError( + 215, + accountTabIconFinder.evaluate().first.widget, + isA(), + ); + if (accountTabIconIsIcon) { + final accountTabIcon = + accountTabIconFinder.evaluate().first.widget as Icon; + checkError(216, accountTabIcon.color, Colors.white); + checkError(217, accountTabIcon.icon, tabs[key]['icon']); + } + } + } + } + }); + } + }); + testWidgets('Check if Account posts thumbnail is present', + (WidgetTester tester) async { + FlutterError.onError = ignoreOverflowErrors; + const String imageUrl = "https://picsum.photos/250?image=9"; + // mock screen size + tester.binding.window.physicalSizeTestValue = const Size(375, 812); + await mockNetworkImagesFor( + () => tester.pumpWidget( + const MaterialApp( + home: PostThumbnail(imageUrl: imageUrl), + ), + ), + ); + + final postThumbnailContainerFinder = find.byKey( + const Key(imageUrl), + ); + checkError(218, postThumbnailContainerFinder, findsOneWidget); + + final postThumbnailContainer = + postThumbnailContainerFinder.evaluate().single.widget as Container; + checkError(219, postThumbnailContainer.decoration, isA()); + + final postThumbnailContainerDecoration = + postThumbnailContainer.decoration as BoxDecoration; + checkError( + 220, + postThumbnailContainerDecoration.image, + isA(), + ); + + final postThumbnailContainerDecorationImage = + postThumbnailContainerDecoration.image as DecorationImage; + checkError( + 221, + postThumbnailContainerDecorationImage.image, + isA(), + ); + checkError( + 222, + postThumbnailContainerDecorationImage.fit, + BoxFit.cover, + ); + + final postThumbnailContainerDecorationImageNetworkImage = + postThumbnailContainerDecorationImage.image as NetworkImage; + checkError( + 223, + postThumbnailContainerDecorationImageNetworkImage.url, + imageUrl, + ); + }); + + testWidgets('Check if Bottom Navbar is present', (WidgetTester tester) async { + FlutterError.onError = ignoreOverflowErrors; + + await mockNetworkImagesFor( + () => tester.pumpWidget( + MaterialApp( + home: AccountPage( + posts: posts, + stories: stories, + profileData: profileJson, + ), + ), + ), + ); + + int pageIndex = 4; + + List bottomItems = [ + pageIndex == 0 + ? "assets/images/home_active_icon.svg" + : "assets/images/home_icon.svg", + pageIndex == 1 + ? "assets/images/search_active_icon.svg" + : "assets/images/search_icon.svg", + pageIndex == 2 + ? "assets/images/upload_active_icon.svg" + : "assets/images/upload_icon.svg", + pageIndex == 3 + ? "assets/images/love_active_icon.svg" + : "assets/images/love_icon.svg", + pageIndex == 4 + ? "assets/images/account_active_icon.svg" + : "assets/images/account_icon.svg", + ]; + + final bottomNavigationBarContainer = + find.byKey(const Key('bottom_navigation_bar_container')); + checkError(224, bottomNavigationBarContainer, findsOneWidget); + + final bottomNavigationBarContainerFinder = + bottomNavigationBarContainer.evaluate().first.widget as Container; + checkError( + 225, bottomNavigationBarContainerFinder.constraints!.maxHeight, 55); + checkError(226, bottomNavigationBarContainerFinder.constraints!.maxWidth, + double.infinity); + checkError(227, bottomNavigationBarContainerFinder.color, Colors.black); + checkError(228, bottomNavigationBarContainerFinder.padding, + const EdgeInsets.only(left: 20, right: 20, bottom: 20, top: 15)); + + final bottomNavigationBarRowFinder = + find.byKey(const Key('bottom_navigation_bar_row')); + checkError( + 229, + find.descendant( + of: bottomNavigationBarContainer, + matching: bottomNavigationBarRowFinder), + findsOneWidget); + + final bottomNavigationBarRow = + bottomNavigationBarRowFinder.evaluate().first.widget as Row; + checkError(230, bottomNavigationBarRow.mainAxisAlignment, + MainAxisAlignment.spaceBetween); + checkError(231, bottomNavigationBarRow.children, hasLength(5)); + + bottomItems.asMap().forEach((index, value) { + final bottomItem = bottomNavigationBarRow.children[index] as InkWell; + checkError(232, bottomItem.onTap, isA()); + checkError(233, bottomItem.child, isA()); + + final bottomItemSvgPicture = bottomItem.child as SvgPicture; + checkError(234, bottomItemSvgPicture.pictureProvider.runtimeType, + ExactAssetPicture); + checkError(235, bottomItemSvgPicture.width, 27); + final bottomItemSvgPicturePictureProvider = + bottomItemSvgPicture.pictureProvider as ExactAssetPicture; + checkError(236, bottomItemSvgPicturePictureProvider.assetName, + bottomItems[index]); + }); + }); +} diff --git a/test/helper.dart b/test/helper.dart new file mode 100644 index 0000000..906fa9a --- /dev/null +++ b/test/helper.dart @@ -0,0 +1,27 @@ +import 'package:flutter/material.dart'; + +void ignoreOverflowErrors( + FlutterErrorDetails details, { + bool forceReport = false, +}) { + bool ifIsOverflowError = false; + bool isUnableToLoadAsset = false; + + // Detect overflow error. + var exception = details.exception; + if (exception is FlutterError) { + ifIsOverflowError = !exception.diagnostics.any( + (e) => e.value.toString().startsWith("A RenderFlex overflowed by"), + ); + isUnableToLoadAsset = !exception.diagnostics.any( + (e) => e.value.toString().startsWith("Unable to load asset"), + ); + } + + // Ignore if is overflow error. + if (ifIsOverflowError || isUnableToLoadAsset) { + debugPrint('Ignored Error'); + } else { + FlutterError.dumpErrorToConsole(details, forceReport: forceReport); + } +} diff --git a/test/home_page_test.dart b/test/home_page_test.dart new file mode 100644 index 0000000..5a5ab74 --- /dev/null +++ b/test/home_page_test.dart @@ -0,0 +1,1090 @@ +import 'package:example_widget_testing/app/modules/home/components/story_item.dart'; +import 'package:example_widget_testing/app/modules/home/home_page.dart'; +import 'package:example_widget_testing/app/widgets/post_item.dart'; +import 'package:example_widget_testing/core/values/constant/profile_json.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:network_image_mock/network_image_mock.dart'; +// import story_json.dart' +import 'package:example_widget_testing/core/values/constant/story_json.dart'; +import 'package:example_widget_testing/core/theme/colors.dart'; +import 'package:example_widget_testing/core/values/constant/post_json.dart'; + +import 'helper.dart'; + +void checkError(int index, dynamic expected, dynamic matcher) { + try { + expect(expected, matcher); + } catch (e) { + debugPrint('Homepage Test-$index failed:'); + debugPrint(e.toString()); + } +} + +void main() { + testWidgets('Check if home page is present', (WidgetTester tester) async { + FlutterError.onError = ignoreOverflowErrors; + + await mockNetworkImagesFor( + () => tester.pumpWidget( + MaterialApp( + home: HomePage( + posts: posts, profileData: profileJson, stories: stories), + ), + ), + ); + final homePageFinder = find.byType(HomePage); + checkError(1, homePageFinder, findsOneWidget); + }); + + testWidgets('Check if Home page Appbar is present', + (WidgetTester tester) async { + FlutterError.onError = ignoreOverflowErrors; + + await mockNetworkImagesFor( + () => tester.pumpWidget( + MaterialApp( + home: HomePage( + posts: posts, profileData: profileJson, stories: stories), + ), + ), + ); + + final appBarFinder = find.byKey(const Key('app_bar_home')); + checkError(2, appBarFinder, findsOneWidget); + + final appBar = appBarFinder.evaluate().first.widget as AppBar; + checkError(3, appBar.backgroundColor, Colors.black); + checkError(4, appBar.leading, isA()); + + final appBarLeading = appBar.leading as Icon; + checkError(5, appBarLeading.icon, Icons.camera_alt); + checkError(6, appBar.title, isA
()); + + final appBarTitle = appBar.title as Center; + checkError(7, appBarTitle.child, isA()); + checkError(8, appBar.actions, isA>()); + checkError(9, appBar.actions?.length, 1); + + final appBarAction = appBar.actions?.first as Icon; + checkError(10, appBarAction.icon, Icons.send); + }); + + testWidgets('Check if Story is present', (WidgetTester tester) async { + FlutterError.onError = ignoreOverflowErrors; + + await mockNetworkImagesFor( + () => tester.pumpWidget( + MaterialApp( + home: HomePage( + posts: posts, profileData: profileJson, stories: stories), + ), + ), + ); + + final storyFinder = find.byKey(const Key('stories')); + checkError(11, storyFinder, findsOneWidget); + + final story = storyFinder.evaluate().first.widget as Row; + checkError(12, story.children, isA>()); + checkError(13, story.children.length, stories.length); + checkError(14, story.children[0], isA()); + + stories.asMap().forEach((index, value) { + final storyItem = story.children[index] as StoryItem; + checkError(15, storyItem.name, value['name']); + checkError(16, storyItem.img, value['img']); + }); + }); + + testWidgets('Check if StoryItem rendered correctly', + (WidgetTester tester) async { + // Define test data + const String imageUrl = 'https://example.com/image.jpg'; + const String name = 'John Doe'; + + await mockNetworkImagesFor(() => tester.pumpWidget( + const MaterialApp(home: StoryItem(img: imageUrl, name: name)))); + + checkError(17, find.byType(Container), findsNWidgets(2)); + + final storyItemPaddingFinder = find.byKey(const Key('story_item_padding')); + checkError(18, storyItemPaddingFinder, findsOneWidget); + + final storyItemPadding = + storyItemPaddingFinder.evaluate().first.widget as Padding; + checkError( + 19, + storyItemPadding.padding, + const EdgeInsets.only(right: 20, bottom: 10), + ); + + final storyItemColumnFinder = find.byKey(const Key('story_item_column')); + checkError(20, storyItemColumnFinder, findsOneWidget); + checkError( + 21, + find.descendant( + of: storyItemPaddingFinder, matching: storyItemColumnFinder), + findsOneWidget, + ); + + final storyItemColumn = + storyItemColumnFinder.evaluate().first.widget as Column; + checkError(22, storyItemColumn.children, isA>()); + checkError(23, storyItemColumn.children.length, 2); + + final storyItemContainerFinder = find.byKey( + const Key('story_item_container'), + ); + checkError( + 24, + find.descendant( + of: storyItemColumnFinder, + matching: storyItemContainerFinder, + ), + findsOneWidget, + ); + + final storyItemContainer = + storyItemContainerFinder.evaluate().first.widget as Container; + + checkError( + 25, + storyItemContainer.constraints!.widthConstraints(), + const BoxConstraints(minWidth: 68, maxWidth: 68), + ); + + checkError(26, storyItemContainer.margin, const EdgeInsets.only(bottom: 8)); + + checkError( + 27, + storyItemContainer.constraints!.heightConstraints(), + const BoxConstraints(minHeight: 68, maxHeight: 68), + ); + + checkError(29, storyItemContainer.decoration, isA()); + + final storyItemContainerDecoration = + storyItemContainer.decoration as BoxDecoration; + checkError(28, storyItemContainerDecoration.shape, BoxShape.circle); + + checkError( + 30, storyItemContainerDecoration.gradient, isA()); + final storyItemContainerGradient = + storyItemContainerDecoration.gradient as LinearGradient; + checkError(31, storyItemContainerGradient.begin, Alignment.topCenter); + checkError(32, storyItemContainerGradient.end, Alignment.bottomCenter); + checkError(33, storyItemContainerGradient.colors, + const [Color(0xFF9B2282), Color(0xFFEEA863)]); + + final storyItemImageContainerFinder = find.byKey( + const Key('story_item_image_container'), + ); + + checkError( + 34, + find.descendant( + of: storyItemContainerFinder, + matching: storyItemImageContainerFinder, + ), + findsOneWidget, + ); + + final storyItemImageContainer = + storyItemImageContainerFinder.evaluate().first.widget as Container; + + checkError( + 35, + storyItemImageContainer.constraints!.widthConstraints(), + const BoxConstraints(minWidth: 65, maxWidth: 65), + ); + + checkError( + 36, + storyItemImageContainer.constraints!.heightConstraints(), + const BoxConstraints(minHeight: 65, maxHeight: 65), + ); + + checkError(37, storyItemImageContainer.margin, const EdgeInsets.all(3)); + checkError(38, storyItemImageContainer.decoration, isA()); + + final storyItemImageContainerDecoration = + storyItemImageContainer.decoration as BoxDecoration; + checkError(39, storyItemImageContainerDecoration.shape, BoxShape.circle); + checkError( + 40, + storyItemImageContainerDecoration.border, + const Border.fromBorderSide( + BorderSide( + color: black, + width: 2, + style: BorderStyle.solid, + ), + ), + ); + + checkError( + 41, storyItemImageContainerDecoration.image, isA()); + + final storyItemImageContainerDecorationImage = + (storyItemImageContainer.decoration as BoxDecoration).image + as DecorationImage; + checkError( + 42, storyItemImageContainerDecorationImage.image, isA()); + + checkError(42, storyItemImageContainerDecorationImage.fit, BoxFit.cover); + + final storyItemUsernameSizeBoxFinder = find.byKey( + const Key('story_item_username_sizedbox'), + ); + + checkError( + 43, + find.descendant( + of: storyItemColumnFinder, matching: storyItemUsernameSizeBoxFinder), + findsOneWidget, + ); + + final storyItemUsernameSizeBox = + storyItemUsernameSizeBoxFinder.evaluate().first.widget as SizedBox; + checkError(44, storyItemUsernameSizeBox.width, 70); + + final storyItemUsernameTextFinder = find.byKey( + const Key('story_item_username_text'), + ); + + checkError( + 45, + find.descendant( + of: storyItemUsernameSizeBoxFinder, + matching: storyItemUsernameTextFinder), + findsOneWidget, + ); + + final storyItemUsernameText = + storyItemUsernameTextFinder.evaluate().first.widget as Text; + checkError(46, storyItemUsernameText.data, name); + checkError(47, storyItemUsernameText.overflow, TextOverflow.ellipsis); + checkError(48, storyItemUsernameText.style!.color, white); + }); + + testWidgets('Check if divider is present', (WidgetTester tester) async { + FlutterError.onError = ignoreOverflowErrors; + + await tester.pumpWidget( + MaterialApp( + home: + HomePage(posts: posts, profileData: profileJson, stories: stories), + ), + ); + + final dividerFinder = find.byKey(const Key('divider')); + checkError(49, dividerFinder, findsOneWidget); + + final divider = dividerFinder.evaluate().first.widget as Divider; + checkError(50, divider.color, white.withOpacity(0.3)); + }); + + testWidgets('Check if Posts Column is present', (WidgetTester tester) async { + await tester.pumpWidget( + MaterialApp( + home: + HomePage(posts: posts, profileData: profileJson, stories: stories), + ), + ); + + final homePageColumnFinder = find.byKey(const Key('home_page_column')); + + final postsColumnFinder = find.byKey(const Key('posts_column')); + + checkError( + 51, + find.descendant(of: homePageColumnFinder, matching: postsColumnFinder), + findsOneWidget, + ); + checkError(52, postsColumnFinder, findsOneWidget); + + final postsColumn = postsColumnFinder.evaluate().first.widget as Column; + checkError(53, postsColumn.children.length, posts.length); + }); + + testWidgets( + 'Check if PostItem rendered correctly', + (WidgetTester tester) async { + FlutterError.onError = ignoreOverflowErrors; + + await mockNetworkImagesFor( + () => tester.pumpWidget( + MaterialApp( + home: PostItem( + postImg: posts[0]['postImg'], + profileImg: posts[0]['profileImg'], + name: posts[0]['name'], + caption: posts[0]['caption'], + isLoved: posts[0]['isLoved'], + viewCount: posts[0]['commentCount'], + likedBy: posts[0]['likedBy'], + dayAgo: posts[0]['timeAgo'], + userPhoto: profile, + ), + ), + ), + ); + + final postItemPaddingFinder = find.byKey(const Key('post_item_padding')); + checkError(54, postItemPaddingFinder, findsOneWidget); + + final postItemPadding = + postItemPaddingFinder.evaluate().first.widget as Padding; + checkError( + 55, postItemPadding.padding, const EdgeInsets.only(bottom: 10)); + + final postItemColumnFinder = find.byKey(const Key('post_item_column')); + checkError( + 56, + find.descendant( + of: postItemPaddingFinder, matching: postItemColumnFinder), + findsOneWidget, + ); + + final postItemColumn = + postItemColumnFinder.evaluate().first.widget as Column; + checkError( + 57, postItemColumn.crossAxisAlignment, CrossAxisAlignment.start); + checkError(58, postItemColumn.children.length, 8); + + final postItemUserInfoContainerFinder = find.byKey( + const Key('post_item_user_info_container'), + ); + + checkError( + 59, + find.descendant( + of: postItemColumnFinder, + matching: postItemUserInfoContainerFinder), + findsOneWidget, + ); + + final postItemUserInfoContainer = + postItemUserInfoContainerFinder.evaluate().first.widget as Container; + + checkError(60, postItemUserInfoContainer.padding, + const EdgeInsets.symmetric(vertical: 10, horizontal: 15)); + + checkError(61, postItemUserInfoContainer.margin, + const EdgeInsets.only(bottom: 12)); + + final postItemUserInfoRowFinder = find.byKey( + const Key('post_item_user_info_row'), + ); + checkError( + 62, + find.descendant( + of: postItemUserInfoContainerFinder, + matching: postItemUserInfoRowFinder), + findsOneWidget, + ); + + final postItemUserInfoRow = + postItemUserInfoRowFinder.evaluate().first.widget as Row; + + checkError(63, postItemUserInfoRow.mainAxisAlignment, + MainAxisAlignment.spaceBetween); + checkError(64, postItemUserInfoRow.children.length, 3); + + final postItemUserImgContainerFinder = find.byKey( + const Key('post_item_user_profile_img_container'), + ); + + checkError( + 65, + find.descendant( + of: postItemUserInfoRowFinder, + matching: postItemUserImgContainerFinder), + findsOneWidget, + ); + + final postItemUserImgContainer = + postItemUserImgContainerFinder.evaluate().first.widget as Container; + + checkError(66, postItemUserImgContainer.constraints!.widthConstraints(), + const BoxConstraints(minWidth: 40, maxWidth: 40)); + checkError(67, postItemUserImgContainer.constraints!.heightConstraints(), + const BoxConstraints(minHeight: 40, maxHeight: 40)); + checkError(68, postItemUserImgContainer.margin, + const EdgeInsets.only(right: 15)); + checkError(69, postItemUserImgContainer.decoration, isA()); + + final postItemUserImgContainerDecoration = + postItemUserImgContainer.decoration as BoxDecoration; + checkError(70, postItemUserImgContainerDecoration.shape, BoxShape.circle); + checkError( + 71, postItemUserImgContainerDecoration.image, isA()); + + final postItemUserImgContainerDecorationImage = + postItemUserImgContainerDecoration.image as DecorationImage; + checkError(72, postItemUserImgContainerDecorationImage.image, + isA()); + checkError(73, postItemUserImgContainerDecorationImage.fit, BoxFit.cover); + + final postItemUserImgContainerDecorationImageNetworkImage = + postItemUserImgContainerDecorationImage.image as NetworkImage; + checkError(74, postItemUserImgContainerDecorationImageNetworkImage.url, + posts[0]['profileImg']); + + final postItemUserNameExpendedFinder = find.byKey( + const Key('post_item_user_name_expanded'), + ); + + checkError( + 75, + find.descendant( + of: postItemUserInfoRowFinder, + matching: postItemUserNameExpendedFinder), + findsOneWidget, + ); + + final postItemUserNameTextFinder = find.byKey( + const Key('post_item_user_name_text'), + ); + + checkError( + 76, + find.descendant( + of: postItemUserNameExpendedFinder, + matching: postItemUserNameTextFinder), + findsOneWidget, + ); + + final postItemUserNameText = + postItemUserNameTextFinder.evaluate().first.widget as Text; + checkError(77, postItemUserNameText.data, posts[0]['name']); + checkError(78, postItemUserNameText.style, isA()); + final postItemUserNameTextStyle = postItemUserNameText.style as TextStyle; + checkError(79, postItemUserNameTextStyle.color, Colors.white); + checkError(80, postItemUserNameTextStyle.fontWeight, FontWeight.w500); + checkError(81, postItemUserNameTextStyle.fontSize, 15); + + final postItemUserMoreIconFinder = find.byKey( + const Key('post_item_user_more_icon'), + ); + + checkError( + 82, + find.descendant( + of: postItemUserInfoRowFinder, + matching: postItemUserMoreIconFinder), + findsOneWidget, + ); + + final postItemUserMoreIcon = + postItemUserMoreIconFinder.evaluate().first.widget as Icon; + checkError(83, postItemUserMoreIcon.icon, Icons.more_horiz); + checkError(84, postItemUserMoreIcon.color, Colors.white); + + final postItemImageContainerFinder = find.byKey( + const Key('post_item_image_container'), + ); + checkError( + 85, + find.descendant( + of: postItemColumnFinder, matching: postItemImageContainerFinder), + findsOneWidget, + ); + + final postItemImageContainer = + postItemImageContainerFinder.evaluate().first.widget as Container; + checkError(86, postItemImageContainer.constraints!.heightConstraints(), + const BoxConstraints(maxHeight: 400, minHeight: 400)); + checkError( + 87, postItemImageContainer.margin, const EdgeInsets.only(bottom: 10)); + checkError(88, postItemImageContainer.decoration, isA()); + + final postItemImageContainerDecoration = + postItemImageContainer.decoration as BoxDecoration; + checkError( + 89, postItemImageContainerDecoration.image, isA()); + + final postItemImageContainerDecorationImage = + postItemImageContainerDecoration.image as DecorationImage; + checkError( + 90, postItemImageContainerDecorationImage.image, isA()); + checkError(91, postItemImageContainerDecorationImage.fit, BoxFit.cover); + + final postItemImageContainerDecorationImageNetworkImage = + postItemImageContainerDecorationImage.image as NetworkImage; + checkError(92, postItemImageContainerDecorationImageNetworkImage.url, + posts[0]['postImg']); + + final postItemActionContainerFinder = + find.byKey(const Key('post_item_actions_container')); + checkError( + 93, + find.descendant( + of: postItemColumnFinder, matching: postItemActionContainerFinder), + findsOneWidget, + ); + + final postItemActionContainer = + postItemActionContainerFinder.evaluate().first.widget as Container; + checkError( + 94, + postItemActionContainer.padding, + const EdgeInsets.fromLTRB(15, 3, 15, 0), + ); + checkError(95, postItemActionContainer.margin, + const EdgeInsets.only(bottom: 12)); + + final postItemActionRowFinder = find.byKey( + const Key('post_item_actions_row'), + ); + checkError( + 96, + find.descendant( + of: postItemActionContainerFinder, + matching: postItemActionRowFinder), + findsOneWidget, + ); + + final postItemActionRow = + postItemActionRowFinder.evaluate().first.widget as Row; + checkError(97, postItemActionRow.mainAxisAlignment, + MainAxisAlignment.spaceBetween); + checkError(98, postItemActionRow.children.length, 2); + + final postItemActionsLeftRowFinder = find.byKey( + const Key('post_item_actions_left_row'), + ); + checkError( + 99, + find.descendant( + of: postItemActionRowFinder, + matching: postItemActionsLeftRowFinder), + findsOneWidget, + ); + + final postItemActionsLeftRow = + postItemActionsLeftRowFinder.evaluate().first.widget as Row; + checkError(100, postItemActionsLeftRow.children.length, 5); + + final postItemActionsLoveIconFinder = find.byKey( + const Key('post_item_actions_love_icon'), + ); + checkError( + 101, + find.descendant( + of: postItemActionsLeftRowFinder, + matching: postItemActionsLoveIconFinder), + findsOneWidget, + ); + + final postItemActionsLoveIcon = + postItemActionsLoveIconFinder.evaluate().first.widget as SvgPicture; + checkError(102, postItemActionsLoveIcon, isA()); + checkError(103, postItemActionsLoveIcon.width, 27); + checkError(104, postItemActionsLoveIcon.pictureProvider.runtimeType, + ExactAssetPicture); + + final postItemActionsLoveIconPictureProvider = + postItemActionsLoveIcon.pictureProvider as ExactAssetPicture; + checkError( + 105, + postItemActionsLoveIconPictureProvider.assetName, + posts[0]['isLoved'] + ? 'assets/images/loved_icon.svg' + : 'assets/images/love_icon.svg'); + final postItemActionsLeftRowSizeBox1Finder = find.byKey( + const Key('post_item_actions_left_row_sized_box_1'), + ); + checkError( + 106, + find.descendant( + of: postItemActionsLeftRowFinder, + matching: postItemActionsLeftRowSizeBox1Finder), + findsOneWidget, + ); + + final postItemActionsLeftRowSizeBox1 = + postItemActionsLeftRowSizeBox1Finder.evaluate().first.widget + as SizedBox; + checkError(107, postItemActionsLeftRowSizeBox1.width, 20); + + final postItemActionsCommentIconFinder = find.byKey( + const Key('post_item_actions_comment_icon'), + ); + + checkError( + 108, + find.descendant( + of: postItemActionsLeftRowFinder, + matching: postItemActionsCommentIconFinder), + findsOneWidget, + ); + + final postItemActionsCommentIcon = postItemActionsCommentIconFinder + .evaluate() + .first + .widget as SvgPicture; + checkError(109, postItemActionsCommentIcon, isA()); + + checkError(110, postItemActionsCommentIcon.width, 27); + checkError(111, postItemActionsCommentIcon.pictureProvider.runtimeType, + ExactAssetPicture); + final postItemActionsCommentIconPictureProvider = + postItemActionsCommentIcon.pictureProvider as ExactAssetPicture; + checkError(112, postItemActionsCommentIconPictureProvider.assetName, + "assets/images/comment_icon.svg"); + final postItemActionsLeftRowSizeBox2Finder = find.byKey( + const Key('post_item_actions_left_row_sized_box_2'), + ); + checkError( + 113, + find.descendant( + of: postItemActionsLeftRowFinder, + matching: postItemActionsLeftRowSizeBox2Finder), + findsOneWidget, + ); + + final postItemActionsLeftRowSizeBox2 = + postItemActionsLeftRowSizeBox2Finder.evaluate().first.widget + as SizedBox; + checkError(114, postItemActionsLeftRowSizeBox2.width, 20); + + final postItemActionsMessageIconFinder = find.byKey( + const Key('post_item_actions_message_icon'), + ); + checkError( + 115, + find.descendant( + of: postItemActionsLeftRowFinder, + matching: postItemActionsMessageIconFinder), + findsOneWidget, + ); + + final postItemActionsMessageIcon = postItemActionsMessageIconFinder + .evaluate() + .first + .widget as SvgPicture; + checkError(116, postItemActionsMessageIcon, isA()); + checkError(117, postItemActionsMessageIcon.width, 27); + checkError(118, postItemActionsMessageIcon.pictureProvider.runtimeType, + ExactAssetPicture); + + final postItemActionsMessageIconPictureProvider = + postItemActionsMessageIcon.pictureProvider as ExactAssetPicture; + checkError(119, postItemActionsMessageIconPictureProvider.assetName, + "assets/images/message_icon.svg"); + + final postItemActionsSaveIconFinder = find.byKey( + const Key('post_item_actions_save_icon'), + ); + checkError( + 120, + find.descendant( + of: postItemActionRowFinder, + matching: postItemActionsSaveIconFinder), + findsOneWidget, + ); + + final postItemActionsSaveIcon = + postItemActionsSaveIconFinder.evaluate().first.widget as SvgPicture; + checkError(121, postItemActionsSaveIcon, isA()); + checkError(122, postItemActionsSaveIcon.width, 27); + checkError(123, postItemActionsSaveIcon.pictureProvider.runtimeType, + ExactAssetPicture); + + final postItemActionsSaveIconPictureProvider = + postItemActionsSaveIcon.pictureProvider as ExactAssetPicture; + checkError(124, postItemActionsSaveIconPictureProvider.assetName, + "assets/images/save_icon.svg"); + + final postItemCaptionContainerFinder = find.byKey( + const Key('post_item_caption_container'), + ); + checkError( + 125, + find.descendant( + of: postItemColumnFinder, matching: postItemCaptionContainerFinder), + findsOneWidget, + ); + + final postItemCaptionContainer = + postItemCaptionContainerFinder.evaluate().first.widget as Container; + checkError(126, postItemCaptionContainer, isA()); + checkError(127, postItemCaptionContainer.padding, + const EdgeInsets.symmetric(horizontal: 15)); + checkError(128, postItemCaptionContainer.margin, + const EdgeInsets.only(bottom: 12)); + + final postItemCaptionRichTextFinder = find.byKey( + const Key('post_item_caption_rich_text'), + ); + checkError( + 129, + find.descendant( + of: postItemCaptionContainerFinder, + matching: postItemCaptionRichTextFinder), + findsOneWidget, + ); + final postItemCaptionRichText = + postItemCaptionRichTextFinder.evaluate().first.widget as RichText; + checkError(130, postItemCaptionRichText.text, isA()); + + final postItemCaptionRichTextTextSpan = + postItemCaptionRichText.text as TextSpan; + checkError(131, postItemCaptionRichTextTextSpan.children, hasLength(2)); + + final postItemCaptionRichTextTextSpanTextSpan1 = + postItemCaptionRichTextTextSpan.children![0] as TextSpan; + checkError(132, postItemCaptionRichTextTextSpanTextSpan1.text, + posts[0]['name'] + ' '); + checkError(133, postItemCaptionRichTextTextSpanTextSpan1.style, + const TextStyle(fontSize: 15, fontWeight: FontWeight.w700)); + + final postItemCaptionRichTextTextSpanTextSpan2 = + postItemCaptionRichTextTextSpan.children![1] as TextSpan; + checkError(134, postItemCaptionRichTextTextSpanTextSpan2.text, + posts[0]['caption']); + checkError(135, postItemCaptionRichTextTextSpanTextSpan2.style, + const TextStyle(fontSize: 15, fontWeight: FontWeight.w500)); + + final postItemViewCommentsContainerFinder = find.byKey( + const Key('post_item_view_comments_container'), + ); + checkError( + 136, + find.descendant( + of: postItemColumnFinder, + matching: postItemViewCommentsContainerFinder), + findsOneWidget, + ); + final postItemViewCommentsContainer = postItemViewCommentsContainerFinder + .evaluate() + .first + .widget as Container; + checkError(137, postItemViewCommentsContainer.padding, + const EdgeInsets.symmetric(horizontal: 15)); + checkError(138, postItemViewCommentsContainer.margin, + const EdgeInsets.only(bottom: 12)); + + final postItemViewCommentsTextFinder = find.byKey( + const Key('post_item_view_comments_text'), + ); + checkError( + 139, + find.descendant( + of: postItemViewCommentsContainerFinder, + matching: postItemViewCommentsTextFinder), + findsOneWidget, + ); + final postItemViewCommentsText = + postItemViewCommentsTextFinder.evaluate().first.widget as Text; + checkError(140, postItemViewCommentsText.data, + "View ${posts[0]['commentCount']} comments"); + checkError(141, postItemViewCommentsText.style, isA()); + checkError( + 142, postItemViewCommentsText.style!.color, white.withOpacity(0.5)); + checkError(143, postItemViewCommentsText.style!.fontSize, 15); + checkError( + 144, postItemViewCommentsText.style!.fontWeight, FontWeight.w500); + + final postItemAddCommentContainerFinder = find.byKey( + const Key('post_item_add_comment_container'), + ); + checkError( + 145, + find.descendant( + of: postItemColumnFinder, + matching: postItemAddCommentContainerFinder), + findsOneWidget, + ); + + final postItemAddCommentContainer = postItemAddCommentContainerFinder + .evaluate() + .first + .widget as Container; + checkError(146, postItemAddCommentContainer.padding, + const EdgeInsets.symmetric(horizontal: 15)); + checkError(147, postItemAddCommentContainer.margin, + const EdgeInsets.only(bottom: 12)); + + final postItemAddCommentRowFinder = find.byKey( + const Key('post_item_add_comment_row'), + ); + checkError( + 148, + find.descendant( + of: postItemAddCommentContainerFinder, + matching: postItemAddCommentRowFinder), + findsOneWidget, + ); + + final postItemAddCommentRow = + postItemAddCommentRowFinder.evaluate().first.widget as Row; + checkError(149, postItemAddCommentRow.mainAxisAlignment, + MainAxisAlignment.spaceBetween); + checkError(150, postItemAddCommentRow.children, hasLength(2)); + + final postItemAddCommentLeftRowFinder = find.byKey( + const Key('post_item_add_comment_left_row'), + ); + checkError( + 151, + find.descendant( + of: postItemAddCommentRowFinder, + matching: postItemAddCommentLeftRowFinder), + findsOneWidget, + ); + + final postItemAddCommentLeftRow = + postItemAddCommentLeftRowFinder.evaluate().first.widget as Row; + checkError(152, postItemAddCommentLeftRow.children, hasLength(2)); + + final postItemAddCommentAvatarContainerFinder = find.byKey( + const Key('post_item_add_comment_avatar_container'), + ); + checkError( + 153, + find.descendant( + of: postItemAddCommentLeftRowFinder, + matching: postItemAddCommentAvatarContainerFinder), + findsOneWidget, + ); + + final postItemAddCommentAvatarContainer = + postItemAddCommentAvatarContainerFinder.evaluate().first.widget + as Container; + checkError( + 154, + postItemAddCommentAvatarContainer.constraints!.widthConstraints(), + const BoxConstraints(minWidth: 30, maxWidth: 30)); + checkError( + 155, + postItemAddCommentAvatarContainer.constraints!.heightConstraints(), + const BoxConstraints(minHeight: 30, maxHeight: 30)); + checkError(156, postItemAddCommentAvatarContainer.margin, + const EdgeInsets.only(right: 15)); + checkError(157, postItemAddCommentAvatarContainer.decoration, + isA()); + + final postItemAddCommentAvatarContainerDecoration = + postItemAddCommentAvatarContainer.decoration as BoxDecoration; + checkError(158, postItemAddCommentAvatarContainerDecoration.shape, + BoxShape.circle); + checkError(159, postItemAddCommentAvatarContainerDecoration.image, + isA()); + + final postItemAddCommentAvatarContainerDecorationImage = + postItemAddCommentAvatarContainerDecoration.image as DecorationImage; + checkError(160, postItemAddCommentAvatarContainerDecorationImage.image, + isA()); + checkError(161, postItemAddCommentAvatarContainerDecorationImage.fit, + BoxFit.cover); + + final postItemAddCommentAvatarContainerDecorationImageNetworkImage = + postItemAddCommentAvatarContainerDecorationImage.image + as NetworkImage; + checkError( + 162, + postItemAddCommentAvatarContainerDecorationImageNetworkImage.url, + profile); + + final postItemAddCommentTextFinder = find.byKey( + const Key('post_item_add_comment_text'), + ); + checkError( + 163, + find.descendant( + of: postItemAddCommentLeftRowFinder, + matching: postItemAddCommentTextFinder), + findsOneWidget, + ); + + final postItemAddCommentText = + postItemAddCommentTextFinder.evaluate().first.widget as Text; + checkError(164, postItemAddCommentText.data, 'Add a comment...'); + checkError(165, postItemAddCommentText.style, isA()); + checkError( + 166, postItemAddCommentText.style!.color, white.withOpacity(0.5)); + checkError(167, postItemAddCommentText.style!.fontSize, 15); + checkError( + 168, postItemAddCommentText.style!.fontWeight, FontWeight.w500); + + final postItemAddCommentRightRowFinder = + find.byKey(const Key('post_item_add_comment_right_row')); + checkError( + 169, + find.descendant( + of: postItemAddCommentRowFinder, + matching: postItemAddCommentRightRowFinder), + findsOneWidget); + + final postItemAddCommentRightRow = + postItemAddCommentRightRowFinder.evaluate().first.widget as Row; + checkError(170, postItemAddCommentRightRow.children, hasLength(5)); + + final postItemAddLaughEmojiTextFinder = find.byKey( + const Key('post_item_add_laugh_emoji_text'), + ); + checkError( + 171, + find.descendant( + of: postItemAddCommentRightRowFinder, + matching: postItemAddLaughEmojiTextFinder), + findsOneWidget, + ); + + final postItemAddLaughEmojiText = + postItemAddLaughEmojiTextFinder.evaluate().first.widget as Text; + checkError(172, postItemAddLaughEmojiText.data, '😂'); + checkError( + 173, postItemAddLaughEmojiText.style, const TextStyle(fontSize: 20)); + + final postItemAddLoveEmojiTextFinder = find.byKey( + const Key('post_item_add_love_emoji_text'), + ); + checkError( + 174, + find.descendant( + of: postItemAddCommentRightRowFinder, + matching: postItemAddLoveEmojiTextFinder), + findsOneWidget, + ); + + final postItemAddLoveEmojiText = + postItemAddLoveEmojiTextFinder.evaluate().first.widget as Text; + checkError(175, postItemAddLoveEmojiText.data, '😍'); + checkError( + 176, postItemAddLoveEmojiText.style, const TextStyle(fontSize: 20)); + + final postItemAddCircleIconFinder = find.byKey( + const Key('post_item_add_circle_icon'), + ); + checkError( + 177, + find.descendant( + of: postItemAddCommentRightRowFinder, + matching: postItemAddCircleIconFinder), + findsOneWidget, + ); + + final postItemAddCircleIcon = + postItemAddCircleIconFinder.evaluate().first.widget as Icon; + checkError(178, postItemAddCircleIcon.icon, Icons.add_circle); + checkError(179, postItemAddCircleIcon.size, 18); + checkError(180, postItemAddCircleIcon.color, white.withOpacity(0.5)); + + final postItemDayAgoPaddingFinder = find.byKey( + const Key('post_item_day_ago_padding'), + ); + checkError( + 181, + find.descendant( + of: postItemColumnFinder, matching: postItemDayAgoPaddingFinder), + findsOneWidget, + ); + + final postItemDayAgoPadding = + postItemDayAgoPaddingFinder.evaluate().first.widget as Padding; + checkError(182, postItemDayAgoPadding.padding, + const EdgeInsets.symmetric(horizontal: 15)); + + final postItemDayAgoTextFinder = find.byKey( + const Key('post_item_day_ago_text'), + ); + checkError( + 183, + find.descendant( + of: postItemDayAgoPaddingFinder, + matching: postItemDayAgoTextFinder), + findsOneWidget, + ); + + final postItemDayAgoText = + postItemDayAgoTextFinder.evaluate().first.widget as Text; + checkError(184, postItemDayAgoText.data, posts[0]['timeAgo']); + checkError(185, postItemDayAgoText.style!.color, white.withOpacity(0.5)); + checkError(186, postItemDayAgoText.style!.fontSize, 15); + checkError(187, postItemDayAgoText.style!.fontWeight, FontWeight.w500); + }, + ); + + testWidgets('Check if Bottom Navbar is present', (WidgetTester tester) async { + FlutterError.onError = ignoreOverflowErrors; + + await mockNetworkImagesFor( + () => tester.pumpWidget( + MaterialApp( + home: HomePage( + posts: posts, profileData: profileJson, stories: stories), + ), + ), + ); + + int pageIndex = 0; + + List bottomItems = [ + pageIndex == 0 + ? "assets/images/home_active_icon.svg" + : "assets/images/home_icon.svg", + pageIndex == 1 + ? "assets/images/search_active_icon.svg" + : "assets/images/search_icon.svg", + pageIndex == 2 + ? "assets/images/upload_active_icon.svg" + : "assets/images/upload_icon.svg", + pageIndex == 3 + ? "assets/images/love_active_icon.svg" + : "assets/images/love_icon.svg", + pageIndex == 4 + ? "assets/images/account_active_icon.svg" + : "assets/images/account_icon.svg", + ]; + + final bottomNavigationBarContainer = + find.byKey(const Key('bottom_navigation_bar_container')); + checkError(188, bottomNavigationBarContainer, findsOneWidget); + + final bottomNavigationBarContainerFinder = + bottomNavigationBarContainer.evaluate().first.widget as Container; + checkError( + 189, bottomNavigationBarContainerFinder.constraints!.maxHeight, 55); + checkError(190, bottomNavigationBarContainerFinder.constraints!.maxWidth, + double.infinity); + checkError(191, bottomNavigationBarContainerFinder.color, black); + checkError(192, bottomNavigationBarContainerFinder.padding, + const EdgeInsets.only(left: 20, right: 20, bottom: 20, top: 15)); + + final bottomNavigationBarRowFinder = + find.byKey(const Key('bottom_navigation_bar_row')); + checkError( + 193, + find.descendant( + of: bottomNavigationBarContainer, + matching: bottomNavigationBarRowFinder), + findsOneWidget); + + final bottomNavigationBarRow = + bottomNavigationBarRowFinder.evaluate().first.widget as Row; + checkError(194, bottomNavigationBarRow.mainAxisAlignment, + MainAxisAlignment.spaceBetween); + checkError(195, bottomNavigationBarRow.children, hasLength(5)); + + bottomItems.asMap().forEach((index, value) { + final bottomItem = bottomNavigationBarRow.children[index] as InkWell; + checkError(196, bottomItem.onTap, isA()); + checkError(197, bottomItem.child, isA()); + + final bottomItemSvgPicture = bottomItem.child as SvgPicture; + checkError(198, bottomItemSvgPicture.pictureProvider.runtimeType, + ExactAssetPicture); + checkError(199, bottomItemSvgPicture.width, 27); + + final bottomItemSvgPicturePictureProvider = + bottomItemSvgPicture.pictureProvider as ExactAssetPicture; + checkError(200, bottomItemSvgPicturePictureProvider.assetName, + bottomItems[index]); + }); + }); +} diff --git a/test/login_page_test.dart b/test/login_page_test.dart new file mode 100644 index 0000000..ef82eb8 --- /dev/null +++ b/test/login_page_test.dart @@ -0,0 +1,434 @@ +import 'package:example_widget_testing/app/modules/login/login_page.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; + +import 'helper.dart'; + +void main() { + final states = {}; + + testWidgets('Check if language dropdown is present', (tester) async { + FlutterError.onError = ignoreOverflowErrors; + // choose the widget to be tested + await tester.pumpWidget( + const MaterialApp(home: LoginPage()), + ); + + // execute the test + final dropdownButtonFinder = find.byType(DropdownButton); + final dropdownButton = + dropdownButtonFinder.evaluate().first.widget as DropdownButton; + // check if dropdownButtonFinder has icon + + // check the widget + expect(dropdownButtonFinder, findsOneWidget); + try { + expect(dropdownButton.dropdownColor, Colors.white); + } catch (exception) { + debugPrint('Test-1.1 failed: $exception'); + } + + expect(dropdownButton.style!.color, Colors.black54); + expect(dropdownButton.elevation, 10); + expect(dropdownButton.items!.length, 4); + expect(dropdownButton.items![0].value, 'English'); + expect(dropdownButton.items![1].value, 'Arabic'); + expect(dropdownButton.items![2].value, 'Italian'); + expect(dropdownButton.items![3].value, 'French'); + // check if DropdownMenuItem has Text widget + expect(dropdownButton.items![0].child, isA()); + expect(dropdownButton.items![1].child, isA()); + expect(dropdownButton.items![2].child, isA()); + expect(dropdownButton.items![3].child, isA()); + // check if Text widget has correct text + expect((dropdownButton.items![0].child as Text).data, 'English'); + expect((dropdownButton.items![1].child as Text).data, 'Arabic'); + expect((dropdownButton.items![2].child as Text).data, 'Italian'); + expect((dropdownButton.items![3].child as Text).data, 'French'); + // check if Text widget has correct style + expect((dropdownButton.items![0].child as Text).style!.fontSize, 16); + expect((dropdownButton.items![1].child as Text).style!.fontSize, 16); + expect((dropdownButton.items![2].child as Text).style!.fontSize, 16); + expect((dropdownButton.items![3].child as Text).style!.fontSize, 16); + }); + + testWidgets('Check if username textbox is present', (tester) async { + FlutterError.onError = ignoreOverflowErrors; + debugPrint('test 2'); + + tester.binding.window.physicalSizeTestValue = const Size(360, 640); + + addTearDown(tester.binding.window.clearPhysicalSizeTestValue); + + await tester.pumpWidget( + const MaterialApp( + home: LoginPage(), + ), + ); + + final usernameTextboxFinder = find.byKey( + const Key('username_textfield'), + ); + // expect if username textbox has correct style + final usernameTextbox = + usernameTextboxFinder.evaluate().first.widget as TextField; + try { + expect(usernameTextboxFinder, findsOneWidget); + } catch (e) { + debugPrint('Test-1.8 failed: $e'); + } + + try { + expect(usernameTextbox.decoration!.hintText, + 'Phone number , email or username'); + } catch (e) { + debugPrint('Test-1.9 failed: $e'); + } + try { + // check if username font size is correct for different screen size + expect(usernameTextbox.style!.fontSize, 15); + // console log screen size + } catch (e) { + debugPrint('Test-60 failed:'); + debugPrint(e.toString()); + } + }); + + // check if password textbox is present + testWidgets('Check if password textbox is present', (tester) async { + FlutterError.onError = ignoreOverflowErrors; + debugPrint('test 3'); + + tester.binding.window.physicalSizeTestValue = const Size(360, 640); + + addTearDown(tester.binding.window.clearPhysicalSizeTestValue); + + await tester.pumpWidget( + const MaterialApp( + home: LoginPage(), + ), + ); + + final passwordTextboxFinder = find.byKey( + const Key('password_textfield'), + ); + // expect if password textbox has correct style + final passwordTextbox = + passwordTextboxFinder.evaluate().first.widget as TextField; + try { + expect(passwordTextboxFinder, findsOneWidget); + } catch (e) { + debugPrint('Test-61 failed: $e'); + } + + try { + expect(passwordTextbox.decoration!.hintText, 'Password'); + } catch (e) { + debugPrint('Test-62 failed: $e'); + } + // try to input password and check if it is obscured + try { + await tester.enterText(passwordTextboxFinder, 'password'); + expect(passwordTextbox.obscureText, true); + } catch (e) { + debugPrint('Test-63 failed: $e'); + } + }); + + testWidgets('Check if login button is present', (tester) async { + FlutterError.onError = ignoreOverflowErrors; + debugPrint('test 4'); + + await tester.pumpWidget( + const MaterialApp( + home: LoginPage(), + ), + ); + + final loginButtonFinder = find.byKey( + const Key('login_button'), + ); + // expect if login button has correct style + final loginButton = + loginButtonFinder.evaluate().first.widget as ElevatedButton; + try { + expect(loginButtonFinder, findsOneWidget); + } catch (e) { + debugPrint('Test-64 failed: $e'); + } + try { + expect( + loginButton.style!.backgroundColor!.resolve(states), + const Color(0xff78c9ff), + ); + } catch (e) { + debugPrint('Test-65 failed:'); + debugPrint(e.toString()); + } + }); + + testWidgets('Check Forgot Login Text', (tester) async { + FlutterError.onError = ignoreOverflowErrors; + debugPrint('test 5'); + + await tester.pumpWidget( + const MaterialApp( + home: LoginPage(), + ), + ); + + final forgotAccessFinder = find.byKey( + const Key('forgot_access_text'), + ); + + final forgotAccessText = forgotAccessFinder.evaluate().first.widget as Text; + + try { + expect(forgotAccessFinder, findsOneWidget); + } catch (e) { + debugPrint('Test-66 failed: $e'); + } + + try { + expect(forgotAccessText.data, 'Forgot your login details? '); + } catch (e) { + debugPrint('Test-67 failed: $e'); + } + + try { + expect(forgotAccessText.style!.fontSize, 13); + } catch (e) { + debugPrint('Test-68 failed: $e'); + } + + try { + expect(forgotAccessText.style!.color, Colors.black); + } catch (e) { + debugPrint('Test-69 failed: $e'); + } + + try { + expect(forgotAccessText.style!.fontWeight, FontWeight.normal); + } catch (e) { + debugPrint('Test-70 failed: $e'); + } + }); + + testWidgets('Check if Get Help text is present', (tester) async { + FlutterError.onError = ignoreOverflowErrors; + debugPrint('test 6'); + + await tester.pumpWidget( + const MaterialApp( + home: LoginPage(), + ), + ); + + final getHelpFinder = find.byKey( + const Key('get_help_text'), + ); + + final getHelpText = getHelpFinder.evaluate().first.widget as Text; + + try { + expect(getHelpFinder, findsOneWidget); + } catch (e) { + debugPrint('Test-71 failed: $e'); + } + + try { + expect(getHelpText.data, 'Get help'); + } catch (e) { + debugPrint('Test-72 failed: $e'); + } + + try { + expect(getHelpText.style!.fontSize, 13); + } catch (e) { + debugPrint('Test-73 failed: $e'); + } + + try { + expect( + getHelpText.style!.color, + const Color(0xff002588), + ); + } catch (e) { + debugPrint('Test-74 failed: $e'); + } + + try { + expect(getHelpText.style!.fontWeight, FontWeight.bold); + } catch (e) { + debugPrint('Test-75 failed: $e'); + } + }); + + testWidgets('Check if Facebook login is present', (tester) async { + FlutterError.onError = ignoreOverflowErrors; + debugPrint('test 7'); + + await tester.pumpWidget( + const MaterialApp( + home: LoginPage(), + ), + ); + + final facebookLoginFinder = find.byKey( + const Key('facebook_login'), + ); + + try { + expect(facebookLoginFinder, findsOneWidget); + } catch (e) { + debugPrint('Test-76 failed: $e'); + } + + final facebookLogo = find.byKey(const Key('facebook_logo')); + + try { + expect(facebookLogo, findsOneWidget); + } catch (e) { + debugPrint('Test-77 failed: $e'); + } + + final facebookTextFinder = find.byKey( + const Key('facebook_login_text'), + ); + + final facebookText = facebookTextFinder.evaluate().first.widget as Text; + + try { + expect(facebookTextFinder, findsOneWidget); + } catch (e) { + debugPrint('Test-78 failed: $e'); + } + + try { + expect(facebookText.data, 'Login with facebook'); + } catch (e) { + debugPrint('Test-79 failed: $e'); + } + + try { + expect( + facebookText.style!.color, + const Color(0xff1877f2), + ); + } catch (e) { + debugPrint('Test-81 failed: $e'); + } + + try { + expect(facebookText.style!.fontWeight, FontWeight.w800); + } catch (e) { + debugPrint('Test-82 failed: $e'); + } + }); + + testWidgets('Check if signup text is present', (tester) async { + FlutterError.onError = ignoreOverflowErrors; + debugPrint('test 8'); + + await tester.pumpWidget( + const MaterialApp( + home: LoginPage(), + ), + ); + + final signupSectionFinder = find.byKey(const Key('signup_section')); + final signupSection = signupSectionFinder.evaluate().first.widget as Row; + + try { + expect(signupSectionFinder, findsOneWidget); + } catch (e) { + debugPrint('Test-82 failed:'); + debugPrint(e.toString()); + } + + try { + expect(signupSection.children.length, 2); + } catch (e) { + debugPrint('Test-83 failed:'); + debugPrint(e.toString()); + } + + try { + expect(signupSection.mainAxisAlignment, MainAxisAlignment.center); + } catch (e) { + debugPrint('Test-84 failed:'); + debugPrint(e.toString()); + } + + final signupText = signupSection.children[0] as Text; + + try { + expect(signupText.runtimeType, Text); + } catch (e) { + debugPrint('Test-85 failed:'); + debugPrint(e.toString()); + } + + try { + expect(signupText.data, "Don't have an account? "); + } catch (e) { + debugPrint('Test-86 failed:'); + debugPrint(e.toString()); + } + + try { + expect(signupText.style!.fontSize, + tester.binding.window.physicalSize.width * .040 / 3); + } catch (e) { + debugPrint('Test-87 failed:'); + debugPrint(e.toString()); + } + + final signupButton = signupSection.children[1] as TextButton; + + try { + expect(signupButton.runtimeType, TextButton); + } catch (e) { + debugPrint('Test-88 failed:'); + debugPrint(e.toString()); + } + + final signupButtonText = signupButton.child as Text; + + try { + expect(signupButtonText.runtimeType, Text); + } catch (e) { + debugPrint('Test-89 failed:'); + debugPrint(e.toString()); + } + + try { + expect(signupButtonText.data, 'Sign up'); + } catch (e) { + debugPrint('Test-90 failed:'); + debugPrint(e.toString()); + } + + try { + expect(signupButtonText.style!.color, const Color(0xff00258B)); + } catch (e) { + debugPrint('Test-91 failed:'); + debugPrint(e.toString()); + } + + try { + expect(signupButtonText.style!.fontWeight, FontWeight.bold); + } catch (e) { + debugPrint('Test-92 failed:'); + debugPrint(e.toString()); + } + + try { + expect(signupButtonText.style!.fontSize, + tester.binding.window.physicalSize.width * .040 / 3); + } catch (e) { + debugPrint('Test-93 failed:'); + debugPrint(e.toString()); + } + }); +} diff --git a/test/post_page_test.dart b/test/post_page_test.dart new file mode 100644 index 0000000..e69de29 diff --git a/test/search_page_test.dart b/test/search_page_test.dart new file mode 100644 index 0000000..7be9110 --- /dev/null +++ b/test/search_page_test.dart @@ -0,0 +1,326 @@ +import 'package:example_widget_testing/app/modules/search/search_page.dart'; +import 'package:example_widget_testing/app/widgets/post_thumbnail.dart'; +import 'package:example_widget_testing/core/theme/colors.dart'; +import 'package:example_widget_testing/core/values/constant/search_json.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_svg/flutter_svg.dart'; +import 'package:flutter_test/flutter_test.dart'; +import 'package:network_image_mock/network_image_mock.dart'; + +import 'helper.dart'; + +void checkError(int index, dynamic expected, dynamic matcher) { + try { + expect(expected, matcher); + } catch (e) { + debugPrint('Searchpage Test-$index failed:'); + debugPrint(e.toString()); + } +} + +void main() { + testWidgets('Check if Search page is present', (WidgetTester tester) async { + FlutterError.onError = ignoreOverflowErrors; + await mockNetworkImagesFor( + () => tester.pumpWidget( + MaterialApp( + home: SearchPage(searchPosts: searchImages), + ), + ), + ); + + final searchPageListviewFinder = find.byKey( + const Key('search_page_listview'), + ); + checkError( + 1, + searchPageListviewFinder, + findsOneWidget, + ); + }); + + testWidgets('Check if search textfield is present', + (WidgetTester tester) async { + FlutterError.onError = ignoreOverflowErrors; + await mockNetworkImagesFor( + () => tester.pumpWidget( + MaterialApp( + home: SearchPage(searchPosts: searchImages), + ), + ), + ); + + final searchPageListviewFinder = find.byKey( + const Key('search_page_listview'), + ); + + final searchPageTextfieldContainerFinder = find.byKey( + const Key('search_page_textfield_container'), + ); + // mock screen size + tester.binding.window.physicalSizeTestValue = const Size(375, 812); + checkError( + 2, + find.descendant( + of: searchPageListviewFinder, + matching: searchPageTextfieldContainerFinder, + ), + findsOneWidget); + final searchPageTextfieldContainer = searchPageTextfieldContainerFinder + .evaluate() + .single + .widget as Container; + + checkError( + 3, + searchPageTextfieldContainer.margin, + const EdgeInsets.only( + bottom: 15, + left: 15, + right: 15, + ), + ); + + checkError(4, searchPageTextfieldContainer.constraints!.maxHeight, 45.0); + checkError( + 5, + searchPageTextfieldContainer.decoration, + isA(), + ); + + final searchPageTextfieldContainerDecoration = + searchPageTextfieldContainer.decoration as BoxDecoration; + checkError( + 6, + searchPageTextfieldContainerDecoration.borderRadius, + const BorderRadius.all(Radius.circular(10)), + ); + checkError( + 7, + searchPageTextfieldContainerDecoration.color, + const Color(0xff262626), + ); + + final searchPageTextfieldFinder = find.byKey( + const Key('search_page_textfield'), + ); + checkError( + 8, + find.descendant( + of: searchPageListviewFinder, + matching: searchPageTextfieldFinder, + ), + findsOneWidget, + ); + + final searchPageTextfield = + searchPageTextfieldFinder.evaluate().single.widget as TextField; + checkError(9, searchPageTextfield.cursorColor, white.withOpacity(0.3)); + checkError(10, searchPageTextfield.style, isA()); + + final searchPageTextfieldStyle = searchPageTextfield.style as TextStyle; + checkError(11, searchPageTextfieldStyle.color, white.withOpacity(0.3)); + + checkError(12, searchPageTextfield.decoration, isA()); + + final searchPageTextfieldDecoration = + searchPageTextfield.decoration as InputDecoration; + checkError(13, searchPageTextfieldDecoration.border, InputBorder.none); + checkError(14, searchPageTextfieldDecoration.prefixIcon, isA()); + + final searchPageTextfieldPrefixIcon = + searchPageTextfieldDecoration.prefixIcon as Icon; + checkError(15, searchPageTextfieldPrefixIcon.icon, Icons.search); + checkError(16, searchPageTextfieldPrefixIcon.color, white.withOpacity(0.3)); + + final searchPageWrapFinder = find.byKey( + const Key('search_page_wrap'), + ); + checkError( + 17, + find.descendant( + of: searchPageListviewFinder, + matching: searchPageWrapFinder, + ), + findsOneWidget, + ); + + final searchPageWrap = + searchPageWrapFinder.evaluate().single.widget as Wrap; + checkError(18, searchPageWrap.spacing, 1); + checkError(19, searchPageWrap.runSpacing, 1); + checkError(20, searchPageWrap.children.length, searchImages.length); + }); + + testWidgets('Check if search posts is present', (WidgetTester tester) async { + FlutterError.onError = ignoreOverflowErrors; + await mockNetworkImagesFor( + () => tester.pumpWidget( + MaterialApp( + home: SearchPage(searchPosts: searchImages), + ), + ), + ); + + final searchPageListviewFinder = find.byKey( + const Key('search_page_listview'), + ); + final searchPageWrapFinder = find.byKey( + const Key('search_page_wrap'), + ); + checkError( + 21, + find.descendant( + of: searchPageListviewFinder, + matching: searchPageWrapFinder, + ), + findsOneWidget, + ); + checkError( + 22, + find.descendant( + of: searchPageWrapFinder, + matching: find.byType(Container), + ), + findsNWidgets(searchImages.length), + ); + }); + + testWidgets('Check if search posts thumbnail is present', + (WidgetTester tester) async { + FlutterError.onError = ignoreOverflowErrors; + const String imageUrl = "https://picsum.photos/250?image=9"; + // mock screen size + tester.binding.window.physicalSizeTestValue = const Size(375, 812); + await mockNetworkImagesFor( + () => tester.pumpWidget( + const MaterialApp( + home: PostThumbnail(imageUrl: imageUrl), + ), + ), + ); + + final postThumbnailContainerFinder = find.byKey( + const Key(imageUrl), + ); + checkError(23, postThumbnailContainerFinder, findsOneWidget); + + final postThumbnailContainer = + postThumbnailContainerFinder.evaluate().single.widget as Container; + checkError(24, postThumbnailContainer.decoration, isA()); + + final postThumbnailContainerDecoration = + postThumbnailContainer.decoration as BoxDecoration; + checkError( + 25, + postThumbnailContainerDecoration.image, + isA(), + ); + + final postThumbnailContainerDecorationImage = + postThumbnailContainerDecoration.image as DecorationImage; + checkError( + 26, + postThumbnailContainerDecorationImage.image, + isA(), + ); + checkError( + 27, + postThumbnailContainerDecorationImage.fit, + BoxFit.cover, + ); + + final postThumbnailContainerDecorationImageNetworkImage = + postThumbnailContainerDecorationImage.image as NetworkImage; + checkError( + 28, + postThumbnailContainerDecorationImageNetworkImage.url, + imageUrl, + ); + }); + + testWidgets('Check if Bottom Navbar is present', (WidgetTester tester) async { + FlutterError.onError = ignoreOverflowErrors; + + await mockNetworkImagesFor( + () => tester.pumpWidget( + MaterialApp( + home: SearchPage(searchPosts: searchImages), + ), + ), + ); + + int pageIndex = 1; + + final bottomItem2Finder = find.byKey( + const Key('bottom_item_1'), + ); + checkError(29, bottomItem2Finder, findsOneWidget); + + await tester.ensureVisible(bottomItem2Finder); + await tester.pumpAndSettle(); + await tester.tap(bottomItem2Finder); + + List bottomItems = [ + pageIndex == 0 + ? "assets/images/home_active_icon.svg" + : "assets/images/home_icon.svg", + pageIndex == 1 + ? "assets/images/search_active_icon.svg" + : "assets/images/search_icon.svg", + pageIndex == 2 + ? "assets/images/upload_active_icon.svg" + : "assets/images/upload_icon.svg", + pageIndex == 3 + ? "assets/images/love_active_icon.svg" + : "assets/images/love_icon.svg", + pageIndex == 4 + ? "assets/images/account_active_icon.svg" + : "assets/images/account_icon.svg", + ]; + + final bottomNavigationBarContainer = + find.byKey(const Key('bottom_navigation_bar_container')); + checkError(188, bottomNavigationBarContainer, findsOneWidget); + + final bottomNavigationBarContainerFinder = + bottomNavigationBarContainer.evaluate().first.widget as Container; + checkError( + 189, bottomNavigationBarContainerFinder.constraints!.maxHeight, 55); + checkError(190, bottomNavigationBarContainerFinder.constraints!.maxWidth, + double.infinity); + checkError(191, bottomNavigationBarContainerFinder.color, black); + checkError(192, bottomNavigationBarContainerFinder.padding, + const EdgeInsets.only(left: 20, right: 20, bottom: 20, top: 15)); + + final bottomNavigationBarRowFinder = + find.byKey(const Key('bottom_navigation_bar_row')); + checkError( + 193, + find.descendant( + of: bottomNavigationBarContainer, + matching: bottomNavigationBarRowFinder), + findsOneWidget); + + final bottomNavigationBarRow = + bottomNavigationBarRowFinder.evaluate().first.widget as Row; + checkError(194, bottomNavigationBarRow.mainAxisAlignment, + MainAxisAlignment.spaceBetween); + checkError(195, bottomNavigationBarRow.children, hasLength(5)); + + bottomItems.asMap().forEach((index, value) { + final bottomItem = bottomNavigationBarRow.children[index] as InkWell; + checkError(196, bottomItem.onTap, isA()); + checkError(197, bottomItem.child, isA()); + + final bottomItemSvgPicture = bottomItem.child as SvgPicture; + checkError(198, bottomItemSvgPicture.pictureProvider.runtimeType, + ExactAssetPicture); + checkError(199, bottomItemSvgPicture.width, 27); + final bottomItemSvgPicturePictureProvider = + bottomItemSvgPicture.pictureProvider as ExactAssetPicture; + checkError(200, bottomItemSvgPicturePictureProvider.assetName, + bottomItems[index]); + }); + }); +}